Powering a Raspberry Pi

April 13, 2013

The Raspberry Pi is powered through an standard micro-USB conector. That is great, since it allows you to use pretty much any phone charger you got lying around. Or at least one that supplies 700mA of current (maybe a bit more if you plug extra USB stuff on the Pi).

I thought I had it covered with my iPad charger and its juicy 2.1A, but the video below shows that voltage also plays a role (and that the iPad charger doesn’t really deliver in that respect):

USB specs say you should have 5V ± 0.25V from a source, and the Pi also expects that, so I bought a $9 KDL-5100A at my electronics parts supplier. It is physically identical to the FY0501000 linked on the video, and indeed, performed better than the iPad charger… but still below 4.75.

After some head-scratching, I found the issue: the cable. Apparently, cheap cables have quite some resistance, which causes voltage drops as you need more current (Ohm’s Law, I suppose). Replaced it with a Samsung one, and voilà: iPad charger got almost good, and new charger worked great.

An LG cable (with no Part number) got me pretty much the same results. Also tested the cable on an Apple Cinema Display USB port (okay) and a BlackBerry Playbook charger with built-in cable (excellent). Heard good things about the Kindle Fire charger, but could not test it yet.

Guess who was causing trouble?

Guess who was causing trouble?

Below is a wrap-up of my measurements (Wi-Fi and keyboard dongles plugged); recommended options in bold. In short: get a proper charger, avoid $1 cables and always measure.

Charger Cable Power (V)
Apple A1357 Cheap unbranded 4.16 – 4.56
Apple A1357 Samsung APCBU10BBECSTD ~4.75
KDL-5100A Cheap unbranded 4.65 – 4.75
Cinema Display USB Port Samsung APCBU10BBECSTD 4.75 – 4.81
KDL-5100A Samsung APCBU10BBECSTD 4.90 – 4.95
BlackBerry HDW-34724-001 built-in 4.99 – 5.01

A step-by-step guide to configure encrypted Time Machine backups over a non-(Time Capsule) network share

April 6, 2013

Time Machine is a wonderful piece of software, in no small part for following Mac OS X’s philosophy of simplifying common tasks, but allowing advanced users to go “under the hood”. My issue: I wanted to back up to a hard disk shared by this nice router, and I also wanted encryption.

The best Time Machines are designed in California.

The best Time Machines are designed in California.

Unfortunately, Time Machine won’t do network backups except on Apple Time Capsule, most likely due to its reliance on Unix hard links, which typical Windows (SMB/CIFS)/FAT device based networks (like mine) won’t do. Filesystem-based encryption is also a no-no. And even if that worked, my other devices (such as my XBMC-powered Raspberry Pi) need open access to the files already shared.

Mac OS X sparse images (aka sparse bundles) to the rescue. They are just like the .img files you get when downloading Mac software from a website, but supporting all the goodies mentioned above (encryption and hard links) and a bonus: they auto-grow (to a specified limit) as they need more space. Time Machine is capable to use one of those – as long as you can trick it into that, which can be tricky.

I found some great articles online on how to create an sparse image, encrypt it and convince Time Machine to use it, and here is a step-by-step mix of their tips that worked for me:

Step 1: Naming the image

The image file name should contain your computer name and wi-fi address. To ensure that, open your Terminal and paste these commands:

MAC_ADDRESS=`ifconfig en0 | grep ether | awk '{print $2}' | sed 's/://g'`
SHARE_NAME=`scutil --get ComputerName`
IMG_NAME=${SHARE_NAME}_${MAC_ADDRESS}.sparsebundle
echo $IMG_NAME

If you read something like <name>_<hexdigits>.sparsebundle, you are good to go.

Step 2: Creating the image and encrpyting it

Before you paste/type the next block of Terminal voodoo, change the line MAXSIZE=750g to the maximum size you want the sparse image to grow (after that, Time Machine will delete older backups, as usual), .e.g: MAXSIZE=300g. Use the same Terminal window from step 1, as this code depends on the name generated there.

MAXSIZE=750g
hdiutil create -size $MAXSIZE -type SPARSEBUNDLE -nospotlight -volname "Backup of $SHARE_NAME" -fs "Case-sensitive Journaled HFS+" -verbose unencrypted_$IMG_NAME
hdiutil convert -format UDSB -o "$IMG_NAME" -encryption AES-128 "unencrypted_$IMG_NAME"
rm -Rf "unencrypted_$IMG_NAME"

You will be asked for a password (I’d recommend a passphrase, but it’s up to you), and the sparse image file will be on your home folder.

Do not double click/open it yet.

Step 3: Asking Time Machine to play nice

Open Finder and move the image from your home directory to the network share (or copy and delete the original). Now double-click to mount it, enter the password and the “Backup of YourComputerName” should appear on finder. Hooray – except that Time Machine won’t allow you to select it.

We’ll need to force its hand with this last block of commands (yet on that same Terminal window):

defaults write com.apple.systempreferences TMShowUnsupportedNetworkVolumes 1
sudo tmutil setdestination "/Volumes/Backup of $SHARE_NAME"

Enter your Mac user’s password when prompted, and when you open Time Machine preferences, you’ll see “Backup of your_computer_name” configured as the backup volume. As long as it is mounted, it should work with Time Machine just like an USB HD.

Caveat

As with standard Time Machine backups, these can be accessed by any Mac, as long as you have the volume password. I’m not sure, however, whether they can be used for a full restore on a new machine (probably yes if you do the first and third steps, but did not test that far).

Personally, I’m not much of a fan of doing full restore on a different machine/OS version. Although I’ve seen it work, I’d rather start from scratch, copying files from the latest backup of the old computer on a need-to basis. If you think otherwise, this solution may not be the best for you.

UPDATE: This was tested in Mac OS X versions 10.7.5 and 10.8.3. Older versions might work as long as they support encrypted bundles, but I’m not really sure. Let me know on comments below if it does not work for you (and what happened).

Cordy 2 (and a bit of 3DS bashing)

March 26, 2013

Cordy 2 is an extremely beautiful platform game that I’m playing on the iPad (there is an Android version as well). The game is fast/challenging at the right measure (at least for my taste) and does its best to offer decent controls on a touch screen.

Levels are managed in the Angry Birds style (you earn 1-3 stars according to your performance on each level), but “cost” mechanics ensures you put some effort in a few of them to move forward. Tutorials are very short and mostly skippable, and game dialogs are kept to a minimum. Overall, you just play the game and have fun (a hard-to-find concept in recent games, I guess.)

The fact that you don’t really “die” (at least I haven’t so far) initially made me afraid the game was too easy. But using other types of punishment (like sending you back a bit) works well, pretty much like the old LucasArts adventure games “no death/no dead end” policy gave them a playability edge over Sierra titles and other predecessors.

My only complaint is that I miss hardware controls for platform games (regardless of how beautiful they are on the Retina display). I bought a Nintendo 3DS precisely for that reason, but never found a great platformer for it (or any title that breaks the “ok, but not as shiny as the original” impression).

The only thing that keeps my Nintendo portable running are the Mii Plaza StreetPass-based mini-games, the ultra-polished Mario Kart 7 and the faithfully recreated Twin Bee. New SMB2 had everything to change that, but the “you-suck-let’s-make-you-Invincible-Mario” crushed the experience for me.

Back to Cordy 2: maybe it’s not for the hardcore gamer, but overall I find the $5 was money well spent. As usual in iOSland, you can try a few levels before making a decision – yet another thing that very few titles (and none from Nintendo, I believe) offer on the 3DS.

Farewell Google Reader; Hello NewsBlur!

March 21, 2013

NewsBlurAs a content addict, I’ve always sought tools that ease its consumption, from primitive ones such as PointCast, Plucker and Hands to modern-day RSS aggregators like Google Reader.

Reader’s efficient handling of feeds, flexible ordering (a must for webcomics) and read post tracking pretty much killed competition on this arena years ago. But hegemony is seldom a good thing in software, and bad calls like the stubborn push of a GMail-like UI and the abandonment symptoms (recently explained by an ex-PM) made the retirement announce my personal wake-up call to find a better solution.

After evaluating quite a few self-hosted and third-party options, I chose NewsBlur. It’s a well-crafted (mostly by a single developer), open-source and excellent service, with has all the bells and whistles Reader had on its best days. It even includes social features, not unlike the ones one that Google axed in favor of paltry Google+ buttons (which are only useful if your target audience is limited to Google employees and Facebook denialists).

It also packs trainable filters to show/hide content (not my turf, but they seem good), and a nice touch for webcomics and sites with partial feeds: you can set up those to display the original content in-place. The iPad app is also neat – a way better proposition than Reader’s (yet more) anemic mobile browser interface.

Due to the massive influx of Reader refugees, it doesn’t offer free accounts right now, but you can play with a simulated account on their homepage and get a good grasp of the real thing. You have to pay for one year upfront, but it’s only $2/month – a small and more than deserved fee for such a lovely piece of work.

Unless, of course, you believe RSS is dead(*). In that case, never mind.

(*) hint: you shouldn’t. Its death is announced so often that it could easily get mistaken for a modern comics character.

Raspberry Pi (with BerryBoot and ChameleonPI)

March 18, 2013

(TL;DR: if you just want to know how to make ChameleonPI v0.3 work with BerryBoot, jump here)

My Raspberry PI

The Raspberry Pi is a low-priced small computer-in-a-board, built for those who want to tinker, learn and have some geeky fun. The overall experience is quite reminiscent of the hobbyist 8-bit personal computer age – it may be more than a coincidence that the project shares British origins with the Sinclair ZX81/Spectrum and the BBC Micro.

Like many of today’s smartphones and low-power devices, the Pi uses an ARM CPU. This is a fun fact because that architecture was created by Acorn, the very same company that built the original BBC Micro! (the “Model A” and “Model B” boards are a clear pun on the BBC Micro models.)

Here is my Pi, close to an SD card (to get an idea of its size). Yes, it's a full-fledged computer.

Here is my Pi, close to an SD card (to give an idea of its size). Yes, it’s a full-fledged computer.

Like those old computers, you’ll use any TV or monitor (with its HDMI or composite input), and can play around without fear of breaking them, thanks to the absence of moving parts and the low price. But unlike them, you use SD Cards for storage. They are the dream of the 80′s hobbyist: fast and interchangeable like cartridges, reusable and manageable like floppy disks, and as cheap as cassette tapes (you can find a a 16GB Class 10 for less than $15).

Here is a cost breakdown (in CAD): I spent less than $50 on my board (here), and $10 on the case from the photo (although you can get creative and spend more/less). I used HDMI cables and a microUSB charger I had here (minimum is 700mA; I’d suggest at least 1A), but had no keyboard/mouse lying around, so I got this mini keyboard with trackball (which works fine, but is so short-ranged that defeats the purpose of being wireless).

A cheap Wi-Fi dongle got me wireless for another $15. It all depends on what you already have on your house, but you won’t spend more than you would on, say, an Apple TV – which provides a bit more of convenience, but a fraction of the functionality and pretty much none of the DIY fun.

Terrible photo, but a milestone: first boot!

Terrible photo, but a milestone: first boot!

The recommended software to start with is Raspbian, a desktop-like Linux distribution to which you can add anything you want. But several custom-build distros were created for specific applications, like OpenELEC (a powerful XBMC-based media player) and Sugar (containing the educational software that runs on the One-Laptop-Per-Child machines).

But the nerdgasms came with ChameleonPI – a collection of emulators for dozens of old-school platforms. Apple II, MSX, ZX81, Spectrum, C64, Arcades (MAME), GameBoy, NES… you name it, ChameleonPI has it. Just throw your ROMs/DSKs/TAPs (or a willingness to write BASIC code) and have fun!

Swapping cards is easy, but can be cumbersome and waste space, which makes BerryBoot useful: it hosts multiple distros on the same SD Card, showing a (customizable) menu for you to pick them. It also downloads most of the popular ones, straight from the Pi, with a couple of clicks. Linux geeks: it’s like apt, but for distros!

Unfortunatelly BerryBoot does not support ChameleonPI. You can add it manually (following the instructions), but BerryBoot expects a two-partition distro (and only uses the second, as the first one is the always the Raspbian boot partition). ChameleonPI v3 added a third one, allowing non-Linux users to copy ROMs to the SD card.

Since I’d rather use Wi-Fi to copy anyway, I tried to go without it. However, some of the emulators (notoriously LinApple) missed the directory structure – and I also could not write to /roms (the mount point for the partition). Here is what I did:

Steps to add ChameleonPI v0.3 to a BerryBoot SD

  • Download ChameleonPI and follow the instructions to add a custom system (ignoring that you’ll see three lines instead of two on the first step; keep using the second one);

  • Extract ChameleonPI to a separate SD and create a .tar.gz file with the contents of the FAT partition – it’s the one with AUTOEXEC.* files on the root and a lot of directories with old computer names;
    (alternative: download my copy of the ChameleonPI v3 FAT partition)

  • Save that file to a pen drive/USB stick/external HD;

  • Plug the pen drive on the Raspberry Pi;

  • Boot the SD card with BerryMenu and select ChameleonPI.

  • Press T to open a terminal;

  • Ensure you can write to the /roms directory:

    sudo chown zx /roms
  • Also make sure the mount point for the pen drive is there:
    (thanks @_47Ronin_ for pointing that out):

    sudo mkdir -p /roms/USB
  • Type exit to return to the ChameleonPI menu, then T again, and check if it mounted the pen drive (otherwise reboot and T again until the command shows some files):

    ls /roms/USB
  • Extract the .tar.gz file there:

    cd /roms
    tar -xvzf /roms/USB/chameleon.v03.fat.partition.tar.gz
  • Reboot again

If everything works, LinApple will allow you to select a disk image pressing F3 (instead of crashing for not having the directory where it expects). You will now also be able to connect via Windows Network to your Pi (use the user zx and password spectrum) and mount the roms folder, not the zx one.

Also be aware that these instructions were tested with ChameleonPI 0.3, not with 0.3.1 (which is giving me a hard time to mount anywhere outside the Pi).

Yes, I brought the Pi to Uken - why not doing turtle graphics alongside Rails?

Yes, I brought the Pi to Uken – why not doing turtle graphics alongside Rails?

Tips and Tricks:

  • You can do the image conversion (the “instructions” of the first step) on the Pi itself – it is way slower than any Linux desktop, but will work if you leave it working during the night as I did – just apt-get the software mentioned

  • XBMC becomes way more useful when you add Fusion (so other plugins can be added via the network)

  • All distros recognized my Wi-Fi dongle on-spot, but configuring the network can be tricky. OpenELEC adds an option with its own name on XBMC, under “System”, but some distros will require you to add your network to wpa_supplicant.conf (BerryBoot has it straight on the setup menu, others will look for it in /etc/wpa_supplicant/).

    In any case, adding a block like this to the existing file should be enough:

    network={
      ssid="your_wifi_network_name"
      psk="your_wifi_password"
    }
  • Make sure you set up the Wi-Fi (or have Ethernet plugged) because the Pi lacks a battery-backed clock, and needs to be online to show and use the correct date/time.

 

Marvel Unlimited – a digital warehouse of comics for $5/month!

March 9, 2013

marvel_unlimited_logoI’m very excited with this: at last a publisher launched a tablet-friendly, fixed-price digital comics service. For a monthly fee of $10 (or an yearly $60), Marvel Unlimited gives you access to a library of 13,000 comic books, both on computers and on iOS devices (with Android coming soon), just like Netflix or Hulu!

Imagine reading Secret Wars (I and II), House of M, Muttant Massacre and another couple arcs, all on a single day if it fancies you, for no extra fee. I’ve jumped into the yearly subscription (before they change their mind on the 50% discount), and my first impression after browsing the library and reading a few books is quite positive.

The app has a decent browsing system – you can easily search your favorite author, character, or all comics in an specific arc. The comic reading part does its job, but has some “1.0-isms” like a toolbar that never goes away while you are reading the comic. Come on, Marvel – every pixel matters! It also has a hard time remembering what I was reading and the page when the app is closed, and the download-in-the-background system is nowhere as mature as, say, comiXology‘s. Overall, it covers the basics, and the other aspects can (and should) be improved over time.

As expected, it is DRM-heavy. You can’t do anything with the comics outside their app or webiste, and they will vanish if you cancel your subscription. My view is the same I apply for any DRM-based media providers (yes, that includes Kindle books): they are not for those who want to own content, but rather for people who need access to it. Collectors should look elsewhere. As for myself, I’ve owned my share of shelves crammed with comic books, demanding physical space and special care. I went digital with comiXology precisely to get rid of that, and Marvel’s offer is a good complement to that.

On comiXology, Marvel/DC charge an extra dollar for the last issue of any series. That avoids positioning the service as a a death blow for comic shops, and also preserves their cash cow: hardcore fans that can’t wait a second to read the latest issue. Here they go a step further by delaying around six months. May be a showstopper for those who need to witness the latest, this-time-irrevocable death of the month, but I can wait to read it at the time the character returns to life, no biggie. And the best thing for me anyway are the older series I used to have on paper (that would cost me an arm and a leg to buy), and those are where Unlimited shines.

Another thing people are complaining about is the cap of having only six  comics donwloaded for offline reading (another “6″? Did they put Mephisto in charge?) Granted, six 24-page comics won’t do it on an intercontinental flight, or a cross-country trip (on large countries, at least), but most people don’t do that really often, and you can always purchase a couple of collected arcs on comiXology on those occasions. Six issues can, however, cover the longest commute or the most relaxed afternoon in the park or single-person meal (for those into the fine art of reading while eating). And you can always hunt for a Wi-Fi connection if  you need an extra fix on the go!

Granted, 13,000 issues with the 6-month delay and 6-issue offline cap is far from being “unlimited”. But, for me, the ability to read any of these issues anytime, without worrying about physical space, collected dust or moving logistics is much worth the $5/month cost of the yearly subscription. I seriously recommend using it on a Retina-enabled iPad, as I don’t like manual or automated zooming. On the other hand, once the Android version is launched, devices with SD slots and comparable displays like the Nexus 10 might become the best choice for serious comic fans, as comiXology  (which allows you to download as much as your device can handle) will remain the equivalent of iTunes for this media.

Overall, this will be a weekend to remember, since I intend to spend it read comics until my eyes pop out. Life is good.

Sam & Max

January 21, 2013

I have always cherished Sam & Max Hit The Road as the best point-and-click adventure of the “LucasArts years”, but I had no idea that it had started as a comic book, nor that it had spawned its own animated series.

And most of all, I was unaware that some former LucasArts employees formed Telltale Games to bring back those awesome games. They have built a new 3D engine that brings the classic mechanics to the 21st century. I discovered that just as I was moving to Toronto, so I decided that once I settled at my new home, I’d catch up.

I cut my teeth on the new stuff with Season 3 – mostly because it was available for Mac OS on Steam. Got a few spoilers, but instead of turning me off, they made me more interested in finding out what happened by playing the previous games than otherwise. I also needed a refreshment, so I gave the original game a spin on ScummVM (an awesome implementation of the LucasArts engine for modern computers.)

sam_and_max_meesta_pizza

Once I was convinced that the new games had the soul of the original one, my wish was to start from Season 1, but it’s only available on Windows, Wii and XBox 360. But Season 2 was released on the iPad. Honestly, I was sure that a game so strongly based on mouse-hovering would flop without a mouse to hover with, but hey, it was only $3 per episode. Worth a try.

To my surprise, the “wheel” system (depicted as an actual car wheel, in-line with the series’ tongue-in-cheek spirit) is arguably better than the mouse. It gets rid of the annoying pixel-hunting that adds little to the challenge, and comes with a bonus: muti-touching the screen reveals all clickable areas.

Happy with that, I played the whole Season 2 in a couple of weeks or so. It gave me a fever, and the only prescription was, of course, more cowbell. Being a Windows-free person, the reasonable alternative to play Season 1 was to get an XBox 360 (and also a TV set – at the dawn of the on-demand video age, I had not yet bothered to buy one)

(any idea on the author of this image?)

(any idea on the author of this image?)

The biggest disappointment of the XBox 360 version (available online) was to find out that it uses the traditional point-and-click system, which doesn’t work as well on a gamepad. They could have at least added directional movement to one of the analog sticks. I also found the puzzles a bit too easy on the first few episodes, but overall fun. And at least I got to know how Max got his “career upgrade”.

But Sam & Max is not all about games: I’ve read Sam & Max: Surfin’ the Highway massive collection of comics on comiXology, written and drawn by Steve Purcel himself, and watched a couple episodes of the Sam & Max: Freelance Police cartoon on iTunes.

The comics are awesome – I can’t help but link Steve Purcell’s style with Wally Wood works at MAD Magazine, and the source from the zany ideas and humor on the games becomes clear. Not for everyone, but I found it quite entertaining.

sam_and_max_comics

For the cartoon, however, I had mixed feelings. First of all, the voices are quite different from the games – which also present slight variations, but always on recognizable styles. I also felt a certain washing-down of the tone which, along with the out-of-place characters, which smells like network executives “developing” the product. Still, it’s Sam & Max, so it’s good! :-)

Anyway, with several Season 1 and Season 3 episodes yet on the pipeline I still have some fun ahead (before joining the crowds asking for a Season 4), and I recommend the games (and comics) to anyone that enjoyed the original, and also for those with a taste for puzzle-solving and non-orthodox humor.

Aterrissando no Canadá

November 25, 2012

Foto Original por Deaf Dude (clique para ver)Mudar de país envolve um monte de pequenos detalhes. Assim como fiz no post sobre o processo do visto de trabalho, estou colocando neste os passos que dei ao chegar no Canadá até me considerar estabelecido: tirar documentos, abrir conta em banco, arrumar uma casa e coisas do gênero.

Novamente vale avisar: esta informação não é oficial. Muito só se aplica a temporary workers, ou só a quem vem pra Toronto, ou só pra quem é o Chester. Minha intenção é das melhores, mas você tem que avaliar as diferenças do seu caso e sempre procurar a informação oficial e atualizada.

More…

A saga do visto de trabalho canadense

September 5, 2012

Quem vai para o Canadá através de uma oferta de trabalho (ao invés dos já conhecidos processos de imigração) precisa solicitar um visto de trabalho. O site oficial explica em detalhes como fazer isso, mas resolvi documentar alguns detalhes que aprendi solicitando o meu.

Devo lembrar que não sou especialista no assunto e não tenho nenhuma relação com o governo do Canadá – apenas passei pelo processo e resolvi compartilhar o que aprendi. A sua experiência pode ser diferente, pode ter mudado tudo, se informe. Se tiver compreendido que não me responsabilizo por nada sobre o seu caso, continue lendo sobre o meu.

More…

Facebook HACK – Toronto

June 17, 2012

Na minha breve (e ainda não definitiva) passagem por Toronto tive a chance de participar do Facebook HACK – Toronto. Já tinha participado de eventos desse gênero no Brasil (como o RHoK-SP e o Yahoo! Open Hack Day BR), mas essa foi a primeira vez em outro país. E foi bem bacana!

Facebook HACK Toronto 2012 (clique para fotos)

A maior diferença é que no Canadá os caras são organizados: as coisas começam e terminam no horário anunciado. De resto, é tudo igual: camaradagem, troca de informações com uns ajudando os outros, vários times se formando na hora com pessoas que se conhecem ali mesmo, como nos eventos daqui.

O pessoal mandou muito bem nas instalações e na comida (almoço, jantar, comidas de gordo e cerveja no fim do dia à vontade) e as palestras introdutórias foram úteis. À tarde o pessoal mais interessado em business stuff acompanhou palestras em outra sala, e os programadores ficaram no hackaton.

Um ponto negativo é que o evento é de um dia só. Com as palestras e o almoço, só restou o período da tarde para o hackaton em si – bem pouco, em particular quando se está aprendendo novas tecnologias/APIs. O outro revés foi a internet ruim (que não é um “privilégio” dos nossos eventos) fazendo muita gente (como eu) não terminar suas demos em tempo, além de dificultar a vida de quem ia demonstrar.

Pessoal apresentando no Facebook Hack - Toronto

Mas hacking é improviso, e no final o pessoal conseguiu mostrar um monte de aplicativos que, embora em implementações simples, demonstravam conceitos bacanas que podem dar jogo no mundo real. Na minha opinião, esse é o segundo maior objetivo de um hackaton, ficando apenas atrás do aprendizado.

Pra mim o melhor foi poder brincar com coisas novas (Open Graph, Custom Actions, Single Sign-On em mobile) sem a pressão de um projeto “real”. Continuo recomendando esse tipo de evento, e espero continuar participando onde quer que eu esteja – afinal, hackers são hackers em qualquer lugar.

Férias 2012 (ou: Chester em Nova Iorque, Washington D.C., Boston, Toronto, Montreal e Cidade do Quebec)

May 19, 2012

A Bani queria participar da Toronto eMetrics (uma conferência de gente que tortura os números da web até que eles confessem). Era a desculpa que eu precisava para conhecer Toronto de verdade e retornar a Nova Iorque.

Juntamos Boston e Montreal ao roteiro e incluimos viagens bate-e-volta para Washington e Quebec City, o que resultou em uma viagem que eu não podia deixar de registrar.

Hospedagem e Transporte

Para fazer uma viagem tão extensa, tentamos economizar na hospedagem. Por exemplo, em Nova Iorque tudo o que queríamos visitar estava em Manhattan, mas era jogo ficar em um hotel mais em conta no Queens e pegar o LIRR (trem expresso que aparece no filme Brilho Eterno De Uma Mente Sem Lembranças) todos os dias.

Também buscamos hotéis baratos em Boston, Toronto e Montreal, sempre tentando ficar próximos do transporte público. Na última trocamos o hotel por um apartamento alugado para a semana. Foi bacana: além da economia, a gente acaba fazendo compras, cozinhando, enfim, vivendo mais o cotidiano da cidade.

As quatro cidades disponibilizam passes semanais, que permitem andar à vontade de ônibus e metrô, e Toronto também integra os bondes. E estes mostram até onde vai o respeito ao pedestre: quando o bonde pára e existe uma pista entre ele e a calçada, os veículos também param para as pessoas entrarem e saírem do bonde. Imagine isso aqui – morreriam uns vinte usuários atropelados por dia. Por outro lado, lá também tem lavagem semi-compulsória de pára-brisa.

Eventos

Na Boston Comic-Con o ponto alto foi assistir Feldstein, um documentário bacana sobre o editor da MAD, com participações que incluíam o Sérgio Aragonés (que eu tinha visto na WonderCon) e o Al Jaffee, autor das famosas “dobradinhas MAD” (que ele, aos 91 anos, continua fazendo mensalmente) e “respostas cretinas para perguntas imbecis“. E me surpreendi ao ver que o próprio Al Jaffee estava quase do meu lado assitindo ao filme! Outro ícone presente foi o Peter Bagge, mas eu estava tímido e só tirei foto de longe.

Em Montreal fomos à Star Wars: Identities, uma exposição imperdível para fãs da série. A idéia é mostrar como as experiências e escolhas moldam uma identidade (real ou virtual), com foco particular em Luke e Anakin Skywalker.

Os visitantes recebem uma pulseira que pode ser usada em diversos pontos da exposição para responder a perguntas (tocando nas paredes e terminais apropriados). Isso permite ao sistema deles criar a história e o visual do seu personagem, cujo link você recebe por e-mail (veja o Chester wookie ou a Bani nautolaniana).

Chester e Vader (clique para outras fotos)

A brincadeira é acompanhada de dúzias de apresentações multimídia, sketches, roupas e maquetes do filme, tudo com narração bilíngue acionada quando o visitante se aproxima de algum setor. Sensacional, se vier pro Brasil eu vou ver de novo!

Eu fui a caráter...Estivemos também na The Art Of Video Games Expo em Washington, no Smithsonian. A mostra incluía computadores, videogame, jogos e mini-documentários. Não era tão abrangente quanto, por exemplo, a Game On, mas valeu ter perdido um ou dois monumentos para visitá-la.

A Broadway pede musicais, e dessa vez vimos dois: Spider Man: Turn Off The Dark e The Lion King. O primeiro começa meio devagar (ou eu já estou cansado de ver essa história) mas pega o ritmo na metade, tendo o show roubado pelo Duende Verde. D’o Rei Leão eu nem esperava muito, e me surpreendi: é um dos melhores que já vi!

Passeios

Em Nova Iorque fizemos o passeio de barco que faz a volta em Manhattan (na verdade um semi-círculo: a volta completa demorava 3h e acrescentava pouco). Dá uma ótima visão da Estátua da Liberdade e dos outros marcos da ilha (incluindo as obras avançadas da Freedom Tower). Um lance divertido foi pegar os profissionais da Fao Schwartz dançando no piano:

Boston é uma cidade grande, mas agradável (eu moraria lá sem pestanejar), cuja história atrai muitos turistas americanos. O passeio legal é o Freedom Trail, um caminho sinalizado no meio da cidade, através do qual você visita a pé diversos marcos históricos. Também fomos ao campus do MIT, e ficou claro porque tantas coisas legais saem de lá. A Bani até fez amigos no clube de origami, e acabou trocando o dia na Comic-Con por uma palestra sobre “Origami e Matemática, mas principalmente Origami”. #nerd

Washington é uma espécie de parque temático do Capitão América, onde você vai encontrar clássicos como o Lincoln e o Capitólio (que exige visita agendada, mas dá pra ver o básico e almoçar lá sem agendar). Optamos por um tour de ônibus que permitia descer e subir à vontade, e com ele deu pra conhecer tudo em um dia.

Toronto e Montreal nos divertiram com os shoppings subterrâneos (PATH e RÉSO, respectivamente), mas na primeira também visitamos a Casa Loma (onde fica a famosa escadaria do Scott Pilgrim). Pulamos a CN Tower (é legal, mas já tínhamos subido antes) e no geral batemos perna pelas duas cidades (usando o excelente transporte público, que dá conta mesmo no horário de pico).

Montreal não teria sido a mesma sem a prestatividade do Mikio e da Cris, que nos levaram de alto a baixo: com eles comemos bem, aprendemos os fundamentos do francês quebecois (posto à prova quando, com cólicas, precisei explicar o que era um Buscopan na farmácia), visitamos um cassino fora da ilha e até fizemos um agradável bate-e-volta até a Cidade do Quebec. Eles também deram as dicas para conhecermos o centro histórico, o porto e o diversificado Quartier Latin, onde você encontra duas lojas de jogos de tabuleiro, uma só de mangás e outra especializada em produtos de cannabis – todas na mesma rua!

Comida

Uma semana nos EUA sem gordices era impraticável, ainda mais agora que não ando estritamente vegetariano. A redescoberta dos chicken fingers (em particular do KFC e do Friday’s, comuns por ali), aliada a duas visitas ao The Cheesecake Factory de Boston me trouxeram de volta 2,5 Kg mais longe do meu peso ideal.

A gastronomia tomou boa parte do passeio no SoHo, com dois lugares ótimos: o Lombardi’s, que alega ser a primeira pizzaria da cidade (sem dúvida é das melhores) e o Rice to Riches, que serve arroz-doce nos mais diversos sabores, acompanhado de mensagens motivaicionais em prol do jeito glutão de viver.

Rice to Riches

No Canadá mantivemos o ritmo, já que Toronto tem bastante restaurantes legais na King e na Queen, além de opções garimpáveis onde estávamos hospedados (ao longo da Spadina em Chinatown). A Nat e o FZero gentilmente nos levaram ao La Palette, no qual experimentei carne de javali e até de cavalo (esta última parece a bovina, o gosto é bom); jantei com o Guilherme Blanco e a Sara no Drake Hotel; e o Cauê Guerra nos apresentou ao Dazzling, que tem várias especialidades asiáticas – escolhemos comida tailandesa e não nos arrependemos.

Em Montreal almoçamos com o Rafael Rosa Fu na ilha vizinha, a Île des Soeurs, mas a refeição mais curiosa aconteceu no Schwartz’s: a fila na porta desanimava, mas do nada dezenas de pessoas entravam! O que rola é que o lugar foi pensado para atender os trabalhadores nos anos 30, então tem todo um esquema: as pessoas sentam na ordem de chegada, em grandes mesas estilo refeitório. Os pedidos são pegos na ordem e entregues da mesma forma. Apesar de tudo ser feito com total cordialidade (e do sanduíche defumado justificar sua fama), era inevitável lembrar do Soup Nazi e dar umas boas risadas.

Fotos

Acho que não deu pra falar nem metade do que a gente fez – foram três semanas em ritmo acelerado. Mas fotografamos tanto quanto deu, e pra quem quiser saber mais, eis os álbuns:

Bani tirando fotos

Exposição: Ocupação Angeli

March 23, 2012

Se o Laerte é o mais sofisticado dos quadrinhistas nacionais, o Angeli é de longe o que mais me influenciou. Quase tudo o que eu lia/ouvia no final dos anos 80 vinha pela Chiclete com Banana, e sua crítica social e de costumes me mostrou um mundo bem maior que a vidinha católico-suburbana que me cercava. Uma visita à exposição exclusiva do autor era mais do que obrigatória!

O local não poderia ser mais apropriado: a Avenida Paulista simboliza bem a metrópole onde viveriam um Bob Cuspe ou uma Rê Bordosa. A exposição fica em um espaço escuro, reproduzindo a realidade do Angeli, que (dizem) chega a ficar vinte horas num dia “trancado” no estúdio, desenhando. Tem até uma maquete:

