Zeta's Stories: College
Jan. 7th, 2024 09:38 pmThis 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/.
----------------------------------------
----------------------------------------
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/.
----------------------------------------