Accessibility

At the Apple event a few weeks ago they began with a short video on accessibility.

I’ve learned a lot about accessibility on iOS over the last few years. Apple’s products are some of the most accessible in the world and for all the frustrations I have with Apple, this is definitely one of the high points I’m proud of.

I was also really pleased to see our own Philly CocoaHeads give accessibility some attention at a recent Side Project Saturday event. A group of people worked on improving the accessibility of the Wikipedia iOS app.

Group of Programmers using Voice Over on iPhone

Anyways, I think the time is right for development agencies and indy consultants to put accessibility front and center. For them to say loud and proud, any app you hire us to build will have some basic level of accessibility.

Some people whom I bounced this idea off of thought it would be bad for sales. Maybe. But these are the probably the same clients who question code review because they think it is a similar waste of money. At the end of the day we all have have some level of standards onto which we execute our craft. People hire us because they can’t build software. They need us to point them in the right direction.

Somewhere out there, a construction agency is in a discussion whether or not to add a wheelchair ramp to the current project. Some people will add it because it’s required by law, others will add it because it’s the right thing to do.

The software industry moves incredibly fast, maybe even too fast. We don’t have regulations and inspectors like other industries. We have to regulate ourselves. The tools to improve access for our creations are ready. They work really well. They sit there, waiting for us to use them.


I don’t want to come off like I’m some know it all when it comes to accessibility. If you need real help with your app, contact my friend Austin who does consulting on the subject.

I do have some experience enhancing a few personal iOS apps and hope to make it a larger priority with my upcoming side project. Like a lot of things, I think the goal here is for continual learning and small, iterative improvements.

Dongle Emotions

After letting my bedroom / office get out of hand, I took some time today to clean up and get organized. I wrapped and grouped up my wires and even opened up some of the new USB3/Thunderbolt3 dongles I had ordered to go along with my new MacBook Pro order.

Now I don’t want to get into the current dongle drama surrounding the new MacBook Pro — but I do have a funny story.

A few years ago I worked as a self-employed contractor doing iOS work. I was at a meeting with a new prospective client. Overall the meeting went well and it looked like we’d be working together. At the end I was packing up all my gear and there was an accusation that I had taken their projector dongle. I was fairly certain I was in the right and this was a dongle from my laptop bag but did I really want to risk this multi-month contract for a $30 dongle? It was something out of a Seinfeld episode. Suffice to say, I left the dongle with the client that day to ease tensions.

Don’t mess with another man’s dongle.

These days I mark all my dongles (and I need a ton of them as a traveling instructor not knowing what a room will have) with “ZORN” to alleviate confusion.

Pre-“Hello Again” Mac Event Thoughts

Having been a long time Mac user and developer it’s been very disappointing to see Apple ignore the hardware release cycle of the Mac platform over the last few years. I’m really anxious to see what’s going to come of the “Hello Again” event this week and I might even buy a new Mac depending.

Current Mac-state of Mind

So my main personal machine is a 2011 maxed-out iMac. I bought it after waiting and waiting for a proper Mac Pro update in 2011 that was never to come. Overall I’ve been pretty happy with the iMac. I have had to do a USB storage dance with some backups and media drives but overall it’s been a workhorse, with tons of days of Xcode and Warcraft under its belt.

Other Macs in my arsenal include:

  • A 2011 Mac mini which at times has served as a CI box but as of now is dormant (might be resurrected depending how CI plans turn out for my side project).
  • A 2012 Macbook Air which I use situationally. Recently for beta testing 10.12 over the summer and the occasional Philly CocoaHeads video capture.
  • My work provides me a high end Mid 2014 15-inch Macbook Pro. I’m trying to do a better job of keeping that machine in kind of a white room state just for work stuff with mixed success.

I also have a 27-inch Thunderbolt display and a 27-inch Dell display which I use to extend my Macs in various ways at different times.

To Upgrade or Not?

Technically speaking my 2011 iMac is working fine. It does have some issues: occasionally the wifi likes to disconnect, there are some color issues spreading out from the lower left corner of the display, the DVD drive broke (I bought an external one to supplement the occasional need) and the 256 GB SSD is not large enough to hold all my stuff anymore so I have an awkward HD layout with USB storage. The iMac also runs very hot. I suspect part of this is dust build up but have not investigated too much. While annoying, none of these issues are blockers.

