Enginursday - Three Childhood Mysteries Electrical Engineering Solved for Me


When I was a kid I was (in retrospect, unsurprisingly) a “why/how” kid. That’s not uncommon; what is uncommon is how long it lasted. I’ll let you know when I grow out of it.

Throughout my childhood, there were a number of questions that I posed which, frankly, none of the adults in my life were equipped to answer. All of them have since been answered, casually and without any regard for the significance those answers held for me, by my career in electrical engineering.

Here, in no particular order, are three of my favorites:

  1. “Why is this shocking the crap out of me?” - While I always desperately wanted (but never got) a 100-in-1 electronics project kit, one thing I did get was an old, incomplete “exploring electricity” kit. It was old enough (I don’t know how old) to be completely non-silicon based: the switches were bent stainless steel, the relay was totally exposed, and the only things that lit up were the olde style “bayonet” bulbs which were, of course, held in bent metal bases.

    I figured a lot of stuff out from that kit. I was already familiar with electromagnets, so discerning the function of the relay wasn’t too hard. In fact, I pretty quickly managed to assemble this circuit, which allowed me to switch the light bulb on and off with the relay:

    DO NOT BUILD THIS CIRCUIT

    Notice anything missing, there? Remember, no silicon anywhere in this kit. If you said “no flyback diode on the relay coil,” award yourself 10 house points!

    I understood, in a very primitive sense, that the two D-cell batteries I was driving the circuit with couldn’t hurt me. After all, I could stack them end-to-end, touch the ends, and not feel anything. So, imagine my surprise when releasing the (bent bare metal) switch delivered a pretty sizable shock to my finger!

    Fast forward about 10 years, to me sitting in my first real college level course on electricity and how it behaves. The prof is explaining about inductors, and how they attempt to resist sudden changes in current flow by increasing their voltage through the roof, and I finally understand how two 1.5V batteries were able to deliver a reasonably uncomfortable shock to my tender young fingers.

  2. “255 rupees? Why not 250? Or 300? Or 100?” - This one will date me a bit. When I was, oh, maybe 8 or 9, “The Legend of Zelda” was a big thing in my world. It was the first game that didn’t require me to sit and play through at one go and the first game I’d played that really had a sort of “real-life” feel to it. Relative to jumping on ambulatory mushrooms, at least.

    255 rupees...
    Image from the thumbnail of RedMage1987’s YouTube video

    There was one thing that bugged the crap out of me about that game, though: You could only carry 255 rupees! Man, that’s just cruel, especially when the Blue Ring costs 250 rupees. At the time, I thought it completely arbitrary, and it really ticked me off. I mean, it’s not like I’m just going to leave any of them just sitting around, but I don’t get credit for picking them up…

    Freshman year, EE110, we start discussing binary, hexadecimal, and logic. For the first time, I discover why 255 is a significant value in the world of computers- it’s 28-1, or the base-10 representation of a byte-wide counter that has reached its limit! Mind: blown.

    Runner up - Similarly, in “Dragon Warrior”, there was a maximum limit of 65535 experience points and gold pieces. While I loved Dragon Warrior more than Zelda, Zelda was the first place I noticed this.

  3. “What do you mean, I have ‘cracked square’ extra lives?” - Okay, brace yourself: I hated “Super Mario Bros.”. To this day, I have never, ever finished it, and I don’t ever intend to.

    It did pose me a question, however: why is it, when you take advantage of the bouncing-infinite-lives hack in world 3-1 (which I could never do, anyhow), does Mario’s (or Luigi’s) extra life tally stop showing up as a nice number and become some corrupted weird image?

    alt text
    From Spencer Gregory’s article

    I didn’t really get this until I was well out of college. Frankly, it took me probably six or eight years after college before I really grokked how pointers and address spaces worked. It turns out that games like Super Mario Bros. are able to do all the stuff they do with such limited resources by pre-drawing all the graphics for the game, then storing them in memory and calling them up at the appropriate time. Here’s the memory space of all the background patterns (which includes characters and numbers):

    alt text
    From Paul Kuliniewicz’s blog article

    Clearly, the bizarre drawing behavior is caused by a pointer which points to one of these 8-byte memory locations and was incremented past the expected range. This causes the game to render what should be a number as some other character.

    Of course, other mysteries have been solved for me: why the lights flicker when the AC kicks on, how cable TV can pass so many channels through one wire, and why Nintendo games stopped working after a time. For some reason, though, these three are the big ones, the ones that really made my day when I understood them.

    I’d like to hear from you guys, though: what ‘a-ha’ moments have you had as your knowledge of electronics increases?


