Search Results: "jam"

24 October 2005

James Morrison: A good day

Today has been a good day. First, I found greasemonkey for epiphany (I upgraded to gnome in experimental over the last week). Then found a script to make it so that I could use Google Video by opening the videos in ffplay. There are still some tweaks needed to make it slick, but it means that I can use Google Video using free software. Next I went to work, actually got some work done and started tuning the gears on my bicycle while my dad walked me through where to adjust things. Lastly, I came home and turned the external video display on in X, got xvattr and watched Short Circuit with my projector in GNU/Linux.

Benjamin Mako Hill: <em>Talk:</em> The Ubuntu Project: Overview and Development Model

My talk at BLU seems to have been carried out successfully. The talk was nothing new for folks who follow this blog and know my other Ubuntu talks. It was a long (nearly two hour) number given to an audience with mixed experience with Ubuntu. As such, it covered a lot of ground by pulling from both my introductory Ubuntu talks and my To Fork or Not to Fork talk that I gave several times this summer. The talk was given at the Sloan School of Management at MIT. Steve Ballmer gave a talk at Sloan two days later. His talk was better attended. Of course, I doubt he told people how to get free copies of his projects OS offering shipped to their homes at no cost. Slides and notes follow. Slides: Talk Notes:

23 October 2005

Benjamin Mako Hill: Darklight Film Festival Symposium

Next month in Dublin is going to be the Darklight digital film festival. In preparation for the festival is a now traditional symposium that has a reputation for bringing together a collection of interesting people to, "identify, profile and respond to the current transformations in the distribution of cultural production enabled by the proliferation of digital and wireless networks." I'm thrilled to have been asked to attend and give a speech there along with fellow Media Lab inhabitant Barry Vercoe (of course, he helped found the lab -- I've only been there for a month). I'll be talking about intellectual property and will try to describe some of the history of the current mess we're in, offer a rough classification of the types of solutions that are being offered and then go into some depth on the Free/Open Source Software model. I'll talk about the reasons Free Software has been successful and try to describe some of the benefits and limitations of applying this model to the production of other types of creative works. You can check out the symposium schedule and register now for a free spot in the audience. Please keep in mind that registration is limited. If you will not be able to attend but are in Dublin and would like to meet up (for keysigning, chatting, etc.), please get in contact and we'll work something out. I've never been to Ireland before am excited. The one (major) downside of course is that this talk will mean I will not be able to attend the most relevant parts of Ubuntu Below Zero conference and so am currently not planning to attend at all. I send my regards to the rest of the Ubuntu team. I'll see you at the next one am looking forward to the tsunami of new specs that will define Dapper and am looking forward to participating in whatever way I can from remote.

Benjamin Mako Hill: Obelisks

Obelisks have been on my mind recently. I think it started with this suggestion I made to help use up some space in the newly remodeled "Alley" (the new home of the Electronic Publishing Group at the Media Lab):
I think we would be wise to purchase and display this very high quality seven foot Large Reprocessed Garden Obelisk in the Alley. In addition to the happiness that the presence of its simple geometric shapes would bring us, it would provide us with both a great conversation starter and an undeniable symbol of our power during Media Lab teas.
Good morning Freud.

Benjamin Mako Hill: More Manhole Covers

There was some confusion about my recent post on the Melnick book on manhole covers from people who were unfamiliar with the term "manhole." One way to describe a manhole cover is a sewer lid. However, manhole covers are employed to cover a variety of holes that men (and women) explore for a variety of purposes. I prefer to think of a manhole cover as exactly what an obelisk isn't.

Benjamin Mako Hill: Postal Addresses

Mika pointed out a striking similarity between the official business addresses of Apple and Canonical:
Canonical Ltd.
One Circular Road
Douglas, Isle of Man
Apple
One Infinite Loop
Cupertino, CA
A friend I trust tells me that Infinite Loop is not, in fact, infinite. I have every reason to believe that Circular Road is everything the name implies. Honesty is very important to me.

21 October 2005

James Morrison: Attempted suicide #2

So, on my way home again, another vehicle (a mini-van) decided to illegally take the right of way away from me. This time the driver decided to run a red light and almost hit me. WHY CAN'T PEOPLE DRIVE?

After my flat tire, I took my bicyle into the store where I got it for a free tune-up and to get the tire fixed while I was there. They had my bicycle for a week, because they didn't call me when it was done. When I picked it up, the back tire was flat and the front derailer cable wasn't tighten and they had somehow messed up the rear derailer. At this point, I've decided it's not worth going back there, and I'll fix the gears myself. I know, I won't get them right the first, second, third time, but it will be worth the effort.