The first big upgrade question is laptop or desktop? I’ve always leaned on the desktop experience for pure power but there are many things that push me towards a laptop as my main personal machine right now:

  • I could setup a very “swap” friendly environment that would allow me to have a home work station letting me plug in my personal or work laptop as needed.
  • Since I have a Gaming PC now I don’t need the graphic power of the Mac as much making laptop more feasible.
  • I am traveling more — more conferences, more work trips, single days at IndyHall (instead of a full time desk and me leaving the iMac there). A personal laptop for these days would help me with that home/work separation on the company laptop.

Other welcome improvements:

  • Retina Display. My iMac does not have a retina display and my hope would be that a new laptop from Apple would support this natively as well as support a future retina external monitor connection.
  • More SSD storage. Would be nice to consolidate my external drives into one big SSD.
  • If I go laptop, no need to upgrade two machines every year with a new OS, keeps all the software/licenses in sync.
  • Complier speed improvements. From a numbers perspective my iMac has a good CPU but I would hope improvements to the bus speeds and other architecture improvements would see some improved Xcode complier times.

I feel like in the process of writing this I’ve talked myself into a upgrade but we’ll see what comes out of Apple on Thursday. Enjoy the show.

You Don’t End Schindler’s List with a Pepsi Ad.

It’s Friday. I’m actually a little low energy and so I decide to go out and pick up a late lunch. I’ll eat it in my car listening to a podcast and get some outside / sun time. The podcast of choice is Startup, a podcast about starting a business to make podcasts. It’s a good show, with interesting stories and high production values. It’s in season 4 so we are well past the pitch stuff and into the real forced growth issues that all VCs seem to face.

Today was a particularly powerful episode of Startup with lots of emotion. It even had me a little teary eyed. Then the end came, but it was not the true end. We still had an upbeat MailChimp ad, read by the same podcaster who just seconds ago had us all in tears.

It was one of the most drastic shifts of emotional voice I can remember and it had me rolling my eyes with bewilderment.

You don’t do this. You don’t play the heart strings of your audience and then shove an ad down their throat while they are in the moment. You don’t end Schindler’s List with a Pepsi ad.

The producers of this show are professionals. They are listening to these audio cuts many, many times over, but I suspect they aren’t doing it with the Mailchimp ads weaved in. Maybe they should.

The lesson here, once again is empathy. We need to constantly work to put ourselves in the shoes of our audience. If you have something important or emotional to share with your audience, you don’t weave it into your revenue system. I totally accept the need to use ads for some systems but if you must show ads, maybe for a show with an arc like this you show an extra one in the beginning so you can end clean? Doing it like this just seems emotionally tone deaf for me.

Documentation for NSViewController init(nibName:bundle:) is incorrect

Radar: #28802828

Documentation for NSViewController init(nibName:bundle:) is incorrect from Mike Zornek on Vimeo.

I say the wrong thing a few times in this spontaneous recording but hopefully there is enough here to reveal the problem. Not a major problem by any means but the Mac frameworks need all the love they can get so let’s be sure to report the changes we want to see.

A Few Dental Stories Amongst Subscribers

One of my guilty (and time consuming) pleasures is YouTube.

I watch a lot of YouTube. Mostly video game and movie stuff, lots of WoW channels (even though I’m not playing much right now), a few Let’s Players and of course all of the upcoming Pokemon Sun and Moon hype.

Well overtime, you really come to connect with these hosts, many of which have stories of historically working hard service jobs to now, finally being able to do something they love for a living. You root for these people. Sometimes a life event happens to them, and since they are already sharing so much they share that too.

Yesterday I watched a video from a wise cracking WoW player by the name of Asmongold. In it he shared his ongoing trouble with his teeth, his early inability to treat it, his shame of the problem, the trouble it’s caused and how he is on the path to get things fixed. It hit home for me as I’m in the same boat.

My Own Dental Story

When I was working for myself, I was making money but not tons of money. I had emergency medical insurance when I first started but no dental. In fact growing up we didn’t have enough money for dental so I didn’t see a dentist much past early high school. While my teeth were out of alignment there was no major debilitation. For a while, outside of some embarrassment from the alignment problems it wasn’t that a big deal.

One day while attending a Phillies game we went out for a pre-game dinner. That night was the first fallen domino for me. I bit down on something and cracked my back right molar. I did not see a dentist as I didn’t really have a lot of extra money and in all honesty at this point there was a bit of fear in me about doctor’s in general. I let the problem grow and over time other teeth started to break down.

Fast forward to this year. Once again I had another event, a newly cracked tooth and this time a very painful result. Unfortunately when the pain really started to kick in I was on the road. There wasn’t much I could do outside of Advil and trying to keep the tooth clean with salt water. On the one Thursday I was in so much pain I almost didn’t show up to teach my class. It was a wake up call. I did not want to let this problem which I had procrastinated about for so long interfere with my new teaching job.

When I got home I looked through my employee dental coverage and made arrangements to see a dentist. It took even more time to really start to feel better. The first session was a general consultation, a full mouth set of x-rays to see where I stood. Unsurprisingly, I needed a lot of work. At least a few root canals and at least one extraction/implant (that first cracked molar from years ago, which by this point was ruined). On the second trip we did the first root canal and while the time in the dentist chair was not pleasant it (and a set of antibiotics to help with the infection) did come to quell my pain and I was really happy.

Since then I’ve had a second root canal, build up of the two teeth, and a surgery of the gum to prepare for one of crowns that needs more room. Today, I’m kind of in an awkward state where I have one temporary crown and one tooth “open” to let the gum surgery heal. I have to eat on one side of my mouth (which takes a ton of mental energy btw) and I can’t brush the top left set of teeth (only rinse with a prescription liquid). I’m set to do the two crown molds in another week from now. After that, they’ll take about two weeks to come back in the mail and finally have them installed.

It’s a long process, of which I’m really only just beginning — and yeah, very expensive. I am happy though to be finally on the road to improvement.

Why post this? For one, I’d like to share the story with Asmongold just to say, I’m with ya man — keep up the recovery.

For anyone else who might be in a similar situation, I’ll say this, do try to get your teeth cleaned and/or fixed as soon as possible. It really sucks that it’s so expensive but it’s something that time will only make worse. I do wish I had reached out to my family about the problem and been more proactive about it in the past. I’m sure I would have gotten some support from them to make it happen sooner. If you have people to lean on, don’t be stubborn like me, let them help you. Good luck and feel better soon.

Closing Thoughts on Big Nerd Ranch’s Front End Web Class

I posted a few thoughts while I was attending the Front End Web class last week and I figured I’d put a cap on it with some final thoughts.

Disclaimer: If you happen to find this post and don’t know, I do in fact work for Big Nerd Ranch, so yes I’m partial but these are still my honest opinions.

Who is this class for?

Like other BNR books and classes, there is an expectation of some experience. You don’t need to be an expert by any means for this class but you should be comfortable with the basics of web design, hosting and how the web works. If you are looking for these beginner skills I’d recommend Code School and/or Code Academy.

With the basics taken care of, this class provides an accelerated but thorough tour of modern web development and the toolchains that you need to know. The class is great for people like myself, who have a history of web development but have been out of the game for a few years or mostly focused on the backend systems. Others who would find value include those who are looking to jumpstart a new web skill set for a new job or project.

Having a full week to escape the distractions of work and personal obligations really enables you to focus on the class at hand. Combine this with guided lectures and an experienced instructor to answer questions and discuss patterns, really elevates the value to “priceless”.

The Syllabus

The table of contents titles don’t really do justice to the details of each chapter. In total we build four separate projects:

  • The first had us work with HTML5, CSS and JavaScript to do a moderately complex layout of a slideshow like page that included animations, responsive layout and modern markup techniques.
  • The second project was a Coffee Order system the helped us use HTML5 forms, Bootstrap styles, and JavaScript to communicate with a backend via AJAX.
  • The third project was a chat app, that utilized web sockets. For this app we not only built the front end but the backend too, in Node.js.
  • The fourth and final project was an EmberJS app that would have us catalog monster sightings. Ember is a big framework but I think the book does a fair introduction. We got to work with a relationship of models, and executed all the big features.

I thought the chapter and project progression went really well. There are some who might prefer to end with Angular or React instead of Ember but the good thing to know is the early class concepts give you a great JavaScript foundation to build on so you’ll be empowered to experiment with all of those projects and more over time.

That is a core value of Big Nerd Ranch classes that I really agree with. They teach you from the bottom up so you can understand how things work and not just how to assemble/configure things.

The Extras

There is lots of open lab time at night. You are encouraged to bring a side project to work on. While I did make some progress on my own project, an Ember Wiki project (I have some basic models and forms working, all backed up my a Firebase persistence layer), I did have to dedicate some lab time to the book itself to make sure I kept up.

In the afternoons we’d have time for a walk around the resort and on some of the days we even arranged for a shuttle van to take us to some of the exhibits, like the Birds of Prey and the Butterfly Center. Considering how focused we are during the class, these excursions are very welcome and a great way to clear your head and get a second wind.

Final Thoughts

If you want to learn a new technology, in this case Front End Web Development, and in particular if there is a time-sensitive nature to your needs it’s hard to imagine a better environment than a Big Nerd Ranch class. The ticket price does include lodging and food for the week so keep that in mind when shopping around or putting together a formal company request. If you have any questions, feel free to contact training support. They’ll be happy to help you out.

Should I Sell My Apple Watch?

I did not partake in the first release of Apple Watch. I was curious but not curious enough. I bought a Playstation 4 instead.

Last month Apple had its announcements. I wasn’t all that jazzed about the iPhone 7 (even though I am due to upgrade my iPhone 6) so I thought I’d try out the watch instead. I ordered an Apple Watch Series 2, 42mm Stainless Steel w/ Silver Milanese Loop. I also got a Cocoa Sport Band for a little variety.

It’s been about a month with the watch and I’m not sure I should keep it. Few notes:

  • I suspect a big benefit of the watch is quick glances at notifications — but for me, I’m actively trying to remove notifications from my life. I turn them off completely on the desktop and audit them on iOS significantly.
  • There is the health tracker / movement component, but for me it’s not a huge draw. I don’t do heavy workouts much. I do like to take the occasional podcast walk, but I feel like I get enough info from my phone’s step counter if I really cared.
  • I don’t like the pressure that I need to wear the watch all day to fill up my bars. I did not wear a watch before this and it still feels very alien. I like taking it off when I type on my laptop or after I wash my hands (it gets wet and doesn’t dry off right away).
  • I find myself constantly fiddling with the magnet strap. I like the band to be slightly tight and it feels like it get loose quickly if I move my arms a certain way (putting on my backpack, making my bed, etc.).
  • The sport band strap is too small for me (even with the larger of the two bands) — it technically fits but is too tight. One more hole would have helped.

Am I missing something? What do you love about your Apple Watch? Let me know. As of now, I’m looking for ways to sell it — I think the money for me would be better put towards a new Mac (should they ever be rev’d again).

Posted in iOS

Mid-week Checkin

It’s Wednesday night and as expected it’s been both an exhausting and rewarding week so far here at the Front End Web class. Here is the table of contents we’ve been working through:

  • Introduction
  • Chapter 1: Setting Up Your Development Environment
  • Chapter 2: Setting Up Your First Project
  • Chapter 3: Styles
  • Chapter 4: Responsive Layouts with Flexbox
  • Chapter 5: Adaptive Layouts with Media Queries
  • Chapter 6: Handling Events with JavaScript
  • Chapter 7: Visual Effects with CSS
  • Chapter 8: Modules, Objects and Methods
  • Chapter 9: Introduction to Bootstrap
  • Chapter 10: Processing Forms with JavaScript
  • Chapter 11: From Data to DOM
  • Chapter 12: Validating Forms
  • Chapter 13: Ajax
  • Chapter 14: Deferred and Promises
  • Chapter 15: Introduction to Node.js
  • Chapter 16: Real-Time Communication with WebSockets

And what’s up next:

  • Chapter 17: Using ES6 with Babel
  • Chapter 18: ES6, the Adventure Continues
  • Chapter 19: Introduction to MVC and Ember
  • Chapter 20: Routing, Routes and Models
  • Chapter 21: Models and Data Binding
  • Chapter 22: Data: Adapters, Serializers and Transforms
  • Chapter 23: Views and Templates
  • Chapter 24: Controllers
  • Chapter 25: Components
  • Chapter 26: Afterword

Entering the class I was a little worried that my past web development experience would have made the early chapters moot, but to my enjoyment there is a lot of new web features and tools available since I did Rails full time back in 2012. Flexbox is particularly interesting and has me excited to do some testing to see if it will help me solve some layout concerns I have in my side project.

I also enjoyed the time we’ve spent working in pure JavaScript. We built out a very modularized system that would react to a simple coffee order page. I appreciate how we’ve taken the time to learn JavaScript from the bottom up. It makes you better understand and appreciate what more advanced tools like Babel and Ember are doing.

Tonight we closed with web sockets which is something I’m really hoping to embrace on future projects. Live content, no reload and real-time collaboration is where it’s at.

And then of course comes the “ranch” venue itself. Being able to get away and focus on the learning is priceless. Afternoon walks help clear your head. Here are some photos. Wish you were here. :)

Greetings, from the Ranch

One of the great perks of working at Big Nerd Ranch is that you are allowed to take one Big Nerd Ranch class a year. This week I’m taking the Front End Web class, and am really looking forward to it.

At nights we are encouraged to work on a side project to help practice what we are learning in the day. I think I’m going to work on a wiki app — with a few touches that I myself have an itch for, drag and drop image uploads, code syntax coloring, and more.

I’ll check in later through the week. Wish me luck.