Archive for the ‘Uncategorized’ Category.

Big Android BBQ Day 2

Well, the Big Android BBQ 2015 conference is in the books. I found the content on day 2 to be a bit more helpful to me at my current level of Android experience, with the highlights being sessions on lean layouts and fragments. A bit basic for the seasoned Android developer, but just right for me.

BTW, Happy Birthday to Omar Moreno, the great center fielder on the Pirates teams of the late 70s and early 80s, and leadoff man for the 1979 World Series champs.


Big Android BBQ Day 1

Well, day 1 of the Big Android BBQ in Hurst, Texas is in the books. The content was pretty good, with the highlight of the day being the Location and Context and Speed, Oh My! presentation. Also, I attended presentations on What’s New in Android Marshmellow, Android Performance at Scale, and continuous testing. Each of them contained some good takeaways.

BTW, to continue the theme from yesterday’s BTW, Happy Birthday to Christopher Lloyd, who most famously portrayed Doc Brown in the Back To The Future movies.

Busy day

Today is a busy day, as it is the travel day for attending the Big Android BBQ. I do not know what to expect from the conference, but I will post some recaps in this here space in the next few days.

By the way, today has been a busy day in several other very important ways:

  • Todd Richards gets fired as coach of the Columbus Blue Jackets and gets replaced by John Tortorella
  • Joe Biden announces that he is not seeking the Democratic Presidential nomination for 2016
  • OS X El Capitan 10.11.1 GM drops
  • Xcode 7.1 GM drops
  • iOS 9.1 GM drops
  • tvOS GM drops (it’s a full Apple download day I guess)
  • The Mets finish off the Cubs

In closing, Happy Back To The Future Day to everyone. I must live in a back water town, as I have not seen people wearing spiky metal hatsĀ or using hoverboards…

Gee, I would have never guessed that password…

A password so insecure, it is secure.


BTW, Happy Earth Day to the citizens of planet Earth reading this message. (Which should be most of you.)

Shameless plug

Attention baseball fans! I’d like to take this opportunity to put in a shameless plug for an app near and dear to my heart.

I just released the 4.0 version of Pro Baseball Stats to the iTunes App Store. It is a free universal app for iPhone and iPad with iOS 7 or newer. If you are a baseball geek, please check it out.

BTW, a posthumous Happy Birthday to Jeff Healey, the fantastic blues guitarist who was taken from us far too soon.

EXC_BAD_ACCESS when creating Address Book records on iOS

I have this code in one of my apps that creates some test records in the Contacts app, so that I can quickly build up some address book data for testing purposes. However, I just uncommented out this code for the first time in a long time, and now I am getting some kind of object release EXC_BAD_ACCESS exception when creating Address Book records on newer versions of iOS.

I tracked the problem down to this line:

ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABPersonPhoneProperty);

While this used to work just fine, I needed to change it to this line:

ABMutableMultiValueRef phoneNumberMultiValue = ABMultiValueCreateMutable(kABMultiStringPropertyType);

And now my address book records are created without any kind of memory crash.

BTW, Happy Anniversary to Godzilla, who premiered in Japanese theaters on this day 60 years ago. Additional BTW, for U.S. readers, don’t forget to get out and vote tomorrow.

Twitter REST API is very finicky

The post title says it all.

I have been trying to put together some code that calls the Twitter REST API, and found it to be extremely finicky. If you do not have everything just right, you will get back a frustrating error message that says “Could not authenticate you” and “code 32”. Not super helpful.

Most of the issues I had were in building the base string that gets sent to Twitter. If this string is not built exactly as it needs to be built, things will just not work.

Here is what I found about building the base string through trial and error, and with exhaustive searches of the Google and Stack Overflow:

  • After the endpoint URL, make sure that your query string parameters are in alphabetical order
  • If you are putting into the base string part of a query that needs to be URL encoded, then it needs to be double encoded inside the base string

For example, on this double encoding thing, if you want to search for “Twitter API”, the search part of your query string, once URL encoded would look like this:


However, you need to double encode the search text so that it looks like this instead:


BTW, Happy Birthday to Brian May, guitarist from the legendary rock group Queen.

Codemash 2014 recap

My second Codemash experience is in the books, and was a great conference. Thanks to Jim Holmes and his staff for all of their hard work and effort.

Mostly, I again attended mobile software development sessions, and this year’s lineup was solid. All of the presenters did very good jobs with their presentations.

My biggest disappointment this year was not being able to stay at the Kalahari Resort, which would have been optimal. As it was, I had to drive back and forth between the Kalahari and my hotel. Maybe next year I will just pony up and reserve the hotel before the conference just so that I can be guaranteed of getting a room there.

BTW, Happy Birthday to Andrea Martin, who was comedy genius on SCTV, and also played Moogie on Star Trek: Deep Space 9.

Happy Thanksgivukkah (and an iPhone 5S review)

For seemingly the whole month of November, I have unfortunately been ill with a touch of bronchitis, so my work and blog time has been a bit limited.

So I think I will just take a moment to point out that I switched to an iPhone 5S from an Android phone, and it was a good decision. I am super happy with the iPhone and Verizon so far.

BTW, I hope everyone is having a happy and safe Thanksgiving and Hanukkah.

Mamas, don’t let your babies grow up to put important code in the dealloc method

Here is something you may not have noticed (yet). If you use the ZipArchive code to create zip files in your iOS app, and you convert your app code to ARC, your zip files might not be created correctly. The problem exists here in the file:

-(void) dealloc
	[self CloseZipFile2];
	[super dealloc];

If you use the CreateZipFile2 method to create your zip file, previously you would call the release method on your ZipArchive object, and the memory would be flushed away. Unbeknownst to you (but beknownst to the ZipArchive devs), your zip file was A-OK because of the CloseZipFile2 method call in the dealloc method.

But ARC conversion removes the release messages! Bugger!!! Just manually put in a call to CloseZipFile2 everywhere that you use the CreateZipFile2 method.

BTW, Happy Birthday to Kent Tekulve, former Pirates great and commissioner of the Pittsburgh Pirates Fantasy Camp. Unfortunately Teke could not make it to camp due to illness this year, we missed you Teke and hope you are feeling better.