I’m getting things going with fundraising for my Chicago Marathon team and I want to do something more than just ask for money. To that end, I’m going to offer a couple things a la Kickstarter-type premiums. One is an par-tay in the awesome Crawford-Langenberg Garage Darts and Beer Emporium, and the other is putting my mad DJ music curation skills to work for you.

Beer and Darty Party
The event is going to be a craft beer & darts party in our garage at our home in Oak Park on Saturday June 17th. This is a reprise of a fundraiser we hosted for Irving School a couple of summers ago that was super fun. I’ll provide a selection of beers and food (homemade bbq sliders and a nacho bar). We’ll play as much darts as we can manage before the beer drinking compromises safety.

If you would like to attend, please send me a donation of $25 per person (or more if you like❤️) by visiting my fundraising page at the link below:


Mix Tape
Okay. Not actually a Mix Tape. I’m just old and continue to call what are playlists mix tapes.

Two  levels here.

  1. Actual Mixed Playlist: For a contribution of $20, I will curate a playlist personalized for you and will make a 60 minute continuous play mix for you which I will deliver to you on a real live actual compact disc. I will also give you a link to the unmixed source Spotify playlist.
  2. Spotify Playlist: For a contribution of $10, I will curate ~60 minute Spotify playlist personalized for you.

If you want an idea of what I listen to, you can find me on Spotify at mattienodj. My most recent playlist is at https://play.spotify.com/user/mattienodj/playlist/2U6B14ZkjTBrbSivSelxa8

Just having a look at some of the heart rate charts from a few runs. Interesting to see the difference some time has made and what changes with pace.

This first is ~ 5K on a treadmill at just under 10 min/mi pace over. I usually have a 1% incline going at minimum for the whole run. This was a fairly casual run.

This below was a faster run. Just slightly over 9 min/mi pace.
And the yellow and red guy at the bottom here was an actual 5K race at just under 9 min/mi pace. The run above was 28m27s and the below was 28m10s. Close enough for comparison for me. The Race was at the beginning of December, the run above was mid-January.
I know I’ve gained a bit of cardio fitness back, but if I was a betting man, I’d say that the major difference between these to runs was the difference made by 16 pounds of body weight. While I had some spikes over 90% (the red), this was a comfortable run. For the race on the other hand, I was busting ass with the help of some good old fashioned race adrenaline. You can see I was at 80% of my max HR right away and just slowly crept up over time. In the run above, I was able to slow down and take a breather and still catch back up to nearly the same pace without overdoing my HR.
So, if there is a point to this post, I think it is that counting calories and dropping some pounds is a pretty solid way to improve your running. It’s good for me to recognize, because typically when I train for distance, I eat like a total asshole cause I figure I can just burn it off. I’ll be interested to see how I can progress with watching what I eat and training.
And here’s a couple more improving on pace. This is from Saturday, January 22nd. Getting on 2 months after the race above which again was a 28m10s 5K. The first 27m45 below is 5K at the beginning of an 8K run.
And this below is a 5K the day right after the above at 27m35s. So pushing the pace a bit and eschewing recovery. Monday was my rest day, so I’m interested to see what things look like when I run tonight. Looking at these charts now, I know for sure that I can push to pace more. I think my goal tonight will be to get things under 9min/mile for the whole run. At 5K, I want to keep pushing down to 8m30s at 5K and then push that distance and pace out to 10K. If I can keep that up over the next couple months, I’m feeling good about crushing my Shamrock Shuffle PR in April.

At the beginning of December, I decided I needed some goals. A marathon is a pretty good goal in and of itself, but I wanted to do fundraising this time around. Yes, partly to avoid the damn lottery, but mostly because I like adding fundraising goals on top of distance goals. Opportunity presented itself in the form of an invite to run with the Chicago Coalition for the Homeless’ Team to End Homelessness.

So. Now not only do I have a running goal. I have a great charity to fundraise for, and I get to do it with friends and neighbors. This will be my 4th time training for the race and, body willing, my 3rd time running. It will be my first time ever running a marathon as part of a charity team.

I’m excited to be a part of the Team to End Homelessness, and to support the Chicago Coalition for the Homeless (CCH). They are the only non-profit in Illinois dedicated to advocating for public policies that effect positive change toward reducing homelessness in our city. Their organization leads strategic campaigns, community outreach, and public policy initiatives that target the lack of affordable housing in metropolitan Chicago and across Illinois.

There are over 100,000 people homeless in Chicago and over 18,000 are children. Of these children over 10,000 are on their own, alone. ALONE. I want to do something about that. If you do too, please consider supporting my fundraising effort by visiting my team page at http://chicagohomeless.donorpages.com/ChicagoMarathon2017/mattienodj/


I’ve been working my way back from injury over the last year. At the start, it was pretty disheartening to realize how much fitness I’ve lost. I went almost all of 2016 just kind of dragging ass and not working out nearly enough. At the beginning of December, I just kinda got pissed at myself and decided I needed to get serious. I stopped drinking beer, started counting 1500 calories a day and training in earnest. I’ve been doing a ton of heartrate training to really zero in on fat burning and building strength and endurance. The first 6 weeks have been really successful.

I’m loving heart rate training with my MYZONE monitor. It is really working well for me.

The chart below is 6 miles at just under an hour. I’ve been working up to this with a lot of interval training. Basically, running about 10min/mile pace on the treadmill and then speeding up til I get into 90% of my max HR, then backing off down to 65% and repeating. I’ll pause at 60 minutes now and try to get my speed up while maintaining this nice yellow graph and some runs at this pace trying to get more of the graph down into the green. I really like being my own science experiment. It’s fun.



My first ultra relay was a blast. I’m definitely not feeling my best right now, but I’m quite pleased with myself for knocking out 33.8 miles of running with a team that finished the 196 mile relay in 31 hours. It was a great team effort and the whole experience was awesome.

I’m really grateful for my prior captaining experience and the planning I was able to do based on past Ragnars. The van was well stocked with water, Vitamin Water and Gatorade, we had a good amount of snacks and the tailgate grill & camp coffee setup were priceless additions.

The pop-up changing/shower tents worked out super well. I kept the stink off and didn’t get any major rashes.

If I had one thing to change, it would have been to train up to the full mileage. I was training on 3 X 10 miles as my last long runs. My actual legs were 12.6, 11.8 and 9.4. I went with the mentality of training up close to target distance but not quiet and that just didn’t work for the relay. Net time I ultra, I’ll definitely put some more mileage in my training plan.


Howdy Folks! I put together this handing list of Google Maps links with the GPS coordinates from the Rag Mag. I hope they come in handy for those of you that can actually get phone signal in rural Wisconsin. 🙂
Exchange 1
Exchange 2
Exchange 3
Exchange 4
Exchange 5
Exchange 6
Exchange 7
Exchange 8
Exchange 9
Exchange 10
Exchange 11
Exchange 12
Exchange 13
Exchange 14
Exchange 15
Exchange 16
Exchange 17
Exchange 18
Exchange 19
Exchange 20
Exchange 21
Exchange 22
Exchange 23
Exchange 24
Exchange 25
Exchange 26
Exchange 27
Exchange 28
Exchange 29
Exchange 30
Exchange 31
Exchange 32
Exchange 33
Exchange 34
Exchange 35

Screen Shot 2014-03-24 at 7.31.27 PMGame Day Monitor is a fun side project I’ve been working on with Eric Bryning who is the volunteer coordinator for our AYSO region here in Oak Park. Eric asked me for help prototyping an application to capture feedback from AYSO games.

It’s a simple form that volunteer monitors can use to submit reports to help gather data about the behavior of parents, coaches and referees at the games. The core values of AYSO are focused on providing a fun, family environment to help instill a love for the game into kids, whether they are brand new to the game or well on their way to a lifetime of playing. I’m glad to be helping with this project because it will help make it easier for the volunteers that keep the league running to gather data and to identify problems with poor sportsmanship or bad parent behavior. It’s a bummer that this thing even needs to exist, but I’m always pleased when I can make a useful tool from what was a email-based or word-of-mouth reporting. Moving forward the league will be able to collect data in a database that they will be able to use more effectively.

We’re starting very simply with a release for the spring season and as we gather data, we’ll start to layer on user management and reporting as needed. I started the project by wireframing the site out in Web Flow. As I’d hoped, by doing the initial design work in Web Flow, I ended up with a responsive prototype that didn’t take much more work beyond wiring up the PHP for the data storage and laying on some CSS to style the form controls. All told, I was able to get a viable tool ready with an evening’s work.

Screen Shot 2014-03-24 at 9.58.27 AM I’ve been helping my friend Kara Eastman on a landing page and some identity work for her campaign for a seat on the Omaha Metro Community College board. It’s been a great project for me, because it has been a mix of some design work along with an opportunity to try out Stripe payments and Perch CMS together as a lightweight set up for a landing page to collect campaign contributions.

Stripe was very easy to implement. As the rave reviews of my friends have led me to expect, the signup was unbelievably quick. I spent more time getting through the verification process for the SSL certificate on the domain than I did getting Stripe tied to the campaign’s bank account. So cool.

I needed to customize a bit, so I went the route of using Stripe’s PHP library to create my own charges. If you have really simple needs, they have a super simple popup JS implementation for checkout that only needs a line or two of code to implement.

The API is straightforward and well documented. There are lots of examples for PHP, and from what I could tell poking around Stripe’s docs, GitHub and Stack Overflow there is Ruby, Python and other implementations to choose from. Stripe give you Javascript to implement which will generate a token on your page which is then passed to the PHP to create your actual charges.

My past experiences with commerce gateways have involved days of back and forth with support, out of date or esoteric documentation and general pains in the butt all around. Stripe is a dream. I’m hooked for life.

My other new love is Perch. I bought a license for a personal project a while back and never got around to using it. Like Stripe, the thing that hooked me was the documentation and ease of implementation. I’ve been after a way to move past WordPress as a go to for a long time. I’ve long felt that what I want out of a CMS is to be able to start from scratch without a predefined content paradigm and to start from writing some good clean static HTML as a base for my templates. I also want to be able to make the barest minimum of administrative functionality. Perch lets me do all this.

ke_mccFor Kara’s landing page, I started with a simple Bootstrap-based landing page template. Currently, some of the content is static HTML and only a couple areas are managed through the CMS. I’ve only created content managed areas for things that are likely to be edited. I added a custom form for the Stripe integration and set up a Google font that is a close relation to the Lubalin Graph slab serif I’m working with for Kara’s logotype.

This was a fairly quick turnaround to get live, but the pieces are all easy to implement. I expect that the Bootstrap, Perch, Stripe recipe will be my go to setup the next time I need to build a landing page or microsite.

“HTML5, or as some people call it, HTML” – Jon Buda.

Just about a year and a half ago, I had the distinct pleasure of hosting my first ever Chicago HTML5 Meetup at the COOP coworking space in Chicago. Our presenters were Jon Buda and Sam Rosen. Sam presented the business case and design thinking behind Desktime (www.desktimeapp.com) and Jon Buda presented the tech stack and dev methodology.

It was a great night. A seminal moment for the Chicago HTML5 Meetup that set the tone for the blend of strategic, design and tech content that has become a staple of our monthly events and our great mixed membership.

I thoroughly enjoyed the event, but the thing that sticks out in my mind more than anything from that evening is the quote from Jon above. Not least because I was one of the folks on the losing end of the HTML5 v HTML naming argument.

