ARGen Has a New Home with Tim Parnell

When you work on a product long enough and depend on it every day you grow attached to it.  It’s been years since I’ve done a normal Xojo database application because ActiveRecord makes things so much faster and safer.  The feedback we’ve received has almost been universally positive.

So when I decided to take a full-time position this spring I started shopping for a new home for ActiveRecord and ARGen because so many Xojo developers depend on it.  Today, I’m announcing that ARGen is now owned and maintained by Strawberry Software  

This is great news for a variety of reasons.  First, Tim Parnell is an excellent developer and I know he’ll do an excellent job maintaining and improving the product.  He’s already shared with me some of things he plans on doing with ARGen and I’m looking forward to using it.  Second, Tim worked for BKeeney Software for years and was one of the developers that worked on ARGen so he’s intimately familiar with it already.  He’s used ARGen in consulting projects for us and is now a Xojo consultant on his own so you can be assured it will continue to be maintained and grow with Xojo.

What does this mean for ARGen users?  You’ll get an email from Strawberry Software in the next couple of days for a new download.  You’ll be able to use your existing license code and you’ll be on their license system.  Then wait for future updates.  With the updates I know about I think it will be worth the wait.

I want to thank everyone that was an ARGen user over the years.  It makes me happy that we were able to make a difference in many Xojo developers lives.

So go on over to Strawberry Software’s website and check out ARGen and Tim’s other fine pieces of software for Xojo developers.

Happy coding!

Xojo Design Mistakes Video

Xojo released my 2019 Xojo Developer Conference video on Xojo Design Mistakes on YouTube a few weeks ago at

I liked my alternate title better: Thankfully time travel hasn’t been invented otherwise my future self might come back to murder me because of stupid decisions.

Based on feedback many people found the video to be useful. Hopefully you do too.

The reason I brought this up today is that I’ve spent the last week working on optimizing several large Xojo projects. I’ve identified several areas to look at and if I think it’s it might be worthwhile to look at (after using Instruments and Profiling) I will create a small sample project proving if I can make it more efficient. There are several things that I believed to be true that are not. Here is my initial list:

NthField is Slow: It’s not fast and I wouldn’t recommend using it in a huge loop but it’s not *that* bad. Converting a project that uses it a lot to use Split and then bounds checking just isn’t worth the overhead and hassle of screwing up the code. Plus, it’s one-based whereas Split creates a zero-based array.

String Concatenation is Slow: Again, it’s not exactly speedy in loops but we’re talking ticks if the strings are relatively short. If you use something like this:

dim someString as string = "First line " + _
" second line" + _
" third line"

it is way faster than:
dim someString as string = "First line "
someString = someString + " second line"
someString = someString + " third line"

MBS Functions are always faster: Sometimes MBS *is* faster but not always. Things like picture saving is actually pretty efficient in Xojo. Directory scanning *is* faster using MBS but only in classic API. If you’re using API 2.0 use the FolderItem iterator in a directory and it’s as fast as FileListMBS.

Anyway, that’s a quick and dirty summary of things I’ve learned. Some times it’s good to challenge your assumptions. Happy coding!