I feel like I’ve spent most of this week debugging some PHP code, and writing unit tests for it. Thankfully I think this firefighting exercise is nearly over.
Perhaps the alarm bells should have been going off a bit more in my head when it was implied that the code was being written in a quick-and-dirty manner (“as long as it works….”).
The application goes away and fetches from quotes for a service. For each quote there are 2-3 third party APIs to talk to, and at least 6 different variables which can change. I soon found while trying to fix one bug that I was breaking functionality elsewhere.
Was :
Now:
Interesting things I don’t like about the code :
The last time I posted about my little project I shared a video demo of the work so far. I am pleased to report that I have made some further progress.
A key part of the design of the accomplishments system is that it supports two types of accomplishment:
Although support for the former works, I have been really focusing on the latter Machine Verifiable accomplishments. I am pleased to report that this works fully end-to-end now. It works like this:
With the exception of some loose edges, this is all basically working, and even runs on someone else’s machine than mine.
To get this rolling I wrote a bunch of additional accomplishments that use launchpadlib to give you a trophy if you have certain roles in the community (currently, Ubuntu Member, MOTU, core-dev, and a member of a LoCo Team).
A pretty cool feature here is that these accomplishments have dependencies. As an example, you need to complete the Register a Launchpad Account accomplishment before you can complete the File a Bug accomplishment (as you need a Launchpad account to file a bug). As such, accomplishments that you can’t access yet are listed as locked and unlocked when you have satisfied their dependencies. This helps us to develop a journey for how people learn new experiences and participate in the community.
You can now filter available opportunities by locked or unlocked – this makes it easier to see what you can do right now. I also prettified the interface somewhat and ripped out some of the clunky pieces of my very first implementation. With the addition of the extra accomplishments you can also see the additional categories.
This is how it looks so far:
I am hoping to release a video demo of this soon.
I will also be opening up a call for testing and accomplishment contributions when I nail a few final bugs. Stay tuned, folks!
Thanks to William Grant for his launchpadlib help recently.
The last couple of weeks have seen a fairly insane number of hours of work out of me due to a combination of a project with tight deadlines (aren't they all?) and the advent of me driving my wife to work in the mornings. She's at the point now of not being particularly mobile (oh, by the way, we're spawning) so I'm getting up at 6:30 daily to get her to work for 7. This means that I'm generally either working from home by 7:15 or in the office just before 8. That should mean that I'm done before 5 but it doesn't quite seem to work that way when other people are involved ;)
Anyway, due to the ease of working with Node.js and Django, I've at least achieved a lot :)
I ended up building quite a neat (and yes, I actually mean this in the sense of tidy and organised - not just "cool") web server engine as part of the project. It's quite similar to the one I made for this site but with some pretty nifty refinements. If I can persuade the powers that be, I might see if I can split it out a little more and open-source it. We'll see :)
One snag I've hit along the way is that OAuth appears not to be applicable to multipart post requests. I'm hoping someone will correct me on that and just tell me that I've been doing it wrong but I don't think so. That single thing broke my entire afternoon today.
The problem comes from my need to upload a large file or two to an authenticated web service. When the files were small, a basic querystring formatted post body was sufficient but when I tried larger files, that clearly wasn't going to work so I stuck it all into a multipart request and then... BOOM oauth is unhappy. It seems to be the signature generation code that makes certain assumptions about what the request will look like when it's generating the sig.
Like I said, I hope I'm wrong and that there's a nice, simple way to do file uploads via OAuth!
The Eagle has explodedI'm not sure if I mentioned it before and I really can't be bothered to look, but Eagle Mode is fantastic! Basically it's a zooming file manager but with some other things thrown in. I'd actually like to see the file manager part separated out from the rest of the project as it's so amazingly useful. It'll need to be a bit shinier before the Mac fanboys and Ubuntu users will go for it though ;)
The basic idea is that, whatever you're looking at, you can zoom in on it. If you're looking at a folder, you'll see it as a box with boxes for each of the files and sub-folders within it. You can zoom in on one of those (with the scroll-wheel for example) and, if it's a folder, see what's inside it and if it's a file (and this is the really awesome part), see its contents. Eagle Mode has handlers for most common types of files so you can, for example, very easily preview the contents of an entire folder of photos just by zooming in on the folder.
This quick and easy access to things and their contents makes it a very powerful file manager. It's stupidly easy to move files around and easily see the effect you're having on the way your file system is organised. I'd been putting off the task of reorganising my home folder on my desktop machine for years. It's a machine that's gone through several hardware changes, several operating systems, and a number of changes of heart about where I store things.
I reorganised all of it in about twenty minutes in Eagle Mode :)
I want it to have a web browser and for the internet to work like that. But it doesn't.
So I made this zooming version of my site :D It probably doesn't work in anything but chrom(e|ium) and I'm unlikely to work on it further. Essentially, you get an overview of this website. As you click on part of it, you zoom in. To zoom out, use the right mouse button.
Last week I went along to the food co-ops networking event at the Southville Centre in Bristol. It was a useful event and very inspiring and informative to meet people from so many other co-ops, as well as attend some useful workshops: the two I went to were Good meetings and communication and Starting and developing a food co-op, while there were also ones on funding and Simply Legal available.
There was some time for networking, as well as a relaxed end to the day which let me catch up with a few more people. I would have preferred a little more time for the workshops and a little less on case studies (every food co-op is different and I don’t think any of the featured ones were quite what I was looking for), but that’s a very minor thing and didn’t really reduce the usefulness of the whole day.
Our co-op is a tech worker co-op and not a food co-op, so I didn’t know that much about how to start one before the event. Now I’ve got a much better idea of what I need to do when I eventually move back out to what may be a co-op desert in King’s Lynn.
Are you a member of a food co-op or buying group? If so, what would you say about it? Were you involved in its start-up?
Click here for full size.
Thanks to the always amazing David Callé who has created this lens for the Ubuntu Accomplishments system. David was also the first person to brave running the Ubuntu Accomplishments system other than me (complete with the server verification pieces). It worked!
This week I expect to have another update on Ubuntu Accomplishments. My evenings have been tied up with finishing The Art of Community but the deadline for that is tomorrow.
Stay tuned!
OK, fun little meme time. Simple question:
Which songs remind you of Ubuntu?
Think about the music…the vibe…the rhythm…what it makes you feel when you listen to the song. Which ones make you think of our goals of bringing Free Software to the world with Ubuntu?
Reply using your blog, Google+, Facebook, Twitter or wherever else (use the #musicofubuntu hashtag) and lets see what music gets our Ubuntu blood flowing.
I have a few I want to present via the wonderful medium of embedded YouTube videos. What are yours?!
Queen: Don’t Stop Me NowCan’t see it? Watch it here!
Twisted Sister: We’re Not Gonna Take ItCan’t see it? Watch it here!
AC/DC: Shoot To ThrillCan’t see it? Watch it here!
Airbourne: Runnin’ WildCan’t see it? Watch it here!
Rush: VirtualityCan’t see it? Watch it here!
Grave Digger: Rebellion (The Clans Are Marching)Can’t see it? Watch it here!
Rage Against the Machine: Renegades of FunkCan’t see it? Watch it here!
Bomfunk MC’s: FreestylerCan’t see it? Watch it here!
Just a reminder…every Tuesday at 8am Pacific / 11am Eastern / 4pm UTC on #ubuntu-community-team on freenode IRC.
Everyone runs through a a list of the work they have been doing over the last week and you can ask questions. Feel free to join us; everyone is welcome!
The next meeting will be on Monday 13th of February at Mr Foley’s for a social
meet-up.
Feel free to bring your Linux problems and issues down for the experts to take
a look at (laptops only, of course).
If you’re new to Linux and want a little hand-holding, do come along, or if
you just fancy a bit of geeky chat there’s always lively debate on a range of
geek and non-geek subjects.
We’ll be in the back room from 7pm onwards.
I’ve got rather sucked into the comments on Nadine Dorries’ nonsense about the “attacks” on Christianity. Here’s the first comment that I left, which pretty much sums up my feelings.
The Christian church’s outcry against Mr Justice Ouseley’s eminently sensible ruling can only be seen as the death cries of increasingly irrelevant group.
Spout whatever statistics you like about the percentages of people who call themselves Christian, but the inescapable fact is that the UK ceased to be a Christian nation by any meaningful measure about thirty years ago. The fact that we still have an established church is nothing but a historical accident. It’s inconceivable that this relationship between church and state will still be in place in twenty years time.
So, yes, maybe parliament will waste some time overturning this ruling. But it will only be a temporary setback. Secularism is on the rise. Religion has no place in the public square.
Related Posts:I've been spending a lot more time recently in meetings. Mostly things I should actually be at. And in general if it's something I think is reasonable I'll try to be there. In an effort to help with this I actually keep my work calendar up to date. Given that I'm running Linux on my laptop and the corporate standard is Exchange this requires a little bit of effort on my part (the Thunderbird Provider for Microsoft Exchange and Android support for talking to Exchange are helpful with this).
Sometimes it seems like I shouldn't bother. I spent this week at a conference, and marked my calendar to indicate I was out of the office. I think I had at least 3 meeting requests, all for things that would actually have been appropriate for me to go to. Last week I managed to be booked for 7 hours of meetings from 7am until noon. That included a 30 minute window where I was triple booked.
The thing is, I'm really not that busy in terms of meetings - you can usually find a spot when I'm free on any given day unless I'm actually not in the office. If you bother to check my calendar, that is.
Another problem I have is the times people like to book meetings at. Booking a technical meeting at 9am isn't going to get me at my best. Equally doing so at 5pm is likely to have me clock watching to make sure I don't miss my bus and/or train. Also I seem to work with far too many people who don't eat lunch and book hour long meetings at midday or 1pm.
I understand sometimes that's the only time you can get everyone into a room together, but at least bloody ask and explain the need rather than just sending out a meeting invite.
Finally, book meetings of a realistic length. There are some people who invite me to things and cause me to add another 30 minutes on the end, because I know it always overruns.
It's not all bad. I have a VP who always runs a meeting to time, and never seems to call one for spurious reasons. I've also worked with a program manager who will organize the meeting so that if you're only there for one point on the agenda that'll get dealt with near the beginning so it doesn't take up more of your time that it needs to. Funnily enough I'm much more likely to go to things both of these people arrange.
Disclaimer: In the unlikely event anyone I work with who invites me to meetings is reading this, I might be talking about you, but everything I mention has been done by more than one person, so I'm not thinking about anyone in particular for each point.
Yesterday’s news stories about prayer in Bideford council meetings and the Christian guesthouse owners have triggered the expected levels of outrage from the usual suspects.
One thing that critics of this ruling often seem to (deliberately?) misunderstand is the differences between atheism, humanism and secularism. I thought it might be useful to post simple definitions of the meanings of these three words.
Atheism is simply the absence of belief in any kind of deity. Atheists just don’t belief in your god. In fact they don’t believe in any gods. They don’t believe in your god for pretty much the same reasons they you don’t believe in other people’s gods. Atheists don’t hate god. It would be incredibly silly to hate something that you don’t believe if. For obvious reasons there is are very few religious people who would call themselves atheists.
Humanism is a philosophical approach which assumes that the best way to build a system of morals and ethics is to approach the problems logically and rationally and with humanity. Humanists don’t want to take moral instruction from a supernatural entity, but rather assume that moral and ethical decisions should be taken on the basis of the effects that they will have on human beings. Despite what some people would have you believe, this does not lead to them murdering babies. Although there is nothing intrinsically preventing religious people from being humanists, many religious people prefer to take moral and ethical stances prescribed by their religion rather than thinking things through for themselves.
Secularism is the belief that religion has no place in public affairs and that there should be complete separation between church and state. This means that the USA is, by definition, a secular country (it’s in their constitution) whereas the UK, which is by any measure a less religious country than the USA still has an established church and therefore (by definition, at least) is not a secular country. Whilst many religious people can see no problem with their religion being tightly integrated with the state, they can often recognise the problems when someone else’s religion is in control. For this reason many religious people (although by no means all of them) are keen supporters of secularism.
The three concepts are completely separate, although (of course) many people subscribe to all three beliefs. In the UK we have separate organisations to promote each of these ideas – Atheism UK, the British Humanist Association and the National Secular Society. You can join any combination of the three and members of each of these organisations should not be assumed to hold the beliefs of the other two.
In particular, the campaign that led to the Bideford council ruling was run by the National Secular Society. Therefore it cannot be seen as an attack on religion in any way. If it is an attack on anything, it is an attack on the influence that one particular religion (actually one particular church within that religion) has (or, rather, had) over the governance of that local council.
No-one has been told that they can’t pray. They haven’t even been told that they can’t pray before their council meetings. They have been told that they can’t pray on the meeting’s agenda. Effectively, they can’t pray on taxpayers’ money. And I’m astonished that people are seeing this as an attack on their. faith.
Don’t believe the stories that church leaders and the tabloid press are telling you. The full text of Mr Justice Ouseley’s ruling is available online. Read that and see exactly what he said.
Even if you can’t be an atheist, or you’re doubtful about humanism, please accept that secularism makes sense.
Related Posts:Calculating requirements and dependencies. #
Which is worse for installing #Kindle #webOS http://t.co/utr7gDLQ or #playbook http://t.co/hzPwa1MI ?Did I miss the consultations on proprietary sw? #
@scottbw uk gov has been talking about this sort of thing since at least 2002.A decade.
10. fscking. years.
Awesome. Command-line util says "-v turns on verbose messages". What it really means is "-v turns on invalid command line parameters" error. # Sweet: TubeStatus for #PlayBook using #WebWorks worked first time on device! Now, polish. #bbdevcon //cc @BlackBerryDev http://t.co/AIur2XJG # @rocketjohn incoming! # That would be very cold out there then. #fb http://t.co/RI76opEC # The irony of all these big companies dumping lock-in platform A for lock-in platform B has not escaped me. Open, collaborate, commoditise? # @spugamola @bookmeister everyone I've shown the PlayBook to has been pleasantly surprised. But it desperately needs more big brand name apps # @virginmedia utter #fail New router delivery scheduled 1 month ago for yesterday. "Sorry, can it be Monday now?" No. Cancel cancel cancel. # Who's the least incompetent option for Norwich broadband these days? suggestions, @norfolkquino @rocketjohn @paulrussell? #virginmedia #fail #Powered by Twitter Tools
Calculating requirements and dependencies. #
Which is worse for installing #Kindle #webOS http://t.co/utr7gDLQ or #playbook http://t.co/hzPwa1MI ?Did I miss the consultations on proprietary sw? #
@scottbw uk gov has been talking about this sort of thing since at least 2002.A decade.
10. fscking. years.
Awesome. Command-line util says "-v turns on verbose messages". What it really means is "-v turns on invalid command line parameters" error. # Sweet: TubeStatus for #PlayBook using #WebWorks worked first time on device! Now, polish. #bbdevcon //cc @BlackBerryDev http://t.co/AIur2XJG # @rocketjohn incoming! # That would be very cold out there then. #fb http://t.co/RI76opEC # The irony of all these big companies dumping lock-in platform A for lock-in platform B has not escaped me. Open, collaborate, commoditise? # @spugamola @bookmeister everyone I've shown the PlayBook to has been pleasantly surprised. But it desperately needs more big brand name apps # @virginmedia utter #fail New router delivery scheduled 1 month ago for yesterday. "Sorry, can it be Monday now?" No. Cancel cancel cancel. # Who's the least incompetent option for Norwich broadband these days? suggestions, @norfolkquino @rocketjohn @paulrussell? #virginmedia #fail #Powered by Twitter Tools
Calculating requirements and dependencies. #
Which is worse for installing #Kindle #webOS http://t.co/utr7gDLQ or #playbook http://t.co/hzPwa1MI ?Did I miss the consultations on proprietary sw? #
@scottbw uk gov has been talking about this sort of thing since at least 2002.A decade.
10. fscking. years.
Awesome. Command-line util says "-v turns on verbose messages". What it really means is "-v turns on invalid command line parameters" error. # Sweet: TubeStatus for #PlayBook using #WebWorks worked first time on device! Now, polish. #bbdevcon //cc @BlackBerryDev http://t.co/AIur2XJG # @rocketjohn incoming! # That would be very cold out there then. #fb http://t.co/RI76opEC # The irony of all these big companies dumping lock-in platform A for lock-in platform B has not escaped me. Open, collaborate, commoditise? # @spugamola @bookmeister everyone I've shown the PlayBook to has been pleasantly surprised. But it desperately needs more big brand name apps # @virginmedia utter #fail New router delivery scheduled 1 month ago for yesterday. "Sorry, can it be Monday now?" No. Cancel cancel cancel. # Who's the least incompetent option for Norwich broadband these days? suggestions, @norfolkquino @rocketjohn @paulrussell? #virginmedia #fail #Powered by Twitter Tools
Calculating requirements and dependencies. #
Which is worse for installing #Kindle #webOS http://t.co/utr7gDLQ or #playbook http://t.co/hzPwa1MI ?Did I miss the consultations on proprietary sw? #
@scottbw uk gov has been talking about this sort of thing since at least 2002.A decade.
10. fscking. years.
Awesome. Command-line util says "-v turns on verbose messages". What it really means is "-v turns on invalid command line parameters" error. # Sweet: TubeStatus for #PlayBook using #WebWorks worked first time on device! Now, polish. #bbdevcon //cc @BlackBerryDev http://t.co/AIur2XJG # @rocketjohn incoming! # That would be very cold out there then. #fb http://t.co/RI76opEC # The irony of all these big companies dumping lock-in platform A for lock-in platform B has not escaped me. Open, collaborate, commoditise? # @spugamola @bookmeister everyone I've shown the PlayBook to has been pleasantly surprised. But it desperately needs more big brand name apps # @virginmedia utter #fail New router delivery scheduled 1 month ago for yesterday. "Sorry, can it be Monday now?" No. Cancel cancel cancel. # Who's the least incompetent option for Norwich broadband these days? suggestions, @norfolkquino @rocketjohn @paulrussell? #virginmedia #fail #Powered by Twitter Tools
I’ve updated the libguestfs RHEL 6.3 preview packages to libguestfs 1.16.4. Barring any bugs that we find over the next few months, these should be close to what we ship in RHEL 6.3.
http://people.redhat.com/~rjones/libguestfs-RHEL-6.3-preview/
You can install these on RHEL 6.2, but make sure you read the README file first.
Last week I ordered a new laptop. Yesterday, Dell’s web site told me that it had shipped. And, an hour or so later, they gave me a link to track the delivery on the UPS web site.
Now that link is fun of course. But refreshing the page dozens of times a day gets a bit boring. So I started to look for alternatives. Firstly, UPS have a service that sounds like it emails you whenever the status changes. So I set that up. I got an initial email at that point, but nothing more – even as the status changed a couple of times. Reading the description more closely, it seems it only sends an email a) when there’s a delay, b) when the package is delivered and c) when explicitly requested on the web site. So that’s no good.
Of course, what I really wanted was a web feed. Something that I could subscribe to in Google Reader that would always show me the latest status. Being a geek I started to think about a writing a program that would grab the information from the web site periodically and turn it into a web feed. But I stopped myself before I started writing any code. “Surely,” I thought to myself, “I can’t be the first person to want this. Something like this must already exist.”
I was right, of course. A quick Google brought me to Boxoh. Give them a tracking number (and it’s not just UPS – they also understand FedEx, DHL and USPS) and they will not only give you the web feed that I wanted, but also a Google map showing the progress of your package. How cool is that?
There appears to be no way to embed the map on another web site, but that’s the only fault I can find with the site.
Here’s the progress that my laptop is making. It started in Shanghai, before travelling to Incheon in South Korea and Almaty in Kazakhstan from where it flew to Warsaw, which is where it currently is. On Monday it’s due to arrive in Balham.
I love the fact that I can track it so easily. And I’m more than a little jealous of its travels.
Related Posts:Recently I have been blogging about a project I have been hacking on called Ubuntu Accomplishments.
This is an accomplishments system that can be used to identify when people have accomplished various things in the Ubuntu project and reward them with trophies. The plan also makes additional skills and accomplishments more discoverable and provides better help for people to get started. While designed for Ubuntu, the system can be used for other projects and also for local applications (e.g. completing Level 1 on a game). Accomplishments in community projects are verified for their integrity so people can’t fake their trophies.
I wanted to present a video demo of the system working so far:
Can’t see it? See the video here!
You can find out more about the project here and the code is available in the following branches:
Now, this is really early in the stages of development. If you grab the code you will find various bits that are not yet implemented, but the core idea works.
Things we need to do next:
I plan on writing a longer blog entry about how the system works later for those who are interested in contributing.
You are viewing a mobilized version of this site...
View original page here