Tag: personal

Lenovo ThinkPad X121e

I am writing this on my new laptop: a Lenovo ThinkPad X121e:

Although my employer is so generous to provide me with a laptop for work purposes, I also wanted a new laptop at home for personal use. My only personal machine right now is my aging (and quite slow) 17 inch Apple Powerbook G4. Since most Apple software currently requires Intel processors, I can’t really upgrade it either. I also wanted something a bit more portable (no heavy, bulky 15-incher) with better battery life, which would be great for travelling.

While my work laptop runs Windows 7, I really miss having a UNIX environment available at times. I worked almost exclusively on Linux since 2003, starting out with Mandrake, moving from that to Gentoo and then to Debian to eventually settle on Ubuntu. A few years ago, I decided to move back to Windows due to bad hardware support on Linux (especially for newer laptops) and annoying bugs in Ubuntu. Nevertheless, I still prefer a UNIX environment for programming, and I love the power of the shell and how you can quickly chain commands together to produce something useful.

At first, I was thinking of just getting a new Apple laptop. Indeed, OS X is also based on UNIX but does have great hardware support and a nice UI. Furthermore, Apple builds high-quality hardware (I loved my Powerbook), and they sell the ultimate ultraportable laptop: the Macbook Air.

Unfortunately, I quickly discarded that idea when I realized again how expensive Apple laptops are. I didn’t really feel like shelling out about 1200 EUR just to get a Macbook Air with a decent amount of RAM and an SSD bigger than 64 GB. So I started looking around for cheaper alternatives. Instead of complaining about Ubuntu not supporting certain hardware, I decided to look for hardware that would Just Work (TM) on Ubuntu. There are also some things I didn’t like that much on OS X, such as the lack of a well-integrated package manager. At FOSDEM, I remember seeing most developers work on either Apple machines or IBM (now Lenovo) ThinkPads. Some people even used to say that Apple and IBM ThinkPad laptops are the only laptops really worth considering. ThinkPads also come in an ultraportable X series, which I thought was worth looking into.

While the professional ThinkPad X series laptops are again quite expensive, Lenovo also has entry-level models, such as the X100e, X120e or the X121e. These models come with either an AMD Fusion or an Intel Core i3 processor. The nice thing about the Intel model of the X121e is the fact that it’s quite well supported in Linux, and has received nice reviews. So, I decided to buy myself one.

In summary, here’s what I like about this laptop, compared the Macbook Air:

  • Half the price. It costs around 630 EUR, and when purchasing a 53 EUR 2-year Next Business Day On Site Warranty, you get a 100 EUR cashback. That means you can get the laptop plus 2-year warranty for around 580 EUR, which is a great deal, in my opinion. The AMD version even starts from 400 EUR.
  • More ports (Ethernet, 3x USB, VGA, HDMI).
  • Better battery life (up to 9 hours according to Lenovo).
  • Customizability (it’s quite easy to replace the HDD, battery or add more RAM).
  • Built-in 3G (HSPA) WAN and GPS module (I really like this feature).
  • Comparable size and weight (11.6 inch and 1.3 kgs, about 250g heavier).
  • Comparable build quality (the laptop feels very sturdy).
  • Comparable keyboard quality (with TrackPoint).

Disadvantages are the slower processor (Core i3 versus the Macbook’s Core i5 or Core i7, but probably fine for my needs), the lower-quality display (same resolution but the Macbook Air’s is better, although I do prefer matte screens), slightly noisy fan at times, and the less sexy design (I myself actually quite like the look and feel of the device).

Oh, and it has a nice sleep animation (probably inspired by Apple’s own pulsing LED sleep animation):

Let’s see how installing Ubuntu goes on this one.

New Homepage

I finally updated my homepage today. It used to be a custom Rails website, with RHTML views that I edited through SSH. I never got around to create a database model for my website, and to be frank, I am glad that I didn’t since my homepage’s structure changed a lot. On the other hand, having to login remotely and edit the view with Vim every time I wanted to add a publication to my homepage was too big of a burden. The net result was that I did not update my website as much as I wanted to.

A few months ago I decided to look for a better solution. I experimented with various solutions, including Drupal (with a lot of help from Wim Leers, thanks Wim!) and WikkaWiki (with a few tips from Dario Tarborelli) before finally settling on PmWiki. In this post, I will describe my rationale for choosing PmWiki over Drupal and WikkaWiki.

An advantage of Drupal is that it is extremely flexible. For instance, the website’s menu and corresponding URL structure can be completely customized. It also allows you to define content types such as “Course” or “Student” in a graphical way with the CCK module and visualize them with the Views module. However, this takes quite some initial work. Moreover, changes to the structure (e.g. allowing courses to have associated pictures of student projects) requires changing all this again. I believe that I should be able to change the structure of my homepage at any time. Adding a related publication to a software project or to a Master’s thesis should not involve a whole day of editing content types. Although I could use the Page content type for all my content, this is considered bad practice since Drupal only uses Page for static pages that almost never change. Of course, using Drupal only to provide a shared template and a global menu is massive overkill

In the same period, I read an interesting blog post on Academic Productivity about using a wiki to invisibly power a (research) homepage by Dario Tarborelli. A wiki seemed to provide a solution to structural flexibility, since it allows users to quickly rearrange content. However, as Dario points out, there are two problems that often make people suspicious of using a wiki for their website:

  1. anyone can edit the content of a wiki
  2. wikis look wikish

Dario demonstrates in the blog post that WikkaWiki can easily overcome both issues with access control lists and an easy-to-use skin system. He continues by giving a few advantages of using wikis for content management:

  • they allow you to edit and modify content at the speed of light
  • they allow you to easily embed all sort of contents in a page
  • they allow you to set granular access privileges for specific pages, which is a very powerful solution for collaborative work with colleagues and coauthors

I started to experiment with a WikkaWiki-based homepage and was able to very quickly migrate my content and create a custom skin. I was impressed! There was a catch though. WikkaWiki did not support file uploads in an easy way, and custom markup (e.g. lists with a certain CSS class) seemed to be hard to achieve. Having the ability to upload files was essential for me, since I did not want to use an (S)FTP client everytime I wanted to add a publication or screenshot. Custom markup would be nice to style my publications list. Although WikkaWiki supports embedding HTML directly, it is obviously not ideal to have large amounts of embedded HTML in the content of a page.

Then I decided to have a look at PmWiki . I already heard about PmWiki before. Jori used it to power his homepage, and Peter also used it to power the Mobile and Pervasive Computing course website. Of course, the fact that 6th most frequent author in HCI uses PmWiki to power his personal homepage and the homepage of his research group helps as well A few other examples of PmWiki usage by HCI researchers or groups:

But the question was of course: how can I use PmWiki to invisibly power my website? I decided to post a message on the PmWiki mailing list asking for help, and got many helpful responses. One of the things I especially like about PmWiki is the helpful and lively community. Everything I wanted to do with PmWiki was either explained in the Cookbook, or pointed out by someone on the mailing list. As an example of a very nice website invisibly powered by PmWiki, take a look at the Village School website.

These are the steps that I followed:

  1. Install PmWiki: this is very easy, just extract the archive and point a web browser to pmwiki.php (detailed instructions). PmWiki does not require a database, it uses flat files (yes, flat files!). That means you can easily copy a PmWiki installation from one directory to another (or even from one server to another).
  2. Create a new skin by copying the default pmwiki skin in a new directory and give it an appropriate name.
  3. Start editing the page template and CSS file to suit your liking. Hide typical wiki elements with CSS or by removing them from the template. PmWiki supports conditional markup so you can change the displayed page actions based on your login status. For more information, see this post on the mailing list and the documentation about page actions. You can also add conditional markup to hide the PmWiki documentation pages from the sidebar. If you refer to images in your CSS file, just keep in mind that the path is relative (e.g. refer to pmwiki/pub/skins/myskin/icons/trash.gif as background: url(icons/trash.gif);).
  4. Set a password for editing pages.
  5. Set up file uploads (disabled by default). Once uploads are enabled, PmWiki will automatically create the uploads/ directory when you upload a file. You might have to change the maximum upload size.
  6. Set up clean URLs like Main/Homepage instead of pmwiki.php?n=Main.Homepage (preferably with mod_rewrite). This is a lot easier than it sounds due to the excellent documentation.
  7. Done! Now you can start adding your content.

