Tuesday, November 24, 2009

YouTube Closed Captioning

YouTube has a cool new feature that will try to make closed-captioning available by programmatically transcribing the audio.

If your video has technical jargon, turn on captions! The results may be unintentionally hilarious.

Saturday, November 21, 2009

Various Google-Fails When Building Chromium OS

The first step in the Chromium OS build instructions is to run the script make_local_repo.sh. This will build a local repo from which your chroot environment will grab packages. However, this script has a bug where it will not wait for an APT lock. In my case, I was installing another package via apt-get when I ran the script, so it bailed out early when it couldn't get the apt lock, and hosed my repo.

The not-so-helpful error you will get once your local repo is screwed up:
khaki@onion:~/chromium-fake/src/scripts$ ./make_local_repo.sh
Creating repository directory...
Updating chromeos_dev from /home/khaki/chromium-fake/src/package_repo/repo_list_dev.txt...
chroot: cannot run command `reprepro': No such file or directory

It's easy to fix this, just delete the "repo" directory in the Chromium OS root directory (along side "src" and "tools") and then re-run the script.

Also, Google didn't include the full list of prerequisites for running the GClient build tool. If, right after syncing WebKit and WebCore, you get this unhelpful Python traceback error message:

Traceback (most recent call last):
[Snipped here by yours truly.]
File "/home/khakionion/depot_tools/gclient_scm.py", line 195, in _Run
sp = subprocess.Popen(cmd, cwd=cwd, stdout=stdout)
File "/usr/lib/python2.6/subprocess.py", line 621, in __init__
errread, errwrite)
File "/usr/lib/python2.6/subprocess.py", line 1126, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

...Then you don't have Git, which is understandable, because it's not listed in the prerequisites for Chromium or GClient. But, if you're building Chromium OS, you should be calling "gclient sync" with the deps="chromeos,unix" command, making Git a dependency. Easy to miss, because Chromium's instructions don't consider the existence of Chromium OS. If you're using Ubuntu Karmic Koala, a simple "sudo apt-get install git git-core" will fix you up. You don't have to restart anything, just call the same "gclient sync" command you used before, and you'll continue at the first Git command that broke before.

Sunday, November 15, 2009

Fixing Framework Search Paths

Just ran into an interesting quirk in Xcode that kept me from building device versions of iPhone apps. The resolution was a bit hard to find, so I thought I'd post it up here for posterity. In a nutshell, it is possible to include a framework from a location that shouldn't be used. This will cause Xcode to add the path to that framework in the "Framework Search Paths" in your target's properties. If you include dylibs from a non-kosher location, it will do the same for the "Library Search Paths."

The consequence of this misconfiguration is that Xcode will look in this location when trying to find all its frameworks/libraries. This will give you errors like:
missing required architecture arm in file

I was getting this error message for every single binary blob, all the way up to crt1.o To fix it, simply go to the Library Search Paths and Framework Search Paths, and delete the path to the rogue framework.

Sunday, November 01, 2009

How Did Various Computers Handle The Time Change?

Windows Seven: Uneventful, clock went back one hour.

Mac OS X Snow Leopard: Uneventful, clock went back one hour.

The American Airlines Webservers:
AA.com is currently unavailable. We are working to resolve the issue as quickly as possible and apologize for any inconvenience.
The American Express Webservers:
Welcome MICHAEL HERRING , member since 2004.
Due to routine system maintenance, some Cardmembers may experience limited access to their account information at this time. We expect all information to be available by approximately 10:00am (EST) Sunday 11/1/09 and apologize for the inconvenience.
Heckuva job, webmasters.