Stanford Networking Course

17 Mar 2014 • #

After my last online learning experiment concluded with me flunking out, it would be a lie to say I was eager to get back into the saddle. When I looked back on 2013 at the beginning of the year, however, I was not happy with the amount of self-improvement/developmental effort I put in.

So, I signed up for Stanford’s online CS144 course, “Introduction to Computer Networking.” It’s hard to provide a canonical link for this, but if curious one can easily find a particular example of the course materials/syllabus. I picked this course because I did not complete a networking course in school. There’s a story there, but it’s pretty short: I signed up for networking in school. The format at UIUC at the time was the class was partitioned into 4-member teams for programming assignments. The day before the drop deadline all three of my group members dropped the course … so I did too!

I am across the pass line prior to the final exam, so can safely say I’ve completed the course and programming assignment successfully. As the final exam is released and due while I’m on vacation, I’m not confident I’ll put substantial effort into it (there’s no impact on my standing in the course whether I get a 0 or a 100 on the exam at this stage). This is an interesting, if somewhat obvious, realization. Out in the real world with vacations and/or work trips, making time for limited-time portions of the course (such as exams) can be a real challenge. Most of the course material otherwise was released many weeks in advance of when it was due, making this less of a problem.

The information I have on the course is limited in many dimensions. Evidence suggests about 2700 people signed up for the course and about 900 completed the course at least through the first midterm. I Don’t know what the pass rate will be, but I suspect it will be relatively high. Doing slightly better than guessing on the exams and completing all of the quizzes successfully will get somebody past the pass line. Judging by the forums (likely not an accurate metric, but the best I have), most of the course’s attendees are students currently in higher education programs in foreign countries. The skill level ranges between folks with barely any CS and programming training to those that are highly educated and experienced. The majority of the forum traffic appears to come from the former population.

I am happy with the knowledge I gained from the course. One of the more interesting things about taking a class is the selection of the material. While I’m relatively capable at self-teaching, if I were to “teach myself networking” the results would be quite different. A lot of the time in the course was spent calculating out efficiency of a network bounded by a queue or explaining signalling and re-clocking theory. These things have little immediate benefit to me, but the intuition gained in working through the topics was quite valuable.

The rigor of the course is somewhat laughable compared to a “real” course in college. I would not say the amount of material taught is substantially less. However, the amount of effort required on homework and textbook reading was trivial by comparison. The exams are week-long and open-book/notes, with only 20 relatively simple questions. The only real difficulty there is in not making a stupid math mistake because of overconfidence (guilty as charged).

Cheating in the course would be trivial, with the only prevention of this the honor code itself. Since there’s no real reward for completing the course in the first place (beyond a digital document saying one completed the course), there’s little point in this … but my gut impression is that it’s rampant. The forums are full of questions that demand enough detail and explanation that it might as well be cheating. For nearly all of the challenging problems, the forums are full of detailed method explanations, getting down to the precise quantities and equations necessary. Still, students will ask for more detail to be spelled out in order to arrive at the correct answer. It’s somewhat disappointing.

The gem of the course for me was the programming assignment. It’s worth no points (in fact, it only awards a “with programming component” statement on the digital statement of accomplishment) towards course completion. It took a decent amount of time and was highly educational. The project was to implement a portion of a packet switch and was extremely well constructed. Very few of the programming assignments I encountered in college were this thorough or well-developed (the possible exceptions would be in my operating systems course when we had to implement a file system). Adding even more of these (the full course has four such assignments) would make the end result even more valuable.

It was interesting to discover that those administering/delivering the course were not compensated (beyond, I suspect, faculty compensation for the professors).

Based on just one data point, then, as a hiring manager I’m unlikely to take completion/attendance of a free online course particularly seriously. Like anything, it provides a good avenue for some potential questions. It also shows (potentially) an interest in learning outside of school. But, it barely even intimates any sort of guarantee about knowledge gained.

In any event, I’m glad I completed the course and it was definitely worth the time. I’m also glad that institutions like Stanford and the individuals involved in delivering the class are willing to make this sort of investment. It’s definitely not free or just a trivial transposition of work that’s already been done before.

2013 in Review

