Wednesday, August 29, 2012

Embedded Humor

I've been surprised by some of the jokes that have made it into the lectures, presentations, and even published textbooks, so I thought it was about time to share what I have discovered. 

The powerpoint slides from my Linux Device Drivers (ECE 373) class deserve to be mentioned on their own.  Not only was that class an absolute vault of solid information and good practices, but the lecture slides were usually hilarious and/or baffling with respect to the included pictures.  A few of the finest...
From a discussion on how to determine if there is a bug in your software.  Note the last two bullets
This was at the end of a presentation, letting us know what was in the next lecture.  Note the last 3 bullets, plus the awesome picture included.
Nice picture choice for the concept of a computer being interrupted by a hardware request.
Don't worry if you don't know what "sysfs" means.  It won't make the picture make any more sense. 
The textbook for this class, Linux Device Drivers, also had a few hidden gems in it. The first one, though, is less of a joke than a disturbing reality...
Sound like fun? Protip:  It's not.

This section suggests that if you have error messages that may be fired off very rapidly or constantly, you should do something to limit how many show up, so that the user doesn't get hundreds of pages of the same error repeated over and over.  But look at the message they chose for their example...

From a summarizing paragraph after listing some of the advantages of USB. 

I also found a couple things hidden book for my Operating Systems class, which took the jokes in a decidedly more political direction.
They didn't invent this, I had heard it before.  But nonetheless, it is a great inclusion in any book about programming.

From a section about scheduling work efficiently so you don't have a lot of downtime...









Who knew all we need to do is run that routing again?

Tuesday, August 21, 2012

Charisma, confidence, and why they matter


alternate title: "How to go anywhere and do anything"


My poor, neglected blag… There are quite a few posts I have been meaning to finish and post here, but to be honest the novelty of getting home and NOT having homework that must be immediately completed has still not worn off.  Plus, it’s a little intimidating to write that first post after months of inactivity; I felt like I needed to wait until I had something big to write about.   But now, well… I have something. 

It all started when some good friends of ours acquired VIP passes to the Portland Brew Fest and kindly put our names on the list as well.  We really wanted to go, but between running our first obstacle race the day before and other weekendly duties piling up, it looked like even if we did go, we would only make it to the tail end.  So we decided not to go.  Or rather, we almost did.  We actually made the first decision that set in motion the series of bizarre and wonderful events that the coming evening had in store.  We made up our minds went to the brewfest.  

We met up with some friends there (not the same people who gave us the passes) and began imbibing all manner of delectable fermentables, standing in lines, enjoying good conversation, and generally having a first-rate Sunday evening.  Then, when everything closed up at 7:00, we walked back to the car, had a quiet evening at home, and went to bed.  Actually, that’s a lie too.  What actually happened was a series of charisma checks, and we all got natural 20s on each one.

If you’re not familiar with the term “Natural 20”, it is a term from tabletop role-playing games, and it means rolling a 20 using a 20-sided die.  It is the perfect roll—the highest value you can get, even before applying any modifiers or bonuses.  It usually results in something like killing an enemy with a single critical blow, or noticing a tiny lever that reveals a huge treasure. There are exceptions, but it usually safe to equate rolling a natural 20 with automatic success at whatever action you are attempting.  And for a definition of charisma in the sense I'm using the word, here's a quote straight from the D&D wiki:
Charisma measures a character’s force of personality, persuasiveness, personal magnetism, ability to lead, and physical attractiveness. This ability represents actual strength of personality, not merely how one is perceived by others in a social setting.
Anyway, there we were at the ‘fest, and things were winding down.  Beth spotted some guys in suits, which struck everyone as odd, since 
(1) this was at the Brew Festival 
(2) in Portland Oregon 
(3) on a Sunday.  
After speculating as to why all three of these conditions were so blatently ignored, Beth went to talk to them and find out what was going on.  

As it turns out, they were in Portland for a Brewer’s Convention, which though it sounds similar is actually nothing like the Brew Fest.  I still don’t know what the actual purpose is, but the people who go are all reps from all the US macro-breweries (think Anheuser-Busch, Coors, etc) and commercial brewing equipment/chemical suppliers.  Anyway, we actually all hit it off quite well with these two random executives from halfway across the country, whom were probably old enough to be our parents.  As things were ending at the ‘fest, they were still looking for things to do and see in Portland.  They asked us where they could buy a good steak, and through what I can only speculate were Jedi mind tricks, we somehow convinced them to go to Bailey's taproom and buy us a few rounds instead.

So there we all are, Beth and I, our two friends, plus the execs.  And the beer is flowing—flowing from what has to be one of the finest beer selections of any bar I’ve ever been in Portland, no less—but they are still working: They were asking us questions about our demographics: What beer do we buy?  What do we look for when we shop for beer? Where do we usually drink… They were basically doing market research.  And while I didn’t mind answering a few questions, the group somehow managed to quickly and effectively turn this conversation around completely reverse the direction of the dialogue; it wasn’t long before they were convinced that they owed us something for our time.  

I suggested that the convention afterparty they had mentioned—about which I had been trying to pry information out of them for the past 15 minutes-- was as good a way as any to make it up to us, and so after they exchanged some words, they told us “We can probably get you in” and we were off.

10 minutes later, there we are: riding the elevator to the top floor of the Hilton.  Sure, we didn’t have passes, and we didn’t have badges like everyone else, but we did have t-shirts, flip-flops, plenty of alcohol-fortified confidence, and a stellar track record for the night already.  I think my exact words—as I looked the bouncers straight in the eyes and walked right in after the execs that we had met only an hour or so earlier—were “Good evening, gentlemen.”  

And there we sat, enjoying the view of downtown Portland at night, dumbfounded by our luck and awestruck by the bounty it had yielded. The bar only had crappy, weak piss-beer like Bud, Coors, and Miller, there were a few gems mixed in like the occasional Blue Moon (A Budweiser beer, if you didn’t know…) but it was all completely free.  And if I’m being honest with myself, I think we were probably past the point of… well… tasting at that point anyway.

That all really happened (I have 3 witnesses). And I guarantee that on any given night, any one of us—hell, pretty much anyone—could pull off more or less the same just thing.  First of all, there have got to be events like this (large generic conferences, otherwise unremarkable save ample supplies of drinks and food) practically every night of the week if you know where to look.  Like the top floor of hotels, for example.  But more importantly: Absolutely everyone is shamefully unperceptive.  I don’t know what causes this—whether it is conflict avoidance, blind trust, or something else, but people are so shockingly unobservant that as long as you simply act like you belong somewhere, you’re practically invisible.  I used to think that it took more than that—I thought you had to look the part—but it looks like I was wrong.  All it takes is a little confidence.

Sunday, July 1, 2012

Spring Recap

Time to dust off the old blag and do a quick recap of the exodus that was Spring 2012. As evidenced by my lack of postings here and general absence communication with anyone, it was a busy term. 
ECE 351 (Verilog/FPGA design) was – unsurprisingly—a complete clusterfuck. It was taught by the worst professor I’ve ever had the misfortune of experiencing, and he did his damnedest to make the class as useless as possible. A few observations:
-  I personally don’t think you can very accurately test the ability to creatively solve complex     engineering and design problems with a true/false question.
-  All of the tests had errors on them, but instead of simply removing the flawed questions and giving the point back, the lazy ass made every person go to the TA individually.
-  I work on FPGA code daily that is orders of magnitude more complex than the trivial examples given in class, yet I ended up with a B- so now my transcript is marred due to basically inane grading policy, not lack of knowledge.
-  He spent the majority of the class disagreeing with the author of our book, telling us he knew more about the IEEE standards than the IEEE does, and generally giving us verifiably incorrect information and poor practices.
-  I think I am actually worse off professionally for having taken this class.
-  I never have to take a class from him again, and just typing that lowered my blood pressure.
That is all. 

ECE 373 (Linux device drivers) however, was a great class. I felt like I was in over my head pretty consistently, but got good grades throughout and ended the term with a solid A. Two of my weaknesses right now are my lack of experience with Linux and the fact that I have only been coding for a few years. Go figure that a class that involved nothing but coding for the Linux kernel would be difficult. With that said, however, very few people actually finished the final project, which for my partner and I came in at a tree-slaughtering 35 pages when it was complete. Keep in mind that only 1 page was English sentences, the rest was code. I was very lucky to finally—maybe the first time ever, actually—get paired up with a partner who knew what he was doing and pulled his weight. Actually, when we finished I felt like he had done most of the work, but he assured me that the sections I had worked on (low level machine instructions, command packing, deciphering cryptic manuals) he would have absolutely hated doing. So it all worked out in the end. 

And I never have to see Greenwood again. 

Sunday, April 15, 2012

Even more good news before I disappear for 3 more months


Spring break is really never long enough.  I feel like it takes me at least 5 days just to recover and another 3 or 4 to buy books and get my ass in gear again.  And that puts me at Tuesday or Wednesday of week 1 before I’m literate/dressing myself again.   This was all certainly the case this year as well.   Fortunately, the term has been relatively slow to start—with professors being pretty lax on assigning work and reading—but I get the feeling that things should start blowing up in my face in no time flat. 

So before I have to get back to business I have (even more) good news to share.  (After the tone of this post and the previous, I should be able to pretty much whine and complain about how hard my life is for the rest of the year and still break even).

I finally got my grades from last term, and I am very proud to say I got straight A’s. 
It’s not because I haven’t gotten 4.0’s before—its because I took three extremely challenging courses with well-known reputations among my peers for obliterating GPAs.  I had adjusted my expectations accordingly, and after finals, I wasn’t sure that I would even get a single A.  I don’t want to go on and on about this, so I’ll just say that the Junior year classes are infamously difficult, and I feel a large sense of accomplishment having escaped unscathed.

I also just recently ran my first 5k in 30:36, and managed to do it without stopping even once.  In your face, legs/respiratory system! Of course, since Beth is currently training for a half-marathon right now, that's basically her warm up routine, but it’s been a goal of mine for a while so I’m glad to have completed it.  I hope to trim my time down significantly before I try anything longer, like a 10k.

Additionally, my internship is awesome.  It deserves a post of it’s own, so hopefully I will have time for that in the near future.  For now I should just say that choosing my own schedule, working independently, being entrusted with actual responsibilities, and flying around on a charter jet are some of the aspects I’m enjoying most so far.

Finally, why don't you enter your email over to the right where it says "Follow by Email" and click submit?  I have one single follower.  I'm sure he's lonely. 

Sunday, March 25, 2012

And now for some uncharacteristically upbeat announcements


The last couple weeks have been extremely busy and extremely exciting.  There are a lot of things I wanted to make note of because it’s been a pretty life-changing end of the term, but I simply didn't have time during dead week or finals.  So I’ll try to document this as chronologically as possible.

Intel
     Intel is a go.  A big go.  My team had expressed a lot of interest in me from the start, from introducing me to everyone in the office as “our new intern Eric” to basically telling me flat-out that they really wanted me to work for them and they hoped I would decline the other position that was up in the air (also with Intel, but different department).  All of this despite the fact that A) it’s a graduate internship and I haven’t started my graduate program yet and B) evidently the position involves quite a bit of Verilog and that isn’t really one of my strong suits. (I'll write more about exactly what my position entails in time.)  I was completely upfront with them about these facts, and yet they still wanted me to start.  In fact, they requested that if possible I start early, in April instead of June. 
     HR’s response wasn’t exactly snappy, but once they did follow up with me and give me the official offer, I was completely blown away; I’m receiving nearly $2/hr higher pay than I requested (and I aimed quite high) full medical/dental/life insurance and paid vacation/sick time.  Furthermore, I get paid out for profit sharing every three months, and apparently last quarter that equated to 16 days pay for every employee...  Why aren’t more people going into this field!?



Graduate Program
     I’m not sure if I mentioned this already, but about 5 weeks ago I got the word that I am officially admitted to Portland State’s Master’s program for Computer Architecture.   After the conversations I had with my advisor, I didn’t have any doubt this would happen, but it’s still nice to know that it’s done and I don’t have to think about it any more (for now).

Ford Family Foundation
     The application for graduate funding I worked so hard on during winter break was accepted.  One of the advisors at the office told me that the chances of getting a graduate scholarship were good, since it is not nearly as competitive as their undergraduate scholarships, but it’s still a huge relief to know it’s in the bag.  Time will tell as to how financially helpful the scholarship will be (it scales inversely with our income, which increased when I took the Intel position) but anything is better than nothing and it’s still great to have on my resume.

Survived Another Term
     No matter how I measure it—schedule, workload, content, no karaoke—this was one of (if not the most) difficult terms I’ve taken so far.  Microelectronics suffered from terrible teaching and difficult and uninteresting material.  Embedded Microprocessor Systems was MUCH more difficult than the first class in its’ sequence (ECE 371: Microprocessors) but was insanely interesting and incredibly useful. Operating Systems, a computer science class (as opposed to my usual Electric/Computer Engineering courses) had very dense content but surprisingly easy tests.  Most of my grades are still up in the air, but I’ve already had one very pleasant surprise in terms of final test results, so hopefully that’s indicative of how they all went.

Spring Break + Projects
     More on this later, but I’m using spring break to work on a couple really cool and useful projects.  More on those as they develop.
     
     All things considered, the end of the term has been very rewarding, and I am now enjoying the most relaxation and slowest mornings I have had the joy of partaking in since Christmas.  A good end to a crazy term.

Friday, March 2, 2012

Big news via pictures

Ever since I have returned to school, my life has generally felt like this:


And particularly during this most recent term, things have been kicked up to a whole new level of "how the hell can I ever do all of this in time?" I'm not going to say that semiconductor physics is the easiest subject in the world, but mostly my classes are difficult because of the sheer volume of work assigned.


However, I got a lot of grades back and it looks like I dodged some serious bullets this term.  One class is still up in the air but I think it's safe to say the other two are reasonably close to being in the figurative bag.


Perhaps most importantly and most fortunately, my internship quest has moved at the same blinding pace as the rest of my life.  When I last posted here, I hadn't even gotten my resume together.  Now, I've applied for over 30 positions, had 6 interviews, and received two offers.  And I think it's now safe to say that I have taken one of them:


I'll have more details as they come in, but for now here's another picture of technology combined with baked goods.
Yay me!

Saturday, February 11, 2012

An important letter, a miserable interview, and more terrible predictions


Even though I still have one midterm left, I am halfway through the term, temporally speaking.  As always, my predictions regarding how my classes would go haven’t been entirely accurate.  Embedded Systems, while still my favorite class, is getting surprisingly tough, and my programming class seems to be getting easier every week, which in all honesty is making me kind of nervous.  I’ll know a lot more after the midterm on Monday, but I think overall how that class works is: if you survive the labs, you’ll do fine in lecture.

Then there’s microelectronics.  Simply put, its difficult, uninteresting, and largely irrelevant to my interests.  The midterm was last Tuesday, and while things could have gone much worse, it wasn’t exactly a walk in the park either.  But at least I have realistic expectations this time about the kind of grade I am likely to get, having had this professor last term as well.  I think the bullshit B I got in calculus last term is still weighing on me, because this is really the first time I have taken a class and genuinely thought that I would be happy simply passing it.  Of course, in my case, passing means B or better, so what I'm really saying is: if I get a B, I’ll be very happy and I will probably never think about this class again.

Speaking of never thinking about something ever again, I had an interview with Intel last week that was remarkably terrible.  See, the way engineering interviews generally work (so I’m told) is they start off asking easy questions and then increase in difficulty until you can’t answer them.  Then they know where your education stands and how much of an investment they will need to make in you before you can actually perform helpful work.  So you can imagine how awesome it must have been to not be able to answer even the first few questions that were asked.  And then continue on for 45 minutes basically responding with, “I don’t know” or “I’ve never done that” to every question.  Now, I’m not going to go on and on about how horrible it was and how it was the worst interview of my life, but seriously, it was horrible and it was the worst interview of my life.

Rolling a critical failure on my first big interview put me into a real funk for a while, but after a little time and perspective, I do feel better. It was purely a software engineering position, and that’s just not my specialty.   I wasn’t qualified and it’s not right for me to beat myself up about that.  It did, however, force me to put some real work into my internship search, reworking my resume, and getting organized for the next interview.  By the time I did all of that stuff, someone else from Intel had contacted me for a position I think I am considerably more qualified for.  That interview is on Monday, so hopefully I will have some good news to share soon.

And speaking of good news: the ECE department has officially recommended me for admission to their graduate program. This is exciting news, considering the departmental application is considerably more difficult than the general college application (Do you live here?  Will you pay us? Yes? Well, that pretty much wraps up the interview portion of the application. I’m proud to say you have been admitted!)  So I am very happy to have one less thing up in the air.  Happy enough, in fact, that I almost forgot about the midterm I have in about 48 hours, which I really should get back to studying for.   But I just had to post something: Looking back, being admitted to my graduate program is something I want to remember.  

Saturday, January 28, 2012

…with a minor in being unprepared



I’ve really wanted to throw a quick update on here for quite some time, but I think that once you read this, it should be clear why it took me until the end of week 3 to do so. 

I started out taking ECE 321 (microelectronics), ECE 372 (embedded system design) and MTH 256 (differential equations).  The ECE classes both have labs, and the math class is 5 credits, so right there I am at 15 credits.  Also, it’s application season, and while I tried to complete the Ford Family Foundation scholarship application over the break, it just didn’t happen.  I needed to apply to grad school too, and that actually required two different applications.  Throw going from complete physical lethargy to working out or running 5 days per week and you could say my plate was full.

Then I saw the email.  The one that had actually arrived a week earlier, but I had somehow missed until the end of week 1.  It was from my advisor, and in more words he basically told me to immediately change my schedule: he said that the spring session of CS 333 was completely useless, so I should drop MTH 256 and take CS 333 this term instead.  I frantically emailed the CS instructor and she told me that she would let me into the class but that I already had labs to make up.  My schedule had to be reworked to make CS 333 (Operating System Programing) fit, but fortunately everything fit.


Fast forward to the first lab of CS 333.  Everything is done in Linux, on the command line, which I have never used.  I’m completely lost, and I’m getting all kinds of raised eyebrows asking questions like “how do I copy a file?” The room we are in (intentionally) has no Internet access, so there is no way to look any of this stuff up, and if you haven’t submitted your work within 3 hours, the computer turns itself off and you fail the lab. Do that twice and you fail the course.   Hypertension, anyone?

And that was just the first lab. I nearly walked out during the second one.  Then I thought about what that would mean (not getting into grad school, having to pay back all my financial aid) and I got back to work.  But the fact remains that regardless of how much I want to learn the material, and how helpful it will be professionally, I really shouldn’t be in that class given my lack of prerequisite knowledge about Linux.  It will be interesting to see how that all goes.  And by interesting I mean difficult and stressful. 

ECE 321 is proving to be quite a challenge too.  Good thing we get to use notes sheets on the test, because there is no way in hell I would remember that the triode region of a PMOS is given by:

It’s really more of a chemistry class for people who want to manufacture transistors and ICs and stuff, which I most certainly am not interested in, but hopefully I will make it.

That’s about all the time I have right now, but basically this is the hardest term of my life.  I know superlatives aren’t to be just tossed around, but in this case the statement is demonstrably accurate.  However, as of this week I did get all my scholarship/grad school applications completed and submitted, so there's that...