I spent most of yesterday and today implementing things I never thought I'd be able to do.
No, let me go back a bit further. I remember a time when I had interwebnet notes that looked something like this:
- I should be able to edit files online or something.
- Maybe I could have some kind of FTP auto-sync to upload changed local files.
- HTML is stupid, I should have some simple plain text thing I can do instead, with text files.
There should be some kind of smart templating thing which can append and prepend stuff, and also automatically make navigation.
Now I ended up with Arachnophilia which did just this. Later on, wiki technology proved phenomenally useful.
But I still hate the amount of moving parts. I also hate the markup languages.
So I figured I'd try out my new brain and, well, do it myself.
Now I understand the old "not made here" pitfall which many development houses and programmers fall into. But still, I did want to write everything myself. Every last little thing, tackling everything I could imagine. And that's what I did. Well, except for the markup language. But at this rate I'll get to that too. The reason is simple: I need to know what I can do now, and I have an itch to scratch.
- No more waiting for your source to download to edit it in-browser.
BlueFeather markup language.
Generates standard HTML files.
- A website cannot get faster than this, there is no server-hosted programming whatsoever. No server-hosted programming means no security holes.
- Simple templating engine to add edit links (with accesskeys).
- Browser configuration to automatically launch your favourite external editor.
Process-forking functionality, which lets me spawn sub-processes.
- With intelligently performing actions across a tree of files, even in subdirectories.
- Allows directory-watching, forked into a separate process, which automatically rebuilds any files which have been changed.
There are some fundamental features I'm going to work on, like subdirectories, some markup language for templating, skins/themes, automatic linking, syntax highlighting and much more, but the basics are there. I'm a bit apprehensive about the more complex things I'll want to do, but for now it works, it's simple, i's fast and it's automated.
I ended up exploring a number of things which I was only vaguely familiar. Working with a tree of files, threads, writing good test cases and more. I made sure that I separated out all the re-usable code, and that I made lots of test code.
Oh, and it's written in Ruby.
This was all made possible because of my previous autotest script, which I trivially extended to support .rb Ruby files. Oh, and drugs.
Where can you get it? You can't. I need to get some hosting set up, and do some real-world testing on a subdomain. While I'm doing that, I'll be moving this website to spiralofhope.com instead of keeping this wordpress redirect.
I don't intend to install wordpress on my own hosting, I'll keep it here on wordpress.com until the day I obsolete it and replace it with my CMS.
So this project will become self-hosting in time.