Poem by John Cleese, read by Keith Olbermann on Countdown:
An ode to Sean Hannity,
Aping urbanity,
Oozing with vanity,
Plump as a manatee,
Faking Humanity.
Journalistic calamity,
Intellectual inanity,
Fox noise insanity,
Your profanity,
Hannity.
Poem by John Cleese, read by Keith Olbermann on Countdown:
An ode to Sean Hannity,
Aping urbanity,
Oozing with vanity,
Plump as a manatee,
Faking Humanity.
Journalistic calamity,
Intellectual inanity,
Fox noise insanity,
Your profanity,
Hannity.
When I write programs, I rely on feeling. If it doesn't feel right, I keep going until it does.
What I'm working on right now is a new, very large replacement for an existing (competing) product. The existing product has been deemed (by me) as unsatisfactory. It feels kind of like Microsoft Windows in nature; I can tell its architecture isn't all that great underneath. Don't get me wrong -- it was a great product when it first came out around ten years ago -- but by now, I've begun to see their approach to certain things, and while it appears that their code base may be clean (unlike, perhaps, Windows), it is also large, and most certainly inflexible. There is too much specialization in the wrong places. I can tell they are not generalizing nearly enough.
I can tell this intuitively, rather than logically. I just know, based upon what I see their software do, and what kinds of behaviors and little quirks it has, how it thinks of things. And intuitively, I know it is not the best approach.
It is ironic, then, that my first instinct always seems to be to attempt to imitate them. Thankfully, my feelings usually intervene, and instead of just doing what they did, I do things completely differently, in a way I can feel is much improved.
In this way, my approach to designing software is more artistic and design driven than logic-driven. The same feelings which tell me that a design looks right tell me when a piece of a program is designed correctly -- or, at least, as correctly as I can conceive at that time.
For class, I'm supposed to do a music journal; for this, I'm supposed to record any piece of music I hear, whether I know or don't know it, and whether I like it or don't like it. Because I don't have any better tool to take a note with at the moment (I'm not on my computer at the moment) I'm going to record a song I just heard (and a song I'm about to hear) here on my blog, as a note to myself.
Chopin Ballad no 1; Olympics theme; Greek national anthem (I think).
What is design, and what is art?
This is a complicated question; or else, it has a complicated answer.
Until recently, I defined art as creations done to express one's own self, and design as creations done to achieve some purpose. This separation was rather vague, as expressing ones self is, in fact, a purpose (and thus, art is design).
But tonight, I think I've finally figured it out:
Design is what you don't think about when creating art.
Design is the set of techniques which may be used in creating art. You can't think about it when creating art (which I still describe as expressions of one's self), as it involves too much thinking. Art is about feeling.
John Gruber, who runs, owns, rules, presides over, and is the king of the wonderful Daring Fireball linked list and assorted goodies, has linked to a craptastically written* article by TheStreet.com's Gary Krakow.
The piece stinks, and smells bad as well — well, the first half of it, at least; I couldn't make it any farther. Don't worry, Gruber's whole point in posting was to point out its stinkiness, although, I cannot help to notice that he mentioned nothing of the smell, and as such, I henceforth assume that my olfactory prowess is greater than his.
I stopped reading the article when it became completely obvious (it was already obvious) that he was attempting to accuse Apple of actually setting out to block iPhone jailbreakers and unlockers.
I won't get into an argument over whether or not Apple would like to do such a thing; instead, I state that they would be insane to do such a thing, as, as of 2.0.1, the keyboard is still slow in Mail, and that means that they likely have enough performance problems and other bugs to deal with anyway — they can't really afford to divert their attention to something as petty as shutting down hackers who, now that you must get an AT&T plan to begin with (unless you pay a large fee), have managed to unlock the phone.
Such pettiness is for John McCain (see his tire inflation jokes).
Outside of the world of politics, such pettiness is for Microsoft. Microsoft, in fact, spends so much time ensuring that their products can't be hacked that it ends up sucking, completely. And the resulting product is one that, while hackers are still perfectly able to hack (the wicked fiends that they are), end users are oft unable to even activate.
Apple would be silly to be so petty.
Though, the keyboard is still slow. Maybe they do have their priorities mixed up.
* I am not speaking of the actual writing quality, as I did not pay attention enough to judge, but rather the quality of the research and thought put into the article.
I just sent this note to Steve Jobs (or whoever reads/doesn't read his email):
Dear Mr. Jobs, Apple Web Engineers, or Whomever it May Concern,
It appears that your DNS settings are a bit off; it is currently required to type in www. before apple.com in order to see the Apple website. This is very bad form: not only is the www sub-domain antiquated, but users will likely get confused if they get a Safari can't open the page error when they try to navigate to apple.com without using the www.
Your DNS record for the www sub-domain points to one IP address, 17.251.200.32. Meanwhile, your apple.com domain points to another, 17.112.152.57.
I don't know how your intranet is set up, but keep in mind that if you test it from within Apple headquarters, this may not apply, as internally at Apple you may have your own DNS serves which may have the appropriate DNS settings.
I hope this notice reaches someone who can do something about the problem. I understand your web engineers are quite busy attempting to fix the problems surrounding MobileMe's launch, and I hope your problems will end soon.
And now, just as I finished typing this, you fixed it. Apple.com now redirects to www.apple.com.
Sorry for taking up your time,
Alex
P.S. I still think that www should not be required; if anything, www.apple.com should redirect to apple.com.
It really was down. But it appears they just added a redirect.
EDIT: The last couple days, it has again not been working for me. I am not sure if they have different DNS servers and I just keep getting the wrong ones, or if they just keep messing it up.
I still think www should be dropped. KILL www.
On that note, I am launching a web campaign. I am providing two pieces of media, if you care to use them and join me in the quest to KILL www. One is square, the other isn't. There's a handy tool called Photoshop (or Preview, on the Mac), that should allow you to resize the images if you need to.
Also, purely for interest's sake, I offer three example "good" sites, and three example "bad" sites:
I just read this on Apple's MobileMe website:
- Compatible device: Mac, PC, iPhone, or iPod touch.
- For Mac: Mac OS X v10.4.11 or latest version of Mac OS X Leopard; Firefox 2 or 3 or Safari 3.
- For PC: Windows Vista or Windows XP Home or Professional (SP2) or later; Firefox 2 or 3, Safari 3, or Internet Explorer 7*; Microsoft Outlook 2003 or later recommended.
- For iPhone and iPod touch: 2.0 software.
- iPhone requires Wi-Fi or cellular network data connection for over the air updates; iPod touch requires Wi-Fi connection.
- iTunes 7.7 or later (free download from www.itunes.com/download).
- Internet access with compatible ISP (broadband required for web applications); fees may apply.
- Some features require Mac OS X v10.5 and iLife ’08.
* Internet Explorer 7 is not fully supported. Internet Explorer 7 has known compatibility issues with modern web standards that affect Web 2.0 applications such as MobileMe. You can use Internet Explorer 7, but you will not have access to all MobileMe features and will experience slower performance.
It appears IE7 isn't that great of a browser. Who would have guessed?
Here's my definition:
The "Open Web" is a realization.
It is a realization that it is alright to share all kinds of information.
It is a realization that the information you create may be found by others, and then improved.
It is a realization that the information comes even before yourself.
It is a realization that The Information itself is the noble cause.
A week or so ago, I ran into a little problem while working on an extensive Flash-based project. (It would be Flex-based, as I was developing it using Flex builder; however, I am completely sidestepping any and all Flex framework libraries -- as such, it is Flash-based).
I experienced a bit of a problem with mouseOver. Consider this code (please forgive any errors; I've been using C++ the last few days):
//create two containers
var container1 : Sprite = new Sprite();
var container2 : Sprite = new Sprite();
//add an item to each container
var item1 : Sprite = new Sprite();
var item2 : Sprite = new Sprite();
container1.addChild(item1);
container2.addChild(item2);
//put some content in each item - a 10px square
item1.graphics.beginFill(0xFF0000);
item1.graphics.drawRect(0, 0, 10, 10);
//have item2 be transparent
item2.graphics.beginFill(0xFF0000, 0);
item2.graphics.drawRect(0, 0, 20, 20);
//set mouseEnabled for item2 to false
item2.mouseEnabled = false;
//add an event listener to item1.
item1.addEventListener(MouseEvent.MOUSE_DOWN, function(event : MouseEvent) { trace("test"); });
//and to container2
container2.addEventListener(MouseEvent.MOUSE_DOWN, function(event : MouseEvent) {
trace("oops");
});
//add both objects to the stage
stage.addChild(item1);
stage.addChild(item2);
This is pretty straightforward. I had, mistakenly, expected that, since item2 did not have mouse enabled, that events in its target range would pass through to the object below (item1). However, instead, the object containing item2 was called. Thus, "oops" will be printed in the above example.
In my situation, I had an overlay sitting on top of my actual content; sometimes (if the mouse was enabled), I wanted that overlay to get mouse events. Other times, not so much. As all overlays were grouped together in a special container, and that container did support mouse events, that container's mouse events were called.
The reason, I have managed to deduce, is due to the way Flash detects hit areas. The hit area of any Sprite is determined by what pixels have been set in that sprite. It does not matter if the pixels have been set by a child sprite or the sprite itself (and it does not matter if those pixels are transparent or opaque, either).
It took me an hour or two to debug. I don't like bugs, I really don't like it if they take more than a minute to fix, I dislike it much more if they take more than ten minutes, and I hate it if they take more than twenty minutes. Truthfully, I don't care for code-writing itself all that much (I prefer art), but as I don't have an army of developers at my disposal, I have to make do with my skills (which I like to think are pretty significant - I have been programming since I was 10 years old).
Apple is now worth four times Dell. Clearly Dell is ailing.
I, Steve Jobs, was asked what I would do to fix the company. Here's my answer:
What would I do? I'd shut it down and give the money back to the shareholders.
I call that irony.
People supply many reasons to explain why Apple has not put Flash on iPhone, ranging from alleged arguments with Adobe to performance and battery difficulties.
While any or all of these reasons could be contributing factors, I believe that the most significant reason is more intrinsic: Flash on iPhone would suck.
Why would it suck? Because Flash, and its APIs, commands, and entire model of thought, are meant for the desktop, not for iPhone. And, as has been pointed out before, iPhone is not the desktop.
How would things like mouse-over, click, etc. occur? Okay, I can see using a finger tap for a click, but how would mouse over be accomplished? Worse still, how would the keyboard work? Although some Flash applications use Adobe widgets, even these are (I think) based upon the same keyDown/keyUp-style events. How will iPhone know when to show the keyboard? And, supposing that problem is worked out, how will it know what area should be focused on?
Assuming Flash applications are then limited to ones which require no keyboard movement and only minor mouse activity, we are still left with another problem: mice are precise, fingers are not. Many applications which use tiny buttons would be impossible to use.
This problem could, conceivably, be solved by using the pinch-zoom method. However, then drag-and-drop becomes impossible, as any drag operation would instead be understood as a scroll operation. Even without zooming or a need to scroll, drag-and-drop is complicated, because the only time that a mouseMove event could be fired in the first place is when the mouse is down.
Even YouTube would not work well in Flash on iPhone. You would have difficulty pressing the play/pause button, and using the track bar would be darn near impossible unless mouse-move was implemented.
While Flash does work on other phones, these phones still use the desktop paradigm: there is a fixed keyboard, and the stylus is very similar to the mouse. While the mouseMove/over difficulties would still be present, precision is not an issue, and there can be dedicated scroll bars on the side of the screen for scrolling (so zooming can occur, and Flash documents are not limited in size).
But, there is a reason why iPhone is so great: because it is not built traditionally, because it is not built like the desktop.
Flash is a desktop technology. iPhone is as far away from the desktop as you can get. That is why Flash on iPhone would suck.
That means I only have ninety-nine more to go! Actually, what it means is my little upload-managing portion of the site needs to be updated to support paging. As of this moment, it does not, so each time that page is generated, it creates a page with about fifty items on it.
Yet another movie! My brother and I have just finished our Lord of the Rings/Harry Potter cross-over movie. We have begun working on our next movie, and you'll probably see what it is next week. The one we are working on now is in Final Cut Pro, whereas the one just posted was done (mostly) in iMovie, though there were a few corrections to a couple of shots in Final Cut Pro, and most of the titles from the Lord of the Rings trailer were replaced with ones made in Photoshop and (in one case) Apple's Motion (I'll posting a tutorial on how to make these titles shortly).
So, here's our movie: