zetasyanthis: (Default)
This is a collection of silly stories from my college days.

----------------------------------------

Rose-Hulman Internship Stories (This was an 18-month period at a Rose-Hulman Ventures, a consulting internship shop - Worked there two summers and while I was in class, hence all the stories.)

1. The Honey Gun

One of the projects I worked on was a desktop reclamation system for a common chemical used in DNA analysis, acetonitrile (ACN), which is otherwise known as Methyl /Cyanide/. As the name suggest, this chemical is /quite / dangerous, as it basically breaks down into methanol and hydrogen cyanide in the body, and is used to /dissolve DNA/. It's flammable in addition to this, and attacks most common seal materials (316 stainless steel, neoprene, and Teflon are basically all you can safely use to contain it).

Where this chemical comes into my life is the acetonitrile shortage of 2008, and a company buying some internship time to work on designing a reclamation system to recover the chemical from DNA analysis waste streams. This is theoretically not that difficult, you just have to add some methanol, and boil out the ACN. The trick is that you have to pump this stuff around and seal everything so that none of this chemical escapes the process as a gas.

Had the chemists involved in the project known what they were doing, this would not be hard, but I (an electrical and computer engineering intern, remember) basically had to do all the research to figure out what would be safe to use. I didn't initially find neoprene (mostly because I didn't know what I was doing either), and pointed us in the direction of stainless steel and Teflon.

So, I found us some electronics, motors, stainless steel vessels, teflon-lined tubing, and peristaltic pumps to keep everything safe, and the project, while delayed, was on track. This is where the chemists came in. They came in one day on voice call, /VERY EXCITED/ that they had just found a pump that worked (this was actually the hardest bit). They proceeded to ship us this pump, which weighed 50 lbs (!?!), required a 50HP motor (!?!?!), and was rated for 1500psi (OMGWTFBBQ!?!).

We never ended up using it for anything, but my boss at the time remarked that we could have used it to shoot honey across a nearby lake... The project ended up being cancelled as it took /far/ too long for me to learn everything that these guys should already have known, and as far as I know it's sitting on the shelf behind his desk as a trophy... I really hope he built the honey gun, though!

2. The Rivet Via

On another project for that customer, I ended up having to re-design a peltier (PEC) control board because another intern kept messing it up. I ended up messing up my first revision too, for a really weird reason. I carefully laid out the board, and everything looked good, but when I tested the first one, the thermocouple readings went absolutely /nuts/ as soon as the power (~10 amps or so) was delivered to the PEC. I'd been pretty careful to try and isolate the sensitive measurement side from the power delivery, so I was quite confused. What I'd missed, however, was that in one spot, I ran the ground for the PEC /in-between/ the pads of an 0805 resistor. Cadence (the PCB design suite) didn't catch this, as it went "yeah, that net is connected, it's all good bro!", but holy smokes did it cause a ton of voltage bounce!

Long term fix was a board re-spin with a bunch of vias added to connect that part of the ground plane correctly, but the short term fix? I drilled a hole in the board, put in an aluminum pop-rivet, and soldered it to the ground plane on both sides! Problem FIXED! :D

3. The Partially Etched Board

On yet another project during that internship, I ended up getting a batch of boards back from the assembly house, and ran into a really weird problem. One of the boards had a power-to-ground short, and it wasn't immediately obvious why. It was a really solid short though, and we broke out the time-honored internship solution: an old linear power supply we called the Trace Breaker, and the thermal camera! Application of /30 amps/ only really heated up the entire board, and disappointingly, didn't actually blow anything up! Eventually, I had to know what the hell had happened, and it turns out that there was a massive connector on one side of the board, under which the PCB was completely un-etched! I guess they just didn't dip that side of the board in the etchant, and certainly didn't do electrical or visual checks prior to assembly like they were supposed to???

4. how_many_digits()

Oh boy, this one. I don't have this source code, though I wish I'd gotten permission to save it somewhere, especially since it was thrown out by yours truly, but there was another project for a different customer that ended up running on an Atmel Atmega microcontroller. The device in question was an automated catheter inflation device (yeah, that sounds painful, doesn't, it?), which was intended to handle things without a doctor having to be there the entire time, saving the patient money (in theory anyways). (This was just a 'could we even do this?' prototype, so don't freak out too much!)

I had started at the internship just as this project was winding down, and about a month before the end of the school year. The previous intern was a Senior and had basically said things were ready to go, pending a little tweaking, and basically vanished on us with a severe case of senioritis.

It took one look at the codebase (I was a Junior, but not an idiot) and had to immediately go to my boss and tell him it would not ship for two to three /months/. The entire codebase was a horrible disaster, written in one giant main.c file that was approximately 3000 lines long. In addition to approximately /infinite/ bugs, some of which could have killed a patient (these catheters operated at approximately 30 bar (435 PSI), and are stress-tested to 40 bar (580 PSI)), it was a horrible mess and required a total rewrite before it could be delivered to the customer.

To his credit, my manager believed me, and as we went over the code (he was an engineer himself), gave me carte blanche to fix it as quickly as I could while maintaining some semblance of sanity.

I ended up ripping out all sorts of things, replacing his custom float printing library with sprintf(), like a sane person, and removing multiple places where he was doing /double-precision floating point division/ on the 8-bit CPU. This, by the way, takes over 40,000 CPU cycles to emulate in software (I forget the exact number), resulting in a /10 millisecond/ delay in anything else going on every time this occurred. This was the cause of many of the bugs, as the motor would happily keep running while the CPU was occupied doing ridiculous math computations.

The worst part of all of this, as I've already hinted at, was his float-printing library. There was a function in it (he at least used those, although not very often) called how_many_digits. how_many_digits' job was to calculate how many digits came before the decimal point when printing a floating point value. I'm not going to opine on whether or not you even need to do this in the first place, but what I am going to say is that there are a number of way you can do this, in /increasingly bad/ order. You can:

1. Divide the number by 10 until you reach zero, and use the number of iterations to figure this out.
2. Write an if and else if chain to divide by 10, 100, 1000... until you give up and just leave a huge bug in there since you're never going to write every condition for a 64 bit floating point number.
3. Write an if, if, if, if, if, if, if chain doing the same thing to force the CPU to calculate floating point division a dozen or more times every time you do this for no reason.
4. I'm sure there are worse ideas, but I can't think of one off the top of my head.

Care to guess what this guy did?

In the end, I fixed the hardware, fixed the software, and cut the cost of the unit by about 25% by simplifying basically everything and making it safer to boot. I call that a victory. :)

5. The Lab Tech

At the same internship most of these stories are from, I worked with a lab tech by the name of Jay. Jay was #goals, honestly, in that he told the worst dad jokes in the history of the world. His jokes were actually /so bad/ that his daughter came home from grade-school with a /letter from her teacher/ asking him to stop teaching her these jokes, as they were so bad they were causing disruption in class!

6. Flat Johnny

My boss, Jon, was a really fun and funny guy, but was /homicidally opposed/ to having his picture taken. I have no idea why, but he would literally /chase you down/, /rip the camera out of your hands/, and /delete the photo/ if you took one of him.

Naturally, this resulted in a slightly disgruntled employee taking advantage of this (not me, I promise - this was a friend of mine). My friend, we'll call him $mad_genius, found an old photo of Jon from a business function on the school's intranet. He proceeded to photoshop an arm holding a glass of wine and someone else's legs onto this photo, to the point where it looked hilariously legitimate, but still obviously fake. He then proceeded to have this printed /life-size on cardboard/ and had it /sitting at my boss's desk the next day at work when he came in. I heard the scream "WHAT THE FUCK?" from down the hall, and laughed my ass off when I saw what had happened, as I had had no involvement in this.

Jon immediately roughed it up a little bit and threw it (mostly intact!) into the dumpster outside, which happened to be empty. $mad_genius proceeded to rescue it, and then /take it around town/, posing for photos with all of Jon's friends, creating a fake Facebook profile with the name "Flat Johhny", eventually friend-requesting my boss, who flipped the fuck out when he saw it! He did end up conceding that it was hilarious and letting up on the photo thing a bit later, but yeah, that's the story of Flat Johhny.

Oh, and one more thing... he and his roommate (again, not me), ended up torturing each other with it... putting it in the shower so when they pulled back the curtain he was 'standing' right there, even suspending it above the other's bed while they were sleeping! I don't know how someone didn't end up murdered or dying from a heart attack, but it was /hilarious/ to watch from a distance!

----------------------------------------

(Different) Internship Stories

https://zetasyanthis.dreamwidth.org/40609.html

----------------------------------------

Misc College Stories

1. My Friend Lon

https://zetasyanthis.dreamwidth.org/40371.html

2. My Friend Mike

When I was in college, I had a friend of mine who was a TA in a computer science class. One day he had a student come to him, super upset, because he could get his program to work. My friend told him he could calm down that that he would help, and then asked what the problem was. The student opened up the source code and the problem was that he had used his girlfriends name, appended with a number, for every variable name... and lost track. My friend went WTF, laughed at him, and then told him he'd have to rewrite it. He also told him not to be a creepy asshole and sent him on his way. I'm not sure if he attempted to warn the girlfriend of this guy's stalker-ish tendencies, but I kind of hope he did. ^^;

3. Credit Hours

Rose-Hulman is... weird. They operate on the quarter system, but there's basically no way to count and end up with four quarters. The regular school year has three, an there's one main one in the summer no one really goes to, but if you count that, you kind of have to count fast track quarter and catapult quarter, which also happen during the summer.

Anyways, Rose is kind of crazy. They compress normal 15 week classes into 10 week quarters, so you end up with a lot of credit hours. I think I graduated undergrad with around 200 credit hours, which is kinda nuts. (Of this, 56 were humanities, so Rose did care about more than just math/science.)

4. Fast Track Calculus (CW: Anxiety)

So, about that Rose being crazy thing... Rose-Hulman has a course that I quite stupidly decided to take that starts six weeks before your freshman term, and ends one week before, meaning it's five weeks long. This course is Calculus 1, 2, and 3.

For those that don't know, this is a 45-hour equivalent course-load. This is, quite honestly /insane/. (Normal is 16!)

Okay, so clearly we need to modify things slightly to make this work and Rose /did/. They moved a lot of the actual calculation into Maple, a piece of mathematics software, which allowed them to accelerate the class quite a bit while retaining learning... to a point. They also made it extremely clear that we were expected to work together, and with 50 people in the class, that should be semi-possible right?

Well. They also restructured the class into a pass-fail format, but with a twist. Every day (except weekends), you'd have a 3 hour lecture, followed by a nightly (or weekend) homework assignment. To pass the class, you had to get an 80% or higher on all assignments (and the three tests through-out the class). If you failed to get an 80% on the first pass, you then had to complete the assignment or test 100% perfectly by the end of the class.

This is what we call a /death spiral/. I had the bad luck to get sick during week 3 of 5, and missed most of that week's assignments, and so ended up having to redo everything perfectly, /including/ many problems that even the smartest folks in the class (I wasn't even close to that!) had abandoned as ridiculously impossible!

I did end up passing, with about 2 hours to go before the deadline, but basically killed myself in the process. The longest period I was awake during the class was 4.5 days, at which point I passed out still doing calculus (this may be related to why I got sick), and it was so intense that by week 3 people were starting to forget words in conversations as mathematics basically took over their brains entirely. It was stupid and I will never do anything like this ever again!

If you have to be proud of the fact that you had no attempted suicides during hte class, and that this was the first class in 20 years everyone passed, you are an /idiot/.

Oh, and lest you think I was even stupider for doing this, I'd taken Calculus BC in highschool right before this, so I knew Calculus 1 and 2 going in! I just wanted to make sure I was on solid ground moving forward, and boy was that a mistake! I ended up getting home and sleeping for 18 hours, eating dinner, and then sleeping for another 18 hours, which didn't even /begin/ to complete my recovery. As a result of this class I ended up consuming around 750mg of caffeine per day by the end of Freshman year (at which point I ramped down to avoid an actual heart attack). Yeah, this was /stupid/ /as/ fuck/.

----------------------------------------
 
zetasyanthis: (Default)
Referenced photo link: https://drive.google.com/drive/folders/1wGiUvFtASJFRSqnujrxaQm49MkCs7HTX?usp=drive_link

$city had a flood that broke the 1000 year flood line in $year while I was an intern at $company. It was pretty crazy. Couple of bullet points:
  1. The flood ended up being really really bad, ending up at 37.5 feet above the normal banks of the river. This flooded... everything, for miles and miles down the Cedar river, especially $city itself, as it sits in the middle of multiple river bends.
  2. We initially used a Dairy Queen as a water marker, but had to give up on that when it went completely underwater. We then switched to using the main transformers at the downtown substation as our water level markers. I could be wrong, but I don't think that's what those are meant for?
  3. The five-in-one bridge over the river in downtown has a small dam, a utility corridor, A avenue deck, F avenue deck, and then I-380 on top. It ended up flooding up to a few feet below the top deck.
  4. The bridge in #3 was the only one open for a very long ways up and down the river, and we almost ended up trapped on the wrong side (work was north of the river, apartment was south of the river) one day. The approach road we took to the one other bridge still (20ish miles out of the way) open literally had water just lapping across it as we made it to the bridge itself and closed minutes later as the water was rising.
  5. The local railroad put trains on the bridges to weigh them down so the buoyant force of the water wouldn't lift them off their piers as the water flowed over them. However, they used an empty train on one bridge and lost both the train and the bridge???
  6. All but one of the pumps for the city were flooded, and the last was only saved by a last minute heroic effort (this is the isolated round building surrounded by sandbags) in the photos). We ended up on 20% water for the city for a few weeks, and things were a bit stinky without the ability to bathe.
  7. At the height of the floods, the square mile or so our apartment building was on was actually an island for a few hours, though we somehow didn't lose power or cell during that time. (We did lose cable/internet, though.) That was a bit freaky even though we were well above water level and in no danger at all.
  8. The local-ish power utility had their main HQ in downtown, a smaller secondary call center in Ohio, and a third even smaller facility elsewhere (can't remember where). The basements and first two floors of the downtown HQ skyscraper flooded, and the Ohio facility was wiped off the map by a tornado two weeks before the flood peak, so they had a really bad time. They literally had generators on the roof and helicopters flying interns into the helipad to man critical calls and equipment. (I know this because some $company interns had shared housing with theirs.)
  9. $company had to close their main plant elsewhere in the city when it lost power one day during the height of the floods. It got power back a few hours later, and as /people were losing their houses/, they attempted to force everyone to come back and complete their shifts. I did not come back after my internship despite a job offer because of this. :(
  10. I got these photos from a co-worker who was a private pilot. ($company designs and builds a lot of avionics and actually pays for ground school for their engineers so they will have experience with what they're designing.) He went up with a CNN photographer and got a copy of the photos, which I got from him. These are the ones you are looking at. :)
Misc additional stories:
  1. The internship had a rough start, as $company brought on many more interns than their IT department was prepared for to the point where they were pulling random computers out of conference rooms (including mine) to cover the gaps. Mine ended up giving endless trouble, was super under-powered for FPGA compilation, and had a monitor with a burnt out green electron gun or phosphor. I discovered this last one when trying to view a Powerpoint template on my screen, which showed as black, but was bright green on my teammates' monitors. My computer was also totally non-functional for two weeks after the internship began, which made it hard to do work. The network was also so overloaded it was common for the VOIP phones to be down so you couldn't even call for help. :(
  2. The entire internship project itself was a disaster, though in a positive way for the company. $company had started a number of projects over the last few years with the Analog Devices Blackfin DSP processor, a dual core DSP. This chip had all kinds of bugs and /absolutely horrible/ cache coherency issues at the time (hopefully fixed now) to the point where $company had created a common wiki internally for folks to report issues and workarounds between the /seven/ major projects using it. One of the projects just gave up and re-spun their PCBs, putting two chips on the board and disabling one core on each, which says a hell of a lot about how bad that must've been to deal with. My project (team of three of us) was to test out a new technology by Altera at the time, the C to H (hardware) compiler, /before/ it was potentially adopted by a larger project (shocking idea, I know). The idea was that you could drop a NIOS II soft-core processor on an FPGA and the compiler would be able to generate a co-processor for complex math functions (FFT in this case) and automatically hook it into the processor and call it when the code was due to be executed. The goal was to have normal software engineers be able to write FPGA code, saving the money on specialized FPGA engineers. Not only did compilation take as much as /40 hours/ on our underpowered machines, but you basically had to write your C knowing what hardware it would likely create, meaning you were just taking an FPGA engineer and having them write less efficiently (C vs Verilog or VHDL) with less predictable results. The compilation chain was built for Linux (okay), and ran Java and Perl (for a compiler???) on top of Cygwin, further slowing everything. Needless to say, this technology was not adopted for wider use at the time.
  3. One of my team members refused to indent his C code for whatever reason. I still don't know why. I ended up scripting a linter that would run before code commit on my system (and the third team member also copied this) to clean everything up. Later on in the project I got to chose a scripting language. I chose Python. ;) I still smile a little bit every time I indent a line of code because of this. :)
  4. There was a night where /every/ car (approximately 50) in the apartment parking lot (interns were in shared housing) was broken into with the exception of mine, because I left no visible electronics or anything else worth stealing in the car. I was quite unpopular for a couple weeks even though I had nothing to do with it, and ended up with at least on dent on my car likely due to that.
  5. I don't remember what all of their password policies were at the time, but I do remember two things about them:
    1. The password policies were so constraining, including restrictions on length, to the point that the default password they gave you was basically the most secure password you could actually use.
    2. They had the most ridiculous password restriction I've ever seen: Your password could not be a palindrome. What the fuck hashing algorithm were they using and what was so horribly wrong with it???
zetasyanthis: (Default)
That my work be silent, sleeping.
That it never fail the test.
That those who live their life because
will live and be their best.

That my time be spent in silence,
or in meetings, or at home.
That my mind see, forward-thinking,
to protect them, with mine own.

That the drawings, details, diags,
that I forever build
should seek to help, not hinder,
with the science that I wield.

That those who travel in them
or those who walk upon,
or those who curse the broken bits
shall live to see the dawn.

That all the harshest backups,
when everything goes wrong
shall shield them from time's reapers
and turn back death's sweet song.

Though they may never see me,
or see my heart imbued,
the love that now protects them,
the truth is, I love you.

Profile

zetasyanthis: (Default)
Zeta Syanthis

June 2024

S M T W T F S
      1
2345678
9101112131415
1617 1819202122
23242526272829
30      

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jul. 1st, 2025 07:47 pm
Powered by Dreamwidth Studios