Fix the cydia crash problem after jailbreak iOS 5 with redsn0w 0.9.9b9

It is really weird. After using redsn0w 0.9.9b9 to jailbreak my iPhone 3GS with iOS 5.0.1, the iphone can be booted with the option "just boot" in redsn0w. The Cydia icon showes up on the screen. Open it and say I am a "User". The loading process can be seen, and... quit. I can ssh into the iOS, that is to say, the iphone is already jailbroken. But what happened with Cydia?!

I've tried many different methods.

1. restore the stock firmware and do the jailbreak again. -> No success.
2. reinstall Cydia with SSH on the iPhone. -> No success.
3. just boot the iphone tetherly again and again -> No success.

So I tried to read the log file of Cydia. The log file can be found at /private/var/tmp/cydia.log. I noticed that an error is repeated again and again.

2011-12-22 14:43:20.135 MobileCydia[252:e07] Setting Language: de_DE
Assertion failed: (dictionary->lockFD != -1), function IDXUserDictionaryOpen, file /SourceCache/Mecabra/Mecabra-248/mecabra/IDXUserDictionary.c, line 88.

I've googled for a while and nothing is found...but it must be something wrong with the laguage settings. I've discoved I use English as user interface language and German as date/time format. Mumm, maybe that is the problem. I've set the both as English. Now, Cydia runs smoothly without any problems.

In a short, that is a bug of Cydia, it depends on the language settings of iOS! Try to set up the language unified, then it doesn't complain again.


How to install FontForge on Mac OS X Lion

Since I got some old font files before 2007 and I wanna use them, after some inspection, Font Magager told me that the name tables of the fonts are mssing. In order to add them manually, I googled a while to find out FontForge can do the job.

Now comes the problem. FontForge is open source and doesn't provide any compiled binary for Mac OS X ab 10.6. That means, one must complie it before it can be used. So after a little searching again, I found Garrick's guide [How to install fontforge on mac os lion]. Sadly, the process he used doesn't work for me.

He suggests that it can be done easily with the commands:

brew install fontforge
sudo brew link fontforge

The first command returns some fatal errors:

Error: Failed executing: make install
These existing issues may help you:

Then the answers in those issues suggest:

brew install cairo --use-clang

I tried

brew install fontforge

after successful execution of that command. Then it came with:

Error: Failed executing: make
If `brew doctor' does not help diagnose the issue, please report the bug:

According to the message, I ran the command:

brew doctor

The result was:

Unbrewed dylibs were found in /usr/local/lib.

If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected dylibs:

Unbrewed static libraries were found in /usr/local/lib.

If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected static libraries:

Unbrewed .la files were found in /usr/local/lib.

If you didn't put them there on purpose they could cause problems when
building Homebrew formulae, and may need to be deleted.

Unexpected .la files:

So I deleted all the above mentioned files manually and executed the command again.

brew install fontforge

The result:

Error: Failed executing: make
If `brew doctor' does not help diagnose the issue, please report the bug:

Very luckily I saw a warning before the compiling errors, that reads:

Warning: Building with LLVM, but this formula is reported to not work with LLVM:

Compiling cvexportdlg.c fails with error: initializer element is not constant

We are continuing anyway so if the build succeeds, please open a ticket with
the following information: 2336-10.7. So
that we can update the formula accordingly. Thanks!

If it doesn't work you can: brew install --use-gcc

So I tried the command again:

brew install fontforge --use-gcc

Now Mac OS X Lion lets me compile FontForge endly.

In conclusion, the right commands to compile FontForge on Mac OS X Lion should be:

brew install cairo --use-clang

brew install fontforge --use-gcc

In order to see FontForge in Application folder, you need to run this command:

ln -s /usr/local/Cellar/fontforge/20110222/FontForge.app /Applications


iOS BUG: Synced music won't appear in iPod or Music App

Yesterday I've updated my iPhone 3GS by the means of OTA (Over The Air) to the newest firmware iOS 5.0.1. Everything runs smoothly, BUT! After I open the supplied Music App, I've seen only a very little part of my music collection? Where did they go?

Firstly I thought the update deleted my not-from-itunes-store-bought music files, then I checked the iTunes, the status bar of my iphones indicates that there are exactly 13.6GB music files on it. It appears that the mediathek file on the iphone has corrupted with the update, or maybe the update has changed the structure of the mediathek file and forgetten to update it.

What can I do? Sure, completely restore is one way but also the last way I wanna go. So I've googled around for a while to find out a better and smart way to correct it. Then I found this article [iOS 4.2 bugs: iPhone music gone after the update? Here’s the fix! ]. Okay, i am not the only one and iOs 5.0.1 is also not the only one with that bug.

  1. Grab your cable and plug your iPhone into iTunes on your Windows or Mac PC

  2. When your iPhone shows up in the sidebar, make sure you can see the content listings beneath it (click on the triangle to the left if not)

  3. Click on music

  4. Pick a song

  5. Play it in iTunes

  6. Sync your iPhone

The method in that article didn't work for me for the first time. I have to figure out why it doesn't work. The reason behind that method is: Change the play count for a song, then iTunes changes the mediathek file on the iPhone.

So it is very important for that method, just try to play a song and maybe you can forward it very quickly to the end, make SURE that the play count of that song changed and resync!

Things are gonna be alright and we don't know when apple will fix that long-lasting bug.


Goodbye, Flash on mobile devices!

Now the war is over. Adobe has declared that they abandon the development of Flash on mobile devices. The winner is HTML 5.

Like Google has mentioned before, the future of Internet belongs to the browser. If we think it further, in the future there should be at least one browser on one device, that means, developers should consider how and what information should be delivered, but not on what kind of devices will support it.

In other word, HTML 5 won this war just because one of its properties, "once programmed, run everywhere". Sounds familiar, right? Sure, it is the slogan of Java.

In my opinion, the device in the future should have some CSS rules to let the end user know what kind of mobile device they use. Take Mobile Safari as an example, its UI elements on a website without CSS are looked exactly like an app on a iPhone.

Now the day is coming, are you ready for the changing?


Fix the problem with Captive Network under Mac Lion 10.7.2

The Auto Logon Window for Captive Network in Mac OS X Lion is very handy, but with the update 10.7.2 there are so many problems with such a feature happened. Sadly I have to use the IE in my VM Windows to get me logged in.

Now here is the solution:

Use Terminal or Text Editor to edit the file /etc/hosts and add the following lines to the end: crl.usertrust.com ocsp.usertrust.com crl.incommon.org ocsp.incommon.org crl.comodoca.com crl.comodo.net ocsp.comodoca.com

After that, the DNS cache must be cleared with Terminal Command:

dscacheutil -flushcache

Log off and log on, you will see the missing feature again under Lion 10.7.2.

The reason:

With the update 10.7.2 Lion has made some errors on CSL certificates, especially on some captive networks that need the user wait for a few seconds.

Enable AirDrop on older Macs

We all know that Apple has disabled the useful function AirDrop on its older Macs. Now with some work in Terminal, you can enable AirDrop for many older Lion systems at the Terminal command line. Enter:
defaults write com.apple.NetworkBrowser BrowseAllInterfaces 1

After setting the defaults, A restart of Finder will be necessary:

killall Finder

Once you do, you will see the AirDrop icon on the left panel of Finder.


Review of Adobe Edge Preview

Adobe has shown the newest HTML authorizing tool Adobe Edge for a while. Acoording to Adobe, with that tool the making of animated web pages should be easier. Precisely, "Adobe Edge create animated web content using HTML5, CSS3 and JavaScript with ease, power and precision". With a lot of interest I have tested the product. The version Preview 1 is of Aug. 18, 2011 and the Preview 2 of Sept. 8, 2011.

The experience from Preview 1 is really disappointed. There are only 4(!) tools available on the toolbar: select, rectangle, rounded rectangle and text. So only thing I can do is draging the tools to the stage and making some changes to the object.

Now comes the so called big part. The animation part will be done with a timeline that is very similar to that in Adobe Flash. Define the starting and ending property value, the animation (between frames) will be generated automaticly. After doing that, we can take a preview in a browser directly without saving.

If we look at the source code, Adobe Edge utilites jQuery framework actually to make the animation possible. All the animations are capsuled in one generated JavaScript file and all the propery changes will be defined in one CSS file. The part of the html contains only the UI element.

The source code of a html file looks like that:

<!DOCTYPE html>
<!--Adobe Edge Runtime-->
<script type="text/javascript" src="edge_includes/jquery-1.6.2.min.js"></script>
<script type="text/javascript" src="edge_includes/jquery.easing.1.3.js"></script>
<script type="text/javascript" src="edge_includes/edge.0.1.2.min.js"></script>
<script type="text/javascript" src="edge_includes/edge.symbol.0.1.2.min.js"></script>
<script type="text/javascript" charset="utf-8" src="Untitled-1_edge.js"></script>
<link rel="stylesheet" href="Untitled-1_edge.css"/>
<!--Adobe Edge Runtime End-->

</head><body style="margin:0;padding:0;">
<div id="stage" class="symbol_stage">

That idea sounds good, because the user can use Adobe Edge as Adobe Flash. BUT, wait a second, the real world is very complicated. What about a property that is only deteminated by runtime or even by the related position to other objects? Adobe Edge seems cannot afford such kind of work at the moment.

Actually, Adobe Edge is somehow like Adobe Catalyst compared with Adobe Flash Builder. In Adobe Edge, the source code of a html file cannot be seen or edited. It is really like a tool for traditional Flash developers who begin to jump into the html world.

As fas as I said, there is still a long way for Adobe Edge to go to let the web developers accept the tool.


Ubuntu (11.04) "Unity" now fails on OSX Lion (10.7) with Parallels (6.0.12094)

It is actually a discussion from

The story is like this. When I used Ubuntu (11.04) "Unity" on OSX Snow Leopard (10.6) with Parallels (6.0.12094), there was no problem at all. All the graphic effects can be switched on to make my eyes happy. After updating the totally new advanced operating system Mac OSX Lion(10.7), it did not work any more.

I did some research on the net. Then I found out that the issue has been reported to the Parallels company and they promised to fix it. After two months waiting on the patch (normally an update for version 6), now come the news said that the Paralles has a new version of 7. In order to fix the problem, we should take an upgrade for $49! So that is the deal, if we buy the Parallels 6 after 1. August 2011, we can get an upgrade for free. But(!) the issue is reported already right after the opening date of Mac OSX Lion, which is 22. July. So it is unfair for such people who bought the Version 6 after upgrading their mac to Mac OSX Lion.

Anyway, let's see if that fix will be ported to Paralles 6 too since the company assures that the Version 6 should also run on Lion.


It seems somehow a long time passed by that I didn't make a new post here. The reason is very simple: the iPhone.
Since I've used the iPhone around 2009, it is always a tough job for me to post something on blogger.

There are many apps on iPhone which can do the communication well, such as twitter, Facebook and so on. But until today Google gets the blogger app on the iPhone. So I think it may be already too late for such service from google. Anyway, I will try to update my blog here from today :-)