Ubercode News Archive (2011)



Working on v1.3 release (27 Nov 2011)

  • The v1.3 full release is almost ready. I spent the last month doing more testing and adding some last minute improvements. Also I've been working on a new version of the Language Reference Manual - this is a detailed reference manual with lots of details of Ubercode.
  • I made some improvements to the website. Now all filenames consistently use lower case and the Ubercode PAD file also uses lower case. This avoids problems when web servers use case sensitive filenames.
  • New Trial Pack. There's a new trial pack available so you can try the latest improvements.

More work on Generic Types (8 Oct 2011)

  • I did more work on the Generic Types, wrote some test programs for them and fixed a few minor bugs. Generic types are very useful for dealing with external data. For example if you have a data file (or SQL Server table or view) you declare a generic table, then initialize and load it from the data source. Your program doesn't need to know the structure of the data in advance.
  • The Generic Types are now finished and working properly, and I can get on with other tasks such as the new Ubercode release.
  • There are more example programs. I added an example "msoffice2" which shows how to call Microsoft Outlook to send email, and example "web4" which uses URLDownloadToFile to download a file from the internet. Use File - Open Examples to access these examples from the Ubercode developer environment.
  • There's a new Trial Pack is available for download with the latest improvements and bug fixes. Try it now and give me some feedback!

Generic Types for the New Release (29 Aug 2011)

  • As part of the developments for the new release, I added Generic Types to the language. These are for declaring records, arrays etc where the actual structure is not known until the program runs. These are useful for the SQL Server integration, as they allow SQL Server data of different types to be loaded at runtime.
  • Here's a simple example of how to declare a generic array. After declaring the array, some strings are copied into it which makes it into an array of strings:
      var genArray : array[*:*]
      ...
      genArray <- {"Monday", "Tuesday", "Wednesday"}
      
    
  • In the next example you declare a generic record, then SqlLookupRow returns a single record from the Employees table in the database. The record will have the columns and values defined by the database record. This technique is very useful, because the program will still work if the database structure changes:
      var genRecord : record
          cx : SqlConnection
      ...
      call SqlOpen(SqlDefaultConnection(), cx)
      genRecord <- SqlLookupRow(cx, "*", "Employees", "id=45")
      call SqlClose(cx)
      
    
  • Generic types are not limited to records and arrays. You can also use them for lists and tables. Tables integrate well with SQL server as you can query a database and return tabular data to Ubercode for more processing.
  • These new types are seamlessly integrated into Ubercode. They are ready for use now, and if your existing code doesn't need them it will work fine without them.
  • The latest v1.3 Trial Pack is available for download - try it now and test out the new features!

SQL Server Integration (5 July 2011)

  • I'm still working on Data Sources and Round tripping. This is taking longer than planned as I'm allowing SQL Server tables and views, in addition to local file data sources. When complete, the Developer Environment will have new / improved commands:
  • Tools - Explore Data Source Choose a local data file or SQL Server table or view and review its structure.
  • Program - Add Data Source Choose a local data file or SQL Server table or view. Review the fields and decide which you want to be able to modify, and auto generate a class that browses the data source.
  • Project window - New Data Source Choose a data file type (DBF, CSV, XML) or a SQL Server table or view. Choose the fields in the data source and automatically create it. Also generate a class that browses the data.
  • Project window - Edit Data Source Re-opens an existing data source and allows the fields to be changed. It then re-creates the class that browses the data, and keeps the existing data in the file.
  • You can download the latest v1.3 Trial Pack and experiment with the new data sources.

More about the New Release (14 May 2011)

  • Data Sources. As part of the v1.3 release. I'm adding a feature that lets you create and add Data Sources as part of an Ubercode app. When you edit Ubercode apps the project editor has a new button allowing you to create a Data Source:

    Create data file

    You can choose XML, Dbase / Xbase format, or CSV or Tab separated formats. After creating the new file you can edit the fields:

    Modify fields in data file

    This window lets you add and delete fields, rearrange them, or change the names and data types. When you're happy click OK and Ubercode creates the data file and a program class that reads and writes from the file.
  • Round tripping. This means after creating the Data Source and the class, you can go back into it and modify the database structure. If you confirm the changes, the Data Source is re-structured and the class file is modified. This is the bit I'm working on now.
  • Local Data Sources. When this is completed (as part of v1.3) Ubercode programs can use local Data Sources, and these will be included when you install Ubercode apps on another computer. You don't need to set up MSXML or ODBC on the destination computer as the database drivers are built in to Ubercode.
  • Existing Data Sources. If you already have Data Sources (XML, DBF, CSV or tab separated) you can import these into Ubercode apps. Just use the Program - Add Data Source command in the Ubercode Developer Environment and the database class is automatically generated.
  • Free trial. You can download the latest v1.3 Trial Pack and try out the database code now.

New release (2 April 2011)

  • New version on its way. I've done a lot more more work on version 1.3 and a beta copy of v1.3 is available for licenced customers. New users can download the latest v1.3 Trial Pack and try the new improvements.
  • SetWindowState is documented. There's a wrapper for the Windows API SetWindowState function - this allows you to set windows in your program to a minimized, maximized or restored state. This is useful for startup situations where you want the main window to be shown minimized while a splash screen is dispalyed. When the splash screen is closed you can re-show the main window in a 'restored' state.
  • PostMessage. Also there's a wrapper for the PostMessage function. This lets you send custom messages to any other window in the system.
  • App Event. This is a new Ubercode event, and when combined with PostMessage it allows custom event handling in a window function. For example PostMessage and the App Event can be used for initializing a modal window. When the modal window loads, it's not yet visible which causes a problem if the window spends some time initializing itself. To fix this, PostMessage sends the App Event to the window, then the window initializes itself under the App event when it's visible.
  • LoadPicture / SavePicture and icons. These two functions have been enhanced to work with the Windows Icon format (.ico files). You can load an icon into a bitmap variable, or any control object with the Picture property. You can also save the Picture property to an ico file.
  • Support for icons. This support for Icons means you could load a BMP file and save it in ICO format, or you could use Ubercode as the basis of an easy to use icon editor. You can also do interesting things like create a drawing area 48 x 48 pixels, draw a smaller icon in the area, add some text to the area, then save it as an icon.

Integrated Installer (29 January 2011)

  • Integrated Installer. Ubercode has an integrated installer which means when your program is complete, you can create a fully working Windows installer at the click of a button. Just click the button (circled in red below) and Ubercode does the rest:

    One Click Installer

    This is unique to Ubercode - other programming environments require you to find out all the files you need to install, to obtain an installer and to write an installer script. Ubercode does all that for you, saving you lots of time.
  • SQL Server Developer Edition. Ubercode already works with SQL Server 2005 / 2008 Express - I also did some tests with the Developer Edition and made sure everything works properly. You can now use Ubercode to connect to any edition of SQL Server (2000 / 2005 / 2008).
  • SQL Server Examples. Ubercode includes more examples programs using SQL Server, including an example that shows how to create a database, create tables in the database, run some queries and drop the database. You can use this to get started on your own database projects.
  • Program Properties. There is a new Program Properties window, which allows you to customize the Product name, Program description, and other information. These details are shown in the installer, and when you wave the mouse over the EXE file in Windows Explorer.
  • New Trial Pack. There's a new download available now so you can try the latest improvements. You can start programming within 5 minutes, and you don't have to register or fill in any forms.