Friday, January 18, 2008

iRex Moving Forward with Community Project

You may have seen a post on the iRex forums about community development.

Basically, iRex is trying to open up the iLiad as a development platform simlar to that of the Nokia Tablets. Nokia's internet tablet platform is very popular because of the great documentation Nokia provides, the openness of the platform itself, and the ease that users can download and install new programs on their tablets. I'd like to see the same thing happen to the iLiad.

In the most recent post by Karel, he's asking for those willing to take a more active role in the proposed community to email him. I have done so, and plan to help bring this community to life. Right now, iLiad development is unorganized, and difficult for a new user to get into. Hopefully, with iRex's help, we can overcome that.

I'm going to lay out a few things that I think the iLiad and community need.

  • Installation
    • Right now, it's very difficult for a user to install a 3rd party application. They have to request shell access, find the program they want to install. Download and unzip it, then run it on the iLiad. This can be confusing, and can cause many problems along the way.
    • There could be a few ways to solve this. The new community can have a page with tested and working applications. The user can sign into that page with their myIrex username/password, select the application and have it downloaded via the IDS.
    • Or, there can be a program like that on the iPhone, where the application connects to a list of feeds and displays a list of available apps to the user with a one-click installation method.
    • Lastly, there's the more crude, but effective method of supporting ipkg through the contentlister. The user downloads the ipk from a website, copies it to the iLiad, and it installs with a single click.
      • All of the above methods would require some intervention from iRex, either with the website, or changes to the internal software.
  • Adding new viewers
    • There needs to be a better way to add and remove new viewers and supported formats to the contentlister. Right now, one needs to use a sed script to modify the registry. This can be prone to errors and removing afterward is very difficult.
      • I thing that new directory for "Plugins" should be added.
      • The package installer can copy an xml (or any other file) into that directory with the extension supported being the file name.
      • Inside the XML file, the program that is used to read the file will be listed, along with the icon to be used.
        • For epub for example.
        • \mnt\setttings\registry\plugins\epub.xml
epub.xml:
<viewer>/usr/local/bin/FBREADER</viewer>
<icon>/usr/local/share/icons/epub.png</icon>

        • It could be as simple as that. This way, if you have two different programs that support epub, you can overwrite the existing configuration with that of the new program. This wouldn't change the registry in any way, and if an error occured, the contentlister could ignore the plugins directory the next time it launched.
  • Screen Refreshes!
    • Right now, the biggest problem with porting any application is getting the screen refreshes. If this could somehow be made easier for developers, I think that the iLiad would have an influx of new applications available for it. Could this be added to GTK within the iLiad? This way the application would work as normal, and GTK would refresh when everything was done being painted.
      For the end user:
  • Documentation, Code, Website enhancements
    • This new site is going to need to be well organized and provide lots of information. I can think of a few things it'll need.
      • A way to track ongoing ports and their status
      • A bounty system for users to request new applications
      • Documentation on internal iLiad functions
      • Open source the UI compontents, ContentLister, note application, browser app, etc
This is just a small list. I think that there's a lot of potential for the iLiad that's not being realized. I hope this new initiative can solve that.

Monday, January 14, 2008

FBReader port coming along nicely

My port of FBReader 0.8.10 is coming along very nicely. I've decided to go ahead with the limited functionality idea in order to speed up porting, and make it act more like a native iLiad application.

You can see what's happening in the screenshot below:


FBReader is shown reading and epub book downloaded from feedbooks.com.

As you can see, it have FBReader start in full screen mode. This hides the unnecessary toolbars.
It gives you a status indicator, page count, and clock that will updates as you turn the page. Right now, it takes about 2.5 seconds to refresh. This is a little better than the older version. I'm hoping to increase the speed even further.

There are a few functions that can be used with key shortcuts:
  • Upper Left Button: Closes FBReader
  • Page Forward/Backword
  • Up & Down arrows short: Increase and Decrease Font
  • Dot Button: Go to the beginning of the document
  • Up & Down arrows Long Press: Next and Previous Table of Content Section
  • Dot Button Long Press: Open Table of Contents
There are a few things left to do before I can publish the port. I'd like to save the configuration to /mnt/settings so that it won't be lost when you perform an OS upgrade. Also, I need to create and test the installation package. I've reduced the file size enough so that it can easily reside on the internal memory (I think the package takes up about 2.5MB, I may be able to shrink it further).

I'm thinking about preparing a short video demonstrating FBReader and the FeedBooks.com iNewsStand application. These two programs really show off the iLiad's potential and flexibility.

Tuesday, January 8, 2008

Idea: FBReader - Limited iLiad Edition

I'm getting ready to start my port of FBReader 0.8.10 with epub support. I can easilly get this working on the iLiad, however I want to speed up the screen refreshes by using only native refresh calls. The problem is that in order to get these refreshes to work in the options dialog and FBReader library, a lot of time consuming manual test & check work is required.

I had a thought about limiting the features of FBReader and making it look and act more like a native iLiad viewer. I think that if I completely disabled the top navigation bar, set the appropriate key bindings, and forced the user to launch all books directly from the contentlister, it would actually significantly decrease the amount of time it would take to release the port.

I know that some users do like the Library function of FBReader, but for those who don't know or need it, this would be an ideal solution. I may also be able to decrease the size of the binary and libraries, to allow it to be installed on the internal memory of the iLiad.

I need to get Shell access back, and do some testing. But unless I hear too many complains, I'm going to go forward with this (at least until I can devote more time to a full port).

Monday, January 7, 2008

New Years Status Update

I haven't been active very much on my blog or the forums recently, but I'm still around.

It's been crazy at work and home the last few weeks. I haven't had a spare minute to do any porting in a while. Rest assured, I still plan to release a new port of FBReader with epub support. However, getting time to do it has been pretty difficult. All should calm down by next week, so hopefully I can put in some real effort in then. I might try to time it with the 2.12 software release. ;)