Race Report: 2016 NYRR Brooklyn Half Marathon

My goal heading into Brooklyn was to break 1:40. Three days before race Saturday I caught a bug. This brought fever and a sore throat. I thought it would have subsided before race day but that wasn’t the case.

Both Anh and I love this race so our friends took care of our son for a few hours. We left Queens at 4:30am to make it to Coney Island. The plan was to park close to the finish so we wouldn’t have to take the train all the way back to the start. From where we parked in Sheepshead Bay it was close to the Belt Parkway back to Queens.

At the singing of the anthem I always get the race chills and excitement brewing. Even after a good 10 mins pre race warmup it was hard for me to get going during mile 1. Pace 7:49. I wasn’t too worried because I knew the webs would be shaken off soon enough. At about mile 3 I started feeling extra soreness from the back of my right knee. This wasn’t a good sign.


Sure enough I found myself walking for about 2 mins to shake this soreness off at mile 4. I used that opportunity at the aid station to take in salt and Gatorade. As I’ve done countless times before to abate this situation is to adjust my foam to lessen extending the kick.

However I still kept my pace conservative throughout the park as there is a main hill that wasn’t completed yet. The familiarity of the Brooklyn course sets itself up for a great run if paced correctly. This was my attempt at it. After exiting the park I immediately pushed the pace up to about 20 secs per mile. This wasn’t causing any issues with my knee and I kept a high cadence and low kick as best as I could.

The weather was great and the atmosphere is always terrific in Brooklyn. Ocean Parkway was now my turf for the next 5 miles. Nothing dramatic happened while pushing my way through towards Coney Island. The terrain is as flat as one could ask for so I kept relaxed and took in nutrition as I approached the aid stations. At mile 9 I took a strawberry powergel.


Upon approaching the last mile or so I pushed to have the quickest split of the day at 7:29. Didn’t break 1:40 but I’m very happy with my finish time of 1:41:42.

I am overly content with my resilience and performance on the day given the fact that I almost thought of the possibility of a DNF at mile 4 with the knee soreness.

For the next 2 weeks before Stockhlom Marathon I will rest up and do some easy recovery workouts for taper.

Thanks for having me. See you next time Brooklyn!

Race Report: 2016 Scotland Day Run

First race of the season. All went well. The weather called for rain at the start but was quite perfect for racing.

Race was very comfortable. Normally I would want to be at threshold during a 10K. However leg speed is just absent currently. I have been doing some track work over the last few weeks. But the top end speed I had back when I PRd at this race is simply not achievable currently.

The performance does give me confidence in holding a moderate tempo for my next upcoming race – Brooklyn Half Marathon. I have a month left where I can aim to get some leg power/speed going again. It would be great to go sub 1:45 at Brooklyn.

Scotland and Brooklyn are two of my favorite NYRR races.

Normally Anh and I would indulge in the post race activities of Scotland, photo ops, etc. but we had to hustle back to the car for 9am meter parking. Also our little one was missing us by now.

Finish Time: 46:15 (7:27 / mile)

Screen Shot 2016-04-02 at 7.40.13 PM

AVPlayerViewController were are the default controls?

So here’s the problem. I was working with tvOS on a project. The layout was a collection view of cells at the bottom layout and a player view with the current video. This current video’s view was part of a AVPlayerViewController’s view. When the view’s frame transitioned to Fullscreen 1080 x 1920 the default AV controls were absent.

After digging around on the tvOS forum and Stackoverflow I figured the reason was the view was not in focus.

Solution. Make sure if you’re having a similar problem that preferrrdFocusedView should be the Fullscreen view (AVPlayerViewController’s view) in order to get the default controls. Do so by calling setNeedsFocusUpdate and updateFocusIfNeeded.

Capstone Udacity project to the AppStore on hold

I was super psyched to release my next app to the AppStore. Having recently graduated from the Udacity iOS Nanodegree with my capstone project.  I was excited to release it to the AppStore.

Not so fast. RIP Parse! The app was build with Parse. Parse is a BaaS. So the backend of the app is pretty much handled for you. User authentication, user data, object data and so on.

Parse handled the situation as best as they could by giving developers migration assistance and open sourced the Parse Server so other services like Heroku can be used.

For now migrating my capstone project is on hold. Currently I’m leaning towards using Firebase.

One of the drawbacks to using services is the dependency factor. Unfortunately an app will always have such dependencies. The only protection is to put a contingency plan into place for such event.

Race Report: 2015 New York City Marathon

Weather

One of the warmest and ideal conditions for the New York City marathon.

No other marathon like New York City. I haven’t done this race in 5 years. I never thought I would have missed it so much like this time around. It is the biggest marathon a runner can be part of in the biggest city in the world. The logistics could be a challenge but that’s part of the journey.

Pacing

As in 2010 first 14 miles is somewhat deceiving and pacing suffers later as a consequence. Looking back at my pacing data from 2010 it was the same format where it falls by a minute or so in the later half.

Nutrition

Unfortunately I didn’t carry my fuel belt and Maltodextrin. I only had one breakfast as compared to the usual two at this race. Couldn’t have stomached the last one I brought to the race with me. Also did crave a banana which I didn’t have either. I was fortunate to have one during the race by a spectator.

One of the highlights for me was pacing a fellow runner during his meltdown from mile 24-25. This is all part of the marathon spirit. It also helped me rest a bit and finish stronger for the last 1.2 miles.

Family

Did my best to hold pace while anticipating meeting my family at mile 13-14. I took the time to shed myself of my hat and arm warmers. The day was surely warming up.

Training

I had a solid three months training block. I did two 20+ long runs which helped me tremendously. Lack of hill repeats which is essential for this course wasn’t done adequately. Intervals I’m still staying away from to prevent further knee injury.

Conclusion:

Had great fun at this years race and really took it all in and enjoyed. Did not meet my A or B goals but I am quite happy with breaking 4 hours. My IRONMAN marathon still holds as my slowest at 4:03.

First Half 1:47:42 (8:13 / mile)

Second Half 2:03:13 (9:24 / mile)

(16 mins difference in last half)

Finish Time: 3:50:55

Overall Pace: 8:49 / mile

Overall Place: 9072

NYRR 18 Mile Marathon Tuneup

Screen Shot 2015-09-20 at 8.25.04 PM

Courtesy NYRR Album Photos

All I will say now is I’m so psyched about my performance and how my knees held up for this 18 mile tuneup today.

Race Report: New York City Marathon 18 Mile Tuneup

I may actually love entering an event where time factor is not yet determined in training as in this case. 

Longest training run so far had been a 14 miler a few weeks ago with Anh, and our toddler, Miles. During that run I did the first 12 miles in my MAF zone – about 9:30s. The last two I did at a tempo, 7:40s. My knees held up pretty good during this run but recovery took a bit longer especially pushing the last two miles.  I didn’t run until about four days afterwards due to knee discomfort. At that point I was skeptical about going longer for marathon training. After a full recovery and back to training I kept all runs in MAF. 

Screen Shot 2015-10-04 at 11.00.46 PM

Last week prior to today’s run I tapered off and only swam and biked as I was striving to be 100% recovered for this race. 

The NYRR 18 mile tuneup is three complete loops of Central Park. It starts and ends on the East side close to 102 Transverse. The weather today was ideal for running with a nice breeze in the air. Fall is near! This race is perfect for testing fitness for the upcoming NYC marathon in November. 

Screen Shot 2015-10-04 at 11.01.42 PM

I positioned myself further back from my assigned corral to prevent getting sucked into bad pacing too early. My goal was to really warm up and see how I felt at mile 3. I went further with this moderate pacing until mile 5. Right at mile 6 of the first loop of Central Park I picked up the pace and settled at 8:30s. I averaged this pace for the remainder of the race. 

Screen Shot 2015-10-04 at 11.03.23 PM

I just kept my head down while climbing Harlem hill (heartbreak hill). This second loop of the Park (mile 12) surely felt like the climbing Queensboro bridge during NYC marathon. 

My lack of volume was evident at mile 16-17 when my ITB and calf muscles began to tighten up. That’s where marathon experience and mental toughness came in. So I dug to where I needed and pushed and adjusted my run form accordingly. I did more flat foot strides as opposed to forefoot strides. This helps with easing my calf muscles. 

Mile 17 was just digging deeper and pushing forward. I was also able to push the pace up slightly. 

I kept thinking how incredible it would be to see Anh and Miles at the finish. Approaching 102 transverse I kept digging. Last turn to the finish I kept looking at the sidelines for signs of my family. Sure enough they were there to surprise daddy. I was thrilled. 

Screen Shot 2015-10-04 at 11.03.47 PM

Conclusion

With a performance like today given that I am successful with completing two long runs at or close to 20 miles. I should be able to come home at the finish line for the NYC Marathon in 3:45. Withholding external factors.  

Nutrition

I took the following:

– gatorade at stations they were available 

– water approx every other station 

– 1 powergel at mile 9

– 3 salt tablets every hour

– walked the last four aid stations 

– two potty breaks 

Official Time: 2:34:36

Pace: 8:36 / mile

Can’t believe I am a Professional iOS Developer

I have done iOS as hobbyist for over two years and released a few apps in the Apple AppStore. I am also on course completed a Udacity iOS Nanodegree.

But after years of waiting for an opportunity in the iOS space, the day has arrived. I was offered an iOS position at SWARM.

SWARM is a startup involved in the emerging tech space. There innovative apps are built for the customer as well as in-house.

The transition from construction to iOS will be a challenging one. However I have dreamt and kept looking forward to this challenge for a very long time.

It may be a cliche but believe me with patience and hard work comes opportunity.

I will approach working at SWARM with the same tenacity and perseverance that I have given to construction, college, triathlon to name a few. All those had their struggles but being immersed in the experience and learning made be grow and become better.

So today I give myself a pat on the back and say well done Alex. A new journey begins!

Pitch Perfect App – Udacity Nanodegree iOS Developer (Course 1 – App 1)

In the first Udacity Nanodegree iOS Developer (course 1) I built an app called Pitch Perfect from scratch. Pitch Perfect allows the user to record audio using the device’s built-in microphone. The user is then able to use this recorded audio file to add four (4) different effects to it. Those effects are namely, Slow Speed (Snail Image), Fast Speed (Rabbit Image), High Pitch (Chipmunk Image) and Low Pitch (Darth Vader Image). The Framework that was used is AVFoundation. Introduced to iOS 8 is AVAudioEngine which is used in Pitch Perfect to vary the Pitch to “Chipmunk” and “Darth Vader” effect . One of the main resources/websites I used in researching during building Pitch Perfect was Stackoverflow.

Here is my Github repo for Pitch Perfect:
https://github.com/alexpaul/PitchPerfect

Screen Shot 2015-06-07 at 9.58.43 AM

First Screen where user records audio

Second screen with four (4) Effects to add to recorded audio

Second screen with four (4) Effects to add to recorded audio

Swift and Udacity

I have been writing iOS code since 2012. I have taken some online courses along the way as well. During this journey I have released three (3) apps on the AppStore. This year I am head first into making a transition to becoming a full-time iOS developer. Currently my daytime job is in the construction industry, namely doing carpentry/framing of interior spaces in New York City. I am very excited to do this career transition. However there are voids in my coding that I feel need improving upon, hence Udacity iOS Nanodegree. I came across Udacity last weekend while searching for tutorials on iOS integration with Web Services. Udacity provides a structured course with career development guidance.

What have I learned so far in the Udacity Nanodegree course?
The current lecturer, namely ,Kunal Chawla, started lesson 1 with walking us through the Xcode development environment. We learnt about the Xcode UI. The three main windows being: the Navigator on the left, Editor in the center and the Utilities Area on the right. The navigator as the name implies allows you to navigate through the files and assets of your project. The Editor is where code is written for your app and the Storyboard/UI is also manipulated and configured in the Editor area. The Utilities area has the object library, widgets to add to the UI such as buttons, labels, image view etc. In lesson 2 we started working on an app called Pitch Perfect. The app enables a user to record audio and modify that audio recording with various effects. In that lesson we started building the app. We added a microphone button and stop button to the initial view. We also custom added an image asset to the microphone and stop button. In iOS there are three asset sizes that a developer needs to provide. There is the 1x asset for iOS devices prior to Retina and there is 2x that’s Retina optimized and the newest 3x asset for iPhone 6 and 6 Plus. Autolayout was used by adding constraints to views to keep them aligned in various screen sizes relative to a reference point. In lesson 3 and 4 more implementation was added to the app to create its feature set. We embedded the initial scene in a Navigation Controller to allow transitioning between screens. With the navigation controller the Pitch Perfect app is now able to transition from the first screen with the microphone to the second screen which has the effects the user can choose from to manipulate their recorded audio.

AVFoundation framework enables all the audio development in Pitch Perfect. As with any Framework the library needs to be imported into your class so you can make full use of its methods and properties.

In iOS there is a fundamental programming concept known as MVC. Model, View, Controller. This practice is highly recommended in developing apps as it keeps those three principles separate and concise thus making the apps implementation easier for the developer and anyone reading their code to understand.

The Model is all the data objects of the app. In an app like Flickr that would be the photos, users, geolocation, etc. In Pitch Perfect its the recorded audio, title, file path.

The View is the user interface of the app. All the UI the user interacts with makes up the View. Buttons, Keyboard, Text Fields, Date Picker and so on. UIKit, a Cocoa class makes most of those UI View elements available to your app. Examples are UITableView, UIButton, UIViewController, UIDatePicker…… More can be seen under the documentation for UIKit.

The controller is the glue that keeps it all together. The communicator between the Model and View is handled by the Controller class. In the case of Pitch Perfect it’s the file RecordSoundsViewController.swift This file responds to actions that the user makes. Example, tapping on the microphone to record their voice. Switching between views, that’s all the job of the Controller. UIViewController is one of the most powerful UIKit classes. The view cycle of an application lies within the functions of UIViewController. Setting up the initial state of an app when it first launches for example can be customized in the viewDidLoad method of UIViewController. This class is also the parent class of UINavigationController which in itself is a powerful class.

To test our application development builds we used the iOS simulator. It’s able to simulate all iOS devices including the iPad.

To become a great developer you have to get use to reading and exploring the Apple Developer Documentation is paramount. In the docs there is code for Objective-C and now Swift. Most of the API is still written in Objective-C. So knowing Objective-C is still essential to landing an iOS developer job.

Delegation is one of the widely used practices in everyday iOS development. That’s where a calling object delegates task to the delegate and is able to be notified of changes in that Framework. That particular Cocoa Framework would have a set of protocols, some of which are optional and some may be required. If the protocol method is required it must be implemented in order for it to conform to the Class’s Delegate. A typical example is what cell did a user tap on? In the UITableView Class this delegation is done by the method didSelectCellAtIndexPath method. More on delegation in the documentation.

Follow

Get every new post delivered to your Inbox.