Saturday, April 26, 2008

Mobile Advocacy Do's and Don'ts

Mobile Advocacy Do's and Don'ts, a great article on mobile advocacy that encompasses what to do and what to avoid in the mobile space. It goes through topics such as the current hype in mobile marketing such as mobile fundraising, ROI for mobile marketers, followed by what to do and what to avoid.

TIOBE Software on Dr. Dobb's Portal

In one of my previous blog entry I was talking about the popularity of programming languages as measured by TIOBE Software. Here is an interview with Paul Jansen, managing director of TIOBE Software, that appeared on Dr. Dobb's Portal this week, entitled "Programming Languages: Everyone Has a Favorite One".

Friday, April 25, 2008

Testing Mobile Applications

Mobile developers will tell you that probably the hardest part of the entire mobile application development process is testing. You would need access to hundreds of mobile devices, test on each and every one, and make sure that the features you implemented in your application work properly on each and every test device. Sure we have emulator, but all they provide is an emulated environment of the phone. Sure you should start with an emulator when testing the application, but eventually, to see how it works on a real device, you need to push further. The question that unfolds is what can you do if your company does not have access to hundreds and hundreds of devices. Here are a few possibilities:

Motorola offers a Handset Loaner Program through which you can test your mobile application on Motorola handsets. The kit that you will receive will consist of the Handset, Charger, Battery, and a USB Cable. The cost of the kit for a 30 day loan varies between $35 and $70. There are not a lot of devices available as far as I can tell. If you loose or damage the device, the fee is $1000 for most of the devices. A lot isn't it? Make sure you do not damage or loose the device.

Nokia offers the Remote Device Access program free of charge for all Nokia Forum members. It is a service that allows you to remotely test your mobile application on Symbian OS-based Nokia devices. "The main features of the service are remote controlling a device, installing and running applications, transferring files, and analyzing log files in real-time."

Sony Ericsson Virtual Lab service allows for remote testing of your mobile applications on selected 2007 Sony Ericsson mobile phones that are connected to a network 24/7. The cost varies between $18 to $20 an hour. The platforms supported are Java ME and UIQ 3.

Probably the most well known service is DeviceAnywhere, and this is because of the high number of devices/manufacturers/operators supported. It offers remote access to almost one thousand mobile devices from more than 25 manufacturers that run on more than 20 networks from places like Japan, UK, US, France, etc. Individual device packages are $100 a month each (and you can choose from over 20 packages); the hourly rate various between $13 and $16 and the hours can be used across all device packages. The unused hours do not roll over to the next month, since unused hours expire at the end of each month. You do get 3 hours of free trial to try the service.

DotMobi Virtual Developer Lab, powered by DeviceAnywhere, offers you 5 free hours to test your mobile application.

PACA Mobile Center offers access to more than 850 handsets. As far as I understood, you need to go to one of their centers (located in France) to get access to the pool of devices. The daily access cost is 500 euros, with the possibility of a 10 day plan starting from 3000 euros, and a yearly plan of 12000 euros. For start up companies, the fees are usually half off the regular price mentioned.

Mob4Fire implements the concept of crowed sourced mobile application testing. How it works is easy and straightforward: "The developer chooses a mix of handsets, network and OS's to test the software on, gets it tested by the crowed, gets feedback and pays the tester." There is an online rating system where testers are rated based on the quality and timeliness of the response. Developers are also tested based on how clearly they outlined the job testers need to do.

I will keep adding to this blog if I find new information. If you want to participate, you are very welcome, so please leave comments.

Thursday, April 24, 2008

Popularity of programming languages

TIOBE Software Community Index provides us with an indication of the popularity of programming languages. How the rating works is by calculating the hits on search engines such as Yahoo!, Google, MSN, and even YouTube. The number of hits determines the ratings of each language. The search query used is +" programming". You can read more about the index definition on their website.

I have been checking the website for a while now, and Java and C are the most popular (searched) languages. From the top 20, there were some languages that I did not even hear about, such as SAS, and only a few of them I ever used, like Java, C, C++, C#, a little of JavaScript, PL/SQL, and Lisp. From that list, my top 3 languages that I have never used and I would like to learn are Visual Basic, Ruby (on Rails), and ColdFusion (and more from Adobe if I were to have time). I remember reading something Martin Fowler agreed with once, namely that we should learn a new language each year. There are more functional and logical programming languages in the top 50 than in top 20. Will this change in the future? I doubt that. But I do expect some of those top 50 languages (between 21 and 50) will reach top 20 soon (especially the ones that deal with concurrency like Erlang since multi-processor programming will be the "next big thing" - pardon the cliche). Ralph Johnson wrote a great article about "Erlang, the next Java", how he entitles it: "Erlang is going to be a very important language. It could be the next Java".

Thursday, April 17, 2008

U.S. Game Industry Salary

According to a survey by GameDaily, in the U.S., the average salary in the gaming industry for 2007 was $73,600. Breaking down by groups we have:

  • The business and marketing side have an average salary of $101,848
  • Programmers have an average of $83,383
  • Game producers earned on average $78,716
  • Sound designers had an average of $73,409
  • Artists (that deal with art and animation) earned on average $66,594
  • Quality assurance people had an average of $39,063.
In my opinion, an artist should earn more than a sound designer since for me in a game, the overall animation is more important than the sound. The salary for QA people is much to low. They make sure that everything works together like it's supposed to. If a bug is discovered in the late stages of the product, or even after deployment, the negative impact is even higher. Hence it is the QA guys that have the daunting task of discovering every little bug that hides in every little corner of your product. Related to this, I found an interesting (short and to the point) blog.

Monday, April 14, 2008

Kaspersky Mobile Security

Kaspersky Lab have developed an anti-theft system for Nokia S60 and Windows Mobile 5.0 or 6.0, aimed at protecting your private information, block malicious attacks, and guard against SMS spam.

With the anti-theft protection, you can block your smartphone or delete files, contacts, messages, and all of this remotely. In the event of a loss, you can send an SMS to block any further access to you smartphone until a pre-set password is entered. If you want to clear all your data, you send a different kind of SMS. Now if the thief will replace your original SMS Card with its own, the "SIM Watch" will prevent access to you data without the original SIM. Of course, if he is interested in your phone more than in your data, nothing matters anymore. Below is an image showing the anti-theft option:

With anti-malware protection, you can protect against intrusive SMS that contain adware; in this regard, SMS received from unwanted addresses, or containing inappropriate content are blocked. There is a blacklist where you can add phone numbers or unwanted text. MMS filtering is only supported on Symbian phones. Below is an image with the anti-spam option:

More information can be found here.

BlackBerry JDE Plug-In for Eclipse

RIM came out with a beta version of the BlackBerry JDE Plug-In for Eclipse. You can now develop applications for the BlackBerry using my favorite IDE, Eclipse. The plug-in contains a subset of the features included in the BlackBerry Java Development Environment.

From the press release: "RIM values the Eclipse development community and recognizes the need for integrated tools that support the development of BlackBerry applications from within the Eclipse environment,” said David Yach, CTO for Software, Research In Motion. “The introduction of the BlackBerry JDE Plug-in for Eclipse builds on RIM’s robust offering of development tools to further enhance and simplify mobile application development for the BlackBerry platform."

Some of the characteristics are:
  • Write, compile, and test Java Micro Edition-based applications that run on the BlackBerry smartphone.
  • Simulates a wide range of BlackBerry smartphones.
  • Includes several JSRs that you can use when developing your mobile application
  • Leverages BlackBerry Enterprise Server
Read more about it here.

Sunday, April 13, 2008

Google App Engine

With Google App Engine, you can upload your web application and not be stressed with maintaining the servers, everything running on Google's infrastructure. Some of the main features as written in the docs:
  • dynamic web serving, with full support for common web technologies
  • persistent storage with queries, sorting and transactions
  • automatic scaling and load balancing
  • APIs for authenticating users and sending email using Google Accounts
  • a fully featured local development environment that simulates Google App Engine on your computer
You can download the Google App Engine SDK which includes a web server application that emulates all of the services of the App Engine on your own computer. In addition, there is a YouTube video on a demo describing how to develop and deploy an application on Google App Engine.

At this moment, Google App Engine is in preview release, so space is limited.

Google App Engine only supports at this moment web applications written in Python. Other languages will be supported in the future.

World preferences for social networking websites

From O'Reilly Radar, a view of social networking preferences per continent from Le

Thursday, April 10, 2008

Dimdim goes public

As I was writing in one of my previous posts, dimdim is a web meeting service where you can share an application, share your slides or your desktop, chat, broadcast your webcam, and what tops all this is the fact that everything is free. I gave dimdim a shot and described my experience with it, and now, it is open for everyone to use. Do go and give it a try; I'm sure after you use it, you will think twice before paying for Webex.

Tuesday, April 8, 2008

Java Developer's Journal April 2008 Issue

Great April Issue of the Java Developer's Journal. First article I enjoyed, written by Shay Shmeltzer, describes a wish list for JSF. I was recently introduced to JSF (and Oracle's ADF Faces) and found its component based approach together with its navigation model to be simple and straightforward to use. What I enjoyed about this article is the fact that it does not describe JSF, it does not show you an example (which you can find everywhere on the web), but it actually mentions what could be improved.

Another article written by Rob Davies and James Strachan talks about Apache Camel which is an implementation of Enterprise Integration Patterns using a (Java or XML based) Domain Specific Language to define routing rules and to connect to the messaging system. The authors show how one could build a Messaging application without actual in depth knowledge of technologies such as JMS specific to the low-level part of the Spring framework.

The article that I found to be the most interesting is "Assessing Employee Performance" written by Benjamin Garbers, a manager at IBM. He defines the jobs in a software group and the expectations he has on each of the job types. I believe that the Java Team Leader is missing from that table, but this is not that important. Beside describing each of these jobs and how to evaluate the employees from each of the job category, Benjamin also mentions tools used in obtaining the wanted metrics. For Java Developers and Designers, he mentions the Metrics plug-in for Eclipse or JHawk metric tools; for a Java Tester, IBM's Rational ClearQuest is used to view internal defects. For automated, functional and regression testing, IBM's Rational Functional Tester is used.

All great articles, so I encourage you to read them!