<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xml:lang="en">
<title>Daniel Rocha&#039;s Forum Nokia Blog</title> 
<subtitle type="html">&lt;p&gt;A blog about everything that sounds interesting to me and Forum Nokia audience.&lt;/p&gt;
</subtitle>
 
<updated>2008-11-28T18:10:33-01:00</updated> 
<id>http://www.lifetype.net,1.2/</id>
<link rel="alternate" type="text/html"  hreflang="en" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog" />
 
<rights>Copyright (c) dcrocha</rights>
<generator uri="http://www.lifetype.net/" version="1.2">LifeType at Forum Nokia</generator> 
 
<entry> 
<title>Commercial S60 applications in Python</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/11/28/commercial_apps_python" /> 
<id>tag:blogs.forum.nokia.com,2008-11-28:1867</id>
 
<updated>2008-11-28T18:10:33-01:00</updated> 
<published>2008-11-28T18:10:33-01:00</published> 
<summary type="html"> 
Why aren&#039;t there (m)any commercial apps written in Python for S60? This is a question I have been asking myself since I started working with this technology back in late 2006. 
 
 
Mikko ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
S60 
Python 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
Why aren&#039;t there (m)any commercial apps written in Python for S60? This is a question I have been asking myself since I started working with this technology back in late 2006. 
&lt;/p&gt;
&lt;p&gt;
Mikko Ohtamaa from &lt;a href=&quot;http://blog.redinnovation.com/2008/02/21/building-commercial-grade-mobile-applications-with-python-for-series-60/&quot;&gt;Red Innovation&lt;/a&gt; wrote a very interesting piece on the topic back in February, and from his post plus practical experience plus I have put together a list of the main issues (not in any particular order):
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;strong&gt;Symbian Signed compatibility&lt;/strong&gt;: Python apps do not have sophisticated memory control, therefore they may fail some SS tests related to performing well under scarce memory conditions. The new Symbian Signed &amp;quot;Express Signed&amp;quot; feature partially solves this issue (?) since it does not involve sending an app for testing by a test house - so the standard test criteria is not used.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Packaging&lt;/strong&gt; &lt;strong&gt;and distribution&lt;/strong&gt;: Packaging Python applications in .sis files is hard. If a developer does it without the Python runtime (distributed as a separate file), users have to be instructed to download the runtime from another place, which is less than ideal since we want our applications to be installed in a single shot. Also if two different applications are packaged with the different versions of the runtime, problems will arise as Symbian prevents installing conflicting binaries with the same UIDs. &lt;a href=&quot;http://blog.redinnovation.com/2008/09/01/introducing-python-for-series-60-community-edition/&quot;&gt;Python for S60 Community Edition&lt;/a&gt; presents a valid solution for this problem, since it allows to package a Python app, customized runtime, C++ extensions and everything else into a single .sis file that can be installed as if it were a native application.&lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;API set&lt;/strong&gt;: I would say that Python API set is situated between C++ and Java sets. It has more features than Java (in general) but less than C++. This can generate high expectations on developers, who think of Python as an easier way of writing native apps. But when they realize the API set is greatly reduced from what&#039;s available in C++, they may get frustrated on having to write their own extensions. There&#039;s a healthy amount of activity happening around creating C++ extensions for PyS60, so that helps a bit as well.  &lt;/li&gt;
	&lt;li&gt;&lt;strong&gt;Culture&lt;/strong&gt;: Python developers are hackers, used to a lot of freedom in other platforms. They may get quickly annoyed by the constraints of mobile development, specially PlatSec and Symbian Signed, and give up trying to get their apps to commercial quality. I see no solution for this problem as of now.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
That being said, I wish to say I am a supporter of the idea that Python for S60 can be used for commercial apps, not only for rapid prototyping, and that&#039;s exactly why I am puzzled by the lack of commercial apps in this technology.
&lt;/p&gt;
&lt;p&gt;
What do you think is the reason for that?
&lt;/p&gt;
&lt;p&gt;
[]s&lt;br /&gt;
Daniel 
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Mobile Drummer with N95</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/11/28/mobile-drummer-with-n95" /> 
<id>tag:blogs.forum.nokia.com,2008-11-28:1866</id>
 
<updated>2008-11-28T17:23:10-01:00</updated> 
<published>2008-11-28T17:23:10-01:00</published> 
<summary type="html"> 
Fun moment of the Friday. FN Champion Jackson Feijo and his mobile drum kit, composed of three Nokia N95s plus some Symbian C++ code. I would call it a &amp;quot;poor man&#039;s drum kit&amp;quot; but as ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
S60 
Symbian C++ 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
Fun moment of the Friday. FN Champion Jackson Feijo and his mobile drum kit, composed of three Nokia N95s plus some Symbian C++ code. I would call it a &amp;quot;poor man&#039;s drum kit&amp;quot; but as real drums cost less than three N95s I will just call it &amp;quot;mobile man&#039;s drum kit&amp;quot;.
&lt;/p&gt;
&lt;p&gt;
Enjoy:
&lt;/p&gt;
&lt;p&gt;
&lt;a href=&quot;http://www.youtube.com/watch?v=aBTfLkw5h6g&quot; target=&quot;_blank&quot;&gt;Mobile Drummer with N95&lt;/a&gt;&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;object height=&quot;344&quot; width=&quot;425&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/aBTfLkw5h6g&amp;amp;hl=en&amp;amp;fs=1&quot;&gt;
	&lt;/param&gt;
&lt;/object&gt;
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Shake your music with Python</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/06/11/python_music_player" /> 
<id>tag:blogs.forum.nokia.com,2008-06-11:1577</id>
 
<updated>2008-06-11T17:52:55+00:00</updated> 
<published>2008-06-11T17:52:55+00:00</published> 
<summary type="html"> 
I was preparing demos for the next  Forum Nokia Tech Days, to be held in S&amp;atilde;o Paulo, Brazil  next week, and it came to mind I should do something with the sensors using Python.
 
  ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
Python 
S60 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
I was preparing demos for the next &lt;a href=&quot;http://mktools.forum.nokia.com/invitation/nokiatechdays&quot;&gt;Forum Nokia Tech Days, to be held in S&amp;atilde;o Paulo, Brazil&lt;/a&gt; next week, and it came to mind I should do something with the sensors using Python.
&lt;/p&gt;
&lt;p&gt;
Here is the result: &lt;a href=&quot;http://rawsocket.org/?p=561&quot;&gt;Sensor-powered music player for Nokia N95&lt;/a&gt;. Nothing too sophisticated, but it goes to show how you can showcase your ideas pretty quickly using PyS60: it took me about 2 hours to develop.&amp;nbsp; 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Which technology should I use? Round 3: Python</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/06/03/which_technology_python" /> 
<id>tag:blogs.forum.nokia.com,2008-06-03:1570</id>
 
<updated>2008-06-03T18:49:17+00:00</updated> 
<published>2008-06-03T18:49:17+00:00</published> 
<summary type="html"> 
     
 
 
 
The comic above pretty much sums it up: Python is a refreshing look at the world of programming. Being so easy to learn and use, it has gained lots of attention from the ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
General 
Business Opportunities/Services 
Entertainment 
Games 
Location Based Services 
Python 
S60 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
&lt;a href=&quot;http://www.xkcd.com&quot; title=&quot;Source: http://xkcd.com/, a webcomic of romance, sarcasm, math and romance.&quot;&gt;&lt;img src=&quot;http://imgs.xkcd.com/comics/python.png&quot; alt=&quot;Python&quot; width=&quot;518&quot; height=&quot;588&quot; /&gt;&lt;/a&gt;&lt;em&gt;&lt;br /&gt;
&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
The comic above pretty much sums it up: Python is a refreshing look at the world of programming. Being so easy to learn and use, it has gained lots of attention from the developer community and it&#039;s used for several different purposes such as: web development, desktop apps, utilities, scientific computing, scripting language for games and special effects software, flying and of course mobile development. In fact, I am very surprised that it took so long before any mobile platform offered Python as a viable software creation vehicle.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
In our platforms, Python is offered as a runtime option for S60 devices, ranging from 2nd. to 3rd Edition and all their feature packs. That makes it pretty wide reaching platform, since we have some 130 million+ devices in the market for which you can write Python applications. 
&lt;/p&gt;
&lt;p&gt;
The core technologies for mobile development have been analyzed here before: C++ is the raw power of Symbian OS available to developers, with its immense API and functionality sets but steep learning curve; Java is easy to learn and use and it&#039;s present in more than a billion devices. Its functionality is good but restricted by the Java Community Process since all APIs have to be agreeded upon by participants of each JSR spec.
&lt;/p&gt;
&lt;p&gt;
Python comes in the middle, and that&#039;s in my view its main advantage: it is as easy as Java but (almost) as powerful as C++, and not limited by any industry standard processes: &lt;strong&gt;you want a Flying API which is not available? Just create an extension and you&#039;re good to go&lt;/strong&gt;. Our good friend and Forum Nokia Champion Pankaj Nathani (a.k.a. croozeus) has in his website a great list of resources for Python development, including how-to&#039;s on writing extensions and more: &lt;a href=&quot;http://croozeus.googlepages.com/py60extensions&quot;&gt;http://croozeus.googlepages.com/py60extensions&lt;/a&gt;. Also, if you are the kind of developer who likes to hack around, Python for S60 runtime is open source, so you can spend your days and nights hunting bugs, adding new features and creating your own version of it! 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;First part of this article:&lt;/strong&gt; &lt;a href=&quot;http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/web-run-time-wrt/2008/05/27/which_technology&quot;&gt;Which technology should I use for development? Round 1: Java&lt;/a&gt; &lt;br /&gt;
&lt;strong&gt;Second part of this article:&lt;/strong&gt; &lt;a href=&quot;http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/web-run-time-wrt/2008/05/30/which_technology_c&quot;&gt;Which technology should I use for development? Round 2: C++&lt;/a&gt;
&lt;/p&gt;
&lt;hr width=&quot;100%&quot; size=&quot;2&quot; /&gt;
&lt;p&gt;
&lt;strong&gt;
Technology:&lt;/strong&gt; Python for S60 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Good for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Internet mashups&lt;/u&gt; - You can easily mix the Location API with urlib and Google Maps and create a powerful mobile/web hybrid application which can leverage both platforms strengths. For example, take a look at &lt;a href=&quot;http://www.mobilenin.com/mobilepythonbook/examples/087-mopymaps.html&quot;&gt;MobyMaps&lt;/a&gt;, a geocoding application in just 104 lines of code, or &lt;a href=&quot;http://fupper.teemuharju.net/&quot;&gt;Fupper&lt;/a&gt;, &lt;a href=&quot;http://pys60.ifi.ch/index.html&quot;&gt;pyAmazon&lt;/a&gt;, &lt;a href=&quot;http://blogs.forum.nokia.com/Mobile%20Google%20Maps%20with%20GPS&quot;&gt;Mobile Google Maps&lt;/a&gt; and many others.  &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Productivity applications&lt;/u&gt; - Access to the filesystem, contacts database, local connectivity, camera, gallery with incredible simple APIs lets you quickly write applications through which you can interact with your device and other people. &lt;a href=&quot;http://code.google.com/p/mobilegtd/&quot;&gt;MobileGTD&lt;/a&gt;, &lt;a href=&quot;http://pys60rc.sourceforge.net/&quot;&gt;PyS60RemoteControl&lt;/a&gt;, &lt;a class=&quot;external text&quot; href=&quot;http://sourceforge.net/projects/pyspy&quot; title=&quot;http://sourceforge.net/projects/pyspy&quot; rel=&quot;nofollow&quot;&gt;PySpy&lt;/a&gt;&lt;span&gt; are some examples&lt;/span&gt;&lt;a class=&quot;external text&quot; href=&quot;http://sourceforge.net/projects/pyspy&quot; title=&quot;http://sourceforge.net/projects/pyspy&quot; rel=&quot;nofollow&quot;&gt;.&lt;/a&gt;   &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Rapid prototyping &lt;/u&gt;- This is probably one of the most popular uses of Python for S60, and you should consider it very seriously. It seems that RP is still not very popular, as people usually choose a technology and develop an app with it; if something goes wrong or doesn&#039;t work, they will only find it out at the end of the project, when it&#039;s too late. &lt;strong&gt;I have seen countless cases like this, specially with Java development: &amp;quot;What, I cannot intercept a phone call with Java? But the product is almost ready!&amp;quot;&lt;/strong&gt;. Python helps you tackle this issue in a very elegant and effective way: you have an idea, want to check whether it works or not, just write a PyS60 script to test it. If you&#039;re satisfied, just tweak it a bit more and make it your final product, otherwise implement the final version in C++ or Java if you need more power or portability. &lt;strong&gt;I cannot stress enough the importance of showing your customer something working from Day One&lt;/strong&gt;; this is much more effective than showing slides or specification documents. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Utilities&lt;/u&gt; - If you have a special event or need and you need to cook up a quick solution for a simple problem, use PyS60. To give you an example, I needed some sample apps for a talk I gave back in March. I was able to develop 10 utilities (photo takers, Bluetooth FTP client, video recorder, etc.) in less than a week.&amp;nbsp; &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Games&lt;/u&gt; - Given Python&#039;s powerful API set that can be used in games, such as: Sensor API, Open GL ES access, graphics and image manipulation, it is a good tool for churning out casual games meant to have a short lifecycle. It can compete well with Flash Lite for this purpose; even though its graphics facilities are not as nice, the powerful APIs will help you create the &amp;quot;wow&amp;quot; factor in your mini-games. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;API/functionality availability&lt;/u&gt; - The S60-only list of APIs is reasonably extensive, and you can always add new ones by programming extensions using Python/C API. Many times modules can be added from other platforms without modification (for example, Python debugger - pdb). &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Ease of use&lt;/u&gt; - It&#039;s by far one of the easiest languages to learn and work with. In a matter of weeks you can be highly productive with it.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Community support&lt;/u&gt; - There&#039;s a lot of Python code written by the open source community out there that can be used in your application. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Bad for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;High performance apps&lt;/u&gt; - Python&#039;s performance is reasonable, but it is slower than C++, Java and Flash. So if you need to develop a scientific application which requires a lot of number crunching, or a video streaming application, this is probably not the best solution. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Commercial apps, destinated to operator channels&lt;/u&gt; - Please take this one with a grain of salt. Applications for sale at operator channels usually are required to go through Symbian Signed process, and Python apps don&#039;t play very well with it.&amp;nbsp; &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Portability&lt;/u&gt; - Although the core Python language is the same, there are several APIs which are S60-exclusive so they won&#039;t work in any other platforms without several modifications. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&amp;nbsp;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Symbian Signed&lt;/u&gt; - In theory Python is compatible with the program, but in reality Symbian Signed was
	designed for C++ applications, so in some situations PyS60 apps may
	fail the tests so you have either to get a waiver for the failure or
	use the Express Signed option. For lack of a better option, I put
	Python on the &amp;quot;bad for&amp;quot; side of this article, but in the real world you
	may have different options that make it suitable for operator channels.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Platform security&lt;/u&gt;
	- Although it&#039;s very noble on its purpose (securing users&#039; devices
	against malware), platform security can be a pain to live with during
	the development cycle. The whole Symbian Signed environment and
	platform security API restrictions slow down development time and can
	increase development costs, because of test fees, certificate
	purchasing, re-test, etc. This also affects Python for S60 so I left it here from the previous article.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Performance&lt;/u&gt; - Don&#039;t forget Python runs on an interpreter, so it has some performance disavantages when compared to native applications. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Tools&lt;/u&gt; - As it&#039;s a very new platform on S60, its tools are not as mature as other technolgies&#039;. You can use the C++ SDK with the Python plug-in for testing your scripts, Python Shell for running scripts on your device, and py2sis or &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.nbl.fi%2F~nbl928%2Fensymble.html&amp;amp;ei=-8NFSMvHAZacxAH6o-3hBw&amp;amp;usg=AFQjCNG-ndoHJ9GLC2VD5tZgudPsgNboUA&amp;amp;sig2=z8g4KvatcjKLxK8W8c5s5w&quot;&gt;Ensymble&lt;/a&gt; to package them in an installable .sis file. There&#039;s still no integration with Carbide, and the emulator runs only on Windows. This is a pretty basic selection when compared to NetBeans or EclipseME for Java, Adobe CS3 for Flash Lite or Carbide.c++ for, hm, C++. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Python brings back the fun of hacking your device the way you want, with just a few lines of code. It&#039;s also a powerful tool for fast development of applications and utilities, besides being ideal for rapid prototyping of more complex software. The learning curve is smooth, the API set is big, and the support of open source community gives it a large set of libraries you can use in your application. As it&#039;s still in an incipient phase in the mobile software development, you can use it and contribute for its evolution in the next releases, making it a sweet platform for innovation on S60.
&lt;/p&gt;
&lt;p&gt;
If you are interested in learning more, there&#039;s a ton of resources on PyS60 in Forum Nokia web site and also in its &lt;a href=&quot;http://wiki.opensource.nokia.com/projects/PyS60&quot;&gt;wiki page&lt;/a&gt;. For impatient people who can&#039;t wait to try it, I have posted a few months back a complete presentation on how to get started with Python, along with a collection of sample source code; both can be found &lt;a href=&quot;http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/s60/2008/03/19/pys60presentation&quot;&gt;here&lt;/a&gt;.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
Happy hacking!
&lt;/p&gt;
&lt;p&gt;
&amp;lt;a href=&amp;quot;http://technorati.com/claim/ymg32hejh6&amp;quot; rel=&amp;quot;me&amp;quot;&amp;gt;Technorati Profile&amp;lt;/a&amp;gt; 
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Which technology should I use for development? Round 2: C++</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/05/30/which_technology_c" /> 
<id>tag:blogs.forum.nokia.com,2008-05-30:1559</id>
 
<updated>2008-05-30T15:39:41+00:00</updated> 
<published>2008-05-30T15:39:41+00:00</published> 
<summary type="html"> 
     
 &amp;nbsp;The Holy Grail, according to Monty Python &amp;nbsp;
 
 
