Blog
$
- High Modernism & Software Design
- What Might Happen If You Share It
- But What About the Bus Factor?
- Welcome to the Twitterscape
- On Working Alone
- Mocking Classes with TypeScript
- Museum of the Analog Native
- A Tale of Two Issues
- Notes on AngularConnect 2017
- The Covert Opt-In
- Going Static with Hugo
- Productivity Is Happiness
- The Elevator of Infinite Abstraction
- Some notes on Angular 2 AoT mode with Webpack, Sass & ngtools
- An Early Look at SKQW: JavaScript Audio Visualizer
- Why I Haven’t Fixed Your Issue Yet
- Components with Custom Templates in Angular 2 (beta.7)
- Angular 2, CommonJS and Circular Dependencies
- AngularConnect: Summary and Analysis
- The Republic of Virtue: Terror, Tolerance and the Internet
- Fixing Chrome Autofill: Mysterious Wrong Values Solved
- Automatic @import of Less/Sass files with Gulp
- angular-wordpress-seed: A complete example project with AngularJS and the WordPress JSON REST API
- A Note on Angular Expressions And JavaScript Identifiers
- Book Review: Responsive Web Design with AngularJS; plus Musings on Technical Writing
- Exploring ES6 Classes In AngularJS 1.x
- The Programmer Dad
- One Year of GitHub and Open Source
- Building a 3D Game with CSS + HTML
- My Thoughts on ngEurope 2014 and AngularJS 2.0
- Writing Multi-Element Directives in AngularJS
- CSS + JavaScript 3D Butterfly: A Case Study
- Experiences Building a Website with AngularJS + WP-API (WordPress API)
- A Note on Touch (Pointer) Events in Internet Explorer
- Enable Rich Social Sharing in Your AngularJS App
- A Killer Startup Idea
- What Makes A Good Tech Talk?
- Site-Wide Split Tests With Google Analytics Content Experiments
- Paginate (almost) Anything in AngularJS
- Auto-breadcrumbs with angular-ui-router
- Simple 1D Noise in JavaScript
- Confessions of an Intermediate Programmer
- Audio Visualization with Web Audio, Canvas and the Soundcloud API
- Using Disqus with AngularJS
- An Overview of the ng-conf 2014 Presentations
- An Ordinal Date Filter for AngularJS
- How I got Zurb Foundation 4 to work with IE8 with zero lines of code
-
Fixing Chrome Autofill: Mysterious Wrong Values Solved
On an ecommerce website I maintain, we started running into a strange issue where we were getting orders coming in with the first line of the address being duplicated in the “delivery instructions” field. This was causing all sorts of confusion and mild distress at the office. Today I finally persisted enough to get to the bottom of it. The form was something like this - try it out yourself to see if you also get the first line of your address appearing in the delivery instructions: -
Automatic @import of Less/Sass files with Gulp
This post describes a way to use Gulp to automatically @import Less files from anywhere in your project’s folder structure. It is useful if you want to define self-contained components that put all HTML, JavaScript and LESS files together, yet you don’t want to maintain a list of imports in your main LESS file. The following method should also apply if you prefer Sass, since it uses the same kind of imports system. -
angular-wordpress-seed: A complete example project with AngularJS and the WordPress JSON REST API
Last September I wrote a post detailing how I went about re-building this website with AngularJS backed by WordPress. That write-up was a high-level discussion on my choice of tools, design decisions, and lessons learned, rather than specific implementation details. The article proved to be one of the more popular I’ve written so far, and I’ve since received many requests to make the source code publicly available. In response to this interest, I decided to put together a bare-bones version of the code that is running this blog: angular-wordpress-seed. -
A Note on Angular Expressions And JavaScript Identifiers
A variable used in an Angular expression cannot contain a hyphen. This might be obvious to some, but this issue on one of my GitHub repos baffled me for a while, and the solution was really simple and now seems totally obvious to me. I’m making a public note of it so that I may save another frustrated developer a few minutes of hair-pulling. The Problem In brief, I have a directive that takes an id attribute and parses it with the $parse service. -
Book Review: Responsive Web Design with AngularJS; plus Musings on Technical Writing
This is a review of the book Responsive Web Design with AngularJS by Sandeep Kumar Patel. Disclosure: I was asked to review this book by the publisher, Packt, and they provided me with a copy of the ebook free of charge. The book can be found for purchase here. Responsive Web Design with AngularJS First Impressions The first thing that struck me about this book is the title. -
Exploring ES6 Classes In AngularJS 1.x
In this post I will describe a way of using ES6 classes today in your AngularJS 1.x applications. This is intended more as an exploration than a recommendation of best practice. I’ll go into quite some detail about the reasoning and process behind my solution, but if you’d prefer to fast forward to the finale rather than enjoy the adventure, see the last section where I bring it all together, or go directly to the demo app repo. -
The Programmer Dad
I’ve not typed a semicolon for a couple of weeks now. I don’t mean the look-at-me-I-know-fancy-punctuation kind (there will be plenty of those here). I am of course referring to ;, the token that denotes the end of a statement. No, I’ve not ditched JavaScript for Python or Erlang; I’m on holiday. I’m getting back to (half of) my roots in beautiful Malaysia, and as a result I’ve not done any programming at all. -
One Year of GitHub and Open Source
Next week sees the close of my first year as an active participant on GitHub and in the open source community. I’d like to mark the occasion by collecting together a few thoughts on my experience thus far. At the beginning of this year I wrote about my decidedly shaky start in the world of professional software development in the essay Confessions of an Intermediate Programmer. For those who have read the sorry tale, it’ll come as little surprise that it was only fairly recently that I started using any kind of version control system. -
Building a 3D Game with CSS + HTML
I have recently been exploring some of the lesser-used features of CSS - namely 3D transforms and animations. For a recent talk I gave at a local JavaScript user group, I put together this demo, and in doing so I became really curious about just how far the 3D capabilities of pure CSS could be pushed. In searching around for examples, I came across the work of Keith Clark. In particular, he has put together two absolutely stunning demos of what can be achieved using pure CSS, in the form of a FPS-style 3D world and this shaded X-wing model. -
My Thoughts on ngEurope 2014 and AngularJS 2.0
I write this from a tiny apartment in Paris, sitting up in bed on a sleepy Friday morning after a crazy couple of days at the ngEurope conference. I would like to share a few thoughts and experiences about what I’ve seen and learned over the past couple of days. This isn’t going to be a purely technical blog post. I also won’t try to be comprehensive in covering all the talks.