Surfulater Pre-Release Version 2.91.0.0 is here. Tags come to town

Surfulater Pre-Release version 2.91.0.0 is now available. This has been the longest gap between releases that I can think of, and the greatest overall changes to the code base for some time. This release includes the ability to add Tags to Articles and view Articles based on their Tags. It also includes the start of a move to a new embedded SQL Database engine. The last few Blog posts have largely been about tagging and are worth a read if you haven’t already done so.

We have done this as a pre-release to elicit your comments on the new Tagging system and to resolve any issues prior to a full release. This release sees changes in a broad number of areas and although we feel we have tested most every aspect, real world use will help sort out anything we may have missed. We also want to resolve a few more outstanding bugs and possibly add some more new features before a full release. And most importantly we want to get your feedback on the new Tags implementation.

This release is backwards compatible with previous releases. You should backup your Knowledge Base files before using this release, in addition to performing your daily backups. A third file which contains the new SQL Database is now used with each Knowledge Base. As we move forward, the current three KB files will be merged into a single SQL Database file. This will also enable backups to be done with Surfulater running as well as making for an even more robust database system.

A new Tags field has been added to each Article template, except the Notes template. Simply add your tags here and they will be added to the database. Any duplicate tags or invalid characters are removed when the article is saved. Auto-suggest makes it quick and easy to enter existing tags. 

The new Tags Tree displays all of your tags along with the articles associated with each tag.

Tags Tree

  You can also manage your tags here using the Tags Tree context menu.

Tags Tree context menu

Tags can be renamed and merged with existing tags, deleted and new tags added.

You will notice that the sample Tags Tree above includes some Tags nested below the top level tags. These are tags which are in the articles in the top level tag. For the tag Borneo, one or more articles with this tag also include tags Asia, Sabah and Travel. In other words the nested tags form an and relationship. Their articles contain Borneo and Asia, Borneo and Sabah and Borneo and Travel respectively. This lets you easily see and navigate to interesting relationships between tags. The best way to understand this is to use it.

In addition to the inclusion of these related article tags, I have been thinking of enabling you to specify  Tag search expressions, which would appear as virtual Tags in the tree. For example you could specify “car and ford and not 2006″ and all matching articles would be displayed. This may well be added in the future, but first I want see what folks think of the current implementation.

I know many Surfulater users have been eagerly awaiting the ability to Tag content and I very much look forward to hearing what you think of this first release with tagging.

Full release notes are in the Surfulater Help and a new topic: The Basics | Tags and Tagging Articles has been added. Known problems with tagging are in the release notes. Note that some keys have changed in this release. See the release notes for details.

Click here to download this pre-release and when you have used it for a while do let us know how well it meets your needs, or doesn’t!

Tagging and the new Tags Tree

This is a quick update on how the new Tagging system is coming along, and to show you the new Tags Tree. Without further ado here it is:

The Tags Tree

The first thing to note is the new Tags Tree button on the Knowledge Tree bar. The Tags Tree presents each Tag as a Folder, which in turn contains the Articles which include that Tag. Like the Knowledge Tree you click on a Folder and see all the articles in that folder in the content window, or select and display specific articles.

Next you can see the same article tagged into multiple folders. For example the article titled CodeProject: CppSQLite … is tagged with C++, Database, Library and SQL as shown in the next screen shot. If you look back at the first screen shot you will see three of the Tag folders expanded and this article in them. The fourth tag Library, is collapsed.

Example Article Tags field 

Editing an articles Tags in the content window, updates the Tags Tree accordingly. For example if you delete the tag SQL for this article, the article will be removed from the SQL folder. Similarly adding new tags to the article, will make it appear in the folders for those tags.

You can also edit the Tags themselves, either in the Tree or via. their Folder in the content window. When you rename a tag one of two things happen. If the new name doesn’t already exist, the tag simply changes to the new name and the tree is updated. If the new name does exist then all of the articles with the original tag are moved to the folder with the new name, and the original tag is deleted. Where an article has both the new and the original tag, the original tag is deleted from the articles tags field. A prompt is displayed allowing you to Cancel a rename where the new name already exists, preventing the articles from being moved and merged.

The ability to rename and merge tagged articles is an important one. For example if you had created the tags cattle and cow, used these these in lots of articles and then realized this was a mistake and you should have only used cattle, then all you need to do is rename the tag cow to cattle.

Tags can also be deleted via. the new Tags context menu.

The design of the the Tags system is such that rename and deletion of tags happens very quickly. In the case of  renaming a tag to a non-existing name, the entire knowledge base is updated instantly, even if that tag is used in a large number of articles.

As mentioned in recent posts the new tags system has been implemented using the a new SQL Database Engine and so far, I am very pleased with how this has come together and is how well it is working. But it is early days and so far only Tags use the new database. The design work for moving all existing Knowledge Base content to the SQL Database Engine is progressing smoothly.

There is still a bit more code to write and more testing to be done, but a release with Tagging isn’t far away now.

Tagging Surfulater Articles, a sneak peak

It is time to do a bit of show and tell about the new Tagging capability being added to Surfulater. The ability to add tags or keywords to articles and then locate articles for specific tags, has been a reasonably common user request. Tagging of content has become extremely popular in recent times, especially on Web sites. I have done a fair amount of research into tagging, folksonomy, ontology, semantic web etc. over the post few years and it is clear there is a lot happening in these areas and we are in many ways still in the early days.

A problem with tags is that single words on their own, are often ambiguous and have no context. For example what does “disk” mean? Is it a hard disk, a record, a CD, a disk in your back or maybe even a plate.

CamelCase (or WikiWords) offer one solution to this, but one I don’t personally like, not that I’ve actually used it much. To quote Wikipedia

CamelCase is the practice of writing compound words or phrases in which the words are joined without spaces and are capitalized within the compound. ex. HardDisk … CamelCase is rarely used in formal written English, and most style guides recommend against its use.

Hierarchical tags are another way to add extra meaning. ex. hard.disk For some time I thought that the ability to use hierarchical tags would be worthwhile, but have in the end decided against that.

To locate articles using tags, my current plan is to enable expressions to be used to specify tag groups. For example: car AND porsche. A tag hierarchy would use car.porsche for this. The problem here is if someone tags porsche instead of car.porsche, then the former won’t appear under the car.porsche listing. It is also more effort to enter hierarchical tags. Expressions offer endless flexibility here. You can find just “car”, just “porsche” “car and porsche”, “car and porsche and not 911” for example.

A tree will be used to show all Tags (as folders) and their matching Articles as children. The aforementioned expressions can be used to specify virtual folders in the tree, along with the matching articles. This will be a new tree in the Knowledge Tree bar.

Until this is all in place and in use, it is difficult to say how well it will work in practice, but I feel it is a good solid starting point.

The next issue is that the use of Tags is a bit of a mess, everyone does their own thing, and there is little standardization, which of course makes using them to find things is less than ideal.

To quote from Wikipedia again:

There are drawbacks to such tag-based systems as well: no standard set of keywords (also known as controlled vocabulary), no standard for the structure of such tags (e.g. singular vs. plural, capitalization, etc.), mistagging due to spelling errors, tags that can have more than one meaning, unclear tags due to synonym/antonym confusion, highly unorthodox and “personalized” tag schemas from some users, and no mechanism for users to indicate hierarchical relationships between tags (e.g. a site might be labeled as both cheese and cheddar, with no mechanism that might indicate that cheddar is a refinement or sub-class of cheese). Services which allow both tags and folders for organizing bookmarks (such as Netvouz) make this less of a problem though. 

I’ll add Surfulater to that list. It goes further by enabling an article to be in many folders at once and letting you add links between articles, to build a web of related information.

In this situation all that folks like me can do is provide the best tools we can and hope they are used wisely. To this end it is important to use a well defined set of tags (see controlled vocabulary), instead of any old ad-hoc words. To help ensure consistent use of specific words I’ve implemented an auto-suggest list which displays words matching the characters typed so far, which you can then pick from. The first image shows the auto-suggest list with matches for the letter d, along with the matching characters bold and underlined as a visual cue. The second image shows the selected word entered as a tag.

Tag auto-suggest list  Word chosen from list

You can also press the Down Arrow key to access a list of all defined tags, as shown here.

Complete auto-suggest list

 

When you enter a tag word that isn’t present in the tags list, it is automatically added. Next a window opens showing the newly added tags, enabling you to correct or delete these tags as required, as well as add a description. If you are happy with the newly added tags just click “Close” to continue. The design here is to try and impinge as little as possible on your work-flow. An alternative approach would be to prompt you each time you typed a word that didn’t exist and ask if you wanted to add it. This could be quite tiresome, especially during the early stages of building your list of tag words.

As I mentioned on the blog recently the inclusion of tagging has dictated extensive changes to the underlying database engine that Surfulater uses, as  well as several other fairly major framework enhancements. This means that the time to the next release will be a bit longer than usual, but hopefully well worth the wait.

New Year – New Release

The first release for 2008, Version 2.52 Build 10.0 is now available for download. This is primarily a maintenance update to address some issues with the new Web KB Publishing capability. It also includes two new, user contributed, article templates, “Texts and Authors” by Edwin Relf and “Quotation” by Ed Taylor. Full release notes are in the Help and online.

Looking ahead the plan is to immediately commence work on implementing Tags, as I mentioned in my last blog post and to incorporate a new SQL Database Engine. Tags will be the first use of the new database, with other areas to follow.

Tags and the move to SQL are both very interesting new developments for Surfulater, which I’m sure will hold us in good stead for important and impressive new releases during 2008. Thanks to everyone for your continued great support and I look forward to working with you all to continue to evolve Surfulater in the year ahead.

Surfulater V2.50, Build 0.0 released – A Very Merry Xmas

Let me start by wishing everyone a very merry xmas and a prosperous and healthy 2008. I’d also like to thank everyone for the great support you’ve given to Surfulater and myself this past year. Your e-mails and forum posts praising Surfulater and also being critical, from time to time, are always very well received and help keep us on course. We have lots more to do with Surfulater in the coming year. I’m sure you won’t be disappointed as the new releases continue to deliver more capabilities as well as enhanced functionality, while hopefully remaining true to our goal of ease of use.

Actions speak louder than words, so let me show you the big new feature in this release; click here*.

If you’ve been reading the blog, this won’t come as a surprise. If you haven’t, then what you are seeing is the sample Surfulater Knowledge Base displayed in your Web Browser. What does this mean? Well it enables you to Publish your Knowledge Base files and view them in a Web Browser, without any need to have Surfulater present.

Various uses quickly come to mind.

  • You can carry your KB’s around on a USB Stick and view them on any PC, which has a Web Browser. No other software is needed.
  • You can Publish them to a PC on your Network (LAN) for others on the Network to access.
  • And as you’ve just witnessed you can put them on a Web Site, for anyone with Internet access to see.

This new Web Publishing capability makes it easy to share your content with friends and colleagues and paves the way for even more interesting new ways of working with knowledge bases in the future. You can think of it as setting your content free.

It is clear from the comments in my previous blog post, that this is a very important step in Surfulater’s evolution.

For more information see View Surfulater KB’s in any Web Browser, wherever you are, read the Help file topic Power Features|Publish to a Web KB and read the Release Notes in the Help or here.

Well that’s it for now and probably for 2007. Have a great Xmas and do let me know what you think of the new Web KB publishing capability.

Neville

* To view Web KB’s Javascript must be enabled in your Web Browser. To view Web KB’s on a Local Drive, IE users need to either enable: Tools|Internet Options…|Advanced|Allow active content to run in files on My Computer or select ‘Allow Blocked Content’ from the context menu when prompted.

View Surfulater KB’s in any Web Browser, wherever you are.

We all want access to our information wherever we happen to be, assuming of course there is a PC available, or maybe even a Smart-phone. Various technologies are making this possible, all the more so as our lives become “always connected” to the Net and as data speeds continue to improve. There is interest in moving content out of Surfulater for access by other programs and for viewing it when Surfulater isn’t available. For the former Perry Mowbray has written SUL2Text which extracts the text from a Knowledge Base and dumps it into a text file.  And Perry also wrote HTMLView which generates a Surfulater TreeView and Articles. You may also be aware that Surfulater’s main content is stored in an open standard XML file, which can be accessed by other applications.

If you read Perry’s HTML view article you will see I sparked his interest, as I’d thought for some time that the ability to view Surfulater Knowledge Bases in a Web browser would be a very, very useful. This capability delivers important new ways to access all of the valuable content you’ve put so much effort into collecting and most importantly does so without any need to have Surfulater installed on the PC you want to view it on.

Without further ado here is a screen shot showing content from the MyKnowledge example Knowledge Base in Internet Explorer.

Surfulater Web Viewer

As you can see we’ve got the Knowledge Tree and the Content window, just like in Surfulater. Clicking on any folder or article in the tree displays its contents, and the keyboard cursor keys also navigate around the tree. The tree is expanded to match how it was in Surfulater when it was published.

To play with a real live demo click here. Note that Javascript must be enabled in your Web Browser and this being an alpha-release there are some known problems. Depending on your Internet connection speed and the phase of the moon, this will take around 10 seconds to load. We will likely be able to speed it up a bit in the final release.

Noteworthy features in the demo include the ability to hide or show the tree by clicking on the [< <] button.  When hidden, you can click on the vertical bar to auto-show it or the [>>] button to lock it open. You can resize the knowledge tree panel by dragging its border and you can right click on a folder to access its context menu, which in turn lets you expand and collapse all of its folders. Capabilities like toolbars, more menu functions etc. will likely be added in the future.

By now you may be thinking this is all well and good but what would I use it for. I see three main use cases. First you can publish your content to a PC on your LAN so anyone on the Network can view it. Second you can publish it to a USB Memory Stick or USB Hard Drive and then access it on any PC, wherever you happen to be. And third you can publish it to a Web Server enabling anyone with an Internet connection to view your knowledge bases.

This new publishing capability sets your information free, enabling you to view it on any PC, without any need for Surfulater to be available on the PC. It takes our open XML format Knowledge Base a step further, allowing you to share your information on the Web or a LAN, or carry it on a USB Stick, so you can see always see your content, wherever you happen to be.

Once your Surfulater information is accessible from a Web Browser, it’s not hard to see the potential this offers for the future.

Surfulater V2.30.10.0 Released – External Links and …

The first big new feature in this release is the ability to link from other application documents directly to Surfulater articles. For example you can add an article link to a Microsoft Word Document and then click on that link and open the article in Surfulater, as shown in this picture.

Link from Word Document to Surfulater Article

 

‘See Also’ links have always been invaluable in creating webs of related information within Surfulater, and this new external linking capability extends that to enable using links from other applications. This important new capability opens up your Surfulater content, making it quick and easy to access from other applications.

To create an External link right click on the Surfulater article and select Copy As from the context menu.

'Copy As' on context menu

 

For this example we choose Plain External Link as that’s what we need for the MS Word document. This copies the link to the Windows Clipboard.

The next step is select the text in our Word document which we want to add the link to and press Ctrl+K or use the Hyperlink toolbar button or menu option. Then paste the link into the dialog as shown here and press OK.

Word Insert Hyperlink dialog

 

The result is a link we can click on to open the referenced article in Surfulater, as shown in the first image above. Note that Surfulater doesn’t need to be running for external links to work.

These external links to Surfulater articles can be used in any applications that let you use Hyperlinks. They can also be used from a Windows Command Prompt and on the Surfulater command line. For more information on External Links see the Surfulater Help topic: Power Features|External Links.

The next important new feature in this release is the ability to use ‘See Also’ links to connect articles in different knowledge bases to each other. This extends the existing ‘See Also’ links, making them even more useful.

'See Also' links across knowledge bases

 

This screen shot shows a ‘See Also’ link in the Hardware knowledge base which accesses an article in the Home knowledge base and vice-versa. Clicking on either link opens the referenced knowledge base, if it isn’t already open and then displays the linked article.

‘See Also’ links across knowledge bases are created in the same way as links within a knowledge base, using “Copy” and then “Paste as reciprocal ‘See also’ links”. See the Surfulater Help topic: Power Features|Creating Cross Reference links.

Also updated in this release is the use of Cut, Copy and Paste, including their use on the Edit menu and Toolbar buttons, along with with the Ctrl+X, Ctrl+C and Ctrl+V keyboard shortcuts. All methods of issuing Cut & Copy are now available both in the Knowledge Tree and in the Content window, with the action they perform based on which window has focus and whether there is any text and/or images selected in the content window. These changes improve the availability and uniform use of Cut & Copy.

The final new feature to point out is Copy Image and Cut Image, which enable images to be copied to the clipboard, without having to first select them.

For more information on Cut/Copy & Paste and Cut/Copy Image see the new Help topic: The Basics|Cut, Copy, Paste & Cut/Copy Image.

That’s all for now, I hope you like the new features in this release. As always your Comments are most welcome.

Version 2.30.10.0 will be available shortly from our Download page.

Surfulater V2.20.0.0 Released

Of all the Surfulater feedback we receive, a few really standout. One in particular has been the request to edit all fields in an article at once, instead of having to do this for each individual field. Product design is full of decisions and trade-offs, both under the surface (which you don’t see) and right in your face (stuff you see and touch all the time). The latter can dramatically improve, or hinder, product usability. The decision to implement editing on a field by field basis, was in hindsight, clearly not what our users wanted. The problem was, this was a bit too entrenched in the design and as much as folks wanted it changed I couldn’t see a clear path that would allow it, without considerable upheaval. A Forum post by Jai Kasturi was the last straw, time to stop procrastinating and take action. Sometimes that’s what we need and when you do indeed act, things can fall into place and the worries about upheaval are swept aside. Fortunately this was a time when it wasn’t as difficult to rework the code as I had expected. It took a fair chunk of time, but in the end came together nicely.

Jai’s Forum post touched on a number of issues related to creating new articles and editing articles, amongst other things. In fact he wasn’t using Surfulater to capture and save Web content, but as a Note Taker/Information Manager where he was entering content himself. Jai is not alone in this type of use, but he pushed the envelope more than anyone else I’ve heard from, writing over 2,000 articles at the time of his forum post.

Jai’s post made it clear that the process of writing new articles within Surfulater was far from ideal, which I also took on board for this release. Instead of right click, menu select, sub-menu select to create a new article then pencil click to commence editing you can now simply press Ctrl+F2, which creates a new article and commences editing in one keystroke. More on this below.

Editing an article now looks like this.

All fields editable

As you can see all fields are in edit mode. Tab and Back+Tab move to the next or previous field and no longer end editing. A new key, Ctrl+S saves changes and ends editing, as does Shift+Enter which has always been available. And Escape optionally cancels editing, as before.

Commencing editing has also been enhanced. Shift+F2 edits the article or folder currently selected in the Knowledge Tree, as does the new Edit|Edit current Article/Folder menu item and matching toolbar button Edit toolbar button.

F2 now commences editing on the first field of an article, if no field has focus (dashed outline). This assumes the content window is active, not the Knowledge Tree. And mouse click to commence editing, can now be completely turned off in View|Preferences.

A new main menu, Edit has been added which brings Surfulater more in line with other Windows programs.

New Edit menu

The Edit menu includes some items previously on the Article menu as well as new items.

Both the Knowledge Tree and Content window context menus have been updated to include Edit this Article, New Article and New Article from Clipboard menu items, delivering a more consistent and accessible user interface.

Knowledge Tree Article context menu   Content window context menu

 

I mentioned earlier that adding new Articles has been streamlined. To begin with a New Article toolbar button and drop-down menu has been added.

New Article toolbar button and menu

 

When you click on the drop-down arrow, the article templates menu is displayed. You’ll notice that each article template now has an underlined shortcut key, so pressing M for example creates a new Music catalogue article.This means you can now use the keyboard to select the type of article you want to create, as requested by Jai and others. 

Once an article template has been chosen from either the New Article toolbar button menu or Edit|New Article menu, you can use Ctrl+F2 or click on the New Article toolbar button (left of the drop-down arrow), to create more articles of the same type. This lets you create new articles with just one keystroke or mouse click.

Alt+F2 is another new key in this release. It  drops down the New Article toolbar button menu. ie. It behaves as if you’d clicked the buttons drop down arrow. By using Alt+F2 plus the new template menu shortcut keys, you can quickly create any article type. ex. Alt+F2 T creates a To Do List article.

The final enhancement for new article creation is that Surfulater now goes straight into edit mode on the new article. Combine this with editing of all article fields at once, along with the other updates in this release and I’d like to think we have some very happy people out there.

As always the full release notes are in the Surfulater Help and in the support Forum. And the latest release is always available on the Download web page.

As a final take away make sure we know your thoughts, otherwise don’t expect them to ever come to fruition. Our Forums are the best place for this.

Ok, nearly there now.

The next release of Surfulater, Version 2..20.0.0, is just about finished. To be precise coding has finished, and a reasonable amount of testing has been done. What’s left is to polish up the Release notes, update the Help and do some more testing. Plus write a blog post about the changes and additions in this release. I’ve been remiss in my blog writing of late and hope to do some catchup once this release is out the door.

I guess you’d like a glimpse of what’s new. Well the one big thing which will make many of our users happy, is that I’ve reworked the article editing code so that all fields go into edit mode, not just the chosen one. Adding Asrticles from within Surfulater has also been streamlined. These along with various other enhancements make article editing and adding new articles much easier and quicker. These have been real sticking points for many of you, so expect to find some big improvements in this release.

Surfulater V2.00.30.10 Released

Surfulater V2.00.30.10 is the second of two releases in quick succession. With the V2.00.10.0 upgrade to enable multiple articles to be selected in the Knowledge Tree, Surfulater came out the other end a little worse for wear. I always knew that implementing multiple selection was going to be reasonably complex and impact on quite a number of areas, but I’m a bit annoyed with myself that two quite serious issues slipped through testing. The fact that they took a while to surface is some small conciliation, however it would of course been far better for everyone if they hadn’t existed in the first place. The most serious problem was fixed in V2.00.30.0 which has been out for almost a week now and the folks that had reported the problem have not had it reoccur so far.

The main new feature in the .30 release is that the Chronological Tree view has been updated with two new ways to group articles in the tree: By Week and By Month. These are in addition to the original Day/Week/Month view.  The “Show Articles in Chronological order” toolbar button, which is above the Knowledge Tree, now includes a drop-down arrow which enables you to select from one of the three available article groupings as follows:

Chronological View Toolbar button

And the resulting trees look like:

By Month

By Month

 

By Week

By Month

 

By Day/Week/Month

By Month

These new groupings follow on from feedback for the V2.00.20.0 release which enabled you to change the Date Created for articles. They will be of particular interest to people using Surfulater as a Journal or Diary. See the Help topic ‘Knowledge Tree Views’ for more information.

The final thing thing I’d like to show is how easy it is to create links between articles (See Also links) by dragging an article from the Knowledge Tree and dropping it on the ‘See Also’ field of the target article. See the Help topic ‘Creating Cross Reference links’ for further information.

(You need to use IE to see the movie. For some reason it doesn’t appear in Firefox!)

The Surfulater Download is in the usual places here and here.