Data Execution Protection & Rex Winn

Back in Dec 2005 Charles Cowan reported a problem where Surfulater would crash whenever it went to display one of its pop-up tip Windows. I’d had no other reports of this and was unable to reproduce it on any of our test PC’s. As any software developer will tell you these are the worst type of problems to have.

Over the course of a few days I created several special builds of Surfulater that I sent to Charles in an effort to isolate the precise cause of the problem. The results from this process made little sense at the time and I was unable to get to the bottom of it. Charles informed me that he was having problems with other programs as well and in the end we agreed it was likely a problem with his PC, and not Surfulater. I did suggest a work-around which enabled him to continue using Surfulater, but I was not particularly satisfied with the outcome.

Step forward to earlier this month when Rex Winn told me he was having a problem with Surfulater crashing when capturing new articles. Rex and I went back and forth on this and I concluded fairly quickly that it was the same problem Charles had reported. When a new article is created Surfulater pops up a tip window and there came the same crash. As it fortuitously happened Rex is also a software developer and after lengthy exchange of e-mails he was able to pin-point the cause. 

Surfulater was working fine on Rex’s PC until he did two things. First he changed his operating system from Windows XP to Windows 2003 Server and second he upgraded the BIOS on his Motherboard. At that point Surfulater would run ok until a pop-up tip was displayed. But then Rex needed to re-boot his PC and after that Surfulater wouldn’t start at all. Like Charles, Rex mentioned he was also having problems with some other programs and the only way to get these programs to work was to turn off Data Execution Protection.

I hadn’t heard of Data Execution Protection or DEP, so it was time to hit Google. The first thing I found was that DEP wasn’t enabled on my PC, so I quickly rectified that, started Surfulater and it worked perfectly. Next I discovered there are two aspects to DEP, Software DEP and Hardware DEP and I’d only enabled Software DEP. Hardware DEP is only available on newer PC’s, so I didn’t even know if my PC supported it. After some digging around in the BIOS I found the option that enabled Hardware DEP, turned it on, started Windows, then Surfulater and low and behold I was able to reproduce the problem Charles and Rex were having with the pop-up window. Everything else worked fine and the problem where Rex couldn’t even start Surfulater remained a real mystery.

So now it was time to start digging and find out precisely what was causing DEP to throw its hands up in horror and kill Surfulater. Before I do let me provide some information on DEP from Microsoft.

Data Execution Prevention (DEP) is a set of hardware and software technologies that perform additional checks on memory to help prevent malicious code from running on a system. In Microsoft Windows XP Service Pack 2 (SP2) and Microsoft Windows XP Tablet PC Edition 2005, DEP is enforced by hardware and by software.

The primary benefit of DEP is to help prevent code execution from data pages. Typically, code is not executed from the default heap and the stack. Hardware-enforced DEP detects code that is running from these locations and raises an exception when execution occurs. Software-enforced DEP can help prevent malicious code from taking advantage of exception-handling mechanisms in Windows.

The bottom line here is that DEP will help prevent Trojan and Virus programs from running on your PC, which is an admirable goal.

So back to Surfulater. It turned out that some third party code I use was causing the problem by trying to assemble and execute code in a data section. This has been something Windows programmers have been doing forever, but can no longer, at least on Windows XP SP2 and Windows 2003 SP1 with DEP enabled. The good news was that other folks using this same code were aware of the problem and several solutions had been presented. Kevin Hoffman’s code was a perfect fit and after a few hours reworking my code, Surfulater and DEP played happily together. I quickly sent a copy off to Rex to try who ecstatically reported his favourite program was working perfectly again.

To quote Rex:

The good news is that it *WORKED* YOU ROCK!!!

The bad news… THERE ISN’T ANY!!! SWEET!!! I’m back into SUL and
loving it!!! WOOOOHOOOO!!!

As I said at the start these are the worst sorts or problems to track down. Rex’s help was truly invaluable and for that I remain indebted.

A final word of advice for any programmer’s reading this. Ensure you thoroughly test you code with both Hardware and Software DEP enabled.

And to my Surfulater readers Version 1.97, Build 0.20 was released today with this updated code in place. Download here.

Pushing content into Surfulater from other Programs – Part 2

In Part 1 of this article I showed you how Surfulater’s XML Clipboard Format (SXCF) enables programs to add content to Surfulater. In this second and final part I’ll describe the SXCF in details.

For those familiar with XML you will see that SXCF is XML without an XML declaration or DTD. If you are interested in learning about XML, the Web has plenty of information available. This XML Tutorial is a reasonable starting point.

An SXCF record always starts and ends with:

<SULCONTENT [attributes]>
</SULCONTENT>

attributes consists of a series of compulsory and optional XML attributes which tell Surfulater where the content is coming from, and what to do with it. For example:

action=”add” source=”Clipboard” template=”Clipboard”

tells us to “add” a new article, using the “Clipboard” article template, and that the content has come from the “Clipboard”.

XML elements inside of <SULCONTENT> </SULCONTENT> provide the actual content to add, for each field in an Article, as well as providing additional content like MetaDescription and MetaKeywords, from a Web page.

The XML elements which specify content for a field in an article use the fields name as their element name. eg.

<Title>title text goes here</Title>

In this example the name Title in the XML <Title> element is the name of the article field to place the text “title text goes here”, in.

Article field names are specified in their corresponding HTML Article Template. These field names are typically the same name that you see displayed in Surfulater, but don’t have to be. If you look at an Article Template you will see each field is defined something like this:

<td class=”prompts1″>Title
</td>
<td class=”editbar”>
<img src=”pencil.gif” mce_src=”pencil.gif” idedit=”FLD.Title” />
</td>
<td class=”normal” >
<div class=”celldiv” id=”FLD.Title” />
</td>

The first Title is what’s displayed in the content window. This isn’t the field name. The actual field name is in the <div id=”FLD.Title” ..  /> element. It is this name, after the prefix FLD or FCV that must match the SXCF field name.

Note that I’ve pared this template example down so we can focus on the parts which are important to this discussion.

Handling HTML Markup

Field content that includes HTML markup must be treated in a special way, otherwise it will be processed as XML, instead of HTML. If you look back at Example 2 in Part 1 you will see that the field content inside the <Text> element starts with <![CDATA[ and ends with ]]> This enables normal HTML content to be used within the XML. If CDATA isn’t used, the HTML tags would be treated as XML elements and the result would be a big mess.

The best approach is to always use <![CDATA[]]> for field content, even if it doesn’t include any HTML. See XML CDATA for more information.

Attaching files to Articles 

SXCF elements that contain Surfulater field content include the ability to specify files to store in a Surfulater database. In other words attachments. A standard HTML link to a file looks like this:

<a href=”file://my_test.doc” mce_href=”file://my_test.doc” >

by including an attach=”true” attribute Surfulater will load the specified file and embed it in the database eg. 

<a href=”file://my_test.doc” mce_href=”file://my_test.doc” attach=”true”>

This is used in Example 2 in Part 1

Predefined SXCF Elements 

SXCF implements these predefined XML elements:

<URL></URL>

Attach the specified Web page to the article’s Attachment field. Note that this is only used for attaching Web pages, not files. It is used in conjunction with the action attribute as described below.

<MetaDescription></MetaDescription>

Contains the MetaDescription content from captured Web content. This is not currently used by Surfulater.

<MetaKeywords></MetaKeywords>

Contains the MetaKeywords content from captured Web content. This is not currently used by Surfulater.

<BASE></BASE>

Contains the <BASE href =…> value from the captured Web content. This is used locate HTML items referenced in the content, in the same way it is used in your Browser.

The <SULCONTENT [attributes]> in detail.

Name Value Definition
action Determines how to use the specified SXCF information as follows
action add Add a new record
action attach Attach content to current record. Only used to attach Web Pages as of 26 Apr 2006
action update Reserved for future use
 
source Specifies the source of the SXCF information as follows:
source WebBrowser Content is being sent from a Web Browser
source Clipboard Content is coming from the Clipboard. i.e.. From some other program.
source UserDirect Content comes from Surfulater itself. This is only used by Surfulater.
 
source_application Provides extra information on the ‘source’ provider.
source_application InternetExplorer Content is from IE
source_application Firefox Content is from Mozilla Firefox
source_application MSWord Content is from Microsoft Word or some other Windows Application
 
The following attributes are optional.
template HTML template name The name of the article template to use for creating this article. If it isn’t specified, the IE template is used. If the specified template doesn’t exist the article won’t be created. (1)
thumbnail filename The full path and filename of the thumbnail image to use for the article. The IE template is the only one to include a thumbnail. The other templates can be changed to include a thumbnail as can newly created templates.
deletethumbnail true | false If true or not specified the thumbnail image file is deleted once the article is created. false prevents it from being deleted.
emptytextok true | false Indicates main text field can be empty. If false or not specified and the text field is empty a notification popup tip will be displayed.

 

