Safari 5

Apple released Safari 5 yesterday.

Being a software developer as long as I’ve been, I know better than to get the 5.0 release — wait for the inevitable 5.0.1. 🙂

But I’ve been having so many problems with Safari lately (I think more due to the websites visited than Safari itself, e.g. Facebook) I figured what the hey. I needed to reboot my machine anyways, the Safari 5 install would require a reboot, so might as well.

So far I’m pleased with the update. Rendering of pages is a lot faster than with Safari 4. The new “reader” feature is pretty spiffy, like Quick Look for a multi-page web story. It makes the text bigger, more readable, better layout, no ads. That it’s more readable is certainly a big win. I’m sure I’ll be using this feature more and more as I get used to it being there.

There are finally “extensions” for Safari. I’ll be curious to see what people come up with.

iPhone 4

Being a Mac developer, it used to be an annual ritual to attend Apple’s World Wide Developer Conference (WWDC).

I was supposed to attend this year, but opted out of it because I knew it’d be nothing but an iPhone love fest. I’ve nothing against that, just that it’s nothing directly relevant to my present-day money-making, so the cost of sending me out there isn’t worth it. Nevertheless, I still like trying to catch the keynote because important things happen. Funny thing is, I remember when WWDC specifically was NOT a horse-and-pony show. That the keynote was purely a developer thing, there weren’t product announcements and other such things. Ah, to be an old-fart remembering the good old days. 😉

The iPhone 4 looks to be rather impressive, both from a consumer perspective and an internals geek perspective. iOS 4 as well looks to be quite a nice advancement as well. Apple’s really working to knock things out of the park and continue to set the bar that the rest of the industry will chase. Will I buy an iPhone 4? No, only because I don’t really need what it offers. But without question I like what’s being offered. As soon as I heard about the “front facing phone” I knew it would be about video chatting, and lo, FaceTime.

I am curious about the details of the WiFi stuff messing up the demos. Exactly why did that cause such a problem?

I did notice, no mention of 4G. I wonder why not.

Of course, we’re still stuck with AT&T. *sigh*

But as you could see from the keynote, it’s all about the iPhone. Don’t get me wrong, for Apple that’s where it should be. But it reinforces why I’m happy I stayed home. WWDC just isn’t what it used to be. And even while the topics have changed well… let’s just say the old WWDC’s were a lot more fun. You old timers know what I’m talking about. 🙂

Here’s why there’s no Flash on the iPhone/iPad/iPod

This is a detailed letter from Steve Jobs as to why Flash isn’t on the iPhone/iPad/iPod.

You really need to read the article to get all the details, but briefly:

  1. Flash is a closed system. Yes Apple admits to some level of being closed, but HTML5, CSS, JavaScript are open standards.
  2. The “full web”
  3. Reliabilty, security, and performance. Flash fails in all 3 areas.
  4. Battery life. Flash drains it heavily and quickly.
  5. Touch interfaces. Flash isn’t designed for that.
  6. Inserting a third-party into the user experience can yield less than optimal results.

Speaking as not only a consumer of these products but also as an Apple Developer for almost two decades, I can say Apple’s reasons are quite sound.

One very telling and modern reason?

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which pop up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

This is quite true. Touch-based is where computing is headed, and Flash just doesn’t grok it. So yes, if you need to rewrite, might as well rewrite in more modern technology.

Anyway, instead of whining to get Flash, we should be encouraging web developers to move beyond Flash.

Always buy AppleCare

That’s all there is to say. Always buy AppleCare.

If you buy an Apple product, buy their extended warranty.

It pays for itself.

On my MacBook Pro, I’ve had a keyboard die and it was replaced. I’ve had a battery swell up, it was replaced. In fact, I just had a second battery swell up and it too is being replaced. I swear there was something else too, and all taken care of.

I think the AppleCare cost me $169? Something like that. Certainly got my money’s worth.

Of course, one could argue that it’d be better if the stuff worked solidly from the factory. I agree. I think Apple’s hardware was much more robust years ago, but as Apple changed to different standards (e.g. to IDE from SCSI, their own video to VGA and such) well… they had to lower costs, be more competitive, and that seems to also have affected quality to some degree. I still think Apple’s quality overall is good, just that well… shit happens.

I learned that with this latest battery swelling, they’re taking care of it but… my AppleCare runs out in just a matter of days. Gosh. I’m going to miss that, but am glad I got this one fixed under the wire.

Meantime yes. Buy AppleCare. Always. It pays off.

Verbose booting

While the Mac prides itself on being so user friendly, it’s a computer like any other… written by humans… worked on by humans… and so, there’s always a chance for problems and things to go wrong.

One handy thing to do is to set your Mac to boot into verbose mode. This way when your Mac boots, instead of just seeing the spinning daisy and other pretty non-informative information, you can see all this stream of geeky stuff going by. You probably won’t know nor care what most of it means, and that’s fine. But there will come that day when something odd will happen. Maybe you installed something new, maybe something on the computer decided to go south, and now the machine acts strange at boot time. This is when you’ll be happy to have booted up in verbose mode. Even if you don’t understand what’s going on, being able to relay that information to your local geek helper can be useful towards remedying your problem.

There are two ways to do it.

The simple way is to hold down a key combo at boot time: command-v. That is, hold down the command key and the “v” key as soon as you hear the restart chime. The command key is the key immediately adjacent to the spacebar, with the Apple and little “cloverleaf” symbol on it (I tried to display the symbol here, but WordPress is acting strange). The verbose mode should start immediately and most obviously, and then you can release the key combo. The benefit of this approach is it’s on-demand, but the downside of this approach is it’s on-demand; once the boot sequence starts, you cannot press cmd-v to see what’s going on so if something ugly happens during the boot process you won’t see it.

A more permanent solution is to launch the Terminal.app and enter this command at the prompt:

sudo nvram boot-args="-v"

Which will pass the “verbose” option to the boot arguments stored in the nvram of the machine. This way every time you boot your machine it will boot in verbose mode. This is how I set every Mac I own. 99% of the time I don’t care what’s scrolling by on screen, but there are days when I’m glad to see the information going by.

One thing to note. If you zap your PRAM (command-option-p-r at the boot chime) it will clear the nvram and your verbose argument will be lost. So when zapping your PRAM, zap it, and as soon as the machine chimes again immediately press cmd-v to go into verbose mode. Then once the machine is properly started up and you have logged in, launch the Terminal.app and enter the nvram command.

BBQ Not Found

A few days ago I was in a business that had lots of old vehicle license plates decorating the walls. Some were just plain plates, others were vanity plates. One in particular caught my eye. Given it’s age (well before the Internet) I have to assume it the combination of letters and numbers was coincidence. I forgot to get a picture, but I can’t forget what the plate said:

BBQ 404

All I could think to myself was “BBQ not found? How sad.” 🙂

Stupid iPhone

Last night at the Motörhead show my iPhone crapped out on me… again.

So much for getting pictures.

I actually had taken a couple pictures of The Sword.

I intentionally left the phone on “Camera” so I could take more pictures, especially of the Motörhead performance. But then I pull out the phone, press buttons and no response. Damnit. I fiddle with all the buttons I can, and nothing. The phone, she’s dead. Last time this happened to me I had done a similar thing: the phone was likely left on an application, I put the phone into my back pocket, pull it out and she’s dead. That time I had plugged in the phone and eventually saw the battery come alive with almost no charge… so the battery had run down. I figured that’s what happened here so I just forgot about it until I got home.

However when I got home and plugged in the phone for a while, it didn’t come back. Uh oh. I Googled about it and apparently this is not an uncommon problem. The solution?

A hard reset.

Press the power button and home button together and hold… you might have to hold for a little while (30-60 seconds?), but eventually you should see the Apple logo on screen. When you do, it’ll churn away and eventually you go about your business. I did have about 70% battery left, which means some battery was drained but not everything.

Digging deeper into my ~/Library/Logs/CrashReporer/MobileDevice/ folder of my sync machine, it looks like the phone had a kernel panic.

Ah… modern computing.

Anyway, now that I know about the hard reset, next time this happens I’ll try that and see how it goes.

Today is going to suck.

I just bit myself, hard.

Day job has me as a software developer. I was testing out some changes to a window layout. This window allows you to configure automated tasks… so say, at midnight your computer will automatically execute whatever you told it to do. Well, I was just testing out the GUI changes but needed a task in the window so I created a dummy task. The task ended up being set to move basically every file in my home directory into my Documents folder. I didn’t set it that way, those are just all the initial settings when you create a new task. I didn’t care.. .it was just to be a dummy task for the GUI testing, right?

Only I forgot to remove the task before I stopped work for the day.

I get to my work computer this morning and about shit myself because I saw everything was gone.

Only no, it’s not all gone, it just moved some 97,000 files to a single folder.

Shit. Shit. Shit!

And the sad thing is, my Time Machine backups were turned off because last month it started to constantly choke on these particular files, and I couldn’t resolve the issue. So the last backup I have is a month old. But hey, if I had a backup from a few hours prior I could just blast it back and be done with it.

Damnit.

Well, I know what I’m spending today doing.

*sigh*

Car Code

I figured with the growing amounts of electronics in cars that there must be a lot of code behind it, but I didn’t realize just how much code until I read this article.

Speaking as a software developer, that is massive amounts of code. Huge. Trying to maintain that would be a bear. Furthermore, trying to ensure it’s error/bug-free? A monumental task, edging on impossible.

I don’t know how the automotive industry works in terms of producing this software, but if it’s anything like most commercial software companies then lord… it makes me want to drive a Model T, that’s all mechanical and easy to fix. All I can do is hope they have a good understanding of proper software development process and are not willing to sacrifice solid reliable code because they need some new feature and needed it yesterday.

I also hope they understand how simple is better. All those millions of lines of code? Gosh… if they can take the time to simplify and trim that down, so much better in the long run. More maintainable, less chance of errors and problems and risking catastrophic failure.

Gosh I hope they do things right.

Of course the geek in me wants to know nitty gritty details now like the language they’re using and the toolset. 🙂