Alcides Fonseca

40.197958, -8.408312

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 ;)

BBC and XMPP

So Duncan Robertson, from BBC, made a XMPP bot as an interface for their API. I’d love to see this love for web stuff from the Portuguese TV Channels…

Thoughts on PDC

Some may accuse me of being a Microsoft guy, but using a mac in the past or so, I can’t really say that about me. Nevertheless, I keep an eye on Microsoft Conferences ( and I even got to attend one or two) because really cool stuff come from them. I’m not kidding about this. Let’s see PDC 2008:

Windows 7

I’ve been following Engineering Windows 7 blog, so I was pretty up to date with this stuff, but seeing real screenshots was pretty impressive. I have mixed feelings about the taskbar redesign. While I really liked the old one, I understand that this way it’s more usable in smaller resolutions (say notebooks or even mobile phones, think Shift or Advantage). But in bigger displays, that are cheaper and cheaper each day, the old style was pretty cool.

The vista style of the windows was predictable, but I really hate it. I do! I hope they get a real theming engine, and not make us use some third party software to make them more macish.

One cool surprise was to see that they fixed the horrible wifi icon in the traybar. Linux and Mac did it right years ago, and in Windows up to Vista and even in Windows Mobile it’s a pain to connect to networks.

About the multi-touch? Well, they had it all along with Surface (and Surface SDK), so no big surprise. We’ll see MS release the iTablet before Apple does.

The Cloud Stuff

a.k.a. Windows Azure

Well, startups are going the Cloud way. Amazon Web Services and Google App Engine are just a first step. Microsoft wants Entreprise costumers to join this trend, and be able to have their business in the cloud. I don’t know if this is going to be such as a success and they think. a) real small business don’t want their data on the clould. They want it in their small server in their intranet. b) Large companies that have the need for a cloud server probably can support having their own infrastructure and not relying on Microsoft. Maybe I’m mistaken, but we’ll see.

James Governor has written a really interesting post on this matter and even mentions OpenID in Azure Services.

More Cloud Stuff

a.k.a. Live Mesh

Live Mesh is the Mobile Me for the rest of us. It syncs files P2P or through the cloud and for those, like me, with several computers rocks.

Since the Mac and Windows Mobile clients came out, I guess I’ll have to give it a try some day.

Dale Lane writes about the transition from USB syncing to Cloud syncing. It’s true Google doesn’t provide a offline sync out of the box in the Android, but I like to have the oldschool method available when needed.

Yet More Cloud Stuff

a.k.a. Live Services

Angus got extra points for the shirt and for spreading the social word among the entreprise developers there.

It’s true that Microsoft has a different view form Google and Yahoo that are embracing the OpenID+OAuth way, but this might change in the future. You can already see some little steps being made.

Dynamic Languages

Oddly, the first dynamic language I noticed in PDC was C#. Really! C# is now lightyears away from Java, and is evolving continuously. Version 4 brings a lot of new features and one of them is the ability to integrate dynamic languages directly in C# using the dynamic type. I believe C# is becoming more of a glue language (LINQ, Dynamic Languages, F#) that allows programmers to switch smoothly to other languages.

As usual, I love John Lam’s talk on IronRuby that besides the usual C#, Silverlight and Testing/Mocking stuff, demoed a Visual Studio Plugin in Ruby and Web Services using Sinatra. You should really take a look at it.

Oslo Modeling tools

DSLs are becoming popular in the several business software. and is something Microsoft was looking at a while ago. While I’d say IronRuby was the way to go (see RSpec examples), they took it further and made their own toolkit, Oslo, to develop both visually and textually Models The language they created to achieve that purpose is called M, and right now is supported through the IntelliPad editor.

In fact this editor was what got my interest in this area, since it’s codename was Emacs.NET, and since I’m in the quest for the perfect editor I wanted to take a look. Well, right now it supports the M language, but “you can extend it using IronPython”:hhttp://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,92ec6f1f-45e5-4b7d-b675-548be5131a07.aspx. I’ll wait to see the first plugins to support different languages in the IntelliPad.

In the meanwhile, take a look at the different Oslo sessions at PDC

Mono

Yeah, Mono gets to be one of the main points of this post, as it should also be very important to Microsoft. The work Miguel and the team is doing gives much more value to .NET and Microsoft, than any other technology they presented in my opinion. Since the Mac and Linux worlds are raising their share, it’s important to let developers target those platforms too. And their doing interesting new stuff too, like the C# compiler service, the C# interpreter and even running .NET apps in the iPhone!

So take a look at his talk, one of the best in the whole PDC.

Of course this wasn’t everything PDC was about, but the stuff that I really care about. And I really liked some of this stuff!

Scala

Scala is a functional and OO hibrid language targeting the JVM. Performance is not far from Java’s since it is a statically typed language, but you have type inference that Java doesn’t.

Scala compiles to .class files, so you can just replace your .java files with scala without greater problems because scala was designed to the JVM. This also means you can access everything in your Java code from Scala and vice-versa.

Resources

Some Examples

Towards headless IDEs

During my programming life I have used a lot of different editors and IDEs just like everyone else. I’ve started with Notepad. 4 years programming in black and white, but it was the only editor I had in every computer I used1. Then I was introduced to Visual Studio (VB6 at the time) and it was a really different world! Not as fancy as today’s VS, but pretty cool at the time, and the Winforms editor made me fall in love with Visual Studio.

My main work was web programming (yeah… PHP, sorry guys) and not desktop apps, so I start using Notepad++ that I still advocate as a wonderful editor for Windows. You can even make your own plugins in C++, just like João did.

After a while, I went back to using Visual Studio with the .NET platform, and it still rocked. I also gave a try to Eclipse for Java development, but Visual Studio was faster and more suitable for my taste. Still, the startup time and memory footprint could have been much better. And these IDEs only worked with staticly typed languages, with aren’t my favourite, so I sticked to notepad++ and other IDEs. Among those, I tried intype, a textmate clone for windows still in dev, editra which is my current editor for Python in windows, with project manager and svn/git support and obviously Textmate since I bought my mac. Oh, and yesterday I found out about Smultron.

So where I go next? Full-featured IDEs like Eclipse, Netbeans and Visual Studio have started to support dynamic languages like Python, Ruby, Javascript, etc… andplugins for editors are growing too.

So, there’s a new fashion today: headless IDEs as plugins for editors. Orestis Markou writes about this new trend and gives you some examples working right now.

As for me, I guess I’ll try emacs in a near future, just for the sake of having some experience with an hardcore editor. But I keep always in mind, that not everyone in the software industry should use one of those. IDEs exist for a reason. In a big software project, there are those who do the interface, others who only work with Databases, others who do the Network stuff, others who are Code Monkeys (sorry), and those who glue all of this together into a product. And they need to share information/code between then, and while one will see the UML view of the code, other would be viewing the GUI view instead. All of them using the same IDE.

1 I couldn’t install stuff in those computers, and we hadn’t the concept of portable apps, only msdos executables in floppy disks.

Smultron

Yesterday I found Smultron, an opensource editor in Cocoa that with a few tweaks could be at the level of Textmate. Those tweaks would be:

Theme system

I like to use a dark background, but in some presentations I need a white one, so I’d like to switch between a few color schemes with a click. And I know that’s something really simple to implement.

Plugin System

Well, you have Commands and Snippets, but I like the way textmate organizes it. And make them easy to download and install, and even remove.

VCS support.

You know, git, svn, bzr, hg those cool things people use to control their code. Oh, and what about some deployment stuff? Like some SFTP coda-style?

If I hadn’t bought Textmate, I would be using Smultron for sure in Mac OS!

Balsamiq Mockups

Balsamiq Mockups is a nice application to easily design mockups for you applications. There’s on little difference to the majority of similar tools I’ve seen: it doesn’t try to come out with a realistic image. That always makes the client think that you’re almost done, when It’s not always true. So it sticks to a rather sketchy design while representing the same thing.

Take a look at the Web preview, and you’ll see how it works.

Regulação dos Jornalistas e Comunicação Social

Ligo a televisão hoje (já não a ligava à valentes semanas) e deparo-me com a Manuela Moura Guedes muito mais gorda e deforme a entrevistar o Presidente para a Autoridade Nacional da Regulação da Comunicação Social.

Podem ver aqui a entrevista bastante cómica. Eu não consigo porque eles teimam em usar o RealMedia plugin…

O Melhor Jornal de Política

Não percebo nada de política é um excelente post de Luís Miguel Sequeira, enorme (verdadeiramente enorme) mas tem qualidade ao quadrado. Para quem não gosta de política, mas especialmente para aqueles que se queixam do Governo a torto e a direito.

Se virem que não têm tempo para o ler, substituam a secção de política do vosso jornal por este post. Mesmo que por 6 meses.

Vale mesmo a pena!

SHiFT 2008

So SHiFT stands for Social and Human Ideas for Technology and it is a great event in the areas of Interaction, Social Design, Usability, Web, Mobile, etc…

