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.

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.

CocoaConf DC 2016 Recap

Had the pleasure to attend and speak at CocoaConf DC this past weekend.

CocoaConf is a touring training conference for iPhone, iPad, and Mac developers. We bring some of the best authors, trainers, and speakers to the most passionate, engaged developers in a region—together, they make magic!

CocoaConf draws anywhere from 100-120 developers. It’s a very nice, comfortable size. Large enough to host a diverse collection of personalities and ideas, but small enough not to feel overwhelming. People actively mingle and you get to meet lots of new faces without much effort.

This was my third CocoaConf, and first as a speaker. My own talk was at the end of the first day and I spent ample time the previous weeks preparing to avoid the need to do last minute slide updates and miss sessions — and I’m glad I did so.

The sessions were really good at this CocoaConf. Sure it helps that iOS 10 is just out and there is still lots to learn, but even the talks that were version agnostic, covering patterns, architectures and bug hunting skills all got my brain spinning with ideas.

One cool benefit of my work scheduling is now I have a week of stay-home vacation and I can hopefully direct that post-conference enthusiasm towards my side projects and some extra experimentation. Specific items on my list:

  • Do more interactive prototyping of my side project and follow up with some user interviews.
  • Do some experimentation with Perfect to build a simple Swift API and host it on Linode.
  • Continue to polish up my RanchWeather app and start a blog series reviewing the code patterns.
  • Do some experimentation with Twilio authentication in preparation for a web app project.
  • Inspired by the journalling abilities of MarkD, dedicate the vacation week to a journaling experiment: Daily Journal, Project Journal, Tool Journal.

As for my talk, I think it went very well. One thing I really like as a speaker is the conference not only has a session review system but they encourage submissions of reviews with a raffle for prizes at the end so you get a lot of feedback. Most of my talk’s feedback was very positive and I appreciate the criticisms, both good and bad. Always room for improvement.

So yeah, if you are considering attending or speaking at a CocoaConf, do it. It’s very rewarding and worthy of your time. If it’s on the east coast you’re more than likely to see me there too — and if so, say hi!

Join Us at CocoaConf DC, Sept 9-10th

I’ve been to multiple CocoaConfs as an attendee and it’s with great pride I’m happy to say I’ll be a speaker at one soon.

CocoaConf Boston

CocoaConf is a traveling conference focused on Apple technologies that has been around since 2011. It’s big enough to have multiple tracks of content but small enough that you’ll have time to socialize with most of the other speakers and attendees throughout the event.

The 2016 “tour” is coming to a close. I’ll be speaking at the Washington DC CocoaConf (Sept 9-10) but if you are on the west coast you might want to consider San Jose, CocoaConf (Nov 4-5th).

When registering use code “COCOAHEADS” for 10% off!

I can’t wait to see everyone. If you will joining us, please come by and say hi. I’ll have some Big Nerd Ranch swag for ya.

How We Record Talks at Philly CocoaHeads

I came across this post from Rico Jones on how he records the Portland Ruby Brigade’s monthly meetings and thought I’d do something similar for how we record the Philly CocoaHead presentations.

Capture Setup

Why Only Main Talks

This first thing I’ll note is we do not record the entire meeting. Early on this was to due to the experimental nature of our recording setup but more recently, at a leadership meeting, we made the call to continue to only record our “main talks”. We do this for a few reasons:

  • Not recording the “show and tell” talks lets those be a little bit more free-form, with less pressure on the presenters (which is a big reason why they are in the agenda).
  • Many of the show and tells are in-progress app demos, and so there is benefit to keeping them non-public.
  • We expect a higher level of preparedness for the main talks, and to ask for people to put that much time into a talk, it would seem wrong not to capture it.
  • If the whole meeting were being captured / broadcast it would encourage people not to come.

The Setup

Starting from the presenter’s laptop we provide an HDMI cable. If they want to present or demo from an iOS device we have an HDMI to Lightning adaptor.

The HDMI cable then feeds into our capture device, an Elgato Game Capture HD. This device is targeted at the streaming game market but is just as viable to capture normal HDMI signals. The device itself is an HDMI passthrough with no frame drops or anything. The device is even powered through the USB cable so no need for a power cord. The video / audio is then compress into mp4 (on device using hardware encoding). The compressed signal is sent to a Macintosh running some custom Elgato software. I use an older Macbook Air to act as our dedicated capture computer. While there are many other features for dedicated streamers, we simply press record.

