• strict warning: Non-static method view::load() should not be called statically in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/views.module on line 842.
  • strict warning: Declaration of views_handler_filter::options_validate() should be compatible with views_handler::options_validate($form, &$form_state) in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_handler_filter::options_submit() should be compatible with views_handler::options_submit($form, &$form_state) in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/handlers/views_handler_filter.inc on line 589.
  • strict warning: Declaration of views_plugin_style_default::options() should be compatible with views_object::options() in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/plugins/views_plugin_style_default.inc on line 25.
  • strict warning: Declaration of views_plugin_row::options_validate() should be compatible with views_plugin::options_validate(&$form, &$form_state) in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.
  • strict warning: Declaration of views_plugin_row::options_submit() should be compatible with views_plugin::options_submit(&$form, &$form_state) in /is/htdocs/wp1020490_QI6MNRXUFU/www/ji-xiansheng/sites/all/modules/views/plugins/views_plugin_row.inc on line 135.

Matlab Lego Mindstorms Racing

Here's something I'd like to share. This is the result of a project at university just before christmas. It's a racing simulation for two players made in MATLAB. The game is controlled by steering wheels constructed with Lego Mindstorms parts, which allow for continuous steering. The tracks are generated randomly and collisions with the opponent are possible. However the most fun feature is the simple force feedback we implemented: A motor turns with proportional speed to the vehicle's speed and creates a vibrating effect and also makes some noise Smile
Here is a youtube link to a video of our project .

What the internet knows about you

It's scary what information any website can retrieve from your browserhistory. Actually turning off Java, Flash or Javascript won't help. Even deleting all your cookies doesn't do the job.
The Basic idea is to have a long list with many (popular) links. Now as you surely know, links you've visited once are often rendered different (eg. dark purple color). Using CSS, it is possible to detect these differently styled links and therefore the previous visited sites can be determined.
Of course, one can only tell which links on this particular list have been visited and luckily not every single history entry is displayed. However, this method works in all common browsers and could be regarded as a flaw in the current way the web works. Imagine, if you were a webmaster, you could check if any of your visitors has issued a certain search query on google (google search queries can be used as links: example).
For further reading on this topic I recommend the page "What the internet knows about you" (It also contains a demo figuring out if you have visited any of 5000 popular links).

Code Rush

The documentary film "Code Rush" has been released under a Creative Commons License. It is about the startup Netscape and their browser Netscape Navigator. From march 1998 to april 1999 a group of Netscape engineers were followed by the film crew. At that time Microsoft was rapidly taking away marketshare from Netscape. In order to save the company, Netscape decided to try a revolutionary and radical strategy giving away the sources of their browser. The code was gathered in the Mozilla project. Later in 2003 the Mozilla Foundation released its applications Firefox and Thunderbird very succesfully.

Internet Explorer 6 to be killed

Finally Youtube has decided to drop support for the outdated Version 6 of the Internet Explorer, which is still surprisingly often in use (10% - 20% of all internet users). Webdesigners appreciate this step because the Internet Explorer following its own standarts has always been a burden to them. It was often neccesary to do dirty hacks to get a page displaying nice in all common browsers. Besides the Internet Explorer 6 is known to be relatively insecure.
Now with a big services like Youtube (Digg and Twitter may follow soon) turning their back on the Internet Explorer 6, many users are more likely to upgrade to newer versions or even switch to an alternative browser. Youtube suggests their users to switch to Internet Explorer 8, Firefox 3.5 or Googles Chrome 2.



Lately I decided to leave my current mailclient Clawsmail and switch to a web-based solution. A requirement was to be able to intall it on a hosted webspace (Hosteurope in my case). Furthermore it should provide threaded views and filters to handle mailinglists. A quick search brought me the following candidates which I will discuss in detail below. All these webmailers are written in PHP and licensed under the GPL.


This is the veteran among the tested webmailers. SquirrelMail started in 1999 and looks a little antiquated compared to all the shiny Web2.0-Services today. It understands IMAP, but no POP3. Some of its advantages are that it doesn't necessarily need Javascript and works without a database.
Because it has little requirements installation should be easy. In fact there is a Perl configuration script which can't be run on most shared webspace, but I guess configuration can be done manually too. I haven't tried though, since Hosteurope already provides a SquirrelMail frontend to their customers.
Basic filtering is provided by SquirrelMail by coloring matching messages accordingly in different colors. However I prefer to have my filtered mails moved to proper folders. Possibly you could use a plugin to achieve this, but recently SquirrelMails webserver got compromised and they hold on access to the plugins for security reasons.


