Showing posts with label geek. Show all posts
Showing posts with label geek. Show all posts

Thursday, August 15, 2013

[achievement unlocked] installed openstack on a fedora rc1 release

My new workstation finally arrived today, so I got to finally ditch the laptop and move to something with a little less play in the keyboard and a slightly larger screen.  Most of the other devs opted to use their budget on pretty Macs, but I dumped mine into a whitebox with a lot of storage and RAM.  The primary reason was that I need to run a bunch of VMs, and my plan was to try and get OpenStack (grizzly) running on so I could replicate (or maybe just approximate) our production environment.  I went over to the RedHat's RDO project site since they've done a pretty decent job of making deployment easy and bundling everything together.

The weak point in my plan was an insane idea to use Fedora 19rc1 as the host OS.  If you're thinking about doing something similiar, stick with the latest stable release of your distro.  There were a bunch of small gotchas due to bugs/changes in 19 that the openstack stuff just didn't handle (stuff like the fact that packages called "mysql" are gone in Fedora now and are replaced by either "mariadb" or "community-mysql"... which the puppet classes don't know about yet, missing sysconfig files for qemu-kvm, etc).  Getting the install required a bunch of tweaking of config files and re-running the installer, but in the end I got it working.

Worse yet, some kind souls had documented their similar adventures, but some of the problems had been fixed since they wrote it.  Some helpful hints I ran across:

http://funwithlinux.net/2013/08/install-openstack-grizzly-on-fedora-19-using-packstack-with-quantum-networking/
https://gist.github.com/tuxdna/6047147

I'd also suggest finding an RPM for openstack-packstack-2013.1.1-0.7 or later and rebuilding that from the SRPM rather than using the one provided by the yum repo (think it was 2013.1.-0.3).  There's a small problem in the switch_keyring code that's fixed in newer versions.  I ended up using 0.24.dev660.

Also, skip the nagios install with --install-nagios=n.  I used mariadb for my database, and ended up having to tell packstack to use localhost for my mysql_host.

Finally, a word about packstack itself.  This is really just a python program (class) that can run on most of the major distros.  I'd suggest looking into it if you're thinking about installing on a Debian/Ubuntu system as it really does ease and automate a lot of the installation process.

Wednesday, August 7, 2013

my new job and why I think it's cool

I've been pretty quiet since mid-May, and the reason for that has been that I've started a new job.  I'm working for a start up called True Ability, and the 2 second pitch is "We provide a flight simulator for hiring technical talent."

The "Oh, I got your attention" pitch is that we do technical skills assessment by providing candidates with a series of tasks to complete in a virtual server.  It's basically a break-fix test on a VPS that allows non-technical people to gauge the ability of a potential hire.  Our ultimate goal is to get rid of the process of weeding through resumes and help recruiters narrow their search down to qualified, interested candidates as well as allow qualified and interested candidates to escape from getting weeded out for non-technical reasons.  Right now we're pretty much focusing on Linux administration, but should be moving into other areas in the not too distant future... I'm pretty excited to start expanding our offering.

The company itself is unbelievable.  It's one of those rare times you find awesome people with a truly complimentary mix of skills and expertise with a worthy goal and a clear roadmap to achieve it.  My job title is ostensibly "Linux Engineer", but in reality I'm working on the automation code for breaking the servers and evaluating the candidates' solution.  It's a funky hybrid role doing software development, but requiring a pretty good system administration base... kind of devops but without the drag of on-call duty. \o/

If you'd like to know more, hit us up.  The site's mainly geared for the recruiter types now, but we're planning on doing some cool stuff for the technical folks in the future.

And if you're wondering why I think this is a big deal, read on.


Tuesday, May 7, 2013

openstack

I figure it's time to finally get back to writing posts about nerd stuff, and so I'll start with adventures in openstack.

Saturday, July 14, 2012

ajax with jquery in rails

So I'm going back through the updated rails books in an effort to see what all has changed since I last poked at it (as it turns, quite a lot).  One of the big changes was the removal of RJS (rails javascript) and the move to jQuery.  Unfortunately, the new jQuery interface doesn't seem to be referenced in the doco I've got nor was it easy to get a straight answer from googling, checking the js console, or even good old alert() debugging.

Friday, July 6, 2012

2m sleeved dipole

A'ight.  I ran across some articles about off-center fed, sleeved dipoles for 2m and 70cm use.  They're cheap and fairly simple to make, which is right up my alley.  I was going to mess around with using some copper tubing, but this sucker is working well enough I don't think I'm going to bother with the copper (or I'll save it for another project).  Total price for this thing for me was around $12.

The original articles I referenced were KV5R's OCF Sleeve Dipole and W7LPN's 2M/440 Dual Band Sleeved Dipole Mod.  I ended up keeping the idea of the RF choke close to the bottom element, but went back to simply using aluminum tape on the outside of a PVC pipe.  Instructions after the jump, but here's a pic of the antenna in action:

Wednesday, June 15, 2011

maybe that's why it's called spooky

So, I've been reading this quantum mechanics for idiots book recently, mainly because I'm a nerd but also because everyone time I've tried to talk with someone In the Know(tm) about QM I get a "don't worry about it" in response. The book I'm reading is Quantum: A Guide for the Perplexed by Jim Al-Khalili and it does a pretty good job of both not descending too far into the mathematics and acknowledging that basically everything is counterintuitive and the natural response is to say "no wai! lies!".

Any rate, my big epiphany was that everything at the atomic level appears to be indeterministic. Which is highly unsettling because all that stuff we learned in high school is based on the assumption that we live in a deterministic universe: that you can know everything about anything and make predictions accordingly. We've used these tools to split the atom, go to the moon, approximate how long ago dinosaurs roamed the earth, hurl data around the globe, and create machines that can peer inside your head and let a doctor see if blood vessels in your brain are healthy or not.

And it's basically all been an approximation.

Friday, June 3, 2011

laser table mark iii


So, I've mostly completed the frame for the "Mark III" version of the laser table. I decided not to use the previous version because of a change in options to mount the lasers. The drafting table just didn't have enough space for the flush mounts.

The features of the new table are:

* built from 2x4s so it's sturdier (but also heavier)
* the table top is hinged and has legs built in so it can be used flat or lifted to be an angled surface
* used pocket screws to hold stuff together... looks less "engineery" while joins are stronger

What remains to be done:

* figure out some way to mount stops for the tabletop legs to hold it at an angle
* cut some mounting rabbets out of moulding to hold the plexiglass surface just below the center of the laser beam
* cut the plexiglass down to fit in the rabbets :)
* mount the flush mounts at the correct angle to cover the entire surface
* rejigger electrical stuff to run off floppy disk power lead
* see if running lasers in series will work better than in parallel (currently using the parallel setup)
* wax paper on acrylic and see if the projector works

Then I can start on the software phase.

I should probably also think about attaching a trap for the laser light at the edge of the tabletop, but for right now I just want this sucker to work.

Way more info after the jump.

Wednesday, May 18, 2011

MT table Mark II

Okay. So my last swipe at this wasn't technically a table, but give me a break. I got busy and couldn't find spare time for... 18 months. /o\

Any rate, I've been on a kick lately and I'm moving away from doing stuff on my computers and moving more towards the analog method of designing stuff: grabbing a damned pencil and a sheet of paper and just sketching it out. I don't know why, but when I write/draw something I seem to retain it for a much longer time than if I type it up. Part of this has led to a desire to get a good old drafting table. But why buy a solid pre-built one when you can build a shaky, hideous one from scratch and save $20?

So I set about designing a drafting table, and about halfway through it occurred to me that I could also fashion it so that I could remove the plywood table top and slide in a sheet of plexiglass later on to easily convert it to a multitouch table later on.

Since it's been 18 months... here's a link to previous multitouch posts (read from bottom up for chronological order).

And here is a link to the Mark II.

It's not as perfectly aligned as I would like it, but I don't think it's half bad for my first woodworking project EVAR and it's sturdy enough I can lean on it. More thoughts after the jump.

If anyone is interested in plans (although it's not that complicated) or has questions about the construction.. hollah.

Friday, September 24, 2010

hi clear, bye clear

A few months ago, I had to cancel my home internet service with Time Warner. It turns out, TWC was executing a telemarketing campaign with some severely broken equipment. This meant random calls to my cellphone that never left a message and in the off chance I did manage to answer I was promptly hung up on. TWC left no way to get in touch with anybody who might be responsible for the calls, and letters I wrote asking them to stop went unanswered, so after two weeks I finally told them to cancel service.

To replace home connectivity, I went out and snagged a 4G wireless modem from Clear. The prospect of 6MB that I could take on the road with me for less than TWC was charging me sounded like a good deal, and for the past 3 months it's been everything I'd hoped for. Less downtime, and waaaaay less harrassing phone calls.

However, earlier this month (last Friday in fact), Clear instituted some mechanism that attempts to rate limit users who pass an unspecified bandwidth usage threshold. If you trip their bandwidth-hog alarm, your connection drops from 6Mb to 0.25Mb download speeds, and this makes doing pretty much anything relatively impossible... the speed is basically bumped below the throughput of a dialup modem from 1999. It is impossible to watch Netflix movies uninterrupted, and it's introduced some real problems when I try to play games or use VoIP services.

The intent is pretty obvious. Rather than scale up their bandwidth to accomodate a large influx of customers, they have chosen to ration out access. They were clearly assuming people would only be using the service to check email or maybe listen to a few mp3's... fools burning 30 hours a week on movies and video games will quite easily wreck that business model. The problem is that rather than cap me at the speed I've paid for, they serve up more than I paid for (12Mb) until I hit this limit, and then slap on a draconian limit to punish me for the amount of traffic I've pushed. From my point of view, I have very little to show for it since most of the bandwidth is from dynamic services (ie, Netflix and WoW) rather than from downloading files.

It's basically akin to flipping on the TV to discover that the cable company is only going to let you watch public access channels and CSPAN because you've spent entirely too much time watching HBO this month.

This is a total deal breaker for me. I don't really care about throughput so long as it's greater than 1Mb. I'd be happy taking a price break and using the slower service to having my provider suddenly and without any warning yank my leash for violating rules I don't understand and have no way of monitoring. Unfortunately for Clear, the faster (and cheaper) solution is to just cancel the account and install DSL service rather than give them "a month" to iron out the bugs in their rate limiting ubersystem.

Friday, May 28, 2010

screw you, firefox tab complete!

For some reason that is completely unfathomable to me, the URL that's shown as hilighted in firefox's URL window can get out of sync with options that show up in the drop down menu of possible alternatives, yet firefox gives preference to the drop down menu when you hit the TAB key to complete.

Case in point: I want to go to gmail. I start typing in "http://www.g" and the drop down shows up. The first thing its got highlighted is "http://www.google.com/", which makes sense. I next hit "m" (so what I got in the URL window is "http://www.gm")... the text in the URL window goes ahead and auto-completes out to "http://www.gmail.com", BUT the drop down highlight remains on "http:"//www.google.com/").

So when I hit ENTER, I'm being queried for a search string instead of looking at my inbox.

I sigh and once again curse my blazing fast touch typing skills and lightning quick ENTER key pressing reflex. So I go fumble around for the mouse, point the stupid pointer over the URL, double click to highlight the entire URL, hit BACKSPACE, and... we go back to where I said "Case in point:" up above.

Repeat 3-4 times until I finally am able to remember to force myself to stop and wait for the drop down to catch up and get to my email so I can read the latest chain letter my old high buds have forwarded to me.

KAAAAAAAAAAHHHHHHHHHHHHHHHHNNNN! \o|

Monday, April 12, 2010

tunnel vision

The other day I was browsing around on a professional networking site and came across a post in one of the forums from a guy asking for help on solving a monitoring problem. The problem was that when the servers got under a heavy enough load they would become unresponsive to his monitoring systems and the page would light up like a Christmas tree. He was looking for suggestions to relax the monitoring thresholds so the alerts wouldn't bug him.

/o\

The problem is not that the monitoring system is doing its job. The problem is that the servers are under such high enough load that they can't respond to simple "Are you still alive?" queries from a monitoring system. The correct solution is to either add hardware to the cluster and distribute the load or find some way to refactor the code so that it's more efficient.

More alarming was the fact that a bunch of people weighed in before I got there with various suggestions on how to increase timeouts, drop SNMP monitoring, etc. In a week, none of them said, "Hey, maybe the server being in distress is like, bad."

In the tech world, we fall prey to tunnel vision a lot. We become willing to push an incorrect solution to a problem so far that we will layer bad idea after bad idea on to a system, which in turn just keeps bringing in more and more points of failure. Pretty soon, you end up with a shaky, complex Akira style thing that is impossible for anyone else to understand or modify that does nothing but create unnecessary work for you.

The more I look around at my colleagues and talk with them about the battles they're fighting daily, the more I start to wonder if anyone else understands why the bearded Unixy elders held elegance in such high regard.

Wednesday, January 13, 2010

win32 c++

So I was presented with a situation where I needed a binary to simply run some predetermined commands on Windows. I said, "Why, this is a simple fork/exec under Linux. How hard could it be in Windows?"

Turns out, a lot fscking harder than it needs to be.

The primary problem stems from the way Windows "attempts" to support multibyte characters. Or rather, the wayS it supports multibyte characters... you have a choice of the ANSIish widechar that can do UTF-8, or the one that MS Visual Studio defaults to LPWSTR for UTF-16. The Windows libraries helpfully provide replacement functions for stuff like sprintf() and such, but the common and well known string functions are cut off from you. Worse, some wrappers to system calls like GetCurrentDirectory() will only return LPWSTR and only take LPWSTR args, and because these are differently sized types you can't just cast your out of the problem.

Oh, and stuff like malloc()/calloc() doesn't appear to work with the macros, either. Or at least I didn't have the time to unravel what the correct way to use them were in the time I had alotted.

In the end, I used something like:

wchar_t* thing[SIZE];

and just used a typecast whenever I needed to move into or out of the variable: (LPRWSTR) thing, like when using _stprintf() to build up these strings.

So, basically, I ended up being corralled into doing freshman level C just to get stuff working.

What I've taken away from this experience is that I absolutely, positively, 100% don not ever want to do any serious Win32 C/C++ development. Ever. EVER. And if I do have to go down that road, then I'm going to try and stick with ANSI... maybe even to the point of using cygwin exclusively to avoid getting sucked into this nightmare again.

kindle 2 weeks later

I still like what I said before about the Kindle, but the one thing it hasn't done is spurred my recreational reading. Yeah, I can rip through books quicker, but having trouble finding the time to actually commit to reading. Suspect this is work related, since I'm basically learning (or relearning) tech just about each day.

I tried out the magazine and newspaper subscriptions, but I found that even those weren't enough incentive to turn the sucker on each morning. I also found that periodicals who are publishing their content in Kindle format are playing this weak game of not including everything and instead reserving that for customers who have paid for subs to their website (or ordered the dead tree version). Same money, less content? No, but thanks anyway.

I'm also discovering that anything beyond new releases is going to be kind of hard to find kindlefied. An elusive book that has remained on my Stuff To Read list for way too long is When Harlie was One... but it's been out of print for nearly decades. The only way I'm likely to see it is if I can track it down at the library or maybe stumble across it in the Half Price Bookstore. Chances of getting via kindle (legally) are pretty low.

In other news, I've discovered that if you put the text to speech feature on it's fastest setting and use the female voice, it does a passable job of reading flowing prose to you at a rate that doesn't require too much attention. Was able to drive with it going on.

Bottom line: it's by no means perfect, but it's got enough bonuses to justify purchase. And those are mainly, 1) text to speech, 2) ability to convert your own material to kindle format, and 3) the fact that I won't have another 5 boxes of books to pack up.

Tuesday, December 15, 2009

ebox

Ok, so mentioned it briefly in another vanity tool that allows self-promotion 140 characters at a time, but I didn't get around to writing up anything on it here. Time to fix that.

At my orc place, we recently had a few folks move to Windows Vista (now 7) desktops at home. This was ok, until they attempted to connect to the VPN only to discover that it no longer worked. The problem is that Microsoft removed support for the MS-CHAPv1 protocol and only MS-CHAPv2 is available, but the VPN appliance we were using doesn't speak MS-CHAPv2. One option was to setup L2TP on the appliance, but that ended up being all kinds of fail due to some funky routing stuff that had to be preserved and was beyond my capabilities (the best I can do is smash the device with a hammer and swear a blood oath to track down all those responsible for producing it).

So. Fsck it all to hell. We started looking at Linux based solutions that could handle L2TP, and that's when I stumbled across OpenVPN (which supports Mac/Win/Lin). Easy enough to setup, but at the last minute got the added constraint that the solution should be generic enough that someone else could manage it (ie, the company could find a networking monkey to come in and make sense of it).

While getting ready to install it on an Ubuntu box, I noticed that they had "ebox-openvpn" and did some digging on that.

It turns out the eBox is one of those "appliance distros". It's based on ubuntu, and comes with a web config utility which seemed to satisfy the "normal people can use it" requirement. We ended up just downloading the distro that eBox offers up on their website and installing that without any major hassles.

