Category: CS

Apple vs. Adobe

HTML5 vs. Adobe Flash Player

Apple vs. Flash

The War Steps Up a Notch

The war has been going on for years now. With Apple’s rejection of Flash Player in their iPhones and iPod Touches, and last month the realization that the same would be true for the iPad, the tensions have continued to climb. Google, one of Apple’s main competitors in the mobile market, is working with Adobe to integrate it smoothly in Google’s web browser Chrome. I myself use Chrome, but as many cpu checking folks will know, flash player isn’t all that quietly-working-in-the-background-taking-no-space. Apple’s CEO Steve Jobs has on numerous occasions freaked Flashfanboys out by saying how Adobe’s product is inefficient and blah blah burn insult blah.

No Flash on iPhone

ANYWAYS. The war between HTML5 (a way to view video/run programs/play games/be interactive using html instead of flash) and Flash Player has been escalating. Google-owned Youtube has even introduced a beta experiment to watch its videos in HTML5 rather than using Flash. We’ve seen examples of HTML5’s interactivity from both Apple and Microsoft. As this war continues, these next few days should prove very interesting: Hell has broken loose in the entire developer side of the internet.

Yesterday Apple held their keynote for their iPhone OS 4. The keynote went pretty well and I have to say I was damn well impressed with some of the elaborate changes to the operating system. My personal impression was that Apple’s new system called iAd was amazing. (It’s not an app, its an API for developers). Basically those stupid ads we see in some of the free apps are out of date and can be replaced with some very impressive ads that are user friendly and actually inspire you to take a look. Apple’s mock-ups blew my mind. Alright getting off topic here but just by the way the interactive ads are fully run by HTML5 and are pretty sexy.

So after the keynote, developers were given the chance to download the new beta developing kit. No biggie. Just the same as always. Except for one small change in part of the user agreement.

3.3.1 — 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).

No Flash on the iPad

No Flash on the iPad...Many websites will be changing to HTML5

This is all sexy tech jargon, but the basic translation? “Screw you, Adobe.” At least that’s what most developers think it means. Basically what has been going on is Adobe has been working on a way to write your program in Flash, and then be able to make it into an app that will fit into the App Store’s rules. This way you can make your program in Flash and presto! have it work for your iPhone. The small rule change may just ruin this for Adobe. But I’ve not made it clear how big this is. Adobe’s new CS5 line comes out in about two days: and for a good few months now they’ve been saying they will include iPhone/iPad/iPod Touch program writing capability. This rule change comes about four days before their big release. Ouch. I wouldn’t want to be a developer working at Adobe right now.

You could call this a total dick move by Apple, but to be honest this is simply in the company, as well as most the users, interest. Let’s look at the run down by John Gruber of how this effects different people:

APPLE: Good, they maintain complete control over native iPhone OS app development.

ADOBE AND OTHER PRODUCERS OF CROSS-DEVICE MOBILE META-PLATFORMS: Terrible, because they can’t target today’s leading mobile platform. And they’ve wasted a tremendous amount of effort creating tools to generate iPhone apps.

WEB DEVELOPERS: No change. The iPhone remains completely open to web apps.

IPHONE DEVELOPERS: No change. If you’re a developer and you’ve been following Apple’s advice, you will never even notice this rule. You’re already using Xcode, Objective-C, and WebKit.

(And, in one sense, this is good news for existing iPhone developers: their skill set is now in even greater demand.)

FLASH AND C# DEVELOPERS: Bad news, if you were hoping to target the App Store with your products. If you want to write iPhone OS software, follow Apple’s advice, not Adobe’s or Microsoft’s.

So Many Apps!

And for iPhone users it can be argued that we may not have as many apps that we might have without this rule, but the main thing here is the average user will not have crummy cross-platform created programs. Programs written elsewhere then shoved into Mac or Apple compatible have never been very good. The best programs are written specifically  for the device they’re used on. Gruber talks about this, giving the example:

The iPhone OS Kindle app is excellent, a worthy rival in terms of experience to Apple’s own iBooks. The Mac Kindle app is a turd that doesn’t look, feel, or behave like a real Mac app. The iPhone OS Kindle app is a native iPhone app, written in Cocoa Touch. The Mac Kindle app was produced using the cross-platform Qt toolkit.

Illustrating how the program written using Apple’s Cocoa for the device compares to the program written in a cross-platform developer toolkit.

Apple vs. Adobe and Apple vs. Google have been interesting recent battles to watch as they talk trash about each other, but this actual action may just be a defining moment in the battle.

The most ironic thing for me, however, is how these huge wars are being waged while the average computer user doesn’t even realize how that game on their browser window of a cute monkey is popping balloons and how the big companies are fighting over who gets to be the one to let you play Escape The Bathroom.

CS Practice I: Binary

The Binary post from earlier on needs an accompanying practice post! This is much sexier than that post actually if you are a beginner!


Binary Practice

CS I: Binary

Hey all, Jeff here. I’m taking it upon myself to post some small posts that talk about certain common logic systems and computer science basics. This field has room for many different types of people. Be you a designer, programmer, engineer, artist, writer, or potentially anything, the computer science field has room for you to excel. Wakka wakka.

Now going into CS there are a couple things you should know just as common knowledge.

Up first:

Binary baby!

Our numbering system is base ten. In that we increase a digit up until it reaches ten, where that digit goes back to zero and the next digit to the left increases ie: 19, 20, 21

Our numbers go through ten digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

In alternate number systems this is not the case.

Binary is base two. The only digits binary consists of are 0 and 1.

So when increasing the number shifts occur more often:






Binary is generally expressed in a “bit”. One bit has 8 digits (One “byte” has 8 bits).

One bit has 256 possible values: 0101 0010, 1101 0110, and etc.

NOW. Glad that’s out of the way. Computers use binary. Exciting I know. Now in CS we can make each of those values represent a character or symbol. This is where we’re using binary CODE. Binary code uses the number system to send info. So the character “a” is represented by 0110 0001. The character “1” is represented by 0011 0001 (not to be confused with the actual binary number for 1, which is 0000 0001. Seems annoying that the code isn’t the same but hey. Deal.) So when someone says “hey dude I can speak in binary code!” either they’re very intelligent and will list off a series of eight digits just to represent one letter for one word and have each letter’s binary representation memorized…OR…they’re morons who are clueless at what binary code is. Punch them for me.

ASCII to binary simple conversion chart

BUT if you feel the need for whatever reason to write something in Binary Code, I suggest you just use an online translator.

So what’s the point of my learning binary?

Other than bragging rights, the main thing about binary is the background knowledge of how it works will give you an advantage in the field of CS over others.

Really it’s just something that everyone in the area should have knowledge in.