Apple, Let’s Talk About “Explicit” and “Implicit”

Dear Apple,

I’m one of the guys who goes around saying “Apple API is one of the easiest GUI APIs I ever used”. Even when people complain about Objective-C, I point that since everything is a canvas, you can extended every component in any imaginable way.

I also get why Table Views go under the Navigation Bar, Tool Bar and Status Bar: To give the user the impression that the application stretches over all the screen instead of a small space in the middle.

But there is one thing I learnt with Python: Explicit is better than Implicit.

When you automatically add the default padding to an element dragged in the storyboard, I can see the padding in the Size inspector; when I set a relationship between two elements, I can see the constraint in the same Size inspector.

But when I drag a Table View to my View Controller and it automagically gets a padding to go under the navigation bar and there is nowhere to see this, then we have a problem.

When a UITableView is the first subview of the main view, it magically gets a padding; this is shown nowhere.

When a UITableView is the first subview of the main view, it magically gets a padding; this is shown nowhere (except in the storyboard, which makes you think you suddenly got a table header).

The same view as before, but the UITableView is not the first subview anymore; the padding disappears.

The same view as before, but the UITableView is not the first subview anymore; the padding disappears.

Things shouldn’t be like this. Sure, there is some obscure documentation saying “Hey, if your Table View is the first subview of a view, it will magically get a padding on the top”, but that is a total bullshit. What if I, somehow, want to keep some logical order that requires an element just below the navigation bar but my table view should still get the padding? What if I need a bigger padding, then?

This thing should never be magical. It should be a flag, a value, even a freaking constraint, but not a damn magical positional setting which is not obvious at first glance.

Seriously Apple, this is the kind of bullshit that ruins our relationship…

Why 3.3.1 is the best thing what happened recently

The IT industry is in turmoil over a change Apple did in their iPod/iPhone/iPad license:

Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

Basically, what they are saying is “you will use our SDK and that’s it!” I’m not going to expand the point that about 90% of the people complaining about this change did not and wouldn’t ever write an App for the Apple store.

The good thing about this all is that Adobe thought it was a direct attack to their Flash platform (which I kinda don’t agree because I have my own conspiracy theories, but I can see their point) and decided to bash Apple. Apple (Steve Jobs, actually) decided to write a long response to Adobe. Yes, there are a lot of wrong points on it and I’ll let you read Thom Holwerda article about this.

If there is a lot of bashing around, why I think this whole mess is any good?

Well, first of all, Jobs is right about Flash: I’m tired of closing Firefox ’cause a Flash applet is burning my CPU just to show a small game of two guys trying to beat each other in eating bananas or because, apparently, the runtime is still running, eating memory and making Firefox slow. Flash is not accelerated in anyway in OS X or Linux, even if the technology is around for years. And Jobs claims about Flash will (or, at least, I hope it will) force Adobe to produce a decent runtime for Flash very soon. The more Jobs bash them, the better.

Second, we finally have a good discussion about the open platform of the future: the web. I can’t recall so many discussions about HTML 4.0 or XHTML 1.0 before this. And now we have a lot of people discussion the merits and weakness of HTML 5. “Can it do that?” “Can it replace this?” and such will only improve the draft even further. The “can’t”s is actually the best point of this all: If the W3C keeps an eye on it, who knows what new features HTML 5.1 will have?

As a side note to the HTML 5 discussion, it seems that some companies are already aiming products that will use HTML 5 features (Google seems to be pushing better features for HTML5-capable browsers, although the look and feel is still the same) and I expect that in a few months, some sites will display the dreaded “this page requires [browser X] or superior” what we saw in the 90s. But it will be for a good thing: old, bug ridden browsers will not display things properly and people will be force to drop that in favor of newer, better browsers. And not only that, but the hidden “you need that browser because we put something that only that browser supports” will be replaced by “you need that browser because we put something that only the new, open standard supports it”.

Third, still part of the HTML 5 discussion, we have the h264 codec discussion (which is the codec used to transmit videos on the web in HTML 5.) Jobs position of the “open web” pointing h264 is just bringing more and more discussion about the patent encumbered codec. The more Jobs hits the point about this, the more people will point that h264 is not an open codec and that, sooner or later, some company may screw the whole internet because they got angry with someone and decided to revoke all licenses.

