Ken Perlin's home page
mrl.nyu.edu
mrl.nyu.edu
More than anything, it enabled a pretty unique pedagogical experience. Every week we'd have to make something which related to that week's topic (diffuse/specular shading, geometry manipulation, inverse kinematics, z-buffers, etc). There were no other content restrictions.
To "submit" our assignment, we'd have to publish the java applet on our personal page. Ken would go student by student and open up the week's projects on the projector, then play around with it a little. If you pulled off something cool, you'd talk about how you did it. If you didn't master the thing (happened to everyone at least once), you'd talk about what was broken, and other people would chime in to help you figure out what was wrong. It was fun either way — detective work without looking at the source.
Most importantly, the whole atmosphere was super-collegial. I learned a ton and it felt like the right way to teach computer science — build things, critique, rinse and repeat. I didn't get much sleep that semester ("WHY THE HELL WON'T THIS RENDER!!!111!!!one" was a common refrain in chat with my coursemates) but it was the best class I ever took.
Plus, Ken drives vim like a fucking boss. Like, he'd enter some arcane vim incantation ":ad8723bsd9asasfd" and bam, a ray tracer appeared in his buffer.
After Firefox prompted me to enable icedtea, I clicked through some warnings about unsigned applets, and then my browser slushed up. No applet appeared to be running. I closed that tab, and it took around a minute for the tab to disappear. Meanwhile I tried to go to other tabs, and the title bar changed the indicated tab but the tab didn't actually change.
Closed the browser. Waited a decent interval. Tried to open firefox but I got the "I'm already running!" complaint. Waited. Complained. Waited. Complained.
pgreg. htop. No indication of firefox or java or icedtea running.
Eventually the blockage passed through the system and I could run Firefox again.
Firefox? Java? Icedtea? Incompatible jvms in a "write once, run anywhere that the jvm that I developed my applet on is running" ecosystem? DKDC, it's not at all important to my home or work life (fortunately).
EDIT: To be minimally fair, I play Minecraft on the same Linux as I was running above. It's a java desktop, not a browser app.
what's more depressing is that I'm in an internship in some pharma research company, and we're using java. I really need the job experience and the degree, but it's weird how sad I feel to sit in front of java code. Coding is not fun anymore, and it makes me so unproductive. I need to hug a C programmer.
Some projects that make Java more fun/relevant: