The Raspberry Pi Will Bring Fun To Computers Again
dreamintech.net
dreamintech.net
This is something thats been scratching around in the my brain for a while and has driven me away from software. To me, software used to represent infinite possibilities, this blob of clay that you could sculpt into anything you wanted it to be. These days software is quick to slap your hand away when you get too close to messing with the fiddly bits.
I'm a bit more jaded than this poster, but I don't think the Pi will be able to bring the lost world back to us. Tinkering isn't what it used to be in general. Instead of popping down a product and an accompanying RFC that allows anyone to write other software to interacts with it, creators want you in their playground, doing operation they approve or nowhere near the tech at all. They're not just tight-lipped, I even see encryption to keep the tinkerer out.
My brother is a snowmobile gearhead. He used to machine a piece of metal that went somewhere in the engine. I don't really pay attention to that stuff to know the full details, but essentially modifying that piece of metal would tune something in the engine. Whatever that piece of metal controlled has now been replaced by a computer chip. It is an awesome idea, with amazing possibilities. He could set up his machine on the dyno and just sit there adjusting variables to tune and get exactly the performance he wants. Iterations between adjusting and testing is infinitely faster because he doesn't need to go do metalwork.
But thats not the way it works. He can't change the values on the chip. It has gotten orders of magnitude less work to modify, but he is physically unable to. He can bring his sled to the Bombardier dealership where there, and only there, can he tune the sled. He can't tweak values to find maximum performance. He can choose from Configuration A, Configuration B and Configuration C.
This is where software is taking the world my friends. It is why I don't tinker anymore.
There's like a whole modder community around custom fuel-injection controllers with reflashable firmware. Serious performance wonks replace the entire board -- CPU, memory, everything except for the output lines -- to the fuel injector with something they can order online. The new board has like a flash memory chip that lets you sit there with a PC and tweak variables until the engine has the performance characteristics you want.
I was approached about the feasibility of writing an Android app so these people can do the tweaks with their smartphones.
There's still tinkering going on.
The learning curve has become a bit too steep with today's modern SoC systems. You can't just wire a transistor to a parallel port and call PRINT LPT(0),128 or whatever the hell the call was. You need to write a program to call a userspace driver, or modify your kernel, or whatever else you need to enable in the platform.c file to enable the port to raise the GPIO to blah blah blah I quit.
So now his brother, if he wants to tweak a setting on his ECM, needs to understand how to hack into the module without bricking it. Then he needs the correct tools to create the new engine profile and burn it in. There's probably a hardware dongle or two involved. Does that make sense?
I'm watching my toddlers learn to play with iOS devices, wanting to let them explore yet concerned that they'll scramble or delete stuff (which they have). Better if I could say "this RPi is yours, go nuts" and guide them from playing Angry Birds (or some such attractor) into writing software, with nary a fuss about my beloved iPad. I started out with home computers being unused for "real" purposes, leaving them available for tinkering; now that they're an integral part of our culture, an accidental fork-bomb or rm -rf /. can really cause problems, and there isn't the money yet to shell out several hundred dollars per kid per tinkering inclination ... but with RPi, gimmie two (one in pink, one in camo green) and let 'em at it.
It's a computer, cool, but I think that most of the people who are looking for "fun" in computers are already finding it in things like the Arduino.
Something I will hope for is that this disrupts some hobbyist economics. Things like the IOIO board from sparkfun (plugs into android, gives you 50 GPIO pins) are still really expensive ($50).
The arduino is too...$30 for a board that doesn't have wifi or any way of connecting to a network without an external card (shield).
The real holy grail of this stuff will be an arduino or a raspi with a wifi chip in it that costs $30 or less.
These little computers are all good, but when you have to tether them to something or buy an expensive add on to make them see the rest of the world, it kindof ruins the form factor for me.
An RTOS is much more suitable if timing matters, and a language with a more predictable runtime helps as well.
it's a trick used by lisp game programmers -- there are a few games floating around the app store written in gambit scheme and they all do this to avoid gc pauses
also why tf are you running cron jobs on your robot's computer?
where i work we deploy linux robots all the time, we control the software loadout so shit like this doesn't happen
Next time start with a minimal system and build up, rather than starting with a fully-loaded system and trying to isolate and remove which of over 9000 processes kicked in to plage you with that slowdown.
PROTIP: /sbin/init can be whatever the hell you want. Symlink it to /usr/bin/emacs and you have a poor man's Lisp machine.
Oh, and uhh -- turn off swap.
One of the reasons why I left Debian was that it takes a very kitchen-sink-included approach to a base system -- including, as I found out the hard way, things with unpleasant exploitable vulnerabilities. And it's hard for a person of ordinary Unix skills, not versed in Debian arcana, to pare it back to a manageable state.
I'm an Arch man to this day for this reason.