So let us talk now about the Holy Grail of mobile development in Nokia platforms: Symbian/S60 C++. It is the language in ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
General 
Business Opportunities/Services 
Enterprise 
Entertainment 
Games 
Location Based Services 
Messaging 
Open C 
S60 
Symbian C++ 
Web Run-Time (WRT) 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
&lt;a id=&quot;res_1702&quot; href=&quot;http://blogs.forum.nokia.com//data/blogs/resources/300002/holy_grail_660.jpg&quot;&gt;&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/300002/previews-med/holy_grail_660.jpg&quot; border=&quot;0&quot; width=&quot;468&quot; height=&quot;258&quot; /&gt;&lt;/a&gt; &lt;br /&gt;
&lt;em&gt;&amp;nbsp;The Holy Grail, according to Monty Python&lt;/em&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
So let us talk now about the Holy Grail of mobile development in Nokia platforms: Symbian/S60 C++. It is the language in which the operating system is developed (about 95%), it is the language that allows developing all sorts of applications, from simple expense trackers to VoIP and geotagging and video-sharing applications. It is the language about which odes are written, flowers strewn at is feet, and virgins sacrificed to its altar.
&lt;/p&gt;
&lt;p&gt;
It is also one of the hardest development environments there is to learn: it&#039;s not standard C++, you have to instrument a lot of the memory management yourself, the learning curve is very steep, and the amount of code it takes to write even a simple &amp;quot;Hello World&amp;quot; GUI application is larger than any other technology we&#039;ll talk about. However, if you have the skills to learn it, the patience to develop apps with it, and want to power your application with the most sophisticated features available, it can be a very rewarding experience using it after all.
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Obs.: I know I promised Python this time but I felt like covering the two core technologies first.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;First part of this article:&lt;/strong&gt; &lt;a href=&quot;http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/web-run-time-wrt/2008/05/27/which_technology&quot;&gt;Which technology should I use for development? Round 1: Java&lt;/a&gt;&amp;nbsp;
&lt;/p&gt;
&lt;hr width=&quot;100%&quot; size=&quot;2&quot; /&gt;
&lt;p&gt;
&lt;strong&gt;
Technology:&lt;/strong&gt; Symbian/S60 C++ 
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Good for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Games&lt;/u&gt; - Full-fledged commercial complex games, such as N-Gage&#039;s, as the APIs for direct screen access, 3D graphics, audio and video and camera manipulations are very powerful and enrich and gaming experience. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Multimedia applications&lt;/u&gt; - You can write very complex applications which integrate a handful of different powerful features such as: location, geo-tagging, video and audio low-level manipulation, VoIP, camera access and so on. As examples, check &lt;a href=&quot;http://www.shozu.com&quot;&gt;Shozu&lt;/a&gt;, &lt;a href=&quot;http://www.fring.com&quot;&gt;Fring&lt;/a&gt;, &lt;a href=&quot;http://europe.nokia.com/A4491268&quot;&gt;Windows Live&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/mobile/search/index.html&quot;&gt;Google Search,&lt;/a&gt; and many others.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Mapping and location apps&lt;/u&gt; - These leverage the powerful Location APIs along with the OS-provided Assisted GPS and the Map and Navigation framework (3.2 only) to give you a very fine-grained control over obtaining the location of your device and integrating it with other features or APIs. For example, Shozu integrates GPS location with EXIF JPEG data manipulation to upload pictures which are geotagged to known services such as Flickr, where they are placed automatically on a map. Very creative. Check also &lt;a href=&quot;http://www.wayfinder.com&quot;&gt;WayFinder&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/mobile/gmm/index.html&quot;&gt;Google Maps&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=6&amp;amp;url=https%3A%2F%2Fwww.nokiausa.com%2FA4686841&amp;amp;ei=PiVASMmGMYSywwHP9bC4CA&amp;amp;usg=AFQjCNET4-K3pumOImjHNmJmIC78b3pXPQ&amp;amp;sig2=AgMt2LeA_BQAdJ-0w739mw&quot;&gt;Nokia Maps&lt;/a&gt;, &lt;a href=&quot;http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=2&amp;amp;url=http%3A%2F%2Fwww.allaboutsymbian.com%2Fnews%2Fitem%2F4008_Route_66_for_S60_3rd_Edition_n.php&amp;amp;ei=ayVASJ-ZD6OwwQHHh6SnCA&amp;amp;usg=AFQjCNHsxe6zChiFkT7dM40XcNOYZAdIxg&amp;amp;sig2=oOwWS2DrDKBEUoZ5ZN0CcQ&quot;&gt;Route 66&lt;/a&gt;. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;VoIP Applications&lt;/u&gt; - There are simply too many to list, just check for yourself.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;E-mail applications&lt;/u&gt; - Your e-mail apps can talk to Microsoft Exchange using ActiveSync protocol, and also be integrated into the standard Messaging application so users can access it without having to go to the menu. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Many others&lt;/u&gt; - Enablers, virtual machines, services, device drivers, file managers, are all examples of sophisticated applications which can be written in C++.&amp;nbsp;&lt;u&gt;&lt;/u&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;API/functionality availability&lt;/u&gt; - Programming with Symbian C++ is almost like programming desktop applications: you will get a stagerring number of APIs, powerful features, sophisticated integration between applications and services; those allow you to do more with your device than any other technology. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Performance&lt;/u&gt; - Native C++ applications have the best performance of all analyzed technologies (unless you&#039;re a really really bad programmer). &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Porting from other platforms&lt;/u&gt; - This used to be a nightmare, but with the introduction of Open C and Open C++ porting layers, it became much easier to port from other POSIX platforms. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Tools&lt;/u&gt; - Although the building tools themselves are not standard, Carbide.c++ does a fine job of hiding the complexity from you the programmer, allowing for faster application development. Its debugging tools are specially worth mentioning. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Bad for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Simple applications&lt;/u&gt; - If you need to develop an expense or sports tracker, a blogging tool, casual game or such, using C++ is probably an overkill. You can achieve the same in much less time using Java, Flash Lite or Python.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Rapid prototyping&lt;/u&gt; - Symbian C++&#039;s complexity will add much more time to your development projects, so it&#039;s not well suited for protopying. Do it in Python or Java and if needed, write the final version in C++. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Casual games&lt;/u&gt; - That would be another overkill. You will end up writing 7000 lines of code or so per game, and your productivity when compared to your competitors using lighter technologies will suffer. A lot.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Web applications&lt;/u&gt; - At risk of souding repetitive, another case where you&#039;re better off with technologies whose focus is Web services. I&#039;m talking Widgets, Widsets and Python here. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&amp;nbsp;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Harder to learn than any other technology&lt;/u&gt; -&amp;nbsp; Even an experienced
	programmer, coming from other C/C++
	languages, will have a hard time learning Symbian C++, using the
	non-standard tools and proprietary features, such as resource and
	registration files. It can take a long time to get a decent working
	knowledge of how everything
	works and even then you will find yourself.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Slower development time&lt;/u&gt; - Due to the steep learning curver and overall complexity, native development in S60 is generally though to take 3 to 10 times more time than Java or Flash Lite projects.&amp;nbsp; &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Portability&lt;/u&gt; - First off, there&#039;s a binary compatibility break between S60 3rd. Edition and its previous editions. Secondly, even within the same versions there some API incompatibilities/deprecations you&#039;ll only find out about when you&#039;re deep into development. In this case you&#039;ll have to produce a workaround or ask technical support from Forum Nokia to fix you an update, workaround or private API that does the job. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Platform security&lt;/u&gt; - Although it&#039;s very noble on its purpose (securing users&#039; devices against malware), platform security can be a pain to live with during the development cycle. The whole Symbian Signed environment and platform security API restrictions slow down development time and can increase development costs, because of test fees, certificate purchasing, re-test, etc.&amp;nbsp; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;br /&gt;
&amp;quot;With great power, comes great responsibility&amp;quot;, once said Spider-Man&#039;s uncle. In this case, however, with great power you&#039;ll get great complexity. If after careful evaluation of requirements you decide you should go with C++, commit yourself and your development team to learn the plaform right, and well. Otherwise it will cost you time and money. We know that time = money, so it will end up costing you money&amp;sup2;. 
&lt;/p&gt;
&lt;p&gt;
Symbian/S60 C++ offers you the opportunity of leveraging as much functionality as the device can provide. This can be a real differentiation factor for your applications and can result in more users, thus more money. Just make sure it&#039;s the right technology for you before you start up your project.&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
OK, now I&#039;m not lying: next round will be about Python. 
&lt;/p&gt;
&lt;p&gt;
See you! 
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Which technology should I use for development? Round 1: Java</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/05/27/which_technology" /> 
<id>tag:blogs.forum.nokia.com,2008-05-27:1438</id>
 
<updated>2008-05-27T18:29:05+00:00</updated> 
<published>2008-05-27T18:29:05+00:00</published> 
<summary type="html"> 
If I had just made a dollar each time I heard this question...&amp;nbsp; * sigh *.
 
 
With the availability of so many different development technologies in Nokia&#039;s platforms today, sometimes ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
General 
Enterprise 
Entertainment 
Flash 
Games 
Java 
Open C 
Python 
S60 
Series 40 
Symbian C++ 
Web Run-Time (WRT) 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
If I had just made a dollar each time I heard this question...&amp;nbsp; *&lt;strong&gt;sigh&lt;/strong&gt;*.
&lt;/p&gt;
&lt;p&gt;
With the availability of so many different development technologies in Nokia&#039;s platforms today, sometimes is hard to decide which of them we should use to build our application, isn&#039;t it? There&#039;s Java, Symbian C++, Open C, Flash Lite, WidSets, WRT Widgets, Python, and the list is still growing. 
&lt;/p&gt;
&lt;p&gt;
This is good news for developers, since not everybody has the same technical background nor is developing the same kinds of applications; this means at least one of the technologies will fit our experience and purpose like a glove, and we are going to use it. On the other side, this may confuse newcomers to the wonderful but fragmented mobile software world. Usually it goes like this:&lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Question: &lt;/strong&gt;&amp;quot;I want to write an application that opens a file and sends it out to a web server. What should I use to create it?&amp;quot;&lt;br /&gt;
&lt;strong&gt;Answer 1: &lt;/strong&gt;&amp;quot;Java ME, FileConnection API&amp;quot;&lt;br /&gt;
&lt;strong&gt;Answer 2: &lt;/strong&gt;&amp;quot;Don&#039;t bother, use C++ or you will get a lot of security prompts.&amp;quot;&lt;br /&gt;
&lt;strong&gt;Answer 3: &lt;/strong&gt;&amp;quot;Why use C++ when you can do the same with Python? C++ is way too hard!&amp;quot; &lt;br /&gt;
&lt;strong&gt;Answer 4: &lt;/strong&gt;&amp;quot;Python does not run on S40, use Java.&amp;quot;&lt;br /&gt;
&lt;strong&gt;Answer 5: &lt;/strong&gt;&amp;quot;Do you really need all that jazz? Why don&#039;t you go with Flash Lite and use server-based persistence? Your application will look great!&amp;quot;&lt;br /&gt;
&lt;strong&gt;Answer 6: &lt;/strong&gt;&amp;quot;Flash Lite is too fragmented. Use Java, but beware of the MIDlet signing issues or your app&#039;s user experience will be crap!&amp;quot;
&lt;/p&gt;
&lt;p&gt;
Go check the &lt;a href=&quot;http://discussion.forum.nokia.com&quot;&gt;Discussion Boards&lt;/a&gt;. It is crowded with examples of conversations like the one above. Having answered this question so many times before, I decided to summarize my answers in this blog, in the hopes of helping developers decide what use from the growing technology options pool offered in mobile devices these days. Please keep in mind that the following are my opinions on the subject; yours may differ and even prove mine wrong, but that&#039;s the beauty of interacting with people within a community. As the number of technologies it too big for a single post, I will continue my analysis in the upcoming posts. I will start off with the most popular mobile developmentp platform, Java ME.
&lt;/p&gt;
&lt;hr width=&quot;100%&quot; size=&quot;2&quot; /&gt;
&lt;p&gt;
&lt;strong&gt;
Technology:&lt;/strong&gt; Java
&lt;/p&gt;
&lt;p&gt;
&lt;strong&gt;Good for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Productivity applications&lt;/u&gt; - Examples: sports trackers, expense control apps, Personal Information Management (calendar, phonebook, etc.). &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Games&lt;/u&gt; - Both casual and complex.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Enterprise applications&lt;/u&gt; - These don&#039;t require fancy user interfaces. Using LCDUI and the standard packages can go a long way pretty fast.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Rapid prototyping&lt;/u&gt; and &lt;u&gt;proof-of-concept&lt;/u&gt; applications. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Network applications&lt;/u&gt; - RSS readers, weather services, blogging applications, mobile versions of Web applications. &lt;/li&gt;
	&lt;li&gt;Creating truly &lt;u&gt;portable apps&lt;/u&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&lt;/strong&gt;&amp;nbsp;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Java and its mobile version are very simple to use and learn&lt;/u&gt; -&amp;nbsp; An experienced programmer, even coming from other C/C++-based languages, can get a pretty good working knowledge of how everything works in a matter of weeks and start producing applications quickly. This leads to faster time-to-market for Java ME apps. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Applications are generally portable&lt;/u&gt; between S60 and S40 platforms - Although there are some differences in implementation, supported packages, audio/video formats and so on, those are few in number and thus easier to work around. You don&#039;t need to entirely rewrite your application so it will run on N95 instead of 6131: a few runtime checks and versioning tools will be enough. &lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Game API&lt;/u&gt; combined with optional packages makes it a killer for game development &lt;/li&gt;
	&lt;li&gt;S&lt;u&gt;traightforward network API makes it easy to communicate with web services&lt;/u&gt; - The GCF (Generic Connection Framework) is a simple and unified way of using the network on Java ME applications. Once you learn how to do one kind of connection, you will have learned them all.  
	&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Bad for:&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;u&gt;Accessing device resources&lt;/u&gt; - Examples: SMS Inbox, file system, gallery, hardware.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Multimedia applications&lt;/u&gt; - Examples: Video streaming players, audio and video recorders, camera applications.&lt;/li&gt;
	&lt;li&gt;&lt;u&gt;Performance-intensive applications&lt;/u&gt; - Scientific computing, image processors, video decoders, sound processors. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
&lt;strong&gt;Why?&amp;nbsp;&lt;/strong&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Java&#039;s functionalities depend on Java Community Process process:
	if there&#039;s no official, industry-standard API for what you want to do,
	you are out of luck. Example: accessing SMS inbox. &lt;/li&gt;
	&lt;li&gt;Mobile Media API implementation is (too) highly modular, a lot of runtime checks are needed. Also, most functionality is implemented on the native side and then made available to Java&#039;s virtual machine, such as the camera access. This may have a serious impact on performance. &lt;/li&gt;
	&lt;li&gt;Fine-grained control over video, audio and camera is generally not available. Although JSR 234 (Advanced Multimedia Supplements) tackles some of these issues, it still can&#039;t be compared to what&#039;s available on other technologies, and its device availability is still low.  &lt;/li&gt;
	&lt;li&gt;Access to the file system is provided by FileConnection API, but it&#039;s somewhat restricted and requires the midlet to be signed, otherwise multiple security prompts will be displayed, taking your user to tears (believe me). The signing process itself costs money and has some bureaucracy, so be prepared.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
As I said before, these are my opinions on the technologies. It does not mean that X is better than Z, and Z should be thrown into the dirt and kicked in the head, like XML in the funny &lt;a href=&quot;http://burningbird.net/writing/the-parable-of-the-languages/&quot;&gt;The Parable of the Languages&lt;/a&gt;. If you get your requirements right, it&#039;s very likely that your question of &amp;quot;what to use&amp;quot; will answer itself. Need to access the Inbox? Down with Java. Need portability? Down with Python and C++. Fancy UI? Flash. Requirements management is a science, not an art, so when you get it right from the start, the development technology to use will pop up naturally.&lt;br /&gt;
&lt;p&gt;
Next time I will cover the darling of all Internet programmers, now getting much of the attention on S60 platform: Python.
&lt;/p&gt;
&lt;p&gt;
See you! 
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Want a sexy UI in your Java MIDlet? It&#039;s now possible with LWTUI! (with video)</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/05/14/lwtui_toolkit" /> 
<id>tag:blogs.forum.nokia.com,2008-05-14:1519</id>
 
<updated>2008-05-14T22:23:39+00:00</updated> 
<published>2008-05-14T22:23:39+00:00</published> 
<summary type="html"> 
Sexy UIs are all the rage today, right? FlashLite apps, WRT Widgets, WidSets, all of them have distinctive user experiences which differ greatly from the way we interact with native S40 and S60 ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
Java 
S60 
Series 40 
eSWT 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
Sexy UIs are all the rage today, right? FlashLite apps, WRT Widgets, WidSets, all of them have distinctive user experiences which differ greatly from the way we interact with native S40 and S60 applications. More colors, more animations, better usability, all making up a great way for developers to differentiate their applications and make them more attractive to the end user.
&lt;/p&gt;
&lt;p&gt;
In Java MIDlets however, you are stuck with a very poor UI toolkit, the LCDUI, which has very few components and few options on how to alter their appearance; most of the time you&#039;re giving hints to the underlying implementation regarding the way you want the components to be displayed. Even if you do so, however, there&#039;s still a big chance your hints will be ignored and the UI will be rendered differently on each device. This can be a pain if you are developing for many different phones, with different screen sizes, input methods and form factors. Actually, to be fair, this can be a pain even if your target is a single device.
&lt;/p&gt;
&lt;p&gt;
To circumvent these challenges, developers had either to developer their own UI toolkits, based on raw Canvasses, or use a 3rd. party toolkit such as &lt;a href=&quot;http://www.j2mepolish.org&quot; title=&quot;J2ME Polish&quot;&gt;J2ME Polish&lt;/a&gt;, which is great but requires a paid license to develop commercial applications, and this can be an unbearable cost to a small developer.
&lt;/p&gt;
&lt;p&gt;
Searching the web and some mailing lists, I found this very interesting project, called &lt;a href=&quot;https://lwuit.dev.java.net/&quot;&gt;LTWUI (Lightweight UI Toolkit)&lt;/a&gt;, which is a cross-device UI toolkit created to provide developers with the possibility of developing compelling user interfaces without writing painful low-level Canvas code. It&#039;s based on Swing programming paradigm and it&#039;s key functionalities are: 
&lt;/p&gt;
&lt;p&gt;
&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/300002/Screenshot0021.jpg&quot; /&gt;&lt;br /&gt;
&lt;em&gt;&amp;nbsp;LWTUI demo midlet running on E61i&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;Swing Like MVC&lt;/li&gt;
	&lt;li&gt;Layouts&lt;/li&gt;
	&lt;li&gt;PLAF &amp;amp; Themes&lt;/li&gt;
	&lt;li&gt;Fonts&lt;/li&gt;
	&lt;li&gt;Touch Screen&lt;/li&gt;
	&lt;li&gt;Animations &amp;amp; Transitions&lt;/li&gt;
	&lt;li&gt;Rich widgets&lt;/li&gt;
	&lt;li&gt;3D Integration&lt;/li&gt;
	&lt;li&gt;Painters&lt;/li&gt;
	&lt;li&gt;Modal Dialogs&lt;/li&gt;
	&lt;li&gt;External Tools&lt;/li&gt;
	&lt;li&gt;I18N/L10N&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
It&#039;s still in Early Access release but you can go to the project page and download it so you can play around with the toolkit and run its demos on emulators and real devices. The great thing is that the library is released under the Sun Licensing Agreement (SLA) which makes it usable by commercial applications without having to pay any fee.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
I ran the LWTUIDemo midlet on my Nokia E61i and N95 and it worked beautifully. It&#039;s a bit slow though, but nothing that compromises the user experience. I recorded a video of LWTUI running on my N95, so you can see what&#039;s up for use in your Java apps; I guarantee you will enjoy it.
&lt;/p&gt;
&lt;p&gt;
Last but not least, the project is open source, so you can contribute to it, just go to the &lt;a href=&quot;https://lwuit.dev.java.net/&quot;&gt;project page&lt;/a&gt; for more details on how to participate.
&lt;/p&gt;
&lt;p&gt;
Here&#039;s the video, enjoy it:
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;object type=&quot;application/x-shockwave-flash&quot; width=&quot;450&quot; height=&quot;350&quot; data=&quot;http://www.youtube.com/v/qAWMy_O7zrU&quot; id=&quot;ltVideoYouTube&quot;&gt;
	&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/qAWMy_O7zrU&quot; /&gt;
	&lt;param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;
	&lt;param name=&quot;allowScriptAcess&quot; value=&quot;sameDomain&quot; /&gt;
	&lt;param name=&quot;quality&quot; value=&quot;best&quot; /&gt;
	&lt;param name=&quot;bgcolor&quot; value=&quot;#FFFFFF&quot; /&gt;
	&lt;param name=&quot;FlashVars&quot; value=&quot;playerMode=embedded&quot; /&gt;
&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;
[]s&lt;br /&gt;
Daniel&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Follow-up on the Symbian 9.2 Platform Security hack</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/04/02/followup" /> 
<id>tag:blogs.forum.nokia.com,2008-04-02:1394</id>
 
<updated>2008-04-02T14:18:23+00:00</updated> 
<published>2008-04-02T14:18:23+00:00</published> 
<summary type="html"> 
I have tested it as promised in my last post. After some initial trouble, I managed to get the  Symbian 9.2 Platform Security hack 
working on my N95 with 20.0.015 firmware. It does work, as ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
S60 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
I have tested it as promised in my last post. After some initial trouble, I managed to get the &lt;a href=&quot;http://finestfones.blogspot.com/2008/03/symbian-92-has-been-hacked.html&quot;&gt;Symbian 9.2 Platform Security hack&lt;/a&gt;
working on my N95 with 20.0.015 firmware. It does work, as long as
you don&amp;rsquo;t reboot the phone, as you can see in the screenshots I have posted on my personal blog, &lt;a href=&quot;http://rawsocket.org/?p=544&quot;&gt;rawsocket dot org&lt;/a&gt;, where you can also find more details on this issue.
&lt;/p&gt;
&lt;p&gt;
The trick is still a bit cumbersome to perform, but it works. I&#039;ll keep
my eye on the latest developments from both sides, hackers&#039; and
Nokia&#039;s, to see where this is going. Are we seeing the beginning of a
catch-up game like the one Sony and Apple have been playing against
hackers, with all the jailbreaks and cracked firmwares? 
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Symbian 9.2 Platform Security hacked (or jailbroken)</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/03/27/platsec_jailbroken" /> 
<id>tag:blogs.forum.nokia.com,2008-03-27:1384</id>
 
<updated>2008-03-27T16:49:37-01:00</updated> 
<published>2008-03-27T16:49:37-01:00</published> 
<summary type="html"> 
At least that&#039;s what says this story run by  Engadget Mobile : 
 
 
	 
	 App certificates have long been a bane to S60 users and developers
	alike, causing pain, frustration, and an almost ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
