Linux


The New Wave of Vaporware

Last week I got a new development device, a Galaxy Nexus, mainly for Android development since I bricked my old Galaxy S. Sooner or later I would try to install my favorite alpha mobile OS: Firefox OS. I really wanted to try Firefox OS because of how they want HTML5 to be the primary (and unique) way to build applications, but since I NEVER run anything on emulators, I was waiting until I had a device that was compatible.

So I went to their docs to get started on how to flash their OS into my Galaxy Nexus. The first thing that I see is that they don’t provide binaries, that’s not good, but I can compile it myself, no big deal. So I started following their Building/Installation entries, installed all the prerequisites, pulled the code from their repo and ran the configure command to prepare the repo. Then I realized it was downloading the Android source code, which is fucking huge and takes an eternity to download, at this point I realized things weren’t going to be good.

For some reason they weren’t using Google’s servers to get Android’s code, but instead the shitty Linaro ones, I was getting a extremely unreliable, 60kb/s download, it was a hell. After 4 hours trying to get all the code it started failing bad and then it wouldn’t download the rest anymore, so I went to their IRC channel hoping to get some help, but couldn’t get much of it, but what was interesting from the conversation in the IRC is that their primary development target isn’t phones, but the shitty emulator.

I can rant about emulator and all that crap for days here, but I prefer not to. So, dear Mozilla, if you want developers to really care about the awesome product that you’re building, you should first give us a fast and easy way to install it on our devices.

If you look closer at all these 5th place mobile OSes (Ubuntu Touch, Firefox OS, and Tizen) you’ll realize one major thing: It looks like they’ll never ship (yeah Tizen, you’re the worst at the time), they just appear to be a bunch of vaporware.

I really love to see all these emerging technologies and have fun with development stuff, but if I can’t install it, I’ll just loose my interest and never look back. I think I’ll never try Firefox OS again, it was a great experiment, but if you focus on crap emulators I won’t support your platform.


My Raspberry Pi Post-Mortem

This might be the worst day of this current year. As you might already know yesterday, after 4 months of agony, I finally received my Raspberry Pi. It cheered me up a lot, since in the same day my old Galaxy S bricked. Today the perfect chemical reaction occurred. All the excitement and expectation converted entirely (maybe multiplied) into a strange mix of frustration, sadness, and anger. My Raspberry Pi arrived dead.

After 4 long months of wait, ~20 items on a TODO list, 3 projects, 2 VMs, ~50 tweets, and 3 articles, it all came to a sad end. Today my friend borrowed me his spare USB keyboard so I could turn ON an configure my Raspberry Pi for the first time. While it was booting I had one of the most awesome experiences ever: I’ve watched the original Linux boot, with a logo on the left corner and all those awesome lines blazing through the screen, just like in 2005 when I booted Linux for the first time on my extremely old IBM ThinkPad. After I saw those lines for the first time I decided I wanted to know more about how things were made, Linux got me into programming, and turned me into what I am today. It was a awesome moment to watch those lines again.

The first thing Raspbian did was show me a nice ncurses-based configuration tool. I started configuring it and suddenly “No Signal”. I looked at the Raspberry Pi and the only thing that showed me it was working was the Power LED, all the other LEDs (including the internet ones) turned OFF. I disconnected the power and tried booting it up again. This time it did the same thing, but a lot earlier.

I rushed to my computer to check if it was a known issue and if someone had a fix, many users had similar issues, but not the same, the suggestions were the same: Check the power source voltage and the SD Card. I’ve started by downloading the other distros and flashing them on different cards, without success on the Pi, I was still having the strange issue. Then I decided to get a multimeter to check the voltage of the board, when I checked the board voltage it was great, so it means it wasn’t the power source causing the issue. All I got was to acknowledge that I got a faulty unit.

I inserted the Raspberry Pi back into its case and gently stored it into the drawer were I put all the electronics that stopped working, which currently contains only my first laptop (that ThinkPad with Linux) and my Galaxy S. I care a lot about all my electronics, even after they are “dead”, that’s why I never sold, or trashed any of them, which means I almost have a museum here in my room, with all the devices I ever owned.

