Blog

During the course of the day I encounter lots of challenges, some of which take minutes to solve and others that take much longer. My goal for this section is to keep track of these challenges and their solutions. I will turn the longer ones into articles, while the shorter ones will stay as blog entries. You can expect topics to range from very specific programming challenges to broader topics like life.

Below is a list of the recent blog entries. You can also browse the blog by using the tags on the right side, or if you know what you are looking for then you can use the search box at the top right.

Cannot unlock iPhone: baseband 05.11.07, bootloader >05.09 (e.g. 06.04)

2009-11-03, update: GeoHot released the unlock for baseband 05.11.07! Check it out.
—-

Recently a friend purchased an iPhone off of craigslist that he wanted to unlock for use with a different carrier. The phone was running iPhone OS 3.1, which the dev team has released a jailbreak for. Unfortunately, what he didn’t know was that the boot loader (or bootloader) version mattered a lot 🙂

He wanted a good, clean unit, and this was a newly refurbished one, jailbroken, very clean, no scratches, and 0 minute usage. He thought all he had to do was install ultrasn0w and he would be good to go. Well, he tried, but no luck. After a few tries he brought it to me and I started my research. Apparently, because it is a newly refurbished unit, it had the latest version of everything: iPhone 3.1 (seller might have upgraded it), latest baseband, and latest boot loader. Here is what my research turned up.

  1. Baseband 05.11.07 cannot be unlocked at the time of this post (October 2nd, 2009).
  2. You can downgrade baseband 05.11.07, but only if the boot loader is version 05.08 or older. In this case the easiest solution is to use fuzzyband downgrader.
  3. If you have baseband 05.11.07 and a boot loader newer than 05.08 then, unfortunately, you are out of luck because you cannot unlock your iPhone.

If you are buying an iPhone for use with a carrier other than AT&T then make sure that your device can be unlocked. Also, be careful once you do get the new, compatible iPhone because upgrading to iPhone OS 3.1 using the official ipsw will upgrade the baseband! and possibly the boot loader; you will be stuck without an unlock! (Hopefully you are not reading this post after the fact :|)

The easiest way to check the boot loader and baseband versions is to install Fuzzyband using Cydia. Do this before the purchase. You want a boot loader that is 05.08 or older, and a baseband that is 05.11.07 or older (if it is 05.11.07 then you will have to downgrade to an older version, which is possible assuming that the boot loader version is correct).

What if you have an “un-unlockable” iPhone?

Basically, you need an AT&T subscriber 🙂 Here are a few (realistic!) possibilities.

  1. The cleanest option is to sell it to someone who is an AT&T subscriber. There are AT&T subscribers looking for iPhones. My guess is that it is because they don’t want to extend their contract.
  2. A rare case would be an AT&T subscriber with an unlockable iPhone looking for an iPhone for a family member who is not on AT&T. In this case they can unlock their phone and give it to the family member, and use the new device themselves (on AT&T).
  3. Swap it with an AT&T subscriber who is using an unlockable iPhone. You will have to give them some incentive to do this though, e.g. if your iPhone is newer, cleaner than theirs, or maybe offer coffee, lunch, etc. 🙂

Browser in Palm webOS 1.2 now gets 1/100 on acid3

Finally, the webOS browser’s javascript engine gets 1 mark in the acid3 test. Previously the acid3 would completely bomb out and exclaim “JS?” 🙂

Acid3 results in the browser that was part of webOS 1.1 Acid3 results in the browser that is part of the new webOS 1.2. A 1 point improvement :)

Palm [Pre] webOS 1.2 has been released

In case if you haven’t seen it yet, Palm released the webOS 1.2 earlier today. For a complete list of changes checkout the official Palm blog post or the PreCentral post (official list of changes from the support site). Here are a few things that I am looking forward to (as I wait for Pre to upgrade) 🙂

  • The browser now supports downloading files from a web page. To download a file, tap the file name.
  • The browser now supports paragraph selection, cut, copy, and paste on web page text. A yellow highlight appears to indicate paragraph selection.
  • Contact entries in the call log now show both the phone number and type.
  • You can now tap a phone number in a calendar note to dial it.
  • You can press and hold the orange key/Option and tap a link or image. Options displayed include opening the item in a new card, sharing the link or image via email, or copying the URL. For images in JPG, BMP, or PNG format, an additional option to copy the image to the Photo app is displayed.
  • If you tap on a text field, the page zooms to a level at which it is easy to read the text being entered.
  • Notification sounds play softly when you are on a call, regardless of the system sounds setting.

Below is one that I am not so sure about.

  • When you press and hold the orange key/Option and drag onscreen, the cursor now moves one word at a time instead of one character at time in Email, Memos, and other apps. The cursor still moves one character at a time in the Web address bar and Messaging body text entry field.

Let’s see how it turns out 🙂

Windows 7 vs. Windows Vista: Hibernate, sleep, and shutdown times

I have been excited about Windows 7 because it overcomes many of the issues with Windows Vista and has many other improvements. It certainly feels (and is) faster than Windows Vista, but generally you can’t see the improvements unless you use it on the exact same computer with similar programs/drivers installed. I installed Windows 7 on both my computers a few days after it was released on MSDN, but didn’t measure the improvements because I was already convinced 🙂 Today I decided to upgrade my brother’s HP Pavilion dv6 to Windows 7, but this time I decided to take a few measurements to see the difference. So, let’s take a look at the results.

Read full post...

Students can buy Windows 7 upgrade for $30!

If you are a student then you should definitely check this out. Microsoft has a special for students where you can get Windows 7 upgrade for $30. The normal upgrade price for Windows 7 is about $129 right now. Windows 7 is definitely a worth upgrade for laptops. So, get it if you are student! 🙂

By the way, you might also have access to the MSDNAA program, which has Windows 7 Professional available for free. You can check if your school and program is participating by searching on the MSDN school search page.

Craigslist spam

A friend was recently looking for a used iPhone so we decided to browse the local craigslist. After some searching we saw an amazingly good deal (first red flag? :)) that included both an iPhone and iPod Touch from what seemed like a good seller. We decided to follow-up, but it wasn’t until 1am that we sent the contact email. Next day we got the following reply back…

sorry I sold them.. but I ordered them from suppliers I found from WEBSITE_REMOVED .. they have much cheaper prices than amazon.com

sorry again I hope I could have been of some help

kind regards,
steve

Sent from my iPhone.

I have removed the website URL (WEBSITE_REMOVED) because I don’t want to promote it any further 🙂 I was amused by this reply because it was sent around 3am (two hours after our inquiry) and it sounded a bit too much like an advertisement. Also, I get many emails from friends that have iPhones (some of whom have decided to keep that signature!) and that last line didn’t look right. So, I decided to look further into it. The obvious things to check were the email headers to see if they had any signs of an iPhone. Before I looked at the headers for the reply I checked out the headers from a genuine reply. The most obvious sign was the X-Mailer header.

X-Mailer: iPhone Mail (7A400)

Then I looked at this header in the reply from “steve,” and guess what I found.

X-Mailer: Chilkat Software Inc (http://www.chilkatsoft.com)

A quick look at that site and I found out that Chilkat Software makes .NET libraries. Well, that, along with the bogus “Sent from my iPhone.” proves that this is definitely a scam. Another evidence is the peculiar timing of the reply (within 2 hours, at 3 in the morning!), but that can’t be used to prove 🙂 Also, it was the period at the end that isn’t part of the stock “Sent from my XYZ Device” message, subtle but noticeable.

So, stay away from “steve” and the site that “steve” is promoting because that is a scam. A quick search on google also reveals more bad experiences with that site.

Palm Pre Review

I have had the Palm Pre for a month now and I thought it would be a good time to write about my experience with it so far. So, here it is, my review of the Palm Pre.

Customizing the admin site listing for the standard Django User model

Django’s admin site is a great tool throughout development. Django also provides an authentication module that also reduces the development time. The problem is that the auth module predefines the admin classes that shows a very simplistic listing in the admin view.

By default this is how the admin view looks for the User model.

It is not easy to see how you can customize this. But if you read through django.contrib.admin.sites then the answers becomes clearer. You can unregister the existing class for the User model and register your own version. Below is what this translates to, put this code in one of your application’s admin.py (if you are calling admin.autodiscover in urls.py) or models.py files.

Read full post...

MediaMonkey and iTunes 9

MediaMonkey Logo

MediaMonkey 3.1.1 is not compatible with today’s release of iTunes (version 9). If you use MediaMonkey and you have upgraded to iTunes 9 then you will notice that it crashes at startup complaining about d_iPhone.dll. I am guessing that this is because of an updated interface from Apple. If you don’t use MediaMonkey to sync with the iPhone then you can follow the steps below to get MediaMonkey to work again.

  1. Make sure MediaMonkey is stopped (i.e. close the error dialog box).
  2. Open Windows Explorer and navigate to C:\Program Files\MediaMonkey\Plugins. This might be C:\Program Files (x86) if you are using a 64-bit version of Windows.
  3. Move d_iPhone.dll from this folder to some other place (maybe the Desktop or trash if you don’t use an iPhone).
  4. Restart MediaMonkey.

It should start working once that DLL has been removed from the MediaMonkey folder. Obviously, this is a temporary fix and I am sure that the MediaMonkey team will be releasing a fix for this issue soon.

Setting up a development MySQL django user

Django creates a new test database every time you run the test cases, so I was wondering how I should setup the dev MySQL user so it can recreate the database without allowing this user to create or drop other databases.

Well, the answer was simple with MySQL since it doesn’t verify that the database exists before granting permissions on it. This resulted in the very convenient few statements below.

GRANT CREATE ON test_db_name.* TO dev_user@localhost;
GRANT ALL PRIVILEGES ON test_db_name.* TO dev_user@localhost;
FLUSH PRIVILEGES;

With these the dev_user can recreate this database as necessary. Have fun testing your applications 🙂