O principal elemento são as tiras e cartuns, expostos em murais, gaveteiros e até em uma geladeira. Dá pra passar um bom tempo (re-)lendo e observando detalhes que se perdem no papel-jornal. Tambem curti a reprodução do clássico cenário de janela em uma janela real, e a recriação de discos de vinil com capas do autor – quem só vê álbuns no Cover Flow precisa experimentar a sensação das “bolachas”.

Na área “reservada para maiores” (decorada com iluminação e textura sugestivas) destacam-se dois painéis enormes, uma maquete da morte da Rê Bordosa (que, como a mencionada acima, é do curta Dossiê Rê Bordosa) e cópias ampliadas das fotonovelas da Chiclete.

Painéis com capas da revista e fotos do autor encerram a exposição, que deve agradar a qualquer fã. A popularidade do Angeli é confirmada pela lotação no fim-de-semana. A dica é ir durante a semana – salvo excursões-relâmpago escolares, é bem tranquilo.

Conheci o Daniel Azulay!

February 13, 2012

Se você cresceu nos anos 80, existe uma boa chance de ter assistido à Turma do Lambe-Lambe ou a algum outro programa estrelado pelo Daniel Azulay, o desenhista, músico e professor de arte que apresentou o mundo mágico da expressão artística a tantas crianças nesta e em outras épocas. Ele morava quietinho num lugar muito especial das minhas memórias (e eu também sabia que ele mantém uma oficina de desenho no Rio), até que o Ricbit veio com a bomba: o Azulay daria uma oficina de arte digital no final-de-semana, bem aqui em São Paulo!

Daniel Azulay ministrando oficina no SESC Santo Amaro

O problema é que não apenas as inscrições estavam esgotadas, mas no sábado eu estaria dando duas palestras na Campus Party. Mas valeria a pena aparecer no domingo, nem que fosse só para apertar a mão da pessoa responsável por tantas tardes agradáveis da minha infância. E o Ricbit deu um estímulo extra: como ele não mora mais em São Paulo, me mandou pelo correio um livro ilustrado para que ele pudesse autografar.

A Bani topou a empreitada e lá fomos nós até o SESC Santo Amaro. Não é exatamente perto de casa, mas tem o acesso facilitado por conta da linha Lilás do Metrô. Dica: a Estação Largo 13 tem uma saída direta para o Mais Shopping Largo 13. Atravessando este último, você sai na Amador Bueno, já quase do lado do SESC – cujas atrações merecem uma visita mais calma. Mas o foco neste dia era o Azulay.

Bani em frente a miniatura no SESC

Por sorte, haviam lugares disponíveis no fundo. Pudemos assistir e constatar que ele é tão simpático ao vivo em 2012 quanto na TV trinta anos antes. Ao mesmo tempo, apreciávamos vários trabalhos de ilustração em diversos estilos, cada um com uma história e uma técnica para ensinar. O melhor de tudo é como ele consegue mostrar que a capacidade de desenhar está em todos nós, e que os bloqueios e o medo de experimentar estão muito mais ligados à perda do ímpeto infantil do que a qualquer risco real. É muito difícil não se deixar tocar pelo discurso sincero, ainda mais proferido por alguém que, mais do que falar, transpira essa idéia.

No final eu tomei coragem para ir lá e agradecer a ele pela inspiração – tanto a que ele me trouxe nos anos 80, quanto a que eu acabava de receber. E não era o único: outras pessoas na casa dos trinta e tantos estavam lá com a mesma emoção, numa mistura gostosa de volta à infância e inspiração para a vida adulta. E, claro, levei o livro, que o próprio Daniel Azulay qualificou empolgado como “raridade”. E mesmo depois de um workshop longo, ele gentilmente se prontificar a autografar, além de tirar fotos com todo mundo que pediu!

Eu e o Daniel Azulay! \o/

Enfim, o que mais eu poderia dizer? Os organizadores do SESC ficaram contentes com o resultado, bem como os participantes – particularmente as crianças. Isso parece mostrar que não é preciso ter aquele saudosismo ludita besta, que alimenta delírios populares acerca da superioridade de um pião sobre o Playstation (idéia que nenhuma criança saudável confirma, exceto quando percebe o efeito positivo da mesma sobre os pais). O importante, no final, é colocar a cabeça pra funcionar, independente da tecnologia usada. E nisso Daniel Azulay é mestre, seja com o pincel (mágico ou não), seja com o mouse/tablet.

Lose It! – perca peso controlando o que você come

January 4, 2012

UPDATE: O Lose It! me ajudou a perder quase dez quilos, mas foi preciso diligência no cadastro da comida e do peso. Infelizmente o aplicativo é focado demais nos EUA e no controle de calorias (em detrimento de outras informações nutricionais). Resolvi experimentar o MyFitnessPal e estou gostando – a principal vantagem é que o cadastro é “crowdsourced”, isto é, os alimentos que um usuário cadastra ficam disponível para todos. O resultado: muita comida do Brasil. Foi como migrar da Barsa para a Wikipedia…


Logotipo Lose It!

Não sou nenhum caso de obesidade mórbida, mas desde uma ocasião em 2007 (na qual achei que ia morrer durante uma partida de DDR), comecei a cuidar melhor da alimentação e da saúde no geral. É possível fazer isso de várias formas, mas monitorar o peso é uma das mais objetivas. E é fácil de acompanhar: basta ter uma balança em casa (e por menos de 50 mangos dá pra comprar uma digital), e registrar todo dia em uma planilha.

Com isso dá pra gerar um gráfico e pisar no freio da comida/acelerador da atividade física sempre que a curva sobe demais. Esta diligência não me impediu de fechar 2011 com uns oito a dez quilos acima do peso ideal, mas tenho certeza que estaria bem pior sem ela. E para matar esse peso extra nos próximos meses, me convenci de que, além de registrar o peso, era importante ter noção do que eu comia.

Novamente eu precisava de uma medida numérica, e para comida, estamos falando de calorias. Mas se já é complicado anotar/planilhar tudo o que se come (mesmo com celular e computador), saber o valor nutricional de cada coisa é ainda mais difícil. Não é à toa que vários websites e aplicativos surgiram para dar conta dessa missão, e o Lose It! foi o meu escolhido.

Lose It! iOSEle começou como um (fantástico) aplicativo para iOS, e evoluiu para um site igualmente bacana: o banco de dados de alimentos é bem completo, mas é bem fácil cadastrar comidas novas ou pratos de restaurantes. A interface é excelente, tanto no site quanto no aplicativo (que se sincronizam), e a tudo isso se acrescenta uma rede social bem configurável, que permite compartilhar (ou esconder) qualquer aspecto da sua dieta.

Eu achava que seria impossível cadastrar tudo o que eu como (mesmo restringindo a comidas que, de fato, tenham calorias), mas uma vez que as comidas mais comuns já estejam lá, a busca dinâmica permite acrescentar refeições completas em poucos segundos. O sistema divide o dia em quatro blocos (café da manhã, almoço, jantar e lanches), facilitando a visualização.

Acabei abandonando a planilha e usando ele também para registrar o peso. Isso permite determinar objetivos e estabelecer um “orçamento” de calorias diárias. O site vai acompanhando a perda de peso, e estima a data em que você vai chegar ao objetivo. E à medida em que você vai alimentando o sistema, mais e mais gráficos e relatórios interessantes aparecem. Para arrematar, é possível cadastrar exercícios, considerando o impacto deles sobre a evolução do peso.

O forte do Lose It! é o feedbackUm ponto negativo é ele não suportar o sistema métrico. Mas isso é um problema menor, já que quase sempre a gente lança o consumo em copos, xícaras, doses e outras medidas desse tipo. O mais chato é entrar o peso, mas aí o Google Calculator resolve: uma busca como “80 kg to lbs” dá o valor correto na hora, aí é só copiar e colar.

Algumas pessoas também podem ter dificuldade com os alimentos em inglês – mas o cadastro é tão rápido (basta obter a quantidade de calorias na embalagem ou no Google) que dá pra se virar cadastrando por conta. O que mais me chateou, no entanto, é que o aplicativo Android não pode ser baixado no Market do Brasil.

Críticas à parte, é um sistema gratuito que me atendeu muito bem. Estou realmente confiante em conseguir resultados – se isso vai acontecer mesmo, só o tempo e a balança dirão. Quem quiser conferir pode se cadastrar e acompanhar o meu perfil. Afinal, a minha vida é sempre um livro aberto – mesmo que eventualmente se trate de um livro de culinária…

Exposição Game On no Museu da Imagem e do Som (MIS)

December 4, 2011

A Game On é uma exposição de origem inglesa sobre a história dos jogos eletrônicos, que visitei no último sábado e gostei bastante. É muito completa e detalhada, apresentando desde os primeiros protótipos até jogos da atualidade, mas o diferencial é a interatividade: a idéia é que os participantes joguem de verdade, sempre que possível no hardware real, proporcionando uma imersão que remakes e emuladores não permitem alcançar.

Exposição Game On

Na abertura você já se depara com uma máquina de Spacewar e uma de Pong. Deu uma pequena frustração porque nenhuma estava funcionando (apesar de haver um emulador do último projetando na parede), mas só de tocar os controles e ficar em frente a elas já deu para reproduzir a sensação de época como nenhum texto ou documentário permitiria.

Dali pra frente, no entanto, é interatividade total: na primeira área (dedicada aos primeiros arcades) foi obrigatório jogar Asteroids (que controla diretamente o canhão do tubo de TV ao invés de seguir o padrão de scanlines, o que resulta em um visual ímpar), Puck-Man (o original japonês do Pac-Man, ainda que a maior diferença esteja na decoração do arcade, com o Pac-Man narigudão) e vários outros.

As outras áreas são bem diversificadas em termos de épocas, estilos e lugares. Os formatos também variam: tem consoles, computadores pessoais, portáteis, brinquedos eletrônicos, mini-games, enfim, todo o tipo de parafernália, rodando jogos dos mais diversos gêneros. É bem bacana poder brincar com tudo o que a idade, local de nascimento, escolha de plataforma ou grana não permitiram, o que deve tornar a exposição única para cada participante.

Não vou negar que eu e a Bani olhamos metodicamente cada um dos brinquedos, e paramos em todos que tinham algum significado (e vaga). Foi divertido jogar a dois toda a carreira “pré-Super” do Mário (Donkey Kong no arcade e Mario Bros. em um Famicom), além de tirar a curiosidade que eu tinha sobre o Speak & Spell, brincar com o Lemmings num Amiga, ver quão pequenininho é um ZX81 original, digitar alguns comandos no adventure do Guia do Mochileiro das Galáxias rodando em um IBM-PC, e até modernidades como o Child of Eden. E claro, joguei DDR em mais um lugar! :-)

Alguns poucos equipamentos estavam em manutenção, mas a maior parte estava em pleno funcionamento. Uma dica: se o jogo precisa de interação com o console (ex.: apertar o GAME SELECT ou GAME RESET num Atari), procure por fendas nas laterais dos paineis disponibilizando estes botões – a gente deixou de jogar um ou dois até perceber este detalhe.

Como fomos no sábado, estava um pouquinho cheio, mas nada que impedisse de jogar – por mais que os pais trintões e quarentões tentassem mostrar para os filhos o que eles curtiam na época, a molecada focava mesmo nos jogos “modernos”, liberando os clássicos que nos interessavam. Pelo preço da entrada (inteira a R$ 10) vale a pena conferir os dias e horários e voltar quando estiver mais vazio, já que a exposição vai até Janeiro. Sai mais barato que qualquer fliperama e, mimimi de velho à parte, pode ser bem mais divertido.

O que eu quero MESMO ganhar no Natal

November 12, 2011

A Coca-Cola inventou o Papai Noel? Clique e saiba!Amigos e familiares que eventualmente estejam pensando em me presentear no Natal que se aproxima: eu fico muito feliz com isso, juro. Mas ficarei ainda mais feliz se eu não ganhar um presente. Existe uma explicação científica para isso, mas vocês merecem uma satisfação mais pessoal.

Fato: é complicado presentear, por mais que a gente ache que conheça a pessoa. Você perde um tempão, gasta um dinheirão, e muitas vezes não atinge o resultado esperado. Que tal, ao invés disso, usar esse tempo e dinheiro para ajudar alguém que esteja precisando muito mais do que eu ou vocês?

Não pensem que estou sendo mal-agradecido (ou que vou ficar triste com quem optar por me presentear). O fato é que eu acredito que a redução do sofrimento (pessoal ou alheio) está intimamente ligada à iluminação e à busca pela felicidade. E nada me deixaria mais agradecido do que um esforço no sentido de reduzir – um pouquinho que seja – do sofrimento neste mundo. E eu seria injusto se não deixasse isso claro para todos.

Se vocês acham que é mais fácil comprar um presente, tudo bem. Mas eu duvido: o que não falta é gente precisando de ajuda. A escolha fica a seu critério, mas eu optaria por ajudar uma entidade que promova o bem-estar social (mais do que oferecer assistencialismo não-sustentável) e que não tenha conexão com qualquer religião (durmo melhor sabendo que meu dinheiro está sendo empregado em ações concretas, e não para promover este ou aquele dogma).

Organizações que eu já ajudei incluem a EFF (que defende direitos civis em um mundo cada vez mais digital) e a Kiva (que faz microcrédito, ou seja, empresta dinheiro para gente simples, que trabalha por conta e precisa investir pequenas quantias nisso). Não sei de organizações no Brasil que façam esse tipo de coisa – se alguém souber, por favor me diga!

Se preferirem fazer uma coisa mais “hands-on”, mais com cara de natal, uma opção é ajudar o Papai Noel dos Correios: vocês escolhem uma carta, providenciam o presente/resposta, e os Correios cuidam da entrega. Esta atitude, embora não seja tão eficiente quanto o que uma instituição faria, leva um pouco de alegria para uma família que provavelmente estava precisando bastante.

Outra idéia é ajudar a manter produções culturais e artísticas que você consome gratuitamente ao longo do ano. A Wikipedia é um deles (e explica bem por que é razoável contribuir), e basta prestar atenção quando você navega que vai encontrar outros. Devo atualizar este post com outros sites que me vierem à cabeça, mas convido o leitor a dar sugestões no campo de comentários abaixo.

Qualquer que seja a sua escolha, eu agradeço de verdade. Se tem alguma coisa muito melhor do que desejar um “Feliz Natal”, sem dúvida é ajudar a construir um!

sorteio2600

November 7, 2011

O sorteio2600 é um programa que eu fiz para o Dev In Vale, por sugestão do Willian Fernandes, um dos organizadores do evento. Já que eu já ia demonstrar o Hello World em um Atari de verdade (graças ao Harmony), e a minha palestra era a última, a idéia era aproveitar o setup e fazer o sorteio dos brindes no próprio Atari.

Pensei que seria uma tarefa fácil, mesmo numa plataforma tão limitada, mas levei umas vinte horas ou mais quebrando a cabeça para que o programa saísse! Este post comenta o processo de desenvolvimento e no final mostra um vídeo do software rodando no Atari. É recomendável ver os slides ou assistir à palestra para entender melhor, mas talvez dê pra acompanhar sem isso.

Dígitos na tela ⇒ Python ao resgate

O ponto de partida foi o Hello World da palestra (que escreve uma frase na tela usando o playfield, isto é, os 20 “pixels largos” que ocupam a parte esquerda da tela do Atari, repetidos no lado direito). Usando o score mode, é possível esconder um dos lados (colocando nele a mesma cor do fundo), e usando 6 pixels por dígito seria possível representar os três dígitos necessários para escrever um número entre 000 e 999.

O problema com essa idéia é que dígitos não se alinham com os registradores do playfield (PF0, PF1 e PF2). Veja na ilustração como eles precisam ser posicionados:

Dígitos nos registradores do playfield do Atari

Seria necessário fazer vários shifts para combinar os dígitos nos registradores, e, além disso, temos o fato de que o PF0 e o PF2 são lidos “ao contrário” (com o bit menos significativo à esquerda). Era muita manipulação pra fazer on-the-fly, então resolvi que, ao invés de uma única tabela de bitmaps dos dígitos, eu teria duas tabelas para o dígito das centenas (uma para o PF0 e outra para o PF1), duas para o das dezenas (uma para o PF1 e outra para o PF2) e uma para a unidade (que fica inteira no PF2).

As tabelas já teriam as inversões e shifts pré-executados, tornando a operação de escrever o PF1 e o PF2 tão “simples” quanto ler um valor, combiná-lo com outro (via operação OR ou soma) e armazenar. O PF0 teria só uma leitura e armazenamento, e isso tudo poderia ser feito na scanline enquanto o canhão está do lado esquerdo da tela (que não seria usado de qualquer forma, já que eu queria os dígitos no lado direito).

