<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4419419196674784537</id><updated>2012-01-13T07:29:52.882Z</updated><category term='Rosegarden'/><category term='OMR'/><category term='Xen'/><category term='Rocks'/><category term='Fedora'/><category term='Yum'/><category term='books'/><category term='Probability'/><category term='sage'/><category term='SIP'/><category term='SVG'/><category term='internet access'/><category term='Palm'/><category term='Gnus'/><category term='Mathematica'/><category term='tax'/><category term='Kdenlive'/><category term='e-mail'/><category term='GIMP'/><category term='Linux Ubuntu LiveCD LiveUSB'/><category term='DRM'/><category term='Debugging'/><category term='Inkscape'/><category term='Video'/><category term='MPI'/><category term='Consumer issues'/><category term='Avidemux'/><category term='Thunderbird'/><category term='CVS'/><category term='Opera'/><category term='glc'/><category term='newsgroups'/><category term='multimedia'/><category term='Planes'/><category term='Haskell'/><category term='WIFI'/><category term='JACK'/><category term='privoxy'/><category term='Fortran'/><category term='VoIP'/><category term='Firefox'/><category term='Choir'/><category term='project euler'/><category term='Pictures'/><category term='Time management'/><category term='mp3'/><category term='Emacs'/><category term='PADRE'/><category term='MIDI'/><category term='Swimming'/><category term='FlightGear'/><category term='Intel'/><category term='Ear-training'/><category term='BackTrack'/><category term='screencast'/><category term='Kindle'/><category term='RCS'/><category term='Backups'/><category term='Classical guitar'/><category term='Condor'/><category term='SPOJ'/><category term='VirtualBox'/><category term='Qsynth'/><category term='Paraview'/><category term='skype'/><category term='Security'/><category term='Aria'/><category term='tor'/><category term='recording'/><category term='Programming'/><category term='Riece'/><category term='Chromium'/><category term='Dsiplay-wall'/><category term='opengl'/><category term='kohjinsha'/><category term='IRC'/><category term='Virtual'/><category term='xvidcap'/><category term='puppy linux'/><category term='Ardour'/><category term='intranet'/><category term='Cluster'/><category term='Simulators'/><category term='Music'/><category term='ssh'/><category term='Fox'/><category term='Temperament'/><category term='YouTube'/><category term='bbc'/><category term='Solfege'/><category term='Algorithms'/><category term='Public Performance'/><category term='Calligram'/><category term='PGI'/><category term='Audacity'/><category term='Ubuntu Studio'/><category term='Trains'/><category term='MuseScore'/><category term='Ubuntu'/><category term='E-Books'/><category term='Repositories'/><title type='text'>My progress bar</title><subtitle type='html'>Random musings about my work and hobbies (High Performance Computing, Music Software, Classical Guitar, Flying Simulators, Swimming,...)</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default?start-index=101&amp;max-results=100'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>110</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8441181445099557561</id><published>2011-10-31T11:41:00.002Z</published><updated>2011-10-31T11:53:57.503Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Time management'/><title type='text'>Where did my week go?</title><content type='html'>On October 20th I became unemployed (hopefully for a short time), so I decided to waste some time by writing down for a whole week where my time was being spent. The corresponding chart is below:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js" type="text/javascript"&gt; {"dataSourceUrl":"//docs.google.com/spreadsheet/tq?key=0AgjvJuuWbgNldEYtQTFNQmd1S0VUZk1CSFpObjlrZGc&amp;transpose=0&amp;headers=0&amp;range=A6%3AB21&amp;gid=0&amp;pub=1","options":{"vAxes":[{"title":"Activity"}],"series":{"0":{"color":"#0000ff"}},"reverseCategories":true,"title":"Time spent, week 24/10/2011 - 30/10/2011","titleX":"Total hours","backgroundColor":"#FFFFFF","legend":"none","logScale":false,"reverseAxis":true,"hAxis":{"minValue":null,"viewWindowMode":"pretty","viewWindow":{"min":null,"max":null},"maxValue":null},"hasLabelsColumn":true,"isStacked":false,"width":600,"height":371},"state":{},"chartType":"BarChart","chartName":"Break-down of tasks"} &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The biggest consumer of time was &lt;i&gt;sleeping&lt;/i&gt;, and despite that fact, I still feel tired most of the time! Next, (not surprising being a father of two small children), was &lt;i&gt;house duties&lt;/i&gt; (preparing food, help children with homework, clothes washing, etc.). &lt;i&gt;Family time &lt;/i&gt;(basically during the weekend) is also high in the chart, and then my two main activities at the time: &lt;i&gt;reading &lt;/i&gt;and &lt;i&gt;playing the guitar&lt;/i&gt;. Obviously the data will change quite a bit when I start working again.&lt;br /&gt;&lt;br /&gt;I also wrote down the car computer statistics: in this week I drove for 08:02 hours and 226.8 Kilometers (which gives an average speed of 28.35 Km/hour, not bad for the city), and petrol usage was 6.9l/100Km (which shows that I spent around 15.7 € to bring the kids and myself around the town for the whole week).&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Keeping track of all the time spent in each activity was done with &lt;a href="http://orgmode.org/"&gt;Org-Mode&lt;/a&gt;.&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8441181445099557561?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8441181445099557561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8441181445099557561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8441181445099557561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8441181445099557561'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/10/where-did-my-week-go.html' title='Where did my week go?'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8873003116163787518</id><published>2011-10-27T10:14:00.000Z</published><updated>2011-10-27T10:14:45.288Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Consumer issues'/><title type='text'>David vs. Goliath (Ángel vs. Spanair)</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: justify;"&gt;The letter below is in Spanish, but it basically says that Spanair agrees to pay 400€ due to a delay of nearly 4 hours in a flight from Madrid to Tenerife. This delay was very annoying, since they didn't even bother to offer us drinks or a decent meal. I was quite upset by this, so I decided to fight and found that the 400€ compensation is the responsibility of the airline, according to the European passenger rights (&lt;a href="http://ec.europa.eu/youreurope/citizens/travel/passenger-rights/air/index_en.htm"&gt;http://ec.europa.eu/youreurope/citizens/travel/passenger-rights/air/index_en.htm&lt;/a&gt;), but as mentioned in &lt;a href="http://www.telegraph.co.uk/travel/travel-advice/8552092/Flight-compensation-your-rights.html"&gt;this article&lt;/a&gt; "[...] airlines are notorious for trying to    wriggle out of their responsibilities and you may have to insist on your    rights".&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;  &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;And indeed they try to wriggle... In my first formal complain to them, they just offered a one-leg national flight (not including taxes and administration charges) to be used in six months. This is a very poor form of compensation, since they are actually trying to make you buy another air-ticket with them, but with some discount.&amp;nbsp; As an individual it would probably be a bit cumbersome to get beyond this, but being a member of the Consumer Association OCU (&lt;a href="http://www.ocu.org/"&gt;http://www.ocu.org/&lt;/a&gt;), I forwarded the case to them, who offered to act as an intermediary, and in no time I got the letter below. &lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-jjg2eWaJcWo/TqkouM0QulI/AAAAAAAACjI/Lq6ixn_D5K8/s1600/span_1.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-jjg2eWaJcWo/TqkouM0QulI/AAAAAAAACjI/Lq6ixn_D5K8/s640/span_1.jpeg" width="452" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8873003116163787518?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8873003116163787518/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8873003116163787518' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8873003116163787518'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8873003116163787518'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/10/david-vs-goliath-angel-vs-spanair.html' title='David vs. Goliath (Ángel vs. Spanair)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-jjg2eWaJcWo/TqkouM0QulI/AAAAAAAACjI/Lq6ixn_D5K8/s72-c/span_1.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2375750717981097977</id><published>2011-07-22T05:52:00.002Z</published><updated>2011-07-22T05:54:32.413Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='WIFI'/><category scheme='http://www.blogger.com/atom/ns#' term='BackTrack'/><title type='text'>Cracking a Wi-Fi network</title><content type='html'>I had always heard that cracking a Wi-Fi network was really easy, but I never tried to do it. Yesterday I decided to give it a go. Could someone get in my network easily?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Remember that using somebody else's Wi-Fi is probably illegal,  so you should probably do this only with your own Wi-Fi networks or with the owners' permission.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I am a complete newbie to this sort of thing, so I started with the easy part: cracking a WEP Wi-Fi.  I guess nobody should be using WEP anymore, since according to &lt;a href="http://en.wikipedia.org/wiki/Wi-Fi_Protected_Access"&gt;Wikipedia&lt;/a&gt; "The Wi-Fi&lt;b&gt; &lt;/b&gt;Alliance defined these [WPA and WPA2] in response to serious weaknesses researchers had found in the previous system, &lt;a href="http://en.wikipedia.org/wiki/Wired_Equivalent_Privacy" title="Wired Equivalent Privacy"&gt;WEP (Wired Equivalent Privacy). &lt;/a&gt;" But WEP is still everywhere... Right now my laptop detects 5 Wi-Fi spots, and the only one that uses WPA is my own!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-t1VhU4PMGSE/TikJOEAbjfI/AAAAAAAACfg/70JJ-ltD16o/s1600/wpe-wifi.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://1.bp.blogspot.com/-t1VhU4PMGSE/TikJOEAbjfI/AAAAAAAACfg/70JJ-ltD16o/s400/wpe-wifi.jpg" width="290" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Next step was to do some research, since "wifi crack" gives you about 31,000,000 results in Google... A key aspect of this is to have a network adapter capable of "packet injection". There are many cheaps models available, but it turned out that my modest netbook comes with a "Intel Corporation WiFi Link 5100" adapter, which is able to do it. In order to make it work with my standard Linux distribution, I should probably need to update the firware and/or patch the kernel. But safer and easier was to just grap a copy of &lt;a href="http://www.backtrack-linux.org/"&gt;BackTrack Linux&lt;/a&gt; (version 5), make a LiveUSB out of it and reboot the netbook. With it, the Link 5100 was apparently ready for packet injection....&lt;br /&gt;&lt;br /&gt;Then, after a failed attempt I stumbled upon &lt;a href="http://lifehacker.com/5305094/how-to-crack-a-wi+fi-networks-wep-password-with-backtrack"&gt;this guide&lt;/a&gt;, which made the process very easy. I was not sure that my network adapter was 100% up to the task, so I decided to go for a field test. I just walked around the town in search of a good WEP Wi-Fi. After a few attempts in which I got the "Association successful" message but then the Data collection was very slow, I hit a busy WEP Wi-Fi network which made the whole process a breeze, and in 10-15 minutes I had the key (hidden below):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;Aircrack-ng 1.1 r1899&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[00:00:00] Tested 676 keys (got 68393 IVs)&lt;br /&gt;&lt;br /&gt;KB    depth   byte(vote)&lt;br /&gt;0    0/  1   5A(99328) 1B(78336) 54(78080) EB(77568) 66(76032) &lt;br /&gt;1   11/  1   B5(75264) 2C(75008) 35(75008) 8F(75008) C2(75008) &lt;br /&gt;2    2/  7   8A(80128) 26(79104) 0C(77824) 4B(77056) BF(76800) &lt;br /&gt;3   14/  3   04(75264) 00(74752) 6E(74752) 60(74240) 15(73984) &lt;br /&gt;4    0/  5   1C(94720) 74(80384) 77(79872) 18(78592) 8B(78336) &lt;br /&gt;&lt;br /&gt;KEY FOUND! [ XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX:XX ] (ASCII: XXXXXXXXXXXXX )&lt;br /&gt;Decrypted correctly: 100%&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;The person in the guide mentioned above says that she could not get to the stage where enough data was collected for &lt;i&gt;aircrack-ng &lt;/i&gt;to succeed, and it looks like that is quite common in networks with very low wi-fi traffic. Out of the 10 or so networks that I tried, only in this one I was getting data at a very high rate. In other ones perhaps I should wait hours in order to get to the recommended 10k data mark.&lt;br /&gt;&lt;br /&gt;So, I'm happy that my Wi-Fi network (and all the ones at work) are not WEP-protected, since getting into them seems a piece of cake. Next turn, my own WPA network (which I hope it will be much more difficult).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2375750717981097977?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2375750717981097977/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2375750717981097977' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2375750717981097977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2375750717981097977'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/07/cracking-wi-fi-network.html' title='Cracking a Wi-Fi network'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-t1VhU4PMGSE/TikJOEAbjfI/AAAAAAAACfg/70JJ-ltD16o/s72-c/wpe-wifi.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5924035999462091997</id><published>2011-07-15T13:37:00.003Z</published><updated>2011-07-15T13:47:59.690Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux Ubuntu LiveCD LiveUSB'/><title type='text'>A portable linux distribution.</title><content type='html'>Summer is sometimes a great time to organize you life a little, and these weeks I've been busy streamlining the way I keep my computer-life organized. The most important things I did so far:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://angel-de-vicente.blogspot.com/2011/07/changing-mail-reader-again-this-time.html"&gt;Change my mail reading program to Gnus&lt;/a&gt;, so that I can now keep exactly the same mail reading experience wherever I am.&lt;/li&gt;&lt;li&gt;&lt;a href="http://angel-de-vicente.blogspot.com/2011/06/goodbye-palm.html"&gt;Get all contacts and passwords into a usable format&lt;/a&gt;. Cleaning up the data is not finished yet, but necessary in the long run.&lt;/li&gt;&lt;li&gt;Avoid wasting time; reclaim my privacy; do things locally, if possible: so I closed my accounts at: Facebook, Anobii, LinkedIn, Twitter, XING, Dropbox, Yahoo (which also deleted flickr, so I transfered all the pictures to Picasaweb with &lt;a href="http://www.callingshotgun.net/about/migratr/"&gt;migratr&lt;/a&gt;). I'm still looking for a way to drop Delicious as well and organize my bookmarks locally.&lt;/li&gt;&lt;li&gt;Get a portable linux distro that I can use to go quickly to my &lt;i&gt;workbench&lt;/i&gt; whenever I happen to be using another computer.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-size: large;"&gt;A portable linux distribution.&lt;/span&gt;&lt;/u&gt; &lt;br /&gt;&lt;br /&gt;Sometimes I need to work away from my computers, and doing so is sometimes a bit annoying: sometimes I cannot find a decent terminal emulation software to connect back to my workstation; other times the machine is using Windows; etc. So I looked at a number of small Linux distributions that I can put in a USB pendrive and carry with me at all times.&lt;br /&gt;&lt;br /&gt;In the past I have installed a number of computers with &lt;a href="http://puppylinux.org/main/Overview%20and%20Getting%20Started.htm"&gt;PuppyLinux&lt;/a&gt; and this time I also tried &lt;a href="http://www.slitaz.org/en/"&gt;SliTaz&lt;/a&gt;. SliTaz looks really nice, fast and small, but I had to go for something more &lt;i&gt;heavy&lt;/i&gt; becuase hardware recognition is a bit flaky (as with many other small distributions). If I wanted to give a second life to an old computer, I certainly would go for one of these two, but in this case I wanted to get a Linux system that I can carry in my bag and that it will work in most computers without the need to tweak boot parameters, etc. &lt;br /&gt;&lt;br /&gt;So, I decided to go with what I currently have in my workstation: Ubuntu 10.04.02 LTS &lt;span style="font-size: small;"&gt;(though 32-bit).&lt;/span&gt; To get it all working I did the following:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Create a VirtualBox virtual PC and install the server edition of Ubuntu, with NO extra software.&lt;/li&gt;&lt;li&gt;After first boot, install the "basics" (taken loosely from &lt;a href="http://wiki.dennyhalim.com/ubuntu-minimal-desktop"&gt;here&lt;/a&gt;): xserver-xorg-core, xinit, network-manager, lxde, alsa-utils, gdebi-core and google chrome (see &lt;a href="http://ubuntuforums.org/showthread.php?t=62943"&gt;how&lt;/a&gt;).&amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;In the file &lt;i&gt;/etc/NetworkManager/nm-system-settings.conf &lt;/i&gt;change "manage=false" to "manage=true"&lt;/li&gt;&lt;li&gt;Make &lt;i&gt;nm-applet&lt;/i&gt; to start automatically (see &lt;a href="http://wiki.lxde.org/en/LXSession"&gt;instructions&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Install &lt;a href="http://www.geekconnection.org/remastersys/index.html"&gt;Remastersys&lt;/a&gt; (followed &lt;a href="http://www.linuxforu.com/reviews/distros/how-to-remaster-ubuntu-to-get-a-customised-distribution/"&gt;these&lt;/a&gt; and &lt;a href="http://www.dedoimedo.com/computers/remastersys.html"&gt;these&lt;/a&gt; instructions) and create modified ISO file.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span lang="zxx"&gt;sudo apt-get update ;; sudo apt-get install remastersys&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span lang="zxx"&gt;modify &lt;/span&gt;/etc/remastersys.conf file&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;"sudo su" to become root and then run "remastersys dist" &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Test the created ISO file (I managed to get it down to 350MB) with VirtualBox. Once satisfied with the result it is time to make it into a LiveCD (just record it to a CD with, for example, K3b) and a LiveUSB.&lt;/li&gt;&lt;li&gt;In order to create the LiveUSB, at my workstation (Ubuntu 10.04 LTS) I launch the "Startup Disk Creator", selecting the customized ISO file, and my 16GB USB pendrive. I erase the entire USB disk, and reserve 128MB (though you could reserve all the remaining space in the pendrive) for "extra space" to store documents and settings (see for example &lt;a href="http://www.phoronix.com/scan.php?page=article&amp;amp;item=ubuntu_usb_creator&amp;amp;num=1"&gt;these instructions&lt;/a&gt;).&lt;/li&gt;&lt;li&gt;Trial run: go to one of the "offending" machines, and reboot with the USB pendrive. It looks fine and I get both wired and wireless connectivity, though there are some small problems:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The persistence file seems to be working, but I always get a "Install Portable Linux" icon in the desktop.&lt;/li&gt;&lt;li&gt;The password I set for my account is deleted every time, so I just can login with no password.&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;&lt;br /&gt;&amp;nbsp;The mandatory screenshot:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-_3Y_Am8Re8g/TiBCXpiB_zI/AAAAAAAACfM/QTj9UNkh7LE/s1600/portable.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://2.bp.blogspot.com/-_3Y_Am8Re8g/TiBCXpiB_zI/AAAAAAAACfM/QTj9UNkh7LE/s640/portable.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;u&gt;&lt;b&gt;Notes:&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I tried the same with the newest version of Ubuntu 11.04, but then I had problems booting from the USB (it would just show the "boot:" prompt, but then it would get stuck in there).&amp;nbsp;&lt;/li&gt;&lt;li&gt;With another, smaller pendrive (1GB), I also had problems: I managed to login the first time, but on reboot the pendrive would complain. No idea why...&lt;/li&gt;&lt;/ul&gt;&lt;ol&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5924035999462091997?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5924035999462091997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5924035999462091997' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5924035999462091997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5924035999462091997'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/07/portable-linux-distribution.html' title='A portable linux distribution.'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-_3Y_Am8Re8g/TiBCXpiB_zI/AAAAAAAACfM/QTj9UNkh7LE/s72-c/portable.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3652244513530257428</id><published>2011-07-08T09:42:00.004Z</published><updated>2011-10-25T03:54:27.084Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gnus'/><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Changing mail reader again. This time: Gnus</title><content type='html'>After &lt;a href="http://angel-de-vicente.blogspot.com/2010/07/opera-mail-vs-thunderbird-31-vs-gmail.html"&gt;a year reading my mail with Thunderbird&lt;/a&gt;, I have decided to try &lt;a href="http://www.gnus.org/"&gt;Gnus&lt;/a&gt;. I was &lt;a href="http://angel-de-vicente.blogspot.com/2010/05/synchronizing-newsgroups-across.html"&gt;already using it (though not often) for newsgroups&lt;/a&gt;, but now I wanted to do it for regular e-mail. In the past I have played with Gnus a bit, but never spent the necessary time to learn and configure it properly. This time I took a couple of "slow" days and decided to make the effort to dump Thunderbird and go for Gnus.&lt;br /&gt;&lt;br /&gt;Some things that I didn't like in Thunderbird during this last year:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Synchronizing between different computers was not straightforward. Mails were in the IMAP server, so that was not a problem, but I wasn't sure how I could easily synchronize news (from newsgroups), filters, etc. in different computers&lt;/li&gt;&lt;li&gt;For some reason, Thunderbird would mark some messages as read, even when I didn't say so (quite dangerous, as once I read a message, I normally don't go back to it).&lt;/li&gt;&lt;li&gt;The IMAP connection to my server was very slow after having thousands of messages, so I ended up archiving messages by year. This was a bit annoying, since from my home computer then I could not access those messages.&lt;/li&gt;&lt;li&gt;Probably related to the archives, when searching for messages, sometimes a relevant message would show up in the search results, but when I tried to open the message, then nothing would show up. I would have to remember the date of the message and go and find it manually. Not very convenient.&lt;/li&gt;&lt;li&gt;&amp;nbsp;Many times Thunderbird complained of server timeouts. As a result,  messages that I thought were deleted, actually remained in the server and other oddities...&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;So I decided to give another chance to Gnus. Can it do everything I need? Was the effort to replace Thunderbird worthwhile? &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;My current mail setting now involves two accounts (work and private), which are backed up in a third account (which I never touch, this is just a repository of ALL the mail I get). At my workstation I run &lt;a href="http://fetchmail.berlios.de/"&gt;fetchmail&lt;/a&gt; to download locally (and delete from the mail accounts) all the e-mails I get in both accounts (the setting for this only involves creating a .fetchmailrc file where I specify the servers, accounts, etc.). (&lt;a href="http://www.sendmail.com/sm/open_source/"&gt;sendmail&lt;/a&gt; also needs to be running in the machine).&lt;br /&gt;&lt;br /&gt;The &lt;a href="http://www.gnus.org/manual.html"&gt;Gnus manual&lt;/a&gt; (the PDF version) has 435 pages, so configuring it to your taste is going to take a while, but it is (like &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt;), incredibly flexible and powerful. For me the main features that I was looking for were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Reliability (I hate when software starts doing "things" on its own).&lt;/li&gt;&lt;li&gt;Possibility of having &lt;b&gt;exactly &lt;/b&gt;the same environment and configuration, no matter where in the whole Internet I was located.&lt;/li&gt;&lt;li&gt;Good filing and searching of messages.&lt;/li&gt;&lt;/ul&gt;So after a while, reading the manual and asking in the relevant newsgroup, I have more or less everything I need (though this being Emacs, I'll probably never stop modifying the configuration):&lt;br /&gt;&lt;ol&gt;&lt;li&gt;mail is sorted into different groups, and those in the "MailingList" groups are deleted automatically in one week (unless I say otherwise), and other Mail is never deleted (unless I say otherwise);&amp;nbsp;&lt;/li&gt;&lt;li&gt;the search engine works really fast and well (actually much better than the Thunderbird search engine);&amp;nbsp;&lt;/li&gt;&lt;li&gt;this works inside Emacs, which I run in text mode (emacs -nw), inside &lt;a href="http://www.gnu.org/s/screen/"&gt;GNU screen&lt;/a&gt; (well, actually &lt;a href="https://help.ubuntu.com/10.04/serverguide/C/byobu.html"&gt;Byobu&lt;/a&gt;), so wherever I am, I only need to connect through &lt;i&gt;ssh &lt;/i&gt;to my workstation, and I have full control and exactly the same configuration everywhere.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;And this is how it looks right now. The "Folder" view:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-DHYAb9nWEQ4/ThbP3YvohsI/AAAAAAAACZE/SlLGIC5Tix8/s1600/groups.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://1.bp.blogspot.com/-DHYAb9nWEQ4/ThbP3YvohsI/AAAAAAAACZE/SlLGIC5Tix8/s640/groups.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The messages view in one of the groups:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-_p4HJWZQyXI/ThbP233uCeI/AAAAAAAACZA/n5PNg1fb0L4/s1600/articles.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="440" src="http://3.bp.blogspot.com/-_p4HJWZQyXI/ThbP233uCeI/AAAAAAAACZA/n5PNg1fb0L4/s640/articles.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;I have only used it for a couple of days, so I'm not sure how it will score against Thunderbird in a year from now, but so far I didn't have any problems, and it looks a better approach for my needs. I will report back in a year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3652244513530257428?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3652244513530257428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3652244513530257428' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3652244513530257428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3652244513530257428'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/07/changing-mail-reader-again-this-time.html' title='Changing mail reader again. This time: Gnus'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-DHYAb9nWEQ4/ThbP3YvohsI/AAAAAAAACZE/SlLGIC5Tix8/s72-c/groups.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2905590808088837954</id><published>2011-06-16T12:35:00.002Z</published><updated>2011-06-17T11:05:03.305Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SVG'/><category scheme='http://www.blogger.com/atom/ns#' term='Calligram'/><category scheme='http://www.blogger.com/atom/ns#' term='GIMP'/><category scheme='http://www.blogger.com/atom/ns#' term='Inkscape'/><title type='text'>Calligrams with Inkscape</title><content type='html'>Today I was looking for a quick way to create a &lt;a href="http://en.wikipedia.org/wiki/Calligram"&gt;calligram&lt;/a&gt;. I tried to do it with the &lt;a href="http://www.gimp.org/"&gt;GIMP&lt;/a&gt;, but it was not that easy, so I looked for another alternative, and I found &lt;a href="http://inkscape.org/"&gt;Inkscape&lt;/a&gt;. I had never used it before, but it looks very powerful for vector graphics. As for the calligram, it is very easy to make both things that I was looking for, as illustrated below: make text to follow a path (which can be obtained from a picture, as the example below) or to flow inside a given shape (the guitar &lt;i&gt;svg &lt;/i&gt;file can be found &lt;a href="http://colouringbook.org/uncategorized/coloring-book-svg-papapishu-guitar-1-colouring-book/"&gt;here&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-htns1La9qOw/Tfs0d20EuzI/AAAAAAAACYk/aKWcNouIa5o/s1600/drawing.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-htns1La9qOw/Tfs0d20EuzI/AAAAAAAACYk/aKWcNouIa5o/s1600/drawing.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-r1TbHPxd6xk/Tfn4YBZLwyI/AAAAAAAACYQ/ikqLFpKl8aw/s1600/coloring_book_svg_papapishu_guitar_1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-r1TbHPxd6xk/Tfn4YBZLwyI/AAAAAAAACYQ/ikqLFpKl8aw/s640/coloring_book_svg_papapishu_guitar_1.png" width="239" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2905590808088837954?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2905590808088837954/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2905590808088837954' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2905590808088837954'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2905590808088837954'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/06/calligrams-with-inkscape.html' title='Calligrams with Inkscape'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-htns1La9qOw/Tfs0d20EuzI/AAAAAAAACYk/aKWcNouIa5o/s72-c/drawing.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1633523210008350162</id><published>2011-06-10T08:59:00.004Z</published><updated>2011-06-10T12:00:06.815Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Palm'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Goodbye Palm...</title><content type='html'>I've been an owner (and a heavy user) of a Palm device for many years (around 15 years...) but lately I was not using it anymore, so I decided to get rid of it, but I needed to backup some of its data. Basically this came down to backing up:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The contacts, which I did by using the &lt;a href="http://www.jpilot.org/"&gt;J-Pilot&lt;/a&gt; software for linux. The contacts were easily exported to a CSV file. I tried to import into BBDB following &lt;a href="http://www.emacswiki.org/emacs/BbdbImporters#toc7"&gt;these instructions&lt;/a&gt;, but the program was outdated, so at the end I had to do it "manually" (through regular-expressions inside Emacs). &lt;/li&gt;&lt;li&gt;Birthday data store in the &lt;a href="http://jmjeong.com/index.php?display=HappyDays"&gt;HappyDays&lt;/a&gt; application. I didn't find an easy way to export the data compiled by HappyDays, but in the end decided that it was not that important, since the birthday data is actually collected from the contact data, which I already exported.&lt;/li&gt;&lt;li&gt;The most important data after the contacts was the data stored in &lt;a href="http://www.splashdata.com/splashid/"&gt;SplashID&lt;/a&gt;. I believe that more recent versions of the Palm software come with a version to export directly in the device into a CSV file, but my version is very old (2.03), and didn't have this feature. The trick was to install the &lt;a href="http://kb.palm.com/wps/portal/kb/common/article/33529_en.html"&gt;Palm Desktop software&lt;/a&gt; (Version 4.1.4) in a Window XP virtual (VirtualBox) machine, and then install the &lt;a href="http://www.splashdata.com/splashid/download/palm.htm"&gt;2.59 old version of the SplahsID Windows software&lt;/a&gt;. But I couldn't get the Windows virtual machine to recognize my USB-connected device. It turned out that I had to upgrade the VirtualBox that comes with Ubuntu 10.04 and install the 4.0.8 version, and add myself to the &lt;i&gt;virtualbox &lt;/i&gt;group. I got it to work by following &lt;a href="http://www.clearevo.com/blog/howto/2010/05/25/virtualbox_usb_fix_for_ubuntu_1004.html"&gt;these instructions&lt;/a&gt; (although I din't add myself to the &lt;i&gt;usb&lt;/i&gt; group, only to the &lt;i&gt;virtualbox &lt;/i&gt;one). Once that was in place, I easily synchronized my SplashID data in the Palm to the Windows software, and then exported the data in CSV format, which was then imported into an encrypted &lt;a href="http://orgmode.org/"&gt;org-mode file&lt;/a&gt; to handle with Emacs (which is much more convenient to me now).&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1633523210008350162?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1633523210008350162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1633523210008350162' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1633523210008350162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1633523210008350162'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/06/goodbye-palm.html' title='Goodbye Palm...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1847822179510201002</id><published>2011-06-06T11:20:00.005Z</published><updated>2011-06-06T11:36:04.804Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Probability'/><title type='text'>When the lack of any probability theory knowledge can bring a big unfairness</title><content type='html'>Recently I enrolled my son for the local music school. As there are always more candidates than places, somebody apparently decided that it would be a good and fair system to do the following:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Sort out all the candidates alphabetically.&lt;/li&gt;&lt;li&gt;Randomly select one of the letters and then choose &lt;i&gt;n &lt;/i&gt;candidates (where &lt;i&gt;n &lt;/i&gt;is the number of available places), starting with the first candidate whose surname starts with the chosen letter, and just go down the list in 1. (continuing from the beginning if the end of the list is reached) until all available places are taken.&lt;/li&gt;&lt;/ol&gt;To see how bad a system this is, I just got a list of 106 people that were applying to another local school (I just didn't have the original list with me) and assumed that 25 places are available. The probabilities of getting a place are so unfair, that I'm going to contact the local school to see if they want to change the system for coming years. Two of the extremes:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;One person has only a 3.85% probability of being chosen (the last one whose surname starts with S, since there are 14 people whose surname starts with R, and 12 people whose surname starts with S, so the only chance for her is that the randomly chosen letter is S).&lt;/li&gt;&lt;li&gt;Another person has a 42.31% probability of being chosen (the first one with the letter C, since surnames starting with letters from S to B are a very small proportion of the total, and he would be chosen if any of those letters are randomly chosen. The number of surnames for each of these letters is: S: 12; T: 4; U: 1; V: 4; W: 1; X: 0; Y: 0; Z: 0; A: 1; B: 1).&lt;/li&gt;&lt;/ol&gt;Below I include a chart which, assuming 25 places, gives the probability (as a percentage) of being chosen for all the 106 people included in my test sample.&lt;br /&gt;&lt;br /&gt;&lt;script src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js" type="text/javascript"&gt; {"dataSourceUrl":"//spreadsheets.google.com/spreadsheet/tq?key=0AgjvJuuWbgNldGlkSlVQMXdTZWs0dHRYaEZaN0RBa1E&amp;transpose=0&amp;headers=-1&amp;range=A2%3AA107&amp;gid=0&amp;pub=1","options":{"reverseCategories":false,"fontColor":"#fff","midColor":"#36c","pointSize":0,"backgroundColor":"#FFFFFF","headerColor":"#3d85c6","headerHeight":40,"is3D":false,"logScale":false,"wmode":"opaque","hAxis":{"maxAlternation":1},"title":"Probability (%) of being chosen (given 25 available places)","isStackedBarChart":false,"isStackedColumnChart":false,"isStackedAreaChart":false,"mapType":"hybrid","isStacked":false,"showTip":true,"displayAnnotations":true,"dataMode":"markers","colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"smoothLine":true,"maxColor":"#222","lineWidth":2,"labelPosition":"right","fontSize":"14px","hasLabelsColumn":false,"seriesCoreChart":[{"type":"bars"}],"maxDepth":2,"legend":"right","allowCollapse":true,"cht":"rs","minColor":"#ccc","reverseAxis":false,"vAxis":{"format":"#0.###############"},"width":600,"height":371},"state":{},"chartType":"AreaChart","chartName":"Chart 1"} &lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1847822179510201002?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1847822179510201002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1847822179510201002' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1847822179510201002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1847822179510201002'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/06/when-lack-of-any-probability-theory.html' title='When the lack of any probability theory knowledge can bring a big unfairness'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5782085338576598544</id><published>2011-06-01T09:09:00.003Z</published><updated>2011-06-06T11:25:58.692Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security'/><title type='text'>TestDisk saved my day</title><content type='html'>Today I discovered a little gem: &lt;a href="http://www.cgsecurity.org/wiki/TestDisk"&gt;TestDisk&lt;/a&gt;. My USB pendrive had lost the partition table with some important documents that my guitar teacher gave me yesterday (perhaps because he removed the drive without safely unmounting it first), and this program recovered the partition in a matter of minutes (before I even had the time to read its &lt;a href="http://www.cgsecurity.org/wiki/TestDisk_Step_By_Step"&gt;documentation&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Certainly a tool to have handy...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5782085338576598544?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5782085338576598544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5782085338576598544' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5782085338576598544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5782085338576598544'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/06/testdisk-saved-my-day.html' title='TestDisk saved my day'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5901725766167455570</id><published>2011-05-19T12:25:00.000Z</published><updated>2011-05-19T12:25:47.895Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Public Performance'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Performance anxiety...</title><content type='html'>Oh well, nothing new about this... Any musician forum is full of posts about performance anxiety, and I have to say that I'm one of those suffering from it. Yesterday we had an audition for other teachers and guitar students at the Conservatoire.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Performance anxiety recipe&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ingredients:&lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;A naturally shy person.&lt;/li&gt;&lt;li&gt;A difficult piece, above the level in which he/she feels confident.&lt;/li&gt;&lt;li&gt;No (or very few) prior public performances.&lt;/li&gt;&lt;li&gt;Discerning public (teachers and students of the same instrument, who will easily recognize when you are doing something wrong).&lt;/li&gt;&lt;li&gt;(Optional) Arrange the performance program so that the previous player is a very competent one that plays effortlessly and with clearly no performance anxiety.&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;Result:&lt;/b&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A blotched performance&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Yes, that is more or less what happened to me yesterday (playing Villa-Lobos Etude 1, perhaps a bit better overall than &lt;a href="http://vimeo.com/22888037"&gt;my recorded version&lt;/a&gt;, which was a bit slow and not very musical). The performance was not horrible: I didn't blank out, I didn't have to restart the piece&lt;b&gt; &lt;/b&gt;or any bars, and the piece sounded more or less OK, but with some clear mistakes, and without a great sound (specially for barre chords, my weakest point even in the comfort of my studio), and most importantly for me, without really enjoying the experience.&lt;br /&gt;&lt;br /&gt;The plan to improve this: get out and play in front of people as much as possible (though this will be difficult due to timetable constraints), and try to read about it and possible ways to improve. Recommended books about this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/Inner-Game-Music-Timothy-Gallwey/dp/0330300172/ref=wl_it_dp_o?ie=UTF8&amp;amp;coliid=I24WIBX0JSYMQ&amp;amp;colid=2VUTZMLUVUZ6B"&gt;Inner Game of Music&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.co.uk/Performing-Zone-Jon-Gorrie/dp/1409296237/ref=wl_it_dp_o?ie=UTF8&amp;amp;coliid=I1TFW964OUXYBA&amp;amp;colid=2VUTZMLUVUZ6B"&gt;Performing in the Zone&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Will report back....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5901725766167455570?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5901725766167455570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5901725766167455570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5901725766167455570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5901725766167455570'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/05/performance-anxiety.html' title='Performance anxiety...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1537098062389275189</id><published>2011-04-26T13:01:00.000Z</published><updated>2011-04-26T13:01:59.062Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Classical guitar progress logging (Apr'11)</title><content type='html'>This month I recorded the Prélude N.1 by H. Villa-Lobos: a piece that I still have to study much longer before it turns out nice, but on which I'm slowly improving. I think this is the most difficult piece that I've tried so far, and when my teacher gave me the score I thought he was just nuts... According to &lt;a href="http://www.guitarburst.com/search.php"&gt;GuitarBurst&lt;/a&gt; this a difficulty 9 piece (out of 20):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6hNCz29HY7c/Tba4oCwXFDI/AAAAAAAACXE/Dw7qClQMZd0/s1600/prelude.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="393" src="http://4.bp.blogspot.com/-6hNCz29HY7c/Tba4oCwXFDI/AAAAAAAACXE/Dw7qClQMZd0/s640/prelude.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The video is &lt;a href="http://vimeo.com/22888037"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1537098062389275189?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1537098062389275189/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1537098062389275189' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1537098062389275189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1537098062389275189'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/04/classical-guitar-progress-logging-apr11.html' title='Classical guitar progress logging (Apr&apos;11)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-6hNCz29HY7c/Tba4oCwXFDI/AAAAAAAACXE/Dw7qClQMZd0/s72-c/prelude.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7796303819102682968</id><published>2011-03-29T12:24:00.002Z</published><updated>2011-03-29T13:02:38.861Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Classical guitar progress logging (Mar'11)</title><content type='html'>I missed the recording for February (way too busy) and &lt;i&gt;almost &lt;/i&gt;the one for this month...&amp;nbsp; This one has quite a number of mistakes (it is amazing to see how stage fright kicks in even when playing alone, just in front of the video camera. Trust me that when &lt;i&gt;truly&lt;/i&gt; alone this comes out a lot better...).&lt;br /&gt;&lt;br /&gt;This is René Barbier, Prélude for guitar, op. 119, and the video is &lt;a href="http://vimeo.com/21642529"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is my first recording with my own guitar (my own in the sense that &lt;a href="http://angel-de-vicente.blogspot.com/2011/02/my-first-guitar-finished.html"&gt;I built it&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7796303819102682968?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7796303819102682968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7796303819102682968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7796303819102682968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7796303819102682968'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/03/classical-guitar-progress-logging-mar11.html' title='Classical guitar progress logging (Mar&apos;11)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1102709319586295057</id><published>2011-03-14T13:11:00.003Z</published><updated>2011-03-14T15:19:53.571Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Temperament'/><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><title type='text'>Playing with different temperaments (tuning systems)</title><content type='html'>It all started with the entry exam for the Conservatoire, where one of the questions was about the &lt;a href="http://en.wikipedia.org/wiki/Harmonic_series_%28music%29"&gt;Harmonic Series&lt;/a&gt;, then a comment by my Harmony teacher about &lt;a href="http://en.wikipedia.org/wiki/The_Well-Tempered_Clavier"&gt;Bach's well-tempered clavier&lt;/a&gt;. So I decided to learn a bit more about tuning systems in particular, and about the relation between music and mathematics in general. Reading material will be the book &lt;a href="http://www.amazon.co.uk/Music-Mathematics-Pythagoras-John-Fauvel/dp/0198511876/ref=tmm_hrd_title_0"&gt;Music and Mathematics: From Pythagoras to Fractals&lt;/a&gt; and playing material will be the &lt;a href="http://www.huygens-fokker.org/scala/"&gt;Scala software&lt;/a&gt;, which according to its webpage is "&lt;i&gt;a powerful software tool for experimentation with musical tunings, such as just intonation scales, equal and historical temperaments, microtonal and macrotonal scales, and non-Western scales&lt;/i&gt;". &lt;br /&gt;&lt;br /&gt;In order to get Scala to work on my computer (Ubuntu 10.04 64bits) I just had to follow these steps:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download the software (the source code is available upon request to the author, but the downloaded package comes with the compiled code). Version 2.30d for 64-bit GNU/Linux on PC/Intel, &lt;a href="http://www.huygens-fokker.org/software/scala-22-pc64-linux.tar.bz2"&gt; http://www.huygens-fokker.org/software/scala-22-pc64-linux.tar.bz2&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Make sure that &lt;i&gt;gnuplot&lt;/i&gt;, &lt;i&gt;libgnat-4.4&lt;/i&gt;, &lt;i&gt;playmidi&lt;/i&gt;, and &lt;i&gt;timidity&lt;/i&gt; are installed (all available through Synaptic Package Manager).&lt;/li&gt;&lt;li&gt;Copy the provided &lt;i&gt;libgtkada-2.14.so.0&lt;/i&gt; to /usr/lib/&lt;/li&gt;&lt;li&gt;Since I need the ISO8859 characters, I make my own script to launch scala: &lt;/li&gt;&lt;/ul&gt;&lt;code&gt; angelv@vaso:~/Music-Guitar/Software/scala-22-pc64-linux$ cat my_scala.sh &lt;br /&gt;#!/bin/bash  &lt;br /&gt;export LANG=en_US.iso8859-15  &lt;br /&gt;./scala  &lt;br /&gt;angelv@vaso:~/Music-Guitar/Software/scala-22-pc64-linux$ &lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Following the instructions at &lt;a href="http://www.faqs.org/docs/Linux-HOWTO/MIDI-HOWTO.html#s10"&gt;http://www.faqs.org/docs/Linux-HOWTO/MIDI-HOWTO.html#s10&lt;/a&gt; I install a virtual MIDI card: &lt;/li&gt;&lt;/ul&gt;&lt;code&gt; &lt;br /&gt;angelv@vaso:~/Music-Guitar/Software/scala-22-pc64-linux$ sudo modprobe snd-virmidi&lt;br /&gt;angelv@vaso:~/Music-Guitar/Software/scala-22-pc64-linux$ cat /proc/asound/cards&lt;br /&gt;0 [Intel          ]: HDA-Intel - HDA Intel&lt;br /&gt;HDA Intel at 0xefffc000 irq 16&lt;br /&gt;1 [VirMIDI        ]: VirMIDI - VirMIDI&lt;br /&gt;Virtual MIDI Card 1&lt;br /&gt;angelv@vaso:~/Music-Guitar/Software/scala-22-pc64-linux$ &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Now we just connect the output of this Virtual MIDI card to timidity with &lt;i&gt;acconectgui&lt;/i&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh6.googleusercontent.com/-Bn92eBKPOeU/TX4KERO6tXI/AAAAAAAACWk/_TtCdZZrGNU/s1600/aconnect.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="https://lh6.googleusercontent.com/-Bn92eBKPOeU/TX4KERO6tXI/AAAAAAAACWk/_TtCdZZrGNU/s320/aconnect.png" width="266" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;And we can start experimenting with &lt;i&gt;weird &lt;/i&gt;tuning systems, for example TET-19 (19 &lt;a href="http://en.wikipedia.org/wiki/Equal_temperament"&gt;equal temperament&lt;/a&gt;):&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh4.googleusercontent.com/-gNNiD_ZomFI/TX4KmiejPyI/AAAAAAAACWo/1Mkdv3xQ0OU/s1600/Screenshot-Chromatic+Clavier.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="https://lh4.googleusercontent.com/-gNNiD_ZomFI/TX4KmiejPyI/AAAAAAAACWo/1Mkdv3xQ0OU/s640/Screenshot-Chromatic+Clavier.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;i&gt;The sound is fine, but if I try to record a screencast of it (as per my previous post &lt;a href="http://angel-de-vicente.blogspot.com/2011/03/screencasts-with-xvidcap-in-ubuntu-1004.html"&gt;http://angel-de-vicente.blogspot.com/2011/03/screencasts-with-xvidcap-in-ubuntu-1004.html&lt;/a&gt;), I cannot do it, so I will have to investigate further.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;After a few tests, I discovered that the problem is with &lt;i&gt;timidity&lt;/i&gt; and PulseAudio. &lt;i&gt;Googling&lt;/i&gt; didn't give&lt;i&gt; &lt;/i&gt;me any good results, but after trying different things, I realized that the one that works best to record the output of &lt;i&gt;timidity &lt;/i&gt;with &lt;i&gt;xvidcap &lt;/i&gt;is just to start another &lt;i&gt;timidity &lt;/i&gt;process, but under &lt;i&gt;padsp&lt;/i&gt;. Then, the method described in my previous &lt;i&gt;xvidcap&lt;/i&gt; post works without any trouble, as can be seen in this &lt;a href="http://vimeo.com/21020598"&gt;demo video&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;By the way, experimenting with different tunings can be quite fun, and interesting music can be made (as an example of a song composed in 19-TET see &lt;a href="http://sethares.engr.wisc.edu/mp3s/Incidence_Coincidence.mp3"&gt;&lt;i&gt;Incidence and Coincidence&lt;/i&gt;&lt;/a&gt; from William A. Sethares' &lt;a href="http://sethares.engr.wisc.edu/xentone.html%20"&gt;Xentonality&lt;/a&gt; disc).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1102709319586295057?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1102709319586295057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1102709319586295057' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1102709319586295057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1102709319586295057'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/03/playing-with-different-temperaments.html' title='Playing with different temperaments (tuning systems)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh6.googleusercontent.com/-Bn92eBKPOeU/TX4KERO6tXI/AAAAAAAACWk/_TtCdZZrGNU/s72-c/aconnect.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7252634032294112769</id><published>2011-03-10T15:12:00.000Z</published><updated>2011-03-10T15:12:20.320Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solfege'/><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Ear-training'/><title type='text'>Customizing GNU Solfege</title><content type='html'>&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;As part of my work on Music Harmony (and ear-training), I wanted to configure &lt;a href="http://www.solfege.org/"&gt;GNU Solfege&lt;/a&gt; with my own exercises. I didn't realize it would be so easy. Following the &lt;a href="http://docs.solfege.org:81/3.19/C/extending-solfege.html"&gt;instructions online&lt;/a&gt;, I just had to do the following things to get my first customized exercise:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Figure out where the pre-loaded lesson files are and where the customized lesson files should go.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;i&gt;Help:File Locations&lt;/i&gt; tells me that in my system the pre-loaded ones are in &lt;i&gt;/usr/share/solfege/lesson-files &lt;/i&gt;and the customized ones should go inside &lt;i&gt;lessonfiles &lt;/i&gt;in my home directory.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Copy one of the pre-loaded lesson files (similar to the exercise I want to obtain) into the customized directory and edit.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Make sure to delete the &lt;i&gt;lesson_id &lt;/i&gt;field, since these have to be unique (later on GNU Solfege will create one automatically and will add it to the file). In my case I wanted to get an exercise to discriminate between major, minor, augmented and diminished chords, so I start with the &lt;i&gt;chord-min-major &lt;/i&gt;lesson file:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;# Solfege - ear training for GNOME&lt;br /&gt;# Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Tom Cato Amundsen&lt;br /&gt;# License is GPL, see file COPYING&lt;br /&gt;&lt;br /&gt;header {&lt;br /&gt;lesson_id = "38bfaa64-c182-4687-aa41-ed6352017342"&lt;br /&gt;help = "idbyname-chords"&lt;br /&gt;module = idbyname&lt;br /&gt;have_music_displayer = yes&lt;br /&gt;fillnum = 2&lt;br /&gt;random_transpose = accidentals, -5, 5&lt;br /&gt;title = _("Minor and major chords")&lt;br /&gt;lesson_heading = _("Identify the chord")&lt;br /&gt;test = "6x"&lt;br /&gt;test_requirement = "90%"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# We do in-file translation to norwegian in this file, just&lt;br /&gt;# to show that it is possible.&lt;br /&gt;question { name=_("major") name[no]="dur" chord("c' e' g'") }&lt;br /&gt;question { name=_("minor") name[no]="moll" chord("c' es' g'") }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and change it to:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;header {&lt;br /&gt;help = "idbyname-chords"&lt;br /&gt;module = idbyname&lt;br /&gt;have_music_displayer = yes&lt;br /&gt;fillnum = 2&lt;br /&gt;random_transpose = accidentals, -5, 5&lt;/code&gt;&lt;br /&gt;&lt;code&gt;title = _("Minor, major, augmented and diminished chords")&lt;br /&gt;lesson_heading = _("Identify the chord")&lt;br /&gt;test = "6x"&lt;br /&gt;test_requirement = "90%"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;# We do in-file translation to norwegian in this file, just&lt;br /&gt;# to show that it is possible.&lt;br /&gt;question { name=_("major") chord("c' e' g'") }&lt;br /&gt;question { name=_("minor") chord("c' es' g'") }&lt;br /&gt;question { name=_("augmented") chord("c' e' gis'") }&lt;br /&gt;question { name=_("diminished") chord("c' es' ges'") }&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Add it to lesson tree in GNU Solfege. I create my own learning tree via &lt;i&gt;File:Edit Learning Tree&lt;/i&gt;, then &lt;i&gt;New&lt;/i&gt;. First add a toplevel menu, then a submenu, and lastly &lt;i&gt;Add lesson&lt;/i&gt;, (the first time I have to click on "Search for new lesson files" so that the stuff I just put in my own directory shows up), and look for the lesson to include. Just like that, I have a customized lesson:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://lh5.googleusercontent.com/-RIM9ClO97Pk/TXjp-HhcivI/AAAAAAAACWg/7C_wojpO21c/s1600/solfege.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="297" src="https://lh5.googleusercontent.com/-RIM9ClO97Pk/TXjp-HhcivI/AAAAAAAACWg/7C_wojpO21c/s400/solfege.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7252634032294112769?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7252634032294112769/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7252634032294112769' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7252634032294112769'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7252634032294112769'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/03/customizing-gnu-solfege.html' title='Customizing GNU Solfege'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='https://lh5.googleusercontent.com/-RIM9ClO97Pk/TXjp-HhcivI/AAAAAAAACWg/7C_wojpO21c/s72-c/solfege.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6836139480182670290</id><published>2011-03-02T10:12:00.000Z</published><updated>2011-03-02T10:12:46.554Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='xvidcap'/><category scheme='http://www.blogger.com/atom/ns#' term='screencast'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Screencasts with xvidcap in Ubuntu 10.04</title><content type='html'>In the near future I'm going to need to do a couple of screencasts, so I've tried different programs to do it: &lt;a href="http://recordmydesktop.sourceforge.net/about.php"&gt;recordmydesktop&lt;/a&gt;, &lt;a href="http://recorditnow.sourceforge.net/"&gt;recorditnow&lt;/a&gt;, &lt;a href="http://live.gnome.org/Istanbul"&gt;istanbul&lt;/a&gt; and &lt;a href="http://xvidcap.sourceforge.net/"&gt;xvidcap&lt;/a&gt;. The one that gets the best video (for example a moving score in Musescore) is xvidcap, but I couldn't get it to get the sound, no matter what (and it seems that this is a common problem in Ubuntu 10.04).&lt;br /&gt;&lt;br /&gt;It turns out that the package that you download via Synaptic is broken in this respect, so the solution is to uninstall that one, and instead install xvidcap_1.1.7jaunty_i386.deb (at &lt;a href="http://sourceforge.net/projects/xvidcap/files/"&gt;http://sourceforge.net/projects/xvidcap/files/&lt;/a&gt;) In order to install it in my x86_64 system I just have to use the --force-architecture option to the &lt;b&gt;dpkg -i &lt;/b&gt;command.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;angelv@vaso:~/Desktop$ sudo dpkg --force-architecture -i xvidcap_1.1.7jaunty_i386.deb&amp;nbsp;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;But when trying to run it I see that there are some i386 libraries missing. In order to easily install them I use the &lt;a href="http://ubuntuforums.org/showthread.php?t=474790"&gt;getlibs&lt;/a&gt; script.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;angelv@vaso:~/Desktop$ padsp xvidcap&lt;br /&gt;xvidcap: error while loading shared libraries: libtheora.so.0: cannot open shared object file: No such file or directory&lt;br /&gt;&lt;br /&gt;angelv@vaso:~/Desktop$ getlibs /usr/bin/xvidcap&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;pre&gt;&lt;/pre&gt;Once that is in place, it is quite easy to record a screencast, together with the audio produced by the computer:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Start xvidcap with &lt;a href="http://linux.die.net/man/1/padsp"&gt;padsp&amp;nbsp;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Once you start recording with xvidcap, make sure that the Recording is done from the "Monitor of Internal Audio Analog Stereo", which can be modified with &lt;a href="http://0pointer.de/lennart/projects/pavucontrol/"&gt;pavucontrol&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;When recording from Musescore (and probably other programs as well), make sure that the sound is being sent to PulseAudio.&lt;/li&gt;&lt;/ol&gt;The following video illustrates these options and the end result:&amp;nbsp; &lt;a href="http://vimeo.com/20552593"&gt;http://vimeo.com/20552593&lt;/a&gt;&lt;br /&gt;&lt;ol&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;&lt;a class="dload { url: 'http://downloads.sourceforge.net/project/xvidcap/xvidcap/1.1.7/xvidcap_1.1.7jaunty_i386.deb?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fxvidcap%2Ffiles%2F&amp;amp;ts=1299022065' }" href="http://sourceforge.net/projects/xvidcap/files/xvidcap/1.1.7/xvidcap_1.1.7jaunty_i386.deb/download" title="/xvidcap/1.1.7/xvidcap_1.1.7jaunty_i386.deb:  released on 2009-07-14 07:22:11 UTC"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6836139480182670290?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6836139480182670290/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6836139480182670290' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6836139480182670290'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6836139480182670290'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/03/screencasts-with-xvidcap-in-ubuntu-1004.html' title='Screencasts with xvidcap in Ubuntu 10.04'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7199983175148559013</id><published>2011-02-24T14:07:00.004Z</published><updated>2011-05-24T08:59:12.834Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MuseScore'/><title type='text'>Sharing music scores with the world: Musescore.com</title><content type='html'>Lately I use &lt;a href="http://musescore.org/"&gt;Musescore&lt;/a&gt; for my harmony lessons, but I didn't know about the new service in &lt;a href="http://musescore.com/"&gt;http://musescore.com/&lt;/a&gt; to easily upload music score and share them over the Internet.&lt;br /&gt;&lt;br /&gt;The site is still in alpha version, but it works pretty well already. As a test, I got the Harmony exercise for this week and (from within Musescore itself) I uploaded it to Musescore.com in a matter of minutes (&lt;a href="http://musescore.com/score/3533"&gt;http://musescore.com/score/3533&lt;/a&gt;). From there you can listen to the composition and download the score in different formats: MuseScore, PDF, MusicXML, MIDI or even MP3. Cool!&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-2IY2evhacBU/TWZjuAGexmI/AAAAAAAACWA/1F8zG7_NbLk/s1600/harmony.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="539" src="http://4.bp.blogspot.com/-2IY2evhacBU/TWZjuAGexmI/AAAAAAAACWA/1F8zG7_NbLk/s640/harmony.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;EDIT&lt;/b&gt;&lt;/i&gt; (24/5/2011): In the end, after a few corrections suggested by the harmony teacher, the final score (which was played together with the compositions of other students on 20/5/2011) is &lt;a href="http://musescore.com/score/12396"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7199983175148559013?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7199983175148559013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7199983175148559013' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7199983175148559013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7199983175148559013'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/02/sharing-music-score-with-world.html' title='Sharing music scores with the world: Musescore.com'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-2IY2evhacBU/TWZjuAGexmI/AAAAAAAACWA/1F8zG7_NbLk/s72-c/harmony.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7190211038611836838</id><published>2011-02-21T09:45:00.007Z</published><updated>2011-07-11T10:20:32.746Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>My first guitar (named Cecile) finished...</title><content type='html'>Being able to spend only a few hours every month (and nothing some months), it has taken me a while to finish the guitar I was building, but it is now finished:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-_-RCz6XoZgs/TWIxGPDaaWI/AAAAAAAACVg/kcLBsRsPSUc/s1600/guitarra.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://4.bp.blogspot.com/-_-RCz6XoZgs/TWIxGPDaaWI/AAAAAAAACVg/kcLBsRsPSUc/s640/guitarra.jpg" width="611" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Some pictures of the progress can be seen in &lt;a href="https://picasaweb.google.com/txibilis/Luthier"&gt;https://picasaweb.google.com/txibilis/Luthier&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The finishing technique used was &lt;a href="http://en.wikipedia.org/wiki/French_polish"&gt;French Polish&lt;/a&gt;, which is quite difficult to get right (specially in the front side), so the end result is clearly not professional, but before I put any more effort into its looks, I want to make sure that its sound is worth the  effort... so I'm just waiting for the shellac to harden and then I will do the February recording with it (and then, if the sound is good enough, I will try to fix the finishing in the front during the summer holidays).&lt;br /&gt;&lt;br /&gt;Materials used:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ugMGc4WxtE4/TWJYa8a-m9I/AAAAAAAACVw/KUjME_sS4ks/s1600/materials.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-ugMGc4WxtE4/TWJYa8a-m9I/AAAAAAAACVw/KUjME_sS4ks/s1600/materials.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7190211038611836838?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7190211038611836838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7190211038611836838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7190211038611836838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7190211038611836838'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/02/my-first-guitar-finished.html' title='My first guitar (named Cecile) finished...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-_-RCz6XoZgs/TWIxGPDaaWI/AAAAAAAACVg/kcLBsRsPSUc/s72-c/guitarra.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7418888291232990729</id><published>2011-01-31T13:44:00.001Z</published><updated>2011-02-01T10:10:20.214Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Classical guitar progress logging (Jan'11)</title><content type='html'>I almost missed the recording for this month...&amp;nbsp; This is Sor Op.31 N.21 (Segovia Study N. 7), and a few weeks ago it looked really difficult for my level. Still need to practice a bit more, but it is not so bad now. &lt;a href="http://vimeo.com/19387689"&gt;Here it is&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is my first recording with the &lt;a href="http://angel-de-vicente.blogspot.com/2011/01/aria-sinsonido-as-100c.html"&gt;Aria Sinsonido&lt;/a&gt;, and as you can see the video and the audio are not synchronized! (the battery in my camera died while recording it, and I didn't have the patience to wait until it was full again, so I mixed it with the video of a previous recording! Oh well...). Next month I'll do a better job!&lt;br /&gt;&lt;br /&gt;The score is the following (from&amp;nbsp; &lt;a href="http://www.muslib.se/ebibliotek/boije/pdf/Boije%20479.pdf"&gt;http://www.muslib.se/ebibliotek/boije/pdf/Boije%20479.pdf&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TUfb-7VvyqI/AAAAAAAACRQ/4oRR7ZXvheM/s1600/sor21..jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="640" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TUfb-7VvyqI/AAAAAAAACRQ/4oRR7ZXvheM/s640/sor21..jpg" width="614" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7418888291232990729?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7418888291232990729/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7418888291232990729' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7418888291232990729'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7418888291232990729'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/01/classical-guitar-progress-logging-jan11.html' title='Classical guitar progress logging (Jan&apos;11)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TUfb-7VvyqI/AAAAAAAACRQ/4oRR7ZXvheM/s72-c/sor21..jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5502792887619897225</id><published>2011-01-27T14:14:00.002Z</published><updated>2011-02-17T22:41:42.133Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='DRM'/><category scheme='http://www.blogger.com/atom/ns#' term='E-Books'/><category scheme='http://www.blogger.com/atom/ns#' term='Kindle'/><title type='text'>Goodbye paper, Hello Kindle!</title><content type='html'>According to Amazon.co.uk, the new Kindle is their #1 bestseller and has the most 5-star reviews of any product on Amazon. So, when choosing the Christmas present for my wife, the &lt;a href="http://en.wikipedia.org/wiki/Biblical_Magi"&gt;three kings &lt;/a&gt;settled on this electronic book model.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TT_uCusfOmI/AAAAAAAACRE/6nFRqu__sQA/s1600/kindle.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TT_uCusfOmI/AAAAAAAACRE/6nFRqu__sQA/s320/kindle.jpg" width="228" /&gt;&lt;/a&gt;&lt;/div&gt;The version we got (you can see that I am also staking a claim on this gadget!) is the Kindle Wi-Fi, which is fine, since I don't think we would use the 3G functionality, and it increases its price by a whopping 37%!&lt;br /&gt;&lt;br /&gt;After unwrapping it, the first thing to test was the reading experience. The e-ink technology is supposed to be far superior for reading long hours, and it certainly is great. I still need to take the real test (i.e. to read a whole book with it), but there is absolutely no glare, no backlight, and it feels really comfortable given the very limited reading I've done with it so far).&lt;br /&gt;&lt;br /&gt;The next thing was to check if our new little gadget would deliver on the main things that we wanted from an electronic book. This is a provisional list:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Be able to organize content for both my wife and me&lt;/b&gt;&lt;br /&gt;This can be done with &lt;i&gt;Collections&lt;/i&gt;.  As far as I can see, I cannot create Collections inside other  Collections, so to keep your library organized is probably better to do  it in the computer with &lt;a href="http://calibre-ebook.com/"&gt;Calibre&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Transfer PDF files and other content&lt;/b&gt;&lt;br /&gt;PDFs  are handled automatically in this Kindle, as some other content. The  most convenient way to transfer files to the Kindle is probably thanks  to the associated e-mail. Each kindle has its own unique e-mail address.  If you want to transfer some document to it, you just send it as an  attachment to that e-mail address, and it will downloaded automatically  when you are connected to the Internet (via WiFi or, if we had the other  model, via 3G).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;* Different dictionaries&lt;/b&gt;&lt;br /&gt;This  is possible, and in Amazon you can actually find a number of  dictionaries for it. What I don't like is that the dictionary is set  globally and not per book. It would be nice to have the option to  override the default dictionary for an individual book (mostly I read in  English, so I would like that as my default dictionary, but if I want  to read something in French, the option to select the French dictionary  for just that book would be nice).&lt;br /&gt;&lt;br /&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;b&gt;* Getting books (in English and in Spanish)&lt;/b&gt;&lt;br /&gt;Amazon will deliver to Spain only their international version, which comes with the American spelling dictionary. I prefer the British version, so thanks to a colleague who was coming from the UK, we got the UK version instead (in the end, both the American and the British dictionaries were loaded, so perhaps we could've got the international version instead). &lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Books in English&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;The number of books in English that you can get is really big. With the thousands of books that you can find in PDF format, plus all the stuff at &lt;a href="http://www.gutenberg.org/wiki/Main_Page"&gt;Project Gutenberg&lt;/a&gt;, &lt;a href="http://books.google.com/"&gt;Google Books&lt;/a&gt; and the &lt;a href="http://www.amazon.co.uk/Kindle-eBooks/b/ref=sa_menu_kbo0?ie=UTF8&amp;amp;node=341689031"&gt;Kindle Books at Amazon&lt;/a&gt;, I think it will be some time before we run out of stuff to read...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ** Books in Spanish&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;The story is different for books in Spanish. Amazon has some books (searching for "spanish edition" gives (as of 27/1/2011) 6,924 results), but certainly nothing comparable to the number of mostly-in-English Kindle-books (545,187). For newer books (those in Amazon are often classics), you can head for instance to &lt;a href="http://www.libranda.com/"&gt;Libranda&lt;/a&gt;. The number of books &amp;nbsp;is quite small yet (2466 at the time of writing), but these are all newer books, and that's what my wife is mostly after, so I decided to try and buy one: "&lt;a href="http://www.libranda.com/ficha.aspx?ISBN=9788432290619"&gt;El otro barrio&lt;/a&gt;" by Elvira Lindo. There are many shops that sell this one, so I settled for iBubok (for no reason), and here the fight begins...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *** DRM stuff&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;After paying for the book, the Download link brings me to a &lt;i&gt;.acsm&lt;/i&gt; file, which I have no idea what it is... It turns out that this is a way of protecting the books (&lt;a href="http://www.ereadable.com/info/FAQ.asp"&gt;http://www.ereadable.com/info/FAQ.asp&lt;/a&gt;), and that in order to get the actual book content I will need &lt;a href="http://www.adobe.com/products/digitaleditions/"&gt;Adobe Digital Editions&lt;/a&gt; which, surprise surprise!, cannot be installed in Linux. OK, so I head off to my VirtualBox Windows XP and install it there. Installation is very easy, and the &lt;i&gt;.acsm &lt;/i&gt;file is automatically dealt with by Adobe Digital Editions and I can see the contents inside the VirtualBox window:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TUFqCSRP-pI/AAAAAAAACRI/XE6_lITrgsY/s1600/Screenshot-WindowsXP-ESP+%255BRunning%255D+-+VirtualBox+OSE.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="343" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TUFqCSRP-pI/AAAAAAAACRI/XE6_lITrgsY/s400/Screenshot-WindowsXP-ESP+%255BRunning%255D+-+VirtualBox+OSE.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But obviously we didn't get the Kindle to read books in the computer screen, so I need a way to transfer that content to some format that the Kindle can read.&lt;br /&gt;&lt;br /&gt;A way to get rid of the DRM protection stuff is outlined in this &lt;a href="http://i-u2665-cabbages.blogspot.com/2009/02/circumventing-adobe-adept-drm-for-epub.html"&gt;blog&lt;/a&gt;. As per the instructions, I installed in my Windows virtual PC: Python 2.6.2, PyCrypto, ineptkey.pyw (version 5), ineptepub.pyw (version 5.2) and ineptpdf.pyw (version 7.2). The book "El otro barrio" which I bought was actually a PDF, and after running &lt;i&gt;ineptkey&lt;/i&gt; and then &lt;i&gt;ineptpdf &lt;/i&gt;I got a beautiful non-DRM PDF file, which I can read in my Kindle (or in any other PC) without any trouble:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TUF47FtM25I/AAAAAAAACRM/LjnB6KETKk4/s1600/Screenshot-El+otro+barrio.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TUF47FtM25I/AAAAAAAACRM/LjnB6KETKk4/s320/Screenshot-El+otro+barrio.png" width="298" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I wanted to check whether the script would also work fine with EPUB files, but for the moment I don't want to buy a new book (I asked the library whether they can send me the EPUB file instead of the PDF file), and this is actually not that important, since I can also convert PDF files to MOBI files (which the Kindle can read) with Calibre. When I get a DRM-EPUB file I will update this post.&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;UPDATE &lt;/b&gt;(17/2/2011): Just bought a DRM-EPUB book and the script managed to get rid of the DRM protection without any trouble, so I could (after converting from EPUB to MOBI with Calibre) send it to our Kindle without any trouble.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5502792887619897225?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5502792887619897225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5502792887619897225' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5502792887619897225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5502792887619897225'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/01/goodbye-paper-hello-kindle.html' title='Goodbye paper, Hello Kindle!'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hm_BgzIyQw0/TT_uCusfOmI/AAAAAAAACRE/6nFRqu__sQA/s72-c/kindle.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1774715292249943637</id><published>2011-01-14T23:40:00.001Z</published><updated>2011-01-15T14:37:56.740Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='Aria'/><category scheme='http://www.blogger.com/atom/ns#' term='Ardour'/><title type='text'>Aria Sinsonido AS-100C</title><content type='html'>As a Christmas present I got an &lt;a href="http://www.ariausa.com/guitars/as100c.html"&gt;Aria Sinsonido AS-100C silent guitar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TTDah_27OwI/AAAAAAAACQ8/RJ_DQ8RV7cw/s1600/as100c_main_up.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="400" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TTDah_27OwI/AAAAAAAACQ8/RJ_DQ8RV7cw/s400/as100c_main_up.jpg" width="160" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I've been playing it last few nights when the kids were sleeping, and overall I'm really happy with it. The sound is not the same as in a classical guitar, but the measures of the neck, strings, etc. are the same, so it is great for practice.&amp;nbsp; Playing alone with the supplied headphones is trivial (just need to plug them in ...).&lt;br /&gt;&lt;br /&gt;Recording it in the computer is also very easy. With a 3.5mm male-to-male audio cable we can connect the Aria to the Microphone input in the sound card (the "Free Music Intrument Tuner" automatically detects the input, so it provides an easy way to tune the guitar).&lt;br /&gt;&lt;br /&gt;Once it is connected, the sound is not redirected automatically (Ubuntu Studio 10.04) to the speakers (or headphones), but with Jack it is very easy to do so by connecting the "caputre" clients to the "playback" clients:&amp;nbsp; &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TTDc1vcMc7I/AAAAAAAACRA/3gMphEZWJOY/s1600/Screenshot-Connections+-+JACK+Audio+Connection+Kit.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="157" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TTDc1vcMc7I/AAAAAAAACRA/3gMphEZWJOY/s400/Screenshot-Connections+-+JACK+Audio+Connection+Kit.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;With this in place, I can play the guitar and listen to it via the headphones, and also easily record it via, for example, &lt;a href="http://www.ardour.org/"&gt;Ardour&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A first test of this setting can be seen at &lt;a href="http://vimeo.com/18801768"&gt;http://vimeo.com/18801768&lt;/a&gt; (the video was recorded separately and mixed with the sound with Kdenlive. For the video I was using my Pentax Optio M40 camera, which in daylight does a decent job, but at night it leaves much to be desired. Next one will be a decent recording in daylight...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1774715292249943637?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1774715292249943637/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1774715292249943637' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1774715292249943637'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1774715292249943637'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/01/aria-sinsonido-as-100c.html' title='Aria Sinsonido AS-100C'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/TTDah_27OwI/AAAAAAAACQ8/RJ_DQ8RV7cw/s72-c/as100c_main_up.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-9005035444174125162</id><published>2011-01-14T13:42:00.000Z</published><updated>2011-01-14T13:42:46.688Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='JACK'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='MuseScore'/><category scheme='http://www.blogger.com/atom/ns#' term='Kdenlive'/><category scheme='http://www.blogger.com/atom/ns#' term='Ardour'/><title type='text'>Virtual Pianola...</title><content type='html'>In my quest to try out new things related to sound and music with my Ubuntu Studio laptop, I decided to try and emulate a pianola (or player piano), as seen in  &lt;a href="http://www.youtube.com/watch?v=f_jlej7cnQA"&gt;this video&lt;/a&gt; (you can see in the following link a real piano player &lt;a href="http://www.youtube.com/watch?v=Fiqrm6ZMUb8&amp;amp;feature=related"&gt;in action&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;The first thing was to change the preferences in &lt;a href="http://musescore.org/"&gt;MuseScore&lt;/a&gt; (version 0.9.6.2). In the I/O preferences tab, I selected "Use JACK MIDI output":&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TTA_3U3uQ1I/AAAAAAAACQs/Zuhn8jWO_iA/s1600/preferences.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="382" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TTA_3U3uQ1I/AAAAAAAACQs/Zuhn8jWO_iA/s400/preferences.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Then I restarted, Jack, Musescore and &lt;a href="http://vmpk.sourceforge.net/"&gt;VMPK&lt;/a&gt; (version 0.3.0), but in the Jack Audio Connection Kit "Connections" view, I could see "Mscore1" in the MIDI tab as a readable client, but VMPK input only showed in the ALSA tab, so I could not connect them.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TTBBgQWsXQI/AAAAAAAACQw/TrrUimjxn_k/s1600/connections.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="182" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TTBBgQWsXQI/AAAAAAAACQw/TrrUimjxn_k/s400/connections.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;With the help of the experts at the &lt;a href="https://lists.ubuntu.com/mailman/listinfo/ubuntu-studio-users"&gt;UbuntuStudio mailing list&lt;/a&gt; I found out that I would require a bridge between alsa midi and jack midi: &lt;i&gt;a2jmidid&lt;/i&gt;. The best option seems to just put "&lt;i&gt;a2jmidid &amp;amp;&lt;/i&gt;" in the Jack Connection Setup "Execute script after Startup" Option, so that the bridge will be in place every time I start Jack.&lt;br /&gt;&lt;br /&gt;With this in place, and after restarting everything, I can connect the output from MuseScore into VMPK (and also into "FLUID Synth": otherwise I will see the keys in VMPK being pressed, but we will get no sound).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TTBDyF8nvQI/AAAAAAAACQ4/B2sAS5vsxQo/s1600/Screenshot-Connections+-+JACK+Audio+Connection+Kit-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="170" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TTBDyF8nvQI/AAAAAAAACQ4/B2sAS5vsxQo/s400/Screenshot-Connections+-+JACK+Audio+Connection+Kit-1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;Now we only need some nice music to demonstrate... and I download "Lock and Key" from &lt;a href="http://musescore.org/en/node/6707"&gt;http://musescore.org/en/node/6707&lt;/a&gt;. And everything seems to work pretty well. But I don't want you to take my word for it, so I planned to record it.&lt;br /&gt;&lt;br /&gt;I used &lt;i&gt;gtk-recordMyDesktop&lt;/i&gt; (version 0.3.8), which is a front-end for &lt;a href="http://recordmydesktop.sourceforge.net/about.php"&gt;recordMyDesktop&lt;/a&gt;. With it (in the Sound tab), you can click "Use jack for audio capture", but with this option enabled I always got errors like "... exited with status: 2816. Description: Improper window specification.", so I decided to record the sound (with Ardour) and the video (with recordMyDesktop) separately, and then mix it with Kdenlive.&lt;br /&gt;&lt;br /&gt;Kdenlive is not happy with the .ogv file created by recordMyDesktop, so first I had to convert it to an .avi file with the command:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;angelv@palas:~$ mencoder -ovc lavc -ofps 30 pianola.ogv -o pianola.avi&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Synchronizing audio and video is not always straightforward always, but for this video it was quite easy. The resulting video can be seen at: &lt;a href="http://vimeo.com/18783287"&gt;http://vimeo.com/18783287&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre wrap=""&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-9005035444174125162?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/9005035444174125162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=9005035444174125162' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/9005035444174125162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/9005035444174125162'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/01/virtual-pianola.html' title='Virtual Pianola...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hm_BgzIyQw0/TTA_3U3uQ1I/AAAAAAAACQs/Zuhn8jWO_iA/s72-c/preferences.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4276655420312147679</id><published>2011-01-07T11:09:00.000Z</published><updated>2011-01-07T11:09:55.011Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='MuseScore'/><title type='text'>AKAI LPK25 MIDI Keyboard</title><content type='html'>The &lt;a href="http://en.wikipedia.org/wiki/Biblical_Magi"&gt;three kings &lt;/a&gt;were good (and very musical) to me this year. One of the things that they brought me was a small &lt;a href="http://www.akaipro.com/lpk25"&gt;MIDI keyboard&lt;/a&gt; (AKAI LPK25). This is a very small keyboard, but very convenient for quick note entry (the computer keyboard feels very awkward for this).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TSbv2-ZoA_I/AAAAAAAACQY/CngMrKyrs3Y/s1600/lpk25_web_angle_med.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TSbv2-ZoA_I/AAAAAAAACQY/CngMrKyrs3Y/s320/lpk25_web_angle_med.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Quickly after unwrapping it I set it to try it in my laptop, which has &lt;a href="http://ubuntustudio.org/home"&gt;Ubuntu Studio 10.04&lt;/a&gt; (64 bits) installed. For me, the most important feature is just to be able to quickly "type" a music score into a music notation software, so I decided to try with &lt;a href="http://musescore.org/"&gt;MuseScore&lt;/a&gt;. The section &lt;b&gt;&lt;i&gt;MIDI keyboard &lt;/i&gt;&lt;/b&gt;in the MuseScore &lt;a href="http://musescore.org/en/handbook/note-entry"&gt;documentation&lt;/a&gt; looked like I would have no problems, but though the keyboard was recognized and note entry was possible in a contrived way, it was not as expected. The blame was on the version of MuseScore, which in this version of Ubuntu Studio was 0.9.6 (revision: 2613). Luckily, &lt;a href="https://launchpad.net/%7Etsmithe"&gt;Toby Smithe&lt;/a&gt; maintains a &lt;a href="https://launchpad.net/ubuntu/+ppas"&gt;PPA&lt;/a&gt; with a more &lt;a href="https://launchpad.net/%7Emscore-ubuntu/+archive/mscore-stable"&gt;recent and stable version of MuseScore&lt;/a&gt;. Following the instructions in the PPA page and upgrading (via Synaptic the packages &lt;i&gt;musescore-soundfont-gm&lt;/i&gt;,&lt;i&gt; musescore &lt;/i&gt;and&lt;i&gt; musescore-common&lt;/i&gt;), brings MuseScore up to verion 0.9.6.2 (revision: 3400), and with it note entry with my LPK25 is as advertised in the documentation. Now it is time to do some music with it...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4276655420312147679?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4276655420312147679/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4276655420312147679' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4276655420312147679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4276655420312147679'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2011/01/akai-lpk25-midi-keyboard.html' title='AKAI LPK25 MIDI Keyboard'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hm_BgzIyQw0/TSbv2-ZoA_I/AAAAAAAACQY/CngMrKyrs3Y/s72-c/lpk25_web_angle_med.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7053961067494533808</id><published>2010-12-24T12:10:00.002Z</published><updated>2010-12-24T16:05:08.699Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='Choir'/><title type='text'>Choir class audition. Dec'10</title><content type='html'>When I started my studies in the Conservatoire (about three months ago), I thought that my Choir class would be quite a chore... but it has turned out to be quite enjoyable, actually. On Wednesday 22nd we took part in the yearly Christmas concert, and a video of our performance is at: &lt;a href="http://vimeo.com/18144039"&gt;http://vimeo.com/18144039&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The quality of the video is horrible, but not bad given the circumstances: it was shot by a relative of mine with no prior experience with video cameras, from a bad back seat, and while she was taking care of three small children...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7053961067494533808?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7053961067494533808/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7053961067494533808' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7053961067494533808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7053961067494533808'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/12/choir-class-audition-dec10.html' title='Choir class audition. Dec&apos;10'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5865275910918186246</id><published>2010-12-19T22:35:00.001Z</published><updated>2010-12-24T09:09:31.564Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Classical guitar progress logging (Dec'10)</title><content type='html'>The recording for this month is still quite rough on the edges, but here it goes: &lt;a href="http://vimeo.com/17986724"&gt;http://vimeo.com/17986724&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The music is a guitar trio by Andrew Forrest: "Based on Basie", available at &lt;a href="http://www.forrestguitarensembles.co.uk/trios.html"&gt;http://www.forrestguitarensembles.co.uk/trios.html&lt;/a&gt; (where you can also get the PDF of the score: &lt;a href="http://www.forrestguitarensembles.co.uk/scores/trios/T0015BasedonBasie.pdf"&gt;http://www.forrestguitarensembles.co.uk/scores/trios/T0015BasedonBasie.pdf&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I used &lt;a href="http://angel-de-vicente.blogspot.com/search/label/OMR"&gt;OMR&lt;/a&gt; software to get a MIDI file of the music. I play the first guitar, and the computer plays the rest. The web page says that this piece should be for grades 4-5, and I'm just starting grade 3, so there is still plenty of room for improvement...&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Technical issue &lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;I found an issue with my Jack+Rosegarden+Qsynth setting: I  realized that the computer was out of tune (which could be easily seen  by using the "Free Music Instrument Tuner", and playing the "concert A",  which should be 440Hz. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TQi4FbS39ZI/AAAAAAAACP0/6Zfx58mdoBI/s1600/qsynth.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TQi4FbS39ZI/AAAAAAAACP0/6Zfx58mdoBI/s400/qsynth.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;With  help from some guys at the Ubuntu Studio mailing list, I figured out  that the problem was with sampling rates in Jack and Qsynth. When both  were at the same sampling rate (I tried with 48000), then everything was  OK.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5865275910918186246?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5865275910918186246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5865275910918186246' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5865275910918186246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5865275910918186246'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/12/classical-guitar-progress-logging-dec10.html' title='Classical guitar progress logging (Dec&apos;10)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TQi4FbS39ZI/AAAAAAAACP0/6Zfx58mdoBI/s72-c/qsynth.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1285513884855229216</id><published>2010-11-18T10:59:00.000Z</published><updated>2010-11-18T10:59:26.546Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='Audacity'/><title type='text'>Recording anything that gets played in your computer</title><content type='html'>I knew it was possible, but I had forgotten the details, so here they go...&lt;br /&gt;&lt;br /&gt;Sometimes you might want to record audio played by an application in your computer (system sounds, music in a webpage, etc... basically anything that the computer can output to  speakers/headphones). Recording that is actually very easy... In Ubuntu 10.04 I got the instructions from &lt;a href="https://wiki.ubuntu.com/PulseAudio"&gt;https://wiki.ubuntu.com/PulseAudio&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I decided to try recording a song from &lt;a href="http://www.spotify.com/"&gt;Spotify&lt;/a&gt; (which is running inside &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt; in my PC) using &lt;a href="http://audacity.sourceforge.net/"&gt;Audacity&lt;/a&gt;. The only extra software that I needed was &lt;i&gt;&lt;strong style="font-weight: normal;"&gt;PulseAudio Volume Control&lt;/strong&gt;&lt;/i&gt;&lt;strong style="font-weight: normal;"&gt;, and that was also the only one that I needed to configure.&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;When you start playing a song in Spotify and start recording in Audacity, it probably does not record anything, because Audacity will try to record from the "wrong" source. To route the sound properly, you just need to open the &lt;i&gt;PulseAudio Volume Control&lt;/i&gt; and (while recording, otherwise this option is not available) change the option "ALSA Capture from" to "&lt;b&gt;Monitor of Internal Audio Analog Stereo&lt;/b&gt;", as shown below, and Audacity will record them properly:&lt;/strong&gt;&lt;br /&gt;&lt;strong style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TOUGxCTJkNI/AAAAAAAACMs/SStAa5osqlk/s1600/Screenshot-Volume+Control.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="252" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TOUGxCTJkNI/AAAAAAAACMs/SStAa5osqlk/s640/Screenshot-Volume+Control.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1285513884855229216?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1285513884855229216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1285513884855229216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1285513884855229216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1285513884855229216'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/recording-anything-that-gets-played-in.html' title='Recording anything that gets played in your computer'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hm_BgzIyQw0/TOUGxCTJkNI/AAAAAAAACMs/SStAa5osqlk/s72-c/Screenshot-Volume+Control.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2003706919771209439</id><published>2010-11-15T11:08:00.003Z</published><updated>2011-02-14T04:17:42.424Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorithms'/><title type='text'>New Al Zimmermann's Programming Contest</title><content type='html'>Another one of the famous Al Zimmermann programming contests &lt;a href="http://www.azspcs.net/Contest/Cards"&gt;has just started&lt;/a&gt;. The contest runs until 12 Feb 2011, so there is plenty of time to compete. These contests are very competitive and the level is quite high, so it is difficult to stay in the top. Given that, and that I can only devote a limited amount of time to this, I will just try to compete "a little". For me, the goal will be to end within the first 10% of participants. Right now there are 125 contestants, so I should try to get in rank 12 or better. I quickly wrote a basic program and got in rank 33. Now it is time to improve it and see if I can do better than that over time. I will chart my progress below... &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldDJoR2MzdFkyb1lfNmM2OTFqTllmb0E&amp;amp;oid=1&amp;amp;zx=xj8s562s3plr" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldDJoR2MzdFkyb1lfNmM2OTFqTllmb0E&amp;amp;oid=1&amp;amp;zx=xj8s562s3plr" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: left;"&gt;&lt;b&gt;Update (14/2/2011)&lt;/b&gt;: Oh well, the contest ended two days ago, and in the end I didn't get very far at all. My final position was 110, which with 362 contestants sets me at rank around 30.39%. I lost steam in the final weeks of the contest, when I realized that I had run out of easy ideas, and real work was not letting me try harder ones... Let's see if I can do better in the next contest (which is already set to start on Jul 9th). &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2003706919771209439?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2003706919771209439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2003706919771209439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2003706919771209439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2003706919771209439'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/new-al-zimmermanns-programming-contest.html' title='New Al Zimmermann&apos;s Programming Contest'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1940848679222272816</id><published>2010-11-13T00:04:00.002Z</published><updated>2010-11-13T00:20:59.437Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='Avidemux'/><category scheme='http://www.blogger.com/atom/ns#' term='Kdenlive'/><title type='text'>Editing videos from a Pentax Optio M40 camera</title><content type='html'>In a previous &lt;a href="http://angel-de-vicente.blogspot.com/2010/11/classical-guitar-progress-logging-nov10.html"&gt;post&lt;/a&gt; I have a link to a Vimeo video, which was created by:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;recording a video with my Pentax Optio M40 camera &lt;/li&gt;&lt;li&gt;cutting the beginning and the end of the video with the PiTiVi software&lt;/li&gt;&lt;/ol&gt;PiTiVi is not the video editing software that I would choose to do anything serious, but I had a problem with Kdenlive and OpenShot: the audio and video would be out of sync when importing the clip to any of them; but worse still, after cutting the beginning of the video, the problem just got much worse, and the audio would be out of sync by around a full second. With PiTiVi it was also out of sync, but only by a fraction of a second, so it was not too bad.&lt;br /&gt;&lt;br /&gt;Today I decided to find a solution to this, so that I could edit the clip with Kdenlive, which is right now my preferred video editing software. The solution seems to use an intermediate software to create the clips to be imported to Kdenlive: &lt;a href="http://fixounet.free.fr/avidemux/"&gt;Avidemux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I just load the AVI file from the camera in Avidemux, select the starting and end points of the clip I want to use, and press the "Save" button. A screenshot can be seen here:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TN3ReZ4YQvI/AAAAAAAACMo/V50UE8SPDgg/s1600/Avidemux.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="512" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TN3ReZ4YQvI/AAAAAAAACMo/V50UE8SPDgg/s640/Avidemux.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then this clip can be imported into Kdenlive, without any synchronization problems. With Kdenlive we can now add a title, add effects, etc. and if we want a decent quality we can render it as the template MPEG-4 10000k 2-pass (which translates to: &lt;br /&gt;&lt;style type="text/css"&gt;p, li { white-space: pre-wrap&lt;/style&gt;&lt;i&gt;f=mp4 acodec=libmp3lame ab=128k ar=44100 vcodec=mpeg4 minrate=0 b=10000k aspect=%dar mbd=2 trellis=1 mv4=1 pass=2&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;The resulting file has perfect synchronization and can be uploaded to Vimeo without any problems and with much better quality than the one generated in my previous post. Here is the &lt;a href="http://vimeo.com/16656488"&gt;resulting video&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1940848679222272816?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1940848679222272816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1940848679222272816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1940848679222272816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1940848679222272816'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/editing-videos-from-pentax-optio-m40.html' title='Editing videos from a Pentax Optio M40 camera'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/TN3ReZ4YQvI/AAAAAAAACMo/V50UE8SPDgg/s72-c/Avidemux.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4876519448842896950</id><published>2010-11-12T13:10:00.000Z</published><updated>2010-11-12T13:10:46.454Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='CVS'/><category scheme='http://www.blogger.com/atom/ns#' term='RCS'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>File Version Control</title><content type='html'>I'm a fan of version control systems, but for some reason I end up not using them as regularly as I should, and then I tend to forget how to do the most common operations, so this time I'm logging it here.&lt;br /&gt;&lt;br /&gt;I do all my editing from inside Emacs, so I will be using VC, which allows me to use a version control system from within Emacs. VC works with many different version control systems, but for the moment I will use it with a very simple one: RCS. Later on, perhaps I will need a more sophisticated one, since &lt;a href="http://www.gnu.org/software/rcs/"&gt;RCS&lt;/a&gt; does not work over a network, and it only works at the level of individual files, but for the moment this is all I need. &lt;br /&gt;&lt;br /&gt;The integration Emacs-RCS is very tight, and the basics for checking-in, checking-out are just performed with the same command: &lt;i&gt;C-x v v&lt;/i&gt;. The first time we do this command, Emacs will offer to create the RCS directory, if it doesn't exist, and it will register (and unlock) the file as version 1.1. To edit the file again, just type &lt;i&gt;C-x v v&lt;/i&gt; again to lock the file. When done and when we register the file again, the *VC-log* buffer will open, so that we can add a log entry. We continue this way, so that different versions of the file will be registered.&lt;br /&gt;&lt;br /&gt;So now, some of the most common things that I need to do:&lt;br /&gt;&lt;br /&gt;* &lt;b&gt;Be able to see what has been changed in the file:&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; - When editing the file: &lt;i&gt;C-x v = &lt;/i&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - When writing the log entry: &lt;i&gt;C-c C-d&lt;/i&gt; in the *VC-log* window (after saving the file being edited)&lt;br /&gt;&lt;br /&gt;* &lt;b&gt;Compare different versions:&lt;/b&gt;&lt;br /&gt;Perhaps the most flexible one is just to type &lt;i&gt;C-x v ~ REVISION&lt;/i&gt;, which allows us to view any previouos revision of the file, and then we can compare any two versions with something like &lt;i&gt;ediff-buffers&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;* &lt;b&gt;See history of changes&lt;/b&gt;:&lt;br /&gt;&amp;nbsp;&lt;i&gt;C-x v l&lt;/i&gt; gives us the revision control change history. In a different buffer, we will have a list of all the revisions made to the file, together with the text of the log entries. This buffer is also very convenient to do some useful operations:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - With &lt;i&gt;p &lt;/i&gt;and &lt;i&gt;n&lt;/i&gt;, we can go the the lines corresponding to the previous or the next revision respectively.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - With &lt;i&gt;e&lt;/i&gt; we can modify the log entry text. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - With &lt;i&gt;f&lt;/i&gt; we can visit the revision indicated at the current line (like &lt;i&gt;C-x v ~&lt;/i&gt; above).&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; - With &lt;i&gt;d&lt;/i&gt; see the diff between the revision at the current line and the next earlier revision.&lt;br /&gt;&lt;br /&gt;* &lt;b&gt;Undo changes&lt;/b&gt;:&lt;br /&gt;&lt;i&gt;C-x v u&lt;/i&gt; revert the file to the revision from which you started editing.&lt;br /&gt;&lt;br /&gt;Later on I will add to my daily version control fix how to work with branches, but for the moment this is 90% of what I really need from a CVS.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4876519448842896950?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4876519448842896950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4876519448842896950' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4876519448842896950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4876519448842896950'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/file-version-control.html' title='File Version Control'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3055075539914082837</id><published>2010-11-09T14:41:00.001Z</published><updated>2010-11-10T13:12:34.410Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Classical guitar progress logging (Nov'10)</title><content type='html'>Today I'm starting my guitar progress logging, my plan being to record and upload every month a piece  that I'm learning, whatever its status, to keep a record of my progress,  my struggles, etc.&lt;br /&gt;&lt;br /&gt;We start with the Étude Simple n.VI by Leo Brouwer, which can be seen at &lt;a href="http://vimeo.com/16656488"&gt;http://vimeo.com/16656488&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My camera doesn't have an input for an external microphone, so I have to rely in its poor quality built-in microphone. (Later on I hope I will be able to learn how to easily and accurately sinchronize video recorded with the camera and audio recorded directly to the computer via microphone, but until then...)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Technical stuff&lt;/b&gt;: after editing it with PiTiVi, I render it with the options: VGA(640x480), Audio Output: CD; Container: FFmpeg AVI format muxer; Audio Codec: TwoLAME mp2 encoder; Video Codec: FFmpeg MPEG-4 part 2 encoder&lt;br /&gt;&lt;br /&gt;Other codecs gave me problems and the video could not be converted by the Vimeo Servers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3055075539914082837?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3055075539914082837/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3055075539914082837' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3055075539914082837'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3055075539914082837'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/classical-guitar-progress-logging-nov10.html' title='Classical guitar progress logging (Nov&apos;10)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4117792795893064857</id><published>2010-11-08T23:12:00.000Z</published><updated>2010-11-08T23:12:31.825Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Free classical guitar lessons on the internet</title><content type='html'>&lt;b&gt;Free classical guitar lessons on the internet&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Lessons given by Jean-François Delcamp&lt;br /&gt;&lt;br /&gt;(Professor at the Brest Conservatory of Music, Dance and Drama - France)&lt;br /&gt;&lt;br /&gt;The lessons will begin in November 2010 and finish in June 2011.&lt;br /&gt;These lessons correspond to the first three years at the conservatory&lt;br /&gt;The conditions for registering are available on the forum&lt;br /&gt;&lt;a href="http://www.delcamp.us/"&gt;http://www.delcamp.us/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;More details at: &lt;a href="http://www.delcamp.us/viewtopic.php?f=41&amp;amp;t=54022#p587821"&gt;http://www.delcamp.us/viewtopic.php?f=41&amp;amp;t=54022#p587821&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4117792795893064857?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4117792795893064857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4117792795893064857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4117792795893064857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4117792795893064857'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/free-classical-guitar-lessons-on.html' title='Free classical guitar lessons on the internet'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5824933793482821402</id><published>2010-11-04T10:49:00.001Z</published><updated>2010-11-04T11:06:46.109Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='Video'/><title type='text'>The best video editor in Linux? OpenShot vs. Kdenlive? The jury is still out.</title><content type='html'>I'm starting to create videos more or less frequently, and the software that I tried so far, while good, was not working that well. My video editing needs are simple: put together a number of sequences, mix them with audio, apply some effects and transitions (fade in, fade out, etc.), and add some titles, credits, etc., and export it all to different formats: for Internet, DVD, etc.; and obviously, all within Linux. &lt;br /&gt;&lt;br /&gt;When I start creating videos more regularly, perhaps I change my mind about the software I've used, but so far the fight is between OpenShot and Kdenlive. The video editing software that I have used:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.pitivi.org/"&gt;Pitivi&lt;/a&gt;, was behaving properly, it looked stable and easy to use, but transition effects are not yet implemented, only fades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openmovieeditor.org/"&gt;Open Movie Editor&lt;/a&gt;, the interface does not look very polished, although it was quite OK for some of the videos I did, but the main problem for me was that I didn't find a way to zoom in or zoom out in the timeline. This was a problem when I had very short clips (perhaps just a few seconds), because it would be difficult to select them, in order to move them around or cut them, etc. &lt;br /&gt;&lt;br /&gt;&lt;a href="http://kdenlive.org/"&gt;Kdenlive&lt;/a&gt;, this is probably the most complete editor of them all, and it has all those features that I want and many more, but in the past it crashed on me many times. Today I'm trying it again, with a new version (0.7.7.1), which apparently squashed many bugs, and it looks very promising. If I manage to run this version without crashes, this is probably the one that will win my heart. A screenshot of the video I'm editing right now:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TNKPBI6ue5I/AAAAAAAACMM/D0JonPywHQs/s1600/Kdenlive.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TNKPBI6ue5I/AAAAAAAACMM/D0JonPywHQs/s640/Kdenlive.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.openshot.org/"&gt;OpenShot&lt;/a&gt; is the new kid in the block, and the interface is quite clean and it is feature rich. So far, my only gripe is that if I apply effects to consecutive video clips, sometimes artifacts are created in the audio, but I think this also happens with Kdenlive, so I need to investigate. The screenshot of the same project with Openshot:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TNKPGKAVDiI/AAAAAAAACMQ/o3ytocDZioM/s1600/openshot.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TNKPGKAVDiI/AAAAAAAACMQ/o3ytocDZioM/s640/openshot.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;There are a few more programs to try, (see &lt;a href="http://en.wikipedia.org/wiki/Comparison_of_video_editing_software"&gt;http://en.wikipedia.org/wiki/Comparison_of_video_editing_software&lt;/a&gt;), but I think one of these two is going to be more than enough for my needs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5824933793482821402?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5824933793482821402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5824933793482821402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5824933793482821402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5824933793482821402'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/11/best-video-editor-in-linux-openshot-vs.html' title='The best video editor in Linux? OpenShot vs. Kdenlive? The jury is still out.'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TNKPBI6ue5I/AAAAAAAACMM/D0JonPywHQs/s72-c/Kdenlive.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2690792365175315859</id><published>2010-10-29T09:39:00.003Z</published><updated>2011-02-14T09:51:26.603Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='YouTube'/><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='mp3'/><title type='text'>Youtube videos to MP3 (or mpeg)</title><content type='html'>Today I wanted to download the music of a YouTube video, in order to show it to some friends off-line. It turns out that this is quite easy (for reference, this is using Ubuntu 10.04 LTS). &lt;i&gt;(Information consulted: &lt;a href="http://hubpages.com/hub/Youtube-to-MP3-on-Ubuntu-Linux"&gt;http://hubpages.com/hub/Youtube-to-MP3-on-Ubuntu-Linux&lt;/a&gt; and &lt;a href="http://lookherefirst.wordpress.com/2007/12/15/how-to-convert-flv-files-to-mpg-or-mp3/"&gt;http://lookherefirst.wordpress.com/2007/12/15/how-to-convert-flv-files-to-mpg-or-mp3/&lt;/a&gt;)&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;The first step is to get the aptly named script &lt;i&gt;youtube-dl&lt;/i&gt;. The version available in Ubuntu 10.04 is 2010.04.04, but this does not work properly anymore, and it gives the following error when trying to download a video:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv~$ youtube-dl http://www.youtube.com/watch?v=BTwhEPiv0U8&lt;br /&gt;[youtube] Setting language&lt;br /&gt;[youtube] BTwhEPiv0U8: Downloading video info webpage&lt;br /&gt;[youtube] BTwhEPiv0U8: Extracting video information&lt;br /&gt;ERROR: format not available for video&lt;br /&gt;angelv~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;If we download the latest version (2010.10.24) from &lt;a href="http://bitbucket.org/rg3/youtube-dl/wiki/Home"&gt;http://bitbucket.org/rg3/youtube-dl/wiki/Home&lt;/a&gt;, and just copy the file to /usr/bin/youtube-dl, then we have no trouble and the video (in .flv format) is saved:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv~$ youtube-dl http://www.youtube.com/watch?v=BTwhEPiv0U8&lt;br /&gt;[youtube] Setting language&lt;br /&gt;[youtube] BTwhEPiv0U8: Downloading video webpage&lt;br /&gt;[youtube] BTwhEPiv0U8: Downloading video info webpage&lt;br /&gt;[youtube] BTwhEPiv0U8: Extracting video information&lt;br /&gt;[download] Destination: BTwhEPiv0U8.flv&lt;br /&gt;[download] 100.0% of 7.73M at&amp;nbsp;&amp;nbsp; 59.74k/s ETA 00:00&lt;br /&gt;&lt;br /&gt;angelv~$ ls -lt *flv&lt;br /&gt;-rw-r--r-- 1 angelv dialout 8100631 2010-10-29 10:01 BTwhEPiv0U8.flv&lt;br /&gt;angelv~$ &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then, in order to convert it to an MP3 you will need &lt;i&gt;ffmpeg&lt;/i&gt; and the &lt;i&gt;libmp3lame0&lt;/i&gt; library (and in Ubuntu 10.04, perhaps also in others, the package &lt;i&gt;libavcodec-unstripped-52&lt;/i&gt;, so that &lt;i&gt;ffmpeg&lt;/i&gt; cand find &lt;i&gt;libmp3lame&lt;/i&gt;). With this in place, a small script will take care of everything:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!/bin/bash&lt;br /&gt;x=$RANDOM.flv&lt;br /&gt;youtube-dl --output=$x "$1"&lt;br /&gt;ffmpeg -i $x -ar 44100 -ab 160k -ac 2 "$2"&lt;br /&gt;rm $x&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;As an example:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv~/temp$ yt2mp3 http://www.youtube.com/watch?v=BTwhEPiv0U8 chiclana.mp3&lt;br /&gt;[youtube] Setting language&lt;br /&gt;[youtube] BTwhEPiv0U8: Downloading video webpage&lt;br /&gt;[youtube] BTwhEPiv0U8: Downloading video info webpage&lt;br /&gt;[youtube] BTwhEPiv0U8: Extracting video information&lt;br /&gt;[download] Destination: 17660.flv&lt;br /&gt;[download] 100.0% of 7.73M at&amp;nbsp;&amp;nbsp; 59.97k/s ETA 00:00&lt;br /&gt;FFmpeg version SVN-r0.5.1-4:0.5.1-1ubuntu1, Copyright (c) 2000-2009 Fabrice Bellard, et al.&lt;br /&gt;&amp;nbsp; configuration: --extra-version=4:0.5.1-1ubuntu1 --prefix=/usr --enable-avfilter --enable-avfilter-lavf --enable-vdpau --enable-bzlib --enable-libgsm --enable-libschroedinger --e\&lt;br /&gt;nable-libspeex --enable-libtheora --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --disable-vhook --enable-runtime-cpudetect --enable-gpl --enable-postproc \&lt;br /&gt;--enable-swscale --enable-x11grab --enable-libdc1394 --enable-shared --disable-static&lt;br /&gt;&amp;nbsp; libavutil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 49.15. 0 / 49.15. 0&lt;br /&gt;&amp;nbsp; libavcodec&amp;nbsp;&amp;nbsp;&amp;nbsp; 52.20. 1 / 52.20. 1&lt;br /&gt;&amp;nbsp; libavformat&amp;nbsp;&amp;nbsp; 52.31. 0 / 52.31. 0&lt;br /&gt;&amp;nbsp; libavdevice&amp;nbsp;&amp;nbsp; 52. 1. 0 / 52. 1. 0&lt;br /&gt;&amp;nbsp; libavfilter&amp;nbsp;&amp;nbsp;&amp;nbsp; 0. 4. 0 /&amp;nbsp; 0. 4. 0&lt;br /&gt;&amp;nbsp; libswscale&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0. 7. 1 /&amp;nbsp; 0. 7. 1&lt;br /&gt;&amp;nbsp; libpostproc&amp;nbsp;&amp;nbsp; 51. 2. 0 / 51. 2. 0&lt;br /&gt;&amp;nbsp; built on Mar&amp;nbsp; 4 2010 12:41:55, gcc: 4.4.3&lt;br /&gt;&lt;br /&gt;Seems stream 0 codec frame rate differs from container frame rate: 49.99 (4999/100) -&amp;gt; 25.00 (25/1)&lt;br /&gt;Input #0, flv, from '17660.flv':&lt;br /&gt;&amp;nbsp; Duration: 00:03:24.44, start: 0.000000, bitrate: 253 kb/s&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream #0.0: Video: h264, yuv420p, 320x240 [PAR 1:1 DAR 4:3], 253 kb/s, 25 tbr, 1k tbn, 49.99 tbc&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream #0.1: Audio: aac, 22050 Hz, stereo, s16&lt;br /&gt;Output #0, mp3, to 'chiclana.mp3':&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Stream #0.0: Audio: libmp3lame, 44100 Hz, stereo, s16, 160 kb/s&lt;br /&gt;Stream mapping:&lt;br /&gt;&amp;nbsp; Stream #0.1 -&amp;gt; #0.0&lt;br /&gt;Press [q] to stop encoding&lt;br /&gt;size=&amp;nbsp;&amp;nbsp;&amp;nbsp; 4003kB time=204.93 bitrate= 160.0kbits/s&lt;br /&gt;video:0kB audio:4003kB global headers:0kB muxing overhead 0.000781%&lt;br /&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;angelv~/temp$ ls -lt *mp3&lt;br /&gt;-rw-r--r-- 1 angelv dialout 4098644 2010-10-29 10:34 chiclana.mp3&lt;br /&gt;angelv~/temp$&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Despite its name, we can also use the script as-is to convert Youtube videos for example to &lt;i&gt;mpeg &lt;/i&gt;format:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~$ yt2mp3 http://www.youtube.com/watch?v=McdD9Ng4VnY funny.mpg&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2690792365175315859?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2690792365175315859/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2690792365175315859' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2690792365175315859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2690792365175315859'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/youtube-videos-to-mp3.html' title='Youtube videos to MP3 (or mpeg)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8443148613908608396</id><published>2010-10-18T09:27:00.000Z</published><updated>2010-10-18T09:27:53.250Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='OMR'/><title type='text'>From music sheet to MIDI (fourth round)</title><content type='html'>Time for &lt;a href="http://www.musitek.com/smartscre.html"&gt;SmartScore&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;the Joropó piece, which comes from a PDF file generated with a music notation software (oh, well, if you look at the original score, you will see that this is far from perfect... not so Smart, after all!):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLwQfzku2eI/AAAAAAAACL0/r2GWZ2tGQWo/s1600/smart_joropo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLwQfzku2eI/AAAAAAAACL0/r2GWZ2tGQWo/s640/smart_joropo.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Given the previous performance, I couldn't expect too much for the old scanned document at &lt;a href="http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf"&gt;http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf&lt;/a&gt;, but for completeness sake here it goes (although is almost useless): &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLwQlBKWuCI/AAAAAAAACL4/Tl4X-aw7Kqw/s1600/smart_scanned.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="396" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLwQlBKWuCI/AAAAAAAACL4/Tl4X-aw7Kqw/s640/smart_scanned.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And what about the scanned copy of one of my music books? Well, it gets confused with some of the bars, and it certainly would require some manual tweaking.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLwQqbSxu-I/AAAAAAAACL8/qwjqN7efb_k/s1600/smart_autumn.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="360" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLwQqbSxu-I/AAAAAAAACL8/qwjqN7efb_k/s640/smart_autumn.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;As per PhotoScore, MIDI files cannot be exported in the demo version, so I cannot test how well the music would be encoded.&lt;br /&gt;&lt;br /&gt;So far, from the different softwares that I have tried, I think the ones that I would to try a bit better are SharpEye and PhotoScore&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8443148613908608396?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8443148613908608396/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8443148613908608396' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8443148613908608396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8443148613908608396'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/from-music-sheet-to-midi-fourth-round.html' title='From music sheet to MIDI (fourth round)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hm_BgzIyQw0/TLwQfzku2eI/AAAAAAAACL0/r2GWZ2tGQWo/s72-c/smart_joropo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2146781175294184151</id><published>2010-10-15T22:29:00.000Z</published><updated>2010-10-15T22:29:45.018Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Repositories'/><category scheme='http://www.blogger.com/atom/ns#' term='Fedora'/><category scheme='http://www.blogger.com/atom/ns#' term='Yum'/><category scheme='http://www.blogger.com/atom/ns#' term='VirtualBox'/><title type='text'>Private Repository with Fedora 13 (part 1)</title><content type='html'>At my work we are considering ways to efficiently allow users to install/remove software in their Fedora workstations, but without requiring the root password, and in a controlled way (which basically means allowing them to install/remove only some packages and not others).&lt;br /&gt;&lt;br /&gt;So I set up to try the following:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;a Fedora13 workstation which downloads software from the standard repositories, to which regular users have no permission&lt;/li&gt;&lt;li&gt;to create a private repository in another local server, in which we can have all the software local to our workplace, and from which users can install/remove software without requiring administration privileges&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So I start by downloading the 32bits &lt;a href="http://fedoraproject.org/get-fedora"&gt;&lt;b&gt;Fedora 13 Desktop Edition&lt;/b&gt;&lt;/a&gt;, and installing it in a &lt;a href="http://www.virtualbox.org/"&gt;VirtualBox&lt;/a&gt; Virtual Machine. The Live System comes up OK inside VirtualBox, but for some reason, the "Install to Hard Drive" option does not seem to work... I'm not the first one to have &lt;a href="http://forums.fedoraforum.org/showthread.php?t=249554"&gt;this problem&lt;/a&gt;, and setting the "Base Memory" for the Virtual Machine to 1GB seems to solve the problem, and the installation to hard disk starts OK. Apparently after installation we don't need so much memory, so I change it back to 512MB and Fedora13 boots without any trouble:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbUtWH33sI/AAAAAAAACLU/r3_2vboQSTs/s1600/fedora-vb.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="532" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbUtWH33sI/AAAAAAAACLU/r3_2vboQSTs/s640/fedora-vb.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;span id="goog_1959263074"&gt;&lt;/span&gt;&lt;span id="goog_1959263075"&gt;&lt;/span&gt;So, we do the same for another virtual machine, the one that will act as the private repository. Next, we need to be able to boot both machines at the same time and configure networking so that they will see each other. After reading the &lt;a href="http://www.virtualbox.org/manual/ch06.html"&gt;VirtualBox instructions&lt;/a&gt; I decide configure each machine to have two adapters, one with NAT, and the other one as an internal network (which they will use to see each other):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLbe3pCMgeI/AAAAAAAACLY/bLnWBExnGNA/s1600/network.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLbe3pCMgeI/AAAAAAAACLY/bLnWBExnGNA/s400/network.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And inside the guests, I configure eth1 manually with the addresses 192.168.0.1 and 192.168.0.2&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbfL9ujMYI/AAAAAAAACLc/47LUb7BcPy8/s1600/adapters.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbfL9ujMYI/AAAAAAAACLc/47LUb7BcPy8/s320/adapters.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Then we add two lines to the file /etc/hosts in both guests:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[root@ws ~]# head -n 2 /etc/hosts&lt;br /&gt;192.168.0.2    repo&lt;br /&gt;192.168.0.1    ws&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And both machines can see each other without trouble:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbhnwp626I/AAAAAAAACLg/LktwAEmXDRM/s1600/touching.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="402" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbhnwp626I/AAAAAAAACLg/LktwAEmXDRM/s640/touching.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Since we haven't changed any configuration regarding the Fedora repositories, right now both machines will get all the software upgrades from the standard repositories, and only root can do them.&lt;br /&gt;&lt;br /&gt;So now, we have to be able to create a local repository in the machine &lt;i&gt;&lt;b&gt;repo &lt;/b&gt;&lt;/i&gt;and use it as an additional repository in machine &lt;i&gt;&lt;b&gt;ws&lt;/b&gt;&lt;/i&gt;, but one from which a regular user can install software.&lt;br /&gt;&lt;br /&gt;In order to create a local repository, we follow more or less &lt;a href="http://www.howtoforge.com/setting-up-a-local-yum-repository-fedora8"&gt;these instructions&lt;/a&gt;: &lt;br /&gt;&lt;code&gt;&lt;br /&gt;yum install httpd&lt;br /&gt;chkconfig --levels 235 httpd on&lt;br /&gt;/etc/init.d/httpd start&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But we cannot contact the web server at &lt;b&gt;http://repo&lt;/b&gt;, since the firewall is preventing it. We open it by running the command&amp;nbsp; &lt;i&gt;system-config-firewall&lt;/i&gt; and selecting "http" as trusted. Then, from &lt;b&gt;ws&lt;/b&gt; there is no problem to load the default Apache webpage.&lt;br /&gt;&lt;br /&gt;Then we create the local directories:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;mkdir /var/www/html/yum/SIE/fedora-13/i386&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In that directory we copy the following RPM &lt;a href="ftp://fr2.rpmfind.net/linux/fedora/releases/13/Everything/i386/os/Packages/xzgv-0.9.1-2.fc13.i686.rpm"&gt;xzgv-0.9.1-2.fc13.i686.rpm&lt;/a&gt; and then run the &lt;i&gt;createrepo&lt;/i&gt; command:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;createrepo /var/www/html/yum/SIE/fedora-13/i386&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then we test in &lt;b&gt;ws&lt;/b&gt; whether it is working. First we create the file SIE.repo:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLb9Jd1E95I/AAAAAAAACLk/Ej9ZmvQ9llI/s1600/repo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="132" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLb9Jd1E95I/AAAAAAAACLk/Ej9ZmvQ9llI/s400/repo.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;(Modify to whatever metadata_expire suits you: see&amp;nbsp;&lt;a href="http://forums.fedoraforum.org/showthread.php?t=216398"&gt;http://forums.fedoraforum.org/showthread.php?t=216398&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;And we see that a simple install would work:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLb-CI6QcWI/AAAAAAAACLo/rHXFh7Xx6qk/s1600/install.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="444" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLb-CI6QcWI/AAAAAAAACLo/rHXFh7Xx6qk/s640/install.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But when I really try to install something, then I see that we get problems with permissions. By default Apache simply does not list the .rpm files, and we cannot download them directly (if we rename a .rpm file to a file without extension, then there is no problem...). This has something to do with SELinux! Temporarily running "setenforce 0" solves the problem (see &lt;a href="http://www.crypt.gen.nz/selinux/disable_selinux.html"&gt;http://www.crypt.gen.nz/selinux/disable_selinux.html&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Installing something as root is then no problem. In order to be able to run it as a regular user, I create a script:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLgRuhz6KPI/AAAAAAAACLs/H_h86z6EFew/s1600/SIE.install.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="82" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLgRuhz6KPI/AAAAAAAACLs/H_h86z6EFew/s400/SIE.install.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;and add the following in the /etc/sudoers of &lt;b&gt;ws&lt;/b&gt; (see &lt;i&gt;sudoers&lt;/i&gt; &lt;a href="http://www.sudo.ws/sudo/sudoers.man.html"&gt;documentation&lt;/a&gt;):&lt;br /&gt;&lt;code&gt;&lt;br /&gt;ALL   ALL=(ALL)   NOPASSWD: /usr/bin/SIE.install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;This is not ideal. The user can install but cannot remove the package. We should find a better way to make sure that a regular user can do all the usual tasks with yum, but only if they affect a package coming from our local repository (search packages, install them, remove them, be informed automatically of any updates...), but for the moment we leave it like this. Later on, we have to have a good read of &lt;a href="http://www.packagekit.org/pk-intro.html"&gt;PackageKit&lt;/a&gt; to see if it provides better control for this (it uses &lt;a href="http://www.freedesktop.org/wiki/Software/PolicyKit"&gt;PolicyKit&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So now we have (an alpha version!) most of the staff in place, and we should just document how to create a RPM package out of our local software, and how to make sure that users get notified of updates to our software. This will have to go in another post...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2146781175294184151?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2146781175294184151/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2146781175294184151' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2146781175294184151'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2146781175294184151'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/private-repository-with-fedora-13-part.html' title='Private Repository with Fedora 13 (part 1)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TLbUtWH33sI/AAAAAAAACLU/r3_2vboQSTs/s72-c/fedora-vb.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2448588084563029988</id><published>2010-10-15T17:16:00.004Z</published><updated>2011-04-08T12:38:28.415Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Ear-training'/><title type='text'>Ear-training: fourths and fifths</title><content type='html'>(A continuation of &lt;a href="http://angel-de-vicente.blogspot.com/search/label/Ear-training"&gt;the Ear-training thread&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;script src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js" type="text/javascript"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldFlnb0JwN3dDWXBybXdEM0NVdjBqekE&amp;transpose=0&amp;headers=0&amp;range=A2%3AB12&amp;gid=0&amp;pub=1","options":{"fontColor":"#fff","midColor":"#36c","pointSize":7,"headerColor":"#3d85c6","vAxis":{"format":"#0.###############"},"headerHeight":40,"is3D":false,"lineSize":2,"hAxis":{"maxAlternation":1},"wmode":"opaque","title":"Ascending fourths and fifths","pointSizeOther":7,"isStacked":false,"mapType":"hybrid","displayAnnotations":true,"showTip":true,"titleY":"","dataMode":"markers","titleX":"Date","colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"smoothLine":false,"lineWidth":"2","maxColor":"#222","labelPosition":"right","fontSize":"14px","hasLabelsColumn":true,"maxDepth":2,"legend":"none","allowCollapse":true,"minColor":"#ccc","reverseAxis":false,"width":450,"height":346},"refreshInterval":5} &lt;/script&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldFlnb0JwN3dDWXBybXdEM0NVdjBqekE&amp;transpose=0&amp;headers=0&amp;range=G2%3AH18&amp;gid=0&amp;pub=1","options":{"fontColor":"#fff","midColor":"#36c","pointSize":7,"headerColor":"#3d85c6","vAxis":{"format":"#0.###############"},"headerHeight":40,"is3D":false,"lineSize":2,"hAxis":{"maxAlternation":1},"wmode":"opaque","title":"Descending fourths and fifths","pointSizeOther":7,"isStacked":false,"mapType":"hybrid","displayAnnotations":true,"showTip":true,"titleY":"","dataMode":"markers","titleX":"Date","colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"smoothLine":false,"lineWidth":"2","maxColor":"#222","labelPosition":"right","fontSize":"14px","hasLabelsColumn":true,"maxDepth":2,"legend":"none","allowCollapse":true,"minColor":"#ccc","reverseAxis":false,"width":450,"height":320},"refreshInterval":5} &lt;/script&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2448588084563029988?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2448588084563029988/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2448588084563029988' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2448588084563029988'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2448588084563029988'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/ear-training-fourths-and-fifths.html' title='Ear-training: fourths and fifths'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7253953504237889279</id><published>2010-10-13T10:43:00.001Z</published><updated>2010-10-18T08:44:14.006Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='OMR'/><title type='text'>From music sheet to MIDI (third round)</title><content type='html'>Today is the time to try another piece of software: &lt;a href="http://www.neuratron.com/photoscore.htm"&gt;PhotoScore Ultimate 6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As with the others, we start with an easy one, the Joropó piece, which comes from a PDF file generated with a music notation software. And PhotoScore Ultimate 6 gets this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLV1qciIrbI/AAAAAAAACLM/2evO2hfs6AI/s1600/ultimate6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="370" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLV1qciIrbI/AAAAAAAACLM/2evO2hfs6AI/s640/ultimate6.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A perfect performance. It is a pity that I could not save it to a MIDI file to try to load it with Rosegarden, since this was the Demo version, and that feature is not present.&lt;br /&gt;&lt;br /&gt;The old scanned document at &lt;a href="http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf"&gt;http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf&lt;/a&gt; does not get recognized very well with this program either:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLV4-KKCzUI/AAAAAAAACLQ/j6zmJMiTQ9E/s1600/scanned_ultimate.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="344" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLV4-KKCzUI/AAAAAAAACLQ/j6zmJMiTQ9E/s640/scanned_ultimate.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And for my scanned copy of my book, PhotoScore does a quite decent job, although not better than SharpEye: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TLwIb--vKCI/AAAAAAAACLw/7V3hIsvw5ps/s1600/photoscore.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="302" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TLwIb--vKCI/AAAAAAAACLw/7V3hIsvw5ps/s640/photoscore.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;It is a pity that the demo version cannot export to MIDI, because it would be nice to be able to compare PhotoScore's generated MIDI to that generated by SharpEye.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7253953504237889279?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7253953504237889279/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7253953504237889279' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7253953504237889279'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7253953504237889279'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/from-music-sheet-to-midi-third-round.html' title='From music sheet to MIDI (third round)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TLV1qciIrbI/AAAAAAAACLM/2evO2hfs6AI/s72-c/ultimate6.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2255514902206707632</id><published>2010-10-10T21:13:00.004Z</published><updated>2011-04-11T08:34:28.234Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Ear-training'/><title type='text'>Ear-training: thirds</title><content type='html'>(A continuation of &lt;a href="http://angel-de-vicente.blogspot.com/search/label/Ear-training"&gt;the Ear-training thread&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldG9qQ1pSbDdlZ3FZaUQ4Mm80d2sydUE&amp;transpose=0&amp;headers=0&amp;range=A2%3AB16&amp;gid=0&amp;pub=1","options":{"titleY":"","titleX":"Date","pointSize":7,"colors":["#4684EE","#DC3912","#FF9900","#008000","#666666","#4942CC","#CB4AC5","#D6AE00","#336699","#DD4477","#AAAA11","#66AA00","#888888","#994499","#DD5511","#22AA99","#999999","#705770","#109618","#A32929"],"smoothLine":false,"is3D":false,"lineSize":2,"hasLabelsColumn":true,"title":"Ascending thirds","legend":"none","pointSizeOther":7,"reverseAxis":false,"isStacked":false,"vAxis":{"format":"#0.###############"},"hAxis":{},"width":450,"height":320},"refreshInterval":5} &lt;/script&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldG9qQ1pSbDdlZ3FZaUQ4Mm80d2sydUE&amp;transpose=0&amp;headers=0&amp;range=G2%3AH90&amp;gid=0&amp;pub=1","options":{"fontColor":"#fff","midColor":"#36c","pointSize":7,"headerColor":"#3d85c6","vAxis":{"format":"#0.###############"},"headerHeight":40,"is3D":false,"lineSize":2,"hAxis":{"maxAlternation":1},"wmode":"opaque","title":"Descending thirds","pointSizeOther":7,"isStacked":false,"mapType":"hybrid","displayAnnotations":true,"showTip":true,"titleY":"","dataMode":"markers","titleX":"Date","colors":["#3366CC","#DC3912","#FF9900","#109618","#990099","#0099C6","#DD4477","#66AA00","#B82E2E","#316395"],"smoothLine":false,"lineWidth":"2","maxColor":"#222","labelPosition":"right","fontSize":"14px","hasLabelsColumn":true,"maxDepth":2,"legend":"none","allowCollapse":true,"minColor":"#ccc","reverseAxis":false,"width":450,"height":320},"refreshInterval":5} &lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2255514902206707632?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2255514902206707632/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2255514902206707632' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2255514902206707632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2255514902206707632'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/ear-training-descending-seconds.html' title='Ear-training: thirds'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4715243675787121522</id><published>2010-10-09T22:36:00.001Z</published><updated>2010-10-10T09:23:29.582Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='OMR'/><title type='text'>From music sheet to MIDI (second round)</title><content type='html'>Yesterday I tried PDFtoMusic Pro and Audiveris for getting MIDI files out of music sheets. Today I'm trying another software, which looks much more promising: &lt;a href="http://www.visiv.co.uk/"&gt;SharpEye&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So, let's start with the easy one, the Joropó piece, which comes from a PDF file generated with a music notation software. SharpEye gets this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLDieO3_WCI/AAAAAAAACKs/jWTA3mtt2sA/s1600/sharpeye_joropo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="380" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLDieO3_WCI/AAAAAAAACKs/jWTA3mtt2sA/s640/sharpeye_joropo.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Not a single mistake for the first seven bars, for all the guitars. Not bad at all. And the generated MIDI file can be loaded into Rosegarden without any trouble.&lt;br /&gt;&lt;br /&gt;How does SharpEye cope with the old scanned document at &lt;a href="http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf"&gt;http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf&lt;/a&gt;? Well, the side-by-side view of the original document and the music recognized shows that there is still plenty of room for improvement, although it does work much better than Audiveris.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLDl6_bDLuI/AAAAAAAACKw/oXlgXQNiLuc/s1600/scanned_sharpeye.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="230" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLDl6_bDLuI/AAAAAAAACKw/oXlgXQNiLuc/s640/scanned_sharpeye.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;But it is true that the quality of the original is a bit poor, so let's be a bit nicer with the poor silicon brain, and let's compare Audiveris and SharpEye with a nicely scanned piece (I scan a random piece in one of my books at 600 dpi, though put it back to 300 dpi when transforming it to JPG (for Audiveris) and TIFF (for SharpEye)), and the first 9 bars of the scanned document look like:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLDnPHRu7iI/AAAAAAAACK0/rgGJMxjbauE/s1600/autumn_9bars.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="312" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TLDnPHRu7iI/AAAAAAAACK0/rgGJMxjbauE/s640/autumn_9bars.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;What Audiveris gets is this:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TLDpXCbHRPI/AAAAAAAACK4/uA3gHMS6mig/s1600/9bars_audiveris.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="284" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TLDpXCbHRPI/AAAAAAAACK4/uA3gHMS6mig/s640/9bars_audiveris.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;You can see that many of the notes are correct, but this would definitely require some time to tidy it up. Worse is the fact that the MIDI created out of this seems to be broken, and when trying to load it in Rosegarden it simply refuses to do it, showing the message: "Attempt to read past MIDI file end"&lt;br /&gt;&lt;br /&gt;SharpEye does a much better job:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLDpdDSjmiI/AAAAAAAACK8/s_uf9nNAba4/s1600/9bars_se.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="358" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TLDpdDSjmiI/AAAAAAAACK8/s_uf9nNAba4/s640/9bars_se.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;For the first nine bars, it looks like SharpEye has done an excellent job. Actually, for the whole piece (24 bars), I counted only three mistakes, which is very good, but we shouldn't get too carried away... When the created MIDI file is imported into Rosegarden, the first nine bars look like this:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLDsLk0zcOI/AAAAAAAACLE/Kj9UJl9wdC0/s1600/9bars_rose.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="128" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TLDsLk0zcOI/AAAAAAAACLE/Kj9UJl9wdC0/s640/9bars_rose.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;A lot of mistakes now... More or less OK to recognize the piece, but given the quality inside SharpEye, one would like to get a better MIDI file...&lt;br /&gt;&lt;br /&gt;The quest for the perfect sheet-to-MIDI tool is still on!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4715243675787121522?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4715243675787121522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4715243675787121522' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4715243675787121522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4715243675787121522'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/from-music-sheet-to-midi-second-round.html' title='From music sheet to MIDI (second round)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/TLDieO3_WCI/AAAAAAAACKs/jWTA3mtt2sA/s72-c/sharpeye_joropo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7608474354323860495</id><published>2010-10-08T21:15:00.002Z</published><updated>2011-04-11T08:35:51.958Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Ear-training'/><title type='text'>Let's get serious about ear-training (seconds)</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;I seriously need to train my ear, and my ear-training companion is going to be&amp;nbsp;&lt;a href="http://www.solfege.org/"&gt;GNU Solfege&lt;/a&gt;. The idea is to try (daily or very nearly) one of the many tests that are available with that software and move to the next one when I consistently (three times in a row) can get a higher than 90% accuracy in each one. So, let's start from the beginning, and plot here the performance data for&amp;nbsp; seconds:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldGJkV2tidTNiaV9lS0dmb0VfNzVCR0E&amp;transpose=0&amp;headers=0&amp;range=A2%3AB15&amp;gid=0&amp;pub=1","options":{"titleY":"","titleX":"Date","pointSize":7,"colors":["#4684EE","#DC3912","#FF9900","#008000","#666666","#4942CC","#CB4AC5","#D6AE00","#336699","#DD4477","#AAAA11","#66AA00","#888888","#994499","#DD5511","#22AA99","#999999","#705770","#109618","#A32929"],"smoothLine":false,"is3D":false,"lineSize":2,"hasLabelsColumn":true,"title":"Ascending melodic intervals (seconds)","legend":"none","pointSizeOther":7,"reverseAxis":false,"isStacked":false,"vAxis":{"format":"#0.###############"},"hAxis":{},"width":450,"height":320},"refreshInterval":5} &lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/static/modules/gviz/1.0/chart.js"&gt; {"chartType":"LineChart","dataSourceUrl":"//spreadsheets.google.com/tq?key=0AgjvJuuWbgNldGJkV2tidTNiaV9lS0dmb0VfNzVCR0E&amp;transpose=0&amp;headers=0&amp;range=G2%3AH8&amp;gid=0&amp;pub=1","options":{"titleY":"","titleX":"Date","pointSize":7,"colors":["#4684EE","#DC3912","#FF9900","#008000","#666666","#4942CC","#CB4AC5","#D6AE00","#336699","#DD4477","#AAAA11","#66AA00","#888888","#994499","#DD5511","#22AA99","#999999","#705770","#109618","#A32929"],"smoothLine":false,"is3D":false,"lineSize":2,"hasLabelsColumn":true,"title":"Descending seconds","legend":"none","pointSizeOther":7,"reverseAxis":false,"isStacked":false,"vAxis":{"format":"#0.###############"},"hAxis":{},"width":450,"height":320},"refreshInterval":5} &lt;/script&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7608474354323860495?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7608474354323860495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7608474354323860495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7608474354323860495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7608474354323860495'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/lets-get-serious-about-ear-training.html' title='Let&apos;s get serious about ear-training (seconds)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1281582827187041091</id><published>2010-10-08T10:57:00.001Z</published><updated>2010-10-08T10:58:08.864Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='OMR'/><title type='text'>From music sheet to MIDI (originally from PDFs to MIDI)</title><content type='html'>There is a LOT of music out there... thousands and thousands of pieces, and not much time to practice all of them, so it would be very nice to be able to get a PDF file, convert it to MIDI and quickly have an idea of how it is supposed to be, and then perhaps use that MIDI file in order to practice. So I have been trying two different software tools to do it. The first one is &lt;a href="http://www.myriad-online.com/en/products/pdftomusicpro.htm"&gt;PDFtoMusic Pro&lt;/a&gt;, which is not available for Linux and is not free, and the other one&amp;nbsp; &lt;a href="http://kenai.com/projects/audiveris"&gt;Audiveris&lt;/a&gt;, which is Open Source Software and will happily work in Linux.&lt;br /&gt;&lt;br /&gt;In order to test each software, I start with the piece Joropó (for four guitars), which can be downloaded from &lt;a href="http://www.forrestguitarensembles.co.uk/quartets.html"&gt;http://www.forrestguitarensembles.co.uk/quartets.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;PDFtoMusic Pro&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I don't have Windows, but I installed this in my Ubuntu 10.04 machine with &lt;a href="http://www.winehq.org/"&gt;Wine&lt;/a&gt; 1.1.42, and it runs without any (apparent) trouble. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TK7jsv_K1KI/AAAAAAAACKY/aKs6cjLwOqM/s1600/joropo_pdftomusic.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="324" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TK7jsv_K1KI/AAAAAAAACKY/aKs6cjLwOqM/s640/joropo_pdftomusic.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I had no trouble at all to load the file, and to play directly inside it, without exporting it to MIDI, but actually I'm more interested in being able to export it to a MIDI file, so that later I can tweak it from inside &lt;a href="http://www.rosegardenmusic.com/"&gt;Rosegarden&lt;/a&gt; or similar. &lt;br /&gt;&lt;br /&gt;Exporting the file (or only selected pages) to MIDI is trivial, and when loaded in Rosegarden, there is no problem with playback. If we want to edit the file with the Notation Editor in Rosegarden, the result is pretty good, as can be seen from the first measures:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TK7lovqg93I/AAAAAAAACKc/Hhg5L3UjC7E/s1600/notation_editor.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TK7lovqg93I/AAAAAAAACKc/Hhg5L3UjC7E/s640/notation_editor.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;In order to get the same notation as the original score, we would have to tweak some of the sharps and turn them into flats, connect some notes with ligados, and change the clef of the fourth guitar, but those are quite small things.&lt;br /&gt;&lt;br /&gt;If we make changes to the score and then want to print the music, then the result is also quite good from within Rosegarden. In this case, I just changed the clef of the fourth guitar, and printed it from within Rosegarden (which uses Lilypond as the printing engine), and the result was quite acceptable:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TK7nKon0DxI/AAAAAAAACKg/UiwYEcFoW0g/s1600/print.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="614" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TK7nKon0DxI/AAAAAAAACKg/UiwYEcFoW0g/s640/print.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So, with PDFs that are generated with a music notation software, PDFtoMusic Pro works very well, but it cannot handle scanned music. For instance, when trying to load the file &lt;a href="http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf"&gt;http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf&lt;/a&gt; it will come up with the message:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TK7oz6ydaMI/AAAAAAAACKk/2fk43Sby5zs/s1600/Screenshot-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="143" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TK7oz6ydaMI/AAAAAAAACKk/2fk43Sby5zs/s400/Screenshot-1.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Audiveris&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Audiveris is different from PDFtoMusic Pro (besides being Open Source), in which it is actually an &lt;a href="http://en.wikipedia.org/wiki/Optical_music_recognition"&gt;OMR software&lt;/a&gt; and it will scan any document for music, even if it hasn't been generated by a music notation software.&lt;br /&gt;&lt;br /&gt;I start Audiveris like:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/audiveris$ java -Xmx256M -jar dist/audiveris-3.4.jar &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Audiveris can only handle one page at at time, so we decide to go for the first page, which I save as a PDF (with evince), but the result when loaded is just not there:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKw9p1uRrkI/AAAAAAAACKI/kMsXWHPw_oA/s1600/pdf_loaded.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKw9p1uRrkI/AAAAAAAACKI/kMsXWHPw_oA/s640/pdf_loaded.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So, I convert it to png first, but then Audiveris cannot even load it:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/temp$ convert -density 300 first_page.pdf first_page.png&lt;br /&gt;&lt;br /&gt;[...]&lt;br /&gt;&lt;br /&gt;omr.sheet.picture.PictureLoader.loadFile(PictureLoader.java:101) -- INFO: Loading image from /home/angelv/temp/first_page.png ...&lt;br /&gt;&amp;nbsp;omr.sheet.picture.PictureLoader$Listener.imageComplete(PictureLoader.java:366) -- INFO: Image loading complete&lt;br /&gt;&amp;nbsp;omr.step.SheetSteps$LoadTask.doit(SheetSteps.java:489) -- WARNING: Exception [java.lang.RuntimeException: Unsupported pixel size:16]&lt;br /&gt;&amp;nbsp;omr.step.Step.doStepRange(Step.java:354) -- WARNING: Processing aborted [omr.step.StepException: java.lang.RuntimeException: Unsupported pixel size:16]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With JPG all looks much better:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;convert -density 300 first_page.pdf first_page.jpg&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And all is fine now:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKw_fHSVVdI/AAAAAAAACKM/STUcw97LRL0/s1600/jpegloaded.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKw_fHSVVdI/AAAAAAAACKM/STUcw97LRL0/s640/jpegloaded.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So far we have only loaded the image. If we now want to perform the OMR step, we just go to the menu Step-Score, and we get the scanned music. If you look carefully below, there are some mistakes, but most of it is in the right place.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKxAcmrEtcI/AAAAAAAACKQ/3tn4copnN6U/s1600/conversion.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="486" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKxAcmrEtcI/AAAAAAAACKQ/3tn4copnN6U/s640/conversion.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Now, in theory one can export this to MusicXML format and use something like Lilypond to create a printable score, but something is not working. If I export it to MusicXML (Score-Export), and then try to use musicxml2ly I get the following errors:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/temp$ musicxml2ly first_page.xml &lt;br /&gt;Reading MusicXML from first_page.xml ...&lt;br /&gt;Traceback (most recent call last):&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2969, in &lt;module&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; main()&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2964, in main&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; voices = convert (filename, options)&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2874, in convert&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; (voices, staff_info) = get_all_voices (parts)&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2583, in get_all_voices&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; all_voices = voices_in_part_in_parts (parts)&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2573, in voices_in_part_in_parts&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; voices = voices_in_part (p)&lt;br /&gt;&amp;nbsp; File "/usr/bin/musicxml2ly", line 2560, in voices_in_part&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; part.interpret ()&lt;br /&gt;&amp;nbsp; File "/usr/share/lilypond/2.12.3/python/musicxml.py", line 676, in interpret&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; int (attributes_dict.get ('divisions').get_text ()))&lt;br /&gt;ValueError: invalid literal for int() with base 10: '4.0'&lt;br /&gt;angelv@vaso:~/temp$&lt;br /&gt;&lt;/module&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But I don't really care, as I'm interested in getting MIDI stuff (a basic PDF file can be created OK with Audiveris' own Score-PrintPDF option), though this will have the mistakes present in the scan, so it is not that useful...&lt;br /&gt;&lt;br /&gt;But now let's go for the real thing: getting a MIDI file and playing it. Midi-Store MIDI will create a MIDI file, which then can be uploaded to a MIDI sequencer, in my case Rosegarden. Without any modification, the MIDI is more or less OK, though obviously the mistakes that were present in the scan are there, so a crucial part will be the ability to edit the score manually.&lt;br /&gt;&lt;br /&gt;So, if we open the score editor in Rosegarden, we see that the notes are in there (the third guitar's first three bars don't show up when opening the editor in multitrack mode, but they are there if we open the editor just for the guitar's part), but they are all messed up (different clef for 3rd and 4th guitar, different key, different time signature,...). &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKxIHZzs4gI/AAAAAAAACKU/CH28jxR7giY/s1600/notation.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="274" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKxIHZzs4gI/AAAAAAAACKU/CH28jxR7giY/s640/notation.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;How difficult is to change it back to a recognizable score?&lt;br /&gt;&lt;br /&gt;Well, I did try to adjust it without looking at the Rosegarden documentation, but it was certainly not that trivial, so I decided to follow one of the Rosegarden tutorials to learn the basics, and then come back to this Joropó score, to try to adjust it properly. I followed the following&amp;nbsp;&lt;a href="http://www.rosegardenmusic.com/tutorials/supplemental/piano/index.html"&gt;Rosegarden tutorial&lt;/a&gt;, but even after reading that, it looks like doing all the modifications to get a score similar to the original one would be quite costly. A simpler task would be just to modify the MIDI file to "sound" like the original, but it is certainly going to take also some time to do it right.&lt;br /&gt;&lt;br /&gt;So, if your music is in a PDF generated by a music notation software and you are happy to pay for it, then certainly PDFtoMusic Pro does a much better job. But how can Audiveris handle scanned music? As with PDFtoMusic Pro, I tried to scan the first page of &lt;a href="http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf"&gt;http://www2.kb.dk/elib/noder/rischel/RiBS0848.pdf&lt;/a&gt; but I'm afraid that the result speaks for itself...:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_hm_BgzIyQw0/TK70KYJGJTI/AAAAAAAACKo/jXejEr94XDU/s1600/scanned.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="512" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/TK70KYJGJTI/AAAAAAAACKo/jXejEr94XDU/s640/scanned.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;So, I'm afraid that so far Audiveris is work in progress, but cannot really compete with PDFtoMusic Pro. I will continue my quest to see if I can find some way of making MIDI files out of scanned music sheets, but for the moment it looks like either they are PDF files produced with music notation software (in which case I can use PDFtoMusic Pro) or I will have to type them by hand...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1281582827187041091?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1281582827187041091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1281582827187041091' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1281582827187041091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1281582827187041091'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/from-music-sheet-to-midi-originally.html' title='From music sheet to MIDI (originally from PDFs to MIDI)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/TK7jsv_K1KI/AAAAAAAACKY/aKs6cjLwOqM/s72-c/joropo_pdftomusic.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2918963328504183700</id><published>2010-10-04T21:44:00.022Z</published><updated>2010-10-04T23:08:47.240Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='MIDI'/><category scheme='http://www.blogger.com/atom/ns#' term='Rosegarden'/><category scheme='http://www.blogger.com/atom/ns#' term='JACK'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='Ardour'/><category scheme='http://www.blogger.com/atom/ns#' term='Qsynth'/><title type='text'>First Steps with Music Software in Linux</title><content type='html'>There are not (so far) many musical things that I want to do in the computer, but playing a MIDI file; mixing it with my own recording of playing one of the parts, and exporting it all into an audio file is one of them, so today I set some time to learn the basics.&amp;nbsp; In the computer I did this I'm running Ubutu 10.04, and I have followed the instructions in &lt;a href="https://help.ubuntu.com/community/Ubuntu%20Studio%20Upgrade%20from%20Ubuntu"&gt;the Ubuntu Studio pages&lt;/a&gt; to quickly install all the software that I need (and much more), and to configure it.&lt;br /&gt;&lt;br /&gt;With that in place, I rebooted the PC into the RealTime Kernel, and then I started by running &lt;a href="https://help.ubuntu.com/community/What%20is%20JACK"&gt;JACK&lt;/a&gt;, &lt;a href="http://qsynth.sourceforge.net/qsynth-index.html"&gt;Qsynth&lt;/a&gt; and &lt;a href="http://www.rosegardenmusic.com/"&gt;Rosegarden&lt;/a&gt;. (Qsynth needs some soundfonts, and I downloaded some into the file /usr/share/sounds/sf2/FluidR3_GM.sf2. I don't remember where I got them from, but you can get them, for example, at &lt;a href="http://musescore.org/handbook/soundfont"&gt;http://musescore.org/handbook/soundfont&lt;/a&gt;). This looks like:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKnoUnb3WsI/AAAAAAAACJY/fLI7kVC6yV0/s1600/rose1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="476" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKnoUnb3WsI/AAAAAAAACJY/fLI7kVC6yV0/s640/rose1.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then, it is time to check that all connectivity is working OK. The "Connect" button in the JACK interface will show the connections available. In my case: &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKnpUkOUYYI/AAAAAAAACJc/GXMNtovVJTM/s1600/rose2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="237" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKnpUkOUYYI/AAAAAAAACJc/GXMNtovVJTM/s400/rose2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;This shows that the "General MIDI Device" in Rosegarden is connected to FLUID Synth (QSynth is just the GUI for fluidsynth), so all should be OK. &lt;br /&gt;&lt;br /&gt;Then in Rosegarden we load a MIDI file, and select the instruments you want, modify the volume, reverb, etc. It took me a while (perhaps it should have been faster if I had read the documentation) to figure out how to select different instruments for each track, but it is actually quite easy. Just select one of the tracks:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TKnqf6rO74I/AAAAAAAACJg/In-1VLYOZU8/s1600/rose3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="118" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TKnqf6rO74I/AAAAAAAACJg/In-1VLYOZU8/s200/rose3.png" width="200" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Then say which &lt;b&gt;instrument number&lt;/b&gt; you are going to use for that track:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TKntVX3AAII/AAAAAAAACJk/SElhEXGWfg8/s1600/rose4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TKntVX3AAII/AAAAAAAACJk/SElhEXGWfg8/s1600/rose4.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;My confusion for a while was to trust the name of what it would appear in the "Instrument" description, before I actually configured each instrument sound. So, the description in the "Instrument" field can be wrong. I guess it keeps whatever it was used last time with whatever synthesizer, so don't trust it, and instead, once you have selected the instrument number, you should specify the sound to be used for that instrument number:&lt;br /&gt;&lt;br /&gt;&lt;span id="goog_201485990"&gt;&lt;/span&gt;&lt;span id="goog_201485991"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKpFKOUuDbI/AAAAAAAACJ4/6A68hucZxSI/s1600/rose5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKpFKOUuDbI/AAAAAAAACJ4/6A68hucZxSI/s1600/rose5.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;With that in place (you will see that now the Instrument description in the track parameters section above reflects the change made here), you can now use Rosegarden to play the MIDI file with whatever instruments you choose.&lt;br /&gt;&lt;br /&gt;So now we just have to record it into an audio file. This is done quite easily by just routing the output of Qsynth to &lt;a href="http://ardour.org/"&gt;Ardour&lt;/a&gt;. First, we will need to create at least one track with Ardour (here in the example: Audio1):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TKpXkqmsPrI/AAAAAAAACJ8/KQLNUGEZ7xI/s1600/Ardour.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TKpXkqmsPrI/AAAAAAAACJ8/KQLNUGEZ7xI/s640/Ardour.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&amp;nbsp;Then, in JACK we will have to connect the output from Qsynth to Ardour:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKpXyMn85cI/AAAAAAAACKA/MB-Y8S3xYCo/s1600/connections.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="215" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/TKpXyMn85cI/AAAAAAAACKA/MB-Y8S3xYCo/s400/connections.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;And lastly is just a matter of recording (first we have to select in which track we will be recording, in this case Audio 1,and then proceed with the "main" recording):&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TKpYG-vB6UI/AAAAAAAACKE/V3eNDKEhl-E/s1600/Ardour_recorded.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="264" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TKpYG-vB6UI/AAAAAAAACKE/V3eNDKEhl-E/s640/Ardour_recorded.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Adding other audio tracks (from an external mic, another software, etc.) would follow similar steps in Ardour. The last step is just to "export session to audiofile".&lt;br /&gt;&lt;br /&gt;A&amp;nbsp; basic MIDI-performance obtained in this way can be found at &lt;a href="http://vimeo.com/15544117"&gt;vimeo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2918963328504183700?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2918963328504183700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2918963328504183700' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2918963328504183700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2918963328504183700'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/10/first-steps-with-music-software-in.html' title='First Steps with Music Software in Linux'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/TKnoUnb3WsI/AAAAAAAACJY/fLI7kVC6yV0/s72-c/rose1.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5036047122986918958</id><published>2010-09-30T10:06:00.001Z</published><updated>2010-11-04T12:16:51.248Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Back to student life...</title><content type='html'>Well, not really! From the student life I will only get the studying part... partying, dating, drinking, etc. are out...&lt;br /&gt;&lt;br /&gt;This week we have started all the classes at the Conservatoire. I'm not sure I will be able to follow all of them, but I'm certainly going to try. In total I have 6.5 "contact" hours per week:&lt;br /&gt;&lt;br /&gt;Guitar: 1 &lt;br /&gt;Ensemble: 1 &lt;br /&gt;Harmony: 2&lt;br /&gt;Choral: 1.5&lt;br /&gt;Chamber music: 1&lt;br /&gt;&lt;br /&gt;Except for Chamber music, I had already one lesson of each of these.&lt;br /&gt;&lt;br /&gt;In the guitar class, we have started directly with the Leo Brouwer simple studies n. VI and VII (they don't look particularly difficult, though they will need some time).&lt;br /&gt;&lt;br /&gt;In the ensemble class, we started with two pieces for guitar quartet by Andrew Forrest (Joropó and Barcarowl), which can be downloaded at: &lt;a href="http://www.forrestguitarensembles.co.uk/quartets.html"&gt;http://www.forrestguitarensembles.co.uk/quartets.html&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;In harmony class, we started with the basic theory on triads, cadences, etc. I was hoping I could follow the &lt;a href="http://www.amazon.com/Harmony-Fifth-Walter-Piston/dp/0393954803"&gt;Walter Piston book&lt;/a&gt;, and skip the lessons, but it looks like the teacher is going to follow a slightly different method, so I guess I will better attend as many lessons as possible.&lt;br /&gt;&lt;br /&gt;In choral music class, we started by singing two pieces: "Adoramus Te" by W.A. Mozart and "Hymne a la Nuit" de J.P. Rameau.&lt;br /&gt;&lt;br /&gt;Overall I don't think is going to be as difficult as I was expecting, though my intonation skills could certainly be improved, so I will have to devote some time to ear-training stuff. I would gladly do without the choral music class, but I guess at least it will be a way of forcing myself to not forget these ear-training exercises...&lt;br /&gt;&lt;br /&gt;Let's see how I can cope with all this extra work in my already quite-busy life...&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;(Update: 4-Nov-2010)&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;It was a bit too much, so I decided to drop one of the courses: Chamber Music, which I will to do next year. My current plan is to do the remaining four years to the professional degree in six years (perhaps it is also a bit ambitious, since the higher the year, the higher the number of courses to take), but it is a bit more realistic. Let's see how it goes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5036047122986918958?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5036047122986918958/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5036047122986918958' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5036047122986918958'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5036047122986918958'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/09/back-to-student-life.html' title='Back to student life...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-513004459259642423</id><published>2010-09-24T11:39:00.000Z</published><updated>2010-09-24T11:39:00.984Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Virtual'/><category scheme='http://www.blogger.com/atom/ns#' term='Xen'/><category scheme='http://www.blogger.com/atom/ns#' term='MPI'/><title type='text'>Building A Virtual Cluster with Xen</title><content type='html'>Not new stuff, but today I was looking for some information on this, and I just realized that I didn't have a link to this article which I posted some years ago at the ClusterMonkey site. I'm not sure how many things would need updating, but the ideas still hold.&lt;br /&gt;&lt;br /&gt;The article is in two parts:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clustermonkey.net//content/view/139/33/"&gt;Part_1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.clustermonkey.net//content/view/161/33/"&gt;Part_2&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-513004459259642423?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/513004459259642423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=513004459259642423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/513004459259642423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/513004459259642423'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/09/building-virtual-cluster-with-xen.html' title='Building A Virtual Cluster with Xen'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3934767257634295944</id><published>2010-07-30T11:35:00.000Z</published><updated>2010-07-30T11:35:18.479Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SPOJ'/><category scheme='http://www.blogger.com/atom/ns#' term='Programming'/><title type='text'>Sphere Online Judge (SPOJ) progress</title><content type='html'>SPOJ is one of the main sites that host programming challenges. The problems in SPOJ are for the most part much easier than the ones in Project Euler (which I have also &lt;a href="http://angel-de-vicente.blogspot.com/2008/12/one-month-in-project-euler.html"&gt;posted about&lt;/a&gt;, although I have neglected it for several months...), so they are quite nice to try to solve in new programming languages. At this moment there are &amp;gt;10K users who have submitted at least one correct solution to one of the programs, so the place is very active. The graph below will show my progress in SPOJ, although I don't really intend to compete. I will only look for problems that look interesting to develop my programming skills. &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldG02dUpqVDhUS1pJWHZpUW9VSWtIUXc&amp;amp;oid=1&amp;amp;zx=jwpq6ts83ek1" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldG02dUpqVDhUS1pJWHZpUW9VSWtIUXc&amp;amp;oid=1&amp;amp;zx=jwpq6ts83ek1" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3934767257634295944?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3934767257634295944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3934767257634295944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3934767257634295944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3934767257634295944'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/07/sphere-online-judge-spoj-progress.html' title='Sphere Online Judge (SPOJ) progress'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-615526423739838047</id><published>2010-07-20T11:55:00.001Z</published><updated>2010-07-20T11:56:04.435Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Debugging'/><category scheme='http://www.blogger.com/atom/ns#' term='Fortran'/><category scheme='http://www.blogger.com/atom/ns#' term='MPI'/><category scheme='http://www.blogger.com/atom/ns#' term='PGI'/><title type='text'>Debugging Fortran+MPI codes with "The Portland Group" debugger (pgdbg)</title><content type='html'>I have to admit that I didn't get the Fox algorithm in my&amp;nbsp;&lt;a href="http://angel-de-vicente.blogspot.com/2010/07/fox-algorithm-for-matrix-multiplication.html"&gt;previous post&lt;/a&gt; correct the very first time, so I had to do some parallel debugging. In the past, I have used &lt;i&gt;gdb&lt;/i&gt;, and the Intel Debugger, and now it was time to try &lt;i&gt;pgdbg&lt;/i&gt; (&lt;a href="http://www.pgroup.com/index.htm"&gt;The Portland Group&lt;/a&gt; debugger). Next in line is TotalView.&lt;br /&gt;&lt;br /&gt;At our institution the Portland compiler's version installed is 10.5, but this had some issues with my current workstation linux distribution (Ubuntu 10.04 64 bits), so I installed the current latest version: 10.6. Installation was very simple with their install script, and once the license file was in place it was time to try it.&lt;br /&gt;&lt;br /&gt;Compilation of the code can be done with the included MPICH1, with the following command:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/fox$ pgf90 -o fox -Mmpi=mpich1 -g fox.f90&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Since we will be using &lt;i&gt;ssh&lt;/i&gt; to connect to the other processors (actually just a number of processes all running in my local workstation), we need to first get the &lt;i&gt;ssh&lt;/i&gt; security sorted out (tips from the "&lt;a href="http://www.pgroup.com/resources/docs.htm"&gt;PGI Tools Guide&lt;/a&gt;" documentation, page. 90). We generate the &lt;i&gt;ssh&lt;/i&gt; keys with a passphrase (and copy them to the authorized keys):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ ssh-keygen -t dsa&lt;br /&gt;&lt;make $home="" group-writable="" is="" not="" sure="" that=""&gt;&lt;br /&gt;$ cd $HOME/.ssh&lt;br /&gt;$ cp id_dsa.pub authorized_keys&lt;br /&gt;&lt;/make&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And then, from a new terminal we will just have to do the following, and enter the passphrase just once, and all subsequent &lt;i&gt;ssh&lt;/i&gt; connections will be passwordless:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ eval `ssh-agent -s`&lt;br /&gt;$ ssh-add&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this in place, we can run our code with the included MPICH1 version:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/fox$ mpirun -stdin fox.in -np 4 ./fox&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In order to run it with the debugger, we just add the option &lt;i&gt;-dbg=pgdbg&lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/fox$ mpirun -stdin fox.in -dbg=pgdbg -np 4 ./fox&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The following image shows a moment during the debugging session, where 4 processes have been created, and we are at the end of the first stage in the Fox algorithm. The window in the bottom shows how you can easily see the values of variables (whole matrixes included, which can be indexed according to Fortran syntax) for all (or a selection of) processes involved in the computation.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/_hm_BgzIyQw0/TEWNov3rU_I/AAAAAAAAB5k/jYcOIsLZl-g/s1600/pgdbg.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="508" src="http://1.bp.blogspot.com/_hm_BgzIyQw0/TEWNov3rU_I/AAAAAAAAB5k/jYcOIsLZl-g/s640/pgdbg.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;I need to try it for a longer period, but overall it looks like a very usable parallel debugger. The Portland Group has a video demo of the debugger &lt;a href="http://www.pgroup.com/products/pgdbg_demo.htm"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-615526423739838047?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/615526423739838047/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=615526423739838047' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/615526423739838047'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/615526423739838047'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/07/debugging-mpi-codes-with-portland-group.html' title='Debugging Fortran+MPI codes with &quot;The Portland Group&quot; debugger (pgdbg)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_hm_BgzIyQw0/TEWNov3rU_I/AAAAAAAAB5k/jYcOIsLZl-g/s72-c/pgdbg.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7311086862509043827</id><published>2010-07-19T21:32:00.006Z</published><updated>2010-07-20T11:12:43.368Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fortran'/><category scheme='http://www.blogger.com/atom/ns#' term='MPI'/><category scheme='http://www.blogger.com/atom/ns#' term='Fox'/><category scheme='http://www.blogger.com/atom/ns#' term='Algorithms'/><title type='text'>Fox algorithm for matrix multiplication in parallel with Fortran90+MPI</title><content type='html'>I'm now re-reading the book &lt;a href="http://tinyurl.com/3246ldh"&gt;"Parallel Programming with MPI" by Peter S. Pacheco&lt;/a&gt; and doing some of the exercises in there. An interesting one is the Programming Assignment n.1 in page. 133, which involves fully implementing the Fox parallel algorithm for multiplying matrixes (see &lt;a href="http://tinyurl.com/3a9h4z5"&gt;for example&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Below is Fortran90 code (version 1... some things need to be improved...) that does it (a better looking source code is at &lt;a href="http://angel-de-vicente.pastebin.com/9VRTuxVx"&gt;Pastebin&lt;/a&gt;, although I'm not sure for how long it will stay there...)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;PROGRAM FOX&lt;br /&gt;&amp;nbsp; IMPLICIT NONE&lt;br /&gt;&amp;nbsp; include "mpif.h"&lt;br /&gt;&lt;br /&gt;&amp;nbsp; INTEGER :: procs, rank, error&lt;br /&gt;&amp;nbsp; INTEGER, DIMENSION(MPI_STATUS_SIZE) :: status&lt;br /&gt;&lt;br /&gt;&amp;nbsp; INTEGER :: g_order, g_side, my_g_row, my_g_column, my_g_rank, comm, row_comm, col_comm, block_mpi_t&lt;br /&gt;&amp;nbsp; INTEGER :: rows&lt;br /&gt;&amp;nbsp; REAL, DIMENSION(:,:), ALLOCATABLE :: matrixA, matrixB, matrixC, localA, tempA, localB, localC&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; CALL MPI_Init ( error )&lt;br /&gt;&amp;nbsp; CALL MPI_Comm_size ( MPI_COMM_WORLD, procs, error )&lt;br /&gt;&amp;nbsp; CALL MPI_Comm_rank ( MPI_COMM_WORLD, rank, error )&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; CALL Read_Matrix(rank,error,rows,matrixA,matrixB,matrixC)&lt;br /&gt;&amp;nbsp; CALL Setup_grid(g_order,g_side,error,comm,my_g_rank,my_g_row,my_g_column,row_comm,col_comm)&lt;br /&gt;&amp;nbsp; CALL Distribute_matrixes(g_side,rows,block_mpi_t,error,matrixA,matrixB,localA,localB,localC,my_g_row,my_g_column)&lt;br /&gt;&amp;nbsp; CALL Perform_Fox_Algorithm(my_g_row,my_g_column,g_order,localA,tempA,localB,localC,row_comm,col_comm,status,error)&lt;br /&gt;&amp;nbsp; CALL Print_Last_Result(rank, my_g_rank, g_side, comm, procs, error, status, localC, matrixC, tempA)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp; CALL MPI_Finalize (error)&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CONTAINS&lt;br /&gt;&amp;nbsp; &lt;br /&gt;&amp;nbsp; SUBROUTINE Print_Last_Result(rank, my_g_rank, g_side, comm, procs, error, status, localC, matrixC, tempA)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(IN) :: rank, my_g_rank, g_side, comm, procs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(OUT) :: error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, DIMENSION(:), INTENT(OUT) :: status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(IN) :: localC&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(OUT) :: matrixC, tempA&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER :: grow,gcol,i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER,DIMENSION(2) :: coordinates&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (rank .EQ. 0 .AND. my_g_rank .NE. 0) PRINT*, "Houston, we have a problem with I/O"&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_SEND(localC,g_side*g_side,MPI_REAL,0,0,comm,error)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (rank .EQ. 0) THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; matrixC=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO i=1,procs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Recv(tempA,g_side*g_side,MPI_REAL,MPI_ANY_SOURCE,0,comm,status,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Cart_coords(comm,status(MPI_Source),2,coordinates,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; grow = coordinates(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; gcol = coordinates(2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; matrixC(grow*g_side+1:(grow+1)*g_side,gcol*g_side+1:(gcol+1)*g_side) = tempA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT*,"============ Matrix multiplication in parallel ==================="&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Print_Matrix(matrixC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF&lt;br /&gt;&amp;nbsp; END SUBROUTINE Print_Last_Result&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Print_Matrix(M)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:) :: M&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER :: side,row,column&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; side = SIZE(M,1)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO row=1,side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO column=1,side-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE(*,'(F10.3)',ADVANCE='NO'), M(row,column)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; WRITE(*,'(F10.3)'), M(row,side)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp; END SUBROUTINE Print_Matrix&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Perform_Fox_Algorithm(my_g_row,my_g_column,g_order,localA,tempA,localB,localC,row_comm,col_comm,status,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(IN) :: my_g_row,my_g_column,g_order,row_comm,col_comm&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(OUT) :: error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, DIMENSION(:), INTENT(OUT) :: status&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(IN) :: localA&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(INOUT) :: tempA,localB,localC&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER :: source,destination,stage,bcast_root&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localC = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; source = MOD(my_g_row + 1,g_order)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; destination = MOD(my_g_row + g_order - 1,g_order)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO stage=0,g_order-1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; bcast_root = MOD(my_g_row + stage,g_order)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (my_g_column .EQ. bcast_root) THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(localA,g_side*g_side,MPI_REAL,bcast_root,row_comm,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Matrix_Multiply(localA,localB,localC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(tempA,g_side*g_side,MPI_REAL,bcast_root,row_comm,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Matrix_Multiply(tempA,localB,localC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Sendrecv_replace(localB,g_side*g_side,MPI_REAL,destination,0,source,0,col_comm,status,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp; END SUBROUTINE Perform_Fox_Algorithm&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Matrix_Multiply(A,B,C)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(IN) :: A,B&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(OUT) :: C&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER :: side,row,column&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; side = SIZE(A,1)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO row=1,side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO column=1,side&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C(row,column) = C(row,column) + SUM(A(row,:)*B(:,column))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp; END SUBROUTINE Matrix_Multiply&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Distribute_matrixes(g_side,rows,block_mpi_t,error,matrixA,matrixB,localA,localB,localC,my_g_row,my_g_column)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(IN) :: g_side,rows,my_g_row,my_g_column&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(OUT) :: block_mpi_t,error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), ALLOCATABLE, INTENT(OUT) :: localA,localB,localC&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), INTENT(INOUT) :: matrixA,matrixB&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_TYPE_VECTOR(g_side,g_side,rows,MPI_REAL,block_mpi_t,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_TYPE_COMMIT(block_mpi_t, error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(matrixA,rows*rows,MPI_REAL,0,MPI_COMM_WORLD,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(matrixB,rows*rows,MPI_REAL,0,MPI_COMM_WORLD,error)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLOCATE(localA(g_side,g_side),tempA(g_side,g_side),localB(g_side,g_side),localC(g_side,g_side))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localA = matrixA(my_g_row*g_side+1:(my_g_row+1)*g_side,my_g_column*g_side+1:(my_g_column+1)*g_side)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; localB = matrixB(my_g_row*g_side+1:(my_g_row+1)*g_side,my_g_column*g_side+1:(my_g_column+1)*g_side)&lt;br /&gt;&amp;nbsp; END SUBROUTINE Distribute_matrixes&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Setup_grid(g_order,g_side,error,comm,my_g_rank,my_g_row,my_g_column,row_comm,col_comm)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(OUT) :: g_order, g_side,error,comm,my_g_rank,my_g_row,my_g_column,row_comm,col_comm&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER,DIMENSION(2) :: dimensions,coordinates&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LOGICAL,DIMENSION(2) :: wrap_around,free_coords&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_order = SQRT(REAL(procs))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; g_side = rows / g_order&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; dimensions = g_order&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; wrap_around = .TRUE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Cart_create(MPI_COMM_WORLD,2,dimensions,wrap_around,.TRUE.,comm,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Comm_rank ( comm, my_g_rank, error )&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Cart_coords(comm,my_g_rank,2,coordinates,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_g_row = coordinates(1)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; my_g_column = coordinates(2)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free_coords(1) = .FALSE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free_coords(2) = .TRUE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Cart_sub(comm,free_coords,row_comm,error)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free_coords(1) = .TRUE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; free_coords(2) = .FALSE.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_Cart_sub(comm,free_coords,col_comm,error)&lt;br /&gt;&amp;nbsp; END SUBROUTINE Setup_grid&lt;br /&gt;&lt;br /&gt;&amp;nbsp; SUBROUTINE Read_Matrix(rank,error,rows,matrixA,matrixB,matrixC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(IN) :: rank&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER, INTENT(OUT) :: rows,error&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEGER :: i&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REAL, DIMENSION(:,:), ALLOCATABLE, INTENT(OUT) :: matrixA,matrixB,matrixC&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; IF (rank .EQ. 0) THEN&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ*, rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(rows,1,MPI_REAL,0,MPI_COMM_WORLD,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLOCATE(matrixA(rows,rows),matrixB(rows,rows),matrixC(rows,rows))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO i=1,rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ*, matrixA(i,:)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DO i=1,rows&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; READ*, matrixB(i,:)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; END DO&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; !! Calculate the matrix multiplication for comparison&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; matrixC = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Matrix_Multiply(matrixA,matrixB,matrixC)&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT*, "CALCULATED IN PROCESS 0"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT*, "=======MATRIX A=========="&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Print_Matrix(matrixA)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT*, "=======MATRIX B=========="&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Print_Matrix(matrixB)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PRINT*, "=======MATRIX C=========="&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL Print_Matrix(matrixC)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ELSE&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CALL MPI_BCAST(rows,1,MPI_REAL,0,MPI_COMM_WORLD,error)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ALLOCATE(matrixA(rows,rows),matrixB(rows,rows))&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; END IF&lt;br /&gt;&amp;nbsp; END SUBROUTINE Read_Matrix&lt;br /&gt;&lt;br /&gt;END PROGRAM FOX&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;And given the following matrixes:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaso:~/fox$ cat fox.in&lt;br /&gt;8&lt;br /&gt;3.4 4.2 2.1 9.3 5.6 7.8 3.4 6.3&lt;br /&gt;6.6 7.6 2.1 7.2 3.5 7.9 2.0 8.3&lt;br /&gt;8.6 4.1 7.5 3.5 7.1 9.6 4.1 8.1&lt;br /&gt;5.8 4.7 8.6 3.6 7.4 4.3 1.2 0.2&lt;br /&gt;9.9 5.3 8.9 3.7 6.5 9.7 3.6 5.3&lt;br /&gt;8.2 4.7 9.3 3.8 6.7 8.4 4.7 6.4&lt;br /&gt;6.8 8.0 2.8 8.9 9.8 3.2 6.8 8.7&lt;br /&gt;6.4 7.6 8.3 4.3 6.5 4.1 3.9 3.8&lt;br /&gt;&lt;br /&gt;3.5 5.7 8.6 4.6 7.5 9.0 2.8 6.0&lt;br /&gt;8.9 3.4 7.3 3.3 5.3 8.2 3.6 3.9&lt;br /&gt;8.3 0.8 2.1 1.6 4.7 6.4 3.4 8.8&lt;br /&gt;7.3 4.3 3.3 2.7 4.5 6.6 9.3 5.9&lt;br /&gt;6.7 6.7 8.0 2.8 3.7 5.7 7.7 8.3&lt;br /&gt;7.8 4.0 8.9 2.9 1.4 0.8 7.8 8.2&lt;br /&gt;3.4 7.1 5.7 9.0 6.1 7.9 8.9 7.7&lt;br /&gt;2.6 4.1 6.9 8.2 9.3 5.0 7.1 4.6&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We can compile it and run it as:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaso:~/fox$ pgf90 -Mmpi=mpich -o fox fox.f90&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaso:~/fox$ mpirun -stdin fox.in -np 4 ./fox&lt;br /&gt;&amp;nbsp;CALCULATED IN PROCESS 0&lt;br /&gt;&amp;nbsp;=======MATRIX A==========&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.300&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.300&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.100&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.200&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.300&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.400&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.700&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.800&lt;br /&gt;&amp;nbsp;=======MATRIX B==========&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.900&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.800&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.500&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.900&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.300&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.800&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.200&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.400&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.700&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.700&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.600&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6.900&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8.200&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9.300&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5.000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7.100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4.600&lt;br /&gt;&amp;nbsp;=======MATRIX C==========&lt;br /&gt;&amp;nbsp;&amp;nbsp; 260.900&amp;nbsp;&amp;nbsp; 194.020&amp;nbsp;&amp;nbsp; 272.070&amp;nbsp;&amp;nbsp; 178.530&amp;nbsp;&amp;nbsp; 210.450&amp;nbsp;&amp;nbsp; 236.380&amp;nbsp;&amp;nbsp; 297.220&amp;nbsp;&amp;nbsp; 275.730&lt;br /&gt;&amp;nbsp;&amp;nbsp; 274.180&amp;nbsp;&amp;nbsp; 199.380&amp;nbsp;&amp;nbsp; 307.390&amp;nbsp;&amp;nbsp; 197.010&amp;nbsp;&amp;nbsp; 245.450&amp;nbsp;&amp;nbsp; 266.250&amp;nbsp;&amp;nbsp; 285.240&amp;nbsp;&amp;nbsp; 277.610&lt;br /&gt;&amp;nbsp;&amp;nbsp; 311.840&amp;nbsp;&amp;nbsp; 232.300&amp;nbsp;&amp;nbsp; 352.690&amp;nbsp;&amp;nbsp; 225.580&amp;nbsp;&amp;nbsp; 277.280&amp;nbsp;&amp;nbsp; 303.160&amp;nbsp;&amp;nbsp; 320.440&amp;nbsp;&amp;nbsp; 360.720&lt;br /&gt;&amp;nbsp;&amp;nbsp; 247.510&amp;nbsp;&amp;nbsp; 147.520&amp;nbsp;&amp;nbsp; 219.820&amp;nbsp;&amp;nbsp; 111.300&amp;nbsp;&amp;nbsp; 167.610&amp;nbsp;&amp;nbsp; 225.640&amp;nbsp;&amp;nbsp; 198.500&amp;nbsp;&amp;nbsp; 256.890&lt;br /&gt;&amp;nbsp;&amp;nbsp; 327.930&amp;nbsp;&amp;nbsp; 227.120&amp;nbsp;&amp;nbsp; 350.150&amp;nbsp;&amp;nbsp; 209.450&amp;nbsp;&amp;nbsp; 269.700&amp;nbsp;&amp;nbsp; 313.690&amp;nbsp;&amp;nbsp; 306.850&amp;nbsp;&amp;nbsp; 365.810&lt;br /&gt;&amp;nbsp;&amp;nbsp; 318.490&amp;nbsp;&amp;nbsp; 224.600&amp;nbsp;&amp;nbsp; 336.210&amp;nbsp;&amp;nbsp; 216.270&amp;nbsp;&amp;nbsp; 271.960&amp;nbsp;&amp;nbsp; 310.980&amp;nbsp;&amp;nbsp; 311.220&amp;nbsp;&amp;nbsp; 361.910&lt;br /&gt;&amp;nbsp;&amp;nbsp; 319.570&amp;nbsp;&amp;nbsp; 268.880&amp;nbsp;&amp;nbsp; 357.800&amp;nbsp;&amp;nbsp; 255.450&amp;nbsp;&amp;nbsp; 309.740&amp;nbsp;&amp;nbsp; 359.100&amp;nbsp;&amp;nbsp; 362.840&amp;nbsp;&amp;nbsp; 349.110&lt;br /&gt;&amp;nbsp;&amp;nbsp; 288.990&amp;nbsp;&amp;nbsp; 190.670&amp;nbsp;&amp;nbsp; 279.080&amp;nbsp;&amp;nbsp; 175.760&amp;nbsp;&amp;nbsp; 235.560&amp;nbsp;&amp;nbsp; 291.560&amp;nbsp;&amp;nbsp; 257.210&amp;nbsp;&amp;nbsp; 301.530&lt;br /&gt;&amp;nbsp;============ Matrix multiplication in parallel ===================&lt;br /&gt;&amp;nbsp;&amp;nbsp; 260.900&amp;nbsp;&amp;nbsp; 194.020&amp;nbsp;&amp;nbsp; 272.070&amp;nbsp;&amp;nbsp; 178.530&amp;nbsp;&amp;nbsp; 210.450&amp;nbsp;&amp;nbsp; 236.380&amp;nbsp;&amp;nbsp; 297.220&amp;nbsp;&amp;nbsp; 275.730&lt;br /&gt;&amp;nbsp;&amp;nbsp; 274.180&amp;nbsp;&amp;nbsp; 199.380&amp;nbsp;&amp;nbsp; 307.390&amp;nbsp;&amp;nbsp; 197.010&amp;nbsp;&amp;nbsp; 245.450&amp;nbsp;&amp;nbsp; 266.250&amp;nbsp;&amp;nbsp; 285.240&amp;nbsp;&amp;nbsp; 277.610&lt;br /&gt;&amp;nbsp;&amp;nbsp; 311.840&amp;nbsp;&amp;nbsp; 232.300&amp;nbsp;&amp;nbsp; 352.690&amp;nbsp;&amp;nbsp; 225.580&amp;nbsp;&amp;nbsp; 277.280&amp;nbsp;&amp;nbsp; 303.160&amp;nbsp;&amp;nbsp; 320.440&amp;nbsp;&amp;nbsp; 360.720&lt;br /&gt;&amp;nbsp;&amp;nbsp; 247.510&amp;nbsp;&amp;nbsp; 147.520&amp;nbsp;&amp;nbsp; 219.820&amp;nbsp;&amp;nbsp; 111.300&amp;nbsp;&amp;nbsp; 167.610&amp;nbsp;&amp;nbsp; 225.640&amp;nbsp;&amp;nbsp; 198.500&amp;nbsp;&amp;nbsp; 256.890&lt;br /&gt;&amp;nbsp;&amp;nbsp; 327.930&amp;nbsp;&amp;nbsp; 227.120&amp;nbsp;&amp;nbsp; 350.150&amp;nbsp;&amp;nbsp; 209.450&amp;nbsp;&amp;nbsp; 269.700&amp;nbsp;&amp;nbsp; 313.690&amp;nbsp;&amp;nbsp; 306.850&amp;nbsp;&amp;nbsp; 365.810&lt;br /&gt;&amp;nbsp;&amp;nbsp; 318.490&amp;nbsp;&amp;nbsp; 224.600&amp;nbsp;&amp;nbsp; 336.210&amp;nbsp;&amp;nbsp; 216.270&amp;nbsp;&amp;nbsp; 271.960&amp;nbsp;&amp;nbsp; 310.980&amp;nbsp;&amp;nbsp; 311.220&amp;nbsp;&amp;nbsp; 361.910&lt;br /&gt;&amp;nbsp;&amp;nbsp; 319.570&amp;nbsp;&amp;nbsp; 268.880&amp;nbsp;&amp;nbsp; 357.800&amp;nbsp;&amp;nbsp; 255.450&amp;nbsp;&amp;nbsp; 309.740&amp;nbsp;&amp;nbsp; 359.100&amp;nbsp;&amp;nbsp; 362.840&amp;nbsp;&amp;nbsp; 349.110&lt;br /&gt;&amp;nbsp;&amp;nbsp; 288.990&amp;nbsp;&amp;nbsp; 190.670&amp;nbsp;&amp;nbsp; 279.080&amp;nbsp;&amp;nbsp; 175.760&amp;nbsp;&amp;nbsp; 235.560&amp;nbsp;&amp;nbsp; 291.560&amp;nbsp;&amp;nbsp; 257.210&amp;nbsp;&amp;nbsp; 301.530&lt;br /&gt;angelv@vaso:~/fox$&amp;nbsp; &lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7311086862509043827?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7311086862509043827/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7311086862509043827' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7311086862509043827'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7311086862509043827'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/07/fox-algorithm-for-matrix-multiplication.html' title='Fox algorithm for matrix multiplication in parallel with Fortran90+MPI'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7253907013504048186</id><published>2010-07-08T10:57:00.000Z</published><updated>2010-07-08T10:57:51.719Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Classical Guitar Forum</title><content type='html'>About a month ago I joined the &lt;a href="http://www.delcamp.us/"&gt;Delcamp Classical Guitar Forum&lt;/a&gt;, and so far I've found it amazing. This one is the Forum in English, though there are also sites in French, Italian and Spanish.&lt;br /&gt;&lt;br /&gt;There are a lot of people participating (composers, guitar players, luthiers), the conversations are very well kept to the subject (with well organized topics), and the people are really helpful and friendly. &lt;br /&gt;&lt;br /&gt;And the resources are also very good. In it you can find information about technique, many recordings of common repertoire pieces, plenty of music scores, etc.&lt;br /&gt;&lt;br /&gt;All in all, this is by far the best place in the Internet for sharing guitar experiences with other musicians. If you happen to stumble here and have any interest in Classical Guitar, make sure you visit the Delcamp Forum.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Thanks Jean-François Delcamp for starting this out!&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7253907013504048186?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7253907013504048186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7253907013504048186' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7253907013504048186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7253907013504048186'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/07/classical-guitar-forum.html' title='Classical Guitar Forum'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2591749585890824449</id><published>2010-07-03T21:42:00.001Z</published><updated>2010-07-03T22:17:28.993Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Thunderbird'/><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Opera Mail vs. Thunderbird 3.1 vs. GMail</title><content type='html'>During the last seven months I've been &lt;a href="http://angel-de-vicente.blogspot.com/2009/11/switched-to-opera-mail-and-gmail.html"&gt;using the Opera Web browser and its integrated Mail Reader&lt;/a&gt;, but the experience started to become a bit painful, so I am going back to Firefox/Thunderbird.&lt;br /&gt;&lt;br /&gt;Some of the things that pushed me to do this were:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;With the Opera browser I was not aware of anything like FoxyProxy, which is very useful for me when &lt;a href="http://angel-de-vicente.blogspot.com/2010/02/accessing-your-intranet-via-privoxy.html"&gt;accessing my company intranet&lt;/a&gt;.&lt;/li&gt;&lt;li&gt;My web bank page did not show properly (perhaps their fault?) with Opera.&lt;/li&gt;&lt;li&gt;Had issues with logging in my favourite forum with Opera (oddly enough not in all computers).&lt;/li&gt;&lt;li&gt;The full editor of blogger does not display properly in Opera. &lt;/li&gt;&lt;li&gt;I didn't notice Opera browser being particularly faster than Firefox.&lt;/li&gt;&lt;li&gt;Opera Mail did not let me put my own tags to messages, which was a bit annoying sometimes.&lt;/li&gt;&lt;li&gt;Opera Mail did not let me configure my mail servers with not standard ports, which was annoying if I wanted to access my company servers through SSH tunnels.&lt;/li&gt;&lt;li&gt;In a few occasions Opera Mail just stopped working, and after restarting all the messages would be gone (the local copy only), so it had to download them again from Google Mail.&lt;/li&gt;&lt;li&gt;Lately Opera Mail started to think that I had millions of messages and would never finish synchronizing with Gmail. After restarting it, it would recognize again properly that I have only thousands.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;So, I decided to try the new Thunderbird 3.1 for e-mail, and if it was up to the job, then go back to the Firefox/Thunderbird tandem. So, I collected the things that I need from a mail reader and did a comparison of Thunderbird, Opera Mail, and Gmail. I'm not interested in doing a comparison of all their features, only the ones that I tend to use. I haven't looked in any depth at the documentation of any of the readers, so some of the things here might be wrong. If you find that any of this information is incorrect or that there are better ways of doing something, please let me know, I'd love to hear it. Thunderbird did now manage to do everything I needed, and I don't get the problems mentioned above (plus it is open source software), so I'm now migrating to Firefox/Thunderbird... for how long?&lt;br /&gt;&lt;br /&gt;Here it is a list of things that I want my mail reader to do:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;No folders, use tags instead&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;Folders are a nuisance, much better tags. You can apply several tags to the same message, and when searching for a particular tag is like you put a message in different folders at the same time. &lt;br /&gt;&lt;br /&gt;- GMail: tags are called labels, and you can easily create arbitrary new labels and assign as many as you want to each message. &lt;br /&gt;&lt;br /&gt;- Thunderbird: you can also create Tags and assign as many as you want to each message.&lt;br /&gt;&lt;br /&gt;- Opera Mail: as far as I know, only the prebuilt tags. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Don't mark messages as read automatically&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;- GMail apparently marks a message as read as soon as you open it. I don't like this at all. I don't even want to mark a message as read after a given set of time. For me "unread" means that I still have to do something with it, so I want to mark it as "read" only when I decide.&lt;br /&gt;&lt;br /&gt;- Thunderbird. No problem. In Preferences, Advanced, unmark "Automatically mark messages as read", and I have to mark them as read explicitly.&lt;br /&gt;&lt;br /&gt;- Opera Mail. This was also easily configurable. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Efficient searching and filtering of messages&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;This is probably the most important feature for me, and for basic searches I think the three readers are very good. For "incremental searches" I think Gmail is the winner, but Thunderbird 3.1 second.&lt;br /&gt;&lt;br /&gt;By incremental search I mean a situation like this: I want to find all mails that have something to do with "braemore statements", and once I found these, I want to find which ones have the word "winter" in the body. &lt;br /&gt;&lt;br /&gt;- GMail. This is very good for incremental searches. Type "braemore statements" and a list of mail appears, then type "winter" and press again and bingo.&lt;br /&gt;&lt;br /&gt;- Thunderbird. If I type all the words of an incremental search in the "Search all messages" box (thus not making it really incremental), then I also get the result, but ideally one would only type "braemore statements", then click on "Open as list" and then do a "Filter these messages", including the Body, but this does not work well and it seems to hang forever. (Filtering by body does seem to work at least in the Inbox, but it looks like it is really slow, while the Ctrl+K search is really fast. Go figure....). &lt;br /&gt;&lt;br /&gt;- Opera Mail. The search option was very fast and quite good in general. For incremental searches it is very good. Type "braemore statements" in the general search box, then one the mails have been found, type "winter" in the quick filter, and bingo! This is what I was hoping it would work in Thunderbird as well, but for some reason it is not just yet. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Good keyboard shortcuts&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;-&amp;nbsp; Gmail apparently does have shortcuts, but I doubt that they are comparable to Thunderbird or Opera in this respect.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Make "read" messages disappear from view but keep them available &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;- GMail: I'm sure there has to be a way to do this, but it was not obvious.&lt;br /&gt;&lt;br /&gt;- Thunderbird. In my Inbox I just click on the "Unread" quick filter and bingo. I only see the "unread" ones but all the rest are somewhere in there. Much cleaner view.&lt;br /&gt;&lt;br /&gt;- Opera Mail also does this without any issues. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Good display of HTML messages &lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;- Obviously no trouble with this in Gmail, and Thunderbird does it very well also. With Opera Mail I had trouble with quite a few HTML formatted messages. I don't like HTML messages, but people insist on sending them, so I guess I have to be able to read them.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Possibility of deleting attachments&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;- I could not find how to do this in either Gmail or OperaMail. With Thunderbird is just one of the options of the attachment itself.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Different personalities&lt;/b&gt;&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&amp;nbsp;This is useful for sending personal mails, or mails to newsgroups, etc. with different mail addresses and/or signature.&lt;br /&gt;&lt;br /&gt;- Gmail: I don't think this is possible at all.&lt;br /&gt;&lt;br /&gt;- Thunderbird:&amp;nbsp; it has support for different personalities, and I have used it in the past. Very convenient. This, together with the possibility of using non-conventional ports was very useful for me. Different personalities with Google Mail as SMTP server does not seem to work (Gmail at the end sends the message with you gmail address, and that's all), but when using non-standard port for my SMTP server, I can send (regardless of where I am) mail through my company SMTP server (via ssh tunnels). This allows me to fake my e-mail address (to avoid spam) when sending messages to newsgroups, and to send mail to internal mailing lists at our company (which rejects mails if coming from an outside address). &lt;br /&gt;&lt;br /&gt;- OperaMail. I think this is only possible if you have different mail accounts, so you can select which one to use every time you send a message, but I don't think it is possible having, for instance, different signatures associated with the same mail account. &lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Automatic filtering of messages&lt;/b&gt;&lt;/li&gt;&lt;/ul&gt;OperaMail has something that is very useful: The automatic views of mails sent to newsgroups. With Thunderbird is not so automatic, but it does require little work: one can create Search Folders (Ctrl+Shift+F), where one can create complicated searches, and then save it as a search folder. For instance, I created a search folder called "Direct", where I only see mail that is directed personally to me, another search folder where I only see mail that has a particular mailing list address in the "To or CC" fields, etc. This is similar to the old folder mentality, but the messages don't go into any folder, they all can stay in the same folder, and this is just different filtered views of it. Much more powerful and convenient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2591749585890824449?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2591749585890824449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2591749585890824449' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2591749585890824449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2591749585890824449'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/07/opera-mail-vs-thunderbird-31-vs-gmail.html' title='Opera Mail vs. Thunderbird 3.1 vs. GMail'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8641535730161489163</id><published>2010-06-29T10:23:00.005Z</published><updated>2010-06-29T12:19:16.163Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Condor'/><title type='text'>Running a command/script in all machines in a Condor pool</title><content type='html'>Sadly, all the machines in our Condor pool do not have exactly the same configuration, so it is sometimes convenient to run a command/script &amp;nbsp;in all the machines (mostly to find misbehaving ones). Since there is apparently no built-in way of doing this with Condor, I just wrote some quick Perl scripts to do it (in this case to find which machines cannot run&amp;nbsp;&lt;a href="http://www.gnu.org/software/octave/"&gt;Octave&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;cycle_all_condor.pl &lt;/i&gt;will take a constraint string and a basic Condor command file. For example, I will run it like:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[angelv]$ ./cycle_all_condor.pl 'Arch == "X86_64"' basic.file&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;in order to find all the 64 bits machines in our pool, and will use &lt;i&gt;basic.file &lt;/i&gt;as the prefix to the resulting Condor sumbit file. The resulting condor submit file is just sent to standard output (which can be redirected to a file, and then submitted with Condor).&lt;br /&gt;&lt;br /&gt;The scripts are very simple, and probably written in a very poor Perl, but they do the job. Here they go:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;[angelv]$ cat cycle_all_condor.pl&lt;/code&gt;&lt;br /&gt;&lt;code&gt;#! /usr/bin/perl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;&lt;br /&gt;$constraints = @ARGV[0];&lt;br /&gt;$basic_cmd_file = @ARGV[1];&lt;br /&gt;&lt;br /&gt;system "cat $basic_cmd_file";&lt;br /&gt;&lt;br /&gt;open (MACHINES, "condor_status -const '$constraints' -format \"%s\n\" Machine | sort -u |");&lt;br /&gt;&lt;br /&gt;while (&amp;lt;MACHINES&amp;gt;) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; chomp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Requirements = Machine == \"$_\" \n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Queue \n"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;close (MACHINES); &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt; [angelv]$ cat basic.file&lt;br /&gt;Executable = octave.sh&lt;br /&gt;Universe = vanilla&lt;br /&gt;output = output.$(Process)&lt;br /&gt;error = error.$(Process)&lt;br /&gt;log = log.condor&lt;br /&gt;notification = NEVER&lt;br /&gt;getenv = True&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[angelv]$ cat octave.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;uname -a&lt;br /&gt;octave --help&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;[angelv]$ cat results.pl&lt;/code&gt;&lt;br /&gt;&lt;code&gt;#!/usr/bin/perl &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;@files = &amp;lt;error*&amp;gt;;&lt;br /&gt;foreach $file (@files) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (-s $file) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ($name,$ext) = split(/\./,$file);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print "$file \n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; system "cat $file output.$ext \n";&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;}&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8641535730161489163?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8641535730161489163/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8641535730161489163' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8641535730161489163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8641535730161489163'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/running-commandscript-in-all-machines.html' title='Running a command/script in all machines in a Condor pool'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1266047452439562320</id><published>2010-06-28T11:19:00.001Z</published><updated>2010-06-28T11:20:17.299Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><title type='text'>SAGE + Chromium in my display wall</title><content type='html'>I have continued the configuration of my display wall (see my &lt;a href="http://angel-de-vicente.blogspot.com/2010/05/adding-sage-to-my-display-wall.html"&gt;previous post&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Until now I had managed to get OpenGL applications working OK with Chromium, but only Chromium for the type of display wall that I envisage we need is not sufficient:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;the main problem I found is that I cannot run two Chromium applications at the same time. Perhaps this is doable, but I didn't find how to do it.&lt;/li&gt;&lt;li&gt;applications cannot be moved around the display wall (there is a resizeable option with Chromium, but when I used it I got all sort of artifacts in the running application).&lt;/li&gt;&lt;/ul&gt;I also managed to get SAGE working fine, and the image viewer and the video viewer work fine (and you can easily move windows, rotate them, resize them, etc.), but OpenGL applications would need either tweaking the source code or either run them under the GL library wrapper (which according to its developer it has to be considered beta and is not recommended for production walls).&lt;br /&gt;&lt;br /&gt;So I decided to check whether SAGE and Chromium can work fine, and I found that there is no problem with it. Something that I would like to work out is that I can still only run one application with Chromium. Other than that, the stuff started with SAGE can be moved, resized and rotated very easily, which is nice. The Chromium applications have a fixed position and size when I start them, but you can easily decide where and how big to start the application (see the two sizes of the Google Earth application in the video).&lt;br /&gt;&lt;br /&gt;Running 32bits applications in Chromium while running 64bits SAGE is no problem (I just need to run the&amp;nbsp;&lt;i&gt;gl_32.sh&amp;nbsp;&lt;/i&gt;script as seen in the previous post before launching the 32 bits app, and once it has started run&amp;nbsp;&lt;i&gt;gl_64.sh&amp;nbsp;&lt;/i&gt;to get the library links back to normal).&lt;br /&gt;&lt;br /&gt;For the size and the position of the Chromium applications, one can easily create a script with these data as input, and which creates a configuration file for Chromium which is used to launch the given application. Moving or resizing the application once it has started seems to give trouble.&lt;br /&gt;&lt;br /&gt;A demo of this new setting can be found &lt;a href="http://vimeo.com/12912704"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1266047452439562320?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1266047452439562320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1266047452439562320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1266047452439562320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1266047452439562320'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/sage-chromium-in-my-display-wall.html' title='SAGE + Chromium in my display wall'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1125942713988155126</id><published>2010-06-22T03:38:00.003Z</published><updated>2010-06-23T08:52:55.648Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Solfege'/><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Just finished my entry exams for 3rd grade.</title><content type='html'>Yesterday I finished my entry exams for 3rd grade at out local conservatory...&lt;br /&gt;&lt;br /&gt;Today they will tell me the marks... I'm obviously not sure, but I think that I will get a 6.75 (out of 10), which is not great but it is not bad either. For 3rd year there is only one place, but two candidates, so passing is not enough, I have to outdo the other guy...&lt;br /&gt;&lt;br /&gt;The exam has 3 main parts:&lt;br /&gt;&lt;b&gt;A:&lt;/b&gt; music interpretation with the guitar (for these I had to play the three pieces that I mentioned in a previous &lt;a href="http://angel-de-vicente.blogspot.com/2010/06/getting-ready-for-classical-guitar-3rd.html"&gt;post&lt;/a&gt;) (60% of the final mark)&lt;br /&gt;&lt;b&gt;B:&lt;/b&gt; with four subparts: rhythm, music theory, intonation and dictation. (25%, where each subpart is marked up to (respectively): 4,2,2,2)&lt;br /&gt;&lt;b&gt;C:&lt;/b&gt; playing a small piece at first sight (15%)&lt;br /&gt;&lt;br /&gt;And you have to pass each of the 3 main parts in order to get a final mark. Preparing the interpretation part was fun, but the theory not so much, since I was assuming that it would be simpler, and only started looking at it seriously a week before the exam. This meant that I had lots to put in my head, but did not have the time to practice, analyze, or simply study it properly, so I put in my TO DO list: reading of &lt;a href="http://www.amazon.co.uk/Harmony-Guitar-Magazine-Project/dp/0711923884/ref=wl_it_dp_o?ie=UTF8&amp;amp;coliid=I1HW39535A5UOY&amp;amp;colid=2VUTZMLUVUZ6B"&gt;Harmony for the Guitar&lt;/a&gt; (or something similar).&lt;br /&gt;&lt;br /&gt;In a few hours the marks will be published, but I know that the two parts that need working &lt;b&gt;a lot &lt;/b&gt;are dictation and intonation, so regardless of the exam results I will have to do exercises to improve these. So far, my best companion for ear training will be &lt;a href="http://www.solfege.org/"&gt;GNU Solfege&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Will report back...&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;strong&gt;A DAY LATER....&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Good stuff: I got an overall mark of 7.2 (out of 10) and the other guy got a 6.7, so I assume I will be a student again (and hopefully there is another place for the other guy as well, he plays well and he looks passionate about the guitar, so I think he deserves it too).&lt;br /&gt;&lt;br /&gt;Bad stuff: I think I got the worst note of all candidates (at all levels and with all instruments) in intonation. I need to &lt;strong&gt;practice this a lot&lt;/strong&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1125942713988155126?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1125942713988155126/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1125942713988155126' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1125942713988155126'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1125942713988155126'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/just-finished-my-entry-exams-for-3rd.html' title='Just finished my entry exams for 3rd grade.'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2191224514908372979</id><published>2010-06-08T13:33:00.002Z</published><updated>2010-06-08T13:45:12.458Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Graham Scan in Haskell</title><content type='html'>The last exercise in chapter 3 of &lt;a href="http://book.realworldhaskell.org/read/defining-types-streamlining-functions.html"&gt;Real World Haskell&lt;/a&gt; is quite more difficult than the previous ones, so it deserves a post with code. I have not used any function not yet seen at that point in the book, so the code is not very pretty, and I have followed quite closely the algorithm for Graham Scan as explained in &lt;a href="http://en.wikipedia.org/wiki/Introduction_to_Algorithms"&gt;Introduction to Algorithms&lt;/a&gt;, which can also be seen &lt;a href="http://www.personal.kent.edu/%7Ermuhamma/Compgeometry/MyCG/ConvexHull/GrahamScan/grahamScan.htm"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When I learn a bit more about Haskell syntax I will try to pretify it, but for the moment here it goes in all its uglyness:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;data Direction = LeftTurn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | RightTurn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | Straight&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; deriving (Eq, Show)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;turn (x1,y1) (x2,y2) (x3,y3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | cross_product == 0 = Straight&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | cross_product &amp;gt; 0 = LeftTurn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | cross_product &amp;lt; 0 = RightTurn&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cross_product = (x2 - x1)*(y3 - y1) - (y2 - y1)*(x3 - x1) &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;miny [x] = x&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;miny ((x1,y1):(x2,y2):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | y1 &amp;lt; y2 = miny ((x1,y1):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | y2 &amp;lt; y1 = miny ((x2,y2):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | x1 &amp;lt; x2 = miny ((x1,y1):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | x2 &amp;lt; x1 = miny ((x2,y2):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise = error "repeated points"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;removepoint _ [] = []&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;removepoint (x,y) ((x1,y1):xs)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | x == x1 &amp;amp;&amp;amp; y == y1 = xs&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise = (x1,y1):removepoint (x,y) xs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;sort_merge_polar origin [] = []&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;sort_merge_polar origin [x] = [x]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;sort_merge_polar (x1,y1) lista = &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge (sort_merge_polar (x1,y1) (take midpoint lista)) (sort_merge_polar (x1,y1) (drop midpoint lista))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; midpoint = div (length lista) 2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge [] [] = []&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge [] lisb = lisb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge lisa [] = lisa&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; merge ((x2,y2):xs) ((x3,y3):ys)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn (x1,y1) (x2,y2) (x3,y3) == LeftTurn = (x2,y2) : merge xs ((x3,y3):ys)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn (x1,y1) (x2,y2) (x3,y3) == RightTurn = (x3,y3) : merge ((x2,y2):xs) ys&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn (x1,y1) (x2,y2) (x3,y3) == Straight = further_point : merge xs ys&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; where further_point&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | abs(x2 - x1) &amp;gt; abs(x3 - x1) = (x2,y2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | abs(x2 - x1) &amp;lt; abs(x3 - x1) = (x3,y3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | abs(y2 - y1) &amp;gt; abs(y3 - y1) = (x2,y2)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | abs(y2 - y1) &amp;lt; abs(y3 - y1) = (x3,y3)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | otherwise = error "repeated points.."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;graham_scan (pa:pb:pc:ps) = result&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; where&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p0 = miny (pa:pb:pc:ps)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sorted_list = sort_merge_polar p0 (removepoint p0 (pa:pb:pc:ps))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p1 = head sorted_list&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; p2 = head (tail sorted_list)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; result = iterate_graham [p2,p1,p0] (tail (tail sorted_list))&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iterate_graham convex_hull [] = reverse(convex_hull)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iterate_graham (top:ntop:xs) (pi:ps)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn ntop top pi == RightTurn = iterate_graham (ntop:xs) (pi:ps)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn ntop top pi == LeftTurn = iterate_graham (pi:top:ntop:xs) ps&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; | turn ntop top pi == Straight = error "didn't I get rid of straight points relative to p0??"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;graham_scan _ = error "we need at least three points"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;As a basic test, if we compute the Convex Hull of the following points, we get the correct result. Other online solutions seem to choke on inputs like this, probably due to an incorrect implementation of the Graham Scan algorithm.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;*Main&amp;gt; graham_scan [(10,0), (10,1),(-10,1),(-10,0),(-7,0),(-10,2),(-10,3),(-4,1),(-2,2),(-12,1)]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;[(-10,0),(10,0),(10,1),(-10,3),(-12,1)]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New [monotype]&amp;quot;, &amp;quot;Courier&amp;quot;, monospace;"&gt;*Main&amp;gt; &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2191224514908372979?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2191224514908372979/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2191224514908372979' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2191224514908372979'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2191224514908372979'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/graham-scan-in-haskell.html' title='Graham Scan in Haskell'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-825849917592608002</id><published>2010-06-07T11:50:00.003Z</published><updated>2010-06-07T12:04:57.223Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><title type='text'>Getting ready for the classical guitar 3rd grade entry exam</title><content type='html'>The 3rd grade classical guitar entry exam is taking place on Monday 11th. The most important part of the exam is to play three musical pieces (one of them from memory). Yesterday I decided to record myself and this is the result (this was as close a setting to the exam as possible, i.e. no sound "post-production", no second chances, etc.). There are some clear mistakes, and during the exam I will get a bit nervous and there will probably be some more. I have one week to make them sound a little bit better...&lt;br /&gt;&lt;br /&gt;I plan to play them in the following order (from easier to more difficult):&lt;br /&gt;&lt;a href="http://vimeo.com/12361171"&gt;Kleynjans, Arpége, Op.77&lt;/a&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/12361137"&gt;Carcassi, Study n.7, Op. 60&lt;/a&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/12361110"&gt;Bach, Bourree BWV 996&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Wish me good luck! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-825849917592608002?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/825849917592608002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=825849917592608002' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/825849917592608002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/825849917592608002'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/getting-ready-for-classical-guitar-3rd.html' title='Getting ready for the classical guitar 3rd grade entry exam'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8966293893055380843</id><published>2010-06-04T23:09:00.008Z</published><updated>2010-06-24T09:22:14.684Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swimming'/><title type='text'>Tracking swimming performance.</title><content type='html'>&lt;a href="http://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldG03T1VaQzM3blh2cUI1amRNTktGd3c&amp;amp;oid=1&amp;amp;zx=uz2o88nfx7sr" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" src="http://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldG03T1VaQzM3blh2cUI1amRNTktGd3c&amp;amp;oid=1&amp;amp;zx=hn7vjk8ona4q" style="float: left; height: 320px; margin-bottom: 10px; margin-left: 0pt; margin-right: 10px; margin-top: 0pt; width: 450px;" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm slowly getting back into shape, so I have decided to start logging my progress in the swimming pool. Today I did (medium effort) 1500m freestyle in 32:17 minutes, though the goal is to get it in 28:20 (2X the &lt;a href="http://www.blogger.com/%20http://en.wikipedia.org/wiki/World_record_progression_1500_metres_freestyle#Short_course"&gt;World Record&lt;/a&gt;). The following charts will show the progress...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="left" class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldFNLU1czbFAyZGI3bWtrTnZWdWlpUFE&amp;amp;oid=1&amp;amp;zx=xwfx9lnbdnxy" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="https://spreadsheets.google.com/oimg?key=0AgjvJuuWbgNldFNLU1czbFAyZGI3bWtrTnZWdWlpUFE&amp;amp;oid=1&amp;amp;zx=xwfx9lnbdnxy" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8966293893055380843?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8966293893055380843/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8966293893055380843' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8966293893055380843'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8966293893055380843'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/tracking-swimming-performance.html' title='Tracking swimming performance.'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1428307967599101703</id><published>2010-06-03T13:04:00.005Z</published><updated>2011-07-21T09:50:07.650Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='IRC'/><category scheme='http://www.blogger.com/atom/ns#' term='Riece'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>IRC client in Emacs: Riece</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hm_BgzIyQw0/TAeqguO3nDI/AAAAAAAAB4I/KIdjMGDU8uc/s1600/Riece-screenshot.jpg"&gt;&lt;img alt="" id="BLOGGER_PHOTO_ID_5478534950862429234" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/TAeqguO3nDI/AAAAAAAAB4I/KIdjMGDU8uc/s320/Riece-screenshot.jpg" style="cursor: hand; cursor: pointer; float: left; height: 256px; margin: 0 10px 10px 0; width: 320px;" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I have never used &lt;a href="http://en.wikipedia.org/wiki/Internet_Relay_Chat"&gt;IRC&lt;/a&gt;, but in certain areas it seems like an interesting resource (right now I'm learning Haskell, and the Haskell IRC community &lt;span style="font-style: italic;"&gt;#haskell&lt;/span&gt; seems quite active), so I've decided to give it a go. After looking at a number of IRC clients I have decided to try &lt;a href="http://www.nongnu.org/riece/"&gt;Riece&lt;/a&gt;, which is an IRC client for Emacs. It certainly fits well with my working environment and I can leave the connection open and reconnect from a different computer via a terminal and ssh. I connect via the &lt;a href="http://freenode.net/irc_servers.shtml"&gt;freenode servers&lt;/a&gt;, and this is how it looks like.&lt;br /&gt;&lt;br /&gt;I connect to chat.freenode.net, and the most used commands are in this &lt;a href="http://www.nongnu.org/riece/riece-en/Commands.html#Commands"&gt;list&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1428307967599101703?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1428307967599101703/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1428307967599101703' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1428307967599101703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1428307967599101703'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/06/irc-client-in-emacs-riece.html' title='IRC client in Emacs: Riece'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/TAeqguO3nDI/AAAAAAAAB4I/KIdjMGDU8uc/s72-c/Riece-screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2550513772260972486</id><published>2010-06-01T09:38:00.000Z</published><updated>2010-06-01T09:12:08.085Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='sage'/><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><title type='text'>Adding SAGE to my display wall</title><content type='html'>As a continuation to &lt;a href="http://angel-de-vicente.blogspot.com/2010/05/settings-for-tiled-display-wall.html"&gt;my work on a tiled display wall&lt;/a&gt;, here there are the steps taken to install &lt;a href="http://www.sagecommons.org/"&gt;SAGE&lt;/a&gt;: "a graphics streaming architecture for supporting collaborative scientific visualization environments with potentially hundreds of megapixels of contiguous display resolution". So far, the basics are installed correctly, some demo applications are working OK, plus imageviewer and VLC, though I'm having trouble with the VNCViewer... (I'll keep working on this).&lt;br /&gt;&lt;br /&gt;We dowload the current source version &lt;a href="http://www.sagecommons.org/index.php?option=com_phocadownload&amp;view=category&amp;id=1:current-version&amp;download=4:latest-source-package&amp;Itemid=1"&gt;sage3-03-24-09.tgz&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Before trying to compile SAGE, we need to make sure we get the prerequisites OK, which can be found at the &lt;a href="http://www.sagecommons.org/index.php?option=com_content&amp;view=article&amp;id=63&amp;Itemid=41/faqs.php#1"&gt;SAGE Forum&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For SDL, we install via Synaptic Package Manager:&lt;span style="font-style:italic;"&gt;libsdl1.2-dev&lt;/span&gt;; for readline, &lt;span style="font-style:italic;"&gt;libreadline6-dev&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;And we will also need the packages &lt;span style="font-style:italic;"&gt;libmagickwand-dev&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;portaudio19-dev&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;python-wxgtk2.8&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;libglew1.5-dev&lt;/span&gt;, &lt;span style="font-style:italic;"&gt;python-numpy&lt;/span&gt; &lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.evl.uic.edu/cavern/quanta/index.html"&gt;QUANTA&lt;/a&gt;&lt;br /&gt;======&lt;br /&gt; &lt;br /&gt;We download the &lt;a href="http://www.evl.uic.edu/cavern/quanta/downloads/QUANTA-1.0.tar.gz"&gt;current version&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/Downloads$ tar -zxvf QUANTA-1.0.tar.gz&lt;br /&gt;angelv@vaiven:~/Downloads$ cd QUANTA_1.0/&lt;br /&gt;angelv@vaiven:~/Downloads/QUANTA_1.0$ mkdir QUANTA_build&lt;br /&gt;angelv@vaiven:~/Downloads/QUANTA_1.0$ cd QUANTA_build/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(to get cmake and ccmake, I install the package cmake-curses-gui) &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/Downloads/QUANTA_1.0/QUANTA_build$ ccmake ../&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;But the default version of g++ (4.4) will give errors like:&lt;br /&gt;&lt;span style="font-style:italic;"&gt;/home/angelv/Downloads/QUANTA_1.0/src/QUANTAdb_c.cxx:367: error: ‘memcpy’ was not declared in this scope&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Since correcting this would need changing the source code, we go the easy route, and we are going to use a previous version of the compiler 4.2&lt;br /&gt;&lt;br /&gt;So, in the cmake options I change:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;CMAKE_CXX_COMPILER               /usr/bin/g++-4.2&lt;br /&gt;CMAKE_CXX_FLAGS                  -fPIC&lt;br /&gt;QUANTA_BIN_TYPE                  64 &lt;br /&gt;&lt;br /&gt;angelv@vaiven:~/Downloads/QUANTA_1.0/QUANTA_build$ make&lt;br /&gt;angelv@vaiven:~/Downloads/QUANTA_1.0/QUANTA_build$ sudo make install&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.sagecommons.org/"&gt;SAGE&lt;/a&gt;&lt;br /&gt;====&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Modify .bashrc and start a new shell&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ tail -n 4 .bashrc&lt;br /&gt;export SAGE_DIRECTORY=$HOME/sage3.0&lt;br /&gt;export PATH=${SAGE_DIRECTORY}/bin:${PATH}&lt;br /&gt;export LD_LIBRARY_PATH=${SAGE_DIRECTORY}/lib:${LD_LIBRARY_PATH}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In src/Makefile:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;QUANTA_DIR=/usr/local/include&lt;br /&gt;QUANTA_CFLAGS=-I${QUANTA_DIR}/QUANTA -I${QUANTA_DIR}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;(tips from &lt;a href="http://www.vislab.uq.edu.au/research/optiportal/software/jaunty.html"&gt;http://www.vislab.uq.edu.au/research/optiportal/software/jaunty.html&lt;/a&gt;)&lt;br /&gt;both in imgToDxt.cpp and imageviewer.cpp in the app/FileViewer/ImageViewer/ directory we change&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#if MagickLibVersion &gt;= 0x645&lt;br /&gt;#define MagickGetImagePixels MagickGetAuthenticPixels&lt;br /&gt;#endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;to &lt;br /&gt;&lt;code&gt;&lt;br /&gt;#if 0&lt;br /&gt;#if MagickLibVersion &gt;= 0x645&lt;br /&gt;#define MagickGetImagePixels MagickGetAuthenticPixels&lt;br /&gt;#endif&lt;br /&gt;#endif&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now edit the sage3.0/config.mk file. Change the line:&lt;br /&gt;    &lt;span style="font-style:italic;"&gt;ARCHITECTURE=$(shell uname -p)&lt;/span&gt;&lt;br /&gt;to&lt;br /&gt;    &lt;span style="font-style:italic;"&gt;ARCHITECTURE=$(shell uname -m)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, if running on amd64 architecture, change (at about line 97):&lt;br /&gt;    &lt;span style="font-style:italic;"&gt;XLIBS=-L/usr/X11R6/lib64 -lGLU -lGL -lXmu -lXi -lXext -lX11&lt;/span&gt;&lt;br /&gt;to&lt;br /&gt;    &lt;span style="font-style:italic;"&gt;XLIBS=-L/usr/lib -lGLU -lGL -lXmu -lXi -lXext -lX11&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0$ make install (do not run make first!)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now check the script named sage. The line in it which reads:&lt;br /&gt;       &lt;span style="font-style:italic;"&gt;if [ `uname` == "Linux" ]&lt;/span&gt;&lt;br /&gt;should be changed to:&lt;br /&gt;       &lt;span style="font-style:italic;"&gt;if [ `uname` = "Linux" ] &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Configuration of SAGE&lt;br /&gt;---------------------&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ head -n 1 /home/angelv/sage3.0/bin/fsManager.conf&lt;br /&gt;fsManager       vaiven 192.168.1.1 161.72.201.73&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;in fsManger.conf&lt;br /&gt;&lt;code&gt;&lt;br /&gt;tileConfiguration stdtile-2.angelv.conf&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cat stdtile-2.angelv.conf:&lt;br /&gt;TileDisplay&lt;br /&gt;        Dimensions 2 1&lt;br /&gt;        Mullions 0.625 0.625 0.625 0.625&lt;br /&gt;        Resolution 1280 2048&lt;br /&gt;        PPI 90&lt;br /&gt;        Machines 2&lt;br /&gt;&lt;br /&gt;DisplayNode&lt;br /&gt;        Name dwall-11&lt;br /&gt;        IP 192.168.1.11&lt;br /&gt;        Monitors 1 (1,0)&lt;br /&gt;&lt;br /&gt;DisplayNode&lt;br /&gt;        Name dwall-12&lt;br /&gt;        IP 192.168.1.12&lt;br /&gt;        Monitors 1 (0,0)&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;cat tileNodes.list&lt;br /&gt;192.168.1.1&lt;br /&gt;192.168.1.11&lt;br /&gt;192.168.1.12&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In the render nodes (so far dwall-11 and dwall-12) I do:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@dwall-12:~$ sudo ln -s /home/angelv/sage3.0/lib/libquanta.so /usr/lib/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Test that it is working correctly:&lt;br /&gt;(from the readme.txt file in sage distribution)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;6. Test Whether SAGE is Working Properly&lt;br /&gt;        In $SAGE_DIRECTORY/bin&lt;br /&gt;        (1) Execute "fsManager". Tiled display becomes black if it runs correctly.&lt;br /&gt;                Users can specify a configuration file name as command-line argument.&lt;br /&gt;                Otherwise "fsManager.conf" is used.&lt;br /&gt;        (2) Open another terminal and execute "render"&lt;br /&gt;        (3) Open another terminal and execute "fsConsole"&lt;br /&gt;        (4) press TAB key twice. fsConsole commands are listed.&lt;br /&gt;        (5) ? or help command gives you short description for each command&lt;br /&gt;        (6) If you type initial character of a command and press TAB key,&lt;br /&gt;                the command is completed. Then, press TAB key again. You can see&lt;br /&gt;                the description of the command.&lt;br /&gt;        (7) move 0 1000 0 : move the app window&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And I find no problems.&lt;br /&gt;&lt;br /&gt;Test with the graphical interface&lt;br /&gt;---------------------------------&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ ./sage&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;after clicking start I get both monitors black and the interface to SAGE connection. I try to add a new server, and put the ports as default, host name "vaiven" and IP "192.168.1.1", but then when checking the info, it always tells me that the server is not running. Neverthelles, I put "connect as" angelv, then press connect. A message comes out saying: "Connection to sage server failed. Chat will be unavailable". Click OK and the SAGE UI comes out. I try to run "atlantis" but nothing happnes. By going to "Advanced Mode" in the SAGE Launcher window, and tab "Application Launcher" I see that it complains that cannot find atlantis. Sure enough, if I try to run atlantis like SAGE does it from the command line, then it does not find atlantis either:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ ssh 127.0.0.1 atlantis&lt;br /&gt;bash: atlantis: command not found&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;To solve it move the lines about SAGE binaries and libraries to the beginning of the .bashrc file (tip thanks to &lt;a href="http://sayspy.blogspot.com/2006/10/anyone-know-how-to-get-sshbash-to-use.html"&gt;http://sayspy.blogspot.com/2006/10/anyone-know-how-to-get-sshbash-to-use.html&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ head -n 10 .bashrc&lt;br /&gt;# ~/.bashrc: executed by bash(1) for non-login shells.&lt;br /&gt;# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)&lt;br /&gt;# for examples&lt;br /&gt;&lt;br /&gt;export SAGE_DIRECTORY=$HOME/sage3.0&lt;br /&gt;export PATH=${SAGE_DIRECTORY}/bin:${PATH}&lt;br /&gt;export LD_LIBRARY_PATH=${SAGE_DIRECTORY}/lib:${LD_LIBRARY_PATH}&lt;br /&gt;&lt;br /&gt;# If not running interactively, don't do anything&lt;br /&gt;[ -z "$PS1" ] &amp;&amp; return&lt;br /&gt;angelv@vaiven:~$ &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And now atlantis works without any trouble.&lt;br /&gt;&lt;br /&gt;Applications that I want:&lt;br /&gt;------------------------&lt;br /&gt;&lt;br /&gt;* View images:&lt;br /&gt;&lt;br /&gt;In the SAGE Launcher -&gt; Advanced Settings, I open the Settings for the File Server, and type as Library Root /home/angelv/sage3.0/bin/file_library. Then, after starting SAGE, in the SAGE UI I go to Options-&gt; File Library nad I Choose the "local" file library. Then, with Browse I select any image in my computer. Automatically is incorporated to the library, and I can select the images by (in the File Library - local user interface) opening the menu Files -&gt; Image at the left. Clicking in Show will show the image in the display wall, and then I can resize it, move it, etc. from within the SAGE UI.&lt;br /&gt;&lt;br /&gt;* Videos:&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://www.vislab.uq.edu.au/research/optiputer/software/vlc/index.html"&gt;http://www.vislab.uq.edu.au/research/optiputer/software/vlc/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo apt-get install libhal-dev libmad0-dev libavcodec-dev libavformat-dev libswscale-dev libpostproc-dev libtwolame-dev liba52-dev libfribidi-dev libgcrypt-dev&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Compile it with ./GO and copy it to the sage bin directory with &lt;br /&gt;&lt;span style="font-style:italic;"&gt;/bin/cp -r build/bin/vlc $SAGE_DIRECTORY/bin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then, in the Advanced Mode -&gt; File Server Settings -&gt; File Types, type: vlc --vout sage &lt;br /&gt;then, when selecting a video from the File Library, it displays without problems, with the sound going in the head node speakers. (I'm not sure if it is going also to the other nodes, since I don't have loudspeakers in them).&lt;br /&gt;&lt;br /&gt;* Sharing the desktop&lt;br /&gt;&lt;br /&gt;Install vnc4server xvnc4viewer&lt;br /&gt;&lt;br /&gt;I run a VNC server&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ vncserver -geometry 800x600&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;then connecting to it with the default vncviewer is no problem &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ vncviewer vaiven:1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;but if I try to run it with the provided VNC:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/sage3.0/bin$ ./VNCViewer 127.0.0.1 1 800 600 sagesage&lt;br /&gt;inet_addr 127.0.0.1 = 16777343&lt;br /&gt;VNC server supports protocol version 3.8 (viewer 3.3)&lt;br /&gt;here&lt;br /&gt;*** buffer overflow detected ***: ./VNCViewer terminated&lt;br /&gt;======= Backtrace: =========&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;So, part is working, but I still need to iron out some problems. To be continued...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2550513772260972486?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2550513772260972486/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2550513772260972486' title='9 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2550513772260972486'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2550513772260972486'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/adding-sage-to-my-display-wall.html' title='Adding SAGE to my display wall'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7624150283376608857</id><published>2010-05-25T17:00:00.001Z</published><updated>2010-05-25T17:00:02.956Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='glc'/><category scheme='http://www.blogger.com/atom/ns#' term='recording'/><category scheme='http://www.blogger.com/atom/ns#' term='opengl'/><category scheme='http://www.blogger.com/atom/ns#' term='Simulators'/><title type='text'>Recording OpenGL applications</title><content type='html'>Recording software like &lt;a href="http://live.gnome.org/Istanbul"&gt;Istanbul&lt;/a&gt; or &lt;a href="http://recordmydesktop.sourceforge.net/about.php"&gt;recordMyDesktop&lt;/a&gt; are very useful when recording regular programs, but when it comes to recording OpenGL applications (like games) they are not good, and we need a real-time video capture tool designed to capture OpenGL applications efficiently. One of this applications is &lt;a href="http://nullkey.ath.cx/projects/glc/"&gt;glc&lt;/a&gt; (another one I tried sometime ago was &lt;a href="https://devel.neopsis.com/projects/yukon/"&gt;yukon&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;So I gave glc a try, in order to record a car racing game called &lt;a href="http://speed-dreams.sourceforge.net/"&gt;Speed Dreams&lt;/a&gt;. In Ubuntu 9.10 installation of both Speed Dreams and glc is very easy thanks to &lt;a href="http://www.playdeb.net/welcome/"&gt;PlayDeb.net&lt;/a&gt;. Once the Speed Dreams was installed, the only problem with it was the sound, which is a known problem in Ubuntu 9.10 with some games. The best solution came from the &lt;a href="http://ubuntuforums.org/showthread.php?t=843012"&gt;Ubuntu Forums&lt;/a&gt; and involved adding these lines to the file &lt;span style="font-style:italic;"&gt;/etc/pulse/daemon.conf&lt;/span&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;default-fragments = 5&lt;br /&gt;default-fragment-size =25&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://angel-de-vicente.blogspot.com/2010/05/settings-for-flightgear-in-testing-2x3.html"&gt;Previously&lt;/a&gt; I had "solved" the sound problem by creating a file named .alsoftrc, but with that solution no sound was recorded with glc, so I deleted that file.&lt;br /&gt;&lt;br /&gt;Once this was in place, we can follow the glc &lt;a href="http://nullkey.ath.cx/projects/glc/wiki/HowtoCapture"&gt;instructions&lt;/a&gt; to record a new game, for instance:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ glc-capture -o newspeed.glc -k '&lt;Shift&gt;F12' speed-dreams&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And in order to encode it, we can do it with the encode.sh script (see &lt;a href="http://nullkey.ath.cx/projects/glc/wiki/HowtoEncode"&gt;http://nullkey.ath.cx/projects/glc/wiki/HowtoEncode&lt;/a&gt;), although I got a simpler script from &lt;a href="http://ubuntuforums.org/archive/index.php/t-587935.html"&gt;http://ubuntuforums.org/archive/index.php/t-587935.html&lt;/a&gt;, that works as well:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ cat glc-encode &lt;br /&gt;#!/bin/bash&lt;br /&gt;AUDIOFILE=$(echo $1 | sed 's/.glc/.mp3/')&lt;br /&gt;RESULTFILE=$(echo $1 | sed 's/.glc/.avi/')&lt;br /&gt;&lt;br /&gt;# Extract audio&lt;br /&gt;glc-play $1 -o - -a 1 | lame -hV2 - $AUDIOFILE&lt;br /&gt;&lt;br /&gt;# merge audio with .glc video file&lt;br /&gt;glc-play $1 -o - -y 1 | mencoder -demuxer y4m - -audiofile $AUDIOFILE -oac copy -ovc x264 -x264encopts qp=18:pass=1 -of avi -o $RESULTFILE&lt;br /&gt;angelv@vaiven:~$ &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this script we just run&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ./glc-encode newspeed.glc&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and if all is well, this will create newspeed.avi file.&lt;br /&gt;&lt;br /&gt;A demo of the result can be seen at &lt;a href="http://vimeo.com/12020463"&gt;Vimeo&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7624150283376608857?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7624150283376608857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7624150283376608857' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7624150283376608857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7624150283376608857'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/recording-opengl-applications.html' title='Recording OpenGL applications'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8370856346998504268</id><published>2010-05-24T11:57:00.002Z</published><updated>2010-05-24T12:58:16.482Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><category scheme='http://www.blogger.com/atom/ns#' term='Paraview'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><title type='text'>Settings for a Tiled Display Wall</title><content type='html'>As I wrote in a &lt;a href="http://angel-de-vicente.blogspot.com/2010/04/2x2-demo-tiled-display-wall.html"&gt;previous post&lt;/a&gt; I built a tiled display wall from "scratch". I haven't tried to streamline the process, so there is plenty of room for improvement, but I write here all the notes I took while building it.&lt;br /&gt;&lt;br /&gt;My test setting involves 3 PCs and six monitors (two per PC). The "head" node has two network cards, one connected to the "outside" world and the other one connected to a Gigabit router. The "render" nodes only have one network card, connected to the router. The three PC's have NVidia cards.&lt;br /&gt;&lt;br /&gt;I decide to give a try to the 9.10 Ubuntu distribution (64 bits), so the first thing is to install Karmic Koala in the head node (vaiven). After an installation without any issues, it is time to configure a few things. First, the network cards. eth1 is identified as the outside card, so I change the DHCP setting for it, and assign it a fixed IP address at our institution. To eth0 I also assign a fixed address (now for the internal network), with IP 192.168.1.1, netmask 255.255.255.0 (no gateway, DNS, etc.). In /etc/hosts I change the line&lt;br /&gt;&lt;code&gt;&lt;br /&gt;127.0.1.1 vaiven&lt;br /&gt;&lt;/code&gt; to&lt;br /&gt;&lt;code&gt;&lt;br /&gt;192.168.1.1 vaiven&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I do all the recommended updates (as per 18/5/2010), and install openssh-server, synergy, and emacs.&lt;br /&gt;&lt;br /&gt;In the first render node I install Karmic Koala with automatic login. I decide that I'm going to call the render nodes as dwall-XY where X will be the row and Y the column. So, the first one is dwall-11, and the IP address (eth0) will be: 192.168.1.11, with gateway 192.168.1.1, DNS servers and search domains as per eth0 in vaiven.&lt;br /&gt;&lt;br /&gt;After the initial installation I want to change some important things:&lt;br /&gt;&lt;br /&gt;* In order to access the Internet from the render nodes (hints from &lt;a href="http://www.cyberciti.biz/tips/linux-as-router-for-dsl-t1-line-etc.html"&gt;http://www.cyberciti.biz/tips/linux-as-router-for-dsl-t1-line-etc.html&lt;/a&gt;), in vaiven I modify the file /etc/sysctl.conf so that it contains the line&lt;br /&gt;&lt;code&gt;&lt;br /&gt;net.ipv4.ip_forward = 1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And I also modify /etc/rc.local to change the firewall policies:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaiven:~$ tail /etc/rc.local&lt;br /&gt;## In order to enable or disable this script just change the execution# bits.&lt;br /&gt;## By default this script does nothing.&lt;br /&gt;iptables --table nat --append POSTROUTING --out-interface eth1 -j MASQUERADE&lt;br /&gt;iptables --append FORWARD --in-interface eth0 -j ACCEPT&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I restart vaiven, and test from dwall-11 that I can access the Internet. Then I also install all recommended updates (with the Update Manager), and I install openssh-server, synergy and emacs.&lt;br /&gt;&lt;br /&gt;* A poor man's KVM&lt;br /&gt;&lt;br /&gt;I only have one keyboard and a mouse, so I don't want to get up and change the USB connections all the time, and I don't want to buy a KVM, so I make sure that synergy is installed in both vaiven and dwall-11. I create the following config file in my home directory in vaiven&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaiven:~$ cat synergy.conf&lt;br /&gt;section: screens  &lt;br /&gt;    vaiven:&lt;br /&gt;    dwall-11:&lt;br /&gt;end&lt;br /&gt;section: links&lt;br /&gt;  vaiven:&lt;br /&gt;  left = dwall-11&lt;br /&gt;  dwall-11:&lt;br /&gt;  right = vaiven&lt;br /&gt;end&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I make sure that /etc/hosts in both machines have the lines&lt;br /&gt;&lt;code&gt;angelv@dwall-11:~$ cat /etc/hosts&lt;br /&gt;127.0.0.1 localhost&lt;br /&gt;192.168.1.1     vaiven&lt;br /&gt;192.168.1.11    dwall-11[...]&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And then I run:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ synergys --config synergy.conf&lt;br /&gt;angelv@dwall-11:~$ synergyc vaiven&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this I can move the mouse and use the keyboard in both computers without changing the USB connections.&lt;br /&gt;&lt;br /&gt;I restart both computers and verify that dwall-11 logins automatically, that once synergys and synergyc are started I can move the mouse to dwall-11 and back to vaiven, and that I can access the Internet without problems from dwall-11.&lt;br /&gt;&lt;br /&gt;One problem that I found with synergy is that some keys in my keyboard don't register (like th "ñ"), but for most purposes it works perfect.&lt;br /&gt;&lt;br /&gt;* Share home folders in the cluster.&lt;br /&gt;&lt;br /&gt;I install in vaiven nfs-kernel-server and modify the following files:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ tail -n 5 /etc/exports&lt;br /&gt;# Example for NFSv4:&lt;br /&gt;# /srv/nfs4        gss/krb5i(rw,sync,fsid=0,crossmnt,no_subtree_check)&lt;br /&gt;# /srv/nfs4/homes  gss/krb5i(rw,sync,no_subtree_check)&lt;br /&gt;#&lt;br /&gt;/home           192.168.1.0/255.255.255.0(rw,sync)&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ tail -n 10 /etc/hosts.deny&lt;br /&gt;&lt;br /&gt;# You may wish to enable this to ensure any programs that don't&lt;br /&gt;# validate looked up hostnames still leave understandable logs. In past&lt;br /&gt;# versions of Debian this has been the default.&lt;br /&gt;# ALL: PARANOID&lt;br /&gt;portmap:ALL&lt;br /&gt;lockd:ALL&lt;br /&gt;mountd:ALL&lt;br /&gt;rquotad:ALL&lt;br /&gt;statd:ALL&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ tail -n 10 /etc/hosts.allow&lt;br /&gt;# daemon name. Remember that you can only use the keyword "ALL" and IP&lt;br /&gt;# addresses (NOT host or domain names) for the portmapper, as well as for&lt;br /&gt;# rpc.mountd (the NFS mount daemon). See portmap(8) and rpc.mountd(8)&lt;br /&gt;# for further information.&lt;br /&gt;#&lt;br /&gt;portmap: 192.168.1.0/255.255.255.0&lt;br /&gt;lockd: 192.168.1.0/255.255.255.0&lt;br /&gt;mountd: 192.168.1.0/255.255.255.0&lt;br /&gt;rquotad: 192.168.1.0/255.255.255.0&lt;br /&gt;statd: 192.168.1.0/255.255.255.0&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In dwall-11 I install nfs-common and modify the following files:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@dwall-11:~$ tail -n 5  /etc/fstab&lt;br /&gt;UUID=c9035fea-00c9-4fac-9c41-56409248ffd6 /               ext4    errors=remount-ro 0       1&lt;br /&gt;# swap was on /dev/sda5 during installation&lt;br /&gt;UUID=c00e80b8-af40-45dc-9516-3c0e80449848 none            swap    sw              0       0&lt;br /&gt;/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0&lt;br /&gt;192.168.1.1:/home      /home                   nfs     rw,hard,intr 0 0&lt;br /&gt;angelv@dwall-11:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;* Cluster shell environment&lt;br /&gt;In order to be able to control all the computers from a single terminal I install &lt;a href="http://omnitty.sourceforge.net/"&gt;Omnitty&lt;/a&gt;. For this I install in vaiven libncurses5-dev and then follow the instructions at &lt;a href="http://omnitty.sourceforge.net/download.html"&gt;http://omnitty.sourceforge.net/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I also need to link a library file:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo ln -s /usr/local/lib/librote.so* /usr/lib/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;In a terminal I change the Edit-&gt;Keyboard Shortcuts Help-&gt;Contents from F1 to Alt-Shift-F1 (since we will need F1 inside Omnitty) and then I create the file dwall&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaiven:~$ cat dwall&lt;br /&gt;vaiven&lt;br /&gt;dwall-11&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this, when I start Omnitty, by pressing F5 and then typing @dwall, a connection to all the machines in the cluster will be made.&lt;br /&gt;&lt;br /&gt;Then, to avoid typing the password everytime I do:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ssh-keygen -t rsa&lt;br /&gt;angelv@vaiven:~$ cat .ssh/id_rsa.pub &gt;&gt; .ssh/authorized_keys&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;* Removing Ubuntu panels from view.&lt;br /&gt;When displaying in the complete wall, we don't want to see the Ubuntu panels, so in vaiven I remove the panel on the bottom of the screen, and I change the properties in the top one to Autohide. Since this information is stored in the home directory, when I login again in dwall-11, these settings are replicated in there.&lt;br /&gt;&lt;br /&gt;* In dwall-11 and vaiven I download and configure the NVidia drivers (System-&gt;Administration-&gt;Hardware drivers)&lt;br /&gt;&lt;br /&gt;* I don't want the monitors in the display wall to go to sleep or to lock, so in dwall-11 in the Screensaver preferences I uncheck "Activate screensaver ..." and "Lock screen when screensaver..." and inside the Screensaver Preferences in Power Management I put "Never" in "Put display to sleep when inactive".&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:180%;"&gt;&lt;strong&gt;Chromium&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;It is now time to start configuring &lt;a href="http://chromium.sourceforge.net/"&gt;Chromium&lt;/a&gt; http://chromium.sourceforge.net/, so I download it from &lt;a href="http://sourceforge.net/projects/chromium/files/"&gt;http://sourceforge.net/projects/chromium/files/&lt;/a&gt; (version 1.9). The instructions for installation are at: &lt;a href="http://chromium.sourceforge.net/doc/chromium2.html"&gt;http://chromium.sourceforge.net/doc/chromium2.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I create two directories in my home to hold de 32 and 64 bits versions. First we go for the 64 version. I enter in cr-1.9, and to compile it we will need first a few things:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ sudo ln -s /usr/bin/make /usr/bin/gmake&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~/cr-1.9$ sudo apt-get install libglut3-dev libglut g++ libxmu-headers libxmu-dev libjpeg-dev zlib1g-dev libxi-dev&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Then, we just run make.&lt;br /&gt;&lt;br /&gt;To compile the 32 bits version, I go into cr-1.9-32 and modify the file options.mk so that it contains the line:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;FORCE_32BIT_ABI=1&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;We will need some extra packages (libc6-dev-i386,  g++-multilib, ia32-libs and lib32z1-dev) and then we can just run make.&lt;br /&gt;&lt;br /&gt;To make Chromium work fine, we need to create some files (for this I follow my previous post &lt;a href="http://angel-de-vicente.blogspot.com/2010/04/hack-to-get-chromium-working-with-rocks.html"&gt;my previous post&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ cat enable_cr&lt;br /&gt;#!/bin/bash&lt;br /&gt;cd /home/angelv/cr-1.9/lib/Linux&lt;br /&gt;ln -s libcrfaker.so libGL.so.1&lt;br /&gt;ln -s libcrfaker.so libGL.so&lt;br /&gt;&lt;br /&gt;cd /home/angelv/cr-1.9-32/lib/Linux&lt;br /&gt;ln -s libcrfaker.so libGL.so.1&lt;br /&gt;ln -s libcrfaker.so libGL.so&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat disable_cr&lt;br /&gt;#!/bin/bash&lt;br /&gt;cd /home/angelv/cr-1.9/lib/Linux&lt;br /&gt;rm libGL.so.1&lt;br /&gt;rm libGL.so&lt;br /&gt;&lt;br /&gt;cd /home/angelv/cr-1.9-32/lib/Linux&lt;br /&gt;rm libGL.so.1&lt;br /&gt;rm libGL.so&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ tail -n 10 .bashrc&lt;br /&gt;# this, if it's already enabled in /etc/bash.bashrc and /etc/profile&lt;br /&gt;# sources /etc/bash.bashrc).&lt;br /&gt;if [ -f /etc/bash_completion ] &amp;amp;&amp;amp; ! shopt -oq posix; then&lt;br /&gt;. /etc/bash_completion&lt;br /&gt;fi&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;export PATH="/home/angelv/cr-1.9/bin/Linux:$PATH"&lt;br /&gt;export LD_LIBRARY_PATH="/home/angelv/cr-1.9/lib/Linux:/home/angelv/cr-1.9-32/lib/Linux:$LD_LIBRARY_PATH"&lt;br /&gt;export CRMOTHERSHIP="vaiven"&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat .crconfigs&lt;br /&gt;* /home/angelv/first_angel.conf %p&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat first_angel.conf&lt;br /&gt;import sys&lt;br /&gt;sys.path.append('/home/angelv/cr-1.9/mothership/server')&lt;br /&gt;from mothership import *&lt;br /&gt;&lt;br /&gt;TILE_WIDTH = 1280&lt;br /&gt;TILE_HEIGHT = 2048&lt;br /&gt;&lt;br /&gt;appnode = CRApplicationNode('vaiven')&lt;br /&gt;tilesortspu = SPU('tilesort')&lt;br /&gt;appnode.AddSPU(tilesortspu)&lt;br /&gt;appnode.Conf( 'show_cursor', 1 )&lt;br /&gt;cr = CR()&lt;br /&gt;cr.AddNode(appnode)&lt;br /&gt;&lt;br /&gt;renderspu = SPU('render')&lt;br /&gt;renderspu.Conf('fullscreen', 1)&lt;br /&gt;#renderspu.Conf('window_geometry', [0, 0, 512, 512])&lt;br /&gt;renderspu.Conf( 'show_cursor', 1 )&lt;br /&gt;&lt;br /&gt;node = CRNetworkNode('dwall-11')&lt;br /&gt;node.AddTile(0, 0, TILE_WIDTH, TILE_HEIGHT)&lt;br /&gt;node.AddSPU(renderspu)&lt;br /&gt;node.AutoStart( ["/usr/bin/ssh",'-x',"dwall-11", "/home/angelv/start-crserver.sh 0.0 /home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000 7000"] )&lt;br /&gt;&lt;br /&gt;tilesortspu.AddServer(node, protocol='tcpip', port=7000)&lt;br /&gt;&lt;br /&gt;cr.AddNode(node)&lt;br /&gt;&lt;br /&gt;demo = sys.argv[1]&lt;br /&gt;&lt;br /&gt;appnode.SetApplication(demo)&lt;br /&gt;&lt;br /&gt;cr.Go()&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat start-crserver.sh&lt;br /&gt;#!/bin/bash&lt;br /&gt;export PATH="/home/angelv/cr-1.9/bin/Linux:$PATH"&lt;br /&gt;export LD_LIBRARY_PATH="/home/angelv/cr-1.9/lib/Linux:/home/angelv/cr-1.9-32/lib/Linux:$LD_LIBRARY_PATH"&lt;br /&gt;&lt;br /&gt;export DISPLAY=:$1&lt;br /&gt;$2 -mothership $3:$4 -port $5&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and in dwall-11 we install the necessary drivers:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@dwall-11:~$ sudo apt-get install libgl1-mesa-dev&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;First, for testing, we try Chromium in just one PC (following &lt;a href="http://chromium.sourceforge.net/doc/chromium2.html"&gt;its instructions&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;% cd mothership/configs&lt;br /&gt;% python crdemo.conf atlantis &amp;amp;&lt;br /&gt;% crserver &amp;amp;&lt;br /&gt;% crappfaker&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and all is fine (when trying to run this in Ubuntu 10.04 we got problems like &lt;span style="font-style:italic;"&gt;angelv@vaiven:~/cr-1.9/mothership/configs$ CR Warning(vaiven:14640): Render SPU: Display :0.0 doesn't have the necessary visual: RGB, Doublebuffer, Z&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Now it is time to try it properly.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ./enable_cr&lt;br /&gt;angelv@vaiven:~$ glxgears&lt;br /&gt;CR Warning(vaiven:22224): the OpenGL faker was loaded without crappfaker!&lt;br /&gt;Defaulting to an application id of -1!&lt;br /&gt;This won't work if you're debugging a parallel application!&lt;br /&gt;In this case, set the CR_APPLICATION_ID_NUMBER environment&lt;br /&gt;variable to the right thing (see opengl_stub/load.c)&lt;br /&gt;CR Warning(vaiven:22224): Using Chromium configuration for * from /home/angelv/.crconfigs&lt;br /&gt;This is Chromium, Version 1.9&lt;br /&gt;Start a crappfaker on vaiven&lt;br /&gt;Autostart for node dwall-11: ['/usr/bin/ssh', '-x', 'dwall-11', '/home/angelv/start-crserver.sh 0.0 /home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000 7000']&lt;br /&gt;Mothership signalling spawning process 22224&lt;br /&gt;CR Info(dwall-11:7033): Total output dimensions = (1280, 2048)&lt;br /&gt;26 frames in 5.1 seconds&lt;br /&gt;26 frames in 5.1 seconds&lt;br /&gt;26 frames in 5.1 seconds&lt;br /&gt;24 frames in 5.1 seconds&lt;br /&gt;24 frames in 5.1 seconds&lt;br /&gt;27 frames in 5.1 seconds&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;No problems, although it is very slow. To make it work properly, we need to go to Appearance -&gt; Visual Effects, and select None (I do it for both vaiven and dwall-11). With this we are back in business and glxgears works perfectly.&lt;br /&gt;&lt;br /&gt;I install in vaiven stellarium (&lt;span style="font-style:italic;"&gt;sudo apt-get install stellarium&lt;/span&gt;) and works with Chromium without issues.&lt;br /&gt;&lt;br /&gt;I try Google Earth (which I download from http://earth.google.com/). No trouble installing it by running the script (although it complains about the cache everytime I start it). To solve the complaining about the cache I have to do:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ sudo chown -R angelv:angelv .config/Google/&lt;br /&gt;angelv@vaiven:~$ grep home .config/Google/GoogleEarthPlus.conf&lt;br /&gt;KMLPath=/home/angelv/.googleearth&lt;br /&gt;CachePath=/home/angelv/.googleearth/Cache&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Now, in order to run GoogleEarth with Chromium I have to first make a symbolic link and create a couple of files:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ls -lt /usr/lib/libGL.so.1_32&lt;br /&gt;lrwxrwxrwx 1 root root 29 2010-05-20 13:26 /usr/lib/libGL.so.1_32 -&gt; /usr/lib32/libGL.so.185.18.36&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat gl_32.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;sudo rm /usr/lib/libGL.so.1&lt;br /&gt;sudo ln -s /usr/lib/libGL.so.1_32 /usr/lib/libGL.so.1&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat gl_64.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;sudo rm /usr/lib/libGL.so.1&lt;br /&gt;sudo ln -s /usr/lib/libGL.so.1_64 /usr/lib/libGL.so.1&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And then it runs without issues (except that the we have to turn off the Atmosphere effect).&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ sudo ./gl_32.sh&lt;br /&gt;angelv@vaiven:~$ googleearth&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Adding render nodes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The idea was to use &lt;a href="http://wiki.systemimager.org/index.php/Main_Page"&gt;SystemImager&lt;/a&gt; to replicate the render nodes, but I found some problems, so for the time being I do it manually and will try to later on figure out a better way of cloning the render nodes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In dwall-11 I open Synaptic Package Manager and File-&gt; Save Marking As -&gt; (Save full state, not only changes) -&gt; Save (for instance: dwall.packages)&lt;br /&gt;&lt;br /&gt;I install a new node (dwall-12) with the Ubuntu 9.10 CD. And then I proceed as follows:&lt;br /&gt;&lt;br /&gt;* Configure the network to be 192.168.1.12 (as per dwall-11)&lt;br /&gt;* Copy /etc/hosts and make sure is the same in all the machines (with all the stuff until now).&lt;br /&gt;* Copy to /etc/fstab the line to share the home&lt;br /&gt;* Get the dwall.packages file. Open Synaptic Manager -&gt; Read Markings (dwall.packages) -&gt; Apply&lt;br /&gt;* Wait and reboot dwall-12&lt;br /&gt;&lt;br /&gt;After rebooting I need to change a few things in order to include fully the new node in the display wall:&lt;br /&gt;&lt;br /&gt;* Modify the dwall file for Omnity&lt;br /&gt;* Modify the synergy.conf file&lt;br /&gt;* System -&gt; Administration -&gt; Hardware drivers (to activate the Nvidia driver) (and copy the xorg.conf file from vavien to dwall-12)&lt;br /&gt;&lt;br /&gt;* Modify first_angel.conf&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ diff first_angel.conf first_angel.conf.ORIGINAL &lt;br /&gt;21,35d20&lt;br /&gt;&lt; node.AddTile(1280, 0, TILE_WIDTH, TILE_HEIGHT)&lt;br /&gt;&lt; node.AddSPU(renderspu)&lt;br /&gt;&lt; node.AutoStart( ["/usr/bin/ssh",'-x',"dwall-11", "/home/angelv/start-crserver.sh 0.0 /home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000 7000"] )&lt;br /&gt;&lt; &lt;br /&gt;&lt; tilesortspu.AddServer(node, protocol='tcpip', port=7000)&lt;br /&gt;&lt; &lt;br /&gt;&lt; cr.AddNode(node)&lt;br /&gt;&lt; &lt;br /&gt;&lt; &lt;br /&gt;&lt; renderspu = SPU('render')&lt;br /&gt;&lt; renderspu.Conf('fullscreen', 1)&lt;br /&gt;&lt; #renderspu.Conf('window_geometry', [0, 0, 512, 512])&lt;br /&gt;&lt; renderspu.Conf( 'show_cursor', 1 )&lt;br /&gt;&lt; &lt;br /&gt;&lt; node = CRNetworkNode('dwall-12')&lt;br /&gt;38c23&lt;br /&gt;&lt; node.AutoStart( ["/usr/bin/ssh",'-x',"dwall-12", "/home/angelv/start-crserver.sh 0.0 /home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000 7000"] )&lt;br /&gt;---&lt;br /&gt;&gt; node.AutoStart( ["/usr/bin/ssh",'-x',"dwall-11", "/home/angelv/start-crserver.sh 0.0 /home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000 7000"] )&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;And all works excellently: glxgears, googleearth and stellarium. Googleearth working with the Atmosphere effect does not work (as expected).&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;span style="font-size:180%;"&gt;Software to see images, and to watch videos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;* For video, we can try VLC (as suggested in &lt;a href="http://viz.aset.psu.edu/ga5in/DisplayWallBuild.html"&gt;here&lt;/a&gt;), with its built-in wall filter. We install VLC (installation of packages always through omnitty, so that we keep all systems synchronized) and create two scripts:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ cat vlc-wall_2x2.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# cleanup&lt;br /&gt;killall -9 vlc&lt;br /&gt;ssh dwall-11 killall -9 vlc&lt;br /&gt;ssh dwall-12 killall -9 vlc&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;vlc --aspect-ratio 5:4 --sout '#standard{scale=1,access=udp,mux=ts,dst=224.0.55.55:1234}' --ttl 1 $@ &amp;amp;&lt;br /&gt;cvlc --novideo --vout dummy udp://@224.0.55.55 &amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;ssh dwall-12 'DISPLAY=:0 cvlc --aspect-ratio 5:4 --noaudio --vout-filter wall --wall-cols 2 --wall-rows 2 --wall-active 0 --fullscreen --xvideo-xineramascreen 0 udp://@224.0.55.55' &amp;amp;&lt;br /&gt;&lt;br /&gt;ssh dwall-12 'DISPLAY=:0 cvlc --aspect-ratio 5:4 --noaudio --vout-filter wall --wall-cols 2 --wall-rows 2 --wall-active 2 --fullscreen --xvideo-xineramascreen 1 udp://@224.0.55.55' &amp;amp;&lt;br /&gt;&lt;br /&gt;ssh dwall-11 'DISPLAY=:0 cvlc --aspect-ratio 5:4 --noaudio --vout-filter wall --wall-cols 2 --wall-rows 2 --wall-active 1 --fullscreen --xvideo-xineramascreen 0 udp://@224.0.55.55' &amp;amp;&lt;br /&gt;&lt;br /&gt;ssh dwall-11 'DISPLAY=:0 cvlc --aspect-ratio 5:4 --noaudio --vout-filter wall --wall-cols 2 --wall-rows 2 --wall-active 3 --fullscreen --xvideo-xineramascreen 1 udp://@224.0.55.55' &amp;amp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$ cat vlc-wall-kill.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;# cleanup&lt;br /&gt;killall -9 vlc&lt;br /&gt;ssh dwall-11 killall -9 vlc&lt;br /&gt;ssh dwall-12 killall -9 vlc&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I also modify the file /etc/rc.local and add the line&lt;br /&gt;&lt;code&gt;&lt;br /&gt;route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I reboot, I open VLC and do "Reset Preferences" and then to watch a video in the 4 monitors we just run the following (when trying to extend it to three computers it does not work OK. The image is shown, but the scales in each of the monitors is different. Apparently this is a known bug, so we should investigate more):&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ./vlc-wall_2x2.sh &lt;file&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;and when we are done&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~$ ./vlc-wall-kill.sh&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;* For an image viewer we are going to try the  &lt;a href="http://archive.ncsa.illinois.edu/prajlich/wall/tsb.html"&gt;TerraServer Blaster&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;In order to compile it we install an old version of the g++ compiler (g++-4.2), which also installs libstdc++6-4.2-dev (otherwise, when compiling, it complains about not finding iostream.h), we also install the package libfltk-dev, and then change the compiler line in the Makefile to make use of g++-4.2, and then we just run make, which does its thing without problems:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/tsb-1.3$ file tsb&lt;br /&gt;tsb: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, not stripped&lt;br /&gt;angelv@vaiven:~/tsb-1.3$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;After enabling Chromium (/home/angelv/enable_cr) TSB works perfectly. The program comes with a nice demo to verify that all is working, which we can call with:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@vaiven:~/tsb-1.3$ ./tsb config-HiRISE.txt&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;With this in place, and after installing with the package manager Stellarium, Celestia and Paraview we have all we need for the moment working fine, as can be seen in &lt;a href="http://vimeo.com/11177704"&gt;this demo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8370856346998504268?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8370856346998504268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8370856346998504268' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8370856346998504268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8370856346998504268'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/settings-for-tiled-display-wall.html' title='Settings for a Tiled Display Wall'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8541783822701168604</id><published>2010-05-24T08:42:00.005Z</published><updated>2010-05-24T08:57:49.321Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='tax'/><category scheme='http://www.blogger.com/atom/ns#' term='PADRE'/><title type='text'>PADRE in Linux</title><content type='html'>This is the first year that the Spanish tax office has provided its tax helper program &lt;a href="http://www.aeat.es/wps/portal/ProgramaAyuda?channel=57ce4b8238767210VgnVCM1000004ef01e0a____&amp;ver=L&amp;site=56d8237c0bc1ff00VgnVCM100000d7005a80____&amp;idioma=es_ES&amp;menu=0&amp;img=0"&gt;PADRE for Linux&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is quite nice, since previous years I had to run it inside a Windows Virtual Machine (for which first I had to get the Windows CDs, etc.). The new version is in Java, and for some reason it didn't want to work properly in my Ubuntu 10.04 box (the first application form to fill in your ID number was not showing properly), but it run flawlessly in the machine with Ubuntu 9.10.&lt;br /&gt;&lt;br /&gt;This year the program also includes something quite nice, which is the ability to change quickly from "declaración conjunta" to "declaración individual", so if you are married you can put the data for both of you, and effortlessly change from one version to the other one, so that you can easily see which one turns out better.&lt;br /&gt;&lt;br /&gt;In a couple of hours I got all my tax data online, corrected a couple of things, added some that the tax office was not aware of, checked whether it was better for us to submit a "conjunta" or an "individual" one, and printed it off. Not bad at all. Doing your taxes is always a bit painful, but this year was a bit less so.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8541783822701168604?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8541783822701168604/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8541783822701168604' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8541783822701168604'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8541783822701168604'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/padre-in-linux.html' title='PADRE in Linux'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6325803989807534995</id><published>2010-05-20T03:09:00.007Z</published><updated>2011-07-08T09:48:20.425Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='newsgroups'/><category scheme='http://www.blogger.com/atom/ns#' term='Gnus'/><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Synchronizing newsgroups across different computers</title><content type='html'>&lt;a href="http://2.bp.blogspot.com/_hm_BgzIyQw0/S_UIBO8iCTI/AAAAAAAAB3Q/EgAgvILgG4A/s1600/gnus.png" onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}"&gt;&lt;img alt="" border="0" id="BLOGGER_PHOTO_ID_5473289739423582514" src="http://2.bp.blogspot.com/_hm_BgzIyQw0/S_UIBO8iCTI/AAAAAAAAB3Q/EgAgvILgG4A/s320/gnus.png" style="cursor: pointer; float: left; height: 256px; margin: 0pt 10px 10px 0pt; width: 320px;" /&gt;&lt;/a&gt;&lt;br /&gt;Being a bit old-fashioned, I'm still stuck with newsgroups. I don't read too many of them, but I find them very useful sometimes. The problem is that the protocol seems to be quite old and not amenable for synchronization between different computers. After some time searching for solutions (and thinking about using something like &lt;a href="http://leafnode.sourceforge.net/"&gt;leafnode&lt;/a&gt; with the spool option or similar), I'm afraid that the best I came out with is to run a terminal-based news reader at my work computer and connect to it when I'm away from my office. Perhaps not the solution I was looking for, but at least doable and without any trouble. Being an Emacs fan, I did it with &lt;a href="http://www.gnus.org/"&gt;Gnus&lt;/a&gt;. This is the second time I go back to Gnus... the first one I tried to read all my mail with it, but didn't like it too much... but for news, it looks like it could be quite nice. It was quite easy to set up (despite the documentation style), and this is how it looks when I'm reading one of my subscribed newsgroups (list of free NNTP news servers: &lt;a href="http://www.elfqrin.com/hacklab/pages/nntpserv.php"&gt;here&lt;/a&gt; and &lt;a href="http://www.disenter.com/index.php?sort=groups&amp;amp;order=DESC"&gt;here&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6325803989807534995?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6325803989807534995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6325803989807534995' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6325803989807534995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6325803989807534995'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/synchronizing-newsgroups-across.html' title='Synchronizing newsgroups across different computers'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_hm_BgzIyQw0/S_UIBO8iCTI/AAAAAAAAB3Q/EgAgvILgG4A/s72-c/gnus.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6626536023998337662</id><published>2010-05-19T11:06:00.004Z</published><updated>2010-05-20T10:06:07.256Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='SIP'/><category scheme='http://www.blogger.com/atom/ns#' term='skype'/><category scheme='http://www.blogger.com/atom/ns#' term='VoIP'/><title type='text'>Free software replacement for Skype</title><content type='html'>Although I have previously &lt;a href="http://http://angel-de-vicente.blogspot.com/2010/04/skype-in-ubuntu-karmic-koala-910.html"&gt;posted&lt;/a&gt; about running Skype in Ubuntu, I want to follow the spirit of the Free Software Foundation and stay away from Skype, in favour of &lt;br /&gt;&lt;a href="http://www.fsf.org/campaigns/priority-projects/index_html/#skypereplacement"&gt;free software&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;So I have tried (in Ubuntu 9.10) &lt;a href="http://ekiga.org/"&gt;Ekiga&lt;/a&gt;, &lt;a href="http://www.twinklephone.com/"&gt;Twinkle&lt;/a&gt;, and also Linphone, QuteCom and Kphone.&lt;br /&gt;&lt;br /&gt;Ekiga is the one that I would like to use, since I like the interface, but in my netbook I got problems with the audio. First, sound is not produced in all calls. When dialing the "Echo Test" numbers, I get sound in some calls while not in others. Probably it has something to do with having PulseAudio running, but I'm not willing to turn PulseAudio off, so I'm afraid Ekiga for the moment is not ready for my netbook. Another annoying problem is that I cannot get the Front Mic to work.&lt;br /&gt;&lt;br /&gt;I had better luck with Twinkle, although the problem with the Front Microphone is also there. It does work in the sense that I can hear part of what I say, but there is an incredible amount of echo, hissing and noises, so it is not usable. With a microphone headset there is no problem and it works rather well, although I haven't done much testing.&lt;br /&gt;&lt;br /&gt;Linphone and Kphone did work in my workstation, but the interface was not very appealing, plus there was not (I think) chat capabilities, while QuteCom, while not complaining on installation, did simply not start at all.&lt;br /&gt;&lt;br /&gt;So for the moment I'm dumping Skype and sticking with Twinkle. So far I have only tried the "Echo Test" call, but I will try it for a while for real calls and then report back later on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6626536023998337662?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6626536023998337662/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6626536023998337662' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6626536023998337662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6626536023998337662'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/free-software-replacement-for-skype.html' title='Free software replacement for Skype'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6333734566526594998</id><published>2010-05-17T11:05:00.001Z</published><updated>2010-05-17T11:15:42.906Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='Mathematica'/><title type='text'>Mathematica through ssh tunnel</title><content type='html'>Although I don't use Mathematica, a colleague asked me for help on this. In our setting the licence server for Mathematica listens on port 16286, so to get a PC with Mathematica installed (but without a license) to access that license server we just need to do:&lt;br /&gt;&lt;br /&gt;* locate the "mathpass" file in the PC and add the line&lt;br /&gt;&lt;code&gt;&lt;br /&gt;!localhost&lt;br /&gt;&lt;/code&gt;&lt;br /&gt; &lt;br /&gt;* then create a ssh tunnel where the local 16286 port is redirected to the 16286 port in the license server.&lt;br /&gt;&lt;br /&gt;And that's all. Now Mathematica at home works fine, but using the Mathematica licenses at work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6333734566526594998?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6333734566526594998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6333734566526594998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6333734566526594998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6333734566526594998'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/mathematica-through-ssh-tunnel.html' title='Mathematica through ssh tunnel'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4335061736196216532</id><published>2010-05-17T10:05:00.000Z</published><updated>2010-05-17T09:07:19.826Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='books'/><title type='text'>Anobii: keeping track of what I read</title><content type='html'>Sadly my memory is not getting any better, and sometimes I even forget which books I have read in the past... In order to put some order in this area, I'm now adding to Anobii all the information about books that I read. I just started a few months ago, so there is not much yet, but the list will keep growing. My virtual shelf is at &lt;a href="https://www.anobii.com/angelv/books"&gt;https://www.anobii.com/angelv/books&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4335061736196216532?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4335061736196216532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4335061736196216532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4335061736196216532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4335061736196216532'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/anobii-keeping-track-of-what-i-read.html' title='Anobii: keeping track of what I read'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8880790003796097674</id><published>2010-05-14T22:07:00.004Z</published><updated>2010-05-14T22:21:06.235Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Pretending to be a luthier...</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_hm_BgzIyQw0/S-3MHTeWw6I/AAAAAAAAB3E/9V-8PwuDXeg/s1600/IMGP0377.JPG"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 240px;" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/S-3MHTeWw6I/AAAAAAAAB3E/9V-8PwuDXeg/s320/IMGP0377.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5471253548183765922" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As a present I got a guitar building kit from the &lt;a href="http://www.renwks.com/"&gt;Renaissance Workshop Company&lt;/a&gt;. Slowly (I only work on it a couple of hours per week), I'm doing some progress... See &lt;a href="http://www.flickr.com/photos/angelv/sets/72157624061626956/"&gt;the evidence&lt;/a&gt;. In June I have my guitar examination. Will it be ready by then?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8880790003796097674?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8880790003796097674/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8880790003796097674' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8880790003796097674'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8880790003796097674'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/pretending-to-be-luthier.html' title='Pretending to be a luthier...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/S-3MHTeWw6I/AAAAAAAAB3E/9V-8PwuDXeg/s72-c/IMGP0377.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3963591084301402998</id><published>2010-05-14T04:49:00.011Z</published><updated>2010-05-14T06:17:15.509Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Upgrade from Ubuntu 9.10 to Ubuntu 10.04</title><content type='html'>I recently upgraded Ubuntu in my laptop from version 9.10 to version 10.04. The upgrade was quite smooth, but I had to "fix" a number of things:&lt;br /&gt;&lt;br /&gt;* I wanted to get rid of the login sounds, and I found how to do it at &lt;a href="http://www.webupd8.org/2010/04/what-to-do-after-fresh-ubuntu-install.html"&gt;http://www.webupd8.org/2010/04/what-to-do-after-fresh-ubuntu-install.html&lt;/a&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sudo -u gdm gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false&lt;br /&gt;gconftool-2 --set /desktop/gnome/sound/event_sounds --type bool false&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;* My wife also uses this laptop. We both want a Spanish keyboard, but she wants the menus in Spanish while I prefer them in English. For some reason, after updating to 10.04 my menus were also in Spanish. This didn't look very promising (&lt;a href="http://ubuntuforums.org/showthread.php?t=1472193"&gt;http://ubuntuforums.org/showthread.php?t=1472193&lt;/a&gt;) but in the end I managed to change it.&lt;br /&gt;&lt;br /&gt;In the language support tool I had the following languages (in that order) English (United Kingdom), Spanish, English, but then I always got the menus in Spanish. Moved away Spanish below English and all is fine now. Perhaps the support for UK English is broken?&lt;br /&gt;&lt;br /&gt;* Sound issue solved?&lt;br /&gt;In 9.10 there was apparently a bug with the sound which made many games misbehave, and the trick was to create a file with name ".alsoftrc" in your home directory (and contents "drivers = oss"). It seems that this problem is gone in 10.04, so I get rid of my .alsoftrc file and the problem does not show.&lt;br /&gt;&lt;br /&gt;* X problems after upgrade. &lt;br /&gt;The upgrade generated a new and very basic /etc/X11/xorg.conf file, so I had to regenerate my old configuration.&lt;br /&gt;&lt;br /&gt;So far I have not found any other issues...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3963591084301402998?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3963591084301402998/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3963591084301402998' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3963591084301402998'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3963591084301402998'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/upgrade-from-ubuntu-910-to-ubuntu-1004.html' title='Upgrade from Ubuntu 9.10 to Ubuntu 10.04'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6471254429942381683</id><published>2010-05-03T10:30:00.003Z</published><updated>2010-05-03T10:35:19.574Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><category scheme='http://www.blogger.com/atom/ns#' term='Simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='FlightGear'/><category scheme='http://www.blogger.com/atom/ns#' term='Planes'/><title type='text'>Settings for "FlightGear in a testing 2x3 display wall"</title><content type='html'>Let's explain here what I did in order to get my testing 2x3 display wall working (as seen in &lt;a href="http://angel-de-vicente.blogspot.com/2010/04/flightgear-in-testing-2x3-display-wall_30.html"&gt;FlightGear in a testing 2x3 display wall&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;I've got 3 PC's in typical cluster configuration (one of them acting as a head node with two ethernet cards: one to the outside world and the other one to the internal network, via a Gigabit switch; the other two PC's are just connected to the internal network), although this should not matter for the FlightGear configuration. All 3 PC's are running Ubuntu Karmic (9.10). For some reason, the sound in FlightGear was not behaving properly, so in my home directory I had to create the file ".alsoftrc" as follows (&lt;a href="http://www.flightgear.org/forums/viewtopic.php?f=2&amp;amp;t=6291"&gt;http://www.flightgear.org/forums/viewtopic.php?f=2&amp;amp;t=6291&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;angelv@vaiven:~$ cat .alsoftrc&lt;br /&gt;drivers = oss&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Each PC controls two monitors (a column in the picture  in &lt;a href="http://angel-de-vicente.blogspot.com/2010/04/flightgear-in-testing-2x3-display-wall_30.html"&gt;FlightGear in a testing 2x3 display wall&lt;/a&gt;). So first I had to deal with using both monitors. I use Nvidia drivers, and I'm using Twinview, but this has the problem that in some window managers, when you maximize a window, it will only expand as to occupy one of the monitors, so I changed to TWM, a very basic window manager, but when you run FlightGear in fullscreen mode, it will occupy all the available space (both monitors). With this, it is now just a matter of creating an appropriate XML file which will describe the views that I want in each of the monitors. For the central column I want the cockpit view and the helicopter view. For this I got my configuration file as:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;angelv@vaiven:~$ cat fgfs-config&lt;br /&gt;&amp;lt;PropertyList&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;sim&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;rendering&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;camera-group&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;wide&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;host-name type="string"&amp;gt;&amp;lt;/host-name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;display&amp;gt;0&amp;lt;/display&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;screen&amp;gt;0&amp;lt;/screen&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;height&amp;gt;2048&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;decoration type = "bool"&amp;gt;false&amp;lt;/decoration&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;camera&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;wide&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;viewport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;x&amp;gt;0&amp;lt;/x&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;y&amp;gt;0&amp;lt;/y&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;height&amp;gt;1024&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/viewport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;heading-deg type = "double"&amp;gt;0&amp;lt;/heading-deg&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;frustum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;top&amp;gt;0.133&amp;lt;/top&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bottom&amp;gt;-0.133&amp;lt;/bottom&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;left&amp;gt;-.1668&amp;lt;/left&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;right&amp;gt;.1668&amp;lt;/right&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;near&amp;gt;0.25&amp;lt;/near&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;far&amp;gt;120000.0&amp;lt;/far&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/frustum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/camera&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;camera&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name type="string"&amp;gt;wide&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;viewport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;x&amp;gt;0&amp;lt;/x&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;y&amp;gt;1024&amp;lt;/y&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;width&amp;gt;1280&amp;lt;/width&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;height&amp;gt;1024&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/viewport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;heading-deg type = "double"&amp;gt;0&amp;lt;/heading-deg&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;z&amp;gt;20&amp;lt;/z&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;frustum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;top&amp;gt;0.133&amp;lt;/top&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bottom&amp;gt;-0.133&amp;lt;/bottom&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;left&amp;gt;-.1668&amp;lt;/left&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;right&amp;gt;.1668&amp;lt;/right&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;near&amp;gt;0.4&amp;lt;/near&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;far&amp;gt;120000.0&amp;lt;/far&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/frustum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/camera&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;gui&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name type="string"&amp;gt;wide&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/window&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/gui&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/camera-group&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/rendering&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/sim&amp;gt;&lt;br /&gt;&amp;lt;/PropertyList&amp;gt;&lt;br /&gt;angelv@vaiven:~$&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For the right and the left columns I want basically the same view (though viewed from an angle as we will see later), but I also wanted to point the camera in the upper row a little bit lower (which can be useful to appreciate landings), so I created another XML file, basically the same as above, but displacing the camera a little bit:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;angelv@vaiven:~$ diff -C 5 fgfs-config fgfs-config.sides&lt;br /&gt;*** fgfs-config&amp;nbsp;&amp;nbsp;&amp;nbsp; 2010-04-29 14:48:43.112948642 +0100&lt;br /&gt;--- fgfs-config.sides &amp;nbsp;&amp;nbsp; 2010-04-29 15:16:40.880449639 +0100&lt;br /&gt;***************&lt;br /&gt;*** 44,53 ****&lt;br /&gt;--- 44,54 ----&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;height&amp;gt;1024&amp;lt;/height&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/viewport&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;heading-deg type = "double"&amp;gt;0&amp;lt;/heading-deg&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;z&amp;gt;20&amp;lt;/z&amp;gt;&lt;br /&gt;+ &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;y&amp;gt;-3&amp;lt;/y&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/view&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;frustum&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;top&amp;gt;0.133&amp;lt;/top&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;bottom&amp;gt;-0.133&amp;lt;/bottom&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;left&amp;gt;-.1668&amp;lt;/left&amp;gt;&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Once this is in place, I checked the &lt;a href="http://www.flightgear.org/Docs/getstart/getstartch5.html#x10-1030005.5"&gt;FlightGear documentation&lt;/a&gt; and &lt;a href="http://www.inkdrop.net/dave/multimon.pdf"&gt;this document&lt;/a&gt; to make a multiple computer setting. At the end, it all came to creating this script:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;angelv@vaiven:~$ cat fgfs-wall.sh&lt;br /&gt;#!/bin/sh&lt;br /&gt;&lt;br /&gt;killall -9 fgfs&lt;br /&gt;ssh dwall-0 killall -9 fgfs&lt;br /&gt;ssh dwall-1 killall -9 fgfs&lt;br /&gt;&lt;br /&gt;ssh dwall-0 'fgfs --config=/home/angelv/fgfs-config --prop:/sim/menubar/visibility=false --enable-hud --enable-fullscreen --timeofday=noon --native-fdm=socket,out,60,vaiven,5500,udp --native-fdm=socket,out,60,dwall-1,5501,udp --native-ctrls=socket,out,60,vaiven,5600,udp --native-ctrls=socket,out,60,dwall-1,5601,udp --prop:/sim/view[0]/config/heading-offset-deg=-10&amp;amp;'&amp;nbsp; &amp;amp;&lt;br /&gt;&lt;br /&gt;ssh dwall-1 fgfs --config=/home/angelv/fgfs-config.sides --prop:/sim/menubar/visibility=false --enable-hud --enable-fullscreen --timeofday=noon --fdm=null --native-fdm=socket,in,60,,5501,udp --native-ctrls=socket,in,60,,5601,udp --prop:/sim/view[0]/config/heading-offset-deg=70&amp;amp;&lt;br /&gt;&lt;br /&gt;fgfs --config=/home/angelv/fgfs-config.sides --prop:/sim/menubar/visibility=false --enable-hud --enable-fullscreen --timeofday=noon --fdm=null --native-fdm=socket,in,60,,5500,udp --native-ctrls=socket,in,60,,5600,udp --prop:/sim/view[0]/config/heading-offset-deg=-80 &amp;amp;&lt;br /&gt;&lt;br /&gt;angelv@vaiven:~$&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I run this in "vaiven" (which is my cluster head node, and controlling the right column of monitors). dwall-0 is the centre column, and where I run the "controller" FlightGear. I'm sure this can be done much better, but this was just a quick hack to get it working in my 2x3 display wall. Any comments on how to improve this configuration are wellcome.&lt;br /&gt;&lt;br /&gt;By the way, my keyboard and mouse are connected (for "historical" reasons) to vaiven, the computer in the right column of monitors, but I want to control FlightGear from the monitor in the centre column of the display wall. This is very easily done by using &lt;a href="http://synergy2.sourceforge.net/"&gt;Synergy&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6471254429942381683?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6471254429942381683/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6471254429942381683' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6471254429942381683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6471254429942381683'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/05/settings-for-flightgear-in-testing-2x3.html' title='Settings for &quot;FlightGear in a testing 2x3 display wall&quot;'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7866089075593737213</id><published>2010-04-30T10:19:00.001Z</published><updated>2010-04-30T10:21:14.807Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><category scheme='http://www.blogger.com/atom/ns#' term='Simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='FlightGear'/><category scheme='http://www.blogger.com/atom/ns#' term='Planes'/><title type='text'>FlightGear in a testing 2x3 display wall.</title><content type='html'>FlightGear's support for multiple computers and multiple cameras is impressive. As a test, I managed to run FlightGear in a 2x3 display wall. One of the rows shows the view from the cockpit, while the other row shows views of the plane from outside at different angles. This was pretty easy to set up, although I didn't bother to align the monitors or the cameras very carefully. This is running in 3 PCs. Each PC controls two monitors (one column) with NVidia drivers and Twinview. Hopefully I will post the details next week...&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_hm_BgzIyQw0/S9qrVJl6GfI/AAAAAAAAB1M/CLoJXz2O0P4/S1600-R/DSCF1029.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="300" src="http://3.bp.blogspot.com/_hm_BgzIyQw0/S9qrVJl6GfI/AAAAAAAAB1M/CLoJXz2O0P4/S1600-R/DSCF1029.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7866089075593737213?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7866089075593737213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7866089075593737213' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7866089075593737213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7866089075593737213'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/flightgear-in-testing-2x3-display-wall_30.html' title='FlightGear in a testing 2x3 display wall.'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_hm_BgzIyQw0/S9qrVJl6GfI/AAAAAAAAB1M/CLoJXz2O0P4/s72-Rc/DSCF1029.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-6136867966416724423</id><published>2010-04-25T13:44:00.000Z</published><updated>2010-04-25T13:44:45.409Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><category scheme='http://www.blogger.com/atom/ns#' term='Chromium'/><title type='text'>2x2 Demo Tiled Display Wall</title><content type='html'>I wrote in a &lt;a href="http://angel-de-vicente.blogspot.com/2010/04/hack-to-get-chromium-working-with-rocks.html"&gt;previous post&lt;/a&gt; about my experience with the Viz roll and Rocks Cluster in order to get a tiled display wall. Since that looked like quite a lot of work, I decided to start afresh, and build a tiled display wall from "scratch" (i.e. without the help of the Viz roll), so that I could better control all the process. During this week I hope to do a write-up of what I did, but for the moment I recorded a mini-demo of the wall, which can be seen&amp;nbsp;&lt;a href="http://vimeo.com/11177704"&gt;at Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-6136867966416724423?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/6136867966416724423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=6136867966416724423' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6136867966416724423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/6136867966416724423'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/2x2-demo-tiled-display-wall.html' title='2x2 Demo Tiled Display Wall'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-407895147928103455</id><published>2010-04-12T12:12:00.001Z</published><updated>2010-04-12T12:25:46.533Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Condor'/><title type='text'>Adding Virtual Linux boxes (running in a Windows host) to a Condor Pool</title><content type='html'>As the manager of a &lt;a href="http://www.cs.wisc.edu/condor/"&gt;Condor&lt;/a&gt; pool, I've decided to increase the number of CPUs available for Condor. Until now Condor at our site run only in Linux machines, but there are also quite a lot of Windows boxes around which can be useful. But our users develop code in Linux, so my goal was to provide more Linux machines (though these would be Virtual Machines running inside the Windows host) to the final users.&lt;br /&gt;&lt;br /&gt;Condor provides a Virtual Machine Universe. This way we could run a linux virtual machine inside a Windows host, but the support in Windows is limited to VMWare. I'm not sure if we could use the VMWare Player to avoid costs, but for the moment I have tried a different route: POVB.&lt;br /&gt;&lt;br /&gt;POVB stands for &lt;a href="http://sourceforge.net/apps/trac/poolsofvirtualb/"&gt;Pools of Virtual Boxes&lt;/a&gt; and the project "is focused on creating Linux-based &lt;a class="ext-link" href="http://www.virtualbox.org/"&gt;&lt;span class="icon"&gt;VirtualBox&lt;/span&gt;&lt;/a&gt; virtual machines to deploy &lt;a class="ext-link" href="http://www.cs.wisc.edu/condor"&gt;&lt;span class="icon"&gt;Condor&lt;/span&gt;&lt;/a&gt; pools in an Windows environment".&lt;br /&gt;&lt;br /&gt;The code can be downloaded at&amp;nbsp; &lt;a href="http://sourceforge.net/projects/poolsofvirtualb/"&gt;SourceForge&lt;/a&gt; and the installation in a single machine is very easy. I'm now running version 1.4.3 in a Windows XP (service pack 3) PC (AMD Athlon 64 X2 Dual Core Processor 6000+ 3.01 Ghz, with 3.25 GB of RAM) and these notes reflect this version. In order to install POVB in a single machine you just need to run the script INSALL.BAT inside the povb-1.4.3 folder. This will install VirtualBox, a CentOS virtual machine, and the Windows services to get everything running. The script takes some time, since it is downloading quite a lot of stuff from the Internet, so patience will help. When all is done, you will see a &lt;i&gt;povb &lt;/i&gt;directory in C:\&lt;br /&gt;&lt;br /&gt;Before rebooting the computer, you need to change some basic settings in the file C:\povb\condor_status\personal_config.txt (I personalized &lt;i&gt;DOMAIN, CM_FULLNAME, CM_SHORTNAME &lt;/i&gt;and&lt;i&gt; CM_IPADDRESS&lt;/i&gt;, and didn't touch the rest.&lt;br /&gt;&lt;br /&gt;Now, after rebooting the machine, all necessary stuff will be started automatically. By default you get a 32 bits machine running CentOS, although you can create your own VM and modify it to your heart's content (as we will see later).&lt;br /&gt;&lt;br /&gt;To verify that everything is working correctly, you can first check in the Windows Host (with the Windows Task Manager) that the process VBoxHeadless.exe is running (with a previous version of POVB I got stuck here due to a problem with detecting correctly the number of CPUs in my PC). If this is not the case, you can start VirtualBox manually and try to start the &lt;i&gt;povb&lt;/i&gt; VM to figure out possible errors.&lt;br /&gt;&lt;br /&gt;Assuming that VBoxHeadless.exe is running in the Windows PC, then you should check that the VM got registered with the Condor pool. The name of the machine is &lt;i&gt;worker&lt;/i&gt; with the MAC address included. For instance, in my newly included VM, I get:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;angelv@vaso:/etc/condor$ condor_status | grep -i worker&lt;br /&gt;slot1@worker_EEFF0 LINUX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEL&amp;nbsp; Unclaimed Idle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.000&amp;nbsp;&amp;nbsp; 821&amp;nbsp; 0+00:00:04&lt;br /&gt;slot2@worker_EEFF0 LINUX&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INTEL&amp;nbsp; Unclaimed Idle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.800&amp;nbsp;&amp;nbsp; 821&amp;nbsp; 0+00:00:05&lt;br /&gt;angelv@vaso:/etc/condor$ &lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;The name of the actual machine is:&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;angelv@vaso:/etc/condor$ condor_status -l | grep -i worker | grep -i machine&lt;br /&gt;Machine = "worker_EEFF090909E6.ll.iac.es"&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;So, the last step is just to verify that the VM can actually run jobs. Once you have found the name of the machine, you can check its attributes. In particular we are interested in &lt;span style="font-size: small;"&gt;&lt;i&gt;HOSTINFO_HostOsLoad &lt;/i&gt;and&lt;i&gt; HOSTINFO_POVBLoad&lt;/i&gt;, since these were problematic in my case. You can find whether these show up with the following command:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;angelv@vaso:/etc/condor$ condor_status -l worker_EEFF090909E6.ll.iac.es | grep -i hostinfo&lt;br /&gt;CpuBusy = ((HOSTINFO_HostOsLoad - HOSTINFO_POVBLoad) &amp;gt;= 0.500000)&lt;br /&gt;Start = ((HOSTINFO_HostOsKeyboardIdle &amp;gt; 15 * 60) &amp;amp;&amp;amp; (((HOSTINFO_HostOsLoad - HOSTINFO_POVBLoad) &amp;lt;= 0.500000) || (State != "Unclaimed" &amp;amp;&amp;amp; State != "Owner")))&lt;br /&gt;HOSTINFO_HostOsLoad = 0.010000&lt;br /&gt;HOSTINFO_POVBLoad = 0.010000&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you cannot see them, you might have found the same problem I did, which it looks like it is related to regional settings. If you open the file C:\povb\condor_status\machine_stats.txt and HostOsLoad dn POVBLoad are written with a comma (e.g. 0,04), then you have the same problem I did. The developers of POVB are aware of this problem, but until they have a chance of fixing it, the following workaround did the trick.&lt;br /&gt;&lt;br /&gt;In Windows, stop the POVB service, open VirtualBox and change the virtual hard disk &lt;i&gt;povb_primary_hd.vdi&lt;/i&gt; from "Immutable"&lt;b&gt; &lt;/b&gt;to&lt;b&gt; "&lt;/b&gt;Normal" and start the povb VM manually (the root password is by default &lt;i&gt;YouReallyNeedToChangeMe! &lt;/i&gt;). Once it starts you can change to the condor user (su - condor), where you will see all the Condor stuff.&amp;nbsp; In its home directory &lt;i&gt;/home/condor/&lt;/i&gt; you can find the Condor software together with the configuration files, logs etc. The main configuration file is located in &lt;i&gt;/home/condor/etc/condor_config&lt;/i&gt;, with secondary config files in &lt;i&gt;/home/condor/condor_config_local&lt;/i&gt;. Logs and the execute and spool directories are located in &lt;i&gt;/home/condor/local.localhost&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;Of particular interest here is the file &lt;i&gt;read_stats.sh&lt;/i&gt; If you run it and get HostOsLoad and POBVLoad with commas, then you can easily solve it by renaming this file to &lt;i&gt;read_stats_orig.sh&lt;/i&gt; and creating a new &lt;i&gt;read_stats.sh&lt;/i&gt; file:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;$ cat read_stats.sh&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;#!/bin/bash&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;i&gt;/home/condor/read_stats_orig.sh | sed 's/,/./' -&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Once this is in place &lt;span style="font-size: small;"&gt;&lt;i&gt;HOSTINFO_HostOsLoad&lt;/i&gt; and&lt;i&gt; HOSTINFO_POVBLoad &lt;/i&gt;will start appearing in the VM information you get with condor_status, and then you will be able to use this VMs as regular Linux PCs in your Condor pool.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;If you had to change the &lt;i&gt;read_stats.sh &lt;/i&gt;file, then you can just substitute the &lt;i&gt;povb_primary_hd.vdi &lt;/i&gt;file that comes with the POVB distribution with the one in C:\povb (just in case, copy it when VirtualBox is not running. You can stop the POVB service via the Control Panel).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;Another issue that I had for our setting is that I only want to run the Linux VMs after hours, because even if the VM is not being used by Condor, VirtualBox can consume quite a lot of RAM and I don't want that our users notice it. For this I just created two scripts in C:\povb, one with &lt;i&gt;net start povb_service&lt;/i&gt; and the other one with &lt;i&gt;net stop povb_service, &lt;/i&gt;and I scheduled them according to our needs, so that the POVB service is not running during working hours.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;With this in place, I have started spreading Linux VMs in a few Windows test PCs. If all goes well, then next step will be to create my own VMs. For this, there is a guide in: &lt;a href="http://sourceforge.net/apps/trac/poolsofvirtualb/wiki/Bootstrapping"&gt;http://sourceforge.net/apps/trac/poolsofvirtualb/wiki/Bootstrapping&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-407895147928103455?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/407895147928103455/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=407895147928103455' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/407895147928103455'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/407895147928103455'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/adding-virtual-linux-boxes-running-in.html' title='Adding Virtual Linux boxes (running in a Windows host) to a Condor Pool'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8666380485910910034</id><published>2010-04-12T08:54:00.002Z</published><updated>2010-04-12T09:00:36.093Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='skype'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Skype in Ubuntu Karmic Koala (9.10)</title><content type='html'>It was sometime since I tried to install Skype in Ubuntu. At my workstation I had no problems at all, by following the instructions in the following page http://ubuntuguide.org/wiki/Ubuntu:Karmic#Skype&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;sudo apt-get install ia32-libs lib32asound2 libqt4-core libqt4-gui&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;* Then download and install the current Skype .deb package from the Skype website: &lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;wget -O skype_ubuntu-current_amd64.deb http://www.skype.com/go/getskype-linux-beta-ubuntu-64&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-size: x-small;"&gt;sudo dpkg -i skype-ubuntu-current_amd64.deb&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I will have to try now in the laptop and the netbook to see if they give me any trouble...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8666380485910910034?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8666380485910910034/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8666380485910910034' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8666380485910910034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8666380485910910034'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/skype-in-ubuntu-karmic-koala-910.html' title='Skype in Ubuntu Karmic Koala (9.10)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3544909775366238355</id><published>2010-04-07T12:49:00.002Z</published><updated>2010-04-07T13:04:25.285Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rocks'/><category scheme='http://www.blogger.com/atom/ns#' term='Dsiplay-wall'/><title type='text'>Hack to get Chromium working with Rocks 5.3</title><content type='html'>&lt;a href="http://www.rocksclusters.org/wordpress/"&gt;Rocks&lt;/a&gt; is "an open-source Linux cluster distribution that enables end users to easily build computational clusters, grid endpoints and visualization tiled-display walls". &lt;br /&gt;&lt;br /&gt;Recently I've been using it to get a tiled-display wall, but found that it was not working as expected. Some software that it is supposed to come with SAGE is not there, and Chromium is not working except for the simplest of applications (I only managed to get it working with glxgears). A fix to the &lt;a href="http://www.rocksclusters.org/roll-documentation/viz/5.3/"&gt;Viz Roll&lt;/a&gt; is &lt;a href="http://marc.info/?l=npaci-rocks-discussion&amp;amp;m=126835330319659&amp;amp;w=2"&gt;coming&lt;/a&gt;, but in the meantime I figured how to get it working by installing my own version of Chromium. Since I've been asked to share this, I put these quick notes here (please let me know if something is not working or something is missing, so I can improve them) in case it can be of interest to anyone, but remember that &lt;b&gt;this is just a quick hack&lt;/b&gt;. Hopefully a patched version of the Viz roll will be available soon.&lt;br /&gt;&lt;br /&gt;For my setting I have four monitors and two nodes. &lt;br /&gt;I created the file layout.xml:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;wall&amp;gt;&lt;br /&gt;               &amp;lt;col&amp;gt;&lt;br /&gt;                       &amp;lt;display&amp;gt;tile-0-0:0.0&amp;lt;/display&amp;gt;&lt;br /&gt;               &amp;lt;/col&amp;gt;&lt;br /&gt;               &amp;lt;col&amp;gt;&lt;br /&gt;                       &amp;lt;display&amp;gt;tile-0-0:0.1&amp;lt;/display&amp;gt;&lt;br /&gt;               &amp;lt;/col&amp;gt;&lt;br /&gt;               &amp;lt;col&amp;gt;&lt;br /&gt;                       &amp;lt;display&amp;gt;tile-0-1:0.0&amp;lt;/display&amp;gt;&lt;br /&gt;               &amp;lt;/col&amp;gt;&lt;br /&gt;               &amp;lt;col&amp;gt;&lt;br /&gt;                       &amp;lt;display&amp;gt;tile-0-1:0.1&amp;lt;/display&amp;gt;&lt;br /&gt;               &amp;lt;/col&amp;gt;&lt;br /&gt;&amp;lt;/wall&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With this, in simple mode I got glxgears working OK, but when I tried to run anything else (I tried with Stellarium), I get messages like:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;CR Warning(tile-0-0:18331): __tcpip_read_exact() error: Bad address&lt;br /&gt;CR Warning(tile-0-0:18331): Bad juju: 10485760 197100 on socket 0xc&lt;br /&gt;CR Warning(tile-0-0:18331): CRServer: Last client disconnected - exiting.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Hence this hack... The Viz roll is supposed to work in &lt;i&gt;mode=simple&lt;/i&gt; for Chromium and &lt;i&gt;mode=meta&lt;/i&gt; for SAGE. I didn't want to have to change the mode, so I did the following to have Chromium working in &lt;i&gt;mode=meta&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[root@vaiven ~]# rocks remove tile&lt;br /&gt;[root@vaiven ~]# rocks add tile layout layout.xml&lt;br /&gt;[root@vaiven ~]# rocks sync tile mode=meta&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I downloaded Google Earth (32 bits application), installed the library dependencies and made sure that it was working OK when Chromium was disabled. The it was a matter of downloading Chromium and compiling both the 32 bits and the 64 bits versions (I put copies in my home directory, at /home/angelv/cr-1.9 and /home/angelv/cr-1.9-32).&lt;br /&gt;&lt;br /&gt;Then I created two scripts, to enable and disable my Chromium:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[angelv@vaiven ~]$ cat enable_cr&lt;br /&gt;#!/bin/bash&lt;br /&gt;cd /home/angelv/cr-1.9/lib/Linux&lt;br /&gt;ln -s libcrfaker.so libGL.so.1&lt;br /&gt;ln -s libcrfaker.so libGL.so&lt;br /&gt;&lt;br /&gt;cd /home/angelv/cr-1.9-32/lib/Linux&lt;br /&gt;ln -s libcrfaker.so libGL.so.1&lt;br /&gt;ln -s libcrfaker.so libGL.so&lt;br /&gt;&lt;br /&gt;[angelv@vaiven ~]$ cat disable_cr&lt;br /&gt;#!/bin/bash&lt;br /&gt;cd /home/angelv/cr-1.9/lib/Linux&lt;br /&gt;rm libGL.so.1&lt;br /&gt;rm libGL.so&lt;br /&gt;&lt;br /&gt;cd /home/angelv/cr-1.9-32/lib/Linux&lt;br /&gt;rm libGL.so.1&lt;br /&gt;rm libGL.so&lt;br /&gt;[angelv@vaiven ~]$&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;and added PATH and LD_LIBRARY_PATH stuff to my .bashrc:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;export PATH="/home/angelv/cr-1.9/bin/Linux:$PATH"&lt;br /&gt;export LD_LIBRARY_PATH="/home/angelv/cr-1.9/lib/Linux:/home/angelv/cr-1.9-32/lib/Linux:$LD_LIBRARY_PATH"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;I also had to change the .crconfigs file in my home directory, so that it will take my own Chromium configuration file:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[angelv@vaiven ~]$ cat .crconfigs&lt;br /&gt;old-rocks* /opt/rocks/bin/rocks start chromium %p %m&lt;br /&gt;* /home/angelv/first_angel.conf %p&lt;br /&gt;[angelv@vaiven ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And I created the file /home/angelv/first_angel.conf as shown below. Note that this file has a hard-coded configuration for my two compute nodes in meta mode, and that the node.AutoStart stuff has been changed, since for some reason launching the crserver via ssh gave the errors mentioned above. In its place I created a basic start-crserver.sh which is also included below.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;[angelv@vaiven ~]$ cat first_angel.conf&lt;br /&gt;import sys&lt;br /&gt;sys.path.append('/home/angelv/cr-1.9/mothership/server')&lt;br /&gt;from mothership import *&lt;br /&gt;&lt;br /&gt;TILE_WIDTH = 2560&lt;br /&gt;TILE_HEIGHT = 1024&lt;br /&gt;&lt;br /&gt;appnode = CRApplicationNode('vaiven.ll.iac.es')&lt;br /&gt;tilesortspu = SPU('tilesort')&lt;br /&gt;appnode.AddSPU(tilesortspu)&lt;br /&gt;appnode.Conf( 'show_cursor', 1 )&lt;br /&gt;cr = CR()&lt;br /&gt;cr.AddNode(appnode)&lt;br /&gt;&lt;br /&gt;renderspu = SPU('render')&lt;br /&gt;renderspu.Conf('fullscreen', 1)&lt;br /&gt;#renderspu.Conf('window_geometry', [0, 0, 512, 512])&lt;br /&gt;renderspu.Conf( 'show_cursor', 1 )&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;node = CRNetworkNode('tile-0-0.local')&lt;br /&gt;node.AddTile(0, 0, TILE_WIDTH, TILE_HEIGHT)&lt;br /&gt;node.AddSPU(renderspu)&lt;br /&gt;#node.AutoStart( ["/usr/bin/ssh","tile-0-0", "DISPLAY=:0.0 /bin/sh -c&lt;br /&gt;'/home/angelv/cr-1.9/bin/Linux/crserver -mothership vaiven:10000 -port 7000'"] )&lt;br /&gt;node.AutoStart( ["/usr/bin/ssh",'-x',"tile-0-0", "/home/angelv/start-crserver.sh&lt;br /&gt;0.0 crserver vaiven 10000 7000"] )&lt;br /&gt;&lt;br /&gt;tilesortspu.AddServer(node, protocol='tcpip', port=7000)&lt;br /&gt;&lt;br /&gt;cr.AddNode(node)&lt;br /&gt;&lt;br /&gt;renderspu = SPU('render')&lt;br /&gt;renderspu.Conf('fullscreen', 1)&lt;br /&gt;#renderspu.Conf('window_geometry', [0, 0, 512, 512])&lt;br /&gt;renderspu.Conf( 'show_cursor', 1 )&lt;br /&gt;&lt;br /&gt;node = CRNetworkNode('tile-0-1.local')&lt;br /&gt;node.AddTile(2560, 0, TILE_WIDTH, TILE_HEIGHT)&lt;br /&gt;node.AddSPU(renderspu)&lt;br /&gt;#node.AutoStart( ["/usr/bin/ssh","tile-0-1", "DISPLAY=:0.0 /bin/sh -c&lt;br /&gt;'/home/angelv/cr-1.9/bin/Linux/crserver -mothership vaiven:10000 -port 7000'"] )&lt;br /&gt;node.AutoStart( ["/usr/bin/ssh",'-x',"tile-0-1", "/home/angelv/start-crserver.sh&lt;br /&gt;0.0 crserver vaiven 10000 7000"] )&lt;br /&gt;#node.AutoStart( ["/usr/bin/ssh",'-x',"tile-0-1", "start-crserver.sh 0.0&lt;br /&gt;/home/angelv/cr-1.9/bin/Linux/crserver vaiven 10000"] )&lt;br /&gt;&lt;br /&gt;tilesortspu.AddServer(node, protocol='tcpip', port=7000)&lt;br /&gt;&lt;br /&gt;cr.AddNode(node)&lt;br /&gt;demo = sys.argv[1]&lt;br /&gt;&lt;br /&gt;appnode.SetApplication(demo)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;cr.Go()&lt;br /&gt;[angelv@vaiven ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;[angelv@vaiven ~]$ cat start-crserver.sh&lt;br /&gt;#!/bin/bash&lt;br /&gt;export DISPLAY=:$1&lt;br /&gt;$2 -mothership $3:$4 -port $5&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;[angelv@vaiven ~]$&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;With these modifications, after running &lt;i&gt;enable_cr&lt;/i&gt;, Google Earth (32 bits), atlantis (64 bits) and Stellarium (64 bits) were fine.&lt;br /&gt;&lt;br /&gt;These were quick notes that I took while I was doing the modifications, so most probably something is missing. If you find something missing, please let me know. For the time being I'm trying another software stack for the display wall, so I'm not planning on improving this, but I might come back to the Viz Roll in the near future...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3544909775366238355?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3544909775366238355/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3544909775366238355' title='16 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3544909775366238355'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3544909775366238355'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/hack-to-get-chromium-working-with-rocks.html' title='Hack to get Chromium working with Rocks 5.3'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3813465931207571508</id><published>2010-04-07T10:04:00.002Z</published><updated>2010-04-07T13:05:26.109Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Swimming'/><title type='text'>I've got a plan (a swim plan)</title><content type='html'>I love swimming, but motivation dwindles sometimes. To keep going, there is nothing like a good coach, but at my age and my swimming level there is no chance of that. Alternatively one can get personalized swim plans that make the lap routine much more enjoyable. I've been using &lt;a href="http://www.swimplan.com"&gt;SiwmPlan&lt;/a&gt; for a couple of months now, and I would really recommend it. You keep good practice by doing warm-up and cool down exercises, and the plans provide a big variety of different exercises, which make the swimming time more productive and enjoyable.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3813465931207571508?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3813465931207571508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3813465931207571508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3813465931207571508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3813465931207571508'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/ive-got-plan-swim-plan.html' title='I&apos;ve got a plan (a swim plan)'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4426221018047372146</id><published>2010-04-07T09:56:00.001Z</published><updated>2010-04-07T13:04:57.324Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Getting ready to get back to formal classical guitar education</title><content type='html'>As a way to impose some routine into my classical guitar learning, I have decided to go back to formal music education, and I'm getting ready for the entrance exams at our &lt;a href="http://www.cpmtenerife.com/"&gt;local Conservatory&lt;/a&gt;, which will take place sometime in June. I'm hoping to get into 3rd year (if it was only about playing the guitar I think I could perhaps try getting into 4th year, but this would involve a music harmony exam as well, and I'm not ready for this just yet...). Now, where do I find the time to practice????&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4426221018047372146?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4426221018047372146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4426221018047372146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4426221018047372146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4426221018047372146'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/04/getting-ready-to-get-back-to-formal.html' title='Getting ready to get back to formal classical guitar education'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2946020740397219714</id><published>2010-02-04T15:45:00.002Z</published><updated>2010-05-17T11:14:35.096Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='intranet'/><category scheme='http://www.blogger.com/atom/ns#' term='ssh'/><category scheme='http://www.blogger.com/atom/ns#' term='privoxy'/><title type='text'>Accessing your Intranet via Privoxy</title><content type='html'>At our workplace we have several webpages that are filtered by IP. If you don't want to use VPNs, then you can access them easily via a &lt;i&gt;ssh tunnel&lt;/i&gt; and privoxy. &lt;br /&gt;&lt;br /&gt;This is actually quite easy. Just install &lt;i&gt;privoxy&lt;/i&gt; in the machine inside the local network (with Ubuntu this is already pre-packaged for you, so just run Synaptic Package Manager and install it). It is normally configured to run automatically after every reboot, and that is just fine. It is also configured to listen in the 8118 port.&lt;br /&gt;&lt;br /&gt;So now, if we are outside our local network, we can create a ssh tunnel. We can do this with a config file like this:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;$ cat .ssh/config &lt;br /&gt;Host work&lt;br /&gt;HostName vaso.myinstitute.org&lt;br /&gt;User myuser&lt;br /&gt;&lt;br /&gt;#Privoxy&lt;br /&gt;LocalForward 8118 localhost:8118&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;With this in place, when we do "ssh work" from outside our network, we will connect to &lt;i&gt;vaso.myinstitute.org&lt;/i&gt; and at the same time we will create a tunnel in which all requests to local port 8118 will in fact be redirected to port 8118 in vaso.myinstitute.org (where privoxy is running).&lt;br /&gt;&lt;br /&gt;Now in the PC outside the local network, just get Firefox with FoxyProxy (some details to configure this are in previous post:&lt;a href="http://angel-de-vicente.blogspot.com/2010/02/bbc-iplayer-overseas.html"&gt;BBC iPlayer Overseas&lt;/a&gt;) and create a proxy configuration for Privoxy, where the IP address is 127.0.0.1 and the port 8118. When you activate this configuration (if you have the ssh tunnel in place), all your traffic will be as if inside the local network.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2946020740397219714?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2946020740397219714/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2946020740397219714' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2946020740397219714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2946020740397219714'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/02/accessing-your-intranet-via-privoxy.html' title='Accessing your Intranet via Privoxy'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7434481635871076660</id><published>2010-02-04T15:39:00.001Z</published><updated>2010-04-12T08:55:51.765Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><category scheme='http://www.blogger.com/atom/ns#' term='tor'/><category scheme='http://www.blogger.com/atom/ns#' term='bbc'/><title type='text'>BBC iPlayer Overseas</title><content type='html'>I'm quite fond of the BBC, but I'm currently located outside the UK, which means that by default I cannot use their BBC iPlayer. The following steps solve this. I assume you have Unbuntu Karmic (64 bits), although for other distributions the steps should be similar.&lt;br /&gt;&lt;br /&gt;* As a browser we will be using Firefox, since it has a very nice Proxy manager (FoxyProxy), which makes things easier.&lt;br /&gt;&lt;br /&gt;* First, we follow the option two in http://www.torproject.org/docs/debian.html.en to add the Tor repositories. Tor is an anonymizer, which will help to pretend that we are located in the UK.&lt;br /&gt;&lt;br /&gt;* Then, via the Synaptic Package Manager we should install FoxyProxy, vidalia and tor.&lt;br /&gt;&lt;br /&gt;* We want to have control as to when Tor will be running, so we run the following to avoid it starting automatically after each reboot&lt;br /&gt;&lt;br /&gt;&lt;i&gt;sudo update-rc.d tor disable&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;* When we want to start Tor, we use Vidalia, which will give us an easy way to start/stop tor.&lt;br /&gt;&lt;br /&gt;* Once Tor is started (Vidalia will tell you "Connected to the Tor network!"), it is time to try if it's working fine with Firefox/FoxyProxy&lt;br /&gt;&lt;br /&gt;* In the FoxyProxy options (clicking in the status bar of Firefox), go to File-&gt;Tor Wizard, and configure a new Tor proxy (without Privoxy, default port). In the URL Patterns tab, you can write URL patterns that you need to anonymize, for the moment make sure it has *torcheck*&lt;br /&gt;&lt;br /&gt;* Then, from the FoxyProxy options in the status bar (click with right button), select the one that says "Use proxies based on their pre-defined patterns...", and visit: http://torcheck.xenobite.eu/index.php (if all went well you should see the message: Your IP is identified to be a Tor-EXIT.)&lt;br /&gt;&lt;br /&gt;* Now, we want a bit more control, and we want to make sure that the exit node in Tor is based in the UK. For this, we should edit the file .vidalia/torrc in your home directory and add:&lt;br /&gt;&lt;br /&gt;&lt;i&gt;StrictExitNodes 1&lt;br /&gt;exitnodes {GB}&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;(you can get the country codes needed in the "View the Network" option with Vidalia).&lt;br /&gt;&lt;br /&gt;* Stop/start Tor from within Vidalia. Recheck with http://torcheck.xenobite.eu/index.php and now you should get a UK IP address.&lt;br /&gt;&lt;br /&gt;* So now for the BBC... Add as patterns for the Tor FoxyProxy (perhaps not all are necessary, should recheck):&lt;br /&gt;&lt;br /&gt;&lt;i&gt;http://www.bbc.co.uk/iplayer/episode/*&lt;br /&gt;http://www.bbc.co.uk/mediaselector/4/js/download/*&lt;br /&gt;http://www.bbc.co.uk/mediaselector/4/mtis/stream*&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;* Now go to http://www.bbc.co.uk/iplayer/, and select any of the TV programmes in there. If it tells you "Currently BBC iPlayer TV programmes are available to play in the UK only" you have done something wrong. If the message is not displayed, but you don't see anything, perhaps is a Flash Issue. With my versions of Ubuntu (9.10, 64bits), Firefox (3.5.7) and Flash (Shockwave Flash 10.1 d51) this was solved by selecting "None" (no visual effects) in System-&gt;Preferences-&gt;Appearance-&gt;Visual Effects.&lt;br /&gt;&lt;br /&gt;* Now get a beer and enjoy the BBC programmes...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7434481635871076660?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7434481635871076660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7434481635871076660' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7434481635871076660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7434481635871076660'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2010/02/bbc-iplayer-overseas.html' title='BBC iPlayer Overseas'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8003547703984067718</id><published>2009-12-21T12:23:00.001Z</published><updated>2009-12-21T12:24:28.948Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><title type='text'>3D animation creation service</title><content type='html'>Through something completely unrelated I found the &lt;a href="http://www.xtranormal.com"&gt;xtranormal&lt;/a&gt; webpage, which lets you create simple 3D animations in a very easy way. In a minute you can create something really simple (for example: &lt;a href="http://www.xtranormal.com/watch/5857705/"&gt;a greetings message&lt;/a&gt;). Creating a personalized cartoon for the kids goes now into the TO DO list...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8003547703984067718?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8003547703984067718/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8003547703984067718' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8003547703984067718'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8003547703984067718'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/3d-animation-creation-service.html' title='3D animation creation service'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1593094047253999500</id><published>2009-12-19T15:30:00.003Z</published><updated>2009-12-19T15:31:54.152Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Backups'/><title type='text'>Backing up with rdiff-backup remotely</title><content type='html'>For some time I wanted to make a decent setting to create daily backups of my different computers, but somehow kept delaying it... Not any more...&lt;br /&gt;&lt;br /&gt;In the end, it is actually pretty easy to set up (though I still need to verify that doing it automatically instead of manually does not give me any trouble).&lt;br /&gt;&lt;br /&gt;I basically mount a remote directory in my local tree with sshfs&lt;br /&gt;&lt;code&gt;&lt;br /&gt;sshfs remote_machine:/net/angelv/BACKUPS /BACKUPS/NAS/ -o workaround=rename&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The -o workaround=rename is important, as previously I was having trouble doing this sort of backup through sshfs (see &lt;a href="http://wiki.rdiff-backup.org/wiki/index.php/BackupToSshfsMount"&gt;this&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Once this is in place, having daily incremental backups is as easy as putting in my cron:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;0 2 * * * rdiff-backup /home/angelv /BACKUPS/NAS/VASO.HOME.BACKUP&lt;br /&gt;0 3 * * * rdiff-backup --remove-older-than 4W /BACKUPS/NAS/VASO.HOME.BACKUP&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;See &lt;a href="http://rdiff-backup.nongnu.org/examples.html"&gt;more examples&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1593094047253999500?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1593094047253999500/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1593094047253999500' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1593094047253999500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1593094047253999500'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/backing-up-with-rdiff-backup-remotely.html' title='Backing up with rdiff-backup remotely'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-386416112114695587</id><published>2009-12-18T23:06:00.007Z</published><updated>2009-12-18T23:21:15.699Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Fortran'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><category scheme='http://www.blogger.com/atom/ns#' term='Intel'/><title type='text'>Missing libraries libstdc++5 in Ubuntu 9.10 when installing Intel Compiler</title><content type='html'>The installation script (for 64 bits) complains about libstdc++5 not being present, and it cannot be found in the default repositories. Installing the one for the previous Ubuntu version works fine. The details can be found, for example, in &lt;a href="http://agentzlerich.blogspot.com/2009/11/getting-32-bit-libstdcso5-in-karmic.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;After that, if you want to run the debugger, you also need to install the 64 bits version of libstdc++5, which can be installed automatically (all dependencies should be met) with GDebi, after downloading the package from &lt;a href="http://packages.ubuntu.com/jaunty/amd64/libstdc++5/download"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-386416112114695587?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/386416112114695587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=386416112114695587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/386416112114695587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/386416112114695587'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/missing-libraries-libstdc5-in-ubuntu.html' title='Missing libraries libstdc++5 in Ubuntu 9.10 when installing Intel Compiler'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3111502392603850231</id><published>2009-12-17T14:06:00.003Z</published><updated>2009-12-17T14:11:11.999Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pictures'/><title type='text'>Photo Mosaic  creation tips</title><content type='html'>Related to my previous post, I spent some time figuring out how to get a &lt;b&gt;&lt;i&gt;good&lt;/i&gt;&lt;/b&gt; photo mosaic. Basically I wanted to create a Mosaic of a family picture, where the "metapixels" (i.e. the small images) would be pictures of the members of the family. The resulting image (about 75cmx100cm) was to be framed and put up at our home, in a corridor with maximum viewing distance of around 5.5 metres. And basically I wanted to make sure that the family picture could be properly appreciated when viewed from a distance, but also that the "metapixels" could be seen when looking at it close-up. So, I had to follow these steps:&lt;br /&gt;&lt;br /&gt;1. Select all possible metapixel images (this is trivial but it takes some time: I wanted to make sure that all metapixels were related to the bigger images).&lt;br /&gt;&lt;br /&gt;2. I found that many of my images had spaces in their names, which the &lt;i&gt;metapixel&lt;/i&gt; software didn't like, so I substituted the spaces with underscores:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;rename -v 's/\ /\_/g' *&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;3. I don't want the metapixels to be streched (&lt;i&gt;metapixel&lt;/i&gt; will only work with one metapixels size) so I find for my set of images which sizes they have and how many I have of each size:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@palas:~/Mosaic$ for img in `ls Mosaic-Original/` ; do identify -format "%wx%h" Mosaic-Original/$img ; done &gt; sizes.txt&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;4. I find how many of them have a 3x4 ratio, and how many a 4x3 ratio. In my case, these numbers are very similar: 1089 (4x3) vs. 1051 (3x4)&lt;br /&gt;&lt;br /&gt;5. Despite the number of landscape images being a little bit larger, I decide to build the mosaic out of the portrait ones, since portrait images are usually close-ups, and will be appreciated better when very small. To copy all the 3x4 images I use:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;#!bin/bash    &lt;br /&gt;&lt;br /&gt;find Mosaic-Original/ -exec identify "{}" \; |awk '{                                                                                                                                    &lt;br /&gt;split($3,arr,"x")                                                           &lt;br /&gt;split($1,name,"/")                                                         &lt;br /&gt;if ( arr[1] &lt; arr[2] ) {                                                                                                                                                            cmd = "cp " $1 " Mosaic-Original-3x4/"name[2]    system(cmd) }                                                                                                                                                                                   }'&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;6. So now I can create the thumbnails with the correct ratio:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;angelv@palas:~/Mosaic$ metapixel-prepare -r Mosaic-Original-3x4 Mosaic-Thumbs --width=96 --height=128&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;7. And now I can prepare the final mosaic image, but with the right ratio for the thumbnails:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;metapixel --metapixel mosaico_in.jpg mosaico_out_cheat40.png --library Mosaic-Thumbs/ --scale=5 --distance=5 --width=48 --height=64 --cheat=40&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;The numbers are important... &lt;br /&gt;&lt;br /&gt;* As I mentioned, the final picture has to be 75x100. My original image was 1857x2476 pixels. When asking metapixel to scale it by 5, the resulting mosaic has 12384x9280 pixels, so for 100cm (or 39.37 inches), this image can be printed at 314 dpi (300 dpi is considered a very good quality for printing). &lt;br /&gt;&lt;br /&gt;* At the same time, each row of the mosaic will have 258 metapixels (12384/48), so each metapixel will be 3.87mm wide, which is small, but definitely viewable when you get close enough. &lt;br /&gt;&lt;br /&gt;* A 40% cheating is quite large, but my set of images was not very large, and the distribution of colours was not very good, so when no cheating was used, the resulting image was very poor in colours, so I modified the original image to make its colours brighter, and I used a 40% cheat percentage, so the resulting image can be easily viewed from a distance, and it has plenty of colours. The artifact can be appreciated when getting close to the picture, but I think this is better than having a resulting mosaic with very poor colours. &lt;br /&gt;&lt;br /&gt;The resulting image looks very nice, and I sent it yesterday to develop it (which is cheaper than I thought, just about 30 Euros).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3111502392603850231?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3111502392603850231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3111502392603850231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3111502392603850231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3111502392603850231'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/photo-mosaic-creation-tips.html' title='Photo Mosaic  creation tips'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7536652797027428849</id><published>2009-12-10T13:13:00.001Z</published><updated>2009-12-10T13:14:29.831Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pictures'/><title type='text'>Photo Mosaic Software</title><content type='html'>I needed to create a Photo Mosaic today, and I just found the &lt;a href="http://www.complang.tuwien.ac.at/schani/metapixel/"&gt;Metapixel&lt;/a&gt; software. I'm not sure how this rates quality-wise against other tools, but in a matter of minutes I had created a test Mosaic with whatever pictures I had on my hard disk following &lt;a href="http://www.fsckin.com/2007/12/09/generate-awesome-photomosaics-on-linux-with-metapixel/"&gt;this&lt;/a&gt; post. Really nice! Now we have to spend tweaking the different options to get the desired result...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7536652797027428849?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7536652797027428849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7536652797027428849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7536652797027428849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7536652797027428849'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/photo-mosaic-software.html' title='Photo Mosaic Software'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2335226123681209927</id><published>2009-12-10T10:33:00.002Z</published><updated>2009-12-10T10:38:52.083Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Trains'/><category scheme='http://www.blogger.com/atom/ns#' term='Simulators'/><title type='text'>Train simulators in Linux</title><content type='html'>My son is a train fanatic, so I decided to check train games in Linux for him. For our Ubuntu computer at home there were two packages readily available: &lt;a href="http://ri-li.sourceforge.net/"&gt;Ri-li&lt;/a&gt;, but better still &lt;a href="http://openbve.trainsimcentral.co.uk/index.html"&gt;openBVE&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Ri-li is a simple game, but for a 4-years-old perhaps still a bit difficult. &lt;br /&gt;&lt;br /&gt;openBVE is a proper train simulator (definitely too difficult for my son to control, but probably fun as a vicarious driver), and it was installed properly on Ubuntu 9.04 through the Synaptic Package Manager, but not in 9.10, so I had to install it through Wine. All is clearly explained in &lt;a href="http://www.railsimroutes.co.uk/openbve/openbve_help5.html"&gt;Rail Sim Routes&lt;/a&gt;. This &lt;a href="http://www.youtube.com/watch?v=Pmep7U6D3t4&amp;feature=fvsr"&gt;YouTube Video&lt;/a&gt; shows it off!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2335226123681209927?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2335226123681209927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2335226123681209927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2335226123681209927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2335226123681209927'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/train-simulators-in-linux.html' title='Train simulators in Linux'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8208432157506479361</id><published>2009-12-08T15:41:00.002Z</published><updated>2009-12-08T15:53:38.589Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='multimedia'/><title type='text'>Ripping a DVD with many tracks into a single AVI file</title><content type='html'>Since I'm likely to forget... Starting a few months ago, I now make a copy of every CD or DVD that I buy. This is normally a no-brainer, but today I had to copy a DVD that has many content tracks (usually the "interesting" content is in just one of the big tracks, while the "auxiliary" tracks can be discarded). I normally use dvd::rip, but for this I realized that AcidRip was a better option, since it lets me queue the ripping of all the tracks and then I can go away until they are finished (with dvd::rip I didn't find a way to do that). Once all the tracks are ripped into individual AVI files, I tried to put them all together with the aptly named &lt;i&gt;avimerge&lt;/i&gt;, but I found (and apparently this happens to other people as well) that the audio gets broken, so I did it with menconder (got the thip from &lt;a href="http://www.linuxquestions.org/questions/linux-general-1/how-to-merge-2-avi-together-424988/"&gt;here&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;mencoder -oac copy -ovc copy part1.avi part2.avi part3.avi -o WHOLE-THING.avi&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8208432157506479361?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8208432157506479361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8208432157506479361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8208432157506479361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8208432157506479361'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/ripping-dvd-with-many-tracks-into.html' title='Ripping a DVD with many tracks into a single AVI file'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2892416897731602495</id><published>2009-12-03T06:47:00.001Z</published><updated>2009-12-03T06:48:04.084Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet access'/><title type='text'>Manifiesto “En defensa de los derechos fundamentales en internet”</title><content type='html'>Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…&lt;br /&gt;&lt;br /&gt;1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.&lt;br /&gt;&lt;br /&gt;2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial – un organismo dependiente del ministerio de Cultura -, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.&lt;br /&gt;&lt;br /&gt;3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.&lt;br /&gt;&lt;br /&gt;4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.&lt;br /&gt;&lt;br /&gt;5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.&lt;br /&gt;&lt;br /&gt;6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.&lt;br /&gt;&lt;br /&gt;7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.&lt;br /&gt;&lt;br /&gt;8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.&lt;br /&gt;&lt;br /&gt;9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.&lt;br /&gt;&lt;br /&gt;10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.&lt;br /&gt;&lt;br /&gt;Este manifiesto, elaborado de forma conjunta por varios autores, es de todos y de ninguno. Si quieres sumarte a él, difúndelo por Internet.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2892416897731602495?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2892416897731602495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2892416897731602495' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2892416897731602495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2892416897731602495'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/12/manifiesto-en-defensa-de-los-derechos.html' title='Manifiesto “En defensa de los derechos fundamentales en internet”'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7319564991450936700</id><published>2009-11-25T22:43:00.001Z</published><updated>2009-11-25T22:44:04.407Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><title type='text'>Got around 4000 guitar pieces in MIDI... should be busy for a few months!</title><content type='html'>Today I just received the &lt;a href="http://www.midi-classics.com/seq-mc.htm"&gt;MIDI Classics Catalog Package Deal&lt;/a&gt;, which according to their web-page it has "Over 1500 pieces in all! [...] music to keep you busy for years!". Together with the ~2400 pieces gotten from &lt;a href="http://www.classicalguitarmidi.com/"&gt;Classical Guitar Midi Archive page&lt;/a&gt; this should certainly keep me busy for many years. My intention is to concentrate only on the duets and ensembles, so the number of "useful" pieces will be much smaller for me, but hopefully still a decent number to keep me entertained for quite a while.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7319564991450936700?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7319564991450936700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7319564991450936700' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7319564991450936700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7319564991450936700'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/11/got-around-4000-guitar-pieces-in-midi.html' title='Got around 4000 guitar pieces in MIDI... should be busy for a few months!'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1910172234293903738</id><published>2009-11-25T22:31:00.001Z</published><updated>2009-11-25T22:45:01.248Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='e-mail'/><title type='text'>Switched to Opera Mail and Gmail...</title><content type='html'>Until now I managed all my e-mail with Thunderbird and our corporate e-mail server, but the searches were too slow, it was tedious to access the server from outside the company and the space in the server was a bit limited, so today I decided to switch...&lt;br /&gt;&lt;br /&gt;And I went for Opera (with its integrated Opera Mail client) and Gmail. So all my mails are stored (after transferring about 8000 mails) in Gmail servers (although keeping my corporate e-mail address), and I use Opera Mail to access them (though I could use the Gmail web interface if I ever need to). The main reason to switch to Opera Mail is that it does away with folders, and it has the concept of views (searches in the Inbox, so mails can end up in different views, which is very convenient: similar to storing bookmarks with folders vs. storing them in something like del.icio.us where you assign tags to each bookmark). This way I find that I save a lot of time since I don't have to be careful about filing messages, and the searching capabilities of Opera Mail are very good. So far I have been using the new setting only a few hours, but I'm pretty convinced that I'm not going back...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1910172234293903738?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1910172234293903738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1910172234293903738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1910172234293903738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1910172234293903738'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/11/switched-to-opera-mail-and-gmail.html' title='Switched to Opera Mail and Gmail...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-5880961033363093697</id><published>2009-11-21T22:13:00.002Z</published><updated>2009-12-10T10:34:54.799Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Classical guitar'/><category scheme='http://www.blogger.com/atom/ns#' term='Simulators'/><category scheme='http://www.blogger.com/atom/ns#' term='FlightGear'/><category scheme='http://www.blogger.com/atom/ns#' term='Planes'/><title type='text'>Basic flying and guitar...</title><content type='html'>A week ago or so I spent some time learning how to record a "game" with the flying simulator (FlightGear), and how to use the Video Editing Software "Pitivi" so that I could put together a basic landing with a guitar studio played by myself. The result is not great in any way, but &lt;a href="http://www.youtube.com/watch?v=e8MvhVeVzs4"&gt;here it is&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-5880961033363093697?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/5880961033363093697/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=5880961033363093697' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5880961033363093697'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/5880961033363093697'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/11/basic-flying-and-guitar.html' title='Basic flying and guitar...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-7518167155900820463</id><published>2009-11-19T12:30:00.002Z</published><updated>2009-11-21T22:08:28.382Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Music'/><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu Studio'/><title type='text'>Turning my netbook into a music partner...</title><content type='html'>Recently I bought an Acer AS1810T netbook, and I have decided to tune it so that it can become a music partner (artificial accompaniments for when no human partner is around :-)). I just started toying with Ubuntu Studio, but some things didn't quite work. I will persevere and will post here about my progress...&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;and the whole thing was a lot easier than I thought. Basically I went first for a Ubuntu 9.10 (x86_64) install. Almost everything worked out-of-the-box (sound, wifi, webcam...). And after that I just consulted &lt;a href="https://help.ubuntu.com/community/Ubuntu%20Studio%20Upgrade%20from%20Ubuntu"&gt;this guide&lt;/a&gt;, which just involves downloading loads of stuff, adding myself to the audio group and modifying the file limits.conf&lt;br /&gt;&lt;br /&gt;Then, I installed Rosegarden and then I changed a line in the file /etc/default/grub (and then run update-grub as root):&lt;br /&gt;GRUB_HIDDEN_TIMEOUT=0 becomes  # GRUB_HIDDEN_TIMEOUT=0 (so that I have the option of selecting the Real Time kernel, otherwise it goes into normal kernel and Rosegarden and friends will not work OK).&lt;br /&gt;&lt;br /&gt;Then configure QSynth to include the soundfonts available at /usr/share/sounds/sf2&lt;br /&gt;&lt;br /&gt;And at last I run Jack, QSynth, and Rosegarden, and I can get to play beatifully (and with no Xruns) a basic MIDI file. Good stuff....&lt;br /&gt;&lt;br /&gt;(By the way, I also get GNU Solfege, a great aid in training my ear for the quickly approaching music exams...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-7518167155900820463?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/7518167155900820463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=7518167155900820463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7518167155900820463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/7518167155900820463'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/11/turning-my-netbook-into-music-partner.html' title='Turning my netbook into a music partner...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4716010323653280238</id><published>2009-11-19T12:19:00.005Z</published><updated>2009-11-21T22:08:44.966Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Rocks'/><category scheme='http://www.blogger.com/atom/ns#' term='Paraview'/><title type='text'>Step by step guide for the installation and configuration of a cluster (with Rocks) to run ParaView</title><content type='html'>We have recently installed a small test cluster to run ParaView visualization software in parallel. The configuration was not trivial, and I put a detailed step-by-step guide in &lt;a href="http://www.iac.es/sieinvens/siepedia/pmwiki.php?n=HOWTOs.ParaviewInACluster"&gt;SIEpedia&lt;/a&gt;, in case it can be of interest to someone else. Any comments or suggestions are welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4716010323653280238?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4716010323653280238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4716010323653280238' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4716010323653280238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4716010323653280238'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/11/step-by-step-guide-for-installation-and.html' title='Step by step guide for the installation and configuration of a cluster (with Rocks) to run ParaView'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-3715930060132068106</id><published>2009-10-26T10:57:00.003Z</published><updated>2009-11-21T22:07:48.173Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Condor'/><title type='text'>IDL (Virtual Machine) and Condor</title><content type='html'>At our place we have a nice &lt;a href="http://www.cs.wisc.edu/condor/"&gt;Condor&lt;/a&gt; environment set up, and many people use IDL. Until now, our use of IDL with Condor was limited by the number of available licenses at any given time, until...&lt;br /&gt;&lt;br /&gt;Until we discovered the &lt;a href="http://www.creaso.com/english/12_swvis/11_idl/idlvm.htm"&gt;IDL Virtual Machine&lt;/a&gt; which lets you run an IDL "executable" file without the need for licenses (see &lt;a href="http://www.astro.umass.edu/~tangsk/documents/idl_html_help/distributing4.html#wp1010436"&gt;here&lt;/a&gt; for an example of how to create such a file).&lt;br /&gt;&lt;br /&gt;The problem was that the IDL Virtual Machine is meant to be run interactively in a server with X running and Condor is not particularly well suited for this. But with a little ingenuity, we wrote a script (still in beta :-)) that uses Xvfb and Xautomation to submit condor jobs that will create a virtual X server, then automatically click the "Click to continue" button of the IDL virtual machine, and then do whatever the code is supposed to do. We have tested this, and so far it works quite well. There are some glitches with multicore machines and slow machines, but overall it works without any problems, and now we can submit hundreds of IDL jobs simultaneously to our Condor pool!&lt;br /&gt;&lt;br /&gt;More info at &lt;a href="http://www.iac.es/sieinvens/siepedia/pmwiki.php?n=HOWTOs.CondorAndIDLVirtualMachine"&gt;SIEpedia&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-3715930060132068106?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/3715930060132068106/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=3715930060132068106' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3715930060132068106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/3715930060132068106'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/10/idl-virtual-machine-and-condor.html' title='IDL (Virtual Machine) and Condor'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1863833008103347205</id><published>2009-05-05T07:25:00.003Z</published><updated>2009-11-21T22:23:25.584Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Real World Haskell, what a joy!</title><content type='html'>I just started reading "Real World Haskell" (&lt;a href="http://book.realworldhaskell.org/"&gt;http://book.realworldhaskell.org/&lt;/a&gt;). I'm quite new to Haskell (though not to functional programming), and I must say that it is a joy to read... I hope that in a few days I can start writing &amp;quot;real&amp;quot; programs with it (Project Euler is probably going to provide the content for my programs...)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1863833008103347205?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1863833008103347205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1863833008103347205' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1863833008103347205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1863833008103347205'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/05/real-world-haskell-what-joy.html' title='Real World Haskell, what a joy!'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2989204855893267231</id><published>2009-04-29T17:13:00.005Z</published><updated>2009-12-18T23:11:57.902Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ubuntu'/><title type='text'>Static IPs in Ubuntu 8.10....</title><content type='html'>Just configure a new machine with Ubuntu 8.10 (intrepid ibex). Everything went fine, except that one cannot configure static IPs properly. When the machine is booted, then something gets overwritten and it goes into DHCP mode again. Since we leave the machines on all day, this is not a problem (I just created a new network connection with the static IP address, and when the PC boots I just change manually to that configuration), but this would be annoying if we switched off the computers every day... Let&amp;#39;s hope that 9.04 has solved this.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2989204855893267231?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2989204855893267231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2989204855893267231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2989204855893267231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2989204855893267231'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/04/static-ips-in-ubuntu-810.html' title='Static IPs in Ubuntu 8.10....'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-4750643788249789897</id><published>2009-04-29T07:30:00.006Z</published><updated>2010-06-03T13:03:58.714Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Emacs'/><title type='text'>Accessing remote files with Tramp and Emacs</title><content type='html'>In recent versions of Emacs, tramp is already installed by default, and it is a very easy and convenient way of accessing files in a remote machine. All the documentation is at &lt;a href="http://www.gnu.org/software/tramp/"&gt;http://www.gnu.org/software/tramp/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-4750643788249789897?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/4750643788249789897/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=4750643788249789897' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4750643788249789897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/4750643788249789897'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/04/accessing-remote-files-with-tramp-and.html' title='Accessing remote files with Tramp and Emacs'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1546093907817154041</id><published>2009-04-08T09:25:00.002Z</published><updated>2009-04-08T09:28:58.853Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='project euler'/><title type='text'></title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_hm_BgzIyQw0/Sdxt118CwjI/AAAAAAAABAE/wTw5i_DIq44/s1600-h/snapshot1.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 320px; height: 31px;" src="http://4.bp.blogspot.com/_hm_BgzIyQw0/Sdxt118CwjI/AAAAAAAABAE/wTw5i_DIq44/s320/snapshot1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5322249631424496178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Progress on this has been definitely slow, but I'm now in position 6 in Spain and in Fortran, nice coincidence...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1546093907817154041?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1546093907817154041/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1546093907817154041' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1546093907817154041'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1546093907817154041'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2009/04/progress-on-this-has-been-definitely.html' title=''/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_hm_BgzIyQw0/Sdxt118CwjI/AAAAAAAABAE/wTw5i_DIq44/s72-c/snapshot1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8137123474560231077</id><published>2008-12-09T07:30:00.002Z</published><updated>2008-12-09T07:35:59.093Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='project euler'/><title type='text'>One month in Project Euler</title><content type='html'>Yesterday it was one month since I found about Project Euler  &lt;br&gt;(&lt;a href="http://projecteuler.net/"&gt;http://projecteuler.net/&lt;/a&gt;). During this month I&amp;#39;ve managed to do 69 of the  &lt;br&gt;(as of today) 220 total problems, which has put me in position 18th in  &lt;br&gt;Spain and position 6th for Fortran coders. Not bad... I&amp;#39;ve basically dealt  &lt;br&gt;with the easier problems, although I&amp;#39;ve also tackled some of the more  &lt;br&gt;recent ones. In total, it comes at about just a little bit more than 2  &lt;br&gt;problems per day. With the remaining problems one can start to feel the  &lt;br&gt;heat, so I guess the rhythm will go down a bit. My goal is to end the year  &lt;br&gt;2008 going to level 3 (which you get when you solve 100 problems).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8137123474560231077?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8137123474560231077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8137123474560231077' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8137123474560231077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8137123474560231077'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2008/12/one-month-in-project-euler.html' title='One month in Project Euler'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2748717738172397919</id><published>2008-11-17T08:39:00.004Z</published><updated>2008-12-09T07:35:20.975Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='puppy linux'/><title type='text'>Instalación de Puppy Linux en IBM Thinkpad 600</title><content type='html'>I have an old IBM Thinkpad 600, on which I decided to install the latest Puppy Linux distro. Some things didn&amp;#39;t work out of the box, so here is a log (sorry, in Spanish only) of what I did to get it working (a video demo, also in Spanish, of the end result) can be seen at http://&lt;a href="http://es.youtube.com/watch?v=7gAosDBNf3g"&gt;es.youtube.com/watch?v=7gAosDBNf3g&lt;/a&gt;&lt;p&gt;=================&lt;p&gt;La versi&amp;#243;n que funciona es la retro &lt;a href="http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.1retro-k2.6.21.7-seamonkey.iso"&gt;http://distro.ibiblio.org/pub/linux/distributions/puppylinux/puppy-4.1retro-k2.6.21.7-seamonkey.iso&lt;/a&gt;&lt;p&gt;en las opciones de boot simplemente pongo puppy pfix=ram&lt;p&gt;La &amp;quot;no retro&amp;quot; me daba al tratar de correr el LiveCD problemas del tipo:&lt;br&gt;ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen&lt;p&gt;Teclado pongo UK&lt;p&gt;En el modo de pantalla elegir configurar con Xorg y tama&amp;#241;a de pantalla  &lt;br&gt;1024x768&lt;p&gt;Tengo una tarjeta PCMCIA de red y conectado a la red del trabajo. Con &amp;#233;sto, corriendo el Menu-&amp;gt;Setup-&amp;gt;Network Wizard estoy conectado a la red &amp;quot;in no time&amp;quot;&lt;p&gt;*** Como a&amp;#241;adir otra configuraci&amp;#243;n de teclado?&lt;p&gt;Esto no encontre como hacerlo, aunque teniendo el teclado en spanish sera suficiente.&lt;p&gt;*** Configurar sonido&lt;p&gt;Est&amp;#225; solucionado siguiendo las instrucciones en &lt;a href="http://www.wlug.org.nz/ThinkpadNotes"&gt;http://www.wlug.org.nz/ThinkpadNotes&lt;/a&gt;&lt;p&gt;Lo que hice:&lt;br&gt;  - quit&amp;#233; el Fast Boot de la BIOS (pulsar F1 mientras hacemos power-on)&lt;br&gt;  - en las opciones del kernel puse pnpbios=off acpi=off&lt;br&gt;  - luego configurando ALSA con el m&amp;#243;dulo cs4236 ya parece que lo hace bien&lt;br&gt;  - no puedo tener dos aplicaciones a la vez usando el sonido, pero &amp;#233;so ser&amp;#237;a ya&lt;br&gt;    pedir demasiado...&lt;p&gt;Al arrancar de nuevo, ya no me funciona el sonido, as&amp;#237; que vuelvo a  configurar el alsa sound (y me funciona). Y rebooteo para ver si los cambios se guardan... Pero algo parece que va mal... Puede que sea simplemente que no sab&amp;#237;a usar el alsamixer!! Le pongo el Master digital con volumen, y al arrancar de nuevo... se han ido. Al bootear,los par&amp;#225;metros de alsamixer se ponen a 0. Creo un script en /etc/init.d/alsa, que simplemente ejecuta alsactl restore (previamente he corrido alsactl store tras poner los vol&amp;#250;menes m&amp;#225;s o menos altos). Ahora los vol&amp;#250;menes est&amp;#225;n bien, pero s&amp;#243;lo sale ruido por el altavoz... Hay que seguir investigando..&lt;p&gt;Al final lo que funciona es, despues de instalar el driver correcto (cs4236), correr el alsamixer para poner los niveles que queramos, entonces correr el alsactl store y (eliminamos el /etc/init.d/alsa) poner en .xinitrc el /usr/sbin/alsactl restore&lt;p&gt;Con esto, cada vez que abrimos la terminal X se nos ponen los valores como   los habiamos guardado y el sonido ya no da problemas.&lt;p&gt;*** Instalar a disco duro, pero que carge en RAM&lt;p&gt;Sigo las instrucciones en &lt;a href="http://www.puppylinux.org/manuals/puppy-40/english/how-install-puppy/frugal-installation"&gt;http://www.puppylinux.org/manuals/puppy-40/english/how-install-puppy/frugal-installation&lt;/a&gt;&lt;p&gt;(en alg&amp;#250;n momento me desv&amp;#237;o un poco, aunque casi igual).&lt;p&gt;*** Puedo utilizar el disco duro para almacenar?&lt;p&gt;Sin problema, creamos un enlace simbolico en /root al sitio donde monta el disco, que llamamos datos y asi podemos guardar ahi toda la informacion que queramos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2748717738172397919?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2748717738172397919/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2748717738172397919' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2748717738172397919'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2748717738172397919'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2008/11/instalacin-de-puppy-linux-en-ibm.html' title='Instalación de Puppy Linux en IBM Thinkpad 600'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-1895582735869223922</id><published>2007-04-29T18:37:00.001Z</published><updated>2009-11-21T22:06:43.379Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohjinsha'/><title type='text'>Turn to deal with the display...</title><content type='html'>Dave from &lt;a href="http://superdave.blogdns.org/superdave"&gt;http://superdave.blogdns.org/superdave&lt;/a&gt; suggested this to make the&lt;br /&gt;resolution 800x480&lt;p&gt;---------------------------------&lt;br /&gt;As for xorg.conf, I added the following to the &amp;quot;Monitor&amp;quot; section:&lt;p&gt;Modeline &amp;quot;800x480&amp;quot; 44.32 800 832 1000 1032 480 489 496 505&lt;p&gt;And then simply added &amp;quot;800x480&amp;quot; in the modes list for 24 bit color.&lt;p&gt;Note that doing that got me 800x480 in GDM, but as soon as I logged in GNOME&lt;br /&gt;would switch to 800x600. To make GNOME cooperate, I had to do the following:&lt;p&gt;gconftool-2 --type string --set /desktop/gnome/screen/default/0/resolution &amp;quot;800x480&amp;quot;&lt;p&gt;Note that I&amp;#39;m using the VirtualBox X.org display driver so I have no idea if any&lt;br /&gt;of that will work with a *real* video driver. Let me know if it works&lt;br /&gt;---------------------------------&lt;p&gt;But I&amp;#39;m afraid this doesn&amp;#39;t seem to work here. When I put those lines in the&lt;br /&gt;xorg.conf I get a message in the Xorg log saying that resolution is not&lt;br /&gt;supported and then going to 640x480 ....&lt;p&gt;If anyone got this working in a non-virtualized envirnoment, please let me know.&lt;p&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-1895582735869223922?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/1895582735869223922/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=1895582735869223922' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1895582735869223922'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/1895582735869223922'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2007/04/turn-to-deal-with-display.html' title='Turn to deal with the display...'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-8934190068268767545</id><published>2007-04-29T18:30:00.001Z</published><updated>2009-11-21T22:06:09.205Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohjinsha'/><title type='text'>Details about setting up Wifi</title><content type='html'>Ah! I forgot one detail (although I&amp;#39;m not sure how relevant it is):&lt;p&gt;the &amp;quot;stock&amp;quot; version of wireless-tools that came with Fedora was giving errors&lt;br /&gt;about incompatible versions with the wlan driver, so I updated it through yum. I&lt;br /&gt;updated it to:&lt;p&gt;[root@kohji ~]# rpm -qa wireless-tools&lt;br /&gt;wireless-tools-28-0.pre10.4&lt;br /&gt;[root@kohji ~]# &lt;p&gt;And with this version there were no more error messages when using the iwconfig&lt;br /&gt;command.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-8934190068268767545?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/8934190068268767545/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=8934190068268767545' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8934190068268767545'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/8934190068268767545'/><link rel='alternate' type='text/html' href='http://angel-de-vicente.blogspot.com/2007/04/details-about-setting-up-wifi_29.html' title='Details about setting up Wifi'/><author><name>angelv</name><uri>http://www.blogger.com/profile/11372350548155510934</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://4.bp.blogspot.com/_hm_BgzIyQw0/Swhnqk6H5II/AAAAAAAABkM/SegIgBOFft8/S220/n524708496_272998_3570.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4419419196674784537.post-2023581319803299332</id><published>2007-04-29T18:20:00.001Z</published><updated>2009-11-21T22:05:58.708Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='kohjinsha'/><title type='text'>Details about setting up Wifi</title><content type='html'>As promised ...&lt;p&gt;In order to get the wifi working I got the driver provided by Kohjinsha and&lt;br /&gt;searched in it, and found that it was compiled in a Fedora Core 4 environment,&lt;br /&gt;so I decided to install that (I have no real preference for any particular&lt;br /&gt;distribution), so I&amp;#39;m happy with that one.&lt;p&gt;After installation of Fedora I tried to insmod the module, but it complains&lt;br /&gt;with:&lt;p&gt;[root@kohji ~]# insmod /home/angelv/kohji_drivers/wifi/w89c35-wpa37_Linux26/w35und.ko &lt;br /&gt;insmod: error inserting &amp;#39;/home/angelv/kohji_drivers/wifi/w89c35-wpa37_Linux26/w35und.ko&amp;#39;: -1 Invalid module format&lt;br /&gt;[root@kohji ~]# &lt;p&gt;It turns out that cannot load it because the &amp;quot;version magic&amp;quot; in the driver is&lt;br /&gt;different to what is expected, so I just opened the binary file with an editor&lt;br /&gt;and changed one number&lt;p&gt;I get this in /var/log/messages:&lt;br /&gt;kohji kernel: w35und: version magic &amp;#39;2.6.11-1.1369_FC4 686 REGPARM 4KSTACKS gcc-4.0&amp;#39; should be &amp;#39;2.6.11-1.1369_FC4 586 REGPARM 4KSTACKS gcc-4.0&amp;#39;&lt;p&gt;So I have to change the 686 in the driver file to 586. (Is this dangerous? Well,&lt;br /&gt;I don&amp;#39;t know for sure, but let&amp;#39;s continue).&lt;p&gt;With the changed file, we can now do:&lt;p&gt;[root@kohji ~]# insmod /home/angelv/kohji_drivers/wifi/w89c35-wpa37_Linux26/w35und_test.ko&lt;br /&gt;[root@kohji ~]# &lt;p&gt;&lt;br /&gt;And in /var/log/messages I get:&lt;p&gt;Apr 29 19:11:53 kohji kernel: Adapter =d0240280&lt;br /&gt;Apr 29 19:11:53 kohji kernel: WbWLanInitialize(1)&lt;br /&gt;Apr 29 19:11:53 kohji kernel: ******BB3c is 00000000&lt;br /&gt;Apr 29 19:11:54 kohji kernel: WbWLanInitialize(2)&lt;br /&gt;Apr 29 19:11:54 kohji kernel: usbcore: registered new driver w35und&lt;br /&gt;Apr 29 19:11:54 kohji kernel: SIOCSIWESSID test&lt;p&gt;So all looks fine. &lt;p&gt;For the moment I have one problem. If I do this when the WIFI option (Fn+F4) is&lt;br /&gt;off, and then I try to switch it on, then I cannot get it to work, but that&amp;#39;s&lt;br /&gt;easy. After switching it on, I just remove the module and load it again and all&lt;br /&gt;is good:&lt;p&gt;[root@kohji ~]# rmmod w35und&lt;br /&gt;[root@kohji ~]# insmod /home/angelv/kohji_drivers/wifi/w89c35-wpa37_Linux26/w35und_test.ko&lt;p&gt;in /var/log/messages:&lt;p&gt;Apr 29 19:16:19 kohji kernel: Adapter =d06b0280&lt;br /&gt;Apr 29 19:16:19 kohji kernel: WbWLanInitialize(1)&lt;br /&gt;Apr 29 19:16:19 kohji kernel: ******BB3c is 00000000&lt;br /&gt;Apr 29 19:16:20 kohji kernel: WbWLanInitialize(2)&lt;br /&gt;Apr 29 19:16:20 kohji kernel: usbcore: registered new driver w35und&lt;br /&gt;Apr 29 19:16:20 kohji kernel: SIOCSIWESSID test&lt;br /&gt;Apr 29 19:16:25 kohji dhclient: DHCPREQUEST on wlan0 to 255.255.255.255 port 67&lt;br /&gt;Apr 29 19:16:32 kohji dhclient: DHCPREQUEST on wlan0 to 255.255.255.255 port 67&lt;br /&gt;Apr 29 19:16:32 kohji dhclient: DHCPACK from 192.168.0.1&lt;br /&gt;Apr 29 19:16:32 kohji NET[3270]: /sbin/dhclient-script : updated /etc/resolv.conf&lt;br /&gt;Apr 29 19:16:32 kohji dhclient: bound to 192.168.0.130 -- renewal in 38903 seconds.&lt;p&gt;[root@kohji ~]# ifconfig wlan0&lt;br /&gt;wlan0     Link encap:Ethernet  HWaddr 00:0D:F0:2D:DF:8C  &lt;br /&gt;inet addr:192.168.0.130  Bcast:192.168.0.255  Mask:255.255.255.0&lt;br /&gt;inet6 addr: fe80::20d:f0ff:fe2d:df8c/64 Scope:Link&lt;br /&gt;UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;RX packets:44 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;TX packets:42 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;collisions:0 txqueuelen:1000 &lt;br /&gt;RX bytes:7770 (7.5 KiB)  TX bytes:4970 (4.8 KiB)&lt;p&gt;&lt;br /&gt;If someone is curious, the wlan0 configuration file reads:&lt;br /&gt;[root@kohji ~]# cat /etc/sysconfig/network-scripts/ifcfg-wlan0&lt;br /&gt;DEVICE=wlan0&lt;br /&gt;USERCTL=yes&lt;br /&gt;BOOTPROTO=dhcp&lt;p&gt;TYPE=Wireless&lt;br /&gt;MODE=Managed&lt;br /&gt;ESSID=SpeedTouch0CEAA4&lt;br /&gt;RATE=54Mb/s&lt;p&gt;NETMASK=&lt;br /&gt;DHCP_HOSTNAME=&lt;br /&gt;IPADDR=&lt;br /&gt;DOMAIN=&lt;br /&gt;HWADDR=&lt;br /&gt;PEERDNS=yes&lt;br /&gt;GATEWAY=&lt;br /&gt;IPV6INIT=no&lt;br /&gt;ONBOOT=no&lt;br /&gt;CHANNEL=1&lt;br /&gt;[root@kohji ~]# &lt;p&gt;&lt;br /&gt;Perhaps this info is too verbose, but I hope it helps someone.&lt;p&gt;Cheers,&lt;br /&gt;Angel&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4419419196674784537-2023581319803299332?l=angel-de-vicente.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://angel-de-vicente.blogspot.com/feeds/2023581319803299332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4419419196674784537&amp;postID=2023581319803299332' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4419419196674784537/posts/default/2023581319803299332'/><link rel='self' type='application/atom+xml' href='ht
