Programmers will be intimately familiar with the ‘hello world’ program. For the last 25 years, almost every programming book on earth has had it as it’s first example. It is the simple program which says ‘tell the user something’;
>hello, world!
The eminently less famous sibling of the programming world, totally outshined but still famiiar, is the ‘add two numbers’ proqram. It goes like this
>enter a number;
3
>enter another number
4
>3 + 4 = 7
Wow. OK, it’s not such a great program, but it’s the first time we see codification of knowledge into a computer…
The computer ‘knows’ that when you type your two numbers, they have a significance – that is, they are operands in the addition operation. Knowing that, it can manipulate it to calculate an answer.
Why am I telling you this? Because again, I want to explain what computers can and can’t do. If they are told information with a certain significance, they can manipulate it. That means, if a computer is to have any chance of helping you out, it has to know what you’re telling it.
So, let’s take a task like organising my day. I write myself a quick note;
Get up around 7am then get into work for eight. Spend two hours checking email, then at 9 start working. get lunch at 1, go home around four
How can I let the computer help me out? I need to boil this down to data the computer can manipulate, maybe like this;
0700: Get up
0800-1000: check email
0900-1300: work
1330-1600: work
1600: go home.
Feed that into a computer, and it can recognise the conflict you have between 9 and 10 – you’re supposed to be working and checking email. By codifying the information, you allow the computer to help you.
How can I apply this to writing, though? I want people to be able to write naturally (ie, like the note) but also for the computer to help out. Writers (I’m assuming) don’t want the quality of their prose to be compromised so they can use a computer program, right? So my solution has to let people write free text (like the note) but connect bits up in meaningful ways.
The form of this mix of codification and free text is probably my biggest and most important task in writing ‘thinking software’. More later, I guess!
12 responses to “Thinking software, part 2: Codification.”
Gosh, this is a big and weighty subject! *hugs* Good luck with it!
I know some of the things I would like to see in such a programme. I’d like to be able to drag and drop notes onto each other to create links. I’d like to be able to drag and drop notes into several different categories so that I can access the same thing under, say, ‘Characters’, ‘Plot’, and ‘Background Story’, as well as ‘Story idea’ for example.
You’ve got me thinking, now. I’m sure I can’t help you solve your computing dilemmas, though, and for that I apologise. But I can keep thinking about it and let you know what it is that I’d want from something like that.
Will you be at VJs tomorrow morning? If so, I’ll get out of bed early and come and talk with you. This is quite fascinating! ๐
(scuse the burble, btw, need more sleep)
My main problem isn’t really coming up with _a_ computer solution, but a computer solution that will work for writers who are not programmers. Your contribution is utterly essential to me!
I’ll post on ‘what I need to know from writers’ some time soon, I think. Unforturnately, I won’t be at VJ’s this weekend because I’m going to play games in manchester with Ivan Caric. But any and all thought is truly appreciated!
I’ll natter with you about it next time I see you, then. ๐ Have a fun games weekend.
Hmmm…
I don’t write as such – I take notes (for games, game design etc). For that I find the format of a Wiki about ideal. No need to think in a technical manner, no need to flesh anything out until you want to etc ๐
Re: Hmmm…
wiki’s great in that it’s fantastic for collaboration, for quick editing, and for always being available. The ability to get decent overviews of large wikis is generally lacking, though. Although I think there are visualisation tools out there…
That said, the only people I know who’ll happily use a wiki are techies, almost entirely. Which is what I’m trying to avoid – a techie-only solution.
Re: Hmmm…
I think the main problem is the general approach to formatting in wikis – that you need to learn all of the weird pseudo-tags for them ๐ฆ This makes it rather like tex-lite and rather techie-seeming for most people. I think if you had a nice Word style front-end people would just take it in their stride.
The general model of connecting free text to other free text is just wonderful ๐ Especially given you can create a link out of a page without having to define what it goes to – very useful when writing stuff ๐
The visualisation is something I think needs real work for wikis – just being able to see visual links between pages (and more importantly pages and non-pages) would be a real boon to most wikis ๐
Re: Hmmm…
The wiki code idea really needs to be improved before wiki’s become anything other than a geek’s toy (I say this as a wiki writer, btw)
The wiki I wrote (the one that hosts stevecooper.org) does automatic linking based on pagenames, where pagenames don’t have to be wiki words. It’s a nice addition because you don’t need wiki words at all, and it seems a bit more intuitive and user friendly. At least, you can do plain text and links without knowing any code. (If you want a copy, let me know.)
Visualisation or summarisation, I think, is key in developing large and coherent ideas. Without a central view, the larger a textbase grows, the harder it is to treat it as a whole.
Re: Hmmm…
I think the ideal for me as a techie who doesn’t want to be one when writing game notes would be a wiki at the core with a nice front end where you could just select text and click a button to say you wanted a new page for it or to link it to an existing page. That and a nice grahical tool that I could spin around in 3D to represent my text(s) ๐ Anyone wanna write it for me? ๐
Re: Hmmm…
Seriously considered it, dude. But I decided to do this program instead. It should have a website export function, though ๐
Re: Hmmm…
Meh!
Oh well – I guess I may grab a copy of this if you’re planning to make it open ๐
Re: Hmmm…
do a websearch for htmlArea. It’s a javascript frontend to write HTML. Might provide you some value…
Re: Hmmm…
Now that looks neat ๐
I gotta get me one of those ๐