Monday, March 30, 2009

Ideal iPhone browser

I have an iPhone. I use it for web browsing when I don't have access to desktop. However, the Safari coming with iPhone leaves a lot to be desired. Some fairly common features are lacking, although the multi-touch ability really makes it the best browser on mobile phone to date. The ideal browser for iPhone pretty much can be summed up as "Desktop Firefox" on iPhone with multi-touch ability. The following is the list of things to improve. If someone write such app, I imagine it to become a big hit.

1. REAL tab browsing: Why tab browsing? Some may ask. For people like me, it is close to insane to not have tab browsing. I don't know why. :-) Of all the browsers I tried on iPhone, and I have almost tried all the browsers, none of them come close to real tab browsing. A few of them do have tabs, but they won't load the page in the background, and they don't keep the page and position you are when you move around tabs. When you tap on a link, there should be choice of "open in the same window" or "open in a new tab." If "open in a new tab" is chosen, it should be immediately loaded while the user is still reading on the current page. There should be a indicator to let the user know the loading status. The user can then switch to the loaded page when it is ready, hence waste no time on waiting the page to be rendered. Once you move back to the original page, it should be quick and it should go back to the original stopping point. One example for this utility is to read Google news. When you are in the index page, you will find some interesting pages that you want to read, but you don't want to waste the time to wait for them to be loaded, especially on relatively slow 3G or EDGE network. You can then open them in the background tabs and keep on reading the current one. When you see the signal indicating a page is ready, you can then go to that page and read. When you done, you can go back to index page to continue reading. However, you don't want to waste time for the index page to reload, so the switch should be fairly fast. For this to work, I believe some cache work should be done. Also, one should be able to open as many tabs as he want. There, of course, will be limit, but it should be technical one, not arbitrary placed.

2. Save pages. Some web pages are long and informative that you want to visit in the later time after you have laboriously load it to the iPhone. Save page function will be very useful and time saving. A page should be saved with all the its accompany images if so desired, so when you read it from iPhone memory card, it should look exactly the same and all the links should still works. Of course, the link should link out to the unsaved page through network. This function actually is important part of the first function. As far as I know, the RAM of iPhone is quite small. You cannot load too many page on the RAM, especially you still have to share it will many other programs. In order to have many tabs, you have to push pages into flash memory at some point. Hence, it is very important to have a mechanism to save and load pages from flash memory.

3. Misc.: You should be able to find items list below in other iPhone browsers. These are some things I found to be good. Option to have auto-rotation on and off. Full screen browsing if so wished. History. Bookmark and mangement tool. Open page to Safari. Open from Safari. Clear browsing history and cache as a feature, not as lack of feature. :-) Recover to the state where you leave the program upon re-enter the program. The page you are viewing should be showed first, then work the other pages in the background and from flash memory, not from network. Stop loading upon command.

Really, all these functions are very common in desktop browser. I don't know what kind of restriction iPhone SDK has forced on developer. Hope someone somewhere can develop this app quick. I wish him or her making a big fortune.

Open for comments

For a long time, there is very few comments to this blog. Obvious reason will be there is very few readers, which is quite reasonable. However, a few people feedback to me through email saying they have trouble posting comments, although they would like to. I finally realize there is a setting I need to change in order or any reader to post remarks. It is now done, please try it out if you want.

Saturday, January 24, 2009

Progress in bigger endgame construction with 64-bit Forth

In one of my previous post, I have mentioned the limitation of my previous endgame program in making larger endgame databases. One of the limitations is space, the other is time. The space limitation is due to the continuous memory size that I can allocate. In 32-bit system, it is 2G in most system. It doesn't matter if I have 8G memory in my system. Upgrading the program to 64-bit and running it in 64-bit system is what I have done. After eliminating space constraint, time constraint became the problem. My approach to this problem is to first find a faster Forth system. Marcel Handrix has implemented a very good iForth. He has recently made it a 64-bit capable to accompanying the already existing multi-core ability. I have recently modified my program so it is iForth 64-bit compatible. I also add the multi-core capability besides changing some algorithms to improve the efficiency. At the end, I think I have a program that is ~5x faster and space-limited only by hardware. Now, I am making new endgame databases with an 8-core 64-bit Linux system. Hopefully, some more intriguing endgames are now in my reach. Baring the long time needed, most of the long studied krnbbeekree should be doable. Let's see how long it takes to build these.