May 19, 2010

My last study break

My final Final Exam is tomorrow; after that, my graduation is at the mercy of my graders. I'm studying for Principles of Neurobiology, which has been a most excellent way to finish college. While Biology was always my least favorite science (♥chemistry♥), the brain and how we study it is out-of-this world cool. Neuroscience is tied with dancing in the Big Regrets That I Didn't Pursue This Further At Brown (it's no exaggeration that, had I taken these classes earlier, I may have become a Neuroscience major).

My curiosity is naturally piqued after my family's recent medical trauma, my sister's neurological illness. There's lots to say about that and how it's affected me, but in reviewing my notes I came upon this slide (click to enlarge):



And felt a flurry of emotions. Context:
  • In reviewing my sister's condition and her trouble retaining memories, the doctor's hypothesized that the NMDA receptors of her neurons weren't functioning properly.

  • I tell this to my new, madly brilliant neuroscientist friend, who in helping me study told me that NMDA receptors are partially responsible for coincidence detection, which contributes to LTP.

This class and my friend help me connect a few dots to the bullet point above:
  • LTP stands for long-term potentiation, which is basically a mechanism of retaining information in the brain via the strength of synapses between neurons. This mechanism is what is most believed to be related to how individual neurons grow to Something Greater like a functioning brain, with memory.

  • LTP occurs when related events occur repeatedly. When neurons notice this, it's called coincidence detection. For example, suppose you repeatedly smell a rose when you see a rose. Certain neurons will activate the next time you see or smell a roses. If you do both, the pairing will strengthen, if you do one or the other, the pairing will fire but not as strongly. They won't activate at all when you smell an onion (presumably some other neurons will).

  • Coming full circle, what is it that enables coincidence detection? NMDA-receptors, through the process that was introduced in that slide.

Being able to piece all this together, albeit as an amateur (I'm no biologist) has been a hell of a ride. Not gonna lie, I'm a bit worried about the exam tomorrow. I've passed my practice tests, but not by the most comfortable margin available

(also, let this be a case for Brown University offering the S/NC grading option. I would never have taken an intellectually risky class like this if I was preoccupied with GPA maximization).

If you want to see what I'm up against, take a look at the midterms covering the material of the final (first, second, third) and the research paper we need to be familiar with.

Wish me luck ^_^

May 18, 2010

Today's study break

Still studying like a madman for Neuroscience, but took a few minutes to catch up on some news. First, a co-creator of Flash makes the best defense of Flash as a platform contra Steve Jobs I've seen, many echo my sentiments exactly. Some money quotes (emphasis mine):

I think Steve Jobs is willfully missing a key point with his arguments against Flash. The important reason to put Flash on the iPhone is that millions of developers have invested millions of hours building Flash content in Flash. The Flash content out there in the world is an asset of our society and the people who created it. People built it in Flash because there was no other decent technology from companies like Apple, Microsoft or Real Networks that enabled this kind of content to be created and delivered. To say that all this content should be discarded because Steve Jobs is afraid that people will build Flash content that runs on mobile devices running any operating system instead of building content that will only work on Apple mobile devices is doing a disservice to the efforts of all those individuals.

Personally, I think that Flash content will probably outlive iPhone and iPad apps because Flash is designed to deliver media content while the iPhone/iPad development tools are designed to build applications for a specific hardware platform that will be obsolete in 5 or 10 years.


On Apple's devices as a whole:

The iPhone/iPad model certainly has some of the appealing traits of the personal computer market but it also borrows heavily from the business models used by the cell phone, and cable industries. With my computer, I feel like I own it and can do what I want with it. With my iPhone and with an iPad, it’s more like you are leasing a device for a few years until the battery wears out and it’s time to buy the new one.


Apple aside: yes, I've read Designing with Web Standards, and absolutely believe in the future of a better Internet, one that is standards-based, with fewer applications relying on closed, commercial plugins.

But, if it's a challenge for me, a Computer Science concentrator at a top university, to use a programmatic technology that's only been available for a few years (HTML5) to make even a simple graphic react to the most basic inputs that will only work for some browsers... well, it's no surprise that a company filled in the void for rich content, and that designers flocked to it in droves.

Throw all this in with Apple, who have their own crummy record of openness, supporting developers, and economic interests and well... I'm not buying most of Jobs' arguments.

(Adobe isn't excused from this either, mind you: they are also driven primarily by profit motives, and Flash as a technology certainly has its flaws. Yes, they are guilty of not being perfect, but I think Apple is currently more guilty of willful, opaque obstruction, and do more harm to developers and ultimately end users).
---

The other major story was that Facebook and Zynga have entered a formal agreement. Facebook is a company I've been thinking a lot about these days. As a game developer, game player, and privacy/civil liberties enthusiast, Facebook and Zynga's recent turmoils have been a hot, hot topic for me.

(another great post is Diaspora's curse, on why the author believes (and I agree) that Diaspora is doomed to fail, unfortunately).

May 17, 2010

I'm still neck-deep in exam studies...

... but there's a really, really great post on the various meanings of the word 'functor' in 4 different languages. It's the clearest example I've seen for SML, especially. Also note the 'This space reserved for JELLY STAINS' at the top ^_^

May 15, 2010

Another game on Android Market!

My games group is happy and proud to release Momenta (development title Platformer) to the Market today!



As with my first Market release, you can click here if you're browsing from an Android phone, or search "Momenta" in the Android Market.



What would you pay for this Eyjafjallajökull eruption of fun? You might say $10,000, but wait, it's free! Download it, PLAY IT, enjoy it, and please provide feedback!

May 13, 2010

My first game is on the Android Market

Pick it up! I don't know of a way to link to the market itself (unless you're on an android phone, in which case, click here!). If you search 'Rat Race' from your phone, it's the only app that comes up.

It's free! Download it, upvote it, downvote it, PLAY IT, whatever you like ^_^

(short update, finals are the death of me... hopefully for the last time!).

May 10, 2010

Funny images

I've posted a bunch of remixes and notable videos earlier, even a more serious post on books. There are about a dozen more golden ones I've left out, but that's for another time. This is the post for themed image sites.

The winner for Most Currently Lost Potential is The Big Caption, which takes photos from The Big Picture and captions them with funny phrases and appropriate typography. Two favorites:





Why Most Lost Potential? Not enough updates. Unlike most themed funny image sites (the Tumblrs below, for example) the gimmick gets old fast. But The Big Picture has a long backlog, and will continue to be fresh, so we should have more than once or twice a month. But I won't rush quantity over quality ^_^

My other complaint is the lack of hi-res images. I really want "Haters Gonna Hate" for a Desktop background.

Tumblr + Blogger are full of gimmick sites that are hilarious for about 10 minutes each. Behold, Nic Cage as Everyone:



Babies with Laser Eyes:



Selleck, Waterfall, Sandwich:



Man Babies:



Fun during the holidays: Sketchy Santas:



And my dad thinks he's not missing anything by staying off the Internet. Pah!

May 9, 2010

PAUL IS BOTHERED

You can talk all you want about 'practicality,' but one way in which I see functional languages will ALWAYS beat imperative is the built-in love of lists. I simply can't express my distaste for always writing:


import java.util.Collection;
import java.util.Iterator;

// crap elided

Iterator<String> iterator = myCollection.iterator();
while (iterator.hasNext()) {
    doSomethingWithString(iterator.next());
}

over, say:


(map do-something-with-string my-collection)

But Paul! says you, Java gives you static typing! The Scheme example above doesn't, so it can get away with that kind of dynamic-language brevity! Well, so does Haskell:


map doSomethingWithString myCollection

and SML:


map(doSomethingWithString)(myCollection)

For fun, lets just see it in a smattering of other languages I've used. Ruby:


my_collection.each { |x| do_something_with_string x }

Erlang:


lists:foreach(fun do_something_with_string/1, MyCollection),

Common Lisp:


(mapcar #'do-something-with-string my-collection)



Naturally, this isn't even the whole picture. The example assumes you're iterating for side effects; if you needed the list with its elements transformed, that would be another 5-7 lines of Java. And the list can only exist because it was constructed to begin with, which if you did it in another class, requires 3-6 more import declarations there.

I know its trendy to hate on Java, and I've mentioned before that PL hating like this is unproductive. Still, we use and work with variable-sized lists all the time, and what functional designers figured out (long, long ago) is that it's quite nice to have them built-in.

Bleh, sorry. Android programming is fun, despite the Java.

I did say "imperative" above, not just Java. Kind of a misnomer, as CL and Ruby, above, provide one-line map and are arguably imperative. In that case, I let my biases shine through and used "imperative" interchangeably with "luddite." But let's never forget our buddy C++:


#include <list>
using namespace std;

list<string>::iterator iter;
for (iter = my_collection->begin(); iter != my_collection->end(); ++iter) {
    do_something_with_string(*iter);
}

PUKE

May 6, 2010

Social Golfer problem

One summer I spent working with a professor, the father of a friend heard my plans and remarked (to my friend, not to me)

I can't think of anything less intellectually stimulating than writing computer code for 7 hours a day.

After some thinking, my guess was they were probably confusing programming with data entry. Moments like these make me realize how much I take computer literacy for granted, especially among older folk. The Supreme Court makes similar mistakes, to much lulz.

I frequently find it helpful then to describe a problem that we work on, since lots of them can be easily described without mathematical notation. One of these has been a real hair-puller these last few days, called the Social Golfer Problem.

Problem Statement


The premise is this: you're organizing a golf tournament with 9 people in it. They play every week in groups of 3, and want to play for three weeks.

Here's the catch: they are social golfers, meaning if possible, they never want to play with the same people twice. Your job is to organize the tournament; you have to arrange who plays with whom every week.

So rather than use names, we'll just use numbers. The first week could look something like this:


 Group 1Group 2Group 3
Week 11   2   34   5   67   8   9


Since players 1, 2, and 3 are playing together in the first group, next week you need to organize the tournament a little differently to make sure 1 isn't in a group with 2 or 3, 5 isn't in a group with 4 or 6, and so on. A complete tournament schedule might look like this:

 Group 1Group 2Group 3
Week 11   2   34   5   67   8   9
Week 21   4   72   5   83   6   9
Week 31   5   92   6   73   4   8

So here's the question: could you organize a tournament like this with 100 people, in groups of 10, for 10 weeks?

Because if you could, you could get published in a Computer Science paper. Whether or not its even possible to schedule such a tournament is an open problem.

For Solving Hard Problems, we have to write a program that takes three numbers

  • g - the number of groups in a week.

  • s - the size of each group.

  • w - the number of weeks.


and either prints a schedule for a social golfing tournament, or tells you its impossible.

It's a really cute problem. Hopefully in a few days, when it's done and gone, I can write about how I wrote the program. In the meantime, how would you go about it?

May 2, 2010

The Gods must be crazy!





Over 60% of the video online containing Paul was only uploaded in the last month. Here's another! I'm acting in Mt. Olympus, a new Brown TV show with some really wonderful people involved.


The premise is that the Greek Gods come down every once in a while from Mt. Olympus to let off some steam. During one visit, Hestia, who guards the hearth (and source of their Godly powers) leaves it unattended to take a break, and their powers vanish! What will they do in as students in a college that looks suspiciously like Brown?



I play Hermes, the messenger of the Gods. He's a trickster, and mostly serves as comic relief. The gods go through a number of identity issues when they lose their powers and learn to become mortal, but Hermes is really just there to have the best time he can.

There's about 2:40 introduction with the classroom scene. I'm mostly in the opening sequence after that, until about 5:00. The rest of the episode is quite fabulous, and I've made lots of great friends working on this. Keep watching until after the credits for More Paul™! It was that clip that left my family speechless when I got the rough cut of it over Spring Break.

Also, some of the music (namely the party music that comes in when I enter the dark room at 3:20) was done by a very talented friend I met at Brown, Mr. Andrew Underberg. I remember asking him for a recording of his midterm project in an Electronic Music class we took 4 years ago, because it really stood out as excellent (sadly, I can't find it on his site and lost it in a hard drive death...).

(also, I've updated the post on the Pope and Catholicism, providing reasons why I am so angry, with lots of links substantiating my original sentiment).