December 13, 2010

How to tell someone their code sucks

Some days I just wish I were David Korn:


No, it's completely wrong-headed, insane and unreasonable. Your code is 100% bogus and should be taken out the back, lined up against a wall, and machine-gunned.

Then the bleeding corpse should be hung, drawn and quartered.

Then burnt.


Then the smouldering rubble should be jumped up and down on.




By a hippo.

December 10, 2010

Something nice about every language I've used

Inspired by this post (and more great answers on the reddit comment thread), here's one nice thing about each of the languages I can remember using in any meaningful capacity:

Java: I learned to program in this. It led to the creation of the JVM, and while Java isn't my favorite language, the JVM is a pretty sexy piece of technology that enabled a number of other languages (Scala and Clojure most notable) to flourish.

C: The closest thing imperative programming has to "sparse beauty," a la Scheme. Shows you really don't need many bells and whistles to do a job, and do it well.

C++: Back when everyone was using C, it's kind of a technical miracle that Bjarne could create a proper superset on top of C with the features it has. Further, it's still blazing fast; without it we wouldn't have all the video games we love today ^_^.

PHP: Incredibly easy to learn, and no-hassle to set up on a server. One of the matches that lit the web on fire.

Racket (and Scheme applies here too): The language that never lets up. The most delicious learning curve I've ever tasted. Like Wagner's music is jokingly said to be "better than it sounds," Racket is more fun and fulfilling than it deserves to be.

Erlang: Industry-proven functional programming with more concurrency love than 1000 suns. Also the top language for gaining hipster-programmer cred. When you drop this name, suddenly everyone looks at you like "that guy" (you can decide if this is what you want or not).

Haskell: A wolf in sheeps's clothing, the most modern, practical, and supported language with features I think we'll see as necessary in the future. Another candidate for learning curve that keeps on giving.*

SML: A really sick module system for programming in the large. While not my favorite for "programming in the small," an understanding of SML's module system makes you pity that it never really took off.

Ruby: One of the most beautifully designed, fully-realized languages I know. Shows you can make a language that is simple, with practical value for Herp Derp programmers without sacrificing power and flexibility for the craftsmen as well.

Objective-C: The real "C with objects." Message passing with named parameters (and the much more sensible #import rather than #include), this is one time where I'm highly in favor of Mr. Jobs' stubbornness.

Prolog: 10-second youtube video. I mean this in a good way.

Max/MSP: Probably the most fully-realized and pleasing graphical programming environment I know, as well as an example of a damn fine DSL.

Javascript: I don't have to worry about compiler errors! No seriously, prototypical objects for the masses.

Flapjax: Functional reactive programming! An excellent example of functional languages and concepts attacking problems from the language level. Very innovative workaround for the horrors of client-side programming of the time.

Actionscript: Adobe makes it! Like Java, but better (Flash Platform > Swing/most Java GUI's).

*= Small qualification on the learning curve lines: virtually any language takes years of work over dozens of programs to "master." But many times mastering a language means compensating for its weaknesses, not discovering new strengths. That's what Haskell and Racket have given me more than most other languages.

December 7, 2010

STOP IT WITH YOUR STATE

Alright forks, time for some smugness. I know, on this blog?!? But bear with me.

I'm just completely frakking pissed at a number of bugs I've been chasing down, at work and at home, and after looking for the more general problem, it's all about state. ALL OF IT.

Okay, not all of it. Most of it has to do with poor abstractions at the programming language level. But the primary one is state, and mostly, I think it's about time just done gone outgrown that shit.

Java was such a rousing success in part because it was so completely idiot-proof. When you remove memory management and pointers from C++, and sandpaper a few of its edges (no header files or need to declare methods, for example), virtually everyone can program in it and not make too big a mess. While I think Java is a completely neutered language (not to mention a liability issue), I think it really didn't go far enough. No, forks, let's learn from our friends in the 1970's and 80's and just flat out remove mutable state already, since most programs don't need it and most programmers can't handle the responsibility of it. The same goes for pointers, but you already knew that.

Despite it being un-rantey, let's qualify this for a second: I'm not saying all programs should be written statelessly, or that nobody should be using pointers. And Lord knows all programmers would ideally know more than just the basics on these topics. We'll always have a need for embedded systems, operating systems, very fast media processing, and scripts we'll use only once and not want to think too hard about.

The problem comes with all the rest of the programs, that don't need instruction-level efficiency; many are still written with mutable state as the default rather than a last resort. This is like solving your problems with beatings before you try reason. Most programmers use it willy nilly, thinking they're holding firecrackers when they're really holding grenades.

Here's ultimately the reason: in today's day and age, knowing what we know and writing the programs we want to write on the hardware we have, state is an abstraction that is too easily broken for the power it gives you, and it's about time we outgrew it. Let's look at the popular programming paradigms from the abstractions they rested on, and you notice a trend:



Structured programming: this was at first met with resistance: why would you eliminate gotos? The answer was the best noun-made-command I know: goto hell. As programs got larger and larger, there came a point where there was just too much complexity associated with being able to arbitrarily jump to any lexical location in your code. Since this was often in languages with file inclusion, this meant you could jump anywhere in any file you were including from anywhere else!

What was the solution? Was it moar gotos? IDE's to help with goto-related programming? No forks, they just cut that shit out and started structured programming. This led to a great bloom in software, where we got all our delicious *nix dinosaurs we know and love even today.

But what about GIANT programs, like Word? What made that possible? Because again, at a certain scale, this paradigm got unmanageable. Namely, keeping track of all the data associated with a function got to be way too complex. Structs of structs of structs would lead to 3-star programmers that made code a vile mess to work with and debug. It was only when we decided to encapsulate data with its related function in objects that we got to Object-Oriented programming.

And that led to its own bloom of awesomeness. But really forks, have we solved software? Is it too unreasonable to think that maybe objects* rely too much on state to be as scalable as the programs we want to write these days?

(Never mind the other, non-state objections to OOP, such as modeling programs that do things entirely with nouns, or the avoidable lame hoop-jumping called Design Patterns that objects make us use).

It sounds extreme, but you don't know the shackles you're programming with until you break free of them. Once the outputs of a function depend entirely on its inputs, it actually becomes reusable. You only have to test the outputs for every set of inputs, not the outputs for every set of inputs at every possible state the whole rest of your program can be in!

Further, once you eliminate the null value or null pointer, a function call must return "Whatever I promised," not "Whatever I promised or NULL lol go debug that."

And the sooner we do this, the sooner we don't have to sit at our debuggers stepping through reentrant code looking at register values for the exact moment the memory's head a splode.

Most of all, I'd have to find another way to be inflammatory, rantey, and use too much formatting markup.

*= Note that my beef isn't entirely with objects, per se. there are object-oriented languages that don't rely on state. Scala is the most popular that encourages functional programming, and Reia has immutable objects.

(for those curious, I'm mostly up to proverbial here with my last bug on a major ScrabbleCheat feature. I veered away from Erlang to write the UI in Ruby with an ncurses wrapper, and now that I've dabbled in a stateful solution I'm fighting memory corruption in a language without explicit memory management. Bleh.

Meanwhile, I'm hating on C++ because a) I use it at work, b) in the playtimes I've used it, I've only ever regretted it, and c) it's C++, what kind of language snob would I be if I treated it fairly?)

November 21, 2010

Another lazy video post

The weekends are when I get lazy. I got promoted to Diamond League in Starcraft. I'm still plugging away on ScrabbleCheat (see the branch 'feature-curses-ui'). Did me some laundry.

While folding/placing laundry and cleaning up my room, it's good to have some videos or music playing. If you have an hour to burn, there's a great 1 hour interview in 4 15-minute segments with Christopher Hitchens:



If you only have 7 minutes, in honor of our departing Governer:

November 18, 2010

Every morning of my undergrad

I had a Serious post all lined up, made of words and things, but found an old video I forgot the name of, and decided to post it instead.



It's been a long, exciting week at work, kids. I'll post with words and write some long delayed emails when I have a wee bit more energy ^_^

November 13, 2010

I have a music degree, too

Little known fact, but true. While I took traditional music theory and piano, I kind of endured that; the degree had a focus on Electronic Music and digital media production. It was affiliated with the Multimedia and Electronic Music Experiments (MEME) program at Brown.

And sometimes I miss creating things with the skills I gathered in it. This kind of things is pretty awesome:



And while I linked it a long time ago already, it's always nice to have a refresher:



Another:



And some vintage Norman McLaren for you:

The Road to Lisp Survey

I, Paul Meier, do solemnly offer these responses to the Road to Lisp Survey:

When did you first try Lisp (meaning here and throughout the survey "any member of the Lisp family") seriously, and which Lisp family member was it?

I took Lisp seriously after my first exposure to it, in Shriram Krishnamurthi's programming languages course, based on his excellent book, PLAI (download it! it's free!). We mostly used Scheme for the course (the implementation now called Racket), and while I could call the programming from that class my first exposure, I really only explored it during self-study after the course.

In the Preface to his book, Shriram mentioned The Little Schemer as a good introduction to thinking in Scheme. In the Acknowledgments, he said "Please read those magnificent books even if you never read this one" of two books, one of them being Structure and Interpretation of Computer Programs. I picked them both up that Winter, and I was hooked.

What led you to try Lisp?

The answer is really in the next question, but I'll also mention that this was not just my first exposure to Lisp, but functional programming as a whole. While I enjoyed programming to a point, what really interested me in Computer Science was the strong theoretical results we'd achieved: the fact that we could prove undecidability kept me awake for weeks.

So part of my migration to Lisp wasn't just to homoiconic syntax and dynamic type systems: it was also the wonders of functional programming I would find prominently in Scheme.

If you were trying Lisp out of unhappiness with another language, what was that other language and what did you not like about it, or what were you hoping to find different in Lisp?

I took the languages course at the same time I took our excellent graphics course, where we used C++. I found I spent much, much longer debugging the C++ programs, for a much less interesting class of bugs. You'd pull your hair out, looking at memory addresses and pointer values only to find you did your pointer arithmetic wrong (we were investigating a two-dimensional matrix stored as a linear array), or that a state change occurring in an edge case was leaving your program in an inconsistent state. It was frustrating, to say the least.

In Scheme, I was only fixing logical bugs. I spent more time thinking than typing. My programs were shorter and elegant. It's as if, by framing the problem differently, hundreds of edge cases and corner cases simply ceased to exist.

And there's something to that. Removing state means putting a lot more effort up front, but ultimately makes your programs worlds easier to write and maintain after you've invested. Not to mention spending your brain cycles modeling is worlds more fun spending them debugging.

Of course, I didn't know that back then; I moved because I just had the feeling they were doing something right, and I could learn something valuable.

How far have you gotten in your study of Lisp? (I know, that is hard to measure)

This is very hard to say. In many ways, I'm still a novice, since most of my Lisping doesn't take full advantage of macros, Lisp's crown jewel. I'm still much more comfortable in Scheme than CL, Clojure, or Arc; I'd call myself a competent Lisp programmer having written a few small programs and baby scripts, with a toe in advanced and a longing to go expert.

What do you think of Lisp so far?

I think it's still a very advanced, progressive way to approach programming, at least with smaller engineering teams. I'm completely unsurprised it's not used in industry as much; it's a large investment, and languages rely heavily on community. Incidentally, I feel the only real rival to Lisp in caliber would be Haskell, who's unofficial motto is "avoid success at all costs." ^_^

--------------

Also, any of you see atomo? It looks pretty hip, if ambitious...

November 7, 2010

THE LAND OF LISP

It's been a while since I've been able to run through a code book, with life throwing me so many welcome curveballs since the summer. But I'm finally taking the time to work through a book like old times; this go-round is with Conrad Barski's Land of Lisp. I probably wouldn't have gone for it, but the music video he made was just too cute:



The book is peppered with cute cartoons and a whimsy feel that is endearing, not overbearing. I highly recommend it, if only for the comics (though working through the examples is fun, the games you make really highlight Lisp's strengths).

Some may recall that I've dabbled in CL before; sadly that affair was over before it started (curveballs!), but my next project after ScrabbleCheat will likely be in either Haskell or Common Lisp ^_^

And how goes ScrabbleCheat? Quite well, actually! The technologically adventurous can download and play with it now. What I'm working on now is a simple UI in ncurses, which will probably take another week or two. But as soon as that's up, the program should not only be functional (which it mostly is now), but usable!

October 27, 2010

CS Pranks: Push it!

While working as a Sunlab consultant at Brown, my buddy and I would frequently find ways to 'spice up' the workspace. If we ever found the other person's workstation empty without being properly xlocked, we'd usually pull pranks on each other: 'alias ls='eject; ls' being a popular harmless one, or writing zwrite <username> -m "PAUL LOGGED OUT" on my .logout file, executed anytime I logged out.

The sad thing about these pranks was that occasionally someone else would do a more malicious one, and we'd get blamed :( But there's still so much fun to be had from finding ways to shake things up.

This tweet by Coding Horror's Jeff Atwood gave me the idea for the next one:

by law, every fifth push to DVCS must be followed by this video link http://www.youtube.com/watch?v=vCadcBR95oU

Naturally, the youtube link plays this:

Gotta love the 80's.

Were I still there, I would love to institute this. But for now, I'm setting it up on my machine, to keep things from getting too boring. To do this yourself you'll need the following:

  • mpg123, a simple command-line mp3 player. Easily installable.

  • An mp3 of Salt-n-Pepa's Push It


Given all this, the rest is easy as pie. There are surely more elegant solutions than what I did:

  • Store the number of pushes in an external file echo "1" > how_many_pushes.txt

  • Write a script to keep track of and increment that number as time goes on. Here's my Ruby script:




  • Execute git config --global alias.psh !push_wrapper.rb.



Now just use git psh instead of git push, and have a surprise every now and then ^_^

October 24, 2010

Fear and Loathing

Glenn Greenwald has another winner, this time over the firing of Juan Williams after his "I's afraid of Muslins!" kerfuffle. His article is great by describing the general trend of fear and loathing in America:


To start with, as a general proposition, it's vital that the American citizenry always be frightened of some external (and relatedly internal) threat. Nothing is easier, or more common, or more valuable, than inducing people to believe that one discrete minority group is filled with unique Evil, poses some serious menace to their Safety, and must be stopped at all costs. The more foreign-seeming that group is, the easier it is to sustain the propaganda campaign of fear. [...]

"The Muslims" are currently the premier, featured threat which serves that purpose, following in the footsteps of the American-Japanese, the Communists, the Welfare-Stealing Racial Minorities, the Gays, and the Illegal Immigrants. Many of those same groups still serve this purpose, but their scariness loses its luster after decades of exploitation and periodically must be replaced by new ones.


The terrorists have won, guys. They flew a few planes, destroyed some buildings, killed a couple thousand people. It was our idiotic scared reactions which drove us to record deficits, torture, fewer civil liberties, a surveillance state, and participation in the two longest foreign wars in US history, which killed more of our people than the planes did (not to mention Iraqis/Afghans). And we're still scared.

It's simple advice, sadly still relevant: Refuse to be terrorized. Stop playing into their hands and for Baal's sake, grow up.

----

On the theme of cultural Paul-is-grouchy, Dan Savage has an exchange, followed by another, from Good Christians who wish he'd just stop being so mean! He (rightly) tells them to shut up and wake up:


I'm sorry your feelings were hurt by my comments.

No, wait. I'm not. Gay kids are dying. So let's try to keep things in perspective: fuck your feelings.

A question: do you support atheist marriage? Interfaith marriage? Divorce and remarriage? All legal, of course, and there's no Christian movement to deny marriage rights to atheists or people marrying outside their respective faiths or to people divorcing and remarrying. Why the hell not? [...]

The children of people who see gay people as sinful or damaged or disordered and unworthy of full civil equality—even if those people strive to express their bigotry in the politest possible way (at least when they happen to be addressing a gay person)—learn to see gay people as sinful, damaged, disordered, and unworthy. And while there may not be any gay adults or couples where you live, or at your church, or at your workplace, I promise you that there are gay and lesbian children in your schools. You may only attack gays and lesbians at the ballot box, nice and impersonally, but your children have the option of attacking actual real gays and lesbians, in person, in real time.

Real gay and lesbian children. Not political abstractions, not "sinners." Real gay and lesbian children.


It's required reading. As someone who also doesn't keep silent on the horrors of irrational thinking (usually religious or religiously motivated), I too tire of the "stop being so mean, Paul!" line. Really guys, all I do is report the news. If you aren't completely outraged, you aren't paying attention. And any offended religious folk should probably be pointing their ire elsewhere, since I'm normally reacting to egregious events. The "don't be offended at me" angle was the genius of this song:





While not religious, also relevant:



I know we all want to be friends and not have anybody's feelings hurt, but kids, some shit is just stupid. And I'll call it that.

Back from Istanbul!

I'm a week back from my marvelous trip, photos over at Madly Brilliant's blog and a Facebook album.

I can only say it was a magnificent, magnificent week. I might even say transplendent! Istanbul is one of the most beautiful cities I've ever been to, and Turkish people were (as many people are) kind, warm, and happy people.

Sometimes I imagine/fantasize doing what my mother did, which is to go to another country where you don't speak the language and really make a life for yourself there. If I had to do it anywhere, Istanbul would be a great candidate. While you have the beautiful old city, you also have a thriving, modern hub rich with activity and the city life that I love so much.



So why aren't I thinking of ways to make my life there now? There are a few sore points with my Turkish experience:

  • It's illegal to criticize Ataturk in Turkey. Not that I know enough about him to criticize him at all (hell, it's because of him Turkey is the success story that it is, in terms of secularism) but I still find this law egregious. We all know I'm pretty anal about freedom of speech though.

  • Youtube is banned throughout the country after trolls made fun of Ataturk. Really? Yeah, that'll show'em! The funny thing is there are crappy proxy sites people use, and the prime minister himself said something along the lines of "the supreme court made a dick decision, so use the sites. I know it's illegal, but you should use them anyways."

  • Turkey is the most dangerous place to surf the internet. It hardly affects me because I'm usually on Linux/Mac, and am a security buff. But still, hardly a mark you want. Madly Brilliant found 2 viruses on her USB drive after lending it to a Turkish Roommate. That's what happens when you stick your stick in the wrong slot!

  • Finally, its turn back to religion. While Istanbul and Izmir remain pretty secular, populated almost exclusively by MINOs (Muslims in Name Only), this is true of almost any country: the big cities are pretty secular. What also matters is the leadership, and the general populace, both of which are crossing into more religious territory. I avoid that when I can.





Despite these little thorns (and most countries, ours included, have more and more severe ones), I'm pretty much in love with that country ^_^

The whole experience also made me think of my new adulthood. I'm working, and loving it, but occasionally thinking to myself "So when's Winter Break?" Oh yeah, there isn't one. You get three weeks a year.

If my three weeks get to be like that one was, it's a bargain for twice the price ^_^

October 8, 2010

Off to Istanbul!

I'm off next week to visit Madly Brilliant in her current home of Istanbul, Turkey. She's abroad for the first time, spending 5-ish months as a lab tech, so my visit bisects hers. Mad props to Adobe for letting me do this ^_^

(by the way, we just released the AIR Runtime for Android! Download it onto your phone now, and enjoy mobile AIR apps ^_^)

Of course, I'm visiting during a terror warning. Surprisingly, I'll describe my reaction with a meme:



Bruce Schneier (from 2004!) and Slate highlight why this is so.

Also, the last show I sound designed at pw used Fly Me To The Moon as a recurring musical motif. So when I heard this, at first I was like "Hmm..." but then started grooving contentedly:



I have a very colorful, mixed relationship to the theatre that produced the show (I was on the board). Still, they have a wonderful little wiki where I made and defaced a profile page.

Away I go!

October 4, 2010

moar remixes

I'm a tired, grumpy Geodude, but I have to post these remixes, because they're quite lovely. 16 pop tunes:



Glenn Beck/Donald Duck. It only really picks up after 3:00 or so.



Not a remix, but this short was used as an illustration of how one can be an atheist and still at peace with the world. I don't know if I agree with that assessment, but it is a wonderful piece:

September 30, 2010

Some Professor Layton Prolog!

Time to combine two of my favorite things: Professor Layton and obscure languages! There was one puzzle (of the hardest difficulty) that I could have spent 40 minutes working out, but instead spent an hour and half solving in Prolog (for those unfamiliar with Prolog, check out this post for a description of what this magic language is!).

I'll post the puzzle and solution here; hopefully someone finds it fun!


No 151 from Professor Layton and the Diabolical Box: Colin's Score


Four students took a test where every question had two possible answers, A or B. Each question was worth 10 points, for a total of 100 points.

The students' test results were posted as seen below, but the teacher forgot to tally Colin's score. Colin was heading to the teacher's office when Mary called him back, saying they could figure out his score using the results from the other tests. Can you figure out Colin's score?

Mary: 70 points


12345678910
BBABABBABB


Dan: 50 points


12345678910
BAAABABAAA


Lisa: 30 points


12345678910
BAAABBBABA


Colin: ?? points


12345678910
BBAAABBAAA

-----

Below is the program I wrote to solve it. Verbose by contemporary language standards, but almost no thinking required, and the answer in an instant! Note the original version didn't have so many comments; these are to guide the curious reader. Sadly, github's gists don't know how to color Prolog syntax. Also, due to this terribly lame layout, I would suggest the 'view raw' feature at the bottom of the gist to see it in plaintext glory.



Edit: I also gist-ed my Prolog poker solver, which I wrote about in my first Prolog post. It was my very first prolog, and there are probably shorter ways of doing what I did, but hey! Give it a looksee and hope you enjoy it ^_^

September 26, 2010

Repost: Professor Layton and the Hell Yes

My last blog before this got digitally bulldozed: I was hosting on a pay-per-webserver and when I got a new credit card forgetting to update the account, they sent one spam-collected warning before they deleted my site. Luckily I was able to salvage most of the posts via Google Cache, with the hope that I could write a script to de-WordPress-HTMLize them, and upload again so they could see another day. I haven't done it yet, but might still. The main reason I haven't is because a) those posts had lots of images I hosted on the server as well, which makes them uglier, and b) those posts are like these, but much more boring.

