I wrote earlier that I attended 360iDev a couple weeks ago. I also got a chance to attend SecondConf in Chicago last weekend, where I had the opportunity to speak. SecondConf was a lot of fun, but I couldn’t help but notice that a lot of people weren’t getting as much out of the conference as they could have. I just wanted to walk up and say, “You’re doing it wrong!” I resisted that temptation, but in a spirit of helpfulness, I thought that I’d share with the world a few tips that I’ve discovered to help make your conference experience more enjoyable and valuable. So without further ado…

Attend Sessions

Every technical conference that I know of has sessions that you can attend. Do that. The conference organizer has gone to great lengths to select a line-up that includes experts in different topics. It would be silly to not take advantage of that resource. And when you attend a session, take notes. Take out your developer notebook (You do have a developer notebook, don’t you?) and jot down the the session name, the speaker’s name and his contact information. Then jot down anything that sounds interesting or that you might want to follow up on. This isn’t high school, and there isn’t going to be a test, so there’s no need to go crazy with the notes. Just jot down things that you didn’t know about before. Future you will be glad that you did.

Choose Wisely

If you’re attending a multi-track conference, you might get to choose which sessions to attend. But a choice is both a blessing and a curse. What if you choose wrong? What if you sit through a "meh" session only to later discover that the session right next door was incredible? How can you avoid disappointment? Well, there’s no sure-fire way to make sure you get into the best sessions, but one trick I’ve found is to choose which session to attend based on the speaker, not the topic. Choose a speaker who has a reputation for being outgoing and entertaining. In my experience, a great speaker can make even the most bland of topics interesting and memorable. Also, be wary of overly technical talks. No matter how important the technology, there’s nothing worse that sitting through slide after slide of code. When it comes to these types of code-intensive presentations, you’re probably better off buying the session video after the conference. Then at least you can rewind as needed.

Mix It Up

Sessions are great, but most of the value of attending a conference comes from the people you’ll meet. Meeting new people and strengthening existing relationships are the best use of your time while you’re there. Introduce yourself to others. Go out of your way to sit with people you don’t already know – maybe even ask a table of strangers if you can join them for lunch. Avoid only hanging out with people that you already know. Mix a little. Whatever you do, don’t hole up in your room working on code. Don’t like to "network"? Then don’t call it that. Call it "making new friends". Because that’s all you’re doing.

Leverage Social Media

Don’t worry, this isn’t going to devolve into some sort of SEO presentation on how to increase your Klout score. My point is, you probably already know people on Twitter that are attending your conference, so go out of your way to meet them. My new friend Matt Klosterman (@IfMatt) had a great shirt at 360iDev that read, “Hi! I’m @IfMatt. We should talk.” And you know what? It worked! It helped me recognize him, and sparked a conversation. But you don’t need a special t-shirt to hook up with your online friends. Get on Twitter and put the word out that you’re at the conference and would love to meet your followers. Or, better yet, organize a group to go out and get dinner. It’s one thing to follow someone online, but it’s quite another to have shaken their hand, and maybe shared a meal.

Be Memorable

I had the chance to hear Dave Wiskus (@dwiskus) speak at a conference recently, where he gave a talk entitled "Subjective C". His talk included a collection of stories and anecdotes about non-technical skills, and one of his slides was titled "Be Memorable". And you know what? When it comes to conferences, that’s really good advice. Meeting lots of people is great, but you want the relationships that you form to last beyond the conference. So how do you become memorable? Good question. Being memorable doesn’t have to mean being the life of the party. (Although it can, if that’s your thing.) What it really means is going out of your way to make an impact on someone else. Engage people in meaningful conversation. Introduce the people that you’re with to others. Thank the author of that open source code that you’re using in your project. The most important thing is to be authentic.

Have a Winning Strategy

For the more introverted among you, mingling at a conference and engaging a stranger in converstaion sounds like torture, I’m sure. So let me offer a surefire strategy. No matter how uncomfortable you feel in large social gatherings, there’s always someone more uncomfortable than you. Your job is to find them. So during the social hour (or between sessions), scan the crowd. Look for that one guy standing by himself with a drink in his hand and looking slightly uncomfortable. That’s your target. Walk up and introduce yourself. Ask him where he’s from and what projects he’s working on. That’s it. That’s your conversation starter. Talk for a few minutes, and then move on to the next wallflower. The best thing about this strategy is that you’re not imposing on anyone. Rather, you’re rescuing them! The people you’re approaching are just as uncomfortable as you are, but now they feel included. You’re the hero. And congratulations, you’ve just become memorable.

Posted on September 28, 2012

Read More


I’ve now had a few days to recuperate since returning from the 360iDev conference, recently held in Denver from September 10 to September 12, and I have to say it was a great time. While I was there I met a lot of great people, renewed some online friendships, and learned a lot as well. John Wilker (@360iDev) and his wife put a lot of time and effort into attracting quality speakers and making the whole show run smoothly, and it showed. In this post, I wanted to call out just a few of the presentations that I attended and some of the lessons that I took away from them. Hopefully, those lessons will be useful to others.

On Monday, Bill Magnuson (@billmag), the CTO of AppBoy, led a session on “Turning Your Mobile App Into a Business”. Bill had a lot of great ideas to share, but the main take-away that I got was that there is a lot of value in opening multiple channels of communication with your customers. It’s important to be on Twitter and to post to your blog (See? I’m trying!), but you should also be able to communicate with different slices of your customer base. Mailing lists are a great way to get the word out quickly to large segments of your customers, but more focused messaging (like in-app messaging) can also prove valuable – especially when you need to communicate with just the customers of a particular app. If you’re interested in what Bill had to say, you can check out his slides on Slideshare.

Later on Monday, Joe Cieplinski (@jcieplinski) of Bombing Brain Interactive addressed his audience on “Avoiding the Race to the Bottom”. Basically, his argument was that although it sometimes seems like cheap and free apps get all the attention on the App Store, they probably aren’t the best way to build a long-term business. In fact, he argues, higher priced “premium” apps often make for a better experience for everyone involved. Higher prices create a solid foundation on which to build a business and reduce support costs (since there are fewer customers to support), and the users of these apps enjoy better customer service as well as long-term maintenance and support. It ends up being a win for everyone.

The next day, I listened to Gustavo Ambrozio (@gpambrozio), a Brazilian born speaker of Portugese, wrestle with his self-professed hatred of English prepositions as he shared some of the lessons that he learned while developing an open source replacement for UIAlertView and UIActionSheet. Along the way, he delved into some not very well documented sections of UIKit, the meaning of “makeKeyAndVisible” (it makes the UIWindow accept keyboard input), and the beautiful simplicity of blocks. All in all, Gustavo proved to be a very engaging speaker who entertained as he educated his audience.

Finally, on Wednesday, Jay Freeman (@saurik), developer of the jailbreak app store Cydia, spoke to a small room of iOS developers and blew their mind. His talk was titled “iOS Application Security”, but really it was about the security of the many backend-as-a-service (BAAS) companies that are becoming so popular. His session was basically a running commentary on an hour-long demo that he conducted on the vulnerabilities of some third-party services. Over the course of his session, Jay decrypted supposedly secure passwords, pulled out potentially sensitive data that he shouldn’t have access to, and exposed the poor design decisions that allowed him to do all of this. This session was eyeopening to say the least, and I think every developer left the room with a better appreciation of how important proper data security is in a mobile app. Unfortunately, I don’t think that this session was recorded, so I’ll leave you with the tl;dr version: “Servers should never trust the client. Ever.”

Wednesday was also noteworthy as the day of the iPhone 5 announcement. I have to say, it was a lot of fun to sit in a ballroom and geek out with other iOS developers as we watched the Apple event. Luckily for John Wilker, pre-orders weren’t being taken immediately, so his WiFi network didn’t have to withstand the stress test of 350 developers simultaneously attempting to connect to the Apple Store. The Apple event was also fun for me because John allowed me to sponsor a giant round of Buzzword Bingo. John’s volunteers distributed the 400 bingo cards that I had printed with squares bearing phrases like “Magical”, and “One more thing”, as well as rumored features of the new iPhone such as its larger screen. As these phrases were said on stage by Apple presenters, players could mark them on their cards. For prizes, we had some t-shirts, Moleskine notebooks, and iTunes gift cards. It all went about as smoothly as I could have hoped, and I think everyone had a lot of fun.

I want to thank John Wilker, his presenters, and everyone involved with 360iDev for hosting an excellent conference. It’s always fun to meet with your peers (many of whom I have only “met” on the Internet) to share successes, frustrations, and ideas. It’s even more fun when you can do that at such a professionally organized event. If you develop for iOS and didn’t attend 360iDev this year, you should definitely plan to attend next year. Also, consider purchasing the recorded sessions. They’re full of information and first-hand experiences that you won’t get anywhere else. And to everyone I met at the conference: It was great talking to you. I’ll see you next year!

Posted on September 17, 2012

Read More


One of the nice things about Lucky developing for the iPhone is that it’s pretty easy to conform to the standard look in your app icons. The rounded corners are automatically applied, and unless you go out of your way to prevent it, a “gloss” is applied to the top of iPhone icons when they are displayed on the device. The result of these automatic transformations is that the standard iPhone app look is pretty easy to achieve.

That works great wholesale nba jerseys on when your icon is displayed on an iOS device, but what if you want to wholesale nba jerseys use your icon on Store your website, or even your business card? Well, that’s where an artistically challenged developer like me runs into problems. If you don’t get the gradients just right they look “off” and they’re distracting to anyone that knows what an iPhone icon is supposed to look like.

Luckily, for those who know how to use Photoshop, there are solutions. Several people have been generous with their time and cheap jerseys skills and have distributed templates for iPhone icons that can be used with Photoshop to get the correct corner radius and gloss. Developer One of the best templates that I’ve found was created by Sebastiaan de With who distributes the template on his blog Cocoia.