Calcular essas tabelas de bits manualmente seria um porre, mas eu não precisaria fazer isso, já que tenho um computador: fiz um script Python que lê os bimaps dos caracteres “0″ a “9″ e gera o .asm com as tabelas descritas acima (recorrendo novamente à fonte do ZX Spectrum, que já tinha transcrita em hexadecimal no tilewriter).

Score Mode

Teria sido um plano perfeito, não fosse por um detalhe: o score mode foi feito para desenhar placares, não para dividir perfeitamente a tela. No emulador tudo funcionava bem, mas no Atari de verdade o TIA muda a cor um pouco antes do esperado, fazendo com que um pedaço do playfield esquerdo apareça onde não deveria.

Se eu soubesse disso antes, teria usado menos bits, mas com o programa já escrevendo os caracteres na tela, apelei: estiquei o missile 0 (que já tinha a mesma cor que o fundo da tela) e posicionei de forma a cobrir a parte da tela onde aparece o lixo. Não é a solução mais limpinha do mundo, mas funcionou bem.

Etapas do sorteio

Com tudo isso eu já tinha um programa que escrevia dígitos arbitrariamente na tela. A partir daí, se eu incrementasse o número a cada scanline não utilizada, eu teria eles mudando na tela em alta velocidade, dando um efeito de sorteio. Incrementando a cada frame (ou a cada n frames) eu podia reduzir a velocidade, o que me levou a dividr o programa em quatro “modos”:

  • Modo select: Mostra os dígitos correspondentes ao limite máximo do sorteio. Pressionar GAME SELECT em qualquer outro modo muda para este, e pressionar novamente GAME SELECT incrementa o limite máximo (de 100 em 100).
  • Modo rodando: Acionado pelo GAME RESET, este modo incrementa o número a cada scanline, conforme descrito acima. Aqui surgiu um dos bugs mais difíceis de encontrar: eventualmente eu usava duas scanlines (por conta do “vai um”) sem contabilizar, gerando uma tela com scanlines a mais. Isso fazia o vídeo tremer, por perder a sincronia.
  • Modo parando: Passsa a valer se o jogo estiver no modo rodando e o usuário apertar o botão do joystick. Ele incrementa o número a cada n frames, começando em 2 e aumentando aos poucos. Com isso, os números vão avançando cada vez mais devagar por uns poucos segundos, simulando o efeito de uma roleta parando (confesso: a minha inspiração foi a memória do Roletrando nos anos 80!)
  • Modo parado: Quando o atraso de frames do modo parando chega a um limite, é hora de parar e declarar um número vencedor. Para isso o programa muda para este modo, permanecendo nele até um novo GAME RESET.

Números (pseudo-)aleatórios

Mesmo implementando todos esses modos, ainda havia um problema: a pseudo-aleatoriedade seria garantida pelo fato de um tempo indeterminado se passar entre o GAME RESET e o botão do joystick ser pressionado, e neste tempo incrementarmos o número sorteado a cada scanline fora do desenho. Isso tem um problema: se temos k scanlines livres na tela, o sorteio avança de k em k números, e dependendo dos divisores comuns entre este número e o limite superior do sorteio, o mesmo ficaria limitado a um subconjunto de números.

Como o limite superior varia, o melhor jeito de evitar o problema era inicializar o contador com um número pseudo-aleatório “de verdade”. Para isso, a solução foi introduzir um contador de um byte na RAM, incrementado a cada frame enquanto o console estiver ligado, e usá-lo para inicializar a dezena e unidade do número sorteado. Um truque bacana foi fazer este incremento usando o modo decimal, ou modo BCD do 6502. Com isso, cada nibble do contador contém um dígito de 0 a 9, e pode ser usado diretamente para inicializar a dezena ou a unidade.

Som

Com isso, faltava adicionar um efeito sonoro que complementasse o sentimento de “roleta”. Não falei sobre som na palestra, mas a teoria é simples: o TIA tem dois circuitos de som independentes, e pra cada um você pode escolher o volume, a frequência e o tipo de som, escrevendo nos registradores apropriados.

É preciso usar alguns dos minguados ciclos para gerenciar isso, e a produção de músicas é dificultada pelo fato de as frequências não baterem com uma oitava musical “tradicional”. Mas para esse programa não foi um problema: fiz um tom curto e grave ser acionado a cada frame em que ocorre uma mudança de dígitos. O resultado é um ronco de motor meio Endurozento no modo rodando e um tuc-tuc-tuc no modo parando, o que serviu bem ao propósito.

Cores e o resultado final

O toque final foi acrescentar cores: deixei uma diferenciada para o modo select, e no modo parado eu reutilizei o contador de frames para mudar as cores constantemente (se não fosse o BCD, creio que ficaria parecido com o cálice do Adventure). Isso deixou o programa pronto para usar, e o pessoal do evento curtiu o sorteio feito de forma tão inusitada. Veja ele em ação:

Normalmente eu programo com um pouco mais de planejamento, mas no Atari as limitações do hardware fazem com que qualquer coisa além de uma idéia inicial viável tenha que ser decidida conforme os recursos vão permitindo. Foi assim que David Crane criou o Pitfall! – ele tinha um esquema pra fazer um homenzinho correndo, e queria bolar um jogo usando isso:

Eu sentei com uma folha de papel em branco e desenhei um homenzinho no meio. E disse, “Ok, eu tenho um homenzinho que corre, vamos colocá-lo em um caminho [mais duas linhas desenhadas no papel]. Onde fica esse caminho? Vamos colocá-lo em uma selva [desenho umas árvores]. Por que ele está correndo [desenho tesouros a coletar, inimigos a evitar, etc.]?” E o Pitfall! nasceu. Todo esse processo levou uns dez minutos. Cerca de 1000 horas de programação depois, o jogo estava pronto.

David Crane, em entrevista de 2003

Harmony: rodando jogos (e testando programas) num Atari de verdade

November 5, 2011

Cartucho HarmonyA programação para Atari 2600 é uma curiosidade que já me levou a escrever artigo e minstrar palestras sobre o assunto. Vira e mexe estou lendo e experimentando, e até acredito que um dia alguma dessas brincadeiras pode se tornar um jogo de verdade.

Um bom emulador é necessário para programar para qualquer dispositivo, seja ele um celular ou um console. O Atari tem o excelente Stella (cujo debugger é bom até para quem só quer entender como algum jogo funciona). Mas é igualmente importante testar o programa no console “de verdade”, pois só lá os detalhes vão aparecer.

Foi com esse objetivo que eu encomendei o Harmony. Em termos simplificados, é um cartucho com slot para cartão SD, que disponibiliza os jogos (ROMs) gravados no cartão através de um menu no console. Comparando com aqueles cartuchos com 2 ou 4 jogos selecionáveis através de chaves, é uma evolução incrível.

Cartucho Harmony: MenuComo tudo que é simples, tem uma engenharia sofisticada por trás. As especificações mostram que, só em termos de clock, a CPU do cartucho é 70 vezes mais rápida que o do videogame (na prática a diferença é ainda maior, afinal, é uma arquitetura ARM de 32 bits contra um 6502 de 8 bits). Talvez não precisasse de tudo isso, mas um hardware mais generoso pode embarcar um software que reconhece dezenas de formatos de ROMs, e que pode ser atualizado com faclidade.

Para mim foi útil logo de cara, porque o “Hello, World” que eu apresentei no Dev In Sampa nunca tinha rodado em um console de verdade, e eu não acreditava que acertaria de primeira. Dito e feito: eu não zerei os registradores do TIA (chip de vídeo) correspondentes aos objetos visuais que não estava usando, e eles apareciam como “lixo” na tela. Este problema não acontecia no emulador, porque ele zera a memória emulada ao inicializar. Felizmente a correção foi fácil, e já foi aplicada nos slides e no código-fonte.

Cartucho Harmony: Hello World

Ele também foi útil para viabilizar o sorteio2600, um programinha que sorteia números entre 0 e uma centena qualquer (100, 200, 300, etc.), feito especialmente para o Dev In Vale. Novamente, entre o emulador e a vida real havia uma diferença: o score mode, que divide o fundo (playfield) monocromático em duas cores (uma à esquerda e outra à direita) não faz essa divisão de forma 100% precisa (a cor muda um tiquinho antes da hora).

