São Paulo Python User Group - May Meeting

May 16th, 2009

Every month the GruPy-SP members get together to discuss, chat and/or code.

This month we will meet to watch/present some lightning talks and to talk about our participation at the Fórum Internacional de Software Livre (FISL 10).

The meeting will be hold at the SP HackLab, May 23. More details (in pt-br): GruPy-SP wiki.

See you there :-)

Cof cof… dust… new stuff

March 16th, 2009

I’ll start mixing english and portuguese posts. And I’ll probably start writing about bicycles and other stuff, not only about my geek side (dunno if it’s possible) :-P

Thinking about changing the layout too, this blue-wordpress-default is boring (maybe it’s just me :-])

I’m starting a personal wiki too (http://wiki.brunogola.com.br/).

Probably updating my wordpress installation as well.

CHDK: hacking my camera

December 5th, 2008

I have a Canon A-640 that I rarely use, partially because it’s flash is broken. Now I found a new use for it, a hackable device :D

With CHDK (Canon Hack Development Kit) I can write my own scripts (in LUA or BASIC) to control the camera functions. It also enables new features and improve old ones. Really nice free software project :)

And for hackers, it’s well documented (including the source-code). I’ll try it better and post some results here (with pictures and some code I hope :))

HP 2133 and Ubuntu

October 29th, 2008

Last week I got a HP 2133 mini notebook for me to use on presentations, college, meetings, events, etc. It’s a very nice toy with 1Gb RAM, a 1.2 GHz VIA Processor, 120Gb of storage, Wifi and bluetooth. Well, it’s very handy and the keyboard is amazing… except for the key, that is a little smaller than the on in my “official” notebook, and I always try to press it in the wrong place :-P

But… I’ve spent a lot of time to make it work with my Ubuntu. Why? Mainly because of the freakin’ VIA proprietary video driver. So I decided to write here some tips about how to get Ubuntu working on the 2133 (after trying to configure the xorg.conf for 3 hours because I hadn’t made a backup of the one that was working :P).

The problem I have is that the desktop is bigger than the screen. Oh, you say, it’s just the Virtual xorg.conf Option.

IT’S NOT. Damn it!

Thanks to VIA there is a driver option called PanelID. This option is “well documented” in the README file.

The first thing you need to do is to tell the driver that your PanelID is 17. Why? I really don’t know. PanelID 17 means, accordingly to the README, that your display (or your Panel) resolution is 1024×600. The problem is that I want my resolution to be 1280×768 (which is supported by 2133). Anyway, using option “PanelID” 17 solves the problem partially, the desktop isn’t bigger than the screen anymore.

BUT… it thinks that your resolution is 1024×600 (because of the PanelID option, probably), so try to imagine what a 1280×768 desktop looks like in a 1024×600 display (or panel, whatever). The result is that you can see 3/4 of your Desktop, but your pointer “sees” the “panel” borders (i mean, it can’t go any longer than the screen limits).

To solve this problem you need to tell the X server that you have a Virtual display of 1024×600 (yes, you’re lying!!!) so it will arrange your 1280×768 desktop inside this virtual display of 1024×600. To do this you need to add the line

Virtual 1024 600

in the Display subsection of the Screen section.

Your xorg.conf will look like this (the relevant sections only):

Section “Device”
Identifier “via-P4M900 Device 0″
BoardName “Chrome9 HC IGP”
BusID “PCI:1:0:0″
Driver “via”
Option “Monitor-LCD” “HP-2133 LCD”
Option “PanelID” “17″
Option “NoDDCValue”
EndSection

Section “Screen”

Subsection “Display”
Depth 24
Modes “1280×768-60.0″
Virtual 1024 600
EndSubsection

EndSection

If you have any trouble with the video (or anything) trying to install Ubuntu on the HP 2133 Mini, leave a comment and I promise I’ll TRY to help :-D

Nokia Code Camp São Paulo

October 27th, 2008

Last Friday (Oct 25) I’ve attended to the Forum Nokia Code Camp here in São Paulo. I must admit that the main motivation to go was that the place was very near my house :-P

After finding out that rbp, lhonda and Luiz Irber (friends from our local Python User Group) were attending too I thought that it’d be a nice event. At least we could talk about GruPy-SP plans…

Anyway, I went to the hotel and after watching the three presentations (speaking about Nokia Serie60, Python and mobile development) the fun really started. 4 hours to develop the coolest mobile application in the world :-P

The prize was two E71 (the “new” Nokia Smartphone) for the “winner” application, so we decided to code in pairs. Me and rbp, after talking about our ideas, decided to write a musical instrument using the N95 accelerometer.

The first two hours of “development” actually we spent trying to find a proper way to transfer files to our cellphones (the S60 SDK is Windows only…). Then, with the “bluetooth easiest method” for transferring the app working, we started trying to find out how to interpret the accelerometer data. It worked as expected. Then we needed to play a sound (as it was a musical instrument). Easy, Python for S60 is very intuitive, the API is very High Level. Looking to the reference guide there was something like:

from audio import Sound
Sound.open(”file.mp3″).play()

Just as I expected… except that there wasn’t any sound coming from the freakin’ phone’s speaker. There was forty minutes left to the end of the competition and all we had was a soundless musical instrument, not very useful.

Ok, plan B. I started looking to some old code in my N95 and found a bluetooth webcam prototype. Rbp had an idea of making the webcam “crash” with a movement (using the accelerometer). And then we made it.

It’s a funny application and, as I said to rbp, as programmers we are great comedians. We presented the webcam in the stage and people seemed to like us (the app or the comedians? I really don’t know :-))

