Category: Mikael Lofjärd

Form, function and flexibility. I find that these three concepts are not always easy to rank. Sometimes I feel that form trumps functionality, sometimes I don't. When it comes to window managers however, function is king! I have to admit, I've been totally ignorant about tiling window managers up until now. I've always wanted my desktop to look nice and I've sometimes gone to great lengths to customize my desktop to be pixel perfect the way I want it. But lately I've come to a realization; mouse pointers suck! Well most mouse pointers do anyway. I'm a trackball user so I think all regular mice sucks anyway, but now I've started hating trackpads. I've been planning on picking up a new laptop soon (well as soon as the X230 gets released) but I want to be able to use it on the couch witho...
Sometimes you need more than your operating system gives you. That's when a text editor comes in handy. ` Copying large files to my NAS becomes so much more fun when I actually KNOW that it's doing what it should. Progress bars FTW! UPDATE: Now it's actually working for more than one case. :)...
A while back I read a blog post somewhere about how the LESS parser/compiler had been remade in Javascript. "Well awesome", I thought to myself as I had been wanting some more flexibility in CSS but had been to stubborn/proud to install the SASS compiler since it's written in Ruby. Needles to say, I wanted to incorporate it in my blog as soon as possible but I've not had the time to actually do it until now. LESS (like SASS) is a CSS derived language that adds a whole lot of long needed features to CSS to ease maintenance of large style sheets. It compiles into regular CSS markup either in realtime (through their nifty Javascript implementation in the browser) or, as in my case, as a bootstrapping task when I start my blog. For now, it's tacked on in a kind of ugly way in my BundleCon...
Today at work was "do-anything-but-work-day". It's a bit like Googles 20%, but instead of 20% it's more like .8% or something like that. It's was our first time and not that many people had a clear idea about what to do at first. I on the other hand had a mission all planned out. When I put the blog on the new server back in January, I noticed a small decrease in performance. After a few tests I've realized that the CPU is the culprit. The Atom D525, while dual-core, at 1.6 GHz has roughly half the computational power of the Pentium M at 1.5 GHz, which was what my old server had under the hood. Node.js can make use to multi-core processors by starting more instances of itself, which made concurrent connections on the new server almost the same speed as on the old server. However, co...
Ignoring a short play date with Red Hat around '95, my first Linux love was Slackware. Slackware was fast and awesome but it somewhat lacked in the package discovery department. I installed most things from source and after learning about all the bad things that can happen when you install new versions of software on top of the old, I setup a package manager, but Slackware still lacked a central package repository. The central source repository led me to switch to Gentoo. Being able to just install things without having to find the source code online first was great, but again I grew tired. The long compile times eventually wore me out and this time the switch was made to Ubuntu. Ubuntu was nice in a everything-just-works sort of way, but now, some 6 years later, it doesn't do what...
As you might have noticed, there hasn't been much work done on the blog these last few months. It kind of boils down to complexity. When I started building this blog my main workstation was running Windows 7. Everything ran as well on Node.js on Windows as it did on my Linux server. It was a nice and simple setup; develop locally, test locally, deploy on server. Then I added a database. Specifically CouchDB that only worked on Linux. This meant a new, more complex development routine; develop locally, deploy on server, test on server, rince and repeat in case of error. This worked for a while but lately as the code has gotten more complex and it does a lot of pre-caching on startup, I've been longing for a locally deployed test version again. So I decided to switch my main workst...
If not for this year being a leap year, there would have been no posts made this month. I plan on doing better. I also hope on getting ill a lot less in the months to come....
The HTTP protocol has a lot of header fields that affects requests and responses. HTTP also have a couple of different request types (HEAD, GET, POST, PUT and DELETE). Unless you're building a REST service, you mostly have to deal with GET and POST on the web, and I don't even differentiate those as much as I should. A couple of weeks ago, a thought occurred to me; "What happens when I make a HEAD request to my blog?". Well the answer turned out to be pretty simple. Node.js ignores any calls made to the write method of the response object if the request was a HEAD request. That's all fine with me, but then I started thinking about what type of things should go into a HEAD response and if I could optimize anything. This lead me to look closer into the `Content-Length` header field. The `...
... it's just a flesh wound. Jokes aside, I had planned to make a post last Monday about some HTTP HEAD/GET/POST and header request stuff I've done on the blog recently but something got in the way of me completing my work. I still plan to do it when I get some spare time, but for now a simple I'm-still-here-post will have to suffice. The last couple of weeks have been filled with work, migraines, sore throats and birthday parties. I also started watching a Canadian TV-series from 2004 called ReGenesis and it's been taking up most of my time at night. I'm almost halfway through the 4th and final season now, so I'm expecting more blogging to be done in the coming week....