Como os projetistas de jogos já sabiam disso (dificilmente usariam emuladores naquela época), eles não usavam o playfield todo quando habilitavam o score mode. Mas o meu código já tinha sido pensado para sumir com metade dele (e usar toda a outra metade), então eu “roubei”, usando um dos missiles para cobrir a parte do playfield que não deveria aparecer. Isso está documentado no código, e fica como mais um exemplo dos truques que eram necessários para fazer o hardware limitado do Atari 2600 atender às necessidades de cada jogo.

Se interessar, veja mais fotos do Harmony em ação.

(esse post pede um agradecimento especial ao Alexandre Oliveira, que me cedeu vários cartuchos de Atari para testar o console “novo”, evitando que eu procurasse problemas onde eles não existiam)

Micro Men – o “Pirates of Silicon Valley inglês”

November 1, 2011

Micro MenDurante a explosão da microinformática nos anos 80, a Inglaterra era um dos poucos países (o Japão seria outro) nos quais os computadores eram projetados de forma independente dos EUA. Ali, Sir Clive Sinclair se destacou ao criar os primeiros computadores pessoais realmente acessíveis, o que lhe rendeu o título.

A disputa entre a Sinclair Research e a Acorn (ou, especificamente, entre Clive e Chris Curry, ex-funcionário do primeiro e um dos fundadores da Acorn) para decidir quem iria fabricar o computador que levaria a marca da BBC é o mote central de Micro Men, um documentário dramático que começa nas primeiras inovações de Sinclair (calculadoras de bolso e relógios de pulso digitais) e vai até os finalmentes das duas empresas, retratando o “estouro da bolha” que viria nos anos seguintes.

Embora a relevância da disputa possa parecer um pouco exagerada (ainda mais ao considerar que o filme é produzido pela própria BBC), o fato é que o vencedor teria não apenas um contrato gigante para colocar micros em todas as escolas britânicas, mas também ganharia a chance de educar uma geração inteira usando seus produtos. A importância disso fica evidente quando se observa quão bem esta mesma oportunidade foi aproveitada nos Estados Unidos por ninguém menos que a Apple.

Outro ponto que poderia ser questionado é a colocação da Acorn no mesmo nível de destaque que a a Sinclair, considerando que seus micros pouco apareceram fora da Inglaterra. Mas vale lembrar que eles foram os criadores do que viria a se tornar o processador ARM (que muito provavelmente está no seu bolso neste instante, já que sua arquitetura é uma das mais populares em smartphones).

O começo do filme é um pouco confuso (e parado), mas o contexto vai ficando mais claro, e o ritmo também melhora muito. Ele inclui momentos clássicos, como a famosa briga no Baron Of Beef, e no final é uma experiência muito divertida para quem curte a microinformática “raiz” e quer saber mais sobre as pessoas por trás dos micros – em particular quem teve um TK ou equivalente nos anos 80.

Chester em Hollywood (e no set do The Big Bang Theory)

October 1, 2011

Chester no lugar do SheldonNão sei bem como introduzir o assunto, então vou direto ao ponto: ganhei um concurso do Warner Channel, que levou eu e a Bani até Hollywood para, entre outras coisas, assistir à gravação do The Big Bang Theory. E o melhor: pudemos tirar várias fotos, bater na porta da Penny e até sentar no sagrado lugar do Sheldon!

O concurso pedia para responder à pergunta: “Por que você acha que a série The Big Bang Theory merece ganhar um Emmy?”, e eu não lembro das palavras exatas da minha resposta – mas foi na linha de “porque ainda não inventaram um Prêmio Nobel de Comédia”. Além da frase, era preciso responder a um questionário nada trivial sobre o Emmy, mas com esmero e a ajuda do IMDB, eu e a Bani concluimos a tarefa e esquecemos o assunto.

O aviso da vitória veio em um momento crítico: eu entraria em cirurgia no dia seguinte – nada muito sério, mas o passeio dependia de um OK do médico, e este de uma recuperação sem complicações. Ambos vieram e zarpamos para a cidade das estrelas.

Hollywood, Beverly Hills, etc.

Bani e a marca do Leonard NimoyFicamos hospedados no Reinassance Hollywood, que além de confortável é bem localizado: fica no mesmo complexo que o Kodak Theatre – o lugar onde é feita a entrega do Oscar. A Bani aproveitou e comprou ingressos antecipadamente para o Iris, o recém-inaugurado espetáculo do Cirque du Soleil cuja temática é justamente o cinema. Estava uma bela bagunça na Hollywood Boulevard por conta da estréia, mas isso não impediu a gente de encontrar um protesto do Anonymous.

A visita a Hollywood pedia um tour em Beverly Hills para ver as mansões dos famosos (por menor que seja minha identificação com esse mundo), além de inúmeras locações de filmes e pontos relacionados a cinema e televisão. Juntado isso com uma passeadinha pela calçada da fama (que era bem próxima), deu para preencher bem o “lado Hollywood” da visita. Só lamento ter trocado uma visita ao Madame Toussauds (museu de cera) por uma ao Acredite Se Quiser, que se revelou bem fraquinho.

Como eu estava em pós-operatório, limitamos os passeios a pé a uma tarde no downtown. Começou muito bem no Little Japan, onde comemos e compramos, mas ficou desagradável no Toy District. O nome e os guias sugeriam uma espécie de Fao Schwartz a céu aberto, mas a vizinhança se revelou qualquer coisa entre uma 25 de Março e a Boca do Lixo paulistanas. Sério.

Chester dando uma de descoladoRecuperamos o entusiasmo no Universal Studios CityWalk, que conta com excelentes opções de compras, balada e comida. Jantaríamos fácil ali, mas a falta de supervisão adulta inviabilizou o plano em algum ponto entre a loja especializada em pipoca e o frozen yogurt da Hello Kitty. É um passeio de fácil acesso – basta pegar o shuttle gratuito em frente ao metrô (sim, a cidade das estrelas tem transporte público).

E por falar em comida, a limitação de mobilidade foi compensada pela proximidade de boas opções a preços quase que baratos (comparando com bons restaurantes paulistanos, por exemplo) como o restaurante da revista Rolling Stone e o The Grill (dica: Fish and Chips).

Gravação do TBBT

O último dia abriu com pompa e circusntância: nós e os outros ganhadores fomos levados de limusine até os estúdios da Warner, onde fizemos o passeio que mostra coisas como a caixa d’água onde os Animaniacs moram, a casa da Lorelai Gilmore, um General Lee e uma infinidade de outros artefatos que até então pertenciam ao reino da ficção. Um dos depósitos tinha a mobília do Central Perk guardada, e a gente conseguiu uma foto no sofá da abertura do Friends.

Mas o melhor ainda estaria por vir: no final do dia fomos assistir à gravação do TBBT. As gravações geralmente são à noite para que os atores possam memorizar falas durante o dia, e a presença da platéia tem duas funções: gravar as risadas e dar aos atores a oportunidade de sentir o timing das piadas. Naquela noite eles gravaram um episódio inteiro (exceto por uma cena externa) e ainda deu tempo de assistir ao vídeo do episódio anterior – possivelmente para gravar risos adicionais.

Penny! Knock knock knock! Penny...Eles gravam tudo na ordem da história, e não é picadinho: a tentativa no geral é fazer a cena toda de cada locação de uma vez só. Para isso usam quatro câmeras, sendo pelo menos uma móvel, e quando erravam (a Kaley Cuoco engasgou uma hora, tadinha) voltavam um pouquinho, com raros cortes do diretor. Tudo é filmado pelo menos duas vezes (com ajustes e improvisos eventuais de uma para outra), e a gente dava risada em ambas – porque ao vivo é ainda mais engraçado.

Após a gravação o público se engalfinhou para conseguir autógrafos de um elenco visivelmente cansado. Nem encanamos, até porque o que viria em seguida seria bem mais legal: apesar da proibição de fotografia nos estúdios, como convidados nós pudemos fotografar o cenário à vontade.

Os atores já tinham ido embora, mas conseguimos foto com o físico do seriado: o Prof. David Saltzberg, PhD em Física e consultor que cuida da qualidade científica das piadas e até faz as fórmulas nas lousas! Ele mantém um blog muito bacana, que entra nos detalhes da ciência por trás de cada episódio da série.

No final foi uma experiência ímpar, e só posso deixar meus sinceros agradecimentos ao pessoal da Warner que nos premiou e acompanhou. Sentar no lugar do Sheldon definitivamente não tem preço, e lembre-se: quando assistir ao quinto e sexto sétimo episódios da quinta temporada, você estará ouvindo, entre outras, as nossas risadas!