Well, me and rbp won a Nokia E71 (each), it’s a very nice (and THIN) smartphone, I don’t like phones with qwerty keyboards, but this one is really cool (thin, small and almost comfortable to type).

10/27/2008

Thanks Forum Nokia! :-)

DjangoCon day two

September 8th, 2008

Almost sleeping, but there’s still a bit of caffeine in my body to write this post.

Some notes on day two:

  • In São Paulo we had two lighting talks before the “official” conference. João (JS) talked about a little script he wrote that uses PyGame to display text from a .txt file in a presentation format. Rbp explained a bit about 2to3 (the Python 2.x [actually x equals 6] to Python 3 conversion tool) and showed some examples.
  • First talk. Mark Ramm had some good points. Specially, IMO, about making Django more modular, which means that each part of it doesn’t depend on other parts of the framework. As an example, you can choose to use the Django ORM without using Django. But, please, don’t make it a lot of little packages that you need to grab together to start using the framework. One of the nice things about Django is that it’s simple to start using it (install one package and then django-admin.py startproject)
  • Official lighting talks. As always, a great moment on any Python conference. Lots of curious and interesting stuff (and other stuff not so interesting… or not interesting at all :-P [for me, obviously]). Funny moment: People, don’t use GMail over HTTP, there IS HTTPS support :-)
  • Schema evolution, three options: DMigration, South and Django Evolution. There are a lot of doubts about each one and I think I need to test all of them to choose one (and hope that they start collaborating to each other and make something really good). But it’s great to see that there is people working on that.
  • Last talk was Django’s Future by, obviously, Jacob and Adrian. It was more like a chat between them. Some good ideas and discussions. Then they received questions/requests/suggestions from the public. Things like, dropping old python versions support, python 3 support, documentation, debugging tools, etc. I think that some suggestions/requests were really nice and I hope that Django developers (and the community) take them seriously. This was a great opportunity for developers to receive feedback from the community (users).

That’s it for 2008. Again, I’d like to thank Rodolpho and Google for making it possible to attend to DjangoCon from São Paulo. Congratulations to DjangoCon organizers and to the Django community!

And, of course, thanks GruPy-SP people :-)

Pictures: Rbp’s DjangoCon set @ Flickr

DjangoCon @ Google (SP)

It was 11p.m. Almost sleeping in this blue big puff :-)

DjangoCon first day

September 7th, 2008

I’m attending to DjangoCon from São Paulo Google’s Office.

Some notes on the first day of event:

  • I expected more news from GvR on his talk about GAE (nothing really new).
  • David Cramer talk about High Performance was kinda heavy (but good things learned)
  • The history behind Django is hilarious (State of Django by Jacob and Adrian)
  • It seems Django is getting bigger (contributors) and better (features). Good!
  • Really good talk by Malcolm Tredinnick about the Django ORM
  • GeoDjango seems very interesting, but it’s not for me (at least now…)
  • Cal Henderson made good “feature requests” and “bug reports” live, the unreadable SQL generated by Django scares me a bit… but not that much

In general it was great. I can’t wait for the lighting talks tomorrow (probably the best moment on any Python conference :-)).

Oh, the snacks @ Google (Sao Paulo) are awesome!

Modifying Django NewForms-Admin views

September 5th, 2008

Playing with the new Django features, specially with the NewForms-Admin, I was looking for a way to change the add view behavior for some models.

It’s really easy and obvious (it’s always easy and obvious with Python and Django).

First, you’ll need the admin.py file in your app directory.


from django.contrib import admin
from myproject.myapp.models import MyModel

class MyModelAdmin(admin.ModelAdmin):
def add_view(self, request):
if request.method == 'POST':
# do whatever you want
# remember, POSTing means that someone entered data.
return admin.ModelAdmin.add_view(self, request)

admin.site.register(MyModel, MyModelAdmin)

The add_view method is called when you try to add an entry using the admin. There are other interesting methods you should look too, for customizing the admin behavior (change_view, delete_view, etc).

Another way to customize things is to write your own ModelForm, but it’s beyond the scope of this post :)

DjangoCon in São Paulo

September 4th, 2008

I’m not crazy at all. (yet)

Thanks to Google (I think specially to Rodolpho) DjangoCon will be transmitted to Google’s Office in São Paulo while the conference is held in Mountain View.

Cool :)

I’m definitively going! So, Saturday and Sunday (September 6th and 7th) @ Google’s Office, see you there!

Translating pypy-c with 2.5 support

August 28th, 2008

Last week I did some fixes to PyPy 2.5-features branch because the translator was crashing. That’s because some of the code I wrote in the last four months were not RPython.

The changes were mostly to help the annotator (with assertions). Now you can have a pypy-c with full 2.5 support.

There are some bugs so stdlib may not be fully working. I’m working on that.


svn co http://codespeak.net/svn/pypy/branch/2.5-features/ pypy-2.5-features
cd pypy-2.5-features/pypy/translator/goal/
python translate.py targetpypystandalone --allworkingmodules
# wait........
./pypy-c

Please, read PyPy’s documentation on translating and if you find any problem while translating let me know. Note that this docs are for the trunk so some of the options may not be available in 2.5-features branch.

I wrote this post last week and it was in my drafts. Actually I fixed some other bugs (one related to PEP 352) and it seems that my changes broke the translator again. Talking in #pypy Armin said that this is probably a bug in the annotator. I don’t know much about the translation process or about the annotator… I guess it’s time to start looking at it :-)