The whole Adobe vs Apple discussion is awesome for the open web, because both companies are pointing exactly what’s wrong with the current situation.

Why the iPad matter

or “It’s not the change, but it’s the seed of it”

So Apple announced yesterday their new product, the iPad. Some people call it table, some people call it a big iPhone/iPod touch, some call it “balloon boy”…

But, in the end, it’s a game changer. Not directly, but it put the seed to change a lot of stuff.

PDAs
If you had any hope PDAs would come back, well, forget it. Although most of the smart phones have PDA features, their small screen isn’t so good for most of the stuff the “real” PDAs do. The iPad big screen (compared to most smart phones), with it’s non-really-tiny keyboard (even being virtual) kills most of it.

Kindle
The Kindle seems to be the first target of the iPad and Jobs even said the iPad wouldn’t exist if it wasn’t for the pioneer work from Amazon and now they would “stand on their shoulders.” Well, at the first look, it doesn’t look so much of a challenge:

  • Kindle costs about $230, the low entry level iPad costs $499 (almost twice);
  • The Kindle screen offers higher resolution (824×1200 vs 768×1024) and have a better ppi (150 vs 132.) And let’s be honest, when you’re reading a text, it doesn’t matter if the screen is gray scale or color, it’s black text over white background.

So, why the iPad affects the Kindle market? First of all, the iPad is not just a eBook reader: It also have a browser and email client and, althought Kindle also have a browser, it’s fairly limited. So, when you count that you have a small device that can do more than just read books, it may be worth paying twice for it.

In the very heart of the situation, though, is the fact that Apple is selling books. Let’s be honest, the Kindle is nothing more than a vechile to Amazon sell books without worrying about the logistics of sending a bunch of paper sheets with ink on them to a person somewhere in the globe. Apple iBook store will go head to head with Amazon on that and, after the 1984 fisasco, it’s image is somewhat scratched. And let’s not forget that Apple managed to convince a bunch of corporate luddites that music can be sold without DRM (even after selling them with DRM for a long time — I know, I was there when they switched.)

Netbooks
Small form, can connect on most WiFi networks… Sounds a bit like a netbook, doesn’t it. Well, not a first glance. A netbook like the Dell Mini 10, which comes with 160GB (10x more than the entry level iPad), 11.6″ screen (against a 9.7″ screen) may sound like an undisputed winner, specially when it costs $399 against iPad’s $499. But when you think about what people do with Netbooks, it mostly email, web and text editing. But when you add the latest Windows version, it’s price jumps to $520. And it can still go higher if you replace Microsoft Works (bundled) with the latest Microsoft Office.

Apple redesigned their iWorks suite to fit the small screen of the iPad. And they are offering each of the 3 applications (Pages [word processor], Numbers [spreadsheet] and Keynote [presentation]) for $9.90 each. So you can get a small office suite for about $30. Which is around the same price for the Dell Mini (although you’ll have to deal with a virtual keyboard instead of real one.)

And really, I don’t think the harddisk size actually matters that much. Most people that use a netbook for email, web and small editing really don’t go that deep into the 160Gb (which is mostly used by the operating system itself.)

Not saying that the iPad is a clear winner, but it has a nice place in the netbook market.

Telephony
Wait, what? Telephony? What the hell!

Well, it’s one of the small gems hidden in the iPad. Together with the launch of the new device, Apple is releasing a new SDK, version 3.2. This version removes the restriction of VOIP applications.

Now think about it: You have a VOIP application that can run on your Wifi (and 3G) tablet and on your 3G phone (since the same OS runs on both iPad and iPhone/iPod touch.) This is big. With the price of a data transfer, you can talk to anyone in the world, anywhere you are. Old telephone companies must shiver with the prospect of landlines going to be canceled ’cause people won’t need them anymore.

(Edit) MID
MID (Mobile Internet Devices) is an area where Nokia pushed a lot. The N900 is the latest of that line of devices, which started with the N770 and, as far as I know, it’s the most famous (and successful) line of MID devices so far. Again, the iPad goes head to head against them and, due the screen size, I must say it’s almost a loss for Nokia.