Randomness: Ataxx is a pretty cool game, it's in the gnome-games package. My planet is back.

19 October 2005

Scott James Remnant: Parallel Peer Programming

Here at Canonical Towers we have several staff who worship at the altar of Extreme Programming, and as such many of the methodologies and rituals prescribed by that religion find their way into our day-to-day working practices. A few of these came together in an interesting way a few weeks ago, and it was suggested by a cow-orker that I blog about it so he could give the URL to people. The first ritual is that of the sprint, I don’t think this is orthodox XP but rather something inspired from it that we picked up from the Python community. With all of the Canonical developers scattered across the globe mostly working from their own homes, it’s become a useful tool; particularly for the Launchpad team. The basic idea for those that haven’t heard of it is simple, and perhaps obvious; you get a selection of the team together in one place, sit them around the same table with particular goals to complete. In effect it’s highly compressed facetime and high bandwidth interaction to nail those tasks that need it, before you head off again and work at a more sedate pace. The second is directly from XP doctrine and is that peculiar observance known as pair programming, something that is often coupled with sprints. For anybody who hasn’t encountered this before, it’s something I’ve always found rather odd. You get two programmers together, both itching to code, and you take one of them’s laptop away; and you don’t just force them to fight over the keyboard either, the laptop-less soul isn’t allowed to touch it. The theory here is that it frees the deprived individual of the hassle of coding and allows them to direct the programmer in ways that may not be immediately obbious, or alternately think about the next bit of work that needs doing. Another interesting side-effect is it can be an interesting way to learn code you’ve not worked with before, if you’re the one doing the coding and you’re being guided what to do by a sage who already knows it. I have a funny story here, so I’m going to digress from the main stream for a moment to tell it. A few months ago I was working in the London office, Mark had been up all night coding and had then given me responsibility to get his changes landed onto the Launchpad mainline. I’m not that hot on quite a bit of Launchpad, and fade to utterly clueless the nearer the code gets to the web application itself; and when trying to merge the two there were conflicts which I needed Mark’s help to resolve. Now as anybody who’s met Mark knows, he’s a pretty good example of a Type-A personality, yet he suggested that we do a spot of pair programming to get the code in and I’d be the one with the laptop as it’d help me get to grips with the affected parts. This hilighted something I’ve always seen as a problem with pair programming, dealing with it when the a person with the keyboard has a totally different way of working to you. In particular, I’m an emacs user, whereas Mark is a die-hard vim user; but also right down to the working directory I would work from, how I test results, etc. When you’re the one without the laptop, this can be quite infuriating, as you know exactly how to solve a problem and the idiot with the keyboard is dithering about doing things you don’t understand just to get there. If you’re a Type-A personality, you generally snatch the laptop away at this point and do it yourself; or at least you would, if you could drive the strange editor the other person uses. I swear Mark was sulking as he gave the laptop back and let me do it. Anyway, there is some relevance to that and we’ll come to it in a moment. The third and final methodology is the concept of unit tests and more specifically test driven development. For anyone who hasn’t come across this before, I highly recommend it; I was suspicious too when Robert Collins took it upon himself to teach me the true way, but now I’m sold. Simply the idea is that if you have any code that doesn’t have another piece of code in a test suite that checks that it’s working correctly, that code is broken. More particularly unit testing involves checking just one feature or requirement at a time, and stacking them together to test all of the code paths. I’ve actually found that this improves the APIs I design, as I write the code in small blocks and functions to make them easier to test. Test driven development takes it even further, you write the unit tests first, before you write the code they’re supposed to test; usually one or two at a time. Obviously these tests will fail at first, it’s then your job to write as little code as possible to make them pass. If your code isn’t right, you add a unit test that will fail, and modify the code to make it pass. This really comes into its own when you’re fixing bugs later, once you’ve identified the bug you write a test case or two that cause the problem; these will of course fail. You can then modify the code to make them pass, and at the same time be sure you’ve not broken other functionality because of the existing test suite. I’ve also found it really useful for particularly complicated or tricky pieces of code, especially those intricate algorithms that do particularly heavy lifting. So onto the event itself, this was a sprint in our London office to indoctrinate Gustavo Niemeyer with the various projects he’d be working on. The goal for this sprint was decided to start the conversion of HCT to Bazaar-NG, and to do this Gustavo and I would pair program. Now my last experience of pair programming had been that story with Mark (see, it had some relevance) and I knew I’d be just as bad if I wasn’t allowed to have the keyboard. I was also acutely aware that if Gustavo was just sitting by and watching, he wouldn’t get much benefit from it either, so he needed to be actively involved in the coding so he could learn the things he’d be working on. I came to what I thought was a pretty neat, and obvious, solution to these problems. We set up my laptop with the code we’d be working on, and on my display were two side-by-side terminals both running screen sessions. Gustavo then set up two same-sized terminals on his, ssh’d into my laptop from both of them and joined the screen sessions. In the left-hand one he ran vi, and in the right-hand one I ran emacs. Thus we both had keyboards, and both had editors, yet could see each other working and even steal the keyboard without danger of violence. We didn’t just sit side-by-side and code on different things though, that’s not pair programming and is just ordinary programming with a bit of a voyeuristic twist. What we did was: in my terminal I started writing the test cases for the code we needed, it was Gustavo’s job to write the code that would make them pass. We actually added a third terminal in which we could run the test cases themselves; so I could run them when I’d added something that would fail, and Gustavo could run them when he thought he’d made them pass again. This turned out to be a rather fun way to work, and at one point I was almost able to try and convince myself that the code was writing itself to pass the test cases I was writing. It also got me thinking that it’d be really neat to use genetic algorithms to breed code to pass test cases.

Benjamin Mako Hill: "Jose"

My country's national intelligence is now in the hands of a man so powerful that he is not publicly referred to with even a fake last name. Of course, it's nice to know that as mysterious as he is, "Jose" is a maximum of three shorts degrees of separation from me on the social networking graph. Add this to the list of benefits that come from knowing Nicholas.

Benjamin Mako Hill: Ubuntu Talk at BLU

Last night, I decided to check out the Boston Linux Unix webpage to find out when the next meeting would be and what the talk would be on. To my surprise, the talk is tomorrow and is slated to be given by none other than Benjamin Mako Hill. Hmmm. I vaguely remember agreeing to give a talk like this in general sense but don't remember ever agreeing to a specific day. In any case, I'm not one to disappoint and am working on my slides. If you're interested in some post-Breezy action in Boston, please show up! If you can't make it, I'm trying to arrange a proper release party for some point after I receive my Breezy CDs (a week or two I guess). I'm sorry for the short notice. Of course, I'm giving the talk on short notice so I'm not too sorry. Additionally, I am missing both a class and a Media Lab sponsors dinner that I was already double booked for. You should be able to cancel up to one of your prior engagements to attend. Information on the talk is on the BLU website. The talk will be held at MIT in E51-315.

18 October 2005

Scott James Remnant: live-f1

And while I’m briefly in the blogging mood, I thought I may as well wax lyrical about another of my recent weekend projects. As anybody who vaugely knows me is aware, I’m a bit of an F1-nut and watch every Grand Prix religiously. For a couple of years now the official Formula 1 website has had a Java applet that recieves the live timing data from the races and displays it on your screen. Obviously this depended on Java, which is a bad thing. But curiously the main thing that inspired this project was that the applet uses pretty small fonts, and isn’t resizable; so you can’t stick your laptop on the table and glance at it during the race. So a race weekend a couple of weeks back, the one where FERNANDO ALONSO was busy winning the World Championship, in fact I tcpdumped the network traffic while running the Java applet and set about figuring out exactly how it worked. The result a nice curses C application that does much the same thing: I don’t plan on releasing it properly until the start of the 2006 season, when I hope to have added some useful features into it that the Java applet lacks, but it’s coming along nicely. Update: I didn’t actually intend to live you all hanging quite like that… you can play with the code today (though there’s obviously no race to watch) by grabbing it with bzr from http://www.netsplit.com/bzr/live-f1. It’s written in C and you’ll need libncurses5-dev and libneon24-dev to build it.

Scott James Remnant: bzrk 0.1

Over the weekend in a stunning example of timing, fabbione showed me a screenshot of gitk, the branch visualisation tool for git that he’s discovered while getting the Ubuntu kernel patches into a branch. He, quite rightly, was upset that we didn’t have anything like this for bzr. Well, we do now: It’s implemented as a bzr plugin, so you simply run “bzr visualise” (or “bzr viz”) in a working tree and the window opens to show you the history. Download here

17 October 2005

Benjamin Mako Hill: <cite>Manhole Covers</cite> by Mimi and Robert Melnick

Mika and I went to the MIT Press Bookstore loading dock sale today. It provided what was, by far, the most relevant selection at any bargain book sale I've attended. It was two small rooms and I could have easily walked out with 100+ books that I would have read. Even with most books at three, five, or seven dollars (US), my student budget was the limiting factor. At the sale, I bought a large coffee-table sized book called Manhole Covers by Mimi and Robert Melnick. It offers page after mesmerizing page of black and white photographs of manhole covers of all designs, shapes and sizes. At seven dollars, I felt like it was asking a lot but Mika and I decided that on a per-manhole-cover basis, the price was really unbeatable. The price was 3.3 cents (US) per full-page manhole cover photograph if you do not account for the small thumbnails of manhole covers that pepper the books front matter. If you are in or around Boston, you should go to their next loading dock sale -- probably in the spring.

16 October 2005

Norbert Tretkowski: Uploaded vim 6.4 to unstable

We had vim 6.4b in experimental for the last days, hence enough time to update the included patches to the new release. Thanks to James Vega and Stefano Zacchiroli for their work. The new version 6.4 was released yesterday, and the updated package already made it into unstable with yesterdays dinstall run.

Anthony Towns: Tiffani

So this week’s project was working on dak, in particular getting the tiffani implemention included. What’s tiffani, you ask? It lets you just download the changes to Sources.gz and Packages.gz files, instead of the whole damn thing – if you have main, contrib, and non-free for unstable in your sources.list, this means your apt-get update only needs to download 27.5 KiB instead of 2.85 MiB (for bz2) or 3.75 MiB (for gz). Two orders of magnitude saving’s not bad. I’ve mentioned this previously a few times if you want to see the history, in January I noted some quick hacks which have now been obsoleted by Michael Vogt’s integration into apt (which is in a personal repository, not uploaded to unstable yet…), back in August last year I did a little promotion of the concept, referring back to my post in December 2003 that summarised the analysis done previously, which takes us back to March and April 2002. The server-side implementation, tiffani, is thus a little python script that groks through the list of suites and components dak knows abouts, looks for Packages, Sources and Contents files, and creates a directory names something like Packages.diff which in turn contains an Index file and a number of gzipped patches, named after the time they were created. The process for updating an existing Packages file is to look for the matching SHA1-History entry in the Index file, download the corresponding patch, apply that patch to your existing Packages file, and repeat until your Packages file matches the one you were looking for (which you can determine by looking at the checksum in either the Release or Index file). Anyway, tiffani’s been co-developed with Andreas Barth (aka Andi) after the following exchange back in November 2003 on the RM channel:
<aba> elmo: If I find some time to take a look at katies TODO-file, what would be most appreciated? Deleting udebs with melanie? “Right” handling of orig.tar.gz when jumping out of NEW / changing of the archive section? Something else?
<elmo> aba: the TODO list is a bit of a mess to be honest
<aba> elmo: So, what should I do if I want to help the ftp-masters with katie?
<elmo> aba: I wouldn’t necessarily do anything based off that unless it’s obviously correct/wanted. none of the really urgent stuff is even on there (e.g. testing-security changes)
<aba> elmo: If you tell me something urgent, I can put some time into it.
<aj> hrm, surely i have some wishlists
<aba> urgent wishlist? :)
<aj> actually, you could critique something for me if you’ve got half an hour free now?
<aba> “critique” means?
<elmo> tell him how crap his ideas are. as brutually as possible
<elmo> ;) … <aj> ooo!
<aj> aba: around?
<aj> aba: one useful thing you could work on that’s kinda katie related is implementing pdiffs into katie/apt-ftparchive/apt/whatever
<Kamion> aj: mvo’s been working on that over the last couple of days, see #128818 logs
<aj> apt side or katie side?
<Kamion> apt side
<aj> cool
<aj> aba: hacking up a katie-side implementation for that would probably be interesting, worthwhile and straightforward
(aj = me, aba = Andi, elmo = James Troup, Kamion = Colin Watson) That ended up with me finding an old script I made up called update.py (from Dec 2003 apparently) that did the core patch and Index generation, Andi updating that to some more sane pythonic style and making it work on an actual archive, then both of us cleaning it up so it would actually work sensibly without handholding. (For those playing along at home, the idea needing critiquing was trying to fix up dak’s idea of what should happen if a new version of a package is uploaded to stable or testing, when it hasn’t changed in unstable. At the time, dak would REJECT it, because it violated the requirement that you can’t downgrade packages between stable and testing or testing and unstable. That’s still somewhat broken, unfortunately) TTBOMK, Tiffani’s named after Tiffani Amber Thiessen, apparently of Saved by the Bell and Beverly Hills 90210 fame. I’m not sure who of aba or elmo is more to blame for that one, though I guess it is at least a little more distinctive than update…

Next.

Previous.