Which brings to mind another statement on naming. At Brad Frost’s session at SXSW 2013, he was talking about the debate over what to call what we all now just think of as Responsive Web Design and mentioned AJAX as a great example of another epic naming battle. The thing I remember, his point, was that folks might have been freaked out over what to call AJAX, but nobody, NOBODY was arguing the fact that we needed a browser standard for the asynchronous exchange of data using Javascript.

Likewise, we might complain about the naming or even the contents and recommendations contained in the HTML5 specification, but we can all agree on the need for a standard. Well, most of us anyway.

Even though it’s still not fully supported everywhere, and still evolving, the buzz and adoption of HTML5 as a defacto standard has had a huge impact on our industry. The support for HTML5 by the browser vendors has resulted in significantly reduced uncertainty. We’ve moved out of Beta v VHS territory to a place where the risk of investing time, resources and money are much lower risk.

As a result, you can now find HTML5 in the dashboard of cars, in refrigerators, in smart tv systems and many other places where proprietary device native development once would have been the sole option for building an application.

I might be biased, but given that I’ve been a web developer since that was ever a thing one could do with their life, being able to use my core skillset to create things that might be just as likely to appear on a desktop computer screen as a vending machine or an in-dash entertainment system feels like a really good thing.

As a result of this new found stability, I’ve seen my peers turn their attention away from figuring out how to fix bugs in browsers that have dropped the ball on this feature or that. I don’t believe we’ll ever get away from progressive enhancement or graceful degradation. We need to do these things, but having clarity around what the browser vendors support now and at least a general idea of what they will support in the future means that progressive enhancement can legitimately be considered as more of an afterthought than the main event it used to be.

Freed from the drudgery of fixing bugs in browsers, and armed with the power of Github, we’ve seen more and more folks turning their attention to creating new tools to make our jobs easier and more efficient so that we can focus on even more innovation and the building of cool shit.

Good times my friends. Good times.

Our first event of the year was a smashing success.The theme for the night was Show and Tell. We featured multiple presenters given 10-15 minute talks about their favorite tools and techniques.

Attendance was great and the presentation format was very well received. I think this is due in large part to some great content that, while well within the interests of the group, covered a decent range of topics.

I kicked things off with an overview of one of my tools for remote debugging and analysis, Charles Proxy (http://www.charlesproxy.com/). Charles has some great features that allow you to observe and manipulate HTTP requests and responses. My favorite features are it’s ability to mirror content to a local directory while browsing a site, along with Charles great throttling and remapping features. The demo is well worth checking out for anyone that is interested in tinkering with server traffic without the learning curve off messing with network config files.


My co-organizer Mark Rickmeier presented some of his favorite applications from the ever-evolving landscape of mobile prototyping tools. There are new tools coming to market regularly so depending on your needs, you have lots of options. My favorite of the tools he showed is POP (https://popapp.in) which is a tool the allows you to sketch on paper and then to capture your sketch and add interactivity on your mobile device.

Adam McCrimmon covered old school, low budget prototyping with PDF files. He aptly pointed out that since a lot of folks are already
producing PDFs to present to clients, the barrier to providing at least rudimentary prototypes is pretty much non-existent. This was a reprise of a presentation he gave at Prototype Camp in Chicago. He has posted some resources here http://amccrim.com/protopdf

Mike Gibson from Table XI, who currently holds the #1 spot on my list of favorite presenters cover the Autoprefixer tool for parsing CSS and adding vendor prefixes based on Can I Use data. Check that out on Github – https://github.com/ai/autoprefixer

Matt Wagner also from Table XI, shared some tools and techniques for keeping remote teams working together smoothly including one of my favorite new tools Screen Hero (http://screenhero.com/) and the new multi-user chat client Slack (https://slack.com/)

Our last speaker of the night, Andy Richardson from Kohactive introduced Middleman (http://middlemanapp.com/) a tool for outputting static sites from modern templated front-end coding tools.

Big thanks to Zach Schneider for live tweeting. He posted recap at http://bitly.com/bundles/zachschneider/7