Sunday, January 28, 2007

Screens System Requirements

Screens is designed to scale from low end to high end devices. It requires hardly any dynamic memory apart from a single off-screen buffer so I guess it requires a different amount depending on the screen size. It does require alot more storage memory although I dont know yet how much because it largly depends on how complex the UI will be. I will try and make Screens work on as many devices as possible and I do have some tweaks available where you can choose speed over size, so devices without much room can opt for size saving while devices with alot of space can opt for speed. When I finish the UI components in Safire, I will have a much better idea of the scalability of Screens and will able to update you on the storage requirements. Update: Yes, Screens will run on PalmOS 4.0 and maybe even PalmOS 3.5/3.0 if realy wanted

Saturday, January 27, 2007

What does Screens bring for music?

Screens is going to do wonders for music lovers. First of all, you will finally able to make your own playlists in a hierarchy, so finally you dont have to use folders to seperate music that you want to hear. Another feature will be the ability to make playlists that are a combination of other playlists. So for example you will able to take your favourite pop playlist and your favourite rock playlist and have a pop & rock playlist. If you add a new music file to the pop playlist, it will apear in both the pop and the pop & rock playlist. I think users will find this a powerful feature. I am very open to features and I am sure I will see them pile on when I release Safire later this year. Even though the syncing feature wont exist in Screens v1 but it will be available in v2 which allows you to sync your favourite music over when connected. It goes even a step further, once you sync, it transfers your entire music collection information (meta data, not the music itself) so that you can decide when offline what music to sync when you go back online. For example: You could be listening to a George Michael song on your device and you can easily tell your device to sync another song from the same album or even its entire album. I see this feature very usefull to myself and I am sure others will too. I have not decided which music players I will integrate with but you will able to control your music directly from Screens without having to exit to run your music apps.

Friday, January 26, 2007


I added some more functions to handle class types and some macros to ease the handling of identifiers. I am adding more functions to the kernel, to make it easier for Safire. I write a function for Safire and analyze if any of its functionality should be put in the kernel. Most of these functions added are object management related and therefore they should be in the kernel. I will upload Safire as well when it gets to a running solution. It will be in the same location in SourceForge. I have also added the CoreObjectFree action for virtual objects, but will not add it for object stream functions untill needed. Things are going well and I feel that the object storage is becoming easier to use and more effective. Safire is moving along and hopefully I can get something visual soon.

Friday, January 19, 2007


OK, I have finished writing the method distribution and it works nicely. The idea is that you can associate a number of methods with an action and then you can work on an abstraction of actions. So instead of sending a message to a specific method, you send a message to an action and it forwards the message to each method in the action. This gives much more flexability since you can tap into existing message distributions at run-time. I know it sounds 'much ado about nothing' but when Safire is released, you will see what its all about. Its a great market for 3rd party developers. I now need to add the use of methods to the CoreObjectFree and stream interface as described in the previous post. I prefer updating you on my work update, then disappearing for a few months untill Safire goes somewhere. This way at least you know that Screens is still going and moving forward. Enjoy your weekend, Zakai Hamilton

Monday, January 15, 2007


Things are going great... I have made alot of changes to the object storage to make it faster, simpler and more flexible. I will save you all the mumbo jumbo but from an API view links are now bi-directional, so when you link a source to a target, the target also knows about the source, so you can browse all the sources of a link which allows to delete links when thier targets are deleted instead of leaving dangling links. I still have to add actions which is a group of methods. So when you send a message to an action on an object, it distributes the message to multiple methods registered with the action. This is where the magic of Screens starts. Because multiple methods can register with an action, more than one set of code can be triggered on an event which makes things very flexible. Add type inheritance and you are dealing with a very powerful backbone. Once I finish adding actions, I need to use them for object removal (CoreObjectFree) and stream functionality (CoreObjectRead/Write/Size/Resize). This allows when removing an object, to free up any 'extra' resources attached to the object such as dynamic resources (like a screen buffer). I will also need to add an API to specify that an object is temporary (like properties that hold the handle to a dynamic resource). Very soon I will able to spend more time on writing Safire and less on improving the Kernel.

Wednesday, January 10, 2007


First of all, Screens is not a direct competitor for Saguaro... while they seem to improve PalmOS capabilties they do so in two different approaches. Saguaro is more graphical & faster while Screens is more flexible but slower. Screens is very technical at the moment untill I get Safire up and running and then you will start to see the power of Screens shine. Untill then, technical points are going to be the highlight of the blog. I can't wait to get to the GUI but I dont want to rush it nor to do I want to take forever. You have no idea how many times I have to convince myself to not rewrite Screens but rather fix the existing code. I have rewritten Screens to many times and its about time that a version lasts more than a year. I am doing some fine-tuning in the kernel before writing Safire so I can better design the Safire component. I already have the basic design which is about how shapes become pixels on-screen. Things are going well... About the demoing... once I can give a demo to show on your devices, I will release the code in a compilable project including the final executable so you wont have to compile Screens.

Sunday, January 07, 2007

Saguaro, what is it?

I have been seeing alot of interest in Saguaro lately.... First of all, its not mine. Its nice to see interest in it and I was able to convince the developer to allow me to upload this video to wet your lips with multi-tasking fever, Edit: Here is some more info: Enjoy!

Monday, January 01, 2007

Kernel Released

Hi Everyone, This is it, the Kernel is released at Thank you all for getting me to this moment, I could of not got to this position without all your support. The version 0.46 works and can be compiled for Win32 or Garnet (palmOS) platforms. The readme in the zip file gives some basic instructions how to compile the kernel. Once the kernel is compiled, you can create a new project, add the files from interface folder with the platform specific files (either Core_Win32.c or Core_Garnet.c) to be compiled and use the test.c file to use the kernel. I compiled Win32 in Visual Studio Express 2005 and Garnet in Palm OS Developer Suite. If any of you do try this and things dont work dont hesitate to email me at I have already uploaded new code to SVN and will make versions as time goes by. The new code simplifies objects by using a node flag instead of relying on unnamed nodes. This makes lookup much faster which is very important. I will improve performance as I start using it with the Safire module. Thank you all and have a wonderful year, Zakai Hamilton