Wednesday, January 25, 2012

50 Android Apps to Customize Your Smartphone


Looking for more Android apps to customize your smartphone? Look no further. Here's a list of 50 sweet apps that should be on your radar.

1) Amazon AppStore for Android
This alternative app market is new but gaining ground fast. It doesn't hurt that it gives away a different paid app for free every day. Free.

2) Stats Free
This very useful app lets you track all sorts of usage data from your Android device. It can even alert you if you're about to exceed usage limits or disconnect mobile data if necessary. Free.

3) LastPass Password Manager Premium
Juggling more passwords than you can keep track of? This app may be just what you need. It's a secure password generator that securely syncs your passwords across all your browsers and devices and automatically fills forms on all sites. The app is free, but the service costs $1 per month.

4) Llama – Location Profiles
Do you want or need your phone to change its behavior based on where you are? Look no further than this app. It can change your phone's ringer and ringtones—and a host of other settings as well—based on your location. Free.

5) Tasker
If you need something with even more functionality than Llama, this handy app let's you tweak and automate just about any process on your device. For instance, you could set your device to go into silent mode when you set it face down and to switch back to its prior state when you pick it up. Paid: $6.49.

6) GO Launcher Ex
This launcher app offers smooth and easy customization of your home screen with lots of beautiful themes, fast flip speed and tons of useful functions. Free.

7) GetGlue
Sometimes finding a new television show, movie or music that's up your alley can be tricky. That's where this app comes in. GetGlue is a social network for entertainment. You can check-in to what you're watching, reading or listening to, get recommendations based on your likes and dislikes and see what your friends are into. Free.

8) Vlingo
Need to text, call, tweet or set your Facebook status and your hands are already occupied? That's no problem if you have Vlingo, which allows you to operate your Android phone with your voice. It even works with a wireless Bluetooth headset. Free.

9) chompSMS
Want more control over your SMS app? The highly configurable chompSMS app gives it to you in spades. You can alter the style of your chat bubbles, add themes, a passcode lock, signatures and lots more. There are even blacklisting and Quick Reply features. Free.

10) Endomondo Sports Tracker Pro
Carry your personal trainer in your pocket with this app, which uses GPS to help track your running, cycling and walking and even gives you audio feedback. It even syncs with a number of heart rate and cadence monitors. Paid: $3.99.

11) Anti-Virus Pro
Concerned about malware, viruses and SMS spam? Anti-Virus Pro is a comprehensive security suite for Android that can scan apps, files, settings and media in real time. Paid: $9.99.

12) JuiceDefender
Is the battery on your Android phone consistently running on empty? JuiceDefender can help you extend it! The app intelligently manages your mobile connectivity and other battery-sensitive components to ensure your phone runs as efficiently as possible. For example, the default mode switches your phone from battery-intensive 3G mode to the less-draining 2G mode when you're not actually using the phone, and it turns of the Wi-Fi radio if the charge goes below a certain level. The Advanced Mode allows you to tune the app's triggers based on your individual needs. Free.

13) Seesmic
This Twitter client integrates streams from Twitter, Facebook and even Salesforce.com Chatter into a single client, allowing you to stay on top of all your messages from various sources. Unlike many clients, it supports multiple accounts, giving you the ability when composing a message to send it out via one of your accounts or all of them at once. You can also customize a large number of features. Free.

14) TiKL – Touch to Talk (PTT)
Turn your Android phone into a walkie-talkie with this app. It provides push to talk capabilities between Android phones without additional hardware and without using minutes. Communication is near instantaneous on 3G and 4G networks. Free.

15) Document Scanner
This app allows you to scan documents with your phone's camera, convert it to PDF and e-mail the PDF to anyone. You can even upload the PDF to Google Docs. Paid: $2.98.

16) Bluetooth File Transfer
With this app, you can explore and manage the files on any Bluetooth-enabled device, receive files and send contacts. It's built on FTP and Object Push Profile (OPP). Free.


17) Amazon Kindle for Android
Want to read an electronic book, newspaper or magazine but don't have your Kindle with you? Or don't have a Kindle at all? It's not a problem with this app, which allows you to read any of 900,000 Kindle-formatted books with your Android device. And Amazon's Whispersync that your last page read, bookmarks, notes and highlights will sync across your various devices. Free.

18) Kongregate Arcade for Android
Want to stay up on the newest and hottest Flash games around? This app gives you free access to more than 300 games from the Kongregate community and fully integrates with your existing Kongregate Web account. Free.

19) WolframAlpha
Access WolframAlpha's computational knowledge engine from your phone with this app. Also available for free via the WolframAlpha Web site, the app calculates the answers to complex mathematic and scientific problems in an instant. The app version adds a keyboard with all manner of mathematic and scientific symbols to make entering queries a snap. Paid: $1.99.

20) Evernote
This app allows you to log, index and search all manner of information, from notes to audio to photos. For instance, you can take a photo of a white board and Evernote will recognize the text in the photo, index it and then allow you to find it later by entering a search term from the information on the white board. It even synchs with the Web. Free.

21) EverPaper
EverPaper is a simple but excellent Instapaper client. It doesn't support folders yet, but it's under constant development. It also syncs with EverNote. Free.

22) ActionComplete
ActionComplete is a robust task manager. It is built around projects you create, which are made up of individual actions that serve as milestones in the project. The app is based on the Getting Things Done (GTD) methodology created by David Allen in his book: Getting Things Done: The Art of Stress-Free Productivity. Free.

23) Fusion Voicemail Plus
Centralize all your voicemail boxes, including mobile, home and office, on your Android phone with this app. It can receive and display FAXes too. Free.

24) NewsRob
This is an excellent, plain but functional Google Reader client with built-in syncing for off-line reading. Free and paid. The free version features ads. NewsRob Pro goes for $7; it removes the ads and adds exclusive features for power users.

25) Astrid Task Todo List
Get yourself organized with this todo list app. It features tagging, timers, reminders, smart task sorting and even tracks partial progress. You can sync your todo list with Remember the Milk, which can sync with Gmail. Free.

26) Google Chrome to Phone
Run the Google Chrome browser on your computer? This app lets you share links, maps and currently selected phone numbers and text between your computer running Chrome and your phone. Free.

27) GDocs for Android
This editor/viewer for Google Documents allows you to create, edit, view, import, export, send documents and sync them with your Google Docs account. Free.

28) Exchange for Android
This app offers Exchange/Outlook sync for your Android! It works with Exchange 2003/2007 and allows you to sync your e-mail, contacts and calendar. It's available for a free five-day trial. After that, a license costs $19.99.

29) SMS2PC
This app automatically forwards SMS messages to your PC if you're working on it so you don't have to reach for your phone. You can reply to messages and create new ones from your Android address book. Paid: $2.50

30) Dropbox
Dropbox is a client for the Dropbox cloud-sharing file storage service. It makes it easy to get files onto your phone without explicit synching. You can add files to it from any of your computers and then access them from any other computer or phone. Free.

31) Lookout
Want to protect your phone? Lookout does just about everything. It provides security against mobile viruses, malware and hackers, backs up your data and even locates your lost or stolen device on a map from the Web. And if you can't find it, you can use Lookout to make your phone "scream" or simply wipe out all the data on it. Free.

32) App Protector Pro
Want a little extra security for your Android phone? App Protector Pro allows you to password protect any application on your phone, including e-mail, SMS, photos and more. Paid: $1.99.

33) Memory Booster – RAM Optimizer
Keep your Android phone running at its fastest with this app. Memory Booster optimizes our phone's memory by recovering memory leaks, flushing temporary libraries and defragmenting your phone's memory. Free.

34) Dolphin Browser HD
Don't like the stock browser that came with your Android phone? The Dolphin Browser HD adds a boatload of features, including multiple tab viewing, full multitouch gestures, a thumbnail "flick" menu, gesture-based search and URLs, a YouTube downloader and browser extensions. Free.

35) handyCalc Calculator
The app adds just about every calculator function you can think of to your Android phone, allowing you to put your scientific calculator in the drawer forever. Free.


36) Fuze Meeting HD
Need an audio- or video-conferencing solution for your Android device? Look no further than this app from FuzeBox. You can invite schedule and start meetings, as well as invite attendees from your address book, and even upload PowerPoint decks, Word documents, PDFs, and HD movies and images from your device. The app is free but the conferencing service is not, though there is a free trial period.

37) MasterCard ATM Hunter
This highly useful app uses your phone's location to find the nearest ATMs. You can even sort according to criteria including: drive through, 24-hour service, wheel chair accessibility and surcharge fees. Free.

38) Gasbuddy – Find Cheap Gas
This app provides comprehensive, real-time gas prices in your area (US and Canada) with maps. Users who pitch in by reporting gas prices in their area can win free gas. Free.

39) Dial Zero
Need to get in touch with customer service and don't want to wait on hold? Dial Zero maintains an index of more than 600 companies and how to cut through their automated answering services to get a live human being in no time. Free.

40) Nesoid Lite
This Nintendo Entertainment System (NES) emulator allows you to play every NES game ever made right on your Android phone. You'll have to take responsibility for the legality of your ROMs. Free.

41) Angry Birds
It's one of the most popular mobile games around for a reason. Use physics to help the Angry Birds destroy the piggies that have stolen their eggs. Free.

42) Slacker Radio
Want to create favorite radio stations and take them with you wherever you go? This app has you covered. While other apps—notably Pandora and Last.fm—also allow you to create your own radio stations, Slacker Radio has the added capability of caching music on your device for whenever you have a data signal so that you still have access to your music when you're offline, like on the subway or a long flight. Free and Paid. The free version gives you access to music streaming, while the paid version gives access to off-line caching for $4.99 a month.

43) Wikidroid
Use Wikipedia often? Wikidroid formats Wikipedia articles for your device with a sleek interface. It even includes voice search and bookmarks. Free.

44) Words with Friends Free
Enjoying playing Scrabble? Take it to you phone with this game. Best of all, you can play your friends whether they're using an Android phone or an iPhone. Free.

45) Sketchbook Mobile
Keep a sketchbook with you wherever you go with this full-featured app from CAD specialist Autodesk. Sketchbook Pro is a professional-grade paint and drawing application with a whole host of tools. It's great for graphic designers on the go. Paid: $0.99.

46) Beautiful Widgets
Not content with the widgets, themes and skins that came with your Android device? This app is what you need. It features hundreds of downloadable skins. Paid: $2.82.

47) Easytether Pro
Looking for a solution to turn your Android phone into a mobile modem? Easytether Pro lets you tether your phone to Windows, Mac OS X, Ubuntu Linux, PS3, Wii and Xbox 360 devices with no tether fees and without requiring root. An easy-to-use wizard guides you through the tethering process. Paid: $9.99.

48) EStrongs File Explorer
File Explorer is a local and network file manager that provides a file explorer for both the local phone and your remote computer. You can view files on your phone and in your computer's shared folder and transfer files between them. You can even play audio and video, browse images and view text. Free.

49) Free Dictionary Org
This simple, no-nonsense English dictionary provides definitions, synonyms, pronunciation and spelling. Free.

50) Ringdroid
Don't like the default ring tones that come with your Android phone? Ringdroid allows you to record and edit sounds and create ring tones from any song you like. Free.

Tuesday, January 24, 2012

Free Android Apps for Students


Android for students
Are you a high school student looking for straight A’s? Or are you a sophomore at college, struggling through the pressure of exams and grades? Do you have an Android? Well here are some apps that you can get to make your life easier. Yeah, that’s right- Android caters to all user groups.

Evernote

Evernote
My best guess is that you already have it. But if you don’t, get it now. It is a must-have for all campus-trekkers. It combines the best features of note taking into a single app. Evernote would help you keep track of… well… everything. From pictures and notes to to-do lists. You can stay organized with this app even if you have hundreds of notes- thanks to the search feature that helps you find just the right note, thus saving your efforts and time.

WikiDroid

Wkidroid
We all know what Wikipedia is. It has become almost as famous as Google. If you are on internet, you know what Wikipedia is. And now it is available on your phone- thanks to Wikidroid. If you are a student, I’m sure you’ve taken help from Wikipedia at one point or another. It is the favorite of millions of students. But the problem with opening Wikipedia on phone is that it takes time to load. This is why they came up with Wikidroid, a Wikipedia app for your Android. Now whenever you have to collect data about any topic, you can easily do so using Wikidroid.

Merriam Webster Dictionary

Merriam Webster
No need to carry a bulky dictionary in your bag anymore. The Merriam Webster dictionary now fits right into your Android phone. You can also use speech feature to look for words. It not just shows the meanings of words, but a lot more as well. It can show you the synonyms and antonyms of words. Plus if you want to enhance your vocabulary, you can use its Word of the Day feature.

Math Formulary

Math Formulary
Personally, I don’t like math. But if you have to prepare for a math test, this app can help you out. This app has almost all formulae that you will ever have to use through high school or college. I saw some formulae and I think this app has it all. I’m no mathematician! Download it and see for yourself.

Student Budget Planner

My Student Budget Planner
If you have cash flowing in from your parents, you might not need it. But if you were a student like me who had to plan expenses, this would be the right app for you. If you want to eat every day, your finances should be well organized. This is where you would need this app. It helps you track your expenses so that you know where your money is going. I’m not a big fan of this app by the way, but it’s ok- worth a shot.

10 New Open Source Projects You May Not Know About


With so many open source software projects under way at any given moment, it can be difficult to keep tabs on all that's going on.
linuxFirefox, Linux, LibreOffice, and the partially open Android platform may dominate the lion's share of the headlines, but there are countless lesser-known open source efforts that are equally worthy of attention.
Want a few examples? Open source-focused provider Black Duck Software this past week announced the winners of its fourth annual Open Source Rookies of the Year. Included in the list are a bunch of new projects that are worth watching.
10 Up-and-Comers
To come up with its list, Black Duck used data on open source projects from sources including Ohloh.net. It says it reviewed thousands of open source projects started in 2011.
Winners were chosen using a weighted scoring system that awarded points based on commit activity (the number of changes made to the software per day), the size of the project team, and the number of in-bound links to the project.
Without further ado, here are the winners Black Duck came up with:
1. Bootstrap, a toolkit from Twitter designed to kick-start development of Web applications and sites;
2. BrowserID, a secure, decentralized, open source, cross-browser way to sign onto websites based on the user's email address;
3. Canvas, billed by Black Duck as “the only commercial open source learning management system and the only LMS native to the cloud”;
4. Cloud Foundry, an open Platform-as-a-Service (PaaS) providing a choice of clouds, developer frameworks, and application services;
5. Moai, a mobile platform for game developers that offers cloud-based game services and rapid development of iOS, Android, and Chrome titles using the Lua scripting language;
6.Mooege, an open source educational game server emulator;
7. OpenShift, a free, auto-scaling Platform-as-a-Service (PaaS) from Red Hat;
8. Orion, a browser-based open tool integration platform built by the Eclipse platform team;
9. rstat.us, a microblogging platform that's set apart by its simplicity and openness, Black Duck says; and
10. Salt, an open source configuration management and remote execution application.
'Cloud, Mobile, and Gaming'
"The data underlying the 2011 Open Source Rookies list is consistent with shifts we see in our day-to-day business, where cloud, mobile, and gaming draw great support from involved communities of open source developers," said Tim Yeaton, president and CEO of Black Duck Software.
Indeed, open source software such as Linux is increasingly at the forefront of innovation in many enterprises, as recent survey data has shown. Over the upcoming year, these 10 projects would probably be worth keeping an eye on.

