The Wrong Decision by the Wrong Person
There is one thing about my industry that I still find truly amazing (and not in a good way). This is despite the fact that it has happened to me so many times that you think I'd be used to it! I'm talking about non-technical people making technical decisions.
For some reason, it's a very common practice for those people who don't have expertise in a certain field to make decisions for people working in that field. The best example I can think of off the top of my head is the answer to the question: "Which technology should we use?"
Let me take a step back in time for a moment.
It’s OK to Fail
Yes. You read that right. It's OK to fail. Yes, I am talking to you. You... that guy who is part of every team. The one who seems to feel the need to be right about everything. The one who thinks that everything new has already been done 15 years prior. The one who believes that every project they have participated in has been a profound success, and that a project-level failure (which includes missing deadlines or blowing the budget) is something they have never experienced. Failure is not only OK, it's something that you must experience somewhere along the way so you know when you've succeeded.
The Future is Erlang
For quite a while I've been using my spare cycles to chew over a problem. This problem is not one that hasn't been solved before, but one that I feel can be solved in a much better way. From the bit of research that I've done, I can see at least three areas which can be improved on dramatically. So I've decided, after a long period of deliberation, to go ahead and build my solution and release it to the world as a service!
I know, this kind of thing happens thousands of times a day. Some arbitrary geek decided to build the next killer app and expects to make a crapload of cash out of it. While that would be nice, the ultimate goal isn't the cash. The goal for me is to build something that gets used, and for me to begin to master an area of technology that I've had a quiet passion for for a long period of time now.
My plan is simple. While learning the technologies that I will be using I'll be building another application and blogging about it so that all of you can learn with me. Meanwhile, I shall use my learnings to build this other application at the same time.
The final result should be a series of posts which help other people learn the technology stack, give better coverage and visibility to languages and technologies that a lot of the geek world doesn't know about (and really should!), and for me to carve myself a bit of a niche here on the East coast of Ozland. I am hoping to be able to consult my services out to other businesses as a result.
For those that are interested in following along, here is the full tech stack and toolset that I'll be using:
- Erlang - A fantastic cross-platform functional programming language that has some amazing features.
- Webmachine - A HTTP toolkit which sits on top of Mochiweb that makes it easy to build well-behaved HTTP applications.
- Nitrogen - An Erlang-based framework that makes it easy to build websites.
- Riak or CouchDB - Both of these amazing pieces of tech are potential candidates for the back-end storage. I'm not yet sure which one I'll go with.
- jQuery - A great JavaScript library for the front-end.
- VIM - My favourite text editor
- Xubuntu - Ubuntu Karmic Koala with XFCE as the window manager.
- Mercurial - My favourite version control system.
- Trac - A project tracking tool.
- VirtualBox - My choice for virtualisation. I tend to run Windows 7 as my primary OS, so most of my dev will be in a VM. When I get my desktop machine back up and running (with all three monitors!) it'll most likely multiboot Win 7 and Xubuntu.
- Google Wave - I'll be using this for communications with some really switched on people in the Erlang community who have kindly offered to help me with questions and whatnot specific to some of the areas of tech I've mentioned above.
During the course of my blogging/learning I'll be focussing on Webmachine, Riak/CouchDB, Erlang and Nitrogen. All the other tools will probably get mentioned along the way, but the primary goal is to focus on these things.
I'm really excited! I'm currently in the process of documenting my goals and the design for the main application. Once that's done, I'll get started with the fun stuff. I've got a lot to do and it should be a fun ride. I hope you enjoy following along!
Now Running Nginx
For the last couple of years, the server which has powered this site (and a few other sites) has been running the free version of Litespeed web server. After feeling the resource burden of Apache, Litespeed was a breath of fresh air! The fact that the "full" version wasn't free didn't bother me, I was happy to stick with the standard edition as it seemed more than capable of handling the meagre traffic that this site generates.
The Value of a Technical Community
This post was inspired by an experience I had recently in an IRC channel. To protect the innocent, I'll refrain from naming and shaming the channel and individual as those details aren't important.
Communities are arguably the life blood of technology. Without a good community the likelihood of the technology catching on is drastically reduced. Those communities which lack individuals that are happy to put time and effort in to help get others up to speed tend to stagnate. Any community which involves members that are abrasive, rude and downright offensive is destined to suffer long term.
Server Refresh
Over the weekend I revamped the webserver. Over the last month or two I've been bummed about the amount of overhead in maintaining a Gentoo install as my webserver. Now before any of you Gentoo zealots have a whinge, let me explain.
Yes, Portage is cool. It's quick, it builds stuff from source, etc. While that power is great, it's a pain in the butt at the same time. Especially when you're running on a VPS. I am tired of the underlying bits and pieces changing constantly and me having to muck around with masking and unmasking packages just to get things to update and play nicely together.
I made the decision to switch to Debian and I am happy I did it. I don't think the time I'll have to spend maintaining the server will be as high as before. This is all about productivity and as far as I'm concerned this is going to reduce my workload. Given that my software installs don't change once I've got the server up and running, I shouldn't have to spend that amount of time keeping things running.
As always, there's a risk of teething problems when you do a full reinstall. So if anyone out there is having issues then please let me know. Cheers!
Assembly Signing Article Translated into Italian
You may remember a little while ago I wrote a post on signing assemblies that you don't have the source code to. It got a bit of attention and was reproduced in full on dzone's dotnet site. That was pretty exciting.
This, however, I find more exciting. This article has now been translated into Italian! This is the first time an article of mine has been reproduced in another language, which I think is just fantastic.
My colleague, Cosimo has been hard at work making the Italian version for the last couple of weeks. From what I can see it looks like he's done a marvellous job.
So for those of you who are looking for the Italian version of this article, you can find it over here on Cosimo's blog: .NET-FU : come trasformare in SIGNED un assembly UNSIGNED (senza ricorrere al DELAY SIGNING). Thanks very much Cosimo!
If there's anyone else out there who is interested in translating articles into your home language then please feel free to contact me.
Enjoy!
The Sales Pipeline
Here's a brief list of what's coming down the pipe on this blog in the coming weeks. I thought I'd post this info as I've had a few people ask what's up next and I'm tired of telling the same story over and over
So here it is!
OpenDNS is Wicked
Over the last couple of weeks the DNS timeouts and lags I've been experiencing at home have made the web experience a little dire. My ISP is actually pretty darned good, but for some reason they seem to have glitches with their DNS servers every now and then.
