Headlines for Thursday:


Priorities - A: high, B: medium, C: low; Status - _: unfinished, X: finished, C: cancelled, P: pending, o: in progress, >: delegated. Covey quadrants - Q1 & Q3: urgent, Q1 & Q2: important
AX@0900-1115 Q1 Talk to Mark about my research
AC@0900-1100 Q2 Study for MIE1407F from 2005.10.06 (mie1407f)
AX@1100-1200 Q1 Attend lecture in MP134 from 2005.10.06 (mie1407f)
AX@1200-1300 GSI pizza lunch with Director of Student Services, First Nations House Lounge
AX@1300-1400 Send Jessie Kang tips for talking to other people, time management
AX@1400-1430 Clean up data for MIE1407F lab (mie1407f)
AX@1430-1440 E-mail Prof. Milgram asking if he can help me find another lab partner (mie1407f)
AC@1500-1600 Q1 Sympatico project
AX@1730-1900 Attend Google tech talk at BA1130 : E-Mail from Alvin Chin
BC@1730 Attend Rotaract meeting at Hart House meeting room : E-Mail from rotaract@utoronto.ca
BC@1820-1855 Q2 Exercise: Basic step drop-in class at Field House from 2005.10.06
AXWrite about blogging and personal knowledge management (2005.10.06 research writing)


1. Google tech talk!

Categories: None -- Permalink
5:30 - 7:00 at BA1130. I am _so_ going to be there.

<cancels everything else on her schedule>

2. Aha! That's it! That's my thing! Research as blogging

Categories: None -- Permalink
I've been struggling to figure out exactly how graduate school and my courses fit into The Great Scheme of Things, and I think I've just figured out exactly how to motivate myself. =)

I'm going to look at my reading course as a series of blogging assignments. Because I'm in grad school, I have the time and resources to dig through academic papers and books that most people won't even hear about. Whee! I found my value-added niche!

Three things:

- Michael D. Pollock of Solostream complimented me on my writing based

on the Linux Journal article I sent him. "Wow," he said.

- Mark Chignell (research supervisor) scheduled a meeting with me

tomorrow to see how I'm doing. Felt guilty about not having more visible progress.

- Took the time to think about where I was going and how I was getting

there. Needed to figure out how to organize my notes. Quadrant II stuff. =)

SO. If I break my big deliverable down into lots and lots and lots of small deliverables--a mini-paper each week, with plenty of references and fun stuff--then it'll be much more fun _and_ much more useful.

I can't wait to wake up tomorrow and start writing! This Friday: Blogging as personal knowledge management...

3. Google: Organizing the World's Information... and Loving It!

Categories: None -- Permalink
The Google recruitment talk was given by John Abd-El-Malek (jam@google.com, abdelMAHLik). Other engineers were also around for the question and answer: Amit Agarwal, Tim James, Jon <nop>McAlister, Peter Szulczewski, Joel Zacaharias. There were two women from HR whose names I didn't catch.

Google's mission statement is to organize the world's information and make it universally accessible and useful. The presentation covered the following points:

- build systems for scalability - harness the power of data - innovating new applications - managing fast-paced growth - looking ahead to the future

Google works on a massive scale

Google faces the following challenges:

- hardware and networking: build a basic computing platform with low cost - big distributed systems: create reliable systems from many individual machines - algorithms, data structures: process data efficiently and flexibly - machine learning, information retrieval: improve quality of search by analyzing lots of data - user interfaces: design effective ui for search and other products

<b>Large data set, simple structure</b>. Key insight: Google works with large data sets with simple structure. For example, web page repositories, query logs, status records from thousands of machines, source code control and software build records, etc. These aren't stored in SQL databases because they're too large for DBMSes (terabytes of data!) and they don't need the full complexity of a DBMS. <b>Simple statistical analysis.</b> Often, analyses of data tend to be simple. General statistical analysis often only requires computing small number of statistics, then performing more complex operations using only these statistics. For example, if we're trying to find the most popular query, we don't need to check all the queries. <b>Data as a sequence of records.</b> For commutative operations, record order is irrelevant (example: addition). For associative operations, aggregation order is irrelevant (example: finding the maximum). This allows you to write parallel programs to take advantage of Google's distributed computing power. For example, consider a week of code submissions. This short program calculates the minute for one entry and emits an instruction to add one to the record for that minute. The emit statements are delivered to an aggregator, which then combines the results into a graph. (As you can see, we do have weekends.)

