My Octopress Blog

A blogging framework for hackers.

The Future of the Internet

In the far-off year of 2009, there will be a series of tubes that connects people over great distances at tremendous speeds. You’ll interact with it with a browser - a veritable portal to the world. And it will be able to render 3D graphics efficiently.

WebGL is the future of the internet. I’ve been hoping for something like this to come out for a while, and in Firefox’s latest nightly builds, it’s included. You should read more about it straight from the horse’s mouth, but this is going to be amazing.

I love OpenGL, and to have a framework from which to call these commands I know and love for the web will be fantastic. No need to worry about system requirements beyond whether or not WebKit runs on your computer… no need to download the latest versions of some piece of software…

Snorkel Blocked!

We were invited to go snorkeling in the Red Sea today. The bus was to leave at 7 am, fifty seats, first-come first served.

We made it out to Jeddah, and then onto the boat, and around 8:30, we were on the water heading out to the reef. It was supposed to be a two-hour trek each way, but we were perfectly comfortable on this 70-foot yacht. Really pretty stunning accommodations.

Around 9:30, we were informed that the university had actually called us back for security reasons, and that security had just closed off the channel we were going to take out to the sea anyway. Such is life. The reason for the security issues here now through the next few days is the King. Not only the king, but 60+ of his closest friends who rule countries. All in, 3,500 very impressive and generally awesome people will be flocking to campus to open this school up.

I’d still like to get an invite to the event, and I was looking forward to trying my flippers at snorkeling, but if I’m going to be snorkel-blocked by anyone, I suppose there are worse reasons.

Monarchs who’ve indirectly snubbed me: 1

How Appropriate

I ran across this in my daily reading. How appropriate that I should run across this video of three Saudi guys “pavement skating” out of a moving vehicle. I’d hate to lose a sandal while attempting this.

Some of My Favorite People

Until a moment ago, I had trouble articulating something or rather putting my finger on something. It’s something that I love tremendously about some of my favorite people.

I was watching a TED Talk by Oliver Sacks when he said something that caught my ear. He’s describing these visual hallucinations that some blind patients experience, and the person to first describe these symptoms was Charles Bonnett. Bonnett didn’t himself experience them himself but his grandfather did. In describing the circumstance under which Bonnett’s grandfather conveyed the experience to him, he said that he’d come up and say that he saw this or that.

I think more often than not, when someone comes up to me and tells me that he or she saw something, it’s to tell me what’s going on in the world - in the community, in school, at work. It’s rarely meant to describe the experience itself and even when it does, it’s usually meant to include a certain amount of focus on the event. But were a blind person experiencing what have been described as more movie-like than dream-like hallucinations… were he or she to tell me about the visions, the news or informative element is gone. It’s not something seen on the street or at home, but something experienced.

Among my friends, I feel very comfortable posing hypotheticals or talking about feelings or sensations I encounter. And getting to the point of what I find so enchanting about some of my favorite people is that it’s perfectly acceptable to experiment with different storytelling formats, mediums and so forth. If I went up to my friends and proposed an experiential experiment or experimental format, it would be more or less accepted, I think. Without (if at all possible) sounding self-aggrandizing, we’re willing to share more openly our feelings about the world - from a tangent I followed when I heard a word the other day to how the light on a particular tree made me feel. That’s of course not to say that we live in this world all the time.

As children, we make mistakes about how things work (mechanically and socially) and have misconceptions. After a certain point we feel a need to display a proper front or avoid mistakes and while largely this is pragmatic, it has a regrettable consequence: we cease to experiment.

I’ve been trying to take to heart a feeling that by and large, nothing is sacred. The house I will live in for the next year, my time, my situation, and the situation of others. Perhaps the world is more flexible than we realize, and we might try something new or embrace habits that might be considered weird. A concrete example or two is in order.

My friends and I are not affectionate people. Rather, by some peoples’ reckoning, we are not affectionate people. I’ve hugged my best male friends - men I’ve known for nearly a decade - probably half a dozen times. The tactile atmosphere here is vastly different - people I’ve just met will take my arm or take my hand or drape an arm around the shoulder. And why shouldn’t they? It serves to instill a sense of belonging and acceptance, perhaps better than words might. Sure some people have deep-seated personal space issues or simply prefer not to be touched, but I was surprised to find that despite physically being mostly an island back home I did find it endearing to embrace and be embraced.

Experimentation and Self-Doubt

Experimentation has a lot to offer us beyond science, but in a different way. Where the scientific method in the lab focuses more on determining with accuracy a value or finding the underlying behavior of some phenomenon, experimentation in this sense is more along the lines of being willing to make mistakes. To take on embarrassment, or exposing your academic or emotional ego to public scrutiny. Ask questions. Be curious. Be humble and childlike. For Steve Martin fans, be obsequious, purple and clairvoyant.

I think it’s better to ask an obvious question than to pridefully miss an answer. Why not learn something? Wherever you are, you’ve gotten there or been put there, and have no responsibility to do anything other than what you can. Richard Feynman talks about this at great length and was often relieved of performance anxiety by that comforting thought. When he was first appointed as a professor he doubted his qualification. He doubted himself when he presented a lecture to Einstein and Fermi, but learned to trust in the opinions of those who had put him where he was. It’s why we have letters of recommendation - so-and-so thinks you are qualified or have a legitimate interest in getting to where you’re going based on where you’ve been.

That said, not only do you not have an obligation to do anything more than you can, but you’re obligation is to more or less act as you have in the past. Not to stifle growth or change, but the person you’ve been is the person that the powers that be have selected.

KAUST - a Month’s Reflection

One month ago, I stepped onto Saudi Arabian soil for what I anticipated to be a magical experience coming to KAUST. Well, yes and no.

For our first three weeks here, 350+ students were stowed in a hotel. Granted, the Intercontinental is a nice hotel but they told us that they’d be bringing us here early so that we might get settled - buy the things like blenders and speakers that we needed, and work the kinks out of our newly minted apartments. We did take care of things like applying for iqamas (our residency permits), but outside of that, we were by and large sitting around.

One event they put on for us that I know I enjoyed was they managed to take 100 students into the desert to go four-wheeling. That was actually pretty awesome.

Five days of orientation beginning the last days of August, largely filled with cultural sensitivity issues and massively behind schedule. There seems to be some cultural disagreement about punctuality, but with no exaggeration, one of these mornings the opening presentations scheduled for 8 am did not get under way until 10. And when you tack on an hour-and-a-half commute from the hotel to the campus, you get a bunch of tired students who would much rather be elsewhere. As a final `can’t believe it’s so’ moment, it was all scheduled during Ramadan - so students who were fasting and who would otherwise be sleeping had to be awake and active.

Getting to campus was another ordeal. We were all very excited to move in, and then largely disappointed to find everything from rodents to black mold, leaky pipes to bottled `leavings’ of construction workers. A few days later, ceilings began to collapse in some units.

At this point, school had started, of course. Like many others, for the first few days of class I was sleeping on a friend’s couch. When I and about a dozen other students were scheduled to move in (getting up at 7:30 to come to campus in time), we were told that it would be about an hour until we could be given keys and move in, but ended up waiting 7 hours to be told that there was no way we would be able to move in, and had to go back to Jeddah.

Books for most classes have still not arrived. We haven’t any clusters online for high-performance computing. In some disciplines, labs won’t be online until 2010. The second fastest supercomputer in academia sits dormant in the basement of one of our buildings because the data center is not clean.

I would like to make it clear that I understand that anything this big getting off the ground so quickly is bound to have problems. There were going to be wrinkles (if not kinks) to work out, and I can appreciate that. I hope to not descend into a rant as frankly I’m all ranted out.

There have been perks - the food on campus is free to students for an indeterminate amount of time; our books will be purchased for us this semester; there have been goodies abundant to be had (from t-shirts to thumb-drives). As much as I love a thumb drive, I would have preferred something else - a home.

That said, the students have mobilized. We’ve signed petitions, we’ve organized, and we’ve gotten interim student representation in place. We wanted to convey the idea that we don’t want to perpetually complain but would like to help out if that means us coming into a better situation. And despite some of our expectations, within two days, the administration had contacted us to schedule meetings and put us in contact with the contractors in charge of this and that (IT, housing, etc.). It’s actually been very inspiring to see the actions we take have tangible results. Had to talked to me two days ago, you would have found me a very tired and disenchanted man, but today I’m very hopeful.

In terms of academics, I am really happy with the faculty. I’ve secured a TA position, and I spend a couple hours a day with this prof in a constant stream of geeking out. And I spoke yesterday to a prof for two hours about the research he’s doing and how I might get involved on that front. Depending on how this goes, I’d be willing to consider staying on for a PhD!

I’ve made instant friends with a couple of students here, and three of us have gotten a license to host a local TED event: TEDxKAUST. We’ll replay some of our favorite talks, and those we think would be most inspiring to students here, and we hope to get a couple of professors to present as well. In our budget, we’ve been able to allocate funds to booths and demos and if all goes well (read: gets approved), we’ll have a Ruben’s Tube.

Project Euler and Algorithmic Complexity

In the vein of relentless self-improvement, one of the neatest things I’ve come across lately is Project Euler. It’s a list of now 251 problems in math, programming, scripting and algorithms. Sometimes the problems are more in the vein of what Doctor Who called “recreational mathematics:”

Find the sum of all products whose multiplicand/multiplier/product identity can be written as a 1 through 9 pandigital.

to more lexicographical things:

If all the numbers from 1 to 1000 (one thousand) inclusive were written out in words, how many letters would be used?

At any rate, it’s a really great set of problems and good programmatic and analytical practice. Like Problem 67 where the difference between a brute force attack and an efficient solution could easily be “over twenty billion years.”

NPAR Is Done, Long Live NPAR

NPAR (Non-Photorealistic Animation and Rendering) 2009 finished wrapped today and I found it entirely compelling. Stunning keynotes from Disney/Pixar and Ubisoft reminded me of why I’m so interested in graphics - pretty pictures.

Going into this, I had anticipated that I would be far out-shined by the presenters and papers, but now more than ever I feel as though I can really compete with these guys.

I’m still sort of shopping for a thesis, and there are a million ideas I’ve come across here to develop. I’m keeping a list of techniques I’d like to apply to these problems and a list of projects and things to implement hopefully in a weekend. A non-exhaustive list would include:

  • feature lines in raytracing
  • stippling
  • perfect tiling of patterns on arbitrary meshes
  • exploring space-filling curves

Thank you to all the presenters and keynote speakers - you were all fantastic. And thanks to all the planners and sponsors of the conference.

SIGGRAPH

I arrived in New Orleans yesterday, showed up on the doorstep of the wrong hotel and then promptly found the right one.

Today sees the start of the co-located events (I’m going to NPAR - Non-Photorealistic Animation and Rendering), and I’m so psyched! If you’re at SIGGRAPH or in New Orleans and want to hang out and network, drop me an email / comment!

Woohoo! SIGGRAPH!

Computer Scientists Are the Philosophers of Science

When asked recently about why I began in computer science, I realized that it owes a lot to the mother of a friend who worked as a software engineer at Ball Aerospace. It was my junior year of high school when we spoke at a barbeque:

Katja has M.S. and although I’m afraid I’m uncertain of the specifics, she was confined to a wheelchair at this point. She asked the powers that be to make the entrance of the building where she worked more wheelchair accessible, and they suggested that when she arrived at work that she could just call the front desk or get the attention of the security guard to have the door opened for her. She tried to explain to me that, “it was the door’s job to open itself.”

I didn’t understand what she meant then, but she assured me that someday I would. She wasn’t referring to the automatic opener, but rather that it’s the door’s responsibility to provide a way to open it. Whether that’s a handle, a latch or a button, there shouldn’t be outside resources that enter into the equation of opening the door. I don’t remember the day that I understood it, but it came after taking Data Structures (it seems like a lifetime ago at this point).

During today’s NPAR sessions, it cemented what I had been coming to realize - computer scientists are really philosophers. We argue about what it means to be a door and by what metrics art should be judged. We’re made uncomfortable by hacks that do not obey a cohesive design philosophy and if you talk to any computer scientist worth his weight in gold, he has a sense of the “right” way to design something and can substantiate that claim.

All this is especially true of people in graphics, I’ve found. The people at NPAR are often concerned with visualization and communicating an idea (after all, our eyes are our highest bandwidth sense). It’s one thing to know facts, like the population and GDP of countries over the last 40 years, but it’s another thing entirely to have a feel for the trends they describe. It’s been said before that “a picture is worth a thousand words,” and the goal of any good visualization should be to convey understanding. We seek to reveal the truth, the “chairness of the chair,” and this is goal I feel very strongly about and take to heart at every chance.

This concept is well-summarized by a quote one of the presenters mentioned:

Drawing is not following a line on the model, it is drawing your sense of the thing. - Robert Henri