Focus-Handling Methods for Qt Quick StackViews

On my current project, we’re building the GUI in Qt 5. It’s (mostly) open-source, has some really intriguing platform support, and Qt Quick 2 has a fairly advanced model for both keyboard focus and transitioning focus between widgets just with the keyboard.

When I started work on a spike to prove out some ideas I had about using a Qt Quick StackView to structure the navigation of our app, I still managed to run into some problems with transitioning focus between widgets. Read on for my solution. Read more on Focus-Handling Methods for Qt Quick StackViews…

Rapid Prototypes for Devices with Raspberry Pi

Since joining Atomic, I’ve worked on quite a few web projects, where rapid prototypes are common and quite easy to produce. Unfortunately, not all domains we deal in have such luxuries.

My latest project is a lightweight embedded linux device with a GUI and physical buttons. In such a stack, it can be hard to get rapid feedback cycles on your UI and UX. To try and alleviate this problem, I came up with a method for scripting interaction with rapid prototypes using a display attached to a Raspberry Pi. Read more on Rapid Prototypes for Devices with Raspberry Pi…

Why I Still Like Ember.js

I’ve been using Ember.js on and off on a variety of projects for nearly two years now. Ember has proven to be quite unique. Even after getting very, very familiar with it, I still quite like it. As with all things I’ve found in programming, it has caused me pain at times, but far less than expected based on how much I’ve used it.

Here are some of the things that keep me coming back to Ember for new projects.
Read more on Why I Still Like Ember.js…

A Replacement for Ember’s Deprecated Ember.Set

Having a Set datatype can be really handy in many situations. From Ember.js 0.9 all the way up to 1.8, Ember.js supplied a Set type with an interface loosely based on an early ES6 proposal. Unfortunately, since the ES6 API had drifted and the maintainers of Ember deemed it more suitable for an external library or add-on package, the class has been deprecated. Read more on A Replacement for Ember’s Deprecated Ember.Set…

Python Environment Management for Rubyists – a Guide

Python has always been an intriguing language to me, but I’ve never been a huge fan of its syntax. I have always liked Lisps, though. Thus, when I discovered Hy a few months ago, I was completely smitten. Then I tried to set up a development environment, and was caught in a morass of old tooling and poorly explained transitions. Python 2? Python 3? Pip? Setuptools? Easy_install? Ugh. Read more on Python Environment Management for Rubyists – a Guide…

Using Ember CLI with PhoneGap’s CLI Tools

For a recent project, a client wanted a mobile phone application that would work across both iOS and Android. As someone with more experience with web development than either iOS or Android, turning to Adobe’s PhoneGap seemed a fairly obvious path. I would be able to leverage more of my existing skill set, and could use awesome tools like Ember.js.

I started digging through some getting started guides for PhoneGap and quickly realized that the default platform and build management tooling (cordova-cli) had no support for any sort of asset processing. Read more on Using Ember CLI with PhoneGap’s CLI Tools…

Relaxing and Rediscovering Childhood Joy

As a small child, I loved nothing better than reading. I read everything I could get my hands on, as fast as I could. I wasn’t allowed flashlights in my room, as my parents knew I’d just use them to read under the covers. At one point, they even took my alarm clock, since I was using its display as a lamp.

I loved to read.

Then in late middle school, I got my first computer, and everything changed. Instead of staying up late reading about elves and spaceships and battles, I stayed up reading about Linux and programming and syscalls. I still stayed up late, but had trouble staying interested in the novels that used to keep me spell-bound.

This state of affairs continued through college. I would work on programming homework or fiddle with programs until crazy hours of the night, but could not stay focused on a book for any significant amount of time. I tried buying a Kindle to see if I could leverage my love of technology to revive my interest in books. The Kindle wound up rooted and found great use for textbooks and reference manuals, but didn’t see much leisure-time reading. It bothered me that something I used to take such enjoyment from no longer held any joy for me. Read more on Relaxing and Rediscovering Childhood Joy…

JRuby, Rails, and Jetty – Where Are my Assets?

Recently, I was spinning up an extremely simple Rails 4 project, which was to serve as a portal to several other applications deployed on the same Jetty instance. This was not my first JRuby on Rails rodeo, so I was expecting a smooth deployment.

When I deployed the WAR into a Jetty instance on my local machine, neither the CSS nor images were being served correctly. The application server was giving me a 200 return code with the correct content length header, and then giving me a zero-byte response. Having never encountered this issue before, I talked to my pair on the project, who was standing up a separate Rails 4 app for the same application server. He was seeing it too. We compared notes. Heads were scratched. Read more on JRuby, Rails, and Jetty – Where Are my Assets?…

First Impressions of Swift

My programming background is primarily one of Ruby, Javascript, C#, and C. Nevertheless, I was intrigued when Apple announced Swift at WWDC this year.

I tend to pick up new programming languages like a crow picks up shiny objects, so when I found out that Swift was to support type inference, Option types, Sum types, a real REPL, and nice lambda syntax, I had to check it out further.
Read more on First Impressions of Swift…

Ember.js array.[] syntax

While digging around in the Ember.js API docs, I encountered a mention of a computed property syntax that I hadn’t seen before. Quoth the docs for the computed.empty alias:

Note: When using Ember.computed.empty to watch an array make sure to use the array.[] syntax so the computed can subscribe to transitions from empty to non-empty states.

This sounded intriguing, but wasn’t actually very instructive. A quick ask around the office revealed that no one else had encountered this syntax before either. The quest for knowledge was on.

Read more on Ember.js array.[] syntax…