(Demo followed by a totally awesome video of query traffic represented as points of light on a map of the Earth.)

Harnessing the power of data

The conventional wisdom is that given an order of magnitude increase in computational power, you can solve previously impractical problems.

Google's insight: <b>Given an order of magnitude increase in data, you can solve previously unsolvable problems!</b>

It's not just about getting a more robust solution. Some methods that appear to fail with limited data works with much larger data sets.

Consider spelling correction. The old way was to use a lexicon/dictionary - 100k words. This allows you to suggest correction words that have a short edit distance from unrecognized words. What's the challenge? Proper names, which are rarely in lexicons. Example: Kofi Annan.

The set of terms on web is much larger than standard lexicons and changes regularly. People misspell queries, even popular ones such as "britney spears". Dictionary-based spelling correction has problems with context.

(Points out funny contrast between britney spears and briney spears (asparagus).)

Solution? Use the web as a contextual lexicon. Find misspellings based on contextual usage on web. Build a probabilistic model of term spellings. Context is key.

You can also find interesting patterns in data. For example, here are the most popular queries from the past few Januarys. (Points out Superbowl, points out one year when Janet Jackson and "superbowl halftime" topped the Google queries.)


Google Maps

Example: Google Maps. Revolutionary update because it's dynamic, clean rendering. Open API for developers.

Making it all work

- Plenty of crazy hacks to make it work across browsers - Mozilla/Safari/Opera don't support vector markup. Draw driving directions on server in a PNG image and overlay it - IE does not support alpha transparency in PNGs. Use a little known ActiveX control that's enabled by default - Safari and Opera don't suppot parsing XML strings, so we wrote an XML parser in <nop>JavaScript (no joke)

The benefit of DHTML: Simple API

- Putting map on page requires only two lines of <nop>JavaScript: - Initially designed to integrate - Developers figured this out before we published API

http://www.scipionus.com/katrina.html . Wow. Leaving messages overlaid on a map. Good idea.

Automatic machine translation

Goal: Provide automatic high-uality translations of text between different languages Enables all text data on the web to be accessible in any language no matter what the language of original text Approach: statistical machine translation. Build a statistical model of translation. Use decision theory to make optimal decisions. Sentence-by-sentence level.

Pre-translated pairs of text to learn parameters of log-linear model.

Throw statistics at the problem! BLEU% score: how closely machine translation similar to human translation Outperformed Chinese-English translation and Arabic-English translation. Why Chinese and Arabic? They're very different from English. If we can do these languages, then it would be easier to do Spanish and French.

BLEU% for Arabic-English translation as amount of data for language model is increased. weblm: learning model trained on 219B words of web data! Seems roughly logarithmic.

Google Desktop

Google Desktop APIs: Indexer, Query, Sidebar, Event API. More info at http://desktop.google.com/developerguide.html . (Oooh. Event API. What is the user doing? They've done the grunt-work of hooking into the different applications! Sweeeeeeet! Awesome! Awesome! They have an event stream already going!)


Show useful information, not distracting, make efficient use of space. Write a cool panel, and depending on the number of users: limited edition Google Desktop t-shirt, adwords, iPod nano, internship!

Some ideas: local traffic, calendar, eBay, iTunes, sports scores, quicklaunch, TV guide, random Google Video, webcam, SMS...

Google work environment

Small teams of 3-5 people, problems that matter, with freedom to explore their ideas. Access to enormous computational resources. 20% time to explore your own ideas.

Froogle, orkut, news, desktop: all 20% products.

<b>Not just about search</b>

- hardware, mechanical engineering - networking, distributed sys, fault tolerange - compilers, programming language - data structures, algos - machine learning, statistics, IR , AI - user interfaces - product design

<b>Not just about engineering</b>

- product management - product marketing - finance - technical sales - tech program management - staffing - online sales and operations

<b>Hiring all over the world</b> <b>Great benefits</b>

- flexible work environment - fun atmosphere - free gourmet meals - on-site massage, doctor, concierge, and dry-cleaning - and all those "standard" things

(still need an apartment to sleep in, though, though.)

Looking at the future

Sampling of Google's product suite: Google Web Search, Adsense for Search, Google News, Blogger, Froogle, Gmail, Google Earth, Google Search Appliance, Google Toolbar...

help users organize information

Google Labs: personalized search, video, suggest, sets

looking ahead: always room for improvement

- <b>better systems:</b> improving scalability and performance, providing new infrastructure to build services on - <b>better relevance:</b> improving which pages are presented to the user, giving user access to more/new information - <b>better products/services:</b> new product directions to pursue

Come join the fun! http://google.com/jobs , collegejobs@google.com

Questions and answers

- How does Google make money off Orkut? We never worry about profit

for product. We make it first, and then we see if we can make money off it. - Is there an reality in a Google online office? Can't comment on any rumors. - How many people are you looking to hire? No specific number in mind. As many great, talented people are out there. - Server count? Can't answer that. - Majority of Google revenue come from licensing technologies? Revenue statements are largely open now that Google is a public company. Most of it comes from Adsense. Some revenue from Google Earth and Google search appliance. - Only some publications from Google Labs. Is that something encouraged within Google, or is it just happens? Very fine line betwe... we want competitive advantage also. We have opened up software. Historically we haven't been a huge research company. - Where do you stand on privacy? "Don't be evil." You need to get special permission to go through query logs, for example. - What about Linux and Mac versions of things like Google Desktop? We want to focus on what will give us the most impact. Cross-platform thing is 20%-time stuff. Most Googlers use Linux, so it's frustrating having to borrow someone else's computer to try things out. - What about linkspam? 50-100 people working on linkspam. Matt Cutts is one of the Googlers working on this. - What about corporate structure? I've heard Google's supposed to be very democratic. — Teams themselves figure out what features should be added. We just meet and figure out what to do. Engineers have a lot of power. More motivation to work on things. - How many engineers do you have? 3000+ engineers. - Why do you help out Firefox? What do you have planned? Sometimes Google just does things to help make the Web a better place. Part of philosophy of not being evil. - What about UI design? UI designers really help us a lot. For example, sidebar. UI designers helped us do that. - Software engineering? We have design documents and we review them. Testing. 20% projects are an exception; rules are looser. For most projects, there are design documents, all the code is reviewed before it's submitted, unit tests are encouraged... - What are you looking for? Well-rounded bright individuals. We want to be able to learn something from you. We want to make sure you're a solid recruit for Google. We want to make sure we keep learning something. Something that wows us. "Wow, this guy is sharp."

Update: Also blogged by Alvin Chin. Also: http://www.the-gadgetman.com/files/Google%20tech%20talk.mp3

4. Google recruitment talk: Impressions

Categories: None -- Permalink
Google is, of course, t3h k3wl. In fact, working at Google is probably cooler than studying at MIT, in terms of geek status. ;) This recruitment talk wasn't about convincing U of T students how cool Google is. That would've been preaching to the choir. Rather, the talk was about some of the interesting challenges people might get to work on at Google. This should help students think about their projects and their resumes...

I was a bit disappointed that there weren't any female engineers. The two women there were both from HR. They wore Google shirts with the second "o" replaced by the sign for woman, and that's something I want to think about further. I talked to one of the women after the presentation. She said that there was supposed to be one, but she got pulled into a project at the last minute. They do try to pay attention to these things, though, and occasionally have all-female events.

I confess. I loiter near the front during post-talk mingling not because I have burning questions to ask, but because I like eavesdropping on other people's questions. I learn a lot from other people's concerns. For example, like students around the world, U of T students are worried about their GPA and whether their grades will affect their admissions. They want to know what companies are looking for. They want to know about where the company's going. The usual HR stuff. I like watching out for the unusual questions, like the way someone asked "So, important question: vi or emacs?" (Wish I knew who asked that one!) And the person who asked about Python. Interesting.

Anyway, getting back to Google. Google's interesting. Here'd be my strategies for getting in:

- <b>Resume, traditional job application?</b> Right now? No way. I

won't stand out in the crowd.

- <b>Internship?</b> International student; fat chance.

- <b>Extracurricular projects?</b> Promising. If I want to get into

this stuff, it's a good time to learn AJAX and figure out how to use the Google APIs. Google Desktop looks _really_ interesting and it's right up my personal info/knowledge management alley, but it's Microsoft Windows-based. (That's another option, though; get something running on Linux...)

So if I want to boost my chances for next year's job application cycle, I should work on a project. Come to think of it, anyone can do that from anywhere in the world--so don't lose hope, people back home! =)

Next question. Do I want to work at Google?

I didn't need to see this presentation to know that Google is totally cool. It's every geek's dream company. Imagine hanging out with incredibly brilliant geeks, working on great projects, eating nice (and free!) food, and enjoying all the computing power you can throw at a problem.

Does it fit what I want to do?

Well, if I get in, it will certainly push me in terms of technical skills. I'll learn a _lot._ But I don't just want to work on my technical skills... I don't think I know enough about Google yet to like them immensely.

It's nice that Google matches employee donations, and it's great that they've got a motto of "Don't be evil." I need to learn more about them and how they might fit into my personal mission statement, though... I think I need a lot more user contact, a lot more involvement in people's lives.

And hah! yes, ego comes into it too. I want people to know me. Not just the systems I build, but to know _me_, and I want to know them not just as statistics but as people too. As much as I'm glad that those Googlers can keep Google running and can develop all sorts of cool new systems, they're still anonymous to me and to the millions of people who use Google without thinking.

There you go. I've confessed it. I'm egotistic. I want people to know me and I want to know them. I want to be within talking distance of users.

Is that something Google can let me do? I don't know. We'll see.

Ack! I can't believe I feel uncertainty about _the_ geek company of our time!

Does this mean I'm getting less geeky?

Oh no!

5. Geek girl T-shirts

Categories: None -- Permalink
The two women from HR wore Google Women's Tees. From the website: "We originally designed this shirt for our efforts in recruiting women engineers." Seeing the shirt on them made me think about my geekwear, and why I found the Google Women's Tee a bit strange.

I like wearing tech shirts. They're a great way to identify myself to other people. They makes it easier for geeks to talk to me. They provide instant conversation starters for people in the know.

I'm still not used to the Venus symbol, though, and that's probably because I think of the symbol in different contexts. It feels too serious for me. I guess I'm also more used to the "girl" aspect of my identity than I am to the "woman" aspect. That's why I self-identify as "geek girl".

Maybe it's a socialization thing. I'm more used to subtle gender signs, like the "geekette" in my signature. I like wearing baby tees with the same logos as the regular shirts. The logo connects me to other geeks, but the slightly more flattering cut makes a small difference.

Ah. That's probably it. I want my geekwear to connect me with other geeks, which is why I'd go for something generic like "emacs" over something like "geek. girl. goddess." I'd wear "emacs girl" if I want to point out that yes, I can _too_ be a girl _and_ be into Emacs, but I prefer focusing on what I have in common with other geeks.

This doesn't mean the T-shirts are bad, though. It just means I'd be more comfortable in a plain black Google women's T-shirt than in a Google Women's Tee.

It's pretty much a moot point, anyway, as they only had white long-sleeved men's style shirts earlier, and they ran out before I could get one. The swag would've been nice, but it wasn't essential. I learned enough from the conversations and the talk itself to make the time worthwhile. &lt;laugh&gt; I can understand why they probably wouldn't bring women's tees to a mixed talk. Still, I'm endlessly appreciative of conferences and tech sessions that actually have baby tees, like the totally cool open source conference I spoke at in Cebu and the blogging summit I attended in Manila right before I left. I left the blogging shirt at home, but I love my open source baby tee to pieces.

Ah, the trouble with being a geek girl in a guy's world... Swag rarely fits.