<?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>Happy coding</title>
	<atom:link href="http://blogs.igalia.com/eocanha/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blogs.igalia.com/eocanha</link>
	<description>A Free Software developer weblog</description>
	<lastBuildDate>Sun, 06 Jun 2010 01:25:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Meiga 0.3.4 released</title>
		<link>http://blogs.igalia.com/eocanha/?p=213</link>
		<comments>http://blogs.igalia.com/eocanha/?p=213#comments</comments>
		<pubDate>Sun, 06 Jun 2010 01:23:37 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=213</guid>
		<description><![CDATA[A new minor version of Meiga is out. This time there are no new features, only bugfixes and a more robust building process that now makes possible to publish Meiga from a Ubuntu PPA.
Latest information, including the source code, install instructions and previous versions can be found in the project website: http://meiga.igalia.com
]]></description>
			<content:encoded><![CDATA[<p>A new minor version of Meiga is out. This time there are no new features, only bugfixes and a more robust building process that now makes possible to publish Meiga from a <a href="https://launchpad.net/~eocanha/+archive/meiga">Ubuntu PPA</a>.</p>
<p>Latest information, including the source code, install instructions and previous versions can be found in the project website: <a href="http://meiga.igalia.com">http://meiga.igalia.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=213</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>A practical recipe to enqueue interesting stuff to read in free time</title>
		<link>http://blogs.igalia.com/eocanha/?p=210</link>
		<comments>http://blogs.igalia.com/eocanha/?p=210#comments</comments>
		<pubDate>Fri, 04 Jun 2010 12:04:59 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Personal (english)]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=210</guid>
		<description><![CDATA[I guess some of you already know about del.icio.us as a very useful tool to organize the random webpages about interesting stuff that you find in the internet while casually browsing.
What I&#8217;ve realized today is that Delicious can also offer your bookmarks as an RSS feed and you can take advantage of that feature to [...]]]></description>
			<content:encoded><![CDATA[<p>I guess some of you already know about <a href="http://del.icio.us">del.icio.us</a> as a very useful tool to organize the random webpages about interesting stuff that you find in the internet while casually browsing.</p>
<p>What I&#8217;ve realized today is that Delicious can also <a href="http://thinkwasabi.com/2006/09/usando-los-rss-de-delicious/">offer your bookmarks as an RSS feed</a> and you can take advantage of that feature to keep a TO DO list of websites and articles you&#8217;d like to have a look at. It&#8217;s simple, just bookmark the interesting pages in Delicious with a &#8220;todo&#8221; tag and then subscribe to http://feeds.delicious.com/rss/<i>user</i>/todo using your favorite RSS reader.</p>
<p>You&#8217;ll have a nice feed ready to be reviewed. The expiration policy of you feed reader will track those pages already reviewed and hide them to you.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=210</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Libertexto: integrating Evince into Firefox</title>
		<link>http://blogs.igalia.com/eocanha/?p=182</link>
		<comments>http://blogs.igalia.com/eocanha/?p=182#comments</comments>
		<pubDate>Fri, 16 Apr 2010 00:11:09 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Free Software Master]]></category>
		<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=182</guid>
		<description><![CDATA[These months I&#8217;ve been collaborating in Libertexto development. Libertexto, a project coordinated by Rafael Ibáñez, will be a Firefox extension whose goal is to allow the user to do some text comprehension tasks (highlight, add annotations and create bookmarks) and concept mapping tasks (manage a tree of &#8220;lexias&#8221; or units with semantic content) on HTML [...]]]></description>
			<content:encoded><![CDATA[<p>These months I&#8217;ve been collaborating in <a href="http://www.libertexto.org">Libertexto</a> development. Libertexto, a project coordinated by Rafael Ibáñez, will be a Firefox extension whose goal is to allow the user to do some text comprehension tasks (highlight, add annotations and create bookmarks) and concept mapping tasks (manage a tree of &#8220;lexias&#8221; or units with semantic content) on HTML and PDF documents.</p>
<p><b>Multiplatform</b></p>
<p>So far, I&#8217;ve mainly been involved in the task of integrating Evince into Firefox. The goal was not only to provide support for PDF document viewing, but also to adapt Evince to manage the communication with the Firefox extension and to provide the required functionalities and GUI interaction. The fact that Libertexto has to work both in Linux (Ubuntu Jaunty) and Windows made the task more challenging and had an important influence in the design decissions.</p>
<p><center><br />
<a href="http://people.igalia.com/eocanha/dev/libertexto/libertexto_windows.png"><img src="http://people.igalia.com/eocanha/dev/libertexto/libertexto_windows_thumb.png" border="0" /></a><br />
</center></p>
<p><b>The plugin</b></p>
<p>The main idea was to write a plugin registered to visualize documents having the &#8220;application/pdf&#8221; mime type, using Evince for that, and interact with the XUL/Javascript code to coordinate everything. The <a href="http://git.webvm.net/?p=npsimple">npsimple</a> example was very valuable to learn how to code a multiplatform basic plugin implementing the <a href="https://developer.mozilla.org/en/Gecko_Plugin_API_Reference">Netscape Plugin API (NPAPI)</a>. These first testings (with the help of <a href="http://www.dependencywalker.com/">Dependency walker</a>) showed me that the plugin code would only load if compiled with the same compiler used to build Firefox. That means forgetting Cygwin, MinGW32 and other Windows platform free stuff and compile using <a href="http://www.microsoft.com/express/download/">Visual C++</a>, getting the headers from the <a href="https://developer.mozilla.org/en/Creating_XPCOM_Components/Setting_up_the_Gecko_SDK">Mozilla SDK</a>.</p>
<p><b>Communications: first try</b></p>
<p>Once I had a plugin that did nothing, I looked for ways to communicate it with Firefox. I tried some <a href="http://www.iosart.com/firefox/xpcom">XPCOM examples</a> and <a href="https://addons.mozilla.org/en-US/firefox/addon/7979">debug tools</a> without much luck, so I finally decide to use alternative ways of communication when I needed to.</p>
<p><b>Compiler restrictions</b></p>
<p>At this point I focused in compiling Evince for Windows. I chose Evince 2.28.0 because it had been already compiled for Windows by <a href="http://gitorious.org/~hiberis">Hib Eris</a>. I found him in the #evince IRC channel and he pointed me to the <a href="https://launchpad.net/~hiberis/+archive/mingw32libs">Ubuntu PPA</a> he had used to cross compile for Windows using MinGW32. He also confirmed to me that mixing MinGW32 compiled apps with MSVC compiled apps is a problem because MinGW32 compilations are dependant on <code>msvcrt.dll</code>, while recent MSVC compilations depend on <code>msvcrt80.dll</code> or <code>msvcrt90.dll</code>. That explains why I couldn&#8217;t compile the plugin with the MinGW32 toolchain from Windows. Forget also about converting Evince itself into a plugin (implementing NPAPI), because it won&#8217;t load. There&#8217;s currently no easy solution, but to compile everything with MSVC (not tried before) or keep applications split.</p>
<p><b>Embedding the window</b></p>
<p>After having compiled Evince and all its dependencies for both operating systems I modified the plugin to start Evince each time a new document was loaded. Next step was to find a way to embed Evince in Firefox, because having it as an independent window was not an option. The plugin was given a window ID (<code>XID</code> in X11, <code>HWND</code> in Windows), so I modified Evince to receive it as an extra parameter and use <code>gtk_window_reparent()</code> to &#8220;hijack&#8221; the window that Firefox provided. Of course, using <a href="http://mozplugger.mozdev.org/">Mozplugger</a> is much easier, but it&#8217;s not supported in Windows, so I had to do it by hand. After some tweaking and having to disable DBUS support to get exactly one process per document (in Linux), it worked in both systems. In Windows I ended up with refresh and focus problems, but I didn&#8217;t go further.</p>
<p><b>Communications: second try</b></p>
<p>At this point, the key was to have a reliable communication system between Evince and the plugin. DBUS would have been good for Linux, but would bring too much problems in Windows (everything should be installed or work from the Firefox extension bundle and I&#8217;d need a way to use DBUS from javascript). Standard IPC methods (eg: shared memory) would be a problem too, because I hadn&#8217;t managed to successfully develop XPCOM components that could access low level C functions to use that IPC methods. However, there&#8217;s one thing that always work: plain old HTTP requests. They are supported in the Firefox side using XMLHttpRequest and in the Evince side using <a href="http://live.gnome.org/LibSoup">libsoup-2.4</a>. I had experience using libsoup in <a href="http://meiga.igalia.com">Meiga</a>, so it wasn&#8217;t difficult for me to set up a bidirectional realtime communication middleware using the AJAX paradigm.</p>
<p>The initial port handshake is a bit tricky, though. Remember that there&#8217;s no way for the Firefox extension, the plugin and Evince to talk to each other before this handshake. The process is as follows:</p>
<ol>
<li>The user opens a URL containing a PDF, so the PDF plugin is invoked. If the plugin is in Linux and detects that libertexto hasn&#8217;t been installed in <code>/usr/local/libertexto-0.0.5</code> yet, it triggers the install script and waits until the process is completed. Then continues.</li>
<li>Using dll/so API calls on the first load, the plugin gets the path where <code>nplibertexto.dll</code>/<code>.so</code> is installed (eg: <code>/home/user/.mozilla/firefox/ky712h81.default/extensions/libertexto-0.0.5@libresoft.es/platform/Linux_x86-gcc3</code>). From that path it gets the extension path (<code>...libertexto-0.0.5@libresoft.es</code>) and builds the xid directory path (<code>...libertexto-0.0.5@libresoft.es/xid</code>)</li>
<li>The plugin gets the URL and the downloaded file name through NPAPI. It then launches Evince (fixed location in Linux, variable location under the extension dir in Windows) with the following parameters: <code>evince --xid 0x6800001 --libertexto-path /home/user/.mozilla/firefox/ky712h81.default/extensions/libertexto-0.0.5@libresoft.es/xid /home/user/local_links.pdf</code>.</li>
<li>Evince opens the file, hijacks the window with handler 0&#215;6800001 and starts a web server on a random port of 127.0.0.1 which will wait for incoming connections. Then the port number is written to a file named <code>0x6800001</code> in the xid directory.</li>
<li>The plugin has been waiting up to 5 seconds and monitoring the xid directory for new files. When it finds a new one, reads it and inserts the (xid, process id, MD5 sum of the URL, port) into a <code>children</code> array for further use. Each time the <code>children</code> array changes, the file <code>libertexto-0.0.5@libresoft.es/libertexto-docs</code> is regenerated. That file has the URL MD5 sum and port, one line per document.</li>
<li>The file is available as <code>resource://libertexto-docs/</code> to the Firefox extension and it&#8217;s monitored each 5 seconds using XMLHttpRequest (it can also read local files). That way, the extension keeps a table of open documents and their ports.</li>
<li>Each time the extension detects a new entry in the table, it connects to the port using XMLHttpRequest on a special &#8220;receive&#8221; URL (eg: <code>http://127.0.0.1:53162/receive</code>) and reads and attends any pending messages that Evince would like to communicate. If there are no more messages, just keeps waiting for one to come. When one comes, the network dispatcher in the Libertexto extension attends it, closes the connection and restarts it to wait again. Evince code just enqueues outgoing messages and writes them when the extension (re)opens the connection.</li>
<li>If it&#8217;s the extension who wants to send a message to Evince, a request is made to a &#8220;send&#8221; url (eg: <code>http://127.0.0.1:53162/send?action=test&#038;param1=value1&#038;param2=value2</code>). There&#8217;s also another network dispatcher in Evince that processes incoming messages and calls the corresponding function of <code>EvApplication</code>.</li>
<li>When the document is closed, the plugin code is informed by NPAPI and just ensures that Evince is killed, the <code>0x6800001</code> xid file is removed and <code>libertexto-docs</code> is rebuilt.</li>
</ol>
<p><b>Packaging</b></p>
<p>It was time to polish a little bit the building and packaging environment. Different binary sets for different platforms can be provided using the <code>platform</code> directory in the Firefox extension package. In Windows, there&#8217;s no problem in relocating a GNOME app where you want, as there&#8217;s specific code to locate the data and config dirs, but in Linux it has to be installed in a fixed location, so I prepared a very basic installation script for that platform to be executed by the plugin the first time that the user opens a document.</p>
<p><b>Functionalities</b></p>
<p>With the infrastructure ready, I started to hack on Evince and implement the required functionalities (and the related middleware messages in both sides):</p>
<ul>
<li>Get the text directly selected by the user</li>
<li>Scroll to a specified position of a specified page in a document</li>
<li>Highlight some (preselected) text with the specified color</li>
<li>Set an &#8220;start of selection&#8221; internal mark</li>
<li>Set an &#8220;end of selection&#8221; internal mark and then select the text between the start and the end of selection</li>
<li>Show the &#8220;create new item&#8221; option in the context menu and pass that command to the Firefox extension</li>
<li>Overimpress an annotation with some arbitrary text</li>
<li>Overimpress some icons that would trigger some commands on the current items</li>
</ul>
<p>For some of them, specially those related to text highlighting and annotations, the advice from <a href="http://carlosgc.linups.org/">Carlos García Campos</a> was very helpful. Shell, view, document and backend layers, the pixbuf cache, the jobs system&#8230; Evince is a big project and I needed some time to get used and understand it, but it has a lot of things to learn. I enjoyed very much this development stage. <img src='http://blogs.igalia.com/eocanha/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>When all the PDF side functionalities were completed, I removed all the unneeded GUI options from Evince and adapted the Libertexto extension panel to produce and handle the required middleware messages needed to manage the user interaction.</p>
<p><center><br />
<a href="http://people.igalia.com/eocanha/dev/libertexto/libertexto_linux.png"><img src="http://people.igalia.com/eocanha/dev/libertexto/libertexto_linux_thumb.png" border="0" /></a><br />
</center></p>
<p><b>The result</b></p>
<p>Although the project still lacks part of the control and HTML modules functionalities, I got Evince integration working in this nice prototype.</p>
<p>You can download it as: <a href="http://people.igalia.com/eocanha/dev/libertexto/libertexto.xpi">libertexto.xpi</a>. Please note that this file will probably evolve, being overwritten with newer versions.</p>
<p>Until the whole project gets released, a <a href="http://gitorious.org/libertexto-evince/libertexto-evince/commits/libertexto">shapshot of the Evince branch code is published in Gitorious</a> for you to have a look.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=182</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meiga 0.3.3 released</title>
		<link>http://blogs.igalia.com/eocanha/?p=178</link>
		<comments>http://blogs.igalia.com/eocanha/?p=178#comments</comments>
		<pubDate>Sat, 10 Apr 2010 00:35:39 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=178</guid>
		<description><![CDATA[The two main features of this new 0.3.3 release of Meiga are the new redirection support for FON routers (Fonera v1) and memory optimizations for large files, so serving a video file of 1GB won&#8217;t eat up all your memory.
Apart from that, some bugs have been solved, the autotools config has been updated (thanks to [...]]]></description>
			<content:encoded><![CDATA[<p>The two main features of this new 0.3.3 release of Meiga are the new redirection support for FON routers (Fonera v1) and memory optimizations for large files, so serving a video file of 1GB won&#8217;t eat up all your memory.</p>
<p>Apart from that, some bugs have been solved, the autotools config has been updated (thanks to Javier Jardón), a startup notification has been added (thanks to Rajeesh K Nambiar) and the file size is now passed to the browser, so you&#8217;re going to have now a decent progress bar.</p>
<p>As always, you can download it from <a href="http://meiga.igalia.com">http://meiga.igalia.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=178</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shishen Sho compiled for N900</title>
		<link>http://blogs.igalia.com/eocanha/?p=173</link>
		<comments>http://blogs.igalia.com/eocanha/?p=173#comments</comments>
		<pubDate>Sun, 21 Feb 2010 02:11:36 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Maemo]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=173</guid>
		<description><![CDATA[I&#8217;ve recalled about my old Shishen Sho game, originally developed for N810 (Maemo4) and I was wondering if it would compile for N900 (Maemo5). Well, after some minor corrections to make it work in a more recent version of Vala, it compiled. You can downloaded it here:
https://garage.maemo.org/frs/download.php/7573/shishensho_0.3.1-maemo5_armel.deb
Disclaimer: It&#8217;s compiled &#8220;as is&#8221;, with no adaption for [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve recalled about my old <a href="https://garage.maemo.org/projects/shishensho/">Shishen Sho</a> game, originally developed for N810 (Maemo4) and I was wondering if it would compile for N900 (Maemo5). Well, after some minor corrections to make it work in a more recent version of Vala, it compiled. You can downloaded it here:</p>
<p><a href="https://garage.maemo.org/frs/download.php/7573/shishensho_0.3.1-maemo5_armel.deb">https://garage.maemo.org/frs/download.php/7573/shishensho_0.3.1-maemo5_armel.deb</a></p>
<p>Disclaimer: It&#8217;s compiled &#8220;as is&#8221;, with no adaption for sliding menus, no new hardware keys and no new fancy features. It just works and will let you have a good time while waiting for the bus.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=173</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>La Fonera support</title>
		<link>http://blogs.igalia.com/eocanha/?p=170</link>
		<comments>http://blogs.igalia.com/eocanha/?p=170#comments</comments>
		<pubDate>Sun, 14 Feb 2010 02:01:36 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=170</guid>
		<description><![CDATA[Do you have a Fonera (version 1) router? Now Meiga can talk to it to redirect ports, so content sharing to the Internet is going to be easier for you from now on.
By now this feature is only in the git HEAD, but stay tuned for more features to come and for a new release [...]]]></description>
			<content:encoded><![CDATA[<p>Do you have a Fonera (version 1) router? Now Meiga can talk to it to redirect ports, so content sharing to the Internet is going to be easier for you from now on.</p>
<p>By now this feature is only in the git HEAD, but stay tuned for more features to come and for a new release to be published.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=170</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Meiga 0.3.2 released</title>
		<link>http://blogs.igalia.com/eocanha/?p=164</link>
		<comments>http://blogs.igalia.com/eocanha/?p=164#comments</comments>
		<pubDate>Sun, 07 Feb 2010 20:30:11 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=164</guid>
		<description><![CDATA[This new release doesn&#8217;t use GtkBuilder anymore, so the GUI problems caused by incompatibilities between GtkBuilder versions shouldn&#8217;t be noticed now.
Files are now iterated instead of being mapped into memory. This makes Meiga a little bit slower but allows execution on low memory machines, as suggested by Steven.
Meiga now also works in Karmic. Just use [...]]]></description>
			<content:encoded><![CDATA[<p>This new release doesn&#8217;t use GtkBuilder anymore, so the GUI problems caused by incompatibilities between GtkBuilder versions shouldn&#8217;t be noticed now.</p>
<p>Files are now iterated instead of being mapped into memory. This makes Meiga a little bit slower but allows execution on low memory machines, as suggested by Steven.</p>
<p>Meiga now also works in Karmic. Just use the Jaunty packages and they will work fine. You can get it from <a href="http://meiga.igalia.com">http://meiga.igalia.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=164</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Connecting a laptop to the internet with Yoigo trough N900 using bluetooth</title>
		<link>http://blogs.igalia.com/eocanha/?p=157</link>
		<comments>http://blogs.igalia.com/eocanha/?p=157#comments</comments>
		<pubDate>Mon, 21 Dec 2009 14:52:17 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Maemo]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=157</guid>
		<description><![CDATA[Some simple steps to do tethering over bluetooth to connect to Yoigo Spanish carrier:

Enable the Maemo Extras-devel catalog (URL: http://repository.maemo.org/extras-devel, Distribution: fremantle, Components: free non-free) and install &#8220;Bluetooth Dial-up Networking&#8221;.
In your computer, edit /etc/bluetooth/rfcomm.conf to look like this, but using your own bluetooth device address (use hcitool scan from your laptop to get it):

rfcomm1 {
 [...]]]></description>
			<content:encoded><![CDATA[<p>Some simple steps to do tethering over bluetooth to connect to Yoigo Spanish carrier:</p>
<ol>
<lI>Enable the Maemo Extras-devel catalog (URL: http://repository.maemo.org/extras-devel, Distribution: fremantle, Components: free non-free) and install &#8220;Bluetooth Dial-up Networking&#8221;.</li>
<li>In your computer, edit <code>/etc/bluetooth/rfcomm.conf</code> to look like this, but using your own bluetooth device address (use <code>hcitool scan</code> from your laptop to get it):
<pre>
rfcomm1 {
        # Automatically bind the device at startup
        bind yes;                                 

        # Bluetooth address of the device
        device 00:11:22:33:44:55         

        # RFCOMM channel for the connection
        channel 2;                         

        # Description of the connection
        comment "N900";
}
</pre>
<p>Channels 1 and 3 are also available and can be defined as <code>rfcomm0</code> and <code>rfcomm2</code>, but the scope of that is out of this post.</li>
<li>Now edit the file <code>/home/youruser/.wvdialrc</code> in your laptop (using your own username) to look like this:
<pre>
[Dialer YoigoBT]
init1 = AT+CGDCONT=1,"IP","internet"
Username = ''
Password = ''
Modem = /dev/rfcomm1
Phone = *99#
</pre>
</li>
</ol>
<p>To connect to the internet, simply open a terminal and type:</p>
<pre>
sudo wvdial YoigoBT
</pre>
<p>To disconnect, just press CTRL+c and it&#8217;s done.</p>
<p>Thanks to <a href="http://www.go2linux.org/how-to-connect-internet-3g-gprs-using-bluetooth-usb-nokia-E71-cellular">this post</a>, which was used as a reference on how to connect using Nokia devices.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=157</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Fedora official package for Meiga</title>
		<link>http://blogs.igalia.com/eocanha/?p=154</link>
		<comments>http://blogs.igalia.com/eocanha/?p=154#comments</comments>
		<pubDate>Mon, 16 Nov 2009 13:18:43 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=154</guid>
		<description><![CDATA[Great! Due to Rajeesh K Nambiar effort and dedication, Meiga is now an official package for Fedora.
Thank you very much, Rajeesh!
]]></description>
			<content:encoded><![CDATA[<p>Great! Due to <a href="http://twitter.com/rajeeshknambiar/statuses/5732976832">Rajeesh K Nambiar</a> effort and dedication, Meiga is now an <a href="https://bugzilla.redhat.com/show_bug.cgi?id=508518">official package for Fedora</a>.</p>
<p>Thank you very much, Rajeesh!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=154</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Meiga 0.3.1 (Halloween edition) released</title>
		<link>http://blogs.igalia.com/eocanha/?p=148</link>
		<comments>http://blogs.igalia.com/eocanha/?p=148#comments</comments>
		<pubDate>Sun, 01 Nov 2009 02:00:17 +0000</pubDate>
		<dc:creator>eocanha</dc:creator>
				<category><![CDATA[Gnome]]></category>
		<category><![CDATA[Hacking (english)]]></category>
		<category><![CDATA[Meiga]]></category>

		<guid isPermaLink="false">http://blogs.igalia.com/eocanha/?p=148</guid>
		<description><![CDATA[This weekend I&#8217;ve taken advantage of our hackfest sessions at Igalia winter summit and have prepared a new &#8220;Halloween&#8221; version of Meiga.
The new version solves the bug pointed by xvi82 and ensures that Meiga compiles properly on Ubuntu Karmic (but no Karmic packages are provided yet). In addition, it has improved HTML headers to show [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://people.igalia.com/eocanha/media/wordpress/meiga-halloween.png" align="left"/>This weekend I&#8217;ve taken advantage of our hackfest sessions at Igalia winter summit and have prepared a new &#8220;Halloween&#8221; version of Meiga.</p>
<p>The new version solves the bug pointed by xvi82 and ensures that Meiga compiles properly on Ubuntu Karmic (but no Karmic packages are provided yet). In addition, it has improved HTML headers to show a page title and set the proper character encoding. It also has a pending/total transfer counter, so you will know when you can safely exit Meiga without breaking any download.</p>
<p>Meiga can be downloaded from <a href="http://meiga.igalia.com">http://meiga.igalia.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.igalia.com/eocanha/?feed=rss2&amp;p=148</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
