Recently in Technology Category

Brief thoughts on the iPhone

|

I don't usually do opinion pieces here, but today is sort of a notable day. Here are my general thoughts on the iPhone.

  • it is small and light
  • the virtual keyboard thing is a pain in the ass. i'm sure it gets better the more you get used to it, and the auto-correction works well, but it never types the letter you are aiming for. it really slows you down. the keys need to be wider. also, the virtual keyboard gets in the way. for instance, when accessing my gmail, i had to type in a captcha code to sign in, but the keyboard obscured so much screen real estate, i couldn't see the captcha text and the text field at the same time. it also sets the visual focus wherever you are typing, so you can't look at the captcha while typing blindly. i had to memorize the sequence, then scroll down and type it in.
  • interface is not as dead simple as you would expect. for instance, in the web browser, i couldn't figure out how to go to a new page! turns out the address bar is pinned to the top of the page, instead of the top of the browser window. SO YOU HAVE TO SCROLL UP on a PAGE to find the address bar. Really poor decision there, and very uncharacteristic of Apple. the apple store employee who i asked about this was puzzled by it and couldn't immediately figure out how it worked.
  • it's a little slower than you would hope. for example, when you pan-and-scan a pdf document, the screen redraw takes a second or two. that said, the ability to open up and zoom in and out of a pdf or other attachment is nice.
  • the interface across applications is not consistent. forward/back work differently in safari, the notepad, and itunes.

finally: because it is still a closed system, you sit there using it for 15 minutes or so, fooling around with safari, the camera, email, and itunes, and then you realize that you have done everything you can do with it. the words that went through my head were, "Well, I guess that's it." In the end, it's just a cool phone.

i don't think i am going to get one. it seems to me that any Nokia Series 60 (aka "N Series") phone does nearly everything that the iPhone does, with the exception of the touch-screen interface, The Nokias have these advantages that are valuable to me:

  • GPS (N95 only)
  • unlocked; no contract
  • multimedia messaging, which was inexplicably left off the iPhone
  • 3G data
  • open architecture, so you can install third-party applications
  • way better camera (zeiss lens 5MP vs. run-of-the-mill 2MP)
  • video recording (inexplicably left off the iphone; N95 does 480p)

sure, the Nokia interface isn't as slick, but it is still very well designed, and probably more efficient for the most common operations (calling people, texting, sending someone a picture).

the one caveat for me here is that the iPhone OS X certainly has 1000x more potential than the Series 60/Symbian OS, so if/when Apple opens it up, it will blow away the Nokias and everything else.

"Green" houses: US vs. Rio

|

US style:

Mike Strizki, a civil engineer living in New Jersey has converted his home into a completely energy self-sufficient abode that runs exclusively on a combination of solar and hydrogen power. Using solar panels, a hydrogen fuel cell, storage tanks, an electrolyzer to split water into Hydrogen and Oxygen, plus a custom made fuel-cell car, Mike benefits from a utility bill of zero dollars, and the comforting feeling that his activities don't produce any pollution. Currently the solution isn't in any way practical for mass adoption -- the initial cost was $500,000, with half paid by New Jersey state grants -- but Mike thinks that he could reduce this cost tenfold with more research and mass market production lines. There is also some concern amongst experts like Joseph Romm, a former Department of Energy official who thinks that the current relatively inefficient technology and the high cost means that this isn't a viable system for mass adoption just yet. Despite this criticism, Mike says "we have to start somewhere," even if early adopters (in this case rich Hollywood types with a conscience) are required to pay out up to $250,000 dollars to get in on the clean energy action. [source]

Rio style:

RIO DE JANEIRO (Reuters) - A floating house built out of trash in a reeking channel of a Rio de Janiero slum will be preserved as a model for recycling in a government anti-pollution campaign.

Luiz Bispo says his house [is] kept afloat by hundreds of empty plastic bottles...

Bispo, who earns a living by doing occasional repair and construction work, said he spent about $170 to build the house, mainly on cement and roof material. The rest came from construction waste and furniture he found at dump sites. [source]

Google is complaining to the Department of Justice and the EU that Microsoft's forthcoming Internet Explorer 7 improperly encourages users to use MSN Search instead of a search engine of the user's choice. Google claims "research it has sponsored shows that it's difficult to change the settings in the new browser to a rival search engine."

I decided to do a little research of my own to see how "difficult" it is. Please watch this video:

ie7 search

[Sorry about using WMV. I hate it too.]

As you can see, it is a very simple 10-second process that most people could figure out without much effort.

I dislike IE and never use it, and I think Google is a great search engine, but it seems to me they are reaching a bit on this one. If it were me, I guess what I would ask is that Microsoft document how to create whatever kind of file it is that lets the toolbar's search feature use a given provider. They may have already done this -- I'm not sure. Update: Not only have they already done that, but the little plug-in or whatever you call it uses A9's OpenSearch format.

Let's say Sprint happened to to send you a free phone with a free service plan as part of their Ambassador program. Wouldn't you want to share the benefit of that service with as many people as possible? Especially if the plan included free data service? After all, Mr. Ambassador, you certainly want everyone to enjoy Sprint's quality service as much as you do, right?

Or let's say you're so rich you can afford to pay Sprint's (probably high) fees for unlimited data service. Since there's no additional cost to you, shouldn't you share some of that bandwidth with some of us poor saps who can't afford such luxuries?

This post describes how to use your Bluetooth- and Airport-enabled Mac with your Bluetooth-enabled Sprint PCS phone to set up a mobile wifi access point. Meaning, you can put your iBook in your car or backpack, put your phone in your pocket, and give free wifi internet access to anyone who happens to be in the area. (Of course, you will also be able to access the internet yourself all the while.)

These instructions assume you are using Mac OS X 10.4 (Tiger), and a Samsung A920, the official phone of Sprint Ambassadors everywhere. But they should apply to any Sprint phone with Bluetooth that is capable of being a data modem and/or using their Power Vision service. Non-ambassadors will have to navigate the labyrinth of Sprint customer service and get "phone-as-modem" service added to their plan. Once you've gotten that taken care of, please continue...

Summary for experienced people

Details are below, but if you know what you're doing and just want to do it quickly:

  1. Turn on Bluetooth on your phone.
  2. Pair your phone with your Mac.
  3. In the PPP configuration for Bluetooth in Network preferences, leave the username and password blank and use this phone number: #777
  4. In Sharing preferences, go to the Internet pane and turn on Internet Connection Sharing for Bluetooth, allowing AirPort devices to connect.
  5. Back in PPP, click "Dial Now...". You should be all set. By default, your SSID will be your computer's name.
  6. If you need a detailed step-by-step, continue reading...

First, set up the phone

  1. Press "Menu/OK".
  2. Select "Settings".
  3. Scroll down and select "Bluetooth" and press OK.
  4. If Bluetooth is disabled, click OK on to enable it.
  5. Set "Visibility" to "Always visible". (This is optional and not very secure, but it might make things easier later.)
  6. Select "Device Name" and enter a nice name for your phone. This is the name other Bluetooth devices (like your Mac) will display when connecting to your phone. (I have found in other contexts that choosing a one-word name can reduce errors.)

Connect your Mac to your phone via Bluetooth

  1. Open System Preferences.
  2. In the Hardware section, click Bluetooth.
  3. In the Settings pane, make sure it says Bluetooth is on. Other than that, it doesn't matter much what is selected. [screenshot]
  4. In the Devices pane [screenshot], click "Setup New Device".
  5. The Bluetooth Setup Assistant wizard will start. Click "Continue" and select "Mobile phone" from the list of device types.
  6. The wizard will scan the airwaves looking for Bluetooth devices. When you see the name of your phone, select it and click "Continue".
  7. After a few seconds of "gathering information," the wizard will prompt you to click "Continue" to continue. Do so.
  8. Your computer will display a "passkey", a number you have to type into your phone to "pair" the phone with your Mac. [screenshot]
  9. Your phone will prompt you to accept the pair. Press "Accept".
  10. Enter the passkey into your phone and press OK. If you wait too long, the connection will time out, and you'll probably have to go back in the wizard and get a new passkey.
  11. Once the pairing has taken place, click "Continue" to continue.
  12. Make sure "Access the internet with your phone's data connection" is checked.
  13. Click "Continue".
  14. Here's the important part: You will be prompted to enter connection settings. Leave "Username" and "Password" blank. In "Phone Number", enter #777. For "Modem Script", select "Sprint PCS Vision". [screenshot]
  15. Optionally, select the checkboxes to show Bluetooth and Modem status in the menu bar.
  16. Click "Continue".
  17. Click "Quit".

Connect to the Internet

At this point, you might want to turn off Airport and/or unplug your network cable, so that when you connect to the internet via the phone, you'll be sure you are connected via the phone. (After it's all set up, you can turn Airport back on.) In the meantime, here's how to get connected:

  1. Open System Preferences. (Or click "Show All" if your Bluetooth panel is still active.)
  2. In the Network & Internet section, choose "Network".
  3. In the dropdown labeled "Show", select "Bluetooth".
  4. In the "PPP" pane, make sure "Account Name" and "Password" are blank, and that "Telephone Number" is #777.
  5. In the "Bluetooth Modem" pane, make sure the Modem dropdown says "Sprint PCS Vision", and (optionally) check all checkboxes. Now you're ready to connect to the internet.
  6. Go back to the "PPP" pane, and click "Dial Now..." An "Internet Connect" dialog box will appear. Make sure the Bluetooth pane is showing. [screenshot]
  7. Click "Connect". The modem status in the menu bar will read "Connecting..." and your phone will say "Connected as data modem to [your computer name]". You are connected! A timer on the phone will show the duration of your connection.
  8. Open a web browser on your computer to confirm that you are connected.

Share your internet connection via AirPort

Now you are ready to share your connection to the internet with other users. To do so:

  1. Turn AirPort back on if you turned it off earlier.
  2. Return to System Preferences. (Click "Show All" if you are still on your Network settings.)
  3. In "Internet & Network", click "Sharing".
  4. Go to "Internet" pane. [screenshot]
  5. In the dropdown labeled "Share your connection from", select "Bluetooth".
  6. In the "To computers using" area, select "AirPort".
  7. Click "AirPort options" to make sure encryption is not turned on and/or to change the name of the access point (SSID) that your Mac will broadcast .
  8. Click "Start" to start sharing your internet connection via wifi.
  9. You may get a message saying this conflicts with your firewall setting, as Personal Web Sharing must be turned on (for some reason) to share your internet connection. If there's a dialog, click "Show Services" or directly open the "Services" pane in Sharing (which partially controls your firewall), and activate "Personal Web Sharing" service. Note that this will make the "Sites" folder in your home directory available via your network connection. (If someone can explain to me why Personal Web Sharing has to be turned on in order to share your internet connection, I'd love to hear it. If it's just to open the port, couldn't they do that without firing up your web server?)
  10. That's it! You're connected and you're sharing your connection. You might want to test it with another wifi device to make sure it can connect. (By default, your Mac will broadcast its name as the the name of the access point (SSID)).

Potentially sad note: Some devices may not be able to obtain an IP address from your Mac, in which case they won't be able to use your connection to the internet. However, if you can talk to whoever is attempting to share your connection (e.g., you're over at your friends' house and want to get them online), you can configure their network connection manually. To do so, follow these instructions. I'd recommend keeping the IP addresses of some public DNS servers handy, so you can just type those in instead of trying to determine them from the dig utility or similar. I really don't know anything about Internet Connection Sharing on the Mac, so I have no idea which devices can automatically obtain an IP from it and which can't.

Added bonus: Note that if you look at the Personal Web Sharing preferences, you'll see your external IP has been resolved to an actual domain name like http://h460c83c6.area2.spcsdns.net. Anyone accessing that address in their browser will see whatever website your Mac is serving from its web server folders.

Keep in mind:

  • Sprint PCS may or may not like the idea of you sharing your bandwidth. (Especially if you're not an Ambassador and don't have diplomatic immunity.)
  • If you are at work or school, your network administrator may or may not like (1) your computer's new-found role as a DHCP server, and (2) your computer giving indirect access to his/her LAN.

Even so, at least you can go to bed knowing you are the Robin Hood of wireless bandwidth!

A couple weeks ago, Sprint PCS invited me to participate in its "Sprint Ambassador Program," a program under which they give you a free phone and unlimited use of a premium plan for six months, no strings attached. I received the phone today, and tried to use it as a modem, which the program literature suggested was possible.

