Tuesday 1 November 2016

Finding Balance Between Inherent and Instrumental Complexity

One of the most progressive frameworks to come along in a long time is Vuejs (also known as Vue2). It has exploded onto the stage of the JavaScript framework world just when there has been a lot of talk about a phenomena called "JavaScript Fatigue", read How it feels to learn JavaScript in 2016 to learn more.

The screenshot of the Vuejs component below is elegant and very clean. The component structure is aligned with the W3C Web Component Specification and includes sections for CSS, Template and JavaScript.

In addition to this nice encapsulation the developer is also free to use the CSS pre-processor, template engine and script language they prefer. The build tools don't really care if components built by different developers use the same options or not, it handles them all.



Vuejs is an answer for two overall issues that modern developers wrestle with, inherent complexity and instrumental complexity. Inherent complexity is the degree of engineering naturally required by the innovation you what to achieve, while instrumental complexity is introduced by the tools, framework and process you end up using to achieve your product.

It would be reasonable to not introduce more instrumental complexity than warranted, nothing should slow you down and take your focus off the inherent complexity you want to solve. Striking the balance between these two complexities is what Vuejs has realized.

When compared to other frameworks like Reactjs and Angularjs this certainly seems to be the verdict and can be heard in the many happy reactions to Vuejs from developers in the Twitter sphere. This same essential complexity division is also addressed in Steve Jobs on Process over Content.

It certainly is an exciting time to be a dreamer, innovator and actualizer. It has been my experience that it is paramount to develop the skills necessary to realize your creativity and business, whatever that may be. In this brave new world the developer is king and leads the way forward.



At the same time the speed to realization can move real fast yet seem to take forever. It really depends on what your shooting for, the beach or the stars. Time is elastic and not constant in this way for any worthwhile endeavor. If you have a passion for what you do you'll feel the rush whenever you look back as you keep going.



The past summer has closed the gap in a big way and I continue to catapult on with increased focus. Sandwiched between are many guitar compositions and also some entertaining insights into the state of our planet, courtesy of a colorful palette of philosophy and cosmology on YouTube. Joy to you from us!



Friday 1 January 2016

Time Through the Eyes of an Exponential Entrepreneur

I'm super excited for 2016 and how all things on the development front are accelerating forward at an exponential rate, making bold ambitions possible. The past year has sped by with increasing excitement and I found myself coding and drinking coffee doing what I enjoy most days, actualizing my software product.

Because my product solution is an answer to market demands there is a strong sense of purpose to my engineering and development. All in good humor, I experience a motivation that is somewhat similar to the following clip from the movie Bruce Almighty, where Bruce is answering prayers.



For Christmas my beautiful wife Sandra got me an awesome book called BOLD, which she of course wanted to read first. The book perfectly describes the world as we see it and provides a strategic roadmap to realizing great ambitions in our modern digital age.



To sum up a progressive 2015 and to get this post to you I'll highlight some of the events representing the more monumental pivot points I have navigated. Continual learning has been super important to drive progress forward into the exponential future.



Exponential Devices

The product I'm developing has always been about us humans interacting with computers in natural ways. It is good then to see fantastic new devices come to the market to facilitate such interaction and also increase the potential market share for my product.

Mobile platforms continue to rapidly expand with many more Android devices than iOS devices and it is also very good to see Apple finally release the iPad Pro, which features a natural hand held pen-cil. I'm sure more tablets with pens from other vendors will follow suit.

Then there is HoloLens, a mind blowing device from Microsoft that is going to radically change the way we interact with computers within our everyday environments. The HoloLens is a smart blend of Virtual and Augmented Reality that is super practical for many industries.

Exponential Apps

The product I'm developing is aimed at both the mass and professional markets so it will be deployed to as many target devices as possible. This is made much easier by new tools like React Native from Facebook and Electron from Github. Using only one codebase we are now able to deliver products to all the leading mobile and desktop platforms.

It's a well known fact that the greater portion of apps out there are useless and that users download and forget them in most cases. Quality apps are the next wave and having the means to have them quickly updated and authenticated is ultra important.

The growth of technology is in the throes of outpacing the limiting app-store model of business. Strong web standards together with a fully reactive framework like Cycle.js plus robust client and server interaction has made this possible. For further information on this important turning point read, The App-ocalypse: Can Web standards make mobile apps obsolete?

Exponential Coding

The product I'm developing requires the best foundation. It has been great to see ES6 arrive as the next very robust version of JavaScript. Also, the app frameworks, functional libraries and buzzwords have been churning out at a ridiculous rate. This rate of change is causing developer fatigue and frustration throughout the industry and after the noise is cleared there are only a few novel innovations that truly help the developer.



One paradigm that is here to stay is Reactive Programming. This is simply the realization that the user interface is the product of data, expressed as UI=ƒ(data). This has become popularized by Facebook's React although the idea behind it is similar to how spreadsheets have always worked, where as the state of data changes it is immediately reflected.

The more important paradigm to emerge is Functional Programming. This is a strict programming discipline where functions are expected to be pure, meaning that given the same inputs they will always return the same output without introducing side-effects.

There are many important implications of this and it is very good that this sound mathematical approach is finding it's way out of university labs and languages like Haskell to modern day JavaScript.

Next, these two paradigms have been brought together in a revolutionary approach to programming called Functional Reactive Programming (FRP). This new way of engineering and developing code is replacing long established practices like Object-Oriented Programming (OOP) or in the very least moving in as an equal part of the way development is done.

FRP also facilitates an all around better methodology of development than some of the practices that have stood in it's absence, for an enlightening experience watch the following video.



The leading FRP solution is ReactiveX, which was started and open sourced by Microsoft. RxJS is the JavaScript version of ReactiveX and it is now being adopted as an integral part by all the major frameworks, including: Angular2, React, Ember and to the greatest extent by Cycle. RxJS conforms to the Observable protocol that will soon become part of the ES7 version of JavaScript.

To complete the foundation for modern FRP apps on the backend there is Firebase, the Google service that acts as a FRP collaborative database in the cloud. Firebase provides robust security, authentication, storage and collaboration making it the premier solution for a product like ours that needs to scale rapidly across all devices.

Living the Dream

Having all this exponential growth across the internet, device, app, and coding spaces gets us excited and ignited. While we work like busy elves to ready our product we also had a great camping holiday this past summer and Sandra has enjoyed playing in a soccer league, singing in a classical choir and keeping me fed with great home cooking.

To off load after the days of coding I very much enjoy the physicality of playing my guitar, having a good neo-classical shred workout harmonizes the senses. Music is an awesome thing and we are happy to have it permeate our lives. We also know that living the dream can be tough at times but the outcome will be exponentia!



Monday 22 December 2014

Marking a Season of Accomplishments and Vigilant Virtuosity

This Christmas is the one to be remembered. Its been a thrilling year in the making with relentless focus on the production of Virtuoso over the summer and fall. I'm very happy to say that some of the more time consuming aspects of music notation are complete. We now have an extensive notation symbol font suitable for diverse scores and our API for font loading, glyph drawing, morphing and metrics is fantastic. For sound we have the amazing Web Audio API, which is having its first international conference in Paris.



My dream, vision and mission has always been to marry a graphic musical score with uninhibited interaction and immediate reaction. A key component to making this happen is our indexer module, which watches on its own concurrent thread behind the score surface for every move the composer makes and generates the result of all live editing. These facilities coupled with our exchangeable view system allows Virtuoso to render its output using WebGL or any other graphic technology.

These graphic solutions form the client side backdrop of Virtuoso. With this backdrop in place the curtain can lift for the real magic of Virtuoso to take the stage. As a metaphor we can say that the backdrop is the road or race track and the real magic is the Lamborghini to be driven on that road. The real magic is the front-end of Virtuoso, where the tasks and aspects of music composition are engineered into productive tools that facilitate the flow of realtime thought to medium.

Our mandate to turn anyone using a mobile device into a prolific composer is then on the immediate horizon. Given our breakthrough inventions and the work to date plus the support of fabulous and enduring technologies the future is now. Its extremely exciting to consider what this means when the growth of the internet and proliferation of mobile devices continue to sky rocket. Virtuoso is a jetpack for this rocket that will make the internet and social collaboration yet more impactful.



With Virtuoso being a new kind of musical instrument, that has built-in social media and collaboration facilities, it is possible to also see the formation of a whole new kind of online classroom and university for music formed around it. Comparatively, it has always been easy to see that Virtuoso is a game changer, while it is an enabling disruptive force that liberates the many it might also bring an initial discomfort and reality check for those in the culturally established roles that music has settled into over the centuries. Alas, the times are a-changin'.

Speaking of change, I was surprised to read that some developers are ditching their trusty retina MacBook for the new Surface Pro 3 from Microsoft. Looking at its specs and feeling the lug of my Macbook carrying backpack daily I think I want one too. Here we use a recent iPad and the Samsung Note II as deployment test platforms and having the well received Surface Pro 3 with its Windows 8 OS would round off the workbench nicely. It would be perfect for constant on the go development and sessions at Starbucks, the shot below has Ulysses, myself and Graeme on deck.



While developing with gusto its always fun to kick-out the jams with my guitar at the end of the day, its my version of a hot spa. The tunes and licks just keep leaping of the fretboard and I do my best to record them as they roll in. There's quite a collection of tunes so at some point I plan to work them into musical projects of their own. The whole Singularity concept on technological as well as metaphysical levels interests me and I've been thinking about doing a series of albums based on the theme.

Before I close the post I would like to say how tremendous it is to finally see technology stabilizing during these past months. When Steve Jobs pulled the plug on Java and Flash in 2010 the dominos started to topple throughout many industries. Not only have mobile devices flourished, JavaScript has also evolved into ES6 and now Firebase has joined forces with Google. From 2011 to 2014 has been an unprecedented time for web related development and 2014 bleeding into 2015 gets us to 60 FPS and full on Hybrid Apps. Remember, API-First and we'll see you in the new year!

Monday 31 March 2014

Heart of Gold : Manitoba's Vibrant Music Making Scene

The 2014 JUNO Awards were celebrated in our very musical city this past week. It was a true delight to meet Owen Clark at a session by music historian John Einarson, where we were introduced to a future Manitoba Music Museum. I first met Owen at a MIDI workshop he organized a number of years ago. It's incredible how music technology has grown since the heyday of the MIDI cable.

Owen has published Musical Ghosts, Manitoba's Jazz & Dance Bands, 1914-1966, a narrative on the hot jazz and cool blues in our city's history. Below shows us both beaming about the future of music!



The development of my music composition instrument is progressing rapidly these days. Looking back it was certainly a challenging task to turn such a dream into reality. My expectation of what music software should be able to do has always been high. Fortunately, I have also been blessed with an abundance of energy and the freedom to make it happen.
"Everything that is really great and inspiring is created by the individual who can labor in freedom." — Albert Einstein



My amazing wife also graduated from her Market Management course this past month, that's us below at the graduation. If being an accomplished classical pianist is not enough, she has great ambitions and also just finished further Statistics and Project Management courses. Next, she is pursing her studies and mastery of Digital Marketing, making all her studies practical by applying the full toolbelt of internet marketing techniques.



Wednesday 25 December 2013

Bright Christmas Momments and Merry State Transitions

Christmas is here and our hearts are glowing. It has been real journey getting to this point in time and as the New Year approaches, we are poised for action. Between family and friend reunions my life partner Sandra and I captured a special moment, while walking at the Legislature in our neighborhood backyard on Christmas Eve.

As usual there is a Starbucks coffee in hand. I'd like to Shout Out a very special thanks to the great folks that make Starbucks what it is. They serve good coffee and offer a friendly cosmopolitan atmosphere that serves as a secondary office and workspace. It is also the place where Sandra and I first met.

The parliament building in the background has a lot of history and mystery in its architecture, this is a deep rabbit hole. At this time of year the grounds are lit up bright, which makes it a nice place to take a hearty Christmas walk.

Being situated downtown affords us an oasis of beautiful amenities. We are within minutes of our gym and everything else to accommodate our venture. While I focus on software development, Sandra has finished her Marketing Management Program and is starting further Statistics and Market Research courses in the New Year.



As we each continue to transition our way through the infinite-state machine called life, Sandra and I wish all good people a most joyous season and a New Year filled with creative expression.

Sunday 22 December 2013

Myo Armband is Au Naturel Wearable Computing

We are on the threshold of a whole new way of interacting with computers and by extension anything that communicates using the Bluetooth wireless protocol. Fellow Canadians Thalmic Labs have taken gesture interaction to the Nth and are releasing the groundbreaking Myo Gesture Control Armband, early in the new year.

The armband translates the motions of the arm and the tiny-electrical signals from moving muscles into computer commands. The result is a seamless fusion of human computer interaction and a truly magical sense of control. The Myo could render key tools of the computer age — keyboard, mouse and touch-screen — obsolete and usher in a new era in computing.



Having arrived at such a wonderful moment in time, I can not help but reflect back on some of the earlier efforts at achieving a wearable controller. Below are just a few snapshots depicting how far we have come.

The unwieldy Mattel Power Glove from 1989

An incrementally sexier design from the 1990s

The full body armour Ironman solution!

There are also more recent USB based gesture controllers like the Leap Motion available, however, they are not wireless or mobile. Human expression is our innate gift, our hands are our natural tools and computers need to conform to us, so lets not get this backwards. The future certainly looks like it will blast-off, so have fun!

Tuesday 17 December 2013

Development, APIs, Tools and Exponential Growth

The past months have been extremely productive. The world is experiencing a renaissance in the software development arena and the weekly industry newsletters are pouring in with resources, like never before. The mobile revolution is heralding a planet wide disruptive change and we are thrilled!

Consequently, we have been focused, putting our energy into developing the product code. No longer is it so necessary to bank our innovations for the future, due to less than satisfactory technology. Instead, with a well-crafted architecture that is maintainable and easily extendable we are on path, at the high end of an exponential curve, yielding more results, faster.
"Well-structured software is delivered in half the time, at half the cost, with 8x less bugs." — US Air Force study
"Programmers are the wizards of our age. We weave the fabric of the modern society, tell the stories and bring dreams to life." — Geert Bevin, keynote speaker at GeekOut 2013
Our industry as a whole is in a concerted effort, to make hybrid apps become as interactively and graphically performant as the native iOS and Android options, which are so narrowly focused, expensive and redundantly time and skill sucking. We are rejoicing, now that we are able to deliver our products to all platforms and screens.

Wearable computing is also looking awesome, with new gesture controllers available that are turning out to be just what the doctor ordered. Yes, the new musician using our product will be conducting and realizing their imaginations in full immersive and natural form, everyone will be able to experience the rush of letting their heart sing.


"Our Hearts Sing. Technology alone is not enough. [It is] technology married with liberal arts, married with the humanities, that yields us the result that makes our hearts sing." — Steve Jobs