sexta-feira, 25 de dezembro de 2009

Retrospectiva fotográfica de 2009

Sim, eu realmente estava preparando um post-retrospectiva-2009. Escrevi algumas linhas e já parei no primeiro parágrafo achando tudo muito chato. Não me agradou bater na mesma tecla. A um certo tempo eu já estava pensando em escrever um post não-técnico pra falar um pouco de fotografia e o que eu tenho feito sobre o assunto esse ano. Ué, não haveria ocasião melhor! :-). A idéia do post é bastante simples, vou listar algumas fotografias e dizer por que elas são importantes pra mim. Espero que gostem :-)

[update: o layout maldito do blog cortou a borda direita das fotos, se quiser vê-las no tamanho real/ideal é só seguir o link na própria foto :-)]

Esta particularmente marca a mudança de visão que comecei a ter quando comecei a fazer o curso de fotografia. Comecei a aplicar algumas técnicas, como a profundidade de campo curta, o enquadramento enfatizando a perspectiva e a ausência de cor.


Esta foto foi no Jardim Botânico de Jundiaí. Foi a primeira aplicação da regra dos terços. As cores da Fuji também ajudaram bastante a deixar a fotografia interessante.


sujinhos
Sujinho's Bar- Rio Claro. Bar famoso por afogar as mágoas das provas da faculdade. Gostei do tema, das cores e da saudades.


pescador
Esta foi na primeira saída fotográfica do curso. Gostei particularmente dessa por que foi aí que saquei a idéia de usar a grande-ocular.


olhares
Roda de capoeira - feira de artesanato na feira da rua do Lavradio. Descobri a importância de fotografar no modo burst os assuntos muito rápidos. Disparo uma metralhada de cliques e depois escolho a que mais gostei. E dessa, em especial, os olhares me chamaram mais a atenção.


ela
E falando em olhares, fomos à 7 de abril a procura da famigerada 50mm. Esse é um dos efeitos dela, a profundidade de campo fica tão curta que consegue-se diferença de foco entre os olhos de um mesmo rosto. Adoramos. Tornou-se nossa lente favorita desde então.


laranja mecânica
Essa laranja não é exatamente uma boa foto, mas foi a primeira tentativa de se fazer o "macro de pobre". A técnica é bastante simples, você só precisa tirar a lente e segurá-la ao contrário na frente da câmera. Tem outras experiências com essa técnica no meu flickr que deram mais certo que essa :-)


os amigos punk
Amigos punk. Da esquerda pra direita são: Edjunior, Kleber e Sérgio. Essa foi a primeira experiência em fazer revelação em processo cruzado. Fotografei usando Fujichrome (asa 100) e revelei como sendo filme negativo. Deu no que deu, amigos verdes marcioanos em Porto Alegre.


there is a long way down
E esta foi a minha fotografia predileta por um bom tempo. Fiz essa com um filme Neopan (asa 400) na Avenida dos Imigrantes em Jundiaí, já estava quase anoitecendo. Nenhuma técnica experimental ou efeito especial, foi apenas o sentimento pra fora que me fez conseguir captar esse momento.


Pullovers
E foi então que convidaram o pessoal da lista pra fotografar a gravação do clipe do Pullovers. Pronto, descobri que fotografar bandas não é um bicho de sete cabeças e pode ser muito prazeroso principalmente se você gosta do som. E foi o que aconteceu.


Instiga @ Studio SP
O primeiro show a noite que eu fotografei o do Instiga no Studio SP. A experiência foi sensacional, principalmente por que a luminosidade do lugar é muito dramática, não tem luz branca direta e tal. Agradou bastante.


no topo do mundo
Esta foto foi num dos finais de semana mais legais do ano. Conheci todo mundo que eu só conhecia no mundo virtual-sô. Pessoal de Belo Horizonte foi EXTREMAMENTE acolhedor e simpático. Bebemos, discutimos projetos, hackeamos e até deu tempo de passear no final de semana. Só tenho a agradecer :-)


fé
Eu e Má saímos de férias e fomos passar dois dias em Petrópolis. Fiz essa foto no interior da catedral principal da cidade. Não conheço a pessoa que está rezando, não sei nem se ela está pedindo, se está agradecendo ou se está dormindo (hey, por que não?), mas desde então, esta é a minha favorita, nunca mais fiz fotos que me deixassem tão feliz com o resultado.


Moptop @ Hammer 28/nov
E foi assim que o pessoal do Rock'n'Beats me convidou pra fotografar os shows deles. E esse é o esquema, você ouve música que você gosta, fotografa e ainda toma umas cervejas. Gostei muito da combinação.


hey
Esta é a última brincadeira que andei aprontando: Lomografia. Um filme cromo AGFA (asa 100) e uma simples action sampler fazer a vida muito mais divertida. Ainda preciso aprender a fotografar com essa combinação, mas o primeiro resultado até que agradou. :-)

E esta é a hora que eu termino o post desejando feliz ano novo, felicidade, saúde e sucesso a todos os leitores (os que não são leitores terão unhas encravadas o ano todo). Um abraço e até ano que vem! :-)

Disclaimer: Todas as fotos são minhas e estão disponíveis em meu flickr: http://www.flickr.com/photos/otubo/. Aspodem ser usadas segundo a licença Creative Commons.

