Archive for the ‘Websites’ Category

CloudFlare: Speeds up and protects your website for free

Monday, June 20th, 2011

It’s not often that I get excited about a startup, but CloudFlare is one of them. CloudFlare can speed up websites by 50% and also protects it against Denial of Service, Web spam, Code injection etc.. The only thing you need to do is change the name servers of your website to the ones provided by Cloudflare. Signing up and changing the name servers is taking less than 5 minutes. The free account is probably good enough for most of sites. If you want more advanced features you can get that for $20 a month with additional sites costing you $5 per month.


Boycot CEO Killing Elephants for Fun

Thursday, March 31st, 2011

This really ticked me off today

I used to have a domain with GoDaddy because if you sign up with Google Apps for your domain there was an option to buy a domain at GoDaddy (I hope Google will remove this option soon now that it is known that the CEO killl elephants for fun)

Today I found the following email in my inbox from my current registrar Namecheap


The Purple Cow of GNOME

Saturday, August 28th, 2010

Several months ago I bought the book Small is the new Big by Seth Godin. The book is a collection of his best blog posts which you can read also read on his blog and got it’s title because of this post. I really became a big fan of his blog and books. On his blog Seth every day has new insights on how you need to market products and services. His post are fun to read and thought provoking. I definitely recommend subscribing to his blog.

Some of the concepts Seth is promoting are the following:

A product needs to be a purple cow. When you are driving and see black and white cows you won’t notice them. However if you all of sudden see a purple one you might stop because a purple cow is remarkable. When a product is remarkable it is worth talking about and it spreads. One of his earliest books The Purple Cow describes this.

Seth has the opinion that advertisement on TV and in newspapers don’t work anymore. Basically because there are many more choices we need to make and much more advertising than there used to be and we have less time that’s why we ignore most advertising. So instead of spending loads of money on advertising he advises to spend the money on making a remarkable product. However being remarkable is seen as risky by many (big) companies. So most companies choose to make average products and advertise them. However average products do not get noticed and talked about.

The Purple Cow of GNOME

After reading The Purple Cow it got me thinking what the Purple Cow of GNOME is? It certainly is a nice desktop environment (at least that is my opinion), but is it remarkable when you compare it to MacOS, Windows 7 or KDE? If GNOME is remarkable what is it then what is the remarkable thing?  Is that something that spreads? How can we make GNOME more remarkable?

Finally two nice videos of talks of Seth Godin

Click here if you can’t see above videos


Saturday, August 28th, 2010

A while a go I noticed a Flattr button on the blog of Seif Lofty. Out of curiosity I clicked on it and ended up on the Flattr website. Flattr is a micro donation service. You setup a monthly budget (minimal 2 euro) and that money is divided over all articles and things you Flattr. In the official Flattr video they use birthday cake as a nice metaphor.

Click here if you can’t see the video above

Flattr already seems to gain quite some momentum. E.g. when you google Flattr you get over 2M search results.

It’s funny to see that in a time where people like Rupert Murdoch are talking about pay walls because good news can’t be for free according to him something like Flattr is starting to catch on. Setting up pay walls for news will not be a success in my view, because there always will be a source where they get the same news for free.  I believe more in the model of Flattr where the content is free and people can make a donation. However I’m not sure if this would work Rupert Murdoch’s Times Online. Would somebody really consider donating money to Rupert Murdoch?

Flattr’ing GNOME

We could start adding Flattr buttons to the GNOME website or in About dialogs of applications such that people can show their appreciation of GNOME applications.  Thinkin about this a bit more the About dialog could also have a Paypal donation button. With these donations the GNOME foundation can fund hackfests and conferences.

Better experience for Mobile Readers

Sunday, February 14th, 2010

I just installed the WPTouch wordpress plugin on this blog. This means that if you read this blog on your mobile it’ll look something like this:

It’s optimized for touch and it loads significantly faster. Instead of downloading the plugin from the WPTouch website you can also simply install it from your wordpress admin interface by going to “Plugins” > “Add New” and search for WPTouch.

Using Google Analytics to track more stats in your website/webapp

Saturday, December 5th, 2009

You can use Google Analytics also to measure more stats then just the pages it loads by calling the analytics tracker yourself in some javascript code. For example to measure how many people click on a link that is referring to the main GNOME website you simply call pageTracker._trackPageview in the onclick parameter of a link

<a onclick="pageTracker._trackPageview('/outgoing/');" href="">GNOME Website</a>

In the example above you will see /outgoing/ in the stats of Google Analytics. In CheapRiver I even use it to track which books people are searching for. Since CheapRiver is a Google Web Toolkit application I use JSNI JavaScript Native Interface to call the pageTracker. I simply added the following method to one of my classes and every time somebody searches I call trackQuery(query)

