Domain: art.net
Stories and comments across the archive that link to art.net.
Comments · 100
-
Lem was a truly amazing writer
Lem was my favorite writer, and I'm sad to hear he's gone.
SimCity was inspired by one of the stories in Cyberiad (about the despot for whom the constructors made a si mulated kingdom for him to rule over, that broke out of the box and took over). Nobody can figure out how he writes in Polish, yet the English translations of his books are full of brilliant poetic puns and neological phonetic jokes. He's got a great translator, Michael Kandel, to say the least. In memory of Stanislaw Lem, here are some of my favorite poems composed by the Electronic Bard from Cyberiad:
Klapaucius witnessed the first trial run of Trurl's poetry machine, the Elecronic Bard. Here are the some of the wonderful poems it instantly composed to Klapaucius's specifications:
This wonderfully apropos epigram was delivered with perfect poise:
The Petty and the Small
Are overcome with gall
When Genius, having faltered, fails to fall.
Klapaucius too, I ween,
Will turn the deepest green
To hear such flawless verse from Trurl's machine.This is a poem about a haircut! But lofty, nobel, tragic, timeless, full of love, treachery, retribution, quiet heroism in the face of certain doom! Six lines, cleverly rhymed, and every word beginning with the letter "s"!
Seduced, shaggy Samson snored.
She scissored short. Sorely shorn,
Soon shackled slave, Samson sighed,
Silently scheming,
Sightlessly seeking
Some savage, spectacular suicide.A poem all in g! A sonnet, trochaic hexameter, about an old cyclotron who kept sixteen artificial mistresses, blue and radioactive, had four wings, three purple pavilions, two lacquered chests, each containing exactly one thousand medallions bearing the likeness of Czar Murdicog the Headless
... (the description and the poem are unfinished, thanks to the quick intervention of Trurl.)Grinding gleeful gears, Gerontogyron grabbed / Giggling
gynecobalt-60 golems, ...A love poem, lyrical, pastoral, and expressed in the language of pure mathematics. Tensor algebra mainly, with a little topology and higher calculus, if need be. But with feeling, you understand, and in the cybernetic spirit.
Come, let us hasten to a higher plane,
Where dyads tread the fairy fields of Venn,
Their indices bedecked from one to n,
Commingled in an endless Markov chain!
Come, every frustum longs to be a cone,
And every vector dreams of matrices.
Hark to the gentle gradient of the breeze:
It whispers of a more ergodic zone.
In Riemann, Hilbert or in Banach space
Let superscripts and subscripts go their ways.
Our asymptotes no longer out of phase,
We shall encounter, counting, face to face.
I'll grant thee random access to my heart,
Thou'lt tell me all the constants of thy love;
And so we two shall all love's lemmas prove,
And in our bound partition never part.
For what did Cauchy know, or Christoffel,
Or Fourier, or any Boole or Euler,
Wielding their compasses, their pens and rulers,
Of thy supernal sinusoidal spell?
Cancel me not -- for what then shall remain?
Abscissas, some mantissas, modules, modes,
A root or two, a torus and a node:
The inverse of my verse, a null domain.
Ellipse of bliss, converse, O lips divine!
The product of our scalars is defined!
Cyberiad draws nigh, and the skew mind
cuts capers like a happy haversine.
I see the eigenvalue in thine eye,
I hear the tender tensor in thy sigh.
Bernoulli would have been content to die,
Had he but known such a squared cosine 2 phi!Femfatalatron 1.0 Product
-
Re:Assistive AI
Assistive AI was perfected years ago, at Roanoke AI Laboratories.
-Don
-
Things That Happen When You Say 'X Windows'
Things that happen when you say 'X Windows':
I was digging through some old papers, and ran across a 15 year old "XNextEvent" newsletter, "The Official Newsletter of XUG, the X User's Group", Volume 1 Number 2, from June 1988. Here's an article that illustrates how far the usage of the term "X Windows" has evolved over the past 15 years. (Too bad The Window System Improperly Known as X Windows itself hasn't evolved.)
Someone on slashdot asks, "Why is it still called X-Windows?". Predictably, the first reply says: "It isn't. It's called 'The X Window System.' Or simply 'X'. 'X Windows' is a misnomer."
He didn't ask why it is "X-Windows". He asked why it's called "X-Windows". You're wrong that it isn't called "X-Windows". It is! It's just that it isn't "X-Windows". Being something is independent of being called something.
The answer to the question 'Why is it still called X-Windows?' is: It's still called X-Windows in order to annoy the X-Windows Fanatics, who take it upon themselves to correct you every time you call it X-Windows. That's why it's called X-Windows.
The following definitive guide to the consequences of saying "X Windows" is from the June 1988 "XNextEvent" newsletter, "The Official Newsletter of XUG, the X User's Group", Volume 1 Number 2:
Things That Happen When You Say 'X Windows'
THE OFFICAL NAMES
The official names of the software described herein are:
X
X Window System
X Version 11
X Window System, Version 11
X11Note that the phrases X.11, X-11, X Windows or any permutation thereof, are explicitly excluded from this list and should not be used to describe the X Window System (window system should be thought of as one word).
The above should be enough to scare anyone into using the proper terminology, but sadly enough, it's not. Recently, certain people, lacking sufficient motivation to change their speech patterns, have fallen victim to various 'accidents', or 'misfortune'. I've compiled a short list of happenings, some of which I have witnessed, others which remain heresay. I'm not claiming any direct connection between their speech habits and the reported incidents, but you be the judge... And woe betide any who set the cursed phrase into print!
You are forced to explain toolkit programming to X neophytes.
Bob Schiefler says, "You should know better than that!"
The Power Supply (and unknown boards) on your workstation mysteriously give up the ghost.
Ditto for the controller board for the disk on your new Sun.
Your hair falls out.
xmh refuses to come up in a useful size, no matter what you fiddle.
You inexplicitly lose both of your complete Ultrix Doc sets.
R2 won't build.
Bob Schiefler says "Type 'man X'".
Your nifty new X screen saver just won't go away.
The window you're working in loses input focus. Permanently.
-
Re:In other news
We're talking about X-Windows here. I can assure you that it is completely devoid of any sort of intelligent design.
-
What other improvements are we expecting to see
I used to X with a passion when I first started using linux back in 98. Actually I still do and think its bloated and horrible but with modern hardware its doable now.
The unix haters manual has alot of nice things to say about it. :-)
But seriously people have run X on VMS systems running in as little 3-4 megs of ram. Also ol linux users ran X fine with ONLY 8 MEGS OF RAM back in the 486 days.
X is not bad but perhaps Xorg sucks? What I want to know is if they are planning on cutting down on memory and cpu usage and adding features like sound support, transparent objects, anti-aligned fonts (I think support is added now), resolution changes that dont require a reboot, ajax/caml/dashboard or some xml and javascript support , and other technologies. Its still quite behind macosx and windows and since its free I hope it catches up. Also automatic scanning of video and monitors would be nice. Come on its 2005.
I hope Xorg moves along and creates a better X and so far its a step in teh right direction. -
X: The First Fully Modular Software Disaster
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money. Years of "Voodoo Ergonomics" have resulted in an unprecedented memory deficit of gargantuan proportions. Divisive dependencies, distributed deadlocks, and partisan protocols have tightened gridlocks, aggravated race conditions, and promulgated double standards.
X has had its share of $5,000 toilet seats -- like Sun's Open Look clock tool, which gobbles up 1.4 megabytes of real memory! If you sacrificed all the RAM from 22 Commodore 64s to clock tool, it still wouldn't have enough to tell you the time. Even the vanilla X11R4 "xclock" utility consumed 656K to run. And X's memory usage is increasing.
Official Dangerous Virus notice distributed at the X-Windows Conference.
-
X: The First Fully Modular Software Disaster
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money. Years of "Voodoo Ergonomics" have resulted in an unprecedented memory deficit of gargantuan proportions. Divisive dependencies, distributed deadlocks, and partisan protocols have tightened gridlocks, aggravated race conditions, and promulgated double standards.
X has had its share of $5,000 toilet seats -- like Sun's Open Look clock tool, which gobbles up 1.4 megabytes of real memory! If you sacrificed all the RAM from 22 Commodore 64s to clock tool, it still wouldn't have enough to tell you the time. Even the vanilla X11R4 "xclock" utility consumed 656K to run. And X's memory usage is increasing.
Official Dangerous Virus notice distributed at the X-Windows Conference.
-
Re:Fully Modular
"Fully modular" immediately reminded me of "The X-Windows Disaster" which has a chapter titled "X: The First Fully Modular Software Disaster".
-
joy quote
I like this bill joy quote from the unix haters handboox: "Xerox PARC was a great environment because they had great people, enough money to build real systems, and management that protected them from management."
This idea of a caste system at google sounds more to me like that, where nurturing development is the primary deal - giving developers a healthy environment and keeping irrelevant crap out of their hair. Seems smart to me. But caste system? I'd imagine that no one wants their benefits coordinator to feel like they aren't doing an important job - the marketing/sales initiative doesn't seem ignored to me, but they're pretty smart about leveraging the nature of the beast to no be too obtrusive about it. Clearly the management over the aren't a bunch of drooling morons, they're doing something right and the product that gets deployed is great.... -
Re:Only hope lies in increased popularity.
X11 is not nasty.
Yes, it is.
-jcr -
Re:blue screens?
Yeah, X is a piece of 20-year old cruft that needs to be replaced in the Unix world. People as early back as 1993 has written about the problem (read this chapter from the Unix Haters' Handbook; although dated, many of the issues are still prevalent in X). All modern features (from new toolkits to font handling to graphics acceleration) seem to be a hack built on top of a hack.
It would be nice to get a new windowing system, kind of like what Apple has in OS X. Unfortunately, there are so many *nix X11 programs out there that I don't know if it would be economically viable or practical to switch to a brand new windowing system with a new toolkit and new ways of doing things.
-
BSML: Bull Shit Markup LanguageFlash is just the natural evolution of BSML's tag extension.
(At time I wrote this, Director ruled and Flash didn't exist yet, so the limit number 48 was a dig at Macromedia's bold move of increasing the number of layers that Director supported from 24 to 48.)
-Don
BSML: Bull Shit Markup Language
Bull Shit Markup Language is designed to meet the needs of commerce, advertising, and blatant self promotion on the World Wide Web.
New BSML Markup Tags
CRONKITE Extension
This tag marks authoritative text that the reader should believe without question.SALE Extension
This tag marks advertisements for products that are on sale. The browser will do everything it can to bring this to the attention of the user.COLORMAP Extension
This tag allows the html writer complete control over the user's colormap. It supports writing RGB values into the system colormap, plus all the usual crowd pleasers like rotating, flashing, fading and degaussing, as well as changing screen depth and resolution.BLINK Extension
The blinking text tag has been extended to apply to client side image maps, so image regions as well as individual pixels can now be blinked arbitrarily. The RAINBOW parameter allow you to specify a sequence of up to 48 colors or image texture maps to apply to the blinking text in sequence.The FREQ and PHASE parameters allow you to precisely control the frequence and phase of blinking text. Browsers using Apple's QuickBlink technology or MicroSoft's TrueFlicker can support up to 65536 independently blinking items per page.
Java applets can be downloaded into the individual blinkers, to blink text and graphics in arbitrarily programmable patterns.
See the Las Vegas and Times Square home pages for some excellent examples.
-
Re:The Goatse GourmetHey, I used to be a big proponent of TCL/Tk, but I can't believe anyone's still wasting their time with it now, more than 10 years later. It's not like your only other choice is Motif, any more.
I'm going to show first the X11 version [of multi player SimCity], which is on top of TCL/Tk, and that's a free toolkit that's available, written by John Ousterhaut at Berkeley. There's a book that's coming out describing it, and you can just get TCL/Tk and use it to make products for free. You don't have to pay anything for it, and it's actually very good code. It really beats the pants off of Motif, and we were able to modify it in order to support things like colormaps and multiple displays the way we needed to, and add things to it like a sound server to make sound effects, and pie menus for quickly selecting city editing tools. TCL/Tk made alot of sense for SimCity [in 1992].
-Don
-
Re:The Goatse GourmetHey, I used to be a big proponent of TCL/Tk, but I can't believe anyone's still wasting their time with it now, more than 10 years later. It's not like your only other choice is Motif, any more.
I'm going to show first the X11 version [of multi player SimCity], which is on top of TCL/Tk, and that's a free toolkit that's available, written by John Ousterhaut at Berkeley. There's a book that's coming out describing it, and you can just get TCL/Tk and use it to make products for free. You don't have to pay anything for it, and it's actually very good code. It really beats the pants off of Motif, and we were able to modify it in order to support things like colormaps and multiple displays the way we needed to, and add things to it like a sound server to make sound effects, and pie menus for quickly selecting city editing tools. TCL/Tk made alot of sense for SimCity [in 1992].
-Don
-
Art
Why not weave them into a nice artsy basket. I'm sure your wife would love that. Look here for inspiration.
-
Re:X will forever be X...I did quite a lot of work in NeWS using HyperNeWS and it really was one of the nicest graphics environments that I have ever used. Maybe not the easiest, but certainly the most elegant.
Maybe building something similar in SVG would be the way to go.
-
NeWS predates Display Postscript. Reference here:
Adobe's Display Postscript is a separate implementation from considerably AFTER NeWS.
here is a previous posting on it by one of Slashdot's own, who was a principal in the early work.
By the way: NeWS itself was originally written by James Gosling and David Rosenthal, at Sun (according to this item by Don Hopkins, another of the early workers on it.)
Seems to me that Sun, and ONLY Sun, is in a position to let Henson, Gilmore, and Daniels open-source the code (as they would love to do). -
NeWS predates Display Postscript. Reference here:
Adobe's Display Postscript is a separate implementation from considerably AFTER NeWS.
here is a previous posting on it by one of Slashdot's own, who was a principal in the early work.
By the way: NeWS itself was originally written by James Gosling and David Rosenthal, at Sun (according to this item by Don Hopkins, another of the early workers on it.)
Seems to me that Sun, and ONLY Sun, is in a position to let Henson, Gilmore, and Daniels open-source the code (as they would love to do). -
Re:Is this book about JeffK?A lot of artists are going digital, including yours truly.
It is sort of like open source software in a way, as digital art lends itself to being copied and used as wallpapers, fodder for other digital art, and the like. For instance you are free to use my digital pieces for whatever you like as long as it is not commercial. Hmmmm, looks like I need to put up my copyleft tag. Anyways the future of art is the mutability of the medium. Where people will buy 3 or 4 digital photo frames or make your own out of old computers or laptops.
-
Re:Still incorrect
The Internet actually existed in name and network a few years before Gore first got to Congress. Saying "The Internet as we know it today" did not exist is weasel-words: the Internet exactly as it is today, did not even exist 5 years ago.
Yeah, right, whatever.The "Internet" was not a public, open, network when Al Gore entered the Senate. That's a fact. It is a bald-faced lie to suggest either that it was open at that time, or that it could be opened without legislation. It was a strictly academic and military network. As an amusing anecdote to get a flavour of just how closed it was, do a search on Jerry Pournelle and Arpanet. Pournelle gets the dubious distinction of being the first person to be kicked off the Arpanet, or as you call it, The Internet, back in 1984.
And, BTW, Vint Cerf agrees with me. And I personally think both he, and Al Gore, know a little more than you do on the subject. Unless you're now going to claim that, on top of being able to access the Internet in the early eighties via your privately owned ISP, you are also the ghost of Jon Postel?
-
Been done. Years ago. With graphics.Back in the days when Sun was a cool company, they produced a windowing system based around Display Postscript that was marginally X-compatible; OpenWindows. You may have heard of it.
One of the example programs was, allegedly, written by a bunch of hackers in the back of one of their offices in the middle of the night. It was so cool they cleaned it up a bit and released it.
Meet pizzatool. It'll let you pick one of several varieties of standard pizza, or make your own. It knows about different sizes. It would fax off your order for you. It came preprogrammed for their favourite pizza delivery place (I bet that place really regretted it when OpenWindows got distributed worldwide). And... it had a preview mode. It drew your pizza for you, right there on the screen.
And you could spin it with the mouse... but if you spun it too fast, all the toppings would run...
pizzatool was written entirely in object-oriented Postscript for the NeWS toolkit on OpenWindows. It's a shame that died; it was very, very cool...
-
Been done. Years ago. With graphics.Back in the days when Sun was a cool company, they produced a windowing system based around Display Postscript that was marginally X-compatible; OpenWindows. You may have heard of it.
One of the example programs was, allegedly, written by a bunch of hackers in the back of one of their offices in the middle of the night. It was so cool they cleaned it up a bit and released it.
Meet pizzatool. It'll let you pick one of several varieties of standard pizza, or make your own. It knows about different sizes. It would fax off your order for you. It came preprogrammed for their favourite pizza delivery place (I bet that place really regretted it when OpenWindows got distributed worldwide). And... it had a preview mode. It drew your pizza for you, right there on the screen.
And you could spin it with the mouse... but if you spun it too fast, all the toppings would run...
pizzatool was written entirely in object-oriented Postscript for the NeWS toolkit on OpenWindows. It's a shame that died; it was very, very cool...
-
Re:Examples
X is designed around 1984 but available widely 1987 and NeWS is also around 1987. By then they are not well known and relatively had the same number of adherents. However, since X is open, X is embraced by many in a short time and thus X won. It's not just "open source and then win" idea like ESR suggested, but look at the situation closely.
Microsoft is doing good with C#, but they're open source because they're hoping that they get a quick momentum and get a new adherents shortly to contend Java, which has already been well-established, not just "weakening" per se.
Since Java has already had lots of adherents, opening up won't add some advantage. If later C# is gaining ground (which I highly doubt), then Sun may consider that (which, again, I highly doubt even such case happen except that C# starts overtaking Java).
-
Re:Bah.
The Unix haters handbook was written by:
Who We Are
We are academics, hackers, and professionals. None of us were born in the computing analog of Ken Pier's East Africa. We have all experienced much more advanced, usable, and elegant systems than Unix ever was, or ever can be. Some of these systems have increasingly forgotten names, such as TOPS-20, ITS (the Incompatible Timesharing System), Multics, Apollo Domain, the Lisp Machine, Cedar/Mesa, and the Dorado. Some of us even use Macs and Windows boxes. Many of us are highly proficient programmers who have served our time trying to practice our craft upon Unix systems. It's tempting to write us off as envious malcontents, romantic keepers of memories of systems put to pasture by the commercial success of Unix, but it would be an error to do so: our judgments are keen, our sense of the possible pure, and our outrage authentic. We seek progress, not the reestablishment of ancient relics.
You can find that here:
Unix Haters Preface
I have seen some of the demos of ITS, TOPS 20 and Multics. These really were *incredible* systems. Because someone has seen systems better than Unix doesn't automatically imply they like Microsoft. Maybe one day we can get production of Lisp Machines back on track. :) -
Consumers who bought this book also bought...The book will make a good appearance on any bookshelf next to the UNIX-HATERS HANDBOOK !
"Are you fed up with frequent fastboots, ineffective NFS, lousy libraries, creeping C++, broken X-Windows, monsterous Motif, mumbling manual entries, mutilated Makefiles, slimey sendmail, and satanic shell scripts? Come and vent polemic with other victims of Unix, and learn that you are not alone: your problems with Unix are not your fault!"
(By the way, I'm not a Unix hater.)
-
Postscript, Java, NeWS ConnectionsPostscript is surprisingly closely connected to Java. Back in the 80s at Sun, James Gosling (known for his Emacs version) and David Rosenthal wrote the Network Extensible Windowing System, NeWS, in Postscript. Don Hopkins describes it as "It's a multithreaded PostScript interpreter with extensions to draw on the screen, handle input events, with an object oriented programming facility." It's a cool, elegant window system, though a bit resource-hungry for its day, preferring to be on machines with at least 6-8MB of RAM. Sun spent a while pushing it instead of X Windows, and John Gilmore's Grasshopper Group (and a few other people like Wedge) ported it to things like Macs and Sun3/60s. Some of the cool things about NeWS were
- You could make intelligent decisions about what services ran in the client vs. the server, unlike X.
- You could download programs to the server, unlike X. This meant that if your application was very mouse-interactive, it didn't need to put up with the communications lag of getting back to the client, but could happen all on your screen, so mouse tracking tended to be rocking fast.
- The drawing model was Postscript, so what you saw REALLY WAS what you'd get when you printed it, not some bad font approximation. This meant that fonts scaled CORRECTLY, and printing just worked, and you'd get pleasant surprises like the PSterm terminal emulator, which iconified itself by shrinking down to a little window with 1-pixel characters, live, not just a GIF, so you could see that your application was or wasn't doing things even though you obviously couldn't read anything except banner(1) output.
- Because the programs were Postscript, not C, they were hard to debug, and an utter nightmare to do security for, because they tended to let programs leave bits of themselves installed in places they shouldn't be because there wasn't much in the way of memory protection. While this may not be any surprise to Windows programmers, and the only reason it might surprise Palm programmers is that nobody's deliberately malicious on Palms, it was pretty annoying to people used to Unix and X, which *were* cleaner.
- The security and debugging issues were a major design influence on one of Gosling's later projects, a language called OAK, which you might know of as Java. The "do the work where you want it, whether that's client or server" capability was another important thing that Gosling kept.
I did some Postscript programming back in the day, enough to print cool things on the printer and replace the NeWS splash screen with "Don't Panic" in nice friendly letters, and as other people have said, it's pretty much like Forth, a Reverse Polish sort of thing that lets you define functions that draw stuff. While Forth's inventors may have had an overblown estimate of his creation's validity (he basically reinvented the subroutine crudely and differently) it was a good language for very small environments, like toasters and embedded systems. It wasn't real clean, but it was very memory-efficient, and this made it tend to be pretty fast.
-
This isn't NeWS to me.Heh.
Those who do not learn from history are doomed to repeat it.
NeWS was a peer of X-Windows, based on postscript; it was incredibly powerful and underpromoted. The only licensee that I recall was SGI: it was the basis of the IRIX window system in the early 90s. The language itself was an object oriented version of PostScript; the frameworks were entirely object oriented.
NeWS was canned because it couldn't compete commercially with (free) X11. For a humorous slant, check out the Unix Haters Handbook or this link.
Many of the language implementation ideas from NeWS went on to Java; James Gosling was a primary with both.
As an aside, this is an example of how "free" software dealt a death blow to demonstrably superior commercial software.
-
The Flying Circus That Is X
The UNIX-HATERS Handbook has a chapter called The X-Windows Disaster. Near the end, there is a hilarious bit about colours. The durned lameness filter prevents me from posting it.
Search for the word "circus" in that chapter, and you'll find it.
-
The Flying Circus That Is X
The UNIX-HATERS Handbook has a chapter called The X-Windows Disaster. Near the end, there is a hilarious bit about colours. The durned lameness filter prevents me from posting it.
Search for the word "circus" in that chapter, and you'll find it.
-
Re:Scheme -vs- Common LispAs I've said elsewhere in this discussion, Python is basically Lisp without macros. But of course there are other major differences, as you point out. Python is certainly not a dialect of Lisp, as could be said for ScriptX, Dylan, Sk8, Scheme, etc. But it is certainly deeply inspired and enlightened by Lisp, in a way that PHP, Perl, Java and C++ just aren't. Put bluntly: the designers of those "reactionary" languages didn't understand or appreciate or learn from or react to Lisp, while the designers of Python did.
The concept of putting a macro facility into Perl is revolting. It would be much more pathetic that the C preprocessor. (Anyone who thinks the C preprocessor is an acceptable macro facility should stop programmimg immediately before they do any more damage, and go back to CS101 and read Paul Graham's On Lisp.)
Macros are the one most important thing from Lisp that Python is missing. But Python can certainly manipulate code at runtime. The fact that Python code is not literally structured data is alleviated by the fact that the parser and compiler are available as part of the Python runtime, and you can easily manipulate and evaluate strings in Python. Certainly that's nowhere near as useful as Lisp macros, but at least you're not up a creek without a paddle as you would be with Java or C++. Yes I know you can link the Java compiler into Java, or call the C++ compiler as a sub-process from C++, but that's a totally impractical kludge, not a language-level macro facility.
I'm glad that lambdas have been fixed in Python since they had problems in the earlier days, but I don't know what you mean by "severly limited form". If you ask me, it's Java's inner classes that are severly limited and extremely clumsy (and they also weaken the security system).
Continuations are not as useful in every-day programming as most CS grad students with no experience in the real world would have you believe. Just what problem are you actually trying to solve, that you can't solve with threads, exceptions, generators, or better programming techniques?
As a matter of fact, the Python architecture was easily modified to support continuations (called "Stackless Python"). The main purpose for implementing continuations in the interpreter was to get the interpreter's state disentangled from the C stack, which makes it much easier to embed the Python interpreter in other applications that can't relinquish control of the program counter. For example, with stackless python you can call into the Python interpreter every time slice from a timer callback, and Python can block on network input or whatever, and still return to the caller, so the application doesn't have block inside of Python during its timer callback. That makes Python easier to integrate (and therefore more practical), because it removes constraints on how you can call into the interpreter (because the call can return if the interpreter needs to block). It also enables Python to support tail recursion. But hardly anyone uses continuations in their full glory and splendor, for normal everyday programming.
Also, Python now has "generators" (aka "weightless threads" or "coroutines"), which are quite useful for some of the other common uses to which people put continuations, but they are much easier to use and understand.
CLOS is great, but I don't miss it most of the time, because I'm happy with the current object system in Python. Python's object system is quite simple, practical and flexible, and can be easily extended in its own way. ScriptX's object system was a lot like CLOS, as was Dylan's. But again, you usually don't need the enormously powerful generality of CLOS, and it comes at a cost in speed, space and complexity, that most people aren't willing to pay.
I previously worked on ScriptX at Kaleida, and have written lots of ScriptX code. In some ways i
-
Re:Maintaining XFree86
Before anyone gets confused, lets be clear and point out that this is the IT equivalent of a theory. Basically, we are told the client should be just smart enough to render controls and pass input events back to the server. This is theory because there are no implementations of this in widespread use.
Well, Sun proved it would work with NeWS back in the mid 80s. They tried to get other Unix vendors on board, like they very successfully did with NFS, but political infighting resulting in X being adopted instead. Yes, we have X because it was the lowest common denominator the consortium could agree on, the decision to choose X was not made on technical grounds. NeWS was far superior technically, because it doesn't send so much "trivial" traffic over the network, like mouse movements, the display is just smart enough to deal with the GUI and all the real work is done on the main processor, wherever it is. -
Why celebrate?
RMS famously spewed out a huge flame when someone posted a birth announcement to a mailing list he read. To quote the madman himself: "Could people please not use this list to announce information of no particular interest to the people on the list? Hundreds of thousands of babies are born every day. While the whole phenomenon is menacing, one of them by itself is not newsworthy. Nor is it a difficult achievement--even some fish can do it."
Could people please not use Slashdot to anounce information of no particular interest to anybody? Hundreds of thousands of people turn 50 every day. While the whole phenomenon is menacing, one of them by itself is not newsworthy. -
This is the classic X argumentSomeone comes along and points out X's shortcommings and calls for its replacement. Someone else (who fancies themselves older and/or wiser) comes along and disagrees strenuously, and tries to make X11 out to be the greatest UI ever created. Look... it's "network transparent," it's "flexible," it's "fast," we can just extend it to give it whatever features it lacks, etc. etc.
Ugh. I don't buy it.
To put it in perspective, lots of Unix has a big organization problem. X is just emblematic. It's "lower-level" APIs are a big stinking mess. Ever tried to program against it without a super-high-level bit of middleware? Then let's talk about how nice it is. If you're not up on this, try reading JWZ's rants on it (many written as he was porting Netscape)? X is a 4 foot high sandwich of crap, layer after layer between you and the display, full of massive, sucking complexity, the bugs, inefficiency... even during this supposedly wonderful "network transparent" windowing this foul stew shows its colors, as no combination of two applications or X servers quite looks the same. It's a verifiability nightmare, too, of course (and for instance, disabling X's many attempts to listen and talk on the network are one of the first things you do to secure a machine properly - and for real security, you avoid installing X altogether).
The API design itself is atrocious. The much-touted "flexibility" is really code for laziness - it was a lot of work to do a proper GUI, so no one did it. The mishmash of X server extensions, window managers, font handling systems, etc. that's been cobbled together has led to a nightmare for both programers and users, as any given application doesn't just require "X", but a complex recipe of libraries and versions, and an end-user experience where no two applications look or act the same... or even remotely similar... Where cutting and pasting between windows is a pipe dream, and young geniuses still struggle to configure fonts properly for linux distributors.
Or to just put it plainly, as my friend (who from time to time would write X windows gadgets) would say, it's only about twice as hard as managing the video memory yourself.
"And thank god it's not all standardized, or we'd never have had all those wonderful experiments with different ways to do a GUI that never actually happened." In practice, no system is immune from its initial design choices, and it's been an endless series of awful MacOS knockoffs, multi-button madness, color-pallete spinning goofiness. Is X11 a "GUI experimenters toolbench?" Then I think it's time for something a little more grounded in everyday realities of computer use.
I'm not even warmed up yet. I mean, X is still peppering the filesystem with a hedge-maze of exotically formatted text files describing the hex colors of every pixel of the trim of every window for a variety of appliations and classes in a complex inheritance and assignment scheme that few X developers even understand. Check it out, your XDefaults are "human readable."
Shall we even discuss its security model?
Modern Linux has tried to make its peace with X through wrappers, and we write against Tcl/Tk, Qt, inside the Gnome or KDE framework, and yet still the focus groups come back crying... we try to blame overfamiliarity with windows, but the problems are bigger... all of Unix (and of course Linux) suffers from the same class of problems that X does; as, for instance, an application needs to prompt you to insert a series of CD's, but there is no "single, authoritiative, standard" place to go find out what CD drives are installed on the computer, and what their device names are (yes, we know what they _usually_ are), and finding out if any of the CDs are already inserted involves parsing the text output of a proc file or a mount command, and so on and so forth... And all of this is being done by a messy bash script... so it's no surprise this functionatlity is broken even in, for instance, RedHat's own v8 package manager... I hope you can grasp the metaphor.
It's a mess. Patches won't clean it up. Frankly, it's time we took the whole GUI back to the drawing board. But even if MacOS is the end-all/be-all, we can do it a hell of a lot better than we do in X.
Following are some choice quotes from Don Hopkins' essay:
X-Windows is the Iran-Contra of graphical user interfaces: a tragedy of political compromises, entangled alliances, marketing hype, and just plain greed. X-Windows is to memory as Ronald Reagan was to money. Years of "Voodoo Ergonomics" have resulted in an unprecedented memory deficit of gargantuan proportions. Divisive dependencies, distributed deadlocks, and partisan protocols have tightened gridlocks, aggravated race conditions, and promulgated double standards.
X has had its share of $5,000 toilet seats -- like Sun's Open Look clock tool, which gobbles up 1.4 megabytes of real memory! If you sacrificed all the RAM from 22 Commodore 64s to clock tool, it still wouldn't have enough to tell you the time. Even the vanilla X11R4 "xclock" utility consumed 656K to run. And X's memory usage is increasing.
...
X was designed to run three programs: xterm, xload, and xclock. (The idea of a window manager was added as an afterthought, and it shows.) For the first few years of its development at MIT, these were, in fact, the only programs that ran under the window system. Notice that none of these program have any semblance of a graphical user interface (except xclock), only one of these programs implements anything in the way of cut-and-paste (and then, only a single data type is supported), and none of them requires a particularly sophisticated approach to color management. Is it any wonder, then, that these are all areas in which modern X falls down?
...
As a result, one of the most amazing pieces of literature to come out of the X Consortium is the "Inter Client Communication Conventions Manual," more fondly known as the "ICCCM", "Ice Cubed," or "I39L" (short for "I, 39 letters, L"). It describes protocols that X clients ust use to communicate with each other via the X server, including diverse topics like window management, selections, keyboard and colormap focus, and session management. In short, it tries to cover everything the X designers forgot and tries to fix everything they got wrong. But it was too late -- by the time ICCCM was published, people were already writing window managers and toolkits, so each new version of the ICCCM was forced to bend over backwards to be backward compatible with the mistakes of the past.
The ICCCM is unbelievably dense, it must be followed to the last letter, and it still doesn't work. ICCCM compliance is one of the most complex ordeals of implementing X toolkits, window managers, and even simple applications. It's so difficult, that many of the benefits just aren't worth the hassle of compliance. And when one program doesn't comply, it screws up other programs. This is the reason cut-and-paste never works properly with X (unless you are cutting and pasting straight ASCII text), drag-and-drop locks up the system, colormaps flash wildly and are never installed at the right time, keyboard focus lags behind the cursor, keys go to the wrong window, and deleting a popup window can quit the whole application. If you want to write an interoperable ICCCM compliant application, you have to crossbar test it with every other application, and with all possible window managers, and then plead with the vendors to fix their problems in the next release.
In summary, ICCCM is a technological disaster: a toxic waste dump of broken protocols, backward compatibility nightmares, complex nonsolutions to obsolete nonproblems, a twisted mass of scabs and scar tissue intended to cover up the moral and intellectual depravity of the industry's standard naked emperor.
Using these toolkits is like trying to make a bookshelf out of mashed potatoes.
- Jamie Zawinski
...
The fundamental problem with X's notion of client/server is that the proper division of labor between the client and the server can only be decided on an application-by-application basis. Some applications (like a flight simulator) require that all mouse movement be sent to the application. Others need only mouse clicks. Still others need a sophisticated combination of the two, depending on the program's state or the region of the screen where the mouse happens to be. Some programs need to update meters or widgets on the screen every second. Other programs just want to display clocks; the server could just as well do the updating, provided that there was some way to tell it to do so.
...
What this means is that the smarter-than-the-average-bear user who actually managed to figure out that
snot.fucked.stupid.widget.fontList: micro
is the resource to change the font in his snot application, could be unable to figure out where to put it. Suzie sitting in the next cubicle will tell him, "just put it in your .Xdefaults", but if he happens to have copied Fred's .xsession, he does an xrdb .xresources, so .Xdefaults never gets read. Susie either doesn't xrdb, or was told by someone once to xrdb .Xdefaults. She wonders why when she edits .Xdefaults, the changes don't happen until she 'logs out', since she never reran xrdb to reload the resources. Oh, and when she uses the NCD from home, things act `different', and she doesn't know why. "It's just different sometimes."
Joe Smartass has figured out that XAPPLRESDIR is the way to go, as it allows him to have separate files for each application. But he doesn't know what the class name for this thing is. He knows his copy of the executable is called snot, but when he adds a file Snot or XSnot or Xsnot, nothing happens. He has a man page which forgot to mention the application class name, and always describes resources starting with '*', which is no help. He asks Gardner, who fires up emacs on the executable, and searches for (case insensitve) snot, and finds a few SNot strings, and suggests that. It works, hooray. He figures he can even use SNot*fontList: micro to change all the fonts in the application, but finds that a few widgets don't get that font for some reason. Someone points out that he has a line in his .xresources (or was it a file that was #included in .xresources) of the form *fucked*fontList: 10x22, which he copied from Steve who quit last year, and that of course that resources is 'more specific' than his, whatever the fuck that means, so it takes precedence. Sorry, guy. He can't even remember what application that resource was supposed to change anymore. Too bad.
...
On the whole, X extensions are a failure. The notable exception that proves the rule is the Shaped Window extension, which was specifically designed to implement round clocks and eyeballs. But most application writers just don't bother using proprietarty extensions like Display PostScript, because X terminals and MIT servers don't support them. Many find it too much of a hassle to use more ubiquitous extensions like shared memory, double buffering, or splines: they still don't work in many cases, so you have to be prepared to do without them. If you really don't need the extension, then why complicate your code with the special cases? And most applications that do use extensions just assume they're supported and bomb if they're not.
-
X11
I could go on, but the point is: the fact that X runs transparantly over network is one of it's greatest features. I consider it a case of sound design that an X server acts as a canvas on which programs can display themselves, regardless of where this canvas is.
If you have a really fast network, this usually works -- but nobody said a successor to X couldn't do this, too. Something like NeWS or Berlin could do everything you describe, with much lower bandwidth than sending pictures of your editor over the wire after every key you press -- I would not describe that as a "sound design"!
Besides, if you'd read the Unix Hater's Handbook, you'd know many things that are wrong with the network architecture of X.
(This reminds me of the "CVS rules!" posts a couple days ago from people who have never used anything better.) -
Comparison to PicoGUI?PicoGUI, discussed here recently, seems very similar to Fresco. What is the advantage of Fresco over PicoGUI? PicoGUI actually seems to be somewhat usable right now because it has been made for a very practical purpose, and has gotten real use. A library or system that isn't really used has a hard time developing quickly and responding to real (not imagined) needs.
I think it's also neat that PicoGUI supports multiple (programming) languages simply by having a documented net protocol -- language bindings talk directly with the renderer over the net, instead of wrapping some C interface.
PicoGUI is also small and cross platform. It's certainly not as old as Fresco, but it looks like they're going to lap Fresco pretty easily.
On another front -- what's Fresco's comparison to NeWS? NeWS, a competitor to X from Sun (late 80's?), had some concepts that were similar to Fresco (and PicoGUI). Considerably more display logic was on the server (renderer). It apparently had lots of bugs and issues, but it actually did reach a usable state. Have they learned from this predecessor? Neither project seems as flexible (NeWS used Postscript for its widgets, so new widgets could be nearly arbitrarily complex)... that flexibility may have been NeWS downfall.
Anyway, it always seemed like a neat idea and an important project to learn from.
-
Re:Unix Hater's Handbook
-
Re:Unix Hater's Handbook
-
Re:Looks like we need a poll
-
6"?
I find it supicious that these people claim that the blobs start out 6" accross, and then shrink way down to dry 1" spots, yet there are only pictures of the spots.
In a google image search of the word sidewalk, here are the first few pics that come up in which the sidewalk can be seen clearly enough to make out any potential spots:
spots
No spots (but close in)
2 small spots
no spots, but quite funny
no spots
small spots
small spots
Ok, so there is some background spotting on many sidewalks, which MAY explain the smaller ones. The yet unphotographed larger ones could be from public exaguration/hysteria. here are several examples of such events. In particular look at the seattle winshield pitting in 1954, and the school gas leaks in 88. I'd bet that those spots are usualy there, just that nobody paid attention until now. -
6"?
I find it supicious that these people claim that the blobs start out 6" accross, and then shrink way down to dry 1" spots, yet there are only pictures of the spots.
In a google image search of the word sidewalk, here are the first few pics that come up in which the sidewalk can be seen clearly enough to make out any potential spots:
spots
No spots (but close in)
2 small spots
no spots, but quite funny
no spots
small spots
small spots
Ok, so there is some background spotting on many sidewalks, which MAY explain the smaller ones. The yet unphotographed larger ones could be from public exaguration/hysteria. here are several examples of such events. In particular look at the seattle winshield pitting in 1954, and the school gas leaks in 88. I'd bet that those spots are usualy there, just that nobody paid attention until now. -
Re:I hope they've considered all of theJWZ himself said it best: linux is only free if your time has no value.
This rates as a troll, or at least startlingly misinformed. JWZ said this circa 1995, when the state-of-the-art in packaging was
.TGZ, and the only real configuration tools were XF86Config and vi.How long is this going to be regurgitated by second-hand accounts of the Unix-Haters (sic.) Handbook?
Do your own thinking, and validate your criticisms. I admire JWZ too, but he has always shot from the hip - and this is just plain stale to boot!
-
Why flame X?
Apple people laughing at X Window system, while they know that Apple leech the community and refuse to share Aqua. (If you don't wanna share Aqua, fine. But why flame X? Did we ask for humiliation?)
Yes, you did.. -
Re:You're kidding, right?
-
You're kidding, right?X-Windows has to be the worst ever solution that anyone has come up with for remote desktop access. It was designed by committee from the beginning, and it shows. Just look at what real UNIX gurus have to say about it.
There probably is a decent solution out there for remote-control of a desktop, but X-windows ain't it.
-
Re:How completely totally absurd.
Consistent, fast, attractive desktop layer that doesn't annoy the living fuck out of me like X11 does, PLUS supports UNIX tools AND killer apps like Photoshop...
...PRICELESS.
C-X C-S -
GNU-Script
I'd definately go for GNU-Script.
Now, just click that link, and you won't even have to make the choice any more. GNU-Script does that for you. -
Re:I'll be impressed...
...when someone begins to develop a truly original interface, instead of immitating Windows
...which imitated MacOS, which imitated Xerox' interface...
New interfaces are unlikely to become as popular as the standard desktop-based interface.
Heck, even a window manager which worked the same as the market leader but had an innovative menu style couldn't catch on. -
Re:What a great idea!Well add me to the list of artists to adopt this!
The first song I o'righted is called
"A Quest for Freedom!"
and it is located at:
http://art.net/lile/songs/freedom.html
I will be recording the song soon and will have the soundbyte on the page before too long as well. The art there is also mine... I am a painter and hacker as well... a person of many talents!
:)-lile
-
Re:What a great idea!Well add me to the list of artists to adopt this!
The first song I o'righted is called
"A Quest for Freedom!"
and it is located at:
http://art.net/lile/songs/freedom.html
I will be recording the song soon and will have the soundbyte on the page before too long as well. The art there is also mine... I am a painter and hacker as well... a person of many talents!
:)-lile
-
What about pie menus?
What about pie menus?