PL118 – strike where it hurts them most, or continue not caring.

In Portugal we have a new bill implementing a tax on mass storage devices called PL118. I’m not going into the details on how this law is absurd. I want to talk about how to fight this.

I’ve learned about people doing petitions, facebook pages, or what not. The thing is, these people respond to money (being politicians or SPA managers). From what I can tell this bill has bi-partisan support and most likely will get approved. Contrary to the US, here in Portugal, politicians do not respond to petitions or mass calling to their offices, or even website boycotts. In fact, unless you have deep pockets, there isn’t much citizens can do to influence decision making.

So what can we do, as the People? Well I can tell you what I will do. Stop giving money to artist. If you don’t agree with this bill, and in fact gets approved into law, stop buying albums or going to the cinema. Steal the shit of their stuff. Keep stealing until they have so little or none profit from their work. Stop going to their concerts, or summer festivals. Hurt them where it hurts the artists the most. This kind of action can be equated to terrorism, but we need to put the pressure where it can affect decisions. SPA needs to change its stance, and for that we need the artist on our side.

The problem is, no one will do this. Like with every law, Portugal is a country of dull people. We will accept blindlessly this law and accuse the government of hurting them. Summer Festivals will get atendents and people will go to concerts and the movies. There will be no repercussion from this law, only to our pockets.

Published

Ubuntu interface keeps getting worse

Since its release, Ubuntu Unity has been plagued with bad reviews, bad usability and huge bugs. I used to use GNOME 2 and since Canonical switch to GNOME 3/Unity I’ve been forced to switch to KDE. Unity and GNOME 3 are so badly implemented (mostly because they are ‘work in progress’) they reduce my productivity.

The most recent from Canonical is this ‘Quicksilver’ interface to menus. Interesting, but the problem is that Canonical seems to be focusing in creating interfaces for hardware vendors to put on their computers, or interfaces for tablets/mobile phones, instead of focusing on desktop users.

Well, I’ve switched to KDE. After loosing an afternoon configuring the environment, now everything seems to be working OK.

Published

The office of surf the edge, for now.

I’m working on lots of stuff this year, but for now, this is my humble office, until I find some permanent place to work from. Working from home is troublesome. Either you are capable of focusing (which I’m not, at least not with a bed next to the desk) or you have to work outside your home. And the prices in lisbon aren’t good for me.

Lets see if I can release my first product this year and get some money flowing so I can rent some better place.

Published

Airing of Greevences: Pinax

I’me developing a web application that has some elements of social network. The problem is that there is almost no web frameworks to start from. The only one I know is Pinax.

Pinax is Django based. Is a bunch of independently developed components taped together with some some code. It actually provides a lot of the boilerplate code that is boring to code (making friends, sending invites, showing requests, etc, etc, etc…).

The problem is that the documentation is a blog post from 2008 with almost no documentation giving only a tutorial on how to set up your development environment, you are forced to use virtualenv to get the components installed, instead of only dragging components to your django folder and updating the installed apps setting and it depends on PIL, the python imaging library, that has no stable port for OS X since the Intel transition, and is a f’ing train wreck to get to work no OS X.

I like django, a lot, but I spend more time fighting pinax than actually moving forward with my project.

Published

BicaVM: JVM in JavaScript – Why?

Last weekend I’ve been in Codebits and Made a presentation about computer languages that you can watch here. Like this post, its was presented in poor english, I know that.

The gist of it is: I don’t have the same hard on that everyone else is apparently is having with JavaScript. Sure is cute language. Every one likes its functional nature, the prototype base inheritance, but it lacks crap that we decided decades ago that are essential (eg. Modularization) and even has some serious problems (eg. == vs === is a lousy way to handle identity).

So what?

I believe that the browser should have some kind of virtual machine, in which one of the languages would be JavaScript, but if you are writting a project in some other language, why wouldn’t you want to write the client side in that same language as long you provide the runtime for that language. More so, like I attempted to point out in my talk, I truly see languages as a tools. You should the best one for every problem.

Beyond langauges

Having a virtual machine on the browser also has some interesting side effects. The first one is that you have automatically sandboxing so you can allow untrusted foreign code to run on you page without problem. You also can froze the virtual machine running on your client and send it back to the server, allowing you to have a very easy way of implementing browser independent state persistence. Portable devices have no plug in architecture and can’t run Java Apples (not that I want to but its a fact). A more exoterical one is that if your code blows up you can package your virtual machine and send it back to the server for post mortem analysis. But with out a doubt that the most important reason to write something like this is: Because I can.

Because of some of the projects I’ve been thinking about starting, I’ve been searching for some kind of Virtual Machine in JavaScript. I was more inclined to JVM due having a large ecosystem. However the only JVM in JavaScript available in JavaScript was Orto. There was no documentation or code to begin with and from what I’ve could gather, it was a bytecode to source translator, and translators have problems (in GWT for instance you can’t use reflexion because during the translation you loose all class information). Because of that I decided to implement from scratch a JVM and that is how BicaVM was born. BicaVM is a JVM implementation in JavaScript that I started writing 6 months ago and released last friday.

Fast or slow?

One of the most common complains I’ve heard when reading the comments from the original post is that Java & JVM is slow and having it in JavaScript will be even slow. I could spend countless words telling you that you can use preemptive code transformations, or JIT is actually simple to implement in this kind of of VM, you could download initialization blobs that would speed up the init process, but I would like to leave you with the words of Dr. Knuth: “Early optimization is the root of all evil”.

So at this point BicaVM can run Java Code. You can now change the DOM using Java because I have support for JNI (that maps to JavaScript functions). Oh and does run on iPad/iPhone.

You can get it here.

Published