We then take the other end of the HDMI cable and route it to our projection system. Now the Apple Store that hosts us has a very impressive setup but sadly it’s not as easy as it should be. They have an HDMI connection, and while it works for the Apple TV it doesn’t register when we plug it into a Mac. To get around this we used to use an HDMI to DVI adaptor and the alternate DVI input. It worked fine but doing it this way lost the audio. Recently we’ve fixed this by buying a converter box that splits the HDMI into both DVI and an audio jack. Again, the Apple Store does have a in-house roof speaker system but for us sadly it’s been down. In the interim we’ve been getting by with a Beats Pill Speaker the Apple Store is nice enough to provide.

While not part of the capture, I will give a friendly nod to Fin, an iOS performance timer we run on an iPad mini to help the speakers know how much time they have left. Works great.

I’ll also recommend the presenter remote I use. It’s a Kensington, with a nice simple to use USB dongle that slips into the remote when not in use. It has a laser pointer too but I can’t say I use it much. Battery life has been very good for this device.

So that captures the video and audio from the presenter’s laptop or device but what about the speaker’s voice? For that we use a lapel clip on mic and Digital Audio Recorder. The recorder can work without the mic if you are looking to capture a room discussion but for 1 person, adding the mic is a real quality difference.

After the meeting we combine the video and audio captures using ScreenFlow. Editing is fairly simple for most cases, usually as simple matching up the action and adjusting some audio. The finished product is exported and then uploaded to Vimeo Pro, which acts as our library of sorts. (We pay for Vimeo Pro to keep ads out and to make sure we have API access.) People can watch the talks through Vimeo itself or our new Apple TV app, “PhillyCocoaHeadsTV” (search for “CocoaHeads” on the TV).

Future Improvements

Overall I’m pretty happy with the current setup but I do have some ideas:

  • It would be nice if we could get the Apple HDMI connection to work, that would simply our wires a bit.
  • At work we use a Catchbox to help capture Q and A. It would be nice to work out something similar for us.
  • While it might save a bit of editing time to convert to a wireless mic, it’s pretty low on my list. Would have to improve some other aspect to make it more worth while.
  • There is a lot of equipment to carry in, setup and carry out. It’s very reliant on me personally at the moment. I’ll probably be missing a meeting or two this year so I hope to train someone else to run this while I’m gone.

Hope you enjoyed my rundown. If you help capture stuff like this and have any tips or tricks, let me know. Thanks.

31 Days, 31 Products: Launch Post

At CocoaLove 2015 we had the pleasure of listening to Jaimee Newberry speak and from my notes I recollect the following from her talk:

Just Do It! and more specifically, don’t let your high taste of quality hold you hostage from creating and shipping. Get it out into the world and improve it over time.

Even before the talk, I was already inspired by Jaimee’s “31 days” series of writings and video posts. I’ve been wanting to get more writing practice and have been kicking the can on starting my own series but no more!

Today begins 31 Days, 31 Products — a blog series where once a day for 31 days I’ll post a short story sharing some of the products and services I’ve come to enjoy using. I hope you like it and discover a new helpful tool along the way.

Release Notes Conference Thoughts

This post is delayed due to a head cold I had last week, but considering the amount of effort and love that went into producing the Release Notes Conference I figured the least I can do is share my reaction.

In short, I think Joe and Charles have a really cool product here. Despite a somewhat saturated iOS conference space I think they have chiseled out a much needed and action-oriented event. The idea of an entire conference of content focused on building and growing your Apple-related business is great enough, but then consider you’ll end up mingling with similar minded people results in an incredible event.

I don’t want to understate the importance of actionable. There are a lot of tech conferences out there where you’ll see some very interesting talks that showcase some new language features or APIs but you can’t always come home and apply them to your current work right away. I think one of the best aspects of the Release Notes Conference is that no matter how young or old your business or product is, there were tons of actionable tasks to walk away with.

In many ways the conference reminded me fondly of the (pre-iPhone) MacSB (Mac Software Business) mailing list and IRC channel where a small group of us would hang out, post question and share notes. It was small, very welcoming and extremely helpful group.

My understanding is that the talks were recorded and will be published online, so if you are interested I highly recommend signing up for their mailing list for the announcement. Of course, if you aren’t subscribed already I’ll also recommend their weekly podcast which started it all.

How To Play WWDC Sessions at 2x Speed

Now that all the new bits of iOS 9 and OS X 10.11 are in the wild you might find yourself wanting to get up to speed on some of the changes. One great resource to help you get started is Apple’s WWDC videos.

The WWDC video library has a lot going for it: HD and SD video sizes, slide downloads and now even full text search! The only real negative thing is the sheer amount of content out there. It can get overwhelming and time consuming to watch all the stuff you are interested in. Here’s the hint. Like podcasts, WWDC videos are mostly single voices speaking one at a time and if you have the tools to double the playback speed you’ll find them still very comprehensible.

Now for the tools. For downloading you can of course use the Apple website. I like this WWDC Mac app as well. Once you have the video file on your hard drive you’ll unfortunately need to look for something beside the built-in QuickTime player to help. Even with all its enhancements it sadly doesn’t have this tool of QuickTime’s past. The good news is you can still download QuickTime 7 and it works great!

After you open your movie in QuickTime 7 (you’ll find it installed in the Utilities folder), use the Window menu and choose Show A/V Controls. In this panel you’ll see a slider that let’s you adjust the playback speed.

QuickTime 7

Now you can watch your chosen WWDC videos in half of the time! Enjoy!

UPDATE: My thanks to Paul Brown who let me know that the native QuickTime player can playback faster, even if it is a little hidden. To increase playback speed, bring up the controls with your mouse, then option-click on the fast-forward control. This will increment playback speed by 10% each time you click. You can keep clicking this up to 2.0x playback speed but sadly the audio does not work at 2.0x, you’ll have to limit yourself to 1.9x to retain the faster audio. Thanks again for the help Paul!

CocoaLove 2015 Notes

This weekend was the second annual CocoaLove event here in Philadelphia.

A conference about people, not tech. CocoaLove highlights the iOS/Mac community’s passions, challenges, and triumphs.

From all accounts, people had a great time. My very heartfelt “thank you” to the speakers, attendees and organizers for making it such a blast.

Some of my own takeaways and notes:

  • Just Do It! and more specifically, don’t let your high taste of quality hold you hostage from creating and shipping. Get it out in the world and improve it over time.
  • Don’t let the negativity of the web infect you. Be positive; be constructive.
  • Make time to help people out. Mentor them, teach them, guide them. It’s probably the most import work you’ll ever do.
  • Embrace today; do what you love; don’t settle.
  • Don’t let other people define your life’s scope. Poke life.
  • The world is in desperate need of good managers. Managers need not be robots; the best managers can have a huge impact on their team and the product.
  • Don’t let imposter syndrome or other people hold you back.
  • Humanizing the customer support experience is extremely important. These people are calling out for help, treat them right.
  • The developer ecosystem is forever changing. Even today the wheels are in motion and a few years from now it’ll be different. Be prepared for change.
  • Embrace side projects. Start tons of things. Experiment. Do things outside your comfort zone.

While we wait for this years talks to be edited and published, consider stopping by the 2014 video collection. In particular I recommend Joe Cieplinski – The Back of the Fence.

Summer Hiatus Update

Hello internets. So sorry for the summer hiatus here on the blog. So what have you been up to? (Email me and say hi!)

I’ve been doing good. WWDC was a fun time in June and shortly after that I had 6 days down the shore with my family. At work, I’ve been on a Swift iOS project. It’s my first time using Swift in production and working along side John and Zac has been incredibly educational. I also was able to get on the road and do my first solo teaching gig for Big Nerd Ranch. I really do enjoy teaching and hope to get the opportunity to do more of it in the coming year.

In my off time I’ve been zoning out with video games, movies and the like. I bought a PS4 and have been mixing it in amongst my WoW and FF14 time. I do feel guilty as I keep meaning to start some productive side projects but I struggle to focus on programming after working a full day doing programming. We’ll see how the fall works out. Hoping to get some project inspiration from CocoaLove and Release Notes in October.

I also just (like a week ago) got a new car. Ended up buying a new 2015 Hyundai Sonata Sport. It replaces my old 98 Ford Taurus workhorse. The Sonata is nice; very spacious and a nice mix of value and features. I’m really enjoying the iOS integration (used to use an external bluetooth speaker for podcasts and the like). With a little more confidence in my car now I’m actually hoping to hit to road a bit and do some visits to regional CocoaHead events and the like. If there is an event coming up you’d like to recommend let me know.

Well that’s it for now. Bring on the fall!