private native void trackQuery(String query) /*-{
 $wnd.pageTracker._trackPageview('/search/' + escape(query));

Finding the cheapest Amazon Store for English Books

Thursday, December 3rd, 2009

I tend to buy English Books at Amazon. Since I’m living in the Netherlands I usually would check, and to see which store could make me the best deal. Prices differ quite a lot and since exchange rates also have changed quite you can save quite a bit of money.

However that required quite some work because you have to take into account exchange and shipping rates.

Hence I decided to make a website that does this automatically


As I was always impressed with the concept of Google Web Toolkit (GWT) and AppEngine I decided to give that a try. It also was the first time that I programmed something more than Hello World in Java. Overall I have to say I’m very impressed with GWT and AppEngine

  • It has a very nice integration with Eclipse
  • You program both server side and client side in one language i.e. Java
  • You can debug both client and server side in Eclipse, step through the code, set breakpoint, inspect variables etc. Basically everything what you normally expect when debugging a desktop app
  • GWT makes sure that you don’t have to learn all quirks that different browsers have with javascript as GWT just compiles different versions for different browsers (You still you have to know the CSS quirks)
  • Deploying your web application is a breeze. You make an account on AppEngine and you can deploy your app simply by pushing one button.
  • Free quotas on AppEngine are pretty generous. Hence if you don’t get too much traffic you can host it completely for free
  • Client Server Communication (RPC) is super easy. You just extends the class RemoteService and specify the prototypes and make sure that all the data structures you want to send over the line are implementing IsSerializable and GWT makes sure that everything works
  • Making a user interface is very similar to making a user interface for a desktop program. If you have experience with toolkits like GTK, Qt or god forbid MFC making a UI in GWT is easy
  • From your Java code you can still call Javascript libraries

There is actually just one thing I really dislike: the datastore. The datastore is the database that AppEngine is using

  • It’s a pain to get data in the data store. I for instance have a table of about 115.000 records which contain IP ranges and country codes. Hence based on connecting IP I can determine the country of the visitor and immediately can set the country. For the Java there is no upload tool available. Hence I decided to write a servlet and post the data to it. However on AppEngine you can only process a limited time otherwhise it throws an exception. Hence in the end I now send around a 100 records at the time than sleep for a second and upload the next 100 records. Even then app engine now and then throws an exception. So I had to built a retry functionality in the script. Even for deleting the data I needed to write something similar. In the end it takes several hours to upload all the records. I’ll publish how I did this in a following blog post.
  • If you want to do a query you have to get an instance of the PersistanceManager. This is very slow and takes a few seconds. That’s also the reason you see the spinner running in the exchange rate block on cheapriver. It just gets four floating point values from the database but if the PersistanceManager is not in memory anymore it takes several seconds.

As I’m a terrible graphic artist I had the site and logo design done by Michael Katindig of Massive Method in the Philippines. He’s done a great job for a good price. So if you have graphic design work I can recommend Michael.

While doing all this I had to think of two nice books I recently : The World is Flat by Thomas Friedman and The 4-Hour Workweek by Timothy Ferris. Both basically argue that because the world is so flat at the moment anybody can start easily an international business with minimal investments. Basically by outsourcing almost everything. Many services furthermore have a kind of pay as you go model and need very limited upfront payment.

  • I bought a domain for $8.99 at GoDaddy
  • For Google AppEngine I still don’t pay anything because I’m using the free quota. If CheapRiver gets a huge number of visitors I probably need to pay something but by that time enough people buy something at Amazon via CheapRiver such that I should be able to afford it from the affiliate fees.
  • I signed up for a free Google Apps account to have email addresses
  • Massive Method made the graphics and web design for a couple of hundred dollars
  • And lastly I put of course quite some hours in of my free time to program CheapRiver, but that has been a fun learning experience

I hope you find CheapRiver useful. Suggestions for improvements are welcome

Web stats for GNOME websites (Piwik)

Thursday, November 12th, 2009

Jeff Schroeder has installed Piwik on the GNOME servers such that we can get more advanced web statistics. Based on that info the marketing and the web team can for instance try to improve conversion rates of Friend of GNOME donations.

For the gnomeweb-wml and the foundation-web module I’ve changed the scripting for *.wml files such that the necessary piwik tags are automatically added.

I’ve noticed that not all web pages use *.wml files to generate html pages. So if you want to track your pages you’ll need to either convert your pages to wml files or put the tracking tag yourself on each page.

For pages on the tracking tag is the following

<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "" : "");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 1);
} catch( err ) {}
</script><noscript><p><img src="" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->

For pages on you need to add the following

<!-- Piwik -->
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "" : "");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 4);
} catch( err ) {}
</script><noscript><p><img src="" style="border:0" alt=""/></p></noscript>
<!-- End Piwik Tag -->

The web statistics are available at If you would like to have an account on that just send me your GNOME login account and I’ll make an account and sent you your password.

Change a picture of yourself to a moving video

Saturday, September 19th, 2009

Just came across this cool Japanese website called MP Change. You can upload a picture of your face and after that the application creates a video out of it in which your face, mouth and eyes move. Furthermore you can also change your hair, put a mustache etc. It looks all quite natural.

Make AJAX Web Applications with C++

Saturday, September 19th, 2009

I’ve been playing around with Google Web Toolkit and Google App Engine in the past couple of months. I should be launching the web app soon. As my background is more in desktop programming I’m very impressed with the ease of use of GWT and App Engine. It integrates really nicely with Eclipse and makes making an AJAX enabled web app really easy because it generates all javascript for you.

A colleague at work send me a link to Wt. Which basically tries to do the same but does this with C++.  It also has an embedded webserver which makes it ideal if you for instance want to run it on an embedded device because its resource usage is very low.

Dr. Dobbs has a nice article describing Wt.