Our DNA is written in Objective-C

Podcast #27 – “Copyright Bullish”

Instapaper will soon go iOS 5-only, we learn why the Clang project was started, and Tapbots being bully-ish about Copyright.


BSA Banner

Show Notes

Adobe has finally released Photoshop Touch for iPad. Steve Troughton-Smith has taken apart the app and found that it is indeed a cross-compiled Adoble AIR application. It’s the same app that also runs on Android. I tested it a bit and must admit that it runs quite well. Does this spell the end of programming Objective-C as we know it? I hope not. I don’t want to have to learn Flash or AIR for that matter.

TextMate, our favorite text editor, did some statistics which OS 10 versions the TextMate 2 alpha is running on:

  • 10.8 2.0%
  • 10.7 86.7%
  • 10.6 11.1%
  • 10.5 0.2%

“With such a small percentage on 10.5 it makes sense to drop its support. Moving forward we may decide that requiring Lion will be a reasonable tradeoff as it provides many underlying benefits we could take advantage of. The usage statistics will be monitored to determine the feasibility of this move.”

This indeed means that OS 10 users seem to be very quick to adopt new versions of the operating system. Personally I am astonished to already see 2% on Mountain Lion, that’s a very big number for even the very first developer preview of anything.

Speaking of dropping support for earlier Operating Systems. Marco Armand of Instapaper fame has released a minor update to Instapaper. And in the release notes he states that this is the last version which will support iOS 4. His next major update will only work on iOS 5 and above.

In my experience all the good stuff that makes my live easier right now became widespread with iOS 4. That is, things like blocks and ARC. This is why ditching iOS 3 support relieved the most pain. Marco is blazing a trail here, which he can because his statistics seem to indicate that most of his users are quick to adopt the latest iOS version anyway. Obviously it is easier to only support the latest iOS, but I have yet to see a compelling reason or feature in iOS 5 that would cause me to to drop iOS 4 support. If you know any, then please let me know so that I can discuss it on the show.

History Lesson: Did you know why Clang (aka LLVM) is being developed independently from GCC and is replacing it in more and more places?

The GCC project began in the mid 80s by Richard Stallman of the Free Software Foundation. Stallman’s radical idea was to develop software that would be shared rather than sold, with the intent of delivering code that anyone could use provided that anything they contribute to it would be passed along in a form others could also use.

That’s the same Richard Stallman that blogged that he is glad that Steve Jobs is gone because he felt that Macs are just pretty jails.

Some developers wanted to be able to have the compiler fronted in a dynamic library so that they can do syntax analysis from within tools. Like what we have in Xcode if you do Build&Analyze and also what ARC uses to determine what needs to be retained and what released. So somebody on the GCC mailing list asked this question:

“… is there a reason for not making the [GCC] front ends dynamic libraries which could be linked by any program that wants to parse source code?”

To this the Richard Stallman personally responded:

“One of our main goals for GCC is to prevent any parts of it from being used together with non-free software. Thus, we have deliberately avoided many things that might possibly have the effect of facilitating such usage…”

When I heard these quotes in a talk by Chandler Carruth, who is on Clang at Google, a light went on. So you see the historical answer is that GCC hat its time as one of the important drivers of Linux and free software, but was never meant to become part of something greater that could be used to develop commercial software with. This is why Apple (and many others) ditched GCC and now uses Clang. Because free software advocacy has become a jail of its own when it refuses to work with commercial software out of philosophical reasons.

So we can be thankful to Apple and Google and all the other companies and individuals who contribute to the LLVM open source project because this is what brought us most of the advances in compiler technology in the recent past. And also made our lives as programmers much much easier.

Have you ever gotten the question from a client on how Apple manages to disable the HOME button on those iPads they use in Apple Stores? Zachary Christopoulos found it out and documented it on his blog. It’s a preference of the springboard app called SBStoreDemoAppLock. Now, the only way how you can set preferences for Apple apps is via mobileconfig files. Those are essentially plists (which can also be signed for safety) that contain preferences. You need to reboot the iPad once and then the first app you enter has the Home button disabled. To remove the lock you can either use the iPhone Enterprise configuration utility or you can simply reboot the iPad and go into General – Profiles and remove the configuration profile there.

Reminder: To pinch off center on iOS simulator you use Shift to translate (alt to initiate multitouch)

Arrrrr, Pirates!!!

Somebody hacked the OpenGL-based image filters from Instagram and thought he would get away with putting the reversed source code for them on GitHub. Not cool. This is a real case of actual software piracy, hell, the owner of the repository actually admitted to the deed by naming the repository “InstaFilters” and the description “Instagram filters hacked and open sourced. Supports both photo and video”.

GitHub has a repository just for the DMCA takedown notices they have received. It’s very interesting reading, you find notices from the likes of Sony, Oracle and Cisco.

But this process can also be abused as experienced by Mugunth Kumar who found himself at the sharp end of a DMCA stick held by Tapbots. The story went like this: Kumar built MKInfoPanel which is basically a red panel with a warning icon and some text. In doing so he tried to make it closely resemble a similar panel found in TweetBot. He painted himself a couple of images and had these also in the repository.

A company named Leap found this project so useful that they included it and Kumar’s images in an app of theirs. Somebody sucking up to Paul tweeted him a screenshot comparing TweetBot and Leap and there indeed was a striking resemblance on the red notice panel.

Tapbots’ Paul send the following DMCA notice to GitHub:

1. <https://github.com/MugunthKumar/MKInfoPanelDemo/tree/master/MKInfoBundle> includes several assets that are copyrighted by Tapbots LLC.

2. All assets under the <https://github.com/MugunthKumar/MKInfoPanelDemo/tree/master/MKInfoBundle> directory infringe on our work.

5. I have a good faith belief that use of the copyrighted materials described above on the infringing web pages is not authorized by the copyright owner, or its agent, or the law.

6. I swear, under penalty of perjury, that the information in this notification is accurate and that I am the copyright owner, or am authorized to act on behalf of the owner, of an exclusive right that is allegedly infringed.

Paul did not contact Kumar, he just sent off this notice. I inspected both the images from TweetBot and the original images from Kumar’s repository only to find that they are really very much different if you zoom in a little. TweetBot’s notice icon is constructed way more professionally in black and white which blends nicely with the background. Kumar’s looks quite amateurish.

So the Tapbots’ claim was false. On twitter they then shifted to the excuse for their over boarding behavior that Kumar also infringed by merely copying the look. “If you draw Mickey Mouse by hand then you infringe on Disney’s rights”. That might be true for Mickey, but I refuse to believe that one can hold copyright on the looks of a notification panel.

Kumar didn’t make a TweetBot clone, he didn’t sell his solution for profit, he did it out of the challenge to get close to the original. Purely educational, if you will. A classic case of Fair Use. You can use copyrighted material without license to critique it. If anything looking closely at the pixels that Tabpots designs together makes you appreciate their art.

If anybody then Tapbots should have contacted Leap instead and ask them to modify the artwork because it looks too much like TweetBot. But even Paul knew that this was ridiculous. To this Paul said that they say they accidentally included the artwork. Yeah, right, there I go and accidentally copy the look of the best known Twitter client on the app store!

After quite a bit back and forth Tapbot’s Paul conceded that he has no objection to Kumar’s source code. So I asked him to put this back up and possibly create some new artwork that substantially looks different. So the repository is back up, now without images.

Many people thanked me for standing up for the small guy’s rights. But to this I can only say: hey, we are all colleagues. And I cannot stand some big shot bullying another developer because his copyright paranoia lets him have an overdrawn knee jerk reaction. Paul has not said that he is sorry and he probably never will. He actually still thinking that he is right.

I kind of understand Paul, that in this current climate there is much danger of people scamming unsuspected clients by making fake apps that resemble those of Tapbots.

What do we learn from this? Make your own distinctly looking artwork. Just because their apps look nice you cannot expect the makers to be also nice people. If you use a component from GitHub, then look for a license or preferably make your own distinctly looking artwork.

If you do, and you find somebody copying your code without proper license then you can send your own DMCA notices.

And most importantly, please, PLEASE, don’t suck up to Tapbots by sending them screenshots of apps that copy their look. They only care about your money. They don’t care about being your friend. Just think to yourself, “I know where they have the idea for this look from” and then move on.

While this matter might be amicably resolved there’s one problem that we still have no answer for. How close to somebody else’s work can you make your art to be?

Categories: Podcast

Leave a Comment

%d bloggers like this: