The Eucci & Co. universe is expanding. Or is it returning to itself? Rive has gone live as the latest incarnation of my old tape label, rivcs, and features the new double work "Strawhill / UDD". While most readers will find the Strawhill variations a noisy grating mess, the minute details in the dark ambience of UDD (originally commissioned for Kate Cheuffer's Projects for Prisons) may be of interest to some.
Thanks: Kate Cheuffer, Fay Marcy, and David Turgeon.
I think that a televised debate between Bush and Hussein would be (and I apologize for emphasizing the following word), awesome. Seriously. I think this is a great idea. Who wouldn't throw a party and watch this? It's too bad it well never happen.
The United States fired a warning shot Tuesday across the bows of France, the leading critic of its Iraq policy, saying it would view any French veto of a new U.N. resolution authorizing force as "very unfriendly." [Tom Heneghan and Nadim Ladki, "US Warns France in Struggle Over Iraq", Reuters, Feb 25 2003]
Nice. A major first world country that has actually seen full scale occupation and war up close in the last 60 years actually doesn't want to go to war, so now we're threatening them?
There's more:
Senior U.S. officials have been quietly dispatched in recent days to the capitals of key Security Council countries where they are warning leaders to vote with the United States on Iraq or risk "paying a heavy price.""Hey kids, we've got money and power, wanna help us fight?"
For some of the countries, such as Angola, Guinea and Cameroon - poor African nations whose concerns drew little attention before they landed seats on the council - there is the possibility that supporting Washington's drive for a new U.N. resolution authorizing war may reap benefits down the line.[Dafna Linzer, "U.S. officials using back channels to push for U.N. votes", Associated Press 24 Feb 2003 (viewed 25 Feb 2003)]
Links via Cursor
Some small updates have been applied to Industrie Toulouse:
I'm sitting at the Meredith Gallery listening to an somewhat old ELW (my pre-Eucci noise collective) tape. It's from spring 1999, at the beginning of a very active year for those involved. This particular piece, Bathroom Fixtures (originally meant to go along with a series of paintings under the same name as a collection of tape loops - one for each painting), blows my mind. It's utter cacaphony of a sort that we haven't done in years. It's almost entirely done with guitar pedals. At the beginning of the year, following a breakup of a long-time relationship, I put my energy into an all-guitar-pedal (with no guitar, no synth, just a closed loop feedback circuit) release that was then put out on 24 very cheap tapes as Because 1999 Needs an Enemy / Accelerate Kate Moss. By March I had gotten back in contact with an old friend, Cybele, who had worked with me before on music, entirely by mail. Now she was living in Virginia a few miles west of me. After submitting a terrific piano+tv+loop+distortion piece to me, we got back together, this time collaborating in person. We did some very (VERY) small shows around the area, often long droning or percussive pieces, and released two tapes in May alone: Audio ELW Plays Whitefield and the live set Cooler Muse. Plays Whitefield featured our most intense (ever) live performance, Whitefield; it also featured a fast cut,punch,loop,punch impromptu jam using an airing of Scared Straight as the instigator and principal source. I think that the instrument/pedal collection had just recently grown to include a Big Muff Pi and an old DJ Sampler from the Pawn Shop. The frontside of this tape is grabby and violent; the back side widened the net a bit with Cybele's piano piece, the chaotic soup of Bathroom Fixtures, two experimental trip-hop variations, and My TV Wife guitar feedback piece.
I'm revisiting this because I'm putting together the next EUCCI release - which may turn into a family of releases - which may turn into a small online label (possibly a sublabel of No Type). Certain bits of the pre-modern belongs to us (the first ELW cd/mp3 collection) catalog have not made it into mp3 form, and I had gotten curious about the forgotten tracks of early 99. It's four years since some of these were made, and it's been nine years since the ELW collective started. Trying to decide what of it to bring forward could be a long task. Coupled with the amount of new(ish) material, it could take even longer. And that's not what I need to experience right now (I'm so behind on the project I had planned to do last fall).
Things are different now without the likes of Cybele, Elwe, Kate, John, Jason, Jonas, and others who have played part over the years. It's back to just me, almost 10 years later, wondering what to do with it all.
Today, Salon reviews His Name Is Alive's latest (and apparently last) 4AD offering, "Last Night", a rollicking new R and B and B and B styled album "recorded in a basement, a bedroom, and at rehearsal". The entire album is available in mp3 form at the Time Stereo site (Time Stereo being a charming tape/cdr label ran by primary HNIA member Warn Defever).
Also available from Time Stereo - The Electric Pinecone. I want it , I want it, I want it.
Writing about XDocs (err, InfoPath), Jon Udell says:
10. It represents a paradigm shift.Hmm. We've heard this story before. Bento/OpenDoc was an open standard that provided the same idea long before people started putting all of their data into angle brackets and automatically assumed that everyone else could read that data fresh off the bench. Sigh. Killing OpenDoc right as it was gaining traction is, in my opinion, Apple's biggest mistake (or, at least, their biggest sin). Mac OS X has a lot of really cool little applications, which I like. There are small but very effective applications like NetNewsWire, OmniOutliner, BBEdit, etc, and in general there are good inter-application communications in OS X (ie - being able to pick up an RSS feed in NetNewsWire, command-tab to switch to Spring while still holding the RSS feed with the mouse, and dropping a news feed onto a Spring Canvas), but it could always be better - I would love to be able to natively host an OmniGraffle drawing in OmniOutliner, or even to use BBEdit from within NetNewsWire's weblog editor, and that was all possible back in 1997, but in the exciting new operating systems of today - it's not!
I try to avoid the "P" phrase. But there is no other way to describe InfoPath. At the dawn of the .Net era, Bill Gates introduced the notion of a "universal canvas" -- a viewing and editing surface for anything that can be represented in XML. InfoPath isn't that yet, but it's a huge step in the right direction. [Udell, Jon, "Ten things to know about XDocs", InfoWorld Feb 20 2003]
I did just make the argument that Apple did the right thing by not exploring any massive new operating paradigm's in Mac OS X. But at the same time, it's sad that now I look at Windows for the best in theoretical operating environment experiments. And always, Windows botches it. Cool ideas, mediocre execution (at best). I look back to 1988 to 1994 as the last good years of operating system planning. It's when Pink/Taligent, Cairo, Copland/Gershwin, OS/2 2.0+, etc, were in the works.
I hope that now that the Mac OS X transition has been made and the foundation is there that some exciting new developments can occur in this space that keep the simplicity of OS X's interface in mind while improving the way we work with our machines.
I'm checking out Spring 1.2 from User Creations. Spring is an interesting sort of personal desktop full of interactive objects all arranged logically instead of physically. In the attached screen shot, I just dragged the icon for Jon Udell's RSS feed from NetNewsWire onto a Spring canvas, and got a menu displaying all RSS headlines from his feed.
Spring is an interesting application. There are times when I really wonder what would / will happen if we move beyond the file and folder paradigm. I don't see that paradigm going away anytime soon though - looking at my real world desk and looking at my computer's desktop, it still makes a lot of sense. But then again, looking at the Spring description, it comes close to what I was talking about yesterday in regards to Taligent's People, Places, and Things metaphor. I also think of the long-overdue Object File System promised for NT "Cairo" that is expected to actually show up in one of the next Windows releases (I don't recall if it's expected to show up in Windows Server 2003, or if it's a Longhorn technology).
I wonder how well it will all actually work, and how much it will get used. There was a lot of faulting of Apple for not taking a chance with the Mac OS X transition to really change the desktop paradigm - especially given the fact that Mac OS X is based off of the great NeXTStep (which never had as good of a desktop paradigm as classic Mac OS, but NeXTStep (or at least OpenStep) was a motivator for later Taligent designs). While the Mac OS X Finder has had its problems, I myself like it. It's simple and familiar - not only because I've been using Macs for years, but because on my physical desktop there are folders and documents. And I tend to treat both desktops the same (I actually try to keep them clean - something that's placed on the desktop lives there only temporarily, usually). Thinks like Spring are fascinating, but my mind doesn't map to what Spring does in the same way I interface to my regular desktop. Spring has great promise, however, and I'll keep playing with it.
Something else I started looking at, but haven't had too much time to play with, is Konfabulator. Konfabulator runs really-really-good-looking small desktop widgets, apparently scripted using JavaScript (I've heard Applescript can be used as well). About 110 widgets have been made already, doing everything from a yellow submarine to resource monitors. It's another way of doing highly interactive desktop objects. At least there are some really creative minds looking at new ways of interacting with their Macs. I look forward to the future of all of these projects, along with whatever Apple themselves have in mind.
So last night I was presented with 32oz of High Life here at work - but it was when I was about to leave. So today, I had to drink it in order to leave :). Good times.
Richard Jones, the primary developer behind the Roundup issue tracking system (and also the cool new Python Package Index, described in PEP 301), pointed be towards the Roundup instance being used by the Fresco project. The Fresco instance has some cool custom features which I'm looking at doing on our instance, primarily milestone tracking. Milestone objects in Fresco's tracker are small places to gather tasks and bugs together under a particular release plan. Milestones also have their own workflow, independent of the ones used for bugs/tasks, and other milestone-specific data such as release date.
What I'm wanting to do is to introduce a notion into our Roundup tracker that is similar to Taligent's ideas of Places, or Grooves Spaces (if I understand Groove correctly). A place will most likely be a project, and a project will have its own milestones within it. People hang out in these places, working on issues and other documents of interest. It's what I had envisioned we would do with Plone on our intranet, using CMF Collector as issue manager, but Plone turned out to be too slow, and the way we were using CMF Collector turned out not to scale (when you're building a lot of common-base software and have distinct Collector instances for each project, it's hard to know where to place certain issues. It was also difficult to track personal assignments across many collector instances). What I hope to do with Roundup (and this may or may not happen) is to keep the Place/Project and Milestone objects small and fast, like most Roundup things, so that they exist purely as a way to track project related data in a way that doesn't get in the way of managing the project itself.
I think Taligent was on to something with its People, Places, and Things metaphor (Potel and Cotter 1995), and I think Groove's workspace's offer up something similar - places to set up and tear down during the lifetime of a project that hold everything relevant to a particular project. Roundup's speed and flexibility, along with its email integration, allows for something similar to be made without too much effort (I hope ;).
References
Potel, M., and Cotter, S. Inside Taligent Technology (Addison-Wesley, 1995)
A 32oz bottle of Miller High Life (the champagne of beers) was just placed on my desk. At work. Life's cool.
A couple of years ago, I fell in love with flight simulators all over again. I was initially really into them on my Commodore 64, and would put up with the nine hour load time (wink) of Flight Simulator II and Jet 2.0, and immediately crash because I was too young to realize that real flying is difficult. I'm not sure exactly what it was that got me back into flight sims, but the presence of Fly and X-Plane for Macs got me back in. These are two really cool simulators. X-Plane wasn't the best looking simulator (X-Plane 6.x has improved a lot), but made up for it with a large amount of really really cool things to fly, including actual X-Planes like the X-1 and X-15. Fly2k, on the other hand, had very few planes but meticulous detail both inside and outside the plane. In X-Plane I'd tend to fly around just for kicks, but I actually tried to learn about flying in Fly2k. I found a nice Salt Lake scenery pack (this was when I was living back in Virginia) that included a detailed model of the airport (no other buildings though). I'd fly around in the little Cessna 172, using simple VFR rules (or IFR, as in "I Follow Roads" (wink)), but my favorite thing to do was to take off or land in a light rain. Fly2k had full-featured cockpits, and unlike other flight simulators, it didn't try to cram the entire dash into a single display. This allowed for great detail on all the switches and electronic gadgets. So it was nice to start up, set up the plane, and start out in the General Aviation area of KSLC - surrounded by other static Cessna's. Fly would let you start up an airplane completely manually - which, even on small planes, requires so much more than starting up a car. I don't know why I loved this part of the simulator so much. But I got a lot of glee from flipping the switches and pushing the gadgets on my flight yoke (yep, I bought a yoke and rudder pair) and listening to the airplane come alive. But even better than starting up was that rain landing, coming in to KSLC, taxiing, parking, and then shutting down the parts one by one, listening to the rain. In a similar vein, X-Plane 6.10 (I believe) introduced actual roads with little virtual cars on them moving about. A rainy or sunset flight here was beautiful too - seeing lines of freeways with little lights moving off into the distance or directly beneath you. For those of us who have many years yet before we'll get to sit in a real plane like this, it's a joy to fake fly. I miss flying, even as a passenger. I'd do it a lot between New York and DC because the Delta/U.S.Air shuttles were so cheap on weekends. But on weekends where I was recovering from the previous, or just got up too late, a fake flight from my little Fredericksburg den/studio was always fun. It's curious that I haven't done this lately.
In any case, I knew a long time ago that Richard Harvey, lead developer/engineer at Terminal Reality (creators of Fly/Fly2k/Fly II), was diagnosed with cancer. I wasn't aware, until today, that on Jan 30 2003 he left his final post at the AvSim forums, knowing that it was time to go home and let nature take its final course. I wish him Godspeed, and add in my thanks for providing a great fake-flight experience. How else would I have ever learned that I get great glee out of starting up and shutting down airplanes? Now, if only I could figure out why ;).
Among Richard Harvey's personally approved good-things-in-life is this:
Appropriate Drinks:Ooooh yeah. While living in Virginia, I had access to some great east coast microbrew root beers that ALMOST matched Weinhard's (which I found out about AFTER I left Utah), but not quite.
There is only 1 -- Henry Weinhard's Root Beer, fully chilled, no ice. [ed: Weinhard's is a local brew from Seattle, available in Utah though!]
Speaking of approved good-things-in-life, I've been getting a lot of enjoyment out of Willie Nelson's version of Time After Time (from "The Great Divide"). But the most beautiful thing I've heard since my Grandfather passed away last October remains Johnny Cash (and Family!)'s version of We'll Meet Again from "The Man Comes Around". Of course, these are only my personal recommendations - your mileage may vary.
Addicted to Joy, j.Shell
From this morning's New York Times, (courtesy of This Modern World)
The fracturing of the Western alliance over Iraq and the huge antiwar demonstrations around the world this weekend are reminders that there may still be two superpowers on the planet: the United States and world public opinion.
In his campaign to disarm Iraq, by war if necessary, President Bush appears to be eyeball to eyeball with a tenacious new adversary: millions of people who flooded the streets of New York and dozens of other world cities to say they are against war based on the evidence at hand. [Tyler, Patrick E. "A New Power in the Streets, New York Times 17 Feb 2003]
I just found out today there's a new Ryoji Ikeda release, "Op.", reviewed in this weeks "The Brain" (which also mentions an upcoming Nurse With Wound release - a group I need to catch back up on).
Ikeda is a terrific minimalist composer hailing from Japan. And by Minimalist composer I don't mean this crap that passes for minimalism in the states (Glass...pfeh). Ikeda's recordings to this point have been heavily electronic and precise and stripped absolutely bare - moving about in very pure tones engineered to take advantage of assorted pyschoacoustic effects (yielding markedly different reactions when heard on headphones than on proper speakers, with some pieces engineered to change tone and phase as you moved throughout a room). The new release especially captured my attention as a "no electronics used" piece - Ikeda applies his minimalist structures to strings, yielding new warmth alongside some shrill pitches.
The samples available in the review piece at The Brain sound simply beautiful. The release is ordered and I'm anxious to fit it in with Lech Jankowski's beautiful soundtrack for the equally beautiful Brothers Quay film Institute Benjamenta, John Zorn's Duras: Duchamp (the Duras half being the quieter, more beautiful part here), and perhaps some Gould or even Aranos to round out rainy sit-still-and-don't-move-high-above-the-pavement days.
There was an Eucci CD-R floating around a couple of years ago titled Antechambre, featuing more classical leaning material of my own and of some great composers and players that I knew. We've all scattered across the globe over the past three years, for better or worse... It's a side I've been wanting to get back into, but I haven't found anyone to take their place.
For the second time in the past year, I've gone out of the house with mismatched shoes, and didn't notice for many hours. I've never done this in my memorable life - until this past year.
Tonight I saw the movie Max (Reviews). Noah Taylor is downright terrifying at times as the young Hitler, fresh from the first world war at the time of the humiliating Versailles treaty. It's not an easy movie to watch, but it provides an interesting (if somewhat fictional) window into the times that the world was in, both in regards to art and politics.
It was a Whisk(e)y Valentines for me. Well, it started out as such, and my plans for the evening were to do nothing but whisk(e)y drinks - particularly my good friend, the single malt scotch. But as the night wore on, I ended up at a bar which had just recently acquired the best beer a bar can have on tap - Guinness. And they served it in *huge* glasses (at least 24oz). It was a good night. The next morning - not so good. But still - I'm quite fond of the concept of whisk(e)y valentines.
Senator Robert Byrd (D-WV) gave a great speech yesterday that is sure to be passed over in the media, which will probably continue to bring in the hired talking heads to bark against France. This path to war, and this administration, frightens me. We're going, whether we want to or not. That's the feeling one gets from Washington. It sure makes you feel all warm and fuzzy about democracy right? We have a leader whose elected status is dubious at best (which would also be the case if Al Gore was in the white house) taking near absolute power in the matters of warfare against a "possible" enemy. And all this time, there seem to be few other leaders with the balls to speak out against Mr. Bush's policies.
Yet this chamber is hauntingly silent. On what is possibly the eve of horrific infliction of death and destruction on the population of the nation of Iraq -- a population, I might add, of which over 50% is under age 15 -- this chamber is silent. On what is possibly only days before we send thousands of our own citizens to face unimagined horrors of chemical and biological warfare -- this chamber is silent. On the eve of what could possibly be a vicious terrorist attack in retaliation for our attack on Iraq, it is business as usual in the United States Senate.
We are truly "sleepwalking through history." In my heart of hearts I pray that this great nation and its good and trusting citizens are not in for a rudest of awakenings. [US Senator Robert Byrd, "Reckless Administration May Reap Disastrous Consequences", Senate Floor Speech Feb 12 2003]
Anyone who follows this weblog knows that I have been searching for a usable, useful, and fast web based Issue Tracking System. While I've used issue trackers for many years, I found myself working in a situation where most Issue Tracker offerings were too large for our shop and just working exclusively out of tools like OmniOutliner was getting in the way of communucation.
I have given Tracker numerous tries. This product, an excellent piece of work by Ken Manheimer, is old and abandoned. And it's slow - although its speed may be a result of some of the Python 2.1.3 issues (even after patching) that exist on FreeBSD 4.5. Speed, and apparent lack of compatibility with Zope 2.6, drove us away from this solution. But speed was a big factor.
Speed got worse when we tried a Plone solution, mixing in Plone content and CMF Collector (a half abandoned also-unfinished sibling of Tracker). I was initially quite excited about this setup. And we're still going to use the Plone bits to house documents, images, etc. But - it's too slow. It's painful to add new collector entries, which leads to issue-tracking-via-whiteboards and papers. Which, as many of us know, doesn't work when more than one person is involved. Too often, you're meeting in another place and think "oh, arg, I don't have the list with me" or "do you have the latest version of the list?" which is especially problematic as lists change and new issues pop up, and some cross out others.
So, we've come back to Roundup, now at version 0.5.5, after initially using it (with some success) last June. The user interface has improved nicely since 0.4, and is a bit easier to manage now that it's using Zope's Page Template system for templating. Security has also shown up, which I hope to use to enable a piece of our grand vision - letting customers see their outstanding issues (and maybe even submit them). And most importantly, it's still fast.
The new experiment we're trying is to have a single Roundup instance and dump all projects into it. We were running into issues with the last two Zope setups because we let each project have its own Tracker/Collector. This was fine at the time, but the number of shared resources across projects (workers, components, etc) is increasing. We had one product in the last system that was spread across three separate collectors - one for the base product, one for the two customers using it. It made sense at the time (primarily due to different principals involved), but now one had three places to keep an eye on for issues.
I don't know if this is the end of my search, but I hope I'm getting close. Thanks go to the Roundup developers for keeping Roundup small, fast, and really quite flexible (and big thanks for the documentation improvements since my last look!).
John Gruber of Daring Fireball writes up some issues with the Safari User Interface. I have a couple of counterpoints to some of his points:
I like the way Safari?s bookmark system works. I like the iTunes-like interface, and I really like the way that you don?t have to display all your bookmarks in the bookmarks menu. Nice.
But I don?t like that the Bookmarks window isn?t it?s own separate window ? like Downloads and Activity are. Instead, the Bookmarks window is displayed inline within any regular browser window. I?ve tried to like this, I?ve really tried, but I don?t. Plus, it?s somewhat confusing. When you?re displaying Bookmarks, the window title and Address Bar still display the name and URL of the web page behind the Bookmarks. But they?re not visible. [Gruber, John "When in Rome" Daring Fireball 07 Feb 2003]
Personally, I really really like Safari's bookmark handling. I like that they open in the same window. The screen in question not only manages bookmarks, but is used to open bookmarks in the same window. I use it frequently when dealing with the new army of bookmarks that I'm building that I don't want populating the quick-link bookmarks bar, or the bookmarks menu. I especially like the existence of the History item included in the list of bookmark items. The bookmarks view pops in and out so quickly that it's a joy that it's there. I don't want another window floating around that I have to pop to just to get to this list - I find this annoying about most other browser bookmark management systems, which is why I think most people's bookmarks in these systems are such a rats nest of links. People just hit "add to bookmarks", but never want to deal with managing them. Safari puts a nice UI on bookmark management (which Mr Gruber does like). It just also happens to combine bookmark management with actual bookmark usage.
What would happen if I had many windows open, one of them being the bookmarks window, and I'm cycling through them to find said window to navigate to a site that's not on my bookmarks menu? Which window would it open up on? The first window I was on when I started hitting the window-cycle key chord, or the last window viewed prior to finding the bookmarks window? I'm happy with this feature as it is. The one thing that I wouldn't mind is if you could toggle the "open bookmarks in new window" feature by holding down the command key when clicking (the general Mac browser key/mouse combo for "open link/bookmark in new window").
Mr Gruber also begs for abandoning the brushed metal skin. Personally, I like it. This one's a matter of taste though. I hope it stays, though. Some of the widgets (particularly the "search google" widget's resizing capability) don't quite match up to general Aqua toolbar expectations, but is a very handy thing to have in its own right.
I find Safari to be beautifully simple and fast. I want it to keep both qualities, particularly the simplicity. I'd rather time be spent addressing the remaining HTML rendering issues (ie - Plone sites have rendering issues, mostly dealing with CSS padding it seems; Safari also seems pretty random about how well it handles THEAD/TBODY/TFOOT table parts) than on weighing down the interface and preferences system with unneccesary components.
Jon Udell has a piece in the latest Infoworld cites the recent series of interviews with Guido van Rossum by Bill Venners. Jon talks briefly about the pre-J2EE days when it was generally speculated that most Java servers would be prototypes in portable code, and then compiled to native code. This apparently has not happened, and Java application servers continue to run happily in the JVM.
Of course you dare not build the application server itself in a high-level language like Python. Not, that is, unless you're a quiet revolutionary like Zope Corporation's Jim Fulton, architect of the Python-based Zope application server. [Udell, Jon. "Shipping The Prototype", Infoworld 06 Feb 2002. 07 Feb 2002.]
I'm in the process of wrapping up an intense little customer project - that is on schedule - done in Zope. The project is interesting because we took a different route to development than usual. Many of the custom Zope applications that my team develops are SQL backed, and are fairly analogous to many PHP sites: scripts and templates and SQL code making up the bulk of the application. This time, however, we've done entirely custom business objects written in Python and stored in Zope's object database. As I mentioned recently, this is sometimes a tricky venture in Zope 2. But it's paid off. We're on schedule, and this includes responding to a fairly significant change request from the customer at our first milestone meeting. I expected this change to push the deliverable date for the project back a couple of days, but the architecture absorbed the changes (fairly) easily.
An interesting bit from this project is that we need to store some fairly flat data in order to accommodate these changes. My boss kept saying "Oh, we'll just stick it in Gadfly [a simple pure-python relational database] or something." Instead, I made the decision to use BTrees, and represented the data needed as small Persistent Python objects; to speed up the requisite queries, I added a couple of BTrees to act as indexes. My boss's (valid) concern is that an object database like the ZODB just doesn't have the same memory and write optimizations as most relational databases. I'm hoping this project will give us better footing to do more pure Python Business Object based development in the future (where it fits the bill) as we start to look ahead to Zope 3.
Considering the architectural implementation, the requirements, the short time frame, and the very large possibility for expansion if the project in question actually gets used, I could not imagine doing what I just did in anything but Python, and with any application server but Zope. Fundamentally, I could have gone with the servlet based WebWare and delivered the same business objects, but I would have been on my own when it came to persistence, security, and user management.
Jon Udell says "the classic phased life cycle of software development -- design/develop/test/deploy -- is dissolving into a continuous process." While the mode of development (at least, on project's that I maintain) vary from project to project, it's quite something to be able to show a milestone release instead of a prototype and be able to respond to changes in a timely manner; instead of showing the prototype, getting feedback, and using that feedback to make the "real project". In the last six years, especially, I have never seen one "throw-away prototype" (encouraged by some development processes) actually get thrown away.
From the Zope 3 Dev mailing list this morning:
I hereby decree that Zope3 doc strings and text documentation files should be in reStructuredText format. Initially, this should apply to new doc strings and text documentation files, but we will convert old ones as need be or as time allows. [Jim Fulton, "FWIW: I endorse reStructuredText", zope3-dev, 5 Feb 2003]
This is great news. It should help the docutils mission to bring intelligent doc-strings to Python. And reStructuredText isthe best structure enhanced text design I've used yet. For most document writing needs, it does a great job. There's still a good size list of things to do, but nothing show-stopping. I've used reStructuredText as the format on two documentation efforts for customer projects and had far fewer problems than with... well, just about any other format out there. The project manager, David Goodger, pays close attention to stylistic details (meaning The Chicago Manual of Style), yielding excellent output.
The American Prospect offers up criticism of the media's (unsurprising) relentless coverage of the Columbia disaster.
The network and cable channels covered the tragedy nonstop. Most of the dailies went on page after page after page -- the puzzle of what caused the disaster, the human-interest aspect, the anguish of a failed mission, the bizarre debris falling from the sky, the reaction of the great and the humble. This was all newsworthy, even riveting, but only up to a point. [Robert Kuttner, "Hero Worship" TAP Web Feature 02.05.2003]
The article goes on to talk about the lack of criticism of the genuine usefulness of manned missions. Few experiments done on manned missions, for example, seldom get published in the first-rate scientific journals. I personally think that we should continue pushing out into space, but there has to be genuine purpose. There needs to be a plan, such as getting back to the moon (and having a good reason to do so) or going to Mars - a real roadmap that NASA and other space agencies can stick to. Or, funding and research should point itself in the direction of commercial space "tourism", with genuine competition to find new ways of getting in to and back from space.
My own disgruntlement with the relentless media coverage lies in their amazing ability to think they've solved the problem of "what's going on" or "what went wrong". The "DC Area Sniper" story last year was a prime example - the media coverage was disproportionate to the event (on average, the sniper(s) killed four people a week during that time. At the same time, there were seven homicides on average per week inside Washington DC itself - what makes a death more noble that it happened in the parking lot of a large suburban grocery store instead of a small inner-city market?). And during the sniper situation, the Media swarmed all over themselves with their "smoking white van" theory. It was even worse watching supposed journalists ask an investigator "so can you tell us more than has been released?" and getting the answer "no, not at this time. I can not do that", and then having the journalist ask questions for the next five minutes that the man has already said he would not give an answer to. It was obvious that the reporter was handed her cue cards and told "keep this guy on the air," not "find out what's really going on". Now, we have the smoking missing tiles and smoking falling debris. Could that be the cause of the Columbia disaster? Sure it could. And the media has already made up its mind that it is, regardless of any pure outcome. They're falling over themselves trying to find former astronauts to tow the party line that manned space flight is a worthy cause (it is, to an extent; we could be doing more with it), and other talking heads to be slightly cynical (or outright crazy) to keep the proper patriotic vision alive.
Here is the broader concern: We live in an era when democracy is eroding, when dialogue between leaders and citizens is closer to one-way spectacle than the deliberation of a free people. The extreme valorization of the space shuttle and the choreographed pageantry of, say, the recent State of the Union speech seem disconcertingly of a piece.
Meanwhile, fewer people vote, fewer have time for school board meetings, yet we seem to have plenty of time to watch spectacle on TV. You can sense a drift to something not quite totalitarian but far from Jeffersonian. [Robert Kuttner, "Hero Worship"]
While clicking around this morning, I came across Modeling, an Object-Relational Bridge for Python. There are a few higher level database toolkits available for Python, but this is the first one that I think I can take seriously. It takes a lot of direct inspiration from Apple's Enterprise Objects Framework, now a key component of the WebObjects application server.
Modeling takes the SQL out of the Python. Most other Python O-R Mapping systems I've seen leave it in - which is rather cheap (in my opinion). It's like mixing Python (or any other language) and HTML. Modeling keeps an XML file as the actual model, which describes the tables and their relationships to classes/objects. When making custom objects, there are a few things you have to do in order to ensure database updates, but that's why EOF was a framework. Still, the goal behind Modeling, and also behind Enterprise Objects Framework is that the model and the code aren't tightly woven together, and that no SQL should exist in the business object code (in theory allowing an application to be moved to a completely different database just by modifying/replacing the model but not touching the classes).
Apparently, it even comes with a Zope product/application for designing models through the web.
There are a growing number of alternative TAL (Template Attribute Language - the heart of Zope's Page Templates). One of these is OpenPT (previously known as AltPT). The curious thing is the feature bullet cited below:
OpenTAL can now read template configuration in the form <tal:config property="value" multiproperty="value1;value2" />. OpenPT uses this to possibly set properties (like encoding, handlers, preferred output encodings) via source; useful for webdav/ftp editing [Lalo Martins]
A good idea, but I'm not sure if it's the right implementation. It seems that since TAL does such a good job being a good XML/HTML player, something like this is best suited to processing instructions, something like <?tal config property="value" multiproperty="value1;value2" ?>
. Of course, we'll have to remind the HELL out of people that <?tal
is not PHP.
I wish I was here (almost). At the SolutionsLinux Expo, a Zope 3 UI sprint is happening, based on Jim Fulton's Through-The-Web development proposal. This is an area where Zope 2 gets tough when you:
This is not an unreasonable list. And usually ZClasses, using your Python products as the base class, do a reasonable job of holding view-level information, particularly if you refer to a common containing template (standard look and feel - typically "standard_template.pt" for page templates and the duo "standard_html_header/footer" for DTML). But for my application to work, this wasn't a valid solution (for reasons longer than I can go into at this time).
Much Zope development, particularly project's I've been involved in, have operated on one of two axioms:
What I'm needing - at the very least - is something like the second (first class data) without the weight of the CMF if I don't need it. I'm hoping that Zope 3 can deliver on this somehow. There's already a lot of really cool things you can do with views in Zope 3, at least at the file system level, that have been tricky to do up until now. Hopefully the Z3 UI sprint at SolutionsLinux can yield something decent here.
Lately, I've gotten to liking using fake namespaces when it comes to certain Zope things, particularly Permissions and Meta Types. I got the idea from Zope 3, whose core permissions include elements like "zope.Public", and am applying it to a current consulting project. All the permissions and meta types registered have a customer specific prefix (lower case). Two benefits of this -- (1) I ensure that at deployment time, there are no conflicting/confusing product names in the add list - if two customers have different Artifact objects, they're identified as such; (2) It groups application/customer specific objects and permissions together in the management screens. This is very nice, especially as security and permissions are often a key feature in getting contracts.
Another habit I've gotten into (and am expanding upon) is stronger use of constants, particularly for Permission names, but also for status values and other things of interest where I don't want to run into a typo. We started using permission constants in the CMF quite a while back now, and Zope itself picked up on this too. We now have the AccessControl.Permissions
module, allowing a Product developer to use security.declareProtected(Permissions.view, 'example_method')
. Not only does this look a bit better, but it helps protect against issues with typos in the permission name, allowing them to be caught at import time instead of weeks later (ie - catching the difference between "Access Content Information" and "Access Contents Information"). This is useful in one's own projects as well. I like to keep mine local to the module containing the content object I'm working on. Now that I'm trying this simple namespaces experiment, it makes it even better. And this leads to clearer product initialization code, like the following:
import customer def initialize(context): context.registerClass( customer.Customer, permission=customer.AddCustomer, constructors=(customer.manage_addCustomerForm, customer.manage_addCustomer,), )
What terrible news to wake up to. Columbia was always my shuttle. I had the records (picture disks even!) of it. I still remember traces of the songs - big sweeping patriotic hopeful majestic songs. I was young. It was the early eighties. It was a beautiful time (1980-1984 is sacred to me ;), we could still dream.
Today, it's like that terrible day in fifth grade all over again. Like many school children, our entire grade gathered around the television to watch the launch, live. And there, live, we watched the destruction. A lot of hope and dreams and lives were crushed that day. As a young boy dreaming about the future (I was always the one to get the Space-themed Legos) it was a tough day for me. Sitting here today in this weird energy field (the electricity of an approaching front to end this unseasonable warmth), it all takes me back.