But I might re-post one or two every here and there. Here's a re-post from September 4, 2009, when I was playing Professor Layton and the Diabolical Box. I just got the sequel, Professor Layton and the Unwound Future (official site, trailer), and most of my sentiments are still the same:

-----


Anybody following my tweets for the past 4-5 days knows I've only really tweeted about one thing: Professor Layton and the Diabolical Box.

This is a breath of fresh air. Not even: I've written before about growing up during the Hollywoodization of the games industry, and in that context games like this are a fresh salad in a strip mall full of Krispy Kreme's. This game is a bargain for twice the price.

It would take a much-better planned post to cogently and coherently explain this game's genius, but to take a line from the movie Spy Game, I'll try to achieve "twice the sex with half the foreplay":

  • The game's puzzle mechanic is innovative and damn fun. While scores upon scores of mini-games and puzzles in the larger game isn't new (Nintendo owned and made a fortune off this mechanic previously with Brain Age, Mario Party, etc.) Layton's puzzles operate in a radically different context. Most games have puzzles that are competitive and/or timed, with their primary mechanic some physical or reactionary task and how rapidly you can achieve it (mash buttons! Simon says!).

    The context of these puzzles change everything. The puzzles are non-competitive. You have unlimited time. They are cognitively fun, stimulating puzzles.

    I feel that Parappa the Rapper sort of emerged in this way, in that timed button presses weren’t themselves new (TASVideos demonstrates that completing most games could be thought of as a sequence of timed button presses, but Excitebike is a better example of a game with it as a central mechanic), but the context and presentation made it feel new.

  • This game is beautiful. Also like Parappa, the game launders its play style though gorgeous original artwork and design. Who can't love Professor Layton, with his quaint accent, speech, and manners? Who can't love Don Paolo, the eeeeevil scientist who is such a cartoon villain? Who can't love the soundtrack, the villagers?

  • It's always great to have a touch interface that doesn't suck. Have you ever tried designing a touch-screen interface? Or used one? Most of its proponents swear touch interfaces are more "natural," but most touch software sucks. This game feels great, however, so much so that my brother's girlfriend could feel inclined to pick it up and log 15 hours of game time in 4-5 days.



If you have a DS, get these games. If you don’t, ask to borrow mine ^_^

September 23, 2010

Vimcakes, Backin' Up Song

I found an awesome little post on Vim, which itself links to other excellent Vim posts. BFS these links, kids, and learn you a console editor if you haven't already!

Also, I meant to squeeze this video in here somewhere, by the guys who did the Bed Intruder song:



Source material here. But do you see this? We have a hilarious remix coming from an attempted rape, this one from an attempted robbery ending in gunshots, and the last post was about the internet taking down an 11 year-old.

Remixes man, how do they work?

September 21, 2010

Because I backtraced it!

Here's another story of Internet lore, documented pretty well here at Know Your Meme. I've posted before about remixes 1, 2), and the internet making a story huge, and this one kind of combines the two.

First we have an incredibly foul-mouthed, unusually sexually knowledgeable 11 year-old girl:



Before we continue, lets learn a few things here:

  • This girl did wholly dumb, irresponsible things (there's a lot more than this video). She's 11 so you can only blame her so much, but parents: please be involved in your children's lives.

  • While I don't think what follows is at all appropriate, she isn't faultless. Frequently in conflicts both sides are guilty; just that one side might be guilty on the scale of three counts of murder and the other "only" involuntary manslaughter.


So the greater trolls at 4Chan see this, and pounce. They google bombed her, file fake police reports, call her mom pretending to be the police, spam her inbox, &etc. &etc. &etc. She's left to a smoldering pile of ashes, when her dad makes her sadness unintentionally hilarious:

Another thing, parents: don't make threats you can't back up. Saying "I'm her father!" doesn't incite fear in kids the way it used to, and don't invoke "calling the Cyber Police!" unless you've actually spoken to them.

Look at the girl in the first video, and ask if that kid would have been threatened by the father in the second video.

I only mention this story because it led to one of my favorite remixes:



It's not as entertaining, of course, when you know the whole story. Gawker has another write-up.

A few other reactions to this story:

  • Another reason why computer science is great to study! It's a hell of an investment, since technical knowledge follows you everywhere (don't forget that it's just amazing as hell, too).

  • I look forward to when everyone's lives are more public. In the midst of the Christine O'Donnell brou-haha is that she admitted to once dabbling in Witchcraft. Ignoring the fact that if Obama or Pelosi had 'dabbled in voodoo' or warlockery, her supporters would be having a conniption, to me the greater point is that people can start to forgive poor choices or experiments people have participated in because we all do.

    I really hate that employers look on Facebook for incriminating photos to "gotcha" with, even if the photos aren't incriminating. Don't confuse me: if your employer finds you snorting a line of coke on your Facebook, I think they're totally right to deny you the interview, since that's completely stupid. I'm talking about the case where they find a picture of you holding a Corona, then go "oh shit he's out of the race because he should know that I'll look on here, and he has a picture with a beer!"

    Lame employers, I'll save you the trouble: beer,beer, beer, party, party. Now a better question, did you go to a party? Is it surprising that in 5 years of undergrad, I did? Denying me an interview from 5 photos over 5 years of the ~600 photos of me on Facebook tells me I'm better off without you, because you don't want to talk to or hire people, but some imaginary, outdated standard of a person.

    Tying it all together: as more 11 year-olds rant stupidly into a camera, or misspell on their status updates, or have dumb photos up, we'll be better prepared to be reasonable as well.



Need cheering up? Robot Unicorn Attack! Or my favorite this week, the Haskell alphabet!

September 16, 2010

Living Openly

I just wrote a long blog post talking about why it sucks playing Zerg in Starcraft 2. But friends, there has been too much whining on this blog of late! It's time to bring back two things we've missed for some time: computers and whimsy!

Haters Gonna Hate

So a few things: I'm living the dream, and finally installed Linux on a personal box. It's a small step (this is my laptop, not my main) but Perfect is the Enemy of the Good, and after using Mac, Windows, and Linux at work, it's incredibly obvious which direction I'd like to move in for the future.

Currently I'm running Ubuntu. I wanted to run Debian like we did at Brown CS, but I'm too much of a weenie at the moment. Besides, Ubuntu's easy as a dream to set up, and I've done it for work twice already. Naturally, I'll be using XMonad as my window manager ^_^

I've written twice that I've "picked up" ScrabbleCheat again, but they were lies. This time I've actually picked it up again (see the commit history!) and it's finally going in the right direction. I had a substantial amount in the first tagged release, but that approach (the anagram solver) was ultimately doomed because it didn't take the board into account when generating words for moves. If I ever get productive again, I'll write about this process, this has been the most fun I've had coding in a while.

Part of the fun has been because of Erlang, which has just had another release. There are so many reasons to use Erlang, and this application contains almost none of them (not super parallelizable, no need for hot-swapping patches, binary syntax, or fault-tolerance). That being said, I really miss my functional programming, and refactoring calls to a series of folds and maps just feels nice. I can't imagine how powerful I'd feel if I'd properly learned macros, or had use of Haskell's type system. Those are for the next ones ^_^

Finally, Diaspora open sourced today. It's too early to really tell anything about its future, but I'm thinking of looking at it and seeing what they did. If we're lucky, the community will take well to this I can finally stop being a dumb fuck who trusts Zuckerberg.

(Note that while I don't love all aspects of the product, my family will always be eternally grateful to Facebook for helping us communicate to so many, so easily during the roughest parts of Annalisa's recovery. I also think their approach to engineering, like many of the coders I know there, is brilliant).

Finally, I'm turning in my iPhone in late October and getting me an Android (probably an Evo), since I'll be paying that bill pretty soon and will use the opportunity to go to a more open land, containing the closed platform I work on ^_^.

So that's it, kids! Open source OS, programming an open-source hippie language, slowly migrating out of Facebook while decking it out with a new, more open phone. All that will be left will be a bed that's also a Reprap.

Since Day 1

I'll try to post more; I still sleep next to too much cardboard and styrofoam, and will probably be comfortably moved in and adjusted after Christmas ^_-.

September 14, 2010

Updates to previous posts

On my Eat, Pray, Love post, Lindy West over at The Stranger wrote a review of the movie adaptation that more or less echoes my sentiments (like I imagine for Ms. West, the sentiments get vicious primarily for entertainment value). If you haven't seen her Sex and the City 2 review, its similar in style, tone, entertainment, and parallels with how I feel.

--

On my Jason Robert Brown/living as an artist post, I hadn't read his post recently enough to see his updates, which are marvelous, and demonstrate that I've been a little unfair to him. I think my points still stand, but I'll just quickly comment on one point in the updates: he links a great rundown of why most arguments for downloading are bunk, and mentions something similar to mine. He states the "it's a broken business model anyways" fails because some artists (like JRB) do succeed in it, and the presence of a counterexample is enough to refudiate that.

I'm afraid I'm not buying. It "works" for so unbelievably few artists its essentially broken. Lynn Nottage, a playwright produced more in the last decade than Shaw, Brecht, and Wilde, still doesn't feel comfortable giving up her day job.

In any system there's going to be someone who wins. During my sister's medical crisis, she received excellent care; this doesn't change the fact that we have the worst healthcare system in the modern world. I'm glad it works for JRB, the most famous living musical theatre composer. But for virtually everyone else, even if you do make it to the recordings/royalties stage, agents and middlemen (and ha! illegal downloaders) will kill your earnings.

Remember, I'm not saying it's okay to download illegally, just stating that people absolutely will, and to hope they don't is like lying on the beach hoping the tide doesn't rise.

--

Finally, probably the most significant, on the post about that redneck who wanted to burn Korans. I've changed my mind a little to broaden my disdain; the original post was mostly angry at him and Americans. Now I'm just mad at pretty much everyone.

Again, let there be no confusions: we're being a bunch of idiots here. We have guys screaming "Kill All Muslims", and Fox once again shows they would rather stir up dangerous hate for obscene profit rather than make slightly minimized obscene profit through safer methods. I hate to be that kid who links the Daily Show, but they really nailed it:

(also... that Imam is awesome).

But we go back full circle to the reason for Everyone Draw: Ayatollahs issued fatwas on the book burners. So we're back to muslim terrorism over free speech. So I'm back to hating on idiot Muslims (and urging moderate Muslims to to fight them before they throw stones (err, bad choice of words) anywhere else).

Finally, I'm angry at the world. President Obama? The Pope? Really? I'm with Yglesias, "guy burns books" can't be a global event anymore.

Okay. Time go get Glad, there's been lots of bile on this blog recently. I'll close with my favorite headline, stolen from reddit:

"Is anyone else OUTRAGED that atheists plan on building ABSOLUTELY NOTHING at Ground Zero!?!?!?

September 8, 2010

Life Update/Book Burning


Time for a small life update, as the posts have slowed down for a while and some narration is due:

I just moved to San Francisco after graduating from Brown in Providence, RI. For a myriad of reasons I didn't spend much time at home over the summer, and have been living in and out of boxes since May. Just last week I moved in to my new apartment, and will slowly, surely become a normal well-adjusted human being again.

Despite the change in locale, the main reason I've not updated (or been so fast to move, or had much time to play) is that I'm happily and proudly an engineer at Adobe Systems, working on their AIR product. It's really a fantastic product, I suggest you all give it a look.

Products built on AIR that I particularly like are Times Reader, TweetDeck, and (in a silly and simple way) Webcam To Gif. It's the first time I'm programming professionally, and I can't be happier.


Mouth OpeningNervous Eyes
DENIEDOh yeah


Of course, it also doesn't help that Starcraft 2 was released on my second day of work. I rarely get to play, but when I do, look out for sicp, the Platinum Zerg Menace on the US server.

Occasionally, I can still program for fun. I picked up ScrabbleCheat again and virtually re-wrote the little I had: the previous approach was quickly demoable, but hits a wall as soon as you try to generate moves from an existing game board. Besides, the sooner I finish that, the sooner I can work on my AIR app, SlashR ^_-

---

Now, forgive the language, but there's no better way to describe it: there's some stupid-ass shit happening right now regarding Muslims in this country. First there's the manufactured Cordoba House controversy (I think Greenwald sums it up best: if you think past a fourth-grade level about the opponent's arguments, what they really want but obviously can't say is a Muslim-free zone of unspecified distance. This set of photographs is telling.).

Then we get arson of a mosque in Tennessee.

The most personally insulting is "Burn a Koran Day," since it's clearly an unoriginal, hateful knockoff of Everyone Draw Mohammed Day (I describe the event and my participation here). Clearly, they misunderstood Everyone Draw since they're doing it all wrong.

Never mind the fact that these are Christians, apparently:


In Everyone Draw, there were direct threats and acts of violence being perpetrated in response to a specific, concrete expression of freedom of speech, the result of which unambiguously terrorized people from exercising their Constitutional rights. If we were threatened and attacked by McDonalds, we'd be agitating McDonalds.

The people behind Burn a Koran Day aren't in any direct danger and don't have their rights directly threatened. They're doing this simply because they hate and wish to hurt all Muslims simply by virtue of being Muslim. If they try to give an explanation, it's normally some vague babble of being a response to 9/11. Please. Yes, some (crazy few) Muslims want to kill you and I. I'll bet that so do some (crazy few) Jews, some (crazy few) handicapped people, and some (crazy few) vegans. This doesn't mean I should eat a lobster-bacon cheeseburger while caning an invalid just to prove a point.

Is their religion stupid? Definitely. So is yours. You all have the right to peacefully practice your silly superstitions, and you have every right to insult them as badly as you want. Neither of you have the right to escape criticism, and those of you planning this are the most stupid, hypocritical, and pathetic people of this news cycle (and there is some stiff competition).

Really kids, what would Jesus do?

August 25, 2010

Strong words, Bed Intruder

A few things. One, cursing, and strong words!



I happen to agree. I swear very little, and do so very carefully (which is to say I treat swear words like any other word). But still, someone who thinks they have no place has never seen them put to great use (my favorite example is still the Pope Song).

Strong words!



Slurs, on the other hand, are pretty awful. I handle how I feel about these case by case. I happen to think, like swearing, we put too much weight on these as a society, but that's easy when you're tall, skinny, straight, and pass for white like I do. Normally I'm happy to leave well enough alone. But this Daily Show clip wins.

Finally, I love 2010. First you get this story on the news:



Which, naturally gets remixed:



But here's the best part: a school picked it up and playing it for marching band!



Are we lucky to be alive now, or what?

August 14, 2010

In light of the Essays that were the last two posts...

... enjoy some lulz. Some Nirvana meets Jackson 5:



And "I'm retarded, I guess":



Why do I enjoy this? A former music TA of mine summarized it best. "This should not be."

Making a living being an artist

This blog seems to have veered from code and cute whimsy to Paul Screed and Bloviation. Lets add one more post to that list, in part spurred by a post by Jason Robert Brown (writer/composer of Parade and The Last 5 Years, among others) that was making the rounds for a while. You should skim it, but he's basically making his case for how it's wrong that artists get cheated out of their royalties by technology by debating the issue with someone who is actively giving away and receiving his music.

First, a note on the post: it's pretty awful. He picks an inarticulate opponent to represent the other side, to the point that it's literally Master Writer vs. Opinionated Teenager. He doesn't contest the more grounded, better-expressed arguments refuting his own position, or even really acknowledge their existence. It's as if the only arguments there are are the ones this girl mentions, and he predictably takes her to town.

Let's make another distinction: this post isn't to say stealing music is okay, it's more to say royalties are doomed, think of something else. With this I mean I won't go into the ethics of downloading music illegally because, like most discussion on ethics and law, it's just way too hairy. It sounds like it should be a no-brainer that the proposition "stealing music is wrong" is true, but a) everyone may have very different definitions of stealing, particularly when b) music isn't a good or service that easily fits most tractable economic models for production or consumption, and c) assumes both speakers agree on a moral or ethical standard, notions of right and wrong, and fair behavior. So the only problems with "Stealing music is wrong" is "stealing," "music," and "wrong."

