<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>0110.be</title>
    <link>http://0110.be</link>
    <description>Recente posts</description>
    <item>
      <pubDate>Sat, 14 Jan 2012 11:10:41 GMT</pubDate>
      <title>Reactie van Gast (14/01/12 - 11:10) op  Over 0110.be</title>
      <link>http://0110.be/posts/lees/1730</link>
      <author>Gast</author>
      <description>Ff testen </description>
    </item>
    <item>
      <pubDate>Fri, 06 Jan 2012 01:20:11 GMT</pubDate>
      <title>Reactie van Gast (06/01/12 - 01:20) op  Order Pizza with USB Pizza Button</title>
      <link>http://0110.be/posts/lees/1729</link>
      <author>Gast</author>
      <description>Waar heb je die gekocht?</description>
    </item>
    <item>
      <pubDate>Tue, 19 Jul 2011 10:46:41 GMT</pubDate>
      <title>Android Gingerbread 2.3.4 on LG GT540 Optimus</title>
      <link>http://0110.be/artikels/lees/Android_Gingerbread_2.3.4_on_LG_GT540_Optimus</link>
      <author>Joren</author>
      <description>&lt;img src='/attachment/be.0110/206/GT-540-black.jpg' width='90' style='float:right' /&gt;
&lt;p&gt;I have upgraded the operating system on my LG GT540 Optimus from the stock Android 1.6 to Android Gingerbread 2.3.4. I followed this &lt;a href="http://androidforums.com/optimus-gt540-all-things-root/352239-android-2-3-4-gingerbread-lg-gt540-new-method.html"&gt;updgrade procedure&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It is well worth it to spend some time upgrading the phone, especially from 1.6. Everything feels a lot faster and the upgraded applications, e.g. Gallery, are nicely improved.&lt;/p&gt;
&lt;p&gt;The main reason I upgraded my phone is to get the open source accessory development kit (&lt;span class="caps"&gt;ADK&lt;/span&gt;) for Android working. I got the &lt;a href="http://developer.android.com/guide/topics/usb/adk.html#running-demokit"&gt;DemoKit application&lt;/a&gt; working after some time but need to do some more experiments to see if the hardware actually works: I am waiting for a &lt;span class="caps"&gt;USB&lt;/span&gt; Host Shield for Arduino. To be continued&amp;#8230;&lt;/p&gt;
&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 23 May 2011 20:58:43 GMT</pubDate>
      <title>Athene</title>
      <link>http://0110.be/artikels/lees/Athene</link>
      <author>Joren</author>
      <description>&lt;p&gt;Athene, Griekenland.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 18 May 2011 20:05:23 GMT</pubDate>
      <title>TwinSeats heeft Apps For Ghent gewonnen!</title>
      <link>http://0110.be/artikels/lees/TwinSeats_heeft_Apps_For_Ghent_gewonnen%21</link>
      <author>Joren</author>
      <description>&lt;p&gt;Vorige zaterdag werd &lt;a href="http://appsforghent.be/"&gt;Apps For Ghent&lt;/a&gt; georganiseerd: een activiteit om het belang van open data te onderstrepen in navolging van onder meer &lt;a href="http://www.appsforamsterdam.nl/"&gt;Apps For Amsterdam&lt;/a&gt; en &lt;a href="http://nycbigapps.com/"&gt;New York City Big App&lt;/a&gt;. Tijdens  de voormiddag kwamen er verschillende organisaties hun open gestelde data voorstellen de namiddag werd gereserveerd voor een wedstrijd. Het doel van de wedstrijd was om in enkele uren een concept uit te werken en meteen voor te stellen. Het uitgewerkte prototype moest gedeeltelijk functioneren en gebruik maken van (Gentse) open data.&lt;/p&gt;
&lt;p&gt;Luk Verhelst en ikzelf hebben er TwinSeats voorgesteld.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;img src='/attachment/be.0110/205/TwinSeatsLogo.png' width='100' style='float:left' /&gt; TwinSeats is een website / online initiatief om nieuwe mensen te leren kennen. Met hen deel je dezelfde culturele interesse en ga je vervolgens samen naar deze of gene voorstelling. Door events centraal te stellen kan TwinSeats uitzonderlijke cultuurburen zoeken. Leden vinden die cultuurburen dankzij een gezamenlijke voorliefde voor een artiest of attractie of eender welke bezigheid in de vrijetijdssfeer.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Het prototype is ondertussen terug te vinden op &lt;a href="http://twinseats.be"&gt;TwinSeats.be&lt;/a&gt;. Let wel dit is in enkele uren in elkaar geflanst en is verre van &amp;#8216;af&amp;#8217;, het achterliggende concept is belangrijker.&lt;/p&gt;
&lt;p&gt;Samen met Wa Kank Doen van SumoCoders werden we door de jury tot winnaar uitgeroepen. Maandag verscheen er &lt;a href="http://www.standaard.be/artikel/detail.aspx?artikelid=IV3A3TCU"&gt;een artikel in de Standaard over AppsForGhent met een vermelding van TwinSeats&lt;/a&gt;. Op de Apps For Ghent site is uiteraard ook iets te vinden &lt;a href="http://appsforghent.be/?post_type=apps&amp;amp;p=161"&gt;over TwinSeats&lt;/a&gt; ook het &lt;a href="http://appsforghent.be/?page_id=223"&gt;juryverslag&lt;/a&gt; is er te vinden. Zoals het hoort bij die categorie evenementen werd ook wat &lt;a href="http://search.twitter.com/search?q=AppsforGhent"&gt;afgetweet&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Er is ook een publieksprijs verbonden aan AppsForGhent die wordt over enkele weken uitgereikt.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 13 Apr 2011 12:21:08 GMT</pubDate>
      <title>The Pidato Experiment: Vibrato on a Digital Piano Using an Arduino</title>
      <link>http://0110.be/artikels/lees/The_Pidato_Experiment%3A_Vibrato_on_a_Digital_Piano_Using_an_Arduino</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/204/vibrato_ff.png"  style="float:right" alt="ff vibrato on a piano score of Franz Liszt"/&gt; The Pidato experiment demonstrates a rather straightforward method to handle vibrato on a digital piano. It solves the age-old problem on what to do with the enigmatic &amp;#8220;vibrato&amp;#8221; instructions on some piano solo scores of Franz Liszt. The figure on the right is an exerpt of &lt;a href="http://imslp.org/wiki/3_Sonetti_del_Petrarca,_S.270_%28Liszt,_Franz%29"&gt;&lt;em&gt;sonetto 104 del Petrarca&lt;/em&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Since there is no way to perform vibrato on an &lt;i&gt;analogue&lt;/i&gt; piano there are all kinds of different interpretations. Interpretations of the &amp;#8216;vibrato&amp;#8217; instruction include: vibrating the pedal, vibrating the key, simply ignoring it, &lt;a href="http://www3.sympatico.ca/norma.barr/library/piano/tone_piano_playing.html"&gt;a vibrato like wiggling with a psychological sounding effect&lt;/a&gt;, &amp;#8230; A pianist specialized in 19th century music, explains his embodied use of vibrato in a youtube video: &lt;a href="http://www.youtube.com/watch?v=FxwBDZQslzI&amp;amp;feature=related"&gt;Brian Ganz on piano vibrato&lt;/a&gt;. Those solutions all seem a bit halfhearted, so I created an alternative approach which resulted in the Pidato experiment.&lt;/p&gt;
&lt;p&gt;Pidato is a portmanteau of piano and vibrato, the d, a and o hint to the use of an Arduino. Pidato is also Indonesian for speech, expression. To get a feel of what it actually does I created the video below. Please note that this is a &lt;i&gt;technical demonstration&lt;/i&gt;, not an artistic performance&amp;#8230; in any way.&lt;/p&gt;
&lt;p&gt;&lt;object style="height: 390px; width: 640px"&gt;&lt;param name="movie" value="http://www.youtube.com/v/phDV_qioBMU?version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/phDV_qioBMU?version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="640" height="390"&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;The way it works is by translating movement (accelerometer data) to &lt;span class="caps"&gt;MIDI&lt;/span&gt; messages. The hardware consists of an &lt;a href="http://arduino.cc"&gt;Arduino&lt;/a&gt;, &lt;span class="caps"&gt;MIDI&lt;/span&gt;-ports and a three axis accelerometer. The &lt;span class="caps"&gt;MIDI&lt;/span&gt;-ports are provided by this &lt;a href="http://tomscarff.110mb.com/MIDI_IN_OUT_ARDUINO/midi_in_out_arduino.htm"&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; IN &amp;amp; &lt;span class="caps"&gt;OUT&lt;/span&gt; Arduino shield&lt;/a&gt;. The accelerometer is a &lt;a href="http://www.sparkfun.com/datasheets/Accelerometers/MMA7260Q-Rev1.pdf"&gt;MMA7260Q&lt;/a&gt; from &lt;a href="http://sparkfun.com"&gt;Sparkfun&lt;/a&gt;. Attaching the MMA7260Q and the arduino is done by following the instructions &lt;a href="http://chalmersphyscomp10.wordpress.com/2010/09/17/mma7260q/"&gt;here&lt;/a&gt;. One change was made: by attaching the 3.3V output to &lt;code&gt;AREF&lt;/code&gt; and executing &lt;a href="http://www.arduino.cc/en/Reference/AnalogReference"&gt;&lt;code&gt;analogReference(EXTERNAL);&lt;/code&gt;&lt;/a&gt; fluctuations in power supply cease to have an influence on accelerometer data readings. It is represented by the purple wire in the diagram below.&lt;/p&gt;
&lt;p&gt;&lt;img src="/attachment/be.0110/201/accelerometer_wire.jpg" width="100%"  alt="Accelerometer - Arduino - wiring diagram"/&gt;&lt;/p&gt;
&lt;p&gt;The software should know when a vibrato like movement is made and how to translate such movement to &lt;span class="caps"&gt;MIDI&lt;/span&gt; messages. The software therefore contains a periodicity estimator and frequency detector to detect how periodic a movement is and how fast the movement is repeated. This was done with the &lt;a href="http://audition.ens.fr/adc/pdf/2002_JASA_YIN.pdf"&gt;&lt;span class="caps"&gt;YIN&lt;/span&gt; algorithm&lt;/a&gt; (more commonly used in audio signal analysis). A periodicity threshold was determined experimentally so the system does not yield false positives when playing the piano in the usual way.  Another interesting bit of code is the interrupt setup that samples the accelerometer at a fixed sample rate and sends &lt;span class="caps"&gt;MIDI&lt;/span&gt; messages, also at a fixed rate.&lt;/p&gt;
&lt;p&gt;&lt;span class="caps"&gt;MIDI&lt;/span&gt; messaging is done over a serial connection. From the Arduino sending a &lt;span class="caps"&gt;MIDI&lt;/span&gt; message is as simple as calling &lt;code&gt;Serial.print&lt;/code&gt; with the correct data. For the task at hand (sending vibrato) &lt;a href="http://tomscarff.110mb.com/midi_analyser/pitch_bend.htm"&gt;Pitch Bend messages&lt;/a&gt; were used.&lt;/p&gt;
&lt;p&gt;The &lt;span class="caps"&gt;YIN&lt;/span&gt; algorithm is encapsulated in a reusable Arduino library and can be used to detect periodicity and frequency for any signal. &lt;a href="http://www.youtube.com/watch?v=oGKE1vmAWCA"&gt;This guy&lt;/a&gt; used his implementation to create a chromatic tuner. The source code for both the &lt;a href="https://github.com/JorenSix/Pidato"&gt;Yin Arduino library&lt;/a&gt; and &lt;a href="https://github.com/JorenSix/Pidato"&gt;Pidato experiment&lt;/a&gt; can be found on github or &lt;a href="/attachment/be.0110/202/Pidato.src.zip" title="zip"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The Pidato experiment was done with the help the friendly hackers at &lt;a href="http://0x20.be"&gt;Hackerspace Ghent&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This &lt;a href="http://hackaday.com/2011/04/16/pidato-box-adds-vibrato-effect-to-digital-pianos/"&gt;piano vibrato&lt;/a&gt; hack was also covered by &lt;a href="http://hackaday.com"&gt;hackaday.com&lt;/a&gt; and posted to the &lt;a href="http://0x20.posterous.com/"&gt;Hackerspace Ghent blog&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 02 Mar 2011 19:56:05 GMT</pubDate>
      <title>Efeze</title>
      <link>http://0110.be/artikels/lees/Efeze</link>
      <author>Joren</author>
      <description>&lt;p&gt;Of Ephesus.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 20 Jan 2011 10:16:23 GMT</pubDate>
      <title>Call for Participation: Newline</title>
      <link>http://0110.be/artikels/lees/Call_for_Participation%3A_Newline</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/198/logo-0x20.png" alt="Whitespace Logo" style="float:right;margin:10px 10px 10px 10px"/&gt;I am a member of Whitespace, a &lt;a href="http://0x20.be"&gt;hackerspace in Ghent&lt;/a&gt;. It is essentially a loose collective of people with a passion for technology. We will organize an event for our first birthday and hope you will be there. This is our cal for participation:&lt;/p&gt;
&lt;div style="padding-left:2em"&gt;
&lt;p&gt;A newline marks the end of a line and moves the cursor to the next  one. One could see it as a sign of progress. A newline gives you a whole new line to be filled. We are happy to announce that we see a newline ahead of us, namely the one that marks the beginning of our second year of existence. Last spring we opened Whitespace and the space has grown in members, projects, usage and infrastructure ever since. To celebrate this, we invite all of you to our first anniversary weekend.&lt;/p&gt;
&lt;p&gt;The event is planned for Friday the 25th and Saturday the 26th of March 2011 at Whitespace, Ghent, Belgium. Friday evening will be a social event. Saturday will be a day of talks and workshops followed by a fun activity in the evening.&lt;/p&gt;
&lt;p&gt;This is an open invitation to all of you to come to the event and moreover to actively participate by giving a talk or workshop. We are looking forward to all your ideas! We are looking forward to long talks, short talks, hands-on workshops and having an awesome time in our space. Feel like participating? Great! Get it touch with us! We&amp;#8217;re interested in all topics, especially if they are a bit out-there.&lt;/p&gt;
&lt;p&gt;We want to publish a preliminary program on the 1st of March 2011 and the final program on the 14th of March.&lt;/p&gt;
&lt;p&gt;If you want to give a talk or workshop or you want to help us in any other way, please contact us on newline [at] 0&amp;#215;20 [dot] be.&lt;/p&gt;
&lt;p&gt;Thank you!&lt;/p&gt;
&lt;p&gt;&amp;#8212; Whitespace&lt;/p&gt;
&lt;p&gt;&lt;a href="http://0x20.be/Newline"&gt;http://0&amp;#215;20.be/Newline&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;I will be presenting a talk about fun applications of audio processing.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 13 Jan 2011 23:40:56 GMT</pubDate>
      <title>Find the MAC Address of your Android Device</title>
      <link>http://0110.be/artikels/lees/Find_the_MAC_Address_of_your_Android_Device</link>
      <author>Joren</author>
      <description>&lt;p&gt;Just a quick hint. If you ever need to find the &lt;span class="caps"&gt;MAC&lt;/span&gt; address of your Android device, and who doesn&amp;#8217;t, check this file:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;/sys/devices/virtual/net/wlan0&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;You can read the file with the Astro File Manager.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Mon, 10 Jan 2011 21:38:30 GMT</pubDate>
      <title>Remote Port Forwarding with Ubuntu 8.04 and OpenSSH 4.7</title>
      <link>http://0110.be/artikels/lees/Remote_Port_Forwarding_with_Ubuntu_8.04_and_OpenSSH_4.7</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/197/openssh.png" alt="OpenSSH Logo" style="float:right"/&gt;&lt;/p&gt;
&lt;p&gt;With this post I would like to draw attention to the fact that remote port forwarding with OpenSSH 4.7 on Ubuntu 8.04.1 does not work as expected.&lt;/p&gt;
&lt;p&gt;If you follow the instructions of a &lt;a href="http://www.debianadmin.com/howto-use-ssh-local-and-remote-port-forwarding.html"&gt;&lt;span class="caps"&gt;SSH&lt;/span&gt; remote port forwarding tutorial&lt;/a&gt; everything goes well until you want to allow everyone to access the forwarded port (not just localhost). The problem arises when binding the forwarded port to an interface. Even with &lt;code&gt;GatewayPorts yes&lt;/code&gt; present in &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; the following command shows that it went wrong:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;user@local$ssh -R 2222:localhost:22 user@remote&lt;br /&gt;
user@remote$sudo netstat -lntp #on the remote server&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State&lt;br /&gt;
tcp6       0      0 ::1:2222                :::*                    &lt;span class="caps"&gt;LISTEN&lt;/span&gt;&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;It listens only via IPv6 and only on localhost an not on every interface (as per request by defining &lt;code&gt;GatewayPorts yes&lt;/code&gt;). The &lt;code&gt;netstat&lt;/code&gt; command should yield this output:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;user@local$ssh -R 2222:localhost:22 user@remote&lt;br /&gt;
user@remote$sudo netstat -lntp #on the remote server&lt;br /&gt;
Active Internet connections (only servers)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State&lt;br /&gt;
tcp        0      0 0.0.0.0:2222            0.0.0.0:*               &lt;span class="caps"&gt;LISTEN&lt;/span&gt;&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;I do not really know here it goes wrong but there is an easy workaround. By defining both&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;GatewayPorts yes&lt;br /&gt;
AddressFamily inet&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;in &lt;code&gt;/etc/ssh/sshd_config&lt;/code&gt; remote port forwarding works fine but you lose IPv6 connectivity (this due to the &lt;code&gt;AddressFamily&lt;/code&gt; setting). Another solution is to use more up to date software: the bug is not present in Ubuntu 10.04 with OpenSSH 5.3 (I don&amp;#8217;t know if it is an Ubuntu or OpenSSH bug, or even a configuration issue.&lt;/p&gt;
&lt;p&gt;I have been struggling with this issue for a couple of hours and, with this blog post, I hope I can prevent someone else from doing the same.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sat, 25 Dec 2010 21:20:54 GMT</pubDate>
      <title>Oneliner to Install ssh-copy-id on Mac OS X</title>
      <link>http://0110.be/artikels/lees/Oneliner_to_Install_ssh-copy-id_on_Mac_OS_X</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;code&gt;ssh-copy-id&lt;/code&gt; is a practical bash script, installed by default on Ubuntu. The script  is used to distribute public keys. The following oneliner makes it available on Mac OS X:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;sudo bash &amp;lt; &amp;lt;( curl &amp;#8212;silent http://0110.be/attachment/be.0110/195/install-ssh-copy-id.bash )&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;This oneliner does three things:&lt;/p&gt;
&lt;ol&gt;
	&lt;li&gt;It copies &lt;code&gt;ssh-copy-id&lt;/code&gt; from this website to &lt;code&gt;/bin/ssh-copy-id&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;It makes sure that &lt;code&gt;ssh-copy-id&lt;/code&gt; is executable, using &lt;code&gt;chmod&lt;/code&gt;.&lt;/li&gt;
	&lt;li&gt;There is no three&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The install procedure needs superuser rights because it writes in the &lt;code&gt;/bin&lt;/code&gt; folder. Executing scripts from untrusted sources with superuser rights is actually really, really, extremely dangerous. But in this case it is rather innocent.&lt;/p&gt;
&lt;p&gt;The &lt;code&gt;ssh-copy-id&lt;/code&gt; script is the one provided with Ubuntu and Debian, I assume it is GPL&amp;#8217;ed. I have not modified it for Mac OS X but it seems to behave as expected. I have only tested the install script and behavior on 10.6.5, &lt;acronym title="Your Mileage May Vary"&gt;&lt;span class="caps"&gt;YMMV&lt;/span&gt;&lt;/acronym&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 17 Sep 2010 20:26:02 GMT</pubDate>
      <title>How to Develop for LG GT540 Optimus on Ubuntu</title>
      <link>http://0110.be/artikels/lees/How_to_Develop_for_LG_GT540_Optimus_on_Ubuntu</link>
      <author>Joren</author>
      <description>&lt;p&gt;This post describes a crucial aspect of how to connect an android phone, the LG GT540 Optimus, to an Ubunu Linux computer. The method is probably similar on different &lt;span class="caps"&gt;UNIX&lt;/span&gt; like platforms with different phones.&lt;/p&gt;
&lt;p&gt;To recognize the phone when it is connected via usb you need to create an &lt;span class="caps"&gt;UDEV&lt;/span&gt; rule. Create the file &lt;code&gt;/etc/udev/rules.d/29.lg545.rules&lt;/code&gt; with following contents:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;&lt;span class="caps"&gt;SUBSYSTEM&lt;/span&gt;"usb",ATTRS{idVendor}&amp;#8220;1004&amp;#8221;,ATTRS{idProduct}==&amp;#8220;61b4&amp;#8221;,&lt;span class="caps"&gt;MODE&lt;/span&gt;=&amp;#8220;0666&amp;#8221;&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;On the phone you need to enable debugging using the settings and (this is rather important) make sure that the &amp;#8220;mass storage only&amp;#8221; setting is disabled.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://android.modaco.com/content/lg-gt540-optimus-gt540-modaco-com/310737/how-to-root-your-lg-gt540/"&gt;Rooting&lt;/a&gt; the device makes sure you have superuser rights. Installing the android &lt;span class="caps"&gt;SDK&lt;/span&gt; is &lt;a href="http://developer.android.com/sdk/index.html"&gt;well documented&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Good luck!&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 05 Aug 2010 10:28:17 GMT</pubDate>
      <title>OpenRD - A Low Power Server Running Debian on ARM</title>
      <link>http://0110.be/artikels/lees/OpenRD_-_A_Low_Power_Server_Running_Debian_on_ARM</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/189/guruplug.jpg" alt="GuruPlug" style="float:right"/&gt;&lt;br /&gt;
This blog post comments on using the Marvell OpenRD SoC(System on a Chip) as a low power multipurpose home server.&lt;/p&gt;
&lt;h3&gt;The Hardware&lt;/h3&gt;
&lt;p&gt;The specifications of the &lt;a href="http://open-rd.org"&gt;OpenRD SoC&lt;/a&gt; are very similar to the better known &lt;a href="http://en.wikipedia.org/wiki/SheevaPlug"&gt;SheevaPlug&lt;/a&gt; devices, so it has 512MB DDR2 &lt;span class="caps"&gt;RAM&lt;/span&gt;, an 1.2GHz &lt;span class="caps"&gt;ARM&lt;/span&gt; processor and 512MB internal flash. To be more precise the OpenRD SoC is essentially a SheevaPlug in a different form factor. The main advantage of this form factor is the number of available connections: 7xUSB, &lt;span class="caps"&gt;SATA&lt;/span&gt;, eSATA, 2xGb Ethernet, &lt;span class="caps"&gt;VGA&lt;/span&gt;, Audio, &amp;#8230; which make the device a lot more extendable and practical as a mulitpurpose home server.&lt;/p&gt;
&lt;h3&gt;The Software&lt;/h3&gt;
&lt;p&gt;Thanks to the work of &lt;a href="http://www.cyrius.com"&gt;Dr. Martin Michlmayr&lt;/a&gt; there is a Debian port for the Kirkwood platform readily available. He even wrote a tutorial on &lt;a href="http://www.cyrius.com/debian/kirkwood/sheevaplug/install.html"&gt;how to install Debian on a SheevaPlug&lt;/a&gt;. Installing Debian on an OpenRD is exactly the same except for one important detail: the &lt;code&gt;arcNumber&lt;/code&gt; variable.&lt;/p&gt;
&lt;p&gt;Once Debian is installed you can &lt;code&gt;apt-get&lt;/code&gt; or &lt;code&gt;aptitude&lt;/code&gt; almost all the software you are used to: webserver, samba, ruby, &amp;#8230;&lt;/p&gt;
&lt;h3&gt;The Alternatives&lt;/h3&gt;
&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/SheevaPlug"&gt;Sheevaplug&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://beagleboard.org"&gt;Beagle Board&lt;/a&gt; or other &lt;a href="http://processors.wiki.ti.com/index.php?title=OMAP3_Boards"&gt;OMAP3 SoC&amp;#8217;s&lt;/a&gt;. The IGEPv2 e.g. has wireless and wired network connections.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://www.pcengines.ch/alix.htm"&gt;Alix system Boards&lt;/a&gt; are mostly x86 based.&lt;/li&gt;
	&lt;li&gt;&lt;a href="http://en.wikipedia.org/wiki/NSLU2"&gt;NSLU2&lt;/a&gt; An &lt;span class="caps"&gt;ARM&lt;/span&gt; platform.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Future&lt;/h3&gt;
&lt;p&gt;The next version of the SoC is known as &lt;a href="http://www.marvell.com/products/processors/embedded/armada_300/"&gt;Marvell Armada 310/300&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 21 Jul 2010 10:24:23 GMT</pubDate>
      <title>Ijsland</title>
      <link>http://0110.be/artikels/lees/Ijsland</link>
      <author>Joren</author>
      <description>&lt;p&gt;Ijsland.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Thu, 22 Apr 2010 18:08:08 GMT</pubDate>
      <title>Doorhacking: Opening a Door With Your Cellphone</title>
      <link>http://0110.be/artikels/lees/Doorhacking%3A_Opening_a_Door_With_Your_Cellphone</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;strong&gt;The problem:&lt;/strong&gt; There is a group of people that want access to  &lt;a href="http://0x20.be"&gt;Hackerspace Ghent&lt;/a&gt; but there is only one remote to open the gate.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt; Build a system that reacts to a phone call by opening the gate if the number of the caller is whitelisted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What you need:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li&gt;A &lt;a href="http://beagleboard.org/"&gt;BeagleBoard&lt;/a&gt; or some &lt;a href="http://beagleboard.org/breeds"&gt;BeagleBoard alternative&lt;/a&gt; with a Linux distribution running on it. Any server running a unix like operating system should be usable.&lt;/li&gt;
	&lt;li&gt;A Huaweii e220 or an alternative &lt;span class="caps"&gt;GSM&lt;/span&gt; that supports (a subset of) AT commands and has a &lt;span class="caps"&gt;USB&lt;/span&gt; port.&lt;/li&gt;
	&lt;li&gt;A team of hackers that know how to solder something togeher. E.g. The hardware guys of hackerspace Ghent.&lt;/li&gt;
	&lt;li&gt;A &lt;a href="/attachment/be.0110/188/gatekeeper.py"&gt;python script&lt;/a&gt; that reacts to calls.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;The Hack&lt;/strong&gt;:  First of all try to get caller id working by following the &lt;a href="http://0110.be/artikels/lees/Caller_ID_with_Linux_and_Huawei_e220"&gt;Caller ID with Linux and Huawei e220 tutorial&lt;/a&gt;. If this works you can listen to the serial communication using &lt;a href="http://pyserial.sourceforge.net/"&gt;pySerial&lt;/a&gt; and react to a call. The following python code shows the wait for call method:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;def wait_for_call(self):&lt;br /&gt;
  self.data_channel.open()&lt;br /&gt;
  call_id_pattern = re.compile(&amp;#8216;.&lt;strong&gt;&lt;span class="caps"&gt;CLIP&lt;/span&gt;.&lt;/strong&gt;&amp;#8220;\&lt;ins&gt;([0-9]&lt;/ins&gt;)&amp;#8221;,.*&amp;#8217;)&lt;br /&gt;
  while True:&lt;br /&gt;
    bytes = self.data_channel.inWaiting()&lt;br /&gt;
    buffer = self.data_channel.readline(bytes)&lt;br /&gt;
    call_id_match = call_id_pattern.match(buffer)&lt;br /&gt;
    if call_id_match:&lt;br /&gt;
      number = call_id_match.group(1)&lt;br /&gt;
      self.handle_call(number)&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;The &lt;code&gt;handle_call&lt;/code&gt; method &amp;#8230; handles the call.&lt;/p&gt;
&lt;p&gt;The second thing that is needed is &lt;a href="http://blog.makezine.com/archive/2009/02/blinking_leds_with_the_beagle_board.html"&gt;a way to send a signal from the beagle board&lt;/a&gt; to the remote. Sending a signal from the beagle board using Linux is really simple. The following bash commands initialize, activate and deactivate a pin.&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;echo 168 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
echo &amp;#8220;high&amp;#8221; &amp;gt; /sys/class/gpio/gpio168/direction&lt;br /&gt;
echo &amp;#8220;low&amp;#8221; &amp;gt; /sys/class/gpio/gpio168/direction&lt;/p&gt;
&lt;/source&gt;</description>
    </item>
    <item>
      <pubDate>Wed, 21 Apr 2010 14:30:59 GMT</pubDate>
      <title>Reactie van Gast (21/04/10 - 14:30) op  Eindwerk over Beeldschermtechnologie&#235;n: LCD, PDP &amp; CRT</title>
      <link>http://0110.be/posts/lees/1714</link>
      <author>Gast</author>
      <description>thx</description>
    </item>
    <item>
      <pubDate>Sun, 18 Apr 2010 10:27:38 GMT</pubDate>
      <title>Jobsopschool.be beter beveiligd</title>
      <link>http://0110.be/artikels/lees/Jobsopschool.be_beter_beveiligd</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/185/SSL.png" alt="SSL icon" style="float:right"/&gt;Omdat er op jobsopschool gevoellige informatie te vinden is (bijvoorbeeld C.V.&amp;#8217;s van kandidaten) is de beveiliging ervan belangrijk. Om die veiligheid te garanderen werd de &lt;a href="https://jobsopschool.be"&gt;vacaturesite voor onderwijzers&lt;/a&gt; op een volledig dichtgetimmerde aparte virtuele server geplaatst. Een server met enkel de broodnodige software zorgt voor een veilige en snelle afhandeling van requests.&lt;/p&gt;
&lt;p&gt;Ook werd er voor gezorgd dat alle verkeer versleuteld wordt via &lt;acronym title="Secure Socket Layer"&gt;&lt;span class="caps"&gt;SSL&lt;/span&gt;&lt;/acronym&gt;. De lighttpd webserver server werd geconfigureerd met deze tutorial die de configuratie van &lt;a href="http://www.cyberciti.biz/tips/how-to-install-ssl-lighttpd-https-configuration.html"&gt;lighttpd met &lt;span class="caps"&gt;SSL&lt;/span&gt;&lt;/a&gt; bespreekt. Er werd een &lt;span class="caps"&gt;SSL&lt;/span&gt; certificaat van godaddy aangekocht omdat het root certificaat van godaddy in zowat alle browsers aanwezig is en omdat ze een redelijke prijs vragen.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Tue, 13 Apr 2010 20:00:57 GMT</pubDate>
      <title>Reactie van Gast (13/04/10 - 20:00) op  SQL-bestand met een lijst van alle Belgische postcodes en steden</title>
      <link>http://0110.be/posts/lees/1712</link>
      <author>Gast</author>
      <description>Dan maak je gewoon een functionele index aan, dan wordt de bewerking niet uitgevoerd in je query, maar is al voorbewerkt in de index. En dus wordt bij het sorteren een index gebruikt.CREATE INDEX idx_naam ON tabelnaam (translate(structure, ' ', 'z'));</description>
    </item>
    <item>
      <pubDate>Sun, 11 Apr 2010 18:09:13 GMT</pubDate>
      <title>Caller ID with Linux and Huawei e220</title>
      <link>http://0110.be/artikels/lees/Caller_ID_with_Linux_and_Huawei_e220</link>
      <author>Joren</author>
      <description>&lt;p&gt;&lt;img src="/attachment/be.0110/181/huawei_e220.jpg" title="huawei e220" style="float:right"&gt;This is the scenario: you have a Huawei e220, a linux computer and you want to react to a call from a set of predefined numbers. E.g. &lt;a href="/artikels/lees/Order_Pizza_with_USB_Pizza_Button"&gt;ordering a pizza&lt;/a&gt; when you receive a call from a certain number.&lt;/p&gt;
&lt;p&gt;The Huawei e220 supports a subset of the &lt;a href="http://en.wikipedia.org/wiki/AT_commands"&gt;AT commands&lt;/a&gt;, which subset is &lt;a href="http://forum.huawei.com/jive4/thread.jspa?threadID=324487"&gt;an enterprise secret&lt;/a&gt; of te Huawei company. So there is no documentation available for the device I bought, thanks Huawei. Anyhow when you attach the e220 to a Linux machine you should get two serial ports:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;/dev/ttyUSB0&lt;br /&gt;
/dev/ttyUSB1&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;To connect to the devices you can use a serial client. &lt;a href="http://www.gnu.org/software/screen/"&gt;&lt;span class="caps"&gt;GNU&lt;/span&gt; Screen&lt;/a&gt; can be used as a serial client like this: &lt;code&gt;screen /dev/ttyUSB0 115200&lt;/code&gt;. The first device, &lt;code&gt;ttyUSB0&lt;/code&gt; is used to control &lt;code&gt;ttyUSB1&lt;/code&gt;, so to enable caller ID on te Huawei e220 you need to send this message to &lt;code&gt;ttyUSB0&lt;/code&gt;:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;AT+CLIP=1&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;To check for calls you should listen to &lt;code&gt;ttyUSB1&lt;/code&gt;. A serial session for &lt;code&gt;ttyUSB1&lt;/code&gt; looks like:&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;^&lt;span class="caps"&gt;BOOT&lt;/span&gt;:44594282,0,0,0,6&lt;br /&gt;
^&lt;span class="caps"&gt;RSSI&lt;/span&gt;:18&lt;br /&gt;
&lt;span class="caps"&gt;RING&lt;/span&gt;&lt;br /&gt;
&lt;ins&gt;&lt;span class="caps"&gt;CLIP&lt;/span&gt;: &amp;quot;&lt;/ins&gt;33499311152&amp;quot;,145,,,,0&lt;br /&gt;
^&lt;span class="caps"&gt;BOOT&lt;/span&gt;:44594282,0,0,0,6&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;The &lt;code&gt;RING&lt;/code&gt; and &lt;code&gt;CLIP&lt;/code&gt; messages are the most interesting. The &lt;code&gt;RING&lt;/code&gt; signifies an incoming call, the &lt;code&gt;CLIP&lt;/code&gt; is the caller ID. The &lt;code&gt;BOOT&lt;/code&gt; and &lt;code&gt;RSSI&lt;/code&gt; are some kind of ping messages. The following Python script demonstrates a complete session that enables caller ID, waits for a phone call and prints the number of the caller.&lt;/p&gt;
&lt;source:python&gt;
&lt;p&gt;#!/usr/bin/env python&lt;br /&gt;
import serial, re&lt;/p&gt;
&lt;p&gt;command_channel = serial.Serial(&lt;br /&gt;
	port=&amp;#8216;/dev/ttyUSB0&amp;#8217;,&lt;br /&gt;
	baudrate=115200,&lt;br /&gt;
	parity=serial.PARITY_NONE,&lt;br /&gt;
	stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
	bytesize=serial.&lt;span class="caps"&gt;EIGHTBITS&lt;/span&gt;&lt;br /&gt;
)&lt;br /&gt;
command_channel.open()&lt;br /&gt;
#enable caller id&lt;br /&gt;
command_channel.write(&amp;#8220;AT+CLIP=1&amp;#8221; + &amp;#8220;\r\n&amp;#8221;)&lt;br /&gt;
command_channel.close()&lt;/p&gt;
&lt;p&gt;ser = serial.Serial(&lt;br /&gt;
	port=&amp;#8216;/dev/ttyUSB1&amp;#8217;,&lt;br /&gt;
	baudrate=9600,&lt;br /&gt;
	parity=serial.PARITY_NONE,&lt;br /&gt;
	stopbits=serial.STOPBITS_ONE,&lt;br /&gt;
	bytesize=serial.&lt;span class="caps"&gt;EIGHTBITS&lt;/span&gt;&lt;br /&gt;
)&lt;/p&gt;
&lt;p&gt;ser.open()&lt;/p&gt;
&lt;p&gt;pattern = re.compile(&amp;#8216;.&lt;strong&gt;&lt;span class="caps"&gt;CLIP&lt;/span&gt;.&lt;/strong&gt;&amp;#8220;\&lt;ins&gt;([0-9]&lt;/ins&gt;)&amp;#8221;,.*&amp;#8217;)&lt;/p&gt;
&lt;p&gt;while 1:&lt;br /&gt;
	buffer = ser.read(ser.inWaiting()).strip()&lt;br /&gt;
	buffer = buffer.replace(&amp;#8220;\n&amp;#8221;,&amp;quot;&amp;quot;)&lt;br /&gt;
	match = pattern.match(buffer)&lt;br /&gt;
	if match:&lt;br /&gt;
		number = match.group(1)&lt;br /&gt;
		print number&lt;/p&gt;
&lt;/source&gt;</description>
    </item>
    <item>
      <pubDate>Fri, 09 Apr 2010 14:07:04 GMT</pubDate>
      <title>YIN Pitch Tracker in JAVA</title>
      <link>http://0110.be/artikels/lees/YIN_Pitch_Tracker_in_JAVA</link>
      <author>Joren</author>
      <description>&lt;p&gt;To make &lt;a href="http://tarsos.0110.be/"&gt;Tarsos&lt;/a&gt; more portable I wrote a pitch tracker in pure &lt;span class="caps"&gt;JAVA&lt;/span&gt; using the &lt;a href="http://recherche.ircam.fr/equipes/pcm/cheveign/ps/2002_JASA_YIN_proof.pdf"&gt;&lt;span class="caps"&gt;YIN&lt;/span&gt; algorithm&lt;/a&gt; based on the implementation in C of &lt;a href="http://aubio.org"&gt;aubio&lt;/a&gt;. The implementation also uses some code written by Karl Helgasson and Teun de Lange of the &lt;a href="http://www.jazzperiments.com/jazzperiments.html"&gt;Jazzperiments project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It can be used to perform real time pitch detection or to analyse files. To use it as a real time pitch detector just start the &lt;a href="/attachment/be.0110/182/pitch_detector_yin.jar"&gt;&lt;span class="caps"&gt;JAR&lt;/span&gt;-file&lt;/a&gt; by double clicking. To analyse a file execute one of the following. The first results in a list of annotations (text), the second shows the annotations graphically.&lt;/p&gt;
&lt;source&gt;
&lt;p&gt;java -jar pitch_detector_yin.jar  flute.novib.mf.C5B5.wav&lt;br /&gt;
java -jar pitch_detector_yin.jar  &amp;#8212;file flute.novib.mf.C5B5.wav&lt;/p&gt;
&lt;/source&gt;
&lt;p&gt;The provided &lt;a href="/attachment/be.0110/184/flute.novib.mf.C5B5.wav"&gt;flute sample&lt;/a&gt; is from &lt;a href="http://theremin.music.uiowa.edu/MIS.html"&gt;&lt;i&gt;The Musical Samples&lt;/i&gt; library of the University of Iowa&lt;/a&gt; and converted to mono wav. The source code of the pitch tracker can be found below.&lt;/p&gt;</description>
    </item>
    <item>
      <pubDate>Sun, 21 Mar 2010 17:33:28 GMT</pubDate>
      <title>Reactie van Gast (21/03/10 - 17:33) op  Order Pizza with USB Pizza Button</title>
      <link>http://0110.be/posts/lees/1709</link>
      <author>Gast</author>
      <description>i'd find it more usefull if you could get it to work on openwrt using package/shellscripts without too much big libraries</description>
    </item>
    <item>
      <pubDate>Fri, 12 Mar 2010 14:06:31 GMT</pubDate>
      <title>Reactie van Gast (12/03/10 - 14:06) op  Rotel RA-812</title>
      <link>http://0110.be/posts/lees/1708</link>
      <author>Gast</author>
      <description>een half jaar geleden heb ik er een op de vlooienmarkt opgevist 40 euro.De beste 40 euro die ik in tijden heb besteed.Met een stel Dali's erop aangesloten heeft hij een natuurgetrouwe weergave en een mooie verdeling over het toonbereik. </description>
    </item>
    <item>
      <pubDate>Fri, 22 Jan 2010 17:48:21 GMT</pubDate>
      <title>Boids 3D with Processing</title>
      <link>http://0110.be/artikels/lees/Boids_3D_with_Processing</link>
      <author>Joren</author>
      <description>
				
            			
					
				
					
					
				
					
					
					
				
					
			
				
				
						
					
					
					
					
					
					
					
					
					
					
									
				
				
			
				
			</description>
    </item>
    <item>
      <pubDate>Mon, 18 Jan 2010 16:56:20 GMT</pubDate>
      <title>Reactie van Gast (18/01/10 - 16:56) op  Zelf een devilstick maken</title>
      <link>http://0110.be/posts/lees/1704</link>
      <author>Gast</author>
      <description>Hoelang moeten die kleine stokjes zijn?</description>
    </item>
    <item>
      <pubDate>Sat, 28 Nov 2009 16:35:42 GMT</pubDate>
      <title>Reactie van Gast (28/11/09 - 16:35) op  Zelf een devilstick maken</title>
      <link>http://0110.be/posts/lees/1703</link>
      <author>Gast</author>
      <description>Echt bedankt! Wrkt Perfect!</description>
    </item>
  </channel>
</rss>