Comments 60 comments

  • Also, there should be a standard schematic representation of “finger goes here”

  • I love this, especially the video game ‘a-ha’ moments! I had many similar moments, thanks to my grandfather. He was one of the early buyers of the Radio Shack TRS-80 MC-10 computers, a color micro-computer with a whopping 4K of memory. (Don’t worry, he upgraded with the 16K external memory module!) He worked a little with it, and then told me that I should start learning about computers, so he gave it to me. With the Basic programming book in hand, I started working on graphics and games. I remember learning how video games handled moving graphics, collisions, multiple object inventory, a hundred other things. I felt so cool, like I now had an inside track on video game play. One of the biggest ‘a-ha’s for me was learning how to increase the speed of objects, and therefore the game’s difficulty, each time the player completed a level. It all seems so simple now, but those early learning days were amazing to me! Everything seemed like a huge milestone!

    I would love to still have that little computer to revisit some of my earliest work, but like my grandfather, I passed it on so that someone else could learn as well.

    • I have a working TRS-80 CC2. I have done so much with it. I copied all of my programs to my pc using the sound card line in and then burned them to CD. Now i can plug my portable cd player into the cassette deck line in and i have myself a CD-ROM for that old beast.

    • You can still enjoy that MC-10, as an emulator on your PC.. definitely worth a try.. I was fun making mental connections that hadn’t been made in 30 years for me, trying to remember the “pmode 4” command, I believe it was, to put the Coco into it’s high res graphics mode.. :-)

    • I didn’t have a TRS-80, but the local Radio Shack would let me work on their display model if they didn’t have any customers, so I’d ride my bike 10 miles to the store and work on theirs.

  • Hmmm - my hauntings from childhood are just three:

    1. What is the color of electricity (hint - it is NOT blue)…

    2. Why does an electron have exactly -1.0 electron volt electric field and is a monopole (thought those did not exist)

    3. and Why does a Proton have a +1.0 v charge and is a monopole too…

    these have been on my mind for over a half century - still no closer to a respectable answer :(

      1. No color. Color is a property of a radiated photon, electricity is electron flow. Electrons are not photons, so not applicable.

      2. Because that’s the definition of an electron volt - the energy gained by 1 electron moved through a 1 volt field.

      3. Because if it didn’t, we wouldn’t be sitting here discussing it. The Universe would have either collapsed or blown apart

      2a, 3a - Who says electric monopoles do not exist? They’re everywhere - electron & protons, for example.

  • In the mid-70s, I was working as an automotive technician. Knowing that times was changing in the automotive industry. And that electronics and computers was going to be a big part of that change, I started studying computers and electronics. Most of my revelations was small and pretty insignificant. The most memorable was not a Revelation that I had, But one that I gave An engineer. At the time I was installing air-conditioning systems and they had just started using electronic thermostats. At first everything worked good, then we got a batch that would not cool. The thermostats was kicking off the compressor way too early. After trying every little trick that normally worked in failing I finally called the engineering department. From the tone of his voice you could tell he had a major problem, it seems they had learned about the problem and was having to design a whole new thermostat to fix it. He said I would just have to wait and it would take about a month to fix. I said is therenothing I can do to get this going. He said nothing, you will just have to wait. I said how about putting a resistor in line with the potentiometer or the temperature sensor. It got deathly quiet for several seconds I said will that work. He said in an excited voice yes yes. I said then you authorize the modification. He said yes do it. I promptly went down to RadioShack and purchased a potentiometer because I did not want to calculate the resistance value needed for the unknown circuit and several packs of resistors, Hooked up the potentiometer and match the resistance needed, measured it, and install the appropriate resistor. The next shipment we got had a resistor installed. I’m sure that the Modification saved the company millions of dollars in lost revenue and possibly lawsuits. That’s when I figured out, engineers are taught to think in a complicated manner. Sometimes you have to hit them over the head before they see the obvious. On the relay circuit above, a diode Would be the correct modification to prevent electrical shock. But turning the switch 180° in the circuit should also work.

  • I still have a mystery I’ve haven’t figured out. When the batteries in your flashlight are half-dead and dim, why does whacking it help, if only briefly? It clearly does, but why?

    • Because you are stirring up the contents, which speeds up the chemical reaction. You can also warm them for the same effect.

  • Not exactly OT, but at a tangent - I used to have a BBC micro computer and the BBC basic editor had an auto line numbering command. I once tried setting it to increment in steps of 1000 and got the error message “Don’t be silly”

  • Circa 1983…in middle school…I was doing poorly in math class. The homework so bored me that I’d instead putter around on my Atari 400, trying to make crude BASIC graphics and little games and such. I got in trouble for this and eventually they put me in remedial math with The Troubled Kids. This didn’t help (worse, in fact), and I suspect the only reason they let me pass the 9th grade at all was because my counselor just didn’t want to deal with me anymore…I’d be someone else’s problem at high school.

    So…new school, new curriculum, and the first couple of days for all students was spent taking placement tests in each subject. I was either sick on math day, or maybe my enthusiasm was such that I’d ditched, I don’t recall…but I do remember a solitary desk later being setup in the hallway so I could take a make-up test. Now keep in mind…I’d been borderline flunking in remedial math…I’d never really seen algebra or trig (as such) in my life. But there was a “Hitchcock zoom” moment when looking at that page. It was somehow familiar, and all those countless times I’d typed Y=SQRT(RR-XX) suddenly paid off: in 30 minutes at that desk, I’d skipped ahead TWO years in the subject to be placed not with the laggards, but the bright students. I was further blessed there with one of the best teachers in my entire public education…she was genuinely passionate about the subject, and math homework was never boring again.

    • There’ve been too many electronics ah-ha moments to catalog. But I’ve got a similar programming/math moment similar to the comment by pburgess. My first time using a computer was taking a summer school programming class between high school and college. The class was dialing in to an IBM mainframe, and the programming language was APL - yeah, a pretty esoteric language for a first time experience. But I caught on pretty fast, but was perplexed by some of the complex matrix math operators - they were interesting, but why would you want to do that? Fast forward a couple semesters into my freshman year, and into my linear algebra class. (My AP scores placed me out of the regular math courses as well as most of the calculus, so linear algebra came early.) The ah-ha’s came almost daily: with just about every new math concept that was introduced, I would think “there’s an APL operator that does that, so that’s what it’s for!”

      And now a couple observations on the original article…

      You haven’t yet grown out of your why/how mindset, and you think that’s unusual? It isn’t for an engineer! I contend that it’s not only normal for an engineer to be stuck in a why/how mindset, but it’s practically a requirement! I suspect that’s how a lot of engineers got their start. My start came by taking apart all my toys just to see how they worked. It initially annoyed my parents, but they quickly got over it when they realized I was rebuilding them and combining several toys into a new contraption.

      And you think you’re dating yourself by recalling Zelda? Now I feel old… I also remember when Zelda was released, and that wondrous excitement upon discovering that your progress was saved between sessions. Except it was my son making that excited discovery, when he was about the same age as you. I wasn’t quite as excited about that milestone; my only thought was realizing that now we’ll never get him off of that game!

  • Heh, mine is just so stupid.

    When I was in High School in the ‘70’s, our High School had a computer. They didn’t let ME use it, or course, because I wasn’t in the “advanced” math classes. It was a Wang S-100 monster with a teletype terminal for an I/O device. The only thing the students actually did with the thing was use it to algorithmically create pictures of things like Christmas trees on the teletype’s printer.

    Anyway, I looked at the “Basic” program to generate one of those images, and it had code like:

    ...
    50 a = 3
    ...
    90 a = 5
    ...
    

    My concept of how it worked was that it was a single huge equation, that would be resolved essentially simultaneously when the program “ran”… as such, “a” could NOT equal 3, and then equal 5 as well! It was impossible! In my mind, a single variable could only hold one value, and the reason for the “program” was to reveal the value of the unknown variables.

    The “Ah Ha” moment came in 1978, when an instructor showed me his Cosmac ELF single board computer and explained the programming to me. I was hooked! There were no limits to what could be controlled in real time with this concept!

    • Maybe you would have been a better candidate for learning pure functional programming ( versus imperative ) than most. Ever checked out languages like Haskell?

  • Just the other day I found out that the QFN replacement in a laptop went well after all. It was a dual low voltage power conversion controller, tuned for 1.5V (DDR3) and 1.05V (CPU, NB, etc) and the 1.05 side had been… damaged… I had to give up on it and add a retuned supply in a ~2 square inch section I cut out of another laptop with a rotary tool and attached over a large empty ground area on the surface. Sloppy, I know… but the laptop runs.

    Anyway, I couldn’t get the 1.05V side to operate above 0.8V even though all the connections tested well, so in order to make sure the IC’s contacts were all solid, I simply pressed down on it with my fingertip. I was greeted with a strange faint squealing and the power completely died– I had somehow blown the FETs on that rail and they were shorting the 19V supply, so the battery charger had cut off that entire rail. When I removed the dead FETs, I was back where I started and the DDR voltage rail still worked. When I installed the ad-hoc 1.05V rail and the machine was running again, I wanted to see if the chip was really soldered so once again I started pushing on it, and the machine instantly powered off. The a-ha moment came after trying to make sure that I hadn’t touched any of the nearby resistors or capacitors with the edges of my fingerprint, so like a sane, rational person I used a pointy tool instead, and it took lots of tapping and mashing without incident. After I lightly tapped it with my finger one last time and it shut off again, I realized that it was my finger’s capacitance meeting the ~300kHz internal oscillator (or anything connected to it) and causing Bad Things to happen.

  • Cool topic. There may be a book in this idea. I remember two cases that were big for me. I had a great physics prof who offered an electronics course - digital and analog semesters (the early 1970’s - gulp). the uA741 op-amp was new and affordable. He developed the theory of the op-amp then we started doing real circuits. I was totally nuts over the ability of simple op-amp circuits to integrate, differentiate, and add/subtract, logs, the works. A couple years later in a huge one week take-home final in QM, I solved the problem 2 ways mathematically but was not confident. So I did the time dependent part with an op-amp circuit and got the same curve I had seen in a book of functions, which agreed with the other solutions. I think it only took six op-amps to test. I bought a couple of very cool analog computer books from Boeing Surplus later when Boeing Research was shut down by tax policy changes. The books were from the mechanical and tube op-amp age of analog computing. Note: Any old style home power meter has a ball and disk integrator to total up power. You can see the disk turning.

    The other was one day staring at an Apple IIe on my desk and a problem that was taking way too long to run, like hours or days, realizing that I could make “instant” multiplication and case conversion and things like recognize an alpha numeric in an ascii string, etc. I used a proto-board to memory map the address and data lines of some big PROMs. Not the data space, just the address and data lines. Then I loaded them with lookup tables. Write two 8 bit numbers to the 16 bit address lines and read the product of the two numbers at the data lines (took two proms). Write an ascii char to the address lines and read true/false if it is alpha or numeric or read the upper case if it is lower case, etc. Lots of instant conversion possible. So, full speed write/read and you have an answer you had to computer before. I think this could be used for some nice things on Arduino’s since they have similar speed and limited memory. If processors had not gotten better so quickly I was ready to add instructions by mapping hardware to auto-increment pointers and other things (I still want to do that to an Apple II. It is hard to let go of a cool idea).

    • I take it back. Most significant was a project when I was about 10 or 11. And it used a single tube, 12AU6 or similar common item. I can not remember where I got the power. A model train transformer for the heater, the high voltage I think a rectified house current - maybe even selenium rectifiers from an old TV. The thing was hooked to house mains and had around 170 VDC and a long bare wire. It was a high impedance switch and a neon lamp or a relay were triggered if you touched the wire or even got close to it. The tube version of a touch lamp today. It was scary because I thought there was shock hazard, and it worked really well! I was quite pleased and used it for all kinds of stuff and decided I could actually do things beside make electromagnets or wire up little light bulbs and batteries. It was probably in a book in the grade school library that would be banned as dangerous today.

  • You left me with a cliff hanger! Why do Nintendo games stop working over time?

    • Well, in my case, it was because there was a big blue costume feather stuck in the connector.

      I doubt that’s widely applicable, however.

    • Apparently it had to do with the wear and tear on the type of connector they used. Here’s an in-depth look at the issue : http://mentalfloss.com/article/12589/did-blowing-nintendo-cartridges-really-help

      There’s also this: For the most part, it didn’t do anything. When the system didn’t work, most people’s natural assumption was that the connectors were dirty. The most logical way to clean something like cartridge connectors was to blow on it. They also sold cleaning kits, but in my experience they weren’t actually that helpful.

      The problem wasn’t the cartridges, but the connectors in the NES itself. According to Wikipedia, the problem is due to Nintendo’s use of a “zero-insertion force” cartridge connector:

      When a user inserted the cartridge into the NES, the force of pressing the cartridge down and into place bent the contact pins slightly, as well as pressing the cartridge’s ROM board back into the cartridge itself. Repeated insertion and removal of cartridges caused the pins to wear out relatively quickly and the ZIF design proved far more prone to interference by dirt and dust than an industry-standard card edge connector. Exacerbating the problem was Nintendo’s choice of materials; the slot connector that the cartridge was actually inserted into was highly prone to corrosion.

      Further, Nintendo used the “10NES” lockout chip, which required constant communication with the cartridge to authenticate it as a legal cartridge. When it didn’t have the communication, the result was “the blinking red power light, in which the system appears to turn itself on and off repeatedly because the 10NES would reset the console once per second. … Alternatively, the console would turn on but only show a solid white, gray, or green screen.”

      I actually didn’t know either, so I went digging around myself. I’ve known for a while (after some practical experience) that that the blowing idea was bogus, but I didn’t know that the failure reasons were so well documented.

    • What’s weird is that I suffered the same problems with some Nintendo DS cartridges. I chuckled thinking that blowing into the cartridge would help, but it did. In fact, it seemed to consistently help – well, until it stopped entirely and I had to get it the machine warrantied. I suspect it was from the moisture in the breath that provided better conductivity between the connectors. The pins were probably bent/deformed to the state that they were just barely in contact with the contacts in the cartridge, so even a little bit of extra help could improve the connection to a playable state.

    • The electrical contacts become corroded or dirty over time, thus preventing a good electrical connection between the pins.

      Edit: Member #117294 had a good point. Often the issue was related to a poor connection due to the ZIF connector. I have personally replaced the ZIF for one family member and that fixed most games. However, I still have had problems when purchasing used games for this and another system. I’ve found that opening the game cartridge and cleaning the contacts really well has fixed the issue every time.

  • The video game question/answers is cool. Being a verification engineer, I am always trying to find a way to break things, and then diving into the code to figure out the root cause of the problems.

    With this skillset, I’ve started becoming an avid video game speedrunner spectator (When I have time, I want to try and get into it). Basically, these gamers find ways to glitch their way through a game in the fastest possible time. They basically do my job, but on video games.

    Once they find a glitch, they investigate how to do it more consistently and faster. What better way to do this than to use an emulator? From here, they can monitor variables and counters used in the game. Where am I going with this? Well, last week a speedrunner was able to beat Zelda Ocarina of Time in 19:15 (minutes). One of the glitches was facing the very first boss and then “glitching” out of the normal path the developers want you to take. At this point there’s a counter counting up quite rapidly. This counter is to only be incremented once when you warp out of the dungeon, but by using this glitch it doesn’t happen. So how did they stop the counter where they wanted to? They looked at the movement of Link and found that leaving the boss room stops the counter, so now it’s just a matter of timing it out. Pretty cool, huh?

    Now I need to stop ranting…

    EDIT: Here’s the Kotaku article on what I was talking about: http://kotaku.com/this-guy-beat-ocarina-of-time-in-less-than-twenty-minut-1189078311

    • YES! That was straight-up procedure-parkour. Reminds me of the N64 days,popping past solid objects by lifting the edge of the game cartridge at the right time.

    • Ok, this, I want to learn how to do. TEACH ME MOAR!! No, seriously, I always wondered who the crazy dudes were that spent hours trying to glitch out their videogames… now I know who they are!

  • I purchased one of the very first IBM AT computers with an EGA screen and a 40 meg hard drive. Cost a fortune even with the 50% employee discount. I spend many evenings exploring how this beast worked. One thing that drove me crazy was a graphics library I had gotten (EGAD). Every time I disassembled a section of the code, it would be different. The code for drawing a line would change from invocation to invocation. It was only much later when I had to write my own graphics library that I realized what was going on. The library had used self modifying code to optimize the generic line draw routine. If you called a method to change any parameters of the line (dashed, color, thickness, …) that method would rewrite the line draw routine.

  • Well, other a-ha moments happened when I understood what the “electric potential difference” really meant, 5 years after I started practicing electronics. I had misinterpreted it as intensity… Another a-ha moment was when I discovered that PCBs where a more professional way to insulate electrical components than my first carboard “PCB” that kept a couple of diode bridges isolated! And last, suddenly hearing my blinking LED prototype on the nearby radio was simply astonishing!

  • The only mystery solved by college education was the inductive kick. The limit of 8 bit binary & character sets was known by age 10, but you still can’t get a job without the formal degree.

  • One of the biggest for me was that electrons don’t move at the speed of light! Prior to that realization, when trying to understand current and voltage, I thought that if electrons always move at the speed of light then the only thing you could vary would be the number of electrons, so was that current or voltage? And how was the other manifest?

    Not sure why I needed to understand the underlying mechanism, but a lot of things started to fall in place after that.

  • When it occurred to me that sampling electronics do not have to sample their medium for the full width of time that sample represented, and therefor multiple channels could use time division multiplexing to transmit over a single connection in real time - that was a beautiful thing.

    So if I need 4 channels recording sound (basically polling amplitude of the audio signal) each at 44.1 Khz, conceptually I need each channel to “listen” once every 44.1K times a second, but the time spent gathering that signal needs to be, at most, ¼ of that time. And ( conceptually ) the audio interface would be piping a signal upstream at 176.4 Khz that interleaved all 4 channels.

    The beauty is in the paradigm shift from our continuous perception of sound, to the electronics view of the sound, which is a occasional ( and sparse ) sampling of the amplitude on a given input. Between these samples of what we consider to be continuous is enough space to do all SORTS of stuff, yet when the sound is played back, we are none-the-wiser. Kind of like the fact that our world is almost entirely empty space.

  • For me, it was how a PCB works. I still remember the first time I saw one. I was 6 or 7 and opened up my tape recorder, and it was green inside! I don’t know what I expected to find, but it wasn’t a green circuit board. Actually, it kind of makes me sad to think about all the mystery gone out.

  • When I was a kid I learned that a diode passed current in one direction but not in the other. So I was dumfounded when I was looking at the schematic of a frequency counter and saw two back to back diodes near the input going to ground. It looked to me like it was just shorting the input to ground whether the input was positive or negative. It was only years later that I learned about the voltage drop across a pn junction and realized that I had been looking at an input voltage limiter. The AHA moment was very satisfying.

  • I was a why/how kid…still am…I don’t like accepting “because that’s life” response. But heck, got me though all the proof and theorems in math!

    I learned digital before analog electronics….took until my 4th year in collage for the electronic “Aha” moment. The instructor I had was still teaching tube electronic at the time.

  • For me, I remember when I was in my early years of high school, I got an assembler and a fancy machine language book for my Commodore 64. I tried writing a couple of simple programs, but I could not get my head around the idea that the computer was stopped, just waiting for me to type in my assembly language instruction. I mean, the keyboard was still working, the video was still displaying something. How could it be stopped and yet still function? I guess that I did not understand the concept of how interrupts worked at the time. The other thing that confused me was how the heck could you code a program when your conditional branches were limited to a maximum jump of 128 bytes away. It honestly never occurred to me that you could conditional branch OVER a longer 16-bit unconditional branch. Duh!

  • For me it was learning how a keyboard can have so many buttons, but use so few wires to connect to the computer. I just couldn’t get my head around the concept until I started to understand how fast microcontrollers can talk to one another (very very quickly.)

    Another was finding out that, if you’re a uC with a fast clock speed, light and sound don’t really move that fast relatively speaking. For each clock cycle of an Arduino Uno light only travels about 60 feet. In that same amount of time a sound wave wouldn’t have moved even one-tenth of a millimeter!

  • The one I remember best is when I finally figured out how the binary-to-BCD algorithm (add 3 - shift) works. That technique led to all sorts of things. Also, when I finally “got” how pointers in C work.

    • Ah, you tempt the fates! What is the difference between a c pointer and a reference to an array (which are often treated the same)?

      • I believe it’s that the memory location the reference to an array points to is constant while the memory location a pointer points to can change (but you’re really dredging the detritus from the bottom of my memory sack :) ).

        The one I also liked was that Java passes all variables by value. It’s just that sometimes the value contained in the variable is a reference.

        • Honestly, I have been using Python and assembler so long I can’t remember. A friend of Mine, Peter van Der Linden, wrote a nice book called “Deep C Secrets” that goes into detail. He was in the compiler group at SUN and knows the insides of C the way a marine biologist knows marines! (He has Java books too that are top shelf).

  • Aha moments:

    Why a light bulb in a house gets brighter while an appliance elsewhere is on. Why some fixtures burn out lots of light bulbs. Why the proper application of a finger can fix many circuits. (limited use in high voltage applications)

    Flyback diodes: I know “everybody does it that way” but the common diode across coil method protects the switch (or transistor) at the expense of slowing down the relay contact opening and increasing contact wear in many applications. A zener across the switch is a much better implementation, allowing the field to collapse quickly and not over-protecting the switch or transistor. Simply rate the zener a bit below the max voltage of the transistor/switch.

  • When i was a kid i wanted to get into electronics soooo bad.. Really bad. I bought an electronics counter kit since I was used to taking stuff apart. Looked something like this: http://www.electronickits.com/kit/complete/meas/ck100new.jpg This was Way before our household had a computer (our first computer was in 1993 with windows 3.1). so I opened the kit and BAM.. no instructions, no diagrams, nothing. Basically it was “Here are some parts, put it together” well i didn’t even know what a resistor was at that time so I decided to return it. It wasn’t till later that year when started reading the Radioshack books and learned the resistor color codes, diodes, and the 555 timer…. and then it clicked what those components were.

  • I’m 45 and a professional programmer. I learnt to program on a Vic 20 when I was 12, and sold my first program at 13. I have, since I knew how, always avoided using computer numbers for anything. So never 8 levels, but 10, max of 250, not 255 etc. It’s always bugged the crap out me, and most of it is laziness on the part of the programmer !

    • I saw a buddy once counting the pages coming out of a big old fashioned ribbon printer. Only he was carrying on a conversation at the same time. He had learned to count in binary on his fingers and it is a very easy pattern to learn. So he was able to “increment the count” for each page without paying attention then read the number off his hands at the end. Very handy. I learned it straight away and never had binary to hex or decimal problems again. The 0 to 255 is more natural in some ways than the base 10. After all, fingers are 1’s or 0’s.

      If the ancients had come up with it they could have counted 1024 sheep on two hands. The Hex is really better than decimal. Base ten is only commensurate with 2 and 5. Hex with 2, 4, and 8. Periodically a movement arises for base 12 since it is commensurate with 2, 3, 4, and 6, it would be a far superior numbering system.

      I don’t follow that laziness comment. Using all the resources used to be crucial. Heck, Steve Wozniak fit the Apple II floating point code (and they are looong floats) into 256 bytes of 6502 code. Plus the processor status registers can recognize the all 1’s state but not the 11111010 of FA in hex. You have to test for it explicitly by including a literal in the code.

      A pet peeve of mine is using lower case for hex numbers, as is common in C. The ASCII values of lower and upper case are not the same. fffa is not the same as FFFA until the pre-processor converts it.

    • How about 1,241,258 xp levels?

  • My first ‘a-ha’ moment was when, as a teenager, my father changed my belief that a different wire insulator’s color should mean a different wire type/behavior! Then came the bistable relay (useful), then the D flip-flop (amazing), then the “average” algorithm to compute the average of your last 10 grades, then my first LED blown up while showing my sister what NOT to do(!), then my first PC “blue screen” due to a C coding bug (before that experience I was only experienced in Unix programming!), then a device that’d reset only if you’d walk on a carpet, then a real-world autonomy of 5-months (with no reset) for a home-made device… Wow! Better than many consumer electronics devices ;-) Well, a lot of memories…

    • “Wire color = Different action?” Sometimes it DOES. Why is enameled wire used in coils? And of course if parts of the insulation are black and crispy, there is (now) a different function of the wire inside compare to other wires….

    • Wire color = Different action? I’ve only seen that (to some degree) with snap circuits.

      • We actually run into that question more often than one might expect. It’s something we consider carefully when doing wiring diagrams for things like the SIK.

  • I had been a hobbyist programmer for about 6 months, before I read enough to understand Hexadecimal. Once I understood it’s application to what I was working on it started to click all of the different places it was used. I pretty much had to take a week off while all of the things I’d read for 6+ months without understanding fell in to place.

  • One time I had to fix my aunt’s charger for her GPS. Which I figured, like in most cases it was a bad connection somewhere inside the wire and when I checked everything was fine. So I open up the end of the charger (It was a car charger by the way) and i see the two power lines and a near by resistor. I looked at the whole board checked a few connections and everything was okay. There was absolutely no reason that It shouldn’t have been working. then I looked at the power lines again and I noticed this little tiny white wire coming out and poking at this resistor. My first instinct was that it should have been connected to it but when it was connected to that resistor, it didn’t work. I have no idea what this wire was doing there so I cut it and tapped the end with some hot glue. I mean when I found it I was thinking AHA but I just couldn’t figure out its business there.

    Between that and when I figured out how Op Amps actually work and what they actually do and how to make a synthesizer with them. I blow my own freakin' mind. It was always something I needed to know but could never quite figure out no matter what I googled or who I asked. Then after compiling a bunch of information and playing with them more I understood! and now I will never forget.


This Week

This Month

Heartbleed

Happy Arduino Day!