Monday, December 31, 2007

Blame This on Juno

So, I've done this with a few of my movie commentaries before, but it's going to be standard now, so I'm gonna give you a heads up. I'm pretty much done "reviewing" movies. When I talk about movies from this point on, I'll give you a quick summary of what I thought and then I'm going to proceed to delve into whatever issues it got me thinking about and how they are pertinent. So, here goes this one:

Simple introduction: Juno rocks. I'm glad I saw it today so that I can legitimately put it on my top 5 for the year. It's sharply written and features stellar performances by a few of my favorite actors (Michael Cera, Jason Bateman, J.K. Simmons, and Allison Janney). People seem to like comparing it to Little Miss Sunshine, but that's just because people like making comparisons. The two have little in common beyond being incredibly well written independent comedies that like to ignore most of the standard formulas. Juno is more accessible in style...but Little Miss Sunshine was very dark and more than a bit absurd, and as such, certainly not everybody's cup of tea. I'd say I like Little Miss Sunshine more (I don't think Juno will quite make its way onto my Top 10), but that's because I the subtext of Little Miss Sunshine (the frailty of humanity; the hollowness of being a "winner" and leading a self-seeking life; and the necessity and healing power of love) is a little bit more important to me.

That said, the subtext of Juno deals with another issue that has become incredibly important and intriguing to me in recent months: relationships. What we build them on; what we expect from them; what they mean to us...we live in a backwards society in a lot of ways, not the least of these is the way we look at relationships of all sorts. We're so obsessed with this idea of "falling in love" that we forget what love really is. We get so caught up in the ideas of romance and passion that we don't remember that the cliché of your spouse being your best friend is supposed to be true.

Relationships in any sense, whether it's a normal friendship or a marriage/dating relationship, should be rooted in the same basic principle: love. Caring for the needs, desires, and dreams of another individual as much as for our own is what creates the sense of security and comfort that allows us to feel close to one another. As such, common sense says that the chief difference between close friends and a spouse, fiancé, or committed boy/girlfriend shouldn't be the physical relationship or the observance of other societal norms so much as the devotion and openness of the love between the participants. A truly devoted couple can't just hope for the dreams of their partner to come true; they need to incorporate their partner's dream into their own.

The problem is that it's so easy to let the social/physical aspect - the "romantic" aspect - of an intimate relationship become its defining portion that forgetting the depth of the love that a successful relationship requires is easy. Not to mention that the popular semantics of "falling" or "being in love" has so much more to do with physical arousal and passion than with actual love that we, as humans, constantly attempt to enter into relationships with people with whom we have no basis for a normal friendship, and you've got a recipe for the cultural disaster we live in.

I'm going to try and relate this back to Juno now as I finish. Spoiler warning and all that.

Vanessa and Mark's relationship failed for one simple reason. They were committed to the idea of a relationship and not to each other. Vanessa was ready to be a mother, not a wife; but in order to be a mother, she felt that being a wife was necessary. She didn't appreciate her husband's dreams and did her best to try and replace them with her hopes for a picture perfect family. Mark was resentful of his wife's treatment of his goals and couldn't bring himself to appreciate hers as completion of her dreams would do nothing to restore his. Neither was willing to embrace and commit themselves to the dreams of the other; they were unwilling to love each other for who they were, so they failed.

Juno and Bleeker will succeed because they understand the truth behind the opening lyric of the song they sing right before the credits roll. "You're a part-time lover and a full time friend". It worries me a lot that so many people I know tend to forget the order of importance of those things...but there are a few of you in my life who seem to have it right, which is a cause of regular celebration for me, so thank you.

Tuesday, December 18, 2007

Something new.

I'm in Winona, which is unexpected and awesome, but it's 2:30 and I'm not quite what could be called tired. There are issues running through my head that I've been wanting to try to explain to somebody for the last God-knows-how-long, and I feel like I should start to get them out. I don't know if I'll actually post this, but if I do, those few people who I know occasionally read this tend to be among the group I trust to know me this well, as well as to think and talk with me about these things. Also, I generally trust you to not think I'm crazy.

First thing first:
What's up with the traditional view of heroism in our society? With a few exceptions from actual history, it seems like the notion of heroism (at least of the more adventurous variety) is inexorably linked with violence. Call me crazy, but this strikes me as a bad thing for a few reasons.

For one, when you spend so much time being told that problems can be solved through direct confrontation, improper expectations are built; expectations in which helping people becomes less important than solving their problems. I don't think I've fallen completely into that trap (or, at least, I like to think I recognize it when I do), but it's there, and I know I'm not the only one.

The second worry is more personal. Maybe it's just the fact that so much of my worldview is wrapped so strongly in the escapist media that's been such an important part of my upbringing...but every time I think of adventure - which, due to said overexposure, I occasionally look at as a necessity for happiness as opposed to contentment - it always winds up being linked with physical conflict. Even though my own experience shows elation in mere exploration and great sorrow in causing pain; there's this part of me in which longs for some sense of physical confrontation; that longs for a palpable, tangible source of evil that can actually be stopped by humanities oldest and least effective method of problem solving. The sheer number of people I know who "joke" about anxiously awaiting a zombie apocalypse makes me feel like I'm not alone here, either.

I think that this is the real allure, and the real danger, here. The path of Cain comes so naturally to us that we'd all love to think that, ultimately, it will at some point be the right one, even though we all know that deep down it never will be. History shows us time and time again that the only way to really bring about change is by adherence to the great commandments given us by Christ: to love God with all our heart, mind, and strength, and to love our neighbor as ourself. It's a damnable shame that it's such a hard calling to adhere to (pseudo-pun pseudo-intended).

Second mini-rant picks up near where that left off:
The Golden Rule seriously needs to be rephrased. "Do unto others as you would have them do unto you" is meant to embody the basic tenets of "Love your neighbor as yourself"...but it seems to me that it fails miserably. I started having this conversation with a couple of my roommates the other day, but one of them wouldn't hear it, simply because he was so used to relating the first as being equivalent to the second. I think the linguists and semantic nuts among you will agree with me that it's not.

The Golden Rule is, by its very phrasing, self centered. It asks you to think of how you feel, or believe you would feel given a certain circumstance. Well, guess what, that other person isn't you, and at least 50 percent of the time, what makes you feel better probably isn't gonna do the trick for another person. The great commandment is, by its nature, focused on the other person. We are to love them to the same extent we love ourselves. It says nothing of the manner, just the amount because Christ, being, you know, omniscient, understands that the manner must vary. By its nature, Love has to be expressed differently between different people; certainly there are universal acts that can be used to express it, but if I'm truly trying to show my love to my mother and my father, I can't treat them identically. That would be not only inconsiderate, but it would be dehumanizing them by ignoring their individuality. How then, in choosing to treat everybody as we would like to be treated, can we follow the Golden Rule as traditionally told, and retain a respect for the humanity and individuality of all? We can't.

My initial response is to say that the Golden Rule should read "Treat others as they would have you treat them"...but that leaves elephant-sized gaps for people who are disturbed or depressed to justify or encourage mistreatment. So, I don't know what we can really use as an entirely secular rephrasing of the Golden Rule, but we seriously need one, or else we'll never advance beyond this cultural overemphasis on "how I feel". Any ideas, fellow postmodern linguists in the audience?

I had one more thing to rant on, but I seem to have forgotten it, so I'll leave it at this for now. If this generates some discussion, either just with me or through comments, or whatever, maybe I'll make writing out these sorts of rants and ramblings a greater priority.

Wednesday, December 12, 2007

Just Because

So, I feel like I should write something. I don't know why, but I do. There isn't a lot going on these days for me to write about...I saw American Gangster and No Country for Old Men. Both were good movies. American Gangster makes me sad mostly because Ridley Scott just seems like he's trying to win an award these days instead of making quality cinema. No Country for Old Men was brilliant. Saying more about either would be doing you all a disservice, either because I'd be spoiling Old Country for you or because I'd be wasting your time telling you things you could have guessed about American Gangster with only minimal knowledge.

Seeing as I'm starting to get a vague idea of who reads this thing, I'm even more torn as to what to write, as there isn't a whole lot of interest overlap. This being the case, I'm going to ramble a bit about something that's been running through my mind since about 2 a.m. this morning that only a couple of you will understand: Concurrency in Object Oriented Design.

This is one of those entries that's going to be edited, heavily, when I come back and read it in a few days and realize how incomprehensible it all is. Keep with me for now if you care...

So, first of all, thank God that my High Performance Computing class is over. Starting to understand how to write procedural code in parallel was well worth the time and effort, but I think that bigger things are on the horizon. Primarily, I don't think that parallelization is going to be the primary route taken in writing applications to take advantage of multi-core processors.

Why do I think this? Well, mostly because I don't see anybody giving up their objects anytime soon. As much as I'm starting to appreciate functional programming, I still love Object Oriented design. It's just so much easier to perceive interactions between elements of a software system when you're dividing them up logically from the get go, that the time penalty is well worth it. The problem here is that it's difficult to parallelize an Object Oriented system because you've got such a strongly heterogeneous mixture of operations going on in any given interaction between objects. Certainly, if you're performing simulations where you have large aggregate groups of similar objects interacting with each other over either several iterations or under slightly different circumstances, you can break up this problem...but if you've got several dozen different types of Objects, all having their interaction being controlled by some central, generally procedural method, you're going to have to combine flat parallelism over looping constructs all over the place with functional decomposition of different object-set interactions with god knows what other types of algorithmic tomfoolery to "optimize" your problem.

This just doesn't seem worth it.

I've recently been doing a bit of reading on a language called Erlang. Erlang is rooted in the concept of "concurrency oriented design". Now, when most people think of concurrent operations, they think of multi-threading. When most people think of multi-threading, they think of shared memory accesses, critical sections, and notoriously instable and unreliable performance. Erlang sheds all of this.

Instead, Erlang structures programs around "processes". Not OS processes, light-weight processes managed by the Erlang RTE, each with its own unique memory and variables, all communicating with each other through asynchronous message passing. Having not done any actual programming in Erlang (a deficiency that will be rectified soon), I don't honestly understand yet how programs are structured around these processes, but I see a LOT of potential in this.

Imagine, a combination of Objects and Erlang style processes. You build an Object, and gets scheduled to run as its own process on one of the cores or nodes of your system. Each object exists as a unique process in this way, waking up and doing work on its core when requested, and sending that data back to whatever other Object requested its services, and going back to sleep. It doesn't sound a lot different from Object Oriented design as we know it, it just scales objects and their computations across a system. Obviously, we would need to write interactions between objects in a less traditionally procedural manner. "Controllers" in the traditional sense would certainly see a massive overhaul. Right now, it seems to me that Object Oriented programs are essentially procedural programs with a lot of the mess filtered out into objects and the remaining mess existing in the controller, managing their serial interaction, but any step towards truly efficient parallelization would require as much.

I've lost my train of thought for now. Maybe when I come back to make sure the above statements are actually understandable, I'll be able to remember what I wanted to say. For now, though, I'll just ask, would this concept of Objects existing and communicating concurrently, largely independent of a serialized controller be the fastest way of spreading code across multiple processing elements? No, probably not. But, if you're really looking for speed, why are you looking at O-O in the first place? I honestly can't think of anything right now that has the potential to be as easy to understand in design terms, easy to extend across and arbitrary number of processing elements (distributed or symmetric), and as potentially robust as this solution. It's something to think about and hope for in the future.