Wednesday, April 29, 2009

Getting started with OCaml

A friend with some experience with SML asked me how to get started with OCaml, so I thought I'd write this incomplete guide.

Apparently, the internet also has a "Getting started with OCaml" guide. My guide will remain competitive by being much more concise (and therefore, incomplete).

Steps to getting started:
  1. Download an OCaml compiler from somewhere. Other useful things to have are ocamlfind (which finds your OCaml libraries), ocamllex (for lexing), and ocamlyacc (for parsing). Another useful thing is OCamlMakefile, which helps you manage builds with Make.
  2. Read a tutorial or two. This is a good thing to read. Also, bookmark the Index of modules.
  3. Write some programs while compiling frequently. (Compiling too late in the game may cause death of the Ocaml experience.)
  4. If you want to lex and parse, look into ocamllex and ocamlyacc.
Some details:
  • OCaml is very similar to SML. The only different parts are loops and things like that. I try to stay away from those because they are creepy.
  • The file extension is .ml; the file extension for interfaces is .mli. You don't need an interface file; without one you export everything by default.
  • The contents of file somefile.ml are in the Somefile namespace, which you can open with "open Somefile." By default all of these little guys are exposed. You can hide things by creating modules and writing module interfaces. Read more about that here.

Some important things to know:
  • OCaml is the future because (arguably) a lot of people are using it. It is the new big thing for scientific computing because you can actually get good performance out of it!!
  • OCaml is more practical than Haskell for some things and also yields better performance more easily.
  • One thing OCaml is not great for is backwards compatibility. Each new release of OCaml supposedly breaks a lot of things. From my understanding a lot of libraries change/break, causing everyone to experience organ failure.
How I learned OCaml:
  1. In fall of 2006, I spent a long time struggling with the MLton SMLNJ compiler. It gave me lots of obscure errors and I cried.
  2. From fall of 2006 to spring of 2007, I came to not only be master* of the MLton compiler but also the Moscow ML compiler. These compilers are not only difficult to use but also often difficult to install, so you should be very impressed.
  3. After learning SMLNJ was not really being maintained anymore, I said "screw this shit" and moved on to Haskell.
  4. In January of 2009, I realized** that OCaml is the future. For my next project I decided to use OCaml, which I picked up in an ad hoc ways throgh the steps above, skipping step 2 (but compiling very frequently). I am still in this step.
* This is subjective.
** Through a combination of talking to people about what people used for different things, trying to do 3D arrays in Haskell, and meeting myself at Xavier Leroy.

Speaking out

I was wandering around Boston when I came across the following poem on the Holocaust Memorial:

When the Nazis came for the communists,
I remained silent;
I was not a communist.

Then they locked up the social democrats,
I remained silent;
I was not a social democrat.

Then they came for the trade unionists,
I did not speak out;
I was not a trade unionist.

Then they came for the Jews,
I did not speak out;
I was not a Jew.

When they came for me,
there was no one left to speak out for me.

This poem, which is by Pastor Martin Niemoller about the inactivity of the German intellectuals to speak up after the Nazi rise to power, made me think about the importance of standing up for people who are not in a position to speak out for themselves. Big picture-wise, the most relevant example these days is immigrants, illegal and otherwise (non-U.S. citizens), who do not have the full rights and freedoms of citizens and have been treated increasingly worse in the last few years. On a smaller scale, there are many opportunities day-to-day to speak out: from the stories I hear many workplaces are rife with subtle (and not-so-subtle) racism, sexism, and general inappropriateness. The perpetrators may not mean harm, but as we learned in sensitivity training at Google, the intent does not matter--only the oucome. (Also, I personally don't find racism or sexism very funny. Do you?) We should be aware and conscientous that we are not going along with things just because we are comfortable members of a majority.

Monday, April 27, 2009

Exercise videos aren't so bad...

First yoga, now exercise videos*?! It started when I wanted to begin doing more stretching outside of yoga class. I picked up Rodney Yee's A.M. Yoga DVD while browsing at Whole Foods, which contains five 20-minute workouts, one for each morning: standing poses, twists, forward bends, backward bends, and hip openers. I was so inspired by my enjoyment of this practice that today I picked up Bollywood Booty, a dance workout to lift (??) and tone one's backside, and Rodney Yee's Back Care Yoga. The first one was much more fun than the back care yoga, which was yoga at a much slower pace than I was used to and involves a chair as a prop. (It seems to basically take the strengthening parts out of various poses that stretch the back and make it so that you don't have to work much to stretch your back.) These videos provide a nice alternative for doing nothing on nights when I come home after the gym is closed. I never thought I'd say this, but exercise videos aren't so bad.

* I would like to note that these videos are a supplement rather than a substitute for my normal workouts. For instance, today I did the two videos after I'd gone for a 4-mile run earlier.

Thursday, April 23, 2009

Someone who is honest about PL design

Gilad Bracha on how he was a computational theologist with the job of interpreting (programming) language specifications. :)

The Narcissism Epidemic

In this Newsweek article, writer Raina Kelley mentions a new book, The Narcissism Epidemic, and reflects on how societal forces have caused today's young people to become self-centered far beyond having healthy self-esteem. An issue I have with this article is that Newsweek seems to be using this article to appeal to narcissists looking to identify with other narcissists: 1) they include photographs of young people partying recklessly, looking in mirrors, etc. that don't portray the people in a negative way and 2) the writer seems to use the mention of the book as a jumping-off to discuss how her own life experiences have cured her of narcissism... (This may have just been a symptom of the fact that the article was not centered around a tight thesis.) Despite this, the article is worth reading because it brings up good points about how it is good for young people to be taught humility. Society should say "no" to us and give us grades lower than B's every once in a while.

Isn't it a good thing that even Newsweek recognizes that it is important to remind me that it's not all about me? ;)

Wednesday, April 15, 2009

Using the non-functional parts of OCaml is often creepy

I tried to use Map.iter a few times, but it was just creepy:
iter : (key -> 'a -> unit) -> 'a t -> unit

The function takes a function that takes a key, value, and updates some state, and then in the end you don't get anything back--just the updated state that lives somewhere else. Agh! I prefer to use Map.fold, which makes the state updating more explicit:
fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b

Monday, April 13, 2009

What will happen when tides turn?

China's gender gap is estimated to be 32 million: largely due to the one-child policy and selective abortion, there are 32 million more young males (under the age of 20) than young females. I can't imagine that the culture will continue to value baby boys for much longer. I once watched a documentary on the social unrest people fear resulting from a population of mostly young men, many of whom are unmarried with no change of marriage. When/how will this cause families to begin valuing baby girls? Will the scarcity of marriageable young women increase their societal value in healthy, productive ways or will it increase the degree to which women are objectified? Wjdk*.

* "We just don't know"--a phrase I borrow from my friend Joe Zimmerman.

Programming of the future

Interaction and search allow ambiguity, concision.

Nostalgia, or why I am not a creative writer

Senior Spring: bangs too long; drinking.*

* This flash blog post inspired by Six-Word Memoirs on Love and Heartbreak, which were inspired by by Ernest Hemingway's six-word flash fiction, "For sale: baby shoes, never worn."

Thursday, April 09, 2009

Downward dog, happy puppy

I had thought this was a joke, but it's true: dog yoga is the new big thing. I don't do yoga with the dog I don't have, so I am not sure how I feel about this.

Sunday, April 05, 2009

So many books, so little time

Below are some books I've recently finished, with some brief commentary:

Non-fiction

Unlocking the Clubhouse: Women in Computing
, by Jane Margolis and Allan Fisher - a well-researched, engaging 2001 book describing 1) surveys of the current state of the women in computer science (or lack thereof), 2) suggestions about how to improve the situation, and 3) descriptions of current efforts to increase numbers of women in CS and their results so far. Margolis and Fisher discuss how societal stereotypes of the "boy hacker" icon often cause women to have less exposure to and interest in computing. They provide well-motivated suggestions for how to change classroom dynamics, and recruiting efforts to include more women in computing. I am happy to say that many of the issues in this book are somewhat dated by now: since the publication of this book, the "locker room" classroom dynamic has become less acceptible now, and computing as a field has moved more towards applications and connections to other fields rather than being just about pure speed and power. My issues with the book are that 1) it does not motivate why more women should be in computing and 2) it does not portray women who do computer science favorably. While I clearly believe that more women should be in computing because it is useful and because women can be good at it, I would have liked to see the authors' reasons. As for the second point, the book portrays women in computer science as survivors victimized by bad classroom dynamics and inadequate support networks. The book quotes all these women either explaining why they chose to stick with computer science or saying things like "well, I took these courses and they were difficult, but I persevered." There is not a single confident woman in the book who is passionate about computer science. (Maybe they couldn't find one, but I don't think they looked tha hard. My female professors have all been confidant and passionate.) Also, much of the book addresses the "fact" that there are all these women who start out behind and lack the confidence to continue without much speculation on social factors for this--it becomes easy to read this as "women start out with a disadvantage because they are weaker." It might be for this reason that the book assumes women's self-reported levels of aptitude and experience are accurate and never discuss normalizing self-reported levels by actual performance. (It is a known phenomenon that women tend to deflate their abilities in surveys and men tend to inflate. There are studies on this and I have experienced this personally.)

Zelda, by Nancy Milford - a biography about F. Scott Fitzgerald's wife Zelda Sayre. Because of my teenage crush on This Side of Paradise's protagonist Amory Blaine, I had become very interested in the Fitzgeralds and what I thought was their exciting Jazz Age life and read all of Scott's books and also Zelda's large autobiographical novel Save Me the Waltz. From the fiction I had gathered that Scott was burdened by a very inspiring but crazy* wife; this books provides a sympathetic and surprising view into Zelda's life. Zelda not just inspired Scott, but he often included her letters and diary verbatim in his works. (The "broken columns and clasped hands and doves meant romances" line from Paradise is from one of Zelda's letters. Instead of acknowledging her he bought her a nice fan. WTF, Scott?) When Zelda received a publishing offer on her diaries, Scott refused, saying that they provided him a lot of material. When Zelda was writing Save me the Waltz, Scott tried to prevent it from being published and eventually had it taken off the shelves. Later, when Zelda was very ill and badly wanted to write novels, Scott told her she wasn't good enough and that she was allowed to do anything except write. The biography left me much less a fan of Fitzgerald than I used to be. However, if you are interested in the fiction based on the Scott-Zelda dynamic, a nice triology is Scott's Tender is the Night, Zelda's Save Me the Waltz, and Hemingway's Garden of Eden.

Fiction

My Mistress's Sparrow is Dead
, edited by Jeffrey Eugenides - the author of Middlesex has compiled an anthology of "love stories" that may be of a different nature than what one might first imagine a love story to be. These stories include classics like Faulkner's A Rose for Emily and Nabokov's Spring in Fialta. I also discovered some good comtemporary ones, such as Jon by George Saunders, about lust, love, and difficult decisions between two teenagers in a distopian world where they are part of the Trendsetters and Tastemakers, children chosen to detect and set trends by assessing products every day. Another good one is Lorrie Moore's How to be an Other Woman.

Mysteries of Pittsburgh
, by Michael Chabon - an engaging coming-of-age novel about a young man who has just finished college and is hanging out in Pittsburgh. The novel has vivid and accurate descriptions of what it is like to be young, in love, and in Pittsburgh. The movie is coming out this month; I will definitely go see it.

I am currently reading Lorrie Moore's Birds of America, a collection of short stories; I really like it so far.

* Zelda was diagnosed with schizophrenia and spent decades of her life in and out of mental institutions. It seems, however, that this was early 20th century schizophrenia: she had periods of being better and period of being worse, so it is more likely that she was manic depressive. Scott's Tender is the Night is based heavily on his experiences with Zelda's illness.

Pride and Prejudice and Zombies, by Jane Austen and Seth Grahame-Smith



I discovered this book while checking out at the bookstore yesterday. While I've only read the first page, I recommend that you check it out. In this funny "novel" published by Quirk books, Grahame-Smith has taken Austen's classic novel and changed it to accommodate some zombie parts. A blurb:

...As our story opens, a mysterious plague has fallen upon the quiet English village of Meryton—and the dead are returning to life! Feisty heroine Elizabeth Bennet is determined to wipe out the zombie menace, but she's soon distracted by the arrival of the haughty and arrogant Mr. Darcy... Complete with romance, heartbreak, swordfights, cannibalism, and thousands of rotting corpses, Pride and Prejudice and Zombies transforms a masterpiece of world literature into something you'd actually want to read.

Below is the opening of the book:

It is a truth universally acknowledged that a zombie on possession of brains must be in want of more brains. Never was the truth more plain than during the recent attacks at Netherfield Park, in which a household of eighteen was slaughtered and consumed by a horde of the living dead.

"My dear Mr. Bennet," said his lady to him one day, "have you heard that Netherfield Park is occupied again?"

Mr. Bennet replied that he had not and went about his morning business of dagger sharpening and musket polishing--for attacks by the unmentionables had grown alarmingly frequent in recent weeks.

The book also includes fun illustrations of the battles involving zombies. I did not buy this book because I was skeptical of its ability to capture my interest throughout the whole thing, but let me know if you find it a good read.

Friday, March 13, 2009

Beckett's Endgame at the A.R.T.

I saw Beckett's Endgame at the American Repertory Theater last night and liked the performance very much. Today they informed me they just added three shows, so you should go see it if you are in the area and enjoy that genre of absurd drama/are curious to see what Endgame looks like as a real play.

For those of you who don't know, Endgame is an absurd play (somewhat similar to Sartre's No Exit) about four people who are waiting in a room to die. There is Hamm, the blind protagonist who cannot stand, Clov, Hamm's friend/"son"/servant who cannot sit, and Nagg and Nell, Hamm's parents who exist in separate ash cans and have no legs. The play provides interesting food for thought on interactions between people, what it means to live, and what it means to wait for death. I was surprised that the A.R.T. managed to put humor into it; I had always thought of it as a fairly depressing and absurd tragedy. The show I saw was enjoyable and moving--an impressive feat with such tricky material.

If you don't believe me that the play is good, you should know that Endgame has been getting good reviews: everything from "exquisite" and "stunning" to "fulfilling," "exciting" and "gaspingly funny."

You can read other reviews here and get tickets here.

Wednesday, March 11, 2009

Gmail finally has a task list feature!

I don't know how slow I am on this; I found out about this by spying on Adam.

If you go to the Labs tab in the Settings in your Gmail, you can enable a Google tasks thing that shows up like a chat window. I have always wanted something like this, so this is very exciting. Instead of chatting, I can now do tasks! (Read more here).

Monday, March 09, 2009

Haskell vs. OCaml, or the ravings of a monomanic insomniac

Until fairly recently, I was a hardcore Haskell hacker who saw little reason to go elsewhere for needs of a higher-than-C level. Haskell is beautiful; Haskell is clever; Haskell has Parsec. A couple of weeks ago, I started using OCaml (after having used ML for a couple of semesters as an undergrad) and realized that you can get a lot farther in life if you are not limited to writing pretty code*.

Since then, I've gone back an forth between "OCaml is the future" and "But Haskell is so pretty." Here are my notes on OCaml vs. Haskell.

Pro-Haskell:
  • Haskell does datatype constructors right. As in, Haskell datatype constructors are functions whose types are the type of the constructor. For instance, if we have a data type data Thing = C1 Int Int | C2 Bool, we get constructors of types (C1 :: Int -> Int -> Thing) and (C2 :: Bool -> Thing). In OCaml, constructors take explicit tuples. The analogous constructor C1 would need to take something of the form ([int], [int]), not just something of type (int * int).
  • Haskell does type classes right. Not just type classes, but type class related utilities like deriving. Type classes are often nice for clever things but always nice for development. Being able to derive Show and Eq gets rid of a ton of boilerplate. Not believing in function overloading makes me not believe in ML! >:o
  • Haskell is way prettier. Small things make Haskell code way easier to read and maintain. (For instance, the support for defining things below functions with where instead of binding everything for let. I should not have to trade off cluttering my toplevel namespace with cluttering my function definitions!
  • Because Haskell is so clean and concise, it makes you produce prettier code in other languages.
  • Higher-rank polymorphism and the ability to write down my forall types is very convenient.
Pro-ML:
  • You can code without being constantly clever! In my senile senescence (which is also absolutely alliterative), I see this as a huge plus. ;)
  • Not having to work in monads all the time to deal with state in any kind of okay way is a huge productivity plus of SML/OCaml. Don't believe me? I have the following points: 1) 3D IO Arrays, 2) gensym**, and 3) monad transformers (yuck!).
  • OCaml has very nice library support (Batteries, arrays, etc.).
  • OCaml seems to have a larger user base, so there are more people doing stuff in it, more people to ask when things go wrong, etc. etc.
  • Though ML code is more verbose and generally less pretty than Haskell code, it disallows a lot of the clever use of syntax that obfuscates the meaning of Haskell code.
The conclusion is that while Haskell leaves a nicer taste in one's mouth, OCaml might be better for practical purposes, especially if you want to use 3D mutable arrays. It all depends on what you want to do.

* According to some fairly high standards of "pretty."
** Generate fresh variable names, for instance "__tempvar0." Note that being able to keep some state is nice so you can just increase your variable count each time.

I used to think correlation implies causation...

But then this xkcd comic caused me to believe otherwise. ;)

Thursday, February 26, 2009

Notes on the previous post

After receiving a concerned e-mail I reexamined the previous post and realized that I neglected to say that I am excited about grad school and currently not burned out. I do, however, think it is important to take precautions against burnout. The main point of the previous was that I have learned a lot about not trying to do too much too soon; I support this claim with my own experiences.

Wednesday, February 25, 2009

Burnout

Today in complexity theory lecture the professor briefly made reference to the number-on-forehead model* and I realized that this problem had been one of the main reasons I had decided I was not cut out for theory. When I was 14, I had participated in Andrew's Leap, a computer science summer program run by Professor Rudich at CMU. A simple, 2-person version of the NOF problem* had been presented on the entrance examination; I felt very bad that I did not even understand the solution right away even after it was explained to me. I was written off as not a child prodigy, and I wrote off math/theory as not for me. I proceeded to spend the rest of my teenage years developing my other skills (programming, writing, drawing, field hockey, etc.) rather than learning more math and computational theory.

I would like to now make two observations that I did not realize at the time: 1) one does not have to be a child prodigy to be a theorist and 2) not being a theorist does not mean one cannot have a deep understanding and appreciation of theory. Had I known these things, I would have probably worked harder to make myself smarter at theory all these years; I would be better at certain parts of life had I done this. This supports my hypothesis that being exposed to too much too early may have negative (but not irreversibly harmful) impact on overall life productivity.

I am going to make two somewhat correlated claims:
  1. It is not sustainable for most people to sustain a high level of productivity for a long period of time.
  2. Trying to do too much too soon in life can have negative consequences on overall life productivity.
The corollaries to these claims are:
  1. Don't worry if you were/are not precocious. In fact, you might just be a late bloomer.
  2. Don't be too hard on yourself for not being as intense as people around you.
  3. Don't worry if you are burned out and other people are not, especially if you have been working intensely. It doesn't mean your life is over; if you stop being hard on yourself it will probably go away.
This is all related to a conversation I had a few days ago about burnout (both running burnout and academic burnout): what it is, why it happens, and what it does to people. This conversation involed a few side observations: 1) most students form undergraduate programs do not go on to become grad students/professors and many grad students/professors at top institutions did not graduate from equivalent undergraduate institutionss, and 2) many Harvard students from top New England boarding schools tend not to become academic superstars and instead do a lot of activities because they are tired of constant academic challenge by the time they get to college. This suggests that high levels of pressure and intensity may not pay off in the long run.

My life experiences support these hypotheses. Because I did a lot in high school, I was tired both in general terms and academically by the time I went to college. In high school, I spent my summers doing programs at Carnegie Mellon University that involved a fair amount of college-level material which required me to stretch my mind and feel like I didn't know very much. I was also always doing activities: after school I had sports, then piano, then Chinese; finally around 8 or 9 PM each day I would begin a few hours of homework. Even if I finished my homework early enough to get a good night's sleep, since I was a teenage whose existence needed to be verified in some significant way every day I would waste valuable sleep time covertly chatting on AIM, reading a novel, or writing bad poetry before I finally defeated my insomnia and shut down for the day. In high school I was always very excited about the day: I hated sleep, usually slept little, and found it nearly impossible to remain asleep for more than 7 hours a night. This was not the most sustainable of lifestyles.

After a summer of four hours of sleep a night at Governor's school, then a senior year busy with college applications, AP courses, college visits, and end-of-childhood melodrama, then a summer of 3 jobs and more adolescent gerascophobic melodrama, I showed up to college completely worn out and overstimulated. While everyone else was excited to pull weeks of all-nighters alternating between discussing Nietzsche, drinking beer, and discussing Nietzsche while drinking beer, I was trying to figuring out how to maintain a sane sleep schedule. Freshman year of college I slept from 11-7 almost every day**, taking a moderately ambitious course load and keeping my number of extracurricular activities to at most one. I picked up the intensity as the year went on, and by the middle of sophomore year I entered into a slump: I didn't know what I wanted to do in life; all I wanted was to have time to read, sleep, and run. I eventually figured things out and got wound up again enough to take on a heavy load of coursework, teaching, and Robocup, planning to continue doing as much as I can until I got a neck injury from my randomized algorithms take-home final*. The injury slowed me down a fair bit, since I couldn't sit at the computer or look down at my desk for more than an hour or so because I would get muscle spasms. Thus in college I had gone from burned out to full intensity to burned out again.

Though I am excited about grad school and my late blooming, I am taking it easier than usual and enjoying life as I go. Because of my neck injury and because of my experience with too many weeks of little sleep for reasons that seemed good at the time, I was not one of the kids who showed up to grad school excited about 36-hour coding marathons and the weeks between paper deadlines when mortality is forgotten and invincibility is assumed in the name of increasing the paper count. For a while I wondered if I should feel guilty that, instead of hanging around lab, I spent my weekends laying around, reading random non-fiction and novels, blogging, and thinking about the world. If you've been reading my blog, you might have noticed that I have collected enough reasons (your brain needs down time; stress is harmful to your creativity) to justify not feeling guilty. I hope taking it slowly in the beginning will decreases my chances of burning out. And if not, I can at least look back at this time and say that I read the books that I wanted to read and did the things I wanted to do. One of the best things that has come out of my neck injury is that practioners of the various alternative healing methods I have sought out (such as yoga) have taught me to be less hard on myself. And until I achieve something I can always take comfort in the knowledge that I am a late bloomer. :)

I am going to end this post here because I suddenly find myself despondent and unable to continue, but I hope you got the point****. ;)

* Chandra, Furst, and Lipton? Sorry; couldn't find a good source.
** Except once a week I would pull an almost-all-nighter for my math homework because all of my homework was due on the same day of the week--maybe this is why I think I am bad at math. :/
*** Apparently my monitor was too much to the right and this was irritating my neck joints. The days of staring at my computer was the last straw. This injury scared me about working too hard for a while because I am still healing over a year later.
**** Kidding; I have to go to bed.

An interesting exercise in procrastination

The BBC believes most people will have only read 6 of the 100 books here.

Instructions:
Look at the list and mark those you have read.

* = read it
** = read it, remember it.
$$ = own it, haven't read yet.

1 Pride and Prejudice - Jane Austen **
2 The Lord of the Rings - JRR Tolkien
3 Jane Eyre - Charlotte Bronte **
4 Harry Potter series - JK Rowling
5 To Kill a Mockingbird - Harper Lee **
6 The Bible ** (the old testament)
7 Wuthering Heights - Emily Bronte **
8 Nineteen Eighty Four - George Orwell **
9 His Dark Materials - Philip Pullman
10 Great Expectations - Charles Dickens $$
11 Little Women - Louisa M Alcott **
12 Tess of the D’Urbervilles - Thomas Hardy **
13 Catch 22 - Joseph Heller **
14 Complete Works of Shakespeare $$
15 Rebecca - Daphne Du Maurier **
16 The Hobbit - JRR Tolkien
17 Birdsong - Sebastian Faulk
18 Catcher in the Rye - JD Salinger **
19 The Time Traveller’s Wife - Audrey Niffenegger
20 Middlemarch - George Eliot
21 Gone With The Wind - Margaret Mitchell **
22 The Great Gatsby - F Scott Fitzgerald **
23 Bleak House - Charles Dickens
24 War and Peace - Leo Tolstoy
25 The Hitch Hiker’s Guide to the Galaxy - Douglas Adams **
26 Brideshead Revisited - Evelyn Waugh
27 Crime and Punishment - Fyodor Dostoyevsky **
28 Grapes of Wrath - John Steinbeck
29 Alice in Wonderland - Lewis Carroll $$
30 The Wind in the Willows - Kenneth Grahame
31 Anna Karenina - Leo Tolstoy **
32 David Copperfield - Charles Dickens
33 Chronicles of Narnia - CS Lewis *
34 Emma - Jane Austen
35 Persuasion - Jane Austen
36 The Lion, The Witch and The Wardrobe - CS Lewis *
37 The Kite Runner - Khaled Hosseini
38 Captain Corelli’s Mandolin - Louis De Bernieres
39 Memoirs of a Geisha - Arthur Golden
40 Winnie the Pooh - AA Milne *
41 Animal Farm - George Orwell
42 The Da Vinci Code - Dan Brown
43 One Hundred Years of Solitude - Gabriel Garcia Marquez
44 A Prayer for Owen Meaney - John Irving **
45 The Woman in White - Wilkie Collins
46 Anne of Green Gables - LM Montgomery **
48 The Handmaid’s Tale - Margaret Atwood
49 Lord of the Flies - William Golding
50 Atonement - Ian McEwan
51 Life of Pi - Yann Martel
52 Dune - Frank Herbert
53 Cold Comfort Farm - Stella Gibbons
54 Sense and Sensibility - Jane Austen
55 A Suitable Boy - Vikram Seth
56 The Shadow of the Wind - Carlos Ruiz Zafon
57 A Tale Of Two Cities - Charles Dickens
58 Brave New World - Aldous Huxley **
59 The Curious Incident of the Dog in the Night-time - Mark Haddon
60 Love In The Time Of Cholera - Gabriel Garcia Marquez
61 Of Mice and Men - John Steinbeck
62 Lolita - Vladimir Nabokov **
63 The Secret History - Donna Tartt
64 The Lovely Bones - Alice Sebold
65 Count of Monte Cristo - Alexandre Dumas
66 On The Road - Jack Kerouac $$
67 Jude the Obscure - Thomas Hardy
68 Bridget Jones’s Diary - Helen Fielding
69 Midnight’s Children - Salman Rushdie
70 Moby Dick - Herman Melville
71 Oliver Twist - Charles Dickens
72 Dracula - Bram Stoker
73 The Secret Garden - Frances Hodgson Burnett **
74 Notes From A Small Island - Bill Bryson
75 Ulysses - James Joyce
76 The Inferno - Dante $$
77 Swallows and Amazons - Arthur Ransome
78 Germinal - Emile Zola
79 Vanity Fair - William Makepeace Thackeray
80 Possession - AS Byatt
81 A Christmas Carol - Charles Dickens
82 Cloud Atlas - David Mitchell
83 The Color Purple - Alice Walker
84 The Remains of the Day - Kazuo Ishiguro
85 Madame Bovary - Gustave Flaubert **
86 A Fine Balance - Rohinton Mistry
87 Charlotte’s Web - EB White **
88 The Five People You Meet In Heaven - Mitch Albom
89 Adventures of Sherlock Holmes - Sir Arthur Conan Doyle $$
90 The Faraway Tree Collection - Enid Blyton
91 Heart of Darkness - Joseph Conrad **
92 The Little Prince - Antoine De Saint-Exupery **
93 The Wasp Factory - Iain Banks
94 Watership Down - Richard Adams
95 A Confederacy of Dunces - John Kennedy Toole
96 A Town Like Alice - Nevil Shute
97 The Three Musketeers - Alexandre Dumas *
98 Hamlet - William Shakespeare **
99 Charlie and the Chocolate Factory - Roald Dahl **
100 Les Miserables - Victor Hugo

Tuesday, February 24, 2009

I am the funny grammar friend

My college roommate Aliza* sends me articles about funny grammatical things because I have fairly idiosyncratic principles and tendencies. Top 2 (okay, of 2):
  1. An article on how AT&T apparently forces its employees to absurdly dangle gratuitous prepositions: “With whom do I have the pleasure of speaking with?” I have been known to have visceral reactions to gratuitous preposition dangling.
  2. An article on how President Obama should get his pronouns right, particularly in the case of "I" vs. "me" (e.g. "Michelle and me"). The article talks about the history of the grammatical correctness/incorrectness of this construct, why people might commit this grammatical error, and other grammatical errors Obama makes. There is a blog post by an almost-3-years-ago Jean about how even when labelling Facebook pictures, people should use "I" and "me" correctly.
* Also the fairy catmother of my cat, Smokebriel Bear.