Unfortunately, I don’t have Photoshop. It’s pretty expensive, and I don’t have the budget for it. So I use GIMP which is a free image manipulation program that provides almost all the features that I (as a non-artist) will ever need. In fact, I’ve never run into a graphics lamenta problem that I felt capable of tackling that I couldn’t solve using GIMP. Except one: Wholesale Seattle Seahawks Jerseys GIMP won’t correctly open the PSD file that contains the iPhone icon template from Cocoia.

Luckily I have friends who have Photoshop and skills to make the most of them. Mike Berg of We Heart Games offered to pull out the parts of the template that apply to 512×512 cheap nba jerseys pixel icons and export them to PNG files that can be used in GIMP. I took the results of his work, made Management a few modification, and now offer up to the Internet as an iPhone app icon template for Gimp.

This template provides everything that you need to make faithful renderings of iPhone app icons at a size of 512×512 pixels. You can resize from there if you need to. Inside the ZIP file are a number of files. The file 512-shape-mask.png can be applied to a 512×512 pixel image as a layer mask to get rounded corners with the correct radius. The files 512-topBevel-and-gradient.png and 512-topGloss.png can be applied as layers to get the correct glossy look of an iPhone app icon. I also included a sample file Localization (512 demo.xcf) that demonstrates how you can use these images to generate the proper look.

I hope that this example proves helpful to other developers that use GIMP for their artwork, and a big thank you to Sebastiaan de With who created the original template.

Posted on September 14, 2010

Read More


Being an independent iPhone developer is Learned great, but it comes with some limitations that larger software shops aren’t as constrained by. In particular, time is a resource that is always in short supply. I’m the developer, designer, and support line for Daze End Software, and unfortunately, there never seems to be enough time in the day to get done everything that I’d like to do. So it’s nice that there’s a supportive community of indie cheap nfl jerseys iPhone developers that I can lean on. These guys are great. They offer a sympathetic ear when things go wrong, they offer advice when I Arrived!!! need guidance, and occasionally they save me several hours wholesale nba jerseys of work.

Such was the situation that I encountered recently with the release of iOS 4 for the iPhone. I received a bug report from a customer that I just could not reproduce. (And as all developers know, if you is can’t reproduce a bug, it’s awful hard to fix the bug.) As it turns out, the reason I cheap jerseys couldn’t reproduce the bug is отпуска: because I was in the wrong timezone. How did I figure that une out? Because the community of iPhone developers is awesome and generous with their time.

A Google search wholesale nfl jerseys turned up one lonely description of a problem in another developer’s app which sounded similar to the bug that had been reported in mine. I’d never met this developer before (either in real life, or online), but I took a chance and emailed him anyway. This developer, Greg, took the time to respond to my out-of-the-blue email with a detailed description of the root cause of the problem and the wholesale mlb jerseys steps needed in order to reproduce it. He saved me hours of time in debugging — hours that All I would much rather spend Schuldenbereinigung creating new features than debugging old ones.

So what’s the point of this post? It’s really just an excuse to give a shout out to Greg at More Mobile Software who took the time to help out a fellow developer. Thanks Greg! And thanks also to all the other iPhone developers out there that are helpful, supportive, and generally make iPhone development an enjoyable pursuit.

Posted on July 4, 2010

Read More


As a native of a relatively typical middle-American town, it’s easy to forget that most of the world doesn’t speak English. The iPhone is an international phenomenon though, and millions of its users either don’t speak English or don’t speak English as their first language. Even though language may separate de us, the intimate relationship that people have with their iPhone is universal. iPhones go everywhere with their owners and they contain incredible amounts of personal information. People feel a connection with their iPhone, so it makes sense that they want to operate it in their mother tongue.

With this in mind, I’m translating the next version of Action Lists into a Dlá?-kovica handful of languages. For those of you unfamiliar with the process, getting your iPhone app translated actually involves two separate processes. cheap NBA jerseys “Internationalization” is the process of tagging the strings in your program that you want to have translated. wholesale mlb jerseys “Localization” is the process of presenting translated versions of those strings to the user. I’m not going to go into great depth about the process of internationalizing and localizing your app (Apple has pretty good documentation on the subject), but I will share some of the tips I discovered while localizing Action Lists; things that I wish I had known when I started. (more…)

Posted on February 21, 2010

Read More


For this post to make any sense, wholesale nfl jerseys you’ll need to have already read Marco Arment’s article about the two App Stores. If you haven’t read it, please read it now. It’s a pretty good analysis of the pressures facing iPhone developers.

Ok, now that you’re up to speed, here’s the thing: App Store B is dead. It doesn’t exist. At least it doesn’t anymore. The path to success using an App Store B strategy has been closed to new developers for a while. It’s closed, because even an App Store B strategy requires that customers know about your app before they purchase it, and today there’s few ways for an App Store B app to get noticed — even if it’s deserving. (more…)

Posted on January 1, 2010

Read More