Thursday 29 June 2006

Smart Programmer, Smart Doctor

A smart programmer who can’t sleep and is told by his doctor to count sheep, will write a small shell script to do it for him.

The smart doctor will write a shell script to tell programmers who can’t sleep to count sheep.

A colleague pointed out that if I were a smart programmer I would have written a shell script to tell the joke. Instead I write it up on my blog, what does that say?

Of dweebs, nerds and geeks

munpfazy posted on slashdot, an excellent precis on the hierachy of dweebs, nerds and geeks.

Because I’m slack, I copy it here as well; read on:

Re:Clasic anti Nerd Propiganda

by munpfazy (694689) on Wednesday June 28, @01:40AM (#15618760)

Nonsense, I say. Worse still - blasphemy! To place the nerds above the geeks is an offense of the worst kind.

There *is* a clear distinction and a value hierarchy among geeks, nerds, and dweebs, but you’ve got it all wrong.

What follows, I claim, is the one true classification of geekdom. It has stood up to rigorous peer review (loud arguments amongst drunken physics students) for years, and I stand by it.

A dweeb is someone without social skills who either doesn’t recognize or is unable to accept that they are unusual. They constantly *try* to fit in, with disastrous results, and dedicate a significant portion of their daily lives to obsessing over how to pass as normal.

A nerd is someone without social skills or popular interests who recognizes that he or she is unlike most people and feels no shame in it.

A geek is a nerd with technical skills and passionate interests; in particular one who has a myopic dedication to a particular specialty. (This is the subspecies *true geek,* distinct from but related to the *common geek,* or nerd who is generally technically savvy and useful to have around.)

To summarize, the dweeb is the guy wearing a slightly out of fashion hipster shirt who generally creates embarrassing silences at parties by saying awkward things about pop stars or sports teams.

The nerd is the guy who skips the party in order to achieve moderately high scores on a popular video game while eating unheated canned peas with a spoon and listening to recordings of experimental music.

The geek is the guy who skips the party in order to code a popular video game, figure out the angle of repose one might expect for a pile of canned peas, or compose and record some experimental music.

On the college campus, geeks make up virtually the entire population of physics and math majors (as well as a majority in classics, many of the less trendy engineering sub-disciplines, linguistics, physical anthropology, and some of the more obscure languages.)

The nerds are the guys who drop out of school after one semester but stay in a college town working in a bookstore, where they get great discounts on whatever genre books they happen to like and talk to their geek friends about writing their own books yet never seem to actually finish any of them.

The dweebs largely end up in engineering or the quantitative business disciplines, in the hopes that they can earn enough money to buy the respect of powerful and attractive people. Those in engineering have a tough time of it, as they are publicly ignored by the normals whom they so admire while simultaneously earning the scorn and contempt of the geeks in their departments. Those in business do rather well, since they have a good chance at fooling their colleagues into thinking that they are geeks. (Normals may not invite geeks to parties, but they do like to hire them.)

Friday 2 June 2006

Orange GPRS on SPV C550

Recently I impressed my boss by getting the company Motorola RAZR support phones to connect to Orange GPRS in about 10 seconds flat with the help of google and this script (sorry, can’t find the site it came from now, let me know if you can [dear reader])


/usr/sbin/pppd connect ‘/usr/sbin/chat -v ABORT "NO CARRIER" "" "AT&F" OK "AT+CGDCONT=1,\"IP\",\"orangeinternet\"" OK "ATDT*99#" CONNECT’ \
/dev/ttyACM0 115200 defaultroute crtscts noauth deflate 0 asyncmap 0 mtu 1500 mru 1500 noipdefault idle 600

anyway, I thought some variant of this would work on my SPV C550, but it was hell!

Finally, thanks to Mikko Rapeli and his SPV specific notes I came up with this variation in my /etc/rc.local (bootup hacks)

rmmod usbserial
modprobe usbserial vendor=0×0bb4 product=0×00cf

Now, I just use the Applications/Modem applet on my SPV to enable USB modem before plugging it in, and I have a modem on /dev/ttyS0

Mikko’s pages were somewhat helpful and so was Paul Perkins but the main gotcha with this SPV is that it needs to login, it really needs to, it goes on begging until it is allowed to, so the username is: user and the password is: pass.

It was only reading pppd man page and thinking about Paul’s chap-secrets (which everyone else ignored) that tipped me to this, so I used Mikko’s gprs config but changed the username in the /etc/ppp/peers/gprs file to: user and turned on noauth (which is about the remote called end authenticating back to the caller).

My /etc/ppp/chap-secrets entry looks like this:
"user" * "pass" *

and all’s well with the world.

And why does Ubuntu dialup network configuration seem worse than for SCO 3.2v4.2?

There’s no need for custom dialup scripts for most things these days, yeah a chat connect/disconnect script might be needed for a specific modem type, but  after that all modems follow the same patterns; a couple of init strings, a number to dial, and then a username or password and some ppp options for the data connection.

So what's with ubuntu’s ppp0 (and only ppp0) tricks?