Saturday, October 11. 2014
I had stopped working on improving the course, and posting on this subject, as it was unclear if I would be teaching it again in the spring. Now this appears to be cleared up, so I'll resume posting about what I'm doing.
The highest priority is improving the projects. The second and third project descriptions are very sketchy by comparison with the first project; I need to bring them up to the standard of the first project. In addition I want to add a fourth project which involves adding SSL to one of the first three projects. Finally, I want to have them all install Wireshark and learn how to use it to monitor the packet exchanges in their projects.
The next priority is the textbook change. At this point, I think we'll go with Kurose & Ross, Computer Networking: A Top-Down Approach as starting from the application layer may help in many ways; every other textbook I've looked at takes the old fashioned bottom up approach. This will require me to reorder my lectures as they currently track the bottom up approach, but I don't think that this will be a huge problem.
I am temporarily giving up on adding the network simulator, there is simply not enough time to set that up properly.
Monday, September 29. 2014
I have been an active contributor to OpenStreetMap since 2009, and was a member of the founding board of OpenStreetMap US. I have taken two years off from the board, and now feel ready to return.
I am extremely impressed with what the board has accomplished during the time that Martijn has been President, and look forward to supporting those efforts going forward.
I think one of the critical efforts needed is improving the "on ramp" for OpenStreetMap. We've been talking about this for years, but the progress made has been limited. This is still a very intimidating project from an outsider's point of view.
Disclosure: I am currently working as a consultant at Mapzen.
Wednesday, September 17. 2014
This one was about 20 years ago. I was chief of tech for a 1 day racing school at Lime Rock Park (Why am I always chief of tech? Must be too stupid to turn down the job. I really should do something about that.)
So there is a driver in an ITA RX-7 who is fast and aggressive - and she spins her IT car in a fast part of the track. Her car doesn't have clips or straps on the windows, so when she spins it the windshield pops out, lands on the track and develops the expect spiderweb of cracks while staying on "one piece" - sort of.
She returns to the false grid for the next session sans windshield (it's not a spare you normally stick in the back of the pickup.) Grid quite correctly sends her away, the configuration is not permitted. A little bit later I get a radio call, "tech please send someone to grid". I walk on over. Her crew (which i as i recall was her father) has duct taped the cracked windshield back into the car and thinks she should be allowed to go back out that way, despite the fact that there is no way that she can see through it. I support the grid workers who have made the correct decision and direct them to take the car back to the paddock. Her father was an experienced driver who should have known better; I never figured that one out. I guess even crew chiefs can get the red mist.
I need to point out that although the issue was in a car belonging to the Bownes unit, it wasn't actually his bit of "fabrication".
Bob had acquired an old Spitfire production race car that had been sitting in a barn for a Very Long Time. He called me up to come over and inspect it. When I popped open the trunk to check out the fuel cell, I immediately called bob over and pointed out that while the fuel cell was fastened to the trunk floor with sheet metal screws, they weren't necessarily what was going to fail first because the trunk floor was fastened to the rest of the car with sheet metal screws.
Tuesday, September 16. 2014
I have recently posted a number of entries on this subject on Facebook and am now copying them over here for posterity. I may even fix various typos and grammar errors, but no guarantees. Here is a longer one about events at a National race years ago. This is not so much about one person being stupid or doing something stupid, as opposed to a situation where a straightforward but dumb solution was the best way out...
It was a National race at Lime Rock Park some years back. The Honda S2000 was newly classified (in the old SSB class, I think) and there was a mistake in the weights; the rulebook called for the car to weigh about 200 lbs more than it actually did. Ballast was not permissible in the class so coming up with an extra 200 lbs was trickly.
So i suddenly find Ken Payson and a friend of his visiting tech. The name of Ken's friend escapes me, but he was a prominent and fast Solo driver who had switched to Club Racing, where he was also very, very fast. He was certainly going to win his class in the S2000 the next day, which is where the problem came in. The car was underweight per the GCR, and Ken & friend suspected as much.
However, the question that they asked suggested that, for as many many years of experience that Ken has in club racing, he didn't understand one of the finer points of the official scales at the race track. He asked what would happen if they wanted to weigh the S2000 on my scales and turned out to be underweight. They were afraid i would spontaneously DQ the car. The answer (obvious to tech inspectors and stewards if not to anyone else) is that a random weight during the day is a non issue; no impound is in progress and and competition is not at stake. I only take action if a car comes in underweight during an impound session.
So they brought the S2000 over and put it on the scales, and it was indeed 200 lbs light. So they asked me what to do.
I told them that I of course couldn't advise them to do anything that violated the rules. but I also advised them that I had no plan to open trunks during post race impound - I would do so if directed to by the chief steward, but as far as I knew he wasn't going to make that request.
The next day, the car ran, it won, and it made weight. We never discussed how much crap (floor jack, two spare wheels & tires, etc.) was in the trunk.
The alternative path here, the official path, is to let them run underweight, DQ them, and depend on the appeals process to overturn the DQ based on errors and omissions. This would have worked; I know this because I traded email with the club tech office and they admitted the weight in the book was probably wrong. but that would have taken years and cost millions of lives...
Monday, August 18. 2014
Update whining about it loudly on Fed Ex's Facebook page turns out to work. got my laptop late afternoon that day.
Hey FedEx, you've got a process problem of some sort. Your website is telling me that my package is available for pickup in Menands NY, so i took an hour out of my morning to drive over there and be told no not until Wednesday. Your tracking website appears to be lying and it cost me time and money. my opinion of FedEx as a reliable vendor with good customer service just took a pretty major hit.
Monday, June 9. 2014
hmmm, just got an email about a USPS delivery, need to print a label and take it to the post office.
but hey, the mail from domain is buran7.beget.ru, and the payload or link i need to click on is missing from the message.
whew, guess i dodged a bullet there.
Deferring again talking about implications of online content...
There are two different ways to play a Networking course. Is the room full of potential Network engineers, or is it full of potential application developers? It makes a difference.
In the case of UAlbany, the course is offered in the framework of the Computer Science department, and the students tend to be mostly software oriented. This means that I should be trying to make them comfortable with socket programming paradigms, which are a bit different from straight line single threaded development exercises. Socket programming is also what many (most?) of the full time faculty think the course is supposed to be about.
But this doesn't excuse me from teaching a lot of the lower level stuff. I've encountered a few too many software developers, who while competent on the development side, are more than a little vague on how some of the networking stuff actually operates. You can write a socket program without understanding how the client side determines a port number, but you may find yourself at a loss when trying to use tools like nmap, tcpdump and wireshark to poke at your application with a stick, and may be pretty clueless about firewall setup as well. So at the bare minimum we need to talk about IP and friends, and it makes little sense to leave out layers 1 & 2 (ISO model) when talking about everything above them.
So the future evolution of the course will need to improve on the socket programming side while still providing the students with a solid foundation in how the various layers in the reference model work.
And there will always be a need to cover things like clocks and NTP because I can't see them encountering that stuff anywhere else before they graduate and move out into the real world.
Sunday, June 8. 2014
I'm going to defer the promised posting about the implications of the online content of some of the Pearson books for now, in part because I'm going to be getting evaluation copies of some Morgan-Kaufman books and they have online content as well, best to go through both sets of terms and conditions and think about what they mean first. In the meantime, here's the Syllabus from this past spring - one task will be to compare the syllabus with the content of each book to compare coverage.
Saturday, June 7. 2014
So I have a number of textbooks in front of me, with at least one more coming. Four of the six are straight up networking textbooks, the fifth is a classic on Unix socket programming that would be a supplemental text, and the one coming is an O'Reilly book on Java Network Programming that would also serve as a supplement.
Where do these evaluation copies come from? I actually paid cash for my Kindle edition of TCP/IP Illustrated, Volume 1 a year and a half ago as I jumped into the course with very little notice. O'Reilly has an ebook based evaluation program, and I expect to receive a link for a copy of the ebook version of Java Network Programming "any day now". The remaining books all came from Pearson, who provide a choice - either a traditional paper copy, or web access. No ebook option is offered. I would have preferred ebooks, and selected the paper book option as otherwise I would only be able to access the books when I had an internet connection.
The first thing to note is that of the 6 books, 5 are from Pearson, who have acquired Prentice-Hall and Addison-Wesley and thus moved into a dominating position in publishing for the college and university marketplace. So while there is certainly textbook choice, there isn't much publisher choice. Another element to consider is that ebook editions are available for all of these books except for the Unix socket programming text, although the price break for the Kindle editions is around 10%, so that $124 networking text doesn't get a whole lot cheaper in Kindle form.
Of the four networking texts from Pearson, two have "premium content" online. For both books, there is a scratchoff strip inside the front cover with a code that is good for 6 months of access. Presumably Pearson wants the instructors to use the online material in support of their courses. I considered this, and realized that it represents a fairly naked attempt to kill off the used textbook marketplace - the codes are onetime use and if used, the value of the used textbook drops rather sharply. I'm not playing that game. While I might adapt one of these texts, the course will not require that the students access the premium material.
In the case of one of the "premium content" books (Stallings, Data and Computer Communications, 10th edition) the two chapters on computer security are behind the online premium wall. I find this particularly egregious, and so the Stallings book is DQ'd from consideration from the very start.
Now I'm down to 3 straight up networking textbooks. The other book with premium content (Kurose & Ross, Computer Networking: A Top Down Approach) doesn't hide critical material in the same manner, so it remains in the mix for the time being. The premium content is related to class exercises and I can manage that on my own. It will be the student's choice whether they scratch off that strip.
The other two that are in the mix are Fall & Stevens (TCP/IP Illustrated Vol 1, 2nd Edition, the text I've been using), and and the 5th edition of Tannenbaum & Weatherall's classic Computer Networks.
So what are some of the differences and things of note?
Stevens and Tannenbaum both start from the bottom with layer 1 (the physical layer) and work their way up through the network stack. If I use one of these, I have to tinker with supplemental material so that I can get socket programming assignments going early on during the class. Neither of these books really pretends to deal with network programming anyway, but it's good for students to have at least some understanding, however cursory, of UDP and TCP before you tell them to start coding.
Kurose & Ross is structured very differently (It's that "Top Down" part of the title.) In looking it over, I can't help but think that this approach is a really good idea for several reasons. It puts me in a better place to give out assignments early on, and I think it's probably easier to motivate students by starting with applications, which is something they've already seen even if only as black boxes (e.g., web servers and mail servers.) Additionally, they do cover network programming - but they use Python (previous editions used Java). So if I go with this text, I'd want to have the supplemental textbooks available as I'm not inclined to dump a new language on students who are already dealing with lots of other things.
The fifth book is Stevens' Unix Network Programming, Volume 1 which would be a supplemental text for the C developers, and the sixth is the aforementioned O'Reilly book on Java Network programming. I will probably look for one or two other supplemental texts, but this is really the least of my concerns.
So basically, I am leaning towards Kurose & Ross despite the premium content issues because I like the order of presentation better. Now to start really looking at the books hard to see what's what. The next blog posting will discuss some of the challenges I perceive to exist given the online content.
Thursday, June 5. 2014
I've taught the Spring course in Computer Networking at UAlbany for two years now. The first year, it was a bit of a surprise and I was playing catchup from day one. The second time, it was a little less of a surprise, but I still spent a lot of time playing catchup. One of the results of this was that for a textbook, I defaulted to using the 2nd edition of Steven's classic TCP/IP Illustrated, Volume 1, because I was familiar with it and liked it. But I've become concerned that there was a bit of divergence between the course syllabus and the book, so I decided to check out some of the alternatives. I now have copies of 4 other text books to review, and have found a large can with many worms inside. Since it's tolerably certain that I'll be teaching it again, I was going to work steadily on improvements over the next 8 months in any case, but just the quick once over of the textbooks suggested other things I should look at.
But first, I should describe the basic course parameters. It's offered by the Computer Science Department, so the presumption necessarily is that the average student will have experience in writing single threaded programs that run on a single computer, and limited knowledge of the hardware side of things. My observation on the student mix is that, having been given the choice between writing projects in C, and writing projects in Java, the class splits fairly evenly, so I expect to continue to accept projects in either language. I also note that student choice of OS on their laptops varies, which is ok with me, but does mean that if I want them to install any particular software, I need to keep that in mind. I can in theory go with Un*x/Linux only software given that all students have accounts on a University Solaris system, so I can make them ssh into it and work with a text based system, which the Windows types may find annoying, but I assert that it's good for them.
As the syllabus has evolved, I've found myself adding lots of stuff that's not in Stevens (and Stevens isn't really a programming text anyway, so the Socket Programming API has always been supplemental material), and I've been using my own ordering of presentation, which has gradually improving. I have leaned on some lectures written by a prior instructor for subjects like queuing theory. The projects to date have been socket programming exercises. A prior instructor used one of the ns series of network simulators for exercises, but I haven't had a chance to really look at how I might integrate such a thing.
From the perspective of ordering of material, I need to get them doing some socket programming early, so at least a cursory outline of TCP functionality needs to be done very soon after the course starts, to provide a framework for understanding why the Sockets API is what it is. If I add network simulator exercises, I may (depending on the ordering of course material) be able to delay the first socket programming exercise a little.
So these are the sorts of things I have to consider as I go forward. Next posting will be a little bit about the 5 textbooks I have in hand right now.
Saturday, May 31. 2014
by way of introduction, i am both an enthusiastic driver (who had a brief career as a mediocre club racing driver) and an enthusiastic cyclist (who will probably never race, but does enjoy long rides). i tend to ride on bike paths or out in rural areas where i know the roads well. urban cycling scares me, as way too many drivers are not paying attention.
so yesterday i found myself on NY 155 heading north, and then taking the short slip ramp onto Washington Avenue Extension (this is in Albany, NY, for those of you who aren't from around here.) A cyclist was crossing 155 from my left to my right and our paths were about to cross where the slip ramp merged into Washington Avenue Extension.
so what did i do? well, being a cyclist myself, i recognized two things - first of all, that per the rules of the road, he had the right of way and i was obligated to yield it. and second of all, that most drivers don't really get this and he was probably going to be very concerned about my intentions and my attentiveness.
so as i came around the slip ramp, i deliberately hung back and paced him, while looking straight at him. when he looked over at me to see what i was about to do, we made eye contact. this turns out to be enough information for him to decide that we are actually going to follow the correct rules of the road, so he signaled that he wanted to move across to the shoulder. i waited for him to do so and then gave him plenty of room on my right as i accelerated by. and he was apparently very appreciative of the fact that it was all done correctly and waved at me as i moved on.
what can we do to teach every one, drivers and cyclists alike, to do these things properly?
Monday, May 26. 2014
Decoration day being the original name for the holiday we now call Memorial Day.
Earlier today I shared this link on G+ and Facebook: Frederick Douglass on Decoration Day 1871. I've been pondering somethings about this address, and the context in which he gave it, since.
In 1871, Reconstruction was in what passed for full cry. Ulysses Grant had been president for 2 years. It was Grant's avowed goal that he would accomplish two things - reconciliation, and protection of the rights of the former slaves. The great tragedy of Grant's administration doesn't have anything to do with political cronyism or corruption. It has to do with the fact that Reconstruction succeeded in bringing the ex-confederate states back into the Union, while failing to do very much to protect the Freedmen.
At the time of Douglass's speech, many still had hope. They believed that Grant, still a popular hero, could pull it off. The problem was that the best opportunity to take care of the former slaves came at the end of the war in 1865, and and it was already gone, lost in the disputes between Andrew Johnson and the Radical Republicans. Civil government was being restored to the southern states too quickly, on terms that were too easy, resulting in political and racial violence that was very difficult to deal with.
So when I read Douglass's speech, I think about the hope for the future he had at the time, and I am saddened for all the death and destruction of the Civil War, and doubly saddened that the opportunity to provide protection and justice to the Freedmen, gained at such a terrible cost, was fumbled.
Tuesday, February 11. 2014
There's been a bit of talk about how Sochi might be the worst Olympics ever. I've been half jokingly saying that this is impossible, while thinking about the 1936 olympics.
But the more I think about it, the more I have come to understand that there are two Olympic games that stand out, and the reasons they stand out are geo-political in nature, and no matter how many defective toilets and nonexistent hotel rooms turn up in Sochi, Sochi will never be able to match up to the awfulness of 1936 in Berlin and 1972 in Munich.
In 1936, of course, the Olympics had Hitler. Do I need to say more?
In 1972, Munich had the tragic "Munich Massacre".
So a bunch of broken and incomplete facilities make the worst ever? Not even close. I hope that we never again see an Olympics so bad as 1936 or 1972.
Thursday, December 12. 2013
(Page 1 of 9, totaling 133 entries) » next page
Syndicate This Blog
right side networked blogs