Friday, July 29, 2005

Remember Me

After 20 idle minutes, the session expires.

I want to add a 1-day cookie, but then there could be a small problem when using a cybercafe.

The answer to that is to add a RememberMe option to the login.

Note that this is helpful, but not sufficent, for external links to Ark content.

(Had fun digging into cookies and the Twisted API this AM--its been a while.)

Thursday, July 28, 2005

resolution order

Reference resolution has 3 stages:

s1: determine the applicative context. This is the current item, its parents, grandparents, etc., as well as any includes found on these items.

s2: determine the visible topics. This includes the applicative context and their children and anything that is named by items in the applicative context.

s3: determine the referencable items. This includes the visible topics and their children and anything that is named by the visible topics.

Unfortunately, the process is depth-first. So a non-visible but referencable topic, if encountered early, is given preference over a visible topic or even a topic in the applicative context. In consequence, resolution order is pretty unpredictable. Ouch!

This has been a known problem. It makes the output of the t command moderately useless. I think its time to address it, so I'm adding it to CS1.5.

Tuesday, July 26, 2005

immediate plans

Right now there's still a number of topics that I want to cover in compstrm.org, especially selectors and command lines. But that should be pretty quick.

Then I want to add a restore capability to 1.4. (See http://compstrm.sourceforge.net/future.html for details.)

Then its on to 1.5. With the changes that are planned, it will be possible to have external web links which reference items with an ark.

Sunday, July 24, 2005

1.4 is now Beta

Release 1.4 focused on improved calendar support:
  • The gencal program was enhanced to provide better annotation on days, making the week-at-a-glance view more helpful.
  • Posting gives you the ability to copy things, even prior versions. Now you can journal all activities in the current day and then post them elsewhere when appropriate.
  • Time macros were added for easy navigation of the calendar.
  • Misc bug fixes.

I still need to upgrade www.compstrm.org as its only running release 1.4-0529a. Perhaps tomorrow--its been a big day.

posting prior versions

The post command is the first command to work in past time, though the copy is always created at current system clock time.

You can use post to restore an earlier version of an item, but its really not designed for that. The problem is that post does a deep copy, so it is probably too powerful. This creates problems particularly when a subordinate item is also under another item. You can easily end up with two copies of that subordinate item, rather than having one item in two places.

Guess we need a restore command that will restore only the current item, without effecting subordinate items. Meanwhile, have fun posting!

Saturday, July 23, 2005

a week at a glance

So, how do you use the calendar?

Just create LSecs on a day, like $cd, for planned events that happened on that day or for events planned for the day. Or perhaps some deadline you have?

Now If you go to the week, like $cw, $pw or $nw, then you can view the names of all the LSecs you created on each week of that day.

Its a week-at-a-glance collaborative planner!

Posting complications

Problems with Multiple Parents

When a Folder is posted, the Pages in the folder are posted to the new Folder. A Page in the original Folder may also be under another Folder. The new Page will now only be under the new Folder.

However, when we copy a Drawer and there is a Page in that Drawer which belongs to two Folders in that Drawer, then the new Page should belong to the two new Folders in the new Drawer.


Name Complications

A name can not span Cabinets. When posting to another Cabinet, the name may break.

Alternately, when the named item is part of the item being posted, then the name should be changed to point to the new item.

Addressing these issues

Making copies of graphs which are not purely heirarchical (the multiple parent problem) is easy enough. You just keep a table of all the items which were copied together with the copy of the item. The name problem is a bit harder, as you may or may not be copying the item pointed to by the name.

There are two possible fixes to the name problem. Either you first scan the entire structure and build the table mapping original items to new items, or you fix them when you learn that you are making a copy of the named item.

posting and TKCS

The TKCS database that the Wiki is implemented over has quite a bit of metadata about the various properties that are used. Enough so that a destroy operation is entirely generic--the metadata determines which sub-files (nodes) get destroyed in turn and which are niether part of nor dependent on the item being destroyed. This same metadata is sufficient to implement a Wiki post operation.

Now I never implemented a copy operation at the TKCS level because of a problem with file names. Within each TKCS directory, files had to have unique names. So when copying a structure, all the sub-files also had to have unique names. But this is not a problem with posting at the Wiki level because all the TKCS files used to implement a Wiki item have randomly assigned file names. (And there is no need to give the new item a different WikiName.)

Posting will apply to every usage except Ark. However, a post operation will only copy present values, not past state.

A post operation will have two phases:
  1. The item being posted is copied.
  2. The new item is added to the designated Ark, Cabinet, Drawer, Folder, Page or LSec.

There are also some future considerations, going forward:

  • Usage may change. For example, a Remark may be posted as an LSec or Page.
  • Type may change during a posting operation.

Friday, July 22, 2005

Date Macro$, posting

The new date macros make it easier to navigate the generated calendar and to create references to the days, months, years, quarters, cycles and weeks in the calendar.

Note that the only difference between $cd and $ci is the form of the reference generated--they both create references to the same day LSec.

Now the big question. Do you create a consolidated journal in the calendar cabinet, or do you create topic or project-specific journals? In the latter case, you can always access all items which contain a reference to a particular day by using the cit command.

But this is an either/or choice which should not be! There is a big hole in the CSWiki--making copies. The proper rolonic term is posting, as in posting a journal to a ledger. Best practice would be to "journal" everything in the calendar and then post to the appropriate "ledgers".

Posting is likely the next thing to be worked on, and will no doubt be helpful in a wide range of activities. But notice first the interesting difference between having the same Page in more than one Folder and putting a copy of a Page in another Folder.

Adding examples to command descriptions

Transcribing the command descriptions from webi.py into compstrm.org is a slow process. But its a good review--I've already found the demote command had an obsolete description.

But it is also a great opportunity to add value. Look at ReadMe/CswCmd/dCmd for example. This is a complex command and I've now clairified it a bit with some examples. And of course I'm weaving in a lot of topical references. It should all be quite nice once those topics are developed.

Wednesday, July 20, 2005

keep on going on

Spent most of the day on a second Unix scripting course. And continuing to use CSW for notes. Its great. I've now got a great little reference tool.

Spent some time tonight adding command descriptions to the compstrm.org Wiki. Going slowly, but again, it should be quite helpful as more material is added.

I'm looking forward to tracking down those strange TKI bugs I found this morning. Meanwhile, I'm calling it a day.

frustration

Tried to uninstall/reinstall the hp 3320 driver on my laptop this morning. Gave up after an hour. It still wants the hp cd for a missing dll. Only.

Fixed the problem with Data. But while testing the TKI examples, things just fell apart. Not sure what is wrong yet. But its time to get ready for work, so it will wait until tomorrow.

Tuesday, July 19, 2005

Adding content to www.compstrm.org

I've been spending some time each morning working with the CompStrm code, and in the evenings adding content to www.compstrm.org.

I've started with CswTerm and CswCmd in the ReadMe Cabinet. These will be quite helpful to have roughed out when starting the tutorials.

a bug in time?

I had posted a bug notice some time ago:

By: Bill la Forge - blaforge a bug in time? 2005-07-08 09:43
I've noticed that the t command sometimes fails when in past time. :-(

The problem is with "Data". I create the Data Ark when generating CompStrm--something I need to do occasionally as part of the release process. Then when you do a restore, you end up with changes which occurred at a time prior to the creation of the Ark. So past time views often do not include Data.

The solution is to avoid creating Data when generating CompStrm and instead, the Wiki and TKI examples need to create it when needed. Then the problem will occur only when viewing times prior to releases which did not include this fix.

Monday, July 18, 2005

office calendar

With 1.3 now in beta, I finally generated 2005 at the office. Of course, it doesn't mean anything until I start adding calendar references.

Right now I'm not pushing CSW at the office. Need to write some tutorials. Need to make it more usable (a la 1.4 and 1.5). Especially, I need email integration and support for binary files!

Sunday, July 17, 2005

calendar on compstrm.org

My expectation is that CS1.3 Wiki will be beta within 24 hours. So I've jumped the gun a bit and generated 2005 on compstrm.org.

The calendar isn't much to look at. But it is a very handy tool for tracking down references to dates. As long as the dates are in the proper format, that is: yy/mmm/dd, e.g. 05/jul/17. (Or 05/w28/7 if you prefer ISO dates.) In cs2, we'll interconnect the calendar with the journals and things will get much more interesting.

Saturday, July 16, 2005

adding content to compstrm.org

I've started defining a network of cross-referencing terms for the CSWiki. The next logical step would be to start adding a series of tutorials. But it takes time.

Feel free to follow along, add a few remarks, or otherwise participate! Just go to http://compstrm.org

New version numbers

I'm reworking the version numbers into something that makes a bit more sense:
  • cs1 => cs1.1
  • cs2 => cs1.2
  • cs3 => cs1.3
  • cs4 => cs1.4
  • cs5 => cs1.5
  • cs6 => cs2.0

Friday, July 15, 2005

A mailing list for CompStrm Wiki

Posting to a forum can be a pain, as Frank reminded me lately.

So I've created a mailing list on SourceForge. Details in the resources section on the CompStrm home page. To subscribe, go to https://lists.sourceforge.net/lists/listinfo/compstrm-wiki

CSW3-0528d is Live!

At http://darklands.cx:8080 you will now find rls 3-0528d running, sans calendar.

Thursday, July 14, 2005

CompStrm Wiki Live! isn't :-(

My fault, to begin with. I didn't provide a startup script to the hoster. Was going to do that today.

But it looks like Python was perhaps reinstalled without Twisted, so I'm dead in the water for now.

Sunday, July 10, 2005

Reaching closure on the TKI examples

The TKI examples, todo1, relations1 and phonebook1, are now pretty well integrated with the CS3Wiki. They no longer use specialized TKCS properties, but instead use headers for tables, tagging and references.

Indeed, you can install these examples with their test data and everything is now fully accessible via the Wiki. On the down side, the Wiki is still not an application server--it is missing any knowledge of types.

Once types are introduced, the Wiki will support specialized displays and commands. That's when things start getting interesting! :-)

Saturday, July 09, 2005

CS2Wiki Live!

The CS2Wiki is now running at http://darklands.cx:8080

Enjoy!

On to CS3

I've made the chlsc command much faster now. But it is still very slow. (I'll release it soon.)

Meanwhile, I've been thinking a lot about cookies and have come to realize that there is a lot that needs doing before I start working on cookies--I want to move some session data out to the various URLs and POSTs. This way you can still have more than one browser window open, each with its own context. It also means that you can use the browser back button except after a post. (And that is a big benifit.)

So I'm pushing cookies et al into G3.

Friday, July 08, 2005

Progress on the Virtual Hosting front

Well I finally found the new email address of the guy who hosted the old qare project. He's now charging $5/month or $50/year. I think I can afford that!

So perhaps in a week or so there will be a public CS2Wiki :-)

Thursday, July 07, 2005

take note

Things have slowed down at work, so I'm back to taking that web-based course on shell scripts. Only this time I'm using CS2Wiki for taking notes.

One thing I did was to create a drawer of unix commands, a folder for each command. The folder name is, of course, the command name. And then I added a 'description' header to each folder which gives a brief description of the command.

So now when I view the contents of the command drawer, I get an alphabetized list of commands, complete with a brief description of each.

I normally hate taking notes, partly I think because I can't read my own writting, partly because of the limitations of paper. But I very much enjoy creating/reorganizing notes using the CS2Wiki!

CS on a pen drive?

Talking with my dear friend Thomas yesterday. He's thinking about running the CompStrm Wiki on his 128MB pen drive. That way he can take it with him where ever he goes.

Sounds like a neat idea.

Wednesday, July 06, 2005

Is CS2Wiki almost done?

Is CS2Wiki almost done? Well, sortof. I don't think there are any more features for this generation. But it is time to focus on making it work better--something I like to spend some time on at the end of each generation.

Case in point, the new chlsc command. This command lets you build a complete table by pasting a csv file from your favorate spreadsheet program into its edit box. Or you can use it to quickly reorder the rows in the table. Or even past the results of a prior lec command! But quick is something of a misnomer here. The more rows and the more columns in the table, the slower it gets. And this is quite noticable even on small tables. :-(

Well, I think I can speed up one dimension, anyway. I should be able to drasticly reduce the time it takes for wide tables. Anyway, that's my plan.

I also want to eliminate the need for redundent logins. Maybe put together a slide presentation. Perhaps start a simple tutorial. Take a little time-out, as it were, before starting in on CS3Wiki.

Monday, July 04, 2005

some things are just not good enough

Got to use CS2Wiki in the office today, even got to show it off to two coworkers. :-)

But I'm coming to realize that some things need work.

For example, it would really really be nice to have cookies! I'm tired of logging back in after a 20 minute timeout on the http connection.

Also, if I send someone a weblink in an email, it would be really nice if, after logging in, it would remember what the link was and take the user to the requested Role.

backup/restore on Unix

Got things working. Mostly operator error.

Turns out, the only real problem was some '\' characters in dump.batch and restore.batch.

So I've just migrated my office work to 2-0527a, and I'll be showing some coworkers today how to use it. :-)

And yes, the next release will contain these minor changes.

Bill

news, good and bad

The good news is that Norm has now converted to CS2Wiki after a bit of a rough start. This means a good shakedown--Norm has promised to pound on LEnts.

