Picks of the Week #2

Thank you for reading the second edition of the Knowledge7’s Picks of the Week.

Every week, Avinash Meetoo will make you discover interesting articles and websites to help you broaden your understanding of the world of open source software and information technology in general.

Top 100 of the Best (Useful) OpenSource Applications
For some people, Linux is only for servers. For people like me, Linux is also a great desktop operating system capable of being better than anything from Seattle or Cuppertino. For the past few years, Ubuntu Linux has really made Linux easy to install and easy to use at home. The latest version is rock solid and features myriads of open source applications especially developed for home users. Here is a list of the top 100 of the best and useful open source applications from various categories courtesy of UbuntuLinuxHelp.com: audio, 2D graphics, 3D graphics, video, utilities, software development, etc. Try them. They are all free. And powerful.

Dates in PHP and MySQL
PHP is a powerful server-side programming language for building web applications. Wikipedia and Facebook are both written in PHP. MySQL is a powerful relational database. Both are open source software and, arguably, power most of the websites in existence. One relatively complex issue when using MySQL with PHP is how to transfer dates to and from the database as MySQL has no less than three ways to store them (using the DATETIME, DATE, and TIMESTAMP types). This article explores the tradeoffs between the various solutions which exist.

jQuery Mobile Tutorial: Basics
Last week, I talked about jQuery Mobile, an advanced Javascript library based on jQuery (obviously) for building mobile web applications. This week, I have just stumbled upon this interesting introductory tutorial on CodeForest, a web development and programming blog. The tutorial explains how to create a basic jQuery Mobile page, use external and internal linking and, even, how to change the theme of your application. Interestingly, the title (i.e. Basics) would imply that other tutorials will shortly follow and I’m sure they’ll all be useful for developing jQuery Mobile applications.

Cofoja: Contracts for Java
Building software is hard. And building software without bugs is much harder. One of the way to master complexity is to use Object-Oriented Programming. Objects are abstractions and communicate by exchanging messages. One way to enhance the semantics of messages is to use contracts (in the same sense Bertrand Meyer used them in his Eiffel programming language.) Cofoja is a new open source software from Google which adds contracts to the Java programming language. With Cofoja it becomes possible to enforce that, for example, a method should take a parameter within a specific range. Google uses Java for its Web Toolkit which is used, for example, for building Gmail.

PhoneGap
PhoneGap is a (yet another) library to build mobile web applications. The idea is to build the application using HTML5 and Javascript and rely on the PhoneGap API to get full access to the underlying features of the mobile phone on which the application is running like the accelerometer, the camera, geo location, contacts, notifications and storage. PhoneGap works with a lot of different smartphones: Android, iPhones, BlackBerry, Windows and Symbian. Thanks to PhoneGap, it becomes possible to build powerful mobile applications which behave and have the same capabilities of native applications without having to learn Objective-C (iPhone) or Java (Android). Life is cool. And it’s cooler when you realise that PhoneGap is open source software.