While working on an app I found myself in an unexpected situation when a piece of code that had been working fine began to throw an OutOfBoundException
. After a bit of debugging I found that the culprit was the length of an array passed to the AddRow
method of a ListBox instance.
Category: Learning
During his Keynote, Geoff announced the winners of the 2018 Xojo Design Awards, honoring excellence in software design in the following categories: Best Developer Tool, Best Specialty App, Best Consumer App, Best Mobile App, Best Utility App and Best Cross-Platform App.
These apps represent the creativity, flexibility and diversity in the Xojo Community – support this year’s winners and the whole Xojo community by sharing and reviewing their apps on social media and app stores!
This year’s winners are:
Comments closedStarting with Xojo 2018r1, your Xojo apps require the libunwind8 library to be installed on your Raspberry Pi. Here’s how to update your Pi.
Comments closedHere are some tips that will help ensure your Windows apps look and feel their best, with Xojo 2018 Release 1 now that Windows apps now have a more stable and flicker-free UI than ever before.
1 CommentYou can call into Linux APIs to use methods and properties that are not built into the framework by using the Declare command. To create a Declare statement you first need to track down the API you want to use using Linux documentation.
Comments closedThe linker is not technically part of the compiler, but it is needed to make a completed app. The purpose of the linker is to combine (link) all the various bits and pieces of machine code created by the compiler along with the necessary information to create a runnable app for the OS.
This is the ninth and final post in our Compiler series. Previous posts:
- LLVM Everywhere
- Compilers 101 – Overview and Lexer
- Compilers 102 – Parser
- Compilers 103 – Semantic Analyzer
- Compilers 104 – IR Generation
- Compilers 105 – Back End Overview
- Compilers 106 – Optimizer
- Compilers 107 – Optimizer Loop Unrolling
- Compilers 108 – Code Generation
Code generation is one of the last steps of the compiler. This is where the compiler emits actual machine code for the IR that was previously created.
This is the eighth post in our Compiler series. Other posts:
- LLVM Everywhere
- Compilers 101 – Overview and Lexer
- Compilers 102 – Parser
- Compilers 103 – Semantic Analyzer
- Compilers 104 – IR Generation
- Compilers 105 – Back End Overview
- Compilers 106 – Optimizer
- Compilers 107 – Optimizer Loop Unrolling
Object Oriented Programming (OOP) puts in our hands the ability to create apps in a flexible and powerful way. Xojo embraces that philosophy in the Xojo language itself, allowing us to implement code in a flexible way for reuse, extension and maintainability that reduces the development cycles. One of these language tools is, in fact, common in other low level programming languages: Casting or type conversion. If you are interested in this (and you should be), continue reading and discover what it is, why you should be interested in it and how can you use it in your next Xojo app!
Comments closedThe last post covered optimization in general. In this post you’ll look at a specific optimization called “loop unrolling”.
This is the seventh post in our Compiler series. Other posts:
- LLVM Everywhere
- Compilers 101 – Overview and Lexer
- Compilers 102 – Parser
- Compilers 103 – Semantic Analyzer
- Compilers 104 – IR Generation
- Compilers 105 – Back End Overview
- Compilers 106 – Optimizer
Like his father, my teenage son loves video games. The single player games where you take a character through some kind of adventure are the ones I like most. These usually have a fair number of AI-controlled enemies that must be defeated. My son, on the other hand, prefers to play against other human beings. When I asked him why, he said, “The AIs are so predictable.” To prove this to me, he took over when I was having trouble defeating a particularly difficult enemy and quickly dispatched him, narrating his strategy as he went and barely being scratched in the process. My son is an elite player compared to me partially because he puts a lot more time into it than I do but also because he loves video games far more than I do.
Just as people have varying levels of skill and interest in video games, the same is true of app development. There are those that are happy to devote enormous amounts of time to learning everything they possibly can. They don’t care how long it takes. They want to have control over everything and are willing to do whatever is necessary to make that happen. I’m so glad those people exist because there’s a lot of great software that might not otherwise have been created without them. I’m not one of those people. I really want to focus mostly on what makes my application unique, abstracted from the nitty-gritty of app development.
That’s why I have always been attracted to tools like Xojo. I am a citizen developer. Of all the job titles I have had over the years, all of them in tech, none have ever included words like programmer or engineer. I do some software development but it’s just a part of my job. It’s something I do to help me in my work or to help my co-workers.
Comments closed