Older blog entries for dsifry (starting at number 28)


Whew! I've been getting a workout lately writing MRDs. It's funny - after I wrote the first one, writing the second was much easier - and now I'm going back over the first one to polish it up - there's so much I missed, and it is often so easy for me to slip up and write specs instead of requirements. You see, I already have the design layed out, sir... :-)


Happy birthday, hacker! How's things going? Haven't heard from you in a while.

Went to my uncle's 70th birthday party on Sunday. That guy's still got more energy than I hae at less than half his age. That and a huge heart to go with his energy. I sure wish that I'm that cool when I'm 70.


Unbelievable tht she's almost 18 months old. What an incredible cutie she is. Yeah, I'm a proud dad. So sue me. Here she is frolicking with her second cousin, and here she is with mom and dad in pigtails.

Off to bed.


Writing the MRD for OpenFlock. Yeah, that's a bit ass-backwards, but now that I've got the time to spend on it, I really want to make sure that I've done my planning right - which means a requirements definition and a real spec for the code. This is, as any software engineer will tell you, the hardest parts of the job but the time really pays off because

  • You know when you're done
  • You can quickly get others up-to-speed on the project
  • You can actually do QA on the code - to see if it meets the requirements and the specification
It does feel good, in the same way that getting to the gym feels good - first it hurts, but you know that later it's going to pay off.


Got almost all of my CDs ripped and onto my MP3 server. I spoke with someone tody who told me about some whiz-bang AC-driven computer-controlled FM transmitters which means that I can turn the MP3 server into a FM radio station, thus removing yet another set of cables from the stereo. It also means that all I need to get is a FM radio connected to the speakers in the backyard, and I've got my sound system all set - 802.11-powered iPAQ wherever I am talking to the MP3 server via the server control system, and the MP3 server broadcasting over the FM airwaves...

Busy day today, again. Good thing I've got my mp3's on the stereo! Last night I updated my mp3 server control system to do better error checking and to play entire directories (rather than just single tracks). I found a new fun use for it, too. We had some company over (my cool aunt and uncle) and without telling them, I started playing tracks from a sound-effects CD that I had ripped. Because I use esd for doing music mixing, I could seamlessly layer sounds on top of each other - and soon they were hearing 2 people having sex in a babbling brook. With a toilet flushing in the distance. I could add sound effects to the conversation as fast as I could scroll the iPAQ! We had a great laugh. I gotta get myself some more sound effects... Anyone know of a good spot on the net, or have any good CDs to recommend? I got my current set from a CD in the bargain bin called "Backgrounds for Telephone Calls and Sound effects for Answering Machines". Well worth the $5 spent in entertainment yesterday...

Fun with iPAQs and 802.11...

I got the single PCMCIA socket sleeve for my iPAQ (after waiting for 2 months for my dual PCMCIA socket sleeve, grrr), and got 802.11 wireless networking working. Pretty easy, actually - got the drivers off of wavelan.com, installed them, and set up the crypto. The only downside is that the iPAQ is pretty flaky about being turned off with the card still in the socket. Buggy driver, I expect. I suppose that'll go away when I finally install Linux on the thing.

In the meantime, I've been having fun with my home mp3 server. I whipped up a really quick and dirty PHP-based server control system. Now I can walk around the house and control my mp3 server (it's connected to the stereo) with the iPAQ web browser. For that matter, I can control the server with any old web browser. :-)

It's so nice to be able to do little hacks like this every once in a while. Now if I could just get my thinkpad IR port to talk with my stereo, I'd be in heaven!

Oy, busy busy busy. Knock on wood, there's lots of paying work out there, even in today's climate.

dyork, the Japanese LPI Banner you mentioned means (loosely): (Left hand side)The worldwide accepted standard (Right hand big text): Linux engineer certification test, LPIC.


Well, I'm finally getting the hang of LDAP (OpenLDAP) and Apache's auth_ldap. I can now create, modify and delete users over the web, and I can authenticate them against apache. I'm sure that I could get the LDAP PAM module working, but I don't need it for what I'm doing now.

Now I can create a list of users, send them randomly-generated passwords, and they can go to their directory and change their own passwords to whatever they like.

The only point that I dislike, right now, is that I can't seem to get PHP to correctly create a SSHA hash of a password by itself - I'm left to doing a nasty backtick hack to call ldappasswd. I can create DES + salt hashes, but I'd really prefer the extra security of SSHA. If anyone knows of a way to do this from within PHP, please let me know.

Getting in-depth with OpenLDAP and PostgreSQL. I've been meaning to really sit down and learn LDAP - it seems pretty simple at the conceptual level. The problem is that it took me over 4 hours just to get a basic database and schema up. Then it took another 3-4 hours to build a PHP script to let me manage the schema. What a pain in the ass! Still, now tht it's done, I don't have to go through that learning curve again. Somebody ought to write up an OpenLDAP/PHP HOWTO. Perhaps in my copious spare time...

