Having my Pi

I’ve had access to this Raspberry Pi for a few weeks now and I feel compelled to post an update regarding how I’m getting on.

First off. I love this little thing. The last few weeks have been an adventure. It’s like I’m back in 5th grade when I was just getting into computers and really getting a feel for what I could do with them. Or when I was 17 and setting up a LAN complete with a ridiculous number of extrenuous servers types with my room-mates in our apartment. Back in the day when we would set up an intranet web and media server just because we didn’t have one, not because it filled any particular need.

Getting back into Linux has been the most daunting part of using the Pi. As much as I love the OS I never really understood it. I also found that Linux, for me, prompts a compulsion toward endless re-configuration. I’ve never had a Linux installation that lasted more than a few days. I just can’t help myself. I fiddle, update and configure until nothing works anymore and it’s just quicker to re-install or re-image. Because of this, and many other reasons, Linux and I parted ways some years ago and I’ve never looked back. Now here I am with a tiny little Linux box that could possibly become a big part of my job/career/life, and forgiveness is not in Linux’s nature.

So what have I done so far.

As soon as I had my Pi in hand I got a hold of a breakout cable, breadboard and some LEDs. After having already become reasonably proficient with Python I was desperate to try out the GPIO programming. Within just a few minutes I had a single LED blinking on an off. Then I plugged in two more LEDs and programmed a traffic light. Now after how ever many weeks I have upgraded to 8 LEDs and have it cycling randomly through a growing set of blinking sequences. One of which is programmable. Programming these lights became a daily kata for a while. When I took a break from a larger project I’d spend an hour programming another sequence.

I got Raspbmc set up and working across the school network. It was a challenge and while it’s functional it is unstable to say the least. It works well enough, I hope, that a teacher might be able to use it but I’m going to need to do a lot more testing first.

To date I’ve re-imaged my Pi 9 times. Three due to a suspected corrupted SD card and the rest due, mostly, to various experiments and testing that I’ve been doing.

What have I learned?

NOOBS is great but raw images are better. I’ve always found this to be the case with Linux. These one size fits all solutions that are constantly on offer are never the best solution.

Power is everything to the Pi, power it from a proper mains adaptor whenever possible. A shortage of power can result all sorts of problems, none of which are indicative of low power levels.

A 4GB SD card is not big enough. I have a 4GB card and and 8GB card. As soon as I get the OS up and running on the 4GB I’m immediately up against the wall space wise. Using the raw image really helps as the NOOBS image isn’t taking up space somewhere but it’s not enough. As soon as I install a larger package, such as Open Office, I find myself running out of space. On the 8GB card, I have NOOBS and to distros installed and space hasn’t become an issue yet.

Where do I go from here?

I’m trying to keep the purchases to a minimum being that is isn’t actually my Pi, so most of my planned projects are software based. I’m going to eventually purchase my own Pi at which point

My compulsion towards configuration is greatly eased by the compactness of Raspbian. Re-imaging is now a ten minute process where as before it could be hours.

The ICT department and I are looking at starting an after school club called Raspberry Jam. Where we’re going to test out some of the new curriculum stuff for next year on the attendees. If things go well then we’re going to embark on a project, perhaps involving a quadracopter.

Learning new skills

A wise man once told me and a classroom full of university students that we needed to take responsibility for our own learning.

At the time I thought that it was just his way of encouraging self motivation in our studies. We were all HND students and that bit of advice was preceded by reminding us that as HND students we should all know a little something about failure. He wasn’t trying to be mean, well not malicious, he was trying to remind us that the HND was a second chance and we shouldn’t blow it. He was also trying to be funny in his own very dry zany¬†way.

Over the years I’ve slowly come to realise what he was really trying to tell me.

While working on a particularly challenging project written in a language I’m only still learning, on a platform I know nothing about and using an entirely new set of tools on which I’ve only been very very briefly trained, I came across a comment in a developers forum made by one of the many programming wizards that seem to frequent those forums. After giving his answer he wrote that ‘being a good developer is all about figuring stuff out. You search and experiment and ask questions or you’ll never learn anything.’ I’m summarising because I can’t find the original quote.

After I read this I thought about my time as a developer and exactly how correct this statement was. Not just in development but in working life.

My first year as a student I joined in with the other students in complaining about having been asked to do things about which I hadn’t been taught. It was an infuriating situation to be in, I didn’t feel like I was getting the support that I needed and I didn’t think it was fair. As it happens eventually taught myself what I needed to know anyway and just got on with it but all the frustration was needless and counter-productive. My second year I took a different approach and tried to be more proactive. After all this was obviously a fault with the school/teachers and I couldn’t change it so instead I was going to be more proactive and less whiney about it. Consequently my second went much smoother and I did a lot better, while it wasn’t any less stressful it was easier. My third year presented a whole new set of challenges but my attitude remained the same and I got through it alright in the end.

Now I’m here on placement and I again found myself in the position where I’m being asked to do things that I’ve not been taught and don’t feel ready for. As the work piles on and the pressure builds I was feeling increasingly under qualified and frustrated.

During a conversation with a former teacher of mine I mentioned that I didn’t know what I would have done without his help to which he replied in his uniquely ‘matter of fact’ manner. “You would have gone somewhere else.”

One of the most irritating things I hear people in the professional world says ‘I’ve not been trained on this’. It’s always annoyed me and I’ve only just come to realise why. It’s no different to a bunch of university students complaining to their teachers that they’ve not been taught something.

Taking responsibility for your own learning doesn’t mean that you should be a self starter and a go getter. It means that no one is going to hold your hand in the working world, or any world outside of high school for that matter, nor should they. Sure you might get the occasional single day training packing of questionable quality on certain things but ultimately you’re on your own in most aspects of your job and if you’re not, enjoy it because soon you will be. If you haven’t been trained, or taught, do it yourself. The resources are out there, if you can’t find them ask for help, if no one can help just figure it out yourself. You’d be surprise what you can learn by just taking a stab at it.

I look back at my first year at university and I cringe at the thought of having sat there moaning to the award leader about not having been taught MS access. All that wasted time and negativity could have been put to much better use.

Recently, I’ve been tasked to help with training some of the staff on Python. I don’t know Python or anything about it. So instead of complaining that I’ve not been trained I’m spending a that time learning it. If I need resources, I find them, if I can’t find them I find someone who can. Only a week later and I’m getting on great, I’m learning all sorts things about programming languages, so much so that I’m having a hard time picking which material to cover in my training.

So thank you Dave for your inspirational word, sorry it took so long. And thank you Trev for your help and guidance. I finally get it.