Sanssouci

Sanssouci is a reimplementation of something like naked objects, which I always thought was way cool.

The basic idea behind Naked Objects is that you make the “objects” of your OO system into things that can be seen and manipulated directly by the user. This was one of the concepts behind the old Self project from Sun, whose GUI (“Morphic”) was appropriated for Squeak, but IMHO wasn’t as cool in Squeak because Squeak wasn’t a prototype-based system like Self, and wasn’t designed from the ground up with Morphic in mind.

Interfaces like this are cool because they allow the GUI to be a more direct path from the user to the underlying machine representation. Traditionally GUIs have put distance between user and machine, leading to the phenomenon which is the basis of Neal Stephenson’s int he beginning was the command line, where the GUI becomes a symbol of babying the user and giving him a distanced, artificial, unreal interaction with the machine, as opposed to the command line, which gives him a real, immediate connection to the machine. There’s no reason it has to be that way though, and things like Naked Objects move in the direction of making a more transparent GUI.

Sanssouci is the name of a palace built by the famous prussian king Friedrich II. (“The Great”) between 1745 and 1747 in Potsdam (near Berlin), Germany. The english translation from french “sans souci” is “no worries” or “no sorrow”. The palace was meant to be a peaceful place where the king could spend the summer season “without worries”.

We chose this name, because we as programmers don’t want to worry about writing GUI interfaces. Nobody really likes to do it and it is still difficult to maintain a good ease-of-learning and ease-of-use at the same time, while still providing maximum flexibility and functionality. Another reason for the naming: The user-interfaces generated by Sanssouci are really nice, just like the palace of the old prussian king!

Pivot

Why have I never heard of Pivot before? it’s a gorgeous GPL-licensed PHP-powered blogging tool. I wouldn’t drop WordPress for it unless there was a way to convert my entries and preserve the hyperlinks — I’ve disrupted my blog universe too much in the past year. But I will definitely look at it for future blogging projects.

UPDATE: downside to Pivot: does not yet use Blogger or Atom XML-RPC api’s, so you can’t use remote blogging tools like MarsEdit or Ecto to post to it.

It has excellent “multiple blogs/multiple users” capabilities though. Neat stuff. Oh, and it has an *incredible* image upload/thumbnailing feature.

Logan on Python’s Typeful Future

Making it stick.: The Road to Ruin: Patrick Logan, Smalltalk enthusiast, has been wringing his hands lately over Guido’s plans to make Python an (optionally) more typeful language. It’s been interesting reading. I’m not a big Python programmer but I would tend to agree with Logan. My idea of a good typed language is something like Haskell, with type inference. That’s not the direction this would go, it’d be more like optionally making your Python more C++-like or something.

Hubris alert: there is no way I could reasonably be considered competent enough to make the following judgements. As usual, I do not let that stop me:

I don’t really trust Guido’s judgement. It took Python years to get something close to the level of grooviness present in Ruby from very early stages (well, of course, Ruby had Python to look back on — but it mostly didn’t, it mostly looked back on Smalltalk and Scheme, and of course Perl). My impression is that Python is something of an accidental masterpiece, cool in ways Guido did not originally intend, perhaps for reasons he did not originally understand. There is no reason to assume his guidance will keep it cool any more than Lucas’s guidance kept the Star Wars series on course.

Yes, I’m saying that with type declarations we may be seeing the first of Python’s midichlorians.

On the upside, Guido seems in this post to have a clear understanding of the difference between true subtyping and OO subclassing — and the importance of distinguishing the two (subtypes must satisfy the Liskov substitution principle). There’s a great post by Oleg Kiselyov which demonstrates how C++’s class system isn’t actually very useful for type checking, because it conflates the two — and how you’d have to code C++ to fix it.

On the downside, Xoltar tweaked Guido very devastatingly — Guido had dissed the highly typeful, type-inferring language Haskell, because it tends to use recursion for loops, and Guido thinks that it’s unnatural for humans to think recursively — that we think better in plain loops. And that therefore Haskell would never be as big and important and popular as Python. Or words to that effect. Anyway, Xoltar pointed out that you could define “while” and “foreach” functions in Haskell in less than half a page of code. Lucky for Haskell programmers, huh? They can fix everything that is wrong with their language in no time!

GMail Messages are Vulnerable to Interception

GMail Messages are Vulnerable to Interception — nice buffer overflow there. Glad you saved all those CPU cycles by using C rather than a language which is not vulnerable to buffer overflow exploits, like, well… like anything else except C and its cousins, basically! Nice job Google.

Oleg on Google programmers, a couple years ago:

Peter Norvig was also cavalier about programming languages. He said people often need more control over memory allocation — that’s why they choose C++. Google uses a lot of C++. Doesn’t Peter Norvig know how hard it is to manage memory? That’s why it is better to leave this task to professionals. One of his slides said: “It’s better to hire an active VB programmer than a guru who isn’t interested in your problem.” This is exactly the attitude that keeps bringing buffer overflow news every week.

News about the ‘sploit via afterslash.

TextWrangler

Once upon a time, Bare Bones Software, makers of BBEdit, ruled the Mac text editor world. They had a free version, BBEdit Lite, which hooked you in, and then you’d get so used to it, you’d pay mucho buckos to get their pay version with added extra features.

Eventually they looked around at all the people using BBEdit Lite and realized, “we’re not getting money from these people! We must eliminate BBEdit Lite and only let people use BBEdit, which costs three digits of dollars. Then we will be rich, and the mooching will stop.”

They found that people were not willing to go from “free” to “three digits of dollars,” so they added TextWrangler, a chopped down wussified version of BBEdit which was only in the mid two digits of dollars.

However, people also weren’t interested in something which was both “wussified” and “two digits of dollars.” So the ones who weren’t willing to go with the three digits started looking elsewhere, because it turned out other developers were working on modestly-two-digit-priced text editors which weren’t deliberately wussified, substandard versions of a better editor. SubEthaEdit, TextMate, and others.

Finally Bare Bones Software achieved enlightenment, and they started giving away TextWrangler for free and adding some features to it, thus returning things to the way they were when BareBones was king.

And there was peace in the land.

TextWrangler rocks.