Software writings

I've been considering writing more about my software development related explorations, much like Brent Simmons does in his own blog. The main difference (other than the fact it'll probably take a good while until I can reach Brent level quality) would be I'd do so on this website, but on a different page and feed.

I am not set on this. I'll give it some thought in the next few days.

One year

Almost one year ago, on April 20th, I wrote on this blog for the first time. Since then, I've posted 33 times, mostly linking to posts from other authors and adding a comment. While the number of posts, both links and original content, has been less than ideal, it's pretty much on par with what I expected from my first year.

I had wanted to write online for a long time before I finally started, and while I have yet to build an audience, the experience has been satisfying in a number of ways.

First, writing online forces me to not only have my own opinion about the subjects I'm interested in, but to stand by it. This made me a more thoughtful reader overall.

Second, I've obviously been practicing my writing more. Since I chose to write in English, it doesn't hurt that I brush up on my language skills either.

Third, and more importantly, it made me want to write more. It's often said that people who think they'd love to write, are generally just enamoured with the idea of writing. The only way to know if you'll like it is to actually do it consistently and see if you enjoy it.

While my writing here has been far from consistent, it has been enjoyable. As such, I'll stick to it, write more than ever, and see where it goes.

Can’t We All be Reasonable and Speak English?

Stack exchange recently launched Stack Overflow in Portuguese

From the blog post which explains the reasoning behind the new community:

Even if I believed that every programmer must eventually master English, it still wouldn’t make any sense to make them do it first. I believe that everyone – everyone – who can really fall in love with programming should get a chance to. So pre-filtering for the ones willing to learn a foreign freaking language before they first sit down with a code editor to see if it lights some spark in them just feels wrong. Think of the children.

There are many very solid points made in the post.

I am not a native English speaker, but my parents provided me with the opportunity to study English as a second language in a school which was probably the best available, albeit unexpensive. I worked hard to get to the level where I could write my own blog in English, and maybe even pass as a native speaker in situations where my accent won't be noticed.

From the comments on the Stack Exchange blog, many people seem to take issue with the point made in the article and with the value of having a Portuguese based community. Weirdly enough, many of them don't even express themselves in English that well, at least from the writing in their comments, which I am sure was very well thought through, as all of internet commenting always is.

I can understand how people from countries that speak English natively would see the problems with fragmenting the body of knowledge as more important than the pain felt by those who do not have access to the body of knowledge at all. But I find rather puzzling that people in a developing country such as Brazil would believe that the Brazilian community would be better off having only the English version of Stack Overflow to rely on, even when a large portion of said community can't read in English well, and most can't express themselves at all.

Face is not the Future

Ben Thompson on the Oculus acquisition by Facebook.

Setting aside implementation details for a moment, it’s difficult to think of a bigger contrast than a watch (or ring) and an Occulus headset that you, in the words of Zuckerberg, “put on in your home.” What makes mobile such a big deal relative to the PC is the fact it is with you everywhere. A virtual reality headset is actually a regression in which your computing experience is neatly segregated into something you do deliberately.

Apple Will Sell The iPhone In Brazil For Nearly $1,200

I am linking to Business Insider. Can't really believe it.

To put that in perspective, consider that the Brazilian average wage is about 2,000 reais per month, according to Trading Economics. On that measure, an iPhone costs the equivalent of more than a month's wages. Brazil's income stats fluctuate more widely and frequently than those of the U.S. The World Bank recently put average income per capita (a different measure of wealth) at just over 9,000 reais. The U.S. equivalent is about $47,000.

This seems accurate. The prices we usually pay for electronic devices is ridiculous. When it comes to the iPhone and other Smartphones, our carrier subsidies are nowhere as strong as those in the US. Those of us privileged enough to buy an iPhone regardless of its abusive pricing here, usually have the option to buy them abroad for a lower price.

So why would Apple charge more than the U.S. for a phone in a country that is poorer?

One part of this is that Apple is not actually trying to be the most popular phone company. It is trying to be the richest phone company: Apple takes 87% of all mobile phone profits in the entire world, according to analyst Tavis McCourt at Raymond James.

Now, this, has nothing to do with the iPhone pricing in Brazil in particular. This is how Apple prices their products regardless of the market they are in: at a premium level, because they are premium products. The particularly high prices in Brazil are much more related to how abusive our tax policy is. This is not an iPhone only situation.

2013 Stack Overflow User Survey Results

Last year, as usual, I participated on the Stack Overflow User Survey and now the results are out.

Some of the interesting observations:

Working Remotely

As our Stack Exchange team is growing and we have more employees working remote, we added a number of questions about remote work. While only 10.6% of respondents said they are full-time remote, 63.9% of total respondents say they work remotely at least occasionally.

I am very glad to be among the 10% who answered they worked remotely full-time. It took me over a year to get to this, and I love every bit of it.

Android continues to climb while iPhone declines

Not only is the Android Phone the most popular mobile device with 63.8% of respondents saying they have one, the most popular native mobile platform supported is an Android Phone app with 39.5%. The iPhone lost more traction with developers this year with 30.7% of respondents saying they own an iPhone compared to 35.2% in 2012.

There is no such thing as The Android Phone. There are many phones which are, each of them, an Android phone. I don't find this observation nearly as meaningful as suggested.

Finally, out of the top 11 most used languages last year, Ruby ranked last, just below Node.js, with only 9.8% of respondants stating they had used it. Objective-C ranked as 9th. I would have expected Ruby to have a higher rank, at least definetelly above Objective-C and Node.js.

My mom's iPad

I got my first computer in 1997, when I was 9.

In the years that followed, that PC and the ones that came after it became central to my life. I used a computer for all the regular stuff such as schoolwork, games and IM, as well as learning to play songs on my guitar and tinkering with web design. I later got my first Mac, got serious about programming and started making a career out of it.

Through a significant portion of my childhood and all of my teenage years, I spent countless hours in front of a computer (probably, a lot more than was healthy, which, combined with my intense guitar playing, got me a mild case of RSI by the time I was 17). For a long time, one person wasn’t very happy with this state of affairs: my mother.

My mom didn’t understand computers. More than that, she didn’t like them, or, in her words, she hated them. She repeatedly said she didn’t want to learn to use computers. She really didn’t want anything to do with them. Specially, she didn’t like the fact that I spent so much time using them.

Very slowly, she started to give in. Some of her friends started getting e-mail accounts, and eventually she decided she wanted one. For a while, she still would ask me or my dad to check it for her and type her messages. Then, I taught her how to use instant messaging, she started browsing for news, did some audio and video chat on Skype and got into Orkut (it used to be pretty popular in Brazil) and later, Facebook.

At this point, my mom was actually proud of what she could accomplish. So much so that I convinced her to stop typing all in caps by telling her that people who read it would think she wasn’t good with computers. I had been in college for a while, and she had the computer all for herself most of the time. Even when I was home, I’d use exclusively my MacBook. However, there was still the occasional problem. She still needed help with mail attachments, she didn’t manage files at all (most of her stuff was kept inside the same folder) and crappy Windows alerts would still freak her out from time to time. Also, introducing any new activity for her to do on the computer took a lot of getting used to: adding favourites for easy access, teaching how to navigate the often cluttered web pages and many other hassles. This was a slow process, which slowly took place through the course of almost 15 years.

Then, in 2011, I got an iPad 2.

I bought it for myself. But I barely used it. I showed it to my mother and she fell in love instantly. Needless to say, I had to go mostly without an iPad until I bought a new one. [1]

Fast forward to today, my mom uses the iPad for everything she previously used the PC for, and a lot more. She watches Brazilian soap operas on the web. She plays the occasional card game. She watches movies on Netflix and iTunes, which she figured out all on her own how to browse the catalogues and how to add subtitles to non Brazilian movies. More importantly, she enjoys herself a lot more. There is no frustration, no insecurity (“should I click Yes or Cancel?”). She is willing to experiment more and discovers something new regularly. It didn’t take her 10 years to get used to the iPad.

Yesterday, I introduced her to Duolingo. I created her an account, walked her through a lesson and handed her the iPad back. She is now learning English. She actually cheered when she completed her second lesson in a row, with no mistakes.

Pretty magical, indeed.[2]

  1. I recently bought an Apple TV, which almost suffered the same fate.  ↩

  2. I got inspired to write this after reading this beautiful piece by Shawn Blanc. You should definitely give it a read.  ↩

The Stratechery 2013 Year In Review

Stratechery launched on March 25, 2013 with the post Welcome to Stratechery. While I had somewhat prepopulated the blog with old content (including a piece on the original iPad and a research paper on Apple and the Innovator’s Dilemma), the vast majority of my 203 posts and linked-list items came after that date. Here’s a quick summary of the highlights:

If you by any chance haven't been reading stratēchery for the whole of 2013, make 2014 the year you start doing so. Even though Ben Thompson defines it as a hobby, his writing is packed with deep and thoughtful analysis that rises above the noise in the echo chamber. After all, one can be pretty serious about his hobbies, and this surely seems to be the case.

Christmas Gifts and the Meaning of Design

Ben Thompson on Stratechery:

This is the way the vast majority of businesses, both within tech and without, operate when it comes to new products. And it’s successful! Customers ask for X, the company makes it, and the customer buys it – if it comes in at the right price, of course. Because that’s the downside of developing based on characteristics and features that can be articulated by your customers: they can articulate those same characteristics and features to your competitors, and let you duke it out with all of them until the marginal profit of your product approaches zero.

Approaching a problem with a design thinking mindset, however, certainly takes into account what a customer says, but simply as one input among many. In this approach, observing the way people really live, developing a deep understanding of the real problems they have, and gaining an appreciation of the “hacks” they devise to overcome them can deliver an understanding of prospective customers’ needs that is more accurate than what any of those prospective customers could ever articulate on their own.

And then, from that understanding, an entirely new, highly differentiated product can be delivered that surprises and delights.2 From a business perspective, the emotion and attachment said product inspires breaks down price sensitivity and builds brand attachment, and inspires the sort of viral marketing that can’t be bought.

The piece starts with thoughts on gifting and goes on to a product design analogy. Brilliant.

Region unlock and streaming services

Even though streaming services for both music and video have been around for a while, the state of affairs is that content licensing is subject to territory restrictions. One of the practical implications is that Netflix Brazil's catalogue is not the same as it is in the US, or in the UK for that matter.

Now, none of these catalogues are inherently better or worse. If I want to watch American TV shows, the US catalogue is the obvious choice, but Brazilian TV shows are mostly available only on the Brazil catalogue. However, if I want to watch, say, The Hobbit, I'd better be in either the UK or Ireland catalogues. Subtitle and audio options also differ by region, so if I want to watch a movie with someone who needs Portuguese subtitles, we're mostly stuck with the Brazilian catalogue. It is a mess.

When it comes to music though, things aren't that complicated region-wise. I will take the US catalogue over the Brazilian one for any of the major services. Most (though not all) Brazilian artists available on our catalogue are also available on the United States, but the converse is frequently not true. However, some of the services aren't available in Brazil, notably Spotify and MOG - which has been stagnant but might see a revamp next year. While the catalogues for these different services are roughly equally large, there are significant differences such as Spotify recent licensing of Led Zeppelin as well as being the only to feature all of Metallica's albums.

Of course, content unavailability on certain territories has been a solved problem for a while, through the use of VPNs. Those, however, significantly compromise connection speed both while using the services affected and during regular browsing. More recently, DNS based unblock solutions have proved to be an improvement, by enabling only traffic to the affected services to be redirected, while also allowing to constantly switch Netflix regions to enjoy different catalogues.

None of the above is big news for anyone, and, unless you're confortable with outright pirating of content and could care less about streaming movies and music legally, you're probably aware of everything I wrote so far. Of course, the legality of tricking such services to believe you are in a different territory than you really are can be argued, but definetely not by me, since I'm not equipped to engage in such discussion. I can only make the case that I'm paying for the content to the providers, which are paying the copyright owners their share. That is enough to make me feel okay about it, but I'd be happy to hear different thoughts on this.

In the last two months, two events have given me the incentive I needed to jump through the hoops required to set everything I needed up. First, I bought an Apple TV. Second, I started working from home. The Apple TV made me want to switch Netflix catalogues easily to watch in the evening. Working from home made it possible to actually rely on streaming to fuel my severe music dependency during the workday.

After a little research, there were two major recommended solutions. Adfreetime, at $1.99 per month, and Unblock-Us at $4.99. Most of what I read suggested Adfreetime was better all around, and, being it cheaper, it was a no-brainer to go with that. Everything is pretty easy to setup, as they provide guides for each internet connected device you may own, as well as a guide to setup the router directly, which would obliviate the need to configure each device individually. Though it is very easy to setup, there is no easy way to verify things are working other than trying to access the services you knew you couldn't before or compare Netflix catalogues while switching back and forth. Other than this minor annoyance everything seemed ok.

After a few weeks of use, a few drawbacks emerged. On the movie side of things, switching Netflix regions worked fine on the desktop, but my Apple TV would take a while to reflect the changes, taking it multiple reboots, and some switching back and forth. Most of the time, after a region switch it would return an error message that told me Netflix was unavailable at the momment. I figured it was the Apple TV's fault, and decided I could live with that and plan my region switches ahead.

On the music side of things, the unlock provided by Adfreetime doesn't include Spotify. That shouldn't have been an issue, since according to their website, they supported both MOG and Rdio. Now, I had tried Rdio before on the Brazilian catalogue, but I was turned off by the lack of many artists I wanted to listen to. MOG had never been available to me, so I decided to give it a shot. While the sound quality was great, and I was pretty satisfied with the catalogue, I didn't enjoy the app's design in any of the available forms, web, iOS or desktop. Collection management also seemed clumsy and browsing my favorites was confusing. I remembered Rdio's apps being really good about that, and knowing it is usually highly praised, I decided to give it another shot, now on the US catalogue. However, even though my Adfreetime service was setup correctly and otherwise working, I was still stuck with the Brazilian catalogue. I tried, without success to create a new account, but there was no way Rdio would believe I wasn't located in Brazil. I tried contacting Adfreetime's support, but they couldn't clarify this. I canceled my subscription and decided to try Unblock-Us.

I'm currently on my one-week trial, but I am very likely to subscribe by the end of it, regardless of the price difference. The setup experience was a breeze. Unblock-Us, very similarly to Adfreetime, offers per-device guides. It also lets you know if you've set everything up correctly with no need for accessing the services to verify it. I now have full access to Rdio's US catalogue (though I had to start a new subscription), and while it does offer Spotify, I can only use its free plan, since none of my payment methods are accepted (much like the iTunes US store, which will only take a credit card with an US billing address). I'd love to try Spotify, but I guess it's out of question. As to Netflix on the Apple TV, turns out that region switchs are now reflected on the catalogue almost instantly, with no reboot required.

I am sure Adfreetime will eventually improve on these aspects, but I guess for now I'll stick with Unblock-Us.


John Gruber wrote three positive mini app reviews yesterday (Castro, Weather Line and Perfect Weather). His final words for each of them were:

$2.99, cheap.

I wish every app reviewer out there would point out to their readers how incredibly inexpensive any quality app is. Perhaps that would lead to a future where people would realize that an app that costs as much as a muffin and a cup of coffee is nowhere near expensive. Turns out, whether any of the apps mentioned above were priced at $3.99, they'd still be fairly priced.

