You want to receive our Picks of the Week every Monday morning?
Thank you for reading the fifth 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.
Jolicloud
Jolicloud is a new Linux distribution derived from Ubuntu which is itself derived from the oh so powerful Debian. Jolicloud is designed for netbooks having relatively small screens and amount of memory. Its philosophy is based upon blurring the distinction between native applications and web applications. For example, in Jolicloud, Skype and Flickr are accessed in the same way even though Skype is an application and Flickr is a website. This makes Jolicloud an easy operating system to use by beginners. Jolicloud is still young (version 1.1 has just been released) but it certainly has a lot of potential. I advise all Linux fans who have a spare netbook to give Jolicloud a try. Who knows? Some Windows fan might fall in love with Linux!
An In-Depth Exploration of the Art of Shell Scripting
I have been teaching Linux for ten years now and the one thing which always amaze most people is the shell (i.e. the command line). There are many reasons for that: (1) Linux and all the other Unixes as a matter of fact have many commands (about 2000…), (2) a lot of those commands are filters which transform data and are used in combination (in pipes) and (3) a set of commands (including conditionals and loops) can be saved in a shell script which then becomes indistinguishable from pre-existing commands (i.e. the set of commands is infinitely extensible). Of course, mastering everything takes a lot of dedication and a lot of time. This tutorial is an essential reading for anyone willing to, one day, become a Linux guru.
Yii Framework
PHP is a powerful programming language and major web applications like Wikipedia and Facebook are built using it. When developing a new application, one can write everything from scratch or use a framework. Most of the time, people tend to use a framework because of the added productivity this provides. Yii is a new PHP framework based on the Model View Controller (MVC) architecture and which supports AJAX and jQuery, interacts with relational databases (like MySQL) and provides multi-language support, performance optimisation through caching and security through role-based access control. Yii implements many of the good ideas of Ruby on Rails like minimal need for configuration, scaffolding (automatic PHP code generation based on a database table, for example) and full testability. All PHP programmers should give Yii a try.
Node.js
In the past, web applications were mostly server-based with only a few bits of verification and validation being done on the client. In 2011, this is not true anymore: any decent web application needs to have a complex Javascript portion to deal with AJAX as well as to provide a modern user interface. In other words, having Javascript in the client and, say, PHP on the server (using something like Yii for example). Node.js challenges this. With Node.js, it is possible to run Javascript on the server. In fact, Node.js adds to Javascript the capability to work as a web server with full support for all kids of databases through add-on modules. The advantage is, naturally, that the programmer only has to master one programming language instead of two. jQuery has revolutionized client-side programming. Can Node.js be as innovative on the server front? Only time will tell.
Clojure
Clojure is yet another programming language for the Java virtual machine. I talked about Scala previously but Clojure has had a lot of buzz since it was launched in 2007. Clojure is a LISP and, therefore, will look incompressible at first to those of you not versed into LISPdom. But it is also a very powerful general purpose language with extensive support for functional programming, it has a very powerful macro system inspired by the one in LISP and provides immutable data structures which allows for helps in writing efficient concurrent programs. Given that the programming environment in 2011 is essentially multi-core, it is important for all of us to start looking at alternative programming languages built with parallel processing in mind. Clojure is such a language. And, remember, parentheses are cool.
Leave a Reply