Category > aqwiki
Aquarion's Wiki Program
Wiki wiki wild, wiki wiki wild wild web.
About a month ago, I concieved a Project.
Basically, it was when ESR shifted the focus of the Jargon File by changing the “J Random Hacker” entry to more reflect his own beliefs. My plan to combat this was – and is – to file the whole Jargon File into a Wiki and let the world at it. Think an entry is biased? Change it.
All I needed to do was to get it out of the Jargon File format and into something that I could import into a wiki. Then I discovered something really, really fundermental.
All wikis suck.
In fact, the particular way all these Wiki’s sucked was two fold. The first was the most important: No existing wiki that I could install on this server could import data from an external source. All the ones that backed onto plain text files I couldn’t – for various reasons – install. All the ones that backed onto a mysql database had data structures six feet deep that I couldn’t hack my way around.
The second reason all wikis suck is the really, really horribly nasty text formatting that has become standard. ‘’‘’this is italic’‘’’ ‘’‘’‘’‘’this is bold’‘’‘’‘’’ is a little too baroque, verbose, and nasty for my liking.
This weekend, my project was to play around with PEAR (The PHP equivlient of CPAN, crossed with apt-get. It rocks), for which I needed a project. Plus, Dean Allen has just released Textile 2 beta, the best text-formatting library for PHP (and now perl) bar none. Aha, I thought. This will solve several problems.
So, this afternoon about 16:00 I started coding my own Wikilike, and now at 1am, I’ve finished the first cut. It uses textile for formatting, it does Wikilike things, and it backs on to the Aquarionics User System (currently only used for Forever, so if you had an account on Forever at about 8pm this evening – when I copied the database locally – you have an account on the Wiki. I haven’t gotten around to writing an account creation system for the wiki locally yet, so you’ll have to be anonymous if you don’t).
The current Wiki is up on my local server, it inherantly supports mulitple wiki’s per server, but I’ve still got to put in the really cool bits, like the XML-RPC interface, the ability for admins to lock pages, and stuff.
And the name? Well, it was done quickly (A Qwiki), it’s mine (Aq Wiki) and it’s slightly sick (Aqw Iki)
But it’s there, it’s working, and since I’m working in the morning, I’d better head to bed…
Those who spoke on this:
WikiWikiWild
Courtasy of my current employment status (A ‘not being paid’, ‘not working’, ‘still employed’ limbo) I finally, and for the first time since about August, got some quality hacking time on a project I was doing for myself. This means that AqWiki has just gained a macro system, had a whole load of annoying bugs fixed (Such as ”((link1)) ((title|link1))” parsing as “link1)) ((title”) and is generally a much more useful thing.
On the down side, I didn’t get to bed until 1am, but hey.
New release coming as soon as I have a) documentation and b) boardband to upload it.
Which should be tomorrow.
Yay Broadband.
Those who spoke on this:
Paul:
You getting broadband from NTL? Prewarned and all that, but don’t get your hopes up. My friend moved house and despite having a confirmed booking for the next day after the move it took a month for NTL to install telephone and broadband. They just failed to turn up; three times.
I’d rather eat my son’s nappies than ever pay NTL another penny. The bastards, the bastards, the bastards.
Supermouse:
NTL supposedly stands for ‘Not today, love.”
They are notorious for breaking appointments.
Those who resemble spammers from a distance
So, one of my major projects at the moment is to rearrange my online existance away from Aquarionics. Aquarionics remains as it is, mostly, but all the extra things (Like PFd4, ForEver and the forthcoming projects codenamed Touchstone, Threadnaut, and Angelica to move to a whole new domain – and empire – known as .istic.net. .istic.net will have an integrated login system – so if you have an account on one, you have an account everywhere – and with this was going to come logging in for putting comments on Aquarionics.
This was never, and will never, be a requirement to comment here, but registering – which would be beside and an alternative to the “User/Email/Webpage” would give you certian benefits, like an extended triggers interface (Recieve an XML-RPC ping,SMS Message or email whenever this range of things happens) the ability to edit your comments (With revision control) and – if the spam gets too much for me – I can always turn off URL display for non-istic users for a time without losing any actual content.
Typekey, however, I’m against for anything outside Typepad, because it appears – at first glance, so I could be wrong – to be an all or nothing. You have to register to comment. Actually, “You have to register to post comments on anything more than $foo days old” might be better, but we shall see.
AqWiki 0.3b
AqWiki 0.3 is about to be released, if anyone would like to see if they can break it before I do so, there is a test installation here
Dump anything you find that’s interesting into the bugs page
Misc
- AqWiki 0.3 delayed due to an authentication bug, no thanks to the zero people who followed the link on Thursday
- Examine the logo carefully, since that is the last use of the old Aquarionics logo. Two weeks of Other Things, then the new logo debuts.
- All moterists who think that it is appropriate to overtake on the inside, at the approach to a roundabout, at the top of a hill are to report to the bladesman for extremity removal. Even if the person you overtake is a cyclist.
- Starsky & Hutch not a good movie, but is still worth seeing.
- Steve Jackson Games have announced Gurps fourth edition
Productivity
It’s been a productive weekend.
LoneCat has done tidying, and I have assisted. I have made Pie (of all of Easter, Apple, and Chocolate derivations), read books, reformatted and reinstalled my Windows XP install, and even completed a project (The largely ignored Mockingbird’s Wish, below).
I’ve abstracted the data layer from the logic layer in AqWiki, and fixed all the bugs I could find that this caused, I’ve finished the SQL version of the Cantrip (Previously “PFD4-II”) data structure (more on that when I’ve actually used it). I’ve installed a Playstation Emulator, played Final Fantasy 8 for a while, and then dumped both on the grounds that playing a 60 hour game is bad enough, but having to play each second twice because the emulator crashes is beyond the pale. Especially if you have a working PlayStation downstairs.
I’ve archived four years of projects, sites and ideas into a new structure, cleared four entries off my “Long Term Tedium” todo list, fixed a number of logic bugs in my mail setup, written the outline for the second major section of the Novel Known As Final Frontier and named some of the the ships within it.
I’ve even worked out the motive for the protagonist of Toffia, and that’s been bugging me for years.
I’ve half written a LotR parody in which the ringwraiths visit a lost property office.
But mostly this weekend I have been obsessively compulsively worrying about how I did in the interview on Friday, and checking my mail every three to five seconds to see if an offer got lost in the post.
But that was just displacement activity, obviously.
SQL Problem
Okay, I'm working fixing bugs in AqWiki before I release, and one of the major ones is that currently the Search function requires MySQL4's subqueries (Actually, the whole thing requires MySQL at the moment, but that's a post-1.0 issue) and I'm trying to de-subquery the query, but it's not working, so I'm throwing it out in the open to see what happens.
This works, but relies on Subqueries which I want to avoid (Or at least support people not having)
SELECT wikipage.page, wikipage.name, wikipage.created,
max(revision.created) as revised, revision.revision
FROM revision
LEFT JOIN
wikipage ON wikipage.page = revision.page
and revision.revision =
(SELECT max(r2.revision)
from revision as r2
where r2.page = revision.page)
WHERE content LIKE "%TODO%"
AND wiki = "personal"
GROUP BY wikipage.page;
This doesn't work (the second AND statement isn't valid) but it's basically what I want to do:
SELECT wikipage.page, wikipage.name, wikipage.created,
revision.created as revised, revision.revision, max(revision.revision) as toprev
FROM revision
LEFT JOIN
wikipage ON wikipage.page = revision.page
WHERE content LIKE "%TODO%" AND wiki = "personal"
AND revision.revision = max(revision.revision)
GROUP BY wikipage.page
ORDER BY revision.revision desc;
Any ideas? (Yes, I know I should use fulltext instead of LIKE, that's next on the Big List Of Bugfixen Before We Go Live)
In case it helps, the Table structure is now online
Those who spoke on this:
Pingter:
But subqueries are good. It’s stupid to cripple things just because MySQL is shit. Not that I’m a fan of PostgreSQL or anything, ohh no. cough
Pingter:
And for a more practical answer…
How about ‘ORDER BY revision.revision DESC LIMIT 1’?
Tom Pike:
Not knowing the exact DB structure I can’t guarantee that this will work, but how about:
SELECT wikipage.page, wikipage.name, wikipage.created,
revision.created as revised, revision.revision, max(revision.revision) as toprev
FROM revision
LEFT JOIN wikipage ON wikipage.page = revision.page
WHERE content LIKE “TODO” AND wiki = “personal”
GROUP BY wikipage.page
HAVING revision.revision = toprev
ORDER BY revision.revision desc;
Bootstrapping
So, if you’ve been unemployed for three months, how do you afford to buy the train ticket to get you into work for the first week back?
Once again, I’ve found, applied for, interviewed for and got a job (Okay, they weren’t all the same job this time, but still) in the time it’s taken the Job Centre to process my Dole claim. As a result, I can’t buy the ticket to get to work.
So, we found a solution. Easy. Get a Season Ticket form, get our office to fill it in with all the credit card details and send me trundling off to buy the ticket. This morning…
No, they said. They needed, they said, the card itself to swipe though the machine, which I didn’t have. So I went home and phoned them up, ordered the season ticket, giving them the credit card details over the phone, and they’re now posting the ticket to me.
sigh
AqWiki got another round of updates, including the prep for the first public installs, indexing being unbroken for the new base system (was broken for oneWiki) and such stuff. On target for provisional release date. Scary.
- 2004-07-05 18:24:25
- By Aquarion
- From Casarufus, Letchworth
- More Journal Entries
- Filed under AqWiki, BrowserAngel & Work
Those who spoke on this:
AqWiki release - beta testers wanted
I’ve released the very first version of AqWiki (Version Prerelease Alpha Milestone Zero Beta, not to underline the whole “Not final” thing too heavily. Or anything).
I’m looking for people to download it and run though the install instructions and report any problems to the bug tracker. It requires Linux, PHP, MySQL & Apache, and testers will earn my eternal gratitude and stuff.
Those who spoke on this:
Rory Parle:
Are you sure it requires Linux? The installation instructions needed some tweaking but I got pretty far into the installation on Windows before I discovered it needs PEAR.
Aquarion:
Actually, it may not need Linux, but I’ve never tested it on anything else, so I’m not sure :-)
MP:
aqWiki test
Followed install instructions. Many of them. SQL file caused error when using PHPMyAdmin (doesn’t like lines of dashes).
Sample ini file is called aqwiki.ini.orig, not aqwiki.orig as stated in docs
Got through instructions. Doesn’t mention needs PEAR::DB… Don’t have Pear:DB installed. Tend to use AdoDB to avoid needing Pear installation stuff. Will try again when back home with main box/decent net connection.
HTH
Mod Rewrite as a virtual hosting environment
So, I’ve now got control of istic.net. istic.net is going to have a number of subdomains, and I don’t really want to muck around with apache every time I want to add one, or get my Friendly Neighbourhood Sysadmin to do so.
Instead, I want mod_rewrite to do it, which it does. I have a virtualhost that handles *.istic.net, and passes it on to the following .htaccess file:
RewriteEngine on
RewriteRule ^.*.istic.net.*$ - [L]
RewriteRule (.*) %{HTTP_HOST}/$1
Which redirects “http://ritual.istic.net” to ”~/sites/istic/ritual.istic.net”, which is what I want.
That shouldn’t have taken as many hours as it did, so I’m writing it down.
Secondly, I’ve moved my braindump – hol.istic.net – to a temporary new home whilst the DNS resolves. By the wonders of my new domain name, it’s temporarily housed at supercalifragil.istic.net which is possibly the best subdomain ever :-)
So, my personal “hire me” site could go to “narciss.isitic.net”, I could move all my open source projects to “altru.istic.net”, set up a site about religion at ritual.istic, head of into the futur.istic and be all m.istic about it and whenever I got fed up with the whole blogging thing and needed to move, I can always go ball.istic.
This isn’t actually far from the plan, which is to move the far flung tin-pot empires of AqCom that are getting lost under five years of journal archives & articles, and move them to their own domains – or subdomains, or sub-subdomains – where they can live happily ever after.
Those who spoke on this:
Rory Parle:
Surely that first line just says to leave URLs containing “istic.net” alone, so that the second line doesn’t ever do anything? Given that I’m obviously wrong, I still can’t see exactly what the second line is doing either.
Pingter:
I use:
VirtualDocumentRoot /path/to/%0/
... but that only works if you want all hostnames handled like that. Although I guess if you had separate VirtualHost sections for specific hostnames it would work okay…
My Terribly Organised Life II
It’s Been a while since the first one, so some updates.
Operating System
Home is Windows duel booting with Ubuntu, mostly in Windows since the main use for the machine is Games and Web, and since Web is Firefox, Windows means I can do everything, Linux means I have to switch to Windows for games, so it remains in Windows by default. Ubuntu is there when I need to isolate myself from the games to get some work done. But for today, there’s Bioshock.
Work is a Macbook, and so runs OS X. I no longer have a Powerbook at home :-(
Development
On OS X I use BBEdit. Windows I still – after seven years – use EditPlus. Under linux I use Kate. Under all of the above I use vim also.
I will – I maintain – one day learn how to use vim well enough as a multiple document editor to switch to it full time, Today is not that day.
Email is sent from all the servers I get things at to a collection point on Cenote – my hosted machine – and there forwarded to GMail, which is now my primary email client. Between my phone, work, home and cafés, the main downside of web-applications – that you can’t access them offline – simply doesn’t apply to access to my email at the moment, and once they add Google Gears (Offline storage) to GMail, it’ll be – to a large extent – solved.
Personal Organisation
I never used Google’s Calendar site before, but work tend towards it so I linked up my accounts, and it’s become my primary organisation tool.
GCal syncs with iCal both ways thanks to Spaning Sync – Once Leopard is released, Google will probably start supporting the open Apple iCal Server stuff and this can be done nativly – and to Outlook with the Open Source Remote Calendars addon.
My Phone is an O2 XDA (AKA HDC “Wizard” model) running Windows Mobile 2005 – which doesn’t quite sync to mac yet but will sync to my home Windows machine where it can sync calendars from Outlook. This is overly complicated, and I look forward to the day when I can sync all my devices from one machine, preferably a mac. My iPod also contains my calendars and contacts, again thanks to iCal.
Todo lists live on my phone, they sync with nowhere. This doesn’t work well, and I frequently forget to do things.
Data
I have a Global directory, containing Music, Documents and Projects which is rsynced to a server hosted by Bluehost, which gives 100G of space to play with for not much per month. Since I only got this a couple of months ago, I’m still rsyncing data to it, but eventually I will keep data synced across the external drive on my laptop at work (Music), my home machine (All Directories), Laptop (Documents and Projects), and development & hosting servers (Projects). I also need to add the Photos subdir to that, and automate the rsync process (rsync being done with cygterm (In conjunction with Puttycyg to replace Windows’ gods-awful command line).
If I need to access this – or any – external data, I can mount it over SSH as a drive. On linux with vfs, on OS X using macfuse, and with Windows using SFTPDrive, the latter being something I’m pretty sure should have an open source alternative, but apparently doesn’t, presumably because creating windows filesystems is apparently a headache from hell. All of these allow me to mount an external SSH server as if it were a locally connected hard drive, which is awesome.
Web
Firefox.
Also:
- Linky – Open Currently Selected Links In Tabs
- Wesabe – For uploading my bank statements. I’ll have an article about this soon.
- Firebug – The main problem I have with this now is that I can’t work without it.
- IE Tab – Until Firefox finally takes over the world and I every site works in Fx, I have this under Windows.
- Reload Every – Reload current tab every X seconds. Useful when debugging.
- FoxMarks – Syncs my bookmarks file so they’re the same from all my various browsers. Handy.
Websites
I still have an Aqwiki install which runs about a half-dozen sites – like Section.istic.net – including a private auth-only one. Comics are still being managed by an evolution of the same script I was talking about in 2004, which is now at hol.istic.net/comics. I moved from Bloglines to Google Reader a while ago – and have plans to resurrect the Aquaintances project to use Google Reader as a feed database (Meaning it will become an offline-reader for Google Reader, as well as it’s own coolness).
Also
OS X
- Sticky Windows – Turn windows unto tabs at the side of your screen,
- SSH Agent
Linux
- Screen – Under which:
- IRSSI
- SLRN
- Mutt
Windows
- Putty – PuTTY makes Windows usable.
- Ultramon
- uTorrent
- AVG
- Civilization 4
- Lord of the Rings Online
- Neverwinter Nights 2
- City of Heroes
- Bioshock
Stuff I’ve never heard of
Suggestions?
Those who spoke on this:
Pol:
http://www.markspace.com/missingsync_windowsmobile.php
Seems to support the Wizard to MacOS.
gilmae:
He gets a job and he finds the motivation to do something completely unrelated to his job. Life’s fun, neh?
Jason:
Did you try the wikipedia code base? That’s the best wiki I’ve seen by far, and the mysql schema is reasonably simple.
Aquarion:
Yeah, but I can’t remember why I didn’t like it, but I didn’t :-)
James:
I liked it