26 Jan 2014 • #

I was reminded that it’s nearly February.

I am 33.

2013 was an odd year. Whatever follows, I killed no pets, lost no organs, and suffered no major deaths in the family. For that I am thankful.

As is tradition with these posts, what follows is an incoherent collection of thoughts about the year past.

I remain engaged and could not be happier with M. We’ve talked about getting married this year without any real concrete plans. I should get on that. M’s brother got married last year; we did not want to distract from that, but there’s no real reason to hold off now. We’ve talked about getting a dog, but raising a dog in this apartment complex has complications associated with it.

2013 was a good year for fine dining. The most notable meals were at Komi and Per Se. There were numerous other fine gastronomic experiences including a magical meal with winemaker Serge Hochar and half a dozen remarkable experiences in Napa and Sonoma.

I think I nailed dinner and wine pairings for fourteen for New Year’s Eve with a brilliant cassoulet and Madiran. Palates were also delighted with an assortment of fine Champagnes. None of this matters, as I caused great offense and injury to a guest and longtime friend via some careless remarks. This overshadows the entire evening for me and haunts my subconscious. It’s the sort of cruelty for which no apology will ever suffice.

I drove a Ferrari for the first time. I’m glad I did. While I would love one, I’m also content that it’s more car than I can appreciate in routine driving. It’s also vastly more expensive than I can afford anytime soon.

I made no real progress on weight, exercise, health, or alcohol consumption. I think I’m off to a better start in 2014 on this front, but will only announce victory if I feel the same way a year from now. I’ve reached a point in life where recovering from my mistakes on this front is expensive and where avoiding doing so is expensive. I think I’ve been eating healthier in general, but I’ve discovered that’s but one small part of the struggle.

I attempted to write a C++ compiler from scratch, but failed. In a sense I never believed I could achieve this, so I’m not surprised. At the same time, it’s another source of great disappointment. There’s no reason I couldn’t continue to progress in this endeavor, but having flunked out of the program, I lack the motivation to continue it independently. There’s something intrinsic to this that I picked up in childhood that will haunt me through the remainder of my existence.

It was an odd year for vacations, as well. The trip to DC was perhaps the only genuine vacation. We had a nice time in California with some time tacked onto my ex-wife’s wedding. While I haven’t gotten around to writing anything about it (and probably won’t, at this rate), we had a time in Guatemala during M’s brother’s wedding there as well. There weren’t a lot of trips for us, however. This is probably something that should be fixed this year.

I replaced my entire wireless and wired network fabric in 2013, along with my core router, servers, mac workstation, and gaming box. My storage subsystems were substantially cycled as well with 80% of storage being new. It was an expensive year for technology, but things are in a pretty good place right now.

I’ve spent far less time programming than I’d hoped. I can only really criticize myself. I did a few interesting things, but they didn’t end up going very far.

This is sort of cheating, but I got a nephew a few hours into 2014 (to be fair, he was due in 2013). This turned out to be far more meaningful and important than I imagined, and has a lot to do with why I’m still here.

I started a new blog about beverages. I’m pretty happy with the concept, but need to keep the content flowing. I have dozens of ideas sketched out and just need to complete them. This is a unique thing for me. To this point I’ve done very little that felt broad and deep enough to justify a separate blog from this site.

The wine cellar is in a good place; I’m not longer in accumulation mode whatsoever. I’m drinking predominantly from the cellar and won’t reenter accumulation mode for another 2-3 years. One can read about the best wines I had in 2013, there was really only one that was remarkable. It’s not clear whether dragon chasing ruined the fun or that it was just an off year in this regard.

I’m at the same company and in the same role. I participated in somewhat more senior activities this past year; that was interesting. I’m hitting a bit of a plateau at the moment. What’s not clear to me is why that’s the case. I may be running into my limitations or I may be thirsty for something bigger and/or different. What’s more unfortunate for me is that I’ve lost the ability to distinguish between the two.

I read fewer books than I intended, but have started more books than I imagined. Completing them remains a struggle.

I started to clean out and dispose of some things I no longer need. Notably I got rid of a bunch of glassware, audio equipment, board games, and LEGO. I struggle in these areas; I have various monuments and relics of things I enjoyed in the past, but that have sat unused for more than a year. As an example, there’s no point to my board game collection when not a single of my games has hit the table in a year.

I got into vinyl, something I’d hoped to postpone for a few more years. While I’ve done little to chronicle this, I’ve since gone far beyond the initial steps taken to upgrade my analog audio system. I’m pretty sure everybody thinks I’m crazy now, but I meant what I said to D last year. My dreams are haunted by musical passages that I’ve listened to on my rig at work.

I have a beard, and I’ve let it grow out further than ever before. This does not make it impressive by any objective terms, but I’m strangely fond of it.

My interest in space and rockets was amplified. I spent numerous hours studying things like turbopump design, gravity turn curves, and staging strategies. There’s no point to this, but it remains a topic that fascinates me.

The trends of my sentiment are predictable and cliche. Things continue to lose meaning. Time with friends and experiences increasingly dominate the value equation. Mistakes with friends and missed experience increasingly dominate my regrets.

Per Se

12 Nov 2013 • #

We ate at Per Se Saturday. Getting the reservation was not too bad. I set a rather precise and accurate timer, but I am pretty sure the line was already being dialed by many folks before myself (and they got through). I remained on hold 26 minutes, and then was able to pick on my desired day either 18:00 or 21:30. Not wanting to complete my meal on Sunday, I went with the 18:00 reservation.

Given the extended duration of a tasting menu, starting early has some advantages. We were into our main courses by a normal dining hour, and were out the door just before 22:00.

In addition to the normal choices of chef or vegetable tasting menus, there was a third option: The Fall Game Menu. The game menu came with somewhat heartier and richer selections, and no choices. The chef’s menu had several options, generally involving an additional charge. Uni with caviar was a $75 additional fee; risotto with white truffles an additional $150. The vegetable tasting looked good, but we ended up with three game menus and one chef’s menu.

I have little to say about the food. It was all good to great. There was not a single disappointing course. There was not a single course that stood out. There is something to be said for this: Each bite is enjoyable with nothing shocking or overwhelming. Achieving this level of consistency of quality is not trivial, and Per Se perfected it.

So, we enjoyed the food, but I think for the money, a foodie may find more interesting/exceptional food, per se.

Per Se excels at dining. It is the best dining experience I have had at a restaurant. Good food is a foundation for their success, but transcendent service and impeccable attention to detail seals the deal.

Let me start with the only service mistake the entire evening: Our head waitress (you will forgive I don’t know the technical term for this, but they were clearly the person in charge of our table) did not notice one of the party’s handbags, and thus it briefly was on the floor instead of on a purse chair. Yes, there are chairs for hand bags.

The staff are the some of the best I have seen, and they work together as a team with incredible subtlety, precision, and expertise. Just watching the way they interact via gentle touches to signal where they are or what they are doing when in close proximity is a joy.

A small amount of sediment was apparent in the first pour of our Barbaresco. As we approached the end of our first glasses, the sommelier provided three additional fresh stems for the next pour.

The glassware used for the evening was all from the Riedel Sommeliers collection or from the Zalto Denk Art. Each piece had not so much as a water stain or a spec of dust on them.

The Sommelier was excellent. I had no interest in spending a lot of time with the iPad app representing the 145-page wine list. My assumption was the staff better knew the food that was coming and were familiar with the wine they had on hand. I requested a white, a red, and something for dessert and set a budget. I confirmed the choice of a 2010 Montrachet, a 2003 Barbaresco, and a 6 puttonyos 2000 Tokaji. All three were brilliant examples and paired well with the food. I confirmed that I would like the red decanted. The wine was opened elsewhere, sparing the awkward occasion of the sommelier standing next to the table working on the bottle while nobody is quite sure whether to make small talk, ignore him, or be silent.

Our water never lacked for filling. Sparkling preferences were remembered without prompting, despite water being served by half a dozen different staff at various points in the evening.

Awareness of dietary restrictions and concerns were remembered after being clarified at the beginning of the meal with no further effort or concern.

Our head waitress in large part left us alone except for when we needed something. She never skipped a beat, but was never in the way or distracting. I saw another table where a couple was struggling for conversation or comfort. There she frequently stopped by to converse and brighten the mood. The deftness and adaptability was incredible.

