Shuffle your Dreamhost rewards page

Back at the day Jesse Ruderman wrote a script putting the block containing “You currently have $X.XX of Rewards payments built up!” at the top of the Dreamhost rewards page. Now some people might find it useful, but there are also other people (like me), without any payments built up (yet…), who would like to see the “Referral Reports” block at the top. Here is the greasemonkey script that does exactly that:

While considering the code of those two similar scripts, with all due respect to Jesse, I think that my solution is more general and simpler at the same time (always KISS), meaning that it allows you to reorder all of the blocks in any way you want (and it’s done in a painless way too).

There’s also a word of advice to myself (and maybe to others as well) – or in other words, a reminder. When creating greasemonkey scripts, the simpler hack you use, the better your script will be. It’s really futile trying to protect your script from the HTML changes. You just can’t predict every single one of them. All of those scripts are just hacks, that can be broken with just a slight change in the HTML code. So you shouldn’t worry about your script not being robust enough. That’s ok. You will have to fix it at some point in the future anyway.

Have fun!

Poland on Google Maps

Google Maps now features satellite photos of the whole wide world, which means that Poland is also there! And on top of that some of the bigger cities (like Kraków, Warszawa, Gdańsk) have pictures available at the maximum zoom level (which means they are extremely detailed). At this rate Google Maps will dominate all geo/mapping applications in two years tops.

Here are some of my most important places:

Damn, this is fun! I have notified all of my friends showing them various places and all of them were like “wow… this is great”. In fact, it’s more than that. It’s AWESOME.

As usual, Marek Futrega spotted it first.

Review: It All Starts Today (1999)

Visit IMDb for more details about It All Starts Today

A very touching movie about a schoolmaster of a local kindergarten in a small and very poor French town, where unemployment rate reached 34% (more than in Poland, incredible!). Daniel Lefebvre (played by Philippe Torreton), the schoolmaster, has to fight with the Social Security System, Child welfare and even the mayor of the city, to actually make some change. Unfortunately, it only gets worse and worse. This frustrating task brings him on the verge of an emotional breakdown.

It all Starts Today lasts for nearly two hours, but it doesn’t lose its pace even for a single minute. We see Daniel in constant motion, dealing with large arrays of problems. And there are lots of them, ranging from personal dilemmas, troubles with both kindergarten and local children to dealing hostile attitude of Child welfare employees towards him (when in fact they should cooperate, instead of fighting each other).

This is a serious political drama straight in your ass face. Only this time it is not directed by Ken Loach, nor Mike Leight, but by a French director Bertrand Tavernier. We can clearly see his inspiration by the works of those two. It only makes this movie more worth one’s while.

Simply said, it just blew me away.

Ça commence aujourd’hui/It All Starts Today (1999)

Rating: 10/10


Whew! I have just finished Hapland 1. A lot of effort had to be put in to actually complete it! This game is unbelievably hard. I ditched it two times only to return after a couple of days – but as the saying goes – nothing beats the fresh mind. Each time I moved a few steps closer to the goal. And, of course, each time I got blocked at some point. However, I am a very stubborn and ambitious person, so when I had my goal set to finish this game, I intended to do so. And so I did. FINALLY! So now it’s time for Hapland 2, which seems to be much more complicated (which means that I’ll be more than happy to finish it within a month).

Hapland 1 game

This game is way too addictive…

And now for the thing that came here for:

Trace your referrers in real-time

One of the magic things about Dreamhost is the ability to login to your account using ssh. Apart from standard things that you can do with it, like compile and install any program that you like (excluding those, which require root access, of course), you can also experience a little bit of magic if you run this command:

tail -f current-httpd-accesslog

There is really something special about tracking your website’s visitors as they come. And, of course, the most interesting thing is actually knowing where they come from (also known as referrers). The problem with this command is that it prints lots of garbage on the screen (like timestamps, response codes, sizes, etc.). The problem is that you cannot grep your real-time tailed log. Why? Don’t ask me, I’m not a Linux guru. You just can’t and that’s it. You can, however, write a script, which deals with that in its own way. And this is what I’ve been writing for the whole day. It was both fun and painful to learn for the n-th time all those shell hacks and quirks. Was it worth it? Sure it was! As a result I came up with this little bash script to trace your referrers in real-time. You can download it or view it below. I must warn you, though. It is highly addictive. Really…


# ========================================================================
# ========================================================================
# What?
#   Real-time website referrers tracer is a shell script that lets you
#   trace your visitors as they come. Script works in an ultra compact
#   four-columns view :)
# Why?
#   Because you cannot do 'tail -f access_log | grep something' and you
#   really want to grep out most of the stuff that your httpd puts in
#   the logs.
# Requirements:
#   - website (with not too low and not too high traffic),
#   - shell account on the server where your website is hosted,
#   - access to httpd logs that use the COMBINED format.
# Installation:
#   - copy anywhere in your home directory,
#   - edit the script and set the 'log' variable so it actually
#     points to your current httpd log,
#   - make sure the script has execute rights (chmod +x trace-referers).
# Running:
#   - just run the script and watch the screen.
# Version: 0.2 (2005-06-18)
# Author: Paweł Gościcki,
# No copyright rights. You can do whatever you want with this. You may even
# claim this scrip has been written by you from the very beginning ;)
# If you, however, improve it, send me a copy (
# Based heavily on the tgrep script by Ed Morton (

# =============

# Where your httpd log file is

# What files to exclude (request for those files won't be shown, regexp syntax)

# Width of request and referrer columns (set it to match your terminal's width)

# ===========

# Check if log file actually exists (and is readable)
if [ ! -r "${log}" ]; then
echo "Cannot access log file: $log"
exit 0

# After startup we will output few lines
start=`wc -l < "${log}"`
start=$(( $start - 30 ))
if (( ${start} < 0 ))
then start=$((0))

# Main loop
while :
  end=`wc -l < "${log}"`
  end="${end##* }"
  if (( ${end} > ${start} ))
    start=$(( $start + 1 ))
    sed -n "${start},${end}p" "${log}" | egrep -v "${exclude}" | \
    awk -v col_width=$col_width '{

      # we are only interested in GET/POST requests
      if ( match($0, /\"(GET|POST).*?\"/) > 0 )
        split($0, fields, "\"")

        # IP_ADDRESS
        tmp = $1
        while ( length(tmp) < 15 ) tmp = tmp " "
        printf "%s", tmp " "
        tmp = substr(fields[2], 0, index(fields[2], "HTTP/") - 1 )
        tmp = substr(tmp, index(tmp, " ") + 1, col_width)
        while ( length(tmp) < col_width ) tmp = tmp " "
        printf "%s", tmp " "
        # REFERER (the juice)
        tmp = fields[4]
        while ( length(tmp) < col_width ) tmp = tmp " "
        printf "%s", tmp " "
        # USER_AGENT
        printf "%s", fields[6]
        # new line at the end
        printf "\n"


  # this is an endless loop executed every second
  sleep 1

Your current hosting provider does not support ssh access? You might then want to read my other post about hosting with dreamhost for as little as 9$/year. Have fun!

Rolling with Ruby on Rails on Dreamhost

As of yet it is unofficial, but Dreamhost has indeed added support for Ruby on Rails (v0.12.1) together with FastCGI!

I have just tested it briefly and it works as it is supposed to.

If you want to turn FastCGI on, you must log in into your Dreamhost panel and go to Domains -> Web. Single checkbox and FastCGI is enabled. Couldn’t be simpler.

Dreamhost, regarded by many as the hosting company is indeed staying on the cutting edge, being the first major player to support Rails.

UPDATE: It’s now official.


Apple and Intel merger?

Apparently there seems be some hidden truth beneath the Apple’s decision to switch to the Intel chips. Robert X. Cringely suggests that it might be that Intel is planning to buy out Apple (just another word for merger). I must say that he uses some really convincing arguments. On the other hand the rumor that Intel might be producing PowerPC chips for Apple was very sensible and convincing too.

Here are some excerpts:

If Apple is willing to embrace the Intel architecture because of its performance and low power consumption, then why not go with AMD, which equals Intel’s power specs, EXCEEDS Intel’s performance specs AND does so at a lower price point across the board? Apple and AMD makes far more sense than Apple and Intel any day.


The vaunted Intel roadmap is nice, but no nicer than the AMD roadmap, and nothing that IBM couldn’t have matched. If Apple was willing to consider a processor switch, moving to the Cell Processor would have made much more sense than going to Intel or AMD, so I simply have to conclude that technology has nothing at all to do with this decision. This is simply about business – BIG business.

Read the full article: Going for Broke.

Vendor lock out

We are all familiar with the term vendor lock in (and it’s no news that it’s mainly associated with Microsoft), but a vendor lock out? Apparently this is what FeedBurner is doing with their latest offer:

Let’s say you decide you want to stop using FeedBurner. You loved the services, you loved the customer support, you loved everything about FeedBurner, but let’s face it: you’re going crazy with all the delightful services, and you’ve decided you can’t take it anymore. You want out. You’ve always been able to do this if you run your own server: just like you redirect your feed traffic to FeedBurner, you can redirect your traffic away from FeedBurner. No problem.

The only disconcerting fact is that they provide the return redirect for 31 days. After this period they delete your feed/redirect permanently. Other than that – they play very nice. Who knows, maybe I’ll switch my RSS feeds to them as well?

My real name is Paweł Gościcki

“Who is Paweł Gościcki then?” – you might ask. And I will gladly answer you. He is what I like to call my English alter ego. And no, I don’t have a split personality disorder, no matter what you might think. I use Paul instead of Pawel, because it is the English equivalent of my Polish name (yes, I am from Poland) and it is in fact a blog written entirely in English. Using Paul here just seems more natural to me.