Alcides Fonseca

40.197958, -8.408312

I know you are listening

Today’s xkcd really made me smile. This is something I usually do, but in a different version. When I’m walking – my thinking time, even if it’s walking in circles in my basement – I usually think louder “i know you are listening” and one-way conversations to myself, since it is possible that in the future our memories will be stored in The Archives and anyone could browse them, and see whatever is inside your head.

Yeah, I lack faith in those privacy laws…

Espresso

Espresso is the new Code Editor from MacRabbit, the guys behind CSSEdit.

The public beta was announced as a “textmate’s competition”. I have tried the beta since 0.2 and I don’t really agree with that statement.

Espresso is a really beautiful editor. But that doesn’t matter to programmers, that nowadays seem to be migrating to old school editors. It matters for those designer/programmer hybrid stereotype. Guys that do Web-Development, but don’t have a CS background.

But even for those, I don’t believe Espresso would be the best choice. This kind of editor is as good as the languages/frameworks/etc supported. Textmate has a lot of Bundles, and that’s where I see the power of TM, not in the editor itself.

Today I spent a while installing Sugars, the Espresso-branded bundles. There are a few right now, but still very poor compared to tmbundles. And I believe even with time, they are not getting any near textmate’s when it comes down to productivity.

If you take a look at the SDK wiki, you’ll see that all the components of a script are very editor oriented. Although I like the tab-triggers, code folding and so, it really doesn’t compare with the integration I get in Textmate with tools. When writing Ruby or Python scripts, I’m always using the cmd+R shorcut and so on. This kind of actions is lacking right now from the SDK.

Also, if you want to make something fancy like text or file actions, you need to write something in Objective-C. This is a huge limitation. Textmate really doesn’t care in what language your commands are written on, as long as they’re runnable. You can use Ruby (I believe it’s the default), Python, Perl, AppleScript or even just plain Bash Scripting.

This is something that will kill Espresso for the majority of coders.

9

What I believe it’s going to be a great movie!

Make yourself a favour and watch the trailer.

anime

Manga brought to the TV screens.

The very best:

Top Anime:

Only if you have a lot of free time:

To see

1 I tried to watch the original movie, but I gave up half way.

Resources:

Sad about using AdBlock

I’ve always been fan of online advertising and in both points of view. As a online publisher, advertising is indeed important as a income for online business. Or wouldn’t Goggle CEO being flying jets right now. As a customer I also find it useful, specially when it’s site-targeted, since I usually find interesting products. It’s as important to me, as receiving FNAC’s catalogue.

Although Google Adsense doesn’t have any problem and I even use it in some of my websites, I find small niche publishers a more interesting business. Take the example of The Deck: they have their market, they select where they want to place ad, and they get advertising clients that know where they money is being invested, and are willing to pay more than the usual Adsense. I somehow wish more of these indie advertising agencies existed. But they will, in time.

This is why I’m sad about having installed Adblock (the Safari Version) but I had no other choice. For some weeks now, I’ve been getting a lot of “MSN sounds” and “Horrifying Death Laughing” ads, with mouseover sounds. Today when using Slideshare I accidently activated one and it got me nuts.

Mr. Webmaster, if you own a website, and there is a sonorous ad, please remove it. I’m willing to see your advertising, but please respect me.

The geek leaves his basement for 45 minutes.

For some months now, I spent all afternoons (weekends and holidays included) in school with the guys working in school assignments. And when I’m not there, I’m home working in my basement like every decent geek

Well, haven’t been off home/school for a couple of weeks, I decided to get out a bit and went with my parents to the local shopping. Halfway my dad asked me to come back and lock the door with his key (since I forgot mine). I did it and even got there before they did.

Suprisingly, it was almost empty, weird for this time of the year. Any explanation, or people just flocked to the “most-recent” shopping? I did what I had to do there2 and went home.

I decided to stop by the bookshop on my way home. I’m somewhat demanding towards bookshops. I usually buy books in any of two Bertrand shops near me, where I find instantly everything I want, and sometimes in FNAC where shelves are not exactly how I like, but I manage to find what I want after a bit. But in this one, Almedina, I couldn’t find the book I was looking for. (Yeah, I know where to look, and how to search for the book, but I didn’t had luck.) And I wanted to take a look at Visão mag3 but they had any. I’m really exquisite in this matter, and I have to stick to my current preference, or try the new online shop. Any review after the first week?

Well, all of this was the first 15-20 minutes of the 45. Where did I spent the rest? Ouside my house, since I didn’t have my keys with me, and forgot to ask my dad’s which I used minutes ago to lock it. Dumbass! Luckily I had a fantastic PDA with wireless, but it only lasted for 5 minutes since I forgot to charge it last night. At least I played solitaire till my sister arrived.

Outcomes of this journey to the outside world:

  • Don’t forget your keys, ever!
  • Don’t forget to charge the handy gadgets like phones, music players
  • Get out more! Really!

1 Well, for those without a basement, an attic is also ok. Since that’s what I’m getting in my new house.

2 Actually I went there to activate the internet/tv/phone service to the new home. After a one week delay from Clix, I went for MEO

3 I heard there’s a twitter article coming up ;)

git-pull-hook

I’ve been using redmine for a while now. And it rocks! I use it for bug and feature tracker together with time tracking, and also for viewing my repositories. It supports svn, bzr, hg and git. But only works with git local repositories. So if you have your repository somewhere on the web (say GitHub), you have to clone it to your webserver and keep it updated.

Of course one could run hourly crons, but that would be a waste of CPU when github provides something called webhooks. Now something we need is a simple webapp that provides the endpoint for the webhook to connect to. I decided sinatra would be perfect for this and wrote git-pull-hook.

It has some simple instructions if you aren’t sure what to do. And I’d really appreciate feedback on this, specially in security issues. And you’ve got two ways of doing this. the first (and nicer) is to fork the project and send a pull-request; the second is to email me (or comment right here) and hope someday I’ll look at this ever again.

SoundCloud

Back in this year’s Codebits we presented an idea of having your music online, in the cloud. Well, I found out this cool web application that is somewhat similar, and has a great UI based on iTunes. it’s the SoudCloud Player and it’s opensource.

.NET apps are now scriptable

Well, I believe all applications should be scriptable so anyone can improve its behaviour to adapt to each one’s usage.

Crack.NET is a kind of inspector for .NET-based apps (Winforms and WPF) that also allows you to write IronPython code, scripting any application. Both IronPython and IronRuby are perfect for this kind of job, and if you are doing .NET development, please consider providing a scripting interface in any of these languages. I’m sure your advanced users will improve their workflow, and even give you ideas for some new features!

By the way, IronRuby official repo is now on GitHub!

When your central repo is offline

When github was down this week, a lot of people complained. Specially those who are paying clients. I understand this, since I experience downtimes in my SVN server (that has some git repos now too) some times.

There is however a big diference between the two: git is decentralized, that means that you (a) can commit offline, and then push changes into github when it’s up again and (b) you can just use the git daemon like Github’s Chris suggest or just push the repo into some other server you have available in your local network (or even the web).

Last week, I found out we had a corrupted svn repo that I couldn’t commit to. After some issues migrating to a new svn repo I decided to move it to git, and just work offline (the three of us were working in the same room) so converted the SVN into a git repo and pushed to the USB pen I brought from codebits (thank you!) and that worked pretty fine :)

Always remember that this kind of workflows are also possible, and you can even have some repos in external disks as a backup (which I do!). Really rocks comparing to svn.

Coldfingers

In this last week temperature dropped a lot around here. Although I like Winter more than Summer, this cold is really freezing my fingers and keeping me from doing any real programming work.

@meisenshi suggested a cool glove that not only keeps my hand warm, but also allows me to type. So if you have some bucks to spend, I can give you my address :)

And no, Luís, I don’t think a PowerGlove would make me more productive ;)

Viva La Vida

I never liked Coldplay that much. I’ve never been a fan of semi-depressed-looking gloomy fellows and music to match (Travis, Manic Street Preachers, and so on). Which is a big part in why I was stunned when a particular iTunes ad got my attention this May. That song was Viva la Vida, the title track from the album “Viva la Vida or Death and All His Friends“.

In a way, Viva la Vida is my kind of music. It is a powerful song that’s got a solid beat and rhythm, sounds like real music and sends shivers down your spine. I’ve heard enough Coldplay to know that it is in many ways an un-Coldplay kind of song; yet it’s something that Coldplay would be the most likely candidate out of their genre to rush out to make.

I had exactly the same impression! I always felt that Coldplay were to depressing to hear, but this last single of their is somehow different from the others and a great song! Read the whole review in waffle’s.

Lebedev's Pyramid

The proportion shown below is true of any company, organization or community.

This is so fucking true.

Nokia gives up on Japan

So Nokia is giving up on the Japanese market. This supports my theory that we are not going to follow Japan’s example in the mobile phone usage. They have their own niche with super advanced features that are really supported by the network and content providers. No such thing exists in Europe nor in the US (nor anywhere else, maybe China in a couple of years, if they can manage the infrastructure required for such large numbers).

My fascination for Japan increases and someday I’ll get to live there only if for a short period of time.

MSN now supports multiple locations

Looks like the beta version of MSN Messenger now supports multiple connections from different locations at the same time, something that has bothered me a lot and made me switch to Jabber that had that feature since the beginning (circa 2000).

It’s sad that only now Microsoft realised people want to be logged in different devices at the same time, say you desktop computer, your notebook right next to it, and your mobile phone when you want to make a break in the sofa.

On the other hand this may be the first step to make MSN more XMPP-like so they start supporting it later on. Or this is just me dreaming?

UserScripts

UserScripts are site-specific javascript snippets that the browser executes after the page is loaded. It works in the following browsers:

Here’s a list of useful UserScripts:

Codebits 2008

Passei estes últimos três dias pela LXFactory, em Lisboa, a participar no Sapo Codebits 2008. Para uma visão geral, poderão ver a reportagem da sic.

Gostaria também de agradecer ao departamento onde estudo que patrocinou a minha ida e a de mais 4 colegas ao evento.1

Apresentações/Workshops

A primeira tarde e a primeira manhã estavam cheias de apresentações interessantes, mas eu só consegui ver duas:

Serverside Javascript: Hope and Opportunity

O Mário Valente apresentou a sua ideia para uma framework de desenvolvimento web totalmente em javascript chamada Starbucks. Mas o mais importante foram os motivos que o levaram a optar por server-side javascript:

  • linguagem de scripting mais deployed (todos os browsers desktop e mobile).
  • quem desenvolve para a web, seja programador ou designer, já tem algumas bases por onde começar2
  • é uma linguagem funcional, e parece que essas estão para ficar
  • implementa o Universal Design Pattern
  • Tem diversas máquinas virtuais (TraceMonkey, V8, SquirrelFish) que batem em diversas situações Perl, Python, Ruby, PHP, etc…

