Thursday, July 30, 2009

Adventure!

So as Dan and I were on our way to the same diner that we always go to for lunch, he started talking about this falafel place he went to a few days ago in the West Village. That got me hungry for falafel, so we changed course, jumped on the subway and headed down to West 4th Street. Picked up some $2.50 falafels at Momoun's and ate in Washington Square Park by the fountain. I picked up some baklava for desert.

What a nice day. Kind of made me wish I didn't have a job and could just lay around in the park all afternoon.

And we were back in the office inside of an hour to boot!

Sunday, July 26, 2009

Weekend in Philly

Spent the weekend in Philadelphia. Spent Saturday afternoon in a coffeehouse doing some driver work. On Saturday night, Victoria and I went out for Thai food with Jamie/Jeremy, Nicole/Dave, and Annie/Frank. Then spent the rest of the evening at a bar around the corner from her place. Got home about 11:30pm (yes, that's quite late for me).

Woke up this morning feeling really sick with a stomach bug. Spent the day with Victoria nursing me back to health by making me toast and tea while we watched Golden Girls and Robot Chicken on DVD. Caught the 6:00pm bus back to the City.

I still feel pretty run down, between this morning and still trying to get over the sinus infection that caused me to miss work on Monday and Tuesday. Ugh.

We've got a wedding to go to next Saturday in Reading, Pennsylvania, so I need to buy a new suit this week. I haven't bought a new suit since 2000 and since I've lost five inches off my waist it seems like it is probably about time.

Monday, July 20, 2009

So sick...

So around midnight last night my nose started to run, and hasn't stopped since. It basically kept me up all night, and I didn't really sleep much even during the day. I'm on my second box of tissues. I took drugs, which stopped the runny nose but left me so congested I thought I was going to vomit. Now I'm somewhere halfway in-between.

I didn't go to work. I didn't really do anything today other than watch the first two episodes of AirWolf before concluding that it's a dumb show and I would rather be passed out.

Sunday, July 19, 2009

Weekend

I forgot to post this pic last week. This is the really good soup that Victoria made:



And here is the recipe:

http://www.freshdirect.com/recipe.jsp?recipeId=rec_rs_african_pnut_sp&trk=srch

Thursday, July 16, 2009

Thursday

Been a pretty busy week. Had a project that kept me late at work on Monday and Tuesday. Plugging away at various tuners (see http://kernellabs.com/blog for more info).

After banging my head for several nights trying to figure out why Amy's laptop wouldn't boot off the hard drive (even though I reset the BIOS, was able to successfully install Windows XP, I zeroed the hard drive with dd, and various other rescue disk type attempts), I finally yanked the hard drive out of another laptop, stuck it into her system and it booted up successfully. In other words, despite the hard drive appearing fine in the eyes of XP, the BIOS seems to think it's toast.

I'll pickup the cheapest drive I can find at Best Buy tomorrow and do the XP install when I'm in Philadelphia over the weekend.

Thursday, July 9, 2009

Wednesday, July 8, 2009

LInuxTV and Developer Motivation

I didn't get anything done again last night. Spent a bit of time trying to get a Windows XP install running in VirtualBox so I could get the logic analyzer running. Watched more TV than I should have. Cleaned some of my apartment. I just can't seem to get the critical mass to dig in and start coding again.

I think part of the problem is I have strayed from what is really important to me personally. I don't mean that from an ideological standpoint - I still think tuner support under Linux is important. I mean from a practical standpoint - I have been spending all of my time lately working on DVB-T devices I have no use for and cards that other people own which I don't have any use for, and analog support for HVR-950q that I don't really have any use for. I have long ago passed the notion of "scratch your own itch".

More recently I was considering starting up a project to get analog support working in the dvb-usb framework (dib0700 devices in particular such as the Pinnacle PCTV 801e). However, I would have to overcome the realization that this means another solid month of development for something I don't really care much about personally, and several months after that doing support and isolating edge-cases raised by users as they start using the code.

I think I may have reached the point where this has stopped becoming interesting. Making the 950q work with analog was interesting because I had never done analog support for a bridge before. The notion of doing that again is unexciting. The same goes for isolating yet another analog bug in 950q with gstreamer or mplayer or (insert name of application here).

The eight or ten emails a day I receive from individual users could be seen as motivation since I know people are clamoring for fixes and new support. But it is also a burden.

This is not my job. I am not paid to do this. I do not benefit personally from making yet another device that I do not own work. Why am I doing it then?

Perhaps, just because I *can* do something does not mean that I *should*.

Alot of what I do requires an extraordinary amount of patience. Spending every night for a week in front of an analyzer dump or collection of USB traces trying to identify why something doesn't work can get monotonous. When I don't get the "instant gratification" of getting something to work with relatively little effort, I am constantly faced with the question: is spending the next week of my life debugging this one issue worth my trouble personally?

Perhaps I need to work on something easier which gives me more of the feeling of continuous progress.

Anyway, enough rambling for now...

Tuesday, July 7, 2009

Tuesday

Didn't get a whole lot done last night. Replied to four or five emails from users with hvr-950q questions. Started to work out where I was going to get a new Windows box for testing. Watched a bit of TV.

Since I was recycling that PC that died last week anyway, I took a few extra minutes to yank out the power supply and see what happened:



Where are my friends at GPCL's Product Safety lab when I need them?

I need to get the Windows PC up and running so I can use the logic analyzer to debug the PCTV 340e i2c issue with xc4000 firmware uploading.

I've been thinking about it for a while, and I think I've decided that I am indeed going to go to the Linux Plumbers Conference this year. Going to try to book the tickets this week.

Monday, July 6, 2009

I turn the engine but the engine doesn't turn...

Wow, I cannot get moving this morning. I went to bed with a headache, and I woke up this morning and *need* to get my ass to work.

We went to New Jersey for the 4th of July weekend. Spent most of Saturday with my family at Jen/Jon/Jayden's barbecue and celebrated birthdays for Jen, Lauren, Suzy, and Amelia.

Yesterday Victoria and I went to Pt. Pleasant. Played putt-putt, ate funnel cake, took a walk through the aquarium. The weather was hot and sunny but offset by the ocean breeze. Surprisingly fewer people were there than I expected - I guess most of the bennies had left for home by that point.

I haven't written any code all weekend and it shows - I received four emails from four different people with different problems. Each of the issues can easily take an hour to investigate, so the next few nights will be busy. And with my Windows PC hitting the self-destruct button, I won't be able to get back to the PCTV340e/xc4000 work until I get Windows installed on some other PC.

Friday, July 3, 2009

Quiet Friday

I have off from work today, so I came out to Philadelphia a day early. In the coffeehouse now getting caught up on some email while Victoria is at the gym.

I managed to kill a PC last night. Plugged it in and sparks and smoke started to pour out of the power supply. Fortunately, it was just the crappy Windows PC I use for reverse engineer Windows drivers, but it will still set me back since I now have to get Windows installed on a different PC and setup the debug environment again. I guess this is also now an excuse to try out the OSX version of the Saleae logic analyzer application I also use the PC for.

My new soldering iron arrived yesterday, but again won't be of much use until I get the Windows PC back online (since the whole point of getting the iron was to be able to hook onto the PCTV 340e's i2c bus).

Going to New Jersey tomorrow to see the family and celebrate a couple of birthdays.

Thursday, July 2, 2009

Feedback on Economics of LinuxTV

I wanted to take a few minutes and respond to some ideas put forth by Andrej Falout, who was also kind enough to make a donation toward my LinuxTV efforts. Let's take his comments point-by-point.
1) When working on devices where no signal is available, how about using SSH to log in remotely to the box where device is connected and signal such as DVB-T is present?
I actually have done this before (in fact, two weeks ago the Terratec Cinergy T XS USB lock problems were resolved this way thanks to Simon Kenyon providing SSH access to his environment). Sometimes this approach is viable, sometimes it is not. There are significant advantages to having physical access to the hardware, including the ability to use tools like an oscilloscope and logic analyzer. Also, the software environment, antenna configuration, and list of accessible frequencies are known in my environment. To look at another example, I have been working with a different user on the mt352 version of the Terratec Cinergy T XS USB, and I don't know if it doesn't work because of a driver problem of mine, or whether it's user error, poor access to a signal, bad antenna, etc.