But I do believe Jason Robert Brown, like most artists who are successful or wish to be in the traditional sense, are clinging to a model that has failed and will continue to do so. That it's not a good idea to cling to an income that is primarily sustained by royalties. Like newspapers, that model only made money when people couldn't opt-out of a bad system. You're hedging your livelihood hoping that people will choose to opt-in to the same bad system, against a better alternative.

I can't find a link, but I remember a quote from the early days of the internet, when a 12-year old kid who loved Dave Barry articles would transcribe them from the newspaper onto his Geocities site: "When someone destroys your business model not because they hate you, but because they love you, you know you're in trouble."

And people won't opt-in. The Times of London online had a 90% drop in readership after instituting a paywall. The most compelling point the girl in the post made, which JRB never addressed, was that she literally couldn't access the music legally since you'd need a credit card to buy it online, and her parents didn't support her passion for theatre.

The act of buying legally itself is also marred with complications. See this graphic of watching a pirated DVD vs. a legitimate DVD, or read about this guy who pirated Starcraft, and had to wait two days to play it when he decided to buy it. While I believe the main reason people pirate is because they're cheapskates (most people pirating could afford at least some of the music they pirate, and could cut consumption like in any other market to make up the difference), it doesn't help that the experience is often better when you pirate.

Finally, and this goes back to arguing over whether it's "right" or "wrong:" most people are incredibly confused by this. When CD burning just started, I offered to make copies of commercial CD's my family bought legally to take with us to Guatemala, for us and only us to listen to. My mom relented (and looked at me like a criminal), thinking the act of burning the CD's was the illegal part (rather than the distribution... and I'm sure some RIAA lawyer would or can make the case that it is).

So regardless of whether or not what you perceive as stealing feels wrong to you (phew), even if you were 100% right and you die and go to Heaven and God himself says "Yes, Jason, you were robbed wrongfully by your brothers on Earth," it doesn't change the fact that while you were on Earth, your model was dissolving and you were being made irrelevant. I'm not arguing right or wrong, I'm arguing working and non-working.

So what should you do instead? Um... well, I don't know. But I'm pretty sure the solution isn't to stay on a sinking ship.

I can make a few suggestions though, as this generalizes nicely into the hard problem of how to make a career as an artist. The first step is to accept that you will take a pay cut. You can't keep the salaries and lifestyle you kept in the bad old days doing the bad old things. This might mean getting a second (or different) job.

The second thing to remember is branding. You're recordings may not be worth much anymore because we can now distribute them losslessly to whoever we want. But there is still only one of you, and that scarcity should factor into your model.

So try using the technology to brand yourself. Form connections. Don't stop producing and respond to your audience. If you're lucky, you can get as famous as Radiohead and give your music away for whatever anyone wants to pay for it. If you're a little less lucky, you could probably still get well-known enough to enough people to score a regular job or commissioned work. Ze Frank did a great daily show and seems to get regular work, even getting to be a speaker at TED.

A fringe benefit of this is that you no longer have to deal with middlemen taking big cuts, and stealing. Hollywood accounting means that you could still, technically, lose money on the Lord of the Rings Trilogy (Peter Jackson and the estate of JRR Tolkien had to sue to get any royalties from the movies). It's how TLC could sell 10 million CD's and still go bankrupt. The bad old days were bad for artists too. So leverage the technology, and work for yourself.

Many of the same artist survival tactics still apply. Persevere, and understand the hardest part of the game is not giving up too soon. Picking up a skill will help you greatly. Like John Goodman said in Inside the Actor's Studio, the most useful advice he got for his career as an actor was to learn to type, allowing him a stable day job to live off while he worked. That skill may even supersede your love for your art, as happened to me. At the very least you will get more perspective of how most normal, non-artists people think and work.

On an institutional level, I can't recommend enough Brendan Kiley's article 10 Things Theatre's Need To Do Right Now To Save Themselves. It caused a major splash and proposed a lot of uncomfortable truths. Many artists hated it, which is precisely the type of reaction an appropriate solution would generate in such a broken system. Incidentally, and I know this makes me a Bad Actor, but I'm tired of seeing Shakespeare.

Obviously, easier said than done. But those are my two cents.

August 12, 2010

Life isn't fair and Eat, Pray, Love

One of the smartest people I know recently wrote a blog post on Eat, Pray, Love and the backlash against it; the post was something of a defense against that backlash.

She was speaking of a different type of backlash (namely women who've taken up Yoga and Spirituality and suffered dearly), whereas I belong to another group that's pretty well known: guys who hate Eat, Pray, Love. Hate is probably too strong a word, allow me to elaborate.

First things first: no, I haven't read it. I probably won't, either, so feel free to add that to a long list of reasons to discredit or grain-of-salt this post, because there are a many. But my criticism isn't so much based on the book itself, which I'm sure is fine, but on its cultural impact based on how I've observed other people react to it.

I'll start by citing a tweet: when PZ Myers was being criticized for being too mean to his opponents (calling them idiots, frauds, etc.), he more or less brushed it off. But then someone mentioned that many of his targets don't deserve it, as they're normally acting out of ignorance. His response floored me with how he could, in 140 characters, point it out so clearly:

"Deserve" is a red herring. Life isn't fair, you don't get what you deserve...just have to hope you get what you need.

My major problem with Eat, Pray, Love is that it is a product of - while bolstering - a vague, responsibility-absolving entitlement to "happiness," comfort, "enlightenment," and self-satisfaction. And that this is inevitable (you are a strong, wonderful person! You deserve it) and can be lots of fun! Note that while this book is overwhelmingly more popular with women, my observation is that the previous point affects both men and women pretty hard. Tons of guys I know get distraught over the fact that they don't feel good warm things all the time. I'll address the gender differential in the specific case of the book later.

Maybe it's just from attending private school followed by Brown, but I'm always observing people who are pretty lucky in their lives, are well-educated, but just don't feel happy, and feel deep anguish that they don't know what the meaning of their lives are.

I hate to burst your bubble, but you shouldn't. "Happiness," "inner peace," "enlightenment"... these aren't finish lines. You won't reach a point in your life when you're like *BAM*! I'm happy! Things are good! And I will never be insecure about my talents or role in the world again!

It's kind of like getting your first sexual urges in Middle School: sorry, but you will always feel this way. You never reached a point in your life where you suddenly stopped getting horny. You just acknowledged the urges, and learned to deal with them, incorporating those feelings in your life in a more healthy, day-to-day way.

Note that until you did, you struggled with the insecurities, exacerbated loneliness, and questions about sex and sexuality in society that came (lol) with those new sexual urges. It takes years (and some people never get there) to get over the social cattiness and mess that arises from those insecurities. There's a teething phase.

Similarly, there are big points in your life when you feel miserable, and mostly, untapped. You feel your life is shallow, you haven't made a dent in the world, your talents are unappreciated; you especially feel guilty that this bothers you because you are better off than many others.

To which I say it's true: you are shallow, you're not impacting the world that hard, and there are people who are much worse off. But that's just life, and it's no weakness or inadequacy on your part. There isn't anything you're missing (or that you reasonably could do with any significant probability) to change any of it. So learn to live with it, because, as we say in software, there is no silver bullet. Yoga might help, but probably won't. Same with eating in the long term.

Though, here's the hardest one: you have no guarantee (or even an unofficial right to the prospect) of a magical person you find lovely, wonderful, and attractive will walk into your life and love you. This might have nothing to do with how wonderful you are as a person; you can be the kindest, smartest person on Earth, and while this bumps up your odds a little, there's never a guarantee. You don't get what you deserve, just hope you get what you need.

As to how EPL fits in to all this, and why it bothers me: EPL shows the story of someone we (privileged, educated unsatisfied people) can all relate to and shows her either crossing the finish line, or making giant, giant steps toward it. It (without meaning to) exploited our misunderstandings and fetishism of Eastern Mysticism and Hot Ethnic Love Abroad and pushed desperate people wildly in that direction.

I feel about Elizabeth Gilbert and her talks, writing (i.e. the magazine articles I've read) the way I feel about most priests: you clearly believe what you preach and live pretty happily by doing so. You have every right to do it and I won't stop you. But overall, I happen to think your messages are snake oil/placebo, and ultimately takes us down further down a path I think we're already too far into.

People then start looking at Yoga, travel, and Eastern Mysticism and get conned they way they do at homeopathy, or chiropractors (note that I don't find the exercise component of Yoga nearly as toxic as those two. But lots of those "gurus"? Most definitely). I just wish people would stop looking for silver bullets, and I feel that EPL puts a toy carrot in front of everyone.

Regarding the gender difference: I think the book and its reception really highlights the impossible situation women are put into. See the Male Privilege Checklist: women are expected to be superbeings with contradictory measures of success, and we are taught that they fail if they don't.

So if you're a woman, you get told by society as a whole, implicitly and explicitly, that you're a failure or 'failing to perform' much more often than guys. Guys like you a lot less, unreasonably soon.

Given all this, I find it not at all surprising that when you read a book that appeals to your wants and wishes, that you too could go to eat and pray and love and feel warm and fuzzy and find what you've lost and oh my god it's you!, that they love it. Again, guys fall for this mindframe too, but this book in particularly highlights the troubling situation women are in.

Personally, I'd rather put energy and resources in addressing the sexism in society, trying to prevent insecurity and doubt becoming a problem in the first place, rather than setting people up to fail by filling their heads with fantasies of ashrams and vague, impossible notions of fulfillment.

I'll end with a favorite quote. It comes from _why the lucky stiff, a minor genius of our time, more or less prescribing what I think is the best way out of these loops of self-futility and doubt: create. Write plays, or short stories, or code, or fan fiction, or sand castles, or design model trains. Do something you care about and can share with people. Give back. As he says:

When you don’t create things, you become defined by your tastes rather than ability. Your tastes only narrow and exclude people. so create.

July 26, 2010

Fooled

Taken from this post, this passage hit a bit close to home:

Since TV was invented, critics have pointed out the dangers of watching the perfect people who seem to inhabit the screen. They are almost universally beautiful, live in interesting places, do interesting work (if they work at all), are unfailingly witty, and never have to do any cleaning. They never even need to use the toilet. It cannot be psychologically healthy to compare yourself to these phantasms.

So it’s interesting that social networks have inadvertently created the same effect, but using an even more powerful source. Instead of actors in Hollywood, the characters are people that you know to be real and have actually met. The editing is done not by film school graduates, but by the people themselves.

I confess: much of my Facebook/blogging/tweeting are the 'highlights,' versions of myself that I'm most proud of (or least ashamed of). I don't write about them often, but my life is plenty full of struggles, questions, insecurities and obstacles. I used to blog about those things (though, as if to foreshadow, I wrote very, very cryptically) over at my old blog, which I kept between freshman and sophomore year of college.

I don't think there's any shame, however, in just broadcasting your highlights. People comb their hair and check their teeth before they go out; they wear Booty Pop panties and overblow their resumes. We've always advertised what we think is our best believable narrative, and when we get hard pressed, we'll believe it, too.

In only slightly related news, see a blog devoted to ugly animals. Also, check out Jewel singing her own songs at a karaoke bar to unsuspecting crowds:



Kind of reminds me of Charlie Chaplin losing a Charlie Chaplin lookalike contest.

July 23, 2010

GADDAG and Capitalism

I decided to revisit ScrabbleCheat (took a break for administrivia), and wrote my first Wikipedia article, on the data structure I'm refitting it with, to celebrate. It's rare that you can write something on Wikipedia that isn't there, so I had to pounce.

Hope I can keep editing it with diagrams and the like, as it's a little lame at the moment. Against my better other judgment, I'm still writing it in Erlang ^_^

---

Also, while I do believe in capitalism and it's ability to generate wealth, here are a few lame things from the last few days:


Forgive the poor sound quality, but this Louis CK bit comes to mind:

One of the more convincing arguments for atheism...

... for me, anyways, was the size and scope of everything that has nothing to do with us. Statements like "If the whole history of the universe were as long as your arm span, you can eliminate the entire history of humanity with the scrape of a fingernail." (I can't find the official reference, but it's used in the irrelevant introduction to this Ruby talk, until I can find the real one).

If God existed, and cared at all about us, why would he also create so much universe, and have it exist for so much time?

Even as someone who already feels this way, this graphic surprised me:



You can't see it, but to the left is our Sun. You really need to see the original image, and note that the Sun is represented by 1 pixel (the image itself is 10,173 pixels by 2500).

Also remember that the Sun contains 99.99% of the matter in our galaxy.

In a related note, Pharyngula points us to some video added to Carl Sagan (kind of) on the matter.