OpenMoko Rotate 0.2.1

Yes, it’s out, release early, release often, yadada yadada. I’m grumpy because of less sleep time than usual, and a whole day of ITIL Foundation V3 lesson (3 more days of it, plus an exam later on).

Get it here: rotate-0.2.1.tar.gz (signature)

Anyway, here’s the good news:

$ head -5 ChangeLog
2008-09-22 - 0.2.1
        * more heuristic fixes (hopefully really fix when laying around, and
          turned up)
        * workaround with alarm() for the accelerometer read-hang problem
        * sleeping for 100ms seems to get cpu usage quite low (0% to 0.9%)

OpenMoko Rotate 0.2.0

Woke up 2h earlier because of a problem, solved quickly, took the extra time to greatly improve the heuristics.

If you haven’t tried it before, now it’s the time to try. If you did, NOW is the time to try again 🙂

Fetch it now: rotate-0.2.0.tar.gz (signature)

$ head -3 ChangeLog 
2008-09-22 - 0.2.0
	* greatly improves heuristics
	* fixed heuristics when laying around, and turned up

First brown paperbag release of new Rotate

Oops, heuristics were bad, very bad. Still has quirks, but at least now they’re not so shameful.

There’s a new release: 0.1.1 (signature)

$ head -2 ChangeLog 
2008-09-21 - 0.1.1 - First brown paper bag release
	* improves heuristics
$ cat KNOWN_ISSUES 
Known Issues:
	* reading from the accelerometer hangs after X time/reads
	* some heuristic values may need finetunning (specially when
	  laying around, turned up)

New Rotate for OpenMoko

As said before, since I’m not entirely happy with the previous version of Rotate for OpenMoko, also using it as a way to learn how to write programs for it, I’m writing a new version of Rotate for OpenMoko.

I’m now announcing the first results: release 0.1.0 is out (signature)! The tar.gz file contains both source and a binary suited to run on Om200x.y (at least 2008.9 should work).

Be careful, it bytes.. 🙂

$ cat ChangeLog
2008-09-21 - 0.1.0 - First release.
	Current Features:
	* makes some rotations

	Known Issues:
	* reading from the accelerometer hangs after X time/reads
	* some heuristic values may need finetunning (specially when
	  laying around, turned up)

	Near Future:
	* don't rotate when screen is locked
	* change profile to silent/meeting when phone is turned down
	  and revert when it is turned back up

Getting ready for Rotate rewrite

So… following up on my patch for a better xrandr rotation on Rotate, I’ve been learning how to read the accelerometers, and it’s a lot of fun, actually. I’m so thrilled… I really missed programming 🙂

Now, the good news is that in a couple of days (hopefully) I’ll be posting a completely new Rotate. I’m collecting some positioning data from the second accelerometer, and right now I already know a few positions, at least my little test program is guessing some positions quite right…

s/guess position/libxrandr rotate/ and you get the new Rotate 🙂

All this without running the risk of seeing this software banned (like the iDictatorPhone), where it seems some programmer got his application banned on the iDictatorPhone because it competed with Mail.App. Nice one, Apple, you’re only proving us, Free Software activists, right. Again. 🙂

The following is the current output as I pick it up from the table and place it from turned up into turned down.

Postion (90,90,1026):  horizontal turnedUp
Postion (90,72,990):  horizontal turnedUp
Postion (36,54,990):  horizontal turnedUp
Postion (-36,36,990):  horizontal turnedUp
Postion (18,18,972):  horizontal turnedUp
Postion (18,936,0):  upsideDown
Postion (18,36,882):  horizontal turnedUp
Postion (36,36,900):  horizontal turnedUp
Postion (18,18,1008):  horizontal turnedUp
Postion (-36,1080,0):  upsideDown
Postion (-36,-36,1080):  horizontal turnedUp
Postion (72,1134,0):
Postion (54,18,1314):  horizontal
Postion (54,54,1386):  horizontal
Postion (18,144,1404):  horizontal
Postion (-36,198,1386):  horizontal
Postion (-72,234,1296):
Postion (-54,108,1152):  horizontal
Postion (-396,-72,936):  horizontal turnedUp
Postion (-864,-198,1080):  horizontal left turnedUp
Postion (-504,-36,918):  horizontal turnedUp
Postion (-504,54,1026):  horizontal turnedUp
Postion (-414,54,1098):  horizontal turnedUp
Postion (18,-54,774):  horizontal
Postion (234,-288,378):
Postion (180,-666,18):
Postion (414,-720,216):
Postion (-36,-1080,0):  vertical
Postion (90,-774,-72):
Postion (126,-270,-216):
Postion (234,702,360):
Postion (-360,378,-2304):
Postion (864,1170,-918):  right turnedDown
Postion (126,702,-1800):
Postion (288,558,-1494):
Postion (270,288,-1314):
Postion (54,108,-1206):  horizontal
Postion (108,162,-1098):  horizontal turnedDown
Postion (288,108,-882):  horizontal turnedDown
Postion (342,162,-792):  horizontal
Postion (270,72,-828):  horizontal turnedDown
Postion (306,36,-972):  horizontal turnedDown
Postion (306,90,-1188):  horizontal
Postion (270,324,-1332):
Postion (180,396,-1278):
Postion (126,450,-1386):
Postion (-36,522,-1674):
Postion (36,270,-1404):
Postion (180,90,-1080):  horizontal turnedDown
Postion (72,72,-1044):  horizontal turnedDown
Postion (54,90,-1044):  horizontal turnedDown
Postion (-18,72,-1080):  horizontal turnedDown
Postion (18,72,-1026):  horizontal turnedDown
Postion (18,36,-1080):  horizontal turnedDown
Postion (18,36,-1134):  horizontal
Postion (36,36,-1098):  horizontal turnedDown
Postion (54,36,-1098):  horizontal turnedDown
Postion (90,54,-1080):  horizontal turnedDown

OpenMoko Rotate now using libxrandr

As I peeked into the code of OpenMoko’s Rotate (a program that rotates the screen acording to the current tilt), I noticed it made use of system to launch the xrandr program with appropriate arguments.

Well, system costs a lot in terms of processing power, not to mention launching another program, and that means even less battery time. I didn’t like that, so I wrote a patch that alters the current rotate.c into a new rotate.c in order to use librandr and get it to rotate the screen without the costly system+xrandr duo from hell.

I also built a binary of rotate, which you can download from this link and place on your OpenMoko Neo Freerunner with 2008.8 or 2008.9 (I haven’t the foggiest idea if it works on other versions).

Hopefully, you might want to verify the sha1sums:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

afc833b7cd2c874c1c815a0cb9f7c38a65998ff5  rotate
efcc6277080b2aadc3306a000a97ab202ca2bece  rotate.c
c1eb847d05cd36e0e9f31b5e5f6eb9337f730d0f  rotate_libxrandr.patch
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQFI1ES1o+C50no0+t4RAjSrAJ41N0KpD7JaY3WfiRViexn4CvQw7QCePNr3
G8Z3ejIwprpK7J7unjMaS1A=
=anNm
-----END PGP SIGNATURE-----

I realise the way I wrote didn’t make it very obvious, so here’s a listing of the files:

Séries [update 2008-09-17]

Estamos em época de recomeçarem várias séries televisivas. Como de costume, primeiro que cá passem… bem eu não devo ficar à espera que passem. 🙂

As esperadas…

  • 8 de Setembro: Terminator: The Sarah Connor Chronicles, 2ª temporada. Custou a pegar, mas pegou. Se tem Summer Glau, não pode ser mau, quanto mais não seja tem a Glau 🙂 [Update: Ooo… Um(a) T-1000…]
  • 16 de Setembro: House MD, 5ª temporada. Humor mórbido q.b., e uma personalidade de encher a vista actuada pelo grande Hugh Laurie. [Update: «We’re not friends any more, House. I guess we never really were…»]
  • 22 de Setembro: Heroes Volume 3: Villains, 3ª temporada. Depois de uma desastrosa 2ª temporada, onde notoriamente os argumentistas fizeram falta para manter a congruência, espero que a 3ª volte à qualidade da 1ª temporada.
  • 28 de Setembro: Dexter, 3ª temporada desta deliciosa série centrada à volta de um CSI especializado no sangue em cenas de crime que é um serial-killer em part-time. Mas só mata quem… erms… merece… mas parece que se vai enganar nesta temporada…
  • 29 de Setembro: Life, 2ª temporada. O multi-milionário detective continua a desvendar a trama que o levou à prisão.
  • Natal de 2008: Doctor Who, Especial do Natal de 2008
  • Inícios de 2009: Torchwood, 3ª temporada. Apenas com 5 episódios, regressa o Capitão Jack Harkness, saído para este Spin-off de Doctor Who e primeiro (que eu saiba) bisexual apresentado como “herói da fita, role-model, etc…”
  • Inícios de 2009: o FIM de Battlestar Galactica (esta nova versão é muito melhor que a antiga)
  • Durante 2009: Doctor Who, 4 episódios especiais
  • Em 2010: Regresso de uma série completa de Doctor Who.

As curiosidades…

  • 9 de Setembro: Fringe, 1ª temporada. Estilo X-Files antigo, por JJ Abrahams. [Update: promete, pelo menos o início está muito bom]
  • 24 de Setembro: Knight Rider. Depois de um episódio piloto fraquinho, será que a série melhora ou será algo para esquecer? Não é que esteja à espera de algo muito bom, mas pelo menos que entretenha…
  • Irá Jericho voltar?

As “céus que nunca mais acabam…”

  • Stargate Atlantis, 5ª temporada, a falta de imaginação é atroz, já vi séries acabarem a meio com muito mais imaginação. Episódios de encher chouriço desde meados da 2ª temporada. Guilty pleasure… já começou e quero ver como acaba (sim, há luz no fim do túnel, é a última temporada, seguida de um filme).
  • 18 de Setembro: Supernatural, 4ª temporada. De vez em quando tem episódios que compensam todos os outros. Outro guilty pleasure

As boas memórias:

  • Babylon 5, vi tudo (filmes e Crusade), de forma intensiva, do início ao fim e segunda uma sequência de visionamento que considero acertada. Claramente houve alguma divergência entre quem mete o dinheiro e J. Michael Starczinsky, a guerra Shadow-Vorlon foi terminada à pressa, e a partir daí a qualidade caiu significativamente. Seja como for, ao ver o último episódio junto-me aos que lamentam o fim da série.
  • The 4400, 4 temporadas. Aproximação mais realista à temática de seres humanos com poderes. Infelizmente lá para o fim começaram a ter uma crise que descrevo como “The Highlander Effect”: tentaram arranjar uma explicação para a história e estragaram tudo. Aproveitaram a greve dos argumentistas do ano passado para suspender, sine-die, a série.

LHC: Hoje o mundo acaba (ou talvez não)

Mortais, arrependei-vos, pois dentro de quase 8 horas (pelas 8 da manhã, 9 de Zurique, Suiça) será ligado o Large Hadron Collider será ligado em Zurique Genebra. Trata-se do maior e mais energizado acelerador de partículas.

Há quem tenha receios (infundados) sobre nele resultar o fim do mundo. Bem, se acabarem por ser “fundados” espero que o fim do mundo seja depois de tomar o pequeno almoço 🙂

Existe um webcast, para os mais ansiosos podem já deixar o mplayer a tocar:

mplayer mms://wmsuds.cern.ch/webcast

TMN “aluga” música que não toca em players

Novo [des]serviço da TMN: DRM enlatado com aspecto de acesso a música. Os clientes podem aceder o catálogo mas não o podem tocar fora de um único computador nem nos seus players MP3.

Para que serve?

Prevejo que os únicos clientes sejam asnos desprovidos de miolos e que a Rita Teixeira caia no olho da rua.

É que a ideia não é nova, a Microsoft Zune Store já lixou os clientes ameaçando-os de ficar sem acesso às músicas desde Agosto deste ano (entretanto mudaram de ideias, provavelmente com medo de processos judiciais em massa), não é um «paradigma novo», portanto.

É que a ideia não é «simples o suficiente para abrir o download de música a utilizadores com menos conhecimentos técnicos» uma vez que «não pode ser reproduzida em leitores de música ou outros dispositivos».

Já estou a imaginar o coro: «não toca no carro/ipod/player MP3 porquê?»

Eis o porquê, a TMN vende banha-da-cobra:

  • o serviço não é uma alternativa à cópia não autorizada uma vez que é menos útil
  • não oferece qualidade de som uma vez que só pode ser tocado no telemóvel ou num computador (provavelmente Windows Vista only, que é para a degradação dos sinais de áudio poder funcionar).
  • e garantia de segurança é um termo tirado directamente do livro 1984 de George Orwell, pois não é a segurança dos clientes que está em jogo, é a garantia que os clientes não vão fazer coisas que eles não querem.

Portugal sempre na crista da onda… das antiguidades.

DRM na TMN? Até já vomitei.

2%-3% dos browsers com Google Chrome? Como? hms…

Pronto, finalmente acabei por escrever algo sobre o Google Chrome. Dizem para aí que em 2 dias ganhou uma quota de browsers de Internet entre os 2% e os 3%.

A minha primeira sensação foi que haveria muito exagero, mas de repente surgiu-me à cabeça uma possibilidade. Lembram-se dos testes automáticos que eles descrevem na página 10?

«If each build is tested against a million sites, which million do we use?» — Erik Kay, Google Software Engineer

O cabeçalho User-Agent: é o que permite aos web-sites registarem os tipos de browsers que surgem. O que é que acham que estes testes automáticos com sites reais acabam por fazer?