Version Numbering

Since the dawn of time I have been using one of the more traditional types of version numbering systems for all my software developments. Recently however I have ‘enhanced’ my methodology and now use something slightly different.

To the outside world not a lot will appear to have changed, the N.N.N methodology will still be used, albeit with a slightly different interpretation. Internally however I will be using the full version numbering system shown below:

Aside from building the release date and time into the version number and swapping out Revision Number for Restricted Release Number, the main benefits to me are building an ascending Feature Number and Fix Number into the version number.

These numbers will only ever increase, regardless of the program status changing from (for example) Version 1 to Version 2. This means that at a glance I can see how  features and fixes have been applied to this particular program since day one, without having to go to Version Control for this information.

Looking for an App creating for your Windows or Mac Computer? What about an App for your iOS or Android Tablet or Phone, or A Web App? Bespoke, Custom, High Quality Applications. Contact Us

Easy to Use SQL Tool | oneSql 101: User Prompts

Visual Guide to oneSql: Part 4, User Prompt Fields

New, Easy to Use, Fast, Cross Platform, Multi-Language SQL Query Tool: oneSqlupf5

upf2

upf3

upf5

upf

busbannerAffiliate Links

 

Easy to Use SQL Tool | oneSql 101: Preferences

Visual Guide to oneSql: Part 3

New, Easy to Use, Fast, Cross Platform, Multi-Language SQL Query Tool: oneSql

 

prefswindow1

prefswindow2

 

prefswindow3

 

busbannerAffiliate Links

 

Easy to Use SQL Tool | oneSql 101: DataViewer

Visual Guide to oneSql: Part 2

New, Easy to Use, Fast, Cross Platform, Multi-Language SQL Query Tool: oneSql

Results Tab Selected

dataviewerwindowexplained1

Database Objects Tab Selected

dataviewerwindowexplained2

Statement History Tab Selected

dataviewerwindowexplained3

 

busbannerAffiliate Links

oneSql Database Tool 1.0: Press Release

[prMac.com] Ripley, Derbyshire. United Kingdom – chol.technology are pleased to announce Version 1 of a brand new MySQL, PostgreSQL, MariaDB and SQLite SQL Query and Data Import / Export program for Mac OSX, Windows and Linux. Three Operating Systems, Four Databases and Five Languages Supported including in addition to English; French, Spanish, Italian and German. Clear and unrestrictive Software Licensing, putting customers needs first.

oneSql is a stand alone, lightweight, no install neededSQL Database Tool for OSX, Windows and Linux.

The target audience for oneSql is initially technical people, Database Administrators, Developers, or ‘power users’ who need a simple, efficient, cross platform SQL Tool on their computer, or in the Utilities folder of their portable USB Drive. DBA’s, System Admins, Developers, Accountants – all have a need for oneSql.

These users may currently have a favourite tool for each operating system platform they use. I’d like to supplement or even replace their existing tools with oneSql. I hope to do this by focusing on the features that are most important to them and eliminating those that seek to overcomplicate competing products.

We have also introduced new functionality that will likely interest those same individuals who can now get additional benefits from using oneSql. For example the ability to put the Mac, Windows and Linux versions of oneSql onto a USB Drive and then connect the drive to virtually any computer and load and use oneSql, without installation, is fairly unique and extremely useful.

With the unique ‘User Prompt Fields’ functionality, use within an organisation can extend far beyond the Technical User and to the desktop of the End User. Scripts written by the Technical User can be run as Reports by the End User without modification as each variable, for example Data Start and Date Finish, is prompted for appropriately. The End User needs to know nothing about SQL or the script.

Benefits Include:

  • One SQL Tool for Mac, Windows and Linux
  • One SQL Tool for SQLite, PostgreSQL, MariaDB and MySQL
  • Unlimited Time Limit for the Trial Edition
  • Unrestricted Features for the Trial Edition
  • Small and Lightweight, Approx 20Mb for all Versions
  • Speed with Reliability
  • Scripts Library to Store Your Scripts for Future Use
  • Easy and Simple to Use
  • No Installation Required
  • Save Time with Data Import Templates
  • Saved Connections Stored Safely using Encryption
  • Get Started Quickly with the Examples Database
  • Productivity with User Prompt Fields
  • Increased Database Security
  • Full Manual Included as a PDF
  • Written and Supported in the United Kingdom
  • Simple, Fair and Inexpensive Licensing
  • Zero Effort Corporate Licensing
  • Corporate Licensing Available
  • 50% Discount for Education Establishments and Students
  • 50% Discount for Charities and Non Profits

Features Include:

  • SQLite, MariaDB, PostgreSQL or MySQL
  • Objects Tab – Tables, Views and Columns
  • Fully Customiseable Results Grid
  • Auto Highlighting of SQL Keywords
  • User Editable SQL Keywords List
  • Built in Script Library
  • Example Database Supplied
  • Export Data in Tab Delimited Format
  • Export Data in CSV (Comma) Format
  • Export Data in CSV (Semicolon) Format
  • Export Data in JSON Format
  • Save and Load SQL External Scripts
  • One Click for Record Count, any Table
  • Quick Query One Click to Fetch 20 Records
  • One Click to Fetch All Records
  • Insert a SQL Template
  • SQL History List – Double Click to Recall
  • Window Sizes and Positions Saved on Exit
  • List View Configurations Saved on Exit
  • Option to prefix Columns with Table Name
  • Option to append a Comma to the Columns
  • User Input Prompts
  • Enhanced Connection Encryption Options
  • Parsing of Multiple Statements
  • Sequential Statement Execution
  • Highlighted Statement Execution

Taking Security Seriously:

There are two choices for how encryption is used to secure your database connection information. The first choice encrypts the connection password in such a way that it is then specific to your computer. If you copy oneSql and the settings files onto another computer then the stored credentials will not work. This choice is ideal for use in a more secure environment, where for example access to databases is only permitted from select computers and / or locations.

The second choice encrypts the connection password in such a way that you can copy the oneSql folder from your computer, put it onto your laptop, or another computer, and your stored credentials will work fine.

This also means that you can copy oneSql onto a USB Drive, run it from that USB Drive on any Mac, Windows or Linux machine you plug it into.

Licensing:

With the development of oneSql came the development of a new Software Licensing scheme, designed to put customers first and to ensure they we never punish the genuine, fee paying customer for the actions of the software pirate. Our customer friendly, super simple software license is shown below:

‘You can copy and use oneSql on your own personal computers with one instance of oneSql allowed to be in use at any one time. You can put oneSql on a USB device and plug that into anyones computer and use oneSql from the USB device for as long as you need. All Licenses are valid for all supported Operating Systems, all supported Languages and all supported Databases.’

Half price licenses are available to Educational Establishments and Students also Charities and Non Profit Organisations.

Software Referral Scheme:

Also new with oneSql is a Software Referral Scheme. Payment will be made to an existing customer thirty days after a new customer makes a purchase based on an existing customers referral, and quoting the existing customers referral ID within forty eight hours of purchase. The payment amount is ten percent of the new customers spend (before taxes) and the payment will be made via Paypal.

Pricing:

oneSql is available from $30 for the Single User Edition

Availability:

oneSql is available now.

Testimonial:

‘I believe oneSql has found its niche; simple and powerful. Unlike many other SQL Tools oneSql is slim and easy to work with’ – Dennis, Beta Tester

Something Different:

We wanted to do something different to mark the release of oneSql, so we have decided that the first 10 people to purchase any edition of oneSql, with the exception of the Single User Standard Edition, will receive a Limited Edition oneSql mug (1 of only 20 in existence) as well as a goody bag of assorted promotional items and 10% cash back after 30 days. We’ll ship these bonus items anywhere in the world.

The first 100 purchasers of oneSql Single User Standard Edition receive 10% cash back after 30 days.

oneSql is dedicated to Alison Fowler RIP. See ‘ya Ali B. We miss you.

onesqlscreenshot1

chol.technology is the trading name for Steven Cholerton. Since the late 1980’s Steven have been heavily involved in Software Development and Information Technology.

He is a Chartered Information Technology Professional, awarded by the British Computer Society, a Fellow of the Institution of Analysts and Programmers, a Certified Ethical Hacker, an Oracle Certified Professional, author of several eBooks and many Commercial Software Products, and a committed and passionate developer of Custom and Bespoke software for Mac, Windows, Linux, iOS and Android.

Steven personally designed and wrote the R10Cipher file encryption software used by Leeds Institute of Molecular Medicine, Cancer Research UK.

###

busbanner

Affiliate Links

Software Licensing and Software Piracy: Part 3

If you’ve made it Part 3 then you either find this subject really interesting or else you have difficulty sleeping at night 🙂  This final part of my article on Software Licensing discusses some of the ‘nitty gritty’ and gets down and dirty with some real code samples. All code samples are taken from oneSql.

The value of Part 3 of this article will be mainly to developers using the Xojo Programming Language for Cross Platform Software Development, although developers in any language can benefit and in fact anybody with an interest in going ‘behind the scenes’ of software development.

One thing very noticeable when preparing this article is just how much ‘behind the scenes’ work is necessary sometimes to give the customer a simple, slick experience. Simple is hard ! The way this article is structured with a Customer Experience section followed straight after by a Behind the Scenes section, makes this very clear.

CUSTOMER EXPERIENCE [1]

When the customer decides that your product is for her, as far is as she is concerned the following two events take place:

  • The customer clicks the Buy Now button and is taken to the Paypal login page.
  • The customer decides whether to pay via Card or Paypal, then fills in the form and submits the document.

BEHIND THE SCENES [1]

chol.technology receive the Order Confirmation via Paypal. The chol.technology LicenseBoss Software automates the following sequence of events:

  • Product and Edition Information fetched from the LicenseBoss Database
  • The Encryption Key for the Product Editon is retrieved. Abbreviated as Key1
  • LicenseBoss parses and Inputs: User Name, Email Address, TimeStamp and Transaction ID
  • LicenseBoss combines the input into a string with appropriate delimiters and identity markers
  • We now have a ClearTextLicenseString
  • The ClearTextLicenseString is then encrypted using Key1. We now have the EncryptedLicenseString
  • The ClearTextLicenseString and the EncryptedLicenseString are then concatenated
  • We now have the FirstPassLicenseFileString
  • FirstPassLicenseFileString is then encrypted using the License File Encryption KeyKey 2
  • We now have the EncryptedLicenseFileContentsString
  • An email is then generated from a Template and the EncryptedLicenseFileContentsString  is appended
  • The email is sent to the customer

CUSTOMER EXPERIENCE [2]

The customer receives an email which looks similar to this:

licenseemail

The instructions are Clearly Documented for the customer in an email as a Four Step Process. After Step 4 the product is fully licensed, and the window below is displayed briefly before closing automatically:

onesqllicensewindow

BEHIND THE SCENES [2]

The Software License window, accepts the email pasted into it and immediately strips the unnecessary information and displays the encrypted license. The actual encrypted license is contained between the <CHOLTECH> and </CHOLTECH> tags, therefore the only part of the pasted email that is displayed and then processed is the part taken from between those two tags.

When the Save button is pressed the encrypted license is created as a text file and stored in the SupportFiles folder within the oneSql folder. The newly created license file is called oneSqlLicense.lic

At this point the License File Decode method is called with the license file contents as a string parameter. Multiple flags are altered and adjusted within the program to indicate that the product is now licensed. Further details on that wouldn’t be prudent for me to discuss publicly 🙂

The actual license file decode method is straightforward. All the Encryption and Decryption routines are pre-build, based on my R10Cipher File and Text Encryption product, (shameless plug –  developer licenses are available for the Encryption modules, contact me for details) and imported into my products as a module whenever I start to develop a new program.

Obviously the DecodeLicenseFile method basically reverses the work done by the EncodeLicenseFile method in the LicenseBoss program as described in step by step detail earlier.

I know some of you out there are Xojo Developers, so here’s a commented example of the code. You can see how straightforward it actually is:

decodelicensefile1

decodelicensefile2

decodelicensefile3

 

NOTE: Licensing in this fashion has an additional benefit. It caters for Zero Effort Configuration.

In a corporate environment if you were rolling out oneSql to dozens of computers, you could have a centrally situated Corporate or Site License which could be copied to each persons computer using a script. Very Fast, Very Simple and Damned Convenient 🙂  Essentially zero interaction required from the user. That’s got to be a good thing 🙂

busbanner

Affiliate Links

Software Licensing and Software Piracy: Part 2

Part One of this article finished with the following question:

What is it fair to expect your customer to do to license their copy of your product, and so help protect your product, your sales, your livelihood and the future investment and development in a product that is important to both you ?

I believe that it is fair to expect the customer to do something to help the software developer protect their product, after all if the developer doesn’t stay in business then the product doesn’t have a future and the customer could be left high and dry.

That’s not to say the customer can be expected to jump through any hoops … the emphasis is on the developer to provide a method of licensing their product that can be done quickly and easily and thus encourage the customer to purchase and use a legitimate copy of the software rather than paying a visit to **insert name of dodgy virus ridden download sites here** or similar.

My opinion is that if I, as a user, purchase a piece of software for my own use, then I should be entitled to copy it onto my PC and my Mac and my Laptop for use whenever I like. I should also be able to copy it onto a USB Drive, connect the drive to a friends computer and use the product there also. I should not however copy the software to my friends computer thereby giving them the ability to use it in my absence. I expect to have to follow a documented procedure to identify to the software that I am the legitimate owner. This should be a simple and one off process.

I believe the previous paragraph is fair to both the customer and the software developer. I believe most people are honest and do not mind paying a reasonable price for a quality product. The software industry has in some ways become its own worse enemy with some companies having complex and unworkable, illogical and unfair licensing practices. ‘We need the customer more than they need us’ is something developers should be bearing in mind.

What prompted me to look into Software Licensing and then to write about it and to ask for feedback from other colleagues, professionals and interested parties, is that I have a new product soon to be released. In my opinion every new product is an opportunity to improve the purchasing and licensing experience for your customer. You only really get the one chance to get it right.

oneSql (www.onesql.uk) runs natively on Windows, Mac and Linux. It supports five languages and four databases. It is a tool that some DBA’s and Developers will want to put on a USB drive and carry around. Does (should?) copying oneSql to a USB Drive go against the Software License ?

No. Restricting access to a single computer either by the installation of Configuration Files or Registry entries goes against the design of Utility software. Utility software which in my humble opinion is the Developers or DBA’s equivalent of the tradesmans tools.

Can you imagine a screwdriver being licensed to only be used on a given object ? What if you had to pay for another license for every object on which you used your screwdriver ? Forget the expense, it’s just not convenient. I don’t want to punish legitimate users of my software in a vain attempt to stop people stealing my software.

The Software License I have settled on for oneSql is simple, and is basically per User / Concurrent. It is so simple it is summed up in the following, single, paragraph.

The oneSql Software License

You can copy and use oneSql on your own personal computers with one instance of oneSql allowed to be in use at any one time. You can put oneSql on a USB device and plug that into anyones computer and use oneSql from the USB device for as long as you need. All Licenses are valid for all supported Operating Systems, all supported Languages and all supported Databases.

I am making it easy for the customer to know if they are infringing the spirit of the Software License agreement. I am not stopping them, or even making it particularly difficult for them to disregard the license, but I am asking them for honesty. If that fails then there are several other incentives to help the customer make the right decision …

Active Incentive: Referral Fee
With a referral fee paid to a oneSql customer when they recommend someone else, it is in the customers financial interest to get their friends and associates to purchase a oneSql license.

The following short and simple (can you see a theme here?) paragraph explains.

The oneSql Software Referral Scheme

A payment is made to an existing customer 30 days after a new customer makes a purchase based on an existing customers referral, and quoting the existing customers referral ID within 48 hours of purchase. The payment amount is 10% of the new customers spend (before taxes) and the payment will be made via Paypal.

Passive Incentive 1:
The licensed user name is displayed in the titlebar of the startup window as well as on the main window. Hopefully this is a deterrent as the original purchaser does not want their name showing up elsewhere and the user doesn’t want to see someone elses name where theirs should be.

Passive Incentive 2:
oneSql is fairly priced. That’s self explanatory. Customers do not want to feel they are being ‘ripped off’ or being taken advantage of.

Passive Incentive 3:
Offer a choice of license types and schemes that not only give the user choice, but also offer additional discounts for worthy establishments, education and charities for example.

The different types of software license that are necessary in order to give the customer the choice they require, can also bring additional and unwanted complexity. In order to also give the customer the licensing choice as well as the simplicity they desire the additional license types are all costed at N * x. N is the Single User Standard Price, here shown as $30 and x is the multiplier. An example is shown below:

onesqlpricinggrid

Trial Mode

The above incentives are for a potential customer who has obtained an illegitimate license from somewhere and I am trying to attract them into the fold. What about a customer who has downloaded a Trial Edition of the software ? For them we have to give them the chance to see the full capabilities of the software, while also convincing them to reach for their wallet. Trial Mode restrictions can make or break a product. For oneSql I have implemented the following:

  • Restricted the Saved Connections to Four
  • Generated a Nag Message after Every Query

Note that I have not restricted the Trial to 30 days or similar, nor have I restricted the functionality in any way. The potential customer can still see and access the full capabilities of the product, I have just made it a little bit less convenient than if they had purchased a licence.

In order for the Trial Mode to be successful for you and the potential customer it is necessary to again pay attention to the overall customer experience.

For oneSql I supply a configured sample database so that the user can experiment with the product immediately. I also supply a full, quality manual. Something missing in the vast majority of software products available today. Will every customer read it ? No. Will a high percentage of customers notice if it’s not there? Probably. The customers experience is what will get you a sale,  or not. I believe that is how it should be.

Part Three of this document discusses some of the technical methods, issues and problems involved with Software Licensing.

busbanner

Affiliate Links

Spanish Language Beta of oneSql Available

Finally !  English, French, German, Italian and now Spanish are all supported by the latest Beta of oneSql, our Cross Platform, Multi-Database SQL and Database Tool.

onesql_0907

Always interested in additional Beta Testers, if you are interested you can go to this page to register your interest.

Besides the addition of Spanish as a supported language, there are just a few more changes ‘under the hood’ so to speak.

  • New Default Logon for MariaDB: root
  • New Default Logon for PostGreSQL: postgres
  • New Windows Menu
  • Main Window Area Zoom Facility
  • Logon Window, Cleaner User Interface
  • Logon Window, Removed the Connections Log
  • Did I mention Spanish Language Support ?

Existing Beta Testers can download from the Build List in the Trello project as usual. Please let me know of any issues as the Release Version is due very soon now … 🙂 Your time and efforts are much appreciated.

busbanner

Affiliate Links

Software Licensing and Software Piracy: Part 1

Your favourite piece of software was created by someone, or many someones, who used their time and hard won expertise to build something useful or enjoyable, or both. With the exception of Free Software or Open Source Software, that someone is entitled to, expects and deserves to be rewarded for their efforts.

If a price is attached to the software and you use the software without paying the price that is asked, then that is Software Piracy. Many would argue that it amounts to nothing less than theft.

If I sell physical products, lets say Widgets, then if I have 10 and you take 10 without paying for them, then I now have 0, you have 10 and hopefully a guilty conscience as well. That is theft. If however you use my software without paying for it then I am not directly affected by it. I still have it. Would you have bought it if you couldn’t have obtained a pirate copy ? Maybe. Maybe Not. In my opinion that is why Software Piracy differs from traditional theft. What you have actually done is taken away my chance of receiving income from you for that software sometime in the future. It just isn’t clear cut either way, with laws, policies and attitudes being firmly rooted in the ‘pre digital media’ 20th century.

Having established that there is a cost to producing software and that the developer does deserve to be rewarded for their time and efforts, it stands to reason that we have to have a mechanism in place that makes this possible. That mechanism is generally known as Software Licensing.

I’ve been developing software for financial reward for nearly as long as I’ve been using computers, getting on for thirty years, and I have never wavered in my belief that whatever form of licensing you use, you should never punish the genuine, fee paying customer for the actions of the Software Pirate.

Seriously, I have bought software in the past that had licensing schemes so restricting or complex or time consuming (or just plain ridiculous), that I have saved time and effort by downloading a cracked copy of the software and using that instead, all the time cursing the software developers for making me waste my time and effort. In effect punishing me for my honesty.  As a Software Developer or Software Publisher that’s not an experience you want for your customers.

Whatever Software Licensing mechanism is used, there will always be some who do not like it and resent it being used. If as a developer you have done your best to minimise the impact on the genuine customer, whilst making some effort to thwart the Software Pirate, then you have done all you can and any customer who is going kick up a fuss about your licensing mechanism is unlikely to be a customer you actually want. Most customers would actually like you to stay in business and realise that to do that, it is necessary to be paid for the work you do, and / or the products you sell. Sacking your customer can sometimes be a good thing. But that’s a subject for another blog post 🙂

So what is a fair software license, for both the supplier and the customer ?  What is it fair to expect your customer to do to license their copy of your product, and so help protect your product, your sales, your livelihood and the future investment and development in a product that is important to both you ?

Part 2 Soon …

busbanner

Affiliate Links

oneSql New Beta Goes Italian

onesqlitalian

If you are interested in becoming a Beta Tester for oneSql, especially if you speak Italian 🙂 , then CLICK HERE. oneSql will be gaining support for Spanish over the next few days and within a couple of weeks Version 1.0 will be available to Purchase.

Affiliate Links

PostGreSQL Support Available for oneSql Beta

The Latest Beta Version of oneSql was uploaded earlier today. The main difference with this version is that PostgreSQL is now a supported database. This is in response to many requests from Beta Testers, Friends and Colleagues.

oneSql now supports MySQL, SQLite, MariaDB and PostgreSQL.

Additional changes in this version include the following:

  • Settings File Renamed
  • SQL Keywords File Renamed
  • Some Rebranding
  • Code Refactoring
  • List UI Updates, now Faster

If you are an existing Beta Tester then please Trash your existing Settings and Preferences files before using this version.

If you would like to become a Beta Tester than CLICK HERE.

Version 1.0 will be available very shortly, assuming this Beta Version doesn't suffer with too may bugs or issues 🙂  If you are a Beta Tester then let me know if you require your 30% Discount coupon and I'll get it sent over to you as soon as possible 🙂

Some Book Feedback

I received this feedback via email this morning, it's a great way to start a Monday morning 🙂

John had downloaded my free Computer and Network Security eBook last week. This is what he had to say:

Steve,

I wanted to let you know, really enjoyed reading Securing The Network.pdf [it] was well written and very authoritative. A great reference book, thanks again for making it available. Sincerely

John

Thanks John - glad you enjoyed it 🙂

 

oneSql PostgreSQL Support … Soon

By popular demand PostgreSQL support is being added to oneSql.  It’s not there yet but it will be available very soon.  Click here if you are interested in being a Beta Tester.

postgressoon


whatwedochooseus

  Affiliate Links

A Good Friday. Life is Good.

Finishing the week on a couple of high points;  Firstly I saw this tweet from a customer, Abacus Belper, when I got home from the office tonight:

abacustwitter

Thank-you very much for that ladies – much appreciated 🙂

The second event although far less important, nevertheless makes me happy – see the image below for the results of my Broadband Speed Test.  My ISP (BT) rocks 😉

bbspeeds

Happy customers, fast internet and the weekend to look forward to. Life is good. Happy Weekend. 🙂

whatwedochooseus

  Affiliate Links

oneSql: New Beta Available

There is a new Beta Edition of oneSql available. This update to oneSql adds an Import Data option to the Tools menu. This new menu option opens the Import Data window where you can setup your import structure.

This is done in the Configure tab of the Import Data window. You can select the type of file that you will be importing (delimited by Tab, Comma or Semicolon), you then select the Database Table you wish to import into.

The next thing is to Double Click the Columns that you wish to update.  Double Clicking in the Available Columns list moves the Column to the Selected Columns list. Double Clicking in the Selected Columns list moves the Column back out to the Available Columns list.

You can reorder columns by selecting the column and dragging it within the list.

imp1

Once you have configured the import to match your import file, click the Import tab. Here you can see we have two buttons.  The first button loads your text file into the import list and the second button marked Save creates the necessary import statements behind the scenes and writes your import file to your database.

imp2

Once the import is complete the import list is cleared and you are told how many rows have been processed.

Note the Checkbox options to ignore the first line (if you are using column headings in your source file) and to remove double quotes (often seen in badly formed import files).

The third tab option, Templates, is not yet implemented. This is where you will be able to save your import configurations and give them a name so that you can retrieve them quickly and use them again at a future time. A potentially very useful facility. Let us know if you would find this feature useful.

madewithxojo

If you are interested in becoming a Beta Tester for oneSql, please click here: http://bit.ly/1lq3kk8

oneSQL Legend

 

 

Blogfooter

 Affiliate Links