Depth of Knowledge

Thoughts from a tech consultant.

Lappy on Borrowed Time

I have been using my Dell 700m laptop as my primary computer for the best part of a year now. And the machine is on borrowed time. I think.

Last year (2007, ack, that was two years ago…. anyways), I allowed the warranty to expire on the machine because I figured that since it had been so reliable in the past that I would probably be able to get away with it. Well, that streak is now wearing to its end.

And it’s the little things that are starting to go. For instance, I am missing some of those little rubber feet on the bottom that prevent it from sliding around the desk. Also, the battery life is serious diminishing, and barely lasts 30 minutes at this point.

However, the most recent issue is that the speakers have cut out. Turns out the the speaker wire that runs up through the hinge area has slowly been rubbing away over the past 5 years and has now been severed due to general wear and tear. So no more speakers.

Dell doesn’t sell the speaker individually either, they just come with an entire new lid (including monitor) for $550. So, I have removed the speakers and will attempt to repair them at some point in the future.

This is just indicative of what happens with laptops I suppose. They get exposed to all sorts of little bumps, wiggles and jiggles in their lifetimes, and eventually little things wear away.

As I mentioned before, Lappy is on borrowed time, and sooner or later something vital is going to break, and there is no warranty left to deal with it.

Anywho, the broken speakers thing got me interested in looking for a new machine, and the one I have come across seems to be fancy shmancy. The dell Latitude E4200 is what I would call an “ultra-mobile workstation”. Functionally it is more or less the same at the 700m for day to day laptop use. The screen size is the same, graphics are still handled onboard, and the primary component manufacturer is still Intel (wooo, out of the box linux drivers). Unlike the 700m, the E4200 can be used with Dell’s E-Series docking stations.

I have never used a laptop with a docking station, because, for the most part, I couldn’t be bothered. Why not just use a desktop. But the new docks from dell support dual monitors, which is something that has really been missing for me. Actually to be honest, I have dual monitor set-up sitting in my workshop, but they aren’t connected to a computer, they are just sitting there collecting dust.

So I am rather tempted to hand lappy off to a deserving person and move to a shiny new computer.

As I said, lappy is on borrowed time.

Now if I only had a spare $4k.

-Ted

Changes to Comlore.com

Over the past several days, I have been working to rearrange how the comlore.com domain is organized.

Originally, I purchased the domain as part of a web development business that I was running around 1999/2000, however, it sat at a pretty basic level for the majority of five years.

There are a couple sites running on this domain, and traditionally they have just been subdirectories such as /bike, /httperf and /resurgence. However, in pursuit of my new career as a freelance software engineer, I have restructured the domain.

  • My cross canada bike website is located at http://bike.comlore.com
  • My httperf portal is located at http://httperf.comlore.com
  • This blog has moved to http://tbullock.comlore.com
  • Resurgence has been purged.
  • The root directory will be headquarters for the new business

A soon to be re-launched project about designing open source home theatres will be available at http://createyourhometheatre.comlore.com in the coming weeks.

Httperf Status - 2008-12-30

I have to acknowledge that I have been dropping the ball in regards to completing the next release of httperf. While there has been a good amount of work done on this tool since the last release (0.9.0) I just haven’t gotten around to wrapping it up yet.

Anways, I had better get to it now.

Check CVS for the todo list.

Other than simple procrastination, one major reason I put off development was that autoconf support for detecting the c99 constructs I was using wasn’t integrated until 2.62.

Then I was going off on tangents, trying to implement my own libevent based http client library (which is definitely a useful project in my own opinion) and working to get mtp support introduced into the kernel.

Anyways, where we stand today is that the head of cvs is not terribly stable at very very high request rates. Maybe this is because httperf has never been able to achieve the rates that we are now reaching before and it has exposed some hithertofore unkown issue.

Whatever, I’ll track it down.

As for the libevent migration. Well, Adrian Chadd was kind enough to do a partial port. However there is much more work to be done in this area such as migrating timers, timeouts, dns and http control into the libevent core loop.

Long term, httperf will dramatatically shrink in size. Event logic, the http client, and metrics collection can all be loaded onto libevent and some (as of yet unwritten) plugins. httperf will be a set tools implementing various workload generators and may further evolve into a workload language implementation.

A Spin With Gnome-blog

I was poking around the software repository for opensuse 11.1, and came across a tool called gnome-blog. This is a panel applet which is supposed to allow me to post to my blog directly from the desktop rather than the supposedly tedious process of opening the blog website and posting from there.

Anyways, the tool is supposed to allow me to drag and drop images inline with the text, so I figure I will give it a whirl.

This version of gnome-blog is from 2006, and appears to be the most recent, so I suppose that development has stalled. Google has failed to deliver anything of interest more recent than that.

Update: I am not impressed. So long gnome-blog.


-Ted

Linux Kernel Space Media Transfer Protocol

So after a couple years of pondering I have finally begun work on implementing a kernel space driver for the media transfer protocol.

Yes, yes, this is my first foray since university into kernel space, but I have had enough of the user-space solutions to implementing the media transfer protocol. Hundreds of devices have now implemented the darn thing (including my iriver clix if you recall), and what’s more the USB.org folks have finally published the 1.0 version of the standard.

First here is a bit of the technical reasoning.


  1. Already two distinct user-space implementations which both share similar drawbacks. libmtp, and libgphoto

  2. Dependant on libusb which has stalled in development

  3. Race condition in device connection, first application to detect and connect blocks any other software from using the device until connection is dropped



Etc, the current implementation suffers from all the problems that user space drivers suffer from in the monolithic world (even the microsoft implementation has this going on). Also, it’s about time I get my hands dirty in the kernel for pete’s sake.

So how is this thing going to work you might ask?

Well, here is how I see it right now, and others are welcome to chime in on this.

The protocol is implemented partly in kernel space, and partly in user-space depending on necessity and appropriateness.

Kernel Space Driver (mtp):
Connects and manages all operations:
Exposes file hierarchies as a mountable file system
Implements protocol for transferring straight files.
Issues device handles to userspace which can be used asynchronously (no more device pointers!)
Automatic device connection

User Space Library (libmtp-media)
Implements protocol for managing media (including meta-data) (music, pictures, video, etc)

User Space Library (libmtp-cal)
Implements protocol for managing contact and calendar (vcard, ical, etc)

Essentially the protocol implementation will be separated across a variety of locations.

Anywho, after an hour or so of fiddling, here is the latest line from dmesg:


usb 4-5: new high speed USB device using ehci_hcd and address 9
usb 4-5: configuration #1 chosen from 1 choice
mtp: USB Skeleton device now attached to USBSkel-192
usb 4-5: New USB device found, idVendor=4102, idProduct=112a
usb 4-5: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 4-5: Product: iriver clix
usb 4-5: Manufacturer: iriver Limited
usb 4-5: SerialNumber: 41dff81c000000f33230303530313031
usb 4-5: USB disconnect, address 9
mtp: USB Skeleton #192 now disconnected


Not much, but hey it’s the beginning of the road here.

Lastly, if anyone wants to employ me to design this, I am certainly on the market.

-Ted Bullock