On the other hand, if you remember that on every new series Nokia simply stop any support for the previous operating system (the N770 with Maemo 3 lost support when the N800 was launched and now the N800 with Maemo 4 is out of support with the N900 and Maemo 5), basically means Nokia shot itself pretty good in the foot. If only they cared about their older systems (the first iPhone STILL can get the new OS) they might had a chance. But too late.

So it’s all good?
No, not at all. The iPad, although (as I believe) is a game changer by concept, it’s new that big in the real world.

First of all, it’s the lack of multitasking, which is, let’s be honest, a stupid move by Apple. It have the power to do so, but it doesn’t. It doesn’t make any sense. It’s like buying a Ferrari and going all around on second gear. The only hope is that, at some point, Apple releases an OS that it’s capable of multitasking properly (if not, it will have to be jailbroken.)

Second, it’s the centralized model around the iTunes Store. As an old user of it, I thought it was really amazing that I could get music easier than pirating it. But it’s not all roses about it: I was living in Australia and the Australian Store, although selling the soundtrack of “Across the Universe”, didn’t have the full version of some albums: Most of them are only complete (2 discs and all) only in the US store. And, worst of all, there is absolutely NO WAY of buying ANYTHING in Brazil. This is completely stupid. And you can believe some more stupidity may come, like not being able to buy some books in the original language due your region (or worst, no books at all.)

Third, no Flash. Oh wait, that’s actually a good thing. ;)

(Edit) Fourth, the lack of ports. For everything you need to connect on the iPad, you’ll need a converter. A huge mistake here. Imagine if that came with a simple video output. BLAM! Install Keynote and you have a nice presentation tool to carry around!

Summary
I really believe the iPad is the start of a new generation of computing devices. I want my PADD and walk around the Enterprise with things to show to the captain. But the centralized model Apple insists on pushing may do more harm than good (well, maybe not at their home.)

(Edit) In case you’re asking yourself “so, he means I should get one or not?” the answer is “no”. I’d like to get one myself ’cause I’m a gadget guy (I walk around with a phone and an iPod touch, sometimes I carry my N800 with me, I have a Palm T|X in a box, a GPS thingy somewhere and just thrown away one of the first iPaq models ’cause it was not working anymore) but I’m pretty sure I’d save the money to buy something else. At the same time, as it’s the first iteration of such line of devices, I guess it’s better to let the people with huge piles of money to buy it right now and wait for the next generations. Unless, of course, you have huge piles of money or is a gadget guy (with some money to spare.)

Why Apple.

I know I had some troubles with Apple and OS X since I got my MacBook Pro, but I think that, when someone does something right, you should say it.

So, in the end of 2007, I decided to give myself a MacBook Pro as Christmas gift. I had a computer, but the battery wasn’t that good, and the graphics weren’t that good, and the machine was a bit outdated… And I heard wonders about Apple hardware. So, why not? And, on 23rd of December of 2007, I became the owner of a 15″ MacBook Pro, the aluminum case.

Fast forward about 6 months after that. Apple announced the recall of such models due a problem with the NVidia chipsets. At the time, I did check the serial number and, as such, I had one of the laptops that could be affected by this problem. But, heck, everything was running fine, so I didn’t worry about that.

Fast forward again 7 months, January 2009, one year and about 1 month since I got the laptop. There I was, playing EVE online when something weird pops in the screen. It was some sort of blur, some lines drawing in the wrong place and the game locked. At first, I ignored it, ’cause the Mac version of EVE was kinda bad. Turn off computer, turn it on again and I’m back. I did some coding and decided to play WoW. A few minutes in the game and I get the same wrong drawing and the same locking, which is quite unusual for WoW. Turn of computer, turn on again, and I get a warning saying that I needed to turn of my computer to reboot. I gave the computer a few minutes, turn it on again, talk to some people on IRC and… blur and locking, and the same message after rebooting. But, even after waiting, it still didn’t come back. I kept getting the same wrong display and same warning. And I took pictures of the screen.

Time to use that recall Apple offered. One year after buying the MacBook, I lost the receipt, so I took the computer back to the shop I bought it, “My Mac” in Bondi Junction. I showed the problem, which weirdly worked fine for the first 2 minutes and told the guy that I knew about the NVidia problem and that the serial number was one of the affected one. As it needed some tests to verify that it was a NVidia problem and not something else, the guy asked for about a week. Well, sure, no problem with that.

I got a call about 4 days later. The guy said that, and I quote, “I plugged an external monitor and got the same drawing problem, so it’s a problem with the logical board.” The repair cost: $400 (or so I thought) and it would take another week. One day after that week, I called the shop. The guy told me that there was a change in the price and it would, actually, cost $1700, but because he gave me the price of $1400 before, it would make it for $1400 plus service. Ok, first I must say that I actually have problems hearing people over the phone and the guy had some thick Indian accent. That was too much and I said no. Unfortunately, I had to pay the service of $100.

Why I didn’t replace the logical board, after all? Well, I’m a computer guy and, although I write software and know shit about hardware, I know that if your video card is broken, it doesn’t matter if you change the monitor. It simply doesn’t make sense. So, as any terminal disease a doctor gives to you, I decided to go for a second opinion: Apple itself.

I took the notebook a Saturday morning. I was kinda expecting that I could just drop it there and wait for their tests, as I did in the My Mac. But Apple, being not like others (“Thinking Different”, I think) said that I should book a Genius appointment before dropping it for repairs. So, without a choice, I booked on for the next Monday.

Monday, I explained the same thing I did before to the guy in the Genius Bar. He said it could be a memory problem and, thus, would try changing the memory. At this point, I kinda felt stupid: I was not using Apple official memory, I bought some 4Gbs after a few months. If it was the bad memory…

Anyway, the guy when in the back, and came back a few minutes later. He said that he replaced the memory, got the same problem, so it needed to replace the logical board but, because it was under the warranty (the NVidia warranty), they would replace it for free. The repairs would take 3 days. When I signed the paper confirming the repairs, there was a clause saying that it could occur a fee of $100 due service. Well, I payed $100 already for a service that would charge me $1700, paying $100 for a free new logical board seemed pretty cheaper.

One day after those 3 days I was in the city and decided to check the Apple store. The consegliere told me that, due some backlog, it would take some more time, maybe to the middle of the week. Well, no problem. Monday, 7 days after I took the laptop to repairs, I got a call from Apple saying that the service was complete. I rode all the way to the city to get it back and was greeted with a surprise that even the service was free because of the warranty.

So, there you have it. It doesn’t matter where you buy your Apple stuff but, if you need repairs, better look for the official Apple store.

Apple just likes what you bought from Apple

I sold my soul to the devil. And now I’m paying the price for it.

I bought a MacBook Pro. Shinny stuff. “Let’s give it a fair go”, I thought. So I let it installed (and did not replace it with Ubuntu) and tried to use its applications. And I must say one thing: while I can’t use Windows ’cause I feel like it is always trying to get in your way, OS X doesn’t. It is almost like Linux (well, GNOME, actually, since it is my preferred desktop environment), except for the stupid default options (tab just jumps over text fields, why?)

As any good geek, I broke the system by forcefully removing Python 2.3 (which is part of the system). And, since I couldn’t find a package to reinstall it on the CDs, I decided to format and reinstall everything.

After almost two hours (why every installation need to check the DVD integrity?), I had a system running again. Time to setup the most used application in any computer I had: the music player. So, because I had synced my iPod with iTunes before formating, I thought it would be just a matter of pluging the iPod, point that this is my computer and that is my iPod and everything would be fine. Wrong.

You see, I set up iTunes with my iTMS account. So I could transfer the songs I bought there to the computer. But there was no fucking way to say “now transfer all other songs.” iTunes refused to open the iPod songs and I couldn’t find a way to say “this is MY iPod, you freaking stupid piece of computer crap.” There was only one option: erase and sync (which meant I would delete everything on my iPod and then copy the songs I bought from iTMS to it. Bu-bye 6000 songs, hello 100 songs. Not good. Because I’m really fussy with my songs, I made a backup of all of them on my external drive. So I had to copy all of them back to iTunes, then I could erase my iPod and sync again.

Honestly, I felt like I was using Windows again. The operating system decided to get on the way I do my stuff. Why can’t I just use my iPod was a big USB drive and ask the computer to copy them from one side to the other?