Read my book

I wrote books about Webpack and React. Check them out!

Sunday, September 30, 2012

Subtle Patterns - a Web Designer's Delight

I just came by something too good not to mention about. Subtle Patterns is a collection of *drumroll*  subtle patterns. These kind of textures are just perfect for web development. Even better there are browser plugins (for Safari and Chrome at least) that allow you to test various patterns as the background of your site.

I found this excellent site at Chris Coyier's notes. If you go through those, you'll likely pick up a few other things as well. That blog is definitely one that should go on your reading list if you are into web development.

Tuesday, September 25, 2012

Packt Reaches 1000 IT Titles and Rewards Its Supporters

Just thought to let you know that the kind folks at Packt Publishing have decided to commemorate the fact they are about to publish their 1000th title. As you might know Packt specializes in IT books and open source in particular. I've reviewed a few of their books on this blog. Even though the quality tends to vary a bit there are some really nice works amongst the bulk every now and then.

They are going to rewards their readers, old and new, by releasing mystery gifts available on their site at the end of September. If you register there, you should be able to access those between 28th and 30th. I'm not entirely sure what they have in mind but it would not surprise me a lot if it had something to do with books.

You can read full details at their press release. I personally hope they reach 2000 titles and more some day. It's good to have publishers specializing on IT and open source. Besides Packt I've enjoyed the works of O'Reilly and The Pragmatic Bookshelf. Besides those Apress is worth checking out if you are into technical books on open source technologies.

Saturday, September 22, 2012

Elovalo - Proper Peek 1

I gave you a sneak peek at project Elovalo around August. We just met our deadline and had to deliver the product for the City of Light event. Suffice to say it wasn't quite as easy as we had imagined. On the other hand we managed to learn a lot about hardware projects. There are so many things that can go wrong when you are literally constrained by computing resources and the physical world.

The video below contains a proper peek at the project. The quality of the video isn't that great but hopefully it gives you some idea of the real thing. If you happen to be around Jyväskylä in the coming week you might want to check it out at Kirkkopuisto (just across the city art museum). We'll be making some tweaks to the installation and will likely produce a higher quality video. Enjoy the video till then!

Wednesday, September 19, 2012

Manifesto for Software Craftmanship - Finnish Version

An acquaintance of mine asked a while ago whether there is a Finnish version of Manifesto for Software Craftmanship available. He needed this in order to explain a few things to his PHB.

We could not find one so I came up with one with a few tweaks by him. The document is available on Google Docs. So if you happen to be a finn that wants to make the boss understand a few things, show that to him/her. Obviously the real gurus swear by Zed Shaw's manifesto but I guess it's kind of difficult to get the point across that way. :)

Wednesday, September 12, 2012

Lean Canvas and Kanban on Google Docs

Lean Canvas is a business brainstorming tool developed by Ash Maurya. It is based on the famous Business Model Canvas. Both can be useful in their own way especially if you are trying to work out through the fundamentals of your startup.

As I like to use Google Docs for collaboration I ported the Lean Canvas as a Google Docs document. It is free for you to use. Just make a copy and go. There is also an implementation of a Kanban table for those interested.

Tuesday, September 11, 2012

My Favorite Utility Apps for Mobile Android

I just bought myself a used Samsung Galaxy S2 around a month ago. On retrospect it was a a great purchase. Compared to my old and trusty Nokia N79 it's literally like from another world. I upgraded the phone by buying an extended battery (2000 mAh) and SGP Ultra Capsule case (black with glitter, how metro). If I ever run out of space, I think I'll buy one of those memory cards.

I originally intended to buy one of those iPhones but the cost was just prohibitive for me especially when I started to compare the specifications. You simply cannot get a nice iPhone for less than 300 euros (like 380 dollars).

I got some really nice hardware for the price I paid. The AMOLED display is just stunning. iPhone might be the Porsche 911 of phones. I am happy with a Volkswagen Polo, though. They come from the same factory after all. Besides Apple just proved in a trial that they are same hardware so there's no denying that.

I was somewhat skeptical about Android as an OS at first after having used iOS for the past few years on my iPad (first gen). iOS is easy to use, that's for sure. Using Android for a while showed me what I had been missing: widgets.

Android - It's All About Widgets

I think widgets are what really separates Android from iOS. I really like them. Rather than having to open up an app each time I want to check out the weather, I can see that on a single glance. It is a great shame Apple hasn't implemented Dashboard, the widget platform familiar from OS X, on iOS. I believe it fits iOS better than OS X where it was originally introduced.

I've stuck with the default weather widget of S2. It's enough for me. Besides that I use Smooth Calendar, PowerToggles and JuiceDefender QuickBox. Smooth Calendar and PowerToggles fit my usage better than the defaults provided. JuiceDefender is just a nice extra I use to get most out of my battery. It simply keeps connectivity off when I don't need it. Helps somewhat.

And Apps Too

During last week I got severely annoyed at having to mute the phone for the night. It didn't take long for me to find SilentSleep. It's a perfect example of a simple app that does one thing really well. This is also a good example of the fact that if you can think about it, there is likely an app for it.

In addition I use Dropbox, Google Authenticator, RunKeeper and Spotify actively. The Dropbox app is almost perfect for my usage except it won't let you upload media if your battery is below certain limit. I wish there was some way to force around this.

Google Authenticator works really well with Google's 2 way auth. In addition to a regular password this system allows you to use a "one off" key for added security. Authenticator generates just these for you. It takes some effort to learn the system and set it up but I believe it's worth the hassle.

RunKeeper is a fairly nice app too. I have experienced some crashes and lost tracking data likely due to poor GPS connectivity at times. I'm actually interested to hear if you have found some supreme sports tracking app for Android. Perhaps there is something nicer out there.

Spotify is a must have of course if you listen to music. Sure it costs ten euros per month (around 13 dollars I think) but it's totally worth it for me anyhow. RunKeeper provides some premium features that cost some money as well. I haven't really bothered to look into that yet, though.

Conclusion

The apps mentioned here are available free of charge. There may be premium versions available (for JuiceDefender at least) but other than that they should be easy enough to test. This is actually one of the features I like about the Android platform. You can simply click "Install" at Play Store and the next time you start up your phone, the app is there waiting for you. Automatic updates work really well too.

I am really happy I got myself a S2. I know the hardware is a bit dated already, at least compared to the top phones. It totally rocks my world, though. Excellent integration with Google's services makes it so much better.

Saturday, September 8, 2012

readme2gh - Keeps Your GitHub README.md and index.html in Sync

I really like how GitHub has developed its Pages service. It's absolutely great for project site hosting. They even provide a site generator for projects with some spiffy templates and make it possible to load project README.md as initial content. Unfortunately maintaining the generated index.html is boring as they do not provide an easy way to synchronize them.

That is the reason I threw together readme2gh. It simply syncs your gh-pages index.html with the content of your README.md. It does this by fetching that via web and then injects the transformed data to your template that is then written to your index. Study the project site and the script itself for exact details.

I hope someone finds this useful! I know the current implementation is somewhat crude and likely far from perfect. Still, might be handy if you want to keep your README and index in sync. :)

Wednesday, September 5, 2012

website-poller - Site down? Get notified!

A situation you probably don't want to experience by Sean MacEntee (CC BY)
A couple of days ago we noticed a certain service of our co-op was down. It would have been nice to know about this earlier. That got us thinking, wouldn't it be nice if we had some kind of a poller. Even better, wouldn't it be nice if we got notifications on our desktop when some service fails to respond? Ergo website-poller was born.

website-poller is a simple Python script you are supposed to attach to your crontab. Set it to poll once per hour or so. If/when a service goes down, a notification will pop up. We support Ubuntu (other Linuxes might work too) and OS X (Growl) at the moment.

It might be nice to grow this into something bigger (get email, stats etc.). Even in its current state the script might be useful for some. Let us know if you have any ideas for further development.

Sunday, September 2, 2012

Using Dropbox to Sync Your Dotfiles

I bought myself a MacBook Air (13") not long ago and needed some way to sync my files between it and my main system. Apparently Dropbox provides the perfect way to do this. All you need to do is to set up an account over there and symlink!

The basic workflow goes like this:
  1. Copy some dotfile (ie. .bash_profile) to /Dropbox (might want to use some subdir like /dotfiles/bash or something)
  2. Make a backup of the original ("cp .bash_profile .bash_profile.bak"). You might need this later if you screw something up. You should have backups set up in any case, though!
  3. Create a symbolic link to the file at Dropbox ("ln -s Dropbox/dotfiles/bash/.bash_profile .bash_profile" . The command works like this "ln -s source target". Keep that in mind.).
You will need to create this symlink on each system where you want to use the common configuration. After that it will just work and the changes you make to the configuration on any system will propagate to each eventually. You can use the same process for your Vim configuration etc.

Besides doing syncs like this I've been using Dropbox to sync photos and videos from my phone with the service. It is incredibly simple to share your media like this. In addition they provide a nice web based user interface. Nothing is nicer than creating a little video with your phone and then just passing a link to it to your friends to watch.

By the way, if you happen to use Vim, you might want to make sure your swap files won't get synced. Fortunately there is a simple way around this. Weevil Genius suggests the following configuration:

set directory^=$HOME/.vim_swap//   "put all swap files together in one place

Besides Dropbox I use 1Password to keep track of my account details. Incidentally that happens to use Dropbox for syncing as well. One of my favorite publishers, The Pragmatic Bookshelf, provides support for Dropbox sync too.

They give you around two gigabytes of storage on the free plan. That's more than enough for syncing dotfiles. I can see it's not that much if you share media. Fortunately they provide various ways to earn some extra space. If you would like to use the service and donate some extra space for me, go ahead and register using this very link.

I know there are various similar service out there. So far Dropbox has worked well for me. I like particularly the way they've handled integration with various devices. There's no going back once you get used to it.