Category Archives: apple

Of Google Hotel Finder and comparing Apple, Microsoft & Google

In an interesting critique of Google Hotel Finder, these lines stood out:

As Google grows, its willingness to float bad products is starting to seem a little bit similar to Microsoft, ten years ago. You know what’s also similar? Its dependence on a single cash cow that keeps them from caring whether any single side venture lives or dies.

Which leads us to:

The direct contrast of course is America’s best design-driven company, Apple. Steve Jobs would rather die than release any new product that wasn’t a step-wise improvement over everything that existed before. That’s the mentality of someone that cares about whether people use a product. It’s the mentality of a designer. Google’s mentality is that of an engineer, content to labor over one cool feature at the expense of creating any overarching value.

And finally:

As the example of Microsoft vs. Apple showed us, the engineer’s mentality can win early in a product cycle, when new features can create great advantages over competitors. But over time, as the tech gets commoditized, it’s companies like Apple, which are focused on integrating all the features, that create world-changing products.

8 Random Observations About Lion

Here are some random things I noticed during the first 3-4 days of using Lion. Since I haven’t added anything to this list in over a week, I think it’s time to post.

Keep Both Files

A new option has been added to the dialog box, when you try to copy a file over an existing file of the same name.

Keep Both Files

The “Keep Both Files” creates a file called “Firefox Copy” much like if you copy-paste a file in the same Folder.

Finder Remembers Folder Sizes

While re-calculating size of a folder in List View, Finder doesn’t “forget” the size from last time. It displays the old size in a greyed out font, until the current size is recomputed.

Finder Remembers Folder Sizes

Smaller Size

I didn’t capture the exact number in Snow Leopard but as per my observation, Lion installation over Snow Leopard was around 4 gigs lighter than its predecssor.

Better Quick Look

Two nice things about Quick Look, both related to video playback, something I do quite often. First, it no longer stops playing videos when you move away from Finder. Two, it resizes playback window size when moving from one video to another. Quick Look before Lion would stick to the window size of the first video, when jumping from one to the other using arrow keys.

WebProcess

No iSync

There’s no iSync application in Lion. But if you have access to Snow Leopard, you can simply copy over the application and it works fine. It even remembers your connected devices and settings, if you installed Lion over Snow Leopard.

No Front Row

Remember Front Row? Well Apple wants you to forget about it.

WebProcess

Safari is now broken into two processes – WebProcess, the Web/ rendering related stuff and Safari, which is just the application cover on top of that. This provides enhanced security by limiting the resources any malicious script can access.

Animations All Around

Here’s how I disabled system wide new window animations. Type this in Terminal, press Enter and restart Dock.

defaults write NSGlobalDomain NSAutomaticWindowAnimationsEnabled -bool NO

Next thing I did is disable the annoying animations in Mail.app as well. Restart Mail after this.

defaults write com.apple.Mail DisableReplyAnimations -bool YES

defaults write com.apple.Mail DisableSendAnimations -bool YES

On the iPad

I’ve been meaning to write a detailed piece of the iPad ever since it was announced, but knowing myself, it’s no surprise that I haven’t gotten down to it yet. So before everyone receives their iPads over the weekend, I would like to put some thoughts on record, essentially for me to look back at this article 3 years from now and see what all I got right 🙂 Not the detailed article I had hoped to write, but more like important points that need to be made. Some, of these points may have been made by someone or the other, I am not sure.

First off a couple of points, that should be clear to anyone who’s even heard about the iPad.

  • A device for technophobes

    The kind of device you’ll give your grandparents and forget about it, so they can do everyday things like check mail, photographs, videos etc. without having to worry about “fighting” with their computer. Without worrying about viruses, malware etc. For you and me, it means no more remote support over TeamViewer trying to fix their computer!

  • Geeks stay out!

    As a corollary of above, and as has been (very) well documented, not your cup of tea if you like to be in “total control” of your computer. The tight control that Apple has over the device is what makes the device what it is (in terms of usability as well as end to end user experience) and “hackability” has to lose out. 10 bucks says Apple comes out with a similar device in the near future that runs full OS X and is as geek friendly as OS X on the desktop. You can quote me on that!

  • Now that we are warmed up, let’s look at the significance of the iPad in the larger scheme of things.

  • Computing as an appliance

    Not sure if anyone has used this term wrt an iPad, but to me, this is, finally, computing as an appliance! You don’t care about the hardware inside your Television set, DVR or set top box, why should your computer be any different? The fact that you interact with a computer in far more complex and various ways as compared to, say, a Television, doesn’t mean it HAS to be as complex as that. An iPad (or for that matter any similar device that is capable of hiding the underlying complexity from the user) is finally going to unveil the joy and simplicity of using a “computer” to the masses. Of course, you may refuse to call them computers in the traditional sense, but they would do what most people wanna do with a computer – Connect, Consume (media/ games) and Create (basic documents/ spreadsheets etc.), what I would call the 3 Cs, if I wanted to sound like one of those B-school types.

  • iPad clones

    Ever since the iPad was announced, everyone has been playing the “me too” game. If these devices try to attend to the perceived “gap” that the iPad has (i.e. user being “in control”, hackability etc.) then they’ll just end up being slightly sexier looking version of netbooks. It’s going to be the iPod all over again, where the other players claim “but we offer *insert features here* that the iPad doesn’t have” and the market will just crap over them, because 95% of the people don’t care about those extra features. They just want to deal with the simplest device that doesn’t get in their way.

    The iPad clones that’ll have an impact will come from the people who learnt from the iPod scene and realized that cramming more features into your product isn’t the way to defeat Apple. Of course if anyone out there has actually learnt the lesson and is willing to build an entire ecosystem around their product(s) like Apple does is anyone’s guess. This “walled garden” approach that people (geeks/ commentators) criticize about Apple is what keeps the user happy. The idea that “if it’s in the app store it won’t crash and burn my computer”, works very well for most, thank you very much. If you look at the numbers, those who care about “openness” are an insignificant minority.

  • Apps not Safari

    One thing I foresee, which I haven’t seen mentioned elsewhere, is a move away from the browser as the starting point. Mind you, I am not saying a move away from WWW, even I am not that foolish, but I see Safari (or whatever your browser is on your “iPad like” device) being launched less and less. You wanna check your mail, you’ll use either the built-in email app or Google’s Gmail app. Weather? Weather Underground app. NYT? An app for that. Pictures from the vacation that your grandkids went on? Facebook or Flickr app.

    The way I see it, the app (or widget or channel as various platforms do or will call it) model relates much better to the way “regular” people consume information in the real world. You want news, you pick up the paper. You wanna see photos, go look at the albums etc. A different application (icon, essentially) for different tasks is easier to understand/ relate to for most people.

    Technically speaking, I see machine readable formats like RSS (or more likely some other format that serves a similar purpose) playing an important role with this. Not for consumption by end users, but by the apps/ widgets/ channels by the same content producer, but on various platforms. So NYT produces content and publishes it (at a private URL) in a machine readable format. The NYT app on the iPhone/ iPad/ *insert device here* connects to that URL, downloads the content and displays a version optimized for your device. MVC anyone? Pretty much what happens today as well, but with the wide variety of devices that we are likely to see in the future, this is going to really take off.

  • The iPad impact

    If you don’t know it by now already, or are one of the skeptics/ iPad bashers, let me tell you the impact this device will have is going to be huuuuge! And I am not just talking about the impact on Apple’s bottom line 😉 As I mentioned earlier, this will completely change the way people think about computers. This is the device we promised people when we sold them the idea of computing. Not machines that were breeding grounds for malwares and viruses or a gazillion other frustrations that regular people face when “confronted” with a computer.

    As I mentioned earlier, this is the beginning of a new movement. The iPad will force everyone to rethink the basic principles on which we have designed the user interfaces that we expose to the end users. Make no mistake about it, the entire “desktop” based UI paradigm that has been with us for 20+ years now is being challenged as we speak and “computers” as you and I know them today will perhaps we restricted to a small subset of the audience who extract a more specific purpose than the 3 Cs (see above). But the majority of the population don’t care about GCC, 3D accelerated video cards or the ability to run Logic Pro. The iPad and its approach to UI actually works better for them.

    At the risk of repeating myself, those who adopt this “new” approach, will be the winners and those who try to fit old ideas in a new bottle, like they tried on the mobile platform (a Desktop with a start button on a 2″ screen is a great idea honey!) will fail.

  • Flash killer

    Yes, the iPad doesn’t have Flash and unless the folks over at Apple have a drastic change of heart, it probably never will. Does that mean you will not be able to watch Hulu and the likes? No! It means that Flash would be used less and less because no one wants to leave the iPhone/ iPad guys out. We’ve already seen this before, when Youtube started offering MP4 versions of videos, atleast partially, to cater to the iPhone crowd. Even with the iPad there’s talk of people releasing optimized versions (e.g. TED, who’ve already done that I believe) and plenty of buzz around Hulu doing something similar. Expect almost all the major players to follow suit. And it won’t be long before they realize it’s not worth producing content in two different formats, and since the iPad format works well for non-iPad users as well, let’s chuck Flash!

    Adobe knows this, and which is why it has tried to publically put Apple under pressure on more than one occasion, including accusing them of denying access to OS X APIs. Of course, such methods don’t work with Apple (howz that countdown going Opera folks?) and, if anything, would have made the guys at Apple more determined to hold on to their post – as if they needed any more convincing! So while Flash may continue to be around for games and fancy UIs, its days as the de-facto standard for videos on the web are numbered.

Why I use OS X reason #121211

I move the iMac from Pune to Delhi, join the WiFi network, click on Add Printer and not only does it detect the HP Multifunction thingy attached to my router instantly, but it’s installed and ready to use without me having to click on “Yes” infinite times or without anyone telling me the drivers might be the bastard child of someone cause they aren’t properly “signed”.

As a bonus, it also installs the scanner, which I use to “pull” documents from the scanner on the network onto my computer, with fully functional settings like changing the file type etc. And all this without having to install any of HP bloatware on my machine.

The next time Software update runs, it also informs me a newer version of the drivers/ software I used in also available. I then appreciate the fact that the OS didn’t bother me with this when I was trying to install the printer and print something in a hurry. Non-critical updates can wait until you have the time, user, is a nice approach.

The very definition of “it just works”.

Ayrton, Diego get new stripes

This week I finally moved Ayrton (the iMac) to Snow Leopard and also managed to find the time to move up Diego (my 5+ years and still going strong Powerbook) to Leopard. Here’s a quick primer for someone looking to upgrade their Mac.

First, I prefer clean installs. No installing over the previous OS and carrying over stuff for me. I like to use this is an opportunity to wipe the stuff and clean up house. If you are anything like me, you keep around a lot of things thinking you’ll need them, but never do. This is the time for you to break free.

So here’s how I do it:
1) Create a bootable copy of the existing Mac using Carbon Copy Cloner onto an External USB/ Firewire drive. USB drives do fine for Intel Macs like Ayrton but a Firewire drive is needed to boot a PPC machine. Via Disk Utility ensure that your drive is using the correct partition scheme to be able to boot your Mac:

Disk Utility

If you want help partitioning your disk, refer this page.

Note: If you can live with non-bootable backups and would just like to have access to your old files, don’t worry about USB/ Firewire/ Partition Schemes and just backup to any drive that your existing Mac can write to.

2) Once CCC tells you that the cloning is complete, reboot your Mac and hold the option while it boots up. It will show you the list of drives you can boot off. You should see the external drive you just backed up on as one of the options. Select it and boot into that drive to make sure the backup you have works fine. This will serve as a fail-safe just in case something goes wrong with the new install and also gives you an option to boot into a full functional OS if you ever feel nostalgic! You’ll also be using this backup to copy back the stuff you need on the new install.

3) Once you’ve verified everything is as it should be, put in the Snow Leopard DVD (or Leopard or whatever) and reboot your Mac. Again, press the option key while rebooting and this time select the DVD drive. When you reach the Welcome Screen, from the “Utilities” menu, choose “Disk Utility”. Erase your current Mac drive – this is the part where you make a clean break. Then proceed with the setup as usual until it’s complete.

Note: I actually used Target Disk mode to install Leopard on Diego, since it doesn’t have a dual layer DVD reader. Will do a follow up post on how to do that.

4) There’s no step 4. You should have a faster, cleaner Mac!

Update: Remember to run “Software Update” on the first boot. Install all updates that are available and reboot your machine (if necessary). After reboot, run “Software Update” again. Repeat, rinse until there are no more updates available. If you are wondering why all updates aren’t available in the first shot, it’s because some updates are dependent on others.