A few other random tips:

  • You delete a page by replacing its contents with the word “delete”.
  • Conditional markup is extremely useful to hide content that you don’t want to show yet. Just surround it with (:if false:) and (:ifend:) directives.
  • PmWiki’s markup is very flexible. You can easily add CSS classes to elements (see WikiStyles) and create advanced tables (see Table directives).
  • PmWiki supports wiki groups. This allows you to structure your pages in namespaces, so you can have for example both a Research.Activities and a Teaching.Activities page.

Finally, here is the result:

My new PmWiki-based homepage

All in all, I am very happy with it. I especially like the fact that I can add or change content quickly, wherever I am. All I need is a browser.

Deadline silence

It’s been pretty quiet here this week. Jan and me had a paper deadline, so I didn’t find the time to blog. I still have a few drafts lying around that I might finish somewhere next week if I find a quiet moment. Time to relax a bit now

Happy holidays everyone!

STRP festival redux

This is a quick update on my previous post about the STRP festival. Apparently, the technology expo continued at night, so I was able to see some of the demonstrations anyway. I wanted to share a few of them just to give an impression.

There were a set of large screens mounted in the expo that displayed a video of a woman’s face together with a power meter. When the lady smiles (no pun intended) , the power bar is green and filled to the top. When she stops smiling, it drops to the bottom and turns red. It took me a while to get the meaning of this power meter since the women only stop smiling once in a while There is a video available that gives some more details.

Face recognition (smile detection) @ STRP

I also had the chance to experiment with the i_AM table which was not very impressive in my opinion. Although it was definitely more simple than the reactables table, as a consequence it did not offer much functionality. Each object that was placed on the table was linked to a sample (e.g. a guitar loop) with a certain volume depending on its position on the table. When an object was pushed up or down on the table, its volume changed from loud to quiet. When it was moved to the left or to the right, it would become linked to another sample. When you turned an object, the portion of the sample that was repeated could be altered. I did not find the mappings logical, but then again the problem with these kinds of systems is that there has to be a way for the user to find out about the object’s affordances. This can be done by using objects that represent their affordances explicitly, or by displaying something helpful next to the objects. The i_AM table did not offer a way to find out about an object’s functionality.

i_AM demo @ STRP

I only took a few pictures, and most of them were blurry due to the low quality camera on my cellphone but there are quite some pictures of the festival available at Flickr, including the demo of Johannes (it seems his demo was also covered by DJ BROADCAST and Eindhovens Dagblad). Another cool concept was Vinyl workout where a record was projected on the floor and could be played by running around its surface in the direction you wanted it to go. Motor karaoke was a demo I didn’t visit, but which would have been fun to try. It is a bike race where the motorcycle is powered by the player’s voice. The louder the player screams, the faster the bike will go

Oh and the concerts were good as well

STRP festival

Time passed quickly this week, it’s Friday evening already. Tonight I am going to the STRP festival in Eindhoven.

STRP festival logo

STRP (pronounced “strijp” in Dutch) is a four-day festival that can be seen as a combination of a technology exposition and a music festival. Yesterday The Chemical Brothers opened the festival. Today, Radio Soulwax, Roisin Murphy, Mr. Oizo and Goose are amongst others performing.

I actually found out about this festival through Last.fm which mails me when there is an event nearby with artists I like. I had a look at the day program and found out that Johannes Taelman (one of our new colleagues) will be presenting a system he built. Another interesting project at the festival is i_AM, which is similar to the reactable and Audiopad projects. According to the authors of i_AM, the main difference with other projects that allow music composition through tangible interaction is that their system is more usable for novices. Unfortunately, I won’t arrive in Eindhoven until somewhere around midnight so I won’t be able to check out the technology demonstrations.

The concerts should be good, I’m looking forward to seeing the Dewaele Brothers.