Monday, October 01, 2007

Just commented on a topic dear to the hearts of all smart, disorganized individuals over at Ward Cunningham's Vision Thing.

Friday, September 21, 2007

Resolver Systems seem to be a cool, python + spreadsheet company based in London - with the right attitude. Nice demo.

Hmmm ... and they're hiring ... (drifts off into daydreaming)

Wednesday, September 19, 2007

Joel Spolsky :


And your programmers are like, jeez louise, GMail is huge, we can’t port GMail to this stupid NewSDK. We’d have to change every line of code. Heck it’d be a complete rewrite; the whole programming model is upside down and recursive and the portable programming language has more parentheses than even Google can buy. The last line of almost every function consists of a string of 3,296 right parentheses. You have to buy a special editor to count them.


Spooky.

I mean, that wasn't exactly the whole GeekWeaver gameplan. But "high level" lisp-like language that compiles down into complex web-applications, is not so far off. I was thinking of Dojo as the Javascript library, PHP at the server, and Facebook itself (or Ning) as the layer at which applications can be glued together. So read with Marc Andreesen too.

It's the zeitgeist I tell ya'

Saturday, September 15, 2007

I'd forgotten that Processing Processing by Paul Ford was one of the inspirations for GeekWeaver.
Reading more discussions on the business of Joel has got me thinking about the problem of marketing GeekWeaver.

So here's the pitch ... in the classic 5 points of selling ;-)



    1) The pain you didn't know you had!


    Oh, the horror, the horror, too many tags too many files, you have to reach for the mouse and click to find the file menu and open up a new file and then scroll around in that silly little common dialog where the files are all represented by little yellow blobs that are 2mm square and then you click one and open and your hand has to come off the mouse and down to the keyboard and you try to scroll around but there are tags and tags and tags then you change something and you forget to close the tag and everything's position gets screwed up and you think ... oh if only I'd used CSS, but there wasn't time and anyway you have twenty pages the graphic designer made by copying and pasting in Dreamweaver (oh BAD Dreamweaver) and now the client wants them all changed and if you were working with a content management system you'd have put some common things into includable subtemplates but you don't have that and you think why am I watching the grains of sand draining through the hourglass of my life doing the same mechanical transformations on dozens of static html and xml files and you know the customer will only want them changed again next week .... aaaaiiiighhh why can't html be like a proper programming language instead of this ???? WHY GOD? WHY??


    2) The generic solution.

    Yes, a programming language. That would have the requisite controls over abstraction that I need. And a decent IDE. If only writing HTML files could be more like a programming lanaguage.


    3) Our solution is your solution.

    Fear not because GeekWeaver will solve all your problems.

    All your pages are kept in one file, which you can navigate around with the keyboard in the comfort of your favourite OPML editor. You never have to close an HTML or XML tag again with the .<tag> notation that takes advantage of the outline structure to know what blocks are meant to be inside what blocks. Never, ever copy and paste when you can define your own re-usable, parameterizable blocks at any level you like including outside the level of a single page ... that's right folks, you can define a reusable component which actually evaluates to a number of pages or other output files.


    4) Accept the price

    Think ... just think ... of the hours of your time that could be saved if your static web-pages (and everyone has a few tucked away somewhere - remember that old departmental intranet-site no-one's been updating in years? Remember that customer who needed to access the documentation off-line?) were all safely in GeekWeaver format? How much would that be worth? (And at 50 quid an hour you're underselling yourself, but hours of tranquility can be bought for a mere ... well, let's see download and install Python 10 mins on Windows, probably already have it on Linux and Mac. OPML editor? 5 mins on broadband. GeekWeaver ... 2 mins?


    5) Act now!

    Get it today! because it's Saturday and you know you'll be too busy wasting time manually editing HTML once Monday comes around. And if you're an early adopter, and send me emails, then I'm more likely to listen to your requests and stuff ...


An idea I had, over at Joel's Business of Software :

Here's a thought.

I was re-reading this a couple of days ago :

http://www.joelonsoftware.com/articles/fog0000000348.html

as I'm trying to persuade the overworked developers in the place I work to take some time out for this kind of cleaning.

And it occurred to me that there could be a market for specialist code-cleaners. After all, you have specialist office cleaners instead of making the clerical staff take the Dyson around after work. Why not somewhere you can outsource legacy code to simply be carefully and lovingly refactored and polished without any claim that this company are doing new development?

Normally companies from rich countries imagine they can bang out a few UML diagrams, ship them off where labour is cheaper and have it coded up. We all know that this is a fallacy (coding and designing are too tightly entwined).

But could "take my OK but ugly code, with these existing unit tests, and return it with identical behaviour but all the HTML tags closed and the variable names consistent" be a more viable way of dividing labour?

Anyone know of anyone currently offering this? Could "code cleaning" be a small service business? Maybe even part-time for people who have a few hours free each day to work from home, know how to code, but can't commit to a full development job?

Friday, September 14, 2007

I've done a slightly improved GeekWeaver screencast.

Still very sketchy, and without audio, but the SWF is smaller, and shouldn't crash.

It just concentrates on the basics :

* making several pages
* using the .tag notation with outline indenting to save on closing HTML / XML tags
* defining a reusable and parameterizable block (in this case, page template) and calling it for each page.

I'll try to get the next one done in a few days, with some more surprising capabilities.

Monday, September 10, 2007

I've been struggling with Python's distutils over the weekend, and I'm finally making some progress. There's a new GeekWeaver page and a new release.

The page is part of a revamp of my personal site, which is now being built with GeekWeaver. And the release is the first built with distutils.

I was hoping that it would put the code somewhere on the PATH so that you can include the GeekWeaver modules from anywhere, but that doesn't seem to be happening. So although the code goes into "site-packages" I'm not sure what that buys you at present. Any Python experts able to shed some light on this?

What's definitely happened is I tidied up the whole directory structure. Unit tests and library modules are in sub-directories, and you can run the program from wherever you like as long as you give the right path to the gwMain program.

If you go into the "examples" directory in this new distribution, you'll see some examples of .bat and .opml files. You should be able to run the .bat directly there. You can put your own projects in their own separate directories using this as a model.

As always, I'm keen to have feedback, questions and suggestions for GeekWeaver. It's starting to come together although I also need some proper docs and screencasts to really show what it's capable of. The example files show the most basic (but most useful) features of GeekWeaver, the fact you're using an outliner for your whole site, the fact you can manage multiple pages within the same file, the way you can use .< notation to save yourself having to close tags, and the definition of re-usable, parameterisable blocks.

There's a more complex example of GeekWeaver's power in the tests sub-folder. It's not that well explained yet, but it shows how you can produce tables, how you can map a block-call to a sub-list of items, define blocks which are bigger than a single page, and pass block-names as parameters to other blocks.

Thursday, August 02, 2007

I see Zbigniew beat me to blogging about wiki-wednesday. That's one of the perils of laying around in bed all morning.

He's dead right about Alan Wood's presentation being very exciting. I'm probably even more impressed by Wood's "Rel3" than Zby is.

What most impressed me was Alan's apparent good taste that seems to be formed by real experience. Rel3 isn't an attempt to take a particular genre of social software as it exists and force it into the enterprise, but a crafted, pragmatic response to particular needs.

Yes, it looks very like a non-threaded discussion forum. In fact it's also a bit like a page of "River of News" for a single issue being handled within a group. There are echoes of TopicExchange and explicit inspiration from Twitter.

Behind the scenes things seem just as interesting. Written originally in Java, then ported to Rails and now to Erlang. It's designed to use Amazon's S3 and EC2. (The fact that it keeps data in files on S3 prompted leaving Rails.) Each page (or conversation) allows files to be attached so you can manage Word, Excel, PDF docs, etc. When asked if he's thinking of creating some kind of Ajaxy online editor for collaborative documents, Alan sensibly says he won't re-invent the wheel but will provide hooks to other providers of this kind of stuff.

In other words, this is a very nice, minimal "glue" to tie together the people and resources that temporarily need to be brought together to solve a particular problem. After which the page doesn't hang around cluttering up your ontology when you have lost interest in it. (I mean, it probably *does* hang around. But Alan Wood, interestingly, contrasted Rel3 with wikis which allow a small group to work producing a more permanent document that must stake its claim to some part of the name-space.)

In this, it has some of the best features of other social software, in particular, I think it has potential to rival email's special power of spontaneous group forming and dissolving. Let's see if actually creating, subscribing and unsubscribing to pages can be quick enough.

Also, Alan has a very smart blog at Folknology

Thursday, July 12, 2007

Know what QEDWiki reminds me of?

Visual Basic.

And I mean that in a good way ... ;-)

Wednesday, July 11, 2007

IBM's QEDWiki looks pretty nice.

This is really taking wiki in the direction of application development tool that I've been dreaming about for ages.

Wednesday, July 04, 2007

Fairly crummy screen-cast of GeekWeaver basics (no sound, sorry)

Need to find a decent screen-recording software. Anyone got any suggestions?

More soon ...

Monday, July 02, 2007

OK ... everyone who's wondering why I've been so quiet and apparently unproductive lately ... very soft (in little more than a whisper) announcement ...


GeekWeaver is a mutant cross-breed of outlining, wiki-attitude, templating and some duct-tape that would like to be a programming language ...

tell you more soon ...

Tuesday, June 19, 2007

Listen everyone, I gotta come out to you all ...

I am now officially an outliner.

For a long time I thought that outlines, like all hierarchical documents, were limited and inferior to graph-shaped wikis.

Now I get it.

The point of the outliner is not the hierarachical structure as a navigation aid - free-form hypertext is still superior.

No, the point of the outliner is the collapse which lets you manage and manipulate bundles of items at the same time. That's something I never managed to get right in SdiDesk. Although I perceived the need for a "PageSet" to create a bundle that could be used for, say, exporting etc. I a) never got that working technically, which was partly because b) I never really made sense of it "conceptually" to myself.

What's great about the outliner is its "scale-free" / "fractal" / "recursive" / "self-similar" nature - which means the same operations (collapse, copy, move, publish) can work on anything from a short list, to a chapter to a volume composed of multiple chapters. I've really started to realize this over the last few months as I've used the OPML editor for more things that I'd have once used SdiDesk for.

Now, don't get me wrong. I still love wiki. It's still my favouritest type of software in the world, ever. And I still use SdiDesk every day. But now, I'm starting to appreciate that there's a need to manage a hierarchy of scales, and until I find out how to combine that with wiki-nature (and into SdiDesk), I'll probably be outlining most days too.

(In my day-job I also spend a whole lot of time with spreadsheets, but that's another story. SdiDesk was always meant to handle grid-shaped data, it just wasn't developed enough to be really usable.)

Thursday, May 31, 2007

Sig :


You talk to one person. You lunch with one purchaser. You present for one or more, same Powerpoint. Why the difference? It's all about people and a person is singular, always.

Tuesday, May 22, 2007

David Brin has a nice post summarizing his vision for "what we need from science" :

Given the daunting range of problems and opportunities that we face, I'd have to say that our most urgent scientific and technological need is to develop better methods for problem-solving.

Some pieces to the puzzle are already getting attention. Governments and big institutions are developing ways to combine sensor meshes and data mining with powerful analytic and projection tools. But this emphasis on centralized or professional-level anticipation ignores the other half of the solution -- generating a resilient citizenry. A populace so knowing and capable that all problems get noticed and addressed, quickly, by a billion eyes


Great point!

What Brin understands is that the "collective" and the "individual" are not in opposition but that smart, disorganized individuals can come together in dynamic, ad-hoc networks to solve problems.

Traditionally, we've relied on certain types of static "organization" (typically hierarchical and procedural) to achieve the benefits of acting collectively. These work. But at a high cost. They're often dumb (information flows badly through hierarchies because no one passes bad news up, and the top becomes a bottleneck); inefficient (participants waste their energy politicking against each other); and unpleasant.

In contrast, we want (and can start to seriously imagine being able) to retain our capacity for individualistic action while working together in loosely co-ordinated, ever changing but highly effective groups. The internet has taken us a long way in this direction, but as Brin points out, there's still room for more scientific understanding and other tools to take us further.

Thursday, May 03, 2007

Q : Phil! Why have you put a Grazr widget in your gutter?

A : Something's happening. And it's about OPML, Grazr, and widgets ...

;-)

Q : Oh, and I noticed you changed the template.

A : Er ... yeah. The look didn't go with the widget. I wanted something that was more, I dunno, evolvable.

Q : What are you up to, exactly?

A : You know, general house-keeping, wanting to learn about new things. The truth is I've been using the OPML Editor a lot recently. Even tried to write a several thousand word essay in it.

And it's good. Perhaps I'm getting the outlining religion ...

Friday, April 20, 2007

Cool video showing WikiCalc embedding YouTube. And showing several evolving lines of thought in the multiple texts being created.

Tuesday, April 17, 2007



Bleaahhhgh! Least inspiring Hughtrain cartoon evah!

Thursday, March 22, 2007

There's a new crop of business wikis. And some interesting discussion.

But what's wrong with this picture?


SystemOne, an enterprise-knowledge-management system masquerading as an ordinary business wiki. What's cool about this product is that it automatically creates, at the bottom of each page, a list of relevant other wiki pages, feeds, and Web search results. The autocreation of the links removes some of the need to manually create links to connect wiki pages together. This is a key feature if the wiki is to be used by a lot of people who aren't hypertext-savvy.


Answer : Everything is wrong here.

Firstly, what's the point of automatically making hyperlinks for people who aren't web-savvy? Or rather, why are you trying to get people who don't understand hypertext to use wiki? (In fact, in 2007, why are you even employing people who aren't hypertext savvy? But that's another story.) At the very least you should ask how exactly they are going to use wiki if they can't understand what hypertext is, or have some intuition about how to use it?

Remember, this is wiki we're talking about : all the hard graft of making links (like the trivially fiddly writing of "anglebracket a href", and the genuinely tricky part about finding the right URL to point to) has been eliminated by the simple WikiWord or [[double square bracket]] conventions. What's left is the only other difficult question : deciding what links to make.

SystemOne "solves" that part for you. But remember, the links are part of the valuable decision-making and information that goes into your wiki. Wiki links are not meant to mean that "this page is vaguely similar to that web-page". If I want to know what pages are vaguely similar I can use Google. Wiki links mean "I, the author, want the reader to notice this kind of similarity between this page or this paragraph or this word, and that page because I think it's significant." Which is far more precise and subtle piece of information.

A wiki which automatically creates links is as useless as a word-processor which claims to write your letters for you.

The purpose of creating documents is not to kill trees or fill up as much disk space as possible. The purpose of creating documents is to capture the value added by human intelligence. Attempting to automate away that, in order to help consume more wood-pulp or fill the screen with more blue-underlines is counterproductive. Bad links devalue the good links. The reader of a page is overwhelmed and confused.