Offline is back Online

Sorry I haven’t blogged for a while…I’ve been keeping myself busy with several changes to ccTiddly!

I’m pleased to announce the imminent release of ccTiddly v1.7! This version of ccTiddly was originally going to contain the new server side plugin functionality. It was decided that the next release would contain so much new functionality that it would be inappropriate and in fact confusing to release it as v1.6.5, and so v1.7 does not include server side plugins. Plugins are still planned for the next release: ccTiddly v1.8.

Syncing Functionality

From v1.7 of ccTiddly onwards, users will be able to take a copy of a ccTiddly workspace (collaborative wiki) with them on a train, plane or anywhere without an internet connection. While a user is offline the wiki will save changes locally like a conventional TiddlyWiki file.

When the user has finished making changes offline, and when reconnected to the internet, they can click the sync button on their local version of ccTiddly and their changes will be sent back to the server.

Based on the changes, TiddlyWiki will show the following options before syncing:

This is very new functionality. It’s working in Firefox nicely. Unfortunately, I now need to get it working in IE6. Given that IE6 is likely to be challenging, I don’t want to make any promises about release dates. However I suspect it will be out in the next few weeks! If you can’t wait to have a play the code is in the TiddlyWiki subversion repository.

By using a TiddlyWiki adaptor, ccTiddly can now provide support for enhancements including lazy loading (see below) and integration with projects such as TiddlySnip (a firefox extension for moving web content to your wiki).

New Macros

As part of the ccTiddly project, I have been rewriting many of the ccTiddly macros so that they work with TiddlyWiki slightly better than they did originally.

ccTiddly 1.7 will introduce the following new macros :

<<ccLogin>>

Ok, so this is not a new macro but it’s been completely redesigned and making full use of the TiddlyWiki wizard framework. It has also been integrated with the register macro. If the register macro is installed there will be a register button on the login screen.

I hope to extend this mechanism for things like OpenID login.

<<ccEditWorkspace>>

This macro will allow users to update the permissions on an existing workspace. It currently only allows users to set permissions for anonymous users but will be extended to support setting permissions for admins, logged in users and possibly groups.

<<ccManage>>

The ccManage macro will allow workspace administrators to grant other users administration access to a given workspace.

New Skins

TiddlyWiki recently introduced the concept of single tiddler themes. These allow developers to pack many different tiddlers into a single tiddler which makes up a theme e.g. stylesheet, pageTemplate and viewTemplate. ccTiddly now makes full use of the theme mechanism. We will distribute ccTiddly 1.7 with three themes.

Improved Architecture

We have now reached an important milestone in ccTiddly where the Javascript and PHP code are completely separate. This greatly simplifies ccTiddly. All modification to theTiddlyWiki file are loaded from the /tiddlers/ folder as either .js files or .tiddler files.

There is a file: /includes/ccAssignments.php which creates the ccAssignments tiddler. This is the only point where the PHP and Javascript cross over.

Any requests made from the client to the server are handled by a file in the /handle/ folder.

Lazy Loading

With “Lazy loading” a subset of tiddlers are loaded in the first instance, and then others are only loaded upon request.

In ccTiddly, it’s possible to pass the tags variable in the URL. If the tags variable is specified in the URL, the ccTiddly workspace will only load tiddlers with the specified tag. For example;

tags=task

…would only return the tiddlers tagged ‘task’ in the requested workspace. If users click on links to tiddlers which are not tagged task, they would be loaded at that point.

This technique can be used to dramatically improve loading times of TiddlyWiki files. As soon as ccTiddly v 1.7 is available I will announce it on the ccTiddly groups.

Advertisements

Politics, Twitter and Accessibility (politically speaking)

I used to love politics. Over the last four or five years I’ve developed a dislike for it.  I was starting to think I had maybe grown out of it or maybe I’m no-longer so idealistic and naive.

Some interesting things have been happening recently, I bumped into @absond on the train into work a good few months back. He told me about BarCampUKGovWeb which sounded quite interesting.

Ive since started following a number of blogs from people that work in and around government. I’ve even started to follow the blogs of some MP’s. I have so far followed all MP’s I am aware of regardless of party.

I don’t pay particular attention to every post but rather scan read whatever they choose to blog. As more MP’s start to blog I will need to become more selective. At the moment its interesting just to see what our representatives feel comfortable blogging about.

The other day this post from Lynne Featherstone caught my attention.  She talks about human rights in China in relation to the Olympics.  An issue at the front of my mind after going to see the Olympic torch pass St Paul’s the previous week.  We didn’t actually see the torch, it was bundled onto a bus with the Chinese thugs just before it got to us. Regardless I found Lynne’s post quite agreeable.

Normally in this situation I would drop a comment on the blog to show my agreement. Unfortunately Lynne’s blog is not quite a real blog. You can’t add comments.  Here is what is really cool though, Lynne’s on Twitter. So I tweeted her.

The Downing Twitter feed is rather interesting. @DowningStreet. It provides updates, responds to questions and actually provides an interesting insight into life at Downing Street.

