Sign in

Software dev, camper, baseball player; an American in Tallinn, a long way from Terre Haute

In the previous articles of this series, I’ve demonstrated a method of integrating Django templates and Vue in such a way that preserves the strengths of both frontend frameworks.

Since those articles were published, Vue3 has been released, bringing a variety of improvements and a list of breaking changes. With these numerous changes, the code examples from the prior articles in this series no longer work directly with Vue3. But happily, with only a few isolated changes, the same general approach works well with Vue3 and, moreover, the code becomes, in my opinion, simpler. In fact, we need not alter…


Flutter’s built-in ColorTween is the standard way to animate a color transition between two colors. With ColorTween we can lerp (linearly interpolate) between two colors along the lifetime of a controller's animation.

But how can we smoothly transition between multiple colors?

This article discusses three methods, each which may suit different situations.

Tween Sequence Approach

First, we recognize that transitioning between multiple colors is equivalent to transitioning between pairs of colors in sequence. For example, the transition of Red → Blue → Green → Yellow → Red is simply the seamless succession of transitions:

* Red → Blue
* Blue → Green
* Green →…


Albert Einstein discovered in 1905 the curious phenomenon of the mass deficit, which is that the mass of a molecule is less than the sum of the masses of its constituent atoms. In other words, he found that when two atoms are combined, the new molecule weighs less than the total weight of the original two atoms.

Now, Einstein knew that nothing was truly lost and the mass deficit could be explained by the interchangeability of mass and energy described by his famous equation E=mc².

But how often do we attempt to combine software frameworks only to find that the…


Continued from Part 1 of this series. See also Part 3 of this series which introduces lazy loading of Vue components for increased performance.

In my previous article I demonstrated how to use Vue’s Multi-Page App (MPA) support to embed Vue Single File Components into a Django template, allowing developers to easily commingle usage of Django templates and Vue within an application.

The article implemented a very simple example. Since writing the article, I’ve received several questions regarding information sharing from Django to Vue and among Vue components on a single page.

In this article, I’ll explain how Vuex can…


Django and Vue both have unique front-end strengths. Django’s context-driven template views offer rapid development of pages directly from back-end model content. Vue’s modern reactive components provide powerful tools for building complex UIs within the rich Javascript ecosystem.

However, typical solutions to integrating Django and Vue forgo much of the strengths of one lieu of the other. For example, a common approach is to use Django Rest Framework as back-end and writing the entire front-end in Vue, making it difficult to utilize Django templates in places it could be expedient. …


One Christmas, my partner and I suddenly decided we would embark on a new adventure: a bike tour across the breadth of Estonia. We knew almost nothing about bike touring. We didn’t even own bikes. So we educated our minds by reading blogs and listening to podcasts while we prepared our bodies with training rides and gym time. Eight months later, we were on the road for a 10-day 700-kilometer biking and camping adventure across Estonia, a journey that was memorable and fulfilling beyond our expectations. …


While developing a React Native app, a tool I found very useful was Storybook, which allows developers to write small isolated “stories” involving widgets. These stories, especially when teamed with a hot deploy mechanism, allows quick iteration of widget design, and also promotes improved reusability and testability of your widgets.

Now I’m developing for Flutter and I sought an analogue to Storybook. The bad news was that I didn’t find one; the great news is that Flutter’s built-in hot reload and tooling support makes rolling your own storyboards simple. …


Hello, my name is Mike, and I developed my first Alexa skill without writing any test cases. With that confession out of the way, I will defend my developer honor to some degree: I did perform testing, but it was a clumsy affair using Amazon’s testing support from withing the Lambda management console. While those tools are good, this process greatly slowed my development cycle, as running tests meant repeatedly deploying my Lambda skill and manually executing test cases.

After my first skill, Estonia One Hundred (source), was certified, I realized I needed a better solution for testing.

Estonia’s 100th birthday Alexa skill: needs some testing!

There are…


Continued from Part 2

This article continues an effort to externalize content assets for a fictitious app. In Part 1 and Part 2, we developed an external HTML content repository and an Angular service to retrieve these assets. But our fictive scenario requires that we include not only external HTML but photo assets as well. In this article, we’ll provide that support in a similar strategy as was done for HTML content.

I’ll demonstrate how, relying on Dart and specifically Dart Angular’s strengths, we can easily automate much of the tedium of dealing with photo assets, including license compliance and…


Continued from Part 1

For the fictive scenario described in the previous article, we built a simple content service that would provide randomized lorem ipsum text to our article application. Now our manager tells us the latest news: the content will now be developed in-house by our company’s ad department, who are non-techy. The copywriters have agreed to author articles in Markdown and commit using GitHub’s web interface, but that’s the extent of their willingness to meet us halfway.

Since we planned ahead so nicely in Part 1 by creating an injectable ContentService, this isn’t a problem. In fact, we…

Mike Hoolehan

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store