tag:blogger.com,1999:blog-137008032008-07-13T09:39:42.878-03:00andrunkoAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-13700803.post-81531367499139515092008-05-05T21:01:00.004-03:002008-05-06T10:30:39.369-03:00Maemo Keyboard on Qt4 applicationsSo, it seems I really like working with Input Methods.<br /><br />This time I present you the Qt4 input context plugin for Hildon Input Method. So for now all Qt4 applications can make use of the maemo keyboard.<br /><br />The code is still in its initial stage, but it's working so far. You can grab it from<a href="http://dev.openbossa.org/cgi-bin/gitweb.cgi?p=users/andrunko/hildon-imf-qt.git;a=summary"> here</a>.<br /><br />Contributions are really welcome. If you want to help, please consider looking at the FIXME list on qhildoninputcontext.cpp :).<span class="HcCDpe"><br /><br />UPDATE: Thanks to Rodarvus to point me out that qhildoninputmethod.cpp didn't exist, changing to qhildoninputcontext.cpp :D<br /></span>Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-13311345528559660472007-11-20T23:34:00.000-03:002007-11-21T11:06:38.330-03:00iPhone like keyboard on CanolaSo after creating the <a href="http://staff.get-e.org/?p=e17/libs/ecore.git;a=tree;f=src/lib/ecore_imf;h=c4778d427a8494ad39474f741e761021d53f4d84;hb=1366da7eb4d95d7f71debce1cfc819dff1137964">framework</a> to allow different input methods for <a href="http://wiki.enlightenment.org/index.php/Ecore">Ecore</a> and added Maemo Keyboard support for it, I decided to try a fancier thing.<br /><br />It took me a few hours to get the amazing work done by <a href="http://blog.gustavobarbieri.com.br/2007/07/24/iphone-like-virtual-keyboard-for-n800/">Gustavo</a>, port it to C and create an Ecore Input Method for it.<br /><br />You can see the result on this video:<br /><br /><div style="text-align: center;"><object height="355" width="425"><param name="movie" value="http://www.youtube.com/v/I8a57qsuOXo&rel=1"><param name="wmode" value="transparent"><embed src="http://www.youtube.com/v/I8a57qsuOXo&rel=1" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"></embed></object><br /><div style="text-align: left;"><br />I would like to clarify that this video is just to demonstrate how easy is to create your own input method for Ecore. It doesn't mean that Canola will use it.<br /><br />So that's it, I hope you enjoy.<br /><br />If you are interested you can download the code from <a href="http://staff.get-e.org/?p=users/andrunko/ilike-imf-ecore.git;a=summary">here</a>.<br /></div></div>Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-51959943491109793182007-11-16T12:01:00.000-03:002007-11-16T12:14:55.420-03:00Maemo Keyboard on Ecore applicationsLast week, we at the office were discussing how we should integrate the maemo keyboard with the new Canola. After some time studying how Input Methods work, I decided to implement a framework for pluggable IM on Ecore, called Ecore_IM.<br /><br />Ecore_IM is based on Gtk/Qt Input Method frameworks and works with pluggable so called immodules. So after writing the API for Ecore_IM I wrote a plugin hildon-input-method for accessing the maemo keyboard.<br /><br />I already integrated it with Etk, so all Etk applications running on the device will automatically show the keyboard when requested. I intend to implement support for <a href="http://www.enlightenment.org/">E</a> widgets, so <a href="http://labs.vivi.eng.br/blog/?p=36">Mamona</a> that is shipping with <a href="http://www.enlightenment.org/"></a>E can use the maemo keyboard.<br /><br />If you are interested in using it or integrating it in your application you can grab it from <a href="http://staff.get-e.org/?p=users/andrunko/ecore.git;a=summary">here</a>. The Etk support can be found <a href="http://staff.get-e.org/?p=users/andrunko/etk.git;a=summary">here</a>.<br /><br />I hope this get integrated in Ecore really soon, so stay tuned.Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-88590555051299560512007-11-09T14:04:00.000-03:002007-11-09T14:08:33.029-03:00N810 maemo submission accepted<blockquote>N810 maemo submission accepted<br /><br />Congratulations! You have been accepted to the N810 maemo device<br />program. We will send your discount and instructions as soon as the<br />device is available in your selected shop (soon).</blockquote>Hooray! I can't wait to put my hands on my new toy!!!Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-36107758931598499332007-09-10T00:36:00.000-03:002007-09-10T01:17:09.548-03:00GObject skeleton generator for VimSo after reading <a href="http://blog.gustavobarbieri.com.br/2006/09/02/developing-gobject-based-classes-using-emacs/">this</a> blog entry from Gustavo, I found it interesting and decided to do the same for Vim, as I would never use Emacs :D. So I found this <a href="http://www.vim.org/scripts/script.php?script_id=2003">script</a> and did some small changes to make it fit better the GTK+ coding style.<br /><br />To use the script first copy it to ~/.vim/plugin directory, then open a file with vim and run one of the commands:<ul style="font-style: italic;"><li>GOBGenerateH</li></ul><blockquote>To generate the class definition.</blockquote> <ul><li><span style="font-style: italic;">GOBGenerateC</span></li></ul> <div style="text-align: left;"><blockquote>To generate the class implementation.</blockquote></div>Both commands will use the filename as default for the class name. You can change it, by typing the class name manually. It will replace "-" with "_" and also try to apply <a href="http://en.wikipedia.org/wiki/CamelCase">Camel Case</a> to the filename. For example a file named test-object.h will generate a class named TestObject.<br /><br />If you are interested, you can download the updated version of the script from <a href="http://andrunko.googlecode.com/svn/trunk/vim/scripts/gobgen.vim">here</a>Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-24152285283999158612007-09-08T12:12:00.000-03:002007-09-08T12:29:27.021-03:00GtkCanvas<div style="direction: ltr;">So I decided to start working on getting a GtkCanvas implementation on GTK+.<br />I believe GTK+ is really missing a good canvas implementation to make it easy to create rich UI applications such as <a href="http://plasma.kde.org/">Plasma</a>, Canola, ....<br /><br />Plasma is using <a href="http://doc.trolltech.com/4.3/graphicsview.html">QGraphicsView</a> framework, a really good canvas framework, that enables you to create really nice UIs with nice animations/transitions. As already stated in some blogs [1], Canola will be using Evas for it's next version. So why not have a GtkCanvas? As i said in the <a href="http://andrunko.blogspot.com/2007/09/creating-transitions-with-gtk.html">previous post</a>, I together with <a href="http://tuxrecife.blogspot.com/">Renato</a> already started creating a GtkTransition class. Together with a Canvas implementation you can create really nice animations really easy. I will be posting a video of an example application soon.<br /><br />So if you are interested on this topic see this <a href="http://mail.gnome.org/archives/gtk-devel-list/2007-September/msg00040.html">thread</a> on gtk-devel mailing list<br /></div><span class="sg"><br />[1]<br /><a href="http://www.marceloeduardo.com/blog/mobile-applications/canola-development-update-or-we-are-not-dead">http://www.marceloeduardo.com/blog/mobile-applications/canola-development-update-or-we-are-not-dead</a></span>Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-60002431499586982912007-09-08T03:30:00.000-03:002007-09-10T01:19:05.530-03:00Creating transitions with GTK+Anyone knows that creating transitions (animations) using GTK+ is not the easiest thing to do. So after some discussions with <a href="http://tuxrecife.blogspot.com/">Renato</a> we came up with a API to make it easier.<br /><br />So today I sat down and wrote GtkTransition, a class written on top of GtkTimeline [1] that allows you to create transitions as natural as it can be. It's similar to what Flash does to create animations, but with some small differences.<br /><br />Basically you create a transition with an interval (eg. 2 seconds) and add states for this transition. States work directly on objects properties, so you can say for example, create a state that will complete when the transition reaches 50% that will set the label angle from 0 to 360 degrees. After that create another state that will complete on 100% of the transition that will set the same angle from 360 to 0 degreess and depends on the first state (it will start after the first state has completed).<br /><br />The code looks something like:<br /><br />transition = gtk_transition_new (2000);<br />gtk_timeline_set_loop (GTK_TIMELINE (transition), TRUE);<br /><br />state1 = gtk_transition_state_new (G_OBJECT (label));<br />gtk_transition_state_set (state1, "angle", 0.0, 360.0, NULL);<br />gtk_transition_add_state (transition, state1, NULL, 0.5);<br /><br />state2 = gtk_transition_state_new (G_OBJECT (label));<br />gtk_transition_state_set (state2, "angle", 360.0, 0.0, NULL);<br />gtk_transition_add_state (transition, state2, state1, 1.0);<br /><br />gtk_timeline_start (GTK_TIMELINE (transition));<br /><br />The code is not complete yet, but you can grab it with:<br />$ svn checkout http://andrunko.googlecode.com/svn/trunk/gtk<br /><br />There is a test1.c that shows the code to rotate the label, and test2.c that translate and resize a GooCanvasItem (you need goocanvas [1] to compile it)<br /><br />Patches and ideas are welcome!<br /><br />Hope you enjoy<br /><br />[1]<br /><a href="http://bugzilla.gnome.org/show_bug.cgi?id=444659">http://bugzilla.gnome.org/show_bug.cgi?id=444659</a><br />[2]<br /><a href="http://sourceforge.net/projects/goocanvas">http://sourceforge.net/projects/goocanvas</a><br /><br />Edit: <span style="font-style: italic;">updated code snippet</span>Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1164856287249750942006-11-30T00:01:00.000-03:002006-11-30T00:11:27.266-03:00Canola is out!!!Wow, we finally released canola. I can't say how happy I am. I want to congrat the whole team for the great work so far. Now for you that can't wait anymore to try it out, do the following:<br /><br />Add the following repositories to your application catalogue (Application Manager/Tools/Application Catalogue...):<br /><br />Address: http://openbossa.indt.org/canola/repository<br />Distribution: scirocco<br />Components: user<br /><br />Address: http://repository.maemo.org<br />Distribution: scirocco<br />Components: free non-free<br /><br />If you are using mistral (2.0), just replace distribution with mistral.<br /><br />Now, refresh you packages list (Application Manager/Tools/Refresh Package List...), then go to "Install new applications" and select canola.<br /><br />After installation, reboot your device, and enjoy it :-)<br /><br />Now it's time to get some food :-P.<br />Any feedback is welcomeAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1164849230976127352006-11-29T20:26:00.000-03:002006-11-29T22:13:51.056-03:00It's comingIt's 22:13 here in Brazil and we are almost ready. I can't wait to release canola. We received a lot of feedbacks, and we are working really hard to finish the final details. I really hope you will enjoy it.<br /><br />We have less than 2 hours to finish it, so let me get back to work :-)Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1164202228860937562006-11-22T10:24:00.000-03:002006-11-22T10:30:28.876-03:00Categories in BloggerToday i found a nice tutorial explaining how to add categories to blogger posts. This is especially useful if you are aggregated to some blog aggregator, and want to post just related topics.<br />To check the tutorial go to <a href="http://blogger-tricks.blogspot.com/2006/04/blogger-categories-simple-method.html">blogger-tricks</a>. <br />It's really easy to do, and as a bonus you will have a <a href="http://del.icio.us">del.icio.us</a> account if you don't have one already ;-).Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1163775874755683682006-11-17T11:30:00.000-03:002006-11-17T12:04:34.806-03:00Hacking on gstreamerFor over a week now, we at INdT are having a <a href="http://www.gstreamer.net">GStreamer</a> training course. Edward Hervey (bilboed, or bilbode for brazilians :P) from fluendo is the guy managing the course. He is hosted in my house and we had some fun this week, lots of beers, hacking, you know :). I will post some pictures here soon. So far, i've learned a lot of interesting stuff and also was able to do some hacking, such as the port of <a href="http://bugzilla.gnome.org/show_bug.cgi?id=375264">rfbsrc</a> to gstreamer 0.10 and the seek support implementation on <a href="http://bugzilla.gnome.org/show_bug.cgi?id=375264">neonhttpsrc</a>. In the past i had written some patches and plugins to gstreamer, besides some applications centric development, but nothing big, and now i hope i can help more :-).<br /><br />If you haven't tried gstreamer yet, you should do it now.Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1163109369651702212006-11-09T18:34:00.000-03:002006-11-09T18:56:09.686-03:00Browsing shared content using DAAP/DPAPSome time ago i started a new project called <a href="http://sourceforge.net/projects/libdmapsharing">libdmapsharing</a>. Its main purpose was to enable <a href="http://www.youtube.com/watch?v=yALbL_3XYbM">canola</a> to browse shared contents (iTunes, iPhoto, rhythmbox, banshee, etc) using DAAP/DPAP.<br /><br />But what is DAAP/DPAP?<br />DAAP (Digital Audio Access Protocol) is a protocol used by Apple's iTunes and other digital audio player to share music across a network or the Internet. As DAAP, DPAP (Digital Photo Access Protocol) is a protocol used to share content across a network, but photos instead of musics. The protocol is used by Apple's iPhoto and other photo applications.<br /><br />Currently libdmapsharing supports only browsing, but in the future i intend to add sharing support also, so you will be able to easily share your musics/photos. The documentation is missing, but i will start writing it soon. As you can see, there is some things to do, so anyone interested in helping (even testing) it would be great.<br /><br />Hope you enjoyAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1163107939812879502006-11-09T18:27:00.000-03:002006-11-09T18:33:49.926-03:00Yes, it's fast!!!Marcelo just released a new canola <a href="http://www.youtube.com/watch?v=iNq18Pj1j-I">video</a>. This video shows how fast is browsing to a shared library (DAAP) with thousands of musics. As you can see, it's damn fast :-).<br />Go check it out.Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1162782792764532412006-11-06T00:03:00.000-03:002006-11-06T00:19:49.510-03:00CanolaLong time no posting, but now i have a good reason to do so. As some of you already know, i am being working on a "secret" project for a while now. The project i am talking about is <a href="http://www.marceloeduardo.com/blog/2006/11/01/canola-the-mythical-inventor-of-the-harp/">Canola</a>, a great media player for 770 users. There is also a <a href="http://www.youtube.com/watch?v=yALbL_3XYbM">preview video</a> showing some of its features. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.marceloeduardo.com/blog/upload/canola_preview2.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px;" src="http://www.marceloeduardo.com/blog/upload/canola_preview2.png" border="0" alt="" /></a><br /><br />We should release a version this month, so be prepared.<br /><br />Hope you enjoyAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1142975680483161152006-03-21T18:06:00.000-03:002006-03-21T18:16:03.790-03:00Tapioca-VoIP - Now with GTalk supportAfter a lot (and i mean a lot) of work, we finally release a new version of Tapioca-VoIP, that now includes full Google Talk support. This means that you can now talk and chat to your GTalk friends using linux. Besides that this version includes a lot of bugfixes and enhacements. Python bindings are now available and C# bindings are coming soon (already on SVN). So it's your time to test it and help us to develop a first class VoIP and IM framework for linux. <br /><br />Installation instructions can be found at <a href="http://tapioca-voip.sourceforge.net">our homepage</a><br /><br />I hope you enjoyAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1133286857371525042005-11-29T14:50:00.000-03:002005-11-29T14:54:17.386-03:00More Tapioca VoIP newsA lot of work has been done on Tapioca VoIP recently. We are now glad to announce the version 0.2.1. This version contains a lot of bug fixes since 0.2, but the major news is the proxy/registrar support. Screenshots updated at <a href="http://tapioca-voip.sf.net">Tapioca VoIP homepage</a>. Go get it.<br /><br />More to come soon ;)Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1132755659310515082005-11-23T11:02:00.000-03:002005-11-23T11:27:18.366-03:00Tapioca VoIP new releaseFinally we got Tapioca VoIP 0.2 released. This release has a lot of improvements compared to 0.1, such as multiple codecs support, a totally rewritten UI and a lot of other cool stuff. But a lot more needs to be done, and we intend to release new versions more frequently. Some features you can expect for the folowing releases are support for Proxy/Registrar, STUN support and Presence. The release notes and instructions on how to install it can be found <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=9042724&forum_id=46141">here</a>.<br /><br />Screenshots at <a href="http://tapioca-voip.sf.net">Tapioca VoIP homepage</a>.<br /><br />Hope you enjoy it.Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1127246145114186742005-09-20T16:41:00.000-03:002005-09-20T18:03:41.140-03:00My "Improving KDE" patches on KubuntuA few minutes ago, a friend of mine (aka Etrunko) came with me, after upgrading his kubuntu installation, with some great news. Some of my patches, also called "<a href="http://www.kde-apps.org/content/show.php?content=16962">Improving KDE</a>" where integrated within Kubuntu breezy. I made these patches a loooong time ago, and I was almost forgetting about them. Maybe now, i can find some time to improve and who knows port them to kde 3.5.<br /><br />Kubuntu rocks ;)Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1127164119778118972005-09-19T14:58:00.000-03:002005-09-19T18:45:19.730-03:00Kart indoorOntem juntamos uma galera aqui do trabalho e fomos ao kart. Massa d+, os que não foram perderam. O pessoal aqui do INdT tá pensando em fazer um campeonato, com uma prova por mês, vamos ver no que dá. O mais engraçado é ver o pessoal reclamando depois, muito bom. O maior problema mesmo é aguentar a dor na coluna no outro dia. Não estou me aguentando de dor, rs. Pra você que está curioso vou colocar aqui os tempos pra vocês apreciarem (rsrs):<br /><br /><table><tbody><tr><td>Piloto</td><td>Tempo total</td><td>Numero de voltas</td></tr><tr><td>Andre Magalhaes (eu)</td><td>30:39.760</td><td>51</td></tr><tr><td>Renato Araujo (tuxrecife)</td><td>30:58.910</td><td>50</td></tr><tr><td>Abner Jose</td><td>30:57.180</td><td>43</td></tr><tr><td>Osvaldo (acidbase)</td><td>31:01.750</td><td>4.570 (foi tao lento q deu até pau, heh)</td></tr><tr><td>Flavio</td><td>30:54.990</td><td>42</td></tr></tbody></table><br /><br />Bem, como vcs puderam observar, fui obrigado a ganhar esta. Quem sabe da próxima vez eles não dão mais sorte ;).<br />Pra não dizer que fui injusto fica registrado que a melhor volta da corrida ficou com o Renato (27.630 contra 27.750 meu), quando o mesmo estava me perseguindo pra tentar tirar a volta que tinha acabado de tomar :P (não conseguiu é claro). Mas da próxima não vou dar chance não.Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1126880878327947302005-09-16T11:22:00.000-03:002005-09-16T14:26:10.356-03:00Tapioca VoIP<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://tapioca-voip.sourceforge.net/"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/2114/1215/320/header.jpg" alt="" border="0" /></a><br />Hi all, I am glad to announce the very first version of Tapioca, our new framework for VoIP applications. Check it at <a href="http://tapioca-voip.sourceforge.net">http://tapioca-voip.sourceforge.net</a>. Suggestions and critics are welcome.<br /><br />Hope you enjoyAndre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.comtag:blogger.com,1999:blog-13700803.post-1123101740782995542005-08-03T17:30:00.000-03:002005-08-03T21:47:45.803-03:00O Código Da VinciSemana passada finalmente acabei de ler o famoso livro "O Código Da Vinci". Gostei bastante. Posso dizer que esse livro marcou uma nova etapa na minha vida. Confesso que não lia um livro de literatura a muito, muito tempo. Havia esquecido como é bom ler sobre assuntos não relacionados a trabalho.<br />Não vou me dar ao trabalho de comentar o livro aqui, pois não sou bom nisso, só posso dizer que esse é um livro que recomendo e que traz grandes revelacões para o leitor. Agora vou comecar a ler um outro livro do mesmo autor que também promete, "Anjos e Demônios". Espero acabá-lo em breve.<br /><br />Para os que perceberam a falta de cedilha, não me culpem, é que o meu teclado está desconfigurado e o cedilha não está funcionando :).Andre Moreira Magalhaes (andrunko)http://www.blogger.com/profile/14668638448861180171noreply@blogger.com