For simple things like a new board profile for existing supported chipsets, it can work. For cases where new drivers need to be written or the existing chipset drivers have bugs (which is more often then I like to admit), it is extremely difficult.
2) The key to getting vendors to pay, is to show number of users/devices sold because they work on Linux. Add a message to driver load, such as "Register and rate your device at http://devinjh.livejournal.com", as well on the V4L wiki for that device(s). Then when you can show 50 or 100 users registered, contact the vendor(s) and offer to continue supporting device, and maybe even future devices for a reasonable fee...?
There has been considerable discussion of ideas like this between myself and the KernelLabs developers. There are two basic problems: once the driver works, the vast majority of users never even notice (so they have no incentive to seek out the person who did the work), and things like surveys on the v4l wiki only have the opposite effect. They tell the vendor, "there are only ten people who actually care about Linux support for my device, so why should I spent $1000 in consulting for Linux support"
3) http://en.wikipedia.org/wiki/Smolt_(Linux) may be of interest in determining numbers of devices in use
Again, smolt only hurts the community in this case. Look at those stats. If I were a vendor and I actually took those stats into consideration, they would tell me there might be a few thousand users across the entire industry. I realize that it's a small sample of total users out there, but vendors are not likely to see those finer points.
4) Create few wiki pages on V4L site, for devices you are offering to work on for a fee/donation. Make it clear how much is needed to be contributed for work to start, and provide a easy mechanism for users to donate AND see how many donations are made so far.
Certainly we have been discussing various approaches such as this (surveys, contribution pools, etc). I hope to see some of this come to life in the next few months.
5) Approaching chip makers may be a better choice then talking to the device marketers/assemblers ?
I have worked with a number of chipset vendors, and even getting them to provide datasheets so I can write a Linux driver is usually like pulling teeth (and in reality has only ever happened when I found a product vendor to pressure them to do it). Getting them to go one step further and actually pay for Linux support is even further off.

Some classes of hardware tend to have vendors who are happy to make technical information available (think CPUs). However, the tuner and demodulator vendors are extraordinarily protective when it comes to IP concerns and trade secrets.

Anyway, I continue to look for economic models that are viable. Thanks for helping further the discussion.