- 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
- 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
- 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
- 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
- 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
Earlier this year I quit my job to work full-time on an open source ecommerce framework. After three years working as the lead of a small team within a department of around 20 devs, I’m now back to working alone. Here are some reflections on the thrills and perils of the lone developer. Photo by Noah Silliman on Unsplash Communication & Efficiency The problems of development teams are essentially problems of communication.
In unit testing, we often want to create mocks of other parts of our app in order to better isolate the particular component under test, and prevent us from dragging the whole dependency graph into our simple little unit test. Dependency graph of a component we want to test In the example above, we could mock out ListComponent, InboxComponent and MessageService and thereby forego the need to pull in all of the transitive dependencies (dependencies of dependencies).
If you, like me, were born in the 1980s, then you are a member of the generation of analog natives - those who grew up during that period in which the Information Age reached the masses. Of course, all of humanity up until that point lived fully analog lives; but uniquely, our generation is the one which experienced first-hand the transition from the analog to the digital world. So “analog native” is only meaningful in a world in which such thing as a “digital native” exists as a counterpart.
I write this from somewhere above Western Europe as I fly back to Vienna from the AngularConnect conference which just took place in London. Since a lot of the news and announcements from conferences typically take a long time to percolate out into the wider community, I thought I’d jot down a few notes of the things which I found interesting from the talks I saw (it was multi-track so I missed at least as much).
About 13 years ago I built a web shop for my dad’s company. Like many small businesses, the company does not have an in-house development or IT department, so anything vaguely website-related tends to end up in my inbox. This is how I recently found myself in a conference call with Dom from IntegriMart1, a company which provides marketing tools for websites. This type of business is known as a “marketing tech” company, sometimes abbreviated to the crap-sounding “martech”, and a close cousin to “adtech”.
I have just converted this website from an AngularJS app backed by the Wordpress REST API to a static HTML site powered by Hugo, a static site generator written in Go. This post explains my reasoning, experiences and thoughts about the results. Back in 2014 I was learning AngularJS, and I decided to build my website with it as a learning exercise. I wrote about it here. I was happy with the design, but there were a number of issues with which I gradually grew dissatisfied.
When we talk about productivity, it is usually in the context of our professional lives. Is this fair? Does productivity begin and end at the office door? I’d like to address this question indirectly, by backing up and taking a high-level look at the subject. No tips or “weird tricks” here; rather some brief thoughts on the scope of productivity. Productivity is happiness. Happiness is the sensation you get when you progress towards a goal.
In software development, we often hear and speak of abstractions. When we use this term, we often mean some variation on concepts such as “hiding the implementation details”, “providing an interface”, “modelling a data type” or even “removing duplicate code”. But what is the essence of abstraction? The origin of "abstract" in the Macmillan Dictionary for Students I was recently looking up the term “abstract” in a dictionary, and was struck with the origin of the word:
Earlier this week I set out to convert a few of my Angular 2 apps to use Ahead-of-time (AoT) compilation. I’ve just been to AngularConnect and heard about a project named “@ngtools/webpack” (video here) which supposedly allows you to use the same build tools that the angular-cli project uses, even if you don’t use the cli (which is the case with my stuff right now). So I eagerly searched out@ngtools/webpack on npm and found this: