Firefox Extensions, herein lies a big problem!

The great news in the past year or so is that Chrome, Firefox and MS Edge now implement the same Browser Extension framework. This means that for the first time we can (theoretically) develop Extensions that work across all three Browsers, with only minimal changes – hoorah!

I mentioned in my last article that we now have the Clibu Web Clipper Browser Extension working for Firefox.  It’s development was rather painstaking, primarily because finding and fixing issues in Browser Extensions in Firefox is really hard work.

Firefox makes you use different debuggers (apps that help locate problems) depending on which of the three components that make up an extension you are working in. And much of the time I couldn’t get them to do what they are supposed to do, debug! Now this may be partly due to the way I develop, writing es6 code and transpiling, however I’m not doing anything all that unusual. And often times Firefox would just crash when it was trying to load Node.js modules it shouldn’t have had any interest in, in the first place.

To complicate matters further there are Browser functions such as being notified when the user selects some content, which aren’t available in Firefox. This quite basic, yet important capability is mentioned in Bug 1242718 posted Dec 2015 and seems to be going nowhere in a hurry.  Desktop notifications can’t be updated in Firefox and Bug 1215025Popup size does not respond to content change, reported Oct 2015 is still waiting to be fixed.

None of these issues are show stoppers, however they do impinge on the functionality we need to deliver to our users.

But there is a show stopper, a very big one, which prevents us from making the Clibu Web Clipper available for Firefox. Let me rewind a step.

Once you have a fully debugged and working Browser extension, you need to go through a series of steps before it can get published in Firefox Add-ons, which is where you get to download extensions from.

First you have to submit the extension, then in 5-7 days someone will get in touch with you with further instructions. Specifically they require the developer provide full source code for the extension along with complete instructions on how to build the extension from the source code, so they can verify it compares exactly with the compiled extension you upload.

The “Source Code Submission” section of the Review Policies states:

This code will be reviewed by an administrator and will not be shared or redistributed in any way. The code will only be used for the purpose of reviewing the add-on.

There are multiple fundamental issues here.

First the build process for the Clibu Web Clipper is a complex one requiring installation and setup of various development and build tools. We would need to provide detailed documentation in order for them to accomplish the build and it would take them a fair amount of time and expertise to set this up.

Second they want access to our intellectual property without offering to sign a NDA as part of the process. Saying that I’m reluctant to do this, is an understatement.

Third the entire process is onerous, costly and time consuming. And is one I assume needs to be repeated each time we update the extension.

Now let me contrast this to getting the Clibu Web Clipper published in the Chrome Store.  Step one, upload the extension, wait up to 60 minutes and if there are no issues the extension is live and available for download. So far we’ve had three releases of the Chrome Web Clipper and each one has gone off without a hitch and has been live in around 30 minutes.

You simply need to look around and you will see lots and lots of Browser Extensions that are available for Chrome that should also be available for Firefox, but aren’t. It’s not hard to see why.

Besides making it quick and simple to publish to the Chrome Store, development of Browser Extensions using the Chrome Developer Tools is also a breeze, with none of the issues seen in Firefox.

Unfortunately these issues aren’t limited to just developing Browser Extensions for Firefox, but impinge on overall development of Web applications using the Firefox Browser and it’s development tooling.

I’ve been holding off writing this rant, but I’m sorry Firefox folks, but I’m simply not prepared to jump through these hoops.

I read a few months back that Firefox’s plans for 2017 are to develop a faster, better browser. According to the Firefox 2016/17 Strategy & Roadmap

Firefox will deliver a rock solid browsing experience with world-beating customization and a first of its kind recommendation engine that gets you the content you want when you want it, whether at home or on the go.  ….

Firefox will deliver the best of the web in a way that is more useful and navigable than on any other browser. With great new features like Activity Stream and Recommender, the Firefox Context Graph will deliver the right web page, always.

Well that has a nice warm and fuzzy ring, but maybe they’d be better devoting resources elsewhere. Improve the developer experience, fix long outstanding bugs , get as close as possible to the latest Web standards and give us the new Javascript, HTML and CSS capabilities present in other Browsers.

As of this writing Firefox usage is down around 12%. Given that and the issues raised above, it is hard to see why folks like me should keep on devoting precious resources to support Firefox.

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 V1.30.20 – Tag Creation Enhancements

