Recently I was troubleshooting multithreading issues in an iOS app. Here is some code that can identify what method and class called a given method. Useful for logging and debugging race conditions.
Monthly Archives: April 2013
Earlier today I attended the second annual NY Tech Day at Pier 92 in Manhattan, billed as the “largest startup event in the world,” hoping to network and recruit some iOS developers for IIN. I was blown away by the sheer size of the event. It took hours to see all 400+ booths, weaving through a crowd of thousands of people. Plenty of big names were there, including Microsoft, Box, Shutterstock, Zipcar, Seamless, TheLadders, and General Assembly. A few of the interesting ones that caught my eye were:
Yesterday I was working on a small .NET console app for the IIN Video Department to convert Adobe XMP files with closed captioning data into Subrip SRT files for processing by encoding.com. The XMP file is in XML format and contains the timestamp, duration, and speaker of each word in a video transcript. My program needed to parse this data and combine the words into 2 lines of text that will be rendered per screen via closed captioning. The start time of each screen of text would be equal to the start time of the first word, and the end time would be equal to the end time of the last word. Each line would only be able to contain a fixed number of characters to avoid line wrapping in the video. Also, every time a new speaker starts talking, a new line would be created, and prefixed with the speaker’s name and a colon “<Speaker>:” A fun little project which I’ll post on Github when it’s done. However, I did come across the following resource which is useful when using XPath to query an XML document that uses namespace prefixes. Namespace prefixes are shortcuts used to qualify element and attribute names in an XML file, usually to avoid element name conflicts. To work with them in .NET you need to use System.Xml.XmlNamespaceManager. Here’s a Microsoft support article that show’s how it’s done: http://support.microsoft.com/kb/318545
Last night I conducted an after-work training session at IIN for developers looking to learn XCode and Objective-C. I’m happy to say that everybody walked out of there with a working Tip Calculator app! Topics covered:
- Creating a new Github repository
- Connecting XCode to Github
- XCode overview
- Utility App template
- Connecting IBOutlets and IBActions
- Basic protocols and delegates
- Converting strings to numbers and vice versa
- Formatting currency
Thanks everyone for coming! Looking forward to the next session…
Last night I attended a great DDD NYC Meetup at the Manhattan headquarters of TheLadders.com. The special guest was Eric Evans, the author of “Domain-Driven Design: Tackling Complexity in Software,” the seminal work on the concept of Domain Driven Design. Eric gave an informal walk-through of his latest side project using Clojure, a procedural language for the Java runtime, and MongoDB, an open-source NOSQL database. I was hoping that we would apply DDD analysis to it, which unfortunately he did not. I can imagine that as a DDD consultant the last thing he wants to talk about after hours is DDD. However, the project was really quite interesting. Eric’s idea is an algorithm to mine through years of emails with another individual to discover “bursts” of communication. Then a word cloud can be generated for each burst and presented on a timeline to display what was discussed. According to Eric, the word clouds are eerily accurate about what was discussed (economy, elections, new baby, etc). Finally, Eric is working on an alert engine that will tell him when he is “due” for another burst of communication with an individual; a “reminder” to reach out to a friend that he only writes to a few times a year perhaps. A truly unique concept to help people comb through the deluge of emails for meaningful and actionable information. Thanks to Eric for taking the time to talk to us and TheLadders.com for the location, pizza, and beer!