[<<] Industrie Toulouse

April 29, 2002

Ouch. My head's pretty bruised now after a morning of diabolical boolean logic. Should help in the long run though.

In the SCS Framework (a compound document framework for Zope), I had previously had a pre-canned query in the crucial 'partcontainer.listParts()' method, with a little bit of support for matching parts on their Major and Minor types. It was becoming apparent that this was a pattern I needed in some other parts of the system (like rendering), so I changed things around into a combination Visitor/Command pattern, in the form of PartMatcher and PartFilter respectively. Then I realized they could be unified into a single class (PartFilter).

And I have to give thanks, again, to the unit tests. I had a bunch of tests in place already that tested listParts() based on its old behavior, and they failed a few times when switching to the new. Some of the failures were name/import errors from shuffling the code around. Others were from boolean logic head games gone bad. Everything is running smoothly again now.

J. Shell, April 29, 2002 02:23 PM, in

April 25, 2002

Alright. Here's the "Haskell" Quicksorter done in "quicksorting across the universe" as a Python one liner:
qsort = lambda x: x != [] and (qsort([ lt for lt in x[1:] if lt < x[0] ]) + [x[0]] + qsort([ gte for gte in x[1:] if gte >= x[0] ])) or x

In formatted mode:

qsort = lambda x: x != [] and \
           (qsort([ lt for lt in x[1:] if lt < x[0] ]) + 
            [x[0]] + 
            qsort([ gte for gte in x[1:] if gte >= x[0] ])
           ) or x

J. Shell, April 25, 2002 05:26 PM, in Python
Speaking of "Haskell", I once was able to turn the following Haskell example of a Quicksort (not an efficient Quicksort, just one showing Haskell's list comprehensions power) into a one line Python example, combining lambdas, list comprehensions, and good old binary logic.

qsort []     = []
qsort (x:xs) = qsort elts_lt_x ++ [x] ++ qsort elts_greq_x
                 where
                   elts_lt_x   = [y | y <- xs, y < x]
                   elts_greq_x = [y | y <- xs, y >= x]

I found a Python version at ActiveState's ASPN, but my version is much more fascinating.

I think it might have gotten lost in the move... I'll try to recreate it tonight.

J. Shell, April 25, 2002 01:13 PM, in
It's a shame that the Python PEP 289, Generator Comprehensions, has been rejected. I don't know why this idea appeals so much to me in the first place. Maybe it's a syntax thing. I love Python's functional programming side. I love List Comprehensions. I like generators. Why not put them together? Guido is apparently wary of turning Python into more of a functional language. A nice thing about FP in Python, so far, is that it's had decent support for FP constructs that don't have to be used if one doesn't wish to. I like that Python is so general purpose, but can offer many features found in more obscure and targeted languages like Haskell.
J. Shell, April 25, 2002 12:48 PM, in

April 24, 2002

hair to be chopped and burned at six. Ski season's over, it's time to stop looking like a ski bum and time to start looking like a corporate shill. An edgy corporate shill.

the selected salon is right next to my favorite bar. nothing calms the roots like a good bottle of Harps.

J. Shell, April 24, 2002 06:09 PM, in
A cool feature of Mac OS X from the NeXTStep days (this feature showed up in NeXTStep 2.0) is Services. An installed application can expose services other apps can use. In Mac OS X 10.0.x, this was only available for Cocoa apps to use. Now, Carbon apps can use them. However, Radio 8 is the only Carbon application I've seen make use of them.

Why is this cool? OmniDictionary, a Mac OS X client for dictionary servers, exposes a Define in Dictionary service. It's proven to be very handy when writing in my instant outline to check on not only the spelling but the meaning of a word. And, since it's a Service, I can use it from OmniWeb too - for checking words I'm writing as well as words I'm reading. Too bad I don't have this feature when reading The Economist (print edition) sometimes.

J. Shell, April 24, 2002 09:26 AM, in

April 23, 2002

Joy is Stereolab's sound-dust album. And reading other Amazon reviews and finding many reviewers having a similar reaction - that this is, indeed, the groops finest release in years. It leaves the experimentation (which I always liked) behind in favour of some incredible orchestration (lush and beautiful) and good songwriting, and leaves me and apparently many other listeners happy and humming.

And in my case, going "wow" every time I hear it. For the first time, Stereolab's making music I want to hear NOW, instead of music that I'd want to hear if our past visions of the future had come to pass.

Anti-joy is being robbed of our deserved space age.

Joy is finding remnants of how people used to dream about the future.

J. Shell, April 23, 2002 06:59 PM, in
my souls been all non stop around the world with a ghost, shimmering in high speed super eight film shots of joy upon joy upon joy.
J. Shell, April 23, 2002 06:01 PM, in
I'm still in search of a good (cheap) folder synchronizer for Mac OS X, to sync my OmniOutliner documents between my iBook and Workstation. Softobe's FolderSynchronizer X looks like it would be good if I were living in a world of pure Carbon, but it really doesn't take into account OmniOutliner documents that have no type/creator information.

It's times like this that I really want an object file system, where I could have a folder on my G4 that was really just a query that found all my outliner documents so that I could sync/backup files easily.

As it stands right now, they're hard to even search for in Sherlock, since I tend to mark the "hide extension" box to get hide the tailing .ooutline, which makes a "search for filenames ending in ..." query much less practical than you think it would be.

+sigh;

J. Shell, April 23, 2002 05:26 PM, in
I remember watching coverage of a "women in support of guns" rally on CSPAN a year or two ago. One of the women told a story of how her husband was beating her, and she ran to the gun cabinet (with her husband chasing her), got the gun, and turned it on him and was able to hold him off until the Police came. She seemed so grateful for the gun.

Would she have felt the same of her husband had gotten to the gun first and turned it on her? Or would she instead be marching in a "women against guns in the home" rally? Or, if this guy was mean enough to beat her, do you think he'd be more prone to shoot her if he got to the gun first?

J. Shell, April 23, 2002 03:47 PM, in
Working through exhaustion, being kept alive by a hypr-bouncy playlist full of Pizzicato 5, and four versions of Tout, Tout Pour Ma Cherie.

Much of my recent writing has been going on in my instant outline. I'll try to publish the compound document stuff here soon.

J. Shell, April 23, 2002 02:45 PM, in
Without fail... Up, every night, until at least 2AM. No real reason to be either. It just seems to take four hours to make it up the stairs. And my sunglasses have annoyed me by disappearing.
J. Shell, April 23, 2002 02:51 AM, in
Three good reasons to be alive right now, in order of goodness:
  1. Mulholland Drive.
  2. The Royal Tenenbaums.
  3. Amelie.
J. Shell, April 23, 2002 12:55 AM, in

April 22, 2002

Windows/IE Integration Offers More Benefits Than Stand-Alone Browser, says this Microsoft Presspass article from 1999. To quote::

Allchin explained that Internet Explorer is an upgrade to the operating system, not a stand-alone application such as Netscape Navigator. Whether Internet Explorer is loaded onto Windows by a consumer or by a computer manufacturer, he said, it replaces core files in the operating system that change forever the way the system functions. The result, Allchin said, is a rich set of features that allow users to move seamlessly between the Internet, intranets, and a computer's hard drive, and to combine and use information from these sources in a variety of ways.

"You do understand there is only one way this could happen, which is if we are replacing core operating system files," Allchin said. "There is no other way you could do this."

I think there is another way it could be done, but again - Microsoft does make a good point. There are a lot of common libraries on any operating system that make life easier for developers and users alike. Being able to share this HTML/DHTML functionality across all of their products, from IE to Project to Outlook (jokes about viruses aside, the "dashboard" functionality available with Outlook and Exchange 2000 is a pretty powerful one, and not much different than other dashboard type things found in Notes and Oracle clients, except that it's actually a little bit more open than the others, being based on HTML).

You're not going to get Microsoft to stop integrating browser technology into their operating system. It would be much better to fight the battles on Microsoft's licensing practices, past and present, that enabled them to so easily steamroll over OS/2, GEOS, and BeOS during a time when any of those alternative operating systems could have actually had a chance to compete. It would be much better to fight the battles of the API's - whether Microsoft is being open about its system, or whether it's taking advantage of special secrets to bolster IIS and SQL Server over competing solutions that don't have the same access to the core API's.

On another note is the whole notion of the media layer. Quicktime has been built into the Mac OS since the early nineties, and is considered one of the three graphics layers of Mac OS X (2D = Quartz, 3D = OpenGL, Media = Quicktime). It's a set of core technologies that many applications can be built off of. If Real, or even Microsoft, were to declare this as an unfair advantage over RealPlayer or Windows Media content, it wouldn't be too dissimilar to the IE and Windows situation. Except, there is a bit more of a perceived choice - you can download Windows Media Player to view Windows Media files. However, there is no RealPlayer for Mac OS X (native).

So, as I've said above/around, the IE+Windows versus Netscape fight is stupid. They're bickering over the wrong issues. This makes it easy for Microsoft to spin things the way they do (although, has anyone noticed how many of Microsofts arguments come off the same way a teen might treat his less-tech-savvy parents? 'Get off that computer right now!' 'I can't Mom! If I just shut it down right now, it would do ... and ... *snicker*'. There's that whole "they can't possibly know the details, we can explain this any way we want" mentality that seems to come out of many of Microsofts court statements. Once, while running the sound board at a small concert, I was told "shut it off, it's too loud". My response was "we can't just shut it off. There's lots of expensive equipment up there that might get damaged by the voltage change. I can start turning it down slowly though...". Suckers. I could have shut it down. But I didn't want to, and I had the tech-savvy know-how on my side to come up with a defense. This is what Microsoft seems to do in court, and it has gotten them in trouble with the judge before. There is some merit in some of their arguments, but they add this extra layer of whine and bullshit on top of it all, like "if you take apart windows, we'll be blasted back to the days of the Altair!". Bullshit.)

J. Shell, April 22, 2002 04:10 PM, in
A survey from Scripting.com - Is Gates Lying?. The results, as of the time that I voted, were in the middle - either "he is lying" or "he is misleading". There were no votes saying he was telling the truth, and no votes saying he had no real clue.

It's an interesting issue. The concept of an operating system has changed over the years, and not just on the desktop. Integrating technologies has long been a piece of the game. IBM's OS/400 has always had their DB2 database fully integrated into the OS.

Microsoft has gone through great lengths to integrate explorer technologies into the operating system. Windows XP makes this quite obvious - everything looks like a web page. IE's DHTML has become another way to make user interfaces in Windows, although the DHTML generated and used looks nothing like most HTML found on the web. But, it's there. And it's in there deeep. I really doubt that Microsoft could remove this code from Windows very easily.

That said, could they remove IE easily? Maybe. At its most basic, IE is just a shell over all of these core libraries now. But IE and the file system explorer have been increasingly coupled together.

Fair or unfair? I don't have the experience to say. I'm a long time Mac user and haven't been involved in these games. The IE situation on the Mac is that IE is the default shipping browser, but it's just an application. There are some shared HTML libraries, but I think Office and Outlook Express are the only things that use them. I don't know whether deleting Internet Explorer.app would cause Entourage to throw a fit if it had to render an HTML message or not. I imagine there are some shared libraries around, but they're little used outside of Microsoft apps. I think Apple uses its own HTML engine for the (incredibly slow) Apple Help Viewer.

But Microsoft's whole "can't make Windows modular" argument is a piece of shit. Windows is almost all DLL's and COM components these days. Granted, there are a lot of interdependencies among all of those components, but if COM's been doing its job, in theory one could replace all of the IE/DHTML components and libraries with wrappers around Mozilla libraries. But, I imagine it would be an insane amount of work. And I highly doubt Microsoft would really let people replace those libraries any more than they would let them replace the core window management routines.

So, I think gates is being misleading. Microsoft could add an API to let people replace these core components. But I do think it would break Windows today if the code was just removed abruptly.

I also think it was damn smart of Microsoft to do what they did with IE. Fair? Probably not. But business-wise, it was very smart.

I also think it's ridiculous when Microsoft said "fine, put your own icon in the startup screen", and then whined when AOL made a pact with someone to feature AOL instead of MSN. Microsoft's whine was about "the user should have a choice to go with MSN, and if AOL's featured, we should be too!".

Uhhh....

Both sides of this stupid argument can be absolute idiots sometimes. This Salon Article by Megan McArdle talks about the stupidity of Netscape's claims in the current lawsuit. It doesn't say that Microsoft wasn't a bully, but just that Netscape's claims don't hold water (or, if they do hold water, could be just as damaging towards AOL).

J. Shell, April 22, 2002 02:30 PM, in
I have a very annoying itch lingering from a spring skiing sunburn that I gave myself almost three weeks ago. Some windburn later that week probably didn't help.

Oh well, those were beautiful days and I still say it was worth it.

J. Shell, April 22, 2002 01:13 PM, in
A little bit of intuition, a little bit of Google, and some problems are easily solved.
J. Shell, April 22, 2002 09:57 AM, in
I'm in that land between waking up and coffee. It's a large place actually, as the coffee resides at the Cafe next to the office. I have to bike there. Hungry. But the egg and cheese breakfast sandwich is beyond worth it. Followed by coffee.
J. Shell, April 22, 2002 09:33 AM, in
I've had the privilege recently of working with a talented composer and musician, Kate Cheuffer. Strangely, she falls into a bizarre line of artists/writers/dancers I know that are/were computer and even modem savvy at some point in the nineties, but have no real internet presence. It's interesting that some people can be so brilliant yet introverted or misanthropic enough to avoid the great anonymous playground that the Internet can be.

I did a few installation sound pieces for Kate's small music conservatory. I'm listening to one now that...I don't know how I feel about it. It's a beautifully minimal piece, done with Kate herself, a droning organ and wildly misshapen guitar strings. They're synthesized in this version, but it's all based on an actual event. It's fascinating to listen to - it's all programmed using Supercollider 2, a real time audio synthesis language for Mac OS. The modeling of some of the string plucks came out really well. Part of me wants to take it and craft it into a real track, somehow. Kate says to just keep it minimal.

Being geared towards installation instead of headphones and computer speakers, the design dynamics of the pieces I'm going to release online shortly are quite different than a lot of EUCCI material released in the past. There's even less structure. A piece can be any length, and are almost best left ongoing...

There's going to be a big loss of perceptive quality as the delivery mechanism goes from conservatory/gallery to MP3.

J. Shell, April 22, 2002 02:31 AM, in

April 21, 2002

ccx,49!
J. Shell, April 21, 2002 06:09 PM, in

April 20, 2002

It has suddenly become a day for eating crunchy peanut butter and listening to The Hafler Trio. Loud.

J. Shell, April 20, 2002 04:39 PM, in Aesthetics
tsi mahriel ah'ski'yah oo cahlt. tsi mahriel ah'ski oo nikki il'yehn
J. Shell, April 20, 2002 04:14 PM, in Joy

April 19, 2002

Mediocre-to-crappy day. I left the office early and went to see Amelie to feel better for a little while. It worked. Stopped by a few galleries on the way home. Like a few years ago, I thought to myself "I should really do a new painting". Unlike a few years ago, I probably won't.

The new apartment (in a month) might change all that.

J. Shell, April 19, 2002 10:03 PM, in
Fragrance of the day: Gucci Envy. Like heavily incensed black velvet.
J. Shell, April 19, 2002 10:42 AM, in
It's snowing outside. I don't want to walk to work, I'm too used to the speed and ease of my bike again. Maybe today I'll don my ski gear and ride in all hypr-bundled-up. :) Goggles and face mask and mountain bike...
J. Shell, April 19, 2002 10:37 AM, in
Pershing Square. Dig.
J. Shell, April 19, 2002 12:56 AM, in

April 05, 2002

Skiing yesterday - Hot girls, warm sun, cold beer, soft snow, in the paradise that is Alta. And celebrities. While celebs aren't that uncommon at more "upscale" resorts like Snowbird or Deer Valley, seeing people at Alta means that they actually enjoy skiing. The same is true for boarders at Brighton. Both Alta and Brighton are more rustic resorts (no huge hotels/condos. Alta just put in its first high speed quad this year). But the feeling at Alta is great. It's skier only, with legendary playgrounds you can hike to, and even the groomed runs are fun. So, seeing Richard Schiff (plays Toby on The West Wing) there was interesting - far more interesting than seeing someone like that at the ritzy Deer Valley.
J. Shell, April 5, 2002 11:16 AM, in