Yet another Python web application server has shown itself: PythonWork. After a quick glance around its CVS, it seems to be similar to Struts. It ties itself into Apache via mod_python, and uses Zope's Page Templates.
I managed to make time yesterday to get out to see another movie. This time it was Shattered Glass, a film about a young writer for The New Republic named Stephen Glass (well played by Hayden Christensen), and his unraveling when his latest piece in the magazine is called into question. The intoxicating element is that it's all true. The movie does an excellent job retaining as much of the real pieces as possible, including the false home page of Jukt Micronics, a company Glass fabricated for the article Hack Heaven. Hack Heaven was turned out to be the undoing of Glass when Adam Penenberg (played by Steve Zahn) at Forbes.com started looking more closely at the piece after his editor showed it to him, asking, "why didn't you get this piece?"
The responsibility for dealing with the storm that's about to be unleashed falls on new editor Chuck Lane (played by Peter Sarsgaard). At this time, Lane is not liked by the writers in the office, and is viewed as an editor with a grudge against the writers who were loyal to the previous editor, Mike Kelly (played by Hank Azaria). Kelly is viewed as a "writer's editor," someone who always backs his writers (the real Kelly ultimately went on to become editor at The Atlantic Montly, and died this past April on assignment in Iraq). Near the halfway mark, the movie does a subtle shift of focus from Glass to Lane. Lane is trying to find as many hard facts as possible so that when the Forbes piece is published, The New Republic can still stand strong. At this point, it is assumed (because Glass keeps insisting that he was at these places, and did nothing wrong) that Glass was duped into the story by a group of clever hackers. At this point also, the movie shifts from being merely an interesting office politics story and develops into a bit of a thriller. Glass becomes increasingly creepy as the movie goes on (even before it turns into a thriller), stemming from a statement he makes in the opening moments of the film about playing the role of modesty in the midst of more audacious writers. He shrugs off calls from other magazines (Harper's, Policy Review) when asked "are you talking to Harper's?" with "No, it's probably nothing." Whenever he's asked by his editor (either one) to come into their office, Glass's initial reaction is a (slightly loud) "are you mad at me?"
The film does a good job of portraying this story as the story itself, and doesn't treat it as a sign-of-the-times piece where the more literary magazines are under pressure for flashier stories and content. The issue comes up, naturally, a few times in the film, but it's more background noise than anything else. The movie is punctuated throughout with Glass speaking to a journalism class at his old high school, and we get some insight into how he could get away with what he did from a couple of statements he makes to the class (namely in a bit about how to get around fact checking), but doesn't dwell on Glass's history to try to find out why he printed so many lies. Most of that comes off in Christensen's performance itself, and the audience is trusted to put together the why and even a bit of the how.
Overall, another good movie with solid performances and subtle filming. This and The Secret Lives of Dentists has really got me enjoying the movies again - going to the older theaterplex that is now all indie/art house movies, eating popcorn or Pizza, and getting lost in these stories. The new stadium theaters are nice, but having smaller theaters for smaller stories is so much more fitting. I'm still amazed at how this town has gone from one dedicated screen just 2-3 years ago to having 11.
Last night, at what I thought was my last chance, I saw the movie The Secret Lives of Dentists. It was great - very fascinating. The story revolves around a family of two dentists, David and Dana Hurst, and their family. Campbell Scott plays David and he absolutely owns this movie, as he suspects his wife of 10 years is having an affair. Unlike other recent movies about infidelity, such as Unfaithful, David's focus becomes about avoiding the issue. His thinking is - if he doesn't bring it up, it will resolve itself naturally and life will go on. If he brings it up, his wife will leave and all of the associated work and madness (separation/divorce proceedings, custody agreements for their three daughters, etc) begins.
The Hursts have three young daughters, and the unspoken tension between the parents is causing subtle physiological impacts on the girls. The movie shines in this portrayal of a family with exceptional performances by everyone, particularly by Campbell Scott as the devoted father. This is shown most strongly as the entire family comes down with the flu over the course of five days and the movie keeps itself contained primarily within the Hurst's home, since the principal focus is on David.
David concocts an imaginary friend during this time in the guise of a trumpet player as Denis Leary. David always tries to stay in control, has perfect teeth, etc. Leary's character is his opposite, David's vulgar side, always suggesting the sharper thing to say, to think, etc. There is a well played dynamic between the two, and it gives Leary a chance to be, well, Leary.
The movie also sneaks in some flashbacks and imaginations. David's imagination plays out very naturally as he has moments where he tries to plug in what really happened with his wife at the times he suspects her of being unfaithful. These are those little what-ifs we all imagine - "If we all went to the store when she asked, would she have still stopped by the house of her new lover?", "Maybe she showed up so late because there was a plumbing problem at the office and she couldn't reach me at the cabin?"
What made the movie such a good experience for me was how naturally it all played out. I actually found myself jealous of David's life - even though we all suspect what's going on (the story never strays from his point of view, for all we know we could be misreading the signs as much as he is). It is played out subtly and deftly. At one point, Leary's character asks David "why are you fighting for all this?" I was impressed by David's response, and I've been thinking about it since. It's not the big climax of the story, but in my opinion it is the big transition point right before the end. We're given final insight into his character. And it's a motive that we may or may not like as an audience.
Great yet subtle performances make this a fine film. Curiously enough, it's still playing here. It's been playing for a while and every week I miss it thinking "that's it, that's my last chance." One of the girls at the movie theatre last night told me that it was making more money than some of the other ones that had been there for nearly as long, so they opted to keep it. Excellent. Salt Lake has become a very good movie town.
Another strange article from Wired News: Feel Free to Jack into My iPod. There seems to be a growing trend in some areas for people to jack into each others iPods. While the general concept has always been around, this is interesting. There has long been a connection between iPod owners. For them to be so bold as to approach strangers with iPods and swap for a few seconds shows the strange appeal and pull of the device.
The article goes on to mention an interesting concept: local broadcasting to other iPods, over something like BlueTooth or 802.11. You could have a setting like "Share what I'm listening to," and other iPods could browse the local area for sharing iPods and listen not only to the song but pickup the ID3 data as well. One suggestion in the article was that the iPod could even remember what was listened to, to try to drive people to the iTunes Music Store or to a physical store to pick up music they've heard from others they've found interesting. Using the iPod's rating mechanism (tap the select button twice, and you get to a rating screen that easily lets you assign a zero to five star rating to a track - that rating syncs back up to iTunes), you could mark which songs you heard that you personally found interesting so that you could find them later.
Between iTunes Music Sharing (rendezvous enabled streaming built into iTunes 4) and iPod Jack Sharing, there is an interesting new social dynamic going on here. Since the personal broadcasting in iTunes shares by streaming to local networks instead of sharing files directly, it's making music sharing over a network more friendly and personal than the anonymity preferred (with good reason) by the big file trading networks. If Apple can continue to capitalize and expand on this, they're very likely to stay at the top of the digital music game for some time to come.
There's a fascinating Wired News story about iTunes and "Playlistism" on campuses, whereby a whole new (and not at all unexpected, at least to me) form of social judgement is being carried out based on the content of what people have in their iTunes playlists.
I've found a new pedal - possibly a fleet of pedals - that I must at some point acquire for the noisier side of Eucci & Co.. The latest find in the growing array of impressive hand-built pedals is Total Sonic Annihilation by Death By Audio.
As best as I can understand at this point, Total Sonic Annihilation is a loop monster - not a sample loop, but effect chain loop. It has its own in and out jacks, and a send/return pair that you chain other pedals and noisemakers on to. What I can't figure out just yet is whether the TSA pedal does any modification to the audio signal, or if it's basically controlling the amount of circular feedback that goes through the effect loop. Either way, having a sturdy pedal to do this type of work is a lot better than my current set up which uses a lot of creative cabling and probably is pushing my little mixer to the limit. I want to get back on the analog big-noise wagon, and this puppy looks to be the ticket.
Nicely, the pedal's creator offers a lot of customization options. I think that I'm going to order mine without any detailing at all, and put a toggle switch instead of a stomp on it (I treat my pedals more like analog synth modules than stomp boxes, and making them more "table friendly" is a nice option). Maybe some other options too.
Now I just need some more Z.Vex pedals and some (any) Frostwave. And I just found out about Effector 13 as well. sigh. Too bad I'm broke...and ski season is approaching.. and I should probably pay for this semester of school before I start looking at next semester. sigh sigh sigh sigh.
It's cool that there are so many options in pedals now manufactured by individuals or very small companies. It should keep me happy until I can get an EMS Synthesizer.
A recent O'Reilly Network article about using WebObject's "Direct To Web" technology by Josh Paul got me thinking about a new term: RBRAD, or "Rule Based Rapid Application Development."
Direct To Web debuted a few releases ago in WebObjects, and it basically builds a full web application for data management based on an EOModel (the object model mapped to a data source using Enterprise Objects Framework). I played with a demo of WebObjects a couple of years ago and was stunned by D2W. I was expecting a full WebObjects application to be generated, complete with .wo (the HTML components) and class files for all of the different class views. Instead, I got a self contained application that generated all of the HTML views and handled the web actions, based on the model and a corresponding set of rules - there was basically no "generated code" that I could see. And the generated application is fairly rich, but it's primarily targeted at one purpose: publishing a corporate database on the web.
To a lesser degree (or greater, depending on ones point of view), I've been seeing this take off everywhere. In particular, the Workflow Engine in the Zope Content Management Framework alone can be used to build custom applications just by writing new rules - either by writing full Python workflow agent components, or by using a through-the-web tool to define states and transitions and all their rules and constraints. Other rule engines found their way into the CMF core, and Plone has built itself on this framework and runs even further with the concept. In particular, add ons like Archetypes and Portal Transforms (and I'm sure there are others) can all be grafted together to build fairly complex content/data driven applications that share a common user interface and whose model and view layers are as much (or more) controlled by the collaborating rule engines as anything else. Other systems, such as Struts, seem to be applying similar principles on the Java side.
We've been playing with various systems along this path in house, most of them home grown. There's a lot to be done, but the benefits have been staggering thus far.
A label that needs to get on the iTunes Music Store right quick is Tzadik, home to a great collection of avante garde composers and artists.
Including the great Merzbow release, 1930.
The O'Reilly Network has posted coverage of the keynotes and congregations of O'Reilly's Mac OS X conference (full coverage, including weblog coverage, is also available).
From reading the article, I found out about a couple of cool new tips and tricks in Panther. The first is a new trick that the incredible Cocoa text handing system offers: hitting option-escape brings up a word completion list (very quickly too - much faster than the auto-complete option in XCode). On top of the other benefits of Cocoa text fields and boxes (automatic spell checking, basic emacs bindings, etc), this is a cool little feature to have.
The other thing is a small enhancement to the "Force Quit" system. Command-option-escape (wow - I didn't realize the similarity of those chords until now) brings up a window listing running applications and a button to force errant (or non-errant) applications to quit. This has been in Mac OS X for a long time and is a much more formal version of its Mac OS Classic equivalent which used the same combination. The enhancement is - if you add "shift" to that chord, the system will force-quit the front most application. Since most of the time, it's the front application that's causing problems, this is a nice touch. You can also see this in action by visiting the Apple Menu, which has the force-quit option, and hitting the shift key. The menu option then becomes "Force Quit NetNewsWire" (or whatever application is in front).
That last feature is a nice long-running feature of the Mac OS menu system, wherein the menus change according to any key modifiers that may affect them. This is often a good way of learning extra keyboard shortcuts. It also keeps the menus clean, while offering options for power users. For example, to restart the computer, selecting the unmodified version of the 'restart...' option on the Apple Menu yields a dialog box asking if you're sure (while also giving a countdown of two minutes, in which you can cancel or continue). Holding option down makes the ellipses go away (remember, ellipses in menus typically means that a dialog box will come up), allowing for a quick restart without the extra confirmation step. It's an extra little shortcut that has to be explicitly enabled (using the option-key modifier), but is nice to have for people more comfortable with the machine. It's also nice that the system communicates this change by updating the menu to show that there will be no dialog box, which leads one to expect that the action will happen immediately. It's a subtle but nice touch.