Perfect little server – Introduction (part 1)

Over the last 3 or so years I’ve been running a Windows Home Server and everything was well. Then, a few months ago, a very high pitch noise started coming out from one of the 7 hard drives in it. The problem was, there wasn’t an easy way of telling which one was making the sound.
To stay on the safe side I decided to run to a store and grabbed me the cheapest 2 bay encolosure that was in stock. Turns out I got very lucky.
I ended up with Dlink DNS 323 which after a brief search online yielded complete how-to hack wiki. In just 10 minutes following instructions I converted a pretty dumb enclosure to a full linux box.
Once you SSH into 323, a world of possibilities opens up. First order of business was to install optware and from there, most of the common software is available in precompiled, ready to go form. I’m not a *nix expert by any means, but with help of the wiki and occasional googling 323 presented almost no trouble what so ever.
Here’s what I really like about 323:
- Efficient – 15-25 watt power consumption (reference) makes running 24/7 essentially guilt free.
- Very quite – can’t even hear the drives 5 feet away
- Gigabit ethernet
- Runs linux – fuck yeah!
- Super easy to hack
In the next post I’ll talk about what I have installed on 323 to transform it from an enclosure to a server.
Skinning Wordpress is easy
![]()
This was my first more or less serious attempt at creating a new theme for Wordpress and it turned out to be a pretty trivial task, or at least as far as Wordpress itself is concerned. I love the fact that it doesn’t get in the way and there’s very little PHP required to create a brand new theme. I took out most of the typical blog stuff like linkrolls, calendar, pages, etc and just left what it is – just a blog.
For this design I tried to use some golden ratio here and there and it seems to do the trick. I found an awesome freeware tool by Markus Slewz which helped tremendously.
Overall this took about a day and a half, from design to launch, so a weekend well spent. And yes, I do love damask.
Posting reasonable opinions under unreasonable titles
Adobe Flex not ready for Enterprise applications – yup folks, that’s right. Apparently because Flex can’t render HTML and has spotty context menu support, it’s not ready.
These days when recruiters and employers actually do bother to check on private blogs, these kind of posts could turn out to be career limiting.
The actual issues mentioned are valid, but the conclusion drawn just sounds like whining in my opinion. It’s a good practice to evaluate potential platforms and check if you are able to implement core requirements on said platforms. It isn’t like Flex’s inability to render HTML was a big secret and if your product calls for that, you know what – don’t use Flex. It’s that simple.
YUI Compressor – JavaScript minification
In my current Silverlight project the amount of JavaScript is growing exponentially. Everything that I took for granted in Flash which took years to build and “perfect” now needed to be converted to JavaScript.
For the first beta release which is looming next week, the amount is about 130k. “Compressing” it with JSMin yields a file of 75kb in size. Yesterday I tried YUI Compressor which managed to squeeze it down to 65kb.
I’m very happy I no longer have to look at JSMin code which induces gag reflex and makes my eyes bleed. The amount of effort and self restraint it took not to rewrite it can not be described in words.
RIO – wrong number of arguments on rmtree, mkpath etc
It’s nice to do some Ruby once in a while. Lately I’ve been involved in a Silverlight project and haven’t touched Ruby in 2 months (hence the lack of activity on my Ruby blog). However, I’m making a build script in Ruby.
I have run into a weird exception when using my favorite IO gem RIO (btw, Noobkit page got beaten with the ugly stick and parser needs a spanking).
Exception occur when calling rio(...).rmtree or rio(...).mkpath or rio(...).mkdir. It reads as follows: “wrong number of arguments (0 for 1)”. I know for a fact that these methods don’t take any arguments, but just for kicks, passing a single random argument results in an ironic “wrong number of arguments (1 for 0)”.
Basically the problem came down to the fact that RIO doesn’t like Rake. I can live without Rake, but not without RIO.