Why I love working here!
When most professors have closed-door policies and need weeks of lead time before being able to schedule a meeting, here’s why I love working here!

When most professors have closed-door policies and need weeks of lead time before being able to schedule a meeting, here’s why I love working here!

This is a quick snippet I put together for an academic project. To be able to write this, I had to go through several documentation resources, for what is essentially a single web service method call. I figured it would help if I shared my PHP code.
<?php
/**
* Query Amazon about a particular book by ISBN and obtain metadata.
* The author disclaims all copyright and liability and places this code
* in the public domain.
*
* Amazon's Terms of Use for this service require you to:
* - Send no more than 1 request every second
* - Direct traffic to them in some way. You can use the URL provided in the
* resulting metadata to achieve this.
* It is your responsibility to agree and abide by Amazon's Terms of Use.
*/
class ISBN {
function getMetadataFromIsbn($isbn) {
// Get your own accesskey at http://aws.amazon.com/
$amazonKey = 'MUST_INCLUDE_A_VALID_ACCESS_KEY_HERE';
$url = 'http://webservices.amazon.com/onca/xml'
. '?Service=AWSECommerceService'
. '&Operation=ItemLookup'
. '&IdType=ISBN'
. '&SearchIndex=Books'
. '&ResponseGroup=Medium'
. '&AWSAccessKeyId=' . $amazonKey
. '&ItemId=' . $isbn;
$metadata = simplexml_load_string(file_get_contents($url));
if (isset($metadata->Items->Request->Errors)) {
return $metadata->Items->Request->Errors;
} else {
return $metadata->Items->Item;
}
}
}
?>
OmniFocus is a GTD app for Mac OS X and iPhone. Obviously, the iPhone version would be pretty much useless if the two did not sync. The good folks at Omni have made this possible, but it requires either a little money or a little time. I have more of the latter than the former, so I chose to use my own WebDAV server (which I can run for free on my desktop Mac) instead of a paid subscription to Apple’s .Mac or Mobile Me service.
The good news is that all the bits and pieces of software that you need to run a WebDAV server on Mac OS X 10.5 Leopard are already installed. You only need to configure them correctly and turn them on. Some experience with Terminal is preferred, and you should be familiar with executing UNIX commands. Let’s start!
/etc/apache2/httpd.conf, (remember to use sudo to edit it) and locate this line:
LoadModule dav_module libexec/apache2/mod_dav.so
Make sure it is not commented (there should be no "#" at the beginning of the line.) Then locate this line (towards the bottom of the file):
Include /private/etc/apache2/extra/httpd-dav.conf
Again, make sure it is not commented out. It is disabled by default, so you need to remove the "#" from this line.
/etc/apache2/extra/httpd-dav.conf. Add a section in it to create our new WebDAV share. Here’s what the new section should look like. As a security precaution, you should also go ahead and delete the /usr/uploads share that is set by default.
Alias /webdav "/Library/WebServer/WebDAV"
<Directory "/Library/WebServer/WebDAV">
Dav On
Order Allow,Deny
Allow from all
AuthType Basic
AuthName WebDAV-Realm
AuthUserFile "/usr/webdav.passwd"
<LimitExcept GET OPTIONS>
require user YourUserName
</LimitExcept>
</Directory>
On line 1, the name following the Alias keyword is the URL you’d like for your new WebDAV share. If you want the share to be located at http://your-server-name/your-fancy-webdav-share, then line 1 should read:
Alias /your-fancy-webdav-share "/Library/WebServer/WebDAV"
On line 9, we specify the authentication scheme as Basic, not Digest. The security conscious will note that this sends unencrypted passwords over plain text. In my tests, OmniFocus was not able to communicate with the server with the Digest authentication scheme. Remember not to use a particularly important password for this account.
On line 14, substitute the username you would like to use for your WebDAV account. Note this down, because you will need this again in the next step.
htpasswd tool to create your password file.
sudo htpasswd -c /usr/webdav.passwd "YourUserName" New password: Re-type new password: Adding password for user YourUserName
sudo mkdir -p /Library/WebServer/WebDAV sudo mkdir -p /usr/var
sudo chown -R www:www /Library/WebServer/WebDAV sudo chown -R www:www /usr/var sudo chgrp www /usr/webdav.passwd
sudo apachectl graceful
That’s it, you can now point OmniFocus to http://your-server-name/webdav and provide the credentials you created earlier. With this setup, you will immediately be able to access your WebDAV server over your local network. If your machine has a static public IP address, you will also be able to sync from outside your local network.
If, on the other hand, your machine is behind a router, you will need to configure port forwarding on your router. If you do not have a static IP, you will need to set a dynamic hostname via services like DynDNS.


This is by no means a zero error configuration, and sometimes things might go wrong. Here are some of the common error messages and how to fix the relevant errors:
The locks could not be queried for verification against a possible "If:" header.No such file or directory: Could not open property database/usr/webdav.passwd can be read by the Apache user, www. To do that, run the following chmod command.
sudo chgrp www /usr/webdav.passwd
Client used wrong authentication scheme: /webdav/Digest instead of Basic. Try changing to Basic. Also note that you need to regenerate the password file using htpasswd instead of htdigest.A hat tip to Vivek for helping test these instructions on a clean Leopard installation.
I received a request today in the mail about one of my projects that is available under a free software license. It’s a web template system that I wrote to scratch a personal itch. Its hallmark feature is that it has no features, at least none that contribute to the bloat that’s rampant in Drupal and Joomla and their ilk.
His email was very well-written, asking about some of the specifics of the license, and how he could undertake projects for his clients building upon my framework. After I wrote a detailed reply to him, it seemed like a good idea to post it to my blog, for there are many who’re not particularly clear on how free software licensing works.
I want to use your templating system to build static websites for personal and commercial projects. I don’t have lots of money so I can’t promise much now but later if I will be able to make any money I will happily donate for this project.
[...]
I like open source projects because it is fun to learn how magic happens. I don’t want to use your code without permission because I just personally don’t think it is right thing to do. I have no problem giving you credit for this system but I need your permission to use it for commercial use?Sincerely,
[redacted]
And my reply:
Hi [redacted],
I’m glad you found the site and my projects interesting and useful, and thanks so much for writing back to let me know!
I think free software is a great way to learn and understand other people’s code, that’s why almost all of my projects are open-source with the license to tinker and play. All I ask in return (via the Creative Commons license) is attribution back to me if you use it in a project. I’ve licensed this as an Attribution-ShareAlike-Noncommercial license, so you’re free to use it as you wish in any personal project as long as it is non-commercial: e.g. for an organization you belong to, or an academic department or program.
Things get a little more interesting when money enters the picture. While I’m not doing this (releasing my software) for the express purpose of making money from it, it does not seem right to me that someone else benefit financially from my work with no benefit to me. So, I politely ask that if you’re planning to use this commercially, you should contact me for a separate license (the code will then be dual-licensed, and you can pick either the paid commercial license, or the default un-paid non-commercial one.)
You don’t have to pay anything right away, and can play with the code as much as you want. But when you bag a client who wants to use a system based on my code, we can talk about royalties. That way, you retain the freedom to examine and modify my code as well as get a paying client, and I do not feel that someone has taken undue advantage of my generosity. This is how the open-source model was intended to work, and the free really refers to freedom, not free as in no-charge.
I’m glad you contacted me to check for permission first, and I got the opportunity to clarify. Often it’s quite tricky, and lots of people have lots of misunderstandings about how free software licenses work.
Regards,
Manas.
After spending about an hour configuring what should, in theory, be a simple matter, I figured I’d write a blog post that might one day save another soul an hour or so from his or her life. So, for good karma, basically. In the past, I have set up port forwarding on Linux, Mac OS X and Windows, so I was a little worried that it took me about an hour trying to appease the SSH deities (and daemons).
The command itself is just a single line; the devil is in the parameters. I’m splitting the command over several lines and adding line numbers to illustrate the details and separate the parts of the long-ish command for easier explanation. Feel free to type it all on a single line (after removing the line numbers and the line-break markers ("\") of course!)
1. ssh \ 2. -L local_port:service_host:service_port \ 3. -p ssh_server_port \ 4. -l ssh_server_username \ 5. -N \ 6. ssh_server_host
Now for the various parameters used in the command above. Some of them may be omitted if the defaults are used, but I have included all of them in the example above to cover the most general case.
local_port
The port on your local machine that your local program expects to be able to connect to. If this is one of the reserved ports (i.e., under 1023), you will have to run your ssh tunnel command as root (using sudo). Ports above 1024 are freely available for any user to listen on.
service_host
The fully-qualified domain name or the IP address of the server that is hosting the service that you wish to connect to. For example, if this is a web site, it could be google.com or yahoo.com. It does not have to be under your control, nor does it have to be the machine that you’re SSHing into. It is just any host on the Internet that you can access from ssh_server_host. Often this is a server you are not allowed to access from your own machine, e.g. a chat server or IRC server. Or you may wish to hide the fact from the administrator of your local network that you are connecting to this server (e.g. when you’re out at a coffee shop on a sniffable insecure wireless network, or in a country with laws forbidding access to free information.)
Important: If you’re trying to access a service running on the same machine as ssh_server_host, remember to use 127.0.0.1, not localhost. What’s the difference, you say? Well, since IPv6 is here to stay, localhost can map to either 127.0.0.1 (IPv4) or ::1/128 (IPv6). If your applications aren’t all IPv6-compliant, this can cause some headache. Hopefully, we will all be on IPv6 in the near future, but till then, this is a way to make things work. If you’re trying to use IPv6, you need to use local_port/service_host/service_port (slashes instead of colons.)
service_port
The port number on which the desired service is running. Here are some common port numbers:
| Service | Port |
|---|---|
| Web: HTTP | 80 |
| Web over SSL: HTTPS | 443 |
| Outgoing email: SMTP | 25 |
| Incoming email: POP3 | 110 |
| Incoming email: IMAP | 143 |
| VNC | 5900 |
| iTunes Music Sharing | 3689 |
ssh_server_host
The machine that you’re SSHing into. This is the one that is running sshd, the SSH daemon.
ssh_server_port
The port number on which the SSH daemon is listening on ssh_server_host. This is most likely 22; you should only use a different value if your sysadmin has told you that the SSH server is running on another port (or if you’re a sysadmin yourself and you set up your SSH server to run on a non-standard port for security through obscurity.)
ssh_server_username
The username you would use to connect to ssh_server_host in a regular SSH session. This may or may not be the same as the username you currently use on your local machine.
-L parameter specifies that this is a remote-to-local tunnel. If you wanted to create a local-to-remote tunnel, you’d have used -R instead of -L. The next three parameters are from our list above, separated by colons. (Use slashes instead of colons for IPv6.) If you want to set up multiple tunnels from the same host, simply repeat line 2 as many times as you’d like, once for each set of local_port:service_host:service_port.ssh_server_host to connect to. Omit this line if you’re connecting to the default port 22.ssh_server_host. It is also possible to use the ssh_server_username@ssh_server_host syntax instead of the -l parameter.| Problem | Solution |
|---|---|
| Error message: channel 3: open failed: connect failed: Connection refused |
Change localhost to 127.0.0.1 in the ssh -L parameter.
|
| Cannot listen on port X on local machine because of network policies. | Try to use another port locally. Ports such as 3306 (MySQL) may have been left open. These are good to use for SSH tunneling if you aren’t already running MySQL. |
| Error message: Privileged ports can only be forwarded by root. | Use a port above 1024, or try to set up the SSH tunnel as root. |
|
Error message: bind: Address already in use channel_setup_fwd_listener: cannot listen to port: xxxx Could not request local forwarding. |
Some local server process is already listening on the local port you’re trying to forward to. Pick a different local port and configure your program to connect to th at port instead. If your program cannot be configured to listen to a different port, try to find what server process is occupying that port (netstat -a on Linux or lsof -i -P on Mac OS X) and stop it. Retry setting up the tunnel.
|
| I want other hosts on my network to be able to use the tunnel I established. (By default, only local clients can connect to SSH tunnels established this way.) |
Use the -g option when setting up the tunnel. Realize that this is insecure, but it may make sense in certain scenarios.
|
| I don’t know what local port is available for me to use. |
Linux: netstat -a | grep LISTENMac OS X: lsof -i -P | grep LISTENwill show you the ports that are in use. Generally, you can pick any that’s not already taken. To make sure you’re not breaking some other unknown protocol, check the IANA Well-known Port Numbers list and pick one that’s not taken. |
If you’ve not been able to debug this so far, try passing the -v parameter to ssh to see verbose output. Add another -v for more verbose output.
If you’re reading this, and come across any specific source of trouble, please let me know so I can add it to this mini HOWTO.
Let’s see:





May the souls of all the victims of all these disasters rest in peace. May the survivors find the courage to get back to their lives, even as they grieve their loved ones.
And yes, we can help them in their efforts.
Now there’s a business opportunity that today’s airline industry and airports have created: why not sell pre-packaged suitcases at airports to scalp travel-weary passengers whose luggage has landed in Murmansk?
Here’s how it would work: I’d walk up to the Lost and Found desk of the airline, usually fortified behind several layers of arrows pointing upward, downward, or in all other sorts of directions in which I cannot walk; barriers laid down with those flexible tapes that you can simply unhook and pass through; or behind a scruffy-looking bouncer. They would then cheerfully inform me that my luggage has, indeed, failed to follow me around in my travails around the world, and make me fill out a 3-page form describing my “small black bag” in as many words. After a state of shock, worry, desperation, and finally, anger, I would quit discussing this with the airline folks and move on, resigned to my fate.
That’s when I would notice the conveniently located “Missing Luggage Mart”. I’d turn to the enterprising store-owner and tell him/her my size, and the duration of my trip. He/she would whip out a readymade suitcase of shirts, t-shirts, trousers, undergarments, socks, shorts, a belt, a cellphone charger, a toothbrush, a toothpaste, a tiny bottle of shaving cream, a tiny bottle of shampoo, etc., and I would be on my own merry way.
And a towel, of course. Nobody should ever be without their towel.
Google recruiters use Google to search for recruits for Google. And how do I know? I found out because of another Google product. The irony is that I’ve been at Google, and I will be at Google, so I’m not exactly who they’re looking for. So, all this, and the search was a failure, then?
Here’s what happened: I’m in the habit of checking my web server logs every once in a while to see which pages are popular, where my users are coming from, what keywords they type into search engines to find me, and sometimes just to stalk my stalkers.
For this, I use two great tools, StatCounter and Google Analytics. (StatCounter is the better of the two, by the way, but they have a last-500-visitor limit, so I need to check my stats at least daily.)
Today, the following entries appeared in my logs:
(inurl:resume or intitle:resume or inurl:cv or intitle:cv) (c or c++ or java) “computer science” “software engineer” (415 or 650 or 925 or 510 or 408 or 369 or 669 or 707 or 831 or 916 or 530) -jobs -job
The IP addresses show that the request came from Google’s Mountain View headquarters. The query shows exactly who they’re looking for. Interestingly, they seem to be hiring locally (the numbers in parentheses are all telephone area prefixes in the San Francisco Bay Area.)
There’s so much Google involved in this story, it’s scary.
It’s no secret that Google hosts an employee-only event every Friday where we get to talk to Larry, Sergey and Eric directly (though the contents of each TGIF session are confidential.) In June, I walked up to the mic and asked them why Google wasn’t the default search engine in Opera Mini, the #1 mobile browser. It used to be #1 at that time; today, perhaps Mobile Safari has taken over that spot.
Today, I heard that this has happened. Seems like a good thing that they actually take feedback from interns seriously, and/or maybe I’m taking too much credit.
In any case, I’m happy, because the older Opera Mini didn’t even let you customize the home screen to pick a search engine. I hope that has changed too (user choice is good.)
(Note: Both snippets mentioned here are public news; nothing confidential was released in the making of this post.)
Last night, I left my cell phone in my car. As with most of my follies, I realized it a few oh-no-seconds after I got home, but only after I’d taken off my jacket, gloves, cap, shoes and socks. It was an unnecessary walk in below-zero temperatures, but it got me thinking about phones, identities, what’s wrong about it all, and how it could be made better.
The problem is this: phones and phone numbers are tightly coupled together [1]. No wonder people keep their phones close to their heart — their personal identity is locked in it. If I don’t carry my phone, there’s no way to answer calls that I receive at that phone number. I can perhaps check voicemail from another phone, but still cannot make and receive phone calls under my own phone number.
Now compare this to email: if you go on a vacation without your own laptop computer, it is still possible to “borrow” someone’s random computer and check your messages. The messages you send will have your ID (your email address) attached to them, and the people you interact with will have no idea what machine you used (and there is no need for them to know.)
Why can’t we have a phone identity (our phone number) separate from the device (our phone) that is used to access it? If I forget my phone in the car overnight, I should be able to just add my phone identity to the home phone. That way, all calls that would have been received by my handset in the car will now be received at my home phone, and callers/callees will not know a thing. The next morning, I would re-establish my identity on my cell phone, and things will be back to usual.
I’m not a big fan of call redirects: that puts a temporary bandage on the problem instead of actually solving it. I don’t want my identity routed to another identity: I want to be able to use my own identity wherever.
This would also open up the market for multiple-identity phones. A couple can add both their identities to a single home phone in the evening, while they carry individual cell phones during the day. Forgot your cell phone at home? No problem, just borrow a loaner phone from the office receptionist and use it all day long (just as you would borrow a loaner security badge if you forgot yours). It would also make it easy for a group of people to be able to respond to a single phone call, e.g. despatch services for emergencies. A group of doctors could share a single phone number. Whoever is on emergency call duty would add the group phone number to his/her cell phone, and remove it after the duty ends.
Historically, a phone number has been tied to a phone, mostly because of technical constraints, beginning with the days of the human-operated telephone exchange. Email has shown that identities (email addresses) can be independent of devices (computers), that many identities can share a device, and many devices can be used by a single identity.
It’s an easy conceptual step forward to move to the many-to-many model instead of the current one-to-one. But there is a tremendous amount of change required of the infrastructure, and it won’t be cheap. But since I don’t happen to be in the business of implementing it (at least not yet!), so I’ll just write about this idea and hope that someone picks it up. Maybe someone will listen, and like it, and implement it.
Then I won’t have to walk out in the $#@*%$#^ snow to fetch a %$#%#$* cell phone.
[1] The more pedantic among us will point out that GSM phones keep the user’s identity on a SIM card, and CDMA phones maintain a single ID tied to the IMEI number of a phone. Although possible, that does not make swapping identities across phones easy: in the first case, you must have your current phone handy, which does not help solve my problem of having left the phone in the car overnight, and the second one requires a long phone call to the carrier to make the change. Neither is as quick or handy as the method I envision.
A German, a Brazilian and an Indian, all three student volunteers, walked towards the conference office the day before a conference. As it happened, the student volunteer chair had had some trouble reaching the venue, and there were no specific instructions for the volunteers at that time. Nobody else had any information or any plan to hand out either. (Turns out they did, but our protagonists did not know at the time.)
The German noted this and wondered how they could be so ill-prepared and without a plan just one day before the conference. The Indian remarked that they might just be running late and here’s hoping that everything would be fine and dandy by the next day, the day of the conference. The Brazilian said, oh well, if they don’t have anything for us to do, we’ll just go to the beach and have fun instead.
While this anecdote might not have had the punchline you might have been waiting for, (especially given the clichéd setup), it’s a nice illustration of how cultural upbringing shapes our thinking in the most trivial of incidences in life.
Since Facebook won’t provide you a way to opt-out of Beacon, their intrusive advertising platform, here’s how you can prevent them from harvesting data about you from other sites.
For Safari, first install the excellent PithHelmet plugin that lets you block sites, pages, cookies, and advertising with excellent granularity. It is not free, but well worth the $10. Go to PithHelmet preferences, right within Safari’s preference dialog.
![]()
In the next step, you’ll need the following Matching Pattern. Here it is for copy/paste convenience:
![]()
For Firefox, I refer you to Nate Weiner’s original post that inspired mine for Safari. He also has a detailed analysis of why Beacon is a privacy nightmare with no means for users to opt-out completely. The ‘No Thanks’ button only prevents the information from being displayed, but Facebook still logs and preserves it, and may do with it as they please (according to their terms of use).
I ask you, the blogosphere, to enlighten me on the best way to eat Pringles that does not involve a bowl. The Pringles can is one of the iconic designs of modern times — uniformly-shaped potato chips in a tube — that seems to value form over function.
Let’s admit: eating chips is a secondary task for most Americans. These are snacks people munch on when they’re doing other things. Thus, these chips should be easy to grab with one hand and have the other hand free for the television remote, steering wheel or keyboard/mouse. At the same time, it is important that chips don’t spill, or worse yet, crumble in your hand. So what’s the best way to eat them without needing a bowl? (because using a bowl would just be weaseling out of this problem into one already solved in The Textbook.)
The first few chips are easy. (Isn’t that the case with everything?
) They’re within the grasp of your fingers, so it’s no different than plucking a few chips from a bag. It’s after the top few disappear that the problem starts. Should I force my hand into the can? Should I invert the can so the chips fall out into my hand? Should I tilt the can ever so slightly and tap on the side to have the chips exit one by one instead of stampeding all over themselves?
I’ve tried to dig in with my hand to get to the next few, but my hand is too big to fit inside the can, and it’s probably not a good idea anyway. I shudder to think of the day I’m in an Emergency Room with a Pringles can wrapped around my wrist, with $200/hour doctors cutting off an embarrassing roll of cardboard from the one organ that distinguishes men from apes. No, excavating anything but the top few is a job for professional archaeologists.
I’ve tried inverting the can with the lid on, so (I hoped) the chips would all accumulate on the lid, and then I could simply open it up and eat a few. The problem is, the quantum stable state for potato chips is a pile of crumbs. Inverting the can gets all the crumbs to the bottom of the can, and when the lid is opened, that’s what comes out first.
I’ve tried tilting the can at a precise angle and knocking on the side until the top few chips make their way slowly out the door. This sometimes works, but takes a long time, and very skillful knocking/tapping/flicking to get the right number of chips out of the can. Often, you’ll spend five minutes tapping unsuccessfully, then, out of a burst of frustration, you’d tap just a little bit harder, and have Pringles rain upon you. No go.
Dear Mommy taught me to search the Web before posting random questions to total strangers, so I did my homework. Here’s an innovative method of eating Pringles, but I’m no chopsticks ninja. And eating chips with chopsticks vaguely reminds me of the Seinfeld episode with George eating Snickers with a knife. You get the point, sort of.
So my question to you is, what’s the best way you’ve found to eat Pringles out of a can without spilling any crumbs, using a minimum number of hands to do it? A second, deeper, question, from my obvious position as a design and HCI person is, why has such a design resisted change over so many years despite being so hard to eat from?
A video from Apple’s 1984 Shareholders’ Meeting seems appropriate today.
I received the following email a few minutes ago, with fake headers and the works, and is formatted exactly the same way as the regular email we get from these folks. It’s probably viral marketing for the upcoming game, Portal, releasing November 23, 2007. Lots of references to it in the text.
1. UNDERGROUND HALLOWEEN ADVENTURE
2. BOBBY FISCHER - ENDED THE SOVIET CHESS HEGEMONY
3. SELECTING YOUR CABLE COMPANY IN BLACKSBURG
4. PI EATING CONTEST
5. POSSIBLE BAG BAN
6. DONALDSON-BROWN LOCKS TO BE CHANGED
7. ODD - OPEN DOOR DAY
8. MICROSOFT VISTA SERVICE PACK DEMO
9. WEEKLY SPEAKER SERIES
10. REGISTRATION FOR DEAN’S FORUM ON HEALTH, FOOD AND NUTRITION
11. STUDY PARTICIPANTS NEEDED1. UNDERGROUND HALLOWEEN ADVENTURE
A Halloween tour of the steam tunnels beneath campus will be offered for the first time this year to four groups of eight people on Oct. 29th and 30th. Sign-up for each of the four tours will begin on Monday, October 22nd, and continue until all places are taken. Interested parties should contact Richard McCoy at 231-3200 for more information.2. BOBBY FISCHER - ENDED THE SOVIET CHESS HEGEMONY
Monday, Oct 22, 5:30-7:00 in Williamsburg Rm, 7:00-8:00 in Haymarket Theater in Squires Center The man who ended the Soviet chess hegemony by defeating Boris Spassky will speak at Virginia Tech. A reception will precede his presentation at 7:00pm. Robert James “Bobby” Fischer is a United States-born chess Grandmaster who in 1972 became the only US-born chess player to become the official World Chess Champion. Fischer’s victory during the Cold War caused a great interest in chess and is responsible for the swelling of members of the World Chess Federation.3. SELECTING YOUR CABLE COMPANY IN BLACKSBURG
Sometime between Tuesday, Oct 23 08:00am and next Friday, Nov 2 7:00pm in Room C in the GLC Are you interested in purchasing a subscription package from your local cable company? Presenters from NTC Communications Comcast Digital Cable and Cox Communications will talk about the different internet, phone and cable packages available and answer questions about rates and programming.4. PI EATING CONTEST
Tuesday, Oct 23, 7:00pm in Room F in the GLC the VT Math club is sponsoring a Pi festival. Approximately 3,141 pies will be available for sampling. They will include but are not limited to Apple, Banoffee, Banana cream, Blackberry, Blueberry, Cheesecake, Cherry, Chestnut, Cream, Custard, Grape, Lemon meringue, Peach, Pecan, Pumpkin, and Rhubarb. In addition, at 7:30 there will also be a pie eating contest. The first contestant to eat an irrational number of pies will receive a hand-carved Penrose triangle.5. POSSIBLE BAG BAN
Due to the heightened security of many university campuses, a possible ban of all bags on campus may be implemented in the next two weeks. Backpacks, duffels, shoulder-bags, and purses may soon join the list of items prohibited on campus. This measure has been proposed since it has been pointed out that bags may be able to conceal already illegal items. An unlikely supporter of the ban is the campus Health and Safety Department as it would also alleviate the troubling phenomenon of overweight book bags that commonly lead to health problems later in life. Acceptance of the proposal will be decided by the campus Board of Directors later this week.6. DONALDSON-BROWN LOCKS TO BE CHANGED
It has come to the attention of university security personnel that many graduate students have access to the GLC 24 hours a day. In order to remedy this threat to campus security, all doors to the GLC will have their locks changed between Monday evening and Tuesday morning. In addition, Donaldson Brown dorm rooms will also have their locks changed on a short rotation. You may need to request a new room key from your Residential Fellow.7. ODD - OPEN DOOR DAY
To help promote social interaction amongst the graduate students, Thurs, Oct 25, will be open door day. Graduate students on campus are encouraged to keep their door open and meet their neighbors as well as their Residential Fellow if they have not done so already. We are aware that the doors in the GLC rooms close on their own, this is why you have been provided with doorstops. Use them! Hopefully open door day will become more routine and no longer considered odd.8. MICROSOFT VISTA SERVICE PACK DEMO
Wednesday, Oct 24, 6:00-7:00pm in McBryde 666, Microsoft will be giving an exclusive preview of service pack one for Vista. In response to the massive number of problems, compatibility, and stability issues in Vista, Microsoft has spent the past year fervently addressing these issues in the much anticipated service pack 1 (SP1). Representives from Microsoft will demonstrate the features and stability changes of SP1, such as the newly bolstered DRM software. This update and others in SP1 that will be demonstrated should help provide Vista users with new enhanced reduced functionality.9. WEEKLY SPEAKER SERIES
Friday, Oct 26, 4:00-5:00pm in Room F in the GLC Faculty speaker: Dr. Henry Warren - Physics, on Structure of the Proton. Graduate students and faculty from across the university present weekly their teaching and research passions in a casual, coffee house atmosphere. Free coffee and pastries served from 3:45pm.10. REGISTRATION FOR DEAN’S FORUM ON HEALTH, FOOD AND NUTRITION
Registration for the Nov 5 forum is now open. This forum will showcase health, food, and nutrition efforts in research, extension/outreach, and teaching currently underway at McDonalds, Kraft Foods, Monsanto, and LuthorCorp. Register by Sunday, Oct 28 if you plan on attending the event. Sponsors will showcase the health benefits of the latest developments in GMOs, growth hormones, preservatives, artificial sweeteners, hydrogenated oils, flavoring and texturizing food additives. For more information, including registration links, and to view the Forum agenda, please visit http://www.mcvideogame.com/index-eng.html11. STUDY PARTICIPANTS NEEDED
A graduate student researcher working on behalf of Aperture Science is seeking highly-motivated individuals in good physical condition between the ages of 18-25 for her study. Participants will be asked to perform complex tasks. The entire study should last a minimum of 3 hours and moist, delicious cake will be served upon successful completion of the test. For further information or to sign up to participate, please contact Glados, glados@aperturescience.com
I often find myself talking to people who I should know (in theory), but for some reason, in practice, my neurons refuse to make the right connections to remember these connections. Wouldn’t it be great if someone designed a heads-up display based on your social network?
This is how it would work: when I activate it, and it notices I’m talking to someone, it would do a quick scan and tell me his/her name. That would be a life-saver, and would avoid the first five minutes of the 20-Questions game I have to play every time this happens (while making sure that the other guy (or girl!) doesn’t notice I’m playing the game in my mind.)
It could also tell me how I know that person, because sometimes I remember the name, but nothing else. Wouldn’t it be helpful to know that I’m talking to John Doe, who went to the same high school as I did, and who is now President and CEO of a Fortune 100 company (note to self: graduate soon.)
Not just names, it could even tell me more about the person I didn’t already know (or, in the more likely case, I’ve forgotten.) I’d love to know that my friend John Doe is no longer with his (now ex-) girlfriend Jane, so that would cut out a lot of awkward conversation. Knowing that he just went on a c