Clibu V1.30.20 addresses some shortcomings with Tag Creation, streamlining its operation.

The “New Tag” and “New Child Tag” dialogs have been enhanced to enable you to create a new article containing the newly created tag.

Clicking on ‘Create Article + Tag’  toggles this option on and off.

The ‘New Child Tag’ dialog shows it toggled off.

The setting for each dialog is retained locally across Clibu sessions.

The other change in this release is the newly created Tag is now selected in the “Tags Tree” and in the “Tags Filter”.  I’d previously decided not to change the current Tags Tree etc. selection, however after using Clibu for quite some time now I feel that selecting the new tag provides for a better user experience.

Full release notes are available in the Support Forum.

– Neville

Clibu V0.90 now faster and more secure.

Yesterday we released Clibu Version 0.90.00. This entailed moving Clibu to a new physical Server, a new Linux OS more in tune with our use case, and updating our Database to MongoDB Version 3 along with it’s new WiredTiger Database Engine. The entire process went very well with everyone’s databases migrated across with very little downtime.

According to the folks at MongoDB:

Version 3 delivers between 7x and 10x Greater Write Performance, while the new MongoDB WiredTiger storage engine further improves performance for many workloads by implementing concurrency control at the document level.

and

MongoDB now supports native compression with the WiredTiger engine, reducing physical storage footprint by as much as 80%.

Database performance improvements are always welcome, however compression and reduction in storage costs are truly the big winners for us.

We opted to use SSD’s (Solid State Drives) from the very beginning so we can provide the best possible performance to our users. However SSD’s increase our running costs quite a bit and we were maxing out the available server disk space.

With the WiredTiger engine Clibu’s disk space use has dropped from over 90% down to 20% which is impressive indeed.

This is great news as it allows us to continue to grow our user base without blowing out are monthly running costs. A win for you and for us.

Unfortunately there was some pain involved on our part. We had to replace the MongoDB Database driver library we’d been using, as it was no longer being developed and didn’t support MongoDB V3. It was replaced by the official MongoDB Native driver, which is actively maintained and gives us more functionality than we’d previously had. This also gives us peace of mind going forward. This had a flow on effect to some other libraries we were using, triggering further (unplanned) updates. That said the Clibu server has clearly benefitted from all of this work, which flows on to our users.

Finally the migration to a new Linux operating system has also reduced server resources and let us lock everything down a bit more, improving overall security. And we’ve updated Database authentication and access, further improving security and peace of mind.

So you can see we’ve been extremely busy since the last release. That said there isn’t much new to see from our users perspective, but now that all this backend work is behind us, it is time to get back to developing what you, our users want. As always stay tuned.

Thanks for reading,
– Neville

Clibu Annotations, V0.83.00 Released

We’re starting the new year with a great new release with one important new feature, Annotations.

Annotations (or Notes for short) enable you to add content which is typically hidden away out of sight, and can be revealed with a simple mouse click. Notes help you focus on what’s important by reducing visual clutter and making it easy to see additional content as required.

Notes are easy to add, use and manage. To create a Note select some text you want to associate with the note and then click on the Create an ‘Annotation’ button on the floating selection toolbar as shown here.

Notes can contain any content an article can, including images, links, references to other articles and of course other notes!

To show and hide notes click on the annotation link associated with the note as shown here.

When a Note is displayed you can also click on its button to hide it.

Notes can be moved around by dragging their title and are positioned relative to their annotation link. So when an annotation link moves, it’s note will follow it.

When you hover the mouse over a note or click on a note to edit it, the article background dims and the notes annotation link highlights to give you a visual connection.

To delete a note click on the button on the Notes title bar which opens the Delete Note(s) dialog.

If a Note contains links to other Notes, then all descendant notes will also be deleted.  If you accidently delete a note use Undo to restore it.

Notes are a convenient way to add meta information which can stand-out, yet remain hidden until called up.

Other improvements in this release include faster application load and startup time, clever screen updating when other users edit articles you are viewing by only updating the changes instead of redisplaying the entire article and some progress on getting Clibu useable on Tablets.

Finally this release addresses a variety of small niggling bugs, some targeted at specific Firefox and IE issues. See the Release Notes for full details.

As always we look forward to and welcome your feedback and comments.

– Neville

Surfulater NextGen Alpha Release is here

I’m excited to let everyone know that we have begun trialing and testing the first Alpha Release of Surfulater Next-Gen, from herein named Clibu along with the new Clibu web site.

Clibu is the culmination of several years hard work and a lot of thinking about creating a solid, easy to use application whose foundation can be built upon to meet the needs of its users.

Clibu is the distillation of it’s predecessor, Surfulater, simplified, streamlined and migrated from a Windows PC Desktop Application to a Web Application that can run on any modern Web Browser on any Operating System.

Clibu unlocks your information from your PC enabling access from any PC, anywhere, offering collaboration and information sharing with colleagues, family and friends.

With Clibu today you can:

  • Create  and edit Articles.
  • Collaborate with other users, each seeing the others edits as they occur.
  • Copy and paste text and images from any application into Articles.
  • Organize articles using multiple hierarchical Tags.
  • Instantly rename, move and delete Tags.
  • Filter articles by one or more Tags, using either the Tags Tree or Tags Filters.
  • Use full text Search to find articles, with matches highlighted.
  • Create and open as many Knowledge Bases as you want.
  • Rearrange Tabs using drag & drop.
  • Use rich text editing, with various fonts, text and background colors, lists etc.
  • Display articles in Summary or Full.
  • Star important articles and see only starred articles.
  • Move articles to Trash and restore them again.

However you can’t (at least not yet):

  • Use Web Browser extensions to add content.
  • Add Attachments to articles.
  • Use different article templates.
  • Use ‘See Also’ article cross references.

It is the foundation on which we’ll build these capabilities and much more.

Being an Alpha Release any content you add may not be able to be migrated as we move forward. So only use this Alpha release to familiarize yourself with Clibu and it’s current capabilities, so that you can provide us with your feedback and product guidance. Please only use the Clibu Help & Support Center for feedback and bug reports. For general discussion use the Community Forum and for Bug’s, use the Ticket system.

We are only providing access to a very small number of users at this early stage. Open a Ticket at the Clibu Help & Support Center or e-mail help@clibu.com if you’d like to be added to the Alpha release list.

– Neville

New Surfulater Help & Support Center

We have once again moved to a new Help & Support Center. For a long time we used a Forum for support. This worked well for discussing new features, but not so well for providing effective support.

We then moved to more of a Help Desk system provided by TenderApp which was pretty good for support, but lacked the forum and discussion capability we previously had. It also fell short in other areas, such as handling multiple products and tracking tickets via. e-mail.

So for a while now I’ve been looking around for a better, more all encompassing package to deliver support and reinstate a discussion area. I almost went with Desk.com but fortunately found FreshDesk.com before it was too late. (I intend to write another post about this).

Our new Surfulater Help & Support Center lets you create private support Tickets, find Solutions to known issues and use the Forums to suggest ideas for future releases, get help from other users, post your tips and request public support.

The best way to use the new system is to ‘Sign Up’ for an account which will give you full access to all areas and won’t bother you with CAPTCHA entry. The ‘sign up’ link is at the top right of the page.

We have brought across the Solutions from the previous system, but not the Help tickets.

Note that with this change our e-mail address custsupport@surfulater.com is no longer in use. For all support issues use the new Support Center. For non-support related matters you can reach us at info@surfulater.com The help@surflater.com e-mail address which we used with the previous Help System works with the new one and will create a new private support ticket or let you reply to an existing ticket.

This latest Help system has a much broader range of features, enables us to support multiple products in the one package and will streamline and enhance our support capability.

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

What’s happening with Surfulater & what’s Neville up to.

Jim Parker just posted a comment which has prompted me to write, although it is fair to  say I should have blogged before now. In essence Jim commented that no development seems to have been done on Surfulater in a while and my lack of recent blogging leaves him less than inspired about it’s future. Without doubt very fair comments.

Surfulater got to a point where it was working pretty well and did most things our users had requested and that I wanted of it. There are problems no doubt, such as the poor foreign language support, especially with search. This dates back to a poor implementation decision I made in the very beginning of Surfulater’s design, one which cannot be undone or easily fixed, otherwise it would have been long ago.

To resolve the foreign language support problem and address some other issues requires an extensive and expensive rewrite, which can’t be justified. Furthermore I was beginning to see huge changes in the direction certain types of applications were heading and in the technologies being used to develop them. So it was time to step back and rethink the entire way I develop software, the technologies I use where all this fits in with Surfulater.

