I’ve worked with a variety of technologies by now, and I wanted to share a few of those that stuck out so far. Most of these technologies are very developer-oriented, so if you’re not a coder this might not be too useful. And I’m not advocating that you’re an expert in all of these, but it’s worth knowing a bit about them to make better choices for your future projects. Anyways, here it goes:
1. D-Bus
Website: http://www.freedesktop.org/wiki/Software/dbus
Need a way for your program to communicate with another program? Or want to let outside software call functions within your program? D-Bus is a server/ client setup that allows for inter-process communication (IPC).
I used this in my IM Feeds project, where I used Pidgin to handle all IM-related tasks and focused my time on writing the actual IM Feeds logic. This let me leverage Pidgin’s IM functionality w/out having to waste time on protocol details. It was also nice because Pidgin already supported a ton of networks, which made my life even easier. I simply connected to Pidgin through D-Bus using Python (import dbus) and started sending/ receiving IM’s.
2. Adobe Air
Website: http://www.adobe.com/products/air/
It wasn’t until I installed the Aptana Eclipse plugin for Air that things became clear and easy. If you ever plan on developing a desktop application that’s easy to deploy, easy to design and easy to update, then you have to give Adobe Air a chance. It lets you create desktop applications like you would a web application, at least if you’re using HTML and AJAX to build the software. I’ve always found it cumbersome (or expensive) to create pretty interfaces using the standard C# .NET approach, so allowing me to use standard web technologies to create rich desktop interfaces makes a huge difference.
3. Curl
Website: http://curl.haxx.se/
Need a write a program that downloads something as fast as possible, optimally maxing out the network io? Then libcurl is the way to go (pyCurl for Python people). It also makes complying with the ‘If-Modified’ header, and other options to reduce bandwidth consumption, as easy as adding one line of code.
For IM Feeds I had to write a program to download RSS/ Atom feeds efficiently, and the standard python urllib wasn’t up to the task. Since switching to curl the feed downloading speed has increased more than 10x and it’s no longer a bottleneck.
4. Drupal
Website: http://www.drupal.org/
At this point it can be considered the premier PHP CMS, with an extensive list of plugins, themes and developer resources. Getting a new website up and running has never been easier, and using add-ons such as CCK and Views you can customize it fairly easily from the administrative interface. Personally, I wouldn’t use it for specialized web applications, but it’s flexible API certainly would allow for such a thing. I see it best used as a CMS and when you want to quickly setup a website with a forum, blog, pages etc..
5. MetaSploit
Website: http://www.metasploit.com/
Want to learn more about security, do your own penetration testing or write code to exploit a vulnerability? Then MetaSploit is a good start. The website actually has a very good description, so I’ll just use that:
The Metasploit Framework is a development platform for creating security tools and exploits. The framework is used by network security professionals to perform penetration tests, system administrators to verify patch installations, product vendors to perform regression testing, and security researchers world-wide.
Got any other technologies that you would recommend to other developers? Then let me know in the comments.
Posted in Uncategorized
Tags: