Content styling and templates

Bit by bit I’m working on making it easier for folks to create their own Surfulater article templates. Once I’ve finished laying the groundwork and updating the existing styles and templates I’ll be ready to put a release out and write a strep-by-step guide to making your own templates. This is all a precursor to having template editing capabilities built-in to Surfulater.

The first step in this process has been to review the styles that are currently used by the templates and ensure they are sufficient to cater for the varied templates you are likely to want to create. This requires some guess work on my part as my crystal ball is currently out for repairs. With some guidance, I’ve refined and I’d like to think improved on the current look. By styles I’m referring to things like borders, fonts, margins and the like.

These images show what I’ve produced so far. The main differences you will see include a thinner border around the record, thinner more subtle borders between cells, the use of different colored borders, a different and smaller font used for field labels, and the focus rectangle and edit background color going all the way to the edge of the cell.

New look – plain

Current look – plain

New look – with focus

Current look – with focus

New look – editing

Current look – editing

The differences are subtle but I feel offer a cleaner and tighter look. I’m undecided about changing the color of the field label text. Of course this is something you can change, but seeing that most people won’t bother, a sensible default is needed.

These screen shots show a Folder, which is all I’ve worked on so far. However I’ve updated the code so that article and folder templates can use different styles.

The final screen shot I want to show is with the Content Elements set to hide Field Labels and Edit Pencils. With these settings in the current release you loose ability to collapse and expand articles as the [+] [-] image disappears. It also isn’t all that clear where one record ends and the next one starts, when you are viewing all articles in a folder. To resolve both of these issues I’ve added a new narrow column that includes the expand/collapse image and runs the full height of the article. This color alternates from article to article, making the visual separation much clearer.

I have to say that I find writing CSS and HTML a frustrating experience. It just isn’t something I do enough of, for it to become second nature. I’m also graphically challenged, which doesn’t help. With that in mind if anyone knows of any designers with a keen eye and good CSS skills, I’d welcome being put in contact with them.

From here I’ll be enhancing the template system to enable you to use multiple templates for each individual type or category of template. For example you will be able to have say three different templates with completely different layouts for the Web Template and switch between them at any time. Existing articles will be displayed using whatever template is selected at the time. When a new article is created that uses the Web Template, the current template from the three available will be used. This not only lets you have a custom layout and look, but more importantly it lets you customize the fields that are used. For example you may want to add some new fields and remove or rename some of the default fields. All with the flexibility of switching templates for content that already exists.

Ok I’m done. Do let me know what you think of the new styles I’ve shown above. Maybe you like things just the way they are now!

Improving performance with Multi-threading

A few weeks back a Surfulater customer (lets call her Mary) was having a problem where Surfulater wouldn’t start. It turned out that if she closed Surfulater and then immediately started it again, it wouldn’t start. During the process of trying to work out what was causing the problem I asked if I could get a copy of the Knowledge Base Mary was using. Once I got that I was able to reproduce the problem and fix it. This particular database was reasonably large and it took a few seconds to save, while Surfulater was closing. When you close Surfulater it disappears from the screen straight away, however it is actually still running, saving your knowledge bases and cleaning up after itself. If you started a new copy of Surfulater before the first one had truly closed, things got messy, causing the new copy to crash. So to end this part of the story, that problem is now fixed.

But the real reason for this post is to tell you about an important improvement in performance that I’m just finishing up. For a while now some users have been asking for an option to display a summary list of articles in the content window when you select a folder in the tree, instead of displaying the full content of all the articles. The reason for this request is that if you have lots of articles in a folder, it can take a little while before they are displayed, and during that time you are locked out of doing anything with Surfulater. This was never an issue that overly affected me, as my articles always came up quickly enough. That all changed though when browsing through Mary’s Knowledge Base (with her permission of course). Surfulater could go off with the pixies for many seconds at a time and all you could do was twiddle your fingers and wait. So why was there such a dramatic difference to what I was personally used to? Well it is simply because Mary’s Knowledge Base contains lots of very big articles, and mine don’t. By very big I’m taking about articles with from 100 to 400 KBytes of text and often containing quite a few large’ish images. To display one of these articles, it may take say one second, which is ok. But when you have a folder with 30 like this, you could be waiting around for up to 30 seconds. If you clicked on the folder by mistake, then well that’s just too bad.

So where is this taking us. It was clear from seeing Mary’s Knowledge Base that something needed to be done. I could have provided the requested option of simply displaying a list of article titles when a folder was selected, but I’ve never felt particularly comfortable with that solution. This is because the ability to display all articles in a folder, in their entirety, is very important for some people. Also there is little point displaying a list of articles, when you already have that in the tree. So you may as well just display the folder, without any article information.

A better and more ambitious solution was to hive off the process of displaying articles, so that it wouldn’t interfere with Surfulater’s operation. To accomplish this I’m using what is called multi-threading, which in essence enables you to run multiple processes at the same time, instead of sequentially one after the other. This sounds simple enough, but in fact anyone who has worked on the development of a multi-threaded application knows only too well how complex it is. One overly simple analogy is to think about two (or more) people trying to drive the same car at the same time! The most complex aspect of multi-threading is ensuring the processes don’t get in each others way. If they do the program can easily hang, corrupt files or other resources.

These animations show the improvements I’ve been able to achieve. Both show me holding down the down arrow key to move through the tree. The left hand image shows the behaviour as it has been to date, without multi-threading. Notice that when the tree selection moves to a folder with a number of large articles it pauses waiting for the articles to be displayed. This is the dead time I’ve referred to earlier. The right hand image shows the new multi-threaded implementation, which you can clearly see is much more responsive. In fact it is faster than this image shows, as i was constrained by the recording software I used to create the animations.

 

(You need to use IE to see the movies. For some reason they don’t appear in Firefox!)

The results are clear. You can now click on a folder with lots of large articles and continue working, without having to wait for all articles to be displayed. There may still be a short pause, depending on the size of the article currently being processed. This is due to constraints we have on what we are able to do in our background thread.

For the folks that have in the past requested an option to not display articles when a folder is selected, I’d like to know if this new multi-threaded implementation removes that need. And of course I welcome everyone else’s comments as always.

The plan is to have this available in the next release V1.99.0.0, which should see the light of day early next week, if not sooner.

Elusive no more – Surfulater V1.98.3.0 is waiting for YOU

I’m pleased to say the Surfulater V1.98 pre-release went off without a hitch. V1.98.3.0 packages up everything in V1.98.0.0, tidies up a few bits and pieces and prepares the way for the next important release.

The main enhancements in this release include the ability to use ‘Send To’ to E-Mail or Export all articles in a folder, new options to hide or show various elements in the content window, such as hiding item labels, the pencil column or empty fields (see below), the ability to expand and collapse all articles in the content window, updates to the layout in the content window to tighten it up, further improvements to Surfulater’s Unicode support, the ability to start minimized, plus lots more which you can see in the Release Notes.

There are also some important under-the-hood changes which you can’t see just yet, but will very soon. These relate to issues raised by a several people about delays when Surfulater displays all articles in a folder, and the articles happen to be reasonably large. The good news is these delays will shortly be a thing of the past, as the content window code has been re-written to enable the display to be updated in a background thread. The difference is quite dramatic, as you’ll be able to see in a blog post which I’ll publish shortly.

I’ll also be making it easier for you to use your own article templates and I’ll be writing an article which guide you through the process.  Expect to see this in the next few weeks. A new Surfulater user, Joseph Pinzone sent me some interesting article layout mock-ups earlier this week and I’m looking forward to putting some templates together to follow Joseph’s suggestions. And Judy Rich is interested in a Recipe template. Judy has sent me a mock-up which I’ll use in my aforementioned guide. I added a Citation field to the Web template for Mitchell L. Silverman recently, which is also worthy of including in the guide.

To wrap up this post I’ve put together a short movie that shows the new Content Elements feature in this release. This also demonstrates the flexibility Surfulater is capable of, when displaying content.

 

 

 

     

(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.  

That elusive next release

In an e-mail exchange with Stephane Grenier last week, he made a side comment that I hadn’t written anything on my blog in a bit. All I can say is “my how time flies”. Well in fact I can say a lot more, but that pretty much sums up this past month.

I’ve been an ever elusive day or two away from the next Surfulater release for almost two weeks now. The reason for this is that I’ve made quite few changes under the hood and these have rippled through into various areas, which in turn needed to be updated. All for the better mind you.

If I count the bullet points in the V1.98.0.0 Release Notes, then this looks like the biggest release ever. Mind you I’ve not gone back and counted up all the previous releases, but I think this is a fairly accurate statement.

A few things to look forward to include: The ability to use ‘Send To’ to e-mail etc. all articles in a folder, new options to hide or show various components in the content window, such has hiding item labels, the pencil column or empty fields, the ability to expand and collapse all articles in the content window, updates to the layout in the content window to tighten it up, external access to the style sheet used in the content window so you can control how text is displayed etc., further improvements to Surfulater’s Unicode support, the ability to start minimized, plus lots more.

Even though I’ve been too quiet here, the Forums are as active as ever, especially the Surfulater Customer Forums with over 1,100 posts now. If you’ve purchased Surfulater and haven’t registered on the forums yet, then why don’t you go and do it right now.

I really am closing in on a release wrap now and if all goes according to plan it will be out today. Because of the number of updates and their nature, this release will initially only be available to our Surfulater customers. You will be able to download it from this Surfulater Downloads forum area. 

This release has taken a bit longer than I’d planned, but I have to say I’m very pleased with the end result and hope you are too.

Update: The V1.98.0.0 pre-release is now available. See this forum post for details. 

Surfulater V1.96, B2.0 released – calm seas ahead

Putting a new release out is always a high pressure time, so many things to do and check and then worry about whether you’ve got everything right. It typically comes at the end of long days of coding, getting everything you want to get into a release, in place and tested. The biggest concern is always whether you’ve slipped up somewhere and the release has got a problem which will cause your users some grief. The first 24-48 hours of a new release are usually my most restless and even though I’ve been doing this for a long time, the trepidation is ever present.

I’m pleased to say that most releases go without a hitch, which is just how it should be. The last release V1.96.0.0 fell a bit short though, with two quite serious problems being revealed. The first was that keys like Enter and Del didn’t work during article editing, if you started editing via. the slow click method. Fortunately if you started editing by clicking the pencil or any of the other methods, everything worked properly, so there was a straightforward workaround. This problem occurred because of the changes (improvements) I’d made to the HTML editing code, and it simply didn’t show up in my testing.

The second problem was of greater concern, and it turned out had been around forever. As you probably know you can add content to Surfulater while it is hidden away in the Windows System Tray. When you work this way a small notification window appears above the System Tray and informs you that content has been saved and where, then after 5 seconds it disappears.

System Tray Notification

 

I’d had a few reports saying the notification window would stay around for a minute or so instead of 5 seconds, however I’d never been able to reproduce this. To make things more difficult it seemed to only occur when certain other unknown software was running. This all changed with the V1.96.0.0 release when Dan Lucas reported a related problem where his web Browser was loosing focus when the notification window appeared. I wasn’t able to replicate this problem either, however I did finally get to see the problem with the window not closing and content not being captured, which I have to say I was pleased to see.

It turned out that the fix for the window not closing took all of a few minutes to implement, but Dan’s problem of the Browser loosing focus took another whole day. I had a fair idea why this might happen, but I was working in the dark because I couldn’t see it for myself. Dan was a fantastic help and let me send him some pre-release versions, to verify I had indeed resolved the issue.

Long story short, new releases are always a trying time for us software developers. These days the Internet is a huge boon though, as we can quckly turn around a new release and get it in your hands.

So this release is, as I said in the release notes, primarily to fix a few pesky problems in the V1.96.0.0 release. I also took this as an opportunity to squeeze in a few other things that I wanted to get into the last release, but had run our of time, plus some bits and pieces. See the release notes here and in the Help for full details.

My clock tells me it is now 26 and a bit hours since V1.96.2.0 was released and so far it has been smooth sailing. Hopefully the release seas will remain calm for a time.

 

Surfulater V1.96, B0.0 released – A Happy Easter

It’s here, and just in time for Easter. As I mentioned in my last blog post the latest Surfulater release somehow got away from me, delaying its release more than I like. I try to get a new release out about every 4-6 weeks and have been reasonably successful at that so far.

There are several reasons why this release took longer. First researching the requirements to import bookmarks from seven different sources was time consuming, as was testing. Next we’ve had some great new users come on board these past few months and this resulted in higher levels of forum activity and direct communications. All great stuff, but there are only so many hours in the day, so something has to give. Then there has been other diversions such as the great Tucows review and OnFolio being purchased by Microsoft, leaving some users contemplating its future, worrying about their data, and looking at alternatives like Surfulater. And finally the list of things I wanted to do for this release kept on growing, as you’ll see by the over 40 items in the release notes. The good news is that it is out and I can breath a sigh of relief and have a bit of an easter break.

But before I do, I’ll run through some of the new features in this release.

The ability to import bookmarks has been on the todo list for a quite some time. Many of you will have read of my reluctance to clutter Surfulater with hundreds or even thousands of bookmarks (one person told me he has over 10,000), but as you will see I finally relented. This is the new File|Import sub-menu:

Import Bookmarks menu

From here you can import bookmarks from Mozilla Firefox, Internet Explorer and any application that can Export bookmarks in either Netscape or XBEL Bookmark formats. For the latter I’ve specifically included support for Compass, Linkman and Powermarks programs. See the Help topic Power Features | Importing Bookmarks for more information.

The Web Browser context menu includes a new item to enable you to Bookmark web pages in Surfulater as shown here:

 

Updated Web Browser context menu

 

Next I spent quite a chunk of time improving the user interface for content editing and fixing related problems as reported by Mark Vincenzes and others.  Improvements include a dotted outline around the field that has focus as shown here:

Field focus outline

When an article field has focus you can press F2 or left click to edit the field. If you left clicked to give the field focus in the first place, you need to wait about .5 of a second before clicking a second time. The behaviour of Tab and BackTab (Shift+Tab) have also been improved. They now move the focus to the next or previous field within an article. Finally if you’ve made editing changes and press Escape you are now given options to save the changes, discard them or continue editing. Further improvements are also slated. See the Release Notes for full details.

Briefly moving back to Bookmarks, you will see that they include a new Rating field. As you hover your mouse over the rating stars, they change color to indicate their potential new setting. The selected rating is also displayed in a popup tip and on the status bar.

Hover over Rating

To lock a rating in, click on a star and the colors of the selected stars change again to indicate their final setting.

A set rating

I’ve only added the Rating field to the new Bookmark article template, however it is easily added to any template. You’ll be able to search Ratings when Advanced Search is implemented. 

The Bookmark template also includes Modified and Visited fields which can also be used in other templates. Also note that the collapsed Bookmark layout in the content window differs to the other article templates in that it includes the Web address and doesn’t allow editing. There is also a new Note article template with its own characteristics. All of this highlights the flexibility inherent in Surfulater’s design.

I want to touch on two final updates before I call it a day.

First approximately 40 new images have been added to the Knowledge Tree image selection palette. I’ve also updated a number of images with complimentary, but better looking images. Again see the release notes for full details.

New tree item image pallete

 

And last but not least the XML Clipboard Format that Surfulater uses to capture content from other applications has been updated to enable better integration with applications other than Web Browsers. This is the result of lengthy Forum and private discussions between Perry Mowbray and myself. I intend to write a Blog post detailing the updated format in the next few days.

I’ve only covered the main updates in V1.96.0.0 here, so ensure you read the release notes in the Help (and in the Forums) to get the complete picture.

Happy Easter to all.

PS. Hi Kate if you are reading. :) 

Another great new Surfulater release is imminent

In case you are wondering what is happening in the world of Surfulater right now I have good news and good news. The next release is very, very close with important new features such as the ability to Import Bookmarks from Browsers and from a range of Bookmarking programs including Linkman, Compass and PowerMarks, along with a new Bookmark article template and a range of other goodies. The release notes are shaping up to be the longest so far!

This is a partial screen grab of the new Bookmark template:

Bookmark Template

This release has taken on a bit of a life of its own and because of that it is coming out later than scheduled. This has also put me behind on posting here on the blog which is really frustrating as I’m bursting with things I want to write about.

The bottom line is that I’m wrapping up the last few loose ends, then I need to update the Help and then release. I’ll be disappointed if it isn’t released by the end of this week.

Surfulater V1.95, B0.10 released

I started writing about the new Surfulater release a few hours ago, and that turned into One or many Knowledge Bases and Tree Filters, so here I am again.

The reason I wrote about whether to use one or many knowledge bases, relates to the most important new feature in this release, which is the ability to copy or move folders and articles from one knowledge base to another. This has been needed ever since I updated Surfulater to enable you to use multiple knowledge bases.

A message I received earlier today from David Britton sums this up nicely.

THANK YOU SO MUCH for this latest version, especially the ability to cut and paste articles between databases.

I have a lot of databases that need consolidating and better organization, and now I can do that.

I don’t tend to plan ahead very well, so the ability to clean up things after several research binges is very welcome.

Sincerely,
David R. Britton Jr.

I suggest you read the Help Topic Copy/Move Articles & Folders across Knowledge Bases before using this new feature.

Other enhancements in this release, include the ability to expand and collapse the entire tree or all folders in a branch, the ability to only show articles for a given folder, so that it is easier to move articles around in the tree, reorganization and updates to the Help, plus other bits and pieces as documented in the Release Notes which are here and in the Surfulater Help.

While I was writing the previous article I discovered a nasty bug in yesterdays V1.95.0.0 release where Surfulater would  crash when you copied or moved an article in the tree. I couldn’t believe my eyes when this happened. It was caused by a a silly oversight I made while writing the code to copy across databases. The good news is it was easy to fix, as you can see by this rapid release of V1.95.0.10 which can be downloaded here.

Surfulater V1.94, B0.0 released

A new year, and a nice new release to get everyone off to a great start. There are two specific new capabilities in this release I’m very pleased about.

Earlier in the year my good friend, musician and software developer Russell Robinson mentioned he wanted a way to easily add more content from a Web page to an existing article. You can of course use Copy in the Browser and Paste in Surfulater, but this is a bit clumsy and takes more steps (and time) than one likes. Russell suggested adding a new item to the Browser context menu, something like “Surfulater: Append content to Article”. While I basically liked the idea there were two points against it. First Internet Explorer has a limit to the number of items that will fit on its context menu, and once you exceed this, items fall off the bottom and can’t be used. Next I feel there is a need to keep the decision making process within the Web Browser as simple as possible. The more “Surfulater: xxx” menu items we add, the more the user has to stop and think about which one to use, which gets in the way of what we are trying to do. In the end I added Russell’s request to the todo list to ponder on some more.

The next call to action came from John Rivera’s Forum post Adding web content to an existing article. My first reply was along the lines of what I said above, but fortunately for us all John persisted and suggested adding “Append clipboard contents here” within Surfulater itself. I really liked this, as it fits nicely with the new Clipboard Hotkey and “New Article from Clipboard” features and doesn’t add more clutter to the Web Browser context menu. Further it has an extra advantage in that you can append the contents of the clipboard to any field in an article.

 

Append Clipboard to Field
 

The bottom line is you can now quickly and easily add more content from your Web Browser, a Word Document etc. to an existing Surfulater article. Thanks Russell and John.

The next new feature I want to mention is Attach File… which makes it easier to attach a file to a Surfulater article. Attach File uses a File|Open style dialog where you select the file you want, press OK and it gets added to your Surfulater knowledge base, appearing in the Attachments field. You can still use Windows Explorer + Paste to attach files, but the new method provides a quicker and easier way to permanently save files inside your Surfulater database.

 

Attach file to the current Article
 

Other changes in this release affect menus and toolbars, with new items added to both and a new toolbar layout.

The Article menu now includes Send To…, Go to the Search Results, plus the new Attach File…

 

Surfulater Article Menu
 

If you’ve been following my writings you’ll know how much I’m trying to keep Surfulater as uncluttered as possible. Adding the Article menu to the main menu bar (in the last release) wasn’t an easy decision, as it only duplicates items already available elsewhere and I don’t much like duplication. In the end I decided it was worthwhile having, especially for new users, as it puts some commonly used commands where they can’t easily be missed.

The ability to add content from the Windows Clipboard has been on the todo list for some time, but I have to say I didn’t realise how important and truly useful this was and how pleased I am with Clipboard capabilities added in the last release and this one. These latest features expand Surfulater into new dimensions for saving content from most any application, beyond its main role of saving web content. Together with the ability to attach files, you can truly keep all of the information that’s important to you, in one easy to find spot.

Surfulater V1.93, B0.0 released

I’m really pleased with this latest release of Surfulater. It includes several important new features that have been on the todo list for a while.

First up you can now highlight important fragments of text (think highlighter pen on paper), so they are easy to spot the next time you look at an article. I had a few problems coding this and went off down the wrong track, loosing several days in the process. It turned out to be quite easy in the end and I was able to build on some code I’d already written a while back.

Simply select the text you want to highlight (or markup) and click on the text highlighter toolbar button. You can also choose from a range of highlighter pen colors.

Text Highlighter Toolbar Button
Text Highlighter Colors
 

Highlighting can just as easily be removed by selecting the highlighted text, right clicking on the selection and choosing Remove Text Highlight from the context menu. You can also use the context menu to highlight the text. I was quite surprised that some other programs I looked at, didn’t have any way to remove highlighting.

Selection Context Menu
 

See the Help topic Power Features|Highlighting text for more information.

The next important new feature is the ability to create new articles from content in other Windows Applications. For example lets say you have some information in a Microsoft Word document that you’d like placed in a Surfulater article. You can do this in a few simple steps. First in the Word document select the text and images you want in the Surfulater article, copy this to the Windows Clipboard and finally press the Surfulater Clipboard Hotkey or use Article|New Article from Clipboard from the main menu. You will now have a new Surfulater Article containing what you had selected in Word.

The ability to capture clipboard content considerably broadens Surfulater’s information gathering capabilities and opens the doors to a range of new uses and users. Just like Web capture, Clipboard gather can happen with Surfulater minimized to the Windows System Tray or hidden behind other programs, so that it doesn’t interrupt what you are doing. And of course the Clipboard Hotkey is customizable. See the Help topic Power Features|Creating New Articles from the Clipboard for more information.

The final main change in this release is the addition of the Article menu to the main menu bar. If you’ve been reading this blog or our support forums you will know that my goal is to keep Surfulater as uncluttered and simple to use as possible, while still being incredibly useful. So I had to toss and turn a bit before adding the Article menu, as it does add a bit of clutter. However I feel it is justified, as it directly exposes important Surfulater capabilities that may not be all that obvious, especially to first time users. It also includes functions that are not available elsewhere and is a placeholder for future features.

There are some other nice new touches in this release and a few bug fixes, all of which are described in the Release Notes in the Help and in the Download Forum.

As always please do let me know what you think about this release and Surfulater in general. I’m waiting for your call.