Below you will find pages that utilize the taxonomy term “Apple”
From Java to Swift
Ever since the public beta of OS X I’ve been meaning to get around to learning Objective-C but for one reason or another never found a real reason to. I’ve picked up bits and pieces of it and even written a couple of working utilities but those were pretty much entirely copy/paste from various sources. Essentially they were small enough and short-lived enough that I only needed the barest grasp of Objective-C syntax and no understanding of the core philosophies and idioms that really make a language what it is. This is probably best exemplified by the approach to memory management those utilities took: it won’t run for long, so just let it leak.
New Mac Setup
Transitioning to a new Mac has always been a very smooth experience – the first run setup offers to migrate everything for you and generally it gets everything right so your new Mac comes up looking just like your old one.
Recently I’ve acquired a new MacBook Pro with Retina display and decided that after all these years of migrating everything over I’d set up from scratch. Mostly just to make me consciously choose to reinstall things instead of a heap of cruft coming across automatically which I don’t actually use anymore.
OS X Lion: iCal Repeatedly Asks for Google Calendar Password
The one problem I’ve found when upgrading to Lion is that suddenly iCal couldn’t sync to my Google Apps Calendar account – instead it repeatedly asked for the password. I’m still not really sure what caused this, but my solution was to simply delete both ~/Library/Preferences/*iCal* and ~/Library/Calendars. You really only want to do that if you exclusively use Google Calendar. If you have local calendars deleting ~/Library/Calendars will delete them.
Apple-Scented Coffee Beans are Accurate
So Apple have announced that they will be contributing large swaths of code to the OpenJDK project and that from Java 7 onwards, Java will be a separate download from Oracle, much like Flash is now a separate download from Adobe. This really shouldn’t be unexpected for anyone who was paying attention to what was going on rather than just running around thinking the sky was falling.
This is fantastic news for Java developers of all types. Mac Java developers have been asking for Java to be separated from the OS for many, many years so that multiple versions of Java are more manageable and especially to decouple Java releases from the OS release timeline.
On the DVD vs in Software Update
James Turner gives a week in review and mentions the deprecated Java on OS X issue1{#footlink1:1288187415254.footnote}. One thing to correct:
Deprecation basically means that neither package will be delivered as part of the installation DVDs, and updates will not come via the Apple update mechanisms. It doesn’t mean they won’t be available anymore, it just means you’ll have to download them directly from Oracle and Adobe. Firstly, there’s nothing to suggest that Java won’t come from Apple but not be part of the standard OS X package.
Reading the Apple-Scented Coffee Beans
It’s interesting to see how many people are jumping to conclusions around the very carefully worded deprecation notice for Java in OS X. Read it carefully and pay careful attention to what it actually says:
As of the release of Java for Mac OS X 10.6 Update 3, the Java runtime ported by Apple and that ships with Mac OS X is deprecated. Developers should not rely on the Apple-supplied Java runtime being present in future versions of Mac OS X. Most notably the note only refers to the Apple ported JVM that ships with OS X. This leaves the door open for an Apple ported JVM that ships as a separate download and for a non-Apple JVM that ships with OS X.
Why The iPhone Has Succeeded
Remember that, at its core, the iPhone offers not a whole lot more than a phone, browser, camera, iPod and GPS. Which, ok, is kind of impressive. But not truly differentiating, Apple’s acknowledged strength in user experiences aside. As good and smart as Apple is at design – and they are very, very good – they’re never going to be as good and smart as everyone else. We see this in the enterprise world frequently, where vendors that foster an ecosystem succeed and those that don’t, well, don’t. But we haven’t seen too many examples of this play out in the consumer world yet, which is one of the reasons the iPhone is such an interesting platform. With the App Store, Apple’s attempting to cement its role with a community play.
Support Sells
In theory I could have been disappointed. After all, my visit didn’t fix the problem at hand, my expensive laptop seemed to be good as a door stopper, and repairing this thing could potentially be less advantageous than just buying a newer unit. Yet, as I arrived home, I told my wife that my next laptop would definitely be an Apple.
The reason for this is that I saw a genuine effort to help me out, an unheard level of care for the customer and an willingness to do what’s right, even if it costs the company some money. The whole experience was very positive and I felt that the premium cost of Apple’s products is easily justified by this kind of support.
Loading PICT Images In Java
Since the search function for Apple’s mailing lists is pretty much useless, I’m making a note of the Reading PICT Images thread which contains numerous options for rendering PICT images in Java on OS X.
Neat Looking iPhone HTML UI Framework
iUI looks like a promising library for making the development of iPhone webapps much simpler. Worth keeping an eye on since there’s no barrier to entry for iPhone webapps unlike with native iPhone apps.
On Mobile NetNewsWire
Brent has an excellent post up about his experience developing NetNewsWire for the iPhone and he manages to say what I tried to yesterday before I got caught up listing my frustrations with Mobile NetNewsWire:
I’ve always worked in public or semi-public: release, listen to feedback, release, listen, repeat forever. I worked this way for years UserLand. All of NetNewsWire was developed this way, beginning with the very earliest betas of NetNewsWire Lite back in 2002.
Open Questions For The App Store
Paul Kafasis has some good questions around how the iPhone App Store will work. I found the last one interesting though:
What about other pricing concerns?
Currently, we have a coupon system in our store, we can offer upgrade pricing for users who’ve purchased old versions, we can offer volume discounts for large purchases, and much, much more. All of these things, and more, help our bottom line. We’ll want to do them with iPhone Apps, but will we be able to? and the final comment:
Revisiting Java on the iPhone
Around the time of the iPhone’s initial release, I wrote:
It’s this popularity of Java in the mobile phone world that makes the lack of Java on the iPhone seem so odd to me. I can understand Apple wanting to have complete control over the iPhone interface, and I’ll concede that most of the existing games for mobile phones probably wouldn’t translate very well to the keypadless iPhone, but it will be interesting to see if Apple can satisfy the great desire for cool little mobile games that today’s teenagers, a key market segment for the iPhone, without leveraging the existing knowledge mobile games developers have in Java. Turns out I was completely wrong. Teenagers don’t give a damn about those gimmicky little games on their mobile phones, they just use them because they’re there. The iPhone’s coolness factor and the built in iPod is all that matters. Even wandering around Australia (where iPhone’s aren’t yet available) with my iPhone, lots of people asked about browsing the web, the iPod etc but not a single person asked about games (and yes, I do know quite a few teenagers who were doing the asking but still nothing about games).
Droplets With Automator
Automator is a cool little app that comes with OS X that makes it much, much easier to programmatically control the various applications on your computer (all the good ones anyway). It’s all done by dragging and dropping actions into a workflow – the output of one leads to the input of the next. In Leopard, Automator got a big upgrade so it can now handle loops and variables but most of the time you don’t need them.
iPhone SDK
So the iPhone roadmap looks very promising. The enterprise functionality is really impressive and places the iPhone extremely well as a mobile device for corporations. The SDK has a lot of power and seems to have access to pretty much everything you’d need (there’s already an SDK for access to the dock connector). Even things like instant messaging and VOIP will be allowed, though obviously the carriers don’t want to deal with all the traffic from VOIP so it’s just wireless but that seems quite reasonable to me. I’m not sure I’d want to try VOIP over an edge network anyway…
Doable vs Shippable
All the hubbub about flash support on the iPhone highlights an interesting “gotcha” that many people fall into: there’s a world of difference between having something running and having something you can actually ship. The funny thing about software development is that it is generally much quicker and easier to solve all the “hard” problems and create the software you need than it is to polish off all the little loose ends that turn code into an actual product. It’s also surprising how many ideas that sound really good on paper turn out to actually make things worse.
Kudos To Landon Fuller
With all the complaining about Apple not having shipped JDK 6 with Leopard it’s nice that someone has actually stopped whining and started coding. So kudos to Landon Fuller for actually doing something useful. Of course, he hasn’t really gotten anywhere because porting Java is an awful lot of work, but if nothing else he’ll understand why it takes Apple so long.
It also means we can start the timer to see if the open source model can actually bring Java 6 to OS X faster than Apple can.
Java 5 on Leopard
The rumors of Java 5 being horribly broken beyond all usability on Leopard are, quite frankly, bullshit. It’s faster, has better integration with the OS, the Aqua L&F is significantly improved, it has full support for 64 bit and a huge raft of bug fixes and miscellaneous improvements. Everyone’s pointing to an uninformed rant on JavaLobby which as it’s key example actually highlights a major improvement to the Aqua L&F – the JOptionPane icons should use the application icon, not some obscure artwork that’s not used anywhere else in the system. The new dialogs actually allow you to look more like native app, not less. It’s even explained in the release notes – heck, the old implementation was probably reported as a bug against Tiger.
Moments Too Late
My first thought when I heard that the Leopard blue screens being were by Unsanity’s APE was “and that’s why only fools use hacks like that”. So it was with some surprise that I read John Gruber’s article on the issue this morning and discovered that the Logitech driver installs APE. Moments before I’d installed the Logitech driver…
Turns out my decision to do an archive and install to get rid of left over cruft from all the software that I’ve tried was a pretty wise one – I’ve had the Logitech drivers installed for quite some time, so most likely I would have run into the “blue screen of foolishness”.
Java On Leopard
I was silly enough to open my work email this morning, only to discover that the Apple Java-Dev list had broken out into the age old Java on OS X argument. First up here’s what people have reported1:
- Java 6 is not included with Leopard.
- The previous Java 6 DP which was pulled from ADC a while back does not run on Leopard.
- Upgrading to Leopard from a system with the Java 6 DP installed can cause some frustrating issues with switching Java versions.
- Apparently Java 5 is much faster on Leopard.
- Java 5 looks different with quite a few tweaks to the Aqua L&F.
- Some fonts don’t look right in Java 5 on Leopard because it uses the Sun 2D graphics pipeline instead of the Quartz pipeline. The Sun 2D pipeline doesn’t support sub-pixel antialiasing. You can override the default and there’s a few other conditions that trigger the Quartz pipeline to be used by default.
- Java 5 supports 64bit on Intel Core 2s (but not PPC). There seemed to be some problem with it when using the Java tools in /usr/bin though – can’t say I followed that discussion too carefully.
- Lots of documentation is coming, but not much is available yet.
Pretty sure that’s the Java on Leopard wrap up, the other 150 emails to the list were just the usual gnashing of teeth about Apple abandoning Java and how Apple will lose so much business if they don’t get Java 6 out yesterday etc etc etc. Of course, Apple’s doing better than it ever has before and JavaOne was full of people using Macs – without Java 6 – so it would seem it’s all just talk and insignificant numbers of people are actually leaving OS X. As a fresh twist, this time round people are talking of porting OpenJDK to OS X themselves and finally freeing themselves from the evil clutches of Apple! Apparently no one has told them that Java 6 isn’t available from OpenJDK either – it will become Java 7 and is quite some way from that yet. I think it’s a safe bet that Apple will have Java 6 out long before even a reasonable uncertified port of OpenJDK is available for OS X.
MacBook Pro Back From Service
Got my MacBook Pro back from service today, all fixed up. Total repair bill would have been $2500 if it wasn’t under warranty. So all up it took three and a half days to get fixed which isn’t too bad actually. I still think it’s a shame that Apple don’t offer guaranteed turn around, on-site support – it would make buying Macs for businesses a lot nicer, but I can understand it’s not their primary target market. I’m still impressed at how easy it was to switch to a backup machine and back – keeping a full clone of the system around is definitely a good idea.
MacBook Blues
My MacBook Pro has acquired insomnia and it’s firewire ports have given up the ghost so I’ve had to part with it while it gets repaired. It’s always annoying when problems emerge with new things, particularly when you depend on them to get work done, but it hasn’t worked out too badly. With Carbon Copy Cloner I backed everything up before putting the laptop in for service and commandeered the mac mini we have for testing so I’m up and running like normal – just a lot slower and with a tiny fraction of the RAM.
Followup To The Myth Of Cocoa Apps
A while back I took Paul Stamatiou (and by proxy, VMWare) to task about their claim that Cocoa makes them so much more efficient. My take was that it was a Cocoa vs Carbon argument and VMWare employees came rushing to explain that it was actually a Cocoa vs Qt argument. Kudos to them for being in touch enough to join the debate, I had to log a support case with Parallels to get their side. Unfortunately, the point stands that users shouldn’t care what framework an application is used in – I certainly had no idea Parallels used Qt.
The Myth Of Cocoa Apps
There’s this myth that’s existed ever since the beginning of OS X – that Cocoa apps are automatically better than any other type of application. They use less RAM, run faster and are just all round better – you can’t dispute it. If you take a lousy carbon app and rewrite it in Cocoa it will become amazing and all it’s problems will be solved.
This is of course, complete and utter bull.
Converting A Partition Between Bootcamp and OS X
I play with OSs a bit, so a when I get my new MacBook, I obviously installed Windows via bootcamp. Later, Apple released something under NDA which also required a dedicated disk partition (for arguments sake, let’s call it Leopard), so I installed it over the top of my bootcamp partition.
Of course, one you reformat a bootcamp partition, Bootcamp assistent refuses to do anything with your system making it impossible to reinstall Windows. You can however fix this quite easily with the diskutil command line utility, without needing to repartition. Just reformat the drive as MS-DOS FAT32.
No Signed Applets For Windows Safari
It turns out the root cause of the problems I was seeing with Safari on Windows is that it simply doesn’t support signed applets. That’s pretty sad really. Apple seem to have implemented their own Java plugin instead of using the one that Sun provides (they’re using the Sun JRE via their plugin) and of course it’s missing most of the features you’d want from a Java plugin.
I’ll report it to Apple officially just as soon as someone fixes the bug reporter – it’s currently down. Perhaps there are too many people logging bugs against the new Safari and Leopard builds….
Two Finger Scrolling Rocks
Every so often something comes along that completely changes the way I use a computer. My new MacBook Pro has provided one of those: two finger scrolling. The concept is just so simple; to move the mouse you slide one finger across the track pad, to scroll you slide two fingers across the track pad. You can scroll vertically or horizontally so it beats a scroll wheel mouse hands down.
Here We Go Again, aka Java 6 On OS X
A new release of Java, a new wave of people saying they won’t buy Macs unless Apple get their Java update now, dammit now! John O’Conner joins the chorus. Of course, there’s no mention of why he needs Java 6 instead of Java 5, just that he has to be up to date with the very latest. Last time round at least people were eager to use generics and other new language features, but there’s really not that much that changed in Java 6 outside of a few specific cases.
The Killer Java Application?
In What does No Java on the iPhone Mean? (and the follow up More on Java and the Mac) James Duncan Davidson looks at why Apple haven’t added Java support to the iPhone. In particular he claims there’s no killer application made with Java. In the strictest sense, that’s probably true, but there is a killer category of applications which are almost exclusively made with Java – games for mobile phones.
It’s this popularity of Java in the mobile phone world that makes the lack of Java on the iPhone seem so odd to me. I can understand Apple wanting to have complete control over the iPhone interface, and I’ll concede that most of the existing games for mobile phones probably wouldn’t translate very well to the keypadless iPhone, but it will be interesting to see if Apple can satisfy the great desire for cool little mobile games that today’s teenagers, a key market segment for the iPhone, without leveraging the existing knowledge mobile games developers have in Java. If the iPhone takes off it won’t be a problem, similar to how there are a huge range of iPod specific accessories, there will be – if and when Apple make it possible – a huge range of iPhone specific games and add-ons.