Skip to content

Category: Technology

Compilers 106 – Optimizer

An optimizer “improves” the IR, but that can mean a lot of different things. Improve could mean “run faster” or “use less memory”. Or perhaps you want to optimize for memory access time because CPUs are so fast it is sometimes more efficient to repeatedly calculate something rather than calculate it once, store it and access it later.

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

Comments closed

We’ve Done This Before: A Net Neutrality Solution

As I’ve written before, the FCC’s claim that rolling back Net Neutrality will result in more competition (which presumably will be better for consumers) is flawed because of the cost of the last mile. What that means, in summary, is that over the last 30 years various cable and telecom companies have bared the cost of laying all the cable/wire necessary to bring internet service to most of the homes and businesses in US cities. They did this because city governments were more than willing to trade the enormous cost of creating a citywide network for the provider having (in most cases) an effective monopoly on providing internet access.

This isn’t the first time a service or utility has evolved in this manner in the United States. The railroads, the telegraph and later telephone service were all networks that were developed in much the same way.

Comments closed

Avoiding False-Positive Virus Detection in Windows Apps

Viruses continue to be a big problem on Windows. As a result, anti-virus software can be a bit over-zealous about detecting what it believes to be apps that have viruses embedded within them. We have had reports over the years that apps made with Xojo are sometimes falsely identified as being infected with a virus. This sometimes occurs because the 32-bit Xojo compiler puts executable code in a location where the anti-virus software doesn’t expect to find it. We’ve seen this occur even when users are debugging apps from the IDE. Fortunately in that case, there’s a fairly easy solution.

Comments closed

Compilers 105 – Back End Overview

Once the front end has done its work its time for the back end components to take over.

This is the fifth in our compiler series and the first on the back end. We covered the parts of the compiler that are called the front end in these posts:

Comments closed

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

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

Xojo and Community Growth in 2017

2017 has been a good year for Xojo! We hit some bumps but we’re ending the year with the much-awaited Xojo 64-bit IDE released in Xojo 2017r3.
Though we didn’t have a XDC in 2017, we’re gearing up for XDC 2018 in Denver in April. This is the longest between conferences in many years and we’re seeing an increase in early registrations. If you are planning on attending, please register soon. We have sold out before!
Comments closed