

Those Gray Beard Hackers And Their Tall Stories - ptn
http://jacquesmattheij.com/Those+Gray+Beard+Hackers+And+Their+Tall+Stories

======
JonnieCache
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
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
_> 4 bits to your byte_

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

~~~
sp332
<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
7 bit bytes were an interesting time. Thank god the System 360 came around and
decided to start standardizing things.

~~~
JonnieCache
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
Isn't a bit (BInary digiT) _by definition_ in one of two states? Otherwise it
would be a "tet" or a "quat"... ;-)

~~~
JonnieCache
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.

------
cpr
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
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
That's quite interesting. Now whenever I see a banner ad I will involuntarily
start thinking about this.

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

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

~~~
rgoddard
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.

~~~
GeneralMaximus
Besides, this is some high quality stuff. This is _real_ hacker news.

