Saturday, 15 March 2014

Planned changes to CodeSnip's handling of the Code Snippets Database - comments please

I'm considering a major change to the way CodeSnip handles the online Code Snippets Database and am seeking comments, either here or on CodeSnip's Google+ page.

First, a little background

CodeSnip v1 was just a read-only viewer for the online database. It simply displayed a searchable snapshot of the database. Users could update the snapshot from time to time as the database changed.

Users wanted the ability to store their own snippets alongside those from the database. That was tagged on in CodeSnip 2 and developed in versions 3 and 4, but underneath its still rather a hack. (User snippets are still stored separately the imported database code - the two even use different data formats).

The program needs, and is getting, a major overhaul in an attempt to cure its split peronality.

Proposed changes in CodeSnip 5

  • There will be just a single code bank where users will store all snippets, both user-created and imported.
  • Instead of treating the online database a separate entity users will be able to import a some, none or all snippets from the database into their code bank. The ability to import only a selection of the database should help keep the size of the code bank manageable: there are currently over 600 snippets in the database. My thinking is that very few people want all of them!
  • Snippets will also be able to be imported from other sources, e.g. other users or the SWAG database. This means that users will be able to share snippets and keep them in synch if they wish†.
  • All snippets will now be editable.
  • The rigid system of categorisation of snippets will be scrapped and replaced with a flexible system of user-defined tags, where each snippet can be grouped under one or more tags (a bit like in GMail and GistBox).
  • The code bank will now be friendlier towards non-Pascal snippets, with a new sytax highlighted editor etc. However, Pascal snippets will continue to be the main focus with unit generation and test compilation etc. still available.

† NOTE: Over a year ago I had a request to allow users to share their snippets via a web space. While I would like to include that it's proving harder to implement than I first thought, so it may have to slip to version 6. Unless there's demand of course.

My questions

Before I go too much further with development I'd like to get some feedback from you about these proposed changes. In particular:

  • What do you think of them: useful or not?
  • Anything else / different you'd like to see?
  • Should CodeSnip become mainly a code bank for your own code with links to the online database and other sources, or should it treat the online database as special as now?
  • Is there any demand for an online code sharing repository accessible from CodeSnip? What what it do that can't be done with the likes of Gists on Github.

I'm still hoping (rather than planning!) to get a preview release out before the end of Q2 this year and hope to start the next stage in development around the end of March.

Friday, 14 March 2014

CodeSnip now on Google+

CodeSnip now has a page on Google+.

I'll be using the page to note any periferal issues that have some kind of relevance to CodeSnip.

You can also get to the page from the "CodeSnip Google+ Page" gadget on the right of each blog page.

Saturday, 8 March 2014

Some posts of interest from my other Blog

Before this blog got started, I blogged about developments with CodeSnip on my programming blog.

There are some posts on that blog that may still be relevant. Rather than re-post them here I've just listed a few links below, most recent post first.

If you've comments on any of these post please add them to the original post, not here.

Thursday, 6 March 2014

CodeSnip v4.8.7 Released

Hot on the heels of last week's release of v4.8.6, CodeSnip v4.8.7 has just been released.

This is a recommended update. It fixes a bug in the code that checks online for program and database updates. The code was ignoring the required update checking frequency and was, much of the time, checking for updates every time the program was started.

Download v4.8.7 using the following links: