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.

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.

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. :)

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.

Philly CocoaHeads: History

Being the lead organizer of the Philly chapter of CocoaHeads, I always welcome the opportunity to chat with members of other meetups. It’s great to compare notes on how we run our groups, what’s worked and what’s failed. In particular I’ve recently chatted with the leadership of the Nashville CocoaHeads and was also able to attend an Atlanta CocoaHeads meeting while visiting Big Nerd Ranch. It was a great experience and has me inspired to capture some of my thoughts here on the blog. This first article is a walk down memory lane to document the history of Philly CocoaHeads.

Getting Started

The Philly chapter of CocoaHeads started out of IndyHall in 2008. IndyHall is a coworking space, a place for people who can work from home but choose not to; perhaps because they want a work/home separation or just to participate in the greater creative community. Back then IndyHall was still fairly young but had attracted together a strong tech following including:

  • Andy Mroczkowski and Far McKon who were working for the local company Neat, and their Mac software / scanner combo.
  • Jason Allum who was working on RipIt (which would later be sold to The Little App Factory).
  • Dave Martorana who had a few apps, including MultiFirefox and Multiplex (a media server app ahead of its time).
  • Joah Aas, who worked for the Mozilla organization and is now most known for his help with the Let’s Encrypt project.
  • Randy Zauhar, a local professor teaching Bioinformatics and Chemistry at University of Sciences. Randy had previous help run and host a group called: PHAD, Philadelphia Apple Developers.
  • And myself. I was a basic IndyHall member and was working on ProfitTrain updates at the time.

Philadelphia Apple Developers (PHAD) never grew to be anything very large but I remember it fondly. It would usually be about 4-6 of us sharing a pizza and showing each other our Cocoa projects. I vividly remember Randy showing off his spreadsheet app which listed chemical equations on one side and then had an OpenGL cell rendering the compositions on the other. I also remember doing talks on Subversion and then Core Data. Again, they were small meetings but having even a few people who were interested in or working in Cocoa back then to bounce ideas off was a huge win.

The early meetings of our group were ran by Andy Mroczkowski and actually marketed under the name PhillyCocoa and not CocoaHeads. The meetings were very demo heavy with lots of roundtable questions and discussions filling in the cracks. Some members took to working on a side project, a calculator, outside of the meeting. The project didn’t get too far but the remanence of it have been preserved on GitHub.

Early IndyHall

This is a photo of IndyHall, Strawberry Street Edition. The first “CocoaHeads” meeting was held in that back meeting hut.

As the iOS SDK (or iPhone SDK as it was called back then) was announced there was a serge in new members and interest in the group. The biggest hurdle seemed to be Objective-C itself so we planned and ran a workshop.

Over two Saturdays, mixing lecture time and coding exercises from Learn Objective-C on the Mac, by Mark Dalrymple, Scott Knaster we got 12 or so people a head start on iPhone programming.

New Leadership

Meetings continued, now at IndyHall’s new home on 3rd Street (or N3RD Street as it would come to be known as). Eventually a December meeting was announced and Andy let it be know that if you were interested in the future of PhillyCocoa to attend. At the meeting Andy announced his upcoming departure to head to San Fransisco to be apart of a startup. Two volunteers came forward to help organize the group in his stead, myself and Mike Deaven.

Meeting Format Changes

Over the next year me and Mike enacted a handful of changes we’d hope improve the group.

An Early IndyHall Meeting

One immediate change we did was move the website to WordPress. Previously Andy had a custom Ruby CMS / publish thing going and it wasn’t easily portable. I was able to get all of the old post converted into WordPress. The main goal here being enable multiple people to post and not have the code be machine dependent.

Another change was subtle, but I started to embrace the CocoaHeads brand in our naming and introductions. I always was aware of them and to me it seemed helpful to take the name and have our chapter listed on the main global site.

We also started to fiddle with the meeting format itself. Moving the pizza / social time to the front end of the meeting. This helped since we usually had a lot of stragglers arrive between 6:30 and 7:00, so by having the pizza upfront we could make sure to start the meeting with everyone present.

I also started to be a little more rigid in the introductions, making sure to repeat the basics of the group, who we were, what we did, when we met. I wanted new people to quickly get a sense of expectations.

Another IndyHall Meeting

The hardest thing back then was getting people to do talks. There were many meetings in the early days where we did not have a formal speaker and so it was on my shoulders to build a presentation to keep the group entertained. It was a lot of work but I think a major reason why we were later became more successful. I think it’s incredibly important to be consistent, to have that meeting every 2nd Thursday no matter what. Setting up that pattern and not giving into canceling meetings really helped solidify the group.

To help spur talks we started to request smaller commitments, show and tell time. A short talk or demo usually 5-15m in length. Much less to prepare and much less anxiety. It started slow but eventually kicked off a pattern of people coming forward to do talks, even “main” talks.

Adding Members through Meetup.com

Up to this point Philly CocoaHeads did not promote itself too much. You heard about it through word of mouth or via IndyHall announcements. Looking to grow the community we decided to join Meetup.com for more exposure. It took a few months to get going but eventually started to bring in tons of new faces. Meetings quickly grew from about 10-12 people, closer to 20-25.

As of today we have about 870 registered members on Meetup.com. Now most of them are not active members. I’d guess if you defined “active” as participated in a group event sometime in the last 12 months, you’d probably end up with ~200 members.

Alfie joins us from NY via a Double

Alfie joins us from NY via a Double.

New Events and Expanding the Leadership

When iOS 7 was announced we decided to do a special hack day to celebrate. We sold tickets to help buy a nice catered lunch and gathered at IndyHall on Saturday to hack on new iOS 7 APIs. The event was a huge success.

One newer member wanted to help do this more often and so Tom Piarulli joined the leadership to help run what has now become known as Side Project Saturday. SPS is typically the last Saturday of the month, starting at 10am and running until about 5pm. People come and go, work on their side projects, ask questions and otherwise socialize with their fellow geeks.

Tom at a SPS right after the WWDC announcements.

At around the same time the leadership also welcomed Kotaro Fujita to help run our website and Twitter account.

Kotaro talks about his favorite tool.

Moving to the Apple Store

We are fortunate enough to have a very nice Apple Store here in Philadelphia. Sometime in 2013 I was approached by the business relations manager from the store. He came to a few meetings and introduced himself. He was really impressed with our group and offered to help us out and possibly host the meeting.

I was kind of torn. We had our start at IndyHall and while we were definitely starting to outgrow the space I didn’t want to leave. Me and Kotaro took a trip to the Apple Store to checkout the Briefing Room. The room is incredibly nice. It’s on the second floor of the store, not open to the public. It’s kind of a VIP area for larger demos and meetings. It had 5 mounted TVs, all wired up for AirPlay and sound. A huge wood table with 16 swivel chairs but plenty of space around the edges for fold up chairs. Fully laid out we could host 40-45 people and have a great AV setup to help support the speakers.

We made the move in November 2013 and it’s worked out great. The space is extremely accommodating and many of the members certainly enjoy the prestige of getting to meet in such a private venue.

Apple Store Meeting

Workshops, Suburb Side Project Saturdays, and CocoaLove

In 2014, Curtis Herbert who had already been very active in the community as well as doing some talks for us joined the leadership team and started multiple new projects.

Curtis teaching his ObjC Workshop

Firstly was CocoaLove, which started out best as I can recall as friendly outburst during my “Industry News” section while reviewing upcoming conferences. “Why don’t we have any conferences here in Philly?” — and so it began. CocoaLove is not an official child of CocoaHeads but we obviously share a lot of the same goals.

Curtis also helped spur new educational events we came to call Workshops. Typically one day, 5 hour events with paid for tickets (most money going to the speaker to help compensate them for prep time). We ran about six or so over the last year and a half, covering introductions to Objective-C and then later Swift, App Marketing, UX design, and more. Workshops are incredibly loved by our members and sell out quickly. The hardest part about running them is the custom content creation. We have some ideas on how to improve that moving forward and hope to offer more Workshops in the year ahead so stay tuned.

Marketing Workshop

And finally we have our “Suburb” edition of Side Project Saturday. The city of Philadelphia is very flat and wide, with an extended suburban layout. We have many members who live outside the city and can not always participate with our center city events. To help, we started running a “Suburb” edition of our Side Project Saturday event. These are held at the Apple Store in King of Prussia. We’ve been able to host a few and hope to do more. Again, Curtis has been very helpful in organizing this.

Videos

In 2015 we continued to evolve and expand what we offer, this time with recordings. We’ve been talking about recordings for awhile but in 2015 things started to fall into place. I’ll go into detail as to how we record in a future blog post, but put simply it’s capturing what video we pipe to the monitors and then using a lapel microphone for the speaker to capture their voice. After the meeting we match the two together and then publish to Vimeo. During the fall we also added a custom AppleTV app which streams the content as well (search for “CocoaHeads” and you’ll find it).

Video Capture Setup

Apple TV App

Book Club

Another new endeavor for 2015 was the Book Club. We started it over the summer reading through Cocoa Programming for Mac OS X and then restarted it this winter with HackingWithSwift.com. Book Club basically has members work through chapters and then meet online to discuss how it went. Over the summer we met every other week, while the winter edition has been more aggressive doing it every Monday. A big thanks to Michael Mayer for helping to run the latest Book Club season.

The Future

So it’s 2016 and things continue to look good. I’d say the biggest problem we have is that we occasionally max out of room occupancy at the Apple Store but not enough to really justify a new venue. We also recognize our website could use a lot of work to meet our high standards but it remains a fairly low priority overall.

As the main organizer I’m extremely lucky to have such great support from the members and the rest of the leadership. There is no way we could do this much work if it wasn’t for the many volunteers we have. I’m extremely proud of the community we’ve made and continue to run.

Recommendations

To those running similar meet ups a few closing recommendations:

  • Be consistent with meeting dates and locations.
  • Be willing to do a lot of personal presentations and/or MC of roundtables when other speakers are not available in the early days.
  • Don’t be afraid to shake people down for talks. Also remember it’s much easier to get them to sign up for a talk a few months from now than in a few weeks. Take advantage of that.
  • If meeting after work try to have some food and drink available. We do pizza cause it’s relatively cheap and easy. You want to feed them but remember they aren’t coming for the food. In the early days a donation jar can usually cover most of the costs, later you might need sponsorship. I’ll have more to say on that in the future.
  • Help spread the responsibilities. Even smaller things like handing the food, taking meeting notes or running the group Twitter helps turn “the group” into “our group”.
  • Have fun.

Video: Consuming JSON in Swift

I gave a talk at Philly CocoaHeads last week reviewing various ways to consume JSON using Swift, including a preview a new open source project we have coming out soon™ from Big Nerd Ranch called Freddy.

Consuming JSON in Swift, Mike Zornek from Philly CocoaHeads on Vimeo.

JSON is a fundamental internet format and if you are building iOS apps the chance you need to download and consume JSON files is extremely high. Additionally, with the introduction of the statically typed Swift language it’s been a little more difficult to work with JSON properly. This talk will cover what JSON is, how one can work with it naturally in Swift, the limitations of doing so, a review of a few popular third party solutions and the introduction of a new JSON tool about to be open sourced by Big Nerd Ranch.

Slides: https://speakerdeck.com/zorn/consuming-json-in-swift

31 Days, 31 Products: Skitch

Day 31: Skitch

This post is part of a larger series where for 31 days I’m posting a story about a particular product or service I’ve come to enjoy.

Skitch is a screenshot and notation tool from Evernote. With Skitch you can take screenshots using various options and then annotate them with vibrant pink arrows, shapes and text. Like this:

Skitch Sample

I really enjoying using Skitch during app audits where I can take a bunch of screenshots on device and then import them for annotations. Having the visual evidence to help back up your argument is really handy. The software itself is fairly strait forward and focused. With an Evernote account it will sync all your files though I usually import and export them as I need.

Skitch is a free download on the Mac App Store or directly from the Evernote website. Enjoy!

31 Days, 31 Products: OmniDiskSweeper

Day 30: OmniDiskSweeper

This post is part of a larger series where for 31 days I’m posting a story about a particular product or service I’ve come to enjoy.

When choosing software for this series I particularly get a kick out of linking to products I suspect many might not know about. With that in mind, tonight I present OmniDiskSweeper!

OmniDiskSweeper is a little app from the OmniGroup they’ve been distributing for years that let’s you scan a hard drive and sort every folder by the size its taking up. OmniDiskSweeper is a great tool to use when you are trying to figure out how to trim down your hard disk usage.

I currently have an iMac whose main system drive is a 256 GB SSD and between my Dropbox, video games and video editing work it’s very easy to fill up. Using OmniDiskSweeper I quickly figure out what needs to get deleted or migrated to my external media drive when free space gets too small.

OmniDiskSweeper is a free download. Enjoy.

31 Days, 31 Products: iOctocat, GitHub on your iPhone and iPad

Day 29: iOctocat, GitHub on your iPhone and iPad

This post is part of a larger series where for 31 days I’m posting a story about a particular product or service I’ve come to enjoy.

For mobile GitHub management nothing beats iOctocat. If you find yourself on the road and needing to check in with GitHub this is a must have app. I use it mostly for keeping track of pull requests and getting push notification of status changes.

iOctocat is a free download on the App Store with in-app purchased to unlock a Pro feature set for $14.