I’m curious to know what will be the next thing that will get me as excited as the Raspberry Pi did. Computers, they aren’t fun to play with anymore, and the Raspberry Pi changed this. The mobile world that always excited me, since the day I got my Palm, is no longer that exciting. So what’s next?

I don’t think I’ll be buying another Raspberry Pi, probably not. All the excitement extinguished today.

Updats: Looks like I’m not alone


The Linux GUI Development Nightmare

For about 2 weeks I’ve been having some fun with Linux development, mainly using Ruby to build command-line applications. My decisions, to create command-line applications using Ruby instead of GUI applications, were made because of a simple factor: GUI development for Linux is a nightmare, since there isn’t at least one good GUI prototyping tool available to help you design your UI without having to do everything manually.

First I tried Glade which is just a nightmare. It’s extremely complicated to deal with and you have no clue about which control you should use or how to arrange things, and most importantly there’s not a lot of tutorials and documentation for new users to learn how to use it, and how to integrate with other languages.

Then I was told that Qt Creator was an awesome thing, so I decided to give it a try. I’ve created a new test project and selected the Qt Quick option so I could use QML, which is a lot better for a developer with Javascript background like me. One of the things that made me like this was the amount of good documentation and tutorials.

When I started playing with the Designer one of the first things that I noticed was the lack of simple controls like Buttons, this was pretty strange and I thought I haven’t installed all the things needed, but when I searched for it I got this tutorial from Qt itself, which explains how to create a button in QML (from scratch!!). QML is one of the most awesome things I ever seen to build the GUI logic, it’s simple and flexible, the problem is that there isn’t any kind of controls to create real world desktop applications with it.

After that I took a look at wxWidgets, which lacks good documentation and a decent GUI designer. Then after all this horrible nightmare I thought about creating all my UIs using HTML5 and wrapping everything around a GTK WebKit window, but I don’t think this is a good approach since my apps would look like an alien to the system.

Where are the Delphis of modern computing? I remember how easy it was to design UIs using Delphi and with a right-click on the control you could easily attach an event to it’s logic. It’s this kind of IDE that I’m expecting, one that focus on the fact that you don’t need to struggle to create a UI, but instead that you should be able to create the UI fast and easily enough, so you can focus on the most important thing that is your application logic.

Linux is a awesome OS, I’ve been using it since 2007, and it needs/deserves better tools to create awesome GUI applications, this is one of the reasons that developers aren’t porting their apps to Linux. On Mac OS X we have the awesome Xcode that includes a incredibly awesome GUI designer, and on the Windows side we have Visual Studio with a designer that is the best one in my opinion, since it’s easy, flexible, and powerful. Isn’t this the perfect time for a great Linux GUI designer?


The Raspberry Pi Will Bring Fun To Computers Again

I was browsing the Raspberry Pi forums these days and I came across a very interesting thread titled PC’s Are Boring. I read all the posts until that moment and started reflecting about that statement. The thread starter was completely right about this, PC’s (which I understand for computers that run Windows or Linux, excluding Macs) are really boring, that’s why the mobile industry is so amazing these days, because people stopped changing their computers every ½ years and started changing their mobiles.

A lot of the users on the forum were talking about “the old times” of the Commodore and Atari when you felt like you had power over the machine and today you’re just part of a mainstream movement. Also they were talking about how “normal people” are discouraged to program because are afraid they can break the computer (which isn’t true of course, but that’s what the average user thinks) and how the price of the Raspberry Pi could help people to get into Linux or programming. They are completely right, as soon as the Pi comes out a lot of programmers are going to rush to get their hands on one (I am very excited to get my hands on one too) and possibly a lot of people that want to start programming will get it too.

The RPi will make the feeling of having power over the machine come back again. The best example I can give is my own. I’ve never been so excited for a “computer” since the first dual cores came out, I’m thinking about the awesome things that I could do with it like: Making my own Linux-powered tablet (which is completely possible), porting new Linux distros to it, porting other OSes to it and even making my own distro only for the Raspberry Pi.

I’m sure all the geeks are very excited waiting for the release and wondering all they could do as soon as they get their hands on it. Leave a comment below with your opinion or ideas. If you want to keep in touch to the latest news about the board just visit their blog and don’t forget to contribute on the forums.