I’d like to start this post by thanking SAPO who gently offered free tickets to Portuguese students, which includes me. Unfortunately I could only attend on the last day (damn you school!) and this is some ideas I got from the day.

Pedro Soares NevesSocial web and urban design

Although short, this presentation focused the need of bringing online experiences (like the prosumer) to urban design, in his case a project where we gathered graffiti writers from Bairro Alto in workshops and practicing in a way that benefits themselves and the community around them. Surely a project to follow!

I managed to get the end of Brian Suda’s presentation on microformats, and I noted down about the Long Now Foundation, that uses 5 digits in the year representation. 02008 has a different impression in people than 2008: the first makes our lifetime really small in scale than the second one.

h3. Delphine MénardCatching up with the cultural gap

In general, this talk mentioned the need for specific attention to the cultural gap between different cultures that interact with each others all the time. And even when you’re on the web, you have to be really careful with localization and, if you can, adapt the site to each cultural/linguistic community (pt-PT, pt-BR, en-UK, en-US, etc…) and not just in language, but sometimes in content or even in the business logic. Different users from different places may expect your service to work in different ways, so you should aim for the stereotype and then improve with the feedback you get.

Manuel LimaA visual exploration on mapping complex networks

In 2030 the portable computer is expected to store 1 Petabyte (1.000.000 Gb), so that’s going to be a lot of data. In order for that data to make sense and be useful for us we must be able to visualize, navigate and manage that non-ending information. That’s the motto for his project VisualComplexity.com where he tries to gather different kinds of visualizations of data, and tries to match the ones that help us to understand each subject or relationship better. The presentation was full of examples you’ll be able to see in the powerpoint later.

Susana VilaçaUsability vs. Software Development Process

Ending the morning sessions, Susana gave an interesting talk on how including usability in your development may not only improve the quality of your software, but also reduce your costs ( money and time included). This works pretty well if you are using an agile methodology since you can run usability tests whenever you have some valuable piece done. This way users can evaluate what you have already done, and give you information right from the start of things that you may not doing properly instead of only mentioning when the product is done, and you waste a lot of time going back, correcting and redoing the whole project. However, you should keep in mind that bringing the user into the developing process may be complicated since they don’t work the same way as developers do, and may make your life harder.

Henriette WeberWhy every company should be a Rockband

Everyone wants to be a rockstar. Even if they don’t have a clue about how to play music (which is my case1). And you don’t have to know how to play the guitar, you just have to work as a rock band would do. Each rock band has a manager, that handles the secondary stuff to allow each band member to do what they do best. And then there is the coolness factor, since you can get fans not only be playing very well in your field, but also by worrying about your users concerns (the example of Nokia being the greener of the telephone manufactures). One other thing your company can learn from rock bands is to have groupies, that elite group of fans that really worships your music, and works as a wonderful marketing machine (here, the obvious example of Apple).

I got to see the end of Fred’s presentation that fitted quite well in this theme, since we (developers) should not only aim for what our user needs right now, but what they might need, and achieve that coolness through the quality of service.

Stephanie Booth Online Culture: what parents, teenagers, and teachers need to know

This slot gave me an hard choice, and I ended up not seeing Tara Hunt even if a few meters away, but I related more to the problems of the Online Culture in the education of teenagers. Being a teenager myself2 and having given a few classes to younger students, I really understood the problems that exist between the parents and teachers that don’t get this computer stuff, and teenagers avid for exploring this new world. Neglecting an important part of their children’s life is not the best approach, since communicating online brings the same dangers (and maybe some more) than communicating in the real world. Parents and Teachers should be aware of the culture that exists online (not necessarily to be a part of it) in order to educate teenagers to interact and socialize safely in the Internet.

Final notes

I got to ride a Segway for the first time, and even though it’s amazing how that thing works so well, the ratio price/what you can use it for is not that good.

I’d like to thank the organization for the great event that happened, bringing world-class speakers (and even attendees) to our country that resulted in this wonderful gathering of ideas and people.

Oh, you were looking for pictures, right? There you go!

See you next year!

1 In fact, apart from school, I had piano lessons for 4 years, and if I get in front of my keyboards, I don’t know what key should I play.

2 Even if only for a month or so now.

Doubt in Internet Regulation

Internet is not totally free since you have to follow the rules of the country you’re in. So here’s a question raised when writing this:

In a hypothetical situation, if I’m in Spain accessing my VPN in Portugal and publishing a post in my blog that is hosted in the USA, but the database where the content is stored is in Canada. Which laws should my post follow, since they vary from country to country? Spanish (where I’m writing the post), USA (where the content is distributed to others, or all of them?