Ph: 20090701

July 09, 2009

How do dogs drink water?

Wow, this sure is counter-intuitive. Watching Po the other day, I was pondering more efficient ways for a dog to drink water. I mean, why doesn’t he just hold his breath, stick his snout in the bowl and suck? OK, it might take a leap of faith for a dog to do that due to inconvenient nostril placement. ;-)

Meanwhile, I’ve always assumed that dogs and cats scooped up the water in their tongue like a bucket. Turns out that was right, albeit backwards… in the slow-mo video below, you can see that dogs actually use the back of their tongue as a scoop, not the front (which is the way I would do it)!

Click here to view the embedded video.

Update: After some encouragement in the comments, Dusty sent along a video of Sarah (a six month old Gordon Setter) drinking through her snout like a straw! It may not be slow motion, but you can still clearly see her unusual approach to the problem towards the end of the video. Check it out:

Click here to view the embedded video.

Ubuntu: Systems Administration Poster


This is the first draft of the poster/flyer I’m going to be putting about to get people interested in our sys-admin class:

classes-poster-rev2

Thoughts? Spelling Errors?

Community Council: Nominations

In order to get the Community Council from four to eight members again, we are going to have an election in a few weeks. All Ubuntu members are eligible to vote.

I will announce the details of the election soon. What we want from you now is nominations.

If you know somebody in the Ubuntu community, who

has been an Ubuntu member for a while is dedicated to the project is well-respected and known for balanced views and good leadership has a good overview over various aspects of the project is organised and has some organisation talent

(or you know that this all applies to you), please send an email to me (daniel.holbach at ubuntu dot com) with the subject “[CC Nomination]†until July 17th, 12:00 UTC. (I’ll be on vacation afterwards.) If you can confirm that the person is willing to stand for election, please do so.

[Discuss the Community Council Nominations on the Forums]

Originally posted by Daniel Holbach (dholbach) here on July 8th, 2009 at 11:47 am

Mono's patent promise a dead duck?

After reading up a bit on what happened with Mono while I was out sick, I came across another excellent post by Glyn Moody. 

As he correctly points out, lawyers from the SFLC have been over this Open Promise that Microsoft is using and concluded it was incompatible with GPL software:

"SFLC published the paper in response to questions from its clients and the community about the OSP and its compatibility with the GNU General Public License (GPL). The paper says that the promise should not be relied upon because of Microsoft's ability to revoke the promise for future versions of specifications, the promise's limited scope, and its incompatibility with free software licenses, including the GPL."

Secondly, why are people like de Icaza and Jo Shields celebrating this move that they claim removes a patent claim from Mono for which their earlier statements denied the existance? 

Why are they ignoring this earlier study by the SFLC that debunked the Open Promise as being GPL compatible?  (this is not a claim against Mono specifically).

If MS wanted to clear up the air between them and the cancer they have been fighting for so many years, why not adopt a strategy that is comprehensive and legally not dubious?

Again, all this does not make me feel better about Mono at all, which is a shame because I would rather focus on which application is better feature-wise (and some like f-spot are good) than worry about a patent trap in my favorite OS.

Live from the RMLL in Nantes

... and I am really enjoying to see Lucas Nussbaum give a talk about the relationships between Debian and Ubuntu wearing an Ubuntu-fr tshirt :)

Karmic Wallpapers

Ubuntu would like to include a beautiful set of images for our users to choose from in our next release. In order to accomplish this we have set up a wiki page to explain things and guidelines for inclusion. In addition we've started a flickr group to attract current flickr users and encourage new contributors to step up and take the plunge. If you have amazing photos which you would like to share with the world, please add them to the list!

Mono and Microsoft's surprise

Microsoft made a surprise move by putting 2 of it's patents that relate to mono under a community promise.

So, now everything with this environment is fine and dandy, isn't it?  Not quite.
I take my lead in matters about Free Software mostly for institutions I really trust, this includes the FSF with Richard Stallman and sites like Groklaw.

And RMS correctly points out a few catches in this new deal (there always are catches when dealing with MS):

"Even assuming Microsoft follows through on this announcement and covers ECMA 334 and 335 under the Community Promise, this will not be sufficient to protect us against the dangers . . . . That's because Mono implements, and Tomboy depends upon, a number of libraries which are 'standard' in the sense that they're under C#'s "System" namespace (indicating that they're part of the standard library) and provided in Microsoft's implementation, but somewhat pointedly excluded from the ECMA specifications.

Also, it seems that the Community Promise shares some of the weaknesses of their other patent promises. So they have taken a step closer to promising not to sue over C#, but they still have not got there."

As this is Microsoft, nothing but a signed agreement approved by Free Software lawyers who are 100 % sure that MS CAN NOT sue even if they do break their promise is te only thing that is good enough.

How I approach a project

This post does not tutor any specific methodology or design approach to any project but more of a note to self. Its been 4 years since I left undergrad school and since then and before have been involved with several projects of various magnitudes. In most of these projects I found myself get stuck at exactly similar scenarios and recently figured out the reason for that. The reason is “Getting into the Nitty-gritty of things too early”. Thanks to my mentors Dr. Philip Brisk and soon to be (Dr) Theo Kluter  at EPFL and Dr. Joel Sherrill and Thomas Doerfler (he doesn’t blog nor have a page that I know of) as mentors for my Google Summer of Code project for the help they have extended in my path to gain more knowledge in the field. The below thoughts are mostly based on Real Time systems and advanced computer architecture projects I have been involved in.

Most often when we start a project, we get a very generic picture , read around the project’s required literature background and immediately get into the “details” of the system a bit too fast without “completely” getting a grip on the Functional Overview of the system. Many people do the documentation (including explaining the design structure, functional flow) after coding a basic prototype and this itself in my opinion is a flaw. I found it much better to do the reverse and found most successful “engineers” do that way. There have also been scenarios where people have asked me “You draw a structural representation of your system before implementing??” which I find very amusing. How can one get something done without having a picture on paper first?

So the first thing I do now when starting off on a new project is to get a very high abstract picture of the requirements of the project. Then a bit more digging into the “functionality”. It more or less can be compared to a behavioural modeling of the project. Something like this  . Note that the picture does not have any details of implementation (like which function to call, in what module will the implementation go into, what parameters to pass, which module is reusable etc etc). Its just plain functional diagram. This in my opinion helps one to cover most use cases, error scenarios. Its much easier to handle or think about these scenarios at a high level. Believe me, its just too easy to get into the nitty gritty and start putting down the details. Slap yourself and come out of that once you find yourself doing it. The paradigm is that once you are into the details you lose track of the big picture and hence the wider scope and overlook several scenarios. Yes, of-course there will still be some scenarios overlooked but it would be less in number and much easier to handle.

Once most cases are covered one can now, start digging into the diagram and find out re-usable portions of a module easily by repeating flow diagrams, eliminate conditions etc. And then get into the low level design and coding aspect. Also having such a high level functional diagram in place gives rise to many test cases and ensures you test most common conditions before hand. I use Freemind for these diagrams. A great tool not only for mind mapping but also for such things.

It might sound very trivial, but how many of us have got stuck in the utter complexity of the system and miserably struggled to get ourselves out of the situation? If you have any other suggestions do feel free to leave a comment.

Credits and ThankYou's

With the conversion of the web site format for Alestic.com from a single page to more of a blog, the “Credits” section got lost, so I figured I’d post it here to thank some of the many folks who have been involved in providing input (directly or indirectly) into the original, community Ubuntu and Debian AMIs published on http://alestic.com

“Everyone”@AWS Allen Pulsifer Andreas Hasenack anourkey Dietmar Scharf Don Spaulding II Doug Winter Esteve Fernandez Hans Omli Jeff Kim Jim Dixon Jorge Oliveira jjc1138 justnulling Kim Scheibel Martin Rhoads Paul Dowman Peter Bowen Reuven Cohen Robert Coup Robert Hooker Steven Parkes Terry Jones Thomas Shealy Thorsten von Eicken Tim Dysinger Vincent Desjardins Yejun Yang