Although this story ended happily, it wasn't before I was reminded, at length, of why I left Sprint PCS back in the late 90s: their legendarily bad customer service.

The phone, a Samsung A920, arrived today, pre-activated. I had some fun exploring its various features, like music downloads (free for Ambassador participants, $2.50(!) for regular customers), video streaming, web browsing, etc.

But when I tried to set it up as a modem (via Bluetooth) and ran into questions, I quickly encountered Sprint's frustrating customer service apparatus, still spotty after all these years.

All I needed was the phone number to enter into my Bluetooth setup. I thought this information might be on their website. But it turned out I needed a password so I could log on to confirm I was signed up for data service, etc. According to the informational card shipped with my phone, this password defaults to the last four digits of my SSN. Easy enough, right? But of course it didn't work.

After a few tries, I clicked the "I don't know my password" link. The resulting page told me it couldn't reconcile my number with my password. I already knew that. Time to call my old friends at Sprint PCS customer service...

Dial *2, tell the robots I need tech support, get a CSR (not a tech guy) on the phone. I tell him I just got the phone today via the Ambassador program, I'm trying to use it as a modem, and I need a password so I can logon to the site and add that service to my plan. It didn't take long for the conversation to turn Kafka-esque as these conversations always do:

CSR: "I need your password before I can give you that information, sir."
Me: "Um. What I was saying is that according to this informational card that came with the phone, my password is supposed to be the last four digits of my social security number. Those numbers didn't work, so I don't know what my password is."
CSR: "Sir, I can't give you the information you need unless you can give me the password for this account."

Start over. Finally he determines my account is a business account, so he transfers me over to that department. I tell the new guy my situation and what I need.

Business CSR: "Who is the point of contact for your account."
Me: "I don't know...Me?"
Business CSR: "I'm seeing this is a large account with a large number of phones, so you need to get in touch with the point of contact for this account."
Me: "I think the point of contact is you. Like I said, you guys sent me the phone...you know, for review purposes."
Business CSR: "I understand."

Puts me on hold for two minutes, comes back and tells me I need to call ANOTHER number: (888) 296-8806, which apparently is the Ambassador hotline or whatever. Having been down these "special number" paths before, I asked him twice if they would be open right then (Saturday, 5 pm EST). He says yes.

I call the number. Guess what? Dead air. Nothing. Not a ring, not a busy signal, nothing.

Hurray for Sprint PCS! Consistently offering crappy customer service for almost 10 years!

After this, I tried the "I don't know my password" link on the website again, and this time it worked! Apparently they did something to resolve the purgatorial status of my account, and I got an SMS with my new pw. The pw worked.

So at this point, I figured all I need is the phone number to enter in my Bluetooth setup dialog. Can't find that in any of the documentation, online or otherwise, so that's another call to customer service. This time, I get a CSR who tells me my demo plan doesn't support "phone as modem" features but transfers me to a tech anyway. The tech -- who is named Roy (I think) -- is really good -- tells me what number to type in to the Bluetooth dialog (#777), and tells me to give it a shot. No dice.

He then discovers the special Ambassador service number, and gives it to me, but I tell him I already tried it and all I got was dead air. He tries it and gets dead air, too. He says he'd look into it, and I tell him I'd email the the Ambassador people and see if they could get me set up with a data plan, which at this point I still thought I didn't have (since that's what the CSR told me). Not an ideal solution, but at least he was trying to be helpful and knew what he was talking about.

About 10 minutes later, a tech named Jeff called my PCS phone. He told me he had talked to Roy and wanted to help me get my phone working as a modem.

He explained the root cause of my inability to get online with the phone. This is really funny:

Sprint gave all these Ambassador phones a username like "ambassadorNNNN@sprintpcs.com," where NNNN is a unique four-digit number. When you access the web via the phone's browser, it sends that username and your pw to their server and logs you on. BUT when you try to access the data service using the same phone as a modem, it sends a different username (e.g., ambassadorNNNN@modem.sprintpcs.com). Unfortunately, their system prohibits usernames with obscene words in them. Can you see where this is going? They system parsed the username "ambassadorNNNN", found the "obscene" word "ASS" in it, and refused to provision the account.

The solution Jeff came up with? He changed my username to "ambasadorNNNN" (one 's') and tried the provisioning again. It worked. The only remaining problem was that I then couldn't connect to the internet via the phone's browser, but that situation resolved itself a short time later.

So to summarize: To use my phone as a modem, I talked to five people at Sprint, two of whom (Jeff and Roy) seemed to know what they were talking about, used one faulty website, was wrongly told my plan did not include a data component, and was directed to a dead phone line. All as a member of this Ambassador program.

Please note that I am the last person on Earth to expect special treatment as a member of a premium group (especially one I'm not paying for). I just think it's funny that Sprint had such trouble providing simple information to a member of a group they had internally designated as high-profile.

Finally, the data service, which I will probably be writing about some time in the future, is very good and feels very fast. I will do some formal upload/download tests later and post the results.

Using Google Base as a blogging tool

|

I'm trying to use Google Base to write a blog about Google Base. It sort of works, but there are shortcomings.

Here's my Google Base blog so far.

Screenshot of downloaded iTunes video file

|

lost

Everyone's complaining about the low resolution of the videos you can download from iTunes Music Store, but I just downloaded a show, and it looks good enough for casual viewing. I watched it in full screen mode on my iBook, and it's fine. Sure HD would be great, but considering I downloaded a 43-minute show (209MB) in fewer than 10 minutes through my standard cable connection, I can't really complain.

Here's a full-size screen grab. It's from the pilot for Lost. Note that you can see the little hairs around the guy's eye, and that the banding you see seems to be an artifact of the screen grabber, and is not visible in the original video source. Not too bad.

Update: For comparison's sake, here's a screenshot taken from the DVD, taken from the same scene.

itunes 6

In my last post, I described the way in which iTunes 5 needlessly reproduces real world usability defects, specifically glare in the main display element. Well, iTunes 6 came out today, and as you can see from the picture above, the glare is gone. Both the Mac and Windows versions were changed.

Thanks to Mike for pointing this out.

Apple seems to have taken its "real objects" design metaphor a bit too far in the latest version of iTunes, released today. Look at the main display window: it has glare!

itunes display

Now, here's the old one. Notice, no glare:

itunes display

One of the most annoying aspects of real-world electronic devices is the glare on the display. WHY ON EARTH would Apple go out of its way to reproduce this defect on a virtual object? As you can see, it actually divides artist's name in half -- one half on the light side, one half on the dark side. It hinders readability. Why would they do this? Isn't the only explanation "To make it look more real." What's next? Will the buttons in iTunes stop working after 6 months, just like the iPod's click wheel?

This all started with the "brushed metal" and stupid "drawer" device in the Quicktime player (remember that one?), and now it's really gotten out of hand.

I understand that in certain cases, real world metaphors are useful in software design, but the primary advantage of virtual objects is that they are not subject to the limitations/flaws of real world objects. Apple needs to realize that metaphors should be used as guidelines, not absolute rules.

Google's IM service is due to launch tomorrow. It is already working, however. Someone else reported that talk.google.com was live and running a Jabber server. Then someone reported that you can login using your gmail username but they couldn't actually send messages. I tried it out with the Jabber client GAIM and after some fiddling around, got it to login, and then to actually send an IM to another user.

The secret is that when you send out a buddy invitation, attach "@gmail.com" to the username. So, use "myfriend@gmail.com" not "myfriend". Once the invitation is approved, you will be able to chat with the person.

The setup in GAIM is to use talk.google.com as the server, your gmail username (without the "@gmail" part) as your username, and your gmail password as the password. Login, then invite a buddy (another gmail user.) It should work. Oh, and: make sure to set GAIM so it shows buddies who are not logged in. To do this, choose the option "Show offline buddies" from the Buddy menu.

screenshot 1
screenshot 2

This is not fake. Sorry it's not easier to take a screenshot that better illustrates that it really works. Try it yourself.

Update: Google Talk has launched for real. Good developer FAQ.

wh
capitol

Probably documented in other contexts elsewhere, but...

Google's satellite mapping feauture launched yesterday. The images of the White House and the US Capitol are digitally obscured. (Unless the White House just has a very smooth, clean roof...)

To reproduce, just map the address of the WH.

I imagine this is standard practice among commercial satellite companies these days, but I just thought someone should note it. [tx B.]

I was interested in using PHP5's DOM extension to create RSS feeds, but I couldn't find a decent tutorial on the web about how to do that. Most of the things out there involve PHP4's DOM-XML, which is different in some key ways. Even PHP.net lacks basic examples of how to use even the most fundamental DOM methods.

So I puzzled my way through it, using the sparse examples at PHP.net and the old DOM-XML samples for creating generic XML docs, trying to find the matching methods in the current DOM reference.

Once you've figured out how to create and append one node, the rest is pretty easy. So here is a sample feed generated by PHP and DOM, and here is the heavily commented source code that produces it.

This script demonstrates how to use DOM to create an RSS feed from items that are manually entered into an array. It's pretty easy to adapt the code to use a database to automatically enter those items into an array: all you'd have to do is query the database, add your items to an array, and substitute that array for the one manually generated in my script. (For the sake of completeness, I will post a script that does this when I get a few minutes.) Update: You can see an example of this fully automatic technique in this Ning app I created.

A9, Amazon's search engine, added photos to their new Yellow Pages service today. They drove around in trucks and took millions of GPS-tagged images, and then correlated them with addresses in their listings. Amazing.

Last month, Mike at the NYC photoblog Satan's Laundromat posted a bunch of photos of various Kennedy Fried Chicken stores around the city.

The Kennedy Fried Chicken phenomenon has interested me for quite a while, so I thought it would be funny to combine A9 with Mike's idea: use A9 to assemble a photo catalog of Kennedy Fried Chicken storefronts. Unfortunately, A9's photo survey didn't cover a lot of the neighborhoods where the stores are. Of the 20 "KFC" stores, only 3 (almost 4) are pictured.

Anyway, here's what I came up with:

kennedy fried chicken store

kennedy fried chicken store

kennedy fried chicken store

kennedy fried chicken store

Larger images.

A9 says there is another one at 536 E. 14th in Manhattan, but the photos of that area show only a palm reader and a Chinese take-out place. (You have to "walk left" to find the proper address.) Update: Thanks to Lia, who tracked it down on A9, it's now pictured above.

Nmap'ing Tivo

|

I don't know why I never thought of doing this before.

$ nmap -sT -sR -sV -I -O -PI -PT 192.168.1.103

results

This is probably the first of several posts that will deal with this topic.

The new Tivo system software upgrade brings many interesting features to Tivo, the most well-known of which is TivoToGo, which lets you copy the video files to your PC.

However, the software upgrade also includes a web server. This means you can interact with your Tivo via any web browser on any PC. I won't discuss all the ramifications of this right now, but one notable one is that Tivo can now produce your "Now Playing" list (a list of everything on your Tivo) as either an HTML or XML file.

The XML file is particularly exciting, because XML is very, very easy to parse nowadays. People have already parsed this XML into RSS, and I expect to be doing the same over the next couple of days.

To access your Tivo's Now Playing list as an XML file, use this URL:
https://192.168.1.103/TiVoConnect?Command=QueryContainer&Container=%2FNowPlaying
Just change the IP to the address of your Tivo, then login using the username tivo and your Media Access Key as your password.

Some of the scripts other people have released to parse this file are quite elaborate (and cool), but I wanted to demonstrate how easy it is to parse the Now Playing list into a simple HTML stream that could be easily included on any website. This took me about 10 mins to write, and it isn't very elegant.

Here you go:

<?php
function converttivodate($format, $input){
        //borrowed from A. Cassidy Napoli's Tivo_XML script
        return date($format, hexdec($input));}

$file = "nowplaying.xml";
$sxe = simplexml_load_file($file);
foreach($sxe->Item as $item) {
        $details = $item->Details;
        echo "$details->Title: $details->EpisodeTitle<br/> 
	$details->Description (" .
	converttivodate('n/d/y G:i',$details->CaptureDate) . 
	", $details->SourceStation, $details->SourceChannel)</p>\n"; } 
?>

That's about 6 lines of PHP, and it's easy to see the same (or even more) could probably be accomplished in about 2 lines. (See the update below.)

Just use include() or the Curl extensions to include the file on your site, and you're all set. This code snippet requires PHP5's SimpleXML support.

It produces something like this:

Law & Order: Merger
A scandal involving two wealthy families threatens McCoy and Carmichael's chances of a conviction in the murder of a drug-addicted girl of 15. (1/26/05 15:59, TNT, 3-0)

Seinfeld: The Doorman
A doorman (Larry Miller) tries to cause trouble for Jerry; Kramer develops a male undergarment. (1/26/05 15:29, TBS, 22-0)

Malcolm in the Middle: Reese's Apartment
Francis is determined to show his parents why they should not have kicked Reese out; Malcolm helps a football player writer a college essay. (1/26/05 14:59, WWOR, 9-0)

Here's a demo:

Update (1/27/05): Well, if you're willing to sacrifice readability in the code, you can implement the above with just 2 lines of PHP. I just took out the extra function call and variable assignments from the code above, and wound up with two lines.

My webhost, Dreamhost, whom I recommend, allows you pretty comprehensive control over your server space and shell account, even on shared servers. They even let you compile and customize your own installation of PHP. Since PHP5 offers a bunch of useful features absent from PHP4, but DH is currently running only PHP4, I decided to make the migration.

This post explains how to install PHP5 on a Dreamhost server, but is probably useful for anyone attempting to install it in any shared hosting environment.

1337 jeopardy

Tonight was round 1 of the Jeopardy College Tournament. One of the contestants, Kermin, a comp-sci/engineering student from Carnegie Mellon University, had a commanding lead (well over $10K) going into Final Jeopardy.

His final wager had Alex Trebek scratching his head, but Kermin was clearly sending a message to fellow computer nerds. His wager:

$1337

In leetspeak, 1337 translates to "leet" or "elite."

Due to his correct response in Final Jeopardy, Kermin ended up with $31,542, which makes it likely he'll wind up in the final rounds of the tournament. It was a clever gesture, perhaps one that only could have been outdone if he had wagered $1132, which would have left him a final score of $31,337.

Somewhat relatedly, "Video Games" was a category earlier in the game, (Everquest, Grand Theft Auto, and Unreal Tournament were all correct responses) and "Blogs" was a category a few weeks ago.

Thanks to my friend Chenzie for getting me the screenshot.

Update (11/19/04): According to a comment below, Kermin won the game tonight by wagering $1041. 1041, when converted from decimal to hexadecimal equals "411." 411 is a synonym for "information." Thanks for catching it, Max. I believe this pushes him into next week's finals.

Update (11/22/04): In tonight's game, Round 1 of the Finals, Kermin explained his 1337 wager to Alex and the rest of the audience. He went on to win the game, putting him in a great spot for Round 2 of the Finals on Tuesday. I think he has to lose by $10,000 in order to lose the championship.

Update (11/23/04): Kermin won the finals, by a lot.

RSS and Atom feeds for RadioParadise.com ++

| | Comments (2)

Update (2006-01-16): I completely revised the code that generates the RSS 2.0 feed. It is much more stable, since it uses a Radio Paradise-generated XML feed as its source, and creates the feed using the DOM. Please use the new feed. Here is the source code.

...

My friend Mike recently introduced me to Radio Paradise, an internet radio station that plays commercial-free indie-rock, with some classic stuff thrown in. I became addicted to it almost immediately, in part because it's great music to have on in the background when you're working on other things, and you're guaranteed to be exposed to all kinds of stuff you've never heard before.

Radio Paradise has a page that lists its most recently played songs, going back about 6 hours. I thought an RSS feed of this page might be useful/enjoyable for some people, including me, but Radio Paradise doesn't offer such a feed yet. So, I spent a few hours last night writing a PHP script that "scrapes" the "recently played" page, and translates it into an RSS feed. Update: I also wrote a script that creates a feed for RP's recently active forums list.

Update (10/27/04): I have released the source code for this project. This allows you to generate the playlist feed from your own website. The only requirements are that your server can run PHP with the CURL functions. All you have to do is copy this file to your server, remove the final "s" from "feed.phps" and access it in your browser or RSS reader. Note there are some slight constraints on your redistribution and use of the code. Please see the comments in the file.

Progammers will notice that a single script determines whether to return an RSS feed or an Atom feed, as determined by a parameter the user passes on the URL. I think this is somewhat uncommon.

The feed will generate automatically every time you access it. In other words, it will be in perfect synchronization with Radio Paradise's page as long as you refresh it.

Now that the information is in this standard format, I'm sure someone could write another script to do something interesting with it, or you can just add it to your RSS/Atom news aggregator, and see what the station has been playing, without having to visit its website.

The script is more stable than it was at first, but I would still expect bugs from time to time, including critical ones. Email me any bug reports, and I'll see what I can do.

If you use this feed, please leave a comment, so I can report your interest to the Radio Paradise staff, who are aware of this project.

jeopardy category

Friday night was the final round of Jeopardy's Tournament of Champions. I was surprised to see that one of the categories for Double Jeopardy was "Blogs." Here are screen caps of each of the "answers"...read it, think of the correct question ("Who is...", etc.) and then click to see if you are correct. They're pretty easy if you know what a blog is, and not too hard even if you don't.

jeopardy clue $400

jeopardy clue $800

"CPU" vs. CPU

| | Comments (7)

To: David P*gue, NYT Technology columnist
From: ADM

Hi there,

You are one of my favorite technology writers and I recommend your books to people all the time, but I was surprised to see this error in your review of the iMac: you write the iMac makes it appear the buyer "somehow neglected to buy the C.P.U. itself (on most computers, that's the big plastic box containing disk drives and connectors)."

Now, you know as well as anyone that the CPU is the *processor* not the box!! People make this mistake all the time, and when they do, it perpetuates other people's misunderstanding of how computers work, and what their parts are properly called.

I think you could have written, "making it appear you somehow neglected to buy the rest of the computer" and it would have achieved about the same effect.

Thanks,

ADM
your article:
http://tinyurl.com/3w6du

wikipedia on "cpu":
http://en.wikipedia.org/wiki/Cpu


From: David P*gue
To: ADM

Actually, CPU can refer to either part these days.

From the University of Chicago Technotes Glossary for example: "CPU: Refers either to the principal microchip (such as the Pentium or PowerPC chip) or the box that houses the main components of the computer."

David P*gue
"State of the Art" columnist, The New York Times


To: Walt M*ssberg, WSJ Technology Columnist
From: ADM

Mr M*ssberg,

I enjoy your column very much.

My friend and I have a dispute and we wondered if you could help us out.

He says the term "CPU" can refer to either the central processing chip or the box that holds the motherboard, disk drives, etc. I say the phrase should only refer to the chip.

I say the box that contains everything is simply called "the computer."

We agreed to abide by your decision, if you have a second to issue one.

Who do you think is right? We have a steak riding on it.

Thanks,

ADM
NYC


From: Walt M*ssberg
To: ADM

Depends who's talking. Your view of it is more technically accurate (although an even more accurate term for the main processing chip is "microprocessor".) But, over the years, I've also heard many people use CPU to refer to the whole computer itself, as opposed to the monitor, keyboard, mouse, or printer that may also make up the system.

There's no rule on this. It's a matter of usage.

Walt M*ssberg
Personal Technology Columnist


Mr M*ssberg,

Thanks for replying...

With no clear winner, I guess we'll have to take up another bet, like whether there's 1024 or 1000 megabytes in a gigabyte..... :-)

Thanks again,

ADM

Migrate from Outlook to Mozilla Thunderbird

|

I've prepared detailed instructions on migrating your mail messages from Microsoft Outlook to Mozilla Thunderbird.

I am not an expert on Mozilla software or mail clients, but I do have a lot of experience with software, and went through this process several times before getting it to work the way I wanted. The steps below are not mandatory for success and may not be the most efficient method, but if followed, they should bring you success.

Note that there is a very easy way of migrating your messages: Just open Outlook, and from the File menu, choose "Export..." Choose to export to a file, and then choose the file type ".pst". After you install Thunderbird, just import the messages from this .pst file. This post is so long because it discusses customizing the migration process, and putting the mailboxes in a location where they can be easily backed up.

For me, the greatest benefit of performing the migration this way -- besides the actual switch itself -- is that it makes backing up and restoring your email much easier than it would be with Outlook. All you have to do is burn one directory to a CD, and you know you have everything. I never had confidence that would work with Outlook.

I performed the migration using Thunderbird 0.7.3 with Windows 2000 Professional and Outlook 2002, so YMMV.

Here are the directions:

About this Archive

This page is a archive of recent entries in the Technology category.

Sports is the previous category.

TV is the next category.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.0