Eu levantei dois problemas que vejo na solução apresentada por ele:

  • Javascript puro pode não ser a solução mais mainstream, porque o corporate world pode facilmente adoptar Rhino (ou JScript) e usar todas as 1001 bibliotecas já desenvolvidas em java (ou C#).

*Eu valorizo a pluralidade de linguagens possíveis para o server-side. Perl tem as suas vantagens relativamente a Python, que em alguns casos é melhor que Ruby e que também tem situações onde ganha ao Perl. Ou podemos simplesmente falar de gostos. Penso que a solução poderá passar por ter mais máquinas virtuais no cliente, para álem da de JavaScript. Mas vou escrever mais sobre isto brevemente.

Mão na Coisa

O Pedro Melo deu uma excelente apresentação sobre XMPP, mas totalmente prática. Como nem todos podem ser perfeitos, o código estava em Perl, mas deu para perceber perfeitamente. Exemplos desde um Bot controlado por HTTP, como o uso de chatrooms para soluções de sincronização, quer seja controlar servidores remotos à lá vertebra, quer mesmo para transferir informação entre pcs (think Open LiveMesh/MobileMe XMPP based).

O uso disto é ilimitado (até porque o protocolo pode ser extensível) e deu ideias para vários projectos do codebits, do qual saliento o ComputerBot.

Os projectos

CloudStream

Video da Apresentação

Ao contrário do que tinha previsto, acabei por ficar com a malta que veio comigo de Coimbra, e dedicamo-nos a uma ideia que tinha nascido na viagem para a Shift: Criar um serviço que faça o streaming de música alojada em serviços AlojamentoInTheCloud. Nos próximos anos, vamos estar a mover a computação, storage e software para a nuvem3. Ora eu não vou querer estar a sacar a música uma a uma para a ouvir. Vou querer apenas um endereço de streaming, e de um controlo remoto do servidor. Especialmente no meu telemóvel. E poder sair de casa e continuar a ouvir no caminho a mesma música onde parou.

E este modelo é diferente do Last.fm. Aqui a música é vossa, simplesmente não está alojada na vossa máquina, mas num servidor vosso, ou em serviços como o box.net (usado na demo), s3, dropbox, ou outro. No Last.fm simplesmente alugam a música.

TechStuff: Java for streaming server, PHP for the web interface, VLC for transcoding (Obrigado Sérgio!), VLC ActiveX component for web-streaming ( the audio tag didn’t work) and TCP MP in Windows Mobile.

Onde está o Alcides?

Video da Apresentação

Sempre que era preciso trabalhar, parece que eu nunca estava disponível, e isto foi o mote para o resto do grupo desenvolver uma aplicação que dissesse onde andava eu escondido (Ou qualquer outra pessoa que não tenha escondido o RFID) sem ter de tocar no teclado ou olhar para o monitor, graças à apresentação do Pedro Santos do MLDC.

As actividades

Outro dos pontos chave do evento foram as duas actividades durante a directa. O Mário Valente conduziu o concurso de RockBand, que eu adoraria se conseguisse tocar música, mas que deu para me divertir um bocadinho a desafinar e a meter a tocar Tokio Hotel no PalcoPrincipal.

Gostaria de dar também os parabéns ao João Pedro do Sapo pelo Quiz. Não só pela parte técnica, que envolveu luzes, controlos do buzz e quase fritar o portátil, mas também pela imaginação nas perguntas que realmente proporcionou um momento bastante divertido.

Os outros projectos

Pessoalmente não concordei com a classificação final. Só para dar como exemplo, o primeiro vencedor de usar o OpenMoko como rato, já tinha sido feito com o Wiimote, e sinceramente não é muito dificil, visto que fiz uma coisa parecida em meia hora. Não é mau perder, até porque nem acreditava que nenhum dos nossos projectos ganhasse, tendo em conta outros que vi.

O meu top seria:

  1. Cena dos Recibos Verdes do Pedro Sousa
  2. Cena do last.fm -> músicas interessantes -> trackers “legais” -> RSS do Pedro Freitas # JS de Elite (controlar o helicópetro por JS) do Cláudio Gamboa

Assim que os videos estiverem up, recomendo que vejam especialmente estas. Ficam também a sugestão para a organização de tentar criar algumas categorias. Eu percebo que não as tenham feito de propósito, para não impedir a criatividade, mas tendo em conta os tipos de projectos apresentados, poderiam fazer do género: Hardware, Jogos, Produtividade, Mashups, Multimédia, Libraries/Middleware, Categoria Especial 1, 2, 3 e 4. Assim haveria sempre uma folga para meter aqueles mesmo originais e bons, e também dar algum crédito a quem fizer coisas que não são produto final, mas possam facilitar o trabalho dos developers, ou à malta de design que não sabe programar.

Overview

O evento foi exceptional, parabéns ao Sapo, por fazer a malta corporate da PT confiar neles para lhes deixar investir tanto dinheiro na malta jovem e inovadora, com um óptimo formato.

Foi bom reencontrar a malta “Hoo-hoo”4 e conhecer pessoas que já seguia como a Paula Valença ou o Jack Moffitt.

Em 2009 estou lá coladinho! E agora nos tempos mortos até aos próximos eventos, não vejo a malta do Porto organizar nada ;-)

1 O DEI paga a viagem ao Codebits, o Sapo paga a entrada na Shift, a Microsoft leva-me ao Techdays e Teched. Como sou concorrido, começo a aceitar propostas para mais eventos :)

2 E os quarentões não têm de aprender uma nova linguagem

3 E depois vamos voltar a querer tudo no nosso equipamento e iremos estar sempre nesse ciclo, right?

4 Expressão do Alex, se a transcrição estiver errada, avisa ;)