Kevin Mees

i write code at Experts Inside

Hack a Bookmark Bar Seperator for Chrome


New Year’s Day is Cleanup Day (yay) !

When I finally arrived at my bookmarks I desperately wanted to organize my bookmarks on the Bookmark Bar n groups but there’s (still!) no option to add a simple seperator to it. So we can either live with it or get creative about it. I prefer the second approach !

HTML Presentations With Octopress and deck.js - Part II


In my last post I demonstrated how to create HTML presentations with deck.js and hosting them inside your Octopress blog. While the ‘client-side’ is basically finished, the ‘backend’ still needs some work because

  • we can’t use markdown to write the slides
  • we must create a new slidedeck by hand

The first problem can be solved by creating a custom Liquid::Block for slides and the second problem can be solved by creating a small rake task that basically works the same as the new_post task.

HTML Presentations With Octopress and deck.js


So, I’m about the give a short talk about Octopress at the next RUGSaar (Ruby Usergroup Saar) meeting. Since I will probably need at least a bunch of slides I thought about the way of presenting them. PowerPoint (or similar) would be the natural choice but it isn’t very hacker…ish and since Octopress is “a blogging framework for hackers” we surely can do better.

I’ve recently read about various HTML5 based web presentation frameworks and wanted to try them out but didn’t have an opportunity ‘til now. I’ll go with deck.js for no specific reason other than that it seems easy to show the slides inside an existing webpage or blog. So I’ll be giving a talk about Octopress with slides hosted inside my own Octopress blog !

Bypassing the Google Feed API Cache


I noticed recently that the download count of the packages in my NuGet Aside didn’t update properly. As I mentioned earlier, I use the Google Feed API to get the data from the NuGet Gallery feed of an author. This indicrection is needed because the NuGet Gallery API doesn’t support the jsonp response type (yet). Anyway, the problem is that Google caches the feeds heavily and only adds new entries but doesn’t update existing ones. This means that the packages keep their download count of the first request.



After my miserable fail at the 7DRL 2012 I had the urge to get at least something get at least something useful done. So I decided to port unicodetiles.js, a lightweight, character based tile engine for JavaScript to Ruby. Luckily, tapio, the author of unicodetiles.js, made it easy for me to find a name for the ruby port and it shall henceforth be called unicodetiles.rb.

Porting the JavaScript code to Ruby went quite smoothly and I tried to ‘rubify’ the code wherever possible. I decided to implement the renderer on top of the gosu gem because it gave me all the tools I needed, especially the Gosu::Font class came in quite handy. The port is feature equivalent to the JavaScript version and the examples are exactly the same. I plan on adding some more features and use it for my next (7 Day?) Roguelike project and I will also release a gem in the next few days when everything is implemented and tested.

Unicodetiles.rb also works quite well as a replacement for ncurses, a popular framework for writing fancy console applications used by a lot of roguelikes. The downside to ncurses is, that it is quite hard (or even impossible) to get running under Windows which really hampers the popularity of some roguelikes.

7DRL 2012 - It’s Over !


It’s Sunday, March 18th and exactly 7 days ago I started my 7DRL Challenge. Sadly, I wasn’t able to finish my roguelike in time but it was fun nevertheless. If I had to put a number on the completeness of the game, I would say it’s about 33% finished, but not really playable since I spent (wasted?) too much on time on the implementation of the Mech class and the UI instead of adding content/combat. In retrospect, I see a lot of room for improvements and I will write them down here such that I won’t do the same mistakes twice in next years 7DRL !

7DRL 2012 - Day 1&2: Recap


Day 1

I started the challenge on Sunday at around 2 pm. My Goal for the day was to get the player on the screen and implement the mechlike movement. I had something running quite fast, after about an hour, with basically two classes (the window and the mech). I then decided to refactor the stuff I had into an actual architecture by decoupling the view logic from the game logic etc. That didn’t really work that well in the beginning because I was thinking too much in the .NET way which cost me a lot of time. Another thing that cost me quite a lot of time was writing the specs in RSpec. I haven’t written any specs but only NUnit tests lately which ended in awful readable specs at first :)

7DRL 2012 - Day 0: Introducing MechRL


Although I didn’t have that much time lately, I came up with an idea that is worth prototyping in a 7DRL. I was a huge fan of the MechWarrior franchise back in the late 90s and early 2000s. After watching the Hawken Gameplay Video some time ago, I got a bit nostalgic and thought about doing a MechWarriorlike Roguelike. Through the lack of a better name (naming things is hard!), I’ll simply call it MechRL.

7DRL 2012 - Day 0: Weapons of Choice


Alright, I’m gonna start my 7DRL Challenge tomorrow around noon. I wanted to start today, but I spent most of day setting up my system and testing the libraries I want to use. My development environment will be:

  • OS: Virtualized Ubuntu 11.10
  • Platform: Ruby
    • Gosu (Game Framework)
    • Rspec (BDD Framework)
    • Autotest
  • VCS: Git
  • Editor: GVim

I’ll try to develop the game using BDD and a test-first approach albeit it might slow me down in the beginning. But I hope that in the end it will pay off by having less bugs and broken features. Anyway, the plan is to spend the last day on polishing stuff instead of debugging.

The project will be hosted on Github and I was able to setup XSplit, so I’ll stream while coding. Will be interesting to see if I get at least one viewer :). My channel can be found here.