Ubercode News Archive (2006)


Update (5 December 2006)

Changes for this month include the following:

  • Updated the main help file by adding a Contents View. The Contents View opens up in a separate window and provides a top-level view of the entire help file:

    Help File Contents Page (starting point for the entire help file)

    The Contents View is very useful because you can see the entire help structure at a glance. This change is also a stepping stone to updating all Ubercode help to use the compiled HTML (chm) format.
  • Fixed a bug in the compiler which occurs when floating point literals were compiled under non-English locales. Thank-you Vincent for providing accurate error reporting - this was a big help! The bug happened because there were multiple routines for converting numbers to strings, and some routines were dependent on the locale and others weren't. This caused a problem for Str() which converts floating point numbers to strings, since the output of Str() should always use a decimal point to make the string parseable by Val(). This has been fixed by internal changes to the routines that handle numeric to string conversions, and by using a core set of routines in all cases. The fix will be distributed as a compiler update, or possibly in the next upgrade depending on final testing.
  • Added extra pictures to the European Shareware Conference (ESWC) write-up. These pictures show the winner being awarded the ESWC Epsilon Award. Scroll down to the end of the European Shareware Conference article for a closer look.
  • Put some festive Christmas decorations up on the website - Ho ho ho and all that!
  • Finally there is a new monthly Ubercode download - download it now and try the latest release!

ESWC - European Shareware Conference (4 Nov 2006 - 5 Nov 2006)

Over the weekend of the 4th to 5th November, I attended the European Shareware Conference. The conference is aimed at micro ISV's and Shareware Businesses, and is presented in the prestigious (and expensive!) Crowne Plaza hotel in Cambridge, UK. Here's a picture:

Crowne Plaza Hotel (expensive!)

The conference started with a discussion of Search Engine Optimization. According to Dave Collins the most important rule is that there are no rules that describe what to do to optimize your site! After presentations from Gary Elfring and Robert Martin, there was a very interesting panel session:

Bob Walsh, Gary Elfring, Dave Collins, Sharon Housley, Phil Schnyder, Robert Martin

From left to right, the panel consists of Bob Walsh (Moderator), Gary Elfring (Elfring fonts), Dave Collins (Shareware promotions), Sharon Housley (Notepage), Phil Schnyder (Avanquest), and Robert Martin (Infacta). The panel talked about the most important opportunities for micro ISVs in 2006 - 2007. These were:

  • Customer relationships are not just one-way - it's not just about making a sale and forgetting the customer. Instead, build a relationship with the customer by keeping them updated, asking for feedback and including their improvements in new versions.
  • Develop and test under Windows Vista. If you're quick to market with a Vista version, you may even steal a march on your competitors.
  • Create real-time feeds based on your name and company name using products like ego-search. You can be directly notified as soon as someone discusses you, allowing you to reply directly.

Bob Walsh then motivated everyone to direct action by asking what immediate things we would do as a result of the panel's suggestions. I won a prize of his book "From Micro-ISV to reality" for committing to test under Windows Vista - thanks Bob! So I have to make a Windows Vista tested version of Ubercode within the next few months, or Bob will ask for his book back!

Round about this time some of the power sockets failed because of overload, so I couldn't use my laptop for a while. The overload was because the room was cold so the hotel staff supplied extra heaters:

It gets cold in Cambridge!

After lunch (which I ducked out of) Tony Edgecombe talked about building customer trust. Some important lessons are: Always act in the best interests of your customers, offer a Money Back Guarantee, and use Authenticode to sign your EXE files. I am pleased to report Ubercode Software currently does at least two of these! Authenticode signing is even more important with Windows Vista, since unsigned EXEs cause Windows to pop up nasty warnings.

The next session is with Marcel Hartgerink (Wibu) who discussed software protection in detail. This is one of the more technical sessions and Marcel's product CodeMeter implements protection based on time, number of uses and number of simultaneous users. The CodeMeter is a hardware based device (dongle). This should be very secure, since it is based on an encrypted USB key or PCMCIA card:

AX protector hardware key

This was followed by the afternoon panel session:

Marck Pearlstone, Michael Lehman, Sinan Karaca, Thomas Wetzel, Marcel Hartgerink

This panel consists of Marck Pearlstone (Brainstorm software), Michael Lehman (Microsoft), Sinan Karaca (Installaware), Thomas Wetzel (Wisco) and Marcel Hartgerink (Wibu systems). Some interesting things emerged from this panel, including the statement that Dot Net v3 is primarily a marketing release based on Dot Net v2 plus Windows FX. Also Michael Lehman of Microsoft confirmed the Windows 32 / 64 bit API is still being implemented in the forthcoming Windows Vista release.

Sinan Karaca of InstallAware then showed us his new installer, which is intended for creating MSI (Microsoft Installer) files for Windows. MSI files are Microsoft's new installer technology which works under Windows 2000, XP and Vista. Sinan used to work at Install Shield and was part of a group that left to found their own business.

The final session on Saturday was from Thomas Wetzel (Wisco) who discussed Google ad-words. He pointed out it's easy to lose money with Google ad-words since these exist primarily to make money for Google, not for you. Careful use of ad-words requires techniques such as the following:

  • Use several words that accurately target your product.
  • Use negative words so your ad-words are not wasted on searches using words you don't want.
  • Make sure you include a "call to action" with your ad-word phrase.
  • Use different advert text and measure the response to different ad-words, as a way of measuring the effectiveness of the ad-words.
  • If you are number one on the ad-word list, you're spending too much money. Reduce the amount you bid for the ad-words to ensure you are number two or number three.
  • Be sure to measure the response to the ad-words, since you need to know whether they are earning money. If you are not measuring the response, you are wasting your money on ad-words.
  • When measuring the response, you should know what the most commonly used keywords are, you should know your click-through rate and the ultimate conversion rate. Monitor performance at least once a week.
  • Delete any ads with a low click-through rate.

Sunday 5th November - European Shareware Conference

To the surprise of Dave Collins (Shareware Promotions), most people made it to the 9am Sunday morning session! During this session Dave gave a list of do's and don'ts for websites. Here's the list of things you should do:

  • Customers need confidence that you are trustworthy. The site should include terms and conditions and money back guarantees.
  • Make sure testimonials that can be backed up. Testimonials should not be limited to a separate page that no-one reads, instead they should be inserted inline with page content.
  • Reassure customers by providing a current phone number and address.
  • Use product photos, screen shots and photos of real people. This gives credibility and reassures customers that you have a real business.
  • Make sure there are site links on the bottom of a page. If a customer is dedicated enough to read to the bottom of the page, don't abandon them!
  • Explain what you are and what you do, and make sure your site focuses on your product. Speak to your customers in the language they understand.
  • Your website is your main selling tool - if necessary spend money to make it look good.
  • Use log file analysis programs to monitor your site.

... and here's the list of things you shouldn't do:

  • Don't have too many links per page and don't use tiny fonts.
  • Don't use home-designed graphics and don't use the clip-art included with Microsoft office.
  • Don't let your site get out of date and make sure copyright dates are current. "Last updated July 1997" does not inspire confidence so you should update monthly or more frequently.
  • Don't use too much text on a page. Keep pages as clear and as short as possible by removing fluff words and unnecessary sentences.
  • Don't make people hunt around for information about your products. Make sure the website is clear and focused.
  • If visitors want to download a trial copy, don't make their life difficult by asking for information you don't need.

In the next session Thomas Wetzer (Wisco) discussed software protection. I don't understand why German software developers are so interested in this subject, but anyway here is Thomas discussing what to do about software pirates:

What to do about pirates

By offering them a discount he converts about 20% of them into legitimate users! Here are Thomas's suggestions for software protection:

  • No protection. This is the model used by Winzip up to version 8.1, which allows unregistered users to continue using the product.
  • Make the full version available only after purchase. This can be bypassed by the publication of the full version by hackers, although this is less likely.
  • Offer protection via licence keys. This can be bypassed by hackers posting valid keys, or by hackers disassembling your licence key validation code and creating their own key generator.
  • Partial key validation. To offer defence against key generators, you can have a longer key and only validate against part of it at one time.
  • Continued use after refunds. To protect against this, Thomas suggests keys are time limited.
  • Hardware locking. Using this technique, an application can be locked to a particular hard disk serial number or network card MAC address. This method causes an extra support burden because computer configurations change over time.
  • Product activation. This is the same model used by Microsoft with Windows XP and Office 2003, where the application "phones home" and validates its details against a central server. Thomas suggested the application only phoned home during a regular update check, to avoid the annoyance of making the customer's computer connect across the internet without asking.
  • Software protection packages such as Armadillo. During the question session several people said they found Armadillo's protection was limited, as determined hackers find ways around it.
  • Hardware based protection. Use of dongles and hardware locks is about the only way of making hacker proof applications. But most applications do not justify the expense or customer inconvenience of hardware protection devices.

A lively discussion then took place about what information could be sent back when an application "phones home". Thomas said it was OK to send back personally identifiable information, whereas other people had the view this information should not be sent without customer approval.

My personal views on protection are: (1) The only reliable methods are product activation and hardware locks (2) it doesn't matter anyway since the only purpose of protection is to keep honest folks honest, and you shouldn't spend too long in a war against hackers who have nothing creative to do.

At 11.00 the e-commerce panel kicked off:

Jessy Jex, Phil Schnyder, Edward Leigh, Daniel Kleinburg, Guy Wilnai, Sharon Housley, Dave Collins, David Boventer

From left to right, the panel consists of: Jessy Jex (not visible), Phil Schnyder (Avanquest), Edward Leigh (Osolis), Daniel Kleinburg (Plimus), Guy Wilnai (Plimus), Sharon Housley (Notepage), Dave Collins (Shareware promotions) and David Boventer (ESWC). David thanked everyone for turning up, then questions took place about secure ordering. People are frustrated at having to re-enter credit card details each time when visiting different sites and having to keep track of different passwords and login details. The panel made the point that Microsoft offered the Microsoft Passport / Wallet service which retained credit card details, but Passport had met a lot of opposition. Another useful suggestion was for developers to have several different prices, for example there could be a Lite version and a Professional version, or there could be monthly payment options for more expensive products.

During the lunch break, I spoke to Bob Gibson at Tucows software. He helped fix a problem I had with getting the Ubercode download listed on Tucows. Many thanks Bob, and here are the Tucows mascots:


After the lunch break, Dave Collins (Shareware promotions) kicked off at 1.30pm by discussing Google adwords. He made some intersting points:

  • Adwords are all about making for money for Google, not for the advertiser.
  • The adwords system is made deliberately complicated with defaults that are biased in Google's favor. For example it defaults to wide matching, and it hides away options that you can use to target your adwords.
  • It is critical to monitor the success of the adwords, so that you can know which adwords are generating the most income. It is likely that a small number of ads are generating most of your income, so you have to know the effectiveness of each adword.
  • Make sure you set a realistic daily budget as a safety net.
  • Use multiple landing pages, Google doesn't like single landing pages.
  • Run a campaign or adwords for at least a week, so you can accurately measure how effective the ads are.

Following Dave's presentation, the Sunday afternoon panel answered questions on supporting your users:

Gary Elfring, Tony Edgecombe, Marck Pearlstone, Bob Walsh, Thomas Wetzel, Marcel Hartgerink

This panel consists of Gary Elfring (Elfring fonts), Tony Edgecombe (Frogmore), Marck Pearlstone (Brainstorm software), Bob Walsh (My Micro ISV), Thomas Wetzel (Wisco), and Marcel Hartgerink (Wibu systems). Some interesting facts that emerged were:

  • One person in the audience with about 20,000 customers reported they had about 100 support emails per week. This is equivalent to about 5000 emails per year and means each customer is 25% likely to contact you per year (very approximately!)
  • There was a general consensus that phone support was a luxury for most shareware authors selling packages in the $100 range. Developers were concerned their time would be used up in simple support issues. However it's important to have a phone number and to pick up calls from this number, in case a customer phones up to check you exist.
  • This led to a related issue - how much support should users get? There is a viewpoint that any support issue is a problem in your software, so all support issues are important and should be addressed. According to Bob Walsh, a request for technical support is a sales opportunity and a chance to establish contact with a user and show the credibility of your business. I agree with this, and all licenced Ubercode customers are entitled to full technical support.

After the mid-afternoon coffee break, Michael Lehman of Microsoft presented Project Glidepath. This project is aimed at micro ISVs to help them move forwards to Windows Vista. Here we have Michael at the start of his talk:

Michael Lehman, Project Glidepath

Project Glidepath helps developers with the following:

  • It offers documentation and help files to assist developers using the classic Windows API to port to Vista.
  • There is a Project Glidepath community which discusses Vista development issues. Also the Project Glidepath spotlight focuses on particular ISVs who are porting their code to Vista. Spotlight requires developers to be using the new dot net v3 libraries, also it requires developers to use the new task based dialogs (instead of MessageBox) and to use the new Open file dialogs.
  • Windows Vista developers can be listed in the Windows marketplace, which is an on-line collection of Windows applications that can be downloaded. Also Microsoft have a regular micro ISV spotlight, where a particular product is given focus for a few days.
  • The Windows Vista Logo is available at two levels. The "Works with Windows Vista" self-certification is free, and external certification is available for a fee from external agencies.
  • It offers extension packages to Visual Studio 2005 Standard Edition. These extensions help Borland Delphi and Visual Basic v6 developers adapt their programs to work under Windows Vista. As far as I can tell, extensions are blocks of managed code that implement the new parts of Windows that work differently in Vista.

The final session for the day is a website critique offered by Dave Collins (Shareware Promotions) and Bob Walsh (My Micro ISV). Here's a picture of Dave warming up to rip someone's site to shreds:

Dave about to rip some site to shreds

Several people (including me) volunteered to have our sites critiqued. Dave offered useful suggestions to everyone prepared to volunteer their sites, and I think he was disappointed that none of the sites were truly terrible!

Sunday evening - ESWC Awards

After the conference was over, the Epsilon Award was given to the author of the best shareware program. Here is David Boventer, the efficient and friendly ESWC chairman, deep in conversation with the Lord Mayor of Cambridge:

David Boventer (ESWC) chats to the Lord Mayor of Cambridge

The Epsilon Award was then presented to Alcohol-Soft.com for their useful CD / DVD backup software. Here is a picture of the presentation of the award:

Epsilon award is presented to Alcohol-Soft.com for their backup software

Well, that's enough about the conference. I learnt a lot during this conference, and would like to say a big Thank You! to everyone who helped me and who gave me feedback. If I have missed anything out or got any details wrong, contact me and I will fix it.

Improvements to Basic compiler (1 October 2006)

Changes for this month include the following:

  • Added more sections to the Technical Support area, in particular to address multi tasking.
  • Provided an update of the Basic compiler. You can download and install the Basic compiler as described last month.
  • I am still deciding the best approach for Ubercode Basic. There are two potential approaches: (i) Create a version of Basic that is as close as possible in terms of syntax to Visual Basic, warts and all. (ii) Create an improved version of Basic with the "language warts" removed, and also a syntax converter that converts Visual Basic into improved Basic. On balance I prefer option two, especially if the conversion can be made automatic.

Prototype of Basic compiler (5 September 2006)

At long last, a prototype of the Basic compiler is available. You can compile and run the following Basic program:

  ' HelloWorld Basic program

  Function MyStringFunc(Byval number As Integer) As String
    Dim NumberWord As String
    Select Case number
    Case 1
      NumberWord = "First"
    Case 2
      NumberWord = "Second"
    Case 3
      NumberWord = "Third"
    End Select
    MyStringFunc = "My " + NumberWord + " Basic Program!"
  End Function

  Public Sub main()
    Dim MyString As String
    Let MyString = MyStringFunc(1)
    Call Msgbox(MyString)
  End Sub

This is standard structured Basic. The program starts at main, it declares a string variable MyString, then calls a function and copies the result into the string variable. The call to Msgbox displays the resulting string. You can make this work as follows:

  1. Download and install the Visual Fred Trial Pack.
  2. Download vbc.exe from the same download page and copy it into the c:\program files\visualfred\bin folder (both downloads are free of charge and you don't have to register or give your email address).
  3. Create a simple Basic program. You can cut and paste the code above and save it as c:\hello.bas. Or if you want something even simpler, try this:
    Public Sub Main()
      Call Msgbox("My First Program")
    End Sub
  4. To compile the program, open a command prompt (DOS box).
  5. Type cd c:\program files\visualfred\bin to change into the folder containing the Basic compiler (vbc.exe).
  6. Type vbc c:\hello.bas -i"\program files\visualfred\libs" -gfpc to compile the program.
  7. Type c:\hello to run the example.

The current limitations with this release are: it can only compile one file at a time, it is not fully integrated with the Developer Environment, and some of the library functions do not have the correct names (eg Strupper instead of Ucase). These limitations will be fixed in the next release.

Update (5 August 2006)

Progress has been slow over the last month, since I have to find a new place to live. My flatmate is leaving Jersey (one of the UK channel islands) and is returning to London. I can't stay in the same flat because I wasn't born in Jersey so I am forbidden from renting property. Instead I have to find expensive "non-qualified" housing, which has no rights and from which you can be forcibly evicted by the police with no notice. This violates the European Convention on Human Rights, which explains why Jersey has not ratified it 6 years after it first appeared on the statute books. As you can see from this friendly community sing-along, Jersey doesn't really want you here unless you're a tourist:

Traditional Jersey welcome - If you don't like it here, go away (or visit the Jersey Tourism Website)

Jersey Evening Post, 8th April 2006

You can tell the locals because they are the ones smiling. On a more positive note I have prepared new downloads of the Ubercode Trial Pack which incorporates the latest minor changes and bug fixes. Other changes include:

  • Registered customers can download the latest full release directly from the website. Thanks to Roy Scott for this idea!
  • I haven't spent as long as I wanted on Ubercode Basic. But as a result of taking a step back, areas of similarity and difference to Microsoft Visual Basic have become clear.
  • Run Time Library. All functions, subroutines, methods and properties will be the same as in Microsoft Visual Basic - here is a full list. However the initial release of Ubercode Basic will not include some of the more obscure functions, primarily the financial functions. I prefer to get version 1 released first and will include the more obscure functions later on.
  • Data types. All Microsoft Visual Basic data types will be implemented using the same type name. In some cases types will be identical bit-for-bit (eg 4-byte integral types), in other cases the types have the same name but a different internal structure (Datetime, UDTs).
  • Objects and events. To start with, only the intrinsic Microsoft Visual Basic control objects will be supported. The objects implemented by ActiveX will be implemented as additional intrinsic controls later on. Also the implementation of Ubercode Basic events will make them portable to Linux later on, which means some of the more obscure events may not be included.
  • ActiveX. ActiveX objects pose the biggest problem, since Ubercode Basic will run under Linux as well as Windows, but ActiveX is not supported under Linux. What I will do is recode the ActiveX controls as intrinsic controls (see above) and eventually provide support for using COM objects under Windows.
  • Syntax. The Microsoft Visual Basic syntax is difficult to formally define using a language grammar. For example brackets are optional round parameters, brackets round ByRef parameters cause them to be evaluated and to be passed by value, type declaration characters are optional and cause semantic differences, all of which confuses beginners. Therefore Ubercode Basic has a much simplified syntax, and includes a pre-processor that automatically converts 'warty' Microsoft Visual Basic into Ubercode Basic (this happens behind the scenes so you don't need to worry about it!).
  • Technical Support. After Microsoft dropped support for Visual Basic, businesses are concerned because they don't know whether to continue using it or whether to undergo a massive re-write using VB.NET. Therefore Ubercode Basic includes one year's free support which can be extended to three years and renewed thereafter.
  • Portability. Again, to reassure businesses that have made a large investment in Microsoft Visual Basic, there will be a portability guarantee. What this means, if anything in Microsoft Visual Basic doesn't work in Ubercode Basic, it will be added to Ubercode Basic as a bug fix, or in a new release, or a work around will be provided. The longer term objective is, anything possible in Microsoft Visual Basic will be possible in Ubercode Basic.
  • Developer Environment and Compiler. Ubercode Basic will share the existing Developer Environment with Ubercode, and as a step in this direction, syntax highlighting for both languages exists in the Developer Environment. Also Ubercode Basic will use a compiler, meaning Basic programs can be compiled to proper EXE files.
  • Not a Clone. Ubercode Basic will not be a clone of Microsoft Visual Basic - cloning Visual Basic would be very difficult from a legal and technical viewpoint. Instead Ubercode Basic will be compatible with Microsoft Visual Basic, and will be an easy upgrade path for existing Visual Basic programmers.

Update (4 July 2006)

Here is a photo of the Ubercode standard pack. It is supplied with a CD, Manual and durable case:

The Ubercode package

  • What's special about the 4th July? As an English / Australian citizen I wouldn't know, but according to my American sources: Thus may the 4th of July, that glorious and ever memorable day, be celebrated through America, by the sons of freedom, from age to age till time shall be no more. Amen and Amen. Virginia Gazette on July 18th, 1777. I'm not sure Lord North approved of all these festivities.
  • Anyway to celebrate the occasion there are new Trial Packs for both Ubercode and Visual Fred (Visual Fred is a beta product largely compatible with Visual Basic 5 / 6 which is still under heavy development). You will soon be able to write code like this:
      Sub Main()
        call Msgbox("Hello World")
      End Sub
    and compile and run it under any version of Windows.
  • Also a Testimonials page has been added with useful Ubercode feedback.

Update (6 June 2006)

  • There are new Trial Packs for both Ubercode and Visual Fred (Visual Fred is a beta product largely compatible with Visual Basic Version 5 and Version 6)
  • This month the main development tasks have centered around the compiler. I have changed the internals to make it possible to compile both types of input code from the same compiler core. This task has proved somewhat complicated and has taken most of my efforts this month!
  • There is an interesting review of Ubercode at scottserver.net.

Update (11 May 2006)

It's time for another photo so here is the office where Ubercode is developed. The computer is one of several in the room, connected via a 100mb network. The network is for testing Ubercode under different versions of Windows on different makes of computer. I have tested Ubercode under Windows 95 / 98 / ME, Windows 2000 and Windows XP. The electronic equipment on the right used to belong to my father when he was a practicing radio amateur (call sign G3OGR). You can see a Yaesu FT101, Wayne-Kerr signal generator and an oscilloscope I constructed myself.

Where Ubercode is developed

I hope that satisfies everyone's curiosity! The other changes for this month include:

  • A new download of the Trial Pack is ready. This is free to download and intstall, and it does not require product activation or registration.
  • The Technical Support database has been further improved. Pages have been re-named so they match their purpose, and more pages have been added on many different topics. There are now over 150 topics in the database.
  • New functions ArraySort and ListSort have been added to sort arrays of strings and lists of strings.
  • The debugger has been improved to show the current length of dynamic strings and the current bounds of resizable arrays. Also it shows the maximum size of fixed size strings and the bounds of fixed size arrays.

Update (3 April 2006)

  • There is a new Trial Pack download for both Ubercode and Visual Fred (Visual Fred is a beta product largely compatible with Visual Basic Version 5 and Version 6)
  • An improved version of Meminfo is available which correctly reports the amount of free memory when run on computers with more than 2GB of virtual memory. Before this, a signed integer overflow occured, which incorrectly reported memory over 2GB as a negative value. This is now fixed.
  • The Technical Support pages have been completely re-worked. The new support site includes the FAQ, information on Getting Started, questions about the web site, technical papers and all other documentation. Take a moment to visit the new improved support pages!

Update (1 March 2006)

  • A new "Labels" program has been written, for printing labels on inkjet and laser printers. This program lets you choose the size of the labels, the number of labels, other details like the colours and fonts, and then prints the labels. This is useful for address labels, registration stickers and so on.
  • To run the program, download the latest Trial Pack and look for the Labels example. The download does not require your email address, or registration, or internet activation. At Ubercode Software we believe you should be free to try our new software without spending time filling in forms.
  • Also there is another Visual Fred beta - this is the new version of Basic intended to be largely compatible with Visual Basic Version 5 and Version 6.
  • There are downloadable and packaged versions of all Ubercode software. This has made it possible to reduce the price of the downloadable packages.

International Developer Article (6 February 2006)

The main activity this month has been preparation of an article for the International Developer magazine. This magazine has interesting articles about software development and other related issues. Other changes include:

  • Work continues on Visual Fred - the compiler for this language will be a modified version of the current Ubercode compiler, and the two languages will share the same run time library code. By doing this the two languages (Ubercode and Visual Fred) will share well over 90% of their code.
  • A new Trial Pack download is ready. This can be downloaded and installed free of charge without needing to register or needing to provide your email address.

Update (1 January 2006)

Happy New Year! The core Ubercode software is working reliably under Windows XP and all previous versions of Windows (back to Windows 95). Other recent improvements include the following changes:

  • A new download of the Trial Pack is ready - this includes some extra example programs.
  • Another Visual Fred beta has been added to the website. This is an experimental version of a language intended to be largely compatible with classic VB.
  • The pricing structure has been changed - there are now Download-only and Packaged versions of all Ubercode software. This has made it possible to reduce the price of the Download packages.
  • Removed the Christmas decorations from the website!