I went to a meetup last night featuring women in tech. The first talk was about User Notification is iOS 10. The second talk was about Design Patterns, MVC, MVVM, MVP. This talk was also based on a talk by Bordan Orlov. More info here on his talk. Design Patterns should be the first piece of architecture an iOS team addresses whenever implementing a new feature of project. I am still gaining more insights on the right pattern to use in each given case scenario. But it’s more important to keep adapting to change.
Posted by alpaul on January 26, 2017
I’m in the 5th week of my base training for IRONMAN Sweden. Today I’m doing a run swim run workout. So I’m making so to fuel up for the workout. The plan is to run to the pool about 30 minutes. Swim for about an hour continuous and run back home.
Posted by alpaul on January 26, 2017
My last tri was 2 years ago. However I have been keeping up with training the best my schedule allows. To be exact my last Tri was October 2014. Waterman Half in Maryland.
So in search of a late season tri I sort out to my usual trifind.com search. The choice for a Half Iron was between Williamsburg’s Patriot Half or Narragansett, Rhode Island, FIRMMan Half. Many variables would dictate the choice: weather, travel time, activities pre and post race.
The choice ultimately was FIRMMan. Weather was projected to be 80 degrees as opposed to Williamsburg’s 94. With the little run volume I have accumulated for this season post Sweden marathon and my lack of heat training I know this would be a failed attempt at running the whole race if I did the Patriot Half.
So I signed up to FIRMMan with a week to go. In the three sports my bike training clearly had been the best with 3 sessions a week for the past 12 weeks, namely strength, aerobic and a long session. My run has been minimal due to a chronic knee injury. Swim has been 2 sessions off an on with zero in the last 2 weeks. This race was to be somewhat of a benchmark into my IRONMAN Kalmar, Sweden, training which officially starts in December.
Upon entering Narragansett we saw posters for a calamari cook-off. Huge squid state. This we wouldn’t miss, it was only 5 minutes from the expo. So before packet pickup we attended the calamari cook and yes I tried all the samples from the 9 or so participating vendors.
Packet pickup was followed by an hour race briefing by the race director. The organizers did a great job prepping us for the event given their limited resources. A race that earlier before had a larger field size of roughly 600 has dwindled to a few hundred at best. Competitors are surely saturating the sport.
Making the mile or so walk to the race start the swells from the ocean looked unrelenting. I wasn’t taking this in too much because I knew the toughest part of the swim would be making my way out to the first buoy given the rough waves. This would turn out to be way tougher than I imagined. Again I haven’t practiced any open ocean run starts lately especially in such conditions (similar would be Rockaway beach, NY on a windy day). On each attempt to start freestyle swimming I was engulfed in a huge swell. Almost immediately after countless attempts the thoughts of a possible DNF (did not finish) was crossing my mind. It wasn’t thoughts of panic or such but the 1.2 mile swim doing breaststroke would be extremely exhausting. I took as much time as needed to evaluate the situation and my swim options while treading water and doing minimal progress. My short term goal was freestyle, then mix in some breaststroke until some sort of normality posed itself. This strategy would really be helpful as I started to make actual progress on the swim course. Freestyle stroke was becoming more prevalent than breast at that time. What helped tremendously was when swimmers in the pink wave came by. I was able to tag along and sight off them without breaking my swim flow too much. I would only see the occasional blue cap that I started with at 7am. Great! I could now see the huge neon turn buoy which signaled turning to shore for the swim finish. At this point my swim technique and freestyle stroke all came together. I was able to really dig and finish the swim as strong as possible. Afterward I saw one of the race organizers who said those were the worst swim conditions in the race 20 year history.
T1 (Transition 1)
There was a small trench in the water that the volunteers made us aware of heading out of the water. The run to transition was pretty short. Made sure to put my socks on in prep for the run afterward. Helmet and glasses, salt and a 2nd spare tube in my jersey.
I saw Anh and our son Miles as on the swim and waved to them as I headed out. The winds were to be 18-20 mph for the duration of our outward ride which makes up about 2/3 of the course. With a southwesterly wind direction that would make for a terrible headwind. As stated my bike fitness heading into this race has been great. The course and road surface was perfect. I’ve never raced on an open road course before but I’m use to it in training as is the norm. However looking out for merging traffic on a highway is new during a race. The course takes us on Route 1 where traffic is open in either direction. So after surviving the swim I needed to play close attention to the traffic as well. Not a deal breaker, it just kept me focus on the course and my bike. I made sure to keep taking nutrition in because as always this is the second leg of the race, still a half marathon to go. Heading back into Narragansett town beach there was a tailwind as promised by the forecast. I made sure to keep my pedal stoke as efficient as possible pushing a bigger gear at 82-85 rpm. Higher rpm on up hills 90+. I finished the bike in 2 hours 53 minutes. Quite happy with that split, 2nd in my age group, booyah!
T2 (Transition 2)
I made sure to grab my gel for the run. Took my fuel belt, race belt and visor and headed out.
With my lack of run volume I knew I would not be capable of getting the normal high 1:40s run split I normally get at a half. So the main goal was to maintain an easy MAF (aerobic) pace straight out and hold until I felt any better or could push a bit more appstore.com/stayaerobic. Thankfully I choose this race as opposed to Williamsburg because even with temps in the upper 70s, it still felt hot out there. At every community aided water station I made sure to pour water on my head to cool my core temp. Thankfully the weather would play into our hand on the run when a drizzle started which was much needed. This really helped. At mile 9 my knees and technique felt better and I was able to push a bit. I started picking out and passing some runners along the way. Finished off at 2 hours flat. Couldn’t have asked for a better finish when I was able to run with Miles across the finish line. My little trooper also placed the finishers medal around his daddy’s neck. Thanks to my son and lovely wife for always being my #1 support crew.
I made sure to pack my fuel belt for this race. Especially with the the fact that it’s a small race. Wanted to make sure to pack my nutrition essentials namely, accelerade with maltodextrin
Would I do this race again? Maybe sometime in the future especially the fact that there’s other activities to do around Rhode Island. Such as the last day in RI we toured Newport. Which is filled with historical monumental mansions and the ocean scenery is breathtaking. There is a cliff walk along the ocean that’s a must do for anyone. On the day we were just plain limited with time and did a quick drive through.
The race director iterated post race that this was by far the harshest swim conditions in the race’s 20 year history. So I have to feel quite content with my 50 minute performance as compared to the better swimmers at 40 or so minutes.
How is my fitness and performance? My training and performance couldn’t have been better correlated. All three were on point with my training and lack of. Heading into winter IRONMAN training I know the key points that will need addressing especially knee strength appstore.com/kneefit for my run fitness.
Posted by alpaul on September 18, 2016
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!
Posted by alpaul on May 23, 2016
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)
Posted by alpaul on April 2, 2016
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.
Posted by alpaul on March 29, 2016
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.
Posted by alpaul on January 28, 2016
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.
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.
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.
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.
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.
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
Posted by alpaul on November 1, 2015
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.
Posted by alpaul on September 21, 2015
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.
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.
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.
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.
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.
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
Posted by alpaul on September 20, 2015