I’m Teaching a Half Day iOS Refactoring Workshop in July

When I re-entered the self-employed world last March and launched Zorn Labs LLC one of my main goals was to find a way to continue my education work. The first output of this effort has been workshops, specifically one on Refactoring iOS.

I’ve developed and taught the workshop for a local development studio Tonic Design and am now going to run it publicly.

iOS Refactoring Workshop

Throwing away bad code and writing something new from scratch is both risky and expensive. You need to avoid this temptation and instead learn to master small improvements over time.

Refactoring is the art of improving code without changing user behavior. Adding dedicated refactoring time to your workflow and sprints can pay for itself many times over in both added source code flexibility and application stability.

In this workshop we will review refactoring concepts from a high level and then explore example cases found in many iOS projects. As a group we’ll refactor and discuss the benefits of our changes. We’ll then work on our own (or in pairs) to execute what we’ve learned and then demonstrate the results for the class.

This workshop is targeted at those iOS developers who are getting over the hump of learning iOS and now want to know how to write higher quality iOS code. This workshop is capped at 12 people to make sure there is plenty of time for questions and individual attention.

Tickets for the half day workshop cost $189.00 even (we take care of all the ticketing fees). For more information on the agenda, see the event page.

Local performances of this workshop (and others in development) are available for corporate purchase. Contact us for more information.

Speaking at 360iDev, Come Join Us.

I’m happy to report some recent talk proposals were accepted and I’ll be speaking at 360iDev this August in Denver. I was already going to go to 360iDev regardless of the talks, I’ve heard great things from recent years, so this just makes the week that much more exciting.

360iDev Logo

My Talks:

Overcoming the Stress Surrounding Code Review, for the Betterment of Your Project and Career

Code Review is a practice where before a change is made to a code base, the code is first posted somewhere for peer review and critique. Code Review is an extremely productive way to catch problems before they are delivered to users as well as help individuals mature as programmers. In this talk we’ll explore Code Review by documenting the responsibilities of those involved, the person posting the code, the person (or people) reviewing the code, and then again back to the poster, as they react to the feedback given. In addition to the raw process of these stages we’ll also review the very human side of Code Review using real world stories, the good, the bad and the ugly. We’ll close with more general tips and tools that can help, as well as cover some of the how and why you might want to utilize these practices even in your own solo work. The best audience for this talk are people who are looking to improve their personal or team code processes. Those who attend will leave with very actionable strategies to execute productive code review on their own projects.

Starting, Growing and Running a Successful Developer Meetup

One of the most rewarding aspects of my career has been attending and then helping to run my local Apple developer meetup group. Meetup groups provide great learning opportunities but more importantly they provide great relationship opportunities for its members. In this talk I’ll share the story and lessons learned from running my local CocoaHeads chapter. After a quick review of the benefits and challenges of running a local developer group we’ll jump into actionable items for people starting, growing or running their own group. From defining success, to time expectations, marketing, sponsorship, planning content, tools and more. To close the session we’ll invite a few other group leaders from the audience to the front for a broad question and answer session about your specific issues and concerns. This talk is targeted at those who are running or would like to run a local developer meetup. It may also be helpful to those who attend a current group that needs guidance and/or focus.

If you are an iOS developer you should consider joining us. It’s going to be a great conference. Per CocoaHeads, use the coupon code “cocoacommunity” for 15% off all tickets.

Video: UIKit is Dead, Long Live UIKit!

Philly CocoaHeads held a joint meetup with our Android friends for Philly Tech Week. At said meetup there were a bunch of lightning talks, and I did one.

UIKit is Dead, Long Live UIKit!

With the introduction of Swift and the rise of functional programming ideals in the community, UIKit and its MVC heritage has become a bottleneck for new ideas. This talk speculates how Apple might overcome this in the years to come. Attendee should walk away with a curiosity about the other UI patterns being developed and a resource list to learn more.

UIKit is Dead, Long Live UIKit! from Philly CocoaHeads on Vimeo.

Related Reading:

I actually had a few vocal flubs in the recording (was a little stressed about the 10 minute limit) but figured I’d use the live one anyways since it has more humanity than me speaking to myself in my room. I hope you enjoy!

Meet OwlDeck, a New Mac Presentation App for Programmers and Markdown Geeks.

Today I’m launching the teaser site for my new app, OwlDeck.

OwlDeck is a new macOS presentation tool for programmers and geeks who need to display code and love Markdown.

If you are interested in OwlDeck I’d love for you to signup to its newsletter and email me your thoughts.

If you are interested in some behinds the scene stuff you can checkout the project journal I’ve been keeping over at Rested Experience. I hope to share more now that things are going public and timelines are set.

Really excited to be working on products again. :)

Introducing Zorn Labs LLC

As I alluded to after loosing my job at the end of January, I knew I’d take the majority of February to recover from my neck surgery and then get serious about work in March. We’ll it’s almost the end of March so I figured I’d do an update.

First, welcome Zorn Labs LLC, my new company. It will house my future consulting and product work.

Second, I am still looking for work. My goal is to find something 10-30 hours a week, doing iOS or iOS mentoring. To help express my skill set and goals I’ll point you to the new company site. I would appreciate all friends and followers to help spread the word.

Outside of setting up the new business and website, much of March has been spent towards marketing and planning. I had many lunches and coffees with prospects and friends. I even had a few offers but they sadly weren’t the right fit for me at this time. When I haven’t been marketing I’ve been trying to jumpstart some new web skills, refreshing my HTML5/CSS3 knowledge, getting deeper into Hugo template design for the new Philly CocoaHead website, and experimenting with Elixir and Phoenix.

For those interested in my Mac app project, you can also check out my project journal blog at: http://restedexperience.com. I’ve been trying to update that a little more often with my recent progress.

So that’s my March update. Thanks for the interest! More to come in April! :)

Neck Surgery Recovery Update

My neck surgery on Friday was a success.

It was more complicated than expected (2.5 hours under instead of the planned 45-60 minutes). The cyst had grown much larger than anticipated and was interwoven between lots of muscle and attached itself all over, including my spine. It was removed, unruptured, and the muscles rebuilt to hopefully fill in the void without too much of an indentation.

I have a large line of stitches but the hope is it should heal without too much of a scar. I’ll see the doctor in two weeks for a checkup and have been taking it easy with a lot of bed rest. Overall, the pain has been pretty manageable, the area is mostly just tight feeling.

Cabin fever is totally setting in and I’m looking forward to getting out of the apartment later this week. Plan to do IndyHall one day and then Side Project Saturday with the CocoaHeads.

I know I owe a bunch of people lunch and or happy hour drinks. If you want to get together let me know.

Fever Dreams

While I had hopes of doing more productive things, I ended up spending the last few days in bed fighting off a pretty lousy sinus / chest cold.

Between the medicines and the fever, I don’t think I had more than 90 consecutive minutes of sleep. The dreams were awful too. Not like vivid/scary but it was as if I’m trying to solve an algebra problem and the rules don’t make sense. Sometimes I had these really long dreams and then I’d wake up only to find I was asleep for an hour or so.

Nothing like being sick to help remind you to appreciate the importance of your health.

Anyways, I’m on the mend and taking some antibiotics to help make sure my system is clean for Friday’s neck surgery. I’m hopeful the recovery of that will be easier than this past weekend. I think it should be.

On Thursday we’ve got CocoaHeads! I’ll be there to MC but will probably take it easy at the bar afterwords for obvious reasons.

Finally, I want to take a quick moment to say thanks to everyone who reached out to me regarding my unemployment news from last week. I really appreciate the well wishes and leads. Getting that kind of response really helps put my stress at ease. Thanks so much.

“For the times they are a-changing”

I am no longer an employee of Big Nerd Ranch. The news came down on Monday. I can’t speak to any of the details but suffice to say I am disappointed. I really enjoyed working at BNR. My time there was productive, for my own personal growth as well as that of my students and clients. I wish them well, and continue to recommend them as a good source for iOS education.

So, what’s next for me?

On the immediate horizon, I’m a bit focused on my neck surgery, which is on Feb 10th. Its been scheduled since November. The goal is to remove a large cyst on the back of my neck. I will be put under for this surgery, so tomorrow I have to get a bunch of blood work and X-rays done.

For work, I open to ideas. Generally speaking I’m unlikely to make long term plans and would probably prefer to take on some smaller consulting work. I’d like to steep a bit on my long term options. If you have anyone who might be in need for an experienced iOS or Mac developer, let me know. Thanks for your help.

Rethinking My Music Storage

I’m not a huge music collector, at least not compared to some other people I know. I do have about 150 GBs of music in my iTunes collection — lots of it being video game soundtracks I enjoy listening to while I program.

A few things I have not liked about my historic setup:

  • Because the collection was 150 GB I could not store it on my main computer’s SSD (which was 256 GB in size).
  • iTunes sucks. I don’t want to get into details here but as a music player and organization tool it’s awful.

Some goals for my new setup:

  • I want to get rid of iTunes.
  • I’d like to store my music on Dropbox, preferably in a way where I can control which Music (if any) gets synced to my other Dropbox setups.
  • I have recently become a Spotify member. It’s got a nice collection I feel I can lean on AND it has some tools the player UI to support local files as well as streaming songs which I think will be key.

With all that said, what I’m up to:

First thing, I made a new iTunes library on my desktop and have started re-downloading my old iTunes music purchases. I have lots of music that is still DRM wrapped and these new downloads do not have such DRM.

Next, I’m going to slowly start to put the music into Dropbox. I’ll have a root level Music folder but inside I’m going to split the collection into Rare and Common. Common being for songs that are streamable from Spotify and thus being a folder I can selectively NOT sync on my other computers. The Rare folder will have all of my video game soundtracks and other albums I find to be incomplete or missing on Spotify. As I said, I like how Spotify can bring in local music into playlists and even lets you control the source folders and I’m hopeful this will work nicely.

We’ll see how it goes over the next few weeks. I’d love to hear if anyone else has an exotic setup like this.

Also, next up for a rethink is photos. Again, I’m really not happy with the current Apple solution and am thinking of alternatives. Feedback welcome.

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.