quarta-feira, 16 de dezembro de 2009

VIVO 3G using Huawei e1756 on Ubuntu 9.10 Karmic

Quick and fast tip to show a way to connect to 3G using Hawei e1756 modem on Ubuntu 9.10 Karmic.

The problem: The modem itself has a little micro-SD card reader inside and guess what? The kernel identifies it as card reader and not as a 3G modem. Good. ¬¬"

The fix: To solve this minor issue, first you have to install a tool that helps you to switch between storage device and usb serial device, the usb_modeswitch. For this just apt-install the usb-modeswitch package.

Then, modify its config file (/etc/usb_modeswitch.conf) adding the lines below:
# Huawei E1692/E1756
DefaultVendor= 0x12d1
DefaultProduct= 0x1446

TargetVendor= 0x12d1
TargetProduct= 0x140c

MessageContent="55534243000000000000000000000011060000000000000000000000000000"

CheckSuccess=5

These lines tells your usb_modeswitch that if the vendor id 0x12d1 and the product id 0x1446 are found on your usb devices, then it will be switched to product id 0x140c. It means that the usb_modeswitch will switch from storage device to 3G modem. So far so good. :)

Then we have to write a udev rule that tells the system to ignore the card reader and identify it as a 3G modem as we plug it in. Write a file named /etc/udev/rules.d/15-hauwei.rules containing these lines:

SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1446", \
OPTIONS="ignore_device"

SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch"

Your udev now will run usb_modeseitch every time you plug in an usb stick with product id and vendor id matching those values.

Restart your udev:
$ service udev restart

And now, your system should be able to identify your 3G modem. After all these done, you have to configure your NetworkManager. This last step is pretty simple and strightforward, so, I will let you handle this by yourself :)

Any problems please feedback!

[update] I wrote this post drinking wine (long story) and I completely forgot to thank Ursinha for the usb_modeswitch tip. Soooorry and thank you bro! :-)

[update 2] And it seems that NetworkManager doesn't like 3G modems, at least not now. So I had to configure some extra lines on /etc/wvdial.conf and /etc/ppp/options in order to use wvdial and connect using /dev/nail (yeah, that was a joke, there is no such a device):

otubo@minivader ~ $ cat /etc/wvdial.conf

[Dialer 3g]
; Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Modem Type = Analog Modem
; Phone =
ISDN = 0
; Username =
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2
; Init3 = AT+CGDCONT=1,"IP","zap.vivo.com.br"
; Password =
Modem = /dev/ttyUSB0
Baud = 921600
DialCommand = ATDT
Check Def Route = on
FlowControl = Hardware(CRTSCTS)
; Username = 1997848815@vivozap.com.br
Username = vivo
Password = vivo
Phone = *99#
Stupid mode = 1
Auto Reconnect = on
Auto DNS = on

otubo@minivader ~ $ egrep -v '#|^ *$' /etc/ppp/options
asyncmap 0
noauth
crtscts
lock
hide-password
modem
proxyarp
lcp-echo-interval 30
lcp-echo-failure 4
noipx
asyncmap 0xa0000
mru 1500
refuse-chap
ipcp-max-failure 30


Then, to connect to internet using your 3G modem you just have to run:

root@minivader:~# wvdial 3g
--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2
ATQ0 V1 E1 S0=0 &C1 &D2
OK
--> Modem initialized.
--> Sending: ATDT*99#
--> Waiting for carrier.
ATDT*99#
CONNECT
--> Carrier detected. Starting PPP immediately.
--> Starting pppd at Thu Dec 17 20:38:52 2009
--> Pid of pppd: 3488
--> Using interface ppp0
--> local IP address 187.88.116.150
--> remote IP address 10.64.64.64
--> primary DNS address 200.142.130.202
--> secondary DNS address 200.220.227.100

And this time, special thanks to Kleber that helped me debugging that shit :-)

sexta-feira, 16 de outubro de 2009

How to connect a GPS phone to a Computer via bluetooth

A very quick post to show how these things work togheter. I connected a Nokia E71 GPS to my ThinkPad T61 running Ubuntu 9.04 Janty Jackalope using bluetooth connection. The initial idea was to use Google Earth as my main GPS screen while driving, but unfortunately I couldn't make it work *yet*.

Step 1) Going right to the point: First you need to be sure that you mobile phone exports the GPS service via bluetooth. And that's simple to get. First you must edit yout /etc/bluetooth/hcid.conf to look like this:

root@phoenix:/etc/bluetooth# cat hcid.conf
#
# HCI daemon configuration file.
#

# HCId options
options {
# Automatically initialize new devices
autoinit yes;

# Security Manager mode
# none - Security manager disabled
# auto - Use local PIN for incoming connections
# user - Always ask user for a PIN
#
security none;

# Pairing mode
# none - Pairing disabled
# multi - Allow pairing with already paired devices
# once - Pair once and deny successive attempts
pairing multi;

# PIN helper
#pin_helper /usr/bin/bluepin;

# D-Bus PIN helper
#dbus_pin_helper;
}

# Default settings for HCI devices
device {
# Local device name
# %d - device id
# %h - host name
name "otubotp";

# Local device class
class 0x3e0100;

# Default packet type
#pkt_type DH1,DM1,HV1;

# Inquiry and Page scan
iscan enable; pscan enable;

# Default link mode
# none - no specific policy
# accept - always accept incoming connections
# master - become master on incoming connections,
# deny role switch on outgoing connections
lm accept;

# Default link policy
# none - no specific policy
# rswitch - allow role switch
# hold - allow hold mode
# sniff - allow sniff mode
# park - allow park mode
lp rswitch,hold,sniff,park;

# Authentication and Encryption (Security Mode 3)
#auth enable;
#encrypt enable;
}


Step 2)
Restart you bluetooth daemon:

root@phoenix:~# /etc/init.d/bluetooth restart
* Stopping bluetooth [ OK ]
* Starting bluetooth [ OK ]


Step 3) Turn on the bluetooth on your phone and get ready to scan devices:

root@phoenix:~# hcitool scan
Scanning ...
00:21:FE:xx:xx:xx mycellphone


Step 4) Then, check if your phone exports GPS data via bluetooth running sdptool. In this step you need to pay attention to the Service Names and to the channel they use. We're gonna use these informations later on.

root@phoenix:~# sdptool browse 00:21:FE:F8:2F:E2
Browsing 00:21:FE:F8:2F:E2 ...
Service Name: AVRCP Target
Service Description: Audio Video Remote Control
Service Provider: Symbian Software Ltd.
Service RecHandle: 0x10000
Service Class ID List:
"AV Remote Target" (0x110c)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 23
"AVCTP" (0x0017)
uint16: 0x100
Profile Descriptor List:
"AV Remote" (0x110e)
Version: 0x0100

Service Name: Hands-Free Audio Gateway
Service RecHandle: 0x10004
Service Class ID List:
"Handsfree Audio Gateway" (0x111f)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 1
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Handsfree" (0x111e)
Version: 0x0105

Service Name: Headset Audio Gateway
Service RecHandle: 0x10005
Service Class ID List:
"Headset Audio Gateway" (0x1112)
"Generic Audio" (0x1203)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 2
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Headset" (0x1108)
Version: 0x0100

Service Name: Audio Source
Service RecHandle: 0x10027
Service Class ID List:
"Audio Source" (0x110a)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 25
"AVDTP" (0x0019)
uint16: 0x100
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Advanced Audio" (0x110d)
Version: 0x0100

Service Name: AVRCP Controller
Service Description: Audio Video Remote Control
Service Provider: Symbian Software Ltd.
Service RecHandle: 0x10028
Service Class ID List:
"AV Remote" (0x110e)
Protocol Descriptor List:
"L2CAP" (0x0100)
PSM: 23
"AVCTP" (0x0017)
uint16: 0x100
Profile Descriptor List:
"AV Remote" (0x110e)
Version: 0x0100

Service Name: SyncMLClient
Service RecHandle: 0x10029
Service Class ID List:
UUID 128: 00000002-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 10
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00000002-0000-1000-8000-0002ee000002)
Version: 0x0100

Service Name: OBEX File Transfer
Service RecHandle: 0x1002a
Service Class ID List:
"OBEX File Transfer" (0x1106)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 11
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX File Transfer" (0x1106)
Version: 0x0100

Service Name: Nokia OBEX PC Suite Services
Service RecHandle: 0x1002b
Service Class ID List:
UUID 128: 00005005-0000-1000-8000-0002ee000001
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 12
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00005005-0000-1000-8000-0002ee000001)
Version: 0x0100

Service Name: SyncML DM Client
Service RecHandle: 0x1002c
Service Class ID List:
UUID 128: 00000004-0000-1000-8000-0002ee000002
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 13
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00000004-0000-1000-8000-0002ee000002)
Version: 0x0100

Service Name: Nokia SyncML Server
Service RecHandle: 0x1002e
Service Class ID List:
UUID 128: 00005601-0000-1000-8000-0002ee000001
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 14
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"" (0x00005601-0000-1000-8000-0002ee000001)
Version: 0x0100

Service RecHandle: 0x1002f
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 3

Service Name: Dial-Up Networking
Service RecHandle: 0x10030
Service Class ID List:
"Dialup Networking" (0x1103)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 4
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Dialup Networking" (0x1103)
Version: 0x0100

Service Name: OBEX Object Push
Service RecHandle: 0x10031
Service Class ID List:
"OBEX Object Push" (0x1105)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 9
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"OBEX Object Push" (0x1105)
Version: 0x0100

Service Name: Imaging
Service RecHandle: 0x10032
Service Class ID List:
"Imaging Responder" (0x111b)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 15
"OBEX" (0x0008)
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"Imaging" (0x111a)
Version: 0x0100

Service Name: SIM Access
Service RecHandle: 0x10033
Service Class ID List:
"SIM Access" (0x112d)
"Generic Telephony" (0x1204)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 8
Language Base Attr List:
code_ISO639: 0x454e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
"SIM Access" (0x112d)
Version: 0x0101

All you need to check on this huge amount of data is something telling that you phone exports the GPS information. In the above example there is no such thing. If your phone DOES support this information go to step 5. Otherwise, install this strategic application for Symbian: ExtGSP. This little tricky app will do all the messy thing for you exporting all the GPS data over the bluetooth connection. Then re-run the sdptool command again to check. In the end you will find additional information about ExtGPS:

Service Name: Symarctic ExtGPS
Service Description: Share phone's built-in GPS module via Bluetooth
Service Provider: Symarctic Solutions
Service RecHandle: 0x10034
Service Class ID List:
"Serial Port" (0x1101)
Protocol Descriptor List:
"L2CAP" (0x0100)
"RFCOMM" (0x0003)
Channel: 5
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100


Step 5) Then, edit your /etc/bluetooth/rfcomm.conf and make it look like this:

root@phoenix:~# cat /etc/bluetooth/rfcomm.conf
rfcomm4 {
bind yes;
device 00:21:FE:F8:2F:E2;
channel 5;
comment "Serial Port";
}


Step 6) Once configured (and ExtGPS running on your phone) you will now open a communication channel and bind it to a local device like this:

root@phoenix:~# rfcomm connect 4
Connected /dev/rfcomm4 to 00:21:FE:F8:2F:E2 on channel 5
Press CTRL-C for hangup


Step 7) Now there's a bunch of GPS information being written on /dev/rfcomm4. In order to make a good use of it, we should grad all these information, and parse it with gpsd:

root@phoenix:~# gpsd -N /dev/rfcomm4
(-N means not to daemonize it, to see all the debug info.)



What's next? Now we have all the setup ready: Cellphone with GPS up and running, exporting information via bluetooth (using ExtGPS), connected and writing information on a local device, and a daemon grabing and parsing all the information. Good! We just need a client program to enjoy the show:

Step 8) You can use a bunch of client programs, I've tested two of them: Xgps and GpsDrive.
Xpgs is a very simple program just to make sure things are working fine. It shows the position of satelites, the current position and so on. Here is a print screen:


GPSDrive is more Google-Earth-like, you may track you path during a travel, check the map and so on:


Well, that's it. Hope you enjoy :)

segunda-feira, 12 de outubro de 2009

[SPOILER] Review de District 9

META: A um tempo já que não post assuntos não-técnicos. Bem, vou aproveitar o ensejo para matar dois coelhos: (1) Anunciar um projeto em parceria com minha namorada, o Cinema a dois. Não somos críticos de cinema mas adoramos alugar pilhas de filmes pro final de semana, aproveitamos e damos alguns pitacos por lá :) e (2) Falar de um filme que está dando o que falar: District 9. Se não viu ainda, corra. Aqui clipo o post na íntegra, boa leitura. :-)

--

"AVISO: Este post contém várias referências ao enredo, I mean, spoilers. Se você já assistiu, então ok, vá ao segundo parágrafo. Caso contrário mark as unread no seu Google Reader e volte aqui depois. O que você deve saber é que é um bom filme não-clichê e merece ser visto :)

District 9

District 9 é um filme que vai contra várias clichês que filmes de ficção científica normalmente abordam. Chamo a atenção para este ponto por que justamente isso já torna o filme bastante interessante. Não tem alienígenas maus invadindo a Terra com nenhum tipo de propósito esdrúxulo (nem tocando musiquinha, nem exterminando, nem dando lição de moral). Eles estão perdidos, desnutridos e indefesos. Não vieram falar com o "nosso líder" em NYC ou Chicago ou LA, eles caíram aleatoriamente em Joanesburgo e lá ficaram.

A realidade: O que o filme retrata é, no fundo no fundo, o que acabaria acontecendo com um possível contato desses. Os alienígenas perdidos foram alocados bem embaixo de onde sua nave estacionou. Anos se passaram e, como toda "raça segregada", aquilo acabou virando uma favela com todos aqueles problemas típicos que tem: Tráfico de armas e comida, sub-moradias, guerrilhas locais e gangues. E esse é o ponto chave do filme que ironicamente foi exatamente onde houve o apartheid.

Formato: O formato tornou o filme ainda mais verossímil. Fez-se um documentário resumindo tudo o que houve desde a chegada dos ETs até o ocorrido no filme. Depoimentos, tomadas ainda não editadas e câmera em mãos acompanhando as operações. Ponto positivo.

Atuação: Aqui preciso revelar mais um pouco do enredo. Wikus, um funcionário default da MNU (Multi National United) é encarregado de despejar todos os alienígenas daquela favela com o propósito de colocá-los em um acampamento melhor - que na real, mais lembra um campo de concentração. No decorrer da operação, Wikus se contamina e aos poucos vai agregando o DNA alienígena ao seu, se tornando cada vez mais parecido com um deles. Sentiu na pele toda a segregação e desprezo de sua própria espécie. Sua atuação - combinada com o enredo, é excepcional. Wikus contraria completamente o comportamento heroico esperado, defende a sua pele e de mais ninguém. Impagável.

O interessante é como criamos empatia com os alienígenas, mesmo eles sendo estranhos, com antenas e parecendo baratas. O filme é muito bem construído em fatos e comportamentos humanos comparados a cituações semelhantes na história de nossa história. Fica a dica. :)

sábado, 10 de outubro de 2009

Googe Wave, a (r)evolução da comunicação

Pois bem, eu mal ganhei convite de usuário pro Google Wave e já estou me metendo a dissertar sobre o tema. Aliás, agradecimentos ao Duda Nogueira pela cortesia :-)

Antes de sair lendo o post, devo avisar que não será nada técnico. Mas como? Simples, são apenas algumas divagações que fiz a respeito do que pode acontecer com a forma com que trocamos informações. Já aviso que para entender melhor o que vou falar, assista a palestra de lançamento da early-release-developer-preview versão alfa no Google IO. Para facilitar a vida, posto dito ai em baixo:



Depois de ver o vídeo, surgiram alguns pensamentos aleatórios:

1) Convergência: Tudo-numa-coisa-só-conectado-ao-mesmo-tempo-agora. O conceito de email acabou, o conceito de IM acabou e o conceito de micro blogging também acabou. Agora TUDO o que circula por aí é uma wave. No fundo no fundo Google Wave serve como um proxy transparente para qualquer outro aplicativo que você queria usar. O aplicativo abstrai todos esses conceitos e mostra ao usuário o que realmente importa: A informação. Não importa se é em tempo real ou se é assíncrono, a informação está lá pra quando o usuário quiser/puder interagir.

Até aí no big deal.

2) Mobilidade: Pegue tudo isso e junte à idéia de objeto compartilhado - o que nos leva imediatamente à edição colaborativa. Agora coloque tudo isso dentro de um celular device interessante... (pensamento viciado) ...Como por exemplo o N900. Em qualquer lugar você vai poder discutir assuntos tão facilmente quanto se estivesse em uma mesa de bar, vai poder compartilhar e mostrar suas fotos em tempo real tão fácil quanto se estivesse na sala de casa conversando com seus pais, vai poder debater o projeto da firma de forma tão simples quanto em um brainstorm, vai poder... (e por ai vai)

3) Hackers of the world, unite! Agora vem a coisa legal, a API é aberta. Vamos poder brincar de desenvolver gadgets, widgets e qualquer-coisa-dgets que quisermos pra esse brinquedo novo. Widgets que faça um parser das datas escritas no texto e diga a previsão do tempo, um bot que fale com redes IRC, um widget faça café e misto-quente-fatiado quando eu acordar, ah seila.

Pode até ser exagero meu, ok. Mas eu só cheguei nessas conclusões por dois motivos: (1) Observei a tremenda revolução que o sistema de microblog fez nos meios de comunicação e (2) assisti Wall-E umas 3 vezes. Não, nenhum entorpecente envolvido.

A conclusão (por que todo texto longo deve ter uma conclusão) é que só esperando pra ver e sacar qualé. E isso me remete a um pensamento que tive na época que trabalhava no Pukas: Quando a gente desenha uma ferramenta, esperamos que os usuários usem assim, o que não impede que os usuários a usem assado ou cozido. Que eu me recorde, blogs e microblogs aconteceu exatamente assim. Logo, só esperando pra sacar qualé mesmo.

terça-feira, 6 de outubro de 2009

Primeiro Festival de Software Livre de Belo Horizonte

Impressionante, quase mais de uma semana depois e cá estou eu mineirando[1] um tempo livre pra conseguir escrever algumas linhas sobre o assunto.

o primeiro de muitos
(cartaz do evento)

Organização e Infra:
A organização foi bastante competente, não houve nenhum gap - ou pelo menos nenhum que eu tenha percebido. Wifi funcionando em quase 100% do evento e horários de palestras ok - exceto por uns palestrantes furões. Falando em palestrantes...

Palestras:
Ok, confesso que acordei tarde e que cheguei quase na hora do almoço no evento. Ok, *na hora do almoço*. Gastei boa parte da tarde revisando e corrigindo a minha própria palestra.

Mas uma palestra em especial merece algumas linhas a mais: Deixo aqui os parabéns ao Lamarque pela sua palestra-história-de-vida. Passou quase uma hora e meia falando de suas experiências pessoais em escrever driver de kernel, postar na LKML, ser tratorado, resolver bugs postar patches e por ai vai. Gostei disso por dois motivos claros: 1) Isso representa fortemente o espírito de nerd && computeiro - fazer a coisa funcionar por que *pode* e não por que quer provar alguma coisa ou por que alguém mandou. Pelo simples fato de estar interessado e querer resolver. 2) O conteúdo técnico pouco importava, a idéia era que "contribuir com SL não é um bixo de 9 cabeças". Vai lá, leia a documentação, fale com a galera no canal, poste e por ai vai. No fear.

(minha palestra do vimbook - crédito: Djavan)

Falando em palestras, a minha sobre vimbook foi bem divertida. O público era bastante interessado, os exemplos funcionaram na hora e o mais importante: As minhas piadas sem graça mantiveram as pessoas acordadas mesmo depois do devastador almoço de comida mineira. Great! Piadas a parte, o que gostei mesmo foi que as pessoas ficaram interessadas no vimbook, muitos anotaram a URL, perguntaram sobre o projeto e tal. Mission accomplished feelings.



E uma coisa que eu não canso de repetir: Em eventos desse tipo, a coisa que menos importa é ficar na sala prestando atenção na palestra. O networking no boteco pós evento é sempre mais importante. Conhecer pessoas novas, em que trabalham, trocar idéias, links, conexões em redes sociais e por ai vai :-)

o baile todo
(pessoas de belzônte, porto alegre-tchê e bahia, networking é isso aí ó)

Parabéns a todos da orgzanização, palestrantes e amigos. E que venha o próximo! :-)
Algumas fotos do evento no meu flickr, no flickr do Tuliom e no picasa do Djavan.

[update] os slides da minha palestra estão aqui:


[1] - Ahn?! Ahn?! Entendeu?!

quinta-feira, 24 de setembro de 2009

Otubo no 1o Festival de Software Livre de BH

Bem, é isso mesmo que vocês viram. Virei um pop-star e agora dou palestra pelo mundo todo. Sério? Lógico que não. A verdade é que conheci um pessoal muito bacana de BH no FISL10, eles elaboraram um evento muito legal e abriram para chamada de trabalhos. Pensei: Pô! Taí uma oportunidade de divulgar o Vimbook! Voilá, amanhã embarcarei às 20h pra terrinha do pão de queijo pra falar um pouco de Vim pra moçada de Software Livre de Belo Horizonte :)

quinta-feira, 17 de setembro de 2009

Software Freedom Day '09 na UNESP Rio Claro parte 2

E o que mais me agradou em ir ao Software Freedom Day da Unesp este ano, foi que a platéia não tinha apenas alunos da Unesp, mas de outras instituições de ensino da região. É sempre interessante espalhar os conceitos e idéias pra mais gente :) Bem, ai estão os slides, e já que estamos falando em licenças a minha palestra está em CC. :)





quarta-feira, 9 de setembro de 2009

Software Freedom Day '09 na UNESP Rio Claro

Novamente fui honrado com o convite de dar uma palestra no Software Freedom Day da UNESP de Rio Claro. O evento é mundial e acontecerá dia 15 de setembro na UNESP Rio Claro.


Vou preparar alguns slides sobre licenças de software. Vou falar um pouco sobre licenças, Creative Commons, DRM e por ai vai. Em breve mais notícias! Apareça lá na UNESP, 15 de setembro, 20h! :)

Use your cellphone bluetooth to set your status on IM's

meta: Another tip from my spare time on my vacations. :)

The idea is simple, put your cellphone on your pocket and set the status of your IM's as you walk away from your PC. Easy like that. The basic concept is to write a shell script that checks if your cellphone is around using the bluetooth protocol and put it on the crontab. If your cellphone is not around, the script sets away on both Xchat and Pidgin and so on. Well, talk is cheap...

First of all, turn you cellphone bluetooth on, then check its MAC address with hcitool:
otubo@phoenix ~ $ hcitool scan
Scanning ...
00:1F:DE:4A:AD:C1 otubophone

After, write a simple shell script that tries to match the name of the device with the MAC address. If the cellphone is not around, then set the status of your Xchat and Pidgin to "Away From Keyboard" and lock the screen, otherwise, set the status as "Available". (I didn't unlocked the screen for security reasons, I do prefer typing the password instead)

#!/bin/bash

MAC="00:1F:DE:4A:AD:C1"
NAME="otubophone"
CMD=`/usr/bin/hcitool name $MAC`

if [[ $CMD != $NAME ]]; then
xchat --existing --command="ALLSERV away";
xchat --existing --command="ALLSERV nick otubo[AFK]";
purple-remote "setstatus?status=away&message=Away From Keyboard";
gnome-screensaver-command --lock;
else
xchat --existing --command="ALLSERV back";
xchat --existing --command="ALLSERV nick otubo";
purple-remote "setstatus?status=available&message=Available";
fi

Make it executable:
chmod +x /path/to/your/script.sh

And finally, put your shell script on the crontab to check it every minute:
* * * * * /path/to/your/script.sh

Actually, all this stuff is more cool than really useful. Just a weekend project I wanna share :P

ThinkPad T61 on a LG Scarlet at FullHD

The question in pretty simple, my girlfriend just bought a LG Scarlet and obviously I had to configure my notebook to work with it because... Because... Well because I like these shits :D. The way is really straight forward, you just have to do the right configurations on your /etc/X11/xorg.conf and use the right mode on your xrandr parameters. Follow this simple tutorial and you will have your Linux working with a FullHD TV with 1920x1080 :)

Change the Screen section of your xorg.conf to be like this:
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Configured Video Device"
Subsection "Display"
Virtual 1920 1080
Endsubsection
EndSection

Restart you X. This new configuration will allow you to add new modes with xrandr:
xrandr --newmode "1920x1080_24.00" 74.25 1920 2558 2602 2750 1080 1084 1089 1125 -HSync +Vsync

xrandr --newmode "1920x1080_50.00" 148.50 1920 2448 2492 2640 1080 1084 1089 1125 -HSync +Vsync

xrandr --newmode "1920x1080_60.00" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 -HSync +Vsync

xrandr --addmode VGA 1920x1080_24.00
xrandr --addmode VGA 1920x1080_50.00
xrandr --addmode VGA 1920x1080_60.00

This are the three common frequencies (24Hz, 50Hz and 60Hz) choose the one that fits better on your TV like this:

xrandr --output VGA --mode "1920x1080_60.00"

Note: LG Scarlet works only with 60Hz.

sexta-feira, 24 de julho de 2009

Libvirt now supports IBM Power Hypervisors

Yeah, that's it: Yesterday the my first patch were pushed into the main tree of Libvirt's repo. It will be available in the next version, libvirt-0.7.0[1], scheduled to be released in the end of this month. This lib now has the power[2], to manage IBM Power Hypervisors through HMC/VIOS and IVM :)

Libvirt is a library that creates an abstraction layer by exporting a generic API above a virtualization system. You can create your own virt-manager-like software using libvirt and you'll be able to manage most sorts of virtualization systems. It started to be used only with Xen, but many other drivers were made other different systems: KVM, Openvz, VMWare, VirtualBox and so on.

My job at LTC is to design and implement a driver that could manage both HMC/VIOS and IVM systems. This is the first version, a lot of features are planned to be done. Wait for more news :)

[1] - Also known as "double-o-seven release".
[2] - This joke has no effect in portuguese.

quarta-feira, 22 de julho de 2009

Gtk replacements for Qt applications

And the story is pretty simple: I avoid using Qt application. I don't have any technical arguments for such opinion. The point is that Gtk applications just look more beautiful than Qt based :)

And besides, I really can't use full desktop environments like KDE or even Gnome. So, I use OpenBox with a lot of Gtk-based applications. It gets really fast and simple to use. But ok, enough talk. Let's get to business:
Talking a little more about my favorite window manager, there is two ways to start applications automatically on OpenBox:
  • You may put the commands you would like to be started at ~/.xinitrc - if you are doing startx or if your login manager reads the ~/.xinitrc file
  • Or put them at ~/.config/openbox/autostart.sh instead.
Have fun :)

*Thanks to Ursinha
**Thanks to Carlos Costa
***Thanks to Edjunior


quinta-feira, 16 de julho de 2009

Why do people still download mp3?

This should be a fast-post at anywhere else, but since this is an almost-technical-matter I'll write this post here. I promise it will take more than 140 chars. :)

These days we've been in touch with that p2p crap more than ever. Cybercrimes, PirateBay, Peter Sunde and all that shit surrounding copyrights. I am not discussing this, they're right! We should be able to share midia and content freely at internet... But the point I wanna get is not that.

(picture by: hooverdust)

I was watching MTV Brazil yesterday and I came across an interview where some guy (it doesn't matter the name) points that the trends (oh, the trends) are going to a completely different way: The streaming media. Yes, that's it. Websites like last.fm are overwriting the P2P concept. "Yeah! End of the problem!" you might think - as I thought as well. But two seconds later I realized that this is bullshit. Understand, while our mp3 players and car players doesn't play streaming media, we will still have P2P ruling our connections. Ok, going a little bit deep inside this matter, just think about the infrastructure we would need to have our iPods playing streaming media. This is enough complications for a single post. :)

And just another thought: When I BUY media, I want to do whatever I want with it. Play at my computer (fuck DRM!), play at my cellphone, play in my car driving to work... God, streaming media don't make any sense at all to me.

quinta-feira, 2 de julho de 2009

Laboratórios fotográficos no Rio de Janeiro

Bem, já que hoje foi dia de folga o LTC Day na IBM, e eu estou no Rio, aproveitei pra caçar todos os endereços de laboratórios que o Portela comentou em aula. Aí estão:

Cartão de escala de cores e PB
(cartão de escala de cor Koadak que achei no Ponto Fotográfico - *de grátis*)

A minha busca inicial era por um cartão de escala de cor da Kodak que só fui achar no Ponto Fotográfico em Botafogo, mas no fim das contas acabei deixando um rolo Neopan @ 400 pra revelar no Barreto e um Fujichrome @ 100 no KronoKroma. O resultado vai estar no flickr mais tarde.

segunda-feira, 29 de junho de 2009

FISL10, visão geral

Este é o segundo e último post da série de reviews sobre o FISL, o primeiro está aqui.



Qualidade e variedade de palestras:
FISL teve algumas palestras com alguns assuntos batidos demais, de cabeça, "Por que Python?" é de cara um deles. Eu acredito mesmo que já está na hora de dar um shift nessas idéias. Já sabemos que software livre da certo sim, já sabemos a impotrância do conhecimento livre e já sabemos que compartilhar conteúdo na internet não é crime - pra essas coisas qualquer um não-recém-chegado ao mundo do software livre pode explicar, não precisa de uma palestra de 40min.

Outro ponto levantado em algumas discussões é sobre o nível das palestras: "Assuntos pops atraem newbas e a qualidade do evento cai." - autores dessa opinião, nada pessoal, eu sei que vocês vão ler esse post, opinem ai em baixo e me corrijam se eu falei alguma besteira :D. Mas pô, peraí. Isso eu já acho um pensamento meio elitista. O evento deve atingir todos os níveis de conhecimento, certo? Mesmo por que, quem consegue dar uma palestra mega-boga profunda em 40min? Assisti à todas as palestras sobre virtualização e algumas sobre kernel e até as sobre kernel foram de certa forma simples e puderam ser compreendidas por seres humanos. Acho que a idéia é essa mesmo, cada vez mais atrair mais gente, espalhar conhecimento, ganhar adeptos e tal. O nível das palestras (IMHO) foi razoavelmente bem distribuido. Mesmo por que - e isso eu digo sempre - conhecimento técnico a gente adquire no google, em salas de IRC e batendo a cara no computador madrugada a fora. Palestra é pra você conhecer o tema, pegar uma ou duas URLs pra começar a estudar, só isso. :)

