Clibu Notes: Your data, stored locally, available on all your devices.

There has been a move for some time now, which continues to gather pace where people don’t want their data in the cloud on some large companies servers where they have no idea who might be looking at it or profiting from it.

My background was developing Windows Desktop software where everything was stored on your PC and you copied files around from PC to PC as needed.  Cumbersome and fraught with missteps which could easily leave you in a pickle.

After many years of doing Desktop software I moved to Web Application development where data was stored on servers under my control and could be accessed from any device effortlessly.

For Knowledge Base applications like our original Clibu App this meant users could access and update information anywhere they had access to a Web Browser and the Internet.

So far so good. However obstacles still remain. First some folks don’t want their data stored in the cloud, second cloud only applications are useless if you don’t have an Internet connection or the cloud server is down and third is what happens if the company hosting your app and cloud data goes out of business.

For Clibu we tackled these issues by releasing Clibu On Premise, a version that you install locally. However this meant the ability to access your data from anywhere on the planet was lost, unless you had the wherewithal to setup and configure secure  remote access. Another downside is we needed to keep our cloud version and on-premise versions in step, which created more work for us and meant on-premise sometimes fell behind.

So what’s the solution. Well we’ve learnt an awful lot developing Clibu, which was our first serious Web Application. Over that time Browser capabilities have improved a lot, often quite dramatically.

This has led us to rethink Clibu from the ground up, how it could function to deliver the best possible end user experience. One where all data is kept on your local device, where it can be accessed without any Internet connection, where the application continues to work should we go out of business or stop development, where data is automatically shared and synchronized across all devices on your local Network and where you can optionally access it from any Browser anywhere if you enable your data to be kept on a central server.

Given we can meet all of these objectives I think you’ll agree this paints a very good picture. You own your data, it is kept on your devices and optionally on a central server either run by us in the cloud or on PC of your own (on the roadmap).

This is all very timely as others are on this same journey. I can recommend reading Local-First Software: You Own Your Data, in spite of the Cloud and a shorter easier to read related article by Adrian Colyer – Local-first software: you own your data, in spite of the cloud from his daily newsletter.

To quote the articles above:

Great local-first software should have seven key properties.

  1. It should be fast.

  2. It should work across multiple devices.

  3. It should work without a network.

  4. It should support collaboration.

  5. It should support data access for all time.

  6. It should be secure and private by default.

  7. It should give the user full ownership and control of their data.

So how does the new Clibu Notes app rate on these criteria. The good news is we tick all of these boxes.

I could be that I’m overly optimistic as:

… we speculate that web apps will never be able to provide all the local-first properties we are looking for, due to the fundamental thin-client nature of the platform. By choosing to build a web app, you are choosing the path of data belonging to you and your company, not to your users.

I don’t see the issue here. The data for a web app that can run entirely locally belongs to the users.

What is a real issue with offline use where you still want online access from any device anywhere, is the accumulation of changes made to your data over time. To be precise in order for users to collaborate and work offline, every change to every bit of data must be retained, potentially for ever.

Quote:

Performance and memory/disk usage quickly became a problem because CRDTs store all history, including character-by-character text edits. These pile up, but can’t be easily truncated because it’s impossible to know when someone might reconnect to your shared document after six months away and need to merge changes from that point forward.

To handle this ever increasing memory/disk usage some sensible controls can be put in place. For example if you know that worst case any one user maybe offline for a month, then when they come back online you can cleanup up the accumulated data for all users. Or if you know who all the users are and all of the devices they use,  then you can cleanup when they are all online or you can notify them they might lose their local changes if they don’t get back online within a certain time. Best practices here will evolve over time.

So where are we now

Clibu Notes can and does work entirely offline. You can use Clibu Notes in your Web Browser or Install it as an application on Desktop, Tablet and Smartphone.

When you are online, all updates are synchronized in real time with all  instances of Clibu Notes you have open and online. When an offline instance of Clibu Notes goes Online it will synchronize all of its offline changes with all changes made by other online instances. These changes are fine grained down to the character level in notes. In other words edits to a note in multiple copies of Clibu Notes whether online or offline will merge and resolve the changes so the note is identical on all devices.

Just as edited notes are eventually consistent so are changes to the shape of the Notes Tree, note icons and colors. And finally Work Spaces are also kept consistent. Simply put it doesn’t get any better than this.

As stated on the Clibu Notes website. knowing that your notes and associated data is automagically kept up to date across all of your devices is Magically liberating.

If you haven’t signed up for free access to Clibu Notes go and do it now. How well does it meet your needs? We’d love to know.

– Neville

Clibu v1.32.00 Release plus new Web Clipper – it must be Xmas Pt 1

Well it has clearly been too long between Blog posts, in fact way too long. The good news is, this in no way reflects on Clibu development or releases. In fact it is simply because we’ve been so busy on development that allocating time for blogging has sadly not happened.

Our regular Clibu users will have seen we’ve had several releases since the last blog post and I’m sure are wondering what we’ve been up to, so let’s get to it.

V1.32.0.0 sees a long list of enhancements and new features and the Clibu Web Clipper has had a major update with new functionality. Let’s start with Clibu itself.

For a while now you’ve been asking for a quicker way to get back to seeing ‘All Articles’ once you’ve done a search. Our simple solution was to include an x button in search as shown here.

We’ve also rearranged the Tags Filter button so it stays in the same place after adding a filter. We’re also continuing to think about ways to somehow combine Search and Tags Filtering into one unified widget. If you have any suggestions we’d love to hear them.

Next we’ve added a ‘New Article’ button to the ‘Articles List’ header which brings it in line with the ‘New Tag’ and ‘New Knowledge Base’ buttons on their panels.

The Article editor has been updated with new capabilities including:-

‘Code Inline’ lets you style selected inline text as in this example:and is available on the editor toolbar Styles menu:Also note ‘Code’ has been renamed to ‘Code Block’.

The editor Styles button now reflects the style the cursor is on:

In this example the cursor is in a Quote. We’ve also improved the styling used for Quotes.

The new Horizontal Rule button adds, guess what, a horizontal rule.

The behaviour of the indent and outdent toolbar buttons has changed to only work inside lists. This fixes issues with the previous implementation and brings their behaviour into line with best practice.

The image above shows indent list disabled, even though we are inside a list. This is because the cursor is in the very first item in a list, which can’t be indented.

For the final editor toolbar improvement, we’ve made the buttons a little bit narrower, so more fit on a row.

Knowledge Base collaboration and sharing is the next area we’ve been working on. You can now Move articles to a Knowledge Base that is shared with you, as long as you have been granted full access by its owner. Similarly you can Merge a Knowledge Base of yours into a KB that is shared with you, given the appropriate permission.

We’ve updated all Clibu Web components, updated several third party libraries, further improved overall performance, optimised code both in the Browser and on the Server and fixed a variety of colorful bugs. For complete details see the Release Notes.

This post is long enough, so I’ll leave the Web Clipper enhancements to the next post.

As always we look forward to and welcome your feedback.

Neville

Clibu Version 0.80 A major new release – Knowledge Base Sharing

In Part 1 I wrote about Clibu User and Account Management.  In this post I’ll walk through Clibu’s new Knowledge Base Sharing capabilities.

Sharing enables other people to view and collaborate on Knowledge Base content. Clibu updates all users content in real time, so everyone see’s changes as they occur.

To Share a Knowledge Base, open it and click on it Tab’s drop down menu and select Share.Tab Menu - Share KBThis opens the Share Knowledge Base dialog.

KB Share DialogStart by entering the E-mail address of the person you want to share the Knowledge Base with. They don’t need to be an existing Clibu User.

Next you can either grant them View Only access which means they can look, but not touch or you can grant Full Access, which means they can do everything you can. Click on the button to toggle between the two settings.

Finally click Share and an email is sent telling the person what they need to do to access the KB. The email looks like this:

Kb Shared Email

If the user you have shared the Knowledge Base with has Clibu open, they will also see a notification to this effect.

Shared Knowledge Bases are grouped together on the Knowledge Base menu and include an icon indicating they are shared.

KB Menu Shared ItemsThey same icon is used on Tabs that contain shared kb’s.

Sharing permissions can be changed at any time and shares can be removed. Select Share on the Tab menu and enter the email address of the person you’ve previously shared the KB with.

From here you can change Permissions and click Update or use Remove Share. The user will be notified by email and also by a notification popup if they are using Clibu.

If they have the KB open it will be closed if Remove Share was used, otherwise it’s permissions will be updated.

At present we’ve exposed just two permissions, Full Access and View Only. However we’ve implemented a much finer grained sets of permissions down to the level of; can a user add Tags, rename Tags, edit Articles, add Articles, create Knowledge Bases etc. etc. Based on user requirements and feedback we’ll look at exposing these advanced permissions in a future release.

I’ve also put the groundwork in place to track user activity, so you’ll be able to see who has edited an article, added tags to it etc.etc. and when.

The ability to collaborate with colleagues and share valuable information is all important. I hope you find this release is heading in the right direction and look forward to your feedback.

– Neville

To Cloud or not?

In my many years of developing software I can’t recall a more contentious issue than whether data is stored in the cloud or not. This is evidenced in the comments (1, 2) to my recent blog posts and in other communications.

People fall into two camps, they are either strongly against having their data stored in the cloud or they are quite happy to have it there and look forward to the benefits therein.

The former group sites concerns over security of their data, a feeling of loss of ownership, the inability to access their data if they don’t have an internet connection and concerns about the cloud provider going out of business, which are all legitimate issues. As for security, strong data encryption makes it very difficult for others to access.  The company  going out of business is an issue regardless of whether data is in the cloud or not.

On the flip-side the benefits for applications and content in the cloud are clear:

  • you can access your data from any PC anywhere in the world.
  • you can collaborate and share information with others (if you want to).
  • someone else ensures you data is safely and regularly backed up.
  • you don’t need to install any software.
  • you can use any operating system (Windows, Mac, Linux) on any hardware and use Tablet’s to access content.
  • you don’t need to do regular software upgrades. you are always using the latest version of the software.
  • you don’t need to worry about your PC failing and being unable to access your information until it is repaired/replaced and software and data restored. Or worse being lost or stolen.
  • you don’t need to leave a PC turned on 24/7 wasting electricity and costing you money.

This still leaves one big issue: “the inability to access your data when you don’t have an internet connection”. My feeling is that this is much less of an issue than it was say 5+ years ago with ubiquitous internet access now common place. That said there are still times when we may not be connected, such as in an aeroplane or out and about in no-mans-land.

It remains clear that some people will not use the cloud for certain applications or content. I think this will change with future generations who are used to having everything in the cloud and being connected 24/7.

Taking these concerns on board I see several solutions which I did touch on, on some of my blog comment replies. The main one being the ability to install the software locally and access it as a personal cloud. This gives you full ownership of your content, but loses most of the significant benefits I listed above. By personal cloud I simply mean software that is installed on a specific PC, whose content is accessed from that and other PC’s using a Web Browser or other application.

Another possibility which I personally find intriguing, is for us to bundle up a small low cost computer and the software into one package. If you follow the low cost, small form factor (SFF) computer area at all, you will most likely have heard of the Raspberry PI, which is a  basic $25-$35 computer. More powerful SFF computers are available from $50-$100, with these being better suited to my use case. You would simply connect this to you Local Area Network (LAN) either via. an Ethernet connection or WiFi, plug in a USB Hard Drive and turn on the power, and away you go, with access via. your favourite Web Browser.

The benefits of this packaged hardware+software solution could include:

  • you can access your data from any PC anywhere in the world.
  • you can collaborate and share information with others (if you want to).
  • you don’t need to install any software.
  • software upgrades could be handled by a service we offered.
  • you can use any operating system (Windows, Mac, Linux) on any hardware and use Tablet’s to access content.
  • it uses far less power than a conventional PC making it cost effective to leave on 24/7.
  • all data is kept on a local hard drive, so you are in complete control.

Again I find this an intriguing solution, one I’d personally welcome, however I have no idea what level of interest there would be in the general marketplace.

A final possibility is to create a local application that is simply installed as a Web Browser Extension. There are lots of Browser Extensions around that do lots of interesting things, however there are fundamental issues with this approach. The main problem is that the database capabilities built-in to web browsers impose serious limits on the amount of data they can store. Further the current state of browser database engines is a mess with different browsers implementing different and incompatible database systems. And they  don’t stack up all that well against fully fledged database systems.

Browser Extensions suffer from other problems as well. We have to write, maintain and support quite different extensions for each Browser. Extensions have a bad habit of breaking, as new browser versions are released. And not all Browsers support Extensions (IE, Opera, Tablets?).

In my ideal world I’d have an application like Surfulater running locally as well as in the cloud. The local version would be used whenever I was unable to access the Internet. It would be automagically synchronized to the cloud application the next time I was connected to the Internet. Conversely all updates done on the cloud application would be synchronized back to my local application.  And the local application could be installed at multiple premises in different locations, with them all being kept in sync. This gives me the best of all possible worlds. It is however the most complex and costly solution to produce and deliver. (I wrote about this back in Dec, 2010).

Of course there is even more to this I could cover, but that’s enough for now. As always I welcome and look forward to your comments.

-Neville

PS. In reviewing various related communications I noticed a request for a Portable version of Surfulater (ie. one that runs on a USB stick.) Isn’t using Surfulater as a Web application in the Cloud the ultimate portable version.