Five Years in the App Store

So here I am. Five years from when I first launched in the App Store. I consider myself incredibly blessed to be able to do what I do. To call writing apps full time my “job” is a dream. For years prior, I had looked at the indie developer as a mythical creature: something you could read about, but out of reach for most people.

For a wannabe indie developer, there are several role models and smart people to follow,  admire, and learn from out there. People who have built great businesses, amazing apps and who have had plenty of success and recognition. 

Many of those stories may trigger the feeling that those people had something special about them that made such success possible. Maybe it's their reputation, following base, comfortable financial situations, or whatever strategic advantage an external observer might wrongly credit all of one's success to. 

David Smith leaves room for no such fallacies for those looking into his own success.

I think the single most significant attribute of my approach to the App Store that has allowed me to do this full time for so long is the number of failures I have. I have shipped somewhere around 80 unique app concepts over the last five years. With the exception of games, I’ve tried almost everything I can think of. With each attempt (in success or failure) I learned something new about what makes an app great.


FAA to Allow Airlines to Expand Use of Personal Electronics

The U.S. Department of Transportation’s Federal Aviation Administration (FAA) Administrator Michael Huerta today announced that the FAA has determined that airlines can safely expand passenger use of Portable Electronic Devices (PEDs) during all phases of flight, and is immediately providing the airlines with implementation guidance.
Due to differences among fleets and operations, the implementation will vary among airlines, but the agency expects many carriers will prove to the FAA that their planes allow passengers to safely use their devices in airplane mode, gate-to-gate, by the end of the year.

I wonder how long it will take until I see the same happen in Brazil.

Apple announces new Retina MacBook Pros, iPad Air, Retina iPad mini, Mac Pro pricing and OS X Mavericks as a free upgrade

So, Apple has announced my new computer today. I will most likely get a Retina 13" MacBook Pro with 16GB of RAM and 256GB storage.

Before the event, I was pretty sure I'd get a Retina iPad mini, which I already believed would be announced today. But the iPad Air looks very compelling and I might get it instead.

As for Mavericks, I'm eager to see what it will do for my very old computer until I get my hands on the new Retina MacBook Pro

Podcast App Playback Speeds

Marco Arment on the decision of how to label playback speeds on his new podcast client (emphasis mine).

If you use the old, inaccurate labels, people accustomed to the old labels will see your speeds as equivalent. You can even offer a “3x” label, representing 2x playback, since Apple’s old scheme topped out at a “2x” label for 1.5x playback.

But this tricks customers and reviewers into thinking you’re offering something you’re really not, and thinking any competitors with speed-accurate labels are inferior.

If you use speed-accurate labels, you’ll look worse in direct comparisons. Customers will request that you add speeds from inaccurately-labeled apps (e.g. “3x”) that you already support. This will haunt you in reviews and feature comparisons forever. But you’ll be technically correct.

Overcast will use speed-accurate labels. I’ll take the heat in reviews.

The simplest way of making tough decisions is going the route of trying to do the right thing and taking responsibility for it. It may not be the easy path, but doing so consistently, ultimately takes a lot of load out of the decision making process. It also pays out in the long run.

Similarly to telling the truth versus lying.  

Historically Discriminated Against

Martin Fowler: 

Many historically-discriminated-against groups have legal and social protections from discrimination these days. In America it's now socially unacceptable to make public racist or sexist comments, and illegal to carry out most forms of racist or sexist discrimination. But you can't cure centuries of historic wrongs in just a few years. This is the fallacy of people who advocate for gender-blind and race-blind policies. It takes many generations to undo the effect of centuries of discrimination, so just because the law and society are beginning to catch up doesn't mean the work of supporting historically-discriminated-against groups can stop.

It's awful that this isn't clear to every single person. You can't go uphill without pushing.