Ubercode News Archive (2009)


Internal Changes (27 December 2009)

  • The weather's not so nice now, so here is a picture taken during the summer. It's Baltimore Castle in County Cork in south-west Ireland:

    Baltimore Castle

  • Happy Christmas Everyone! In case Santa didn't bring what you want, there's a new Ubercode download with the latest bug fixes and improvements.
  • There's not much to see from the outside, but I have spent some time tidying up the internals and renaming the run time library files to prepare for the next release (v1.2). I plan to get this out in January, and because it has taken a while all existing licenced customers will be able to upgrade free of charge.

Registry Functions (30 November 2009)

  • This month's photo is again taken from Durrell Wildlife (formerly Jersey Zoo). I wanted to see if my camera could do closeups:

    Picture of flower

  • This month I did some more work on the registry functions. There's a new function RegKeyExists that checks whether or not a registry key exists.
  • Also I improved the registry functions to work with binary data. They now work with the registry types REG_BINARY, REG_DWORD, REG_SZ and REG_EXPAND_SZ.
  • There's also a new download containing the latest improvements. You're welcome to download the Trial Pack and try out Ubercode.

Ubercode connects to SQL! (10 November 2009)

  • Ubercode can now connect to a Microsoft SQL Server database. This picture shows the SQL Server connection window:

    SQL Connection Dialog

  • In the connection window, you choose the driver, the server, and the method of authentication. You can select Windows authentication which logs onto the database using your current username and password, or you can use SQL authentication which prompts you for a database username and password.
  • After entering the details, you can test the connection (see the Test button). If the connection is successful, the connection window returns a connection string which is used to connect to the database.
  • You can then open the database, run queries and updates, then close the database when you have finished. I have tested this with a local installation of Microsoft SQL Server Express, available as a free download from Microsoft. It should work with all versions of SQL Server (2000, 2005 and 2008).
  • There are some sample programs Sql1 and Sql2 which show how to use the connection string, and how to connect and retrieve some data.
  • Download the Trial Pack now to test out the SQL connectors and the sample database code.

Database Integration (3 October 2009)

  • Durrell Wildlife (formerly Jersey Zoo) recently celebrated its 50th anniversary - here is a picture of their gardens taken in the summer:

    Summer picture of gardens

  • There's a new Ubercode Free Download which includes the latest improvements and developments. You can download this and test out Ubercode immediately.
  • In terms of Ubercode the main developments this month have been extra code for database integration. The first step is to add a new filetype (FILE_TAB) to Loadfile and Savefile. This enables tab-separated files to be loaded and saved, and these files can optionally have header rows and footer rows. A tabbed file stores a single data table. This new code is a step towards capturing result sets from database applications.
  • I also started work on a new class for SQL integration and a SQL login window. This will enable Ubercode to connect to databases. The first one I have tested is Microsoft SQL Server Express which is a good choice as it's available as a download from Microsoft.
  • My plans are for Ubercode database integration to include SQL Server Enterprise, MySql and Oracle.

Windows API functions (3 September 2009)

  • More improvements and extra functions this month as the path continues to the next release:

    Path to the new version

  • Registry functions - a new registry function RegGetAllSections allows all the sub-sections from withing a registry section to be obtained.
  • Information functions - extra functions GetSystemMetrics and SystemParametersInfo have been created for obtaining useful Windows information from the Windows API. For example:
    • Screen saver timeout
    • Check if the screen saver is available and is currently running
    • Get or set the desktop wallpaper file
    • Get the work area - the part of the desktop not covered by the taskbar
    • Get the width and height of the primary screen
    • Get the width of a vertical scroll bar
    • Get the height of a horizontal scroll bar
    • Get the caption bar height and the menu height
    • Get the window border width and height
    • Check if the Windows debug kernel is running
    • Get the 3D border width and height
    • Get the size of an icon
    • Check if there is a mouse and a mousewheel
    • Check if the computer is connected to a network
    • Check if Windows was booted in normal mode or safe mode
    • Find the number of monitors
  • Communications ports - support has been added to enable serial communications ports above COM9. You can test this out using the Comms example in the latest Trial Pack.
  • Sample communications program - a new example program has been written to show all the connected serial ports. It does this by calling Commopen and Commclose for each port and checking the success status. If you run this on your laptop you may be surprised to see it has no COM1 or COM2 port, but only a COM3 port!
  • Version history - I created a list of the different versions of Ubercode this to help people see what has been added to each release, and the dates of each release.
  • Sounds under Vista - Windows Vista does not support a 22 KHz 8 bit sample rate, which caused some of the Ubercode sound files not to work. This has been fixed by resampling at 44 KHz.

Generic types (19 July 2009)

  • I apologize for not updating the web site sooner. My wife has just given birth to a beautiful baby daughter and so my evenings have been spent changing nappies instead of writing software. She's a bit too young to do any coding, but she is pretty good at making gurgling noises, staring intently at her doting parents and filling up nappies.
  • The delay in updating the website caused the Trial Pack to go out of date, so I have just uploaded a new Trial Pack to fix this. If you downloaded a Trial Pack which did not install, please try again with this new trial pack (email me if you have any questions).
  • Other changes to Ubercode include:
  • Generic Out Parameters - this means you can declare functions with out parameters of generic types, eg out returns:array[*:*]. Inside the function you can copy any array type to the return value, then the function returns this value. Generics are not limited to arrays, they can be record, union, array, list or table type. They are useful for functions returning tables from databases, functions returning lists of data and for any situation where you don't know the exact format of the returned data. The main reason they were added is for the database integration I'm currently working on.
  • Casting functions - all structured types now have casting functions (these are created by the compiler so you don't have to do anything to make them work). The casting function takes a generic type as its input and returns a value of the type as its output. They go hand-in-hand with the generic types, as they are used to cast a generic value to a user-declared type. Again these are part of the database integration.
  • Maximum identifier length - this has been made longer and is now 40 characters. The previous limit was too low and was causing problems.
  • Usability of the IDE - The Program - Add Dialog window now checks the dialog being added isn't called Main (not allowed since this would cause two functions called Main in the program). Also fixed an issue in the Programs - Add Data Source window, where the imported field names were mis-spelt.

Yet Another Newsflash (12 May 2009)

  • The website is back to normal and I will respond to questions, emails and forum issues within the normal timescale. Thank you for your patience.

Another Newsflash (2 May 2009)

  • Over the next 10 days, it will take longer than normal for me to reply to questions and emails. In the meantime there is a new Trial Pack to test out.

Newsflash (21 March 2009)

  • Website move - To fix some performance issues with the website, the site is being moved to another server under the same provider at 8pm EDT this evening. The website and forums may be unavailable for a few minutes around this time.

Improvements to Developer Environment (8 March 2009)

  • To get throught the cold winter months here's another sunny picture taken from when I was in Perth. This is a giant sundial at Cottesloe beach:

    What's the time?

    The dial is the curved bronze part held up by the pillars. The markings on the dial take the time of year into accout - this makes the sundial accurate to within about one minute which is pretty good for a sundial.
  • Other news - due to popular demand from an important future customer (you know who you are) the Developer Environment detects if you're saving a class file under a different file name, and changes the class name automatically. This avoids a confusing error that happens if you rename a class without changing the class name.
  • Also the "Getting started" topic has been rewritten to make it more relevant to new users. There's information on installing Ubercode, reinstallation, and on writing basic programs.
  • Also I added a new FindWindowHandle command which can search for windows by the window class name, the window's title (caption), can search with or without case sensitivity, and can limit the search to the current application or to all applications. This is based on the Windows API FindWindow function with many extra improvements. FindWindowHandle is fully documented in the help system.
  • So what are you waiting for - download now and find how easy coding is.

Ubercode Forum (2 February 2009)

  • Ubercode has a new forum Visit now to say Hello and to get answers to all your Ubercode questions. The forum would not have happened without a lot of input from a willing volunteer - many thanks Mike for prompting the forum and doing so much to help. Your inspiration and persistence really got the forum going.

    Answer to all your programming questions

  • Compiled new pre-release versions of the Professional pack and Standard pack for version 1.2 - if you are a licenced Ubercode customer, you can get these from the download area.
  • Fixed a bug in the dialog editor (error 615). Previously the dialog editor caused a string overflow when more than 80 to 100 control objects were added. Now you can add up to 255 control objects to a dialog.
  • Fixed a bug that happens when the Microsoft Input Method Editor (IME) attaches itself to a Ubercode program without closing itself when the program unloads. When the Microsoft IME is active, it attaches itself to all the windows in the program and changes its owner window as the program runs (which goes against Microsoft's best practices). In some cases the Microsoft "MSCTFIME UI" and "IME" window classes stay in memory when the program ends, which stops it unloading. To fix this I modified the core Ubercode library to allow for the IME.
  • There's a new Ubercode Trial Pack which is bursting with improvements So download now and get coding...
  • Added documentation for the Communications functions - these are now a reliable and tested part of Ubercode. They allow serial communications to most types of serial device and there's an example program to experiment with.
  • Updated the documentation regarding calling help files.