Giving people limited shell access to your server

At work, I develop all kinds of backend software. We have a team of testers for high-level testing (in addition to the many unit-tests we have).

At some point, I had written a Perl script that was going to run daily, from cron, processing some input and generating some output. Since our testers currently don’t have shell access to our development servers, the challenge was to find a simple way for them to test this script, with different inputs, and verifying that the output was correct.

I looked around on the internet for a simple solution to this. I couldn’t find any. So I wrote a solution myself: WRATS – Web Restricted Access To Server.

With WRATS, you can allow people to perform the following actions via a browser:

  • Read a file
  • Edit a file
  • Execute a file
  • Browse a directory and read all files in that directory

By default, all access is denied. You have to grant permission to each action on each item individually. For example, you can allow people to read the file /data/input.txt or edit the file /var/www/test/status.

There is no authentication in WRATS. This is by design – adding pluggable authentication would have made it too complex and too much work. If you want to make sure WRATS can only be used by certain users, I suggest you use your web server to do that.

WRATS has been designed with security in mind. For example, it is not possible to specify both edit rights and execute rights on a single file – that would make it possible to execute arbitrary code. Also, filenames passed by the user are strictly checked before any action is performed.

WRATS allowed our testers to edit the input file, execute the script, and read the output file. They were happy, because they didn’t have to come to me anymore to ask me to run the script for them with the input they had emailed me just before, and I was happy, because of the same reason. And the rest of the team was happy, because WRATS can be used for other projects in the future as well.

You can find WRATS on my github page. I hope it’ll be useful to you one day!

Posted in software development | Tagged , , , , , , , | Leave a comment

Pancake draft: cube draft for two players

Magic: the Gathering has been one of my favourite games ever since I learned to play it in 1994. When I was in highschool, I played a lot with local friends. However, when I went to university, our play group slowly fell apart and I played less and less.  For about ten years, I didn’t play Magic at all.

Somewhere in 2011, I decided to see if Magic was still popular, and it turned out that it was. I couldn’t resist, and started playing again.

I learned of an interesting alternative to Booster draft: Cube draft. Not having a big play group nearby, I investigated whether there are any good ways to draft with 2 players. There are some ways, like Winston draft, Solomon draft and Continuous draft. However, these drafts don’t give you the “pick one card from many” experience that Booster draft gives you.

My friend Merlijn and I discussed how to make a two-player cube draft format that is more similar to an eight-player draft in the “choose which card you want” stage. We didn’t want to choose between piles that contain relatively many junk cards, or split piles to have the other player choose which pile they want. After some testing with my Cube, this is what we ended up with. We call it the Pancake Draft.

Start by creating 18 “boosters” of 11 random cards from the Cube each.

The two players, A and B, each take one booster, 1 and 2, and choose one card from it. They draft this card to their card pool.

Step 1

Then, the stacks (now 10 cards each) are exchanged.

Step 2

Each player now chooses 2 cards from the stack of 10, that was opened by the other player, to add to their card pool. The stacks are now 8 cards each.

Step 3

The next step is for each player to choose 2 cards from their pile to put in the trash, face down. These two cards will not be used in the draft.

Step 4

Then, the stacks are swapped again, so each player gets their original stack back. There are 6 cards left in each stack.

Step 5

Then, each player chooses two cards to draft to their pool.

Step 6

Finally, the remaining four cards are put face down in the trash.

This way, each player drafts several cards out of several stack sizes: 1 of 11, 2 of 10, and 2 of 6. In total, each player gets 5 cards from each pair of stacks. 18 stacks means 9 times 5 equals 45 cards each. Add basic land and play with 40+ card decks, as usual.

To reach this, we went through a few iterations.

First, we tried having boosters of 9 cards. The first player picks 2 out of 9, then the second player picks 4 out of the remaining 7, and the first player gets the last 3. The main disadvantage of this method was that both players would end up with a lot of junk, which made it difficult to even build a reasonable deck.

Then, we tried boosters of 9 cards again, with the picks being 1 out of 9, then 2 out of 8, then 2 out of 6, and the remaining 4 cards would go to the trash. This made our decks significantly better. However, it was still trivial to read what your opponent was drafting. This made the draft boring and easy: just draft 2 colours your opponent is not drafting, and both players end up with tons of playable cards.

The “trash 2 cards” part after the second pick helps immensely with this problem. It serves two goals: obscuring what you picked, and allowing the possibility to hate draft cards that you really don’t want to play against.

We are happy with this two-player Cube draft format! It allows us to experience almost the “real” draft feeling even if it’s just the two of us playing.

There are some changes that can be made to the numbers involved. For example, playing 12 card boosters instead of 11. Or trashing 3 cards instead of 2. This might make the format even better. We are still experimenting with it, and would like to hear other people’s thoughts about that.

Have you tried Pancake Cube drafting? I’d love to hear your feedback in the comments!

Posted in games, magic | Tagged , , , , , , , , , , , , , | 7 Comments

Diablo 3: practical melee Wizard guide for buying budget gear

After reading Maxiym’s Entree level Melee Wizard guide, I decided that my previous spec and gear needed a small modification. I wanted to replace Spectral Blades by Energy Twister, but suspected I needed more +AP on Crit gear for that. So, I bought some on the AH.

Finding good, cheap gear on the AH is not an easy thing to do; you need patience, luck, and a smart strategy to search for the right items.

In this post, I want to share with you how I would go about gearing a fresh level 60 Wizard for this build, using no more than a million gold.

The most important thing to remember when looking for budget gear in the AH, is that the more useful stats an item has (especially if the values are high), the more expensive it becomes. An item with Intelligence, Vitality and All Resist is often ten or more times more expensive than an item with only 2 of those stats.

This is the key to finding cheap starting gear on the AH: focus on gear that has a few useful stats in large amounts. Instead of trying to find items with many useful stats, stick to finding items with only 2 or 3 useful stats, but with high values in those stats.

Some important stats for this spec are only available on a limited amount of slots (ignoring expensive Legendary items which break these rules). These stats are:

Arcane Power on Crit: Head, Main Hand, Off Hand

Crit %: Head, Amulet, Gloves, Bracers, Ring, Off Hand

Life on Hit: Main Hand, Amulet, Ring

Both AP on Crit and Crit % are important to have in large amounts, so you should find gear with these stats in every slot possible. Life on Hit is less important to have a huge amount of, so I would recommend going for 500 or more on the Main Hand only, since that is cheapest.

Let’s start with the “basic” slots. These slots can’t have any special stats like AP on crit, so  we will focus on Intelligence, Vitality and All Resist. For each slot, pick one of either Int or Vit, set the lower limit to 120, and add a minimum of 70 All Resist. You should be able to find items for these prices easily:

Slot Price Intelligence Vitality All Resist
Shoulders 100,000 120 0 70
Chest 50,000 0 180 70
Waist 100,000 0 160 70
Legs 50,000 120 0 70
Feet 50,000 120 0 70

With a bit more patience, you can find gear that is either better or cheaper. For additional stats, look for Armor (usually overlooked when pricing items, so that should be cheap too), sockets and the other stat of Int/Vit.

Then, the main Crit items. Here, it would be good to get another 50-100 All Resist, which I found cheapest on the Gloves. Again, also look for Armor and Int/Vit/AR.

Slot Price Intelligence Vitality All Resist Crit %
Neck 100,000 100 0 0 8
Hands 100,000 0 100 70 8
Finger1 50,000 0 120 0 3.5
Finger2 50,000 80 0 0 3.5

Then there are items with both Crit % and AP on Crit. These stats, you should be able to combine with some Int.

Slot Price Intelligence AP on Crit Crit %
Head 100,000 80 8 4
Off-hand 100,000 120 8 8

Finally, the weapon. I was able to find a weapon with 700 DPS, 600 Life on Hit and 8 AP on Crit for 100k gold. It’s always good if you manage to find a weapon which also has Int, Vit, Crit Damage, or a Socket.

Slot Price DPS Life on Hit AP on Crit
Main-hand 100,000 700 600 8

All in all, this is a total of about one million gold if you just buy the first suitable item you see for each slot on the AH; you should be able to find this gear for under 500k gold if you are patient.

Then, you can try Maxiym’s spec, and you should be able to clear and farm Act 1 easily, and Act 2 should be doable too!

Posted in diablo 3 | Tagged , , , , , , , , , | Leave a comment

Diablo 3: getting bored of your wizard?

Are you bored of your Wizard? Are you frustrated with dying to not having enough room to kite? Are you stuck in Act 1 Inferno? Are you afraid that you need many tens of millions to get decent gear?

I have been playing Diablo 3 casually since a few days after release. In WoW, I used to play a Mage. Since the EU beta. Until I quit. So, I chose to try a Wizard in Diablo 3, and as I expected, I liked it. I am currently in the beginning of act 2 Inferno.

[Note: if you are in Inferno act 3/4, and doing well, this post is probably not for you.]

Normal and Nightmare mode were pretty easy, especially since one of my friends (hi pzt!) gave me a legendary wand, when I reached level 40. This wand doubled my DPS. Hell was already harder, but still doable. Act 4 really took me some time, and this is where I used the AH for the first time to get some items to make life easier.

After I reached level 60 and killed Diablo on Hell difficulty, I started working on Inferno. This was not easy, and most of the elite packs would just kill me. Especially packs with Vortex (dragging you towards them), Fast (running faster than you) and Waller (creates walls to stop you from running) were extremely hard for my squishy Wizard.

So, I read a bit about how others were handling this, and read about the Blizzard/Venom Hydra kite build. As I was already using Venom Hydra, and kiting much, I changed a few skills and started kiting more and better.

However, since I had only about 22k DPS and 25k health, with almost no defensive stats, there were 2 problems. One, if I didn’t have room to kite, I would simply die; and two, it took ages (and a lot of space) to kill elite packs.

I persisted, and managed to clear act 1, with a lot of trouble (and a lot of dying). This was before 1.0.3, so dying was still cheap.

Act 2. The mobs here have significantly more health, and deal more damage, and what I found out was that in most cases, it would take me so long to kill an elite pack, that they would enrage and kill me.

Maybe the AH could help out here? After all, I had just sold a 1200 dps crossbow with crappy stats for 3 million, so I had about 4 million to work with. Let’s see… ah, right, big upgrades cost 5+ million per gear slot.

This is where I got annoyed and frustrated. To get away from my Wizard for a while, I leveled up a Demon Hunter together with a friend’s Barbarian. We both twinked our alts heavily and blasted through normal and nightmare, easily getting the “act 4 within 1 hour” achievement. This gave me a lot of fun!

When I went back to my Wizard, I quickly got annoyed again, and almost didn’t play the game (I mostly just AH’ed) for several weeks.

Then, browsing the Diablo forums, I found Antarin’s melee wizard thread. At first, I thought “yeah, I could do that too with 100m worth of gear”. Since I had about 4 million at the time, I almost disregarded the melee wizard idea completely. But then I thought “you know what? This 100m gear set is for act 3/4. I’ll just try it with worse gear for act 1!”.

So, how does Antarin’s build work? In short, you (ab)use the passive skill Critical Mass to be able to cast Diamond Skin, Frost Nova and Explosive Blast much more often than their regular cooldowns would allow. This both protects you and gives you more crits, that in turn reduce your cooldowns, that allows you to cast these spells more, which gives you more crits, …

I went to the AH, and replaced some of my gear with pieces with extra +Crit Chance, +Life on Hit, and +All Resistance. All in all, I spent about 1 million gold (which is not very much). I used to have a 790 dps wand, and downgraded that to 590, just so I could have almost 800 Life on Hit. Here is my current gear:

My Wizard’s melee spec gear.

Note the shield! I didn’t even realise that it’s possible for a Wizard to use a shield. As a result, my stats have improved for this style of play, but are still far from ideal:

My Wizard’s stats.

These are unbuffed stats. Energy Armor with the Prismatic Armor rune increases my defenses by another 40%.

As you can see, this gear and these stats are by no means very good. Especially 16k DPS sounds extremely low.

The melee spec I decided to take is a bit different from Antarin’s spec, as I need a bit more healing to survive. I added Spectral Blade with the Healing Blades rune.

I decided to try Act 1 Inferno with this gear and spec, and I was surprised by how well it worked! About half the elite packs are easy now, and the other half are medium to very difficult. Packs with Invulnerable Minions are very annoying, but by pulling more trash mobs on them, you can kill them anyway. I can now easily clear Act 1, and I’m enjoying this style much more than “kite if you have room, die if you don’t”.

I haven’t tried Act 2 yet; I think I will need a bit better gear for that, but I’m not sure yet. I’ll try that soon.

If you’re bored of your kiting Wizard, give this spec a try! Spend a few hundred thousand on gear (or a few million for Act 2) and hopefully you can have (more) fun (again).

Posted in diablo 3 | Tagged , , , , , , , , , , , | Leave a comment

Irssi tricks: join channels automatically

Today, we shall learn how to make irssi connect to servers, join channels and open queries on startup.

Let’s assume that we want irssi to automatically connect to the following networks, join these channels and open these queries:

  • EFnet
    • use server efnet.xs4all.nl or irc.underworld.no
    • use nickname TheJustin
    • join channel #irssitest in window 2
    • join channel #quartix with channel password oodle in window 4
    • open query with Chang_X in window 6
  • QuakeNet
    • use server irc.quakenet.org
    • use nickname Justin^^
    • join channel #monogaming in window 3
    • open query with Smyter1 in window 7
  • CNQNet
    • use server irc.carnique.nl
    • use nickname Justin^^
    • join channel #carnique in window 5
    • open query with Garion in window 8

To accomplish this all, we shall first configure the irc networks, then the servers of each network, and then the channels and queries in the correct windows.

Let’s get to work. First of all, start irssi in a screen or tmux.

Network configuration

To list all IRC networks that irssi knows by default, type

The output is:

As you can see, EFnet and QuakeNet are already there, but CNQnet is not. Let’s add that network:

We also want to make sure that irssi uses the correct nickname, username and realname on EFnet and QuakeNet:

Note that you need to use /network add to change the settings of an already existing network. The network configuration should be good now; let’s verify that with /network list:

Looking good! Time to configure the servers.

Server configuration

When you type

you can see the servers per network that have already been defined in the default configuration of irssi:

The QuakeNet configuration already uses the correct server. However, it does not automatically connect on startup, so we need to fix that. Also, the EFnet config uses the wrong server for us (irc.efnet.org instead of the 2 servers we want to use), and CNQnet does not have any servers at all. To change all this, we type:

Just like changing the settings of an existing network, we use /server add to overwrite the existing server entry with the new settings. After these commands, /server list shows:

Channel configuration

Let’s start by adding the channels to the configuration.

With /channel list, we can see all currently configured channels:

The last step of configuration is to actually join the channels and open the queries. This seems to be the easiest way to do it:

We have to make sure to do this in the right order, so the channels and queries end up in the right windows. If, for whatever reason, we end up with the windows in a different order than we want, we can move windows around until the order is as we desire. For example, to move window 6 to position 2, we would do:

There is one last, and very important, thing that we have to do: we have to make sure that irssi stores our hard work, so we won’t have to do it again. We do this by the following two commands:

The command /layout save tells irssi to store which channels and queries are in which windows when next we use /save, and
/save stores the configuration (which networks and servers we defined, and which channels and queries were open in which windows).

From now on, whenever we type irssi to start irssi, irssi will automatically connect to EFnet, QuakeNet and CNQnet, join the 4 channels we defined and open the 3 queries, all in the correct windows!

Posted in irssi | Tagged , , , , , , , , , , , , , , , | 13 Comments

Irssi tricks: navigating around

Irssi has many ways to navigate between windows, and within a window.

For this article, I am assuming that you do not use split windows. Also, whenever I mention the alt key, I mean alt, or meta, or option, or whatever works for you. There is a difference between them, but that’s beyond the scope of this post.

If the alt key does not work properly for you, you have two options:

  1. Configure your OS or terminal application to send alt to irssi instead of to the OS or application (for example, make sure that alt + f does not open the File menu, but is sent to irssi).
  2. Instead of pressing alt plus another key at the same time, you can press escape, followed by the other key. For example, pressing alt and a at the same time is equivalent to pressing escape, releasing, and then pressing a.

Navigating while typing

Let’s start by what you can do while typing. These keystrokes change only what happens on the input line (the line where you type stuff).

  • arrow left/right: move one character left or right.
  • ctrl + arrow left/right: move one word left or right.
  • ctrl + a or Home: move to start of line.
  • ctrl + e or End: move to end of line.
  • ctrl + w: remove from cursor to the beginning of the word the cursor is on.
  • ctrl + k: remove from cursor to end of line.
  • ctrl + u: remove the entire line.
  • arrow up/down: previous/next command you typed.

Navigating within a window

There are keystrokes and commands to navigate within a single window. The total amount of text inside a single window is called the buffer.

These are the keys:

  • page-down or alt + n: scroll down half a page.
  • page-up or alt + p: scroll up half a page.

And these are the commands:

  • /scrollback home: go to the first line of the buffer.
  • /scrollback end: go to the last line of the buffer.
  • /scrollback goto 13:05: scrolls back to 13:05.
  • /scrollback goto -100: scrolls back 100 lines.
  • /scrollback goto +50: scrolls forward 50 lines.

You can use /sb instead of /scrollback to save time typing.

Navigating between windows

The most important thing to know about navigating between windows is that alt + a sends you to the window with the most recent, most important activity. Pressing it consecutively will first lead you through all windows that are pink in your activity bar, then all windows that are white, and then the rest. This is not entirely correct, but if you are able to correct me on this, you don’t need this article in the first place :-)

Then there are alt + 1, alt + 2 , and so on. These take you directly to the window with that number. By default, the top 2 lines of your (qwerty) keyboard are bound that way, all the way up to alt + o, which takes you to window 19.

Going to the next or previous window can be done by pressing ctrl + p or ctrl + n, or via alt + arrow left or alt + arrow right.

Some commands to make your life easier:

  • /window last: go to the window you were in before this one.
  • /window goto <number>: go to the window with that number.
  • /window goto <nickname>: go to the window with the query with <nickname>.
  • /window goto <channel>: go to the window with the given channel.

Changing navigation

Personally, I like my home and end keys not to go to the beginning and end of the text line, but to the beginning and end of the buffer. I have accomplished this by doing the following:

  • /bind end command /sb end
  • /bind home command /sb home

Also, having alt + 1 through alt + 0 and alt + q through alt + p is great if you have “only” 20 windows, but if you have more, what then? I’ve added windows 21 to 40, like this:

  • /bind meta-a change_window 21
  • /bind meta-s change_window 22

And so on. I had to re-bind alt + a of course, alt + [, which is to the right of the p on my keyboard:

  • /bind meta-[ active_window

If you want to scroll up or down a different amount that half a page when pressing page-up or page-down, change the setting scroll_page_count.

The command /window goto is very useful. However, it’s way too much typing. So, since I never use /w for /who, I’ve changed /w to /window goto:

  • /alias w /window goto

Finally, I got rather annoyed by how ctrl + z puts irssi in the background. I never ever want to do that. So, I wanted to bind ctrl + z to a useful command. There is a command that takes you to the window you were in before this one, so I bound that:

  • /bind ^Z command window last

This way, by pressing ctrl + z, I can keep toggling between two interesting windows.

I hope this helps you to navigate around irssi easier and faster!

Posted in irssi | Tagged , , , , , , , , , , , , , , | 9 Comments

Terrible Websites 2

It’s time for another round of “interesting” websites. Thanks to those of you who sent me some links!

If you have a chain of stores that sell computer parts, I would assume you have some experience with the internet, including how to make a good website. Apparently my assumption is rather naive, as you can see at the site of MSY Australia. I especially like the “jobs” link at the bottom… that jobs page really inspires confidence!

I also found yet another pet-based website, this time about golden retrievers. This site isn’t even that bad, but still, using Comic Sans as the font on your entire website? Urgh. I don’t know why this is, but many websites about pets have a terrible design. Any idea why?

Another website that makes the Comic Sans error is that of Clare House Primary School in Bromley, UK. Since it’s the website of a primary school, you could argue that the website is mainly for children; but if you look at the contents, it’s more aimed at the parents. Bad idea.

Are you interested in the unity way of life? You can find out exactly what it is on the Unity Chapel site! I like how they didn’t even buy their own domain, but host their site on a subdomain of the website builder site they chose.

For the last page, make sure you turn down your volume, because it has sounds. A radio commercial, it seems. It’s the website of the super market chain Nettorama, in the Netherlands. My poor eyes, and my poor ears!

Do you know of any terrible websites? Please email them to me at terriblewebsites (at) garion (dot) org!

Posted in Terrible Websites | Tagged , , , | Leave a comment

AJIP 6 – $0.02 / $0.05 blinds cash game

It’s been ages since I’ve last posted about poker. That’s mainly because I haven’t been playing it much. I’m still interested though, and still want to learn this difficult game, and last weekend I played a couple of hands on a 6-handed table on PokerStars. The blinds were $0.02 / $0.05. Here are some of the hands that had me wonder what I could’ve done differently.

In this hand, I had K8s in the big blind. The small blind was a rather loose player, who had only been at the table for about 15 hands. After four folds, he decided to raise to $0.15, which I called. I was hoping to hit a King or 2 hearts on the flop, so I could get a lot of money from him. I was also in position.

The flop was AJ8. Bottom pair for me. Not exactly what I was hoping for, but still a pair, and if the turn would be a King, I would still like my hand. Mr. Loose bet $0.20 into the $0.30 pot. I hoped that if he had nothing, and this was just a continuation bet, he would shut down and stop betting on the turn and river. So I decided to call.

The turn was another Jack. Mr. Loose bet $0.30 now. I decided to stick with my original plan, and folded, believing that I did not have the best hand. Mr. Loose showed me his 73 of diamonds.

Many things I could’ve done differently here. What do you think of my thought process and conclusions?

A few hands later, I had AJ offsuit in the big blind. The UTG player limped in for $0.05. The cutoff raised to $0.15, which I thought could easily be a steal because of the early limp. The button and small blind folded, and I decided to reraise to $0.50. I would be happy if I could win the post then and there. The UTG limper called, and the cutoff called too.

So, I guess they had something after all. Maybe a pocket pair, or two face cards.

The flop was K66. Since I was first to act, I decided to check to see what the other two players would do. They both checked as well.

The turn was a 3. This was unlikely to help anyone, unless they had 2 spades of course. Would they have bet a hand with 2 spades? I checked again, and again the other two players checked too. I guess nobody had a King, and everyone was afraid to bet because… the other person might have a King? Hmmm.

A blank hit the river. Again, we all checked. I showed my AJ, and the cutoff raiser won the pot with 77.

How should I feel about this? Should I be happy that I lost the minimum? Should I have bet at some point, hoping my opponents would fold?

Poker looks so easy on TV, but it’s much harder if you have to make these decisions within a few seconds, not knowing the other players’ cards, and not having much experience!

Posted in A Journey Into Poker | Tagged , , , | 1 Comment

The many faces of Day[9]

Somewhere in 1999, one of my friends recommended that I try playing StarCraft. It was my first RTS game, and I loved it. I played it with friends and online, made new friends through it, and enjoyed it thoroughly (including the soundtrack – so good!).

Unfortunately, I was struggling a bit with RSI back then, so I couldn’t play very much; fortunately, I had gotten to know some of the top Dutch players, and they often let me watch their live games. This was during the 1.07 patch (remember, when the Spawning Pool cost only 150 minerals?),  so there were no replays yet.

I’ve always enjoyed watching good players play games that I like. I like watching Snooker on TV, as well as observing 2 good players duke it out in StarCraft.

Fast-forward about ten years. StarCraft 2 just got into the Beta stage. People began playing it, and videos started popping up everywhere. I found out that the Team Liquid website was still hot, and came across some live streams of good players there. One of the streams that made me giggle was Debo’s stream – his swearing during games was amusing. Two other good streams were Crota’s stream and  ShoutCraft by TotalBiscuit.

During that search, I also encountered Day[9]’s stream, and his stream archive. Day[9] does a daily broadcast about StarCraft 2, each around 45 to 60 minutes long. Most of his shows consist of in-depth analysis of one or two games played by professional players.

Wow! This was exactly what I was looking for. I think I started watching just around SC2 release day, so the King of the Beta series was the first bit I saw of Day[9]’s show. Day[9] provides excellent commentary, and it’s obvious that he has tons of experience with both SC1 and SC2. Plus, using his analytical mind, he gives us spot-on analysis.

Day[9] also goes to SC2 tournaments to provide live commentary of the matches being played. Some of this also gets uploaded to the interwebs for us to watch.

As you can see in the screenshots, Day[9] uses an overlay in the middle right of the screen. This overlay hides the replay timer, so the viewer cannot see how long the replay will last. I like it: not knowing when the current game will end makes it more exciting to watch. Day[9] loves his overlay too, as you can see below.

By now, Day[9] has done over 300 dailies. For episode 100, he did a special about his life as a StarCraft gamer. This was an extra long episode, called My Life of StarCraft, where Day[9] talks about how he got into StarCraft, why his family supported him, and how this game changed his life. It’s very much worth watching – even if you are not into StarCraft at all.

Soon after I started watching Day[9]’s stream, he introduced Funday Monday, a weekly special, where viewers get to play with arbitrary, weird constraints (for example, “build a Carrier before expanding” or “build mass Queen”), and send replays of those games to Day[9]. Day[9] chooses the best and/or funniest games from the thousands of submissions, and shows them to the viewers.

One of my favourite episodes ever is “No Marines, Marauders or Tanks“, where Terrans get to build everything except those 3 core units. This leads to hilarious games with very funny commentary, which had me laughing non-stop.

Another classic is the series called “Team Monobattle“, where you play 3v3 or 4v4, and each member of your team has to announce publicly which single unit they will be making throughout the entire game. Some of the games that Day[9] has shown, have extremely weird (and crappy) combinations of units (for example: Raven/Brood Lord/Carrier/Immortal). Hilarity ensues.

Day[9] involves his audience in various interactive activities during the show, such as live polls via IRC (#day9tv on QuakeNet… and no, younger readers, that # is not a Twitter hashtag!).

He also talks to his computer.

However, the best thing about watching Day[9]’s show is… the toilet break.

No, Day[9], not your toilet break: my toilet break.

Of course, when bio breaking, I pause whatever I’m watching. And somehow, when I pause the Day[9] daily, Day[9] always ends up with a funny face frozen on my screen.

So, the lesson from this story: if you like StarCraft, watch the Day[9] daily. And pause often.

For those of you who are already watching the Day[9] daily, here is a challenge: can you figure out which episodes these screenshots were taken from? Hint: they’re all from episodes 200 and later. I know that some of you are crazy enough to re-watch them all 😉

Posted in games, starcraft | Tagged , , , , , , , , , , | 2 Comments

Terrible Websites 1

This is going to be a new section with a recurring theme. There are some terrible, terrible websites out there. It amazes me again and again what some people seem to consider cool or usable websites. In this series, I’ll share some of the gems with you that I’ve encountered over the years.

A note in advance: I am by no means attacking the people behind the websites. I’m sure their intentions are good. It’s just that these intentions are sometimes expressed in… interesting ways 😀

Let’s look at some examples.

http://www.zangerpetro.nl/ – a Dutch singer. The flaming background makes the page a hundred times more awesome.

http://detibetaanseterriernieuwssite.nl/ – a site about a certain kind of dog. The blue on blue text at the bottom isn’t very readable and the pictures give a rather chaotic impression. At the bottom, in the right, there’s a serious warning: it’s not allowed to link to this page except with express permission. The rest of the pages contain similar threatening texts.

http://www.welshcorgiclub.nl/ – more dogs. Note the wonderful message at the top about the ideal resolution. Also, the title doesn’t fit, so what do you do then? Yup, you use <marquee>!

http://www.applefly.nl/welkom_bij_applefly.htm – This is a graphic design company. Do I need to say more?

Have any other terrible pages I should post about? Feel free to comment them or email me about them!

Posted in Terrible Websites | Tagged , , | 2 Comments