The @Conservative twitter feed even impressed me yesterday. I was getting ready for work when they tweeted that David Cameron was going to be interviewed on BBC 1 just after 8am… and they wanted feedback. So I watched. And then I replied :

@Conservatives – not bad – Your still not getting my vote. Just to confirm. Are you left or right these days?”

It was slightly sarcastic and I wasn’t particularly expecting a reply. When I arrived at work an hour later there was a reply from the Conservative  Party.

@simonmcmanus Thanks for your feedback, and we’re on the centre-right!”

For the first the first time in my life I had engaged in a two way conversation with a political party!

The 140 character constraint removes some of the formality associated with blogging and email.   I sure as hell wouldn’t have written that in an email.  Even an email of the same length. Twitter, it would seem is making politicians more accessible. Or at least making politicians appear more accessible.

I’m really interested to see how this all develops. I’m loving the idea of my MP being on Twitter.  Lets hope Eleanor Lang (my MP) is listening.  I would love to see politicians adopting these tools because they provide a  highly effective communications platform.

I should thank http://puffbox.com/ for keeping me informed about the latest politicians using Twitter.  Interesting to see that @brianpaddick , @backboris are both using Twitter.

Politics and politicians can often seem invisible and unaccountable. Twitter could start to change that.  Given that MP’s claim to represent us in parliament I don’t think its wrong to wonder…..What are they doing?

nokia n95 stuff.

This post is just a load of useful links and info about things you can do with the Nokia n95.

I was going to send it to a friend via email but it seemed worth turning into a blog post.

Installation Tip : I have experienced some problems when trying to extract and install .zip files on the phone. If you do have this problem you can try unzipping them on your PC and then send the files one by one. The installation file is usually a .sis file.

A guide to setting up you nokia n95 to run gmail through the phones built in functions can be found at:

http://www.knowyourmobile.com/nokia/nokian95/nokian95internet/2533/setting_up_email_on_the_nokia_n95.html

I don’t actually use this method. Its set up but it doesn’t seem to work with gmail very well. I believe a benefit of this technique is that you can attach files when sending emails.

Google Mail Application

I don’t use this either. I just connect over the web and have a bookmark stored which is linked to from the main screen.

Other Applications :

Rotate Me

Auto rotation: when you turn your device, the screen automatically rotates.

Not played with this one too much yet.

FlipSilent


DivX

To play AVI files rather than just mp4s.

NiiMe


I am really looking forward to this being released for the mac.

pyPiwo

drink beer from your n95.

pyPoziomica

Spirit level tool for the n95!


QR Code Generator

You don’t need to download any software, the n95 has a built in QR code reader, from this site you can generate QR codes to try on your phone.

Dr. Jukka’s Inclinometer

Y-Inclinometer by Dr.Jukka is an instrument for measuring angles of slope (or tilt), elevation or inclination of an object with respect to gravity . You have only to fix your phone and adjust it so that it is perfectly upright in your vehicle 🙂


More apps and reviews :

http://n95blog.com/25-must-have-applicatons-for-your-nokia-n95/

http://sjc-123.blogspot.com/2007/06/best-tips-and-tricks-for-nokia-n95.html

http://www.hd911.com/archives/114

Running a Web Server from the N95

Mobile Web Server

allows you to run a web server on the phone.

PAMP – Personal Apache Mysql and PHP

I am yet to grasp the potential of everyone walking around with a web server in their pocket. ccTiddly is nearly working on PAMP and I have been reading some interesting use cases. Notably a bar which pulls its music from everyones phones and can also project videos from peoples phones onto the walls.

I’m off to Brazil for two weeks but will post more about the potential of the n95  running a web server when I get back.

Google Images in TiddlyWiki…and maybe flickr?

After playing with the server side search for ccTiddly and knowing there were some project on the horizon that wanted to integrate google search into tiddlywiki results I decided to add google search into TiddlyWiki. An example of which can be found here.

As an extension to that I decided to add a google images search.

I have uploaded an example to Tiddlyspot at:

http://imgsearch.tiddlyspot.com/

The tiddlers which make it all work  are:

http://imgsearch.tiddlyspot.com/#googleImage

Overrides search onKeyPress function so that tw searches google when the users presses enter.

http://imgsearch.tiddlyspot.com/#MarkupPostHead

Includes the google javascript file, you will need to change the API key (at the end of the URI) if using on a domain other than Tiddlyspot.

http://imgsearch.tiddlyspot.com/#imageView

Code that creates the drop down list of images.

http://imgsearch.tiddlyspot.com/#taggedTemplateTweak

Allows tiddlers tagged “image” to use a different template.

http://imgsearch.tiddlyspot.com/#EditTemplate

Adds images link to the EditTemplate. Im sure there is a better way of doing this.

http://imgsearch.tiddlyspot.com/#ImageViewTemplate

It all works by storing the URI to the thumbnail in the tiddler title. With this template we hide the title.

and Flickr?

I started playing with the flickr API, its returning the results in JSON but I have not had time to integrate that into the above script.

If you look at the flickr tiddler its currently searching for “simonmcmanus”

http://wikidev.osmosoft.com/flickr

Given that im now on holiday its not going to get done for quite a while. If anyone wants to make a tiddlywiki flickr plugin the pieces are all in place.

Comments and suggestions welcome as usual but pls be aware that I may not respond for a good few weeks. 🙂

The Ultimate N95 hack – Helicopters

It struck me while watching the below video of the Nokia n95 yesterday that the n95 has all the necessary equipment required to run an r/c helicopter.

With its built in GPS and the ability to run a web server, It would seem sensible to replace the radio receiver from a helicopter with a bluetooth one (as shown in the above video)

Ive also been playing with the nokia’s on board web server. It works, although the connection is not exactly reliable.

With a connection it would be really easy to control the helicopter from anywhere on the web!

Ive not quite worked out how we avoid killing folk when the connection drops out.

I consulted NATS about this (ok my sister in law) and it would basically only be legal to fly over private property and below a certain heights.

I really want to scratch this itch but think it could be a little dangerous and I dont really have enough space.

I will try to get up some other posts about the stuff I have been doing with the n95.

The web server stuff is particularly cool

http://opensource.nokia.com/projects/mobile-web-server/

I am particularly looking forward to PAMP in early Jan:

http://blogs.s60.com/mws/2007/11/hot_news_php_coming_to_s60.html

Merry Christmas every body.

ccTiddly System Tiddler Plugins

ccTiddly currently uses a modified version of the basic TiddlyWiki HTML code. This means that whenever there’s an update to the core code, we have to manually update ccTiddly to the new version (which involves some fiddly manual steps).

The goal is to make it so that ccTiddly uses a clean, unadorned copy of empty.html from tiddlywiki.com, and to have it automatically splice in the extra bits and pieces that are needed by ccTiddly.

These extra bits and pieces are a bunch of plugins and some “stock” tiddlers that use macros from those plugins to expose them to the user.

If, like me, you get confused about the difference between a plugin and a macro, remember that a plugin is just a tiddler tagged “systemConfig”, a plugin can  can contain many different macros (which use config.macros)

For instance, there is a plugin called “CreateWorkspacePlugin” that provides the <<ccCreateWorkspace>> macro. The macro produces a user interface that allows users to interactively create a new workspace. So, we need to include the plugin in the HTML file, and we also need to, say, add a new tiddler called “CreateWorkspace” that contains a call to <<ccCreateWorkspace>> the create workspace macro.

Here’s the complete list:
Macro <<ccCreateWorkspace>> (from CreateWorkspacePlugin)

This macro allows the user to create a new ccTiddly workspace by specifying a name, and the permissions for both anonymous and registered users. We’ll make the macro available to users via the backstage area, since this isn’t a particularly common operation.

Macro <<ccEditWorkspace>> (from EditWorkspacePlugin)

This plug in will allow users to manage permissions on a workspace which already exists (assuming they have the correct permission). Going forward this will probably include the master workspace management which will then be moved to its own plug in.

Macro <<ccUserTiddler>> (From UserTiddlerPlugin) 

This tiddler will be used to change your email address, password and user specific tiddlers.

Macro <<ccLogin>> – (From LoginPlugin)

This macro displays the login UI.  When not logged in it will allow the users to login  using OpenID, LDAP or the internal user database. When logged in the user will be informed who they are logged in as and be given the option to log out.

ccTiddly 2.x – An Overview

Why are we doing this?
We’ve now got a couple of user groups within BT using ccTiddly. Their feedback is driving a wave of improvements that I’m working on with CoolCold, the man who originally created ccTiddly. The areas we’ve been looking at are:

Self-service Workspace Creation
The new version of ccTiddly will allows users to create their own ccTiddly workspaces, which is a (more or less) a complete independent wiki with it’s own security permissions.

Reusable Master Workspaces
ccTiddly 2.x introduces the concept of master workspaces.  A “master workspace” allows a set of tiddlers to be packaged up and included in several different workspaces. This allows common content such as themes to be shared between workspaces. Because the links are dynamic, it is also possible to change a tiddler from a master workspace and have the change automatically appear in workspaces that use that master.

User Management
The new version of ccTiddly will have new user management and security that allows permissions to be set on a per-workspace basis for individual users and groups.  Although we’re currently working with a custom user database, I’ve got experimental support for both LDAP and OpenID.

Image and Attachment Support
Users will be able to upload images and other attachments to a workspace .

Import Support
Users will also be able to upload a standalone TiddlyWiki file so that it can be imported into a ccTiddly workspace.

Personal Tiddlers
Users will be able to create custom personal tiddlers which will persist across all workspaces they access on a server, allowing advanced users to be able to have settings applied consistently across all their workspaces

Over the coming few weeks I will be making the above happen and providing you details about each of these sections on my blog.