The huge game changer in my opinion is the move to applications that run on multiple devices (Desktop PC’s, Tablet’s, Smart Phones) and enable you to access your information on any of these devices, from anywhere. Furthermore you can add and update your information and have the changes available on each device automatically and in real time. This is where I’ve wanted Surfulater to head for quite some time, however it will never happen using the current C++ Windows Desktop code base.

To move forward it was time for a major change, time to move out of my comfort zone of Microsoft Windows Desktop Software development in compiled C++ with all the tools I’ve been using for many, many years to the new world of applications that run on multiple devices, using dynamic languages, with user interfaces that are rendered in HTML, and have severely limited local file systems.  Hard to imagine a more different world, but that’s what I’ve been doing most of this year.

This new world revolves around developing in HTML5, Javascript and CSS and packaging that up into applications that will run on a variety of devices. It has and continues to be a huge learning curve, one that is taking a lot of time and resources.

There was no way I was going to jump into the deep end and try to redevelop Surfulater, as I had way, way to much to learn first. So after much prodding from an old friend I began work on a project with him to create a range of iPad (Tablet) applications. Apart from taking quite a long time the results so far are great, with the first app nearing completion.

In essence I’ve designed and built an application that my partner Stefan will use to generate applications.  So there are two actual applications: the Builder that he uses and the Client Apps that the builder creates and that we’ll sell.

Both of these are written in HTML5, CSS and Javascript. The builder is by far the most complex, using a client-side database, HTML5 templating, local file system access, remote server uploads and downloads etc. It uses jQuery, jQueryUI, Knockout.js and a range of other Javascript plugins and libraries. It is pretty slick and easy to use, enabling Stefan to produce iPad applications quickly.

The end-user client applications use jQuery Mobile and jQuery and are packaged using Phonegap and other tools.

All up I’ve written around 7,000 lines of Javascript so far and have learnt one heck of a lot along the way. And this time around I’ve designed everything to work in any language! There is still some way to go before we’ll be ready to start shipping the first apps, but we are making excellent progress. Stefan was only able to start using the first Alpha release of the Builder about 6 weeks ago and has already completed the first application, which happens to the biggest and most complex of the series of applications we’ll be producing.

On the side I’m am spending as much time as possible researching ways to accomplish my ideal Surfulater type app, with information replicated on all devices. To say this is complicated is an understatement. The research alone is very much one step forward, two steps back, however I’ve never been one to be easily deterred.

So that should give everyone a clearer picture of what is happening in my world at this time.

If I don’t post again before Xmas, and given my track record of late I probably won’t, I wish you and yours a very happy and safe xmas and all the best for 2012.

Neville

PS. It’s nice to have blogged again.

Trial Limitations – is it really that bad?

When you Uninstall Surfulater a web page opens with a short questionnaire requesting  some feedback on why it is being uninstalled. From time to time I am somewhat taken aback at peoples comments. There seems to be a real disconnect between them and us, which is worrisome. Here is an example I received today.

Q) To change your mind and continue using Surfulater we would have to?
For the price of this software the trial is extremely limiting for us to determine its true useability.
The standards nowadays for the retail software industry is to allow the prospective buyer to truely test drive a full product’s potential during the 21 day trial period; especially with the restrictive return policy of your company.

Here’s my problem. The one and only limitation in the Trial Version of Surfulater is that it doesn’t allow you to create new knowledge bases. It comes with a Knowledge Base which includes some sample content which you can delete if you want. There are no restrictions on the number of articles you can add to this Knowledge Base, the type of articles you can create, nor any other limitations of any kind. That said I agree it would be better if you could create new empty KB’s and we may well enable this at some point, but I hardly consider it’s a show stopper.

The other comment which really got to me is “with the restrictive return policy of your company” – huh! If you look at our ‘Buy Now‘ page you will see:

Return/Refund Policy

Please download and evaluate the Surfulater Free Trial before purchasing, to avoid unnecessary refunds. Our FAQ page has information on extending your free trial period. If for any reason you aren’t 100% satisfied with your purchase, contact us within 30 days for a full refund.

I must be missing something, but how on earth is this restrictive?

The Feedback Form ends as follows:

If you would like us to contact you please enter your E-mail address.

Unfortunately most people don’t afford us the opportunity to respond, so there’s nothing we can do other than write blog posts like this one. (:

-Neville