Registration for Iowa Code Camp is now open!

Registration for Iowa Code Camp is now open. The event is completely free for anyone who wants to attend and includes breakfast and lunch onsite and also an after party hosted by Robert Half Technology.

The event is Saturday, May 9th from 8 am to 5:30 pm at the Hotel Kirkwood in Cedar Rapids. There will be 5 blocks of sessions with 7 sessions going on at a time, so you’re sure to find something you want to attend during each time slot.

There are 100, 200 and even a few 300 level sessions covering topics such as Agile methodologies, DevOps, Ember, Git, Go, Kafka, R and Responsive Web Design. If you attended Iowa Code Camp last November in Ankeny there are many speakers who presented that are presenting again this year on different topics.

I’m speaking at Iowa Code Camp!

I’m happy to announce I’ve been selected to speak at Iowa Code Camp, May 9, 2015 at The Hotel Kirkwood in Cedar Rapids. If you’re interested in attending the cost is absolutely free for anyone wanting to attend and registration will be open shortly. I’ll have a follow up post once registration is open.

I will be speaking about Responsible Responsive Web Design. In the 75 minute talk I’ll be covering what responsive design is and how to build a website using it. I’ll also cover how to design a responsive website responsibly – How you can delivery a consistent user experience to users on small and large screen devices and how to decrease your website’s page size quickly and effectively to make your website load fast even on slow internet connections. Lastly, I’ll cover how to use the newest HTML5 specifications even on browsers that do not have native support.

A big thanks goes out to Scott Jehl, who wrote the book Responsible Responsive Design that inspired this talk.

Checking an HTML page for duplicate IDs using JavaScript

A couple years back I wrote a post about Checking an HTML page for duplicate IDs using jQuery. A pretty useful tool when you need to ensure IDs on a page are unique. The downside to that code was that it required jQuery and the app I’m currently working with does not use jQuery, so I modifed the existing code to write a pure JavaScript solution that does the same thing.

var allElements = document.getElementsByTagName("*");
var allIds = {};
var found = false;
for (var i = 0, n = allElements.length; i < n; ++i) {
  var id = allElements[i].id;
  if (id) {
    if (allIds[id] === undefined) {
      allIds[id] = 1;
    } else {
      found = true;
      console.warn('Duplicate ID #' + id);
if (!found) {
  console.log('No duplicate IDs found');

All you need to do is create a new bookmark with the following as the URL

javascript: (function() {var allElements = document.getElementsByTagName('*');var allIds = {};var found = false;for (var i = 0, n = allElements.length; i < n; ++i) {var id = allElements[i].id;if (id) {if (allIds[id] === undefined) {allIds[id] = 1;} else {found = true;console.warn('Duplicate ID #' + id);}}}if (!found) {console.log('No duplicate IDs found');}})();

Or you can simply drag the bookmarklet below onto your bookmark toolbar

Duplicate ID Checker

Update: Ryan Guill let me know he wrote something similar and he’s saved it as a Gist. It’s interesting seeing the different approaches to accomplish the same thing.

Firefox Open Pop Ups as Tabs

We have an application at work that was built for IE 5.5, so this may have made sense at some point, but it opens up 3 new windows before you actually get to the useful part of the application. In Chrome you can right click on the title bar and choose “Show as Tab”, but Firefox doesn’t have that option. Thankfully there’s an about:config setting you can change to force all pop ups to render into a tab rather than a new window.

If you’re not familiar with about:config simply type about:config into the address bar and hit go, just like it’s a normal url. You will likely get a warning about “voiding your warranty”. Click “I’ll be careful, I promise!” and the search for newwindow. You will see an entry with a Preference Name of “” and a value of 2. Change that value to 0 and all pop ups will open as tabs.