SmartTools

Sunday, January 06, 2008

Blogging from an OLPC

Not exactly an active blog this - with about a 2 year span between blog posts! But now that I have an OLPC and will be playing with it on my way to and from work, I may find the time to write stuff again.

I plan to produce some little applications such as an SVG drawing util - can't believe there isn't one already. Another idea is to create a simple platformer game where kids can learn to program along the way. The latter will make use of the gaming controls built into the laptop, but not used very much as yet (another disappointment with the software theat shipped with the XO laptop)

Right now the OLPC provides a number of programming 'environments' such as etoys, logo, etc. I really like these environments because they encourage play in a free and informal manner. But I also think that the learning experience of more traditional gaming environments is for the most part overlooked by the OLPC community. The idea of mastering small tasks incrementally as one increases one's skill with certain problems, has proved to be fun and engaging for gamers of all levels. I'd really like to see a game that introduces programming skills using this gaming tradition.

My early concept is for a simple platformer, with the story being that the landscape is littered with broken robots and other machines which have been compromised by evil hackers. Your job is to go through level by level and fix the code in the machines so they will work for rather than against you in completing the level.

Each level will introduce a programming command, new syntax or programming problem. Things will start really basic and build up incrementally to pretty tough programming problems near the end of the game.

Of course this will all need to be set up so that levels can be created by a broader online community.

Wednesday, January 04, 2006

Boston on Ice

This photo is of an ice sculpture from the First Night celebrations in Boston. It is backlit by coloured lights which shine through the ice highlighting the rough-hewn textures. Posted by Picasa

Friday, December 30, 2005

SmartPlan


Challenges







Tools

  1. Tools need to be able to interact with a "stage" object as well as the SmartObject manager. Their interactions with the stage will primarily be in the form of mouse events. Changes to the objects on the stage will be done through the object's properties and the SceneObject's display methods (although their may be a notion of a temporary drawing on the stage that happens before object creation or during editing)
Groups, Instances & Tags
  1. The ability to develop prototypes & place instances of these in a design is very important. It is not clear whether these should be defined in seperate files that get loaded in as symbols, or whether there should just be a central definition in the one file. I can probably look at how SVG or XAML handles this for a better idea how to proceed.
  2. Grouping objects is desirable both for editing objects and for analysis purposes. It may be best to approach this using a tagging system as with delicious or picasa. That way groups could be dynamically analysed in a very flexible manner based on the tags selected.
Application interaction:
  1. "Hollow mode" for overlaying other applications.
  2. XAML / WinFX integration (has nothing to do with core, but handy for utilizing best parts of both GUIs)
DLL organization:
  1. Application needs to be able to be launched either as a default application or by another application in order to allow other programmers to write their own application interfaces (eg for Flash, AutoCAD etc).
  2. Alternatively, I need to have some kind of plug-in solution, but I think its easier to have a seperate, compiled application link to the precompiled core.

Wednesday, December 28, 2005

Sasaki Knowledge Base

Sasaki Knowledge Base a cool knowledge

Main Page - Wikipedia, the free encyclopedia

Wikipedia grows every day and has some really interesting stuff. This site provides the kind of structure Google often lacks and is always up to date.