Raspberry Alpha Omega

Raspberry Pi from start to finish

Jan 11, 2013 - 1 minute read

Setting a default git remote

This bit me again today, so I thought I'd look it up and write it down here so I can find it.

When you create a git repository using git clone, git very helpfully sets up a default remote repository and branch for you, pointing back at the originating repository. This is helpful, because it means you can use the short forms of git fetch, git pull, and git push.

Jan 10, 2013 - 6 minute read

Data representation - squashing Morse code

I'll say at the start that there's no real reason to do this. The Raspberry Pi has far more memory than any little bare-metal program is ever likely to use. However, this just struck me as a bit of fun, and arguably instructive in thinking about data representations.

Last Time I wrote about Charles Moore, I linked to his colorforth.com web site. While poking around that site I found several things of interest, some of which I plan to blog about here. For now, though, what struck me was the way he chose to store word names compressed in single 32-bit values:

Jan 9, 2013 - 4 minute read

Communication, Doors and Crates

A few days ago I wrote about looking for metaphors to get to grips with what happens when a computer appears to be doing multiple things for multiple people at one time. The outcome was some ideas based on the physical metaphor of a house I lived in while studying at university. At that point I was still pondering possible meanings for the term "communication-oriented" which I had plucked out of thin air all those years ago. After a bit more thinking, I reckon I might have the beginnings of what this might turn out to be.

Jan 8, 2013 - 4 minute read

Ruby and Sinatra on the Raspberry Pi

I am interested in all sorts of software development and related areas. In particular I do a lot of Java and Ruby development, both for my day job and for fun. Once a month I try to get along to IPRUG, our local Ruby user group and meet up with other Ruby software folks for chat, drinks, presentations, hacking and the general exchange of ideas. The current organiser of the group was asking for volunteers to present at upcoming meetings, and in a rush of blood to the head I raised my hand to do a presentation on the Raspberry Pi.

Jan 7, 2013 - 2 minute read

Oh Brother UART thou?

A relatively quick post today. I started back at work after the Christmas break, and I wanted to take my little Pi in to show my colleagues some of the things I have been playing with during the holidays. Last night, while I was getting my stuff ready I though I'd have one more try at getting the Prolific PL203 USB to mini-UART cable working. This time I tried it on a different computer - a laptop which I had never connected it to before. I started by downloading and installing the recommended driver before I plugged the cable in. I stuck my Linux SD Card into the Pi; connected the HDMI to the monitor so I could see what was going on; connected the Pi end of the cable to the right pins; and finally plugged in the USB end of the cable to the PC.

Jan 6, 2013 - 7 minute read

What is a "high level language"?

When I was first learning about computer science in the early 1980s, much was made of the difference between "low-level" and "high level" languages. Back then, it seemed as if the distinction was fairly clear:

  • "low level" languages are languages which require you to understand the mechanics of how a computer works, and tell it every little step..
  • "high level" languages give you the ability to write programs using concepts from maths (variables, expressions, sets and so on) and from computer science (loops, functions, recursion etc..)

By these rules, considering the languages of the times, machine code, assembly language (and pseudo-assembly-languages such as CESIL and MIX) are "low level", and pretty much everything else (FORTRAN, APL, COBOL, CORAL, ALGOL, BASIC, Pascal and so on) is "high level"

Jan 5, 2013 - 1 minute read

I just noticed a new crop of Raspberries

I was just browsing around the Raspberry Pi area of farnell.com and saw that the new crop of Raspberries have 512MB of RAM. This is twice the amount in my original "Model B" (and theoretically four times the amount in the "Model A"). I can't see why anyone would want the Model A - have any ever been sold? My trusty old board is looking a bit long in the tooth now. It doesn't even have the holes for screw mounting, so it rattles about in its little box. I know I don't really need another one, but it is so tempting.

Jan 4, 2013 - 4 minute read

I now have a screen, but can I use it?

Over the Christmas break I visited my mother. She had become fed up with her old TV, and wanted a new, larger one with a built-in DVD player. We went for a shopping trip and I helped her choose one she liked. I set it all up and it it seemed to do the job, so the old one (a 20-inch HDMI flat screen) was now surplus to requirements. As you can imagine, it was not surplus for long! I proudly brought it home and now have an HDMI screen I can use just for my little Pi.

Jan 3, 2013 - 6 minute read

Operating System metaphors: Rooms and Doors

I am a big believer in the power of metaphor and analogy in software development. While these things can certainly be misused, they are also a useful way of viewing a design from different perspectives to gain fresh insight. Some metaphors are so common that we even lose sight of the fact that they are metaphors at all. As I sit here at my computer I'm pretty sure that the "mouse" is not a mouse, and all those "files" , "folders" and "windows" on the "desktop" are not what they claim either.

Jan 2, 2013 - 7 minute read

Raspberry Pi with Ham

Introduction

A few days ago I was suffering the lack of output from a bare-metal Raspberry Pi - very little as output to hint what is going on inside the electronics. I had struggled through the first few "Baking Pi" tutorials and got as far as programming the GPIO to switch the "OK" LED on and off. Despite the fiddliness of the assembly language programming, it was delightful to see at least some sort of activity. After failing to connect a serial UART cable, for usable output, I decided to progress with my operating system experimentation using just the OK LED.