After class, I left to go to the Dr's and get some test results. Turns out, everything's pretty good, so luckily thankfully all that's wrong with me is TMJ, neuropathy, scoliosis, slipping discs, bulging discs, degenerating discs, thyroid problems.....eh, maybe I'm not in such good shape after all. =P
I got out a little earlier than expected, ans since my other group members had afternoon classes yesterday, I took an entire hour off for lunch (as opposed to gobbling down a cheeseburger while walking from the Ferg to my next class like I usually do). I was starving, with it being past noon and me still not having ate breakfast. Instead of blowing five bucks at the Ferg on Chicken Quesadillas or a Whopper combo meal, I decided to waste an extra two dollars and grab the Shoney's lunch special. I was in the truck anyway and already halfway there, so why the fuck not? It was great actually having a country fried steak for a change, rather than cold cans of ravioli and Chik-Fil-A. After that, I dropped by Books-A-Million and did a little browsing until it was time to meet up with Jason. I looked at a few interesting and worthwhile books, but I cain't lie...I also browsed through the D&D splatbooks to try to plan out what direction I'm going to take my character next time we meet. I think I'm going to add a few levels of Fighter, and use some of the feats from the splatbooks, provided I can get the other Jason to OK then for his campaign. Yeah. I might sound like a geek, but trust me, it's very relaxing to think about cutting demons in half when you're as stressed out as I am with all these classes. Sometimes a little senseless violence is all ya need. ^_^
Anyway, time to get back to work, so I rushed off to part "the Big Red Machine" (one of several nicknames people have given my truck. When they're not begging me to sell it to them on the spot, that is...hehe) and run over to the MIB lab on the top floor. CS 470 went fairly well. We divided the work up - Jason started on the actual algorithm, while I whipped up a RNG to make test files with. That's when you know you're a hardcore CS student...you have to write programs just to help you write programs. What we needed was 50,000,000 random entries, each consisting of a unique project identification number, the cost for each project (rounded to the nearest 500), and then the projects benefit, which was also supposed to be represented as an integer for the sake of quantification. To make not just one but multiple files to use as input for our program, I had to write another program entirely just to create the files. No problem, really, but it's humorous to think that my CS classes are getting that advanced. ^_^
I finished mine relatively soon, since it wasn't really all that difficult, and started working on the main project myself. Jason's code was pretty good, but several tiny flaws here and there. No compile-time errors, but it'd crash halfway through execution with a run-time error. Problem was that it gave literally no information about what happened. That's usually the case, but we thought it was kind of funny how the text said that there were problems with certain random hex values, and then said The memory could not be "read". Maybe it's just me, but how they put quotation marks around "read" made it seem silly. The error contained hex values for locations in memory, but then quoted "read" like it was some kind of hardcore computer term that the average Joe wouldn't know. Hate to tell ya this, Bill, but if you could understand the first part of the error, then you'd certainly know what "read" means. Likewise, if the phrase "reading from memory" is too complex for you to understand, you gots no business programming. =P
Anyway, we cleared that up, but then got lots of logic errors. For some reason, the computer kept confusing the number "32" for the number "-824935251". Not just in one place either...apparently, there were several places where a number was mistaken for -824935251 (and always that same exact wrong number too). And they say computers are smarter than people. Heh. Wasn't too much of a problem, though. Jason just got to that point where you've been coding for so long you're no longer seeing what the program is doing, but rather what you want it to do, and therefore everything looks correct. All it took was a fresh pair of eyes, and we got through the first few problems in tome to work on the bigger, deeper-down ones. It ended on a good note however - we had our first successful test on the very last build before we called it a night. Surprisingly, it worked. That being the case, all we have to do now is add in error checking and make it robust.
We were leaving anyway, but that unexpected breakthrough made for a nice stopping point. We normally would have been inspired to keep on going, but I had to leave, and since we actually had a working project, it made sense to email us both a copy of it. That way, whenever we fuck up what we're going to fuck up from here on out, we can always revert back to this build of the project. There was still one problem that Jason was wise enough to mention...we know that the program was working correctly with five elements, as we traced down the contents of the array onto paper. However, how the hell are we supposed to know if the one with one thousand elements, or five million elements, is correct? It took us half an hour to work out the five entries on paper. A thousand would be impossible, and we want our project to be able to handle sizes up to five million....
As we walked outside, we noticed that it was raining. Jason always wears that big, black trenchcoat of his so he was okay, but I'm still wearing a short sleeve T-shirt with no jacket. It was sunny and 65 when I left that morning. Luckily, Houser was right across the street, and that's the building with the microelectronics and digital logic labs. I grab some root beer to give myself just enough of a caffeine kick to wake me back up, and I head upstairs. I'm the first one of my group there....but the room is packed almost wall-to-wall. If it were not for a row of computers along the back wall that weren't working, it would have been packed. I was lucky to grab the seat of someone as they were leaving. Sandra showed up next, but we couldn't do much because Nick had the code for phase two of our pipelined SRC processor design. We small-talked a little to pass the time, and Nick showed up around five minutes later. Sandra started on the Lab Report, while us two guys went outside to sit in the hallway (even the student lounges were filled) and trace some code from the printouts. The Chadzter showed up like ten minutes later, and between the three of us we made all the corrections we needed to. It's kind of an interesting experience, doing it with only pencil and paper. Anyway, after drawing dozens of arrows, adding a page or two's worth of comments, and scratching out entire sections, we were ready to begin putting all the separate pieces together and building our overall design. I caught a few of the problems with the branching logic and the X3 register, and they patched that up fairly quickly.
After that, Nick and Chad were in the process of turning everything into signals and building the main project file, Sandra went at it on the Lab Report, and I was stuck with generating the Waveforms to test the functionality of the stage two section of code. I got really stuck on the load and store functions (we originally were going to each do some waveforms, and those were the ones I got stuck with), but Nick said to forget that and start with the ones in the ALU since they were easier. I was able to crank out the ALU operations relatively quickly, once I got through the first one. After that, I did the branching logic, since Chad (who originally was going to do that) was pulled over to help Nick debug. Branching and Linking were noticeably more difficult, but still wasn't unmanageable. Just a little bit more code tracing. All that's left is the load/store operations and the shifts (well, for phase 2, that is). I was on a roll, so I started on the store operations. Store Relative works out nicely, but I discovered big problems with the general Store. I worked on that for a while (mainly to make sure the problem was with the actual code, and not with my tests of the code), and got kinda stumped. I had about 95% faith in my tests, but I couldn't seem to find anything wrong with the code at all.
Nick left to go find some food. As he was leaving, we were discussing what fast food places were still open past 2:00 in the morning. Someone pointed out that it wouldn't be too much longer till City Cafe opened up. That's just sad...not only was everything except Waffle House closed, but it was only another two hours and change before they started cooking breakfast down the street.
Since he was no longer helping Nick with his code, Chad looked over my shoulder and was asking how the waveforms were coming along. I showed him the values of the tests, and how they weren't matching up with what the code says that they should be. Soon, all three of us were huddled around the computer screen, long after everyone else in the lab (including the TA, I think) had left for the night. Raid had been splattering on the window in front of me for most of the night, but it seems to have stopped. I am so tired I can hardly stand. Not to mention that the pain in my lower back had been growing steadily since quarter past midnight, and I was about ready for a muscle relaxer. Sandra left, and for the second time in one night (unless you count anything past midnight to be the next day, which may be more accurate since many of us did not even go to sleep last night) the computer reported success just as we decide to forget about the problem for the night and start there tomorrow. Chad changed one line of code; a line of code that shouldn't have made any difference, but hell, I'm not going to argue with the compiler. The compiler always seems to win. =P
Okay, time to go home. Finally. I walk out the door only to discover that it is no longer sunny and 65 degrees outside, and therefore my short sleeve T-shirt was horribly inadequate for marching across the vacant parking lots and facing the bitter cold. It was cold down to the bones. I looked forward, and the air itself seemed to waver slightly, almost as it does in the summertime when you look out over pavement. Damn, I must be losing it. As I walked underneath the first of several streetlights on my way back to the dorms, I realized why the air seemed to be moving out in the distance. It was snowing! It was so faint that you simply could not see it looking towards the darkness. However, underneath the streetlight, you could see millions of the small flakes slowly drifting downward, in much the same way as dust can be seen flying around in the air when you look right beside a window on a bright and sunny day. I love the snow. Even when it's so light it's scarcely even noticeable. ^_^
The walk home was cold and otherwise uneventful. It was slightly disorienting, since between streetlights it was pitch black, and then as you walked underneath one the air came alive with millions of tiny particles flying around. No one was awake when I opened the door. Surprisingly, thespacecow wasn't spread out asleep on the couch as he usually is. I headed for the kitchen to make me some hot cocoa to try and thaw out a little. I saw an empty box in the trash, and was pissed. Damn, jsut when I really needed a cup, too. Bah. Luckily enough, he must have went to the store sometime that night, because there were two more full boxes in the cabinet. I put the can of soup back and fixed me a nice big steaming hot cup of cocoa and relaxed a little bit. Despite it being nearly 4:00 am, I was wide awake. I suppose the excitement of making something work, combined with the stinging cold of the pre-dawn hours, was more than enough to wake me up. I already know not to turn on the TV, unless I want to watch the "Mr. Bag Show" again (long story, don't ask...), so I went to the computer room and tried to IM moongoddess8 and let her know I made it home, and see what adorable away messages she left up for me. Turns out that the internet went down sometime in the night. (BTW, the engineering labs are on a different server, so that's why they were unaffected). Exhausted but not sleepy in the slightest, I crumbled into my bed sometime after four, still wearing my jeans, with my keys in my pockets and everything.
Anyway, I suppose that was my day. Long, boring, and tiresome just to read. Hence, the lj-cut. Heh. But as I said before, I'm almost to the top of the hill. Tomorrow is the last day of classes, and the end is in sight at long last. Unfortunately, once you get to the top of the hill there's no other way down except for tumbling down the steep and rocky slope, only to impale yourself on the jagged rocks in the valley below. Yay, Final Exams...... =P