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 . 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 …

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.

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.

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 …