<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Post on Michael Bromley</title>
		<link>https://www.michaelbromley.co.uk/categories/post/</link>
		<description>Recent content in Post on Michael Bromley</description>
		<generator>Hugo</generator>
		<language>en-gb</language>
		
		
		
		
			<lastBuildDate>Fri, 31 Jul 2026 08:00:00 +0100</lastBuildDate>
		
			<atom:link href="https://www.michaelbromley.co.uk/categories/post/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>AI Made Me Write This</title>
				<link>https://www.michaelbromley.co.uk/blog/ai-made-me-write-this/</link>
				<pubDate>Fri, 31 Jul 2026 08:00:00 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/ai-made-me-write-this/</guid>
				<description>&lt;p&gt;I have been inspired to write again by AI. By bad AI writing, to be exact. You know the sort. I don&amp;rsquo;t even need to elaborate at this stage.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m by no means anti-AI. I use it constantly at work. It has transformed what I am capable of getting done as a software developer. I&amp;rsquo;m not anti-AI; I am pro-human.&lt;/p&gt;&#xA;&lt;p&gt;I like people and I&amp;rsquo;m interested in their ideas. For that reason I really hate AI writing. I hate to read an article or social media post and be left with no idea about whether the author actually shared an idea of their own. Maybe the article did start with their own idea which they fed to the AI to &amp;ldquo;make it sound good&amp;rdquo;. But on the other hand maybe they just prompted the AI to &amp;ldquo;write me a blog post about something that will get engagement&amp;rdquo;. I have no idea either way.&lt;/p&gt;</description>
			</item>
			<item>
				<title>High Modernism &amp; Software Design</title>
				<link>https://www.michaelbromley.co.uk/blog/high-modernism-software-design/</link>
				<pubDate>Tue, 18 Jan 2022 08:00:00 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/high-modernism-software-design/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://en.wikipedia.org/wiki/Bras%C3%ADlia&#34;&gt;Brasília&lt;/a&gt; was envisaged as the dawn of a new Brazil. Purpose-built from the ground up on a pristine site in just 41 months, it attempted to remould and redefine what it meant to be Brazilian in its own logical, elegant, efficient image.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2022/01/ramon-bucard-qL4tAM6uLvc-unsplash.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Brasília by Ramon Buçard on Unsplash&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;This style of large-scale urban planning is labeled &lt;em&gt;high modernism&lt;/em&gt; by James  C. Scott in his book &lt;a href=&#34;https://en.wikipedia.org/wiki/Seeing_Like_a_State&#34;&gt;Seeing Like A State&lt;/a&gt;. The same ethos and aesthetic can also be seen in the city of &lt;a href=&#34;https://en.wikipedia.org/wiki/Chandigarhhttps://en.wikipedia.org/wiki/Chandigarh&#34;&gt;Chandigarh&lt;/a&gt; in India, which was designed by the modernist architect Le Corbusier.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Might Happen If You Share It</title>
				<link>https://www.michaelbromley.co.uk/blog/what-might-happen-if-you-share-it/</link>
				<pubDate>Sun, 02 Jan 2022 13:00:00 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/what-might-happen-if-you-share-it/</guid>
				<description>&lt;p&gt;I grew up in the Winamp days. Napster, Limewire, cracks &amp;amp; warez, remember? Winamp was always open. And alongside my playlist of illicitly-downloaded mp3s would always be &lt;a href=&#34;https://en.wikipedia.org/wiki/MilkDrop&#34;&gt;MilkDrop&lt;/a&gt;. If you don&amp;rsquo;t know, MilkDrop is &lt;em&gt;absolute zenith&lt;/em&gt; of audio visualization software, and it spawned my love of generative visualizations.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve never got my head around all the maths involved. I&amp;rsquo;ve dabbled with shaders, but it still boggles my mind. Nevertheless, I would spend my evenings playing with the HTML Canvas and WebAudio APIs, exploring and building things just for fun. Programming can be &lt;em&gt;really&lt;/em&gt; fun.&lt;/p&gt;</description>
			</item>
			<item>
				<title>But What About the Bus Factor?</title>
				<link>https://www.michaelbromley.co.uk/blog/but-what-about-the-bus-factor/</link>
				<pubDate>Wed, 01 Dec 2021 08:00:59 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/but-what-about-the-bus-factor/</guid>
				<description>&lt;p&gt;The term &lt;a href=&#34;https://en.wikipedia.org/wiki/Bus_factor&#34;&gt;&amp;ldquo;bus factor&amp;rdquo;&lt;/a&gt; refers to the number of project maintainers who, if hit by a bus and incapacitated, would cause that project to stall. You can replace the bus crash with any other form of physical or mental incapacitation or even changes in life circumstances or priorities. The lower the bus factor, the greater the risk that a project might suddenly become unsustainable.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2021/12/romain-chollet-U3_QBX2qZb0-unsplash.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Credit: Romain Chollet via Unsplash&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;This is a topic close to my heart. As the maintainer of the open-source e-commerce framework &lt;a href=&#34;https://www.vendure.io/&#34;&gt;Vendure&lt;/a&gt;, I am living with a bus factor of &lt;strong&gt;one&lt;/strong&gt;. I work full-time on Vendure, and I&amp;rsquo;m hoping to indie-hack my way to sustainability. To get there, lots of companies need to be willing to adopt it. I&amp;rsquo;m pretty sure that the bus factor plays a role in their decision.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Welcome to the Twitterscape</title>
				<link>https://www.michaelbromley.co.uk/blog/welcome-to-the-twitterscape/</link>
				<pubDate>Wed, 10 Apr 2019 08:00:59 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/welcome-to-the-twitterscape/</guid>
				<description>&lt;p&gt;The land is flat and vast, extending as far as the eye can see. There is no sun, as such. Rather, an ambient glow with no obvious source permeates. Occupying this Plane is an ocean of people, gathered into groups large and small, distributed irregularly, coalescing and scattering like slow-motion static on a last-century TV.&lt;/p&gt;&#xA;&lt;p&gt;There are minstrels, artists, trinket-collectors and writers; bards and scientists, astronauts and soldiers. Most huddle together amongst their own kind, but at the periphery a continual jostling and switching takes place. Ideas cross-pollinate and bloom in virgin minds. In the distance a huge throne-topped tower has been erected in honor of a nameless minstrel who has composed a most pleasing melody. Wisdom and culture flows, sways and swirls between and amongst these throngs of sentience.&lt;/p&gt;</description>
			</item>
			<item>
				<title>On Working Alone</title>
				<link>https://www.michaelbromley.co.uk/blog/on-working-alone/</link>
				<pubDate>Thu, 22 Nov 2018 08:00:59 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/on-working-alone/</guid>
				<description>&lt;p&gt;Earlier this year I quit my job to work full-time on an &lt;a href=&#34;https://github.com/vendure-ecommerce/vendure&#34;&gt;open source ecommerce framework&lt;/a&gt;. After three years working as the lead of a small team within a department of around 20 devs, I&amp;rsquo;m now back to working alone. Here are some reflections on the thrills and perils of the lone developer.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2018/11/noah-silliman-136622-unsplash.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Photo by Noah Silliman on Unsplash&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;communication--efficiency&#34;&gt;Communication &amp;amp; Efficiency&lt;/h2&gt;&#xA;&lt;p&gt;The problems of development teams are essentially problems of communication. Email, Slack, stand-ups, Jira, meetings. All serve their purpose and all have their downsides - as documented in approximately 50,000 think-pieces over on Medium. Managers, processes and methodologies all exist - at least in part - to solve the problems of team communication.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mocking Classes with TypeScript</title>
				<link>https://www.michaelbromley.co.uk/blog/mocking-classes-with-typescript/</link>
				<pubDate>Tue, 08 May 2018 08:00:59 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/mocking-classes-with-typescript/</guid>
				<description>&lt;p&gt;In unit testing, we often want to create mocks of other parts of our app in order to better isolate the&#xA;particular component under test, and prevent us from dragging the whole dependency graph into our simple little&#xA;unit test.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2018/05/component-tree.png&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Dependency graph of a component we want to test&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;In the example above, we could mock out &lt;code&gt;ListComponent&lt;/code&gt;, &lt;code&gt;InboxComponent&lt;/code&gt; and &lt;code&gt;MessageService&lt;/code&gt; and thereby forego the&#xA;need to pull in all of the transitive dependencies (dependencies of dependencies). Things become a bit more manageable:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Museum of the Analog Native</title>
				<link>https://www.michaelbromley.co.uk/blog/museum-of-the-analog-native/</link>
				<pubDate>Tue, 10 Apr 2018 21:15:59 +0100</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/museum-of-the-analog-native/</guid>
				<description>&lt;p&gt;If you, like me, were born in the 1980s, then you are a member of the generation of &lt;em&gt;analog natives&lt;/em&gt; -&#xA;those who grew up during that period in which the Information Age reached the masses. Of course, all of humanity up until that point&#xA;lived fully analog lives; but uniquely, our generation is the one which experienced first-hand the transition from&#xA;the analog to the digital world. So &amp;ldquo;analog native&amp;rdquo; is only meaningful in a world in which such thing as a &amp;ldquo;digital native&amp;rdquo;&#xA;exists as a counterpart.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Tale of Two Issues</title>
				<link>https://www.michaelbromley.co.uk/blog/a-tale-of-two-issues/</link>
				<pubDate>Sat, 20 Jan 2018 20:52:59 +0200</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/a-tale-of-two-issues/</guid>
				<description>&lt;p&gt;&lt;em&gt;Zoid&lt;/em&gt; is a JavaScript library for simple arithmetic operations. The project has been around for a few years and&#xA;has a sole maintainer, who works on it in her free time.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2018/01/oliver-thomas-klein-207908.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Photo by Oliver Thomas Klein on Unsplash&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Here are a couple of issues picked out of the issue tracker - one from a couple of years ago and one very recent,&#xA;presented without comment.&lt;/p&gt;&#xA;&lt;h2 id=&#34;issue-37---clicking-button-does-not-add-1&#34;&gt;Issue #37 - clicking button does not add 1&lt;/h2&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;avatar&#34;&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;issue-entry&#34;&gt;&#xA;    &lt;div class=&#34;issue-header-entry&#34;&gt;&#xA;        &lt;div class=&#34;issue-user-name&#34;&gt;hecter88&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-type&#34;&gt;commented on&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-date&#34;&gt;Jul 13, 2015&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;issue-body&#34;&gt;&#xA;        Hey. Having trouble with using the add function when clicking a button. It doesn&amp;rsquo;t work.&#xA;    &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;avatar&#34;&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;issue-entry&#34;&gt;&#xA;    &lt;div class=&#34;issue-header-entry&#34;&gt;&#xA;        &lt;div class=&#34;issue-user-name&#34;&gt;zoider (maintainer)&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-type&#34;&gt;commented on&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-date&#34;&gt;Jul 13, 2015&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;issue-body&#34;&gt;&#xA;        Hi, can you show me what you are trying to do? Paste some code?&#xA;    &lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&#xA;&lt;div class=&#34;avatar&#34;&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;issue-entry&#34;&gt;&#xA;    &lt;div class=&#34;issue-header-entry&#34;&gt;&#xA;        &lt;div class=&#34;issue-user-name&#34;&gt;hecter88&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-type&#34;&gt;commented on&lt;/div&gt;&#xA;        &lt;div class=&#34;issue-date&#34;&gt;Jul 13, 2015&lt;/div&gt;&#xA;    &lt;/div&gt;&#xA;    &lt;div class=&#34;issue-body&#34;&gt;&#xA;        &lt;p&gt;Oh yeh sorry.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Notes on AngularConnect 2017</title>
				<link>https://www.michaelbromley.co.uk/blog/notes-on-angularconnect-2017/</link>
				<pubDate>Thu, 09 Nov 2017 10:45:59 +0200</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/notes-on-angularconnect-2017/</guid>
				<description>&lt;p&gt;I write this from somewhere above Western Europe as I fly back to Vienna from the AngularConnect conference which just&#xA;took place in London. Since a lot of the news and announcements from conferences typically take a long time to&#xA;percolate out into the wider community, I thought I&amp;rsquo;d jot down a few notes of the things which I found interesting from&#xA;the talks I saw (it was multi-track so I missed at least as much).&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Covert Opt-In</title>
				<link>https://www.michaelbromley.co.uk/blog/the-covert-opt-in/</link>
				<pubDate>Fri, 04 Aug 2017 20:52:59 +0200</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/the-covert-opt-in/</guid>
				<description>&lt;p&gt;About 13 years ago I built a web shop for my dad&amp;rsquo;s company. Like many small businesses, the company does not&#xA;have an in-house development or IT department, so anything vaguely website-related tends to end up in my inbox.&#xA;This is how I recently found myself in a conference call with Dom from IntegriMart&lt;sup&gt;1&lt;/sup&gt;, a company&#xA;which provides marketing tools for websites. This type of business is known as a &lt;em&gt;&amp;ldquo;marketing tech&amp;rdquo;&lt;/em&gt; company, sometimes abbreviated&#xA;to the crap-sounding &lt;em&gt;&amp;ldquo;martech&amp;rdquo;&lt;/em&gt;, and a close cousin to &lt;em&gt;&amp;ldquo;adtech&amp;rdquo;&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Going Static with Hugo</title>
				<link>https://www.michaelbromley.co.uk/blog/going-static-with-hugo/</link>
				<pubDate>Sun, 30 Jul 2017 20:52:59 +0200</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/going-static-with-hugo/</guid>
				<description>&lt;p&gt;I have just converted this website from an AngularJS app backed by the Wordpress REST API to a&#xA;static HTML site powered by &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, a static site generator written in Go. This post explains my reasoning,&#xA;experiences and thoughts about the results.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2017/07/hugo-logo.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Back in 2014 I was learning AngularJS, and I decided to build my website with it as a learning exercise. I wrote&#xA;about it &lt;a href=&#34;https://www.michaelbromley.co.uk/blog/experiences-building-a-website-with-angularjs--wp-api-wordpress-api/&#34;&gt;here&lt;/a&gt;.&#xA;I was happy with the design, but there were a number of issues with which I gradually grew dissatisfied.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Productivity Is Happiness</title>
				<link>https://www.michaelbromley.co.uk/blog/productivity-is-happiness/</link>
				<pubDate>Mon, 06 Mar 2017 19:45:31 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/productivity-is-happiness/</guid>
				<description>&lt;p&gt;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?&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;d like to address this question indirectly, by backing up and taking a high-level look at the subject. No tips or &amp;ldquo;weird tricks&amp;rdquo; here; rather some brief thoughts on the scope of productivity.&lt;/p&gt;&#xA;&lt;p&gt;Productivity is happiness.&lt;/p&gt;&#xA;&lt;p&gt;Happiness is the sensation you get when you progress towards a goal.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Elevator of Infinite Abstraction</title>
				<link>https://www.michaelbromley.co.uk/blog/the-elevator-of-infinite-abstraction/</link>
				<pubDate>Thu, 16 Feb 2017 16:19:08 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/the-elevator-of-infinite-abstraction/</guid>
				<description>&lt;p&gt;In software development, we often hear and speak of &lt;em&gt;abstractions&lt;/em&gt;. When we use this term, we often mean some variation on concepts such as &amp;ldquo;hiding the implementation details&amp;rdquo;, &amp;ldquo;providing an interface&amp;rdquo;, &amp;ldquo;modelling a data type&amp;rdquo; or even &amp;ldquo;removing duplicate code&amp;rdquo;. But what is the essence of abstraction?&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2017/02/abstract-etymology.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;The origin of &amp;#34;abstract&amp;#34; in the Macmillan Dictionary for Students&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;I was recently looking up the term &amp;ldquo;abstract&amp;rdquo; in a dictionary, and was struck with the origin of the word:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Some notes on Angular 2 AoT mode with Webpack, Sass &amp; ngtools</title>
				<link>https://www.michaelbromley.co.uk/blog/some-notes-on-angular-2-aot-mode-with-webpack-sass-ngtools/</link>
				<pubDate>Sun, 09 Oct 2016 07:18:10 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/some-notes-on-angular-2-aot-mode-with-webpack-sass-ngtools/</guid>
				<description>&lt;p&gt;Earlier this week I set out to convert a few of my Angular 2 apps to use Ahead-of-time (AoT) compilation. I&amp;rsquo;ve just been to AngularConnect and heard about a project named &amp;ldquo;@ngtools/webpack&amp;rdquo; (&lt;a href=&#34;https://youtu.be/uBRK6cTr4Vk?t=7m59s&#34;&gt;video here&lt;/a&gt;) which supposedly allows you to use the same build tools that the angular-cli project uses, even if you don&amp;rsquo;t use the cli (which is the case with my stuff right now).&lt;/p&gt;&#xA;&lt;p&gt;So I eagerly searched out&lt;a href=&#34;https://www.npmjs.com/package/@ngtools/webpack&#34;&gt;@ngtools/webpack on npm&lt;/a&gt; and found this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Early Look at SKQW: JavaScript Audio Visualizer</title>
				<link>https://www.michaelbromley.co.uk/blog/an-early-look-at-skqw-javascript-audio-visualizer/</link>
				<pubDate>Fri, 26 Aug 2016 08:25:07 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/an-early-look-at-skqw-javascript-audio-visualizer/</guid>
				<description>&lt;p&gt;SKQW (pronounced &amp;ldquo;skew&amp;rdquo;) is a native desktop audio visualization application written in TypeScript with Angular 2, and implemented on the Electron framework.&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/OD636XmkRQ4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;It is &lt;strong&gt;currently in alpha&lt;/strong&gt; and a compiled binary only exists for Windows, but I&amp;rsquo;m hoping that - if there is interest - I can push the project forward and improve stability, features and of course bring full support to Mac OS X and Linux.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Why I Haven’t Fixed Your Issue Yet</title>
				<link>https://www.michaelbromley.co.uk/blog/why-i-havent-fixed-your-issue-yet/</link>
				<pubDate>Fri, 13 May 2016 14:22:02 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/why-i-havent-fixed-your-issue-yet/</guid>
				<description>&lt;p&gt;Hi there. You opened an issue with my project on GitHub, and it&amp;rsquo;s getting kind of stale by now.&lt;/p&gt;&#xA;&lt;p&gt;I am aware of it - GitHub was kind enough to send me an email containing your report, which I scanned one morning a couple of weeks ago while I ate breakfast. I&amp;rsquo;ve even thought about it briefly a couple of times since then; once I was in the shower and I got the vague idea that I knew what caused it - but I wasn&amp;rsquo;t sure because I could not recall the specifics.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Components with Custom Templates in Angular 2 (beta.7)</title>
				<link>https://www.michaelbromley.co.uk/blog/components-with-custom-templates-in-angular-2-beta.7/</link>
				<pubDate>Fri, 26 Feb 2016 09:10:03 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/components-with-custom-templates-in-angular-2-beta.7/</guid>
				<description>&lt;p&gt;Want to create a reusable Angular 2 component which can be customized with a user-provided template?&lt;/p&gt;&#xA;&lt;p&gt;I had this use case and could not find any relevant documentation or tutorials, so after a few days digging around the internals on Angular 2, I am sharing the result of my research. &lt;strong&gt;This is one way to do this - perhaps there are other, better ways. Feedback is welcome&lt;/strong&gt;!&lt;/p&gt;&#xA;&lt;p&gt;(&lt;strong&gt;TL;DR&lt;/strong&gt; - &lt;a href=&#34;http://plnkr.co/edit/h8pjNWLJPQYfSG6IKwx5?p=preview&#34;&gt;working demo on Plunker&lt;/a&gt;)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Angular 2, CommonJS and Circular Dependencies</title>
				<link>https://www.michaelbromley.co.uk/blog/angular-2-commonjs-and-circular-dependencies/</link>
				<pubDate>Fri, 29 Jan 2016 08:50:04 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/angular-2-commonjs-and-circular-dependencies/</guid>
				<description>&lt;p&gt;Yesterday I lost several hours to the following error in an Angular 2 app I am working on:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-Text&#34; data-lang=&#34;Text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Cannot resolve all parameters for &amp;#39;BaseDataService&amp;#39;(Http, undefined, ODataService). &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Make sure that all the parameters are decorated with Inject or have valid type &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;annotations and that &amp;#39;BaseDataService&amp;#39; is decorated with Injectable.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;undefined&lt;/code&gt; in this case is my redux AppStore service. Other dependencies (Http, ODataService) worked just fine. Even weirder - I was successfully injecting AppStore into several other components without issue. Why did it fail only in this case?&lt;/p&gt;</description>
			</item>
			<item>
				<title>AngularConnect: Summary and Analysis</title>
				<link>https://www.michaelbromley.co.uk/blog/angularconnect-summary-and-analysis/</link>
				<pubDate>Thu, 22 Oct 2015 19:36:00 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/angularconnect-summary-and-analysis/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;http://angularconnect.com/&#34;&gt;AngularConnect&lt;/a&gt;, the largest Angular conference to date, has just taken place in London. Here is a summary based on what I learned and what I found most interesting. Since it was a two-track event, I only saw half the talks, so for the full picture, &lt;a href=&#34;https://www.youtube.com/channel/UCzrskTiT_ObAk3xBkVxMz5g/videos&#34;&gt;watch the sessions yourself on YouTube&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Many of you just want a quick rundown on the key points, so the first section of this post is just that - &amp;ldquo;the meat&amp;rdquo;, albeit in bite-sized pieces (think pork scratchings or jerky). After that, if you like you can read my thoughts and analysis and then just a little more on the conference experience itself. Enjoy!&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Republic of Virtue: Terror, Tolerance and the Internet</title>
				<link>https://www.michaelbromley.co.uk/blog/the-republic-of-virtue-terror-tolerance-and-the-internet/</link>
				<pubDate>Sat, 18 Jul 2015 04:58:22 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/the-republic-of-virtue-terror-tolerance-and-the-internet/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve recently been listening to the excellent podcast series &lt;a href=&#34;http://www.revolutionspodcast.com/&#34; target=&#34;_blank&#34;&gt;&lt;i&gt;Revolutions&lt;/i&gt;&lt;/a&gt; by Mike Duncan. Right now we are in the thick of the French Revolution. It&amp;rsquo;s really riveting stuff, and offers some fascinating insights into the interplay of &lt;strong&gt;groups&lt;/strong&gt;, &lt;strong&gt;ideology&lt;/strong&gt;, &lt;strong&gt;virtue&lt;/strong&gt;, &lt;strong&gt;violence&lt;/strong&gt; and &lt;strong&gt;terror&lt;/strong&gt;. If that list sounds familiar, perhaps you frequent Twitter or Reddit or some other online community.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2015/07/execution-of-robespierre-color-print-1024x604.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Detail from a painting of the execution of Robespierre&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Ah, the Internet - the defining technology of the new Information Age. An amplifier of everything good, bad, and downright weird about humanity. From the comfort of our sofa, bed or even toilet (come on, admit it&amp;hellip;), we can enjoy the spectacle of human interacting with human.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Fixing Chrome Autofill: Mysterious Wrong Values Solved</title>
				<link>https://www.michaelbromley.co.uk/blog/fixing-chrome-autofill-mysterious-wrong-values-solved/</link>
				<pubDate>Fri, 10 Jul 2015 14:52:17 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/fixing-chrome-autofill-mysterious-wrong-values-solved/</guid>
				<description>&lt;p&gt;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 &amp;ldquo;delivery instructions&amp;rdquo; 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.&lt;/p&gt;&#xA;&lt;p&gt;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:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Automatic @import of Less/Sass files with Gulp</title>
				<link>https://www.michaelbromley.co.uk/blog/automatic-@import-of-less/sass-files-with-gulp/</link>
				<pubDate>Wed, 15 Apr 2015 20:13:57 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/automatic-@import-of-less/sass-files-with-gulp/</guid>
				<description>&lt;p&gt;This post describes a way to use &lt;a href=&#34;http://gulpjs.com/&#34;&gt;Gulp&lt;/a&gt; to automatically &lt;code&gt;@import&lt;/code&gt; &lt;a href=&#34;http://lesscss.org/&#34;&gt;Less&lt;/a&gt; files from anywhere in your project&amp;rsquo;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&amp;rsquo;t want to maintain a list of imports in your main LESS file.&lt;/p&gt;&#xA;&lt;p&gt;The following method should also apply if you prefer Sass, since it uses the same kind of imports system. I&amp;rsquo;ve not tested this though, so if anyone runs into any problems with applying this to Sass files, do let me know.&lt;/p&gt;</description>
			</item>
			<item>
				<title>angular-wordpress-seed: A complete example project with AngularJS and the WordPress JSON REST API</title>
				<link>https://www.michaelbromley.co.uk/blog/angular-wordpress-seed-a-complete-example-project-with-angularjs-and-the-wordpress-json-rest-api/</link>
				<pubDate>Sat, 28 Mar 2015 10:16:33 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/angular-wordpress-seed-a-complete-example-project-with-angularjs-and-the-wordpress-json-rest-api/</guid>
				<description>&lt;p&gt;Last September I wrote a &lt;a href=&#34;http://www.michaelbromley.co.uk/blog/228/experiences-building-a-website-with-angularjs-wp-api-wordpress-api&#34;&gt;post&lt;/a&gt; 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&amp;rsquo;ve written so far, and I&amp;rsquo;ve since received many requests to make the source code publicly available.&lt;/p&gt;&#xA;&lt;p&gt;In response to this interest, I decided to put together a bare-bones version of the code that is running this blog: &lt;strong&gt;angular-wordpress-seed&lt;/strong&gt;. Go &lt;a href=&#34;https://github.com/michaelbromley/angular-wordpress-seed&#34;&gt;check it out on GitHub&lt;/a&gt;!&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Note on Angular Expressions And JavaScript Identifiers</title>
				<link>https://www.michaelbromley.co.uk/blog/a-note-on-angular-expressions-and-javascript-identifiers/</link>
				<pubDate>Fri, 13 Mar 2015 09:39:41 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/a-note-on-angular-expressions-and-javascript-identifiers/</guid>
				<description>&lt;p&gt;A variable used in an Angular expression cannot contain a hyphen. This might be obvious to some, but &lt;a href=&#34;https://github.com/michaelbromley/angularUtils/issues/128&#34;&gt;this issue&lt;/a&gt; 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&amp;rsquo;m making a public note of it so that I may save another frustrated developer a few minutes of hair-pulling.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;In brief, I have a directive that takes an id attribute and parses it with the $parse service. Someone reported that my directive wasn&amp;rsquo;t properly evaluating this expression (simplified version):&lt;/p&gt;</description>
			</item>
			<item>
				<title>Book Review: Responsive Web Design with AngularJS; plus Musings on Technical Writing</title>
				<link>https://www.michaelbromley.co.uk/blog/book-review-responsive-web-design-with-angularjs-plus-musings-on-technical-writing/</link>
				<pubDate>Mon, 02 Feb 2015 22:05:56 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/book-review-responsive-web-design-with-angularjs-plus-musings-on-technical-writing/</guid>
				<description>&lt;p&gt;This is a review of the book &lt;em&gt;Responsive Web Design with AngularJS&lt;/em&gt; 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 &lt;a href=&#34;https://www.packtpub.com/web-development/responsive-web-design-angularjs&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2015/02/cover.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Responsive Web Design with AngularJS&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h3 id=&#34;first-impressions&#34;&gt;First Impressions&lt;/h3&gt;&#xA;&lt;p&gt;The first thing that struck me about this book is the title. &amp;ldquo;&lt;em&gt;Leverage the core functionalities of AngularJS&lt;/em&gt;,&amp;rdquo; reads the description on the cover page, &amp;ldquo;&lt;em&gt;to build responsive single page applications&lt;/em&gt;&amp;rdquo;. So what has AngularJS, I thought, got to do with responsive web design? After reading this book&amp;rsquo;s 128 pages, the answer turns out to be &amp;ldquo;not much, really&amp;rdquo;, though the author does explore some novel ways to combine the two.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Exploring ES6 Classes In AngularJS 1.x</title>
				<link>https://www.michaelbromley.co.uk/blog/exploring-es6-classes-in-angularjs-1.x/</link>
				<pubDate>Wed, 28 Jan 2015 17:10:14 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/exploring-es6-classes-in-angularjs-1.x/</guid>
				<description>&lt;p&gt;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&amp;rsquo;ll go into quite some detail about the reasoning and process behind my solution, but if you&amp;rsquo;d prefer to fast forward to the finale rather than enjoy the adventure, see the last section where I &lt;a href=&#34;blog/350/exploring-es6-classes-in-angularjs-1-x#_section-putting-it-all-together&#34;&gt;bring it all together&lt;/a&gt;, or go directly to the &lt;a href=&#34;https://github.com/michaelbromley/angular-es6&#34;&gt;demo app repo&lt;/a&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>The Programmer Dad</title>
				<link>https://www.michaelbromley.co.uk/blog/the-programmer-dad/</link>
				<pubDate>Wed, 07 Jan 2015 09:52:06 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/the-programmer-dad/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve not typed a semicolon for a couple of weeks now. I don&amp;rsquo;t mean the look-at-me-I-know-fancy-punctuation kind (there will be plenty of those here). I am of course referring to &lt;code&gt;;&lt;/code&gt;, the token that denotes the end of a statement. No, I&amp;rsquo;ve not ditched JavaScript for Python or Erlang; I&amp;rsquo;m on holiday. I&amp;rsquo;m getting back to (half of) my roots in beautiful Malaysia, and as a result I&amp;rsquo;ve not done any programming at all. I&amp;rsquo;m writing a blog post instead. Let nobody say I don&amp;rsquo;t know how to kick back and relax.&lt;/p&gt;</description>
			</item>
			<item>
				<title>One Year of GitHub and Open Source</title>
				<link>https://www.michaelbromley.co.uk/blog/one-year-of-github-and-open-source/</link>
				<pubDate>Tue, 23 Dec 2014 15:53:28 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/one-year-of-github-and-open-source/</guid>
				<description>&lt;p&gt;Next week sees the close of my first year as an active participant on GitHub and in the open source community. I&amp;rsquo;d like to mark the occasion by collecting together a few thoughts on my experience thus far.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/12/pcb-1024x746.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;At the beginning of this year I wrote about my decidedly shaky start in the world of professional software development in the essay &lt;em&gt;&lt;a href=&#34;http://www.michaelbromley.co.uk/blog/65/confessions-of-an-intermediate-programmer&#34; title=&#34;Confessions of an Intermediate Programmer&#34;&gt;Confessions of an Intermediate Programmer&lt;/a&gt;&lt;/em&gt;. For those who have read the sorry tale, it&amp;rsquo;ll come as little surprise that it was only fairly recently that I started using any kind of version control system.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Building a 3D Game with CSS &#43; HTML</title>
				<link>https://www.michaelbromley.co.uk/blog/building-a-3d-game-with-css--html/</link>
				<pubDate>Sun, 09 Nov 2014 21:06:16 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/building-a-3d-game-with-css--html/</guid>
				<description>&lt;p&gt;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 &lt;a href=&#34;http://www.michaelbromley.co.uk/experiments/css-3d-butterfly/&#34;&gt;this demo&lt;/a&gt;, and in doing so I became really curious about just how far the 3D capabilities of pure CSS could be pushed.&lt;/p&gt;&#xA;&lt;p&gt;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 &lt;a href=&#34;http://keithclark.co.uk/labs/css-fps/&#34;&gt;FPS-style 3D world&lt;/a&gt; and this &lt;a href=&#34;http://keithclark.co.uk/articles/calculating-element-vertex-data-from-css-transforms/demo6/&#34;&gt;shaded X-wing model&lt;/a&gt;. Inspired by these and a number of other &lt;a href=&#34;http://codepen.io/search?q=css+3d&amp;amp;limit=all&amp;amp;depth=everything&amp;amp;show_forks=false&#34;&gt;amazing demos on Codepen&lt;/a&gt;, I decided to see if I could put together a working 3D game using only CSS, HTML and JavaScript. That is to say, I would only use CSS and HTML to draw everything you can see on the screen - &lt;em&gt;no images&lt;/em&gt;, &lt;em&gt;no canvas&lt;/em&gt;, &lt;em&gt;no WebGL&lt;/em&gt;, &lt;em&gt;no SVG&lt;/em&gt;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>My Thoughts on ngEurope 2014 and AngularJS 2.0</title>
				<link>https://www.michaelbromley.co.uk/blog/my-thoughts-on-ngeurope-2014-and-angularjs-2.0/</link>
				<pubDate>Fri, 24 Oct 2014 08:30:18 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/my-thoughts-on-ngeurope-2014-and-angularjs-2.0/</guid>
				<description>&lt;p&gt;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&amp;rsquo;ve seen and learned over the past couple of days. This isn&amp;rsquo;t going to be a purely technical blog post. I also won&amp;rsquo;t try to be comprehensive in covering all the talks. I&amp;rsquo;ll give you my impressions of the whole experience and make a few comments on some of the particular topics and announcements that really stood out for me. If you really want to find out the detailed content of these talks, check out the &lt;a href=&#34;https://www.youtube.com/channel/UCEGUP3TJJfMsEM_1y8iviSQ&#34;&gt;videos on YouTube&lt;/a&gt; as soon as they have been posted.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Writing Multi-Element Directives in AngularJS</title>
				<link>https://www.michaelbromley.co.uk/blog/writing-multi-element-directives-in-angularjs/</link>
				<pubDate>Tue, 14 Oct 2014 09:52:55 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/writing-multi-element-directives-in-angularjs/</guid>
				<description>&lt;p&gt;AngularJS 1.2 introduced a new feature for the ngRepeat directive which allows the directive to span multiple elements, as opposed to just the single element that it is attached to. This is done by appending &lt;code&gt;-start&lt;/code&gt; and &lt;code&gt;-end&lt;/code&gt; to the directive name in your view:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-HTML&#34; data-lang=&#34;HTML&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tr&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ng-repeat-start&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s&#34;&gt;&amp;#34;item in items&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;td&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;{{ item.name }}&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;td&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tr&lt;/span&gt; &lt;span class=&#34;na&#34;&gt;ng-repeat-end&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;td&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;{{ item.innerLegMeasurement }}&lt;span class=&#34;p&#34;&gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;td&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class=&#34;nt&#34;&gt;tr&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The code above will output two table rows for each item in the collection - something that was simply not possible to achieve before.&lt;/p&gt;</description>
			</item>
			<item>
				<title>CSS &#43; JavaScript 3D Butterfly: A Case Study</title>
				<link>https://www.michaelbromley.co.uk/blog/css--javascript-3d-butterfly-a-case-study/</link>
				<pubDate>Wed, 24 Sep 2014 05:39:39 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/css--javascript-3d-butterfly-a-case-study/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve recently been having lots of fun with CSS 3D transforms and animations. As part of a demo for a talk I am giving at the ViennaJS meetup group this month, I put together a demo that showcases how some fairly sophisticated 3D effects can be achieved with pure CSS, and made interactive with a little JavaScript.&lt;/p&gt;&#xA;&lt;p&gt;_Note: The 3D effect is not currently supported by Internet Explorer. _&lt;/p&gt;&#xA;&lt;figure&gt;&lt;a href=&#34;http://www.michaelbromley.co.uk/experiments/css-3d-butterfly/&#34;&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/09/css-butterfly.jpg&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;CSS 3D Butterfly Demo&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;http://www.michaelbromley.co.uk/experiments/css-3d-butterfly/&#34;&gt;View The Demo&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Experiences Building a Website with AngularJS &#43; WP-API (WordPress API)</title>
				<link>https://www.michaelbromley.co.uk/blog/experiences-building-a-website-with-angularjs--wp-api-wordpress-api/</link>
				<pubDate>Fri, 19 Sep 2014 15:26:15 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/experiences-building-a-website-with-angularjs--wp-api-wordpress-api/</guid>
				<description>&lt;p&gt;I&amp;rsquo;ve just completed and launched a complete re-write of this website. Since the first iteration (started around nine months ago) and this new one, I&amp;rsquo;ve learned a lot about the fundamental technologies of the web: HTML, CSS and JavaScript; about AngularJS in particular; and about things like build systems and application architecture. Therefore I wanted to share a few thoughts and experiences I had building this site.&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/09/mockup-both.gif&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;this-is-not-a-tutorial&#34;&gt;This is Not a Tutorial&lt;/h2&gt;&#xA;&lt;p&gt;Attempting a tutorial on such a general topic would require a whole series of specialised posts. Instead, I am going to assume you have at least some familiarity with building websites in general and at least a little experience with AngularJS, and then take you through some thoughts and observations that may be useful in your own projects. Rather than trying to explain everything I mention, I&amp;rsquo;ll include links so that you can read more as needed.&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Note on Touch (Pointer) Events in Internet Explorer</title>
				<link>https://www.michaelbromley.co.uk/blog/a-note-on-touch-pointer-events-in-internet-explorer/</link>
				<pubDate>Thu, 07 Aug 2014 08:08:29 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/a-note-on-touch-pointer-events-in-internet-explorer/</guid>
				<description>&lt;p&gt;Using touch events in your JavaScript app is as simple as adding event listeners like this:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-JavaScript&#34; data-lang=&#34;JavaScript&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;myElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;addEventListener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;touchstart&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;myStartHandler&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;myElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;addEventListener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;touchmove&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;myMoveHandler&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nx&#34;&gt;myElement&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;nx&#34;&gt;addEventListener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;touchend&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;nx&#34;&gt;myEndHandler&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;);&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;While making an app which needs to work cross-browser with touch, I had some difficulties getting it to work with Internet Explorer. I have version 11 installed on my desktop and I also have a Windows Phone 8 which comes with IE 10.&lt;/p&gt;&#xA;&lt;p&gt;I wanted to override the default scroll handling of the page and implement my own function to handle scrolling.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Enable Rich Social Sharing in Your AngularJS App</title>
				<link>https://www.michaelbromley.co.uk/blog/enable-rich-social-sharing-in-your-angularjs-app/</link>
				<pubDate>Wed, 02 Jul 2014 06:08:36 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/enable-rich-social-sharing-in-your-angularjs-app/</guid>
				<description>&lt;p&gt;If you are building a public-facing app in AngularJS, you&amp;rsquo;ll want your users to be able to share it via social media. Indeed, for certain apps, this may be the most important channel of promotion. By &amp;ldquo;rich social sharing&amp;rdquo;, I mean something like this:&lt;/p&gt;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/07/facebook_rich_share_1.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Rich sharing on Facebook&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/07/twitter_rich_share_1.jpg&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Rich sharing on Twitter&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;As you can see, certain sites allow Facebook, Twitter et al. to fetch more than just the standard page title and image. This is achieved by using special meta tags in the HTML head. For example, Facebook and a bunch of other sites like Pinterest and Google Plus can read the &lt;a href=&#34;http://ogp.me/&#34;&gt;Open Graph protocol&lt;/a&gt;, which looks something like this:&lt;/p&gt;</description>
			</item>
			<item>
				<title>A Killer Startup Idea</title>
				<link>https://www.michaelbromley.co.uk/blog/a-killer-startup-idea/</link>
				<pubDate>Wed, 18 Jun 2014 08:20:34 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/a-killer-startup-idea/</guid>
				<description>&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/06/idlecycles_infographic.jpg&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;&lt;em&gt;&lt;strong&gt;It was 2am&lt;/strong&gt;&lt;/em&gt;, and I had been awake for about 30 minutes, bouncing my 7-month-old son to sleep. After the first few minutes of blurry-eyed swaying, I&amp;rsquo;d reached that familiar zone of high alertness and lucid thinking. Unable to go back to bed until my son was soundly asleep, yet physically unable to do anything productive with all this waking time, I started thinking about how these nightly hours could be better spent.&lt;/p&gt;</description>
			</item>
			<item>
				<title>What Makes A Good Tech Talk?</title>
				<link>https://www.michaelbromley.co.uk/blog/what-makes-a-good-tech-talk/</link>
				<pubDate>Mon, 16 Jun 2014 14:25:34 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/what-makes-a-good-tech-talk/</guid>
				<description>&lt;p&gt;When I moved to Vienna last October, I was pleased to find a very active and vibrant development community. Just this week alone, there have been at least 19 tech meetups in the city. A &lt;a href=&#34;http://www.meetup.com/find/tech/?allMeetups=false&amp;amp;radius=2&amp;amp;userFreeform=Vienna%2C+Austria&amp;amp;mcName=Vienna%2C+AT&amp;amp;lat=48.22&amp;amp;lon=16.37&amp;amp;sort=recommended&amp;amp;eventFilter=mysugg&#34;&gt;quick search on meetup.com&lt;/a&gt; reveals 46 tech-related meetup groups at the time of this writing, and there&amp;rsquo;s even a &lt;a href=&#34;http://www.devs-austria.org/&#34;&gt;website dedicated to listing all the meetups&lt;/a&gt; each week. During my time here so far, I&amp;rsquo;ve found the local tech meetups a great way to learn and improve as a developer, as well as a way to get involved in the community and get to know some cool people in a new city.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Site-Wide Split Tests With Google Analytics Content Experiments</title>
				<link>https://www.michaelbromley.co.uk/blog/site-wide-split-tests-with-google-analytics-content-experiments/</link>
				<pubDate>Fri, 13 Jun 2014 07:39:28 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/site-wide-split-tests-with-google-analytics-content-experiments/</guid>
				<description>&lt;figure&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/06/ga.png&#34;&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;the-problem&#34;&gt;The Problem&lt;/h2&gt;&#xA;&lt;p&gt;You use Google Analytics on your website and you want to do an A/B or multivariate test on some site-wide change, rather than just testing variations of a single page. An example - and the scenario which lead me to devise this solution - was testing how the presence or absence of the logo of a well-known security company in the footer of an e-commerce site would affect sales, the footer appearing on every page of the site.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Paginate (almost) Anything in AngularJS</title>
				<link>https://www.michaelbromley.co.uk/blog/paginate-almost-anything-in-angularjs/</link>
				<pubDate>Fri, 09 May 2014 19:46:45 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/paginate-almost-anything-in-angularjs/</guid>
				<description>&lt;p&gt;The &lt;code&gt;ng-repeat&lt;/code&gt; is probably one of the most oft-used of all the core AngularJS directives, and with good reason. It offers amazing flexibility and is probably one of the first things to really &amp;ldquo;wow&amp;rdquo; you about the framework.&lt;/p&gt;&#xA;&lt;p&gt;Whenever I&amp;rsquo;ve used &lt;code&gt;ng-repeat&lt;/code&gt;, however, I&amp;rsquo;ve usually also run in to the need to paginate the items being repeated. It seems like there should be some way to do it that is as simple and intuitive as the &lt;code&gt;ng-repeat&lt;/code&gt; directive itself.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Auto-breadcrumbs with angular-ui-router</title>
				<link>https://www.michaelbromley.co.uk/blog/auto-breadcrumbs-with-angular-ui-router/</link>
				<pubDate>Fri, 04 Apr 2014 13:19:51 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/auto-breadcrumbs-with-angular-ui-router/</guid>
				<description>&lt;p&gt;For those that don&amp;rsquo;t know, &lt;a href=&#34;https://github.com/angular-ui/ui-router&#34;&gt;angular-ui-router&lt;/a&gt; is a router for AngularJS that replaces the one that comes built-in, and adds a whole lot of  powerful features.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve been using it on a project I&amp;rsquo;m working on and I&amp;rsquo;ve found the ability to nest routes to be really powerful and a nice way to organise routes (or &lt;em&gt;states&lt;/em&gt;, as they should be more correctly called in the context of ui-router). I needed a way to auto-generate breadcrumbs based on this hierarchy of states, but didn&amp;rsquo;t find any pre-packaged solution, so I put together my own. Here&amp;rsquo;s a demo, and then I&amp;rsquo;ll explain some features:&lt;/p&gt;</description>
			</item>
			<item>
				<title>Simple 1D Noise in JavaScript</title>
				<link>https://www.michaelbromley.co.uk/blog/simple-1d-noise-in-javascript/</link>
				<pubDate>Fri, 14 Mar 2014 07:15:00 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/simple-1d-noise-in-javascript/</guid>
				<description>&lt;p&gt;I am working on a side project in which I needed to generate some &amp;ldquo;random&amp;rdquo;, or more accurately, unpredictable motion. At first I tried using the &lt;code&gt;Math.random()&lt;/code&gt; method, and using those values to set the position of my moving element. This, of course, looks terrible because the element will simply jump around to various points, &amp;ldquo;teleporting&amp;rdquo; between them. After searching around for a bit (one of those slow search processes where you don&amp;rsquo;t really know what you are looking for) I figured out I needed some kind of noise function.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Confessions of an Intermediate Programmer</title>
				<link>https://www.michaelbromley.co.uk/blog/confessions-of-an-intermediate-programmer/</link>
				<pubDate>Tue, 18 Feb 2014 18:14:52 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/confessions-of-an-intermediate-programmer/</guid>
				<description>&lt;p&gt;I am an intermediate programmer.&lt;/p&gt;&#xA;&lt;p&gt;I have a pretty good grasp of the basics. I have made enough mistakes to have a good idea why they &lt;em&gt;were&lt;/em&gt; mistakes. I am aware that there is a lot that I need to know more about. Crucially, I have some idea of what those things are, and I am actively and energetically working on improving.&lt;/p&gt;&#xA;&lt;p&gt;It has taken a while for me to get to the point where I am confident enough to admit that I am only average in ability. I no longer feel the need to hold second-hand opinions that I don&amp;rsquo;t really understand. I&amp;rsquo;m not so afraid of being found out when I don&amp;rsquo;t know about something.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Audio Visualization with Web Audio, Canvas and the Soundcloud API</title>
				<link>https://www.michaelbromley.co.uk/blog/audio-visualization-with-web-audio-canvas-and-the-soundcloud-api/</link>
				<pubDate>Mon, 27 Jan 2014 13:54:41 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/audio-visualization-with-web-audio-canvas-and-the-soundcloud-api/</guid>
				<description>&lt;figure&gt;&lt;a href=&#34;http://www.michaelbromley.co.uk/experiments/soundcloud-vis/#muse/undisclosed-desires&#34;&gt;&lt;img src=&#34;https://www.michaelbromley.co.uk/media/2014/01/Untitled-4.jpg&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;h4&gt;Audio visualization&lt;/h4&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;&lt;strong&gt;Update 05/02/14&lt;/strong&gt; - This demo got featured on Google&amp;rsquo;s &lt;a href=&#34;http://www.chromeexperiments.com/detail/soundcloud-visualizer/?f=&#34;&gt;Chrome Experiments&lt;/a&gt; website! This has generated a lot more interest (as in hundreds of views per day rather than one or two per week) so hopefully we will see some improvements from the community via the &lt;a href=&#34;https://github.com/michaelbromley/soundcloud-visualizer&#34;&gt;GitHub repo&lt;/a&gt; - I&amp;rsquo;ve already had a first pull request adding some very cool new functionality!&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Update May 2015&lt;/strong&gt; - As of latest versions of Chrome (42+) and recent versions of Firefox, changes in the way cross-origin audio is handled mean this demo may not work. It&amp;rsquo;s a well-known issue for everyone who&amp;rsquo;s used the SoundCloud API for JavaScript visualizations (there are a lot of us). I&amp;rsquo;m working on a new project to bring this (and many other) JS/Canvas visualizations onto your computer, allowing you to visualize the output of your sound card directly and thereby bypassing all the problems associated with streaming over the internet. Watch this space&amp;hellip;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Using Disqus with AngularJS</title>
				<link>https://www.michaelbromley.co.uk/blog/using-disqus-with-angularjs/</link>
				<pubDate>Fri, 24 Jan 2014 16:41:37 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/using-disqus-with-angularjs/</guid>
				<description>&lt;p&gt;Getting the comments platform &lt;a href=&#34;http://disqus.com/&#34;&gt;Disqus&lt;/a&gt; to work with your Angular-based website is probably not going to be as simple as dropping in the default Disqus code snippet into your HTML template.&lt;/p&gt;&#xA;&lt;p&gt;Due to the way Angular loads its templates, it is likely that the Disqus script will not get executed and you won&amp;rsquo;t see the comments box on your page.&lt;/p&gt;&#xA;&lt;p&gt;I searched on Google to see if there was a documented way to get Disqus to work with Angular, and I came across &lt;a href=&#34;https://github.com/kirstein/angular-disqus&#34;&gt;this project on GitHub&lt;/a&gt;. Unfortunately it has the requirement that you need to use hashbang (#!) URLs in order to make it work, and also it seemed a bit more than I needed. I just wanted a very simple solution to getting a Disqus widget on my page.&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Overview of the ng-conf 2014 Presentations</title>
				<link>https://www.michaelbromley.co.uk/blog/an-overview-of-the-ng-conf-2014-presentations/</link>
				<pubDate>Wed, 22 Jan 2014 19:10:39 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/an-overview-of-the-ng-conf-2014-presentations/</guid>
				<description>&lt;p&gt;Although I couldn&amp;rsquo;t be there in person, I just finished watching the &lt;a href=&#34;http://www.youtube.com/user/ngconfvideos&#34;&gt;entire ng-conf on YouTube&lt;/a&gt;. Here is my overview of what I learned and what I enjoyed from the presentations. To give you an idea of my perspective, I&amp;rsquo;m a relatively new AngularJS developer. I&amp;rsquo;m getting comfortable with the basics and I&amp;rsquo;m about to embark on a pretty large-scale Angular project. So my main interests in this conference were learning about building at scale, cementing my understanding of the basics, and gaining a deeper appreciation of how all the magic in Angular actually works.&lt;/p&gt;</description>
			</item>
			<item>
				<title>An Ordinal Date Filter for AngularJS</title>
				<link>https://www.michaelbromley.co.uk/blog/an-ordinal-date-filter-for-angularjs/</link>
				<pubDate>Sun, 19 Jan 2014 15:29:46 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/an-ordinal-date-filter-for-angularjs/</guid>
				<description>&lt;p&gt;The &lt;a href=&#34;http://docs.angularjs.org/api/ng.filter:date&#34;&gt;AngularJS date filter&lt;/a&gt; is used to format a time stamp into a human-readable date string. For this website, I wanted to be able to format the date so that the day of the month included the English ordinal suffix, 1st, 2nd, 3rd, 4th etc. Having worked with PHP&amp;rsquo;s date() function, I expected there to be a format string for this very thing, but was surprised to see that there isn&amp;rsquo;t.&lt;/p&gt;</description>
			</item>
			<item>
				<title>How I got Zurb Foundation 4 to work with IE8 with zero lines of code</title>
				<link>https://www.michaelbromley.co.uk/blog/how-i-got-zurb-foundation-4-to-work-with-ie8-with-zero-lines-of-code/</link>
				<pubDate>Sun, 19 Jan 2014 06:14:03 +0000</pubDate>
				<guid>https://www.michaelbromley.co.uk/blog/how-i-got-zurb-foundation-4-to-work-with-ie8-with-zero-lines-of-code/</guid>
				<description>&lt;p&gt;I recently did a re-design of a medium-sized e-commerce website with version 4 of the excellent Foundation framework from Zurb.&lt;/p&gt;&#xA;&lt;p&gt;Right at the very end of the project, I realised that my carefully-crafted design completely broke on IE8. &lt;strong&gt;It literally looked like it had been run over by a bus and had flattened into a big tyre-track of dead webpage running down my monitor.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;butwhy-even-support-ie8&#34;&gt;But&amp;hellip;why even support IE8?&lt;/h2&gt;&#xA;&lt;p&gt;Good question. The Zurb guys themselves made the decision to drop support from version 4 onwards. With the added baggage and need for polyfills that comes along with supporting legacy IE, many projects are now deciding to drop support altogether, and move into the auto-updating future. After all, the only people who are actually locked into using IE 8 are those still on Windows XP. And hell, even they could just download Chrome or another modern browser if they wanted!&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
