Archive for the 'learning' Tag


 

Mobile development winter issues

When this autumn began I decided as indoor spare time activity (everyone knows how sad winter in London is) to improve my poor C++ maybe applying it to hand held devices. I had some applications in mind that I wanted to create and as Palm Treo owner, and in need of multimedia functionalities, with J2ME it wouldn’t have been straight forward anyway.

After my computers have been stolen (and thus lost the source of many experiments) and found out that OOP in PalmOS is not that recommended, after many months of not exiting results I ended up looking for a technical partner for PalmOS development. At that speed I would have probably delivered the applications way after PalmOS was extinct.

Of course my interest was far from producing final and refined software, i wanted mainly to prototype some ideas and it’s clear C is not the most recommended platform for prototyping, but due to my learning interest and poor testing devices availability I gave it a go.

Luckily I recently bought a second hand Nokia N70 where I could easily install FlashLite 2.1 and very easily prototype the applications with limited hardware access. In the same device I will be probably be able to use in Java at least some multimedia functionalities for more complex prototypes.

I’ll post soon the first concept, stay tuned!

Future “development”

Recently I had to think a lot about an eventual hardware and software configuration for a personal project - still on progress. Basically my aim is to provide PCs with a pre-installed software. The software has to be, as usual, visually and interactively compelling. After a bit of research I wanted to share my actual thoughts.

 

Operating System

When it’s about delivering a full solution, the OS is definitely an important part. Not only because the eventual cost of the license, for instance the Windows’ one, but also for the time you will have to spend on setting it up. Linux distributions are getting incredibly complete and Ubuntu, of course, is a good example. To set it up as second boot option on my old laptop was incredibly quick, especially with the 6.10, and having it working was much faster then setting up Windows. The cool things of Linux though, is that you can have LiveCD. In very few words, is theoretically possible to put in a USB key a generic OS and our custom application so that any machine could run our software in few minutes without any need to setup, pretty amazing.

 

Development Environment

For this kind of stuff I used to use Processing + OpenGL, like in bb-write, and so the first tests have been developed with it.
Adding complexity to the application, the performances start struggling. Usually it shouldn’t be a Processing’s issue, since it works just as kind of wrapper to OpenGL, but since in the past (link) I noticed a remarkable decrease of performances between the 92nd revision and the 107th, I can’t exclude it.
A lower level alternative to create executable could be C++, which I used during the OpenFrameworks workshop I attended at Ars Electronica this year. If I want to stick with Linux though, I should set up an IDE to deploy in Linux and we know how odd is to switch IDE in C++. The compatibility issues that changing a compiler could generate are very painful.

 

Programming Language

If I want to be able to switch easily from one OS to another I definitely need a higher level programming language. Two that don’t use any Virtual Machine, and so could be very tempting for their simplicity in setting up the PC, are Python and Ruby. They are very modern languages comparing to C++ and Java, and their interpreter generates temporary the bytecode so the application can run natively on the machine.
I have been totally shocked about the simplicity on creating a standalone application that use OpenGL with Ruby. In Python instead my attempt has been a bit of a nightmare, too many libraries dependencies and only one incompatibility can increase the pain considerably. It’s very difficult to say which is better between Python and Ruby, Python has so many libraries and Ruby is getting very popular recently only because of Rails, but the simplicity on deploying gave me a clear example about the quality of the architecture behind.

 

So this long post was only to say that at the moment I’m investigating both on Linux and Ruby, two technologies that seem to have great future.

Learning electronics

Usually when people don’t post is because they don’t have anything to say, but to be honest this wasn’t definitely the case, probably just the wish to say/show something more interesting but this time I rekon it is worthy to post.

learning_electronics.jpg

As you can eventually notice from my recent delicious bookmarks I finally started using the wiring board I bought a year ago and the book I bought few months later (Physical Computing by Dan O’Sullivan and Tom Igoe). Continuing my backward journey inside interactive artifacts (before from graphic to programming), I couldn’t avoid to get to the electronics (I’m wondering where I could get later :) ). Since my early experiments with computer vision and my passion on interaction design (especially with GUI). I really had to get the knowledge to start making experiments with different input devices to explore new doable paradigms. And about that I already have a small project in mind which at the moment I’m just waiting a new sensor to develop it. So, expect news about it soon.

In these days of relaxing I had also time to think about a totally different project but not to ruin any surprise I have to leave you with no info about it, but also in this case news can come very soon.