<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Zeta-Puppis.com &#187; Geekness</title>
	<atom:link href="http://zeta-puppis.com/category/geekness/feed/" rel="self" type="application/rss+xml" />
	<link>http://zeta-puppis.com</link>
	<description>my very own personal corner</description>
	<lastBuildDate>Wed, 07 Apr 2010 15:36:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Google Wave impressions from a developer point of view</title>
		<link>http://zeta-puppis.com/2009/08/28/google-wave-impressions-from-a-developer-point-of-view/</link>
		<comments>http://zeta-puppis.com/2009/08/28/google-wave-impressions-from-a-developer-point-of-view/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 22:47:04 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geekness]]></category>
		<category><![CDATA[beta]]></category>
		<category><![CDATA[developer]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[googlewave]]></category>
		<category><![CDATA[point of view]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[sandbox]]></category>
		<category><![CDATA[wave]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/?p=235</guid>
		<description><![CDATA[A couple of days ago I finally had my Google Wave sandbox account. Given that I just finished developing my very first robot, I thought I&#8217;d share some impressions on the whole thing. From the user-side, things are far from being ready. Some important features are still missing, just to name one you can&#8217;t remove [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of days ago I finally had my <a href="http://wave.google.com">Google Wave</a> sandbox account. Given that I just finished developing my very first robot, <strong>I thought I&#8217;d share some impressions</strong> on the whole thing. From the user-side, things are far from being ready. Some important features are still missing, just to name one you can&#8217;t remove user from a wave once they joined (or, alternatively, there&#8217;s no way to ignore a wave). Indeed, given that I joined several waves to try other people applications, I&#8217;m getting continuous notifications. But anyway, the whole thing is to me like a great development playground where I can make all the sorts of&nbsp;experiments.</p>
<p><span id="more-235"></span>They&#8217;ve been loyal: when you signed up the registration form, they asked you if you were comfortable with APIs changing or an instable system. That&#8217;s what you&#8217;ll find once you get your sandbox account. APIs are there but haven&#8217;t been fully documented yet and <strong>most of your work when developing some robot/gadget will be in exploring the API sources</strong> (they&#8217;re open source, yau!) or searching for some examples on the <a href="http://wave-samples-gallery.appspot.com/">samples gallery</a>, which is an invaluable resource by the&nbsp;way.</p>
<p><strong>Debugging is hard too</strong>, given that you can&#8217;t test what you done locally but you have to upload your code to <a href="http://appengine.google.com">AppEngine</a> to see if it works (actually AppEngine is the only platform they accept requests from, but they plan to allow every host that talks the <a href="http://www.waveprotocol.org">wave protocol</a> in the future). This means that if, for example, there&#8217;s some typo in the code (i.e.: <code>appendText()</code> rather than <code>AppendText()</code>), you&#8217;d know only by looking at the AppEngine&nbsp;logs.</p>
<p><strong>Be prepared to experience casual failures too</strong>. Sometimes your robot is working correctly and is receiving the whole wavelet (which is the whole conversation thread), but its response is ignored by the server for some unknown&nbsp;cause.</p>
<p>Anyway, even though there&#8217;s still some clear work in progress, I felt like <strong>the whole thing was quite exciting</strong> both from the user and as the developer point of view. The event model they thought for the external applications perfectly fits the nature of The Wave and gives room for some nice asynchronous applications. Hopefully, we&#8217;ll meet on Google Wave&nbsp;soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2009/08/28/google-wave-impressions-from-a-developer-point-of-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>My Italian PyCon experience</title>
		<link>http://zeta-puppis.com/2009/05/11/my-italian-pycon-experience/</link>
		<comments>http://zeta-puppis.com/2009/05/11/my-italian-pycon-experience/#comments</comments>
		<pubDate>Mon, 11 May 2009 10:42:00 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[BDFL]]></category>
		<category><![CDATA[conf]]></category>
		<category><![CDATA[florence]]></category>
		<category><![CDATA[pycon]]></category>
		<category><![CDATA[pycon3]]></category>
		<category><![CDATA[python italia]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/?p=216</guid>
		<description><![CDATA[I came back yesterday from the third Italian PyCon (aka pycon3) which was held in Florence and all I can say is that has been an amazing experience. I had the chance to meet a lot of new great people as well as the BDFL (which won&#8217;t be back in Europe for quite some time, [...]]]></description>
			<content:encoded><![CDATA[<p>I came back yesterday from the third Italian <a href="http://www.pycon.it">PyCon</a> (aka pycon3) which was held in Florence and all I can say is that has been an <strong>amazing experience</strong>. I had the chance to meet a lot of new great people as well as the <a href="http://neopythonic.blogspot.com">BDFL</a> (which won&#8217;t be back in Europe for quite some time, as he said). Here follows a resume of what I think were the most interesting&nbsp;talks.</p>
<p><span id="more-216"></span>On first day, there were two keynotes: &#8220;A retrospective of how the community helped build Python 3.0&#8221;, held by <strong>Guido van Rossum</strong> and &#8220;Zen and the art of Abstractions&#8217; maintenance&#8221; by Alex Martelli. I can just say that they were two extremely interesting talks which by the way weren&#8217;t diving too much&thinsp;&mdash;&thinsp;or any at all as in Guido&#8217;s talk&thinsp;&mdash;&thinsp;into&nbsp;code.</p>
<p>On the second day I really enjoyed two talks: &#8220;Erlang + Python, joining two worlds&#8221; by <a href="http://www.pycon.it/conference/speakers/lawrence-oluyede">Lawrence Oluyede</a> and a really great talk by Raymond Hettinger, &#8220;Easy AI with Python.&#8221; The former left me with a great curiosity about the functional languages world, while the latter really impressed me with <strong>how easy is to solve certain AI problems with Python</strong> (I solved many of the problems Raymond talked about previously, but never in Python and never really thought about even trying&nbsp;to).</p>
<p>On third day the <strong>Antonio Cangiano&#8217;s talk</strong> was enlightening. Even though it wasn&#8217;t really Python specific, he has given a great insight of how you can, well, &#8220;become rich with&nbsp;Python.&#8221;</p>
<p>Unfortunately I didn&#8217;t follow the Sunday afternoon&#8217;s talks since my airplane was leaving at 3.00pm, but at the end I can say that this was an incredible experience that I hope I can make again next year. And as a side note: <strong>the food was&nbsp;marvelous</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2009/05/11/my-italian-pycon-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Alsa, surround and CA0106</title>
		<link>http://zeta-puppis.com/2008/03/21/alsa-surround-and-ca0106/</link>
		<comments>http://zeta-puppis.com/2008/03/21/alsa-surround-and-ca0106/#comments</comments>
		<pubDate>Fri, 21 Mar 2008 15:36:09 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[alsa]]></category>
		<category><![CDATA[asoundrc]]></category>
		<category><![CDATA[ca0106]]></category>
		<category><![CDATA[mp3]]></category>
		<category><![CDATA[sound]]></category>
		<category><![CDATA[sound blaster]]></category>
		<category><![CDATA[surround]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2008/03/21/alsa-surround-and-ca0106/</guid>
		<description><![CDATA[This is more a remainder for me: in order to make the surround work for mp3s with the CA0106 driver with alsa (for me it&#8217;s a Sound Blaster Live! 24 bit), here&#8217;s the .asoundrc that should be&#160;used:
pcm.!dmix {
   type plug
   slave {
       pcm surround51
  [...]]]></description>
			<content:encoded><![CDATA[<p>This is more a remainder for me: in order to make the surround work for mp3s with the CA0106 driver with alsa (for me it&#8217;s a Sound Blaster Live! 24 bit), here&#8217;s the .asoundrc that should be&nbsp;used:</p>
<pre><code>pcm.!dmix {
   type plug
   slave {
       pcm surround51
       channels 6
   }
}
pcm.!default {
   type plug
   slave.pcm "dmix"
   slave.channels 6
   route_policy duplicate
}</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2008/03/21/alsa-surround-and-ca0106/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Now you know how to say hello in english</title>
		<link>http://zeta-puppis.com/2008/01/28/now-you-know-how-to-say-hello-in-english/</link>
		<comments>http://zeta-puppis.com/2008/01/28/now-you-know-how-to-say-hello-in-english/#comments</comments>
		<pubDate>Sun, 27 Jan 2008 23:57:51 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[bot]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[hello]]></category>
		<category><![CDATA[irc]]></category>
		<category><![CDATA[twisted]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2008/01/28/now-you-know-how-to-say-hello-in-english/</guid>
		<description><![CDATA[I have a love/hate relationship against the hello messages shown in all the world languages on flickr. That&#8217;s why this morning I was talking with a friend on IRC about this and a bad idea jumped in my mind: do an IRC bot that says hello in many languages when someone joins a&#160;channel.
It&#8217;s from several [...]]]></description>
			<content:encoded><![CDATA[<p>I have a love/hate relationship against the hello messages shown in all the world languages on flickr. That&#8217;s why this morning I was talking with a friend on IRC about this and a bad idea jumped in my mind: do an IRC bot that <b>says hello in many languages</b> when someone joins a&nbsp;channel.</p>
<p>It&#8217;s from several years that I don&#8217;t do anything IRC related, but this time I had <b>two special weapons</b> in my backpack: python and <a href="http://twistedmatrix.com/">twisted</a>. The final bot is ~90 lines of code, half of the which are for the hello list and the entire coding process took <b>less than 20&nbsp;minutes</b>.</p>
<p><span id="more-80"></span></p>
<p>Here follows the bot source code; note that this is in italian but could be easily translated in your&nbsp;language:</p>
<pre><code>#!/usr/bin/env python
# vim: set fileencoding=utf-8 :

from twisted.words.protocols import irc
from twisted.internet import reactor, protocol

import random

class HelloBot(irc.IRCClient):
    nickname = "Hola"
    channel = "channel"

    ciao = (
            ('arabo', 'hala'),
            ('bulgaro', 'zdrasti'),
            ('ceco', 'ahoj'),
            ('chamorro', 'hafa adai'),
            ('chichewa', 'moni bambo'),
            ('coreano', 'ahn nyeong'),
            ('croato', 'boke'),
            ('ensperanto', 'saluton'),
            ('francese', 'salut'),
            ('georgiano', 'gamardjoba'),
            ('greco', 'yia sou'),
            ('hawaiano', 'aloha'),
            ('inglese', 'hello'),
            ('irlandese', 'fáilte'),
            ('italiano', 'ciao'),
            ('klingon', 'nuqneH'),
            ('lussemburghese', 'moïen'),
            ('maori', 'kia ora'),
            ('navajo', 'ya\'at\'eeh'),
            ('nepalese', 'namaste'),
            ('polacco', 'czesc'),
            ('portoghese', 'olá'),
            ('rumeno', 'bun? ziua'),
            ('russo', 'pree-vyet'),
            ('serbo', 'dobar dan'),
            ('sloveno', 'živjo'),
            ('spagnolo', 'holà'),
            ('svedese', 'hej'),
            ('taitiano', 'ia orana'),
            ('tedesco', 'hallo'),
            ('turco', 'merhaba'),
            ('ucraino', 'pryvit'),
            ('vietnamese', 'xin chào'),
            ('zulu', 'sawubona'),
    )

    def connectionMade(self):
        irc.IRCClient.connectionMade(self)

    def connectionLost(self, reason):
        irc.IRCClient.connectionLost(self, reason)

    def signedOn(self):
        self.join(self.channel)

    def privmsg(self, user, channel, msg):
        user = user.split('!', 1)[0]
        # private message?
        if channel == self.nickname:
            self.msg(user, "I can't")
            return

    def irc_JOIN(self, user, channel):
        user = user.split('!')[0]
        channel = channel[0]

        x = random.randint(0, len(self.ciao) - 1)
        if user == self.nickname:
            msg = "%s! (ora sapete come dire ciao in %s)" % (self.ciao[x][1], self.ciao[x][0])
        else:
            msg = "%s %s! (ora sai come dire ciao in %s)" % (self.ciao[x][1], user, self.ciao[x][0])

        self.msg(channel, msg)

class StartBot(protocol.ClientFactory):
    protocol = HelloBot

    def clientConnectionLost(self, connector, reason):
        connector.connect()

    def clientConnectionFailed(self, connector, reason):
        print "Connection failed: ", reason
        reactor.stop()

if __name__ == '__main__':
    random.seed()
    f = StartBot()
    reactor.connectTCP("irc.server.com", 6667, f)
    reactor.run()
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2008/01/28/now-you-know-how-to-say-hello-in-english/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Another LinuxDay is gone</title>
		<link>http://zeta-puppis.com/2007/10/28/another-linuxday-is-gone/</link>
		<comments>http://zeta-puppis.com/2007/10/28/another-linuxday-is-gone/#comments</comments>
		<pubDate>Sun, 28 Oct 2007 17:35:17 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[linuxday]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[pyclutter]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2007/10/28/another-linuxday-is-gone/</guid>
		<description><![CDATA[And even this year, the LinuxDay is gone. This year we attracted more than 400 people and, as the other years, it has been an amazing experience!
So, thanks to all the visitors, to the LUGBari and to everyone else has contributed to make yesterday a great&#160;day.
Additionally, I published the slides of my yesterday&#8217;s presentation. If [...]]]></description>
			<content:encoded><![CDATA[<p>And even this year, <strong>the LinuxDay is gone</strong>. This year we attracted more than 400 people and, as the other years, it has been an amazing experience!<br />
So, thanks to all the visitors, to the LUGBari and to everyone else has contributed to make yesterday a great&nbsp;day.</p>
<p>Additionally, <strong>I published the slides</strong> of my yesterday&#8217;s presentation. If you&#8217;re interested, you can freely download them, but please note that they&#8217;re written in italian. You can found the PyGTK talk&#8217;s slides <a href="http://lugbari.org/~kratorius/pygtk_ld2007.pdf">here</a>, while the PyClutter&#8217;s slides can be found <a href="http://lugbari.org/~kratorius/pyclutter_ld2007.pdf">here</a> (sources <a href="http://lugbari.org/~kratorius/pygtk-ld2007.tar.bz2">here</a> and&nbsp;<a href="http://lugbari.org/~kratorius/pyclutter-ld2007.tar.bz2">here</a>).</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2007/10/28/another-linuxday-is-gone/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Now, if you&#8217;ll excuse me, I&#8217;m going to go home and have a heart attack</title>
		<link>http://zeta-puppis.com/2007/10/07/now-if-youll-excuse-me-im-going-to-go-home-and-have-a-heart-attack/</link>
		<comments>http://zeta-puppis.com/2007/10/07/now-if-youll-excuse-me-im-going-to-go-home-and-have-a-heart-attack/#comments</comments>
		<pubDate>Sun, 07 Oct 2007 17:30:59 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[clutter]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[linuxday]]></category>
		<category><![CDATA[pyclutter]]></category>
		<category><![CDATA[pygtk]]></category>
		<category><![CDATA[talk]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2007/10/07/now-if-youll-excuse-me-im-going-to-go-home-and-have-a-heart-attack/</guid>
		<description><![CDATA[It&#8217;s 2007. And it&#8217;s October. And there&#8217;s the LinuxDay this year too.
For those who doesn&#8217;t know, the LinuxDay is a day where every LUG promote Linux and the free software philosophy to everyone who&#8217;s&#160;interested.
Last year I had a talk about Inkscape and the vectorial graphic; this year, instead, I&#8217;ll hold two talks: an introduction to [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://zeta-puppis.com/wp-content/uploads/2007/10/linuxday_gray.png" alt="The LinuxDay 2007" style="float: right" />It&#8217;s 2007. And it&#8217;s October. And there&#8217;s the <a href="http://lugbari.org/bin/view/Main/LinuxDay2007">LinuxDay</a> this year too.<br />
For those who doesn&#8217;t know, the LinuxDay is a day where every LUG <strong>promote Linux and the free software philosophy</strong> to everyone who&#8217;s&nbsp;interested.</p>
<p>Last year I had a talk about Inkscape and the vectorial graphic; this year, instead, I&#8217;ll hold two talks: <strong>an introduction to PyGTK</strong> and <strong>an introduction to&nbsp;PyClutter</strong>.</p>
<p>So, if you don&#8217;t have anything to do on October 27th and you live near Bari, <strong>why don&#8217;t you join us</strong> in the&nbsp;LinuxDay?</p>
<p style="text-align: center"><em>(the title is a quote from a <a href="http://www.imdb.com/title/tt0110912/">Tarantino&#8217;s film</a>, do you like&nbsp;it?)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2007/10/07/now-if-youll-excuse-me-im-going-to-go-home-and-have-a-heart-attack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Beamer paragraph spacing</title>
		<link>http://zeta-puppis.com/2007/10/05/beamer-paragraph-spacing/</link>
		<comments>http://zeta-puppis.com/2007/10/05/beamer-paragraph-spacing/#comments</comments>
		<pubDate>Fri, 05 Oct 2007 21:09:22 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[interline]]></category>
		<category><![CDATA[latex]]></category>
		<category><![CDATA[paragraph]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[spacing]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2007/10/05/beamer-paragraph-spacing/</guid>
		<description><![CDATA[If you, like me, are about to hold a presentation and you&#8217;re writing this presentation in LaTex (with beamer), and you want to change the paragraph spacing (or the so called interline), all you have to do is to put this line somewhere in your&#160;document:
\setlength{\parskip}{10pt plus 1pt minus 1pt}
and after this line, all the paragraph [...]]]></description>
			<content:encoded><![CDATA[<p>If you, like me, are about to hold a presentation and you&#8217;re writing this presentation in LaTex (with beamer), and you want to <strong>change the paragraph spacing</strong> (or the so called <em>interline</em>), all you have to do is to put this line somewhere in your&nbsp;document:</p>
<pre><code>\setlength{\parskip}{10pt plus 1pt minus 1pt}</code></pre>
<p>and <strong>after</strong> this line, all the paragraph will have the chosen interline (of course, you need to adjust the parameters according to your&nbsp;needs).</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2007/10/05/beamer-paragraph-spacing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When you&#8217;re a collector (and a programmer)</title>
		<link>http://zeta-puppis.com/2007/09/14/when-youre-a-collector-and-a-programmer/</link>
		<comments>http://zeta-puppis.com/2007/09/14/when-youre-a-collector-and-a-programmer/#comments</comments>
		<pubDate>Fri, 14 Sep 2007 14:28:36 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Coding]]></category>
		<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Me]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gtk]]></category>

		<guid isPermaLink="false">http://zeta-puppis.com/2007/09/14/when-youre-a-collector-and-a-programmer/</guid>
		<description><![CDATA[As above, when you&#8217;re both a collector and a programmer, strange things could happen. I&#8217;m a beer coaster collector and my collection now reached 250+ unique items so it became a bit a mess to keep that well&#160;organized.
So that&#8217;s why a developed BeerCoaster manager. Yes, I done a program that help me to keep my [...]]]></description>
			<content:encoded><![CDATA[<p>As above, when you&#8217;re both a collector and a programmer, strange things could happen. I&#8217;m a <strong>beer coaster</strong> collector and my collection now reached 250+ unique items so it became a bit a mess to keep that well&nbsp;organized.</p>
<p>So that&#8217;s why a developed <strong>BeerCoaster manager</strong>. Yes, I done a program that help me to keep my collection organized. It is still a bit rudimentary but does  its job pretty well. So, if you&#8217;re a beer coaster collector like me, you&#8217;ll found this&nbsp;useful.</p>
<p>It&#8217;s written in Python and uses sqlite as database to store it&#8217;s informations, so <strong>it is portable</strong> across various platforms (i.e.: you can copy &amp; paste your files from Linux to Windows and it will keep&nbsp;working).</p>
<p>Currently, it can be downloaded only by SVN and it <strong>is everything but stable</strong>. I hope to release something good within the end of&nbsp;year.</p>
<p>The project homepage is hosted on Google project:&nbsp;<a href="http://bcmanager.googlecode.com/">http://bcmanager.googlecode.com/</a></p>
<p>Getting it working under Windows, currently, is really hard: for the final releases, though, I should provide a <strong>Windows&nbsp;installer</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2007/09/14/when-youre-a-collector-and-a-programmer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Fonera and its MTU (and the non-working wireless connection)</title>
		<link>http://zeta-puppis.com/2007/02/06/fonera-and-its-mtu-and-the-non-working-wireless-connection/</link>
		<comments>http://zeta-puppis.com/2007/02/06/fonera-and-its-mtu-and-the-non-working-wireless-connection/#comments</comments>
		<pubDate>Tue, 06 Feb 2007 11:14:34 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>
		<category><![CDATA[Kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://kratorius.simosnap.net/2007/02/06/fonera-and-its-mtu-and-the-non-working-wireless-connection/</guid>
		<description><![CDATA[A friend of mine recently bought the La Fonera (no, not really&#8230; he just had it as gift since the fon&#8217;s guys were givin&#8217; it for free during the holidays), but he had some issues: the wireless connection wasn&#8217;t working as expected: most of the time the signal was lost and I can&#8217;t understand why [...]]]></description>
			<content:encoded><![CDATA[<p>A friend of mine recently bought the La Fonera (no, not really&#8230; he just had it as gift since the fon&#8217;s guys were givin&#8217; it for free during the holidays), but he had some issues: the wireless connection wasn&#8217;t working as expected: most of the time the signal was lost and I can&#8217;t understand why since the signal&#8217;s power was strong enough. So I said to myself &#8220;that&#8217;s time to work on&#8221;.  And now here I am&nbsp;:)</p>
<p><span id="more-35"></span><br />
Let say that I first thought that the problem was the WPA, so I changed the authentication to WEP but the result didn&#8217;t&nbsp;changed.</p>
<p>First of all: this Fonera comes with the 0.7.1-1 (or 0.7.1 r1, as you want to call it, it&#8217;s the same) firmware, so it&#8217;s &#8220;hackable&#8221; with exploits published by several sources. But as you connect the Fonera to internet, it automatically downloads the new 0.7.1-2 firmware that apply a patch to the web interfaces so you can&#8217;t use that exploits anymore. Why do I wanted to exploit it? Well, my intentions wasn&#8217;t to exploit it to get the Fonera unlocked, I just needed a ssh connection because I wanted to understand why the wireless signal was&nbsp;lost.</p>
<p>When you exploited it (I won&#8217;t tell you how to do, google is full of this information) and finally you had access to a ssh connection, you&#8217;ll get something like&nbsp;this:</p>
<pre><code>kratorius@becks:~$ ssh root@169.254.255.1
root@169.254.255.1's password:

BusyBox v1.1.3 (2006.11.21-19:49+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
_______  _______  _______
|   ____||       ||   _   |
|   ____||   -   ||  | |  |
|   |    |_______||__| |__|
|___|
Fonera Firmware (Version 0.7.1 rev 1) -------------
*
* Based on OpenWrt - http://openwrt.org
* Powered by FON - http://www.fon.com
---------------------------------------------------

root@OpenWrt:~#</code></pre>
<p>The root&#8217;s password for ssh is &#8220;admin&#8221;.  Well, we have access into the router, so where should we begin to look at? Obviously, let see what dmesg says. You&#8217;ll soon notice that the log is literally full of this&nbsp;printk&#8217;statement:</p>
<pre><code>wifi0: stuck beacon; resetting (bmiss count 4)</code></pre>
<p>And let see the ifconfig&#8217;s&nbsp;output:</p>
<pre><code>root@OpenWrt:~# ifconfig
ath1      Link encap:Ethernet  HWaddr 00:18:84:18:0A:72
inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST  MTU:2290  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0      Link encap:Ethernet  HWaddr 00:18:84:18:0A:70
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
RX packets:743 errors:0 dropped:0 overruns:0 frame:0
TX packets:1415 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:63354 (61.8 KiB)  TX bytes:630340 (615.5 KiB)
Interrupt:4 Base address:0x1000

eth0:1    Link encap:Ethernet  HWaddr 00:18:84:18:0A:70
inet addr:169.254.255.1  Bcast:169.254.255.255  Mask:255.255.0.0
UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
Interrupt:4 Base address:0x1000
lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wifi0     Link encap:Ethernet  HWaddr 00:18:84:18:0A:71
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:2119 errors:0 dropped:0 overruns:0 frame:128
TX packets:280 errors:116 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:199
RX bytes:124155 (121.2 KiB)  TX bytes:31857 (31.1 KiB)
Interrupt:3 Memory:b0000000-b00ffffc</code></pre>
<p>Do you see anything strange? Sure? Did you look at the <acronym title="Maximum Transfer Unit">MTU</acronym> value in ath1? Yes, it&#8217;s 2290. And it&#8217;s so damn high. For an ethernet connection such value should be between 1000 and 2000 but usually for wireless connection it is set to 1492. Well change it to 1492&nbsp;with:</p>
<pre><code>root@OpenWrt:~# ifconfig ath1 mtu 1492</code></pre>
<p>And you&#8217;ll get everything working. Obviously, you should disable the automatic firmware update, otherwise as soon as the Fonera updates its firmware you&#8217;ll get your wireless connection not working again. This is done by commenting the last line in /bin/thinclient (there&#8217;s written &#8220;. /tmp/.thinclient.sh&#8221;, just put a # in front of it). And now you can use the&nbsp;Fonera.</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2007/02/06/fonera-and-its-mtu-and-the-non-working-wireless-connection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I&#8217;m about to become a FONero!</title>
		<link>http://zeta-puppis.com/2006/07/06/im-about-to-become-a-fonero/</link>
		<comments>http://zeta-puppis.com/2006/07/06/im-about-to-become-a-fonero/#comments</comments>
		<pubDate>Thu, 06 Jul 2006 13:49:00 +0000</pubDate>
		<dc:creator>kratorius</dc:creator>
				<category><![CDATA[Geekness]]></category>

		<guid isPermaLink="false">http://kratorius.simosnap.net/2006/07/06/im-about-to-become-a-fonero/</guid>
		<description><![CDATA[Today I bought the FON social router for just 17.40€ (the router costs 5€ + 2.40€ of VAT and 10€ of shipping fees). I should get a Linksys WRT54GL/GS (or Buffalo WHRG54S, but is much more probable that I&#8217;ll get the Linksys) in a relative short time.
Here it is:

I&#8217;m going to become a&#160;FONero!
]]></description>
			<content:encoded><![CDATA[<p>Today I bought the FON social router for just 17.40€ (the router costs 5€ + 2.40€ of VAT and 10€ of shipping fees). I should get a Linksys WRT54GL/GS (or Buffalo WHRG54S, but is much more probable that I&#8217;ll get the Linksys) in a relative short time.<br />
Here it is:<br />
<img src="http://img68.imageshack.us/img68/6439/routertienda1gk0.gif" alt="The FON router" height="144" width="198" /><br />
I&#8217;m going to become a&nbsp;FONero!</p>
]]></content:encoded>
			<wfw:commentRss>http://zeta-puppis.com/2006/07/06/im-about-to-become-a-fonero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
