Website update (1 December 2005)
Happy Christmas everyone! I hope you all have a relaxing holiday and that next year brings peace
and prosperity. Here is the postie bringing copies of Ubercode.
Changes over the last two months include:
- In addition to the packaged version (CD and manual in a box), Ubercode can be purchased as a
downloadable version. This version does not require manuals or CDs to be printed, and its price has
been reduced. The downloadable versions have also reduced the cost of the Professional Pack below
the $100 barrier. So buy now and learn Ubercode programming ready for the
- There is a new example program, based on the Moon-lander game originally written in Basic. In
the game, you take the part of the captain of a space craft as it makes its landing on the surface
of the moon. The challenge is to slow your descent so you land with a gentle bump, without using up
all your fuel (or propellant, to be exact). It's over 30 years since mankind landed on the moon, so
in the updated Ubercode version you can choose whether to land on Mars, the Moon or the Earth, just
by changing constants at the top of the program.
- To try the game, download the Trial Pack and look for the
Lander example. The download is available free of charge, and no registration or internet
activation is required.
- Other changes - the website was modified to prevent Internet Explorer v6 popping up a warning
- Updated the links page and removed old and outdated links.
Website update (1 November 2005)
Changes over the last month include:
- The website has been updated and the pages have been made clearer. This includes lots of small
changes to fonts, page layout, page names etc.
- A new download of the Trial Pack is ready. This is available free
of charge, and no registration or internet activation is required.
- A beta version of Visual Fred has been added to the website. This is an experimental version of
a language intended to be partly compatible with classic VB.
New trial pack (4 September 2005)
The core software is now working reliably without any problems. This month's changes
- A new download of the Trial Pack is ready. This is available free
of charge, and no registration or internet activation is required.
- Added a new library function Filecreateshortcut() which (surprise surprise!) creates
Windows short-cut files and works under any version of Windows.
- Added a new example program which shows how to call up the short-cut function. Ubercode is
unique in that it's the only Developer Environment that lets you open and run example programs from
within the IDE itself by clicking a single button. If you don't believe me, download the Trial
Pack, start the Developer Environment and use the File - Open Examples menu command. Then
you're one mouse-click away from running the examples.
- Added a new download containing an article about the
makelink program. This is documentation and source code for the code that implements
- Started work on a Linux port by setting up a Linux workstsation on the local LAN. I plan to use
a surplus Pentium with 128MB memory, a 40GB hard disk and the Ubuntu distribution (this choice was suggested by Jeremy White
from Codeweavers.com). Ubercode is written to the Windows API so I plan to use the Windows
compatibility libraries under Linux for the port.
New trial pack (2 August 2005)
This month's changes are internal run time library improvements having no outward effect (yet).
Also I've done some preliminary work to make it possible to call COM objects from Ubercode
programs. The full list includes:
- Added a new internal library file comlib which contains interfaces to COM objects. At
the moment I have added IShellLib and IPersistFile, the idea being to make it
possible to create links (short cuts) using standard Ubercode functions.
- Minor usability changes. In the Professional Pack Developer Environment, if you go into the
Tools - Options - Customize Program Version dialog, the compiler settings are automatically
set to ensure the creation of the version information.
- The Professional Pack has built-in support for an installer. All you have to do is choose where
the files in your program are installed to, choose a name and a few other details, then a self-
installing EXE file is automatically created.
- Submitted the Ubercode package to the installer challenge to see if Ubercode
can be made to install under Wine (a Windows compatibility library for Linux). This is a first step
to making Ubercode more cross-platform.
Website move (3 July 2005)
The major task for the last month has been moving the website to www.ubercode.com (its new
home), also changing the pages so they have the new name and changing the screenshots. I have also
written an article about finding a web host which
discusses the problems I found. The complete list of changes includes:
- Relocated website, re-arranged files and fixed up cross-links.
- Improvements to the Professional Pack, which now creates an installer that can be distributed
easily to other Windows PCs.
- Released a new Trial Pack for free download.
Version 1.0 arrives! (18 June 2005)
Well it seems hardly possible, but at long last v1.0 of Ubercode is ready! Ubercode has survived
a name change, several moves, development under two different operating systems and over a thousand
downloads. So visit the online store, get your own copy now and enjoy
Here is the full list of changes:
- Version 1.0 released as described above. This is the result of many hours of work and much
useful feedback from beta testers and trial-pack users over several years.
- The website has been moved to a new web host. My original host (65535.net) was excellent,
however they merged into another business some time ago, and more recently the other business split
off their shared hosting, and my email didn't survive the change.
- Changed the name to Ubercode since the old name was widely used by different businesses.
- Updated the purchasing page with details of the credit card processor (Northstar solutions) and
with the correct charges for shipping and insurance.
New update! (6 June 2005)
Deep in the code thickets, things are a-stirring...
Real Soon Now, I will be changing the product name and website and making Ubercode ready for
release (I really mean it this time). In the meantime a new download
is ready. This includes the following changes and improvements:
- A new example has been created to show splash screens. In Ubercode you can display a splash
screen with just a few function calls. This includes splash text, bitmaps, timers, sounds and more.
The example is splash.cls and is accessed using File - Open Examples on the
- Another new example shows Zeller's Congruence for finding the day of week from a date.
This uses the time utilities added in the previous release. The example is time1.cls and is
accessed using File - Open Examples on the menu.
- A bug was found in the part of the compiler that handles structured expressions - numeric type
conversions were being handled wrongly. This has been fixed.
- Re-ran the code and error validation tests to check they worked after changes to the
- Unfortunately the email service for this website has become unreliable. My original webhost
(65535.net) was merged into another business, this other business later split up, and the new
webhosts are not forwarding email properly. So over the next week I will relocate the entire site.
I apologize to anyone who has not had a response to email - normally I respond to all emails within
one business day.
- Ubercode now makes it extremely easy to open example programs. You can copy examples
from the help files by clicking a single button. You can browse examples using the File - Open
Examples menu command, and each example has a brief description, a list of files and an icon.
And, all examples are guaranteed to compile and run properly. If you use Ubercode, you never need
look at a makefile ever again.
Liberation day update (8 May 2005)
The latest release of Ubercode includes a backup / restore feature. As you make changes to a
file, the editor saves the changes to backup files which include a timestamp. The
Tools-Options-Editor dialog has options that let you choose how often the backups are
If you want to undo any changes, the Edit-Undo menu command shows a list of all the
backups - you can choose any one and restore to this point. This is better than normal Edit-Undo as
you can "undo" a file to the state it had several days (or even weeks) ago. This is not possible
with normal Undo. Also the automatic backups can be turned off for those curmudgeonly types who
don't want it.
This month's changes also include:
- Automatic backup / restore as described. The Restore option is activated by
Edit-Undo which shows all the restore points.
- Control arrays of Menuitems have been improved to include all the menuitems in a single popup
menu. This makes them more consistent.
- Extra utilities have been added in Timeutil.cls to help with dates and times. A useful
function has been added called Zeller's Congruence which works out the day of week from a
given date. Did you ever want to know what day of the week 1600-01-01 fell on? (probably
- The select statement has been improved to allow ranges of menuitem objects as case
labels. This makes it easier to handle menu selections based on popup menus.
- When using the Developer Environment to add or remove functions from the code window, functions
in the code window were sometimes not found. This occured if functions had characters in common at
the end of their name, for example MyFunction and SomeFunction. This has now been
- The output of the Systeminfo function has been made clearer. For example when run under
Windows XP it shows "Windows XP" v5.1 instead of "Windows NT" v5.1.
- A bug was found in SetCaption - if the caption of a Menuitem was changed, the menuitem
would be re-enabled and un-checked. This has been fixed, and the previous checked (MF_CHECKED) or
disabled (MF_GRAYED) state is kept.
- Finally it's Liberation Day in Jersey - it was 60 years ago
today the British army liberated the channel islands after German occupation. Time to go and
New update! (3 April 2005)
A new version of the Ubercode Trial Pack is ready, with the
- The maximum size of a single linear memory block has been increased to about 4MB. Larger
structures are possible using multiply allocated descriptors.
- As a result of the memory block increase, the maximum number of lines in a class where the
debugger can place a breakpoint was increased to 8000. This is the internal MAX_LINES
- As another result of the memory block increase, Redim was enhanced to allow a Redim
Preserve option. This makes large resizable arrays more efficient, since the existing data does
not require deallocation.
- Updated the Technical support database.
- Found a bug where the manifest file was not included in the list of files when packaging files
for re-distribution. This has been fixed.
- Improved the compiler to detect an obscure error. If a function is declared using a prototype,
then called, then fully declared with pre and/or postconditions, the function call should not be
allowed because the pre / postcondition is unknown at that point (to fix the error the pre/postcond
should be moved to the prototype).
- Split the news page (this page) so previous years are on different pages. Jump to the end and
you'll see what I mean.
- Finally I have not forgotten about the v1.0 release - I am doing some final tidying up
and making the code editor auto-save backup files during editing. Also I am looking into SQL lite as a simple and effective database to integrate into the
Professional Pack and the Enterprise Pack.
Spiffy new feature! (2 March 2005)
In days gone by it was easy to copy a program to another computer - you just copied an EXE file
and maybe a few extras and that was it. Nowadays it's a major mission to copy a program, even if
you wrote it. It involves different run-times, or VB DLL's, or Java environments, or .NET
frameworks. And what works on one computer doesn't necessarily work on a different version of
Windows. So to make life easier, the Ubercode Developer Environment can package the files for you,
by pressing a single button.
Now you can copy Ubercode programs to floppy disk(s), a local folder, a folder on a network, or
to a zip file. Then you just copy the files onto another computer and off you go!
This month's improvements include:
- Added Program - Copy EXE File command as shown above. Please note the Standard
Pack and Professional Pack are intended for writing programs for distribution. The Trial
Pack is for evaluation and testing - programs created using it still run on other computers, but
with a message showing they were written with trial software.
- Ubercode Software changed its phone number - please see the new number on the bottom of the
- Fixed up minor bugs in the Dialog1 and Dbfiles1 examples that caused them to fail
to find icons and files.
- Renamed most of the bitmaps used by classes so they are prefixed with the class name. For
example bitmaps used by the Dbedit class are named dbedit_file1.bmp etc.
- Improved the program editor so that if it tries to open a main class on a read-only drive (eg a
CD-ROM) it returns a useful error message.
- Fixed an obscure compiler bug that prevented a class compiling if a private function used
preconditions or postconditions with user-defined types.
- Re-ran all code and error validation tests to check they worked after the compiler
New update! (1 February 2005)
More changes and improvements:
- Checked the links page and removed dead and out-dated links.
- Found an obscure bug in the dialog editor. If control objects used relative paths to specify
files used with the Picture property (eg Picture = dir\file.bmp) the pictures were not shown
properly when using the Tools - Test Dialog command or (in some cases) when the program was
run. This has been fixed.
- Improved the compiler to report an error if programs use dialogs with non-existent
- The v1.0 release is still having some last minute changes, basically making it possible to
distribute Standard Pack EXE files to other computers. Version 1.0 will be ready real soon
- Found a real word which is not indexed by google (addentellation) - the word means 'toothing
stone' and is used at the end of Chapter 2 of Machiavelli's book The Prince.
New update! (12 January 2005)
More changes and improvements:
- The Standard Pack and Professional Pack will be available for purchase very soon now, after
some final improvements. Also a new Trial Pack is available for free download!
- A new example program has been added to show the different control types available with
Ubercode. The example is Controls1.cls and you can browse the examples using File - Open
Examples from the Ubercode Developer Environment.
- The example browser is very easy to use now. All you have to do is choose the example you want
and click the Run button - that's it!
- The Learning Ubercode manual has been simplified, re-checked and made slightly smaller
so it sits properly in the DVD cases.
- The startup screens in all Ubercode Packages has been made clearer. You can now see the package
description, and the use-by date in the case of the Trial Pack. The Trial Pack also includes
buttons for updating to a regular copy.
- The Help - About command in the Developer Environment shows the details of the computer
it's being used on, and includes a Copy Info button for copying the details to the Windows
clipboard. This is useful when contacting Ubercode technical support.
- A bug was found (shame!) in the Dialog font handling code when graphics and control objects
were mixed in the same window. If the drawing font was changed, this would change the control font
causing the controls to be redrawn using the SYSTEM_FONT. This has now been fixed - the fonts used
with Drawtext are independent from the control font.
- Another bug was found in the dialog editor. If the Property editor was used to delete the
Fontname property of the dialog, the Developer Environment would halt with ERR_WIN_FONT (712). This
has been fixed by defaulting an empty Fontname string back to the default "Microsoft Sans Serif"
- The common dialogs have been tidied up by the addition of two new ones. OpenFileDialog
prompts for one or more files, and OpenFolderDialog prompts for a folder.
- A bug was found in the compiler. In some situations the 3rd pair of bounds of a 3 dimensional
array were not being fully checked - this would have caused some invalid array bounds to be
detected as a run time error instead of a compile time error. This has been fixed.