Skip to content

Xojo Blog Posts

Compilers 103 – Semantic Analyzer

The Semantic Analyzer is the real heart of the compiler. Its job is to validate code and figure out what the code actually means. Essentially it validates that the code is semantically correct.

This is the third post in our Compiler series. Previous posts:

Comments closed

THIS IS NOT A DRILL: Poor Interface Design and its Potentially Dangerous Impact

As most of you know, this past Saturday morning, the people of Hawaii got a shocking notification on their smartphones warning of a incoming ballistic missile and that this warning was not a drill. I can only imagine the fear that raced through the minds of more than a million people. This warning, as well all now know, turned out to be a false alarm accidentally set off by a state employee who was attempting to perform an internal test.

Comments closed

Control Subclass Constructors

A constructor is a special method that is used to initialize a class. They are very handy, but when you use them with control subclasses you have to be aware of how a control’s properties are initialized. Perhaps you’ve run into this situation:

“I have a constructor on my control and the values that I set in the constructor don’t stick.”

Comments closed

Do you need an iMac Pro for Development?

Of course you want an iMac Pro! But do you really need one for your development work? Most of the iMac Pro videos and reviews seem to focus on video and audio editing, which are certainly tasks that make use of the many cores that are available (8-18).

But software development is also a Pro task. What benefits does an iMac Pro bring to a software developer?

Typically most people will opt for a computer that probably has four cores such as found in the i5 and i7 series. These are used in the popular Macbook Pro and iMac models, for example. Four cores sure sounds like a lot so why would a developer need more?

Comments closed

WinAPILib on GitHub

Many years ago, the Window Functionality Suite (WFS) library was created by Aaron Ballman. This library was a collection of Win32 Declares (and a few other things) for accessing Windows-specific functionality that was not directly provided by the Xojo framework.

WFS is still available on GitHub, but it has languished over the years. For example, it has lots of legacy code in it for older versions of Windows that is no longer needed since Xojo only supports Windows 7 and later. WFS is also not really compatible with 64-bit projects since the Declares mostly assume 32-bit or bust.

To that end, I’ve started a new open-source project called WinAPILib that is now available on GitHub.

Comments closed

Make Your Own Classes Iterables

In programming, iterators are the mechanisms that allow us to walk all the members of a collection without needing to know in advance how many of them compose such a collection; and for that we can find in Xojo the commands For Each… Next. What are the main differences in comparison to the conventional For… Next?

The first difference is that with For Each… Next we can’t assume that we are iterating the members of the collection in order, as it is the case when using the variable of the conventional For… Next as the Index in order to access a known member of the collection. The second difference is that the iterator will be invalid when the iterated elements are modified, or when we modify the amount of elements in the collection during the iteration process.

By default in Xojo, there are a couple of collections that are iterable: the already mentioned Arrays and also Dictionaries and FolderItem.Children. Wouldn’t it be great to extend this feature so we can add this behaviour to our own classes making them more flexible? The key to making this happen is using the two Class Interfaces already included in Xojo: Iterator and Iterable.

Comments closed