The bad news is dump/restore doesn't currently work on Unix. So I'm in a bit of a panic here. :-(

Sunday, July 03, 2005

depricating CS1Wiki!

CS2Wiki development is fast coming to a close. It is in beta now and soon I expect to begin development of the CS3Wiki.

You can easily migrate your data from CS1Wiki to CS2Wiki. See the section on Migrating Data from the CS1Wiki at the end of http://compstrm.sourceforge.net/compstrm2/gettingstarted.html

Thank you
Bill

CS2Wiki now in BETA

With the completion of headers and the Unix port, there is a good reason for moving the CS2Wiki to beta. To do this, I've moved several items into CS3Wiki.

I'll note that migration from CS1Wiki to CS2Wiki is very simple. The migration proceedure is covered on the Getting Started page.

Note however that a number of command names (all dealing with LSecs) are about to change in CS2Wiki because of the subsequent addition of LEnts.

progress

Well, I got my UPS, and with a nice external battery. Except that its just a switch, so it takes 3 seconds to restore power. Great for my laptop, not so good for my Unix box. :-(

Then I found that my equipment is now hot--there's a ground circuit problem too! On the plus side, we are no longer experiencing repeated long power outages. So I had finally got some productive work time.

Headers are now being displayed everywhere. You can even select which headers and in what order.

The next step is to get ready for LEnts. So the l and crl commands become ls and crls. Then I start adding LEnts.

So what's the difference between LSecs and LEnts?
  • A LEnt has no subordinate LSecs or Remarks
  • A LEnt can only occur under a LSec
  • A LEnt has no name.

Not having a name is really the interesting part. (It really does have a generated name, but lets not get picky.) It means we're dealing with just data. So we can have processes which generate LEnts without requiring a user-friendly name for each one.

Saturday, July 02, 2005

header displays and queries

The t, c, d, f, p and r commands will soon be displaying header values.

We already have the ability to select by header, now its time to support queries.

A command "t * phone=" lists all topics with a phone header. I want to extend this syntax like this: "t * phone= phone?". This would list the topics that have phones and display the phone number as well. Adding additional name? arguments to the command will add additional columns to the display.

And when there are no name? arguments, then all headers will be displayed as name: value pairs.

Hopefully I can get this done this weekend, depending on power.

severe power problems

The appartment building where I live has been experiencing very frequent power outages. Power is on for an hour and then off for 4. Its been something of a bother and interfering with writing code! Having a laptop helps, but too often I loose my DSL connection. (Been doing a lot of work by candle light lately.)

Today I'm going to try to buy a large UPS. Wish me luck!

Friday, July 01, 2005

Getting Started (revised)

I've updated the CS2Wiki getting started page, mostly to include Unix install considerations. It's available on-line at http://compstrm.sourceforge.net/compstrm2/gettingstarted.html (and in the next release, of course).

One more Q/A from work

Q:

Why can't I use the Back button on the browser?

A:

The Wiki tracks your current context. If you click the Back button and then enter a command, the command may be applied to the wrong item.

Newbie Q & A

Here's some Q&A from an email discussion with Frank. I'm posting it here, slightly reworded, as he has indicated that he doesn't mind having it public.

Q:

I assume it is Cabinets have Drawers that have Folders that have Pages that contain Lsecs? Is that right?

A:

Now while the ark can only have cabinets, cabinets can have drawers, folders, pages, lsecs and remarks. Drawers then can have folder, pages, lsecs and remarks. Etc. The exception comes at the LSec level--they are recursive! An LSec can have LSecs and Remarks. A remark then can have nothing.

Q:

What is a Remark?

A:

What is a remark? In a community wiki, one person writes a page and others attach their remarks to the bottom. CSWiki provides structure, so such remarks are separate structures. The advantage here will come when we add access control. Like a blog, I may be the only person allowed to update a particular drawer. But I may allow anyone to attach remarks--so remarks are there as a separate structure because they have different authors and perhaps different access controls.

Q:

Besides color (which I got to work) what other cls commands are there?

A:

Have you tried the help command? I will note that it gives different results at different places in the ark.

One thing may be of interest--sortp, unsortp, sortl,unsortl, orderp and orderl. These commands allow for either lexigraphical or manual arrangement of the LSecs and pages on a Cabinet, drawer, folder, page or LSec.

Q:

Hi, can I do a “Cabinet Level” dump to file or is it all cabinets in the ark?

No problem, I will just make sure that use either qualified or unique cab names for those cabinets I want to share between Arks.

A:

Lets stick with ark level for now. I know this hurts. Things will improve when I focus on streaming. I've really set things up so that dumping and sharing can occur at the cabinet level, as well as access controls. But not yet. :-(

Q:

I did not know if you wanted this type of "newbie" questions on theForum. I would be happy to post a summary there.

A:

My hope is that we get lots of newbies full of questions. Then you can return the favor by answering some of those questions and we can build a FAQ to reduce the chatter. :-)