May32009

Txt Messenger

What is a programmer to do when he’s bored? Why create a new service of course! So without further ado, I present my own free txt messenger:

I’ve only been able to test it on a few carriers, so if one of the listed carriers doesn’t work let me know.

Feb272009

Isaac Asimov Interview

I saw this recently on YouTube and thought I’d post it here for others to see. It’s definitely worth watching all 3 parts.

Feb252009

A Few Interesting Developer Technologies

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.

Feb242009

5 Easy Ways to Understand the Economic Crisis

1. Unprecedented Housing Boom/ Bust

House Price Chart

For a complete analysis on the graph, check out this post and the associated comments.

2. High Unemployment Rate

Unemployment Rate

3. Comparison of Bear Markets

4 Bear Markets Compared

4. Deflation Fear

Deflation Fear

5. Deepening Recessions Worldwide

The following chart highlights the GDP growth rates of various countries or areas.

Deepening Recessions

Feb232009

How to be a Libertarian Developer

6 Easy ways to become a better developer by taking lessons from libertarian principles:

1. KISS - Keep it simple, stupid

We like our programs like our government: small, compact and focused on doing a few things well. Don’t go crazy with features as they’ll only delay launching, introduce more bugs and cause your software to be less user-friendly.

2. Whatever Works is Best

Don’t get lost in religious battles, stay pragmatic and focused on releasing your product. Discussions about vim and Emacs have their place (Slashdot), but leave them out of your project. Use whatever tool does the job.

3. Release and Iterate

Chances are the first version of your software won’t be perfect no matter how much time you invest in it. Better to get something out the door soon and start getting feedback from real users.

4. The Time is Now

It’s never the wrong time to get your product or ideas out in the real world. The success won’t hinge on the official launch of the product, but rather on your continuous effort in promoting your software.

5. Use a minimalist framework

As much as I like Drupal as a CMS, I would be hard-pressed to use it for most custom web applications I build because it’s just so bloated to begin with. Instead, pick a modern MVC framework (I use Pylons) and stick to something lean and fast when starting from scratch. Enough pork will get added as you go along (it always happens), so be minimalistic from the start.

6. Learn Python

It’s fast, it’s easy to use and it’s got a ton of high-quality modules that are but one easy_install away. Too many positive things to list about Python, so try it out. And if you don’t like it, chances are you’re a communist (or Perl dev).

Feb232009

The Myth of Convergence

Everyone seems hell bound on creating the one device to rule them all. The device that lets you take perfect pictures, stay connected with friends around the world, instantly share files, surf the web, play music, stream videos, order a coffee and do your laundry all from one simple, intuitive interface. Now I see how as a tech person the idea of such a device sounds pretty awesome. Instead of carrying around 20 different single-purpose gadgets, you get one piece of hardware that makes your life a lot easier. And as a VC, you like the idea of having an end-all solution to every problem a customer could possibly have; i.e. a device for everyone with tremendous value. Unfortunately, the average user only sees one thing: complexity.

There’s a reason the PDA never took off in the mainstream. It all sounds good in theory, but when you start using the device you realize that there are too many features. I don’t want to read a manual or go through 10 different menus just to find the feature I’m looking for. The PDA tried to do too many things and ended up failing at most of them. A similar comparison can be made to the iPod: why do most people own a dedicated music player, when modern cell phones are able to play MP3s? Because it’s easier to use (and you look cooler)! Now in theory it would be great if all the features could be presented in a user-friendly way, but that’s just not realistic. It’s not going to happen. Once too many features are added to a product, it gets bloated, complicated and immediately loses mainstream appeal.

I found out as much when doing a small questionnaire for one of my previous projects (link). We asked people what they would chose in a head-to-head comparison between a smart phone and a dedicated device (ex. MP3 player vs smart phone). Users with self-described low-technical proficiency strongly favored the specialized device, whereas advanced users were more likely to chose the smart phone. In short, while the theoretical appeal of a smart phone is there, people would rather have a user-friendly, single-use gadget.

So you astutely ask “Well what about the iPhone? That’s been a huge success!” Firstly, we need to separate fact from fiction: according to last-year’s data of M:Metrics the iPhone has less than 1% of the US mobile market share (link). In addition, while it seems that iPhone applications are all the rage, actual usage is drastically different. Most people don’t use an application after the first download, which greatly questions whether mobile advertising will take off as much as people hope it will (link). This highlights the argument that non-essential features of the phone, such as applications, are gimmicks. The iPhone has without a doubt made its mark in public perception of what a phone should be, but it has less to do with the smart phone elements and more with the marketing and design of the device. People want a cool phone, not an all-in-one device.

There’s always going to be a consumer for all-in-one devices, but I doubt it will be the mainstream, average joe (the plumber). Because with increased capability comes increased complexity. So next time you’re thinking about developing a product or service, throw out the idea of wanting to do tackle a bunch of problems at once. Focus on one aspect and do it well.

Feb132009

How to Bring Toy Blocks into the 21st Century

What happens when you combine a toy block with a computer? Turns out you get something awesome called Siftables:

David Merrill has developed these amazing little blocks that let you create music, do math, teach kids and the potential applications seem endless. Can’t wait to see what a community of developers could do with these blocks. Hopefully he’ll either open-source the hardware design or provide an option to purchase a development kit. Either way, I can’t wait to get my hands on them and hope they’ll be available soon.

Also make sure to checkout his website which shows more videos demonstrating the possibilities of Siftables.

Feb62009

Quick Fix: Google Chrome and Firefox Java Problem

For whatever reason my Firefox 3 installation simply wouldn’t properly show Java applets. Tried reinstalling Java, but that didn’t help at all. Fortunately, Chrome gave a more useful error message than Firefox (which gave nothing…): “Couldn’t find MSVCR71.DLL”.

Aha! That file is part of Microsoft’s C runtime, and it should be located in “C:\Windows\system32″. Turns out that file was available throughout my hard disk, but not at that location. So just copy any MSVCR71.DLL file (I took mine from the actual Java installation on the disk) into the “C:\Windows\system32″ and hopefully that will fix both your Firefox and Chrome problems with Java!

Feb22009

Is Fingerprint Authentication a Thing of the Past?

Turns out that veins within fingers are as unique as their fingerprints. Sony is capitalizing on that principle with a new product which was announced today, dubbed Mofiria, that looks at a user’s veins to confirm their identity. The “vein-print” is found by shining infrared light at the veins and then capturing the scattered light. At first glance, it should be harder to fool than traditional fingerprint scanners which have had serious flaws in the past (see this MythBusters clip). Sony hopes that the improved security, small form factor and ease of use (they say it doesn’t matter how you put your finger on the device) will entice manufacturers to integrate this device into their products.

Full Sony Press Release

Jan232009

Where did the money go?

These are a few interesting links that one of my friends shared with me, and I thought I’d post them here as well. They highlight current bank problems, and past issues that have caused the housing bubble.

Massive loss in market capitalization

Brief overview of the sub prime mortgage situationĀ 

Real estate brokers also at fault

Full article explaining the data and how it indicates real estate brokers had a share in causing the mess.