This has been a great community project and I’m glad to be a part of it.

[Updated: 2009-07-09]

[image]

Sleying the reed

This afternoon I dropped by my local yarn shop (Riverside) and Colleen and I talked about how long it takes us to start "scary" steps in a project. With a lot of encouragement she convinced me to just go ahead and warp my loom. It's a 45" beast that comes to me via my aunt. Over the winter I did a little weaving because the loom came to me already warped. But with that fabric finished I need to learn how to warp the loom before I can start weaving again.

I know this is the time consuming part of the process. It's also sort of scary. Because it's time consuming. Or perhaps because it's the foundation for what will become fabric. And there are scissors involved and there's no "undo" when it comes to scissors. With Angelika and Mel's suggestion I got a copy of Learning to Weave, a glass of whiskey (ok, maybe that was my idea) and just started.

Three hours later I had sleyed the reed. (The best reason to weave is because you have a loom in your living room. The second best reason to weave is the really cool terminology.)

Here's what sleying the reed involves:

Measuring the warp (the vertical strands in the weaving process) on a warping reel:

Warping reel with 2 yards of blue warp

The pegs help to separate each strand of warp and prevent them from getting tangled:

Tying the warp

I did this for two different colours: blue and light brown. With the warp measured it was time to transfer it to the loom. I had to switch the reed that was on the loom. The reed is the part that keeps the yarn separated when you "beat" the weft into place (the weft is the strand of yarn that is passed, via a shuttle, through the warp to make the actual woven fabric). I switched the reed to a 12 dent reed (this means I have 12 strands of yarn per inch in the fabric, but +1 for terminology again because a dent is also an open source tweet). It took me a while to figure out how to set up the lease sticks, and ultimately I'm not sure I was doing it "right" but after a "long" amount of time I ended up with blue warp sleyed through the reed:

Blue warp sleyed

After a total of three hours I had all of my warp sleyed. This was cause for celebration:

Warp through the reeds with a little Glen Livet

The next step will be to thread the warp through the heddles which are attached to each of the shafts (I have a four shaft loom). The shafts are attached to the peddles which are used to treadle a pattern into the fabric by lifting up different warp threads:

Warp through the reeds
You can see in this photo that the warp doesn't go anywhere... it's just tied up at the back of the reed:

Back of reed, with knots

It will need to be passed through the gray bit that looks like a screen on the right and then wrapped onto the back beam. (You can see the front beam in that last photo, that's where the finished fabric will end up.)

It's all very exciting, and very time consuming. I've also started to panic about the instructions: I think I've made a 2 yard warp (as instructed) but now I'm not convinced this will actually be long enough to wrap onto the front and back beams of the loom AND have enough length left to actually weave. I have a feeling I may end up with a very small square of fabric (with a lot of waste). But it's a start and that's more than I had at the beginning of the day.

Why Tarmac Won't Ever Be Part Of Launchpad

So I counted my fingers and toes (including thumbs) and I still can't count how many people have asked me about the possibility of having the functionality of Tarmac (automatic merging) built into Launchpad. The short answer is "No." The long answer is also "No."

There are many reasons for this. The first one I can come up with is the test suite. Sure, you can automate the merging of branches, but c'mon, what's the point of automating it if it's just going to propagate breakage? So the running of tests is relatively essential in automated merging. Elliot got a patch into Tarmac the day after 0.1 to do just this, and I have recently refactored it to work as a plugin. So, for instance, Entertainer can have approved merges, and Tarmac will check out a fresh copy trunk, merge in the branch, and run the tests. If the tests pass, it lands, if not, then the test output is added to the merge proposal. The problem with this is that many test suites take a very long time to run. Others may be quite CPU intensive. As one can imagine, that can require a lot of hardware.

Now, think of test suite you're running. Who wrote it? Not the Launchpad folk. PQM has put a lot of effort into making sure that the tests are run in a sandbox, and not in an environment that would have security implications. In fact, I've put a lot of thought into how to run the tests in a chroot environment for the Tarmac instances I maintain. This is quite a complicated setup.

Lastly, you may need a build environment. Maybe you're working in Windows, or you need a database, etc. These things are pretty specific to an environment. The possibilities are endless. This also has huge hardware implications.

Bottom line: Provide your own test environment, run Tarmac on a cron, make your development team happy.

Side note: I'd love to see if Tarmac would run on Windows. I don't have any Windows machines around, so (for bonus points) would someone please volunteer to try it there?

Gran Canaria Desktop Summit 2009


Technical conferences are a great way for me to get myself thinking about technology in different ways. I spend my working days immersed in it, but primarily from the “inside”, thinking about what we’re doing in Ubuntu and what’s happening in free software today.

At conferences, on the other hand, I get the chance to think freely about what’s possible, and what might be coming. I find this very difficult to do at work, but a free software conference, with plenty of lively chats with colleagues and other participants, always seems to do the trick. I return home with a notebook full of ideas, including plenty of topics which aren’t directly relevant to the conference topics.

Here’s some of what I took home from GCDS 2009. The conference is still going on as I write this, but I’ve returned home after spending four days there.

The keynotes

r0ml is one of my favorite speakers. His sense of humor, timing, gesture, and general exuberance really bring his material to life. This particular talk got me thinking about free software communities in terms of Aristotelian epistemology. I think my relatively sparse classical education makes me a sucker for this kind of thing. Walter Bender spoke about Sugar. Despite having had an XO laptop sitting on my desk for a period of months, this talk taught me most of what I know about the principles and possibilities of the Sugar platform. It really is pretty cool. My only worry is that it’s so ambitious, it might be eclipsed by less powerful, but more pragmatic systems before it reaches its potential. Then, of course, there was Richard Stallman. This keynote was the least interesting of the talks I attended at GCDS, yet I feel compelled to write the most about it:
Much of the talk was devoted to his standard general-audience material, for example, explaining the four freedoms (to an audience of free software enthusiast developers) He also took the time to explain the history of KDE and GNOME (to an audience of KDE and GNOME developers) He then warned of the dangers of Mono, alienating the application developers in the crowd who happened to prefer it. He did his Saint IGNUcius routine, throwing in a sexist joke for good measure.

The talks

The summit was organized into two parts: a cross-desktop segment, and a GUADEC/aKademy segment. This gave GNOME and KDE developers the chance to attend some common talks, but also have talks separately. I’m not sure how well this worked out for everyone. Superficially, it seemed like we would have benefited from more cross-pollination (GNOME folks attending KDE-oriented talks and vice versa) in addition to the cross-desktop content (which seemed to focus on common code).

In a cross-desktop audio talk, Lennart Poettering gave an overview of the audio stack and some of the problems that each of its layers have. I felt like this overview was a useful starting point, but there wasn’t much opportunity to discuss solutions and how we could work together, so I’m not sure what everyone took away from it. The GeoClue talk got me thinking, particularly about location awareness in more sophisticated desktop applications (i.e. not just mobile phone applications):
We could use GeoClue in the Ubuntu installer to more intelligently guess the user’s language, time zone and keyboard layout based on their location, or at least narrow the range of options a bit. Even country-level information would be accurate enough to be useful. Because some devices have more accurate location data than others, it would be interesting to share this data between them. For example, your mobile phone could tell your laptop where it is. With so much location sharing going on, I started to wonder about the apparent implicit assumption in many of these systems that the user and the device are in the same location. Programs like Google’s Latitude present this assumption very strongly, with a picture of the person placed on a map wherever their location-aware device is. This will start to get confusing as people accumulate more location-aware devices. Telepathy apparently supports passing location data, which opens up all sorts of interesting possibilities. It should be possible to write very straightforward applications which do disproportionately cool things using this combination of technology. It should be possible to automagically select a download mirror for Ubuntu installation media or packages using GeoClue, without writing a lot of code.
A talk on videoconferencing centered on Farsight 2, which seems to be coming along nicely. It provides, through the familiar and flexible GStreamer API, access to a host of audio and video conferencing systems. Take your VNC screen sharing session, connect it up to a GStreamer pipeline, and have it come out the other end as an MSN webcam stream with accompanying audio. NAT traversal and all the other gory details are taken care of for you. Very cool. The GNOME Shell represents a small revolution in the design of the GNOME user interface. The talk demonstrated a number of its features and general princples. I found myself wanting to understand more about why those particular features and principles were chosen, but I guess that didn’t fit into the talk slot. The Zeitgeist talk was inspirational. It gave me all sorts of ideas about how I would organize my system differently if I had more information about how I was using it. By collecting data on what the user is doing and when, Zeitgeist opens up the possibility of more adaptive user interface techniques, as well as simple and useful tools like a journal of activity. Rob Bradford presented Mojito, a gateway for desktop applications to access web services data from social networking sites. It takes care of managing authentication tokens, and presenting the data from different services in similar and predictable ways. I’m definitely into the idea of socializing the desktop, though I’m not yet clear on where Mojito fits in relative to Gwibber, which provides a very functional API for several of the same web services. Rick Spencer, my colleague and the leader of the Ubuntu desktop team, gave a talk about the different varieties of programming, focusing on the “opportunistic” type. In this state of mind, a programmer isn’t thinking systematically, or developing for long-term goals, but just experimenting with something new or trying to solve an immediate and short-term problem. They have very different needs and expectations than someone who is approaching programming more systematically. This nicely encapsulates the subtle difference in behavior and perspective between someone who is developing the system they’re using (e.g. GNOME or Ubuntu developers) and someone who is developing on that system. The latter type of developer doesn’t care how the system itself works, and just wants to solve their problem. I don’t think they are very well served by free software yet, but Rick has created a tool called Quickly which aims to help opportunistic programmers get what they need…quickly.

The people

I was able to match a number of new faces to names, and make some new connections as well. The conference format offered ample opportunities for this, which I appreciated. Even if someone lives in my home town, I think I’m more likely to run into them at a conference on another continent, because the global community is much more cohesive.

There was a lot of Twitter and identi.ca activity during the event, which helped me to make some new connections there, as well as to involve people who couldn’t attend the event.

It was great to be able to spend some time with colleagues from Canonical in small groups and under more relaxed circumstances. Too often, I only see them all at once, and when we all have too much to do. This alone would have made it worth going.

July 08, 2009

New ubuntero…

A new ubuntero has born on july 3rd: Mateus Noel.

Handsome as his father…

An interview with Travis Newman

If you have been around the Ubuntu Forums for a while, you are certain to have come across a person calling himself panickedthumb. Guess who we are interviewing in this edition of Ubuntu Community Interviews?

1. Tell as much as you’re willing about your “real life†like name, age, gender, location, family, religion, profession, education, hobbies, etc.

I’m Travis Newman, 27 years old, living in Radford VA. My wife, Katie, and I have two cats Max and Leo. I’m AVP of IT at a regional bank in the area. In my spare time, which I seem to have little of lately, I’m an avid gamer and internet junkie.

2. When and how did you become interested in computers? in Linux? in Ubuntu?

Ever since I first saw a PC, in first grade, I have been fascinated by them. Unfortunately I didn’t get one until my senior year, in 1998. Back in Sept. ‘98 I was having trouble sending email and double-clicking on links. But my lack of knowledge didn’t slow me down. I wanted to know how things worked, what I could and couldn’t do. I ended up using the Compaq restore CD more than I would like to admit, but I learned quite a bit. One thing that I learned was, even though I thought it was all that was available, I hated Windows.  Later that year the network admin at my high school gave me my first Linux CD. Perhaps installing Linux, especially Slackware 3.5, was not the best idea having only *really* used computers for 2 or 3 months, but I did. I was lost. Could never figure out how to start XFree86. But I persisted throughout the years, trying different versions of Red Hat and Mandrake, and many others, and by 2003 I was using Gentoo pretty much full time.  In 2004 I heard about this new distribution (which would become Ubuntu) that was starting up based on Debian, and I decided to give it a shot. My experience with Debian was not a good one, but I had hoped this new distro would help with that. It was still at no-name-yet.com, before being called Ubuntu, but I was hooked. It was very rough around the edges, but I could see the diamond in the rough. Never looked back.

3. When did you become involved in the forums (or the Ubuntu community)? What’s your role there?

I joined the forums October 27th, 2004, less than a month after it started, though I had been lurking for a bit before then. I became a moderator at some point in November, and have been one ever since, with the exception of a few months a couple years ago.

4. Are you an Ubuntu member? If so, how do you contribute? If not, do you plan on becoming one?

I am an Ubuntu member. I contribute as a moderator on the forums, and I started and co-admin the Ubuntu LoCo team for Virginia. Come by #ubuntu-us-va on Freenode the first Tuesday of every month at 8 if you want to join in the fun! :)

5. What distros do you regularly use? What software? What’s your favorite application? Your least favorite?

I use Ubuntu, and that’s really about it. I try other distros here and there. I absolutely love what they’re doing with Arch Linux, and I’m interested to see where Moblin goes for netbooks. However, since trying Ubuntu for the first time, nothing else has felt like “home.”  My favorite software is probably Firefox, and I know that’s a bit of a cop-out since it’s so popular, but I don’t even like browsing the web without it anymore. Least favorite software? Adobe Reader. Seriously, a document reader should not be so bloated and finicky.

6. What’s your fondest memory from the forums, or from Ubuntu overall? What’s your worst?

I don’t have a single fondest memory from Ubuntu or the forums. It’s a great place and I really feel at home there, so I have many fond memories just being part of the wonderful community and contributing as I can. However, one particularly funny memory, that’s kinda hard to explain, was the :porc::inca::dito::love: mystery. Someone in the #ubuntuforums channel started pasting what appeared to us to be random stuff, like the above. It’s still an inside joke to those who were there. I know it doesn’t sound that funny, but I guess you had to be there :)   Worst memory… well with a forum this size, there are some troublemakers and there are occasionally interpersonal conflicts among staff. I won’t go into any details, but those are rough to go through, and they are ultimately not good for the community. Luckily, much has been done over the years so that we have fewer and fewer problems.

7. What luck have you had introducing new computer users to Ubuntu?

Its a struggle sometimes, because for all its faults, Windows is pretty easy to use. Taking some people out of their comfort zone is like pulling teeth. I have had a few converts over the years, and helped get CD’s to a lot of students at a local community college. However, as I have seen over the years, getting someone to *try* Ubuntu doesn’t mean that they will stick with it. One of the most heart warming things for an Ubuntu user ever, though, was at our LoCo installfest in Galax for 9.04. A middle-aged couple had bought a netbook and hated the default Asus version of Xandros, and came by to get Ubuntu Netbook Remix installed. While that was going, Jim Tarvid (the other co-admin of the group) and I got wireless working on their Ubuntu laptop. People over 40 are frequently the hardest to try to convert, but this couple had basically done it on their own, and just needed a little help.

8. What would you like to see happen with Linux in the future? with Ubuntu?

I think it’s on a good path for the most part. I would of course like to see Bug #1 (https://bugs.launchpad.net/ubuntu/+bug/1) taken care of. It seems that every time Microsoft releases something new, we get a lot of new Ubuntu users. I think business as usual is not working as well for Microsoft anymore, and they need to change their game plan if they want to stay on top for the foreseeable future. But ultimately, I’d like to see Ubuntu (or Linux in general) get a 10% market share. I don’t mind if we never get to 50% or even 25% really, I just want enough so that businesses take us seriously and support the platform.  More than just Ubuntu or Linux, however, I would like to see Free software become the standard for software development. I really believe it’s the way of the future, and all of the best software available is Free (as in freedom, of course).

9. If there was one thing you could tell all new Ubuntu users, what would it be?

Don’t give up! I know it’s disheartening at times when you feel like you’re in over your head, but the forums, the mailing list, and the IRC channels are here to help.  Also, get involved! You feel much more a part of the community when you give back. When you become comfortable with Ubuntu, you can help others out. It’s what makes the community work.

Share and Enjoy: StumbleUpon Facebook TwitThis MySpace Google Bookmarks E-mail this story to a friend! Print this article! RSS

el D.F.

Mika is at the Mexican Secretaría de Salud doing research on H1N1 this whole summer. I got into Mexico City yesterday to visit. I'll be here for the next 10 days or so before I'm off to San Francisco for OSCON and related festivities.

Since I'm just here to visit, I've got very little else planned. If folks in or around Mexico City are interested in meeting up for dinner, drinks, a key signing, or to talk about free software, free culture, Debian, Ubuntu, Wikimedia, or whatever, don't hesitate to get in contact.

Using a HP multimeter the lazy.. no, smart way

HP multimeterAt my work I need to measure various things every now and then. I mostly use a DAQ card of a Linux computer with comedilib.

Today I also needed to store the values of a multimeter (HP 34401A) that measured the voltage over something the DAQ card also measured (PCI-DAS4020/12) measurement  - I wanted to see how the values change during a longer period of time so I plot the data from both the DAQ card and the multimeter and see how the correlate.

Version 0.1 - the old fashion way..

I take pen & paper and write down the reading of the multimeter at the same time when I run the DAQ measurement. It’s time consuming and requires me to stay at the setup all the time. I also have to use time to move my notes from paper to the computer. Works for shorter measurements.

Version 0.2 - the simple digital way

I write the numbers directly to the computer. Makes it easier to start processing the data, but still requires me to stay around the whole time.

Version 0.3 - half-automated

We connected a Canon SX100IS camera with a USB cable on the Linux computer. Then we wrote a small script to run the DAQ card measurement every 30s - and using gphoto2 to tell the camera to take a photo of the multimeter Gphoto2 is an awesome tool to control about any digital camera! Then when the measurement was done, I wrote the values from the photos to a text file and was ready to analyze the data. I don’t have to stay around the whole time waiting for the next 30s period, the camera does the work for me.

Here’s the script:

#gphoto2 --delete-all-files -R # this removes all files from camera.. be careful..
#
for i in {1..40};
do
echo "#################"
echo "MEASUREMENT $i"
date
echo "#################"
#
#capture a photo
gphoto2 --capture-image &
#
#run the DAQ measurement
/home/administrator/comedilib-0.7.22/demo/mmap > mittaus$i
#
sleep 30
done
#
#download all photos and rename them to photo1.jpg photo2jpg etc..
gphoto2 --get-all-files -R --filename=photo%n.jpg

But I still have to copy manually the multimeter values from the photos. Doesn’t work for long measurements, say 2000 photos or more..

Version 0.5 - automated version

We were discussing already earlier today the option of using GPIB to read the numbers. There’s linux-gpib package available as well as python-visa so it shouldn’t be too bad. However since I’ve never done anything on python nor GPIB I decided to try the RS-232 aka. serial interface. Google gave me the HP34401A manual that told me what kind of commands the multimeter understands and how to connect there. After playing around a while I had a bash script to do the work for me. It uses standard linux commands like echo, head, sleep, for and stty so it should work on any Linux box with no additional software or hardware required.

delay=30
measurements=240
#
#Initialize the serial port
stty -F /dev/ttyS0 ispeed 9600 ospeed 9600 -echo cs8
#
#Set the multimeter to remote mode:
echo "SYST:REM" > /dev/ttyS0
#
#Reset the multimeter
echo "*CLS" > /dev/ttyS0
echo "*RST" > /dev/ttyS0
#
#Show 'LOADING..' text on the screen
echo "DISP:TEXT 'LOADING..'" > /dev/ttyS0
sleep 5
#
echo "########" >> values
date >> values
echo "Points $measurements" >> values
echo "Delay $delay" >> values
#
for ((i=1;i<=$measurements;i+=1));
do
#
echo "#################"
echo "Measurement $i/$measurements"
date
echo "#################"
#
#Show text on multimeter screen
echo "DISP:TEXT 'MEASURING..'" > /dev/ttyS0
#
sleep 1
#
#Measure the DC voltage with the multimeter
echo "MEAS:VOLT:DC?" > /dev/ttyS0
#
sleep 2
#
#Read the value
head -n 1 /dev/ttyS0 >> voltit &
#
#Run the DAQ measurement
/home/administrator/comedilib-0.7.22/demo/mmap > mittaus$i
#
#Show counter
echo "DISP:TEXT '$i/$measurements'" > /dev/ttyS0
#
sleep $delay
done
#
#Clear display
echo "DISP:TEXT:CLEAR" > /dev/ttyS0
#
#Return to local mode
echo "SYST:LOC" > /dev/ttyS0

Now I had it all automated. This simple bash script controls both the DAQ card and the multimeter and saves the multimeter values in a text file. No need for me to wait at the setup nor write or copy the values anywhere. It also shows the number of the current measurement on the screen of the multimeter. The commands to send to the multimeter are very simple, SCPI commands so the same commands work for ~any hardware. The same commands also work with GPIB.

I know the same could be done with ‘real’ programming languages like Python or  C or GUI tools like LabView (starting from 780€). But 30 simple lines of bash (the rest’s comments & empty space) does it for me. I just love Linux.

[image]
Tags: linux, planet-fnoss, planet-ubuntu, planet-vapaasuomi, ubuntu, work

My talk at GCDS


Today I gave my talk at Gran Canaria Desktop Summit about Mago. Although it was a testing talk, I think people enjoyed it and I hope to get more contributions from upstream.

I will send the slides to the GUADEC committee, and I guess they will be publish them soon. In the mean time, you can get the slides from the presentations launchpad project that Ted just set up.

Who needs a private cloud anyway? Part 1 - Self Service IT

In my last blog, I tried to explain what is Canonical's strategy regarding cloud computing.  A few people (they'll recognize themselves) got back to me asking why they would use a private cloud.  They found the idea really "cool", but could not see how they could use it.

As with all new technologies, there is always a very big chance that there will be a disconnect between what the people putting some tool together think they are addressing and what the "real" people end up doing with it. Chances are  that what I describe below is not what people will really end up using it for, but I have none the less decided to start a series of blog posts where I'll try to describe quickly some of the possible scenarios that I think makes a private cloud useful. I'll start today with the concept of self service IT.

read more

Contextual advertising on the website: How to pay the bills for Ubuntu-Rescue-Remix.org bandwidth.

I've switched from Google ads to Ad Bard.

The setup could not have been easier and the performance seems to be top notch. I think the content of the ads will be much more interesting to Ubuntu-Rescue-Remix.org users than some of the Google ads.

Backuppc installation Ubuntu 9.04

Installing backuppc from the repository doesn’t result in accessing it over browser by typing http://localhost/backuppc Instead I had go a step further by appending the following snippet from /etc/backuppc/apache.conf to /etc/apache2/apache2.conf Alias /backuppc /usr/share/backuppc/cgi-bin/ AllowOverride None [...]

Git imports

As you might have heard already, Launchpad can now import code from Git repositories. You can then create Bazaar branches of those Git repos.

For example:

bzr branch lp:git

Thanks to Jelmer for bzr-git and Michael & Paul for tying it into our rock-solid import system.

The Ubuntu Museum


Earlier today, Steve Langasek reminded us that Ubuntu 6.06 LTS (Dapper Drake) reaches its end of support on the desktop next week (July 14, 2009). I think it's time for a little nostalgia!

As the maintainer of Ubuntu's KVM package, I spend quite a bit of my time regression testing our virtualization stack (kvm, qemu, libvirt, virt-manager, etc). In doing so, I have constructed a massive archive of virtual machine images.

About 6 months ago, Jamie Strandboge and I kicked around the idea of creating a series of "Linux museums", honoring our heritage by providing download-able virtual appliance images that could run under KVM. Jamie is currently working on something like this for Debian's releases.

I'm pleased to introduce my contribution...The Ubuntu Museum! Here, you can find:
screenshots (png) of each Ubuntu desktop release screencasts (mpeg) of each Ubuntu boot and shutdown sequence
virtual machine images (bzip2, qcow2) of each retired Ubuntu desktop release
The virtual machine images are:
default i386 desktop installations with all packages updated to their final resting state the username and password are both "ubuntu"
Obviously, these releases are completely unsupported and the images are provided for entertainment and educational purposes only!

Since I started using Ubuntu with the Breezy release, I found it quite educational to play around with Warty and Hoary--a bit of Ubuntu history I was missing. It is interesting to see the evolution of the artwork and color schemes. I find some strange satisfaction hitting a few old, memorable bugs and then thinking "boy am I glad we fixed that!" It is also pretty cool to see how much we've improved startup and shutdown times.

I recently attended an excellent presentation by Colin Watson on the history of the Debian and Ubuntu installers. He made the point that it's important to know where we've been, when we're trying to figure out where we're going.

Hopefully some of you will enjoy this trip down memory lane and perhaps learn something too!

:-Dustin

What happened to my rules file?

If you’re anything like me, you might have read something about the plans for debhelper 7 when they were still in the works. The idea of having a debian/rules file as simple as the following sounded pretty darn cool.


#!/usr/bin/make -f
%:
dh $@

Then Debian Sid was unfrozen and Ubuntu Karmic opened for development, and you found a packaging bug you wanted to fix or a package you work on was ready to be merged. Say you needed to run some code manually after a particular debhelper command is run, but the rules file was converted to use some of the new features in debhelper 7. You probably found your self wondering what happened to my rules file!

Well, in this week’s Packaging Training Session James Westby (james_w) will be answering just that question in his session, Debhelper v7: what happened to my rules file? Come to #ubuntu-classroom on irc.freenode.net at 09th July, 12:00 UTC to get the answer and learn how to take advantage of all the cool new stuff in dh 7.

[Discuss this Packaging Training Session on the Forums]

Originally posted by Andrew Starr-Bochicchio (andrewsomething) here on July 8, 2009 at 12:00 pm

Community Council: Nominations

In order to get the Community Council from four to eight members again, we are going to have an election in a few weeks. All Ubuntu members are eligible to vote.

I will announce the details of the election soon. What we want from you now is nominations.

If you know somebody in the Ubuntu community, who

has been an Ubuntu member for a while is dedicated to the project is well-respected and known for balanced views and good leadership has a good overview over various aspects of the project is organised and has some organisation talent

(or you know that this all applies to you), please send an email to me (daniel.holbach at ubuntu dot com) with the subject “[CC Nomination]” until July 17th, 12:00 UTC. (I’ll be on vacation afterwards.) If you can confirm that the person is willing to stand for election, please do so.

What happened to my rules file?


If you’re anything like me, you might have read something about the plans for debhelper 7 when they were still in the works. The idea of having a debian/rules file as simple as the following sounded pretty darn cool.

#!/usr/bin/make -f
%:
dh $@

Then Debian Sid was unfrozen and Ubuntu Karmic opened for development, and you found a packaging bug you wanted to fix or a package you work on was ready to be merged. Say you needed to run some code manually after a particular debhelper command is run, but the rules file was converted to use some of the new features in debhelper 7. You probably found your self wondering what happened to my rules file!

Well, in this week’s Packaging Training Session James Westby (james_w) will be answering just that question in his session, Debhelper v7: what happened to my rules file? Come to #ubuntu-classroom on irc.freenode.net at 09th July, 12:00 UTC to get the answer and learn how to take advantage of all the cool new stuff in dh 7.

So Shiretoko isn’t Firefox So Why Call It That?

I have been using the standard Ubuntu Jaunty repo version of Firefox-3.5 since before it was in the standard security repo when it was in fta's ppa With this version I expected it to be buggy or have oddities such as being called Shiretoko. With the standard repository version I expect it to be Firefox I know the reasoning was mentioned here some of the reasoning makes sense but if a user chooses to manually install firefox-3.5 they expect to get Firefox since this wont ever auto auto-update from 3.0 to 3.5 with out the users expressed permission I see this as an annoyance. Calling it Shiretoko is annoying. Having the user-agent string below tends to break sites.
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1) Gecko/20090701 Ubuntu/9.04 (jaunty) Shiretoko/3.5
Now I am not saying call this thing Firefox if it is really an ubuntu build of Shiretoko but since Shiretoko isn't a standard or mainstream browser it wont be in any Device Database. such as WURFL or DeviceAtlas I say these because I mostly work with mobile related technology but the reasoning applies for any device db or user-agent checker. Face Book makes horrid pop-up windows.
Use the Chat list on the right to start a conversation.You're using an old web browser to browse Facebook. To use the full version of Chat from within a normal Facebook window, please upgrade your browser. Switch to Firefox.
Changing the user-agent of a browser in this day and age severely impacts on a users browsing experience. Since most websites now try to do browser detection (Some better then others) they generate different output for different browsers or even worse sorry this website only works in Netscape Navigator and IE 5 and above.

GNOME-Colors in Karmic


GNOME-Colors

GNOME-Colors

With hundreds of thousands of downloads on GNOME-Look, GNOME-Colors (and its friends Shiki-Colors and Arc-Colors) is with out a doubt one of the most popular themes around for the GNOME desktop. It’s no surprise with  six different color themes and the ability to match you icon theme, GTK+ theme, GDM theme, and wallpaper. Victor (aka perfectska04) has put together a wonderful set, and it’s about time that they are in the Ubuntu archives.

I’m pleased to announce that they are now all just a simple apt-get install away in Karmic.

The meta-packages gnome-colors, arc-colors, and shiki-colors will pull in all six color variations. For those with low bandwidth or expensive connections, you can also just install single variations: gnome-{brave, dust, human, noble, wine, or wise}-icon-theme, shiki-{brave, dust, human, noble, wine, or wise}-theme, and arc-{brave, dust, human, noble, wine, or wise}. There’s also a Xfwm/Xfce4 theme: shiki-colors-xfwm-theme.

For those still running Hardy, Intrepid, or Jaunty, we’re also running a GNOME-Colors PPA where you will always be able to grab the latest versions.

So much thanks to Victor for the themes and being so open to making changes upstream that made things easier for us to package and Benjamin Drung for all his work to make this happen.

sourcecode:binary::???:ppt/odp/pdf

(sourcecode is to binary as ??? is to ppt/odp/pdf)

Ted Gould just posted to the planet with his presentation that he gave at the Desktop Summit. At the end of his post you’ll notice that he uploaded his presentation to Launchpad (at lp:~ted/presentations/2009_desktop_summit/).

I think that is a great idea! Not only does it provide the ability for the community to see what others are using for their presentations but it allows anyone to branch a presentation, which has awesome potential. Especially with the presentation format that Ted chose, SVGs. The S5 presentation format (XHTML/CSS/JS based) would also be a great candidate for easy branching and editing of presentations.

But what if you need to create presentations with others who use Powerpoint or Impress and you wanted to harness the power of a Version Control System? Old powerpoint (ppt) files are binary blobs which don’t work well in version control systems (they *work* but not *well*). Impress (odp) and new Powerpoint (pptx) files are effectively zipped archives of xml and images. However, since it is zipped, bzr treats it as a binary. I only tested with bzr but don’t foresee any of the other systems behaving any differently.

Why would you want to use a VCS for your presentation files? Especially a DVCS like bzr/git/hg? COLLABORATION!

Some of you may know that I am currently working with Open.Michigan, a project at the University of Michigan that enables the creation of Open Educational Resources (OER). OER is effectively a broader term for the concept of Open CourseWare. Basically, everything used in education is a resource, not just presentations, and thus is useful for others to see, use, and remix. If you are curious to see what kinds of things we produce, see our Educommons installation.

OpenMichigan

Back to the topic at hand though: presentations and DVCS.

One of the major areas that the OER community could greatly improve upon is the area of remixing; taking the openly licensed materials and using them, adding new material, and creating something original. Remixing, in general, is enabled by having access to the source files of the material being worked with. Sure, you can use a PDF or a mp3 in a remix, but it is usually better to have the original .odt or multitrack file to work from. This is why Open.Michigan provides to the public the ppt files along with the pdfs of the presentations created through the OER program.

But lets leverage some of the tried and true methods of the FLOSS community in the OER community. One of the biggest and most fundamental benefits of the FLOSS world is that everyone has access to the source code, and can easily get it, edit it, and (hopefully) compile a new version of the program; effectively a “remix.” How does the FLOSS community lower the barriers and increase efficiency for that workflow? We provide public access to code repositories, instructions on building the software (documentation), and a bug tracker to inform what needs to be worked on next.

I want to mirror much of that to the OER community. One of the first things that needs to happen is to provide an easy way to manage multiple versions of a single resource (eg: presentation, video/audio, book). A VCS seems like the obvious choice. But there must be a better way than just managing binary blobs, right?

That is the part that I need to figure out next: how to utilize the power of a DVCS in this genre. Then I can move on to figuring out what a bug tracker for OER would look like (and if it is even needed). The documentation is actually already there, at least for Open.Michigan.

Do you have any ideas?

Ubuntu LoCo: Systems Admin Lessons in Massachusetts


sysadmin-iconThis has been some time in coming but today I can finally announce that the Ubuntu Massachusetts LoCo will be running an event every Wednesday 7pm-9pm at the South End Technology Center with the aim to teach budding new Ubuntu systems administrators how to best administrate an Ubuntu Server and Desktop network.

Event Link: http://www.ubuntu-massachusetts.com/events/4/

The lessons are free and are student driven, with teachers on hand to guide, answer questions and start off each section. Each student is expected to learn in their own time and pick up each section as they past the previous and prior requirements are existing Ubuntu Desktop experience and familiarity with computers. The lessons do not provide certification or any other official qualification, but will be heavily practical.

This will be in addition to the existing successful Learn Ubuntu Desktop sessions we do on Tuesday evenings but aimed at students who want to go further into the field of systems administration. Computer support and other queries will not be dealt with and people needing Ubuntu help should continue to come on Tuesdays.

The lessons will be both based on and feed into the fledgling Ubuntu Learning project, each lesson created will be based on the Systems Administration Topics to be documented in the wiki and then translated into a moodle course. This will hopefully spark other groups to be able to offer similar lessons once our courses build up.

Anyone interested of have any advice for our new event?

Good night…

… and with this I’ll give you:


small_animated-text_ogv.png
(click to play back, ogg/theora, ~1.8 MBytes)

Edit: This of course works under compiz and metacity (+compositor). Under plain metacity you would not get the transparency against the desktop though.

PDPC and FOSS Events

As some of you know, the PDPC ( our overloads that manage Freenode ) have been around and tirelessly working on Freenode. Well, in a move that I am calling “Brilliant” they have started to give back to the community in fun new ways. It’s great to see this kind of motivation anywhere, and from the PDPC, it really gives me a warm feeling in my stomach. One example that I was given ( by the great JonathanD ) is http://fossevents.org/. Let’s all give them a big hand!

Launchpad.net could be faster

https://bugs.launchpad.net/launchpad/+bug/305630

Since Ubuntu uses Launchpad a lot, it is really frustrating, if this web application is quite slow.

Therefore I've filed a bug about it.

As I write in the report, there are bugs about particular issues already, but I'd like to put some attention to this: a lot of Ubuntu developers (and those from other projects using Launchpad) are using this website a lot and therefore it should be as snappy as possible.

bzr-pager Plugin

I like the feature in git, where commands that produce long output get piped to $PAGER.
This means, that if you do a "git diff" and its output will not fit into the current terminal window without scrolling, it will get piped to "less" by default, so that you can easily search and scroll in the output. Additionally (and that's the main point IMHO) it does not pollute your scrollback history (when you exit from your pager, the terminal will only display the call to the command, but not its output).

Luckily, there's a plugin for bzr, which provides the same functionality: bzr-pager

You can install it as follows:

mkdir -p ~/.bazaar/plugins && \
cd ~/.bazaar/plugins && \
bzr branch lp:bzr-pager pager

ack-grep - a source-aware grep replacement (searching for content in files)

http://petdance.com/ack/

ack (or ack-grep) is a nice "grep" replacement, when searching in a directory with source files.

It does not require any path to start searching and the recursive option is enabled by default. Also, it will exclude directories of version control systems (like .svn, CVS, .bzr, .git) and nicely formats hits.

E.g., "ack-grep foo" will search all (relevant) files in the current directory for "foo". And if the current directory is under source control, it will be much faster than using "grep -R foo .", since it excludes the control directories. (Ye

I haven't tinkered with its options or man page, although I'm using it since quite some time now, since the defaults are so good already and it provides a great out-of-box experience and performance boost.

The man page states when to use the "normal" grep:

WHEN TO USE GREP
ack-grep trumps grep as an everyday tool 99% of the time, but don’t throw grep away, because there are times you’ll still need it.
E.g., searching through huge files looking for regexes that can be expressed with grep syntax should be quicker with grep.

Additionally, "grep" appears to be still more useful when chaining commands, e.g. to find all references of "css" in the file list of "ack-grep" ("dpkg -L ack-grep | xargs grep css"). When using ack-grep here, it will also recursively search in all listed directories (as in "for i in $(dpkg -L ack-grep); do test -d $i && echo $i; done").

On Debian/Ubuntu, ack-grep is only a "sudo apt-get install ack-grep" away.. :)

(The ack homepage has some convincing Testimonials, too)

Desktop Summit Talk

I gave a talk at my first ever Desktop Summit, which went well, though a little short. Brought out some of the technical underpinnings of the messaging menu and indicator system, and had some frank discussion about the mistakes that we've made (and are fixing). I've put up the slides for those not there, I'm told there will be video shortly.

Desktop Summit '09 Talk

Also, I forgot to blog about the talk that I was giving to my local Rotary chapter about Free Software. It was a fun talk and one that was more of an emotional talk than the technical talks that I normally give. Which allowed me to be a little more Tufte-ian.

Rotary Talk

Lastly, I made a project on Launchpad for people to put thier presentations in so that they're easy to find. It's creatively called "presentations" you can upload your presentation with: bzr push lp:~<lp username>/presentations/<talk name>

Tarmac sprint this Friday (10 Jul 2009)

Want to hack on Tarmac? Want to learn how to use the Launchpad API (or want to use your existing knowledge)? Want to learn to use bzr's functionality programmatically? There is a Tarmac mini-sprint scheduled for Friday, 10 Jul 2009 in #tarmac on Freenode. Tarmac 0.2 will also be released this weekend based on the work completed on Tarmac on Friday.

Also, if you'd like to know more about Tarmac, or would like to participate, please join the Tarmac Launchpad group and subscribe to the mailing list.

July 07, 2009

Track changes to /etc (configuration files) with etckeeper

I'm currently setting up my new dedicated server and one of the first packages I've installed there has been etckeeper, to keep track of any changes to files in the etc (configuration) directory.

Etckeeper supports various VCS (version control systems), namely Git, Mercurial and bzr.
Bzr support is available in Ubuntu since "Hardy".

I've chosen to use "bzr". If you want to stick to the default (git), just leave out the bzr related stuff:

# Install etckeeper and bzr:
sudo apt-get install etckeeper bzr

# Read the fine documentation:
zless /usr/share/doc/etckeeper/README.gz

Quick walkthrough:

# Edit the config, chose the VCS to use:
sudo sensible-editor /etc/etckeeper/etckeeper.conf
=> VCS=bzr

# Init the repository:
sudo etckeeper init

# Verify that the file list is OK and commit:
cd /etc
bzr commit -m "Initial checkin"

Now, whenever you use "apt" to install or remove programs, it will commit any changed files before and after the action (if there are any changes - not all packages install files into /etc).

Because "/etc" is now a regular repository, you can also manually commit any changes there, e.g. when editing some configuration file.
If you don't manually commit any changes, they will get picked up during the next run of apt automatically.

This is of course highly recommended for Desktop systems, too: you can always look up what changes to the system configuration have been done (including the exact time when you or somebody else has installed a particular package).

Give it a try, it won't hurt :)

Update: Thierry Carrez has written some chronicle articles about etckeeper

Ubuntu Podcast #30

With Firefox 3.5 out, I decided to give the much discussed video codecs a try. Ubuntu Podcast #30 is a bit over 50 minutes long, at 640×360. The original video file is over 500 MB. Using ffmpeg2theora, the OGV is around 180 MB. Not bad.

The fallbacks seems to work ok. IE visitors see the embedded flash player, Safari users can watch the video with Quicktime.

Playback on a 1.6 ghz machine with 1.5 GB RAM seems a bit choppy at times, but not completely horrible.

Let me know what you guys think.

[image]

Gran Canaria and Akademy

The main talks are over for Gran Canaria Desktop Summit and Akademy. Glyn Moody wins the prize for best keynote, I always did admire him as the only writer worth reading in Computer Weekly and he proved himself to be an inspirational but thoroughly grounded speaker. I spent much of the time running between rooms manning three of the video camers, and at times acting as session chair too. Nobody from Gnome volunteered to help out so their videos will be badly cut in places, eventually Robert Knight was good enough to help. Running around gave me a good feel for a lot of the talks which were varied and interesting. Turns out there is more to Gnome 3 than cleaning up some APIs (infact GTK 3 may not happen in time for Gnome 3 although nobody seemed to be sure). Marble had the most bling demo and now features other planets too. The Plasma Netbook talk was interesting, the developers have done a lot of research into the user interface possibilities, they critised the Ubuntu Netbook setup for only using the desktop as a simple launcher and not anything else it could be used for (of course this is changing, it'll be integrating Plasma soon). The track on money in free software gave various thoughts: Till had the problem of KDAB hiring all the PIM maintainers so there is the danger that nobody is left to maintain the bits they are not so interested in, the Amarok guys seem unsure how to get started making money although they seem to have plenty of ideas on it, and Frank Karlichek announced the openDesktop.org App Store which will be an interesting experiment in making money by selling binaries.

Today was the e.V. meeting. Your new KDE board members are: Adriaan de Groot (re-elected), Celeste Lyn Paul and Frank Karlichek, well done on getting a free meal to them.

Lots of parties happened, after the Canonical one, Nokia and Basyskom both had nights of free beer leaving everyone quite out-partied (until the Collabora one tomorrow anyway). And of course the beach is a nice way to spend the lunch break during the e.V. meeting.

[image]
Why Eva, with these free drinks you are really spoiling us no?

[image]
Till gets philosphical

[image]
Our conference can be as good as the one in Jamaica!
photos on Flickr

WordPress and Drizzle

So, for amusement, education and a desire to put Drizzle through its paces with a real-world application, I built a Drizzle database adapter for WordPress.

Rather than completely dumping the native wpdb class (as most WordPress database adapters appear to do), I have subclassed it, replacing only the methods which use mysql_ functions.

This way, it’s easier to maintain, and more likely to work with plugins and future versions of WordPress. I have also written a cheesy, retroactive test suite for wpdb… I haven’t done a lot of TDD, so I have no idea if it’s any good, but it was helpful during development. ;-)

Because Drizzle has removed column types and various bits of syntax that WordPress (and heaps of  plugins) rely on, the adapter does a tiny bit of query munging along the way. For now, the only filters required are for CREATE, ALTER and friends.

Here’s a screenshot of WordPress running on Drizzle. Note that in the sidebar, I’m showing off two plugins which maintain their own tables — WP-PostRatings and Twitter Tools.

WordPress on Drizzle

To test this bad boy out — because it’s absolutely not for production blogs! — you’ll need the Drizzle server (and its dependencies, naturally), the Drizzle PHP extension, WordPress 2.8 and my adapter. Note that I have yet to test it with WordPress MU, but it shouldn’t require many changes if it doesn’t work already.

If you use Ubuntu and want an easier time of it, you can get almost everything from the following PPAs. The Drizzle server isn’t packaged, but it’s incredibly easy to build and changes so quickly that you’ll probably find you want to keep it up to date from the source anyway.

deb http://ppa.launchpad.net/drizzle-developers/ppa/ubuntu hardy main
deb http://ppa.launchpad.net/jdub/devel/ubuntu hardy main

(I have only built my packages for Ubuntu 8.04, hardy, but you can always just grab the source packages and build them for whatever you’re using.)

Make sure you install the database adapter before you go through the WordPress install process. In every other respect, your test blog should operate in a completely unsurprising manner. Except when Drizzle crashes… but that’s precisely why you’re testing it, right? ;-)

On Drizzle

I am incredibly impressed with the Drizzle project. It’s a living case study of Open Source innovation and project renewal.

In response to what could be regarded as the unadventurous maturity of the MySQL project, the Drizzle developers have not simply chosen a new goal and forked the code — they have crafted a mission based on an insightful reading of current and future needs, questioned everything about MySQL without throwing away what they had learned, and thoroughly redefined their expectations and model for community collaboration.

It’s the perfect application of Software Freedom’s most functional of permissions: the freedom to fork. Like other forks built on both technical and social foundations — such as Firefox and, coincidentally, WordPress — I think it will eclipse its predecessor. Yes, even the mighty MySQL. :-)

I hope that what the Drizzle developers have done will teach and inspire other projects to look beyond their own horizon.

Here’s a rocktastic presentation by Brian Aker, “Drizzle: Rethinking MySQL for the Web”, from the recent Open Source Bridge conference:

Click here to view the embedded video.

Planet Ubuntu

Planet Ubuntu is a window into the world, work and lives of Ubuntu developers and contributors.

If you are an Ubuntu Member, and would like your blog aggregated here, please see the PlanetUbuntu wiki page.

Updated on July 09, 2009 03:54 PM UTC. Entries are normalised to UTC time.

Ubuntu World Wide

Subscribe

Feeds

A. Walton (feed) Aanjhan Ranganathan (feed) Aaron Toponce (feed) Adam Sommer (feed) Adi Roiban (feed) Alan Pope (feed) Alberto Milone (feed) Alessio Treglia (feed) Alex Launi (feed) Alexander Sack (feed) Alexandre Vassalotti (feed) Amit Kucheria (feed) Amy Jiang (feed) Andi Darmawan (feed) Andre Noel (feed) Andrea Colangelo (feed) Andrea Corbellini (feed) Andrea Gasparini (feed) Andrea Veri (feed) Andres Rodriguez (feed) Andrew A. Barber (feed) Andrew Bennetts (feed) Andrew SB (feed) Andrew Zajac (feed) André Gondim (feed) Andy Apdhani (feed) Andy Price (feed) Ante Karamatić (feed) Anthony Mercatante (feed) Ara Pulido (feed) Armin Ronacher (feed) Arthur Schiwon (feed) Behind MOTU (feed) Ben Collins (feed) Benjamin Mako Hill (feed) Benjamin Rubin (feed) Bodhi.Zazen (feed) Brandon Holtsclaw (feed) Brandon Perry (feed) Brian Burger (feed) Brian Curtis (feed) Brian Murray (feed) Bryan Quigley (feed) Bryce Harrington (feed) Carlos Diener - emonkey (feed) Carthik Sharma (feed) Caspar Clemens Mierau (feed) Celeste Lyn Paul (feed) Cesare Tirabassi (feed) Charles Davis (feed) Charles Profitt (feed) Charlie Smotherman (feed) Chris Cheney (feed) Chris Gregan (feed) Chris Rohde (feed) Christer Edwards (feed) Christian Bjälevik (feed) Christian Mangold (feed) Christophe Sauthier (feed) Christopher Denter (feed) Chuck Frain (feed) Chuck Short (feed) Clay Weber (feed) Cody A.W. Somerville (feed) Colin Watson (feed) Corey Burger (feed) Craig A. Eddy (feed) Cyril Lavier (feed) Dan Trevino (feed) Daniel Hahler (feed) Daniel Holbach (feed) Daniel Silverstone (feed) Daniel Stone (feed) Daniel T Chen (feed) Danny Piccirillo (feed) Dante Díaz (feed) Dave Morley (feed) Dave Murphy (feed) Dave Sullivan (feed) Dave Walker (feed) David Farning (feed) David Futcher (feed) David Planella (feed) David Rubin (feed) David Siegel (feed) Dax Solomon Umaming (feed) Dean Sas (feed) Debian Package of the Day (feed) Dennis Kaarsemaker (feed) Didier Roche (feed) Dirk Deimeke (feed) Dmitri Alenitchev (feed) Dougie Richardson (feed) Duda Nogueira (feed) Dustin Kirkland (feed) Eddie Martinez (feed) Edward A Robinson (feed) Efrain Valles (feed) Elizabeth Krumbach (feed) Elliot Murphy (feed) Emanuele Gentili (feed) Emilio Pozuelo Monfort (feed) Emma Jane Hogbin (feed) Eric Hammond (feed) Eric Lake (feed) Evan D. (feed) Fabio M. Di Nitto (feed) Fabián Rodríguez (feed) Federico Torres (feed) Freddy Martinez (feed) Greg Grossmeier (feed) Guy Van Sanden (feed) Harald Sitter (feed) Henrik Omma (feed) Herman Bos (feed) Hollman Enciso (feed) Iain Lane (feed) Irvin Piraman (feed) Jacob Peddicord (feed) Jad Madi (feed) James Henstridge (feed) James Westby (feed) Jamie Strandboge (feed) Jani Monoses (feed) Jason Brower (GSoC) (feed) Jeff Bailey (feed) Jeff Waugh (feed) Jelmer Vernooij (feed) Jeremie Corbier (feed) Jeremy Austin-Bardo (feed) Jerome S. Gotangco (feed) Jim Campbell (feed) Jim Hutchinson (feed) Jo Shields (feed) Joe Barker (feed) Joe Terranova (feed) Joey Stanford (feed) John Crawford (feed) John Meinel (feed) John Vivirito (feed) Jonathan Carter (feed) Jonathan Ernst (feed) Jonathan Jesse (feed) Jonathan Marsaud (feed) Jonathan Riddell (feed) Jonathan Thomas (feed) Jonh Wendell (feed) Jono Bacon (feed) Jordan Mantha (feed) Jordi Mallach (feed) Jorge Bernal (feed) Jorge Castro (feed) Joseph Jackson IV (feed) Juanje Ojeda (feed) Julian Andres Klode (feed) Jussi Schultink (feed) Justin Dugger (feed) Kees Cook (feed) Kenneth Wimer (feed) Kevin Kubasik (feed) Khairul Aizat Kamarudzzaman (feed) Kurt von Finck (feed) Kyle McMartin (feed) Laudeci Oliveira (feed) Launchpad News (feed) Laura Czajkowski (feed) Leandro Gómez (feed) Leo Iannacone (feed) Licio Fonseca (feed) Lionel Dricot (feed) Luca Falavigna (feed) Lucas Nussbaum (feed) Luis de Bethencourt (feed) Luke Faraone (feed) Luke Yelavich (feed) Lydia Pintscher (feed) Maciej Danielski (feed) Mackenzie Morgan (feed) Mahyuddin Susanto (feed) Maia Kozheva (feed) Manu Cornet (feed) Marcus Czeslinski (feed) Mario Young (feed) Mark Shuttleworth (feed) Mark Van den Borre (feed) Martin Albisetti (feed) Martin Böhm (feed) Martin Kaufmann (feed) Martin Meredith (feed) Martin Owens (feed) Martin Pihl (feed) Martin Pitt (feed) Martin Pool (feed) Mateusz DrożdżyÅ„ski (feed) Mathias Gug (feed) Mathieu Rousseau (feed) Matt Galvin (feed) Matt Zimmerman (feed) Matthew East (feed) Matthew Garrett (feed) Matthew Helmke (feed) Matthew Lye (feed) Matthew Revell (feed) Maurizio Moriconi (feed) Melissa Draper (feed) Michael Anderson (feed) Michael Casadevall (feed) Michael Garrido (feed) Michael Lustfield (feed) Michael Rooney (feed) Michael Terry (feed) Michael Vogt (feed) Miguel Ruiz (feed) Miia Ranta (feed) Mike Basinger (feed) Milo Casagrande (feed) Mirco Müller (feed) Mirjam Waeckerlin (feed) Mohd Faizul Zulkipli (feed) Morgan Collett (feed) Morten Kjeldgaard (feed) Muhammad Takdir (feed) Murat GüneÅŸ (feed) Mythbuntu (feed) Nathan Haines (feed) Nathan Handler (feed) Neil Jagdish Patel (feed) Nick Ali (feed) Nick Barcet (feed) Nick HS (feed) Nicolas Derive (feed) Nicolas Deschildre (feed) Nicolas Valcárcel (feed) Nik Butler (feed) Nizar Kerkeni (feed) Norman Garcia (feed) Og Maciel (feed) Oliver Grawert (feed) Onkar Shinde (feed) Oxford Archaeology (feed) Paolo Naldini (feed) Paolo Sammicheli (feed) Pasi Lallinaho (feed) Patrice Vetsel (feed) Paul Hummer (feed) Paul Tagliamonte (feed) Pedro Fragoso (feed) Pedro Villavicencio (feed) Pete Graner (feed) Pete Savage (feed) Philip Newborough (feed) Philipp Kern (feed) Quim Gil (feed) Rafael Proença (feed) Rafik Ouerchefani (feed) Ralph Janke (feed) Raphael Pinson (feed) Riccardo Setti (feed) Richard Johnson (feed) Rick Clark (feed) Risto H. Kurppa (feed) Robert Collins (feed) Roderick B. Greening (feed) Rodrigo Pereira (feed) Rolando F. Blanco C:. (feed) Rubén Romero (feed) Russell John (feed) Ryan Kavanagh (feed) Ryan Troy (feed) Sam Cater (feed) Santiago Zarate (feed) Sarah Hobbs (feed) Sayak Banerjee (feed) Scott Balneaves (feed) Scott James Remnant (feed) Scott Kitterman (feed) Scott Ritchie (feed) Sebastian Dröge (feed) Sebastian Heinlein (feed) Sebastian Kügler (feed) Sebastien Bacher (feed) Siegfried Gevatter (feed) Simon Law (feed) Simos Xenitellis (feed) Sivan Greenberg (feed) Soren Hansen (feed) Sridhar Dhanapalan (feed) Stéphane Graber (feed) Stefan Lesicnik (feed) Stephan Hermann (feed) Steve Stalcup (feed) Steven Harms (feed) Szilveszter Farkas (feed) Søren Bredlund Caspersen (feed) Ted Gould (feed) The Fridge (feed) Thierry Carrez (feed) Thom May (feed) Thomas David (feed) Tim Penhey (feed) Tim Sharitt (feed) Timo Aaltonen (feed) Timo Jyrinki (feed) Toby Smithe (feed) Tollef Fog Heen (feed) Tomas Žeimys (feed) Tony Yarusso (feed) Travis Newman (feed) Travis Watkins (feed) Tristan Rhodes (feed) Ubuntu Demon(Roald Hopman) (feed) Ubuntu NGO Team (feed) Ubuntu Packaging (feed) Ubuntu Podcast from the UK LoCo (feed) Ubuntu QA blog (feed) Ubuntu Release blog (feed) Ubuntu Screencasts (feed) Ubuntu Server blog (feed) Ubuntu Studio (feed) Venkat Raghavan (feed) Vincent Untz (feed) Yuriy Kozlov (feed) Zak B. Elep (feed) à®® ஸà¯à®°à¯€ ராமதாஸ௠(feed)


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser
Mobilytics