Felipe Cypriano

You're about to read

How to Customize UITabBar on iOS 5

Building the new version of the app Blocos de Rua I was challenged to customize the UITabBar so it meets what the designer wants. In iOS 5 this is pretty easy to do but I haven’t figured out the proper way to do it from the beginning, this post is my findings on how to do it properly by correctly using the new iOS 5 APIs to customize appearance.

The final look:

Keep reading to see the code.

Why I Choose to Learn Ruby Over Python

A few months ago I was looking for a technology to run the server side of a iPhone app. And I had two in mind: Ruby on Rails and Django (Python).

Why not others options? I already knew Java and its web frameworks but I didn’t want to use any of them because Java needs a lot of RAM even for the most simple things and I don’t want a big server before I really need it. PHP I don’t like the syntax, it is ugly.

This post is not a technical comparison between the languages, it’s why I’ve chosen to learn one of them first.

Keep Changing

Back them in 2005 I was starting my developer career and as almost all other developers I didn’t care about anything that wasn’t the quality of my code, how many features it has and if it “works as expected”.

Core Data - How to Do a SELECT DISTINCT

Actually it’s pretty simple to do. But if you try just by reading the documentation you’ll find the same problem I did.

Suppose that I need to get a list of all ages I had on my database to make a hierarchical navigation that starts by selecting an age. If were working directly with the SQLite store I could execute this SQL to do this:


Metro Is Going Towards the Right Road

Disclaimer: I don’t care about anything outside Metro on Windows 8 and this post is strictly about Metro apps.

The best thing about Metro is that it is being designed to be consistent. They’ve created a set guidelines to show how a Metro app should behave and look like. (The other best thing is that it doesn’t run Flash)

It’s surprisingly good see how Microsoft is teaching Windows developers that in order to build a great app they need to be consistent with the platform and Metro is being built from the ground up to be consistent.

More Secure With Convenience

Having a “baked” blog, meaning every page is static baked by a system (Octopress) on my machine before it goes to the server, makes it more secure. I realize that I forget to talk about this on my last post when I was reading a post about security from Dreamhost.

My previous configuration was Wordpress with more or less 10 plug-ins. Very often I forget to update them all, so my blog for various periods of time was vulnerable to known attacks until I remember to update everything. Of course this isn’t Wordpress fault, it’s mine. I forget to update.

Why I’ve Migrated to Octopress

In simples terms: to make the whole blog simpler. I don’t need a database to run my blog anymore. I don’t need any server technology. Everything I need is a “plain old web server”.

Matt Gemmell motivated me to use Octopress in his post Blogging With Octopress. Unlike him I’ve never been fireballed and I think I’m far from it, so his arguments about the improvements under high load doesn’t apply to my blog. Yet. I hope.

I’ve chosen Octopress over Wordpress self hosted because I don’t need to worry about caching (I was using W3 Total Cache) and I don’t depend on MySQL not even PHP to run the blog.

Native Code Is the Current Winner

Michael Mahemoff on HTML5 vs native:

It would be nice to declare a winner here, but right now, there is no clear winner. Some apps are best suited for native and some are best suited for the web.

I don’t think Mahemoff read his own article before writing the conclusion. Native won most of the categories: Feature Richness, Performance, Developer Experience, Look-And-Feel, Discoverability and Monetization. Of course HTML5 is catching up but it’s not an even yet, native is still better to build great apps.

One last think, in my opinion PhoneGap is a huge workaround and should never be used.

HTML5 vs Native: The Mobile App Debate