
That's me up at the podium. (I got to give a speech.)
They line us up by major and in alphabetical order before we process behind a bagpiper out into the hall. By virtue of the alphabet, I'm next to Ratso. The departmental secretary bustles around, passing out little cards, with our names and any laudatory honors for the dean to read as we cross the stage, and arranging our hoods so that the school colors are properly displayed. When Humility Boy (all his regalia is fearfully disordered) asks her if she'll miss us, she rolls her eyes and says, "Well, yes, but maybe now I can get some work done!"
Ratso shows me his name card, with his name misspelled, but sort of phonetically, so he's hoping that the dean will pronounce it somewhat right. On my card, my name is spelled right, but my middle initial, which I left off the "how do you want to be called" form is there and really, I'd prefer my whole middle name to just "L", but obviously those forms were ignored. Ratso reads my card and says, "Hey, you got a sumo cum laude!"
"Hah!" I clench my hands into fists and drop into a horse stance. "Yeah, sumo cum laude. I get a special belt." (My fighting name could be Taka-no-seiseki.)
"Oh, sum-MA. What's that mean anyway? I got a magma cum laude."
Yeah, his grades were positively volcanic! Actually, all but a couple of the computer engineers had very high grades. I'm impressed with them all. (Geezer note: When I was their age, I was too flighty to have gotten through this program at all, much less with honors. It's a good thing I did languages and linguisticsat which I did quite well, thank you very muchthe first time around.)
Then the piper starts playing Loch Lomond and out we go.
All my final grades are in and I still have a 4.0! This is after seven years (full and part time) of work towards this degree, with one semester off for good behavior. Yeah, I know that on the Internet everyone and their mother has a 4.0. Well, I have one too.
Not that this matters to my clients.
I've had a couple translation jobs come in this week. I've told the project managers, "Yes! I'm even more qualified to do this job than beforeI completed a bachelor's in computer engineering just last week!"
Their response: "Oh Anyway, can you get this done by Tuesday?"
Yes, this has definitely been seven years and $30,000 well spent.
Today I took my final final. The ultimate final of this whole BSCE process. And now I'm done. And I'm not doing homework. Hah.
I'm studying for finals. I have one on Monday and one on Wednesday. Then I'll be done.
Or of a tunnel, anyway.
I just spent about two hours editing our humongous Hamster paper. The final Final Paper, as opposed to the evidently-not-really-final Final Paper that we had to turn in two weeks ago to the senior seminar professor and the God-why-the-hell-isn't-this-final Final Paper that we turned in last week to the departmental chair.
And this isn't the end of the Hamsters for me, oh no, because (1) I have to go over all of the operating details with Dr. Smith and the next student who's going to be working with Dr. Science this summer on something else but you know he's going to end up getting stuck with Hamsters too, and (2) I may be co-oping down at the research facility on some other project, but you know they'll be calling me over whenever anything comes up (because walking-talking documentation is better than the kind you have to read).
Yesterday, about a half hour before the deadline, we demonstrate the complete working Hamster system to Dr. Flight. We were ready earlier, of course, but Dr. Flight was busy, then he was gone, then he was busy again, then he had to eat a snack. Finally, still chewing, he comes into the lab and we point out all the features: synchronized data, weather station integrated into the interface, etc. Ratso spins the anemometer and wiggles the weathervane so he can see the little gauges on the interface jump.
"Okay."
He leaves.
"Well, that was the most anticlimactic thing ever," says Ratso.
"Well, I sat in on the demo by last year's team. It lasted a lot longer because their version wasn't working," I tell him.

My senior project
Tomorrow is the big day. Today could have been the big day, but when Ratso went to ask Dr. Flight if he'd like to see the Hamster demo a day early, Dr. Flight evinced no interest in seeing it a minute before he had to. Not that I can blame him. Look at it. The Hamsters are the green cards with all the wires hanging off.
When I go into the lab this afternoon, Mountain Girl and Ratso are working on the final report (or committing copyright violations on the school's wireless network).
"Did you get a new microcontroller from Dr. Smith?" I ask, wheeling my bookbag into the corner.
"Uh, no. Don't we need a new A/D too?" Ratso asks.
"No. Cali-boy and I fished one of the 'bad' ones out of the trash and it was okay. It only seemed to be bad because we using it with a bad microcontroller. So if you get a new microcontroller, we can get the system running with all three Hamsters and the Weather Hamster."
"Okay." Ratso vanishes out the door and reappears a minute (only a minute!) later with a fresh microcontroller. We program it and power everything up.
It all works! We don't get the magic smoke or anything.
Is not too horrible if you have breakfast at 6:30 pm after working all day. Although it doesn't leave you in good shape for preparing lunch.
Yes, it was another fun Sunday in the lab. With just a little bit more to go with the Hamsters, we decided to get it over with. We had to get the Weather Hamster collecting data from two sensors and communicating properly with the PC, all without disrupting the rest of the system which was working correctly.
This doesn't sound too bad, in theory. In practice, we spent three hours troubleshooting faulty hardware. Once we finally swapped out a microcontroller that would not for love or money write out a bit to Port E Bit 1, things began to go a little better. Also encountered: lack of analog voltage source for the A/D converter, totally non-functional A/D converter, timing issues with the A/D Obviously the A/D was the source of most of our problems.
With the lack of spare parts, I was very conservative about cannibalizing working Hamsters, lest we end up having no working system at all to demonstrate on Tuesday.
Ratso tried to desolder an old A/D converter from a partially destroyed board, but destroyed the A/D in the process. "Whoops! I bent it."
I finally let them pull a working A/D from its socket on a working board. Once we had a full set of working hardware for the Weather Hamster, everything started working (funny how that is) and it was just a matter of cleaning up the software. Stupid mistakes like setting a port as an output and then trying to read something into it.
The whole system is pretty much done now. We'd better demo for our advisors before someone breathes on it.
It's great to get these milestones knocked off.
Today was the day for all the senior project groups to show off their designs with a poster and any other appropriate displays. The guys who designed and built a paintball gun (reportedly able to shoot over 40 rounds per minute at some painful velocity) did their demo outside in an area marked off with police tape. Most of the rest of us were indoors with our posters. All my group had to show off was a couple circuit boards and a slide show running on Ratso's laptop. Along with the UAV group, we took over one corner of the lobby. They had the eye-catching planes and assorted (borrowed) laptops running video recorded from some of the successful flights. I noticed they didn't have the video from the plane that crashed, although they did have a bit of its tail on display in memoriam thereof. Also on display was the little Hot Wheels plane I got them as a pity plane after the crash. (Aww.) They were waving it around, talking about mini-UAVs, and pecking people with its nosecone.
Another group had a neat project that I hadn't heard of. They designed a system with both hardware and software elements that would recognize a song sung into it by a user, pull the song out of a database, and play it.
My team took turns explaining our project to visitors, including parents, cousins, friends, professors, and deans. I think my head will explode if I have to give the spiel one more time.
Mountain Girl and I have a working prototype of our smart Hamster synchronizer. We're being very careful of it, because we need to demonstrate a working system next Tuesday. In the meantime, we have a new toy: a real printed circuit board version of our cobbled-together synchronizer. The blank boards came in this week. Today Mountain Girl put the components on them: sockets, resistors, capacitors, headers, etc. We had to do a few modifications because the layout guy missed a few ground islands, leaving some pins not connected to anything. It looks pretty slick, if I do say so myself. It plugs into an FPGA board that manages the Ethernet connections and interrupts, and the whole setup is very compact. It's shiny too.
Once we check out the power situation (we already resolved a short from power to ground) to ensure that no chips will be fried under normal operating conditions, we'll drop line drivers into the sockets and take it out for a spin. Maybe we'll even be able to use it in our Tuesday demo.
We're back at the probe station, jabbing little metal probes on the wafers. The earlier problems with the station having been straightened out (anomalous readings were the result of crossed cables), we're seeing more reasonable performances from the devices.
"Hey, those look good!" The professor points out the current-voltage curves on the screen. "What wafer was this again?"
"Wafer 4."
"Great. Now let's see if we can find a 10 micron device that works." He scans over the wafer to a teeny-tiny transistor and drops the probes onto it. This transistor has the same threshold voltage as the bigger working devices and the really nice current-voltage curves. "Okay! Wafer 4 is going down in history. Let's see if a 5 micron transistor works."
The 5 micron transistor doesn't work. Its parts don't seem to be aligned quite well enough. We check devices located on different regions of the wafer, but get no joy.
The professor still loves Wafer 4. We move on to another wafer and look for working 5 micron transistors there.
I have to ask. "So what if you find just one 5 micron transistor that works? Are you going to say you have a 5 micron process then?"
"Well, no? We'll see why that one worked and make adjustments to the process to try and get the yield up. We may need to adjust the dimensions and maybe improve the alignment marks."
On Monday, all graduating seniors in the department of electrical and computer engineering have to submit a CD containing various assignments we've done over the years. Students in the other departments don't have to do this. This year the pressure is really on us computer engineering students because we are the class of record for our program's attempt to get accreditation.
I've got all my material together and now I'm giving it one last proofreading before I convert all the files to pdf's as required. I've observed that, oddly enough, the work has grown somewhat less polished over time as fatigue takes its toll. Part of the problem is that we've had to do paper after paper on the Hamster project, all of them basically the same but slightly different, until we're finally driven mad and allowed to graduate.
"Is 'Master' the right term of address for an unmarried male?" The King of Comedy is over in the corner of the Sun lab working on, I guess, a business letter.
"An unmarried male what?" I ask, because with the KoC it's good to clarify these things.
He squints at me. "Person."
"No, 'Master' has more to do with levels of formality. Like if I were your butler, I might address you as Master." I resist the temptation to launch into a lecture on Japanese honorifics. There's one itching to pop out.
"Yeah, but Okay, if Bruce Wayne got married, then his butler would address him as 'Mister'?" The KoC runs with it.
Oh, yeah. Like Bruce Wayne would get married. He'd have to move to Massachusetts. I stifle my smirk and continue. "No. Men are addressed as 'Mister' regardless of their marital status. Whether anyone calls them 'Master' is a separate issue."
"Oh. Okay. But then what's the deal with 'Miss' and 'Mrs.'?"
We discuss, with situational examples. But really, san would be so much simpler.
After a semester of processing wafers to build PMOS devices, it's now time for us to test the wafers and see if they actually work. I'm a member of the Tuesday lab group, but I'm attending the Monday lab because I'll be out of town tomorrow.
"That's cheating," the King of Comedy says after I justify my presence to him.
"No, it's not."
Once enough of the real Monday lab people show up, with various interruptions from others (including the Out-Holder who drops in to ask about developer, because the new developer he's using is totally stripping all the resist of the wafers, thus undoing all that lithography), we begin. Because the test equipment is delicate, participation in this lab involves watching the professor take measurements and hearing a few anecdotes about odd, observed effects that turned out to be nifty tunneling devices and other accidental discoveries.
"Like Otto Tittslinger, who invented the brassiere," the KoC puts in.
To the tune of neaner-neaner I sing, "You watch chick films."
"Hey, Beaches is, like, my favorite movie. I even have the soundtrack," KoC says.
"How old are you?" I demand. "That movie came out in 1990." (1988, actually. I just checked.)
"I'm very mature for my age," he says.
Now that gets a laugh.
"So anyway, the resistance of Wafer 4 is 800 ohms per square, which is consistent with it having the longer drive-in, but then Wafer 2 that had the fifteen minute drive-in had the same Huh. Let's take some more measurements." The professor puts another wafer on the probe.
We all dutifully record the measurements. Some wafers have a lot of variance: 300 ohms per square in one spot, 900 in another, with these spots being rather close together. Then it's time to measure the devices on another delicate test device. We start by checking the resistance of some of the resistors.
The professor says, "Okay. Now this resistor is a ten square resistor and we measured 500 ohms per square for this wafer, so what should the resistance be?"
"5000 ohms."
"It's 47 kilo-ohms," someone reads from the screen.
Students pace around the lab and grumble under their breaths. It's really amusing how they thought that somehow this was all going to work. Where did they intern that stuff works on the first try?
"Let's try it again with the light off." The professor touches the switch. The light is to help position the probes on the contacts, but reacts with the silicon enough to mess up the readings.
"132 mega-ohms."
"Woo! Light-sensitive resistors!"
"Nobel Prize!"
The professor is shaking his head. "No. I think I'm going to have to check these probes out. I think there must be something wrong, either with the probes or maybe the contacts are misaligned. Anyway, for your lab notebooks, you should all do the calculations to figure out what the values should be."
The KoC gets serious. "Professor. This whole semester's been a lie, hasn't it?"
Troubleshooting is an acquired skill and more than half an art. One thing it isn't: throwing one's hands in the air and saying, "I can't tell what's wrong. You figure it out. You know this stuff."
I need to figure out how to transmit this wisdom to the boys in my project team. I can't tell if they are genuinely clueless or if they're pretending so that I'll "show them how" by doing their work for them. The problem with their strategy is that we are running out of time and Mountain Girl and I have other things to do. There's also the small matter that she and I don't have some mystical, all-encompassing knowledge of the Hamsters, although it might look like it to someone who gives up at the first little Hamster tantrum.
Resting on the computer in the lab, I find two sheets of paper, paperclipped together, with a post-it note from Dr. Smith: "Check these carefully."
Care is not necessary. The errors are obvious.
This is the schematic and circuit board layout for the smart synchronizer. All the material that we provided, the schematic, notes, a drawing of how we wanted the layout to bewhy did we bother?
"I can't believe anyone would be this willfully stupid," I comment.
Pinocchio volunteers that he would be, so hey.
"Not even you."
Mountain Girl looks over everything. "This is hilarious! They had to go to a lot of trouble to short out all those connectors and wire up the LEDs backwards! Why would they even think we'd want to do that?"
"Maybe they think we're really stupid?"
Our board has two 40-pin connectors that are going to connect to two other connectors on an FPGA development board. Somehow, that didn't quite get through to the layout person, who put four 40-pin connectors and shorted them together in two pairs.
"Look, they changed the values of all the capacitors too."
This has me wondering about all the emphasis prospective employers put on good written communication skills. Why is it important if no one ever reads anything? Or even looks at the pictures!
We have to get all this straightened out before we can have the boards made. I haven't seen Dr. Smith since I found the papers. I think he took one look at the schematic and suddenly remembered some pressing thing to do in Hampton for the rest of the week. Or, as Oz puts it, he took one look at the schematic and thought, "Oh, no! She's going to fuss at me. I get enough of that shit at home!"
The guys are leaving the building as I arrive for class. "Hey! How are you?"
"Grouchy," I say. I have been for the last couple days.
"Well, we have good news! We got the microcontroller programmed for that one sensor! We thought we'd never get it done"
"Yeah, we were stuck, so we just asked Dr. Smith and he straightened us out in, like, fifteen minutes!"
That is cheering. "Great! What's next?" There's so much more to do.
"We showed Dr. Flight and he says that before we do the next sensor, we should get it talking to the base station."
That's what Mountain Girl and I have been working on all week. We've been making the progress of the slow loris. It's been excruciating. "You guys want to do that? That'll be fine with us," I tell them.
They exchange a glance and shrug. "Okay. As long as we can ask you stuff, since you know more about that part of it. Let's meet on Monday."
"Sure." We head on our separate ways. After my class, I go up to the lab to meet Mountain Girl for our usual afternoon coding and debugging session. We've been working on a "skeleton" for the weather station code to handle the connectivity of the microcontroller to the PC and on the PC end we've been modifying the base station code to load in and display the weather data. If we can get it working, the boys can probably just paste their code into the skeleton, and then deal with the host of problems that'll cause.
Mountain Girl designed some nifty gauges for the interface. It looks great, but the needles on the gauges aren't moving. The problems that remain are (1) something mysterious with the TCP/IP connection, (2) the data types aren't right except that they are, (3) the dummy data generating routine isn't acting like we think it is (although I think we got that fixed), and (4) something stupid we haven't thought of, because there always is.
She's already heard from the guys about their success of the morning.
"They want to take over the communications part. I think we should let them," I tell her. "So let's make it a short day today."
"Okay."
The first thing we try is slowing down the data transmission rate. I modify the microcontroller so that it only sends out one packet per second instead of thousands. Now when the system runs, the data are picked up and we don't get an error on the TCP line. But. The data are being incremented not by one, but by 512.
512 is a lovely number, that's two to the power of nine, and so very, very suggestive.
The Hamsters are little endian creatures, while the software used to create the base station (written by Mac dweebs) is big endian. This refers to the order in which the bytes of data are stored. When your data is two bytes wide, but your memory is only one byte wide, you have to break your data in half and store one half first: the big end or the little end. I used a byte swapping function in the base station to handle this, but the byte swapper is not working, as witnessed by our increments of 512. That's our increment showing up in the wrong byte.
I delete the byte swapper and replace it with a rotate bits function, which does the same thing, except that the rotate bits function works. This time, we run the system and the data are picked up, and we don't get an error, and the data are incremented bytwo. (Mathematically astute people would have realized that the increment of one to the high byte would have shown up as an increment of 256.)
"Does that matter?" asks Mountain Girl as we watch the data tick in, incremented by twos. "It's only weather and they don't need it to be that precise."
"Well, it's probably something simple. If the Hamster is sending data, then the PC ought to be receiving it." I consider our logic and set the base station to check the weather Hamster's connection twice as often, then sit back in my chair and watch the data load in, properly and with no missing samples. "So how long did that take? Fifteen minutes?"
"And all the hours we've put in this week."
I get to my digital design class early. I'm the first one there, so I turn on the lights, park my bag, and wander over to the window where I can admire the park and how the trees are greening up.
A few minutes pass. I'm still all alone. This is a little unusual; normally people start trickling in about this time. After a few more minutes, I take a brisk walk down through the department and see (1) no one in the labs and (2) the professor hunched in front of his computer and typing madly. He's got that "preparing for class at the last minute" look, so I figure we're having class.
The classroom is still empty.
Right at the time class is supposed to start, Guy with Too Many Cats comes in. "What's going on? Where is everybody?"
"I don't know. Was there an email I didn't get?"
"I didn't get it either." He sits down and we chat about Senior Projects, progress, and the lack thereof.
A few minutes after that, Dr. Flight shows up and the No Show King follows him into the room.
"Where is everybody?" Dr. Flight pulls the overhead projector into position and opens his box of transparencies. "We are having class today."
A couple more people come in.
The rest of us verbally abuse them for a while.
"Okay." Dr. Flight takes charge. "So there's only, like, 50% of the class here. I have to go down to NASA today, so I was going to make it a short class anyway. I take it there would be no objections if I let you have this as a project work day?"
No objections.
A couple more people come in as the rest of us are picking up our stuff.
Having finished our smart Hamster synchronizer, Mountain Girl and I are moving on, but the smart synchronizer has not yet released its hold on us. Dr. Smith offered to have a printed circuit board version of our design made up, so we duly worked up a schematic, a parts list, notes about the needed layout, and collected a batch of references. Then we sent it all to him. All of it, let me repeat. Because I figured he'd be wandering in and out of the lab, asking for more bits and pieces, and this way, whatever he asks for, we can just tell him that he already has it.
I'm too clever for my own good.
"Can you send me the parts list?"
"We already did. It's in the spreadsheet; each part of the project has its own worksheet." I am smug.
"Can you separate out the parts list?"
Still smug. "We already did. It's in the notes we wrote for whoever does the layout."
"I didn't read that. Can you separate out the parts list?"
I wilt. "Okay."
The boys are whining about the flakey microprocessor they're trying to program. In fact, the microprocessor is not flakey, but the documentation describing the internal timer structure thereof is quite opaque and they can't figure out how to make it do what they want. They are also behind on this part of the Hamster project, partly because they had some tasks they needed to get done first. Mostly because they didn't like those tasks and so they dragged their heels instead of getting them over with.
And now?
"This doesn't work. The clock speed isn't constant. How are we supposed to time anything with it?"
"Read the documentation. How are you measuring it?" I call back over the carrel from where Mountain Girl and I are struggling with the communications end of the problem (which, our part of the project being done (as in "completely finished except for proofreading our part of the paper"), constitutes picking up their slack).
"How can we divide down the timer? How fast is this clock supposed to be anyway?"
"Read the documentation. Or ask a professor." Who'll tell you to read the documentation, but whatever.
"This is awful! How can we work with this thing?"
"Hey, guys. Remember 'We don't want to do this analog stuff. We want to work on the weather station'?" I can do a fair imitation of them.
"Uh."
They leave the lab, return and code some more. Complain. They leave the lab again. Return. Try something else. Leave the lab. Return, followed by Dr. Flight who spends forty-five minutes or so straightening them out.
I'm kind of enjoying this.
The best way to figure out what's going on with a signal is to put it on an LED and look at it. If your signals are being naughty, they shape right up and start behaving. This makes it hard to diagnose any problems, but at least you can see the signals acting right.
I did this today with some counters I was trying to make count. Instead of right-acting signals, I got a Las Vegas type of effect, which was kind of exciting, but hardly illuminating. This time, the process of getting the signals into some kind of form that was compatible with the LEDs ended up solving the problem.
You can never have too many LEDs.
Stuff is working.
Mountain Girl got the synchronizer all put together. I found it on the bench this morning, plugged in the line drivers, plugged the synchronizer into the FPGA board and it worked like a dream, especially after I fixed some bad logic. (There's a bit more that needs more fixing. Tomorrow. Because I live in the lab.)
This afternoon, she tells me how when she finished it, she proudly showed it to Dr. Smith. "And he looked at it and said he'd seen better wire wrap jobs. I was so mad! I think for a first effort it's pretty good."
"I think it's great. It worked when I plugged it in. Did you tell him that it was Pinocchio who taught you how to wire wrap?"
When Cali-boy shows up, we get him to complete his parts list and test his circuit. He got this filter/amplifier combination working (finally), but hadn't plugged it into a Hamster board to see if it worked for real.
"Better test it." I almost don't want to know, in case it doesn't.
"You think I should solder it onto some perf board?"
"I think we should test it in the breadboard before we commit to solder."
Once we figure out a way to connect everything, we run a test and his circuit works to spec. Yes! We call people in to see. Witnesses are good. We take a screen capture of the waveform.
And the fourth member of the team?
"So, where's Ratso?"
"He hasn't been in today."
"Slacker."
So not quite everything is working. Yet.
I was wondering why not much was happening with Cali-boy and Ratso's parts of the Hamster project. Ratso got stuck with writing an extra software application to reformat the Hamster data, so I expected that he'd be behind. Cali-boy had kind of a not very fun analog thing to do, which I expected he'd get over with so he could work on the fun digital stuff. This did not happen.
Last week I took a closer look at our countdown and it came to my attention that we have to turn in a draft of our final report by 20 April. This means that we have to have something to report on before then. I made up a to-do list for us and set some deadlines.
"This Friday," I told Cali-boy over the weekend.
He had his circuit working on Tuesday.
Gah! Humans!
Why didn't I lay down the law weeks ago? Although he might not have listened then. Right now I have the weight of doom to back me up.
Wire wrap boards are a hot commodity in the computer engineering department. I had a batch of them that Dr. Smith ordered last summer. All semester, Pinocchio has been coming into my lab and begging on bended knee for these boards which are just what he needs for his project.
Last time, I said, "Look, this is our last spare. These last two we need for our project. If you need more, you have to get the departmental secretary or the supplies guy to order you some."
"But I don't know the part number!"
"It's printed on the board."
"But I can't order from Digilent. They'll only let me order from Digikey."
"They'll order from Digilent! Where do you think these came from?"
Today, during Dr. Smith's perambulations through the labs, he told me that he'd be placing orders, so if I needed anything, I should let him know. The next time I see Pinocchio, I grab our last wire wrap board and haul Pinocchio into Dr. Smith's office.
"We need more of these!" I wave the board. "We need a couple for our project and Pinocchio needs some for his project too."
This precipitates some discussion to determine that we actually need these particular boards and not some cheaper option, but the result is that we'll be getting more boards.
Later, I say to Pinocchio, "Now was that so hard? All you have to do is ask."
"But he wanted to know what I was doing with them! What does he think I'm doing with them? He was at my critical design review. I showed them the board I was working on "
One of the many fun things about soldering components onto a wire wrap board.
We've done enough testing on the hardware for the smart synchronizer that we are ready to commit to solder. Up to now, we've been working with what looks like a bilious mass of spaghetti, piled on a breadboard and loosely held together with banana plugs. I'm actually quite amazed that it works at all.
For the past week, Mountain Girl and I have been getting together a schematic, verifying all the pinouts, and making notes about the synchronizer. Dr. Smith has even said he'll have a printed circuit board version of it made up, which will plug in to the FPGA development board and look all professional-like. If we give him all the design information tomorrow, we'll get the PCB sometime after graduation? In the meantime, however, we need a stable prototype for more testing and development, so it's time for us to brush up our lame soldering skills.
We really only did soldering in one intro level class, years ago. You'd think the curriculum might emphasize assembly as well as design, but I guess there's no time. So here we are, saying rude words as the solder balls up on the soldering iron and not on the pins. This is the easy part. Once we get all the components soldered onto the board, we'll have to wire them up.
"It's going to be mind-numbing," Mountain Girl says with authority.
So, I pass Woolstar's remark about the "Unmanned Autonomous Posthole Digger" on to Skipper, who fails to be cheered. He looks stricken and I immediately feel guilty. "But I really hope you all get it finished "
Anyway, after I finish up in the lab, Oz and I go get lunch and errands. We pick up various necessaries at Target and can't avoid walking past the toys and electronics. While Oz fondles cellphone chargers, I wander into the next aisle and the Hot Wheels display catches my eye. Die cast stealth fighter jets for just US$1.97. We get one.
When I run into the lab later, Skipper and Pinocchio are still working. I fly the plane in its bubble pack over to them. "Look! A new airplane, just for you."
"What's this? A new UAV?" Skipper picks it up.
"Yes! A new UAV! UAV-5!" Pinocchio raises a fist into the air.
"UAV-5!"
You guys are going through these really fast.
My lab has three doors: one to the hall way and two into the neighboring labs. Most of the time, the door to the lab where the guys are working on DOGS is open. The other door has never been open. There is a sign on it, hand lettered with magic marker: "Keep this door closed at all times." I sit with my back to this door.
I'm coding away at the Hamsters and suddenly I hear a voice over my shoulder. The door had opened!
"Do you have any capacitors?"
I turn around and see a guy, another one of us older students, standing in the doorway of The Door That Must Not Be Opened.
He explains. "We're working down in 205. We're having some noise problems and we just need a little one, maybe a hundredth of a microfarad." 205 is at the far end of the hall. He must have passed through every lab between here and there.
"Sure. The capacitors are in here." I lead him into the DOGS lab and show him the cabinet of components over by where the guys are working on their flight simulator, the graphic display of which shows the plane embedded in the ground. Everyone offers him a capacitor and he takes his leave, thanking us, with a collection of them.
I also sit with my back to a little table saw and a drill press. The people down in 205 have been in and out, via the hallway door, all semester to cut things up. Today they've been slicing apart a perfboard. They cut it in half, leave, return in fifteen minutes, cut off another piece, et cetera. Perfboard smells when it's getting cut up.
They're back again. "We're going to make some more noise."
"That's okay." I turn around and eye the table saw. "You know, there was a safety guard on that thing. We took it off early in the semester because what we were cutting couldn't fit under it. I think it's still around. Somewhere." I stand up and poke aimlessly through some lab detritus.
"Oh, no. Those things just get in the way. Besides, I haven't lost a finger yet. But I'm working on it. See, I sort of drilled my finger." One of them holds up his hand to show me.
Before I can see more of a yucky spot on the indicated appendage, I cover my eyes and cry, "No! Don't show me. Euw!"
They think this is really funny. It takes a while, but finally they stop comparing accidental body perforations, cut up their perfboard some more, and go.
Skywalker appears at the hallway door with a clutch of hand tools. "Have you seen a bicycle floating around?"
God, I love Fridays.
A bicycle floating around would be much remarked upon, especially by the summarily grounded DOGS team. "A bicycle? Floating?"
"Yeah. Green? Huffy? We're using it for a club project. We left it in 205, but it's not there now. So I figured someone might have moved it," he says, glancing around at the battered fridge, stacks of computers and airplane wings, and scraps of projects from students gone by.
"Nope. Sorry."
"Oh well." He doesn't seem much disturbed by this and continues on his quest.
I wonder if I should go see what's going on in 205.
The project in the next lab is a UAV (whatever that stands for. It's an autonomous model airplane). Pinocchio decided to call it the Dynamic Over Ground System (DOGS). Every time someone mentions the name, Skipper sputters, "But it doesn't mean anything! It's meaningless!"
They've had some problems getting it off the ground. All this semester, the weather has not been cooperative. On the days when they go to fly, it's raining, or too windy, or something. Last time, the weather was cooperative.
The instrumentation was not.
The GPS altimeter failed and the little airplane decided that it needed to descend. Immediately. Abruptly.
They had to dig it out of the ground. The battery, which sits at the back of the instrument compartment, had slid forward, down through the instrumentation, so the bits that hadn't failed are now bits of bits.
Word got around. Faculty members talk to each other, it seems. In the seminar class a few days later, the professor was going over the different requirements for the senior projects and mentioned how we should have our project ready to display for the open house. "But if your project has taken a dive, you'll have to think of something else. And if you're running into design problems, or you find that your design has crashed and burned "
Tell. Us. What. You. Want.
It's a good thing the guys from the research facility aren't around because I'd be shaking them by their necks.
Ratso finally completed his file formatter software. The researchers provided us a little program for analyzing the formatted files so that we could be sure that we were getting them in the right format. We couldn't just send them the software without testing it, after all. (We really wanted to. We want to get this over with.)
So we tested it and found that, while the waveform we graphed was recognizable as the waveform data we collected, it was seriously distorted. After cursing and trying some stuff that didn't work, it was back to asking questions that no one knows the answer to. The information about formatting that we had finally managed to extract from them didn't mention that the data had to be in a certain format. 16 bit integers are not all created equal.
The first answer we got was, naturally, "try some stuff."
I have learned not to take that for an answer.
I asked again, we tracked down the person who knows, and got a real answer. All we had to do was add a certain number to the values we collected to get an integer compatible with their software. And that took much less time than "trying stuff."
"The last time we went through all these steps, it didn't take this long."
"That's because last time they didn't have the stripper in stock, so we couldn't do all the steps."
"Oh."
"What's wrong with the aligner?"
"And why is it hot pink, anyway? I want to put Hello Kitty stickers on it."
We hover around the aligner while the TA scrutinizes the instructions and tentatively pokes buttons. We take turns fiddling around with the various joysticks and squint into the microscope to see if the mask and wafer line up. They don't. This happens after we try to measure oxide layer thicknesses with the Filmetrics machine that also is not working today. Our lab notebooks are woefully blank, but we do save time in all the subsequent steps where we're supposed to measure oxide thickness.
"Why can't they get us a decent aligner? How much did they just spend on that stupid new cafeteria that I can't even afford to eat at? A billion dollars! And we have to do lab with broken equipment!"
This lab takes three hours. On the upside, my protocol jumpsuit was missing, so I snagged a size M one from the stock and got to wear a suit that actually fit.
I have a little touch of laryngitis, too, which doesn't help.
Today we have our Critical Design Review, in which we present (with PowerPoint, because they are gluttons for punishment and asked us to) our professors with the current status of our senior design project. They are then critical. We actually came through okay with that, although Dr. Smith had lots of suggestions that had to be fielded graciously. Screaming "No! Not more suggestions!" not being an option. Not right now, anyway, but give me a few more weeks
Once that's over and my brain is partially fried, I run downstairs to drop off my resume with the recruiters from Division of Large Chemical Company who are hanging out in the lobby today. As I am expecting that they will glance at the resume and direct me to the company website, I am caught off guard when they are sociable and want to talk with me. My poor brain lurches around, fixates on how this Division of Large Chemical Company is a joint venture with a Japanese company (and I should have done a little background research on them so I wouldn't sound like a total idiot, but we were preparing for the CDR), and compels me to brightly mention, "Hey! I speak Japanese and I have over ten years of experience translating patents for the exact kinds of stuff you manufacture, among other things!"
I am even more caught off guard when these people are actually interested. Thus far recruiters, even from companies that have design and manufacturing facilities in Japan, have appeared to view my skill set as a variant of smallpox inasmuch as they smile nervously and edge away.
So I chat and am sociable. I end up talking with the whole crowd and am proffered business cards. I try not to cough on them.
And checking it twice.
They sent out the list of graduating seniors. I'm on it this time! I wasn't on the first iteration (frantic visit to advisor ensues: "What else do I have to do to get out of here?"), but my advisor must have gotten all the paperwork in on time. Now all I have to do is get nothing less than a C this semester and I'm free! I can manage that. (I'll be happier about it when I can stop fretting about the dumb stuff I didor think I didon the microfabrication midterm.)
It's like being a short-timer except that two months in Engineering School Time is a lot longer than two months of normal life.
Today I finally got the code straightened out. The smart synchronizer I've been designing for the Hamsters has thus far not been very smart. I've gotten the pretty LEDs to light up and all, but I haven't been getting any data out of the Hamsters. Today I got data! All that remained was to generate proper interrupt pulses out to the Hamsters so that the critters would collect some data. I wrote the logic for that, fired everything up and finally, for the first time in weeks, we had Hamster data scrolling across the display. And it was perfectly synchronized.
Carrying a bottle of Mountain Dew, Mountain Girl comes back into the lab. "So I just got this out of the vending machine, but the safety seal band around the bottom of the cap is missing. Do you think it's safe to drink? Or did the person who stocked the machine open it and put something in it?"
Here ensues a discussion of bottle-capping and the difficulty of getting those safety bands off. Much is hypothesized about the soda bottling process and the bottle is passed around. MG decides that she'll just go get another bottle.
"Let me see it," says Ace. "I can prove that it's safe." (It's really too bad I can't use his own name, because it's the perfect name for him and a cool name. Seriously, if I put him in a lineup and told you to pick out the guy whose name is _____ _______, you'd pick him in a heartbeat.)
"Oh yeah? You can show that it's mechanically safe?" I ask.
"Yeah, mechanically safe." Ace is really EE, only minoring in ME, so he didn't have to get the lobotomy.
MG hands over the bottle and he examines the base of the cap. He shows it to me. "The last thing they do is stamp the date on the cap. See here? You can see where they stamped the date onthere's some ink on the edge of the cap. And right below it on the neck of the bottle is the ink from the rest of the date." Indeed, the inked spots line up perfectly.
"Great. I'm still not drinking it," MG says.
"Can I have it?" Ace asks.
"Sure." She goes back down to the vending machines.
He opens the bottle, which emits a satisfying, carbonated hiss. There's a free song under the cap too.
"But I thought your laptop was surgically attached," I cry. I'm in a state of shock, standing here in the parking lot where I've run into Ratso (on foot, not in car).
"Well, it was. But I left it at home today," he says.
All the data is (or "are" if we're being Latin) on the laptop.
Okay, backstory: Our new Hamster system generates data in a different format from the old system. Dr. Science et al. want to plug the Hamster data into the software they've been using to analyze data from the old system to see if it's "the same" (or at least similar if collected under similar conditions). After we set up the Hamsters down there, they suddenly started demanding a piece of software to convert the data into this format that nobody really knows what it is. Anyway, since Ratso's part of the rest of the project hadn't started up yet, I stuck him with it because he's the one who does Visual C# and I knew he'd hunch over his laptop for hours at a time, even during classes, once he got started.
Yes, I am evil. Taking advantage of a young man's obsessive compulsive disorder like that.
But he's done now and we need to test the files he generated with some of Dr. Science's software to be sure Ratso's conversion program works right before we send it down there. And we can't do it today, obviously, if the only copy of the software is somewhere out in the West End.
I bet he doesn't even have it backed up.
Pinocchio comes into the auditorium for the seminar class. He steps over a row of chairs, as I am so inconsiderately sitting at the aisle and blocking the end, and settles in near me.
"I saw someone cutting wires on the Hamsters," he says.
"Did you stop them?" I know better than to react.
"Really! Someone was cutting wires and bending the microcontroller modules to see if they could bend," he insists.
"Didn't you hit them?"
"They were breaking things in half!" He opens his eyes wider as if that makes him more believable.
"And you didn't stop them? Why not?"
"The door was locked. But I banged on the window, they were cutting wires "
"Oh, you know how to get into that lab." I roll my eyes.
From behind my chair, where he's hiding with his laptop near a power outlet, Smiley calls to me, "You are cool. Like " (Here he kind of mumbles and I don't quite catch it.)
"Like what?" I twist around and peer down at him.
"It's from a game," he says.
"Oh. Okay." I guess.
Some of the other guys nod along with him. And smile. Even Pinocchio.
It would be really cool if I could remember the game he named and get some confirmation on this.
More fun in the clean room.
Today we are spinning glass. In order to get some boron ions into our wafers, we have to put some onto the wafers first, in the form of a liquid boron-silicon mixture. The coated wafers will then be baked and the ions will worm their way into the silicon. In order to get a nice, even coating, the wafer is spun at a very high rate (2000 rpm) after the liquid is put onto its surface.
Using special wafer tweezers, I place the wafer on the chuck (the spinning thing that the wafer sits on) and try to center it. If the wafer is off center, it will fly off the spinner and break. I press the vacuum button so that the wafer is sucked onto the chuck and give it a little spin. It looks sort of centered, it's difficult to tell because the wafer is not circular (it has a couple flats ground into the edges). Also, I can hardly see because of my old glasses prescription (no contact lenses in the clean room), the safety glasses I have to wear over them, and the fact that we're in the exposure area which is lit with yellow light.
I turn off the vacuum and nudge the wafer with the tweezers, turn the vacuum back on again and evaluate its centeredness. "Is this okay?" I ask one of the others. "I'm a real perfectionistI could be here all day."
"That's fine."
"Okay." I squeeze the liquid glass from an eyedropper onto the wafer, put the cover over the spinner, and let it spin.
The wafer does not fly off and shatter. The honor of the Tuesday lab group remains unstained by wafer breakage.
I was trying to write about the latest incremental and horrifyingly minor breakthrough we've had, but I keep running through signal assignments in my head in an effort to determine whether the design will work under certain circumstances. I think it will, but it all depends on delta time. And I should test it under those circumstances.
I should stop thinking about it.
Delta time is an interesting aspect of hardware definition language. When you change the value of a signal during a process, that value isn't updated until the end of the process. So I've got all these decision statements (if-then-else) and I'm trying to visualize what the values of the signals, changed in an early part of the process, are when the decision statements are being executed. The whole thing is supposed to detect when a signal changes faster than a certain rate, so with everything changing all the time and decisions being made based on how things change, it all gets quite confusing.
Anyhow, I'm confused.
I should stop thinking about it.
Right now.
(But I think I really got it working. This time.)
We've done so many about faces that we're back where we started. Finally.
Our design doesn't fit on the development board we are using, even after we break it into two parts and try to put the parts on the two chips available on the board. Then we decide to switch to a different board, not that we had any other options, and made up the necessary file of pinouts for that board. (The synthesis tools use the pinout information to link the actual wires on the board with the signals that we describe in the hardware definition language.) Once that's done, we work on revising the logic to work with the quirks of the new board. Then when Dr. Smith is helping us with some "bad synchronous description" errors, he mentions that he's got a better board and why don't we use that instead?
His board really is better. So it's back to making another pinout file, because the pins are totally different. We find, however, that this board is so much better that its documentation is ten times as long as the documentation for the other boards we tried. Likewise the chip on the board has got documentation that's two hundred times longer than the documentation for the other chips. Because printing out three hundred pages of stuff will annihilate our print allowances for the semester, we have to root around in these massive pdfs to find the information we need, which is oddly sprinkled through these many, many pages instead of collected in a handy table, as it is for the inferior chips.
So call me Grouchy.
We then spend the rest of the day troubleshooting weird errors that turned out to result from how all the components that were active low (need a '0' to turn on) on the other boards are active high (need a '1') on the new board. Except for the ones that weren't. Of course, if we had reviewed the umpteen pages of documentation, we would have found this out beforehand.
Now that that's all resolved (for the moment), we can start trying to figure out why it doesn't work.
The first thing I hear on the radio this morning is the weather report. They're talking snow, like six inches. No way! I check the weather page and they are saying no such thing, just a little sleet maybe.
By the time I go in to class, I've forgotten about it, but my fellow students are buzzing. We sit in our seminar class (where showing up is 99% of everything) and consider the weather.
"It's not going to happen," I say.
"Oh yeah? But Pinocchio washed his car today," Ratso counters.
"You did?" I ask Pinocchio.
"Yeah. It looks really good now."
"How much did it cost?" Cali-boy asks a leading question. "Twenty dollars?"
"No! It was $16.99."
"You paid sixteen dollars for a car wash? You know, the Rainbow Wash is only like twenty cents," Ratso says.
"Yeah, but I didn't want to get out of my car."
"So that's the indicator of whether it's really going to snow? Pinocchio spends a lot of money on a car wash?" I ask.
"Yeah," Ratso says, as if I should have known.
Class begins and we subside. Since we sit in the far back corner of the auditorium, the others play with their phones and laptops during the lecture. Text messages fly. I notice that the young man in front of me has a girly picture on his phone. When I comment on this later, I am told "No, that's not porn, it's wallpaper. Completely different."
Ratso is surfing on his shoe phone (it's not actually a shoe phone, but it's almost as big as one; it's a sort of hand-sized mini-laptop). "Psst," he whispers to me and holds it up to display a satellite image of a massive storm front bearing down on Virginia. "See?"
I solved my time stamp problem. It was, as suspected, programmer error. The software that the Hamsters interact with has a structure that is both sequential and layered. I just needed to move the time stamping process to another layer.
Now, on to the next problem! We've been working on a "smart" synchronizer for the Hamsters and, now that we've got our logic designed to work with what the hardware is actually doing, as opposed to what we thought the hardware was doing, our logic will no longer fit on the CPLD we're using to implement it. Unfortunately (or perhaps not), streamlining the logic is probably not an option because our current design requires 142 macrocells (spaces on the chip where the logic is put) more than the CPLD has available and I'm not sure that we can design away 47% of the logic without designing away 100% of the functionality. Fortunately, the CPLD sits on a development board with a second and as yet untapped CPLD. Having the two chips work together will involve a host of juicy clocking problems.
Lucky us.
Or maybe I'm just going nuts.
Dr. Science and his crew want to compare the Hamsters with the pre-Hamster system. In order to do that, they want to be able to take Hamster files and dump them into the same software they've been using to analyze data collected by the pre-Hamster system. All quite reasonable except that the Hamsters generate data in a different (better) format. Consequently we've been stuck with creating a program that will take Hamster data and convert it to the pre-Hamster format.
Which is easy, theoretically. Except for the slight matter of how no one actually knows what's in the files generated by the old system. Or at least, that's what you'd think given how difficult it's been to get that information out of them. In defense of Dr. Science et al., the old system was built twenty years ago and the people who developed the software are long gone.
Today I finally dug through all the files they've been sending and found some answers. Ratso's mostly got the conversion software working. Now it's a matter of having the Hamster system generate a little extra data for Ratso's software to add in to the file it generates. One of the things we need is the start time and end time of the data collection session. It only takes five minutes to add a feature to the Hamster system so it will write out a file with the requisite time stamps. We hook up the Hamsters, have them collect data for a few minutes, then check the time stamps.
Oddly enough, the end time is earlier than the start time.
I know that time travel is not a Hamster feature. (We won't mention that to Dr. Science, because he'll get nanotubes involved and we'll get the kind of spec creep that haunts my nightmares.)
Hunched behind a monitor, Ratso says, "I think we should just let them worry about it."
"Yeah." I leave the Hamsters to run overnight to see if this happens when the start and end times are hours apart instead of only minutes.
Remember that '1' we were so frantic to get yesterday?
We can't use it.
The line drivers are not behaving as I had assumed they would. Regardless of whether the Hamsters are putting out a '1' or a '0', the line drivers which receive the signal from the Hamster and send it on to the next level are always at '1'. At first we thought the issue was the crossed wires we found on the PCB (courtesy of the last Hamster team), but upon further review of the line driver documentation (Whoo hoo! More documentation!), I noticed where it said "A and B will be high when the line is inactive." So when the Hamster sends out an unchanging '1', the next stage receives an unchanging '1'. However, when the Hamster sends out an unchanging '0', the next stage receives an unchanging '1'. Since the logic for the next level is looking for the change between '1' and '0' and back again, this is obviously not going to work.
The solution is simple. We have the Hamster send out pulses when it's ready to start collecting data and a '0' (in effect, a '1') when it's ready to stop. We write a pulse detecting process for the next level so it can know the difference.
The two-and-a-half hours we spent yesterday on getting that '1'? Well, the extra familiarity with the Hamster documentation certainly won't hurt
Mountain Girl and I are working on the Hamsters. We've put together the hardware, modified the software, synthesized a control circuit onto a CPLD, and now we're trying to figure out why it doesn't work.
We knew it wasn't going to work. We were prepared for that.
The first order of the day is to trace the problems back to the One True Error, the source of the cascading series of problems that leaves our pile of wires and circuitry with the status of junk. We go wrong at first by assuming that when we program the Hamster to write a '1' out to the Port F Pin 5, which we must use because that's how it's wired on the printed circuit board (to do otherwise would involve mutilating the board and soldering wires onto scratched up traces), the Hamster does indeed write a '1' out to that pin. We used the WriteBit() function, after all. It should write out a bit, right?
Once we finally discard that assumption, we put a probe on the pin and find that we get no '1'. We use assembly language and write a '1' to the pin by force. No '1'. We double check our Port F initializations and initialize Every Single control register to make sure that the port is set up to do what we want.
Port F ignores us.
We make pointed comments while casting sidelong looks just over the microcontrollers.
"Gee. I wonder why there are no hammers in the lab."
"Bad Hamster, no kibble."
We read more documentation. At this point we have six browser windows open to the various documentation files for the Hamster microcontroller. Repeatedly we are informed that Port F can be configured for output and how to do it. Repeatedly none of this works. Based on some characteristics of the more special control registers, I become suspicious that this is a problem with the data not getting clocked out to the port ever. I think that the "pclk" that is the default is a peripheral clock that does not actually exist. (The more I think about it, the more certain I become. We should probably have examined the other timing options but we were getting tired. Okay, so I just rechecked the documentation because I live to read documentation and that is not the problem. I think that the reference to the conflict between Ports A and F is perhaps not as complete as it ought to be.)
At last we review what did work. Port F Pin 5 was used to send out a pulse-width modulation signal. We find that if we use the PWM() function, we can set the duty cycle to 100%, making the pulse high all the time and thereby giving us our '1'. When we want a '0' we set the duty cycle to 0%.
This works.
I don't like it.
When you form a layer of oxide on a silicon wafer, the color of the wafer changes according to the thickness of the oxide. This property is useful for eyeballing the thickness of your oxide, and certainly for visually identifying which wafers have been oxidized. It's also been used to create chip art (There's more onand morechip art at the Chipworks Silicon Art Gallery and some downloadable chip art wallpaper at Florida State University's Molecular Expressions) and, of course, IC chips.
Today in microfabrication, the professor mentions the difficulty of getting the resist to adhere to the wafer and how sometimes they end up spending hours in the lab trying to get resist to stick on a wafer that's being patterned with an image and text to give to a university donor. Mostly because they use old wafers that have been sitting by the oven for years. "Maybe you've seen them lying around the lab? You'll all get to make one at the end of the class. You can put anything you want on it"
"Hey!" The class perks up.
"as long as it's not obscene."
"Aw, man!" The back row is disappointed. I wonder what they wanted to put on their wafers, but I think I'd rather not know.
So, what shall I put on my wafer? I'm thinking of something for Oz, along the lines of "My girlfriend went to engineering school for seven years and all I got was this lousy wafer" or maybe something in Japanese like a big 気 (ki). Oz says that since I'm so miserable in the clean room I ought to keep the wafer as a reward (to remember the experience by?), but I can't think of anything to put on it. Maybe a riff on Rene Magritte's La Trahison des Images: "Ceci n'est pas un wafer." Or maybe Kitty-chan, she's everywhere.
Origami Girl bounds into the lab where Mountain Girl and I are working on the Hamsters. Since she's EE and our programs have diverged, we don't have any classes together anymore, so it's Old Home Minute.
"Guys! Would you believe that I got into grad school without totally applying?" she says.
"How's that?" "Where?"
"UVA! I started filling out their online application, but I never finished and then I missed the deadline to apply for financial aid. So I figured that was that, but then I got an email telling me to finish my application. I worked on it a little more, but I was tired and I figured, hey, no money, so why? And then the other night at, like, 1:30 am I checked my email and it said 'Congratulations! You have been accepted ' and I thought, now which of my friends did this to me? But it was real!" Origami Girl demonstrates high frequency oscillation.
"Well, congratulations. Are you getting a fellowship or something?" I ask.
"I don't know. I'm going to the information session and we'll see. I'm looking for a job around here anyway." She shrugs.
Unasked questions get answered too.
But if I am not present, then I don't have to hear the answer.
In theory.
Okay, not to get all philosophical, but we are taking a closer look at this commercial weather station that Ratso thinks we can back engineer. I thought that wiring up a couple sensors to a microcontroller would be sufficient, but Ratso works at a marine supply store and has spent too much time staring at the stock and getting ideas. Hence the fancy weather station and its soon to be voided warranty. Each of the sensors on this weather station outputs data in different forms. Each sensor has a wire. Getting the data out of the wires and into our microcontroller will not be as simple as hooking the wire up to the microcontroller.
"No, the Hamster wants digital data. It can only read in 1's and 0's. What's coming off the wire is a variable voltage. The Hamster can only interpret that as either a 1 or a 0," I explain to Ratso, who's just brought up the "hook the wire to the Hamster" idea.
"But it's a DC signal," he says.
"Yeah, but that's not digital. We need it in bits. We'll have to use an A to D converter. Once the Hamster reads in the bits, it can interpret them as the actual data. We'll need, like, maybe three bits for that data?" I wonder.
Ratso looks blank. "So we need a three-bit A to D converter? But it's a DC signal."
"Well, yeah, but I don't know if there is such a thing. Maybe you should ask Dr. Smith?" I know what he's in for, but I say it anyway.
Ratso goes to Dr. Smith's office. Mountain Girl and I work on our part of the project, finishing up the logic for the FPGA part. Then we try to compile and start cleaning up compile time errors.
Time passes.
"I wonder what's taking Ratso so long," MG says.
"I guess he's getting lots of answers. Do you think I should go see? On the other hand, that'll just distract Dr. Smith and it'll take that much longer to get Ratso out of there." Besides, Dr. Smith might well free associate a bit more spec creep for us.
Time passes. We clean out synthesis errors, resolve all the warnings that pop up during the translation process (compiling to hardware has a lot of steps: compilation, translation, synthesis). Continents shift.
I say, "Maybe I should go in there and get Ratso. ButDr. Smith will come up with more stuff for us to do. God, I'm turning into such a hider, but that's the only way we're going to keep this project under control!"
Time passes. MG and I discuss how the software for other parts of the system need to be modified to work with the hub we're devising. I check my watch. I have class in a while.
Ratso staggers up to the lab and leans on the doorjamb.
"You get an answer?" MG giggles.
"I got the life story. He says we need a twelve bit A to D converter so we get enough resolution. I'm supposed to go ahead and order samples." Ratso lurches over to his computer and goes to the website of a chip manufacturer. He pulls of a screen filled with a full listing of A to D products. "Where do I even begin? What are all these?"
"Why don't you go askPinocchio? He's using a twelve bit one in his project," I say.
Ratso mutters, "We've got sixteen bit ones upstairs. Why don't we just use those? Butoh, nothat'd be overkill, he says."
Oz says, "Yeah, I tell them at work how you rip on the IT people."
Indignant, I say, "I do not. I rip on the computer science people. There are two different programs. The IT people learn how to do things and the computer science people are too slack to study either IT or engineering."
"Well, somebody has to know how things work," he says and starts talking about read heads and software design.
Okay, so computer science people learn some of the stuff that computer engineers do. "But computer engineers are cuter. And they all have better skin."
"And they stand up straighter?"
I nod. "They do. And, based on an admittedly very small sample, I have to say that computer science students read Robert Jordan, while computer engineering students read Umberto Eco." Of course, in all fairness, I should say that if you remove me from that sample, you'd have to say that computer engineering students don't read at all.
Or not.
Today is the career fair at my school. I've been getting prepared for ages, it seems. I get the suit, the shoes, decide on accessories, acquire appropriate foundation garments, have a tailor alter the suit slightly so it fits better, and on and on and on. Girl clothes have way too many rules. This morning I get up bright and early and get around to printing up some resumes, distribution of said resumes being the whole point of the suit and shoes and on and on and on. Adjust a comma here, update a little there, and ages later I have a folder of resumes. Then I dress and I'm ready to go on time, except I can't find a lipstick. I didn't bother to buy a new lipstick because I was pretty sure I had some old, petrified ones in the linen cabinet where I keep my medicine cabinet overflow. (Yeah, nasty old lipstick, but if you put chapstick on first, the lipstick goes on okay.) But I couldn't find one. "Maybe it's in one of those purses?" I run around the house looking into the little old purses I only use on the one or two times a year that I have to wear high heels and no lipstick there either. Back to the linen cabinet where I finally find a lipstick jammed beneath a q-tip box and unidentified toiletries of archeological significance.
I get to school without further mishap and run into Mountain Girl, wearing her black interview suit, outside the engineering building.
"Hey! We match," she calls.
More or less. Her shirt is cream colored and mine is electric, LED green (I'm trying to send subliminal messages to the recruiters), but otherwise, yes, we match. We walk over to the Commons building where the career fair is being held and up to the check-in desk, bypassing the employer check-in area, much to the surprise of the people working that desk.
"No, we are students," we explain. We only look like we have jobs.
"Way to go, ladies!" the employer check-in people say.
After we check in, we run into Cruise Ship Guy (who is wearing a name tag, so now I finally know his name!). He is all suited up and when MG compliments him even though he doesn't match us, he says how he got the suit at Goodwill for US$20 and tailored it himself. (I don't know why, he's got suits already, but anyway )
"You know how to do so many things," MG admires.
"Well, I am from Jamaica. In my country we have to be able to do everything," he says.
Once they let us into the ballroom, we schmooze around with the three or four employers who are looking for engineers. Actually, they are looking for interns more than they are for full time employees, which is kind of scary for MG and me, but less so for CSG who still needs to get an internship in order to graduate. Also unnerving is that we have to explain what a computer engineering major is to recruiters who were ostensibly looking for computer engineers. Still, we get through it and even pick up a few leads.
Can employment be far behind?
We have this homework assignment in Digital Design, another multi-hour engineering problem: design an 8-bit ripple-carry adder. The problem with the problem, as it were, is not with the design of the 8-bit adder. We've done little adders in vhdl before and I just used one of those, modified slightly to meet the specification we were given, because why write code when you can copy/paste? I got that done on Sunday. The problem is that we're using two different sets of tools (software packages) to translate the adder code into actual hardware, analyzing the gate delays, and then abusing our little adder with operations that will strain the timing constraints of the hardware. In English: We make it do hard math that takes a long time to see how long it really takes. Anyway, that isn't even the problem. The problem is that the tools are buggy! Yes, buggy! Buggy in the really charming "that only works if you compile at the command line because if you compile in the GUI you get an error" kind of way. Buggy in the "the signal names get changed in the timing constraints file so you have to go in and edit them by hand to match the post-synthesis structure file" way. So, between the bugs and my lack of familiarity with the software, I spent the day (yes, the whole day) synthesizing and simulating the adder over and over and asking the professor for help interpreting the mysterious error messages. I've barely gotten to the adder-abuse part.
The scary thing is that I'm the only one in the class who's started. It's due Thursday.
Is there any other kind?
Mountain Girl and I are lurching on ahead with our part of the group project. We've figured out how to wire everything up and (supposedly) Dr. Science is acquiring the line drivers we need. If we don't hear anything by the end of the week, we're having Dr. Flight order them for us. Line drivers are the chips we use to convert signals between the RJ45 signals (Ethernet) and the low voltage pulses that can be handled by the CPLD, which we're using as a controller. Even without the line drivers, we can get started with the controller logic.
Our next step is to create the file that informs the hardware definition language of the CPLD pinouts (the pins of the CPLD chip are wired to various I/O devices like LEDs and switches and to the open pins through which the CPLD will send signals to the Hamsters). In our previous classes, this file was always provided to us but now we're sort of on our own. Because the CPLD is different and therefore has different pinouts from the devices we used before, we can't simply copy over the file we used before. Not without changing all the pin numbers anyway.
First we try to scavenge a UCF file off the Internet. We aren't the first people to do this and perhaps our predecessors have posted a file online. No joy. Oh well. Doing things yourself is good for you.
We take the schematics for the CPLD prototyping board and the schematics for the I/O board. These two boards are connected with two 40 pin sockets. Matching up the pin for LED 1 with the corresponding pin on the CPLD would be a simple matter if Pin 1 on the header of the CPLD board matched Pin 1 on the socket of the I/O board. Naturally, the pins don't match. Pin 1 matches Pin 39, Pin 2 matches Pin 40, Pin 3 matches Pin 37, and so on for forty pins times two. So say you're trying to hook the CPLD to LED 1. On the schematic of the I/O board, you find the I/O board pin that's connected to LED 1 and match it with the corresponding pin on the CPLD board, then you look at the pinout chart for the CPLD (which has 144 pins so big chart), match the connector pin to the CPLD pin, and write down the CPLD pin number for LED 1. Phew. We have plenty of devices to hook up: eight LEDs, eight switches, five buttons, and a seven segment display which is run with twelve wires. With two pairs of eyes and two heads, this is not too bad. I'm glad I didn't have to do this on my own, because I'd have gotten everything upside down and backwards before I got it right.
After we do all that, we use one of our old UCF files and just change the pin numbers. Then we surf around and look at pictures of groundhogs. "Ooh! This one's cute!" "That one looks like a prairie dog." "Eew. That one has yucky yellow teeth!" "Do you think they should do dental hygiene before they photo-op him?"
I notice that the grad student in the corner keeps shooting us the "My God! Will you people shut up? I can't concentrate!" look. He's going to have a really long semester.
Lab in the clean room is not only dangerous, but also uncomfortable and dull. We have a Class 1000 clean room (no more than 1000 particles per cubic foot of air) and our protocol isn't as strict as at a commercial plant, where they would have a Class 10 or Class 1 clean room. I'm amazed that people at the big plants can stand it for any length of time. Then again, if they want out, all they have to do is break protocol and they're fired on the spot.
Protocol is the set of procedures one must follow in order to keep particles out of the clean room: bunny suits, hair nets, hoods, face shields, air showers, sticky mats at the doors to pull particles off the soles of your shoes. You can't take a pencil into the clean room, because a pencil works by rubbing particles onto paper. You have to use special paper. You have to use approved pens. If there is too much sodium in the ink, the particles released when you pull the cap off the pen will put sodium into the wafers, which will then have their electrical properties compromised by having too many ions.
Our protocol is sticky mats, booties, hair nets, safety glasses, latex gloves, and jump suits. Despite reality, it is assumed that all persons using the clean room are giants, so I get stuck with a huge jump suit, booties that flap around the soles of my shoes, safety glasses that rest painfully halfway down my nose (I have to use the big safety glasses to fit on over regular glasses since we aren't allowed to wear contact lenses), and big wrinkly gloves with squeaky air bubbles. I wonder if the petite researchers have their own personal gear that fits.
Many of the guys in my lab section (I'm the only one without the Y chromosome) are pretty big, however, and so I find myself spending most of the lab period looking at their backs as we gather around the rinse bench to wash our wafers. The washing process consists of dipping a basket of wafers in various toxic baths and standing around for several minutes while they soak. There's really only room for two people to work at the bench and I don't mind letting the foolhardy youths pour and mix the toxic chemicals because I've had more than enough physical trauma in the past six months, thankyouverymuch. The two boys who mess with the HF, hydrogen peroxide, and so on have to wear, over their protocol gear, face shields, rubber aprons, and big pink rubber gloves.
The rinse bench is back in the section of the clean room with yellow lights. This is where the resist is put on the wafers, and the wafers are exposed and developed (sort of like a photographic process, but not). The resist is light sensitive. You put resist on the wafer, expose the wafer to a certain pattern, the resist is cured in that pattern, you rinse off the uncured resist, do things to the wafer, then take off the rest of the resist so that the pattern of the things you did remains on the wafer. Lather, rinse, repeat. Eventually you get microchips.
Another particle attenuation method is air circulation. The air turns over in the clean room six times per minute and is filtered. Vertical laminar flow, in which air comes straight down through the ceiling and is vented out around the base of the walls, pulls particles down and out of the room. The ceiling is translucent and the fluorescent light is diffused so you don't get much in the way of shadows. Except in the yellow light area, the light is really bright and white. The fans make a lot of noise too. Between the weird light, the white noise, and the protocol gear, it's kind of a sensory deprivation experience.
Eventually our wafers are clean and dry. They are transferred back to their cassette for safekeeping till next week.
Ratso is working on the digital design homework. I worked on it till late last night and finished it up this morning. Once I stopped second guessing myself, I got through it okay. Like, ten times, even. Nothing reinforces a concept like intense repetition interleaved with errors both stupid and confounding.
"I won't tell you how many hours it took me," I say. "Or maybe I should. It'll probably make you feel good."
"Uh. I doubt it. I spent quite a few hours on it and one of those was with a professor," Ratso says.
Well, that makes me feel better.
I'm taking a brief break from my homework (check out the time stamp on this post) to whine a little bit, because this is a genuine, hours-long, engineering homework. It shouldn't be as bad as it is, because this is ostensibly a review problem set to see what we've retained from the introductory digital design class we took two years ago. I'm glad I kept the textbook, I'm finding it useful to read the sections of the book that we didn't cover in that class. Not exactly a normal component of the review process, but one does what one must. This type of homework is a direct result of professors not talking to each other.
A homework problem that takes less than two minutes hardly counts. In engineering classes, I've routinely had homework problems take hours. Not the whole assignment. One problem of eight or more. While I've on occasion had the same experience with maths and computer science homeworks, those have been less usual, if not the exception.
The first assignment for my computer science class in discrete structures was fifteen of these two-minute gems, with only one to be turned in. The other fourteen are for practice. Since all fourteen of the practice problems together added up to less than half the time necessary for, say, a filter design problem and also because I'm too diligent for my own good, I went ahead and did them all. I'm such a good student, but not so much that I don't hope this assignment sets the tone for the rest of the semester.
And, of course, this just confirms my suspicion that computer science majors are a bunch of pikers.
The Internet has made life much easier for engineers, fledgling and otherwise. We are looking for the various bits and pieces we need to add on to the Hamsters. In the olden days, we'd be pawing through smudgy catalogs (which we could do now; we have plenty lying around the lab), squinting at fine print and blurry pictures of chips, or flipping through industry magazines to look at ads. Thanks to the Internet, we can do that online! In addition to the visual zoom, advantages are that we can download a complete spec sheet for anything we're interested in and even order free samples.
I am loving the free sample thing. Yeah, we only get two chips, or whatever, but we'll be able to plug them in and test them out before we buy the eight that we need. Besides, as we are still very much in the fledgling stage of our lives as engineers, we find the language on the spec sheets to be obscure and sometimes the only way for us to get a clue is to plug-n-chug.
Some things we have to buy up front. In the spirit of plug-n-chug, we're ordering six different kinds of temperature sensors because we're not sure which will work with the Hamsters and the total is only going to be ten dollars, well within the departmental budget.
We can also use information resources to clear up professor-induced confusion. For example, I am told to get an amplifier with a certain gain. "Look for an instrumentation amplifier," Dr. Smith says. I find one that looks good, order samples, and pass the spec sheet on to Dr. Smith, who points out a few days later that this amplifier is for DC signals, not AC.
"So I think you need an instrumentation amplifier," he says.
"But, that was" I return to the altar of Google, make the appropriate sacrifices, and find a definition for "instrumentation amplifier" (an amplifier optimized for use with DC signals). I go on to find a nifty "isolation amplifier" which works for AC signals. I'm not sure it's what we need, but, whoo, free samples!
Our first assignment in Microfabrication involved some basic arithmetic. Given the wafer diameter and chip size, calculate the number of chips you can put on a wafer. Then calculate cost per chip given a certain yield, and so on. Not hard, except that our professor, somewhat distracted by being locked in an interdepartmental fight to the death over funding for a scanning electron microscope, has neither covered the material in any detail, nor managed to get the textbooks into the bookstore.
I know how to hunt up information online, though. I find that Micron, in a shocking display of silliness, has similar exercises posted in their K12 education pages, except that the formulas they offer will only work on a square wafer. And the wafers, they are not square.
On the other hand, the instructor of a similar class at the University of Massachusetts (which probably already has a couple electron microscopes) has a more grown up formula and the time to post it.
Isn't it just totally wrong for a microchip company to post incorrect information about microchips? Or is Micron populated with evil geniuses who are manufacturing single-crystal silicon ingots with square cross sections?
As of today I have outstanding homework assignments in all my classes: Microfabrication, Discrete Structures, and Advanced Digital Systems. Together with the Senior Design Seminar, these add up to a full course load. Oh, and there's that huge senior project (more fun with Hamsters) to do as well. Also, we are the class of record as my university goes for ABET accreditation for the computer engineering program (Now in its fourth exciting year!) so we have to prepare a portfolio of various lab reports, papers, and projects we've done over the years. And they want this portfolio in the form of an interactive website so it will look nice for the accreditation board. I should get cracking on that right away instead of leaving it till May. I'll get to it as soon as I finish up the little translation job that came in today.
If all that wasn't enough, we had the mandatory safety lecture in preparation for entering the clean room and making some chips. We will be using chemicals that can sink imperceptibly through your skin and dissolve your bones, chemicals that can reduce your lungs to jelly, and nail polish remover, which is pretty benign by comparison. And I thought the warning signs all over the ChemE floor were scary. Suddenly this doesn't seem like such a fun class. The bunny suits don't even have ears.
We are working on our preliminary design proposal for our senior project. In one section we have to make an assessment of our major sources of risk: what can go wrong and what we can do about it. We decide that our main source of risk, apart from human error (because we know ourselves), is the whole entire research facility that is running the Hamster project.
Hey, we're free labor. It's not like they can fire us for bringing up the blatantly obvious.
Case in point: The weather station we're supposed to be adding to the Hamsters
The portions of our design proposal relating to the weather station consist entirely of question marks. We got a glimpse of the weather station a couple weeks ago, but we don't have it in hand, nor do we have any technical information. We've been asking about it for some time.
Today we ask Dr. Smith about it again when he drops into the lab to discuss one of the New! Surprising! additions to the project. As he'd been expecting to receive the technical specs from Dr. Science this morning, he goes back to his office to check his email.
Five minutes later he returns, looking stunned and carrying a sheet of paper. "This is all he sent. Maybe you'd better email him with specific questions."
I take the sheet of paper and see that it's basically a research summary, a few paragraphs describing the weather station, with all the technical content of a press release. "I don't think we know enough about it to ask specific questions." I think up some later and email Dr. Science, but I doubt I'll have any more luck than Dr. Smith did.
How much do you want to bet we never get it? Or that they haven't even put it together? What they showed us was a circuit board and a few loose sensors. I'd say not having the central component of the project is our greatest source of risk, except that it seems to have gone beyond risk and into certainty.
Dr. Flight's first order was for us to get a few of the Hamsters up and running again so that we'd have a development system to work with. Hence the ripping of components from an old board and putting them on a new board. Today we test out the new Hamster board.
It flatlines. This is bad.
There is much messing with oscilloscopes and multimeters to trace the captured signal through the board and find out where it stopped. Attendant crises thereof are dealt with by setting the gain on the board to something other than zero (else you get a flatline), setting the scope to read a 10X probe as a 10X probe instead of a 1X probe (else you get one tenth the amplitudenearly a flatline), and questioning Ratso about how he removed the very expensive amplifier chip from the old board ("We stuck it in that oven thing and got it really hot so the solder melted and it just fell out of the board. Along with some other stuff."). But once we get the probe situation resolved, we find that the amplifier is working correctly. We check the next chip on down the line and see
The A/D converter chip is stuck in backwards. So no data, hence the flatline. Luckily for us, the A/D converter is in a socket, so it's simply a matter of pulling it out and popping it back in.
Now we have three working boards, four if you count the one that's missing a power converter (we can work around that by applying the correct voltage at the contact where the power converter's output would be).
I shrug off the sense o' doom and make it through the first day of the semester. I get an announcement about the career fair in early February, so now I know I have just three weekends to acquire a business suit.
I should call Lisa. Lisa will know what to buy and I have enough credit to buy what she tells me to. Because a good suit is an investment and damn the finance charges!
Dr. Flight, who's managing the senior projects, brings up the very Hamster issue about which I was most concerned: the lack of a clear spec from Dr. Science. (Or even an unchanging spec. I'd settle for that. Or, even more in-my-dreams, a needs analysis interview with the people who will be using the Hamsters.) We proceed to figuratively nail Dr. Smithour Dr. Science liaisonto the wall and insist upon getting a set of part numbers, if not actual parts, within the next few days.
In the meantime, we're ripping expensive components off old Hamster boards to populate the new Hamster boards. Ratso is most enthusiastic about this and I notice that one of the DC-DC power converters is decorated with bits of melted circuit board. Tomorrow I will be checking to make sure that the components survived the ripping off process.
Today is the last day of winter break. Tomorrow is the first day of my last semester. I keep thinking that this semester will be less bad, but I have a feeling that's wishful thinking. I'm not taking too many hours, but we have to make some major strides with the Hamster project and those Hamsters make you fight for every incremental improvement.
In any case, last day of freedom. So I work on applications for jobs for which I'm not quite qualified, but which I'd love to do. I write a cover letter. I gnash my teeth and gripe about the PeopleSoft interface and wonder if I really want to work for an organization that uses it. But what are my options there? I find it nearly every place I look.
I've got another cover letter to write. I've got my graduation application all filled out and ready to submit to my advisor tomorrow.
Only seventeen more weeks, one of which is Spring Break.
I have this feeling of impending doom even as I glimpse the light at the end of the tunnel. It's very odd.
Finally, today I resolve the last, lingering questions about transfer credits and basic requirements. I get the word that I will definitely (Hah!) graduate this spring and I won't have to take any more classes than what I've already registered for. That is quite the relief. I had noticed that transfer students seem to have more than one "last semester" and I didn't want that to happen to meeven if I did have to take extra credit hours and have a nervous breakdown this semester.
I also seem to have recovered from the last semester. My energy's back, I'm feeling creative and stories are bubbling up out of my subconscious. This means that it's time to start contorting my brain into the unnatural configurations necessary for designing circuits and logic. Great timing, eh?
Mostly because they are, as advertised, final.
Finals is the best time of the semester. It's the only time when you can finish an assignment and not turn around to find another ten hanging over you. Finals are relaxing. Doom has pretty much fallen on you, if it's going to, so all you can do is study to the extent you're able (or not) and stay calm and take your exams.
That is the approach I used to study for Dr. Smith's exam. On his tests this semester, he has been coming up with all kinds of stuff that elicits from us the reaction: "Where does this shit come from?" Bearing that in mind, I focused on reviewing my notes (For all the good it'll do Damn, we sure covered a lot of material this semester!) and not panicking. Besides, the exam is open notes. That hasn't helped in the past, but hope springs eternal.
When I go in to take the exam today, I find Mountain Girl flipping out.
Humility Boy tries to comfort her. "You know all this stuff."
"No, I don't!" she wails.
"You knew it last night," he protests, with futility.
"How did you study for this?" she asks me.
"I just reviewed my notes and practiced not panicking."
"That's it! I didn't practice not panicking!" She grabs Humility Boy's arms and shakes him. The chicken sandwich he is (was) holding falls apart all over the floor. He looks with dismay upon the scattered remnants of his lunch and emits a little glottal-stoppy wail of his own.
"Dude, ten second rule!" some of the other guys call, but Humility Boy has to endure MG's apology first. This involves his head being clutched to her chest. He doesn't seem to mind all that much and is rather cheerful when he reassembles his sandwich after wiping off the individual components on a napkin.
None of us is thinking too clearly. Today was the last day of classes and the final projects are coming due hour by hour.
A voice rises from one corner of the lab. "Oh no! Oh my God! Oh no! I saved it. I didn't think what I was doing. I cut out all that stuff by accident, but then I saved it! We can't just close it out and reopen it to get it back! Oh no! That whole design! The layout! The entire wafer! Everything!"
And another from across the room, from someone who's done that before. "It's still there. Paste everything into the clipboard. Then open out a new wafer and paste all your stuff onto it. You can get it back."
I have two finals on Monday. Good news: those are the only two finals I have. Bad news: I still have a paper and a technical report to write. Good news: I drafted the technical report, on my microprocessor design, tonight. Bad news: The person testing the microprocessors said he found that mine loaded a wrong number into a wrong register. Good news: I can probably fix that pretty easily, or it might be a problem with his test bench so I can blame him. Badoh heck! Anyway, I also recalled that I left out a feature (stalling the pipeline when the instruction following a load from memory needs the loaded value), but I obsessed over it for a while and figured out how to implement it with not too many lines of code. I'm going into the lab early tomorrow to test it. I've been spending this evening studying ineffectively for my software engineering final. Now I'm going to study ineffectively for my computer architecture final, wash the dishes, do my physical therapy, and go to bed. At a reasonable hour. So I can get up early and hit the Sun lab.
I'm chatting with Dr. Smith about the Hamsters. They're behaving a little bit oddly and I'm fishing for any insight into why that could be.
Because I hadn't observed this particular behavior (very slight and inconsistent phase shift among the different channels) before we started testing some of the Hamsters with extra long cables, I have to ask, "Do you think it's because some of them have the 300 foot cables? If you get a nanosecond of delay in the signal for every foot of cable, that's still only 0.3 microseconds. Is that difference in the interrupt arrival time enough to even appear in the output?"
After a few minutes of this, I'm noticing that the answers to my questions sound an awful lot like my questions and am not distressed when the subject changes to other plans for the Hamsters. Dr. Smith mentions that he'd like us to make a schematic of the Hamster Hub and I am able to tell him that we've already done it. (Heh. We're ahead of the gamefor a few seconds.) Dr. Smith says he'd like us to design a printed circuit board version of the Hub, the current incarnation of which consists of wires and glue.
Also, some additional Hamsters are being assembled and soon we'll be setting up a second system down in Dr. Science's lab. We're also supposed to be adding a weather station to our Hamster setup next semester. Ratso's even asked about it (he wants to write the code). We haven't even seen a spec sheet, so we don't really know what we're in for.
I bring it up. "Has Dr. Science got that weather station yet? I'd kind of like to get them started with it while they're still really stoked about winning that award."
Dr. Smith laughs. "Oh, you're a good manager. I'll go call Dr. Science and see."
"Great. Do you think we can get the weather station to coincide with the arrival of the checks?"
And thus it becomes apparent how really manipulative I can be.
My cats don't even hang out with me anymore. Not that I've been home all that much. Ever since Oz spread a fleece pullover on the couch a few weeks ago, their furry little butts have been glued to it, except during food-related activities (begging and eating and litter-boxing).
I've basically spent all my waking hours since I got back from Tech in the Sun lab, with brief excursions for meals and classes. I'm glad I've finally got some decent pain medication, or else my joints would be screaming (really, emitting squeaky sounds that keep me from sleeping (I'm only exaggerating a little)).
By the end of the day yesterday, I had my pipelined microprocessor design working really well: it executed instructions in a four-stage pipeline in two-and-a-half clock cycles instead of four. Unfortunately, that wasn't "right" so today I consulted with Dr. Smith and spent hours making and testing the modifications that would make it take four clock cycles. So it would be "right." It's right now. I think the problem with my extra-compact pipeline is that it couldn't be synthesized into a real circuit that would actually work, even though it simulated like a dream.
It hit me when I was in the shower this evening. I spent all day sitting in front of a computer, on which I was designing an infinitely less complex computer, and when I got home, I would spend the remainder of the evening noodling around with another computer, linked to millions of other computers.
Ratso had a plan for this road trip. A plan involving Halo 2. Originally he was going to find a way to run the X-Box off a car cigarette lighter so he could play on the way out to Blacksburg, but he slept instead.
When we got back to the hotel after the poster session Friday night, he began to set things up. He picked up an RF cable from Radio Shack so he could hook the X-Box to the television, then networked the X-Box and his laptop and used the hotel's high speed wireless internet connection to play online.
I hung out with them for a while. At one point, Ratso was playing Halo 2 and talking on his headset to other players, Cali-boy was playing Halo 2 and talking on the phone with his fiancéand Mountain Girl was playing games on Yahoo Games and talking on the phone with her mom, explaining to her mom how to log in to some online service.
Back when I was in college, we actually had to talk with each other when we were hanging out together. Times change.
While I was there (before I went to bed early), one of the games involved some French guys. When they shot Ratso, he could hear them insulting him in French.
I told him to call them a bunch of Canadians. "Or Belgians! Yeah, that's even better."
They stayed up till 1:00 am playing Halo 2. They even got MG involved. She told me the next morning, "Oh yeah. I was shooting things and talking smack on Ratso's headset. Some guy thought I was six! Another guy said, 'Hey, dude!' and I said, 'I'm not a dude, I'm a chick!' And then I stole one of those jeep things and drove around honking the hornand Ratso and Cali-boy didn't know you could do thattill someone shot me and stole it."
The Hamster project! Won! An actual award!
Our poster session went pretty well, considering that the Hamster project is about sound you can't hear and we were at a meeting of acousticians. I had to answer a lot of questions about the acoustic end of the project, in which I am not as well versed as I am in the computer end. Even so, I impressed someone. We received an award for environmental acoustics from a person whose own research is a perfect match for the Hamsters. (I wonder if Dr. Science knew about this particular award and this researcher when he suggested we attend this meeting.)
We also got to tour some acoustics labs at Virginia Tech, where any one of their engineering buildings is double the size of my university's entire engineering school, and see some research projects and facilities, like a flight simulator (with which they're working on noise abatement for pilots), a cross section of a Saturn rocket (with which they're working on noise abatement for payloads) and an anechoic chamber. They fed us really well too.
This was a great road trip. I'm totally worn out from it and from another nine hour day in the Sun lab. I'll write more later.
The Hamster poster is made. The exchange of hostages took place at an unidentified rest area on I-64 between Richmond and Hampton. Cali-boy and Dr. Science had to coordinate the operation around some visiting researchers from Georgia Tech on Dr. Science's end and Cali-boy's clock-in time at his job. This time tomorrow we'll all be in Blacksburg, the only non-Tech students at this event, to plug the project. Some of the other activities planned for this meeting sound neat too: an Appalachian band and tours of acoustics labs.
So that's one load off my mind. The mind is immediately reloaded upon learning that this microprocessor project is due Tuesday.
I spend nine hours in the Sun lab today. I don't even go home for lunch. I have a minor, hypoglycemic breakdown during which I manage to mess up my code and not see how to fix it and panic, but some apple juice takes care of that.
When I call Oz from the lab this morning, he says, "The Sun lab. You know, when you say that, I always think of you in a sundress, drinking lemonade "
"Not a margarita?"
"No, lemonade."
I wish the reality matched the fantasy.
By 6:30 pm, I've got it mostly working. I've got a couple more instructions to test (and a fiddly thing to fix which I figure out on the way home) and then I have to start on data memory manipulations, which I'm saving for last. The light isn't exactly at the end of the tunnel just yet, but I see less darkness ahead.
We were supposed to be doing this microprocessor design in pairs, but my partner has had the habit of not showing up about half the time. Maybe more. Like yesterday when we were supposed to meet with Dr. Smith and give him our progress report. Making his absence really obvious, as it had been at the progress report meeting last Tuesday.
So today Dr. Smith began class by announcing that my partner and non-performing individual in another pair would be working together from this point forward.
This was a bit of a surprise. I had been hoping I would be able to get some work out of him. On the other hand, I had also found that I was making more progress on my own and doing most of the work anyway.
Dr. Science wanted us to participate in a poster session and talk up the Hamster project. I had my team make a draft of the poster (And, oh God, does it look like it's been laid out by engineers!) to send him before the holiday. I'm pretty sure that he'll change everything, but we have to pretend like we're the ones making the poster. He did offer to have the poster made up professionally, so we're happy to humor him.
The poster session is Friday, today is Tuesday. I haven't heard anything from Dr. Science, so I've told the team that we may be on our own for the poster and we plan accordingly. Dr. Smith asks me about it this afternoon. Our conversation goes like this:
Dr. Smith: "So when is that poster session?"
Me: "Friday. We have to be in Blacksburg by 4:00 pm."
Dr. Smith: "When do you have to turn in the poster?"
Me: "Friday at 4:00 pm."
Dr. Smith: "When?"
Me (wondering how Mrs. Smith has managed all these years): "Friday. This Friday three days from now."
Dr. Smith: "Does Dr. Science know that?"
Me (thinking Well, he's only been told a couple times, so I guess not): " "
This precipitates a flurry of phone calls and we (meaning "I") are directed to email all poster-related files to the graphics design guy down in Hampton. The poster will be made up down there and will be overnighted or dropped off at Dr. Smith's house to be ferried up to Richmond Friday morning or something. Or we may be making our own poster with cardboard and magic markers. Or something. I scurry back to the Sun lab, catching the team just as they're putting on their coats, and delegate file collection activities since they are on Mountain Girl's laptop and Ratso is the one who sort of put our draft poster together.
The team comes through! They don't want to do the cardboard and magic marker thing either. We get the files sent off with time to spare.
Later on I get email from the graphics design guy: "So when is the deadline for this anyway?"
Do these things ever go out of style? Well, yes.
I haven't bought a suit since 1990, way back when I had a real office job in DC. In the intervening years I've worked from home and my working wardrobe tends to be on the frayed and ratty side. However, I've got to suit up now.
Today I had to deliver my Review of Internship presentation (the "what I did last summer" talk), for which we are required to dress all professional-like. Tomorrow I have to dress up for my public speaking class "final" which is in the form of a pretend job interview. I'm hardly going to run out and buy a suit before I need one for a real job interview, because I'll have to pay finance charges on it that much sooner, so dusty old suit from the olden days it is.
Do you remember 1989? The shoulder pads? The skirt lengths? Pleats? I looked really sharp in 1989. I looked pretty sharp today, at least to the engineers, but I felt like I was in costume. All done up and Halloween a month in the past. What a shame. I could've gone as an IRS agent.
The presentation went well, in the sense that I bludgeoned the professors with fifteen solid minutes of chatter about the Hamsters and left them too stunned to grill me on the technical merit of my internship. Better yet: after tomorrow I won't have to dress up until I have a real interview.
With no class meetings today, I have time to work on my VHDL microprocessor implementation. I'm finding that I make more progress without my lab partner, so his habit of not showing up to work on the project at the appointed times, while annoying, isn't holding me back. (I hope he realizes that, the way things are going, this project won't be handed in with two names on it.)
The simulator we use for these VHDL projects is available in the Sun lab (populated with Sun workstations and an atmosphere of confusion). Extra confusion today, because a VLSI class has to get a big assignment finished up by noon. I barely hear it because I'm hunched in front of a monitor staring at a timing diagram.
Having got their assignment in, Smiley and his buddy are dithering around on the Internet, trying to find some kind of interstate traffic report before they hit the road. Smiley asks me if I know any such site.
"No." I blink. "Where are you going?"
"Up to Northern Virginia."
"Oh." I start laughing. I have distinct and unpleasant memories of holiday travel between the DC area and Richmond from when I was in college before and I'm more than willing to share them. "I-95 will be a parking lot. Take plenty of snacks, make sure you have a full tank of gas, and accept that it's going to take six hours. Or you could try Route 301."
"Ha. My sister drove from Arlington to Woodbridge last night and it took her two hours," Smiley says. Arlington and Woodbridge are not that far apart.
Over at his workstation, the buddy throws his arms in the air and cries, "We're going to go 85!"
Drive safely, guys. But you're only going 85 if your car flies.
This weekend, the School of Engineering held an open house for prospective students and their parents. I "participated" to the extent of sitting around in my lab for a couple hours to talk about the Hamster project to any poor slobs who wandered in. Fortunately for the prospectives, Skipper was in the next lab with the far-more-eye-catching autonomous air vehicle project.
The Hamsters are not so visually appealing, just a flock of PCBs with wires going all over the place and a PC displaying their (Finally! Again!) synchronized data streams. When people actually do come into the lab, I find myself saying things like, "Well, see this line on the display? It doesn't look very exciting, but it actually is exciting because that's four data streams but they're so perfectly synchronized that it only looks like one. So it's exciting. Really."
The mother of one young man slips out and leaves him at my mercy, so he hears a little more about the project than that. His eyes glaze over, but he recovers and obeys the maternal commands (sent via telepathy) to ask questions about being an engineering student. Like most prospective engineering students, he starts with a variation on "Is it hard?" Which I have to answer with a variation on "Yeah, but it's worth it." The kid's eyes glaze over again because I know he's heard the exact same thing from his mother on the way over this morning.
I thought I was ahead of the game on the job search thing, seeing as how I was, like, thinking about applying for jobs and working on my resume (which I even submitted to some openings). I missed the Career Fair, but hey, there's another one in the spring. And I submitted my resume to another place this evening because the recruiter who spoke at a career panel I attended this week said how "Now is the time. We do most of our recruiting in the late fall. (And we get about 3000 resumes a month.)" So, good for me!
But then today I'm down in the big computer lab messing with Hamster data and I overhear some other seniors talking about job offers, jobs they have, big purchases they're planning to make, and suddenly I don't feel quite as on top of things anymore. I slink back up to the Hamster lab where it's quiet except for the confused mumbling that issues from the grad student in the corner. Until one of my professors wanders in to chat.
"So you're giving your senior presentation soon," she says.
"Yeah, a week from Monday. I managed to get one of the later slots." I'm not looking forward to the presentation. I don't mind speaking, but I'll have to wear heels and use PowerPoint.
"Oh, you'll do fine. So do you have a job lined up yet?" she asks.
"Uh. Not yet. But I'm looking. I hope I haven't left it too late."
"Oh, you'll be fine."
The term project for our computer architecture class is to design a very simple microprocessor using hardware definition language. So far this has mostly involved a lot of typing since we have to get a certain amount of it written before we can start testing. Or at least that's what we thought. If you know otherwise, I really don't want to hear about it. My lab partner and I know we're in trouble. The code keeps on compiling, which sounds great until you consider that this means we have to find all the errors ourselves at runtime instead of letting the compiler clean up after us.
Today we started running it and the best I can say is that the really obvious (stupid) errors aren't all that hard to find. Too bad there're so many of them.
"Why doesn't the address ever make it onto the bus?"
"Because, uh, let's look. Oh great. Because we never put it there."
caddr <= PC;
Falling into the "stupid but easily fixed" category, this is the least inimical so far.
But then I couldn't think of anything. I've been writing a lot this week: a cover letter for the "job hunting" part of my public speaking class, a paper on the Hamster project, SQL queries for the horse show database project.
The Hamster paper is for student poster sessions at the North Carolina Chapter of the Acoustical Society of America being held at Virginia Tech. Can you say "road trip"? This was Dr. Science's idea, to send me and the other students who'll be working on the project out to Blacksburg to promote the Hamsters to people who might actually be interested in them. I'm also making up a list o' links for my team to read so they can stand by our poster and sound informed when people who're doing related work wander up to ask questions. I'm also making them do the poster.
The cover letter is dreadful. I'm rather glad I'm submitting online applications to places that don't have room in their web forms for cover letters.
The SQL queries are along the lines of "SELECT firstname, lastname SUM(points) AS totalScore FROM Members INNER JOIN Results on Member.idnumber = results.idnumber WHERE Results.division =
Pretty much just beats the creativity out of you, doesn't it? Next week we get to write documentation.
Oddly enough, this is a non-political post.
In my computer architecture class we are divided up into pairs to work on our term project (implementing a simple microprocessor in hardware definition language). Progress is slower than it should be because we are generally clueless. We are inclined to think we have a clue, but the constant barrage of evidence to the contrary has left us in a more or less permanent, semi-stunned drooling state. A problem with this, aside from the damp, is that we end up asking questions of the professor that are so dumb he can't answer them because it is apparently inconceivable to him that we could actually be asking about that, so he tends to address the questions that we should be asking. Which leaves us in the position, when light finally dawns, of saying, "Oh, so when you say x, you really mean x!" and sounding just really brilliant.
Anyway, one team is Guy With Too Many Cats (he has too many cats) and Pinocchio (although his nose isn't nearly as long as by rights it should be). Pinocchio likes to run around the lab chanting, "We are done! We are done!" They're never done and no one believes him. In fact, after several semesters of his constant "Did you study for the quiz today?" (on days when there are no quizzes) and "Did you finish your report yet?" (when there is no report), we all go out of our way to find untruths to throw in his direction.
Today all the teams had progress report meetings with our professor. When GWTMC and Pinocchio came bounding into the lab after their meeting, they were chanting again, but I didn't quite catch it.
"You mean you're done?"
"No! Doomed! We are doomed."
So, considering the source, what does this mean?
The horse show database project continues apace.
Humility Boy shows off his prototype. "So I have the explanatory text pop up in this box when we roll over the buttons. I was thinking I should get a picture of a horse to display there when there's no text."
"You need to get the Borg Pony," I say.
"Huh?"
"There's this woman that makes art projects out of My Pretty Ponies and she made a Borg one. Here."
Mountain Girl lets me use her laptop to Google on Borg Pony and I show them. Borg Pony gets an "Eew" from MG. Humility Boy takes one look and drifts away to ask someone else for a horse graphic. MG overcomes her distaste and we start exploring the rest of the Pony Gallery. Alarm Clock stands behind us and looks appalled.
"Let's look at Evergreen. And Braizon," MG says, clicking through. "Oooh. Do you think she'd make one with a lighthouse on it?"
"Okaay. I guess you two are going to be at this for awhile, so I'll justgo now," says AC.
"Yeah, okay," we say and look at a few more ponies. I'm partial to the more Goth-like ponies, MG is fascinated by the cloying sweetness of it all. I don't think our professor would mind a few Pretty Ponies in the GUI at all.
I have learned to be amazed that when we buy electronics, we can take them home, plug them in, and they actually work. Reliably, even. I'm also amazed that computers work, but that's another entry.
We have a couple of the next generation Hamster boards in the lab. Today seems like a good day to power them up and see how they do with the latest version of the software (which, oddly enough, seems to be working most of the time). I plug in all the cables, program the Hamsters, and look! The LEDs light up all pretty like they're supposed to. Everything's great so far, but you know that's too good to last. Indeed, when they connect to the PC and their sampled data scrolls across the display, I can see that the gain settings on the new boards are off. The switches are set to the same value as the other boards, but the output doesn't match. In fact, no matter how I set the switches, the output doesn't match, and the gain only flips between two different values instead of the eight we should be getting. Does this mean the switch is wired wrong?
Oh, goody! Another setback. Well, we were due for a big one.
I tell Dr. Smith, who is as taken aback by this as I am, as he is one of the people who reviewed layouts and schematicsin a quest for precisely such errorsto the point of gibbering insanity last summer. But Dr. Smith has to run off and profess just then. I try to print out the PCB layout so I can see. The printer in the lab is out of paper and, it being after 3:00 pm, there is a dearth of other professors or persons of authority I can ask about getting more from the dean's suite, where the paper is kept under lock and key.
I try a simple test and do some thinking. It may be that the problem is the wiring to the programmable gain amplifier and not the switch after all, but without checking a copy of the layout (reading it on screen is too awful to contemplate), I can't say. Assuming, of course, that the layout matches the printed circuit boards. Which it does. We all messed up when we reviewed the schematics before the new boards were made up.
So I clear out. There's no point in hanging around school and fighting with the layout software. I'm drinking chamomile tea, writing this, and watching Nintama Rantaro. (In searching for a link to the show, I am amazed to find Nintama fanfiction in Spanish. In Spanish, Hemu-hemu the dog says "mehe-mehe" instead of "hemu-hemu".)
I have a midterm tomorrow. I'm assiduously not thinking about the insane number of assignments that have to be done by Monday. Or about the various group projects that I haven't been giving enough attention.
Oh, that's right. I'm not thinking about all that. Just the software engineering midterm. I'm also wondering when the earthquakes in Niigata are going to let up. The people of Niigata are doubtless on the same wavelength as I am. I should probably turn off the TV (I get TV Japan), but the image of the building that's broken in half and fallen into the street exerts a strange fascination, even on the local people who are running up to look at it, despite the fact that they simply have to have been told to stay away from collapsed buildings a minimum of four hundred times in the past few days.
And I should really be studying.
I've had a few distractions lately. Must call insurance company. Must call hospital billing office. Must go to PT. Must acquire car. As soon as I found the car, it was more must call insurance company, must get to DMV. Needless to say, some things have fallen by the wayside. Like homework, and complete and total involvement in engineering projects. Apparently the obsessive-compulsive disorder becomes inoperative when there's too much to obsess about. This could be a good thing.
This semester, computer engineering seniors take a software engineering class. We have this big, semester-long group/class project: a database for managing horse show data. Probably not too difficult if you know how to structure a database and have some knowledge of how horse shows work, but we don't. My group comprises Mountain Girl, Humility Boy, and a kid I haven't worked with before. His alarm clock doesn't work too well and he misses class, so I guess I'll call him Alarm Clock. Since he's missed some project work meetings, he's been stuck with delivering the presentation of our proposal to the class. (Each group has to present a proposal and management plan and the professor will decide which management plan the class will follow).
Ordinarily I'd have everything all planned out, a basic idea of where to start the design, how to break down and schedule tasks. But my participation in the last couple work meetings consisted of writing down some very general basic steps for the design project and then it was back to must acquire car, must call hospital
Today is presentation day. I spend the morning at the DMV, messing with tags and title transfers. (I did devote some time over the weekend to reading MySQL documentation.) The presentation is not on my horizon, hey, Alarm Clock is handling it, right?
AC goes last. Our plan doesn't offer much in the way of specifics and we didn't do too well in the fake details department. Poor AC finds himself saying, "Well, like the other groups" rather often.
"Why is there a whole blank week in your Gantt chart?" the professor asks.
We all get a vacation? I think.
"Because Microsoft Project hates me!" says MG. "I put it in there and it wouldn't let me modify it! Augh!"
I've got to get my focus back. My group needs me.
Who says first impressions are of utmost importance? The Absentminded Dean now knows my name.
On my lunch break today, I am sitting in the lounge area at the end of the hallway and reading Juno & Juliet, which is every bit as enjoyable as Carolyn See said. I hear voices echoing in the stairwell on the other side of the wall that I'm leaning on and brace myself. Tour group. They always bring them by the Sun lab, which is about ten steps from where I'm sitting.
The Absentminded Dean pops through the fire door and a small group of women carrying notebooks follows. He points out the detailed image of a microprocessor (a latter day senior design project) hanging on the wall beside the lab door and talks about it. When he turns around to face his tour group, he spies me in my corner and greets me cheerily by name. It's even my name. While I'm still recovering from the shock, I'm pointed out like a zoo exhibit ("Undergrad, chillin' [sic]") and asked about the number of women in the engineering school. The ladies in the tour group are local high school teachers getting informed about the programs at this university.
Not wanting to hazard a guess about the percentage, I respond with a real number. "In my class year in the computer engineering program, there is one other girl." In fact, if you lump computer engineering together with electrical engineering, there are five girls (maybe six, but I'm not sure if this sixth girl is in my class year), which puts us seriously below ten percent.
The Absentminded Dean does not give up. "But what percent do you think in the school?"
"Ten?" I recall seeing 14% on a chart somewhere, but the chart doesn't match my observations.
"Oh! It's twenty percent," says the Dean.
"Really?" I ask, evincing surprise. If he wants to sell this school, the Dean is going to have to ask his leading questions of someone else.
Everyone smiles cheerfully like 20% is something to be pleased about and it is, in view of the historical numbers, but I'm puzzled and wonder where all those girls hide during the school year. Maybe in the mechanical and biomedical programs? Women make up 55% of college students nowadays, but not in engineering.
Last night I bought another ergonomic keyboard so I wouldn't have to keep carrying my good one back and forth to school. I hope to get through this internship without becoming really crippled, as opposed to more-or-less crippled as I am now, and I may manage it with the ergonomic keyboard, touchpad pointing device, and making sure I have braces on both wrists anytime I touch a computer. Because I am not officially disabled, I have to provide all my accommodation out of my own shallow pockets and just hope that no one I work for stops me from using my potpourri of assistive devices. I'm not sure why I've been having so much trouble, probably because the setup is enough less optimal than my setup at home and the activity level is enough different from what I'm used to.
This afternoon I am in the lab, trying to make LEDs light up because they won't and I must find out why. I do find my stupid oversight eventually: I didn't have them fully implemented in the code. My wrists are doing okay, but my right elbow has gotten all inflamed so I'm still not comfortable.
The Absentminded Dean wanders in with a group of the trustees who are holding a meeting of some sort today. He likes to drag visitors through the labs to talk about all the research projects. The Gambler (I'm not sure what his job here is. What he does for hours on end is play four simultaneous games of video poker while IM-ing people.) and I are the only ones in this lab today and none of the cool-looking projects are ours, so we are not much help to the dean. I rather wonder what the trustees thought when they saw all those video poker games up on the 20" LCD display that the Gambler uses. The Absentminded Dean herds the trustees over to me and asks to be reminded yet again of my name. Thinking one of these days I'm going to snap and say something really obnoxious, I tell him my name.
"And what project are you working on?"
"Right now I'm trying to make these little lights turn on, but this is part of the " I go on for some time about the project.
One of the trustees asks about my wrist braces.
Figuring the short answer is best, I sigh, "I have carpal tunnel syndrome."
"And you're still using a computer?" The Absentminded Dean asks.
"Well, I guess I could just starve," I snap, drawing nervous chuckles from the trustees and making myself such an asset to the school. But really, how does one complete a computer engineering degree without using a computer? Or hold down any kind of job that doesn't involve manual labor (also not an option for me)?
After a few more questions about the project and my wrist braces (and my unsatisfactoryto the Deananswer about the speed of the Sun workstations in the next room), they all troop out and leave me to my LEDs, my sore elbow, and the happy prospect of the Dean possibly avoiding me in the future.
We pile into the hot, stuffy classroom for our Operating Systems final. "You ready?" we ask each other.
Mountain Girl has about drained her one-liter bottle of Livewire. "I've been here studying since ten o'clock this morning."
Looking even more like the undead than usual, Hatchet says, "I'm at 36 hours without sleep. I might as well go a little more. My friends are all going out tonight, and I don't want to miss out. And I have to work tomorrow."
I twist around in my chair. "A friend of mine did that back in high school. He wanted to see how long he could go without sleep. He did okay for the first day, but on the third day, in History, he just" I gesture to suggest a person wilting over a desk.
"I'm doing fine right now," Hatchet insists. "I was feeling tired this afternoonI don't normally smokebut I got some cigars, and hey, I'm all right now."
"Uh-huh." I'm thinking he's heading for a crash sooner than he thinks.
MG and I wonder aloud about the term project grades. "We worked so hard, and it worked, and it did everything it was supposed to."
Humility Boy lets fly some braggadocio about how his group only spent a few hours on the project. MG and I are noncommittal, being too polite to ask just how much of their code was actually ours. I'm curious though.
As the professor passes out the exams, word gets around about an end-of-semester party tonight at Topeka's. Even if I were inclined to go, I still have to prepare for my math final tomorrow afternoon.
My next entry will be from the far side of this semester. And not a moment too soon.
But I'm starting to wonder about the glove. I'm referring to the Tuesday morning final that had many of us cringing our way through the rest of the week. I'm thinking that exam was payback for our snottiness.
Some kind of alchemy must happen during the grading process. How else could I turn in a test consisting of only three problems, all of which I got wrong (and in case the professor missed it, I helpfully wrote "This is wrong!" beside my answers), and still get an A? Grade inflation alone cannot explain this, darker powers must be at work.
I should probably note that three-problem tests requiring three or more hours to complete, although we only get seventy minutes, are pretty routine in engineering school. Because they love us that much.
I'm not complaining about the A. I'll take what I can get.
I turn in my Electronic Devices final. Not that I'm done, but we're out of time and I have at least answered all the questions. Probably not correctly, but anywayHumility Boy left the room a few seconds before I did and he's lurking out in the hallway in hopes of commiseration. He makes the gun to the temple gesture.
I say, "Yeah, I wasn't retarded yesterday. What happened overnight?"
Chevy Nova walks by. "At least I got 3.4 for that one. I don't know how, but"
"You did? How?"
We head on out.
CN says, "I don't know. But that's the only one I'm sure of. I just kept on writing stuff so he'd think I knew something."
I make the dolt voice: "I know how to copy formulas from my formula sheet." And in my own voice: "Me too."
"Exactly."
Thus endeth Electronic Devices.
I filled out quarterly tax forms this morning. This process is much less onerous since I stopped earning money. It takes hardly any time to fill in all those zeros.
I spent the afternoon messing with my DSP lab. With some input from my professor ("Those aren't the right coefficients. You have to recalculate them for the higher sampling rate. No! Not that formula!" "Oh. Duh."), I finally got it working. Now I just need to get my lab partner into the lab so we can do the grand finale part of hooking two boards together and making them modulate/demodulate.
This weekend I have two take-home exams, two homework assignments, and sort of a job to do. Who am I kidding? The job isn't going to happen till Tuesday afternoon. Dr. Smith has already given me my first assignment as a paid engineer, but I'm going to take him at his word (he said I shouldn't let it interfere with my schoolwork) and put it at the back of the queue for now, except for the obsessive thinking part which I can't stop myself from doing anyhow. Oz is teasing me because I have to write code to run on DOS. Believe it or not, I still have DOS manuals from way back. For the past year the manuals have been sitting in paper bags filled with outdated software (MS-DOS 5! Microsoft Office on 21 floppy disks! No fewer than three versions of OS/2!) by my front door. I never did get around to putting them out in the trash. I guess that's a good thing. Maybe I should get out my old 386 with the excessively large 128 Mbyte hard drive. See? I'm already distracting myself from the take-homes.
Meanwhile, my brother gets to go to Tokyo for Golden Week. Hmm. C students really do have more fun.
We fill out the course evaluations for Electronic Devices. I give the prof high marks, the textbook low marks, and the only comment I write is "Once I stopped trying to read the textbook, I began to understand much more and became much less confused." I rejoice that I got the book used for $45 instead of paying $120 for a new one. And that we hadn't been required to turn in any homework assignments.
"So, did anyone actually do any of the homeworks?" Skipper looks up from his sheet.
The subsequent laughter has an edge of disbelief. I look around at my classmates as I hand my completed evaluation sheet to Not-Lurch who'll be turning them in at the dean's office. Everyone's grinning with that "You're kidding, right?" kind of look.
"The night before a test I copied one onto my formula sheet," someone volunteers.
"Did anyone even look at the book?"
"Come on. Raise your hand if you did even one problem!"
A few hands reach toward the ceiling.
It's a good thing professors leave the room when we fill out evaluations. They'd be so disillusioned with us. (Yes, that was a joke.)
And why doesn't Matlab have built-in function for it? If they do, let me know. It'll save me writing one. On the other hand, that filter is only 0.02% of my final grade, so I could save myself hours by skipping it. Except I can't help but think I'll need that 0.02%.
Why doesn't NASA have my social security number? It was on every page of the application I submitted. And why don't they have my address? They do, because that's where they sent their paperwork last time, and because it was on my application. But the Office of Education coordinator called to get the SSN and Dr. Smith had me email all the information to the researcher I'll be working with this summer so he could pass it on to the Office of Education. I send them the information, but now I'm wondering how well I'm going to handle life in the public sector. Because they had all that information already.
Why does that port on the Rabbit not accept a bit set from the switch? The software has to take the switch value and write out the value to the port. And why does Dr. Smith think I'll be able to figure it out? I guess I've got him pretty well snowed. He seems to think I'm an engineer. No! I only have book-learning which is, as everyone knows, pretty much useless.
Bored as Cali-boy and I debug the memory and Mountain Girl formats our documentation, Ratso fiddles with our code. He adds features, including a help screen when he hears that another group has one.
"Hey, can you fix the exe command? It doesn't do exactly what it's supposed to," I say.
"What should it do?"
"The OS simulation should run for a specified number of cycles and then halt. We can't do it by cycles, but we could maybe do it by dispatcher calls," I explain.
"Okay."
I return my attention to the memory where illegal addresses are being allocated all over the place. Mountain Girl gripes about us making further changes to the system which necessitate changes to her beautifully formatted documentation and then wanders off to take a break. Ratso expands his Byzantine set of flags that control shell execution.
"Why is this variable called 'chunk' and this other thing called 'chunk'? Are they really the same?" I ask CB. We continue to trace through his code to tease out the logic error. At least we aren't getting segmentation faults anymore.
"We have to change our password." MG appears behind us. "They're over there in our directory."
"Who?"
"Humility Boy and them. Skipper's running our code."
Whoa. "Those are the 'smart' boys, they don't need our code," I grumble.
"They don't need to cheat," CB agrees.
We are all annoyed, because if they had asked for help, we would certainly have obliged. We dredge up the command to change a password in LINUX (passwd, and it takes far longer for us to remember this than it should) and reset our password. Admittedly, the security breach is our fault because we didn't change our password weeks ago. But still.
"But they're still logged in over there," MG says.
"Go make them get out. Tickle Skipper," I tell her. I figure we'll get better results if she takes care of it. She is the least likely to preface her demands with "Hey, assholes!"
"He has a girlfriend," she objects.
"So poke him with a pen from a distance."
"Hee! Okay." She goes back across the lab and her efforts meet with success.
Ratso says, "So I got this exe thing working. See?"
It works. We get the memory debugged and it works. We throw our test files at it and fix whatever breaks. MG gets the documentation looking beautiful. Ratso makes additional cosmetic refinements to the shell. We submit the files well in advance of the midnight deadline and we are done. And our directory is password protected, so fooey on the smart boys.
Did I have the best project team or what?
System error. Unable to provide requested output. Please accept core dump instead:
The dispatcher is called from the secondary thread (as opposed to the primary "shell" thread). This function schedules the processes that are waiting in the Ready and IO queues. Unless blocked from the shell, the dispatcher will execute each second and increment the system clock each time the function is called, regardless of whether it executes any processes in the queues.
When the dispatcher operates, it first checks the ready queue. If the queue is not empty, the dispatcher checks the arrival time of the front process. If the system clock is still greater than the arrival time, the process is re-queued and the next process is checked the next time the dispatcher is called. Once the dispatcher finds a process that has arrived, the process is allowed to execute for up to ten cycles before it is re-queued
"5070 cycles? No way did I put that in there. Where did it get that number from?"
"It concatenated with the 50 cycles in the first CALC."
"Okay. So how are the cycles getting loaded in?"
"Mountain Girl! This is your fault!"
"First the 50 cycles get loaded in to string s, then string s is Nothing happens to string s. We have to clear out that string every time it goes into that loop."
"Okay. Easy, that's s.clear()."
The peasants rejoice at a successful bug fix. The peasants run the program again.
"Oh. What's happening to the output messages?"
"They're getting concatenated too."
"Mountain Girl! This is your fault!"
"Those are getting read into a character array. We just have to clear out the array between function calls."
"How do you clear a character array? Is it .clear again?"
"No, that doesn't work."
Much fiddling around with made-up function names, online searches for character library functions, and thumbing through the old C++ book. Finally we come up with a kludge: we read each character into the first element of a character array and concatenate those individual characters onto a string. The peasants rejoice at a successful bug fix. The peasants run the program again.
"Out of memory? What does that mean?"
"Hooo! All those threads that aren't getting exited every time we quit the program are floating around and taking over the server. It's all your fault! You crashed the server! Wait, is it even getting to the 'exit' command there? Maybe it's my fault."
"There are 49823498713245 items in the Ready Queue," Ratso reads from the screen.
"But there's nothing in that queue. We only loaded one program and it's in a different queue."
I see that the list .size() function does not return a zero when the list is empty. It returns a 0 for a list containing one item, a 1 for a list containing two items. So. If we add a 1 to the 49823498713245 returned value, do we get a zero? What is 49823498713245 anyway? An integer? Or some junk that happened to be sitting around in a given memory location? Maybe if the returned value is a long unsigned integer, and we are getting this "subtract 1 from the real number" effect, this is really a 1, represented in memory as a long string of 1s and displayed as a very large number. I need to stop thinking about this.
The real question here is why, in a project of this complexity, can't the simple stuff be simple?
When the coding gets tough, the tough go dumpster diving.
Our computer science project from hell, the OS simulator is requiring us to do a fair amount of typecasting. Nothing Hollywood about that, this is simply changing the format of numeric data from a character string to a number that the computer can do arithmetic on it, and then back again. Easy. Or it would be if the function that did that were available on the Linux platform. And for an added twist, the character array type and string type are different and we have to cast between them as well.
I fiddle around with this for a while, but I keep getting the same compile time errors, which means it's time to stop trying random cargo cult things and start mining the internet. I know that we can't be the only people who've ever had to do this and, lo and behold, we aren't. Google supplies me links to vast quantities of information, much of which is cheerful recommendations to use the itoa() functionnot available on Linux. Eventually I find that some kind soul has written a little function to turn integers and character arrays to strings. And some other helpful person has posted the syntax for turning a string to a character array. And eventually I get it to work, after trying numerous other helpful tips that don't.
I can't wait to start testing this. Really.
Humility Boy is trying to put together a team of engineers for Field Day at our university. He has been able to recruit enough boys, but the team must also include five girls and he's having trouble finding five girls with both the time and interest. Even the free t-shirt and chance to "compete for prizes" arent enough of a draw.
He's hard up. He even asks me.
I say, "I hated Field Day when I was in elementary school. I'm sure not going to do it now!"
Now that I'm thinking about itField Day? Three-legged race? Opportunity to get tied up to a twenty-year-old boy? Such a train of though is unseemly and shall not be pursued. Besides, I check the list of activities and they don't have a three-legged race, only the usual slew of the projectile-related events that made me ever so glad to be done with P.E. back when I was in high school. One of the activities is "Mental Challenge." I'm wondering what that is, and whether the addition of an "ly" and a "d" might be appropriate.
Mountain Girl says that she would do it except that she's already over-committed. He asks her every day anyway, just in case. He also throws pens at her during computer science. It is suspected that he "likes" her.
Even without the participation of the ladies of Computer Engineering, Humility Boy has managed to gather enough girls. Now he is looking for a team name. "How about '64Kps'?"
I tell him, "The best team name ever is tensai. It's a Japanese word that depending on how you write it can mean either 'genius' or 'natural disaster'."
"Really? That'sYes! And Origami Girl knows some Japanese, so I can ask her how to write it."
"She does not know these. I will show you how to write it." I find a dry erase marker and write the kanji on the white board. Luckily for him, they're fairly simple: 天才 and 天災.
During lecture, when he's not throwing pens at MG, he's practicing the kanji and filling out the Field Day form. Out in the generalized milling around in the lobby after class, he calls up a fellow teammate to tell him it's a go. "Yeah, we got five girls so we can do it."
I'm writing out my email address for MG, but I start laughing and misspell my ISP. Crossing it out and starting over, I explain to her, "It sounds like he's planning an orgy."
"Ew."
When debugging code, one inserts helpful debugging messages for the program to output at various stages of execution so that one can track the process as it executes. My debugging messages tend to be utilitarian and to the point: "now calling foo" or "thread exiting." But Ratso, he of the rat terrier that can leap tall stacks of furniture in a single bound, has opened my eyes to the true potential of debugging messages. His run along the lines of "Ratso da man" and "Interrupt dawg." Very self-affirming, turning one's homework into a sycophant in a complete reversal of the normal homework paradigm. But now that his code is advanced enough that we're all looking at it, the messages are more like mine: "Interrupt x=1" and "This is the load function."
This saddens me.
My computer science team stumbles lost within the labyrinth, but today I hit upon the magic words to unlock the secrets and show us the way out. I see "C++ Standard Template Library" on the spine of a $90 book. I look in the book, comprehend what I read (Easy peasy!), and return it to the shelf because it's a bit beyond my budget. Once I get to the computer lab, I plug those magic words into Google, the all-seeking oracle, and find this.
Those kindly soulsnay, gods and goddessesat Silicon Graphics have put the whole thing online, nicely indexed and with documentation comprehensible to the neophyte. (Can I intern with you? Can I have your babies?)
Since we don't have to reinvent the wheel, the task is reduced to the doable and we now have written code that actually works. We might even have a functioning project to turn in on time, which would certainly exceed my expectations.
Of course, if for some sick reason the perverts who set up the Linux system on which this must compile have not included the Standard Template Library, we're still fucked.
Sad, isn't it? I am she who never turns in code that doesn't work, but I'm choking on this project. With our OS simulator, the best we're hoping for is sort of a "proof of concept" kind of thing. Ratso says if we get a 70 on the project, it's still possible to get an A in the class. Would a design that looks as if it might work if it were coded properly rate a 70?
I write the logic for the dispatcher today. It consists mainly of function calls to functions that do not exist yet, if ever.
I still have to write a short paper on Newton. I still have to work on my Digital Signal Processing homework that's due Friday. It was due tomorrow, but I begged an extension for us all. I still have to get through the next two weeks.
The computer lab is hot and stuffy. The cathode ray tubes are less than twelve inches from our faces. I google on "C++ linked lists" and pull up site after unreadable site with horrendous wallpaper designs which render impossible the extraction of any useful information contained therein. My eyes ache. After coding said bootless function calls, I give up for the day and go lie down in my car. The bench seat in back is lumpy and not long enough. Today I wish I had a Buick with a long, flat bench seat I could stretch out on. Slipping off my shoes, I curl up and listen to the rain pattering on the roof and windows. I am alone and not breathing heavily; an hour passes before the windows fog up. I crack the window open and let the rain drip onto my ankles.
We're really most sincerely screwed.
I have come to this conclusion after my computer science project team met today. We tried to start writing code, but we're really at sea. The Data Structures class that was supposed to prepare us for this didn't. The last minute hire who taught it thought teaching consisted of saying "So, you guys have any questions?"
Our one question went unanswered: "Why don't you teach us how to implement some data structures?"
This evening, I knot my fingers in the front of Oz's sweater and cry, "Will you write my homework for me?"
Detaching me, he says, "I can't. Well, maybe in Cobol. And maybe in C, but it would take forever because I can't remember C."
"It's going to take us forever because we didn't get to learn C in the first place. Wah!"
I have come to the conclusion that we are going to have to ask the professor for permission to write the project for a Windows compiler instead of the Linux compiler he wants us to use. The Linux compiler won't compile the dialect of C we know and fixing the resultant compile time errors is fiendishly time-consuming. We are engineers, not hackers, so yes, we're lame, okay? This is what is holding us back. We keep trying to design it like it's hardware, because that's what we know how to do. And that won't work. So we're screwed.
Still, we're tempted to write the code for an FPGA. When we turn it in, we could just drop the chip on his desk and say, "Here's your OS simulator."
In Digital Signal Processing, the professor had tentatively scheduled a second midterm for March 10, the week before Spring Break. He forgot to give the test and we "forgot" to remind him. This is a tiny class and, to our good fortunate, does not include one of those helpful students who raises her hand and asks, "Dr. So-and-So, didn't you say we were going to have [some horrendous assignment] to do for next time?"
During the March 31 class, Dr. DSP remarks, "I see on the schedule we were supposed to have the second midterm a couple weeks ago. And I forgot and"
"And we forgot to remind you?"
"Yes, so anyway, I guess we'll have to have a take-home. I'll post it next Wednesday and it'll be due in my office on Friday."
Entering a nice state of shock, I mark that in my calendar. I have a math quiz and homework due that Wednesday and a computer science test on Thursday, so it's looking to be one of the worst weeks this semester. By the time this weekthe week of all those testsrolls around, however, the math quiz has been shifted to Friday and Dr. DSP has postponed the midterm to Friday, which means we'll have the whole Easter weekend to work on it and the new DSP homework set due Wednesday. So the "worst week" situation has been effectively pushed three days into the future where it can join forces with the next worst week that has been burgeoning away up there.
Oz has been officially warned that my plans for the weekend revolve entirely around this take-home test. I've already spent three or four hours on it and I'm halfway done maybe, except the last problem involves, among many other things, designing "an IIR filter using an elliptic analog prototype and the bilinear transformation" which is looking like three hours on its own since I'm going to have to teach myself that from the book. Then I have to take more time to check all my work. While I don't mind the open book, open notes, open Matlab, open Internet aspect of the take-home test, I do mind that the professor does not have to consider any time constraints when he makes up the test. I suppose the total time for the take-home doesn't exceed the study time that an in-class test requires, but Augh! I just want to get it over with.
Let me introduce more characters from the cast of dozens comprising the Electrical and Computer Engineering Department. First, we have the professor who teaches the Electronic Devices class, Dr. ED for short. Doesn't that sound friendly? He's a great teacher too. And then we have Skipper, one of my favorite classmates. He's very intelligent; even when he does come to class he doesn't take notes. What I really like about him is that he's generally good natured and has a pleasant attitude, i.e. he's not a whiner. The only complaint I've ever heard him make is about those professors who give quizzes at inconsistent times: "Sometimes she gives them at the beginning of class, sometimes at the end, so I don't know when to show up. I wish she'd stick with a system!"
This morning in Devices, Dr. ED is lecturing away, slinging formulas up on the board in his inimitable and highly organized fashion. Most of us are busy writing them all down so we'll be able to transfer them to our formula sheets for the quiz next week. Even Skipper's in class today.
Skipper has a question. "Shouldn't there be a VB on the left side of that equation?"
Dr. ED pauses and turns to face us. His answer is brief. "No."
"But, isn't"
"No. We went over this last Tuesday. You weren't here." Dr. ED never gets fussy when we correct his formulas, but now he's speaking very neutrally, eyebrows slightly raised, and not smiling.
"Uhbut?"
We all turn to look at Skipper. Eyes wide and perfectly round, he's a rabbit transfixed by a pair of figurative headlights. A collective "ooooh" rises from the class.
"I clarified this before. You weren't here," repeats Dr. ED, but now I'm thinking his new nickname is Dr. Iron Fist/Velvet Glove.
" " Skipper wilts.
Dr. Iron Fist/Velvet Glove turns to the board and continues his lecture.
For our term project in computer science, we have to write an operating system simulator. We are going to have to use pthreads to "execute" multiple programs which opens up a whole host of issues, the first of which is that we have no real idea how to use pthreads.
I'm trying to remedy that. One of the things we need to do is put the pthreads to sleep in queues, where they wait their turn to execute. You'd think there would be a simple way to do this because this sleep/wake sort of scheduling operation is very useful. You'd think.
Googling on "pthread sleep wake" brought up some instructive sites which seem to indicate otherwise, but I can't be sure because they're written to somewhere above my level. A few of the web pages are archived emails from developer mailing lists. One of the emails, I'm tickled to see, is from Linus Torvalds himself. Cool. Maybe this whole pthread thing will get less kludgy. Then I check the date of the email. 1996. Maybe not.
Meanwhile, it slowly occurs to me that we might be able to avoid the whole issue by using semaphores to handle the queuing and scheduling.
We interrupt our regularly scheduled journaling to direct you to a photojournal of the day's big event: Campus in Flames (by the same author). An unfinished campus building caught fire, burning most impressively, and your intrepid photojournalist (i.e. "person with camera") was there! Apologies to any readers on dial-up: the images are all about 400k. I did put them on individual pages, so that may help.
In other news, my internship may have gone up in smoke yet again. The third slot developed "funding problems" as well. We are now on the fourth, last chance slot and my professor is getting suspicious, especially since other students are not having similar problems, although he's sure this must be due to the recent reorganization of the agency. You know, simple bad luck.
He went ahead and submitted my resume to the fourth project, on which he is actually working, whereupon this researcher expressed some concern that I am the president of a company.
Aha! "It's a one-person company," I say. "I don't have any employees, just two fat cats. Do they think I'm going to blow off the internship to attend to the company? I thought that having my own business would show that I'm responsible and hard-working."
"Well, I told him that [you wouldn't]." My professor doesn't think he can get any grant money for the summer, but he tells me that if he could, he'd sponsor the internship for me. "You shouldn't be working at McDonald's this summer."
This is so infuriating. An idiot could see from my academic record what priority I give this engineering program. It's possible they're scared of an intern who could truthfully say, "I know something you don't know. I can do stuff you can't do!" Not that I'd rub it in or anything, I mean really, because if I were all-knowing I wouldn't be in school, would I?
When I tell him all this, Oz says, "They must have really short 'self-esteems' there at [name of government agency withheld]."
Maybe it's time to start hitting up the private sector.
My computer science project team: Ratso, Cali-boy, and Mountain Girl
We meet at 2:30 today in one of the study lounges in the engineering building. Not being on Eastern Standard Time, Cali-boy is an hour late. Even without him, we make considerable headway in circumscribing our ignorance of C and pthreads.
Ratso (so named because he has recently acquired a rat terrier puppy) (and because I've always wanted to call someone "Ratso") helpfully does not understand basic aspects of the project. I make him ask questions and in doing so he illuminates several details that I had previously managed to overlook.
"So this thing with the clock? How are we supposed to use the clock to count cycles?"
"We have to simulate the clock? We just pretend." I check the minimal spec we've been given. "Oh. I didn't see that. I don't know how." I knot my fingers in my hair and stare wide-eyed at the others who look as blank as I feel.
"Doesn't that depend on the hardware?" he asks.
"Yes, but we don't use that clock. The CPUs are clocked at a gigahertz or more, that's too fast for us to do anything with anyway. We have to make our own. Maybe a global variable that gets counted up?" I am still disturbed by the extra level of complication this introduces.
"We could do something like with the Atmel," he begins.
"Yes, we had those loops!" MG puts in. She and Ratso worked together on a microprocessor-programming project last semester.
"What did you do?"
He explains how they used loops to slow a counter down to a reasonable value. "We can just use an 'if' statement. I can do that easy."
"Okay. Then it's all yours." I write on the scratch paper where I've started blocking out the top level of our design: Call clock. "This has to go in a subroutine."
"Uh. I never used those because I always have problems passing my variables in."
"Don't worry, you'll get really good at them before we're done," I say. "Now, what about this RESET thing? You want that too? It has to reset the clock."
We now have the two easiest tasks assigned. The rest is nebulous. MG will be the Queue Queen and I shall be Mistress of Pthreads. Cali-boy shall show up and follow orders.
DSP lab meets at 8:00 a.m. Attendance is not good (but I go every time because I am good).
I go in this morning and the professor is already there, fiddling with the DSP boards. So far we've been doing our lab work through Matlab, but now we get to sling code onto an actual chip. Dr. DSP is going through the setup so that he can turn around and tell us how. He directs us to look at the online manual until he's done. The microphone is not working. He taps the mike and blows into it. The speakers are silent. He unplugs the microphone and the speakers and compares the jacks.
"Oh, the mike is mono." He plugs everything back in and tries again. It turns out that the mike will only work if it is not plugged in all the way.
Later when he's introducing us to the contents of the board kits, he says, "So you have the DSP boards, the power transformer, the speakers which you've used before, and this sucky microphone."
Humility Boy decided to go to Cigarette Company for his internship and therefore I shall get his slot at Prestigious Internship Program, assuming that nothing else happens to thwart me: more funding issues, rabid possums invading the research center, the researcher I'm supposed to work with discovering this website, etc. My professor is still working to make sure that I get in. One thing that I have earned at school is a bunch of professors who are like cheerleaders for me. This one has really gone above and beyond what I would expect from anyone to make sure I have a great summer.
During Operating Systems, Humility Boy amused himself by using Mountain Girl's colored pens and scratch paper to draw a landscape worthy of a six-year-old. Yes, I did thank him for choosing to intern at Cigarette Company.
I got an A on my Electronic Devices midterm.
The blonde girl who works mornings at Vanessa's coffee shop dyed some, but not all, of her hair hot pink.
I'm still on homework strikey. I went to class like a good girl, but at home I cooked my wonderful marinaranew variation this time: I added cannelliniand fiddled with my first novel.
I dropped a full jar of dried oregano with the cap off, of course, but I was able to clean up most of it using a subscription card from the plethora of deboned magazines piled on the dining room table.
In my mailbox today I found the cover of the new issue of Smithsonian. The rest of the magazine is missing and since it doesn't have the address label, it will remain so. I wonder, What was the mailman thinking?
I dropped the tank of my humidifier in the bathtub when I was filling it and rendered it unusable. It now has two large cracks in the side which I didn't notice until I put the tank back on the humidifier and it made a sucking sound at me.
My Operating Systems project team is finally interested in working on the project. We are meeting this Thursday to dither around.
My first novel sucks with a suckage that is truly amazing. I think the story works, though, so I should probably rewrite it as I am a much better writer now than I was six hundred pages ago. I also seem to have developed a genre, Cromwellpunk, and it's all mine unless Neal Stephenson has screwed that up for me. (Note to self: Do NOT read the Baroque Trilogy.)
I am out of scotch whiskey.
I still have some gin.
The Japanese word for "strike", or one of them anyway, is a loanword from English: sutoraiki (sounds like "strikey").
I'm on homework strikey for the next day or until my attitude improves, because if all this slaving away to make perfect grades isn't going to get me anything, then what's the point? I might as well finish rewriting the end of my first novel so I can get it slushed out somewhere. God knows, that would be more satisfying than flailing away at the homework for no apparent reason.
The Email of Doom, for which the professor apologized when I spoke to him today, was incited by more funding issues at Prestigious Internship Program (PIP) which resulted in no funding for my second chance slot after the same problem torpedoed my first chance slot. I would have a better attitude about all that if not for the fact that my third chance slot depends on my classmate Humility Boy choosing Cigarette Company over PIP (Are you holding your breath? I'm not) so I can get his slot. There is a fourth chance slot too, but
Humility Boy? Humility Boy has a slot? They picked him over me? Me? The bilingual polymath with all the broad experience, including actual work for the Government Agency which runs PIP, and the highest grades possible? I can be a lot of things, but a twenty-year-old (snotty) male is not one of them. I had thought that I made up for the lack of external genitalia by my general academic fabulousness, but I guess I was wrong. (Admittedly, Humility Boy is very bright, but then I am too and we've completed the same engineering coursework.)
So screw it. I'm on strikey.
Can I grow an ulcer in four days? I think I'm up for the challenge.
One of my professors has been trying to arrange an internship for me in Prestigious Internship Program (PIP) at a government agency where he has many connections. My school requires that we complete an engineering internship in order to receive our engineering degree. The internship I'd get through PIP is the best in the offing. Already one of the slots my professor arranged for me has been cut because of a lack of funding (or the researcher took one look at my application, decided I was too much of a whack jobdespite the fabulous grades and light emitting referencesto work with, and told a little white lie about his funding situation to my professor). Yes, I'm a little insecure.
Today I received this email from him:
This was the whole entire email. Even if he tried, he couldn't have written anything more perfectly calculated to get me munching on Rolaids and engaging in paranoid fits of textual analysis.
What does he mean? Is this good news or bad? Am I in at PIP, or do I need to start applying at Cigarette Company That Uses Cartoon Characters to Sell Carcinogens to Children? (On the bright side, Cigarette Company pays its interns double what anyone else does, including PIP, in order to help them overlook any sticky ethical concerns. I could use the money )
If I don't stop thinking about this, my stomach is going to climb up my throat and beat me senseless in sheer self-preservation.
Base of smokestack, up on the roof of the building formerly known as the Shockoe Bottom Arts Center
East Grace and North 21st Streets
What do grownups do for Spring Break?
The computer labs at school are being upgraded. Supposedly they are getting new computers without zip drives and with USB ports on the front in recognition of the fact that times are a changin' and zip disks are being abandoned in favor of USB keychain drives and other forms of mass storage. This I think is great because I have a keychain drive, I have no zip drive at home, and all my floppies are decrepit with age and not to be trusted. Sounds great, right? Except that the machines don't recognize keychain drives. Most of them anyway. A select few of the machines do, though, and I've made it my mission to figure out which ones.
I plug my drive into the computer I'm using and the little LED in its butt lights up like a lightning bug. The icon that I must click in order to turn off the drive so as to remove it without destroying data appears in the task bar. However, the drive does not appear in "My Computer" window. I sigh. I picked another dud, but what did I expect? This was one of the old putty-colored ones that they only upgraded the OS on. I might have better luck with one of the spiffy silver and black ones. I click the icon to turn off the LED, which is probably not even necessary, and go to pull my drive out of the port.
"Damn!"
It's stuck. I jiggle it around and pull harder, but gingerly. It doesn't budge. Mountain Girl, who's at the next machine looks away from her blog and starts laughing at me.
I let fly with a string of uninspired profanity and continue to yank on the keychain drive. The computer slides forward in its rack and I brace it with my foot. "Shit! God damn!"
"What?" asks Cat-guy (he has way too many cats) from beyond the other side of MG. He's actually working on the term project in our computer science class.
"You don't want to know," she giggles.
Smiley tears himself away from his computer game (another hardworking, studious engineering student) and spins around in his seat. "What's going on?"
"My USB drive is stuck in the port." I jiggle it around some more and the LED comes back on. "Ah shit."
Smiley gives it a try and he can't get it out either. The USB ports appear to be coming loose from their seat. Eeep. I just want my drive back, I don't want the USB ports and a mess of wires hanging off it. Oh, and the damage to school property. That would be bad.
MG is finding this all way too funny. This might make it into her blog too, except that her text is half emoticons.
I pull on it again. No joy. "Shit! God damn! Jesus!" I think my language doesn't get any worse than that, but my memory is a bit hazy on that point since I had more pressing concerns.
"Can't you just pull harder?" she asks.
"My hands aren't that strong and I don't want to wreck my drive."
This time I hold the computer and Smiley pulls on the drive. He gets it out and checks it for damage. I thank him profusely and check the drive on one of the machines that recognize it. My data are all still there. The illusory scrap of dignity I had is pretty much gone, however. At least I got my drive back.
I already wrote many words today, but as they're all in C, I won't post them. I spent the day working on a programming assignment for my computer science class. The resources provided by our teacher were on the null side, so I had to scrounge up pthread tutorials to fill in the gaps. This one was particularly helpful even though the person who wrote it is a terrible speller who insists on using vi. vi doesn't have a spell checker, does it? vi barely lets you type.
If all the programming in the last two years of school has to be in C, they should have had us learn C in the first place, instead of making us spend two semesters on C++. Yes, they aren't that different, but they are different enough that you can spend much time beating your head against syntax that works in one but not in the other. And pure ignorance tends to induce flailing at the keyboard in desperate attempts to try anything"Maybe it wants more asterisks? Why didn't it like the ampersands? C++ likes ampersands."that might clear up the parse errors.
Over the course of more hours than I care to contemplate, I reduced four screens full of compile time errors to nothing. Woo! Then I ran my program and got an error message. "Segmentation fault? What's that?" I should just learn to check Google first. After I wasted time looking through the indexes of my computer science books, I found an explanation online. A segmentation fault is what happens when your program tries to access memory that it's not allowed to, usually a pointer problem. "Oh no!" I wail, "There's pointers all through this thing!"
After more flailing, I manage to comment out the bad pointer and get the rest in line. Now it's running well enough that I can work on the logic errors. And, uh, get to that bad pointer.
My eyes are burning. I hope the programmer's hunch I've developed isn't permanent.
I woke up at 5:30 am, dreaming in C. I don't even know C, which would certainly explain the errors I was getting. A few hours later, during a completely unrelated class, I figured out how to implement the code properly (I think) for a DSP project, but I haven't had a chance to try it out yet. I'll play with it this weekend, after I do that translation job. Let's all hope I have C-free dreams until then.
I'm studying for the computer science test that is coming up tomorrow night. Being the class taught by the person who speaks poor English, it is an exercise in frustration and procrastination. We've been presented with various bits of conflicting information to memorize, to the extent that during the review session last night we were reduced to saying, "You said the program control block is not in the process image, but the book says it is, right here on this page. So what are we supposed to learn for the test?" Oh, and I found out that the whole time he's been saying "counter", he was saying "context" except when he was saying "counter". Those words are used in the same context too, so that makes my notes really suspect. I think an accent that heavy cannot be considered an accent.
I'll do anything to not study.
This is a class on operating systems, however, and in the spirit of showing how interrupt-driven I/O works, I shall describe my day accordingly.
Pay bills, evaluate financial situation. Hmm. I think I'd rather study. But I clean the cat box instead and suddenly it's time to
Go to DSP lab, fiddle with the new lab assignment, and answer many questions from people who can't be bothered to show up on time. Why should they get in at 8:00 when they can just ask the students who did? But finally I can run back home for
Lunch (leftover pizza and coffee), study by staring at printouts of the Power Point slides used as lecture notes and provided on the textbook author's website. The professor didn't even write them and I wonder if he's read them. I fume, call the man and share the joy, then study ineffectively till it's time to go back to school for
Math class, where we learn about functions and sets, which were pretty much covered in the pre-calculus class I took back in 1998. The classroom is nice and warm. It's hard to stay awake. After class I go to the computer lab and try to copy a file to my flash drive, but they seem to have that functionality disabled. I give up and say many evil things about Microsoft not quite out loud on my way to
The bank, where I deposit a check drawn from savings to cover the bills I paid in the morning. Then it's back home to study, but I'm still sleepy from math, so I nap (sort of), and fiddle on the Internet because Chicklit is back up after two days of being disappeared from the web. Eventually, I can procrastinate no longer and
Study, till I'm overcome with the desire to fill the humidifier. Then I study a little more, but some cocoa would be nice. My cocoa-making is more involved than boil-water-open-packet, and that takes a few minutes. I use actual sugar, cocoa, and milk, with a little fresh ground pepper when I'm feeling feisty. Finally it's ready, but when I sit down to sip cocoa and study
The phone rings. An actual client has called me! I haven't been working during the semesters because I've got a 4.0 to maintain, but my financial maneuverings of the morning have left me feeling more receptive to the idea of doing something for which I'll get paid. I check out the job, a blurry scan of a blurry fax scanned as a graphic instead of as text (when I see the name on the faxes I'm not surprised at the oversight), and I accept it since it's short enough for me to fit in this weekend. Overcome at the prospect of eventual remuneration, I pick up the phone and
Call the man to tell him I have work. He congratulates me and tells me all about the adorable stock certificate he just received from his employer. We exchange views and then I study some more until I finish the cocoa and become fixated on
Washing the dishes, which takes ten minutes. I still have time before my next class, so there's nothing to do but study a little more. I finish up with the slides and have a snack. I feed the cats. There really isn't time to start doing more studying, and I stare uselessly at the textbook till I have to
Go back to school for the last class of the day. Phew! Then I come home and eat an apple to prevent scurvy while reading a long article about working mothers, which does not now and will never pertain to me, but I read the whole thing anyway because it's still more interesting than I/O processing techniques. Finally
I can procrastinate no longer and I study for real. I take notes on the text, using the triage method promulgated by Matthew Modine's character in Gross Anatomy (memorize whatever's in bold print), just like they always told us to do back in high school, but we never did. Unlike what we were told, however, my studying is interleaved with a little whiskey-sipping and, once I run out of my ration of whiskey, writing this entry. More alcohol would result in excessive interrupts.
Now it's time for the one interrupt that cannot be disabled: sleep.
After I took the Electronic Devices quiz last Thursday, I knew that I had either aced it or screwed up really royally. Dr. ED didn't keep us waiting, he had them all graded by this morning and, hey, I didn't blow it. I lost two points on a stupid error, but those were the only points I lost. So, yay! I got a 28 out of 30, despite suggesting that the diffusion coefficient in a 40 µm long device was on the order of 1020 square centimeters per second, instead of 10 cm2/s. Yes, if I could find a way to make current out of nothing I could retire today, or at least have really low electric bills.
In the feeding frenzy as we all scrabbled through the pile of quizzes to find our own, we could see each other's grades. I tried not to look, but I must have been the only one.
Smiley said, "Hey, you got 28!"
I said, "Hush, you'll jinx me."
"Hey, you got 28!"
"Hush, you'll jinx me."
"Hey, you got 28!"
Even though my brother is on the other side of the planet, it's like he's still here in spirit, or like he occasionally takes possession of my classmates.
Eye test. Which is clearer, the first one or the second one? Well, they're both blurry but in different ways. Okay. Flips lenses around. Which is clearer now, one or two? Uh, two, I guess. Okay, now the right eye. Flips shut the door on the left eye and twirls the lenses before the right. Which is clearer now?
Math test. State the negation of the proposition, then prove either the negation or the proposition: For any real number x, x>x2. A={0, 1, 2} B={2, 4, 6} What is the union of A and B? What is the cardinality of the power set of B?
Test of my patience. (I think I failed.) Using the C++ .NET compiler. (Why the fuck did I buy this piece of shit? Oh, yeah. Because I had no choice, it's the only one you can buy anymore. What the hell does that error message mean? "Precompiled header"? I didn't put a precompiled anything in my code.) Write a simple little program that would compile just fine on Borland, or at least generate meaningful error messages, but my Borland compiler doesn't work on my updated OS. So I guess I have to do this at school tomorrow, where they have some compilers that don't require you to "build a solution" and then a "project" (and God help you if you do the steps out of order, because you might end up with buggy code you didn't write getting inserted into files you didn't know you were working on). "Build a solution." Sweet Jesus. What genius let the developers learn buzzwords?
Tonight was the Digital Signal Processing test. I spent the day studying for it, with breaks to run to school for classes, and the material on this first test was mostly review from Signals and Systems I and II, so I wasn't that stressed about it. You know, study till you practically go blind and tests aren't that hard. The electroshock therapy necessitated by the study regime, now that's hard.
Because the class meets only once a week, I figured we'd have some lecture in addition to the test since we simply can't afford not to use what time we have available. Professors having lecture on a test day doesn't usually bother me. Not having lecture is okay with me too, but a half hour of something new to clear my head before a test is not a bad thing. Normally, however, professors choose to have lecture after the test because of the generalized whining that breaks out upon announcements like "I thought we'd spend the first twenty minutes or so getting started on the next chapter. You'll have plenty of time for the test."
So tonight was normal, we had lecture after the test, but with a twist. We got to go over a couple test problems as a special bonus. This professor likes to hand out solutions right after we hand in our tests. This is a special form of torture, although I don't think he means it to be, because the minute following an exam is the absolute last time that I want to see how I did. I always stick the solution in my notebook and take a week to calm down before checking to see how many stupid mistakes I made. Going over test problems in class completely implodes my coping mechanism.
He's writing stuff on the board. I'm trying not to look, doing a silent version of "La, la, la, I can't hear you." This test is history. I am done obsessing with it forever. My test tomorrow morning and any new material Dr. DSP wants to go over are the only things I need to deal with now. "La, la, la."
He's still writing, but he found an error in his solution. "Er."
Well, that always happenshe never uses a calculator when he makes them up (I've taken classes from Dr. DSP before). And he obviously doesn't check his work for careless errors. Ha! No, I'm not gloating or anything. Really. I respect people who multiply out complex numbers in their heads, even if they get the wrong answer. It's not like I'd get the right answer myself, after all. I'm glad I didn't look at the solution though. When I saw an answer different from mine on a question I (thought I) did correctly, I would have had a stroke.
We manage to move on to a brief review of sampling before anyone has a breakdown or a tantrum. We are adults. We are engineering students.
A few of the classrooms in the engineering building are designed like amphitheaters, with stepped floors and narrow tables affixed in concentric arcs around the area where the professor stands. The tables have two-inch holes drilled in them at regular intervals, presumably to allow for the power cords of laptops to be passed through on their way to conveniently located power outlets.
I've had a number of classes in these rooms and, I have to say, I've never seen these holes being put to their intended use. They are all inky on the inside from when students space out during lecture and stick their pens in. Some of them have plastic rims set in the hole for pretty. Once all of them did, but as the plastic rims mostly serve as objects to fidget with, they have gone the way of such things.
This morning, during the period of caffeine intake we call Electronic Devices, Mac Boy got creative with his Mountain Dew cap and started playing air golf, knocking the cap into the hole at his spot. Yes, the vending machines carry all varieties of Mountain Dew and sell out on a daily basis and, yes, the caffeine was doing its job. He wasn't just flicking the cap with his fingertip, oh no, he was blowing on it. He was developing technique. Then he started doing trick shots, contorting and draping himself over his chair in positions that made it difficult to breathe.
He's pretty good at this.
The cap drops through the hole and bounces on the floor.
"Yes! I'm going for the par five now!" Mac Boy cries.
"Oh, I wish I had my camera!" Origami Girl says.
"Hey, I have one." I pull out my camera, but Mac Boy is doing his victory dance by the time it boots up.
I did take some pictures, but notice how they're not posted? I'll have to let Mac Boy vet them first, but I'm almost embarrassed to show them to anyone. They're all blurry because I was laughing. The only one that's clear is still blurry because of the victory dance.
So if you spend your last hour of sleep dreaming that you're plugging numbers into a complicated equation and getting bad results, does that count as homework time? Because it sure isn't restful enough to count as sleep. I don't think I should have to do school in my sleep. School gets more than enough attention during my waking hours.
"Just because you're paranoid, doesn't mean they are out to get you."
Is that what they say? Or is it "Just because they're not out to get you, doesn't mean "
How does that go?
"Just because they are out to get you, doesn't mean you're not "
Never mind. The professors are out to get me, even if they don't hate me, and a mushroom cloud of homework is rising high into the air above my house. The ever-expanding shadow spreads across Church Hill. Small children shriek and run indoors, dogs howl. Perturbed at how I while away the hours by peering deep into a cathode ray tube, the cats yowl and body slam each other on my bed. I go upstairs and find tufts of hair all over the coverlet.
"Well, that's one less petrified hairball behind the couch," I say to myself as I dress for school, where I'm going toyou guessed itget more homework.
Back in my halcyon, liberal arts student days, I never did homework. I left those days behind for good when I decided to go back to school and, I pause here to retch, work to my full potential. So now my entire life revolves around homework, because when you study engineering you either do all your homework or you change your major.
I have three tests, one of which is generously called a "quiz", next week. And problem sets galore. At this point, all I can do is prioritize them by due date and slog on through. I got up early this morning and worked on the digital signal processing (DSP) stuff till it was time to go to school. I hit the wall with one problem. I hit the wall with every problem, really, but this last one had the highest wall and broken jaggedy bottles on top. The example in the book simply listed the Matlab code you needed to solve the problem, because even the authors didn't want to do a partial fraction expansion with a ratio of two fifth order polynomials. Yeah.
But it was time to go to school, so off I went, where I got a math worksheet to finish up by Wednesday (in case the mammoth problem set for that class wasn't quite big enough, don't you know). I also did the Matlab thing in the computer lab, where they have the full version. I only have the student version of Matlab at home and it doesn't have all the "toolboxes" (sets of advanced functions) installed. Earlier that morning, thinking that I might have some other toolboxes on the student version CD, I checked my documentation to see how to install additional toolboxes. The instructions were "buy toolbox, download and install toolbox".
At least I didn't have to type in the code from the textbook. As I began typing, it occurred to me that the authors might have a website from which I could download it. Lo and behold! They did, and with a wonderful zip file of all the Matlab functions from the book. I pulled out the functions I needed, plugged in my vectors, and gotan error message. One of their functions had a syntax error, but I fixed it in maybe one second and then everything was dandy. Happy for the first time all day, I printed out my results and, tucking the sheet into my binder, I glanced over the other parts of the problem to find that I had done them backwards. The x coefficients were on the y side of the filter and vice versa. Do over.
Homework breeds.
Last night I saw large bouquets of helium balloons, in the school colors, decorating the lobby for some event (our tuition dollars at work).
The balloons were mostly still there this morning. They had been moved into the lounge area and the remains of some burst ones dangled from the little bunches on the newels at the bottom of the stairway. By the time I left class, some students had gotten into the balloons and were doing the obvious thing. They were sitting around on the couches in the lobby, sucking helium out of the balloons, and talking like chipmunks.
As we filed past, one of them got a lungful of helium and squeaked, "Seriously, guys, this is so much fun! You should try it!"
Some context to start with: I am what is now called a "non-traditionally aged" student in an engineering program, with "non-traditional" meaning "older than some of the professors". Moreover, as a self-employed person who works from home and has no American TV programming piped in, I am more detached from today's youth culture than most of my staring-into-the-cold-dead-eyes-of-middle-age generation.
One would think that being a full-time student on an urban college campus might help offset some of these factors, but it doesn't in my case. The engineering school is tucked off at one end of campus in its very own building and, other than rare visits to the registrar's office and the bookstore, I haven't had much reason to venture deeper into the hive of student activity. Since I already have a bachelor's degree, I don't have to take any general ed. classes (or so I've been told. We'll see what happens when I turn in my application to graduate. "Why, Grits, you haven't met the Art Appreciation requirement. You can't be designing computer chips without a properly developed sense of aesthetics!") and therefore I am taking only engineering classes, more or less, which are all held in the engineering building.
And so, while I spend my days surrounded by youth from America and many other countries, these youth are all engineering students and, by the standards of their peers, they are dweebs. Their pants fit, their secondary sexual characteristics are covered, and most of them wear coats and sweaters when it's cold out. They have opinions about the relative merits of different Linux releases. They get excited to the point of dancing if they can get a good price on a router or score a free copy of Matlab or AutoCad (not that I know anyone who has). I fit right in. It's not until I leave the cloister of the engineering building that I even realize how not mainstream the situation is.
This semester, however, I have to take a math class located in the business building. To get there, I must walk through crowds of piercèd children. Children who have injected copious amounts of ink into the surfaces of their skins. Children wearing tank tops and no coats, even as snow covers the sidewalks. Children with white-people dreadlocks. (Let it be said, I think dreadlocks look great, but I've only ever seen one white person with dreadlocks who looked great.)
And, looking around at the alternatives, I have to say that it is a far, far better thing to be a dweeb. It is far, far better to be out of touch than I could have known.
Today in digital signal processing lab, one of the students snuck up to the white board and wrote "DSP engineers do it discretely."
I'm having to re-read the readings in my Electronic Devices book. I had to go over some parts several times (I won't belabor the re-re-re's). Why? I'm not stupid, but this is taking a while to sink in.
Let me bring you down to my level:
This makes sense to me now. It might have been easier if this book had a copy of the periodic chart in the appendices, but nowe have nine periodic-chart-free appendices covering useful topics such as the "Derivation of Fermi-Dirac Statistics" and "Solid Solubilities of Impurities in Si".
I fulfilled the chemistry requirement over two years ago and sold my book back. Obviously I just need to quit whining and pull the periodic chart of the Internet. Besides, we're quickly getting into the physics and leaving the chemistry behind for a garden of Greek letters. If the periodic chart were necessary for this subject, it would have been included.