Programming Assignments

Posted in Technical on February 16th, 2006 by p14nd4

Well, my final full semester has started, which includes a fairly grueling schedule totaling 20 credits of 4000-5000 level csci courses. Crazy? Yes. Am I going to do well in all my classes? No. Am I going to take a year or two off my life through sleep deprivation? Probably. Regardless, I’m taking some classes that are finally of potential interest to me. The University of Minnesota B.S. Computer Science program requires that students declare an upper division emphasis, which I kind of made up on a whim the night I realized I had to register for my classes. If you clicked the link above, you know that three of my classes are network and/or internet programming (which happens to probably be my area of most interest), so my emphasis was named something along the lines of Internet/Information Services.

Anyway, the two network programming courses I’m in have just released their [first] big programming assignments for the semester, both of which are kind of interesting, and I dare say I might even be excited to work on them. If you counted, you’ll notice that still leaves me with four other classes about which I have not expressed any excitement. Three of those aren’t bad per se, just not necessarily exciting to me. The fourth is Data Mining. My feelings on that class can be easily summarized as follows:

:-(

…But I digress. Getting back to my main motivation for this post, which was to talk about these two programming assignments.

Csci4211 – Introduction to Computer Networks

The full assignment is defined here, if you’re eager enough to actually read about it yourself. The assignment is titled Peer-to-Peer (P2P) File Sharing System with Messaging, which is fairly self explanatory. To understate the situation, it’s not going to wipe out Kazaa or BitTorrent any time soon, as it will be written for a command-line/console interface (no GUI), and (based on my brief scan of the assignment) can only actually exchange files between directly connected nodes (there’s no central server).

Inet4021 – Network Programming

Dammit. I hibernated my computer and lost the paragraph I’d already written about this assignment. Surely this time around will be less exciting than the first; I apologize. That said, I’ll proceed. The assignment is only available in .doc format here, which you probalby don’t want to go to the trouble of downloading and opening, so I’ll summarize. The assignment is boringly titled Lab #3, which isn’t of much use to you, but the primary objective is: Based on RFC 1945, you will need to write an HTTP client that meets the 1.0 specification. For the less technically oriented individuals out there, an HTTP client is more commonly known as a web browser (such as Internet Explorer). This ain’t yo’ momma’s web browser, though… Don’t expect pretty graphics, flash animations, or anything fun like that … a closer comparison would be wget, though this is even less advanced than that. I think a more fitting description would be a URL document grabber. It’s approximately equivilent to going to Start -> Run -> cmd, and typing:

telnet www.umn.edu 80
GET / HTTP/1.0

[Press enter twice]

This returns the following, which is approximately what I understand this program is supposed to output:

HTTP/1.1 302 Found
Date: Fri, 17 Feb 2006 00:23:25 GMT
Server: Apache/1.3.33 (Unix) mod_fastcgi/2.2.12 mod_ssl/2.8.23 OpenSSL/0.9.7g
Location: http://www1.umn.edu/twincities/index.php
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>
<HTML><HEAD>
<TITLE>302 Found</TITLE>
</HEAD><BODY>
<H1>Found</H1>
The document has moved <A HREF=http://www1.umn.edu/twincities/index.php>here</A>.<P>
<HR>
<ADDRESS>Apache/1.3.33 Server at www.umn.edu Port 80</ADDRESS>
</BODY></HTML>

To continue my line of reference from aboive, this client certainly isn’t going to blow Internet Explorer out of the water. Considering my dream job (take that very lightly) is working for Opera Software ASA, this project is of particular interest to me. I actually kind of wish it was a more extensive project (though, don’t quote me on that in three weeks when it’s due, and I haven’t started yet).

Intel 802.11b 2100 3B finally working with 3Com OfficeConnect 3CRWE454G72

Posted in Technical on January 30th, 2006 by p14nd4

A wordy title, to be sure, but I figured I would post my "news" here, after struggling with this for so long. If you’ve read my previous post(s), you’ll know that I’ve experienced tremendous difficulty and aggravation with my 3Com OfficeConnect Wireless 11g Access Point (3CRWE454G72). The most recent round of fun I had with this AP was after buying my IBM (Lenovo) ThinkPad T41 2373-5U2 (pics), which includes an installed mPCI Intel 802.11b (2100 3B "Intel Pro Wireless LAN 2100 3b Mini PCI") wireless client adapter. Of course I eagerly set up the laptop and try to connect to the network/internet through my AP. Apparently 3Com thinks that’s a silly idea, and gave me a big NOYUO (well, not quite, but I pretty much couldn’t get the laptop to associate with the access point, pick up an IP via DHCP, or any of that fun stuff). After only a few months earlier going through a similar experience with my Fujitsu LifeBook P-1035 (Prism II) and the same access point, only to later find out that 3Com acknowledged this was a problem with their firmware (in the sense that they fixed it, and listed it as such in the changelog), I didn’t put too much more effort into what I assumed was a lost cause (since I can’t fix the proprietary 3Com firmware, and they were already tired of me whining about a handful of problems from before their previous firmware fix).

It wasn’t until today … a couple months after buying this laptop, that I stumbled across this enlightening article on Intel’s site, noting that "PSP (Power Save Polling) Causes Connection Issues With Some Access Points." Durrr… After seeing the title, I was already fairly sure what the solution was, but I read through the article anyway, which notes:

If the wireless access point / wireless gateway does not properly support the PSP feature, intermittent loss of wireless connection, inability to initiate a wireless connection, or poor wireless connection data performance could result. The symptoms may be more pronounced when on battery power.

Contact the access point vendor for an updated software which corrects the problem. [Heh, yeah, I won’t hold my breath.]

As a temporary workaround, manually set the adapter to CAM (continually aware mode), which disables the PSP capability. To do this, in either Intel® PROSet for Wireless Software or the Network Control Panel Applet (NCPA), in the power management section, uncheck the DEFAULT / AUTO selection and set the slider for HIGHEST / MAXIMUM PERFORMANCE.

Battery life be damned, I guess, if I need to use my laptop with my own access point. I suppose it’s better that it worked out this way … that I could connect to every other AP I’ve ever tried, except the one I own, rather than only being able to connect to mine, and no one else’s (for instance, in class, at the coffee shop, at a friend’s place, etc.). I’ll probably send 3Com another email, and link them to the Intel page noted above, but if they haven’t fixed it already, it seems somewhat improbable that one email is going to weigh very heavily on their minds. That said, I am surprised that such a conflict has not arisen more frequently. The ThinkPad line seems moderately popular, as does the Intel 2100 mPCI card. I’m not sure why I would be the first person with this particular combination of hardware (and IBM does set the power save level to medium by default (this is where I experienced problems)), nor does it seem like 3Com would neglect to test such a popular card (from my observations, anyhow) with their hardware. I’m sure the reasons behind this will remain a mystery to me, but there something worth pondering. I hope this can help at least someone else out there on THE INTERNET! from some of the frustration that I’ve experienced. Enjoy. G’night.

Edit: [2006-02-06T03:28-0600]
Perhaps my jubilation was premature. Although I successfully used my wireless network for several hours the night this was posted, I was right back where I started, when I tried using my laptop a couple nights ago. I connected up to the AP right after starting up my laptop, signed onto my captive portal, and WiFi was working … then about ten minutes later, there was approximately no connectivity (no pinging the AP, or the device behind it … nothing even appearing in the ARP cache. I’ll keep this updated if I find out anything else useful.