I've also been converting an old mysql-based document management system into PostgreSQL. I'm doing this mostly because I need to use PostgreSQL in a project in order to feel like I really understand it. Neither PostgreSQL nor OpenLDAP has easy-to-use documentation, too bad. Thank God I already have a pretty firm grasp on SQL. Learning the psql command isn't too hard, not much different from the mysql command.

It'll be cool to have the document management system up and authenticating against the LDAP database. Perhaps I'll then package it up and release it to the world, just what the world needs, another intranet/document mgt system... Off to bed.

IRDA on Linx absolutely sucks. I've spent most of the afternoon and evening just trying to get some basic feedback from an IBM thinkpad. First you have to run PS2.EXE from DOS to turn on the IRQ and IO Port, then you have to recompile the kernel with IRDA support (and irda.o keeps failing as a module because of unresolved dependencies with the function sk_run_filter(). This function is included if you set CONFIG_FILTER=y in the kernel, which I do... Not to mention that now you've got all these modules and devices - ircomm, irnet, ir_tty AND ir-tty, to name a few. Sheesh!

All I really want to do is turn my thinkpad into an IR remote control for my stereo, using LIRC, what a pain in the ass!

If there's anyone out there that's gotten LIRC working with a thinkpad, let me know. Otherwise I'm going to shelve this for a while.

6AM Tuesday morning. And I've already been up for an hour. Ahhhh. I can really get used to this unemployment thang. I'm finally getting unwound enough from life and times at Linuxcare and Turbolinux to really relax and enjoy the mornings.

I'm playing a lot of golf, getting out and taking the dog on long walks in the park, and finally getting back into some hacking for fun.

I must say that kjofol skins for xmms totally rock.

If you would like to reach me from now on, best to send email to david at sifry dot com.

Whew, long time no post.


I got a new job - VP of Engineering. This means I have to wear two technical hats - both as CTO, my old job, and now as VP of Engineering. I have been having something of an amusing time finding out how different the two roles are, much to my charign.

As CTO, I go out and talk to a lot of customers, partners, and the press. It's my job to be a visionary - to research and understand new markets for Linuxcare, to define and pursue the strategic vision of the company along with the executive team. It also means that it's my job to talk a lot with customers and potential customers and open their eyes to the benefits of open source, and to Linuxcare's role. It involves a lot of sales activity. It is about defining and architecting the future products and services we'll offer. It's a great job.

As VP of Engineering, I have a very different role - I have to have very well defined requirements, specifications, and test plans - and I have to do everything I can to make sure that the engineers know exactly what they are building, for whom, and what their deadlines are. I spend my time talking with the engineers, project managers, and end-customers to make sure that we're on track and that the engineers have all the resources they need. It is my job to reduce their complexity, have well-defined deliverables, and make sure that we're making our dates.

The problems started when I began talking about the sales calls I was going on, describing some of the cool future uses of the projects and technologies we were building. Things got really bad when I brought some of the engineers out on sales calls, and they heard "Dave the CTO" talking to customers. ;-)

What I didn't realize is that I have an interesting ability to hold these two dissonant job descriptions in balance in my mind - The visionary that is describing where we're going to take the customer, where Linucare's competencies are evolving, and the kinds of products and services we'll have in 6 months was scaring the bejesus out of some of the engineers who were wondering, "Omygod, is he expecting me to have that thing built today?"

Lessons Learned

The hard reality hit me in the face when one of the engineers got very hesitant and started asking questions about product definition - at first, I was a bit put off, but after some long discussions with him and the other members of the team, I learned that I wasn't communicating clearly exactly what he and his team were supposed to build RIGHT NOW. Instead it looked like there was scope creep all over the place, and that the entire process was completely unfocused.

Essentially, I wasn't being clear about when I was CTO, and when I was VP of Engineering. And as VP of Engineering, I had to make sure that I was bludgeoning the hell out of the CTO - so that the engineers had clear knowledge of exactly what they were to build, who they were building it for, and when it was due. There is no room for the visionary in that role - it has to be very concrete, making sure that we have well-defined requirements, specs, project plans, etc. Basically, I had to tell the CTO to shut up. ;-)

This has been a really valuable learning experience for me - and I'm really glad that my team has gotten through this with me with mostly chuckles and good natured barbs. I'm really grateful that they showed me where I was fucking up.

So now I'm trying to be really clear about when I'm speaking as CTO, and when I'm speaking as VP of Engineering. I hope the folks continue to keep me honest on that front...

19 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!