Technologies I'm using and following
The pace of innovation in the software industry, driven by the breakneck pace of the mobile and social networking industries, has picked up again, which has renewed my love of technology.
Many bits and pieces are becoming more stable and cohesive. The web is maturing as a platform, while mobile continues in a huge growth phase.
Here are some interesting technologies I've been using:
JavaScript
This year I finally sat down and increased my book learning of JavaScript, and I'm glad I did. Yes it has its limitations (no integer type is strange), but I'm finding that JavaScript is powerful when combined with modern tools like jQuery and Flot (more on Flot in a minute).
Sure JavaScript has a lot of warts, and I'm not totally sold on some of its features (prototypal inheritance for one), but I also think we could have done a lot worse. I think we owe Brendan Eich credit for giving us a language which has taken us to this point.
HTML 5/Canvas
A couple years ago, prior to the release of the iPad, when faced with the decision of using the ubiquitous flash versus emerging HTML 5 and canvas, we decided on HTML 5. That has proven to be a good decision.
Native applications are still the norm on hand held devices, but I'm becoming convinced that HTML 5 and JavaScript will be UI platform of the future, even if the resulting applications don't look like typical browser based apps.
Flot
This is the library we use to implement our charting. Flot is an impressive piece of open source technology. It easily rivals commercial charting engines of the past.
Twitter Bootstrap
If you aren't a designer, like me, implementing even the most basic forms in CSS that don't look hideous is a time consuming process. Bootstrap is exactly what us non-designer types need to launch simple new web applications, especially admin-like applications which are used internally.
The other real benefit, in my opinion, is having a standard language for web designers, so they don't have to re-invent the wheel on every project. I hope Bootstrap takes off just for that reason. The amount of time that has been wasted re-creating simple multi-column HTML layouts is ridiculous.
Android
I remember 15 years ago us geeks joked both about running Linux and Java on phones. It seemed like a pipe dream, and then a few months ago I realized, I'm carrying a Linux box with a JavaVM in my pocket!
When I bought my first Android phone last year, I wasn't expecting much from it other than a cheap replacement of my failed iPhone 3GS. Turns out I like Android much more than I expected.
I'm currently using a Galaxy Note with a 5.3 inch screen. I've gotten many jeers about the size of its screen, but overall I'm happy with the device.
Hackintosh
Sorry Steve, I admit it, I built a Hackintosh.
Why? Thunderbolt. Don't get me wrong, I'm sure Thunderbolt is a great technology which will make everyone 3x more productive, but the only way I can hook up my 3 non-Thunderbolt monitors to a Mac is to get a Mac Pro, and they haven't been updated in years, and prices start at a ridiculous $2500. When I discovered how far the state of the art in Hackintoshes has progressed since OS X was released on x86's, I couldn't resist.
I will admit it took most of a weekend to install Lion, but having done it once I could probably do it again in a couple hours.
So is it worth the hassle over buying a real Mac? That's a difficult question. For me it probably was. Not only was the process a way to distract myself for awhile, I now have one killer system. It is fast, cheap, and stable.
But Hackintoshes aren't for everyone. I've done my share of PC hardware and OS hacking in my day, but this was still a challenging project where a bazillion things could have gone wrong, and at one point I was close to giving up and installing Ubuntu, but now everything is working, I'm pretty satisfied with the final result.
Google App Engine
Much has changed since App Engine was first released. It seems these days that a new no-SQL database is released every week, but Google the first to bring a production proven, no-SQL engine to the masses with App Engine. When it was first released, I couldn't believe that Google was making the crown jewels available to mere mortals like me.
Oddly, App Engine hasn't taken off nearly as much as I thought it would. There are limitations in the platform, but when combined with mobile apps, it is still a great solution for server-less web services.
These days, my personal projects use App Engine as a back end (including this blog), although I haven't yet developed a commercial app using the technology.
Git
I store all my personal work in git. Here's my github id.
Facebook Open Compute Project
Google is typically considered a search engine first and an application vendor second, but I believe Google's most powerful weapon is their data centers and distributed computing infrastructure.
Google pioneered using a large number of commodity servers running Linux and custom distributed software (namely googleFS, Big Table, and Map / Reduce) in a day when Sun, Oracle, and EMC storage was still the norm for running large scale web sites.
But as Paul Graham recently pointed out there are "cracks in their fortress" and after watching this video which shows Facebook's new datacenter in Prinevillle, OR I'm starting to agree. Not only have new open source alternatives to Google's stack become available, Facebook is making the specs of their data center available as well. Having spent (maybe wasted is more like it) some racking and wiring servers, I have to admit Facebook's platform looks genius.
Also, while the idea of "container based" data centers seemed liked a good idea, [Google's container based data centers | http://www.youtube.com/watch?v=zRwPSFpLX8I] seems archaic compared to Facebook's. Maybe Google isn't as invincible as it was once seemed. I will give Zuckerberg and Facebook credit for scaling Facebook with very little drama compared to their peers like Twitter.