Copying your old stuff
The first time you boot into your Mac you’ll be greeted by the Migration Assistant. Select “From a Time Machine backup or another disk”:

Migration Assistant

Select the hard disk you backed to. On the next screen, I like to select only “Settings” – this is part of the breaking free routine. This will copy your WiFi/ Network settings, time zone etc. Anything else I would need I like to copy manually.

Migration Assistant 1

Now you can manually copy the Applications you really need from your old Mac drive (or download latest versions from the Internet) onto the new. You can also copy the preferences for the same application from the Library/Preferences folder under the previous use to the current one, but most people won’t need that. The only preference file I remember bringing over was the one for Safari Stand and that’s cause I had configured a bunch of quick search shortcuts which I didn’t wanna do all over again.

Other things to note:

  • Passwords/ Keychains – If you want to carry over your saved passwords without any problems, I suggest you create a user with the same user-name and password as the previous Install. With that, you can simply copy the ~/Library/Keychains folder from the previous user folder to the current one and use them normally without any problems.
  • iTunes/ iPhoto – Simply copy the iTunes folder (~/Music/iTunes) and the iPhoto Library (in ~/Pictures) to the same location under the new user/ OS and you should be set.
  • Mails/ Calendars – Simply copy the folders Mail (~/Library/Mail) and Calendars (~/Library/Calendars) to the same location in the new OS and they should work without any problems.
  • This time I also created an Applications folder in my home folder where I keep all Applications I install. So that /Applications stays clean like the day I installed my OS. Not necessary, just an alternative way to organize your stuff.

Applications
If you’re curious, here’s a list of Applications I installed immediately after install (in the order they appear in my Applications folder right now):

  • Acorn – Image editor (Shareware, I have a license)
  • Adium – Multi-protocol chat client (Free)
  • Burn – CD/ DVD burning software for the rare occasions (Free)
  • Clip Menu – Clipboard manager allows you to have multiple items in the Clipboard. Recently switched to this instead of the Quicksilver plugin (Free)
  • Dropbox – Client for the easy to use file sharing service (Free)
  • Firefox – Not my primary browser, but need it for development (Free)
  • LittleSnapper – Image grabber, great for snapshotting entire web-pages (Shareware, I have a license)
  • Oilcan – PostgreSQL client. Pretty basic but does the job (Free)
  • Quicksilver – the grand daddy of all apps (Free)
  • Sequel Pro – awesome MySQL client (Free)
  • Skitch – another screen grabbing + quick sharing app (Free)
  • Skype – Voice Chat/ Calls (Free)
  • Transmit – Trying it out over Cyberduck for my SFTP needs (Shareware)
  • Socilate – A new Facebook/ Skype/ Twitter client, still in beta
  • Textmate – The best text editor on any platform – vi(m)/ emacs fanatics stay away (Shareware)
  • The Unarchiver – Does what is says, throw almost any format at it (Free)
  • Transmission – Torrent client (Free)
  • Tweetie – Twitter client (Shareware/ Free with ads)
  • uTorrent – Giving it a try, over Transmission above (Free)
  • VLC – Media Player that plays practically anything (Free)
  • Xcode

Plugins/ other stuff I installed:

  • ClickToFlash – Safari plugin that disables all flash items until you click on them! (Free)
  • Flip4Mac – To play those pesky WMVs in QuickTime (Free)
  • Growl – Notifications, Mac ishtyle (Free)
  • iStat Menus – An overview of the Mac in your menu bar (Free)
  • Letterbox – Outlook style 3 column view for Apple Mail(Free)
  • Macports – Allows you to install various *nix utilities in a hassle free manner (Free)
  • Perian – Allows QuickTime to play DivX and various other formats (Free)
  • SafariStand – Plugin for Safari that adds various goodies (Free)
  • USB Overdrive – I had some troubles with the software/ drivers Logitech shipped for Snow Leopard and found this one to be much more stable. Allows me to program the gazillion buttons on my mouse to various custom actions (Shareware)

I also installed all three of Parallels, VMWare Fusion and VirtualBox – still not sure which one I am going to keep for the rare occasion I need to dip into the dark side. You can simply copy the image file over from your previous OS and reinstall the software in case you have an image you want to carry forward.

Okay, that’s more than enough information – I’ll update this post and/ or do a new one in case I think of anything else.

10.5.8 brings support for cheap, no-name USB enclosures!

I have a couple of cheap, no-name 2.5″ hard disk USB enclosures with me that haven’t worked with any of my Macs since time immemorial. They made weird noises and flashed lights when I plugged them into either my Powerbook or the 20″ Intel iMac. I also shrugged it off thinking “oh these Macs are under powered” (( I do remember having some success getting my Powerbook to recognize the disk by using one of the 2×1 USB cables and inserting both of the connectors at one end into the Powerbook )) and grabbed the nearest Dell to transfer the data. (( no need to rub it in, I am embarrassed enough admitting it in public! ))

Until this morning. I upgraded to 10.5.8 and later when I was going through the release notes I saw this innocent looking line:

Improves compatibility with some external USB hard drives.

Immediately I popped in my cheap, no-name hard disk enclosure (with the hard disk in it, of course!) and yes, the iMac detected it. I am still running Tiger on the Powerbook so have no way of verifying if it works likewise.

Macs have truly broken the final frontier as far as I am concerned!

Development on the Mac

Macs have long been popular with graphic designers and in the entertainment industry. Since the release of the original Mac OS X, and with every subsequent release, more and more developers are discovering that a Mac isn’t just something that sits in the corner and looks pretty. Let’s take a look at what Macs have to offer to the developer community.

Mac applications
If you want to develop applications for the Mac, needless to say, you’ve gotta do it on a Mac! The de-facto language of Mac developers is Objective C, an object oriented extension of C with Smalltalk like syntax. Objective C adds concepts like messaging and automatic memory management (with Objective C 2.0) to C. In other words, Objective C code is like pure C code with object oriented constructs. This makes the code readable for anyone with background in C.

If you are looking to write Mac applications, it’s looking increasingly like Cocoa is your only remaining friend – not that there’s anything wrong with it! For a long time Mac developers have had two options for developing native applications – Cocoa and Carbon. Carbon is the older options of the two, allowing users to write their applications in pure C/ C++. Many popular Mac applications like Microsoft Office and Adobe Photoshop are written in Carbon though with the release of Leopard Apple seems to be signaling that Carbon’s time is up (no 64 bit support for Carbon in Leopard). Thus, if you are starting off developing a Mac application in today’s world, you are well advised to stick to Cocoa. Cocoa is a collection of modern frameworks and APIs that allow you to build “Mac like” applications. As mentioned above, Objective C is the most popular (and Apple’s recommended) option for Cocoa developers, though one can also use languages like Python and Ruby (via bridges).

Apple complements these modern frameworks with ultra-modern developer tools. Xcode (the IDE) and Interface Builder are playgrounds that any developer would love to play in and are supplemented by nifty tools like Instruments that allow you to monitor your application performance in real time. All this, of course, comes with tons of documentation and sample code – think of it as MSDN without the pain!

Web Developers
Web developers have the advantage of developing in an environment that comes with a pre-installed industry standard web server (Apache) and a modern web browser (Safari). You can supplement your experience with popular cross platform tools like Dreamweaver or mac native stunners like Coda, that offer single-window web development experiences. You can test your web apps on a wide variety of browsers like Opera and Firefox (or it’s Mac only cousin Camino) that have their Mac native versions and even on Internet Explorer without going anywhere near a Windows machine via VMware Fusion/ Parallels or Boot Camp. Think small is beautiful? Take a look at Apple’s Dashcode, a tool dedicated for development of nifty web widgets.

The Ruby on Rails (RoR) community has taken to Macs in a big way – infact all “core” Rails team members use Macs! This is down to the relative ease of installing (and running) a wide variety of databases (MySQL, PostgreSQL, SQLite etc) and web servers (e.g. LightTPD) on a Mac as well as the emergence of a text editor called TextMate that has RoR specific “bundles” which make development a breeze. Ruby on Rails comes pre-installed on all Macs.

Java
Java is both a strong development environment for the Mac in terms of the tools available and also a way for developers to bring their applications to the Mac platform. In terms of IDEs you are spoiled for choice with popular tools like NetBeans and Eclipse vying for place on your Desktop. Many popular cross-platform applications like Azureus and Oracle SQL Developer found their way to the Mac thanks to it’s strong Java support, which makes it easier for developers to port their Java applications to the Mac.

One thing to note for Java Developers is that all Java updates for the Mac are published by Apple and not Sun, as it does for other platforms. This means that often there is a slight lag between the time a major Java version is available for, say, Windows and Mac.

Unix
Mac OS X is a full POSIX complaint system, meaning you can do on on the Mac pretty much whatever it is that you can do on your favourite Unix/ Linux flavour. So go on use your favourite *nix tools (awk, sed etc.) and write shell scripts for your favourite shell – Korn (ksh), Bourne (bash) etc. You have the advantage of using powerful graphical text editors like TextMate, BBEdit, TextWrangler and others for writing/ editing your scripts if vi and emacs give you the creeps!

While not restricted to the *nix platform, both Perl and Python have strong *nix underlying philosophies. Mac OS X comes pre-installed with both Python and Perl. Affrus is a popular Perl IDE offering integrated and debugging support.

Oracle
Oracle developers can get the Oracle client that allows them to connect to Oracle databases from their Mac. Or you can make your Mac into a database server by installing the Oracle server for Mac. Though there isn’t quite a TOAD (a popular tool on the Windows platform) equivalent for Mac in terms of the sheer volume of features that TOAD provides, Oracle’s very own SQL Developer and a third-party Mac native application called SQLGrinder are more than able deputies.

C/ C++
Mac OS X developer tools include gcc which you can club with your favourite IDE/ text editor to get a first class C/ C++ development experience. As far as libraries and code portability are concerned, your development experience would be comparable to that of developing on any other *nix flavour.

Windows
I am sure this is one sub-category that you never expected to see here. Truth is, however, you can use .NET Studio and whatever else it is that you use on your Windows machine, exactly the same way on your Mac to develop native Windows apps! This thanks to VMware Fusion/ Parallels that allow you to work seamlessly with Windows apps within Mac OS X, or Apple’s Boot Camp that allows you to dual-boot between Windows and Mac OS X.

iPhone
Though you can develop web applications or widgets for the iPhone on any platform, if you are planning to build “real” applications that use the underlying OS technologies, you’ll need to develop via the iPhone SDK. The iPhone SDK, as of writing of this article, requires Mac OS X Leopard and does not run on Windows or any other platform. As part of the SDK iPhone developers gets the same set of tools as their Cocoa counterparts – Xcode, Interface Builder and Instruments – as well as an iPhone Simulator, to see how your application would actually behave on the iPhone.

Originally published at the CIOL developer network.

I dig the hole – and then I bitch!

For close to an year now, whenever I have tried to upload a file to any site using Safari – say attaching a file to a mail via webmail – I get this error:


“POSIX error: Invalid argument” (NSPOSIXErrorDomain:22) Please choose Report Bug to Apple from the Safari menu, note the error number, and describe what you did before you saw this message."

I have invariably moaned “Darn Safari” and switched to Firefox or Camino to upload the file and come back to Safari to continue browsing, without bothering to do anything about the problem except maybe hoping it would be “fixed” in the next release. Never so much as “Googling” the problem, which is so unlike me. Until today, which is ironical considering I switched to Firefox 3.0 beta sometime back, which is awesome btw.

I thought I would file a bug-report over at Apple but just before I did that, I thought I would look up the problem. And lo behold, right up there amongst the results I saw this:

That often happens when you have disabled the Safari cache… make sure that ~/Library/Caches/Safari has Read/Write permissions for you.

Sounded like something I could have messed around with because of my “caching is no longer necessary (( Network speeds are high enough not to warrant Internet caching by individual users. ))” belief:


~/Library/Caches lfc$ ls -l Safari
lrwxr-xr-x 1 lfc lfc 9 Aug 3 2007 Safari -> /dev/null

For the uninitiated, that’s the surest way of ensuring that nothing ever gets written to/ read from “Safari”. Look up /dev/null for details.

Removing that link and restarting Safari solved the “problem” – Safari recreates the folder on Startup and everyone lives happily thereafter.

It’s official

Before you say, I know you can buy it in the grey market for a minor premium over the dollar price, but it’s good to know that the iPhone is finally coming to India officially.

So the “coming to Asia in second half of 2008” bit was right after all. At that time I thought by Asia, Apple perhaps means Singapore, but looks like India will be the first Asian country to get the iPhone! Unless some operators have deals ready to be announced for other countries, which can’t be ruled out.