Thursday, May 22, 2008

Thoughts on Indiana Jones IV

There were good things to Indiana Jones and the Kingdom of the Crystal Skull. There were more not so good things. I'm going to go point by point and be relatively brief on each one, because that's going to be the best way to do this. First, the good.

Harrison Ford still gets this character. He was fun to watch, and the escape from the warehouse at the beginning was (mostly) classic Indy. When it worked, the banter was fun. Unfortunately, it didn't always work.

The first part of the movie in general (I'll be generous and say up to the point where the titular Crystal Skull is found) was a solid experience that mostly remembered what made the series great. There were a few missteps even in this portion, but they fit into broader categories and will come later.

Kate Blanchet and Karen Allen were both great. Obviously, Allen's Marion Ravenwood was nowhere near as feisty as in Raiders, but that's to be expected; and the new tone of the banter between her and Indy worked about as well as possible. Kate Blanchet needs to play the villainess more. She seemed to enjoy the opportunity, even if her Ukrainian accent occasionally allowed a bit of British to slip in.

Now for the bad:

The whole issue at the beginning of Indy being a security threat is never really addressed. I mean, at the end of the movie, everything is fine, but why? They didn't prove a damn thing about his involvement. There's no evidence at all of what happened in South America, and even if there were, it's largely unrelated to what got him in trouble. The whole issue was stupid in the first place and didn't even serve as a catalyst for much of anything plot-wise.

Mutt was just a poorly defined character. The ridiculous greaser moments with his comb or switchblade were distracting; and he just seemed to fall into the adventurer role too naturally - noticing things or making realization he shouldn't have the experience to notice; things that Indy is allowed to do because he has the background. Obviously, they're trying to make his status as Indy's progeny as blatant as possible, but it just doesn't work. Not only did they actively take what could have been bad ass Indy moments and instead make them stilted Mutt moments, they didn't make him a likable enough character to legitimize the sequels that Lucas has already stated a desire to make with him.

Speaking of George Lucas, WTFCGI? Ground hogs? Monkeys? Where the hell do these things come from? What purpose do they serve other than to be blatantly computer generated frustrations that detract from the goings on by breaking the mood for no reason? Dammit, Lucas, stop being so enamored with technology and learn to use it as a tool, not a medium.

The Crystal Skull itself was ridiculous. Instead of being a fun, religious MacGuffin, it was just an omnipresent Deus ex Machina. Sure, I'll admit that the artifacts in the original three movies did act as Deus ex Machina come the end of the film; but Spielberg and co. just kept on attributing random powers to the skull for no good reason. Also, while it makes sense that the Russians wouldn't be seeking religious artifacts the way the Nazis were in the previous films; it still felt a bit that by using an alien relic for this film instead, they were equating religion with science-fiction.

Bringing us to the final point; the entire alien thing seemed contrived in general. The scene in the antechamber was, like much of the film, awkward and even more nonsensical than was necessary. The utter confusion of the proceedings made it amazingly anticlimactic at the same time.

All in all, the film was still fun, but I think I was expecting a bit too much when I went in hoping for another Temple of Doom at the worst. There are fun action sequences all around, and the character of Indiana Jones is still very much alive, even if not everybody remembers how to tell a story around him.

Friday, May 2, 2008

Whoo! Iron Man!

Saw Iron Man tonight, and I was blown away. Considering the critical reception, I was prepared for something good; but I didn't know what exactly, and I'm glad for that. In short, Iron Man is everything its genre should be, and in a word, that's fun. The action sequences are spot on for the character, the humor is built on sight gags that actually fit what's happening rather than breaking from the action, and the performances are excellent. Unlike the Spider-Man movies, especially 3, where characterizations are uneven - sometimes completely over-the-top, sometimes relatively believable - everybody here fits into the same genre convention mold. And because everybody obviously exists within the same general, larger-than-life style that comic book characters belong in, it's easy to accept their characterization as such.

Sure, the plot is a bit thin; but that's to be expected for a number of reasons. Iron Man is in no way intended to be a single film. Even if the franchise doesn't continue individually, Marvel has confirmed that they are setting up for The Avengers. This film provides a back story and a personality for Tony Stark in the exact fashion that we need if we're going to see more of this character - and more importantly, it makes us want to see more. It's also important to note that Iron Man's solo career hasn't left a whole lot of memorable material; his legacy is his character and the way he interacts with the rest of the Marvel universe.

I think that the film's strength is displayed perfectly in the sequence where Tony is perfecting the flight of the Mk. 2 suit. The look of exhilaration on his face as I learns to control his motion is spot on - the strange mixture of raw terror and pure joy is indescribable. In that moment and throughout the entire rest of the film, Robert Downy Jr, is Tony Stark.

Saturday, April 26, 2008

Ambition Rears its Ugly Head

*WARNING* This post is completely Computer Science related. */WARNING*

So, last December, I wrote a bit of a rant about concurrency as opposed to parallelization and the basic idea of merging Object Oriented and Concurrency Oriented designs. The idea seemed so completely beyond my scope of reasoning at the time, and I stopped letting myself think about it, but I realized a month or so ago that I need a senior project next year. I humored the idea briefly and quickly abandoned it, simply because, again, it seemed so huge. I decided this semester that I definitely want to go to grad school, possibly, likely pursuing my PhD, and to get into a top program - especially one where you're assured a Research Assistanceship - requires impressive work.

I'm looking at Human Computer Interaction work in a big way, but projects in that are just beyond the scope of what I have the time, resources, or background to do effectively; so every time I tried to think of a project, things came up blank. Then, the other day, I was zoning out in class, and I realized that I may be able to pull this concurrent object thing off; maybe not well, but as a proof of concept. It's a problem that engages me, should certainly going to look impressive, and will give me lots of new experience in areas I otherwise wouldn't be touching with a 10 foot pole in the normal curriculum.

That said, I really just need to talk about the idea, hash out the semantics, and jot down a few starting points as a way of clearing my head (it's about the only school related thing I've been able to think of for days) and to provide an easier way of explaining what I'm trying to do to my professors in the near future. So, bear with me, and hopefully this will be interesting.

First of all, I want to discuss the need. Everything is multi core now. Quad cores have hit the market, with 6 core processors coming down soon and 8 not far down the pipe. We need to write programs that will effectively use these resources. Most code these days is still written in a generally sequential fashion. Functions call other functions which then call more functions that they use to compute the value that they return to the function that called them, which then go on to call more functions until the final, desired result is met. Obviously, this is an incredibly simplified description, but people who are still reading should either understand how simple that is or be grateful for the abstraction. Now, the problem is that a lot of these interactions don't really depend on one another, so while useful computation could be being done on another processing element, your just waiting on the one your program is scheduled to, waiting for your Person Object to tell you its "name" is "Gary" instead of moving on and making sure that 19 isn't greater than 20.

How do we get around this?

Currently, there are a couple of chief methods. One technique utilized chiefly in High Performance Computing circles is parallelization - intentionally breaking up one problem into many smaller problems and actively telling different processing elements to handle different parts. The problem here is that it isn't a universally applicable technique. Certainly, lots of problems can be broken up into smaller ones, but this technique requires a completely different view of the system as we design algorithms. I mean, on a multi-core machine, we can make only slight modifications to a bubble-sort that make more computationally efficient than a standard quick or merge sort - sorting techniques that are much more difficult to properly parallelize. The other standard work around is simple threading; but anybody who has worked with threads knows the risks of critical areas, locks, and all of the other problems that the shared memory of a threaded environment can create.

There is at least one other language, however, that takes a different route: Erlang.

Erlang champions what its creators refer to as "concurrency oriented design". One of the most unique features of the language is that you can create "processes" - not heavy-weight system processes managed by the OS, but light weight Erlang processes managed by the Erlang RTE - which operate independently of one another and communicate through asynchronous message passing. Supposedly, these processes will essentially automatically propagate across a multi-core system, operating concurrently and giving practically n speedup on an n core system.

So, here's what I'm going to try to do:
Create an (easily subclassed) object library in C++ that will provide for similar behavior in Objects of its type.

Specifically, I want to create objects that persist and operate concurrently, requesting data from and reporting results to one another through asynchronous message passing and going about their business until requested data become necessary.

I have a few ideas for implementing a couple of features, but the following are issues that have me scared shitless:

Functional dependency -
how on earth do I determine when we need to pause and wait for a return value? Building a library to generate a dependency tree is a whole separate problem; generating one that doesn't kill performance with overhead (and that I can actively check to determine what I do have values back for) is worthy of its own senior project. If I want to make it possible to write code to work within this framework without needing to adopt new coding practices, I can't require additional calls to check each variable to see if it's in the process of being assigned before it's used...I have a couple of shaky ideas here, but they're related to the next problem

Message Passing -
I have a wonderfully simple (if ill advised) idea for queuing up function calls (overloaded . operator, here I come)...but how do I track the caller and return the value to it? Is there some way to make this return operation something that will interrupt whatever other action the calling Object was doing to make sure it gets values promptly?

Side Effects -
Side effects are dangerous in a concurrent world because they mean we can't be sure that a value is the same now as it was a millisecond ago. It may be worthwhile to try and make each function call virtually atomic to protect data integrity, but will this create too much overhead for simple, read-only methods that could be exempt from such scrutiny?

There are more, but I just had a brain fart, and I've gone on long enough already. I have enough reading to do on C++ (really, mostly standard C) to keep me busy all summer when I'm not at work. I need to familiarize myself with function pointers, with C's methods for manipulating memory (and hopefully access to it), and a lot more...but as daunted as I am, I'm still excited.

The other thing I hope to do with this project is to develop it in a strongly "literate programming" style, so when I'm done, I'll hopefully have a clear, legible document describing the code and why it has been developed in the way it has that I'll be able to publish on its own - and something worth publishing really is the goal here. So, you all may have that to look forward to a year or so from today.

Here's to shaping the future of the industry!

edit:
Just a note that I keep on realizing more and more issues with returning values and whatnot...I'm starting to fear that making this work in a seamlessly OO style may require compiler alterations...I guess this is why I'm only going to be looking at a proof of concept project to start.

Sunday, March 30, 2008

"...We owe it to each other to tell stories"

So, I've been reading a fair bit by Neil Gaiman lately. I picked up American Gods at the beginning of the year and loved it; read through the first two Sandman collections in my free time early in the semester and plan to go back for the rest later; and bought his short story collection Fragile Things a month or so ago, which helped keep me sane over my Spring Break. It's in a poem from this collection, "Locks", and in his forward about it that the phrase I used to title this entry appears, and it's become one of my favorite quotes.

There's something about sharing stories with people, whether the stories are real or fictionalized, that binds you in a way to them. Stories allow us to share what's important to us without the awkwardness of needing to explicitly announce it. They allow us to share in one another's experiences and to understand why we are who we are. They provide outlets for the passing on of history and culture and morality and everything else in a manner so effective that in thousands of years, they haven't reduced in importance. Ultimately, the stories that we choose to share and the way we express and portray them, in a very real way, are a reflection of who we are.

Not much else to say, I guess. Just do me a favor: go out and tell some stories with the people you love.

Sunday, March 23, 2008

Not that any of you really care...

I think I finally realized something last night. I was on my way to Easter Vigil and, as I so often do, I was trying to explain myself to myself. For a number of reasons, I started asking myself the question of why I still consider myself a Catholic - not an uncommon issue for my to examine. Usually this issue comes down to fussy points of theology (specifically the fact that I'm about the only person I've ever met who likes the concept of Purgatory - as a process of purgation, not a "place" of condemnation, which it certainly doesn't have to be), or something about the nature of the church as an institution trying to exist outside of time providing it more stability against the zeitgeist or whatever. While these issues are certainly relevant, I realized that it really comes down to something much deeper and much more simple, the nature of the Mass.

I've never really felt any sense of great grace at any sacrament; I don't even know if I believe in transubstantiation, but there's still something about the Eucharist as practiced by that Catholic church, and the Mass which is built around this experience, that is incredibly powerful when I sit back and think about it. Whether or not we're actually consuming the body and blood of Christ, through this shared experience, we, as the body of Christ, are united.

Sure, lots of other Churches practice communion, but it's a different experience. When I'm at mass, I know that I'm having the exact same experience as individuals around the world and all through time. I know that at almost any time of the day, there is communion being share somewhere on the earth and that I could attend a Mass in any language and feel the exact same presence. More than this, I know that in 100 years, if my descendants are still practicing Catholics, they'll be experiencing the same Eucharist, just as those a hundred years ago would have. So it's not just within a specific place of worship, but across and and space that the universal experience of the Mass brings the body of Christ together in spirit.

I probably could have thought of this before, but it hit me yesterday, and it made the Easter Vigil that much more meaningful to me. I still think that the Church is too bogged down in bureaucracy; disagree with the remaining "one true church" doctrines; consider the various bits of theology about Mary to be fairly shady; and feel that the Church as an institution needs to bitch about abortion a bit less and about poverty/social rights a lot more (I think that 90% of the remaining problems in the Western church could be solved through a more active laity), but now I know why these issues haven't done more to pull me away.

Just a side note. I went to a CRC (Christian Reformed Church) church today that people always tell me I should go to when they find out I'm Catholic. Apparently, having communion every week(!), a pastor who wears and Alb, and using a heavily modified version of the Catholic liturgical order is supposed to make it much more like Mass. It was a good service, and I can see why so many people I know like this church, but seriously, it was still absolutely nothing like a Catholic service. The primary focus is still on the lesson and the general atmosphere is just completely different. While I understand why most people enjoy the greater level of focus on the specific community, I've always preferred dialogue within smaller groups to long sermons and overly prepared witness statements. Those things just aren't engaging or even terribly spiritual for me. In any case, if I were an ELCA Lutheran, I may have been converted, but alas for you all, I'm not. Good try, though, Dutchies =P

Wednesday, March 12, 2008

**** you, Bill Keane

Most of you are familiar with the depth of my hatred for the daily syndicated comic strip Family Circus. I find it trite, humorless, and on occasion offensive. I have no clue how this trash has lasted as long as it has, and I vomit in my mouth every now and then when I hear people refer to it as legitimate Americana. I've recently rediscovered the blog "Marmaduke Explained", whose author may very well hate Marmaduke and its senile author even more than I hate Bill Keane's worthless career...I think those of you who followed that link see where this is going.

Every now and then, starting today, I'm going to dig through the garbage heap that is Family Circus and explain to you all in blunt terms what is really going on. Lets get started, shall we?




Jeffy is a spoiled materialistic brat who wants to drive his parents (already suffering under the strain of their father's misogynistic need for his wife to not enter the work place) into bankruptcy.




Dolly and Billy insist on pretending that they still perceive time as children so as to avoid the indescribable pain of confronting the truth that they haven't matured or learned a damn thing in their 50 some years of "life".




Jeffy killed another hobo. He's also a compulsive liar.




Much like his siblings, Billy is a consumer whore.

OR

Billy, knowing that God and the laws of time care nothing for him, has little desire to better himself and instead devotes himself to the television in an empty effort to dull the pain.




Bill Keane powers his entire empire on the tears of children.

Sunday, March 2, 2008

The Freeing Power of Catholic Guilt

So, I like to make jokes about how I'm occasionally compelled to do things out of my "Catholic Guilt". Sometimes, this is true, but mostly, for the last several years, it's a lie. Certainly, when I was younger, there were plenty of things that I did out of a sense of guilt or fear of guilt; but these days, I like to think that most of the things I do for people are out of love or the occasional sense of obligation (failing to meet obligation can feel a lot like guilt, but I'd argue that the cause is fundamentally different). Honestly, my "Catholic Guilt" has, over the years, re-expressed itself as something much more positive in my character. What began as a sense of uncleanness whenever I failed to live up to what I felt was expected of me has been replaced by a freeing knowledge of the simple fact that I've already failed more times and in more ways than I can count, and that that doesn't matter so long as I keep on trying to do better.

Those of you who know me know that I'm fond of jokingly saying that I'm a horrible person. However, the simple fact is that, compared to what I could be, it's true. I'm an awful person...and so are you. Since we're all awful people, who gives a damn that we are? The only thing that I have anything to worry about is that I'm constantly striving to be a little bit less awful; that I recognize my failures instead of justifying them; that I come to understand how my failings can be turned to good.

While I don't know any Christians who wouldn't admit that we're all sinners; I honestly can't say I know many who handle this fact with much grace. In their behavior, and their justification of it, too many of the people I've met seem to be thinking that "we're all sinners...except me". They're so worried about committing some "big" sin that they overlook their day-to-day behavior; so worried of falling off the horse that they don't realize that it bucked them off years ago and they've been sitting on their ass without moving down the path ever since. They spend so much time trying to justify their actions and their beliefs, needing to know that their way is, some how, "right", that they forget the big picture: that we live in a fallen world where sometimes it's impossible to do things right; that sometimes we need to settle for doing things best; that, fundamentally, it all comes down to one thing (which is, of course, love).

That's it, I guess. I mean, obviously, there's more when you start thinking about it, but I'm pretty sure that's all I wanted to say. If anybody is curious about where this came from, feel free to ask me individually; it's just not the sort of thing I feel like throwing out there...and the guilt caused by providing a fabricated cause like I was planning to would be unbearable. =P