17 Sep

scons

I installed KleanSweep earlier. It was the first time I came across the SCons installation script in action. There has been some talk about SCons recently on Planet KDE recently, as KDE is switching from the standard Make/Autoconf/whatever mixture to the simpler one-package SCons.

I’m impressed! Not only was the build quicker, but it gave me only the relevant information that I was interested in. Usually, a ./configure && make takes forever, and dumps screen after screen of mumbo-jumbo to the monitor, but here is the total output of the installation:

[kae@kae kleansweep-0.1.5]$ ./scons
scons: Reading SConscript files ...
Checking for kde-config           :  kde-config was found as /home/kae/kde3.5-alpha1/bin/kde-config
Checking for kde version          :  3.4.90
Checking for the qt library       :  qt is in /usr/local/qt-3.3.6
Checking for uic                  :  uic was found as /usr/local/qt-3.3.6/bin/uic
Checking for moc                  :  moc was found as /usr/local/qt-3.3.6/bin/moc
Checking for the qt includes      :  ok /usr/local/qt-3.3.6/include/
Checking for the kde includes     :  ok /home/kae/kde3.5-alpha1/include/
scons: done reading SConscript files.
scons: Building targets ...
cd doc/en && meinproc --check --cache index.cache.bz2 index.docbook
/usr/local/qt-3.3.6/bin/moc -o src/filelistview.moc src/filelistview.h
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/filelistview.o src/filelistview.cpp
/usr/local/qt-3.3.6/bin/moc -o src/filelistviewtarget.moc src/filelistviewtarget.h
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/filelistviewtarget.o src/filelistviewtarget.cpp
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/fileviewitem.o src/fileviewitem.cpp
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/logwidget.o src/logwidget.cpp
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/main.o src/main.cpp
/usr/local/qt-3.3.6/bin/moc -o src/sweeperwizard.moc src/sweeperwizard.h
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/sweeperwizard.o src/sweeperwizard.cpp
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/sweepfileinfo.o src/sweepfileinfo.cpp
/usr/local/qt-3.3.6/bin/moc -o src/sweepscanner.moc src/sweepscanner.h
g++ -I/home/kae/kde3.5-alpha1/include/ -I/usr/local/qt-3.3.6/include/ -O2 -DNDEBUG -DNO_DEBUG -DQT_NO_TRANSLATION -I. -Isrc -c -o src/sweepscanner.o src/sweepscanner.cpp
g++ -Wl,--rpath=/usr/local/qt-3.3.6/lib -Wl,--rpath=/home/kae/kde3.5-alpha1/lib/kde3 -Wl,--rpath=/home/kae/kde3.5-alpha1/lib -o src/kleansweep src/filelistview.o src/filelistviewtarget.o src/fileviewitem.o src/logwidget.o src/main.o src/sweeperwizard.o src/sweepfileinfo.o src/sweepscanner.o -L/home/kae/kde3.5-alpha1/lib -L/usr/local/qt-3.3.6/lib -lqt-mt -lkdeui -lkio -lkdecore
sed 's/\@PERL\@/#!\/usr\/bin\/perl/' < src/kleansweep-helper.in > src/kleansweep-helper
scons: done building targets.
[kae@kae kleansweep-0.1.5]$ ./scons install
scons: Reading SConscript files ...
mkdir -p /home/kae/kde3.5-alpha1/share/doc/HTML/en/KleanSweep && cd /home/kae/kde3.5-alpha1/share/doc/HTML/en/KleanSweep && rm -f common && ln -s ../common common
scons: done reading SConscript files.
scons: Building targets ...
Install file: "src/kleansweep-helper" as "/home/kae/kde3.5-alpha1/bin/kleansweep-helper"
Chmod("/home/kae/kde3.5-alpha1/bin/kleansweep-helper", 0755)
Install file: "src/kleansweep_bar.png" as "/home/kae/kde3.5-alpha1/share/apps/kleansweep/kleansweep_bar.png"
Install file: "src/kleansweep.desktop" as "/home/kae/kde3.5-alpha1/share/applnk/System/kleansweep.desktop"
Install file: "src/kleansweep" as "/home/kae/kde3.5-alpha1/bin/kleansweep"
Chmod("/home/kae/kde3.5-alpha1/bin/kleansweep", 0755)
Install file: "icons/hi16-app-kleansweep.png" as "/home/kae/kde3.5-alpha1/share/icons/hicolor/16x16/apps/kleansweep.png"
Install file: "icons/hi32-app-kleansweep.png" as "/home/kae/kde3.5-alpha1/share/icons/hicolor/32x32/apps/kleansweep.png"
Install file: "doc/en/index.docbook" as "/home/kae/kde3.5-alpha1/share/doc/HTML/en/KleanSweep/index.docbook"
scons: done building targets.

scons: *** Dependency cycle: doc/en/index.cache.bz2 -> doc/en/index.cache.bz2 -> /home/kae/kde3.5-alpha1/share/doc/HTML/en/KleanSweep/index.cache.bz2 -> install
File "/home/kae/compile/kleansweep-0.1.5/scons-local-0.96.1/SCons/Taskmaster.py", line 145, in _find_next_ready_node

the only thing I have a problem with is that the last line, with the ‘***’, is incomprehensible to me – it looks like a warning, but I don’t know what it means.

17 Sep

flight of the bumblebee

This is just a few tips on how to play this adaptation of Rimsky-Korsakov’s Flight Of The Bumblebee for guitar.

First off, loosen up your left hand’s fingers by dipping them in some warm/hot water for about 30 seconds. This is needed for me, anyway, as I don’t have great circulation. I leave the right hand alone, as it’s mostly wrist movements there.

With every tab you come across, there are some ways of playing things that just seem to be easier.

This piece, for example, is in the original:

|------------------|-----------------|------------------|------------------|
|------------------|--4--------------|------------------|--4---------------|
|--2-------7-------|--6--------------|--7-------7-------|--6---------------|
|----0-0-0---0-0-0-|-----------------|----0-0-0---0-0-0-|------------------|
|------------------|-----4-4-4-4-4-4-|------------------|------------------|
|------------------|-----------------|------------------|------------------|

For some reason, I find it easier to play it like this:

|------------------|-----------------|------------------|------------------|
|------------------|--4--------------|------------------|--4---------------|
|--2-------7-------|--6--------------|--7-------7-------|--6---------------|
|----0-0-0---0-0-0-|-----------------|------------------|------------------|
|------------------|-----4-4-4-4-4-4-|----5-5-5---5-5-5-|------------------|
|------------------|-----------------|------------------|------------------|

I’m not sure why I find that version so much easier to play – maybe it’s because there is a similar pattern throughout.

The next one, though, I can explain. Here is the original:

----0---0---0---0-|-------------------|--------------------------|
------3---1---0---|-------------------|--------------------------|
------------------|--2----------------|--------------------------|
--2---------------|--2----------------|-----------------11-12-13-|
------------------|--0----------------|--11-12-13-14-15----------|
------------------|-------12-13-14-15-|--------------------------|

--------------------------|--------------12-14-15-16-|--17--------|
-----------------------12-|--13-14-15-16-------------|------------|
--------11-12-13-14-15----|--------------------------|------------|
--14-15-------------------|--------------------------|------------|
--------------------------|--------------------------|------------|
--------------------------|--------------------------|------------|

My own version, while it may look more difficult, is actually much easier:

----0---0---0---0-|-----------------|-----------------|
------3---1---0---|-----------------|-----------------|
------------------|-2---------------|---------5-6-7-8-|
--2---------------|-2-------2-3-4-5-|-6-7-8-9---------|
------------------|-0---------------|-----------------|
------------------|-----------------|-----------------|

-------------------------|-------------12-14-15-16-|-17--------|
--------------9-10-11-12-|-13-14-15-16-------------|-----------|
--9-10-11-12-------------|-------------------------|-----------|
-------------------------|-------------------------|-----------|
-------------------------|-------------------------|-----------|
-------------------------|-------------------------|-----------|

To play the original, you would need to have pretty big hands, as it’s hard for me to play high frets on the low E and A strings. Also, there are five notes per string on the original, which means a finger would need to slip up a fret for each string. This is okay every now and then, but to do it in rapid succession can be tricky.

With mine, the trick is to play four notes from index to pinky, then move the hand quickly up to play the next four in the same way. This is not hard to do. The hardest part is actually making the transition sound clean. That comes with practice.