By the third time somebody got up to head to the restroom, the game was clear. None of us could make it more than a few steps from the table before being asked if we would like to be shown the way to the restroom. Since I was watching for it this particular time, I noticed the maneuver necessary to achieve this. As soon as the chair pushed back in preparation to stand, a staff member dashed to the center service island to examine the supply of waters. The movement was swift and certain, but I had not noticed it before. Without watching for it, it is invisible. My friend made it no more than three steps before said person examining the water just happened to turn to face him and offer to show him the way to the restroom. When any of us who had been to the bathroom already stood, nobody offered assistance and the entire path was clear of staff.

It all may sound somewhat silly, but this this is finest example of the art of service I have witnessed. It may sound mechanical or awkward but in truth it was effortless and comforting. No need to say “excuse me, where is the restroom.” I also have the sense that if I stood and already knew where the restroom was, I would not have been offered guidance. The instincts of the staff seemed to border on telepathy.

When we needed some time to catch our breath or when conversation was energetic, the service of courses adjusted to fit. A conversation was never interrupted by service. Plates never showed up when one of us was missing, plates were never cleared until we were all done, and service items never lingered beyond the appropriate time.

The white wine ran out at precisely the correct time and the red wine ran out precisely before dessert service. This is not as easy as it sounds, and is not really a function of the diners. It takes a lot of skill in pouring, timing, and estimation to pull this off. Nobody’s glass ever looked especially different in fill despite wildly different rates of consumption.

For the member of our party not drinking, a quite nice sparkling cider from France was offered. This selection stuck, but staff was more than willing to explore other options for novel pairings or beverages that did not involve alcohol.

When I wasn’t sure what was in a dish, or when I asked another person at the table what something on their plate was, somehow the staff materialized out of the ether. They answered my precise question and then disappeared without me realizing their departure. When I write this, it sounds obnoxious and disconcerting, but in truth it was incredibly elegant and helpful. I have no doubt if the person consuming the piece had the answer to my question the staff member would not have materialized. This was all the more amazing as I never noticed staff watching us, and I never noticed staff hovering.

I could go on, but I think I’ve made my point. Sufficiently advanced dining service indistinguishable from magic. Recommended.

Beverages Blog

08 Nov 2013 • #

For those of you that aren’t big twitter people, I’ve a new blog focusing on beverages. I’ll continue to write here, though articles about beverages are likely to be uncommon now! Check it out and let me know what you think. I have a lot of things lined up about which I am excited to write.

iPhone 5s, IOS 7

08 Oct 2013 • #

The iPhone 5s is fantastic. I upgraded from a 4S, so a lot of the change of the 5 gets rolled up in this. The media may suggest the upgrade is subtle (whether from a 4, 4S, or 5), but it’s not. The phone is fast, feels great (consistent with the 5), the fingerprint reader is better than a gimmick, and the battery life is improved in my use. The camera works better and is faster. LTE networking works great, and it wasn’t even slow before. None of the changes are revolutionary, but they’re all good. More important, there are no regressions. Nothing I miss or that I felt was better executed on the 4S. If every product I bought “just” got better without exceptions, I would be a far happier consumer.

iOS7 is a drastic change. Count me among the crowd fearing that Lisa Frank had possessed Ive’s body. But then a funny thing happened. I installed it on my 4S and was stunned. This has continued with the 5s. iOS7 has done a tremendous amount to make using the Apple hardware even more pleasant. It’s cleaner, simpler, less skeuomorphic, and more intuitive. Most of the change takes things that were irritations and fixes them. There are a few rough edges that I imagine will see polish going forward, but the only real irritations come from apps that have yet to update. The changes are all evolution, if a substantial one. This is not a revolution or a new paradigm. Again, I am at peace with this. Crazier yet, the apps that haven’t adopted the UI style and aesthetic of iOS7 feel dated and sloppy. This is not unlike the way it now feels to use a non-retina iPhone (or non-retina application).

It’s easy to get excited about new and different, but that’s not my speed. Take good things that I like and “just” make them better, and you keep me as a customer.