Encoding and streaming to the XBox 360

December 19, 2007 | Comments Off

Some very kind friends of mine availed me of an XBox 360 and Halo 3, an act for which I continue to thank them every time I see them. Having owned the original XBox (thanks to Vlad, are you sensing a pattern?), I was interested to see the next iteration, which I hadn’t to date. It’s a very solid product and I’m pretty happy with it.

I was pleased that it automatically detected my Twonkymedia server but it wasn’t playing my videos properly. The playback worked for a few seconds but then would subsequently deteriorate the further into the video it got. I don’t think it was a bandwidth issue because the original XBox with XBMC had no troubles playing the video. I concluded it was just some wonkiness between how I had encoded and what the XBox was capable of. I tried downloading some movie trailers and they played fine from the same device. My next task was to figure out what encoding settings to use.

I’d ripped all of Anna’s DVDs with Handbrake to h264/avi and those were having trouble playing. I searched the web hoping to find an XBox 360 preset for Handbrake but all I found was other people looking for the same. I finally remembered that Andrew had mentioned that he was playing videos across the network, so I consulted him. He suggested using the Apple TV preset, and that still wouldn’t work for me, until I figured out that Twonkymedia was keying off of the file extension. Changing the extension from mp4 to avi fixed Twonkymedia. Once I realized that things started working perfectly.

BootCamp on Tiger (Post Lepoard)

December 18, 2007 | Comments Off

So Apple did a fairly crass thing by terminating Boot Camp for Tiger when Lepoard launched. I was replacing my Dell at work with a Mac and wanted to have a native install of XP for troubleshooting. I couldn’t find Boot Camp 1.4 which was presumably able to work until Dec 31 because Apple had pulled it, but I did find an old copy of 1.2 on my laptop but it wouldn’t run because it was past expiration. How do you solve this impossible problem? Uh, set the clock back. I circumvented annoying beta policy by the same technology with which I avoided nag screens in shareware in 1996. Lame.

Bugs vs Defects

December 12, 2007 | Comments Off

I read and became persuaded by the idea that calling software errors “bugs” is too cutesy and downplays the significance of the problem. On the other hand, as a developer, there are times when my software doesn’t work correctly but it is not my fault. And calling my software defective because the API doesn’t behave as documented (or is undocumented) is unfair. This is something that has vexed me in the course of my job and I finally think I have a reasonable distinction.

A bug is a defect once-removed (indirection, if you like). My software can simulataneously have defects and bugs. The distinction is whether I am responsible for the error. Relatedly, documentation can be defective.

The whole issue seems like a nuance to me and it has not been something I have been comfortable broaching at work but has come up recently in the terminology of some tools we are evaluating. I think the distinction is important but for practical purposes likely to be lost on the folks who are most concerned about the problems (usually not the developer).

An alternate distinction, and maybe an easier one to sell is core functionality versus non-core functionality. The core functionality of banking software is around maintaining transaction integrity: a math error is a defect; a button that is misaligned is a bug; a crash that corrupts the database is a defect; the saved backup on exit not working is a bug. Again, I think this is too subjective and subtle to be useful, but I think it’s at least a distinction that business people could grasp.

Webex = crap

December 7, 2007 | Comments Off

Just joined a meeting that was using meetmenow.webex.com. Impressively crappy for a tool to share your desktop. No Mac support, requires ActiveX control, and on XP it shit the bed with both FF and IE6! (Found the bug, it doesn’t properly handle the case where the task bar is not at the bottom). This problem has been solved before and solved better. At work we use Cisco Unified Meetingplace which is actually pretty nice.

Mac: Deep Sleep

November 16, 2007 | Comments Off

When I was Windows-based, I always preferred using hibernate over standby. When I came to Mac I reluctantly got used to it. In fact there isn’t any obvious way to invoke the “deep sleep” (hibernate) function in Mac until the battery is practically dead. This has been annoying on planes when I want to switch batteries without shutting down. I just found this deep sleep widget on the Apple site that adds a deep sleep button to dashboard which will be handy on such occasions. It does prompt for your password in an abnormal way but looking through the code it is only used to chown/chmod the deepsleep binary to setuid root. Source for the deepsleep binary is also included.

On Shame

November 16, 2007 | Comments Off

From an IM conversation:

Friend: I want the syntax to find all files in /home older than 30 days so I can nuke them
Pablo: find /home -mtime +30 -type f
Friend: so find /home -mtime +30 -type f | rm -rf
Friend: thats all I need?
Pablo: find /home -mtime +30 -type f -print0 | xargs --null -- rm -f --
Friend: ok
Friend: I’m doing it with PHP right now….
Pablo: the print0/null parts are in case you have filenames with spaces
Friend: which is… fun… :(
Pablo: i hate you
Pablo: why do you need to make me feel so dirty

My printer can beat up your printer

November 4, 2007 | 2 Comments

Another notch on the lameness post, I’m totally stoked about the printer I bought. I selected the Brother MFC-9440CN based on excellent reviews and a price that was somewhat palatable. I have big ambitions of going paperless and our old printer had churned its last page*. I’ll try not to bore you with my requirements but I wanted an all-in-one print/fax/scan that did color laser output. After much research I had made my choice and ordered from  Newegg.

Now, after having set up the basic printing functionality on Leigha’s computer and my own I’m playing with the other features and this thing does so much more than advertised. That’s right, my printer can generate CSRs. I’ve worked on printers that had shell access but I thought that was reserved for the high end office printers; not anymore. Also, one of my personal favorite device features: email me when something goes wrong. It can also scan documents to an FTP server (in this case the NAS) which combined with the auto-document feeder can seriously move the needle on my paperless goal.

* The old printer was a good and trusty friend. I bought it when I first moved to Virginia in 2000 for $200 off Ebay. At last check it had something north of 150k pagecount. You’ll be missed Laserjet 4 Si MX (but not for your loudness, weight, or light-dimming power draw)!

Learning The Hard Way

November 2, 2007 | 3 Comments

When my role changed from developing to architecting I put a fair amount of thought into what I thought would make a good architect. My goal was instead of saying something was impossible to explain to the business folk what it would cost them in terms of money, people, and trade-offs. The philosophy is that technology should not be a barrier to the products and experiences that the business wants to create.

I’ve now come to a point where either I am completely incapable of articulating costs, or the business folks just don’t care or believe me. It is not a fun position to be in to explain to someone “doing X means horrible thing Y occurs” and they choose X anyway. If Y has no direct impact on the individual’s goals then it is understandable why they might want to proceed anyway. The typical case for this is when the technology is not designed to deliver the experience the product needs, which leaves me in a tough spot. We either:

  1. pay the (often prohibitive) cost of doing it correctly
  2. cram the square peg in the round hole
  3. come to a compromise
  4. don’t do it

The first two are (by the philosophy) successes, while options 2 and 3 are the more popular choices. Option 2 has costs as well, but they are the external types of costs I described above: the code becomes unmaintainable; the ability to deliver features will slow to a crawl; the complexity will eat us alive.

On the other hand, is there a practical difference between saying “that’s impossible” and proposing consequences of proceeding so dire that no reasonable person would proceed? It seems like the former would be significantly less frustrating and yield better results, but shameful at the same time.

This post is brought to you by late night rambling and sleep deprivation

Google Desktop < Spotlight

October 26, 2007 | Comments Off

When I migrated to the Mac I reflexively installed Google Desktop Search, because it just works so nicely on Windows. After literally months of moaning and suffering and people reminding me gently that this feature is built in, I tried Spotlight. It works just as nicely as GDS did on the PC. Google: GDS on my Mac crashes constantly. Not impressed.

How Linux on the desktop could possibly win

October 24, 2007 | 1 Comment

Previuosly I wrote about how Linux on the desktop doesn’t get much respect because it doesn’t deserve much respect. However, as I was writing the post something occurred to me. The only way Linux on the desktop would become viable is if enough mainstream applications move to the web. I was reminded of this the other day when I saw this Slashdot story about Adobe putting all of their applications online.

For example, Photoshop will never come to Linux, almost guaranteed. However, Adobe is porting Photoshop as a web application. GNUCash will never rival Quicken or Microsoft Money. Ever. However, Wesabe could be a very viable alternative for users. It’s not worth companies investing money into Linux applications when there are no Linux users (chicken and egg). However, if enough web applications become the de-facto standard for their vertical, you reduce the friction of moving from one OS to another, and this may lead to some slow growth of Linux desktops for certain segments, but that’s a big if and a big maybe.