Sunday, December 17, 2006

Edgy MacBook Pro

Where the fuck is Quicksilver in Ubuntu?!$%

Sunday, December 10, 2006

Cocoa, GNUStep, Free Desktops

Word..

So I think I have gone on about how I think it would be cool for people to actually use GNUStep to design apps like GIMP, FireFox, Gaim, etc.. For those who don't know, GNUStep is an open-source implementation of the CoreFoundation and other apis which started out as NeXTStep / OpenStep and became Cocoa in MacOSX. Cocoa, GNUStep, and OpenStep / NeXTStep all use Objective-C, a thin OO dialect of C which, as far as I can tell, is more like Python, Java, or C# than C++.

Although a lot of the graphics-y stuff in OSX is Adobe-derived and private, they actually support an open CoreFoundation implementation, and GNUStep supports enough of the APIs, so they say, that you can target an application at GNUStep and have a Mac feeling app on the Mac, while you end up with options for giving your app a native look-and-feel on other platforms as well.

Basically, Cocoa is an enhanced OpenStep implementation which draws windows using Quartz, which I believe is a programmatic derivative of PostScript, Display PS having been written at NeXT, and now available in X11 and possibly Vista or some future Windows.

So, although a bunch of code running on my Mac is not open, the entire system is built in a modular way for which a compatible alternative could be built, and to some extents has.

Anyway, after beating the dead horse of translucency, I found something today which I'm pretty sure the "eye-candy" crowd will regard as flamebait, heh. It's called afloat, and it inserts an option into the "Window" menu of every Cocoa app to control its' opacity, often inversely and incorrectly referred to as "Transparency".

It's also got a nifty feature where I can hold ctrl+apple and scroll the mouse to change the opacity of a Window.

I find this useful for the same reason as a transparent terminal - so that I can read another window while typing, without shrinking my window, and so that I have more periphery I have set my browser as "translucid", which, to me is not very intrusive - I can sort of read the text in the background if I try, but I don't have trouble reading the foreground. If something blinks, or closes abruptly, however, I'll see, and I can follow a line of text beyond the overlap of two windows without a focus change.

I think it's neat, but what, IMO, is even cooler and being largely ignored is the potential for providing universal application plugins that are cross-platform by leveraging this technology Did anyone ever use the plug-in for Evolution, the GNOME Mail client, which made the editing area comply with vim commands? I thought it was awesome, but it only worked with Evolution.

I want a vim-compatible GUI text area that is compatible with GMail, Thunderbird/Evolution, Abiword, OpenOffice, etc.. Same goes for afloat, if I had blackbox, gnome-panel, and afloat, I might survive with ubuntu on my Macbook Pro.

I like, for instance, that Adium, a libgaim-based im client, has options for a translucent buddy list, but with afloat it's pointless to put work into that in a single app.

So, FWIW, when I'm saying that Qt, Gtk+, EWT or what-have-you stinks, this is what I mean. I'm not saying that your favorite toolkit is not a pretty decent way of writing traditional applications, possibly on par with a few years back of commercial technology. What I'm saying is that by adopting something like GNUStep, which can be leveraged from any programming language, Mono, Java, etc.. it should be possible to stop thinking about the platform. Much as, to some people, Windows is a fine place to use FireFox, I'm fine with it being that way for all sorts of apps.

This type of extension framework is an easy way for F/OSS to bleed into commercial apps. When you have a $500 commercial app and most of your time is spent using F/OSS add-ons, MS Excel or whatever starts becoming about as commodity as MS SQL or IIS.

Wednesday, November 22, 2006

Why Google's approach to IP is unhealthy

OR

Who's afraid of the Affero GPL?

Howdy.

I was fortunate enough to catch a moving keynote by Eben Moglen, Head Counsel for the Free Software Foundation, at the Plone Conference in Seattle recently. Along with many great ideas on how Free Software answers economic questions of olde and is shaping a Brave New World for the 21st Century, Eben touched on a very sensitive point for me.

