Iron Update: Week 8 | Here Be Sprites

It was a short week – just two days – so not much to report. We covered the SpriteKit with a tutorial to build Space Invaders. The weekend project involved geocoding, search bar and results, Foursquare API, and CoreData. It wasn’t terribly difficult once I figured out how to persist or not persist the NSManagedObjects, depending on need. The Foursquare API was a pain to work with – for all the documentation, no concrete examples of how to structure the API query. It was also incredibly inconsistent – results could take 0.5 seconds to 15+ minutes to return.  We only have another week or so of lectures left, then on to our final projects. The holidays are breaking up this cohort’s schedule more than usual, but I’m grateful – it provides some much needed mental rest time.


Sun [6 hours]: Finished up weekend project

Mon [8 hours]: Covered SpriteKit, with a Space Invaders tutorial.

Tues [8 hours]: Second half of SpriteKit tutorial

Wed [5 hours]: Weekend project

Thur [4 hours]: T-day and weekend project

Fri [4 hours]: Working through some CoreData issues

Sat [6 hours]: Finished up basic app

Weekly Scrum:

Bright bulb: Short week provided some much needed rest

Dim bulb: Completed only the basic app, and I would have like to have made it look better, and add some fun stuff.

Blocker: No blockers

Tagged , , , ,

Iron Update: Week 7 | The Second Half Begins

We’re starting to see a hint of a glimmer of a sparkle of light at the end of the tunnel. There are only another 5 days or so of lecture days, then it’ll be final project time.  Last week was a tough one, and this week everyone seemed to need a slightly slower pace and fun stuff to learn. Playing around with the Dynamics kit (so many lines to write for the simplest actions!) was enjoyable, and re-engaged some of the students that were burning out a bit. I spent some time tweaking my to-do app with new features. To do apps aren’t the sexiest demo project in the world, but they can easily go from simple to complex, and I have some ideas on quantifying and visualizing the app data that I’ll be trying out in the next few weeks. For the most part, this week was about bolstering my support network – friends and family that have been pretty neglected up until now. We knew it was going to be a tough ride, and I needed to make sure that I got to spend quality time with my people, and let them know how much I appreciate their support. I think I’ve finally started to find a good school/life balance within the program, which makes everything easier to handle. It was hard to wrap my mind around, but it’s not a competition Continue reading

Tagged , , ,

Iron Update: Week 6 | Swift Rules, Objective-C Drools!

No, not really. I’m firmly of the “different tools for different jobs” school, and try to see the pros and cons of whatever language, OS or hardware I’m using. I’m sure if we had learned Objective-C first, my feelings would be reversed. This week we tackled Objective-C by recreating previous projects that had been completed in Swift. Objective-C does have more online help, tutorials, Stackoverflow posts and so on. Pointers negate the need for delegation, in some situations, which is convenient. The lack of optionals is also nice. I’m sure that there are other things that are easier to do in Objective-C, but we haven’t run across them yet. The lack of tuples, the limitations of switch statements, and only being able to iterate over an array only if you use an object gave me some trouble when trying to translate a project that relied heavily on all three. String interpolation is awkward, and not really interpolation, but not impossible.  On a positive note – and this is language independent – I have a better grasp on segues and alternatives, and how all the pieces work together. Several of our previous assignments have been completed entirely programmatically – no storyboard – and replicating that work in another language is also helpful for understanding the pieces.

Continue reading

Tagged , , ,

Iron Update: Week 5 | To the Moon!

This week was a very busy week – so busy the post is a week late and rather brief. But! I finished up the weather app and added Parse functionality. I still need to break out the business logic from the view controller (bad form, Jen), which will require a bit of refactoring. It was good to see concrete examples of proper encapsulation and demonstrable reasons to do so. Weekend Launch was  intense, look for a separate post going over that in more detail.


Sun [2 hours]: finished up weather app

Mon [8 hours]: helped other students finish up their weather apps

Tues [10 hours]: NSCoding for data persistence, CoreLocation for user’s current location, tool demo: Xcode Instruments

Wed [8 hours]: more on data persistence, using Parse for cloud database/storage, installing CocoaPods and adding Parse pod to a project

Thur [10 hours]: more on using Parse for user authentication and data persistence

Fri [10 hours]: spent some time switching a previous app from CoreData to Parse; Weekend Launch day 1

Sat [9 hours]: Weekend Launch, day 2

Weekly Scrum:

Bright bulb: I LOVE Parse. All that database glory in an easy to use, easy to read layout. Granted, I haven’t used any other services of the kind, but Parse is my new BFF right now.

Dim bulb: Exhaustion. Attending Weekend Launch on top of being at TIY probably wasn’t the best idea, but I’m still glad I went.

Blocker: I wanted to use both NSCoding and Parse in my weather app, but it’s trickier than I anticipated, and I wasn’t able to complete.

Tagged , , , ,

Iron Update: Week 4 | Weathering the Storm

This week we covered some big topics: code-based/programmatic layout, 2D arrays, pulling JSON files from APIs and incorporating into apps, static functions, structs, MapKit and geocoding. Our weekend assignment was a weather app that pulls coordinates using a ZIP code and Google Maps, then uses that info to pull the weather data from The data is used to populate a table view controller with basic city name/weather data, as well as a detail page for each city that also includes a map of the location. I spent (wasted) nearly 8 hours in all trying to figure out a memory issue with a dictionary object successfully saving an update, then losing the updated info by the time it got around to displaying in the table view. My workaround involved copying the updated object, popping the original item off the stack and appending the copy. No idea why it works, but it does. Because of that, I probably won’t have time to implement some of my animation and time-based design ideas, but I’m glad it’s resolved. Continue reading

Tagged , , ,

Iron Update: Week 3 | Uphill in the Rain

This week has been a tough one, even with a free(ish) day on Wednesday. We’ve started to get into the rhythm of the program, and in my case, friends and family are just now starting to get how challenging and time-consuming the program is going to get. Every day is focused on absorbing the lecture for the first half, and working on the daily assignment(s). If I get done early, I try to implement some advanced features to the assignment, just to learn some more. If that get’s done, I may have a little while veg out and/or do some chores, but no guarantees. There is very little time or energy left over for anything. I’m getting a refresher course in letting things go and not being perfect. Continue reading

Tagged , ,

Euler Project #4: Largest Palindrome

A palindromic number reads the same both ways. The largest palindrome made from the product of two 2-digit numbers is 9009 = 91 × 99. Find the largest palindrome made from the product of two 3-digit numbers.

Answer = 906609

This took a ridiculously long time. I originally had a separate function to convert the product integer to a string, then an array of characters, then all the way back to an integer. That took much longer than I expected, because Swift and (lack of) documentation. It ended up being more efficient to put it all into one function, even though the lack of separation of duties makes me cringe . I also knew what the final integers were, so I was able to modify the first while loop to run more quickly to test. If I hadn’t known, I would have run the first loop down to 1.

Tagged ,

Iron Update: Week 2

The education style of a coding bootcamp is a much different beast than formal CS education. It’s more akin to a course of self-study, but with someone else providing the resources, setting up the study plan, being available for constructive Socratic question/teaching help, offering advice and feedback. There’s a mental switch that I see different students struggle with flipping – it’s not about getting a high score, being perfect or being the first to turn in the assignment – it’s about learning. The purpose is to teach the students to be enthusiastic, flexible lifetime learners. Teaching us to teach ourselves, if you will.

It’s been invigorating to be programming again. Just working through the projects gives me a huge mental and emotional boost, which in turn ramps of my patience and ability to persevere when I stumble across problems that are a little trickier.  Continue reading

Tagged , , , ,

Euler Project #6: Difference of Square of Sums and Sum of Squares

The sum of the squares of the first ten natural numbers is, 1^2 + 2^2 + … + 10^2 = 385

The square of the sum of the first ten natural numbers is, (1 + 2 + … + 10)^2 = 55^2 = 3025

Hence the difference between the sum of the squares of the first ten natural numbers and the square of the sum is 3025 − 385 = 2640.

Find the difference between the sum of the squares of the first one hundred natural numbers and the square of the sum.


Tagged ,

Code Kata: Is it a leap year?

You are given a year, determine if it’s a leap year. A leap year is a year containing an extra day. It has 366 days instead of the normal 365 days. The extra day is added in February, which has 29 days instead of the normal 28 days. Leap years occur every 4 years. 2012 is a leap year and so is 2016. Except that every 100 years special rules apply. Years that are divisible by 100 are not leap years if they are not divisible by 400. For example 1900 was not a leap year, but 2000 was. Print Leap year! or Not a leap year! depending on the case.

Tagged ,