S60 
Symbian C++ 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p&gt;
At least that&#039;s what says this story run by &lt;a href=&quot;http://www.engadgetmobile.com/2008/03/27/symbian-9-2-hacked-to-bypass-app-certification/&quot;&gt;Engadget Mobile&lt;/a&gt;: 
&lt;/p&gt;
&lt;blockquote&gt;
	&lt;p&gt;
	&lt;em&gt;App certificates have long been a bane to S60 users and developers
	alike, causing pain, frustration, and an almost obligatory cash outlay
	to get your hard work certified to run on the very platform Nokia is so
	quick to call &amp;quot;open.&amp;quot; Finally, it truly is, thanks to the hard work of
	the Symbian hacking community that has developed an easy (or easy &lt;em&gt;sounding&lt;/em&gt;,
	anyway) method of &amp;quot;jailbreaking&amp;quot; the Symbian 9.2 device in your life
	(S60 3rd Edition FP1 users, that&#039;s you). After that, installed apps
	won&#039;t need a certificate at all -- let alone an invalid one -- to do
	their dirty work. Open, indeed.&lt;/em&gt;
	&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;
It points you to &lt;a href=&quot;http://finestfones.blogspot.com/2008/03/symbian-92-has-been-hacked.html&quot;&gt;this site&lt;/a&gt; where instructios are given to unlock a single phone using AppTRK and a couple of Python scripts. The hack isn&#039;t permanent, which means after a reboot your device gets back to normal. They say they&#039;re working on a permanent hack, which would allow iPhone-style jailbroken firmwares running unsigned applications at full capabilities.
&lt;/p&gt;
&lt;p&gt;
I haven&#039;t tested it myself, but it seems it works at least on Feature Pack 1 devices. I will test with my N95 with an application which requires all capabilities (including manufacturer-given) to see what happens.
&lt;/p&gt;
&lt;p&gt;
Anyway, I would advise nobody to do it to their own devices, since this opens up the possibility of you installing apps whose authors you don&#039;t know and can do real damage to your phone if they are making use of sensitive capabilities whose use is protected by the whole signing scheme.
&lt;/p&gt; 
</content> 
</entry> 
 
<entry> 
<title>Make your widgets and Flash Lite applications fly!</title>
<link rel="alternate" type="text/html" href="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/2008/03/24/flying_widgets" /> 
<id>tag:blogs.forum.nokia.com,2008-03-24:1374</id>
 
<updated>2008-03-24T19:09:47-01:00</updated> 
<published>2008-03-24T19:09:47-01:00</published> 
<summary type="html"> 
  
 
 
As I mentioned in my  last post , I have been thinking a lot lately about how to extend applications that run on sandboxed environments, such as Java ME, Flash Lite and Widgets, using ...</summary> 
<author> 
 
<name>dcrocha</name> 
<uri>http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog</uri> 
</author> 
<dc:subject>
Browsing 
Entertainment 
Flash 
Python 
S60 
Web Run-Time (WRT) 
</dc:subject> 
<content type="text/html" xml:lang="en" xml:base="http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog"> 
&lt;p align=&quot;center&quot;&gt;
&lt;img src=&quot;http://blogs.forum.nokia.com//data/blogs/resources/300002/flying.jpg&quot; /&gt; 
&lt;/p&gt;
&lt;p&gt;
As I mentioned in my &lt;a href=&quot;http://blogs.forum.nokia.com/blog/daniel-rochas-forum-nokia-blog/web-run-time-wrt/2008/03/20/hurrah-widgets-and-more&quot;&gt;last post&lt;/a&gt;, I have been thinking a lot lately about how to extend applications that run on sandboxed environments, such as Java ME, Flash Lite and Widgets, using some powerful native technologies such as C++, Python and Mobile Web Server. 
&lt;/p&gt;
&lt;p&gt;
I did my research and turns out some people have already been thinking (and doing) this for a while now, so I wanted to share this with you, for a reason I will explain later:
&lt;/p&gt;
&lt;p&gt;
- Our very own Sr. Technology Expert Petro Soininen has created a widget that&#039;s able to send text messages and read the SMS inbox of an S60 device, using a creative combination of Widgets, Python, PHP and the &lt;a href=&quot;http://wiki.opensource.nokia.com/projects/Mobile_Web_Server&quot;&gt;Mobile Web Server&lt;/a&gt;. Here&#039;s the link for the article with complete source code: &lt;a href=&quot;http://wiki.forum.nokia.com/index.php/How_to_utilize_device_resources_from_a_WRT_widget&quot;&gt;http://wiki.forum.nokia.com/index.php/How_to_utilize_device_resources_from_a_WRT_widget&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;
- &lt;a href=&quot;http://www.felipeandrade.org/blog/&quot;&gt;Forum Nokia Champion Felipe Andrade&lt;/a&gt; and &lt;a href=&quot;http://www.i2tecnologia.com.br/&quot;&gt;his company&lt;/a&gt; have been working for quite some time in the &lt;a href=&quot;http://www.flyerframework.org&quot;&gt;Flyer Framework&lt;/a&gt;, a server application written in &lt;a href=&quot;http://opensource.nokia.com/projects/pythonfors60/&quot;&gt;Python for S60&lt;/a&gt; whose goal is to provide enhanced native functions to Flash Lite applications. It looks pretty mature, and I wonder if it could be used with Widgets as well with some adjusts in connectivity (full HTTP vs XML sockets).
&lt;/p&gt;
&lt;p&gt;
I mentioned these two ways of extending widgets and Flash Lite apps because of the &lt;a href=&quot;http://www.forum.nokia.com/main/contests/global_application_contest.html&quot;&gt;Global Code Camp Contest&lt;/a&gt;. I figured that an application/widget with enhanced functionality has more room for being innovative and delight users in many different ways.&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
As nothing was mentioned in the contest rules, I asked the Forum Nokia team responsible for the competition whether applications produced with these extension methods would be valid or not. An the answer is that these turbo web widgets and Flash apps are allowed, so you have a lot more options to introduce cool features in your apps via sweet Python and PHP scripts.
&lt;/p&gt;
&lt;p&gt;
So take a look at them both and make your widgets and Flash apps fly higher than ever! 
&lt;/p&gt; 
</content> 
</entry> 
 
</feed>