I'm going to take this opportunity to say that I am super unhappy with the approach to IP which has become common at dotcoms and to a great extent at Google, behind the dressed-up face of Google Code is the lore of Google's big secrets on how to solve, basically, every problem that anyone in the world has with large-scale computing for any purpose, and espescially for large internet sites.

So, just down the hall from your nearest "Don't be evil" sign, just past the Summer of Code sign-up sheet, someone has an employee manual which probably stipulates that it must be explicitly understood that Google's competetive advantage is in their superior ability to build distributed computing systems which are designed to allow many machines to fail without waking anyone up.

In the name of every pager-carrying sysadmin in the world, a public cry:

Please Share More.

Please. ;*-(

Seriously, have you guys *ever* modified some GPL code to make it crash less for Google.com? Please share, and share more of this infrastructure, and advertise that you are using world-class Open-Source software. AT&T, who just bought out SBC, one of the ma' bell subsidiaries, is not hurting in the long-run after giving away SysV. Software is not a competetive advantage, the genius army you have used Sequoia's money to hire is your competetive advantage. The software, on the servers, in its' running form is an asset, and maybe your ideas on search engine technology should be secrets, assets, but please, the distributed filesystem?

Rumour is that, when I telnet to port 80 on google.com, a modified version of Apache answers, or a web server which sits in front of Apache and other web and application servers answers. Under Affero GPL, it would probably be a violation to remove the Apache banner, and it would certainly be necessary for code.google.com to contain all patches that Google is using on systems which are publicly accessible, and even on proprietary systems for all users, paying or non.

I highly suspect that some of this secrecy is in the name of security - if I don't know Google.com is running Apache 2.0.38 or somesuch, and an Apache vulnerability is announced which affects this version, the likelihood of it affecting Google.com is, to some extent, reduced by hiding what is running, although I bet nmap could guess based on its' behaviour. ;)

In any case, Bruce Schneier, or any other decent Security Guru, and an average of 38% of American High School Seniors today, according to "New Scientist"[0], will tell you that Security by Obscurity is not a winning approach, and every now and again one of those high school kids decides to prove to the world that he is god and shut a bank or two down. ;)

So, who's afraid of the Affero GPL? I'd muse that probably most developers who use Free and Open-Source Software to provide a proprietary service to the public. Hey, there's nothing to be afraid of. Has anyone used the LiveJournal code to put them out of business? Nope, far more people have simple stolen their ideas, sans perl.


I'd also estimate that investors are shaky, and that this is why the developers are not highly promoting this idea. Here's a hint for when you talk to your boss about this: if your competitors use your software, and modify it, they also have to give it back. I'm pretty sure this would bring the sort of balance to network-based software offerings that today's GPL has brought to locally hosted applications - be they running on your own server, a leased server, or a desktop / workstation / notebook.

GoogleFS is no different from SGI XFS, IBM AFS, or any other technology which was designed to give one commercial entity's customers a competetive advantage over other companies by

[0] I'm joking about New Scientist, but not about the High School Seniors.

Wednesday, November 15, 2006

Plone for ACM.org

So, I noticed today this article on Planet Plone. Indeed, as I understand it, we are planning to launch Plone for the ACM and, progressively, all of acm.org's counterparts and the sites of any sub-organizations such as SIGGRAPH, SIGCHI, and conceivably SIGWEB as interested. Consequently, ACM SIGWEB has the only website I've ever seen which is not Plone, and advertises compliance with Accessibility Standards.

In any case, we are actually not running a public beta. The site at plonebeta.acm.org is simply a demo I have produced for the ACM IS team, and a place where I can demonstrate various products. Membership is closed, though it will eventually be open to all ACM Members, and many tools which could eventually be available to members may not be available to the public.

I just want to be up-front about this. From what I know, I don't think this was published in response to any announcement from the ACM, but more likely based on our url being in bug reports and being discussed on #plone. I love viral marketing, but I don't want anyone to get the wrong idea. We certainly do plan to announce a public beta in January and to sponsor future Plone events and conferences.

BTW, someone commented on the speed of Plone. Just this morning I dumped a diatribe of thoughts on Python and Zope-style application development, based on my thoughts over the past five or six years. Curious parties can read the living document here.

Thursday, October 12, 2006

Zope.org DNS Post-Mortem

Wow, so, apparently, I am a complete ignoramus. That's what it means when you crown a volunteer as responsible for something you don't want to handle, and it goes wrong, right?

I dunno. I won't put it past myself to make a mistake, but what went wrong with Zope.org this week was odd - it was exactly one of the things I worked pretty hard to avoid. All of the records with a certain IP address were hosed and had the exact same incorrect address.

If I stumbled on this for a client or in the course of helping someone else, I would probably assume that they made a mistake with the mouse, and that may be just what I did. However, I remember pretty clearly making a point to individually copy the contents of each record from the BIND zone-file I was sent into ZoneEdit, whom we are using in order to implement shared access to the zone. I made a point to copy each record even when the IP address was the same, and I visually verified that all was the same multiple times. Unfortunately, ZoneEdit's import functionality for zone-file is broken, so I had to create about 30+ records by hand, one at a time. It took a while.

Anyway, what happened was that a bunch of people not only got records for an address ending in .1 instead of .171, but a lot of companies and providers cached them locally. Bad news, because the records last a while, and this means that people couldn't get to various parts of zope.org - espescially cvs/svn and the main website. Murphy's fucking law. Almost nothing else was even a hair off, and most of the other hostnames are probably not even used anymore.

In any case, apparently this was most certainly all my fault, no less because I wanted us to set up a group of six to ten servers grabbing zone transfers from zoneedit, so that zope.org would never be at risk of, ehm, going down for a week.

I also probably wasn't vocal enough about it, because everything seemed to work OK, but I wouldn't have recommended doing this in a week or so of time. Moving zope.org is a pretty big deal. Sure, I spent about two days on my own zones, and they went up and down like crazy, but only about five people care about that, and they don't care very much. I used the experience to help avoid several days of downtime for some client zones which I also moved to ZoneEdit, and also, despite the current pains of zope.org, to avoid several days of downtime.

As we'd been heading, we probably would have switched directly to ZoneEdit, probably noone would have tried to test that they were even serving the zone, and for 2-3 days the entire zone, including mail and mailing lists, would have been down. At least, that's what I think. That's what happened to my zones which I moved more or less in this fashion. ;)

So yeah, I'm done. I'm tired of being blamed. Maybe I made a typo, didn't double check, and fucked a bunch of people all week. I sure as hell feel like it, but if I didn't, you guys are definitely assholes.

Fuck you very much.

Sunday, August 20, 2006

SIGGRAPH.org's Interpretive Dance

So, how have you been sleeping lately? Glad to hear it. Me? Not much at all.

Seriously, our Plone / Zope has been crashing like me after three pitchers of margaritas. Our setup has been running fine for many months, through a number of Zope and Plone versions from somewhere in Zope 2.6 or 2.7-land with Plone 2.0 up to Zope 2.8.7 and Plone 2.1.3. About two weeks ago, our Zope started acting up, hanging, or 'spinning' in zspeak, a couple of times a day and not responding to any requests until restarted.

Since the time this started, which roughly corresponds to the time I checked out of my hotel in Boston on August 4, after SIGGRAPH 2006, we have expanded the list of addresses which receive notification of site down errors from our monitoring system. A handful of us have lost a lot of sleep / rest by keeping our eyelids peeled back in case our Zope needs to be restarted again. One some days, this has had to happen as much as once per hour, and we went to the extreme of moving our site between machines in hopes of isolating a hardware problem such as faulty memory, which hasn't turned out to be a likely cause of our troubles.

I removed as many products as I could and asked everyone within an e-mail's reach not to add or modify content until further notice without notifying me, and the site has continued to crash. Last night, finally, I switched a version of the main site to Zope 2.9.3 and Plone 2.5 in a load-balanced setup with some ad-hoc auto-restart scripts which I hope I can get to start working soon if problems persist.

One thing is for sure, the new setup is a helluva lot faster and with two clients, should hopefully take at least twice as long to fail.