Brought to you by LEAP™ 5 and Lasso 9

Latest from the blog

Using PerfectLib with macOS apps

While developing a macOS app that needed a lot of file & directory access, as well as a number of curl and command line operations, it struck me that integrating the Perfect framework in my app was a no-brainer idea... this is how.

Rosetta Code - Language Popularity

A challenge was issued recently by Sean Stephens, LassoSoft Inc.'s CEO... and it boils down to this: the person who amasses the most meaninful contribution to Lasso on Rosetta Code in the month of November 2013 will win cold hard cash.

I couldn't resist :)

Measuring performance: Timing your code

Being concerned for the performance of your code should be important to you... but if you're not using a dedicated profiler, getting metrics isn't something well understood. 

Here are some basic techniques to get you equipped with the tools to improve the responiveness of your code.

Creating Client-Side API's

The strength of the Net isn't just what you put on it - it's also how you interact with the world around you. 

Dealing with web_request->param in Lasso 9

Lasso 9's new "web_request->param" behaves quite differently to action_param found in previous versions of Lasso. It's lower-level, and a little more verbose, but significantly faster - which makes it an obvious tool to master.

Effective Error Control

Appropriate error handling is essential to any code - and yet it's often included as an afterthought to systems large and small.

I'm going to cover some basic Lasso 9 techniques for handling errors in this article that you can easily add to existing code as well as use as you construct your systems from the ground up.

Making JSON Simple

JSON is the communications backbone of the modern data-responsive web. It is actually quite simple - and yet I've been surprised how many devs are daunted by it.

So lets demystify it and make it simple :)

Conquering Internet Explorer Double Cookie Madness

A while ago my company experienced a weird problem where users were logging into a system we'd built for a client and yet -inexplicibly- then told them they could not view their content because they were not logged in.

The common theme: every affected user was using Internet Explorer, but that wasn't the whole story.

Creating reusable code with Lasso 9 Traits

When Kyle Jessup first introduced to me the concepts of Traits in Lasso 9, I thought "cool, that will be really useful", then promptly forgot about the feature amongst all the other awesome new things in Lasso 9. Many months later I was getting tired of adding a delete method to every object on a sizable project, and I remembered traits!

Ever since, I've been writing less and less code to do the same things - face it, every data object has a common set of things it needs to do, and while this is not going to apply to everything some are easy to abstract. 

Protecting Lasso and JavaScript from one another

I got asked recently about how to use Lasso and JavaScript together, and while it's a technique we've been coping with for years it's one of those things we just assume people know and therefore it's not "out there" in the public domain as to how.

Lasso can use square brackets for including code in HTML, and yet JavaScript uses square brackets for arrays. 

Watching real-time server bandwidth, an exercise in the awesomeness of Open Source

This week we had a significant escalation in traffic on a particular server. It was not unexpected, however we had changed infrastructure between peak periods and I was keen to see how the new network and virtual machine were coping under the load.

It's an easy thing to do to monitor the processing load on a CentOS server in real time, but without access to Webmin or MRTG I was suddenly without a means to easily see what was happening at the TCP/IP connection level.

Google to the rescue with tcptrack...

Twitter, jQuery and LEAP™ 5

Today I was reminded again about the quiet revolution for the web - jQuery. 

A lot of you might not realize, but so much of the "new web experience" that has made the net so much more accessible for Jane & Joe Public has come about by the widespread adoption of better JavaScript techniques and libraries.

I was reminded because this morning I was looking at the page load times of this blog, and realized it was not set to cache the twitter feed on the right, so it was getting it fresh every time... server-side. That means the server is doing all the work *before* giving the browser the page.

So rather than just turn on the cache, I wanted to add an option to the plugin to get the twitter feed after the page loads.

And here's the beauty of jQuery.

You don't have to reinvent the wheel.


A friend got on my case recently about not having a blog. Well, I did have one, but it was an experimental one... ultimately it faded into dust as all neglected experiments do.

So here we are again, watching Star Wars "The Empire Strikes back" and writing this first post on my new blog.