Archive for December, 2009

E-Book Readers: Opportunity Knocks

Friday, December 18th, 2009

Best observation I’ve read in a while:

So why do I feel uneasy? Because two companies who are in the business of pushing books have come up with nearly identical solutions [Amazon with the Kindle, Barnes and Noble with the Nook]… feels like the mp3 player market before Apple introduced the iPod… feels like the smart phone market before Apple introduced the iPhone. The companies who thought they were “in the business of _______” developed digital means to push their content or solve problems. Then Apple showed those companies that they had wasted a lot of money to come up with a solution to the wrong problem, that they had designed (or not designed) a solution to a problem that either didn’t exists or only existed because they created it. Apple rethought the “problem” to render a completely different solution.

— “jamesmcintyre” (read the whole thing here)

Of course, someone may beat Apple to the punch this time…

“Ruled Ineligible”: My Experience with NYC BigApps

Thursday, December 17th, 2009

Friends have been asking why NYC*Fun isn’t in the list of NYC BigApps entries anymore.

The reason?

I decided to charge a modest fee ($1.99) for it in the AppStore.

The contest rules are not clear on that point, since they talk about being allowed to sell the app “elsewhere”, even during the contest period.

So I interpreted the AppStore as elsewhere, and I was planning to issue promotion codes for the judges so they could get the app for free, to evaluate for the contest.

Charging for it was primarily a hedge against not winning, and secondarily as a way of recouping some of the time and effort that went into making NYC*Fun (though on both counts, I wasn’t expecting to make a profit).

But, alas, the contest organizers felt that was unfair to “all New Yorkers, whose tax payer dollars were used [to make the NYC.gov Data Mine available]“.

That logic seems odd when it comes to iPhone apps in this contest.

If I am a tax-paying New Yorker without an iPhone, all I would have are contest videos of all the iPhone apps.

That’s hardly a way of providing me benefits in return for my tax dollars.

But beyond this single app in this single contest (and perhaps legally, the contest rep was correct in that I could not charge for it in the AppStore and still be eligible), the experience struck a chord because of another phenomenon I’ve been witnessing on a broader scale recently: the devaluation of software as a paid profession.

The undercurrent of my conversation with the contest rep was this: the City’s effort (i.e., time and money spent to provide the data) was more important than mine, even though most of information in the Data Mine is unusable without significant rework (reformatting, normalizing, and the like).

That’s a rant for a different day, though.

This episode did remind of my days in design engineering, and why contests in that world generate little enthusiasm.

The principals of the firm I worked for scoffed at the idea of entering contests, dismissing them as run by cheapskate clients who wanted free work.

The subsequent leverage those clients had with the contest “winners” was also significant, since the tacit threat of bringing in the runner-up firm was always there for the length of the engagement.

Perhaps the smartest people in all this are those who run Challenge Post, the private company hired by the City of New York to run the contest.

Adding Hard Drives to a MythTV Box using UnionFS

Monday, December 14th, 2009

Since I had a few spare hard drives left over from my hardware upgrade, I thought about adding them to my KnoppMyth DVR.

While physically installing the drives and formatting each with fdisk was simple, I ran into a problem using mythtv-setup, since there’s only one folder that can be specified for storing recordings:

mythtv-setup

I did try using:

/myth*/tv

which would have been neat if it worked, but the setup utility complained about a bad folder path.

The latest KnoppMyth (which, alas, never did install correctly on my machine way back when) supports Storage Groups, which lets you define multiple folders for saving recordings.

But since I was still using KnoppMyth R5F27, I was stuck with useless drives.

That’s where UnionFS came to the rescue.

With UnionFS (which, fortunately, was already installed in R5F27), I was able to merge all my /myth*/tv folders to one mount point.

Here’s how I got it to work:

I started by creating the single mount point which will contain the contents of all four drives (/myth/tv, /myth1/tv, /myth2/tv, and myth3/tv):


# mkdir /mnt/tv

I change the permissions and owner to match the original /myth/tv folder:


# chmod --reference=/myth/tv /mnt/tv


# chown mythtv:mythtv /mnt/tv

And then I was able to use UnionFS to define /mnt/tv as containing the contents of all /myth*/tv folders with read and write (rw) access to all files:


# modprobe unionfs


# mount -t unionfs -o dirs=/myth/tv=rw:/myth1/tv=rw:/myth2/tv=rw:/myth3/tv=rw unionfs /mnt/tv

The UnionFS official site was a bit lacking in documentation, but this tutorial was very helpful.

Then I made sure this mount point is always established on boot (I should probably update /etc/fstab instead, but this method works just as well, since the mount only needs to be there when the mythbackend is running, which occurs after all the boot levels have finished):


# echo "mount -t unionfs -o dirs=/myth/tv=rw:/myth1/tv=rw:/myth2/tv=rw:/myth3/tv=rw unionfs /mnt/tv" >> /etc/init.d/rc-local

Finally, I was able to go back into mythtv-setup and use /mnt/tv as the target folder.

An unwanted side effect, though, was a change to the /etc/udev/rules.d/z25_persistent-cd.rules file: instead of having symbolic links from /dev/dvd to /dev/hdd and /dev/cdrom to /dev/hdd, there was an /dev/dvd1 pointing to /dev/hdd and /dev/cdrom1 pointing to /dev/hdd.

As a result, playing DVDs would fail, since xine expects /dev/dvd to exist.

Strangely, changing the mythtv setup to use /dev/dvd1 instead failed, as did creating an explicit symbolic link from /dev/dvd to /dev/hdd.

Fortunately, this post on a Fedora forum described the solution.

All I needed to do was comment out all the lines in the /etc/udev/rules.d/z25_persistent-cd.rules file except the last two (most recent), and edit those from this:

# CREATIVE_DVD-ROM_DVD1610E (pci-0000:00:1f.1-ide-1:1)
ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.1-ide-1:1″, SYMLINK+=”cdrom1″, ENV{GENERATED}=”1″
ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.1-ide-1:1″, SYMLINK+=”dvd1″, ENV{GENERATED}=”1″

to this:

# CREATIVE_DVD-ROM_DVD1610E (pci-0000:00:1f.1-ide-1:1)
ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.1-ide-1:1″, SYMLINK+=”cdrom”, ENV{GENERATED}=”1″
ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.1-ide-1:1″, SYMLINK+=”dvd”, ENV{GENERATED}=”1″

Free Stuff

Thursday, December 10th, 2009

After switching to Mac hardware, I’m finally getting around to getting rid of my old equipment.

Since most things still work, I’m experimenting with giving them away on Listia, an auction version of Freecycle.

Here’s a live widget of what’s available (yes, I know widgets are supposed to go in the sidebar, but it doesn’t seem to apply here, since once these items are gone, I doubt I’ll be very active on that site):

Listia incorporates some good concepts (recycling, points and auctions for a game-like feel), but it suffers from an annoying problem: a significant population of non-serious users, people who’ll bid on anything, then ignore you when the auction closes or refuse to pay shipping fees.

That’s in stark contrast to Freecycle, where if someone contacts you about something, he’ll actually come get it.

My Entry in the NYC BigApps Contest

Wednesday, December 9th, 2009

NYC*Fun (“nice fun“), my entry in the NYC BigApps Contest, has passed review and is now available in the AppStore.