Not as popular as SquirrelMail, but rock solid and base of several other webmailers. In contrast to SquirrelMail it also supports POP3 in case you need it. While it nicely installs on a hosted webspace (MySQL is needed) it does not have any filtering capabilities which is a showstopper for me. Anyway I wanted to mention it here, because the following last two webmailers are based on IlohaMail.
It can display Images and HTML inline if you want. Searching messages is implemented (requires IMAP) and multiple identities are supported. Personally I really like the way the contacts list is arranged and find it very easy to create new contacts from received mails. The builtin calendar and bookmark manager are very basic.


Pretty webmailer based on IlohaMail and effectively has the same features but with much more eyecandy. It makes use of the latest web technology like XHTML, CSS2, AJAX and allows composing of messages with Richtext/HTML. Wether this is good or not, is up to you. Hosteurope now offers RoundCube as an alternative to SquirrelMail to their customers.


The last webmailer I tried (also based on IlohaMail) finally gave me what I was looking for. Well, I have to say almost. BlueMamba shows messages in a threaded view and allows for basic filtering, that is great. It isn't quite easy to install though. After some tinkering I finally had it working.
BlueMamba has a nice and clean user interface. Basic filtering is supported, enough to sort out incoming mailinglists. It features the nice contacts list from IlohaMail and has a improved calendar and bookmark manager.

As you may expect, BlueMamba has become my favourite webmailer. I think it has potential and at least is sufficient for my needs. I think I will write down how to install BlueMamba on a hosted webspace on post on this blog later.

My first set of Gimp brushes

Nothing extraordinary. I just figured out how easy it is to create your own brushes with Gimp. It is a set of simple runes which I came up with after some inspiration from the google image search. They don't have particular meanings (at least none I'm aware of). The actual shapes where created in Inkscape. Both Gimp and Inkscape are great opensource tools for creating graphics (some people still haven't found out). To use custom brushes in Gimp on your Linux box just copy them to ~/.gimp-2.6/brushes (assuming Gimp Version 2.6). I created a new Section for Gimp brushes on ji-xiansheng.de. Go there and download the zipped brushes

Fvwm, new kernel and buzz fix

I've once again switched my window manager. I dropped Xfce in favour of Fvwm (actually Fvwm Crystal since I dont want to mess too much with configuration files). Besides I also use Kazehakase instead of Firefox as my main browser now. It's all a little less convenient but the performance gain on my old laptop is great. Furthermore I compiled myself a new kernel and now got full working powermanagement features (I had experienced overheating during emerge -unD world ).
Other than that I visited Braunschweig today, where Daniel Willmann from the FSO-Team organised a buzz-fix party for neo freerunners. Now can enjoy buzz-free phone calls Smile

Javascript spectacle

Lately I have become tired of working on project 'Flummi'. The physics part has been rewritten several times now. Of course it has grown every time and today is capaple of much more than I need for 'Flummi'. Still I had the impression, that I wasn't really making much progress. That's why I decided to take a break and have a look at something new:
I learned javascript and wrote a simple game that can be played in your webbrowser. Sure, javascript wasn't designed for games, but it's sufficient for small ones. My game is called 'The Red Dot Game'.
Follow this link to play the game!
I hope it's fun. At least I had fun creating it and maybe I'll make some more and some other day continue work on project 'Flummi'.

Introducing Flummi

Two wonderful colliding quads

I'm developing a 2D physics game. I'm compiling with Freepascal and using SDL and OpenGL. It's running on Linux, but I'm also planning to create a Windows version.
I'm not going to tell a lot about gameplay at this point since I'm still working on the physics part (No I'm not using a solution like Box2D ... I like it the hard way Wink ). I'll just reveil that the 'main character' in the game is a Flummi, which roughly translates to flubber. The aim of the game is to shoot the Flummi into the level's goal, avoiding several obstacles. More information will be given when time has come Laughing out loud
At the moment I'm still struggling with determining the contact points of colliding polygons.

Touch screen protector

Freerunner without protection
Creating screen protector
Almost done

You are a Freerunner owner? You take care of your device? You don't want to spend a lot of money? Continue reading.
It only takes a few minutes to create a simple protector for the touch screen of your Neo Freerunner. Just get yourself some overhead transparency. Cut an exact rectangle sized 6.4cm * 4.8cm (What? You want dimensions in inch? Go fetch your calculator Wink ). You might think it is too large, but trust me, it fits into the edges between case and screen. However before inserting make sure there is no dust left on the surface.
I know this is not a perfect professional solution, but for me it works. I sometimes use a real pen on my screen by mistake. In this case I just create a new protection shield.