eBox is actually a pretty cool little distro you should check out if you need a small intranet server for a hub office or a small, decentralized startup. It comes with not only a well laid out iptables system and OpenVPN, but also includes stuff like a mail virus/spam filter, file server, and ability to do the BC thing for active directory with samba/kerberos/ldap. Handiest of all, though, is that it's got a certificate management system that lets you setup your CA, and issue X.509 certs pretty easily.

There are some rough edges, though. Because it's an appliance distro, it's guilty of the same thing stuff like Plesk is guilty of. It considers its own internal database to be authoritative for all configurations on the system: if you hack a config file by hand, prepare for the changes to get blown away when the service or server is next restarted. That wouldn't be a problem, except for the fact that the web interface is by no means comprehensive when it comes to configuring the services. For example, we needed to add in some extra options to OpenVPN to tell it to force the client to set default route to the VPN, who the WINS and DNS servers, etc... fairly straightforward to do in the openvpn.conf, but there wasn't anyway to set those in eBox. Finally, my last gripe is that you have to "save" all changes before you can exit a config screen. This makes mass tweaking of the interface kind of tedious and slow going.

There was also a problem with the client openvpn package that ebox generated for us. The zip file had the right certificate, but the client didn't work. We ended up having to replace it with the .exe directly from openvpn's site.

As for solving the original problem, I'd suggest just nutting it up and learning how to deal with openvpn through it's config file. The config is actually pretty straightforward (and short). The main reason we decided to keep eBox installed and in place, however, was because of the certificate management feature and because we didn't want to spend anymore time re-installing a distro onto the server.

I'm not sure I'd recommend eBox for a large, more established network, but it definitely seems like the way to go if you need to get a small shop up and online in a couple of hours.

Tuesday, October 27, 2009

amazon now offers cloud mysql

Just got some spam from Amazon announcing the availability of their RDS (relational database system). The idea is that they basically manage a mysql server for you, and data transfer between RDS and EC2 machines in the same zone is free.

Scratching out some rough numbers, that's about $85/mo for their low end db server.. backups included. They're also dropping the rate for linux EC2 instances, and that works out to about $63/mo.

Monday, October 26, 2009

plexiglass sucks

Spent the weekend cutting up a sheet of plexiglass for the table top. I hate cutting the stuff, but it seems to have worked out ok (aside from my complete inability to cut a straight line).

Ended up snagging a sheet of 36"x30" sheet of 0.203" acrylic from Home Depot for about $43 (total cost of project so far is around $120). Since 0.203" is about 5mm and the diameter of the laz0rs is 12mm, I decided to just cut 4 grooves at 45 degrees in each of the corners, then glue on a 1"x1" base plate on the bottom to support the lasers. I then cut about 8 3/4"x1/2" blocks to glue on the top side of the plexiglass on each side of the groove in order to something close to the top of the laser that I can bolt a cap on to.

