There’s no place like ::1

Handivi Alpha

| Comments

Working on a startup is certainly a great challenge that has both good and bad things. One of the worst things is the amount of blog posts I’ve made on the last 6 months: 15 (fifteen!). This is almost 1 post every two weeks. As a reference point, on my last job I was writing 2 blogs posts per week :-)

Anyway, 6 months ago I decided to take the challenge and work for a startup in Lisbon called 7syntax. 7syntax is a young software startup with a small team of great talents. The main project we develop is called handivi, and that’s the main motivation for this blog post.

Handivi is all about you sharing experiences with everyone or just your friends from anywhere. It’s a free, easy to use application for Java™ enabled phones on 3G mobile networks, where you can express yourself, create and socialize using photos, videos and messaging.

The first alpha version of handivi saw the light of the world by 29th August. Celso made a good job showing the alpha’s main features. It was a very exciting moment for all the team because we showed our “baby” to the world!

With this release, we managed to gather a lot of feedback from our brave testers. That feedback is extremely useful to us, since it will guide our development efforts in the near future.

In the meantime, I became the Lead Mobile Developer at 7syntax. This means I gathered a lot of knowledge about the J2ME programming, including device fragmentation problems, limitations of the current technology, under the hood details and optimization strategies. You can expect some blog posts about the things I’ve discovered, if I managed to get free time to write about them :)

If you want to keep in touch with 7syntax and handivi, please subscribe our blog feed.

YAPC::EU::2008

| Comments

Next week I will fly to Copenhagen, Denmark to participate at the YAPC::EU::2008. This year’s conference theme is Beautiful Perl. Although I think Perl can be used to make beautiful things, I never thought Perl code is or can be beautiful, even when I did Perl on a daily basis.

Being at 2 YAPC conferences (Braga and Birmingham), I quickly realized how great the Perl community is, and even though I don’t find Perl interesting anymore, I always look forward to meet great people and great minds at YAPCs.

I also took the opportunity to submit a talk that eventually got accepted. So on Thursday, 14th, I’ll be talking about Makefile::Parallel again. I hope that the talk can ignite some interesting discussions, and to gather some ideas about possible directions of the module.

It will be my first time too in Copenhagen and Denmark, so I’m really looking forward to know the city! If you are reading this and will attend to YAPC, get in touch with me and maybe I’ll buy you a beer :-) (I’m root (at) cpan)

Searching for Your Open Source Code

| Comments

This can be something that can make you proud in the morning :-)

Basically, try searching on different code search engines for your name, and see the results! I’m sure you will be impressed with the results…

Here are my results:

Google Code Search: Search public source code for Ruben Fonseca

Koders Search: Search public source code for Ruben Fonseca

Krugle Code Search: Search public source code for Ruben Fonseca

Show me your results :-)

(idea stoled from Corey Goldberg blog)

CShare in One Line

| Comments

Something like 2-3 years ago, I started a small project with my friends called CShare.

From the site you can read:

cshare (from console share) lets you share any directory through a HTTP server. it’s simply to use (just launch it from the terminal), fast (multi-threaded POSIX), personalizable (XSLT themes), and client plataform independent (you just need a browser).

We started the project because we wanted to write some elegant code with a modern C style, and do some experimentations on bleeding performance under the Linux environment.

Although we wrote tons of code (it’s still available on the SVN repository), the application never saw the light of the day, mainly because we felt a lack of motivation due to the slow development speed with C.

So we’ve completely abandon the project. I’ve also tried 2 or 3 times to completely remove the project from SourceForge with no success: the process is beyond bureaucratic…

However, the reason I’m writing this post is because I found today a simple way of getting the same functionality of CShare, with a single line of Python:

python -c "import SimpleHTTPServer;SimpleHTTPServer.test()" 

Even tough you will not get the same performance and concurrent access like CShare would (eventually) deliver, it’s simply enough to sit at your .bashrc, and it really gets the job done!

Solving 2D Rendering Problems on an ATI X1600

| Comments

My current laptop has a beautiful piece of crap of an ATI Mobility Radeon X1600. At first I installed Ubuntu 8.04 on it and immediately switched to the proprietary ATI driver (to get more features and better support for multi-head).

However, the display always seemed sluggish.. I never use 3D or Composite, it all seemed related to 2D rendering. For instance, when I switched workspaces I often had to wait 10 seconds for windows to be redrawn.

Still, I managed to work like this for a while. One day however, I decided to try the open source drivers (it seems they have initial support for the R500 chip on this graphics board).

The good news is that is supports multi-head profiles far better than the proprietary driver (XRandR 1.2 FTW!). Still, the 2D sucked, got no 3D nor XVideo overlay…

I even thought “oh this must be an Ubuntu thing”… At the beginning of this week I managed to install Debian Unstable on this laptop, but had the same problems using the open source “radeon” driver….

On a desperate move, I’ve tried the latest and bleeding edge ATI proprietary driver. For my surprise, all my problems were solved and the card is working properly! So I decided to log here the steps I took to get the things properly (remember, I’m running Debian unstable).

Instructions

First, we have to download the latest drivers from ATI from their website Then as root run:

./ati-driver-installer* --extract fglrx
cd fglrx
./packages/Debian/ati-packager.sh --buildpkg sid
cd ..
dpkg -i *.deb

This will build deb's from the ATI distribution file and install them or your system. The next step is to build the actual driver, and for that you can use module-assistant like this:

m-a prepare
m-a update
m-a a-i fglrx

This will build and install the fglrx driver for your current installed kernel.

Then you must configure Xorg. I followed this steps:

aticonfig --initial=dual-head --screen-layout=horizontal

After this I just started X and it worked perfectly. I mean, I had horizontal BigDesktop, fast 2D rendering, 3D, XVideo overlay on both displays and suspend is working like a charm.

The only problem left is that my second display has a bigger resolution that the main one. However, the ATI driver sets the second display to the same resolution as the first.

To work around this problem I just had to manually edit /etc/X11/xorg.conf and add at the Section "Device" this:

    Option "Mode2" "1680x1050" 

Replace the resolution with the native resolution of your second display. Restart X and BANG, it should work :)

Hope that this instructions can help you somehow.