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.
Neville, though I’m uneasy–no, make that terrified–about what this means for Surfulater, I’m also excited about the new possibilities that lie ahead. My primary question right now is whether the “ideal Surfulater type” programs/products you’re hoping to develop will be able to import databases from Surfulater, or whether all the information people have carefully saved there will be stranded on a deserted island.
Hi Joan, my plan would most definitely be to enable existing Surfulater Knowledge Base’s to be imported into any future replacement application.
You’ve raised a point that afflicts most all applications people are using though. As long as these applications keep working you are fine, but should that cease to be the case you are likely to be in trouble. An application may well have some method of exporting its content, however the likely hood of being able to import that into some other application is small. There are no easy answers to this issue, other than going back to writing everything down on scraps of paper.
Neville
Sounds good, Neville. Sometimes big changes like this just have to happen. Being in a similar proces, I can relate to your explanation.
I am sure the resulting products will be great. Cheers!
Gerard
Hi Neville –
Like Joan, I also feel uneasy about the future of SurfULater … which I use as a knowledgebase for a wide variety of information, both business/technical and personal/hobby topics.
I moved to SurfULater after Microsoft acquired [and subsequently killed] Onfolio, which was a truly wonderful, flexible and stable product.
Being in the software development business, I understand your decision process in moving away from ‘traditional’ C++/Windows desktop development … but I hope you will pay very close attention to performance, stability and data integrity as you move forward in your product development.
Personally, I would like to see another release [or 2!] of SurfULater based on it’s current C++ codebase, but with a ‘better’ [from my perspective, and in terms of future data access] database behind it. The obvious choice is Microsoft SQL Server Express [2008 R2 or whatever the most current flavor is …]
This would make me more comfortable about being able to get my information back out if [G-d Forbid!!!] SurfULater goes away … and perhaps even open doors for integration in to broader environments as a shared knowledge tool.
You need to run your business as you see best, and develop products accordingly … I just hope you’ll keep these and similar thoughts in mind as you make your decisions.
I’m cautiously optimistic about the future of SurfULater, so far you’ve done a great job of improving the product and evolving it from it’s initial release … but to paraphrase The Who … I don’t want to get fooled again.
Thanks and best regards,
-dmm
Hi David,
Thanks for taking the time to comment. Up until about 6 months ago my plans were to keep moving forward on the desktop version of Surfulater, including migrating the database completely to SQLite, which Surfulater partially uses now. My involvement in the HTML5/JS app I mentioned in my post and watching the ever increasing shift to Web apps changed my mind.
I am making steady progress in the Web app version of Surfulater and have to say that I am seriously impressed by what I’ve been able to quickly and easily achieve so far, all with so little code compared to what I am used to.
I am using a NoSQL database along with Node.js on the server and compared to using SQL and writing in C++ this has been a breath of fresh air and also very enjoyable. It is hard to imagine that I’ll continue to keep sailing along so smoothly, but only time will tell.
-Neville
Hi, Neville. I’ve got a quick question about the new program you’ve been working on that will eventually replace Surfulater. Will all the info saved with this new program be available at all times, even if I don’t have an Internet connection? That seems to me vitally important. Many people with tablets and other devices depend on wi-fi to access the Internet. Not all of us have the money or the need to spring for 3G/4G connectivity. But wi-fi is not always available. (And even with 3G/4G connectivity, many people have to be cautious about excessive Internet use.) One of the terrific things about Surfulater is that I can access all my information for as long as I want even if I don’t have Internet access. Will be true with the new program as well? I certainly hope so.
Hi Joan,
The plan is to, in some shape or form, enable access to content without requiring an Internet connection. There are various complexities in achieving this and it is too early to comment further at this stage.
-Neville