This should explain everything you need to start pushing content to Surfulater. It may seem a bit overwhelming at first glance, but if you look back at the examples in Part 1 they really are pretty simple. And of course if you need any help post here or in our support forums.

I mentioned a few posts back that parts of Surfulater had taken on a life of their own. Well SXCF was one such part, and there is still more to be done. For example Perry is pushing for the SXCF to be able to replace an existing attached file with a newer one, which I agree with. Other capabilities include the ability to append content to field in an existing article, or replace it completely. SXCF provides a solid foundation to build these and other capabilities on.

Pushing content into Surfulater from other Programs – Part 1

Surfulater provides a simple method to enable content to be added to it from other applications (think MS Word etc.) via. the Windows Clipboard. This was developed for Surfulater’s our own internal use, and has now been extended and opened up following user discussions on our Support Forums.

This is accomplished though a simple, clearly defined format, that enables anyone to add new content to Surfulater, in an open extensible way. As an example one of our Surfulater users, Perry Mowbray, has used this to write an add-in for Microsoft Word that enables Word users to add new content to Surfulater.

In essence whenever Surfulater is running it keeps an eye on information that gets placed into the Windows Clipboard, and if it sees something destined for it, it grabs it and creates a nice new article. For this to work the information placed into the Clipboard needs to follow some simple rules. Lets start with an example:

<SULCONTENT action=”add” source=”Clipboard” template=”Clipboard”>
 <Title>Example 1</Title>
 <Text>Some text for example one</Text>
</SULCONTENT>

This is about as simple as it gets. To try it for yourself, start Surfulater, then right click and choose Save Target As.. on this file and save it as SXCF_Example1.txt Next open the file in Windows Notepad, use Edit|Select All, and then Edit|Copy, to copy it to the Windows Clipboard. Surfulater will pick this up and create the following article:

Example 1 
Now for something more complex:

<SULCONTENT action=”add” source=”WebBrowser” source_application=”InternetExplorer” template=”IE” thumbnail=””>
        <Title>Mini HDD</Title>
 <Text><![CDATA[<TR><TH width=”100%” bgColor=#d5d6d5><FONT face=Arial,Helvetica size=2>Tiny
                hard drive garners Guinness World Record as smallest HDD</FONT></TH></TR>
                <TR><TD width=”100%” height=20><FONT face=Arial,Helvetica size=2>Mar. 17, 2004</FONT> —
                <FONT face=Arial,Helvetica size=2><IMG hspace=10 src=”http://deviceforge.com/files/misc/toshiba-tinyhd-thm.jpg” mce_src=”http://deviceforge.com/files/misc/toshiba-tinyhd-thm.jpg”
                align=left vspace=5>Toshiba announced this week that Guinness World
                Records has certified its 0.85-inch hard disk drive (HDD) as the smallest
                HDD in the world. Toshiba claims its 0.85-inch HDD, announced in
                January 2004, is the first HDD to deliver multi-gigabyte data
                storage in a sub-one-inch form factor.</FONT>
                <A href=”http://deviceforge.com/news/NS8560517030.html” mce_href=”http://deviceforge.com/news/NS8560517030.html” >
                <IMG src=”http://deviceforge.com/images/readmore.gif” mce_src=”http://deviceforge.com/images/readmore.gif” align=right border=0></A>
                </TD></TR>]]>
        </Text>
 <Reference><![CDATA[<A href=”http://deviceforge.com/news/200404120922NS2297227508.html” mce_href=”http://deviceforge.com/news/200404120922NS2297227508.html” >
                   http://deviceforge.com/news/200404120922NS2297227508.html</A>]]>
        </Reference>
 <Comments>This is a copy of an article included in the sample Knowledge Base included with Surfulater.
 </Comments>
 <Attachments><![CDATA[I’ve also attached a MS Word Document located on my PC <a href=”file://d:/saig/bin6/test1.doc” mce_href=”file://d:/saig/bin6/test1.doc” attach=”true”>
                     test1.doc</a> Neat huh!]]>
        </Attachments>
</SULCONTENT>

This is a copy of an article from the sample Knowledge Base included with Surfulater, along with some extra content; a Comment and an Attachment. Perform the steps outlined above on this file, SXCF_Example2.txt  to see the result for yourself. The Attachment will be missing unless you just so happen to have a file d:\saig\bin6\test1.doc  And this is what it looks like.

Surfulater Article

These examples should clearly show the capabilities on offer with Surfulater’s XML Clipboard Format.  I have to say that I think this is pretty neat stuff, not rocket science, but impressive none the less.

In Part 2 of this article I’ll explain the SXCF in detail, enabling you to use it your own applications or in program add-ons.

Note: The examples above and the content of these articles require Surfulater V1.96.0.0 or later.

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 – A Dr. File Finder – Tucows Favorite

The level of interest in, inquiries about and sales of Surfulater and have jumped up nicely in the past few days, for a variety of reasons. One is the very positive review of Surfulater by Michael E. Callahan, aka. Dr. File Finder at Tucows on 27 March. Michael concludes his review with:

I find the program to be very useful. In fact, I’ve come to like Surfulater so much that it’s not only a Pick but it’s also one of my Dr. File Finder Favorites and those are few and far between. Check it out … I think you’ll like it!

Michael has been reviewing software for quite some time (in the average year he evaluates 10,000 programs), and must see products that traverse the landscape from woeful to great. I am extremely pleased that Michael has placed Surfulater somewhere in the latter category.

Michael first contacted me in late 2005 indicating he was interested in reviewing Surfulater type programs and we had an interesting exchange at the time as we’ve both been involved in the software business for a long time. As often happens I didn’t know the review had actually been published until after the event. It is currently flagged on the Tucows home page which is great and I look forward to hearing from more Tucows readers.

Here is Dr. File Finders review in full:

Surfulater, by Soft As it Gets Pty Ltd is a program that I use myself to gather ideas of articles. Rather than jot down notes about a topic I might want to write about, I use Surfulater to “grab” the idea and save it for me. No typing involved. The program lets you save anything you find on the Internet. At the same time, the program makes it easy to organize information as well. It’s perfect for anyone doing research, gathering information, and so on.

Surfulater lets you put things in categories and you can even cross-reference entries. I actually have categories that are related to columns here on Tucows. So, I have a “How To” category, a “Tell Me About” category, and so on. The program is very intuitive and easy-to-use. To me that makes it perfect for users with all levels of experience. Another feature that I really like is that it supports Firefox which is my default browser. Some of the other programs only work with Internet Explorer.

Surfulater makes it easy to gather information, to save things that you want to read later, and more. Create as many categories as you want and the build your own library of information. I find the program to be very useful. In fact, I’ve come to like Surfulater so much that it’s not only a Pick but it’s also one of my Dr. File Finder Favorites and those are few and far between. Check it out … I think you’ll like it!

Thanks Michael.

Evaluating Software from a Users Perspective

Jonathon Giebeler has very recently discovered and purchased Surfulater and made a really interesting post over on another forum, where Surfulater related software is being discussed. I have to admit I mentioned this discussion to Jonathon during an exchange of e-mails, as I thought it would be of interest to him. I had no idea the outcome would be a very enthusiastic post about Surfulater and also a discussion on how Jonathon evaluates software. I follow a very similar evaluation process to Jonathon, but mostly use search engines to locate products, not software sites.

My guess is that most people are fairly ruthless when evaluating software, I know I certainly am. Jonathon’s point 5 “If the UI sucks – uninstall the program” rings true to my ears. Very few people give first impressions a second chance. I wouldn’t for a minute suggest that Surfulater has the best UI around town and as sure as I’m sitting here writing this, there will be people who have uninstalled Surfulater as quickly as they installed it, but hopefully not too many.

 Without further ado here is Jonathon’s post in its entirety:

Just a quick note on this.  During the last few weeks I downloaded a ton of programs (including the ones discussed at the beginning of this thread).  I don’t see what the interest in MyBase is?  I installed this program and promptly uninstalled it because I didn’t see anything I wanted to use. 

In my view (perhaps different from yours because I am an architect/law student).  I want a nice UI and easy access to my information.  The information is what it is all about.  As far as a text only programs there should be not discussion.  There are a ton of text editors that all do the same thing.  What is important is a tool that will allow you to gather information from everywhere (the web included) organize it (usually trees) and link it. Obviously the ability to grab information from the internet is important (because there is so much information out there) but you need to also be able to use simple text or import from other sources, docs, pdfs, etc. 

With this said, I am placing my bet on Surfulater.  I down loaded this program with about 20 others and it is still installed.  My process for evaluating is as follows:
1. Go to download.com and do a general search so you get as many results as possible (then do it again so you do miss it)
2. Go through the hundreds of results, read the descriptions, look at screenshots, visit homepages, and finally download promising programs.
3. Install all the promising programs (I do it while I am searching)
4. Gather all the new shortcuts on the desktop, and open each of the programs
5. If the UI sucks – uninstall the program
6. Take a closer feature look at each of the remaining programs.  Can you import the information you want? Does it work well with other programs? Can you input data easily (i.e. is the structure of the program not so restrictive that it takes to long to input simple date), etc, etc,

I did this, and have already deleted many “promising” programs.  Surfulater is still running and here is  why:

It is a web companion yes, but I can also use it to input practically anything else with the attachment and clipboard utility.  To understand the features you’d have to try it.  A good quick view of the possibly it to look at the help section – it was created in the program and is obviously not just clippings from the web.

Here are a few features I loved:
1. I can create many different “books” (that’s what I am calling them).  I have created, Projects, Personal, School, and AEC.  The books are displayed as colored tabs along the top so I can quickly switch between each, and in each book I can have as many articles and folders I want. 
2. It is the best for capturing web articles.  I can download just the part I selected, the selection and the page (which appears as a thumbnail by the imported selection), or the selection and a link to the page.  The title automatically is inserted as well as a link.
3. Here come the best features – accessibility to data – to any note I can add comments, a reference, attachments, or “see also” (which creates a bi directional link to another article. 
4. Visibility – I have never seen this feature but I love it.  Next to each of the items noted above there is a minimize button so I can hide, the article and just view my comments, links, etc.  Also if I click on the “Roofs” folder I can see all the sub articles instantly without having to select each separately.
5. The clip board tool.  I am working on a project with about 100 pages of restrictions, and I am using Surfulater to organize these.  I scanned the document into PDF format.  When I read something I need to reference, I select it and copy it, then I go to Surfulater and create a new article base on this selection, then I put in my comments, i.e. what we are going to do to comply with the requirement

Anyway the possibilities are endless.  I really never write reviews for programs, but I am just extremely impressed with Surfulater.  I haven’t found a program quite like it, and if you guys really want the best editor  – information compiler- possible, I would at least try it.  I still don’t understand what you liked about MyBase.  I chose “General knowledge Base 2.2” over MyBase, and even that has been replaced by Surfulater…did I miss something?  I don’t remember being impressed.

Thanks Jonathon, the cheque is in the mail. 😉

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.

One or many Knowledge Bases and Tree Filters

Their are two schools of thought when it comes to filing information; store everything in one big file or break things up into smaller, easier to manage, separate files.

When I designed Surfulater I went down the path of one big file, thinking this would make Surfulater easier to use, because you didn’t need to go around opening, closing and creating files. It didn’t take long at all for our users to tell us they really did want to use multiple files and Surfulater was changed to suit. Their is no right or wrong way to handle this, although some may disagree. It is a matter of what works best for each individual.

The argument for one big file stems from the point of view that all content should be stored together in one place, and the software provides sufficient means to view and work with various subsets of information, to overcome the problem of managing and working with what otherwise might be overwhelming. For example you could hide all folders except those in a specific branch, or only show articles that match some search criteria. You can think of these as filters which strain out most content, leaving behind only the juicy relevant bits.

Surfulater already has some capabilities that let you restrict the content shown in the Knowledge Tree. For example you can hide all articles except those in a specific folder or hide all articles period, or show all folders fully expanded, without any articles. And there is the Chronological tree view that shows content according to when it was added. These are a good start but we need to do more and will.

Fortunately the tree control I’ve written for Surfulater is very fast and was designed to enable tree items to be shown or hidden at will, without having to re-populate the tree from scratch. You can see this for yourself by using F9 or Show Articles and notice that the tree is instantly updated, even when it contains a large number of items. Without this capability, filtering a large tree would be impractical.

So the groundwork has been laid to enable us to provide more ways to filter information to help you focus on what’s important at a particular point in time. I’ve got several ideas for filters including letting you create your own via say a search string. I’d welcome your suggestions on this.

I need to wrap up as I’m told some of my posts are getting a bit long. I’ll end with a few comments. Multiple knowledge bases currently work best for me. This may change as more sophisticated capabilities are added like filters and keywords, but I somehow doubt it. Trees are well trees, and the bigger they get the more time you waste working the tree, instead of getting things done.