When I jumped into the Linux/open-source world I didn’t know nor care about the different licenses software had attached with it. I guess I was used to adhering to whatever license that was forced upon me by Microsoft. Now I have a choice. There are many software licenses out there – here are a few popular ones in a nutshell:

GPLv1

The General Public License is the foundation for many other licenses. It is the most popular license in open-source and prevents copyleft – restrictions on distributing copies and modified versions of a work for others and requiring that the same freedoms be preserved in modified versions. GPLv1 states that all binaries must have human readable source code attached in the distribution. It also indicates that another license that your software may carry cannot restrict clauses in the GPL. Many software vendors will try and use that as a loophole to benefit from open source while retaining their enhancements to themselves.

GPLv2

The major change in v2 is the Liberty or Death Clause in Section 7. This states that if your software has some restriction where it violates GPL-covered property, then it cannot be distributed. For example, if a legal ruling states that they can only distribute the software in binary form, they cannot distribute it at all. The Linux kernel is covered by this license currently, and the license prevents others from just taking the source, modifying it and not contributing back to the community that founded it.

LGPL

Known as the Lesser General Public License, its name is reflective of its clauses – it has less restrictions. LGPL lets you distribute modified work that is linked to free or proprietary software. For example, if you write a media center application ontop of the MPlayer library, under the LGPL you are allowed to distribute the software regardless of the MPlayer library being open-source or binary. This was instituted to give users more freedom.

GPLv3

This is license was just recently published and addresses the issues of cross-patent licenses and anti-tivoization. Cross patent licenses for example, the Novell-Microsoft agreement, under the GPLv3 indicates that you cannot convey your product to a distributor who will charge their customers for your work. The license is also meant to require Microsoft to extend the patent licenses it grants to Novell customers for the use of GPLv3 software to all users of that GPLv3 software; this is possible only if Microsoft is legally a “conveyor” (distributor) of the GPLv3 software.

Tivoization is the creation of a system that uses copyleft protected software but includes hardware that restricts users from running modified versions of the software on the hardware. It is named after TiVo because it uses open-source software, however that software when modified deems your TiVo device unusable, and is illegal under the the GPLv3.

BSD License

The GPL requires derivative work to be released according to the GPL while the BSD license does not. Essentially, the BSD licence’s only requirement is to acknowledge the original authors, and poses no restrictions on how the source code may be used. As a result, BSD code can find its way into proprietary software that only acknowledge the source. For instance, the IP Stack in Microsoft Windows and Mac OS X are derived from BSD-licensed software.

MPL License

Source code copied or changed under the MPL must stay under the MPL. Unlike strong copyleft licenses, the code under the MPL may be combined in a program with proprietary files which would otherwise be derivative works of the MPL code.For example Netscape 6 and later releases were proprietary versions of the Mozilla Application Suite. For these Netscape releases, AOL was also exercising the exclusive rights to proprietary versions that the another license provided to itself.

I have merely skimmed the surface of the purpose of licenses in the free software world. I did not mention dual licensing, or compatability between different licenses, or the myriad of other licenses available for that matter, though I encourage you to do some extra reading if you’re interested! Again, I am not a lawyer nor am I very familiar with the technical aspects of the licenses, so please correct me if there is a mistake or post a comment if you have anything to add!

Glipper is a very handy tool to have in your toolbox. It maintains a clipboard history of everything that you’ve copied. So say I copied something from CNET.com and also copied some text from ubuntu.com – with Glipper I can easily insert both copied text. Normally the latter material that was copied would have overwritten the former but a clipboard history solves this problem. Some Ubuntu users might also cringe at the fact the clipboard is cleared everytime an application is closed. So if I copied a URL from Firefox, and wanted to paste it into gedit, but closed Firefox, my copied URL is now gone because the clipboard was cleared. Glipper maintains all of your copies so you don’t have to worry about these little quirks anymore. Glipper is in the universe so you can search for it in Synaptic and install or if you’re a term kind of guy like me:

After reading Mohammad’s blog post about Google Desktop, I thought I’d take it for a spin since I’m a GDS fan when I’m on XP. Though I’ve only been using it for two days, I soon realized that I am going back to Tracker. Here’s why:

1. Memory Footprint

GDS is costing me 50MB+ for the search utility, the indexing process, and the tray icon. Tracker peaks at about 4MB for me – and that includes the indexing process.

2. No Deskbar Integration

With tracker I can integrate it into my deskbar. I can launch apps, search the web/desktop, and run system level commands from one place. GDS is limited to only searching the web/desktop, so as a power user I’m still stuck using 2 applications, when I can be using one integrated solution. I hope in the future we will be able to integrate GDS into the Deskbar, but it seems unlikely since GDS is a closed-source binary.

3. Firefox Results

GDS displays search results in Firefox. Though this is nice, we all know that FF isn’t the fastest loading application in our toolbox. Tracker has its own native GTK+ search window which loads up a lot quicker.

One thing I will note however – GDS is blazing fast. It picks up search results as I type, faster than Tracker. The speed difference isn’t enough to outweigh its large memory footprint though. I am indexing my root folder which is the culprit for GDS eating up my memory, but if Tracker can do it efficiently, I expect the boys at Google to do so as well =).

Though the iPhone does not fare well feature-wise in comparison to existing Smartphones for its hefty price tag, there is one good outcome I see from the Apple Marketing Machine hype:

Web applications can piggyback off of the iPhone’s success.

Since Apple is limiting apps to run from Safari, this means developers must create web compliant applications. How does this benefit us who don’t have an iPhone? It means we can run the same applications from our internet enabled phones/devices too. What does this mean to the developer community? AJAX enabled development will be on the rise pushing the limits of Web 2.0 even further. We will see more tools, and new ways of manipulating the browser to deliver a rich user-centric experience.

Plain simple, the iPhone will help usher in the web application platform. More and more applications are going to the web, and with Apple’s marketing power, the Web 2.0 generation is inadvertently benefiting from the iPhone success.

AJAX is new technology. There aren’t very many tools supporting it compared to Java or .NET. This doesn’t mean there aren’t any good tools to develop AJAX applications however. Here are a few of my favorites which have helped me out:

Development – Eclipse + Aptana

Eclipse is the most powerful and extensible IDE I’ve ever used. It supports multiple programming languages, refactoring tools, and the works. Aptana is a plugin for Eclipse which lets you write Javascript code as well as design web-pages from within the IDE with full syntax highlighting and script debugging. Aptana also supports Adobe AIR and Ruby on Rails two new technologies that will make developing web-applications even more powerful. Putting two and two together, it leaves Dreamweaver, which is mostly a design tool, in the dust.

Eclipse can be downloaded from http://www.eclipse.org. Drop the archive anywhere on your system and run it. If you are an Ubuntu user, Eclipse is in the universe for your pleasure.

We developers know that debugging can be the most tedious part of the programming experience. Eclipse and Aptana cover debugging the Javascript, but what about the communication between the client and the server? All AJAX applications are n-tiered and Firebug makes monitoring data between the model-view-controller a breeze. You will have to test your application in a web-browser regardless, so having Firebug installed is a bonus. You can also manipulate scripts on the fly, so if you want to make a quick CSS change to see how it affects your page thats already live, go right ahead.

Production Testing – Apache Jakarta JMeter

How do you test if your shiny new application can hold up against thousands of simultaneous users at once? JMeter is a profiling tool from Apache that lets you setup cases to stress test your application. It even provides important data like how long it took to serve a page with 50 simultaneous users, so you can fine tune your app for speed.

Deployment – FireFTP Extension for Firefox

AJAX applications live inside an HTTP server. FTPing your website is easy with FireFTP. It features a two-pane view so you can transfer your website over quick.

As AJAX becomes more popular better tools will be developed making the software process a little bit easier. The above tools mentioned are very robust so put your thinking hats on and start developing applications for the Web 2.0 generation.

You never know who may be watching your connection. With constitution violators like AT&T and other service providers your data can be in the hands of big brother. Here are a few tips for securing your online experience, so you can enjoy the web in peace.

1. Encrypt E-Mail Messages

Assuming you use GMail, FireGPG is a great Firefox extension that encrypts your messages. It can only be decrypted with a GPG key that only trusted parties will have access to.

2. Encrypt Instant Messages

GAIM is the most popular instant messaging platform on the internet. Encrypting your messages is cake with the gaim-encryption plugin. Nobody likes an eavesdropper.

3. Encrypt Torrent Downloads

With bit-torrent activity coming under heavy fire from the RIAA and Hollywood, encrypting your torrents is important. Azureus allows you to enable Transport Encryption which will make it harder to track what you are downloading.

4. Block Suspicious Incoming/Outgoing Connections

Peer Gaurdian is a great tool that blocks incoming and outgoing connections based on IP blocklists. Government probes, RIAA bots, and and spyware won’t be able to enter or exit your computer.

5. Anonymize Internet Surfing

Who really needs to know exactly which sites you are visiting? Xerobank Browser (previously called Torpark) lets you browse the web anonymously so that your IP is not exposed. You can even get a portable version that runs off of your flash drive, in those times where you can’t browse the web from your own computer.

Security has its limitations. There are no patches for human stupidity, however there are open-source technologies that will suffice.

Post Scriptum:
For those of you interested in how the government and companies are sacrificing your privacy, be sure to check out the CNBC special Big Brother Big Business.

Ubuntu is a great distro, but it still needs some slight tweaking to get it just right. I’m going to show you how to use Automatix2 to get your OS perfected. For those of you unfamiliar with Automatix2, its basically software that makes installing add-on software easier in Ubuntu. There are ways to grab these packages without Automatix2 but you might have to get your hands dirty, so for simplicity’s sake bear with me. In random order:

1. Install Non-Free Audio/DVD/Multimedia Codecs

For legal reasons Ubuntu cannot play MP3’s or other proprietary formats by default, so have Automatix2 install them for you, and go back to listening to music that you pirate using Deluge. You might be wondering why I install codecs when Feisty does them for you? Well Feisty is missing some packages – check out the Automatix wiki for more info!

2. Install Extra Fonts

We live in a Microsoft dominated world. Most webpages use Microsoft Fonts like Arial, Tahoma etc. which don’t come standard in Ubuntu. Luckily Automatix2 lets you install the msttcorefonts package so you can view your webpages without feeling alienated.

If you want to go the extra mile and smoothen out your fonts, go to System > Preferences > Fonts and enable sub-pixel rendering for anti-aliased goodness.

3. Install Swiftfox and Plugins

Swiftfox is an optimized version of Firefox that is tuned to your specific processor. The web is chock full of plugins, like Adobe Acrobat Reader, Flash, Java and the works which require manual installation. Why not get them all and spend time browsing the web instead of individually installing these plugins (I’m looking at you non-Linux users)?

4. Install Unarchiving Tools

Most of us just unarchive zip or tar.gz files most of the time, but sometimes you get those funky formats like ace, or rar when you’re pirating software when working with certain files. Automatix will set up all the right packages so you can extract just about any file with your eyes closed.

5. Install Nautilus Scripts

Power users will agree with me, you get things done faster with the terminal. Its command-line country in the Linux world and sometimes you just need to fire up the trusty shell. I like to have the best of both worlds – use Nautilus to navigate to some deep directories and then go straight to that location in the shell. How is that possible? Nautilus scripts baby.

We live in a mobile world, and having cool cell phones with fun ringtones higher your social status amongst many. Audacity is a sweet audio editor, but I like to use it to make 15-30 second ringtones out of my music that I pirate.

8. Install Video Drivers

Intel chipset users can install auto915Resolution. This one isn’t in Automatix2, but here is a link from Roland Lopez’s blog that tells you how to set it up. If you’ve got an Intel 8xx-945 chipset, and want to bump up your resolution the above script will adjust Ubuntu’s settings so that you can choose a resolution higher than 1024×768.

NVidia and ATI drivers can automatically be picked up by Feisty’s Restricted Drivers Manager, however they can be installed from Automatix2 as well.

9. Install AbiWord and Gnumeric

These files are in the universe, so they can be easily installed by using Ubuntu’s Add/Remove Software feature. Open Office is a great document and spreadsheet editor, but sometimes you just want to view a file. I’m too impatient to wait for Open Office to load up, just so I install AbiWord and Gnumeric – two very light weight apps that make opening docs and spreadsheets a quicky.

10. Uninstall Apps That You Won’t Use

I keep things clean. Get rid of some of the bundled apps you know you won’t use. I know I’ll never use Ekiga Softphone so to oblivion it goes.