Archive for May, 2007

Google Developer Day 2007

Thursday, May 31st, 2007

I went to Google Developer Day 2007 Mountain View Edition downtown at the San Jose McEnery Convention Center.

Google put a lot of resources into this free conference. It was well-organized, had 5 tracks, free non-gourmet food, drinks and t-shirts, and a small exhibits area – similar to a paid O’Reilly conference. Afterwards, there were buses to and from the Googleplex in Mountain View for a mingle party with mostly retro video games and a DJ. (I got high scores on the 2 Centipede machines.)

Many of the attendees admitted that they were there to make the right connections to get a job at Google.

I spoke to several who had just attended the O’Reilly Where 2.0 Conference.

I went to the Google Gears talk in the morning, the Google Map track in the afternoon, and the Custom Search talk in the evening.

Google Gears is a system for running web applications offline. One slide showed high-performance threading, with 3 windows searching for quad polynomials at the same time. Another slide mentioned that Google has sponsored Full Text Search in SQLite. Currently, FTS2 can handle millions of records reasonably well. FTS3 will be able to handle tens of millions.

I saw a few talks in a row on KML, Google Earth, Maps, Maplets and GeoSearch.

KML is the Keyhole Markup Language (Wikipedia), an XML schema for describing geographic data. Keyhole created the initial version in 2003 or 2004, and now it is an official standard. Adobe CS3 supports it as well. It lets you define static data, timestamps, styles and URLs to be overlaid on a map. It is easy to get started with, but does have a lot of elements now. REGION can be used to group related coordinate data.

Example KML:

 <?xml version="1.0" encoding="UTF-8"?>
 <kml xmlns="http://earth.google.com/kml/2.0">
 <Placemark>
   <description>New York City</description>
   <name>New York City</name>
   <Point>
     <coordinates>-74.006393,40.714172,0</coordinates>
   </Point>
 </Placemark>
 </kml>

One of the Google Earth speakers uses Xerxes-C to parse XML files, and provided this link for some tools:
Google Regionator KML Testing Tools

Google Custom Search Engine was very interesting. It allows you to use the Google search platform as your own tool, but tell it which links and sites to search and what to omit. Examples of this are custom search engines for only accredited universities or doctors. Or just museums. Or just social network sites. In 20 minutes you can build your own custom search engine, although you will be serving Google Ads and they will have your user data. One of the problems though is that there’s no easy way to make the results child-safe.

In the exhibits area, many Google products were displayed on IBM Thinkpad notebooks by a respective developer, so I asked for a personal demo of each:

  • Google Webmaster Tools lets you view how Google sees your site – keywords that people searched on before landing on your site, 404’s, etc. Very useful for SEO preparation.
  • Google Desktop – desktop personal search and small programs that run on your desktop. They are COM objects, so Windows only currently. Any language supporting COM can be used to write them, including JavaScript. The pregnancy count down timer was the most surprising to me.
  • Google Checkout – Google maintains a wallet of your credit cards and shipping locations. Free for merchants until end of 2007, and merchants get a special logo in sponsored search listings.
  • Google Enterprise Search API
  • Google Sketchup – lets you build 3D models
  • Google Home Page (iGoogle) – similar to MyNetcenter or Yahoo 360
  • Google Earth

Nick Moline from Justia was happy to hear that there’s an API to do submissions, since previously he had to manually upload 2,000 XML files.

Katsuya Hosokawa, Business Preparation Office Manager, from CyberMap Japan Corp. went to Where 2.0 just before this. His company sells the Mapion set of mapping products to Japanese customers, including on the web. They have extensive digital maps of Japan, including the Tokyo area down to the house level. Several partners/investors are involved in CyberMap, incuding Yahoo! Japan.

Unlike at Open Source conferences, Google staff were not allowed to talk about future plans or features.

My only complaints would be that 5 tracks makes choosing talks difficult, and there should have been better directions to find the returning shuttle buses at the Googleplex.

Perhaps also a developer conference should be less Powerpoints and more hands-on. (Although it was fun watching developers occasionally wrestle with Powerpoint – since they don’t use it on a a daily basis – they’re developers.)

cnet.com: Google Gears churns toward Microsoft
cnet.com: Why Google loves developers
cnet.com: Google Earth users outnumber Brazil’s population

The XDR-TB Jet-Setter

Thursday, May 31st, 2007

It’s interesting to read about this guy flying around with drug-resistant TB.

The CDC and the passenger both deserve criticism for their actions and inactions.

The CDC seems totally unprepared for this situation, despite decades of airline travel. The passsenger should have been supplied with written information about his disease, and a private jet back to the States for quarantine after diagnosis.

Left to his own devices, he made his way back to the USA, exposing thousands of people, instead of an uncertain quarantine in a foreign country.

Not exactly heroic, but better than the Toronto man who went back to work at the office after being diagnosed with SARS, despite being told to stay confined to his house.

TB is rampant in the Asian community. If you live in a large city, at least one hospital in your area has a TB wing with isolated ventilation. And TB nurses make house calls to medicate the infected. Yet most people know little about the disease.

cnn.com: Man knew he had TB before flying to Europe
cnn.com: Search intensifies for people at TB risk
cnn.com: Border security scrutinized after TB patient slips in
cnn.com: TB patient says he was lured into isolation

Installing Ubuntu Desktop under Parallels on Mac OS X

Monday, May 28th, 2007

Ubuntu Linux LogoI use Parallels on my MacBook Pro 15″, and had a Ubuntu Desktop Feisty Fawn 7.04 iso CD laying around from a previous installation, so why not install it on my MacBook Pro?

It’s not a trivial install because of Parallels bugs in cooperating with linux …

So I used the illustrated link on simplehelp.net, except I installed from the CD instead of an iso file.

By default Ubuntu chooses 1024×768 as the maximum screen resolution, so I opened a terminal window in Ubuntu and added modes 1440×900 and 1280×768 with:
sudo dpkg-reconfigure -phigh xserver-xorg

I configured a 7 GB hard drive partition which ended up 32% full, and 512 MB RAM, about half in use – so 256 MB is fine for playing around and 384 MB would be fine for work. (You can later reconfigure your VM to reduce memory, but not the drive partition size.)

I haven’t heard of anybody getting wireless networking going from Ubuntu, but I do use wired. I had to configure the VM to use networking in bridged mode.

Just run the Update Manager, then the package manager and install sysstat, gnumeric, abiword, and mozilla-thunderbird packages, and you’re styling.

The post-install bugs I noticed are the disappearing text on dialog boxes during update, and the VM window blacks out on VM startup. Also on startup there is a “ACPI: unable to locate RSDP” error message displayed briefly.

How to install Ubuntu (Feisty Fawn) in OS X using Parallels – a complete walkthrough
How to share files and folders in Ubuntu
How to install Ubuntu 7.04 using VMWare Fusion in OS X
How to make all of your folders have the same “View” in Windows XP
How to install Vista in OS X using Parallels – a complete walkthrough
Had enough of the .DS_Store files?
Muffin Research Labs: Running Ubuntu under Parallels Desktop for Mac

macworld.com: Parallels 3.0 supports 3D games, ‘SmartSelect’

Upgrading WordPress in One Minute from 1.5.2 to 2.2

Monday, May 28th, 2007

I was on WordPress 1.5.2 for a long time, but Matt recommended moving to the latest 2.x, so today was upgrade day.

The official WordPress upgrade notes are both verbose and unclear, so I’ll relate my upgrade experience and provide some commands to do it.

Step 1: I use MySQL replication, so data backup for me was just a stop slave; on the slave.

Step 2: Login to WordPress and disable any plugins.

I use Apache with PHP4 and APC cache, so I had to stop apache to avoid a stale cache when updating files.

Step 3: I use a customized default theme, so then just ran a few linux commands as root to install:

wget http://wordpress.org/latest.tar.gz

mv wordpress wordpress-old

chmod 700 wordpress-old

tar zxvf latest.tar.gz

cp -p wordpress/wp-config.php wordpress/wp-config.bak.php

cp -p wordpress-old/wp-config.php wordpress

cp -p wordpress/wp-content/themes/default/sidebar.php wordpress/wp-content/themes/default/sidebar.bak.php

cp -p wordpress/wp-content/themes/default/footer.php wordpress/wp-content/themes/default/footer.bak.php

cp -p wordpress-old/wp-content/themes/default/sidebar.php wordpress/wp-content/themes/default/sidebar.php

cp -p wordpress-old/wp-content/themes/default/footer.php wordpress/wp-content/themes/default/footer.php

Inspect your wordpress-old/wp-content and wordpress-old/images directories for any files you may still need to copy over.

Then start apache and try to load your blog.

Step 4: If your blog looks mostly ok, run the upgrade.php script on your server, something like:
http://yourdomain.com/wordpress/wp-admin/upgrade.php

If you get errors when running upgrade.php about language_attributes(), add this at line 8:
require_once(ABSPATH . ‘/wp-includes/general-template.php’);
and stop and restart apache if you use a PHP cache.

Step 5: Login to WordPress and activate any plug-ins.

When everything looked normal, I resumed replication on the MySQL slave: start slave;

WordPress 2.2 seems kind of ajaxy – autosave while editing posts, etc.

Please send me your feedback.

Update 2007-06-08: Definitely enable the akismet spam filter included with 2.2. I’m getting 1,000 comment spams per day now, and akismet rarely lets one through.

Daily Pundit: Speaking of (Comment Spam) Zombies…

MySQL Replication and Errors

Saturday, May 26th, 2007

MySQL LogoJust investigating ways to detect and fix replication errors on a daily basis – without reloading the slave. The database I am managing is large, but fortunately partitioned into lots of smaller, independent tables.

The most common error this year is malformed packets as the master and slave are in different data centers. Skipping that statement is often ok, with SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1.

I saw 2 talks by Baron Schwartz this year at MySQLCamp and the MySQL Conference, so I thought I’d look into his work.

I’m able to run his mysql-table-checksum-1.1.5 in ACCUM and BIT_XOR modes, but not CHECKSUM. I had to do some editing on the script, so it looks like it needs a little more testing.

Update: He’s fixed the ACCUM and BIT_XOR bind bugs.

Baron Schwartz’s work:
xaprb: Introducing MySQL Table Checksum
Sourceforge: MySQL Toolkit
Innotop

MySQL manual:
Replication Startup Options
SQL Statements for Controlling Slave Servers
SET GLOBAL SQL_SLAVE_SKIP_COUNTER
SHOW SLAVE HOSTS Syntax
CHECKSUM TABLE Syntax

Domainers

Saturday, May 26th, 2007

The man who owns the Internet – Kevin Ham
Domain Name System shows signs of stress from financial maneuverings
Maximize revenue on your parked pages with Google AdSense for domains
Millions of Addresses and Thousands of Sites, All Leading to One
The Domains Of The Day
wsj.com: Business.com Could Hit Jackpot on Auction Block
Flipping Websites and Domain Names

Skype Available on Blackberry

Saturday, May 26th, 2007

Skype LogoI just found out that Shapeservices has a working mobile Skype client for Blackberry cell phone models for $25. Their cell phone site is at wap.shapeservices.com.

This is awesome for me because I use Skype and Yahoo! chat for work.

It supports chat, Skype voice to PC and Skype out voice to phone communication.

I downloaded the 7-day trial and chat seems to work fine on my Blackberry 8700g.

They did have a prototype Skype client available for download before, but it was weird hybrid that tethered you to your PC.

Shapeservices sells several cool programs for cell phones, including supporting 7 chat networks with IM+, allowing Windows remote desktop mgmt. from your cell phone, VNC and search.

Dual Booting Windows XP and Ubuntu Linux

Thursday, May 24th, 2007

Ubuntu Linux LogoPlaying around with Ubuntu Feisty desktop linux on my home PC. Kind of tricky to setup multi-boot with Windows because I’m using a 2001 motherboard (old 2003 BIOS) with a large hard drive (300 GB) not in LBA mode.

My overall impression of Ubuntu Desktop once it’s installed is that it’s easy-to-use, has a large package library (20,000 packages), update menu option, good Windows filesystem integration and feels fairly cohesive overall. gcalctool is a nice calculator.

It autoidentified all of my hardware correctly (including Radeon X850XT, Realtek audio, quickcam and even rudder pedals!), although picked 1024×768 as the highest resolution for my 24″ monitor. It should have allowed 1920×1200 and 1600×1200 plus many other video modes.

Ubuntu handles root/non-root similar to Mac OS X, which is a good thing for a desktop system: you login as non-root and a sudo popup window appears for installing packages and updates.

Not sure why they picked light brown as the default color/theme.

Ubuntu Desktop is not really aimed at programmers though: systools (iostat, etc.) and Thunderbird are not installed by default. I would say other well-known distros like Redhat, Suse and Slackware feel more programmerish. The version of Perl included is fresh at 5.8.8.

Here’s the GRUB menu.list configuration I’m using on a floppy disk to dual-boot Windows XP and Ubuntu linux with everything installed in the / filesystem (no separate /boot partition):

# Boot automatically after an interval.
timeout 15

# By default, boot the second entry.
default 1

# Fallback to the first entry.
fallback 0

title Windows XP
rootnoverify (hd0,0)
chainloader +1
makeactive

# For booting Linux
title  Linux
root (hd0,6)
kernel /vmlinuz root=/dev/sda7 ro vga=791 splash=verbose
initrd /initrd.img

Other packages I installed include sysstat, abiword, dia, gnumeric, vlc, flightgear and mozilla-thunderbird.