How to Access a PostgreSQL Database from Any Language

If you’re a system administrator, chances are you use programs that interface with databases every day. One great advantage of open source software is that you can modify your applications’ code to customize it for your needs. If your application uses PostgreSQL on the back end, it’s not hard to access your database from a variety of languages. Here’s how to get started, whether your code is in C, C++, PHP, Tcl, Python, or Perl.
If you’re a complete neophyte when it comes to programming, this process probably isn’t for you. However, if you have at least basic knowledge of SQL and of at least one programming language, I’ll walk you past the first hurdles. You can also turn to the PostgreSQL manual for specific information. While you’re probably running Linux, the same program code should work on other operating systems, as long the same client interfaces are available there. My examples rely on Postgres 9.1, the latest stable release, being already installed and tested. My setup has the server running on a different machine from the client, but on the same LAN; in such a setup, you can easily connect to the server with the command pgsql -U postgres -h x.x.x.x.
Once you know your server accepts connections, make sure you have the rights to install software on the client machine. Also make sure that the database you’re working with is for testing only, so as not to accidentally corrupt anything crucial.

C Interface

C is a popular language when it comes to interfacing with a database. Many database systems are themselves written in C. The language offers speed and flexibility, so if you want to write a client interface, be it console-only or GUI-based, and you don’t want to hear about browsers, C might be your best choice.
The software you need to interface C with Postgres is named libpq. It comes bundled with the PostgreSQL source tree. If you installed the database system from binaries rather than from source, you can always get libpq separately, but keep in mind that you need the -dev package as well (or -devel, depending on your Linux distribution). On Debian and derivatives, the command to install it is # aptitude install libpq-dev. On Red Hat-based systems like CentOS, you can find libpq in the postgresqlxx-libs package, where xx is the major and minor version number. So if you want to interface with a PostgreSQL 9.1 database, you will need to install postgresql91-libs, or postgresql-devel if you’re running Fedora 16. The difference in the names is because RHEL/CentOS users use mostly the Postgres repository, while Fedora users have more up-to-date packages and need a third-party repository only if they’re after an older version. Long story short, any system that supports PostgreSQL will have libpq available, one way or another.
libpq is the API engine for not only C, but also C++, Perl, and Tcl. It gives you the basic functions to connect, query, and alter a database. Most of the functions that you’ll use frequently have names that start with “PQ,” such as PQconnectdb or PQerrormessage. For more examples, turn to the PostgreSQL documentation, or look in src/test/examples. In your C program files, include libpq-fe.h and add the appropriate linker flag, which is -lpq when compiling.
The first thing you’ll want to do is connect to an existing database. PQconnectdb() takes an argument in the form of const char *conninfo that contains the keywords you want, such as dbname=[database_name], and you use this pairing format with the other keywords as well. The most used ones are host, hostaddr (numeric form, to avoid useless DNS lookups), port, user, password, and sslmode. If you don’t provide any arguments, the default options will be used, which is probably not what you want. Suppose your database server has the address 192.168.0.101, the username is postgres, and the database name is testdb1. A first attempt to connect might look like this:
#include 
#include
int main(int argc,char argv[])
{
const char *conninfo;
PGconn *conn;
if (argc > 1)
conninfo = argc[1];
else
{
printf("Not enough arguments, exiting...");
return 1;
}
conn = PQconnectdb(conninfo);
/*Check to see how I did */
if(PQstatus(conn) = CONNECTION_OK)
printf("Connection succeeded.\n");
else
{
/*Do something to deal with the error*/
}
}
Save this code as testlibpq, compile it, and use it like this:
$ testlibpg "hostaddr=192.168.0.101 user=postgres dbname=testdb1"
If everything goes well, you should see “Connection succeeded.” on the screen. That’s gratifying, but so far not very practical. To get anything useful, you need to query the database – but since I started with connecting, I should tell you that in order to disconnect, you call PQfinish, which returns a void and takes *conn as the sole argument.
PQexec, the function for executing queries, returns a PGresult and takes *conn and const char *command as arguments. In our example, let’s just declare a PGresult variable and send a command to the server. I leave to you the part where you check whether the connection is there, and error checking.
PGresult *res;
res = PQexec(conn, "SELECT * FROM mydatabase");
PQclear(res);
Needless to say, the code presented here is nowhere near complete. Its purpose is to show you what the library offers, not to offer ready-to-use code. Nevertheless, with this code, res contains the result of the query, and you can parse it at will. PQresultStatus lets you know how the command went, and returns a status of the form PGRES_COMMAND_OK or PGRES_FATAL_ERROR. You can find a comprehensive list of the exec functions on the PostgreSQL project’s website.
Let’s move on to some more useful functions. For example, PQntuples, given res as an argument, returns the number of columns in the table as an int. It takes a PGresult object as an argument if the query’s status is PGRES_TUPLES_OK, and returns an integer value. PQnfields gives you the number of columns in each row. PQfname returns the column name associated with a number, while PQfnumber does the opposite. To get the value of a single cell, pass to PQgetvalue the usual PG result, along with the cell’s column and row numbers.
All this is good, but PQexec isn’t a genius when it comes to handling multiple SQL commands. Because it returns only one structure, if you have more than one command, it will take into consideration only the results from the last command. Another drawback is that PQexec waits for a command until it’s completed, so you must take extra care when it comes to blocking execution. You can use a series of functions if these shortcomings affect you, such as PQsendQuery and PQgetResult, and use them intelligently for async-friendly code.

C++ Interface

The official PostgreSQL client API for C++ is called libpqxx, but it doesn’t come bundled with the PostgreSQL source. Instead, you can install it from your distribution’s repository or just download it. The README file says you can use libpqxx on Linux, BSD, Solaris, Irix, HP-UX, AIX, and Windows, with Cygwin. You must install libpq before installing libpqxx, as the latter is based on the former.
In C++, the namespace is named pqxx, and you must include a header with that name. Here’s a simple connection and query:
#include 
#include

using namespace std;

int main()
{
pqxx::connection conn;
pqxx::work w(conn);
pqxx::result res = w.exec("SELECT 1");
w.commit();

cout << res[0][0].as() << endl;
}
This program will print 1 if everything goes as it should. Use and abuse the try/catch keywords to defend against connection errors. If you want to use argv[x], as I did in the C example, you can concatenate the string like this:
pqxx::result res = w.exec("SELECT" + w.quote(argv[1]));
Again, not very useful so far, so how do you actually access results that a query returns? Since res, which stores the data, is an array of tuples, you can use for loops to iterate through the elements:
for (int rownr=0; rownr < res.size(); ++rownr)
{
const result::tuple row = res[rownr];
for (int colnr=0; colnr < row.size(); ++colnr)
{
const result::field = row[colnr];
cout << field.c_str() << \t;
}
cout << endl;
}
Remember that I used using namespace std;; if you don't use it, alter the lines with cout and endl accordingly.
libpqxx offers a lot of options when it comes to string conversion. The most interesting functions are from_string and to_string; the first basically takes a string argument and a T & obj, which is an existing built-in type, and the second takes only the T & obj, converting it to a string. The complete documentation on this is a useful read.

Connections, Queries, and Transactions

For the rest of this section, I recommend you insert using namespace pqxx;, as I did when writing the code, in order to save some typing, so you won't have to type pqxx::.... With that in mind, let's open a connection to an existing database and perform a transaction and then a query. You will notice the code does about the same as the C code above.
I can use a constructor that takes only one argument, again a string, which will define the connection options (dbname, user, and so on). Since the default username is postgres, I won't include it in my string this time.
connection Conn("dbname=testdb1 hostaddr=192.168.0.101");
I now have an open connection, provided everything went well (again, take care of exceptions!). This, however, is not enough for executing queries – you need to open a transaction by using a transactor, which will save you hassle and time when a connection drops off on you. A transactor is a functor, and functors are handy when dealing with problems that create connections, when you need to know the state of said connection. You can't get that information with simple functions or function pointers, given the way the language is designed.
A functor is a function object, so you can treat it as a function that is state-aware. Let me explain. The operator() in C++ can be overloaded, so you can put any number of elements inside the parentheses. You could say that a functor is a class that defines operator(). If you want a function that adds two values (given as arguments), you would have to hard-code those values. Functors take care of the hardcode limitation, allowing you to use a constructor and add a new object that "overrides" the first values to be added, thus giving the developer more flexibility.
Now that you know what a functor is, let's see how to use the transactor.
// I already have a connection open, as above
class Transaction : public transactor<>
{
public:
void operator () (transaction<> & t)
{
t.exec ("INSERT INTO mytable VALUES(val1,val2)");

}

void on_abort (const string & msg)
{
cout << "Transaction failed with message: " << msg << endl;
}
};
//Inside main()
conn.perform (Transaction());
As you can see, coding queries in C++ isn't hard. You can define transactions and properly format the results you get from the queries (think stringstream), and the rest is easy to accomplish, using loops.

PHP Interface

PHP is widely used for database integration with web pages. The language offers a simple way for programmers to interface with databases.
Make sure you have PHP installed and its PostgreSQL module, which is named php5-pgsql on Debian and derivatives and php-pgsql if you're using CentOS 5. If you compile from source, use the --with-pgsql=[DIR] configure option, where DIR is the directory where Postgres lies. You can use phpinfo() on a web page to check whether PostgreSQL support is enabled and what options have what values. Note that the examples below work with PHP 5, and not necessarily with older versions.
It's more straightforward to open a connection, make a query, and print out the results using PHP than it is with C/C++:
xxx")
or die('Could not connect: ' . pg_last_error());
$query = 'SELECT * FROM mytable';
$result = pg_query($query) or die('Query failed: ' . pg_last_error());
echo "
\n";
while ($line = pg_fetch_array($result, null, PGSQL_ASSOC)) {
echo "\t
\n";
foreach ($line as $col_value) {
echo "\t\t


\n";
}
echo "\t

\n";
}
echo "

$col_value
\n";
//I printed the result in a nice table; thanks to the PHP manual
pg_free_result($result);
pg_close($dbconn);
?>
As you can see, connecting, making a query, and using the results are all a breeze. However, beware when you get user/password information interactively from users. A SQL injection attack might gain a malicious individual access to your database, so make sure you keep informed about security issues.
When working with arrays, and you will need them sooner or later, you can start with the pg_fetch_array() function and move from there:
//I presume I have a connection and a result/query that returns something suitable
$arr = pg_fetch_array($result);
echo $arr[0];
Look at other pg_fetch* functions and use one that fits the task you need to do. pg_num_fields and pg_num_rows can be useful when you want to alter the way you display the results from a query depending on their size.

Tcl Interface

The Tcl language is known for its string processing capabilities, so it might be a good choice if you want powerful parsing of query results. Another cool feature is security, because PL/Tcl (yes, we're talking about an integrated Tcl interface provided by PostgreSQL) has no means to access the inner workings of the database server. If, however, you do need more capabilities, you can look at PL/TclU, where U stands for untrusted. You need superuser access to the database to use it, and the usual extra care is recommended.
Because PL/Tcl is integrated, you don't need to install anything before you use it, but you do need to add to your code the line
CREATE EXTENSION pltcl #or pltclu
Since PL/Tcl is integrated into the Postgres system, it's more useful when it comes to functions and triggers rather than queries and transactions. Generally speaking, languages starting with PL/ are more useful for extending some capabilities instead of providing a complete database-interfacing environment. The general syntax to create your own functions takes the form
CREATE FUNCTION name (argtypes) RETURNS type AS $$
#here goes the function body
$$ LANGUAGE pltcl;
So, for instance, here's a simple add function:
CREATE FUNCTION tcl_add (integer, integer) RETURNS integer AS $$
return $1 + $2
$$ LANGUAGE pltcl;
If you use STRICT at the end of the line with the LANGUAGE instruction, you don't have to check for null input. If you don't want to use STRICT, use some if blocks and the argisnull keyword (the manual has more on this).
Using values from the database is easy. Say you have a table with computer specs and you want a function to see whether the hardware in question is obsolete and should be changed. You could use code like this:
CREATE TABLE machine (
name text,
cpuspeed integer #Mhz
memory integer #MB
hard_drive integer #GB
);
CREATE FUNCTION isObsolete (machine) RETURNS boolean AS $$
if {$1(cpuspeed) < 266 && $1(memory) < 256 && $1(hard_drive) < 2} {
return "t"
}
return "f"
$$ LANGUAGE pltcl;
As a small mnemonic, remember the string "spi" (server programming interface) for functions you can use to select, insert, and update objects in a Postgres database. spi functions, such as spi_exec, spi_prepare, spi_execp, and quote, are somewhat similar to PQ functions in libpq. spi_exec takes a SQL command and executes it, and returns the number of rows it processed. You can specify the max number of rows to be returned, and save the values of the selected columns inside Tcl variables, as follows.
spi_exec "SELECT count(*) AS cnt FROM mytable"
spi_prepare prepares and stores a query for later use. When you're ready to use it, you can do that with spi_execp. spi_prepare returns a query ID, so that spi_execp knows what to execute. Finally, quote is useful when single quotes and/or escape chars give you nothing but trouble. Here's an example:
"SELECT $myvar AS ret"
# myvar contains the string "won't"
# when expanding, the parser will give you a nice error message.
"SELECT '[ quote $val ]' AS ret" # this will do just fine

Python Interface

To use PL/Python, make sure you have the following line in the database code you want to work with:
CREATE EXTENSION plpythonu
The final "u" in the above statement stands for untrusted, as we saw with PL/Tcl. Since PostgreSQL 7.4 it's the only available variant. With it, your code can execute with the privileges of a DBA, which again means you must take extra steps to ensure everything is right. PL/Python supports Python 2 and 3, with 2 as the default, which is to say that the plpythonu extension refers to Python 2. If you need one or the other explicitly, use plpython2u or plpython3u.
Function creation in PL/Python has the exact same syntax as the Tcl example, except that you substitute pltcl with plpythonu. Since I don't want to be redundant, I won't repeat the code here. Of course, the function body is simply Python code, as you can see in this reiteration of the add function:
CREATE FUNCTION pyadd (x integer, y integer)
RETURNS integer
AS $$
return x + y
$$ LANGUAGE plpythonu;
Before you move on, I recommend you see the subchapter in the manual (42.3.1 and following) on data mapping between PostgreSQL and Python. I guarantee this will save you lots of headaches later.
Using Postgres with Python and even the function names will seem familiar if you read the Tcl section above. Here, the module is called plpy, it's imported automatically, and it offers two functions, execute and prepare:
myobj = plpy.execute("SELECT * FROM mytable", 10)
After you execute this statement, you can access myobj by indexes, as you'd do with any array-type variable. Just as in Tcl, plpy.execute can limit the number of rows it returns; I specified 10.
Some other functions you might find useful are easy to understand because they're named appropriately: plpy.debug(message), plpy.log(message), plpy.info(message), plpy.notice(message), plpy.warning(message), and plpy.error(message). Quoting functions, similar to those in the Tcl example, include quote_nullable(string) and quote_ident(string).

Perl Interface

Perl's string-processing capabilities are second to none, but it's also adept at handling complex query results. Remember to use CREATE EXTENSION plperl in your database code.
Creating a function with PL/Perl is just as simple as it would be with Tcl or Python; just replace the last line with $$ LANGUAGE plperl;. Here's a simple function that returns the bigger of two integers:
CREATE FUNCTION perlmax (integer, integer) RETURNS integer AS $$
if ($_[0] > $_[1]) { return $_[0]; }
return $_[1];
$$ LANGUAGE plperl;
If you choose to use STRICT, and I personally recommend it, the function will not get executed at all if it receives null input, and you'll have to write some conditional code to take care of that possibility:
CREATE FUNCTION perl_max (integer, integer) RETURNS integer AS $$
my ($x, $y) = @_;
if (not defined $x) {
return undef if not defined $y;
return $y;
}
return $x if not defined $y;
return $x if $x > $y;
return $y;
$$ LANGUAGE plperl;
Remember spi_exec from PL/Tcl? In PL/Perl it's called spi_exec_query and, you guessed it, it does the same thing with the same arguments, the limiter on the rows returned being optional. However, the manual warns us of shortcomings when having huge result sets, so the query I used as an example for Tcl becomes:
$myobject = spi_exec_query('SELECT * FROM mytable', 10);
#Let's get the value of row $i corresponding to mycolumn
$myrow = $myobject->{rows}[$i]->{mycolumn};
#Here's the total number of rows resulted from a query
$nrows = $myobject->{processed};
#What's the command's status?
$rp = $myobject->{status};
As you would expect, the same logging, error message, and quoting functionalities we've seen before are present here as well: elog(level, message) emits a log/warning/error message, quote_literal(string) and quote_ident(string) do what you'd expect, looks_like_number(string) returns true if the arguments seems like a string, and is_array_ref(arg) returns true if the argument can be treated as an array reference.
Had enough? I'll stop here. This should be enough to get you started and to give you an idea of how simple program interfaces to a PostgreSQL database can be.

Saturday, January 21, 2012

92 Open Source Apps That Replace Everyday Software


If you've never tried open source software, you might think that free applications couldn't possibly be as good as those you pay for. This list might change your mind.

Nearly two years ago, we put together a list of 75 Open Source Tools to Replace Apps You Use Every Day.

This year, we made that list a little longer, edited out some of the projects that are no longer actively maintained, updated our descriptions and added some newer projects.

On this list, you'll find a mix of apps for home users, schools, small businesses and enterprises. These applications are all noteworthy for their ease of use and overall quality. In fact, you might even find some that are arguably better than their commercial counterparts.

If you know of other open source projects that you think should be on the list the next time we do an update, feel free to make a suggestion in the comments section below.

Audio/Music

1. Amarok Replaces: iTunes
Like iTunes, Amarok helps you manage and play your music. It integrates with a large number of Web services, including Last.fm, Ampache, Magnatune, Echo Nest and others, so that you can discover new music, and it offers a unique dynamic playlist feature that allows you to search for and play songs by typing phrases like "tracks from around the year 1982." Operating System: Windows, Linux, OS X

2. aTunes Replaces: iTunes
Java-based aTunes offers a customizable, intuitive user interface for organizing large music collections and playing most types of audio files. Notable features include a karaoke function, an easy-to-use navigator for finding songs and artists quickly, multiple playlists, filters, Last.fm integration, podcast support and advanced statistics about songs played. Operating System: OS Independent

3. Jajuk Replaces: iTunes
Critically acclaimed Jajuk has been called "a powerful iTunes replacement" and "the most powerful jukebox out there." Designed for those with large or scattered music collections, it's extremely fast and intuitive and offers helpful functions like the digital DJ rules-based playlist, advanced rating system, smart shuffle, quick copy and more. Operating System: OS Independent

4. Songbird Replaces: iTunes
Because it also comes in an Android version, this iTunes replacement lets you sync your music collection between your desktop and your smartphone or tablet. It boasts an attractive interface, integrated artist info and the ability to purchase tracks or concert tickets right from the app. Operating System: Windows, OS X, Android

Backup

5. Amanda Replaces: CommVault Simpana, Arkeia, Barracuda Backup Service, Zetta
Amanda calls itself the "most popular open source backup and recovery software in the world" and boasts more than 500,000 users. In addition to the free open source version, it's also available in a supported enterprise version or as a hosted cloud-based service through Zmanda. Operating System: Windows, Linux, OS X.

6. Areca Backup Replaces: Carbonite, Nova Backup, Acronis True Image
Best for home users, Areca Backup offers a simple but flexible interface for backing up a single PC or a network. It offers encryption, compression, Delta backup capabilities, as of date recovery and more. Operating System: Windows, Linux

7. Clonezilla Replaces: Norton Ghost
Clonezilla's developers specifically designed it as a replacement for Norton Ghost. This bare metal backup and recovery program comes in two free versions: Clonezilla Live for backing up or cloning a single PC and Clonezilla Server for backing up networks or cloning multiple PCs at once. Operating System: Linux

Blogging

8. WordPress Replaces: TypePad
Used by more than 60 million bloggers, WordPress is one of the best known blogging applications available. You can download the software for free and host it on your own Web server or you can use the hosted service available through WordPress.com. Operating System: OS Independent

Browsers

9. Firefox Replaces: Internet Explorer
Available in both mobile and desktop versions, Firefox offers better speed, personalization and security than Microsoft's browser. Key features include the "Awesome Bar" for easier Web searches, tabbed browsing, one-touch bookmarking and more. Operating System: Windows, Linux, OS X, Android.

Compression

10. PeaZip Replaces: WinZip
While WinZip creates just one type of files, PeaZip can write to 12 different archive formats and read more than 130 different kinds of compressed files. It also supports self-extracting archives, strong encryption, two-factor authentication, secure deletion and other functions. Operating System: Windows, Linux, OS X

Content Management

11. Alfresco Replaces: Sharepoint
Used by companies like Toyota, Fox, Land's End, Marriott, Merck and many others, this multi-function solution combines document management, records management andWeb content management with a number of other enterprise collaboration features. The core software is available for free, but paid support, training, consulting and a cloud-based version are also available. Operating System: Windows, Linux, OS X

12. Drupal Replaces: OpenText,Sitecore CMS, Kentico
With more than 630,000 users and developers in its community, Drupal is a tremendously popular Web content management system. Its users include publishers like the New York Observer and Popular Science, universities like Harvard and MIT, and well-known brand names like MTV and AOL. Operating System: OS Independent

13. Joomla Replaces: OpenText,Sitecore CMS, Kentico
Approximately 2.7 percent of all websites use this very popular open source Web content management system. Version 1.7 offers easier installation, one-click version updating, automatic form data validation, batch processing and more. Operating System: OS Independent

14. XOOPS Replaces: OpenText,Sitecore CMS, Kentico
XOOPS (an acronym for "eXtensible Object Oriented Portal System) is a modular, database-driven Web content management system with a large user base and an impressive number of awards to its credit. It also offers excellent personalization capabilities, a skinnable interface, versatile group permissions and support for multiple languages. Operating System: OS Independent


Customer Relationship Management (CRM)

15. SugarCRM Replaces: SalesForce.com
Used by more than 250,000 customers, SugarCRM offers the full range of features you would expect in a top-notch CRM solution, plus better flexibility and no vendor lock-in. In addition to the free community version, it comes in several different paid versions that can be deployed on premises or in the cloud. Operating System: Windows, Linux, OS X

16. vtiger CRM Replaces: SalesForce.com
VTiger boasts that it is "one of the most dynamic and customizable CRM solutions with the lowest cost of ownership available today." It's available in open source, on demand and mobile versions. Operating System: Windows, Linux, iOS, Android

Database

17. Kexi Replaces: Microsoft Access, Filemaker
Intended as a replacement for Access and Filemaker, KDE's Kexi offers rapid database application development. Features include migration assistants for transition from other databases; support for parametrized queries, lookup columns and simple templates; and visual designers for tables, queries and forms. Operating System: Windows, Linux, OS X

18. MySQL Replaces: Microsoft SQL Server
The "world's most popular open source database," Oracle-owned MySQL offers high reliability, high scalability, security and ease of use. It's downloaded more than 65,000 times every day, and it's won numerous awards. Operating System: Windows, Linux, Unix, OS X

19. PostgreSQL Replaces: Microsoft SQL Server
Now more than 15 years old, PostgreSQL has won numerous awards for its reliable, sophisticated, standards-compliant database. Notable features include multi-version concurrency control (MVCC), point in time recovery, asynchronous replication, nested transactions (savepoints), online/hot backups, support for international character sets and much more. Operating System: Windows, Linux, Unix, OS X

Data Destruction

20. BleachBit Replaces: Easy System Cleaner, standard file delete functions
This multi-function tool not only "shreds" deleted files, it also protects your privacy in a myriad of other ways like deleting cookies, erasing browsing history, deleting logs and cleaning up temp files. By getting rid of unwanted junk, it also helps speed your system and open up extra disk space. Operating System: Windows, Linux

21. Eraser Replaces: BCWipe Enterprise, standard file delete functions
When you simply "delete" a file from your drive, it can usually be recovered with forensic tools. However, Eraser uses tools approved by the Department of Defense to eliminate all traces of a file from your drive, protecting your privacy and preventing the spread of sensitive or classified information. Operating System: Windows

Desktop Publishing

22. Scribus Replaces: InDesign, QuarkXPress, Microsoft Office Publisher Scribus offers the advanced features professional graphic designers need along with an intuitive interface that anyone can master. With it, you can create press-ready output or PDFs of documents you plan to publish online. However, you should note that Scribus cannot convert files made with proprietary formats. Operating System: Windows, Linux, OS X

E-Commerce

23. Magento Replaces: Big Commerce, Volusion, NetSuite Ecommerce
Used by more than 100,000 merchants, including Office Max, Harbor Freight Tools, K-Swiss and others, eBay-owned Magento has been called "an emerging player to watch" by Forrester. In addition to the free community editions, it also comes in supported professional and enterprise editions, as well as a hosted turnkey version known as Magento Go. Operating System: Windows, Linux, OS X

24. osCommerce Replaces: Big Commerce, Volusion, NetSuite Ecommerce
Boasting a community 256,900 members strong, the award-winning osCommerce powers thousands of shops worldwide, including 12,700 that are linked on the site. More than 6,000 add-ons are also available to help you customize the software for your specific needs. Operating System: Windows, Linux, OS X

25. PrestaShop Replaces: Big Commerce, Volusion, NetSuite Ecommerce
One of the most popular eCommerce apps in Europe, PrestaShop boasts that it is used to open 30 new online stores every day. Paid support and training are available. Operating System: Windows, Linux, OS X

26. X-Cart Replaces: Big Commerce, Volusion, NetSuite Ecommerce
This feature-rich e-commerce solution touts itself as SEO-friendly, easy to customize, fast, secure and 100% PCI-DSS compliant. It comes in supported Gold and Pro editions, and hosting is also available from X-Cart. Operating System: Windows, Linux, OS X

E-mail/Collaboration/Groupware

27. Collabtive Replaces: Basecamp This Basecamp replacement tracks projects, milestones and tasks for small groups, and it even imports data from Basecamp. You can host it yourself or purchase hosting from Collabtive. Operating System: OS Independent.

28. EGroupware Replaces: Microsoft Office Outlook and SharePoint
This self-proclaimed "leading Online Collaboration Tool" combines e-mail, shared calendar, project management, content management and other collaboration capabilities into a single package. In addition to the community version, it also comes in supported on-premise and cloud-based versions. Operating System: OS Independent

29. Evolution Replaces: Microsoft Office Outlook
Sometimes called "the Outlook of Linux," Evolution offers e-mail, calendar, to-do list and contact management for the Gnome desktop. The interface should feel very familiar for anyone who's ever used Outlook. Operating System: Linux

30. Group-Office Replaces: Microsoft Office Outlook
Like Outlook, Group-Office features shared calendar and e-mail capabilities. In addition, it includes some basic project management, file sharing and CRM features. You can deploy server version on your own hardware (with or without paid support), or you can buy the SaaS version. Operating System: OS Independent

31. phpGroupWare Replaces: Microsoft Office Outlook, Sharepoint
This project includes more than 50 separate groupware apps that you can mix and match to suit your needs. Key features include e-mail, contact management, shared calendar, content management, project management, a bug tracker and more. Operating System: Windows, Linux

32. Thunderbird Replaces: Microsoft Office Outlook
Made by Mozilla, the organization best known for the Firefox browser, Thunderbird offers e-mail with a tabbed interface and excellent customization capabilities. If you would like to add calendar functionality, you'll need to download Mozilla's Lightning as well. Operating System: Windows, Linux, OS X

33. Zimbra Replaces: Microsoft Exchange
Zimbra's open source edition provides an alternative to Microsoft Exchange, with e-mail, shared calendar, contact and document management capabilities that can be accessed from a variety of desktop clients. The company also offers a free desktop client of its own, plus paid network or appliance versions. Operating System: Linux, Unix, OS X


Enterprise Resource Planning (ERP)

34. Apache OFBiz Replaces: NetSuite , Sage ERP
Apache's software suite for small businesses includes ERP, CRM, e-commerce, supply chain management, manufacturing resources planning, enterprise asset management and POS from a single solution. Apache does not provide support directly, but the site does list a number of third-party service providers who can assist with deployment and ongoing support needs. Operating System: OS Independent

35. Open ERP Replaces: SAP, Microsoft Dynamics For mid-size and larger enterprises, Open ERP offers more than 700 accounting, ERP and other business modules that can be tailored to a specific company's needs. Both a supported version and an online hosted version are also available with a monthly subscription. Operating System: Windows, Linux

36. Openbravo Replaces: SAP, Microsoft Dynamics
Used by more than 15,000 customers, Openbravo offers Web-based ERP capabilities, with a focus on agility and ROI. Besides the free community edition, it offers basic and professional versions which can be purchased through third-party partners. Operating System: OS Independent

37. ADempiere Replaces: SAP, Microsoft Dynamics
This community-run ERP project integrates well with Drupal and other open source projects to create a complete suite of business software. A wealth of documentation is available on the site, and the group also holds regular international conferences and training events. Operating System: Windows, Linux, OS X

File Transfer

38. FileZilla Replaces: CuteFTP, FTP Commander This project includes both an FTP server for Windows and a cross-platform FTP client. Both support FTP, FTPS and SFTP file transfer with an easy-to-use tabbed interface. Operating System: Windows, Linux, OS X

39. FireFTP Replaces: CuteFTP, FTP Commander
This Firefox add-on has been downloaded more than 22 million times. It allows you to download files via FTP or SFTP right from your browser window. Operating System: Windows, Linux, OS X

40. WinSCP Replaces: CuteFTP, FTP Commander
This award-winning FTP, SFTP, and SCP client comes with two different interfaces, so that you can pick the one that suits you best. Other notable features include an integrated text editor, authentication support, batch file scripting and more. Operating System: Windows

Financial Management

41. Buddi Replaces: Quicken
While it's not as full-featured as Quicken, Buddi is a simple, understandable personal finance program designed for people with little or no financial experience. It's Java-based, so it works on nearly all operating systems, and the website has tutorials available for new users. Operating System: OS Independent

42. KMyMoney Replaces: Quicken
This personal finance software from KDE features double-entry accounting and an intuitive GUI. The project's stated goal is "to be the best free software personal finance manager, period." Operating System: Windows, Linux, OS X

43. Money Manager Ex Replaces: Quicken
Another personal finance manager with an emphasis on simplicity, Money Manager Ex aims to offer "all the basic features that 90% of users would want to see in a personal finance application." Key capabilities include budgeting, one-click reporting, charts and graphs, depreciation tracking, AES encryption support, bill reminders and more. Operating System: Windows, Linux, OS X

44. TurboCASH Replaces: QuickBooks, Sage Accounting Software
This free, open source small business accounting package invites potential users to compare its features against those of its commercial competitors. It supports multiple languages, multiple currencies, multiple companies, batch data entry, VAT/tax reports and much more. Operating System: Windows


Games

45. 0 A.D. Replaces: Microsoft Age of Empires
Now in its eighth alpha release, 0 A.D. is a real-time civilization-building strategy game that plays a lot like Age of Empires. It offers excellent graphics, six different civilizations to play, and several multiplayer modes. Operating System: Linux, Windows, OS X

46. Alien Arena Replaces: Quake, Unreal Tournament
This self-described "furious frag fest" is a first-person shooter in the style of Quake III and Unreal Tournament. Boasting "one of the most active, loyal and committed communities of any free game in existence," Alien Arena has a large user base that makes it easy to find online competitors any time of day. Operating System: Linux, Windows, OS X

47. FlightGear Replaces: Microsoft Flight Simulator X
FlightGear describes itself as "sophisticated, professional, open source." It includes realistic graphics for more than 20,000 real world airports, 3 DVDs worth of accurate world scenery, several aircraft options and the ability to model your own aircraft. Operating System: Windows, Linux, OS X, others

48. FreeCiv Replaces: Civilization
Like many games in this genre, FreeCiv challenges players to manage a civilization from the Stone Age through the Space Age. The graphics and game play are fairly similar to Civilization I and II, but not as advanced as the more recent Civilization games. Operating System: Windows, Linux, OS X

49. Frets on Fire Replaces: Guitar Hero
Very similar to Guitar Hero, Frets on Fire lets you use your keyboard or a guitar controller to play along with tracks. This project has a huge community of users who have composed songs for the game, or you can import Guitar Hero tracks or your own songs. Operating System: Windows, Linux, OS X

50. Secret Maryo Chronicles Replaces: Mario Bros. Games
If you remember the old 2D Mario Bros. games fondly, you'll probably enjoy Secret Maryo Chronicles. It offers great old-school jump and run gameplay with plenty of levels. Operating System: Windows, Linux

51. StepMania Replaces: Dance Dance Revolution
This fun rhythm game works with your keyboards or dance pads (if you have them). You'll need to download songs separately from the game, but the site offers plenty of free songs. Operating System: Windows, Linux, OS X

Gateway Security Appliances

52. Endian Firewall Community Replaces: Check Point Security Gateways, McAfee Total Protection, SonicWall Appliances, others
With the Endian Community version, you can create your own network security appliance using an older PC. It offers firewall, antivirus, spam blocking, content filtering, a VPN and other security capabilities in a single package. Pre-configured hardware appliances and commercially supported software appliances are also available at the site. Operating System: Linux

53. Untangle Replaces: Check Point Security Gateways, McAfee Total Protection, SonicWall Appliances, others
Much like Endian, Untangle offers an integrated security appliance that you can deploy on your own hardware, or you can purchase a pre-configured hardware appliance from the company. Untangle also has a network of third-party partners who offer Untangle-based products and services. Operating System: Windows, Linux

Graphics/Drawing

54. Dia Replaces: Visio
"Roughly inspired by Visio," Dia is perfect for creating org charts, network diagrams, flowcharts, and other simple diagrams. It saves XML files, or it can export to EPS, SVG, XFIG, WMF and PNG formats. Operating System: Windows, Linux/Unix

55. Gimp Replaces: Photoshop
There's no need to spend hundreds of dollars on Photoshop when Gimp offers the same features for free. It includes a full range of features, from photo re-touching capabilities for amateur photographers to advanced layers and photo manipulation tools for professional graphic designers. For the Windows version, see Gimp-win. Operating System: Windows, Linux

56. Inkscape Replaces: Illustrator, CorelDraw
Much like Illustrator and CorelDraw, Inkscape allows you to create, edit and save vector graphics. It provides a whole host of advanced features in a streamlined, intuitive interface. The website also offers lots of support and documentation, as well as a library of free clip art you can use in your creations. Operating System: Windows, Linux, OS X

Instant Messaging

57. Adium Replaces:AIM, Yahoo! Messenger, Windows Live Messenger
Very similar to Pidgin (see below), this Mac-only software allows users to connect to multiple networks at once, including AIM, MSN, Jabber, Yahoo, and others. It offers a tabbed interface, and it integrates with your Address Book. Operating System: OS X

58. aMSN Replaces:Windows Live Messenger
Designed to replace MSN Messenger (now known as Windows Live Messenger), aMSN is a skinnable client that works with Microsoft's IM network only. Noteworthy features include offline messaging, voice clips, custom emoticons, group support, multi-language support, webcam support, tabbed windows, display pictures and more. Operating System: Windows, Linux, OS X

59. Pidgin Replaces:AIM, Yahoo! Messenger, Windows Live Messenger
This very popular open source IM clients connects with up to 16 different chat networks simultaneously. It supports file transfers, away messages, buddy icons, custom emoticons and typing notifications, and it has a large library of plug-ins that extend its capabilities further. Operating System: Windows, Linux/Unix

Office Productivity

60. AbiWord Replaces: Microsoft Word
Similar to older versions of Word, AbiWord reads and writes most word processing document formats, including OpenOffice and Word formats. The latest version adds a lot of collaboration capabilities, and it integrates tightly with the free AbiCollab.net service which allows users to store and edit documents in the cloud. Operating System: Windows, Linux, OS X, others

61. FreeMind Replaces: MindJet
This open source mind mapper makes it easy to display the links between ideas. It's great for making outlines, brainstorming, making notes and more. Operating System: OS Independent

62. Gnumeric Replaces: Microsoft Excel
Gnumeric describes itself as "free, fast and accurate," and an outside reviewer has praised it as more accurate than its commercial competitors. It opens files from most other popular spreadsheet programs (including Excel and Lotus), and it offers 583 different functions, including 194 you can only find in Gnumeric. Operating System: Windows, Linux

63. KOffice Replaces: Microsoft Office
KDE's office productivity suite includes the KWord word processor, KCells spreadsheet, Showcase presentations, Kivio diagrams and flowcharts, and the Artwork vector drawing program. The interfaces are intuitive but significantly different than Microsoft Office, so they take a little getting used to. Operating System: Windows, Linux

64. LibreOffice Replaces: Microsoft Office
When Oracle took over OpenOffice.org (see below), a group started this fork to continue community development. It offers all the same great features and capabilities of OpenOffice.org, plus a few improvements all its own. Operating System: Windows, Linux, OS X

65. NeoOffice Replaces: Microsoft Office
Also very similar to OpenOffice.org (see below), NeoOffice offers an interface and features tailored for Mac users. The latest update supports Mac's versions, full-screen mode and resume features. Operating System: OS X

66. OpenOffice.org Replaces: Microsoft Office
Now an Apache project, OpenOffice.org includes Microsoft-compatible word processing, spreadsheets, presentations, graphics and database software. At twenty years old, it's a mature project with all of the advanced capabilities and stability that home or business users need. Operating System: Windows, Linux, OS X, others


Operating System

67. Linux Mint Replaces: Windows
The fourth most popular home operating system, Linux Mint offers great ease of use for those new to Linux. It's based on Debian and Ubuntu and comes with a library of 30,000 free software applications.

68. Red Hat Replaces: Windows
Probably the best known flavor of Linux, Red Hat comes in desktop and server versions that are suitable for enterprise users. Red Hat's software requires a paid support contract, or you can download the community version for free from Fedora.

69. SUSE Replaces: Windows
Like Red Hat, SUSE is designed for enterprise users and requires a support contract. However, also like Red Hat, a free community version is available through openSUSE.

70. Ubuntu Replaces: Windows
Suitable both for enterprise and home users, this extremely popular Linux distributions comes in desktop, server and cloud versions and now a TV version. It boasts 20 million users and offers fast performance, a stylish interface, ease of use and good security.

Password Manager

71. KeePass Replaces: RoboForm, LastPass
With KeePass, you no longer have to remember lots of different passwords. Instead, you'll only need to keep track of one master password, while KeePass stores your very strong passwords in an encrypted database. Operating System: Windows

PDF Tools

72. PDFCreator Replaces: Adobe Acrobat
Adobe's Acrobat software is expensive, but you don't actually need that software to create PDFs. PDFCreator can write PDF files from any application capable of printing, and it includes features like encryption, digital signatures and more. Operating System: Windows

73. Sumatra PDF Replaces: Adobe Reader
The free Adobe software isn't your only option for reading PDF files. The Sumatra PDF reader offers similar functionality with a lighter footprint for faster performance. Operating System: Windows

POS

74. Floreant POS Replaces: QuickBooks Point of Sale, AccuPOS
For restaurants only, this POS system works with touch screens and handles operations like split checks, kitchen print, drawer pull, tax, discounts and more. Its list of users includes the Denny's chain in New York. Operating System: OS Independent

75. Lemon POS Replaces: QuickBooks Point of Sale, AccuPOS
Best for small or very small businesses, this Linux-based point of sale system offers features like role-based permissions, support for multiple terminals, sales suspension, custom orders and more. It stores all inventory data in a MySQL database and boasts excellent security. Operating System: Linux

Project Management

76. OpenProj Replaces: Microsoft Project
Very similar to Microsoft Project, this popular app lets you assign resources, schedule tasks and handle the other aspects of managing an ongoing project. It also imports and exports Microsoft Project files. However, note that the export to PDF function in the software is shareware, not open source. Operating System: Windows, Linux, Unix, OS X.

77. GanttProject Replaces: Microsoft Project
Similar to OpenProj, GanttProject can also import and export data from Microsoft Project. Other key capabilities include Gantt charts, PERT charts and collaboration features. Operating System: Windows, Linux, OS X.


Security

78. ClamAV Replaces: Avast! Linux Edition, VirusScan Enterprise for Linux
The "de facto standard for mail gateway scanning," ClamAV is a set of command line tools for protecting networks from malware. The same software is also available for the Windows desktop through a paid program called Immunet that can be downloaded from the same site. Operating System: Linux

79. ClamWin Replaces: Kaspersky Anti-Virus, McAfee AntiVirus Plus
For an open source version of ClamAV for Windows, try ClamWin. It boasts more than 600,000 users and integrates with Windows Explorer and Outlook. Operating System: Windows

School Management and E-Learning

80. Claroline Replaces: Blackboard, eCollege/Pearson Learning Studio,Articulate, TrainCaster LMS
Used by educational institutions and enterprises in 93 countries, Claroline includes tools for writing online course descriptions, delivering online course content, creating exercises, maintaining wikis, publishing announcements and more. It's won numerous awards, and it's available in 35 different languages. Operating System: Windows, Linux, OS X

81. Moodle Replaces: Blackboard, eCollege/Pearson Learning Studio,Articulate, TrainCaster LMS
More than 73,000 sites have registered their versions of Moodle, and they offer nearly 6 million online classes that reach more than 58 million students. It's a full-featured e-learning platform that aims to give educators "the best tools to manage and promote learning." Operating System: Windows, Linux, OS X

82. openSIS Replaces: PowerSchool
School budgets are getting tight, and openSIS saves most schools about 75 percent compared to commercial alternatives. It's reliable, scalable, and includes most of the features you would find in software like PowerSchool. In addition to the free community version that's suitable for smaller schools, it also comes in commercially supported school and district editions. Operating System: Windows

83. SchoolTool Replaces: PowerSchool
Designed for schools in the developing world, this student information system offers a Web-based system for tracking attendance, grades, demographics and more. It runs on a Ubuntu Linux server, and can also be deployed in the cloud. Operating System: Linux

Small Business Server

84. ClearOS Replaces: Microsoft Small Business Server
This multi-function server software includes anti-malware, anti-spam, mail server, content filter, stateful firewall, VPN, WAN, file and print sharing, groupware, Web filter and other capabilities. In addition, paid support, pre-configured hardware and other services are available from ClearSDN. Operating System: Linux

85.Zentyal Replaces: Microsoft Small Business Server
Like ClearOS, Zentyal can serve as a gateway, infrastructure manager, unified threat manager, office server and/or unified communication server. Subscriptions, support, training, add-ons and other services are available for a fee. Operating System: Linux

Video Tools

86. Cinelerra Replaces: Adobe Premiere
Describing itself as "the same kind of editing suite that the big boys use," Cinelerra encourages users to "unleash the 50,000 watt flamethrower of content creation in your UNIX box." Note that a community fork of the project can be found atCinelerra.org. Operating System: Linux

87. OpenShot Video Editor Replaces: Adobe Premiere
This video editor is very popular with Linux users and has been frequently featured in various Linux-related magazines. Key features include compositing, overlays, 3D animated titles, unlimited tracks and layers, scrolling credits, rotoscoping support, digital zoom and much more. Operating System: Linux

88. VLC Media Player Replaces: Windows Media Player
This cross-platform player supports most multimedia files as well as DVD, Blu-Ray, Audio CD, VCD, and various streaming protocols. It's simple, powerful, fast and very popular with open source aficionados. Operating System: Windows, Linux, OS X, others

89. XBMC Media Center Replaces: Windows Media Player
Designed for home theater PCs (HTPCs), this award-wining multimedia player also plays most types of files. It also supports most remote controls, and it automatically creates a personal library of your audio and video files. Operating System: Windows, Linux, OS X.

Web Filtering

90. DansGuardian Replaces: McAfee Family Protection NetNanny
Award-winning DansGuardian uses phrase matching, PICS filtering, URL filtering to block objectionable content on your network. Note that this is not software for protecting an individual PC—to use it, you need a server. Operating System: Linux, OS X

Web Site Creation

91. BlueGriffon Replaces: Adobe Dreamweaver, Microsoft Expression Web
One of the younger projects on our list, BlueGriffon offers a WYSIWYG Web editor powered by the same Gecko engine that runs Firefox. It offers an intuitive interface for building sites that conform to the latest Web standards. Operating System: Windows, Linux, OS X

92. KompoZer Replaces: Adobe Dreamweaver, Microsoft Expression Web
With an interface very similar to what you'll find on Dreamweaver, KompoZer makes it easy for anyone to create Web pages, even if you don't have a lot of technical knowledge. Key features include a WYSIWYG editor, integrated file management via FTP, HTML mode, tabbed editing, forms support and more. Operating System: Windows, Linux, OS X