The extra bits (baseplates and blocks) came from the scrap I had after cutting 3" off the sides and 5" off the top so that I ended up with a 33"x25" piece (32"x24" for projection area, 1" margin for mounting lasers and the frame later on). I also use a piece of scrap to do some test cuts and to check out the laser to make sure it was sitting about right down in the groove.

My previous experience was with much thinner plexiglass, and the only viable way to cut that was with a scoring tool. With this thicker stuff, so I was able to put masking tape on both sides of the sheet, draw the cut line, and move a jigsaw through it at about 1/2 speed without any melting or the sheet cracking. I did a test cut on some of the scrap I had left over without the tape and the blade made it about 2" into the cut before the melted plastic jammed the jigsaw blade.

And speaking of the blade... I went with a carbon blade designed for cutting metal.

For the 45 degree grooves, I cut in with the jigsaw, tried to round out a corner cut, and then just cleaned out any left over with a dremel.


Testing out with the laser showed revealed something I hadn't accounted for in my earlier designs -- the fact that lasers are very precise little bitches, and that while the grooves I made for them gets them pointing in generally the right direction there still needs to be some way to do fine grained calibration. Namely, elevate the rear end of the lasers and make sure that they're throwing the beam parallel to the glass.

Next tasks: rigging up power for all 4 lasers, doing tests to find out how far away to mount the camera, and figuring out how to mount the lasers so that they can be adjusted.

For the support frame, I'm kicking around just getting an old vanity cabinet or something to hold everything. Still ignoring the project problem for the time being.

Wednesday, October 21, 2009

math fail

So it turns out that if you want to like, play with electricity, you have to do some of that math crap. It also turns out that when you see numbers like "3.2V 25m" the "m" doesn't stand for milliamps, it means milliwatts... and using that math stuff, that works out like 7.8 mA.

P = V * C (power [watts] = voltage * current [amps])
V = I * R (voltage = current [amps] * resistance [ohms])

I was testing the lasers out by simply hooking the power leads up to my cell phone 5.5V cell phone battery, but later we rigged up something a little more stable with a 9V battery, and some alligator clips on a 270 ohm resistor. Turns out that's pushing 33 mA on 300 m.

Whups. It still worked, but apparently overclocking the lasers means you lose some of their life.

In other news, I snagged a Logitech Quickcam for Notebooks (yes, that whole thing is the product name... no version numbers or anything.. "for Notebooks) for around $40. The cam is way easy to disassemble as everything is screwed together, and driver support for Linux is in most current distros. IR filter popped out easily enough. For the regular light filter, I tried cutting out a square from an old floppy disk, but it severely dims the IR light at a distance of about 3 feet. Going to try an exposed negative next.

Still trying to figure out what I'm going to do about mounting the lasers on the acrylic. The diameter of the laser (including the casing) is about 1/2 an inch which is about 13mm, so just sitting the laser on top of the acrylic is going to be about 6mm above the surface (and it needs to be at one). Thinking about just getting the acrylic so that there's an extra inch on each side and cutting 4 1/4 inch wide slides at 45 degree angles in each corner. That should let me sit the laser so the beam is just right above the surface, make it easy to secure with some tape, and allow me to easily remove them from the board to make adjustments.

Now I just have to find a way to deal with the nightmare of cutting acrylic... :(

Tuesday, October 20, 2009

IR lasers finally arrive

So it only took 11 days, but the lasers are finally here. Was talking with TheDude about how I'm going to power them, and he suggested a USB hack and pointed me towards this maximumpc article that covers the basics. Have already checked them out to make sure that the light is visible on the webcam I'm thinking about snagging by simply hooking them up to the cellphone battery for a test run.

The numbers: I got 4 lasers, 3.2V each, 25 mA, currently unknown resistance. The plan is to appropriate the USB cable from a dead MS Intelliexplorer mouse and use that for USB power source. The USB port runs 5 volts at 100 mA in lower power mode, so I shouldn't need to worry about asking it for more power or anything.

The shopping info: I ordered 740 nm lasers with 89 degree line splitters from aizix.com for $11 each ($8 for laser, $3 for splitter attachements). Not entirely sure I would recommend them, but as of right now I don't know of anyone else who isn't selling just the diodes or the laser already as part of some other device.

ToDo list:

1) obtain the acrylic sheet and figure out how I'm going to mount these suckers (estimating $20 for the sheet)
2) acquire a camera (thinking about a $20 gigaware cam from The Shack) and modify it to remove the IR filter and possibly in a regular light filter by butchering a floppy disk
3) splice work for the lasers and make sure that the camera can see the touches
4) clean install of linux on an old PC and see if I can't get the nuigroup software up and running

Projector and the frame to hold all this remains question marks for the time being.

Thursday, October 8, 2009

NEETS

Ok. Admission time. I don't know a damned thing about electronics, aside from the fact that capacitors are round and the big ones can probably kill you so just stay the hell away from them.

But it's become clear that some electrical work is going to need to get done in order to pull of the MT screen. The usual strategy of wait helplessly until New Egg sells isn't going to work this time.

So my new strategy was turning to Mr. I Grew Up MacGuyvering Radios Together with Bobby Pins and a Potato and Have an EE from the Air Force Academy -- aka, "Dad" for advice. But that went something like:

"Well, you'll need to get a couple of 82 ohm resistors."
"Wait. How'd you figure that out?"
*incredulous look* "You just take the voltage, add up the fronkus coefficient, and then subtract that from the average magnetosphere reading for the location where you'll be using the device."
"That doesn't sound right."
"And be sure you pick up a Henway with the breadboard at Radio Shack. You need a Henway, or this is going to blow up."
"What's a Henway?"
"Ohhhhh, about the same as rooster! HAHAHAHAH!"
".... You are so screwed when we start talking about whether or not to put you into a nursing home."
"Go do your own homework."
"Seriously. I'm going to watch 60 Minutes to make up the list."
"And get a haircut."

So I googled "electronic training that will really piss of my dad", and up came a link to:

NEETS

Google for the acronym if that link is dead... there are lots of places that carry mirrors of it.

Navy Electrical and Electronics Training Series. It's basically about 20 "modules" that take you through simple DC stuff, converting mechanical energy to electrical, radio waves, logic gates, and wraps up with radar. It's targeted towards enlisted personnel, so it's written for someone with a high school level education and slants more toward the trade side of things than dipping too far down into the theory.

In short, if you've ever been curious about electronics but cringed in horror at the thought of going through a college level EE textbook, this is TFM you should R.