November 19, 2009

First Month of life


I don't want to bother you, but two days ago was the first month of life for my blog :-)
I want to say thanks to all my readers and twitter followers.
Soon the next post....

November 17, 2009

Objective-C for beginners

Today I want to present to you the second lesson I prepared for the University of Bologna with a friend of mine: Omar Cafini about the bases of Objective-C programming.

The presentation wants to give an overview of Objective-C code writing and bases on how to deal with applications present on the iPhone/iPod Touch such Addressbook and ImagePicker.

One note more is about the storage and data handling, touch and multi-touch events handling and SQLite interface.
For more, watch the slideshow and post your feedback:



The slideshow of the first lesson is available here.
Thanks for reading :-)

November 14, 2009

iPhone/iPod Tips & Tricks


Today I wanna start the first episode of a long series of Tips & Tricks for iPhone/iPod so to make better your iPhone/iPod life :)

In this first episode we will see how to make accented characters with the iPhone keyboard:
  1. Open whatever app that show the keyboard like the Note app and start writing your text.
  2. Now for writing the accented character (for example à) tap the 'a' character on the keyboard and take for one second your finger over the character. Will appear all the combination of accents available for that character.
  3. Without releasing your finger from the screen simply go over the accented character you want to insert, then release the finger from the screen; the accented character will be inserted.
Thanks for reading and see you on next episode :-)

November 12, 2009

iPhone Development Tools

Today I want to share with you a slide show presenting the basics on iPhone development tools which a friend of mine made for the University of Bologna (Italy).



On the next days I'll public the second episode.
Enjoy the show :-)

November 10, 2009

Wearable gesture interface

Today I want to talk about a movie I saw on You Tube from WUW - sixthsense about a wearable computer and a gestural interface. I have to say that it's a very good job.
I think that gesture recognition will be the future interface for devices; Nintendo given us a success example with its Wii and now also Microsoft with Project Natal. I have to admit that those two examples are indoor examples, for outdoor the interaction could be different.

These gays on YouTube video made a great job, but another time we are going to replicate a Desktop or Laptop usage and behavior into those wearable devices.
Do you imagine that someone of you will go walking around the city dressing a projector and moving its hands like a "Robocop"? I won't do :-).
I think that: Interaction do the difference.

We have to keep in mind that people in general (the so called street man) has not technical background and takes time to accept and use a different technology specially if this technology has a high level of complexity. People are frightened by the complexity.
The hardware stuff should be away from the human body, should be placed in the surrounding environment and recognize normal and standard gesture that people do normally.

We need to push the computer in the direction of humans, not vice versa if we want the natural interaction and acceptable gesture recognition.

I've not the solution on my pocket, but I think that this process can be achieved by the collaboration not only between informatics, but involving also experts in sociological disciplines.
Natural interaction is not an informatics story, it is related to human behavior.
This will impact also in other fields and technology applications like the home automation (soon I'll post something on it).
What do you think? which is your preferred interaction modality?

Thanks for reading :-) Feel free to leave your comments (only registered).

November 8, 2009

Environment ... Variables on Mac OSX

Today I was fighting with Qt Creator and environment variables on Mac OSX.
Macintosh has a clean way to encapsulate software: the .app extension is in reality a folder in which are contained resources, the application's executable and other files needed to the application. In this way if you have to uninstall an application you have just to trash this .app container and you have trashed everything. But.
If you want to make a software dependent on something else present in your machine and you want to be portable and cross platform an elegant way is to use environment variable to tell your software where to find its dependencies without the needs to ask other developers to change something in the source code.
In Windows, which leave with distributed pieces of code, was very easy to allow Qt Creator to see the env variable, just put a new custom variable into "System -> Preferences -> Environment Variables", then start Qt Creator and your variable is there.
With Mac OSX you can assign environment variables in different ways for different purposes. The environment used for application is not the environment you get when starting the Terminal application.
For Terminal application, environment variable can be set in the .profile file situated in your home folder (if it is not present you can create it).
Environment for Mac OSX applications is determined at login from the file: environment.plist placed into the .MacOSX folder situated in your home folder (again, if the .MacOSX folder does not exist you can create it and create inside it the environment.plist file).
Now you can edit the file and add your custom variables (by editing the file with Property List Editor application) that will be read from Mac OS applications at login.

I had just to logout and login, start Qt Creator and now magically my custom env variable was there :-)

Thanks for reading and feel free to leave a comment (only registered users) :-)

November 4, 2009

Augmented Reality on iPhone Apps

Today I want to talk about something popular in the iPhone golden world and is becoming a "must" for all the new cool applications: Augmented Reality.
Augmented Reality is a superimposing of a virtual objects generated from a computer with the real world captured from a camera. Synthetic object are placed into the real world by register them with the real space. A complete definition of Augmented Reality can be found in Wikipedia.
Who see the scene, perceive that the synthetic object is immersed into the real world.
Conventionally this technique is used to augment information given by the real world like for example superimposing a radiography or a tomography image of a patient over the real image of the patient itself.
This imply that your virtual world has to be registered with the real one by using drown patterns (like for example ARToolkit does) or marker placed on real world.
Recently, iPhone application shown this technique a bit altered (from the classical definition of AR) in my opinion. The synthetic elements shown in the device were not directly correlated to the images shown by the camera, but instead they were related with the position or orientation of the device.
I think that we are still far from having the "real" Augmented Reality on mobile devices with real-time rendering and high resolution that will do the user believe that what he is seeing is real.

Thanks for reading and feel free to leave a comment :-)