Settings

Theme

Those Gray Beard Hackers And Their Tall Stories

jacquesmattheij.com

55 points by ptn 15 years ago · 27 comments

Reader

JonnieCache 15 years ago

Are you a novice programmer who feels regretful that they are spoiled by the modern world of programming? Confused by your own nostalgia for a time years before you were born? Want to relive the glory days of bliknenlichten, mainframes of solid gold and necks of solid beard, from the comfort of your own home?

Well then you'll love the world of Microcontroller Programming!

You too can spend weeks optimising your opcodes to squeeze them into mere bytes of memory! You'll need the rest of the 8kb available for lookup tables, because your processor is only running at 8mhz!

You too can dream of a 'debugger' as you write and decode your own LED blink sequences!

You too can draw your graphics by timing your own NTSC scanlines!

You too can almost burn your house down using a soldering iron while sleep deprived!

You too can almost lose your mind when you find out that the reason your program isn't working is because your resistors have heated up by one degree since you wrote the code!

It's fun, the tooling to write the code can be as modern as you like, and the community is great.

It isn't as hard as it can be made to sound, precisely because the constraints quickly force you to think small. When you're only trying to make a device for automatically traumatising your cat, the constraints only pose as much of a problem as the much looser constraints you might encounter solving a larger problem with more powerful tools, say, running a website. So the learning curve isn't that steep if you're already a programmer.

http://arduino.cc

http://hackaday.com

http://electronics.stackexchange.com

And if that's still too sissy for you then just build stuff entirely in 555 timers: http://hackaday.com/2011/02/24/555-video-game/

  • timclark 15 years ago

    Bah humbug! Now I feel like a greybeard - all this arduino stuff is spoiling you. Some of the microcontrollers I used to use only gave you 4 bits to your byte, try telling that to youngsters nowadays!

    I had one of the most entertaining hours of my university career in a lecture entitles 101 uses for a 555 timer, it should have been subtitled how to use and totally abuse a 555 timer.

    • JonnieCache 15 years ago

      >4 bits to your byte

      Did that used to be called a 'nibble' or am I making that up?

      • sp332 15 years ago

        https://secure.wikimedia.org/wikipedia/en/wiki/Byte#History

        Time was, a byte could be anywhere from 4 to 12 bits, depending on the architecture. A "nybble" is half a "byte".

        • CountHackulus 15 years ago

          7 bit bytes were an interesting time. Thank god the System 360 came around and decided to start standardizing things.

          • JonnieCache 15 years ago

            I wonder how long it will be before I'm going around saying "In my day, our bits could only be in one of two states!"

            Maybe my kids say things like "We had to wait until our methods had been called before we calculated our return values! We couldn't rely on Just-In-Time-Reverse-Causality-Compilation to optimize our code! Get off my hyperlawn!"

            • lutorm 15 years ago

              Isn't a bit (BInary digiT) by definition in one of two states? Otherwise it would be a "tet" or a "quat"... ;-)

              • JonnieCache 15 years ago

                I was actually referring to the qubits of quantum computers, which can be zero, one, or in a superposition of both zero and one. Or something.

    • Florin_Andrei 15 years ago

      Pffft. Real men just implement everything in NAND gates.

    • mseebach 15 years ago

      What? Your microcontrollers had bytes?

      (I'm just gonna end the joke there. This isn't going anywhere good.)

  • rogerallen 15 years ago

    this greybeard is looking forward to going retro videogame mad with gameduino.

    http://excamera.com/sphinx/gameduino/

    • JonnieCache 15 years ago

      Me too. I see he has done well with his kickstarter project.

      What on earth is he going to do with >$26,000? It doesn't cost that much to produce and ship the promised goodies to the backers, and it's not like he's going to need to spend a lot on marketing the thing. I guess he could just pay his living expenses for a bit while he works on it.

      What's the general etiquette/precedent on kickstarter when someone receives backing vastly in excess of their goal? Is it acceptable to just plough the cash into whatever you want?

      • noonespecial 15 years ago

        The etiquette is that you keep your promises to everyone who donated. This can be harder than it seems. There are some things that you can build 100 of for $5000 in a timely manner that you just can't build 1000 of for $50000 without a much larger lead time and a very different skill set.

        • JonnieCache 15 years ago

          In this case, he is simply (I realise that this isn't actually simple) shipping out PCBs in antistatic bags to hackers, so he should be in a good position. I imagine that scales fairly well. Apparently the documentation is already done too.

          If you are sensible choosing who you go to, there are many shops in china who can pretty much do the whole job for you.

          There are even a couple of startups who act as intermediaries between manufacturers and hackers who have produced boards like this that they want to sell in small to medium runs, but I can't seem to remember their names.

          • noonespecial 15 years ago

            If you are sensible choosing who you go to, there are many shops in china who can pretty much do the whole job for you.

            That's the skill set of which I speak. Getting a shop in China to actually produce a working product for you should be a major of its own at MIT.

      • rogerallen 15 years ago

        That is just sweet, sweet profit for him as far as I'm concerned. As long as I get my product, I'm happy. He can spend it on hookers & blow if he wants. :^)

        But, then again I'm a first-time kickstarter user, so perhaps greybeards from there have a different opinion.

  • HeyLaughingBoy 15 years ago

    the constraints quickly force you to think small

    That only works if you're building stuff for yourself. And then only if it's for a hobby. Otherwise you find yourself trying to (e.g.,) stuff a complex and somewhat safety-critical(1) control loop with 16-bit fixed-point division implemented in assembler into a processor with 1200 bytes of memory.

    (1) phone calls from the irritated client that your design caught fire and would have burned down his lab if he hadn't noticed the smoke at 5PM are generally not a good thing...

cpr 15 years ago

Ah, memories. (Though I assiduously keep my beard off the lower reaches of my neck.)

I did start programming back in the days of punched cards/early timesharing on IBM mainframes (late 70's), but my first microprocessor experience was at a laser-printer start-up (TeX project spinoff from Stanford, Imagen), so we had the luxury of using the Sun-1 boards (the boards that Andy Bechtolsteim designed for use at Stanford, and which were the basis of the first Sun Micro workstations, the first Cisco routers, and the first Imagen image processors).

The Sun-1 boards had 68000 processors (no VM) with dual UART chip, so we actually could attach a terminal and interact with our primitive software that way (both for download & debugging). I had to write a real-time OS from scratch in our case, since we didn't couldn't really use the huge galumphing BSD Unix port that Sun was producing for future release.

Memories...

amadiver 15 years ago

I expect to burn some karma for this, but there's another extant pocket of optimization driven development: banner ads. If there is such a thing as a "good" banner ad, I'm referring to those (unobtrusive, non-autoexpanding, subtle animations resulting from interaction [no seizure-inducing manic blinking]). Good banner ads use almost no bandwidth (15k-40k) and go easy on the user's processor. They are built for big companies who care about their reputation and trafficked by platforms that respect the user.

I don't get to build as many of them as I once did, but they're incredibly fun little puzzles to solve. Cramming largish photographs, animation, copy (including fonts, which usually result in the bulk of filesize), and animation into such a tiny package is no small feat, and requires a lot of time (the productivity tradeoff Jacques referred to) and tons of little optimization tricks you need to spend a few years collecting and perfecting, like:

* becoming a vector artist. Sometimes its necessary to have a partially transparent image, which means 32 bit PNGs, which are super expensive. Flash allows you to create vector masks (vector illustrations are incredibly size efficient), which means you can use a PNG-8 or JPG and mask out the areas that need to be transparent. Which means getting really good, and fast, at tracing outlines. The next level being

* learning how to do photo-realistic illustrations. In the old days of 12k for a banner, I did a lot of car banners, which meant a lot of car illustrations that needed to look exactly like the photos. Even then, you'd have to reuse your assets a lot, in creative ways, in order to make the filesize. (Like using a tire illustration for the windshield [by scaling and masking]).

* writing really tight code. In the early days, our basic animation engines were a few KB, but you could rewrite your own using only the chunks of code you needed, and save a few K. My newest library is about 800 bytes and is powerful enough to use on most of my banners.

* learning that people really aren't as detail oriented as you might think, and blurs, rotations, tints, and speed are usually all the tools you need to make a convincing animation

  • Tyr42 15 years ago

    That's quite interesting. Now whenever I see a banner ad I will involuntarily start thinking about this.

Locke1689 15 years ago

Meh. Modern programmers get to say: "You were programming for one processor back then instead of 100 in a shared execution environment? Ha!"

okdork 15 years ago

Anybody else think its weird his posts are continually on the homepage?

  • rgoddard 15 years ago

    Not at all, given that he was an active member and prolific member of HN and now that he has taken a break from HN he has all this free time to just write.

  • Shamiq 15 years ago

    It's his way of staying active in the community without having to constantly check threads for replies. A fun optimization, if you ask me :)

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection