I decided to re-activate some of the articles I've unpublished since the SACEM episode.

First, Khmer sheet music, especially all the ancient music: I don't think there are music editors who will profit of that, because it's not famous, the country is recovering from the last civil war. I think people have better to do than chasing people like me who make some free sheet music based on classic repertoire of Khmer music.

Second, the MP3 where I play arrangements, or music with friends. Some are played by a music software, not by me. I don't think I should be chased for that, what is the interest in the music editor to chase me because I play some arrangement of a music? If there is no sheet music, the only risk I see is for me: some malicious people can take my MP3 and make an album of their own without telling me and take credit on it. It nearly happened once for Do As Infinity music!. I don't care taking the risk, I just want to share some music, it's open, it's the open source thinking.

Displaytag is a tag library for use in JSP in J2EE Web applications. The official page is here and it's a useful library when you want to make tables rapidly, with features like sorting, paging, even/odd lines with different colors, etc...

However there are missing features, and I saw that the SVN repository is a bit dead (last commit at June 2012). I wanted to add a new cool feature that I will describe here. Go check my Github Displaytag repository to get my fork with this new feature.

Feature description

You have paged results, say 20 pages listing 10 lines of results each, and you want to display all the results at once because you don't want to spend all the time searching through the 20 pages.

I added a "View all results" link next to the pages links if they exist: if you click on it, all the results are displayed, and no paging anymore. You can also keep using the sorting feature while seeing all the results.

This feature is activated when you use the attribute showViewAllResults of the table tag, and set it to true. Therefore, you can use it whenever it pleases you.

Implementation

If you want to know how I converted the SVN repository to a git repository, read the README.md file on the repository.

I implemented the new features in the shang branch.

Displaytag uses dynamic generated parameters to manage paging, sorting, ordering. I added a new parameter, d-xxxxx-viewAll (xxxxx represents the generated number) set to 1 when you click on the link "View all results". This tells displaytag to set pagesize=0 and then removes all paging as long as the parameter is in the URL.

The dynamic parameter is necessary, since you may have 2 or more tables in one page, and may want to view all results only for one table. Moreover, this parameter must be kept when you click on a column to sort the results, otherwise the pages come back again and you lose the benefit of this feature.

The "View All results" link is displayed only if showViewAllResults=true.

I've been practising every day the piano, trying to follow the Piano practise method which I began on mid September (remember this article?)

The pieces I've practising are these ones, in chronological order:

Pieces I continued to practise "cold":

Mozart - Piano Sonata K 333 1st movement in Bb Major

I've got all in my head, but I always bump some notes somewhere, because I'm not as focused as I should be. It's very difficult to keep concentrated all the time, that's why sometimes I forget what to play. It's like I let my hands play all by themselves, but sometimes they need my brain to anticipate the next notes: if I'm absent at that time, hop, I fail.

For me, the most difficult part is the 2nd theme (in F major at the 1st exposition, in Bb major at the 2nd exposition):

You have to be focused not to make a mistake, and stay regular.

The method I used was to repeat very fast hands separate the same pattern over and over. And then replay it hands together at the tempo. But nowadays I only play it from beginning to end, so I can't help myself make mistakes during the piece.

Schubert - Piano Sonata D959 4th movement (Rondo) in A Major

This piece is very long. I played it a lot, but there's always a part where I make a mistake. And the last quarter of the piece is somewhat difficult to memorize since I learnt it before learning the method. Not that it's difficult to plug the parts into the brain, it's because there are lots of measures to put together, and to complicate all of this, they look like each other.

For example, the part which begins like this:

It takes 2 pages to get over it, I'm bored when I play it, so I often make a mistake.

I love the 2 themes in their completeness, so beautiful. I also like the way the 2 hands talk to each other. Thanks to Jonathan Biss and his course on Coursera, I learnt that Schubert was inspired by a Beethoven's Sonata where he used the same structure: 2 hands talking to each other, Cuts in the theme near the end, Presto at the coda.

1st theme:

2nd theme: (in E major, 1st exposition)

In fact I haven't played it for days now, I'm so focused on the Bach's inventions.

Schubert - Impromptu in F minor

I've learnt it a while ago, so didn't take so much time on it. Very pleasant to play, even if I don't really like the first theme in F minor.

Bach - Inventions n°8 (F major), 1 (C major) and 13 (A minor)

I play them when I'm "cold", in order to test if I can play them without mistakes. Every now and them, I still make some, especially in the 13th one.

New pieces I learnt on the flow:

Bach - Invention n°2 (C minor)

It's a piece that I didn't like because of the melody which I don't think is beautiful. Anyway, the structure of the piece is awesome, since it's some kind of canon, Bach is really a genius.

So it's hard to play, and before, with I did sightreading, I was unable to play it correctly. Of course, you have to practise it hands separate (HS) before playing it hands together (HT)! (unless you have a IQ of 200!)

After practising a lot HS and memorizing each hand by heart, I was able to play it HT. Slowly at first, and then when I was at ease, I could go faster.

Anyway, to learn it by heart HS is easy, but learning HT on the fly, how hard it is... I think that's it's the best way to memorize the piece HT, because if I play HT while reading the score, I don't memorize. Because sight reading is easy for me if the piece is not too hard. I don't remember if it was written somewhere on the method if you have to try to play HT without the score, but it's a difficult part, poor brain!

I'm happy because now if I play this piece cold, I can play it without mistakes... 3 times on 4...

Bach - Invention n°3 (D major)

Tricky piece to memorize, still making some mistakes.

Bach - Invention n°15 (B minor)

I've played it a long time ago, it's some kind of revision.

Bach - Invention n°4 (D minor)

idem

Bach - Invention n°6 (E major)

idem.

Mozart - Piano Sonata K333 2nd Movement in Eb Major

I'm very fond of this piece.

Mozart - Piano Sonata K333 3nd Movement in Bb Major

Tricky to memorize, but once you know how to play each part, and where is the repeated theme, it's a matter of time and practise.

Cesar Franck - Violin & Piano Sonata - 1st movement in A major

I play with a violonist friend, this whole sonata is wonderful. This movement is kind of hard to learn, it's mandatory to learn it by heart before playing some parts :)

Cesar Franck - Violin & Piano Sonata - 2nd movement in D minor

The most difficult movement of the sonata, but so good to play at real pace. I had to memorize nearly the whole piece in order to play it easily with the violin. It's so frustrating to play by sight reading, only focusing on the piano, and not listening to your partner playing the violin. The best is to listen while you're playing: it's some kind of reward to your practise.

Cesar Franck - Violin & Piano Sonata - 3rd movement in F# minor

The tricky part is the theme where the left hand jumps. 2 times. Learning this theme by heart is hard, because the chords sequence is not very easy to read.

Cesar Franck - Violin & Piano Sonata - 4th movement in A major

Very melodic movement, need to learn by heart nearly all the piece because of the jumps and the complexity of some parts.

I'm thinking of taking one piece and another to explain with details how I learnt it with the method. And even explain my own analysis of the piece, it may not be complete since I'm not a musicologist. But that takes a lot of time, so if you're interested in that (or something else I didn't thought of), could you let me know in the comments? Maybe I can try to make a video, but I always refrain to do one because of the mistakes, and also because I don't think it will be interesting for anyone.

It has been a long time I wanted to have XBMC on a device other than my computer. Before my hard disk crashed, I had XBMC on the computer, linked to 1 monitor and 1 TV. I had a config that launches XBMC on the TV instead of the monitor.

It worked well, but I always had to have my computer switched on to launch XBMC and watch my favorite series.

I decided to get a Raspberry Pi and install XBMC on it. Well a Raspberry pi alone is useless. I had to buy:

a SD Card of 4 Gb minimum (it's the "hard drive" of the mini PC)

a HDMI cable male/male to link the raspberry Pi and my TV. Video AND Audio data will route through it. It's a wonderful thing, no need to get another cable to get the audio data!

a SD card reader: I needed it to install Raspbmc on the SD card with my PC.

I already had:

Raspberry pi

Ethernet cable to link the raspberry pi and my switch (where is connected the NAS which contains all my series)

the TV

a mouse

a keyboard (not necessary)

the alimentation block: I took the one I had with my Nexus 7.

I inserted the SD card on the SD card reader, and plugged it in my PC. I did the install on Windows because there are some problems on the Linux install script, because of the language (French).

The soft used to install Raspbmc on the SD card is great, you just have to select the SD card drive, the image file of Raspbmc, I did a live install (not persistant).

Once Raspbmc is installed on the SD card, I plugged the SD card on the Raspberry pi, linked the HDMI cable with the PC, linked the Ethernet Cable to my switch.

And then I plugged the alimentation block to get the current to the rasberry pi. On the TV, I watch the HDMI2 source and see the installation progress. After some reboots (take about 30 mn), it's ready, The raspberry pi is on a IP given with the DHCP protocol.

I prefer to get a Fixed IP, so you can set that with the "Programs" menu.

First configure with the mouse the web server and make sure it's on. Then I use my Nexus 7 where I installed Yatse to use it as a remote control. Then you can remove the mouse. One extra with Yatse is that you can use the Virtual keyboard to type what you want, very useful instead of typing letter by letter with the arrows.

Then I had to configure the time zone, it was not correct.

Then I configured the NAS to get the NFS protocol work: on a synology NAS, there is a bug on the /etc/exports file. (insecure_locks -> insecure) Log in by SSH (use Putty on Windows) with the root user, and use the admin password to login.

Then I could access to my files on the NAS with XBMC when I wanted to add Videos, by using the NFS protocol.

I tried a bit the indexation of the media, but it's slow.

I then tried some extensions, but Youtube doesn't work, it makes the raspberry pi reboot. I don't recommend using these internet extensions since it's too slow to use. I even tried the Passion-XBMC extensions, which are a good addon for french people (Replay for TV channels). But very slow to use here.

If the navigation is a bit slow, the video playing is good. However, some problems when you want to move the cursor of the video: the subtitles disappear. It's better to use the fast rewind/forward to keep the subtitles on.

To conclude, it's wonderful, because when I need to watch something without using my PC, I only have to plug the alimentation block to get the current, get my Nexus 7, and then choose the video to watch. To switch off, I log out on Raspbmc and then plug out the current. The raspberry pi is very small, so in a little box, it's discreet.