Speaking Lessons

.........................................................

Watching yourself really helps in understanding how you speak. Reasons I’m a terrible speaker:

  • I keep looking down and leaning towards the microphone. This looks horrible but of course, at that time, I didn’t realize the mic would still pick me up if I stood normally. I could easily correct this.
  • Way too many “so”s, “just”s and “like”s. I do it more than everyone else.
  • I fidget a lot. All that moving would definitely annoy me if I was watching the talk.
  • I’m not really sure what to do with my hands.
  • Worst of all, everything I said in that talk was said very matter-of-fact-ly, an attempt to make what I was describing seem really simple but there are betters ways of doing that while not being boring.

View Comments

The Age of Silence

.........................................................

The opening chapter of the fictional book The History of Love from the real book The History of Love:

The first language humans had was gestures. There was nothing primitive about this language that flowed from people’s hands, nothing we say now that could not be said in the endless array of movements possible with the fine bones of the fingers and wrists. The gestures were complex and subtle, involving a delicacy of motion that has since been lost completely.

During the Age of Silence, people communicated more, not less. Basic survival demanded that the hands were almost never still, and so it was only during sleep (and sometimes not even then) that people were not saying something or other. No distinction was made between the gestures of language and the gestures of life. The labor of building a house, say, or preparing a meal was no less an expression than making the sign for I love you or I feel serious. When a hand was used to shield one’s face when frightened by a loud noise something was being said, and when fingers were used to pick up what someone else had dropped something was being said; and even when the hands were at rest, that, too, was saying something. Naturally, there were misunderstandings. There were times when a finger might have been lifted to scratch a nose, and if casual eye contact was made with one’s lover just then, the lover might accidentally take it to be the gesture, not at all dissimilar, for Now I realize I was wrong to love you. These mistakes were heartbreaking. And yet, because people knew how easily they could happen, because they didn’t go round with the illusion that they understood perfectly the things other people said, they were used to interrupting each other to ask if they’d understood correctly. Sometimes these misunderstandings were even desirable, since they gave people a reason to say, Forgive me, I was only scratching my nose. Of course I know I’ve always been right to love you. Because of the frequency of these mistakes, over time the gesture for asking forgiveness evolved into the simplest form. Just to open your palm was to say: Forgive me.

Aside from one exception, almost no record exists of this first language. The exception, on which all knowledge of the subject is based, is a collection of seventy-nine fossil gestures, prints of human hands frozen in midsentence and housed in a small museum in Buenos Aires. One holds the gesture for Sometimes when the rain, another for After all these years, another for Was I wrong to love you? They were found in Morocco in 1903 by an Argentine doctor named Antonio Alberto de Biedma. He was hiking in the High Atlas Mountains when he discovered the cave where the seventy-nine gestures were pressed into the shale. He studied them for years without getting any closer to understanding, until one day, already suffering the fever of the dysentery that would kill him, he suddenly found himself able to decipher the meanings of the delicate motions of fists and fingers trapped in stone. Soon afterwards he was taken to a hospital in Fez, and as he lay dying his hands moved like birds forming a thousand gestures, dormant all those years.

If at large gatherings or parties, or around people with whom you feel distant, your hands sometimes hang awkwardly at the ends of your arms – if you find yourself at a loss for what to do with them, overcome with sadness that comes when you recognize the foreignness of your own body – it’s because your hands remember a time when the division between mind and body, brain and heart, what’s inside and what’s outside, was so much less. It’s not that we’ve forgotten the language of gestures entirely. The habit of moving our hands while we speak is left over from it. Clapping, pointing, giving the thumbs-up, for example, is a way to remember how it feels to say nothing together. And at night, when it’s too dark to see, we find it necessary to gesture on each other’s bodies to make ourselves understood.

View Comments

The Key to Stability

.........................................................

Pondering the meaning of life makes me happier and more optimistic. (I don’t mean trying to figure out the meaning of life; I already know it. I mean just thinking about it, and in particular, how it applies to my present state).

Forgetting the meaning of life makes me sad, depressed, frustrated and angry.

So, the question is how do I prevent myself from forgetting the meaning of life? Writing it down on a piece of paper that I constantly look at might help. But then, my brain would habituate to that. That’s what happened with the ‘Sit up straight, you mofo!‘ sign I have above my desk. I can’t think of a better solution but that solution seems to be the key to happiness and stability amidst the wild daily emotional fluctuations.

View Comments

The Evil File System

.........................................................

From the iPad Programming Guide (pg 17):
Applications with the UIFileSharingEnabled key in their Info.plist file can share files with the user’s desktop computer. A connected iPad device shows up on the user’s desktop and contains subdirectories for all applications that share files. The user can transfer files in and out of this directory.
Of course, it is important to remember that although you can manipulate files in your iPad applications, files should never be a focal part of your application. There are no open and save panels in iPhone OS for a very good reason. The save panel in particular implies that is the user’s responsibility to save all data, but this is not the model that iPhone applications should ever use. Instead, applications should save data incrementally to prevent the loss of that data when the application quits or is interrupted by the system. To do this, your application must take responsibility for managing the creation and saving the user’s data at appropriate times.
Glad Apple is waging a war against file systems. They really need to go away. Humans don’t think in terms of files, filenames or folders.

View Comments

Inspiration

.........................................................

If someone you don’t know randomly1 finds your blogging engine (which isn’t yet public and is on an obscure URL), reads a ridiculous manual called “Formatting Help”, starts posting and then, gets 4 of their friends to also start blogging, how do you not feel inspired to work?

Users are cocaine.

  1. Well, not completely random but close enough

View Comments

Quora Tech Talk Notes (Raw)

.........................................................

Notes taken on my iPod Touch from the Quora talk at Stanford on Decemeber 3.  I can barely understand myself after not looking at it for a month.

Requirements for framework to power Quora: (1) real-time, (2) really fast like Google, Amazon and Facebook, (3) make it easy to build the website.

Making in all javascript like GMail has problems- (1) Slow and (2) SEO is a problem.

Alternatives – Rails, Pylons. Decided to use Pylons.

A page is broken down into components. Make the way the page looks how we code.

Singletons no different.

Right CSS and JS, Reuse components.

Share code between comments on answer and comments on question

Python object - all day - display

Ruby on Rails review.

HTML tags, use with, only classes to select elements.

DOM, IDs, @ symbol locally scopes ids, prefixes real DOM ID, Unique, avoids collision.

JS components, classical inheritance is nice, JS at the bottom of page makes page faster.

Components are views.

Decorators, Lala (?), cQuery

Reference, Dynamic scoping, components can be subclasses, OO

Component inspector

Updating of page, Real-time-ness

Javascript checking. Generate javascript.

Component data access.  Get own data. Need same data. Per-request IO cache.

Hierarchy of components, prime breadth first, composability.

LiveNode, like page refresh, renders all HTML server-side

Implementation – When data changes, Depkey abstraction, register dirty, dependency, dirty. Just like memcached.

Thread variables, Depkey to component. Which components are dirty?

Tornando, Live block, hash, less than twice as much, comparison happens on the server.

LiveList for lists, more button.

id for each browser window

Window close or closing laptop is not possible to differentiate, ask user to refresh page then.

Example of LiveNode in action – when user adds answer, show “loading…”,  Ajax RPC to server, Model, Dirty(answers of question), list of browser window, send notification to each one, Get update, Re-render, Mutation_complete

Minimize client state, Track client state and queue updates, recreate client state after transition

MySQL.

Statelessness. Composability. Optional. State is bad.

I’m not sure if these notes are useful to anyone. But if you want to know more, there are a bunch of questions on Quora that are useful (you can only view them if you have an account on Quora) -

Why is Quora so fast?

What languages and frameworks were used to code Quora?

Why is the autocomplete for Quora so fast?

Other questions under the topic Quora Infrastructure.

View Comments

Website Release Checklist

.........................................................

I’ve been releasing a bunch of different websites recently. And when I do each release, I usually check a few things. Sometimes, I forget to check a thing or two. This is an attempt at transferring that mental checklist into something written (and hence, organized) —

  • Validate HTML
  • Validate CSS
  • Remove all inline Javascript and CSS
  • Semantic and accessible HTML?
  • Works across browsers and platforms? (Are IE users banned?)
  • Is all user input sanitized?
  • Does it have a favicon? Does it have a page title?
  • Analytics (Choon Keat)
  • Add <meta> tags (Davide Casali)
  • Are the number of HTTP requests as low as possible? (Alexander Limi)
  • Robots.txt (especially important if you have a dev and a live site {which you might not always be a good idea}; Wim)

Any other suggestions for what should be on this checklist?

Eventually, all this should become automatic and constant rather than forced and climactic.

View Comments

Winter Quarter Classes

.........................................................

  • IHUM Making of the Modern World: Europe and Latin America (4 units; required) – I was originally in Epic Journeys which, apparently, is the easiest IHUM but it conflicted with not one, but two of my classes.
  • SOC 124 Interpersonal Relations or SOC 140 Sociology of Gender (5 units) — Leaning towards the first one at the moment.
  • CS193P iPhone Application Development (3 units) — Should be easy and fun (and epic). I’ve gotten decently good at iPhone app development over the winter break.
  • CS106B Programming Abstractions (3 units) — easiest CS class.
  • CS140 Operating Systems and Systems Programming (4 units) — hardest CS class.
  • CS199 Independent Work (trying to get as many units as possible)
  • A couple of 1-unit seminars1

I’m going to have to petition to take more classes than the 20-unit limit allows but that’s pretty easy to get approved. If you went to Stanford or if you know about classes at Stanford, any suggestions for either really interesting or ridiculously easy (measured in time) classes?

  1. Seminars are just speaker series’ at Stanford. Attendance is the only thing that counts for these classes.

View Comments

2010 Goals

.........................................................

Besides the usual goals in life (meet interesting people, read many many books, listen to great music, watch a lot of movies, eat good food, …), here are some more lofty ones for this year —

  • Spend summer at some place that isn’t Microsoft, Google, Yahoo or Amazon. Perhaps, Mozilla, Facebook or possibly one of the few startups that I really like. Best case scenario: intern for myself.
  • Start a company. Raise 5 million dollars in Series A funding or better yet, be insanely profitable without VC money.
  • Stop wasting parents’ life savings on college.
  • Visit Peru (Summer)
  • Take the 9289 km-long Trans-Siberian Railway (Winter)
  • Win an Apple Design Award — Really hard.
  • Do a Senior Project in freshman year — Pretty easy. Corollary: write more than 1 CHI paper.
  • Get a short story/poem published in The New Yorker.
  • Start writing a book.
  • Reduce the number of Chinese people in my life — Just kidding. Creating diversity for the sake of it is a bad idea.

“Make no little plans. They have no magic to stir men’s blood and probably themselves will not be realized. Make big plans; aim high in hope and work, remembering that a noble, logical diagram once recorded will never die, but long after we are gone will be a living thing, asserting itself with ever-growing insistency. Remember that our sons and grandsons are going to do things that would stagger us. Let your watchword be order and your beacon beauty. Think big.” — Daniel Burnham, Chicago architect

View Comments

Idea: Linker.app

.........................................................

On the last day of the last year of the last decade, I wrote a blogpost with only one link. I could have linked the songs, the books, etc. but it would have taken a while and it would have been painful. There are far too many steps involved in linking a short phrase – (1) google for the page you want to link to, (2) click the page result, (3) copy the URL from location bar, (4) switch back to this tab, (5) open up the link window and then, (6) paste it in. A couple of things to note here — I assume that most people would rather than do a web search than find something from their own browser history. In most cases, that’s generally easier because only Chrome and Safari have full text search and neither implements it very well. Another thing is I don’t think a lot of people know or use the context menu to “Copy Link Location”, they would rather click through to the page and then, copy the URL.

Linker.app would be a Mac app that works like Quicksilver, LaunchBar or Google Quick Search Box (QSB lets you “search Google” but all it does is open a browser tab with your search keywords). It would also be like Ubiquity which has a fantastic “Link to Wikipedia” command (image below) that links your current selection to the right Wikipedia page. Ubiquity also has a neat Google search command with live previews (image below).

Linker.app would let you hit a system-wide hot-key, do a Google search, view the search results instantly, pick which one to insert1 and then, insert it as a link if the selected text is in a rich text editor or add the link beside the selected text if it’s in a plain text field.

A large portion of humanity’s time is spent on linking. In many blogposts that I have written, linking2 almost takes as long as writing the blogpost itself. Someone has to solve such a massive problem. It’s a great opportunity. If you’re interested in collaborating or working on this idea on your own, let me know.

  1. Hypothesis: no one really looks below the first three searches, they do a new search instead; also, in this case, you already know which page you want, you’re just looking for the link.
  2. Especially thanks to terrible linking interfaces

View Comments