Monthly Archive for January, 2007

Open APIs vs Open Source

Toni Schneider of Automattic share’s with us some good thoughts on Open APIs vs Open Source. In a nutshell: Open Source decentralizes software development, Open APIs decentralize business development.

Mysterious recordings found on my phone

In the process of reinstalling the operating system on my horrible phone, I’ve made a few backups of my phone’s memory on my computer. I was just poking through one of them and discovered 3 mysterious recordings, probably made by accidentally holding down one of the buttons at some point, putting it into “quick voice memo” mode. I present these recordings here for your enjoyment:

August 26, 2006

September 27, 2006

December 7, 2006

Simultaneously the most awesome and most depressing thing I have ever seen

Someone has created a key which opens all Diebold voting machines, using only an image of the key from the company’s own website. link

I hate my MDA; What new smartphone should I get?

I hate my MDA that I got a few months ago. I’ll spare you the details, but suffice it to say my problems are mostly to with Windows mobile. I can’t sync with my address book and calendar properly, every part of using the system is frustrating and buggy, and I have to wipe the phone for one reason or another every couple months. And the hardware ain’t so hot either– the sound quality leaves much to be desired.

So I am potentially in the market for a new phone. Forget about the Apple iPhone for now… I can’t stand to use this thing until June.

Here are the features I must have:

  • Good sound quality
  • A qwerty or faux-qwerty keyboard
  • A good web browser
  • Excellent synchronization with OS X Address Book and iCal
  • Easy and relatively reliably internet OS X tethering over Bluetooth

Here are the features I would like to have:

  • 802.11x
  • Full use of the bluetooth spec
  • More than a paltry 64 or 128 megs of built-in storage
  • Supported and seamless internet tethering with OS X
  • GPS (i know, now i’m dreaming)

As far as I know, I think my only options are either a Symbian phone (maybe needing to get a non-us model), or the BlackBerry Pearl.

Anyone have any other ideas? Let’s pretend that price is no object.

Anti-IE WordPress/Lyceum plugin

I’m throwing together a little WordPress plugin which recommends to readers who are using IE that they switch to Firefox.

I’ve been racking my brain for verbiage that is informative, honest, and to the point, but also doesn’t come off as arrogant. I think I have failed:

Your browser is inferior. Please use Firefox.

heh heh. No seriously though, does anyone have any recommendations for the phrasing?

INNER JOIN syntax

It's too bad that ON (column = column) comes after and not before INNER JOIN table, because if it came before it would make for much cuter code formatting:

SQL:
  1. SELECT DISTINCT $columns
  2. FROM
  3.   $this->comments
  4.     ON (comment_post_ID = post_id) INNER JOIN
  5.   $this->post2cat
  6.     ON (category_id = cat_ID) INNER JOIN
  7.   $this->categories
  8. WHERE
  9.   blog = '$blog' AND
  10.   $criteria

Vonage is great

5:29:34 PM earnestedward: vonage is great
5:29:41 PM earnestedward: 6 cents a minute for calls to hollard
5:29:42 PM earnestedward: holland
5:29:46 PM johnjosephbachir: nice
5:30:03 PM earnestedward: and i can initiate calls from the website
5:30:10 PM earnestedward: so if i want to call the house
5:30:16 PM earnestedward: i don't have to call them and ask them to call me back
5:30:19 PM johnjosephbachir: haha
5:30:20 PM johnjosephbachir: nice!
5:30:23 PM earnestedward: yeah
5:30:31 PM earnestedward: i hope i have internet in my dorm
5:30:32 PM johnjosephbachir: you press a button and both ends ring?
5:30:36 PM earnestedward: yeah
5:30:38 PM johnjosephbachir: wow
5:30:41 PM johnjosephbachir: that is innovation
5:30:56 PM johnjosephbachir: that's what happens when you aren't trapped in the telephone system and can innovate at the ends
5:31:02 PM earnestedward: no doubt
5:31:11 PM earnestedward: it's digital baby

SQL CHALLENGE

Arrrrre you readyyyyy--- for an es Q elllllllll--- CHALLENGE!!!!!

I have a user table, let's say with name and zipcode. I can do the following successfully:

  1. Select a random user with SELECT * FROM users ORDER BY RAND(UNIX_TIMESTAMP()) LIMIT 1
  2. Select all users, with only 1 from each zipcode, using SELECT * FROM users GROUP BY zipcode update: I simplified this as per Danny's suggestion below

The only problem is, in case 2, it's always the same user per-zipcode. I want to randomize which in the grouping gets pulled out. I would prefer that the solution not involve joining the table on itself, although if I don't find another solution I will probably whip up the self-join solution just for fun.

The intellectual property conundrum in a nutshell

Billions of civilization citizens ask of content distributors:

Why should we purchase music/movies/television/software when we can download/share it for free?

Content distributors have two answers:

  1. Because downloading/sharing content is Wrong.
  2. We have no answer, so we are going to remove the download/share option by introducting DRM into every single playback device.

Backup script from Jon Mills

ibiblio colleague and systems guru John Mills writes:

So, I remember you had a cute backup script for OS X. Well I have an external USB drive, which I don't want active all the time. My script runs from a cronjob, and automatically mounts and unmounts the external drive, and uses rsync to copy the files.

Here's the script, called backup.sh:

BASH:
  1. #! /bin/bash
  2.  
  3. # Definitions
  4. DISK=disk1s1
  5. DIR_NAME=jonmills
  6. SOURCE=/Users/${DIR_NAME}/
  7. DEST=/Volumes/Backup/${DIR_NAME}/
  8. EXCLUDE=/var/log/backup/excludes.${DIR_NAME}
  9.  
  10. # Mount a disk by hand with disktool
  11. /usr/sbin/disktool -m ${DISK}
  12.  
  13. # Wait for the disk to spin up, or else this won't work
  14. sleep 10
  15.  
  16. # Copy the files with rsync
  17. /usr/bin/rsync -av \
  18. --delete \
  19. --delete-excluded \
  20. --exclude-from=${EXCLUDE} \
  21. ${SOURCE} \
  22. ${DEST}
  23.  
  24. # Unmount the disk manually with disktool
  25. /usr/sbin/disktool -u ${DISK}

crontab looks like this:

CODE:
  1. #
  2. # min   hour    mday    month   wday    command</code>
  3.  
  4. # Run the script at 4:30 AM and mail me the log
  5. 30     4       *       *       *       ~/.backup.sh 2>&1 | mail -s "Backup Log - `date`" _____@gmail.com




Close
Powered by ShareThis