Why I decided to jailbreak my iPhone

After owning the iPhone for a while, I was fed up with the closed nature of the device. I wanted to disable A2DP and found out that there was no way to do it. I decided to jailbreak the device to take a look about how to do this and found out that there are numerous other advantages as well:

  • The iPhone defaults to output audio on an A2DP device, when it is in the neighborhood. I want to always use the dock connector, but you need to modify your iPhone settings to do this.
  • Some Microsoft Exchange configurations are configured so your iPhone requires an access code at least once per hour. I use my iPhone often, so this was quite annoying. I installed Exchange Unlock to disable this functionality.
  • Access toggles easily using SBSettings application (available through Cydia) to enable some hidden features of the iPhone (i.e. numerical battery level). You can also access some frequently used toggles (WIFI, BlueTooth, …) much easier or show a list of running applications.
  • You can run applications in the background with the Backgrounder application (available through Cydia). This is especially great when using navigation products that are normally disabled when you are receiving or placing a phone call. Make sure you terminate the application when you really don’t need it anymore to prevent the application from draining the battery.
  • The default battery indication is quite lousy, but you can enable a numerical display. You can enable the SBShowBatteryLevel key in /var/mobile/Library/Preferences/com.apple.springboard.plist file or use a third party tool like SBSettings (available through Cydia). This application also allows to perform some other neat tricks, so make sure you take a look at it.
  • Install IPA files from other sources then the iTunes Store. Install AppSync for OS 3.0 on your iPhone (available through Cydia via Hackulo.us repository). Drag the IPA files into iTunes and you can sync them just like normal applications. The only difference is that you’re not updated about updates of course.
  • Access your phone using SSH, so you get access to the entire filesystem and are able to execute any command on your iPhone.
  • There are numerous other reasons why you want to jailbreak your iPhone. Some people like Winterboard to change the appearance of the phone. I like the default style, so I decided to stick with the normal springboard.

Are there any disadvantages? Yes, there are (unfortunately):

  • Whenever you upgrade your iPhone’s firmware, then you lost your jailbreak and need to start over again. This isn’t a major issue, because iPhone updates aren’t released very often. Always make sure you check if you can jailbreak the new version before you perform the upgrade.
  • Some applications can destabilize your iPhone. I only install applications that I really need and test them thorough. The applications listed above have never affected the stability and battery life in any way. You only need to be careful with Backgrounder, because you can easily leave an application in the background without knowing.

WPF TextBox differences

WPF control share no code with the old-style Win32 controls that are used in traditional Windows applications. The WinForms controls wrap the native Win32 controls and extend them in some areas. The WPF library complete rewrites these controls in native .NET code, so some differences may occur. In this post I will describe two small differences that might be annoying.

Using US international keyboard on Windows XP
Using a keyboard setting that allows composing letters with diacritics have some issues on Windows XP. If you set your keyboard to US international and you want to type a (double) quotation mark, then you are used to press ” and then hit the space bar. This doesn’t work correctly on Windows XP, because it will show a space instead of the quotation mark. It will only show the quotation mark when you press a letter. This behaviour is only on Windows XP with this keyboard setting, but because a lot of European end-users will use this setting it can become quite annoying. Typing quotation marks is engraved in one’s brain and it’s hard to get used to a different behaviour. I think this behaviour is wrong and filed an issue with Microsoft that can be tracked here.

Microsoft confirms that this is a bug and a hotfix is available (hotfix ID 376849), but you need to have QFE privileges to obtain the hotfix. Unfortunately, MS Netherlands doesn’t know anything about the QFE :-( . The issue is resolved in .NET Framework 4.0.

No initial selection
When you focus the textbox in Win32 or WinForms, then the text is automatically selected. WPF doesn’t select the text by default.

Default selection is different from old-style textbox
If you type the string “Ramon@foo.com” (without the quotation marks) and you double click on the word “Ramon”, then an old-style textbox will select the entire email address, but WPF textboxes will only select the word “Ramon”. Due to this different kind of finding “spaces”, other functionality that depends on it works different too. If you use CTRL-LEFT or CTRL-RIGHT, then it also is different. It’s different behaviour and I consider it a bug, because people are so used to the old-style functionality that this change might be difficult for end-users to get used to. A bug has been filed, but MS doesn’t consider this to be a bug.

Visual Studio 2010 is expected this year and I am looking forward how the changes reflect the Visual Studio IDE or if the IDE team uses its own controls.