The Raspberry Pi: What it is and why it will make a difference

I’ve met the Raspberry Pi project around three months ago, and immediately fell in love for its concept and idea: to build a extremely cheap Linux box that could be used to teach children the world of programming, Linux and even open source in general. But when I first knew about this project (it was on Slashdot if I remember correctly), me and lots of other people were skeptical about it, specially because of the aim price (USD $25/18,5€), because of the size of the prototype board (the first one presented was no big than a USB flash drive, and in fact, was smaller than many of them), and because their website consisted of a single page with an image of that prototype board and a few technical details; it also said the Raspberry Pi Foundation was a charity (non-profit).

I forgot about the project for a few weeks: like many other people, I thought this was no more than vaporware. Later, when I visited their website again, I found it to be much more complete, and it already had some more information and more facts had been confirmed. From then on, I began to check the website much more frequently and, currently, the Raspberry Pi doesn’t look like vaporware anymore: there are alpha boards built that have been distributed to various people doing software work on them, and the project staff has ran demos of the Alpha boards at many meetings. The Raspberry Pi was and continues to be responsible by news articles, sometimes front-page articles, on many technology sites. They also shown on UK television and radio. All this, and they haven’t released a final product to the market yet!

So what is the Raspberry Pi, in conclusion? It’s a extremely cheap, cheaper than many books, embedded Linux board. At launch, there will be two models: A and B. The model B has better features than the A, they will cost $35 and $25 respectively. Behind the project there’s a charity with the same name, the UK-based Raspberry Pi Foundation.

Both models feature an ARM11 Broadcom CPU clocked at 700MHz and a GPU capable of drawing Full HD H.264 videos at 30fps, and supporting OpenGL ES 2.0; a SD/MMC/SDIO card slot from which the OS will boot. For video output, the Pi has both an HDMI connector and a good old composite video connector, which means the Pi will be able to display not only on a modern LCD with HDMI connectors, but also on older TV sets and displays that feature composite video input(s). The RAM varies according to each model, and is presented stacked on top of the CPU (PoP configuration). Both models have some GPIO (General Purpose Input/Output) pins, although nowhere as many as things like the Arduino.

As for power supply, the Raspberry Pi will ask for a 5V input, and it should run off 4 AA cells. It will use a micro-USB connector for power supply, but note that it doesn’t act as a USB client device (it only draws power from micro-USB, no data). The energy consumption of the board is also incredibly low, and I believe it is lower than the consumption of many devices in standby mode.

The publicly shown Raspberry Pi Alpha board

The publicly shown Raspberry Pi Alpha board

Model A will only have 1 USB port, no ethernet and 128MB of RAM, whereas the model B will feature 2 USB ports, an ethernet jack and 256MB RAM. The final PCB design has been released, after lots of work doing the routing of the tracks of the PCB to ensure the maximum efficiency of the Raspberry Pi; the board will have the same area as a credit card (it’s amazing how could they fit all the connectors in such a small size board).

Oh, and I forgot to say: the Pi also has a 3.5 mm jack audio output; combine this with the small form factor of the board, some portable power supply and buttons connected to the GPIO, and there you have a very powerful MP3 player that also turns into a full-featured PC when you connect a display, keyboard and mice to its USB port(s). Or you could bring a touchscreen and make your very own Android/Ubuntu/whatever Linux tablet!

The circuit scheme of the final boardThe circuit scheme of the final board

As for the software, the board is designed to run ARM Linux distros, but people are already planning on porting other lightweight OS – don’t expect Windows in any way though as a) this device is simply too open-source for Microsoft’s mind and b) There’s not enough RAM to run Windows 8 in any way. Plus, WINE and other Windows abstraction layer software will not work, as these are not designed for ARM. Apart from these limitations (that most certainly don’t affect you unless you were expecting to make a hardcore gaming machine out of it), the Pi will do, better or worse, practically everything you do with a PC: web browsing, email, word processing, spreadsheet, instant messaging… for more advanced users, this is also a perfect server, either for serving files on USB drives, or hosting websites. For those (of any age!) willing to learn (embedded) software development, this is also the perfect device – specially because it’s cheap as hell, when compared to things like the successful Beagleboard.

I guess that we only need to allow time for humans to develop uses for the Raspberry Pi, and some of them will drive our minds crazy I’m sure. Enough presenting the Pi, if you want to know more you can do research…

Why I think the Pi will make a difference

You already saw what the Pi is from my quite long introduction above. I won’t say this is a revolutionary device, that will change the way we see technology. I won’t say that this is going to cause an impact as big as the iPhone caused on mobile phones or as the iPod on digital music, either, specially because a) the Pi doesn’t have an Apple on the back, b) the iPhone/iPod weren’t news either, since things like them already existed before; that fruit company only made them friendly to the masses (and credit to them for that).

Other thing that makes me think the Pi won’t reach the intended audience so fast as some expect is it’s appearance. I don’t want to make more analogies with Apple’s devices, but please allow for just another one: smartphones existed well before the iPhone, and I have an HTC phone from 2005 that did more (has 3G connectivity, for example) than the first iPhone, that was launched much later. Then why didn’t the older smartphones make much success? I don’t think expensive is the problem, but their look: most of them look ugly, to the masses at least, something the iPhone did better (just like with most recent Apple products).

Stopping with Apple analogies (I promise!)… the Pi is an innovative product by its size, its price and its main objective. If enough people know about it, it will suppress many markets, such as the thin clients one. From my point of view, this is the most cheap and minimal mini-ITX you can get, with the detail it doesn’t run Windows, but that is a matter of getting the world used to Linux. Due to its small power supply requirements and the cheap price, it will also bring computing where it is very rare nowadays, enabling people in development countries to have their first PC (or PED – personal embedded device 🙂 ). If we find a way to cheaply connect the Pi to the internet no matter where one is, it is even better, because people that have gain access to the ‘net and to who we teach how to use it, will eventually become better informed people.

In other words, this is a bit like the OLPC project, except that, at least in my honest opinion, and based on what I know from the OLPC project (which might not be accurate), it is being done with much more responsibility and a true knowledge of the requirements of the target audience. It also uses emerging technologies such as Linux for the ARM architecture, contributing to the evolution of the open source universe. But still, I don’t want to say the Pi is the perfect device: the Universe doesn’t allow perfect things to be made, duh. So, not being the perfect device, there’s always space for improvement, specially because one size doesn’t always fit all, and people will always one to thinker with a Pi to make them more like their own definition of “perfect”.

Other important difference in comparison with the OLPC project is that it isn’t just for children: indeed, the first batch of 10000 Raspberry Pies will be more targeted at developers and hackers (that doesn’t mean some “hackers” aren’t as young as me…), however and unlike was wrongly stated in many news, any person can buy it. Detail: I’m not yet sure if the first batch will be sold as a buy-one-donate-another project, making you pay for two Pis whereas you’ll only receive one, having the other going to charity. Please enlighten me on this subject!

The defects of the Raspberry Pi

As I said, this isn’t the perfect thing, and I think it’s important to point out its defects and limitations, because only this way we can improve on them. So, here are the things that according to my thoughts are yet to be solved or better discussed:

  • Peripherals: the Pi can be considered nothing more than a PC’s motherboard; it still needs you to have all the peripherals, from keyboards, mice, SD cards, and specially, a screen where to show things. The screen is the most expensive part, if you assume people can’t use an existing screen because of e.g. the lack of one.
  • Power supply: well, this is a “defect” that comes with every device, so I’m not considering it as a defect, but more of a “thing to discuss” – and many people are already discussing it, fortunately. Even if the Pi consumes such little power that it can run of standard AA cells, the things you’re going to connect to it won’t. And being the Pi basically just what a motherboard is to the PC, it’s pretty useless without some input/output devices – and these will consume much more power than the Pi. Well, we can assume you only connect a four-line character cell display to it, and a USB keyboard for input, and then use the display to show four lines of Linux shell – not very practical, obviously.
  • Memory/CPU specifications: As I said above, it’s not going to run the traditional Windows, nor a recent Firefox on Linux, at least until they stop making memory-hungry Firefoxes. It’s all a matter of studying the capabilities of the device and see if it applies for your project. I think the low specifications of the board also have a positive point: It will teach the young developers how to make apps that don’t use 1GB of RAM after half an hour of use, thus teaching these developers how to manage the system resources.
  • The case: it’s known that the Pi will ship without case. There will be cases available on the online store of Raspberry Pi, but of course these cost some money, increasing the price of the device if you must have a case. Of course, we can’t see just the negative part of this: the lack of a case opens people’s mind to creativity and curiosity, making them poke inside the Pi. If it breaks… well, if you have enough money to buy another, that’s not a problem. However, if we want to incentive children to learn programming with the Pi, it must be made somewhat attractive.

Finished! This is my long essay on the Raspberry Pi… please correct me if you find any errors on the facts presented here, and take the opportunity to express your own opinion by dropping a line on the comments. Oh, and of course don’t forget to visit the official Raspberry Pi website for more amusement! 😉

Now running with nginx!

I was really fed up with Apache on this server. It would use huge amounts of RAM, even after all the visitors left the website. Having done all tweaks to the memory usage of Apache and PHP, the amount of RAM used would never get below 450MB (out of the 512MB this VPS has). Hell, Apache was consuming even more memory than MySQL!

For those who don’t know, nginx is an alternative, lightweight webserver which is generally used (by many popular websites) as a load balancer. However, it can also act as the single web server on a system, like what Apache and Lighttpd do. I had worked with nginx before on some small websites on low-resource servers, and I was quite satisfied with it. As I explained with an earlier blog post, nginx is great as long as the website you want to serve with it does work with nginx – that is, doesn’t heavily depend on Apache rules or some Apache-specific thing. Sure, those rules can be converted to nginx config options, but I never succeeded on making eyeOS 1.x work fully with nginx.

WordPress is one of the scripts that works best with nginx. Since this website is mainly powered by nginx (although I have some custom scripts laying around, mainly the scripts providing alternative WiiMC internet media), I made my mind and decided I would go through the hassle of switching from Apache to nginx. It wasn’t a big hassle after all: apart from having to restart the server at some point due to a RAM outage, the website wasn’t offline much time, and there was no data loss.

After putting Apache off-use and starting nginx, the server was still using 300MB of RAM. I though nginx couldn’t be using so much RAM, and there was another problem laying around. Turns out to be a problem in MySQL config: I don’t need InnoDB functionality, so usually I add a “skip-innodb” line to my.cnf. The problem was, this line needs to be added under the [mysqld] section and in my case, it was somewhere else. So I moved skip-innodb to the right place, restarted MySQLd, and that’s it:

The server is now using 240MB of RAM, which still fits inside the dedicated RAM (256MB), so I’m not taking any of the burst RAM, which resides in the server swap space. The RAM usage is still high, because I have other things running such as dovecot for mail delivery.

It also looks faster to load pages, but probably someone with a faster connection than me will notice a bigger difference.

ReactOS: will they ever get somewhere?

For those who may not know, ReactOS is an operating system that “aims to follow the Windows-NT® architecture designed by Microsoft from the hardware level right through to the application level”. By other words,  the idea is to provide Windows XP-level compatibility with software and hardware.

Looks like a neat idea? Yes, indeed. An “open source Windows” system would has lots of applications, for example, in situations where demand for using open source software and common standards, instead of proprietary solutions, exists (like what happens, in theory, on some country governments).

Why it doesn’t work right? Well, nobody can say the project has been abandoned. It’s progressing, but very slow. I can’t blame the developers for the slowness: the task they’re doing is hard, and there aren’t many developers devoted to the project.

The latest version was released on March 2011, and it was just a tiny improvement over all that’s still missing. My only concern is, when they get a Windows XP compatibility that is good enough, won’t be XP as obsolete as Windows 95 is now? At the end, Windows XP is already more than 10 years old, and even some of the most recent software by its creator, Microsoft, doesn’t work on XP (e.g. IE 9 or the latest Live Messenger).

And another thing: if ReactOS gets noticed enough, won’t Microsoft try to squash them and send some juridical flames regarding e.g. stupid patents? Or even reverse engineering, although I don’t think they can be legitimately accused of doing it? Note that these questions may also apply for WINE and similar software, but up to now, it looks like they have been safe from Microsoft’s hammer.

Ubuntu updates are killing me

OK, not really. But I thought it’d be a great title for this post.

This is a personal opinion/story post and won’t help you much if you came here from a search result page, while looking for a solution for a problem on your Ubuntu installation. If that’s your case, don’t waste more time reading this post, as probably it won’t help you (but you might find your situation similar).

For those who don’t know, I use Ubuntu on my main desktop as the main OS. Yes, I know how to work with Microsoft Windows, but I don’t use it much at home.

The problem in my case, I think, comes in part from having a lot of packages installed due to the fact that I have both Gnome and KDE installed, although I never use KDE nor its apps. Sometimes, some conflicts with the package updates appear, specially because I have packages from PPAs and other unofficial repositories.

Since the release of Ubuntu 11.04, which I won’t update my PC to too soon, Ubuntu updates manager keeps bothering me about a “partial update”, that basically would just update my Ubuntu 10.10 install to a semi 11.04, something I don’t want. I hate these package updates. I know it won’t install Unity and set it as default Desktop Environment, but still, I don’t want to have a half-10.10-half-10.04 Ubuntu specially when such updates will delete for sure certain “mods” I did to my install like the custom bootsplash, the mintmenu (yes, it was on the list of packages to remove with the partial update), and the custom repositories and PPAs (now you know why I put “mods” between quotes, it’s because these really aren’t mods).

Well, I ended up doing the “partial update”. I lost the Linux Mint menu, obviously, but not the bootsplash. Now you ask, if I was so bothered about updating, why did I proceed? Because I eventually know I’ll switch to another Linux distro soon.

Fedora was a possibility, but since I saw the new version, it’s out of the list. Reason: it brings Gnome 3 and it’s basically a copy of Unity, so now I’m hating both of them: Unity for being a copy of Gnome 2 with flashy effects, a dock, and other MS-Windows-7-style “innovations” that would make sense in a tablet or mobile phone, or even an interactive coffee table, but that I hate having on my desktop –  it’s just not productive; and Gnome 3 for being a copy of Unity – or is Unity a copy of Gnome 3? Doesn’t matter: I find either of them unproductive and too eyecandy, to not say that I need two or more clicks to perform an action that on Gnome 2 I do with one click: for example, switching from one window to another (fortunately, they have kept Alt+Tab!).

Seeing as I’m very exigent with the Desktop Environment of the distro I use, perhaps I’ll just stick with this Ubuntu and its malfunctioning updates… well, if I weren’t lazy, I have the knowledge to fix it, but it’s simply too much work, I repeat, I’m lazy…

Ubuntu 11.04 – But is it Ubuntu or MacOSX?

I just took the time to download the latest version, 11.04, of Ubuntu Linux, burn a the image to a CD and boot the live CD – which is where I’m writing this from.

What I’m seeing and using really disappoints me. To simplify this post in a single line, I only need to say:

If I wanted a straight copy of Apple’s Mac OSX operating system user interface with the predominance of purple and orange, I would buy a Mac or at the very least hackintosh a PC then install a purple theme on it.

But let’s start from the beginning. The CD booted into a purple (an horrible color that Canonical keeps on choosing since version 10.04, to contrast, perhaps, with the orange of the default theme) screen with just two icons at the bottom, a keyboard and an accessibility one. This was the boot manager, who would say? – not only a single line of text. I was trying to figure out how to work with that screen (keyboard left, right, up, down, enter, escape and even tried the mouse with no success in any of these inputs) when, from nothing, the system starts booting: first the usual cursor blinking at the top left corner, then the cursor gets smaller because the resolution of the screen was increased, and the bootsplash is shown.

The bootspash keeps being very, very similar to the one used in the two previous versions of Ubuntu. A purple background with the Ubuntu in white at the very center with five white dots below, blinking into orange sequentially. One thing new in this bootspash might be, and I say “might” because I can’t remember very well the latest version’s splash, a little white glow around the Ubuntu logo.

The bootsplash doesn’t go away in the traditional way, that is, disappearing the Ubuntu logo and then appearing the login screen. First, the background fades into a purpleish image, keeping the Ubuntu logo fading even more slowly… after some time, the logo has completely vanished, a black bar at the top appears with some icons (network, clock and shutdown options), and I call it black bar, because it’s not a panel anymore, since it’s not Gnome anymore, but yes Ubiquity. Then a window appears asking me if I want to Try Ubuntu or Install Ubuntu.

I chose to Try Ubuntu: the window disappears, and the screen goes into the old white on black Linux system log (saying things about filesystems and etc.) for about a second and a half and then a black screen with the mouse cursor in the middle appears – it looks like X server had been restarted. Just a note for the guys at Canonical, this is not a really polished approach to “Try Ubuntu” option, leaving users waiting on a black screen with a mouse – if users should wait at all, but hey, I understand the CD has to be loaded sometime.

Finally, the purpleish background image appears again, the top black bar appears too, but now with more icons, some icons in the desktop appear and a kind of dock with a bunch of icons appears on the left. Get ready: this will be the base for the Ubiquity desktop. I took a screenshot, but note that this is after I was running Firefox, but it lets you have an idea of what I’m talking about:

[Image not available due to data loss, during a server change that forcibly took place on 1st December 2011. You can find images similar to the one that was here by searching for images about “ubuntu 11.04 default desktop”]

I played around a bit just to get to one conclusion: this is almost MacOSX with a dock on the left. By the way, the dock appears if you move the mouse to the top left corner of the screen, and also if you move the mouse to the complete left of the screen and let it there for some time – I hate this approach.

Ubuntu, years ago accused of trying to implement Windows UI and feel on Linux, in my opinion seems to be trying to bring MacOS UI to the Linux kernel since some versions ago – but in a much more shameless and obvious way. I don’t like Linux this way, I liked Ubuntu the way it was before: with Gnome and the windows closing, maximizing and minimizing icons on the right and not on the left. So, I’m sticking with Ubuntu 10.10 for now, and when it gets too outdated, I’ll switch to some distro with Gnome (even KDE is better for me than Ubiquity, even if I don’t like KDE as much as Gnome).

It seems my Ubuntu days are ending. In my opinion, version 11.04 of Ubuntu by Canonical was like Vista version of Windows by Microsoft: too much focus on the looks and few productivity.