Escolha dos temas:
Isso sim foi um bocado tenso. A escolha dos temas não foi algo claro e transparente. Ficaí a dica pra um upgrade no ano que vem. Um sistema mais claro pra todo mundo acompanhar quem vai e quem fica. :)

Tirei algumas fotos do evento. Algumas delas estão no meu Flickr e outras no pool da Agência FISL (@agenciafisl) que fez uma cobertura fotográfica colaborativa do evento.

E até o próximo FISL! :)

quarta-feira, 24 de junho de 2009

FISL10, primeiro dia

English spoken folks, this is gonna be in pt_BR only, sorry.

Primeiro dia de palestras no FISL 10: Frio, filas e internet que não funciona. Só isso. Brincadeira, tem coisas boas também.

Credenciamento para imprensa/blogs:
O primeiro dia de FISL foi marcado principalmente pela organização ruim do FISL que não dá kit para pessoas da imprensa / blog. Bem, essa separação de um crachá pra imprensa e outro para blogs já é algo que não desceu bem, principalmente hoje em dia e principalmente em se tratando de FISL. E outra, eu paguei normalmente, certo? Por que eu não posso ganhar um kit?

O kit
"Mas até a bolsa você quer?" Sim, já que o cronograma foi impresso num formato de jornal de domingo e só cabe naquela bolsa. Fora o fato que também é mais fácil de acessar durante o evento. Falando mais desse cronograma, pessoal de arquitetura de informações passou bem longe dele. Fizeram uma tabela com vários espaços em branco gerando uma tabela imensa, o que poderia ser reduzido a algo mais compacto e fácil de visualizar.

A infra
Bem a infra já não é culpa do da organização do FISL. Cheguei cedo com a Ursinha e o wireless estava redondo e navegando normal. O sinal do AP ao longo do evento é sempre bom... MAS com a chegada de todos os grupos de usuários do mundo inteiro a coisa complicou um pouco. A medida que a moçada foi chegando, vários AP's foram subindo. Meio dia e a internet já estava inavegável (essa palavra existe?). A quantidade massiva de AP's em mesmos canais estava degradando demais TODO o wireless do evento. Pronto, agora só por cabo.

Mas tem ponto positivo, certo? Sim, palestras.

DNSSEC mess
D. J. Bernstein falou de todos os problemas que a implementação do DNS atual tem. Ataques de hijacking e similares, falou do pequeno acréscimo de seguranção que o DNSSEC introduz e a quantidade de bagunça que ele faz. Falou também o quanto um AP's é vulnerável com um simples script, coisa pouca mesmo.

Redes mesh
Taí, sabe aquele problema do pagrágrafo da infra? Então, resolvido com redes mesh. Se todos os AP's fossem levantados como multiplicadores em oníssono, todo mundo ia ter internet rápida e redonda. Palestra pouco técnica, mas levantou uma bola pra galera da organização de eventos grandes (Campus Party e Encontro da Locaweb, por exemplo). Comecem a pensar, gente. (não sabe o que são redes mesh?)

OpenEmbedded
Boa palestra do Salveti sobre um framework para cross build de aplicativos. Projeto que elimina toda aquela burocracia e trabalho para a cross compilação. Só quem já trabalhou com isso sabe como é complicado a nada trivial.

Amanhã tem mais. Aliás, preciso fazer juz ao crchá que me deram. :-D

sexta-feira, 29 de maio de 2009

FISL is not as it used to be

meta: I started posting in english and I did not loose any readers, thank you guys ;)

Here in Brazil we have a worldwide free software conference called FISL - Forum Internacional de Software Livre (Free Software International Forum, in english). This is the first time I will be able to attend this conference and I am already facing some bad news. It's all about the way lectures were aproved, too may questions surrounding the methods on how topics were choosed (link in pt_br). Some complaining about the lack of technical lectures and other claiming for more political ones. So, here is what I think:
  • Technical stuff we may learn at home freaking out night away at the computer.
  • Nerd events like this are just great to improve your social skills - yes we need this! Meeting new people, new free softwares iniciatives and so on.
But, int he other hand...
  • There is no reson to talk about "Why free software is good" or "Why Python?". Comon guys, we can do better! Let's think a bit ahead.
While we don't find a way to put these things together in equilibrium we could just avoid some topics that had already been presented in the past. This could be a good start :)

domingo, 24 de maio de 2009

libssh-0.3 released

Meta information: I'll start posting in english. The reason is pretty simple, some folks outside Brazil started to "read" this humble webblog these days, this includes my libssh friends and some other buddies :) This also should supply this lack of posting I am facing lately - I think.

This last thursday (21st / may) libssh-0.3 was released in its brand new website! But for what libssh is used for? From the official website: "The ssh library was designed to be used by programmers needing a working SSH implementation by the mean of a library. The complete control of the client is made by the programmer. With libssh, you can remotely execute programs, transfer files, use a secure and transparent tunnel for your remote programs. With its Secure FTP implementation, you can play with remote files easily, without third-party programs others than libcrypto (from openssl)." Congratulation folks :)

Check it out! Literally, I mean, the SVN repository.