1991-2016—25 years of Art & Logic

Everything, Including the Sync!

Everything, Including the Sync!

A couple of years ago, I developed an ‘operational support system’ for anaesthesiologists
working in the OR. Other than the main goal of enhancing Patient Safety by helping the
docs remember to do all the things they need to do before, during and after a surgery, the
requirements for the product were quite vague. This wasn’t particularly surprising to me
as this concept, though not new, had never been implemented as a computer system that could
be used in operating rooms and while certainly ‘technical’ to some degree, my customer was
not versed in software development and really didn’t have many expectations beyond the
implementation of his core concept. Anyway, with that comforting level of detail, I set out
to design a system that would both meet the main goal while at the same time being able to
accommodate the inevitable “oh yeah, we should be able to do, too – that won’t take
too long, will it?”.


Creating Consumer Apps: What you need to know

Creating Consumer Apps: What you need to know

The overwhelming popularity of mobile apps has contributed to many success stories for a lot of companies, but that popularity has also caused a saturation of the market as many app developers try to cash in on the trend. Back in 2007, when Apple launched the iOS platform (it was called iPhone SDK at that time ), the world first became acquainted with the mobile app.  In those days, virtually any app that made it to Apple’s App Store had a decent chance of being perused and downloaded. Today, businesses creating a new app face a daunting amount of competition in the App Store as well as in Google Play and on other app marketplaces such as Amazon. If you’re thinking about developing an app, or are already invested in the process, here are a few considerations that might help your app stand out and become successful. (more…)

Radically Cross Platform: Scripting with Kablooie

This Dog is Turing Complete.

This Dog is Turing Complete. (believekevin on Flickr)

How would you design your own ideal scripting language?  Would you go with a functional language in the LISP family, or with a more procedural style?  Would you offer object oriented organization?  Would large parts of your ideal language be recognizable as C or another common language, or would you “go for broke” with a domain specific language that (probably) only you will be able to read?

One of the fun things about computer science is that people will answer this question in very different ways, and they can all be right.  Almost everything (including your dog) is probably Turing complete.  And since the ultimate goal is accomplishing whatever operations the script is performing, whatever helps you express that well is the right answer, for you.

When implementing my cross platform graphical app engine, a set of characteristics began to crystalize for my ideal scripting language: (more…)

Radically Cross Platform: Memory Management

Desktop vs Mobile

Images under CC by Allison Meier and Chez Eskay

The first post of this series described a choice of technologies and toolsets (based on Xamarin) that allows C# programmers to deploy graphics accelerated apps using OpenGL/DirectX across a radically cross platform spectrum of devices and operating systems.

That’s all fine and good, but it’s not the whole story.  Just because you can build and run your app on a given platform doesn’t mean it’s ready to publish on an app store.  Well, in the case of Windows and Mac x86 desktop apps, maybe it does.  But when you take a code base with beautiful LINQ queries, effortless, strictly-typed data modeling, and world-class garbage collector (GC) expectations – and run them on a wimpy ARM-based mobile device, a funny thing happens.