Brandon Werner

Archive for the ‘OSX’ Category

Apple Safari 3 Tries To Convince People Not To Use Google as Homepage

Wednesday, June 13th, 2007

Safari Prompting When Setting Google as Homepage

Google has been pretty sensitive to Microsoft integrating things in to their operating system that might, even in the slightest bit, cause people to feel some barrier to using Google technology in their browsers. In that light, I can’t imagine what Apple was thinking when they decided to include this helpful prompt asking if you are really really sure you want to make Google your homepage if your homepage happens to be something else. This isn’t even a generic warning about moving a homepage either, it mentions Google specifically.

To reproduce this at home follow these steps:

  • Set your homepage in Safari 3 Beta to www.nytimes.com or any other site
  • Close your preferences
  • Go back in and try to set it to Google.com
  • See this message: “Are you sure you want to switch your home page to Google search? You can do a Google search directly from Safari’s search field without going to Google’s webpage”

For Google, who try to make themselves the homepage of choice through their iGoogle initiative, competing directly with other portal providers, this must be a nightmare prompt from their friends at Apple.

I’m certain Apple meant no harm in adding this prompt, but how much do you want to bet this doesn’t make it in to the final release?

How To Install Haskell Haddock on Mac OS X

Sunday, June 10th, 2007

If you’re scratching around trying to find out how to compile Haddock after getting the source, especially if you are using the awesome EclipseFP plug-in for Eclipse which has it’s use integrated inside the IDE, here are the steps:

First, ensure you have Glasgow Haskell Compiler installed, obviously. It has a OS X binary port and I like it over HUGS.

Second, you should really have Happy and Alex installed as well, as the build will look for it, and they are good to have, but will work fine without it.

from your unzipped directory:

$ ghc -o Setup Setup.lhs -package Cabal
$ ./Setup configure --ghc --prefix=${prefix} --enable-library-profiling
$ ./Setup build -v
$ ./Setup copy --copy-prefix=/usr/local/

Of course, /usr/local could be wherever you want the executable and libs to be installed. It has a /bin and /share.

After this step, you should be able to run Haddock documentation extraction from the Eclipse IDE. If you’re curious how Haskell looks in Eclipse with the EclipseFP plug-in, here it is:

Haskell Eclipse Thumbnail

With module support and outline expansion, it still takes heavily from the OO world (it doesn’t keep this updated if playing with the shell, for instance) it’s still somewhat nice to keep things organized. Of course, the IDE paradigm changes substantially when you are talking about lazy dynamically typed call-by-value languages. Still, for a round peg trying to fit in a square hole, it’s ok.

I still perfer the Haskell editor in the incredible TextMate, however.

Vertical Quality And McNealy: Why Apple, Sun and Google Have It Right.

Monday, April 24th, 2006

I have always had to defend my love of the vertical markets, especially to the hortizontal dominated business world. However, in The Register’s send-off for the departed Sun Microsystem’s CEO Scott McNealy, the commentator made an economic comment that hit me so square between the eyes it summed up the entire reason for the need of there to be an Apple, Google, and other one-integrator strategies that have recently come back in to vogue.

Wall Street had long waged war against McNealy’s insistence on Sun as a vertically integrated systems company: one that produces a finished widget. Financial markets prefer to see horizontal vendors, exemplified by Wintel and Dell, because they squeeze the costs out of a business. In reality, the costs are simply transferred elsewhere, usually to the customer in the form of integration woes, shorter buying cycles, and lower reliability.

Think of that when you buy a $500.00 Gateway from Best Buy. It is true that the majority of people who read this blog are the technological heavy-weights, and might not believe they feel all the integration cost and reliability issues that come from the Windows (Is it really Wintel anymore?) ecosystem. However, I don’t go a day without someone complaining about some lost productivity do to their Windows XP workstation, and these are some of the smartest people to be had in a workforce. Coming home to (and using at work when possible) Apple technology has always created longing looks when I show the one step .Mac sync or the bluetooth pairing for my HID devices, or even my ability to direct music to any stereo in my house with one touch.

It’s the same thrill a Google user gets when he shows how his multiple calendars can be subscribed to, synced to his mobile and integrated with his mail. Things that Just WorkTM and Just Work because it’s vertical and integrated. Despite your valid concerns about lock down and other nasty things, the fact remains that as these devices become commodities the network becomes more important and the devices themselves have such a low barrier to entry that one moment you can be iPod + iTunes and the next be Creative + Napster. But, the returns diminish when you become Creative to any music service or Napster to 30 devices.

The same theory extends even to other business markets. A year ago Wired ran an article entitled “The Decline of Brands” stating that because of the more price conscious consumer and knock-off discount brands, that the quality that a large company like Proctor & Gamble implied in it’s Vertical brand strategy would diminish. This is true, but it doesn’t mean consumers aren’t more Vertical minded, in fact they are more so, just not to that level of detail. Sure you may find that a household’s Gillette Bodywash and Febreez has been replaced with Target brand labels, but chances are good they will all be from Target.

Even Java uses the Vertical Market strategy, taking Java and extending it to JEE and JME but with the same integration and quality of what is in J2SE. In the end, it’s the Vertical strategy that will win out as people become as fiercely brand loyal as they were during the American car days of the 1900s. Yes, you had to pay more for Chevy engine parts for a Chevy car, but as the dealers knew you could just as easily get a Ford the next year, prices were high but not exuberant. Also, you always knew it would Just WorkTM and get you to work on time, even if you had to pay the Vertical Market premium.

And that’s the point. Participating in Vertical Markets does tend to be more expensive up front, but the cost isn’t non-existent in the Horizontal model, it’s just more hidden. Perhaps to an America where most people live paycheck to paycheck, a cheap Creative player now may mean you can afford to pay the integration cost in the future the next time you get paid (another cable, another music service, customer support calls, syncing issues, rebuilding the library, upgrading to Vista for that “extra” media ability, ect.) but in the end, you’ll still end up paying just as much, especially if you value your time.

Sadly, before most markets move to the costlier but more quality driven Vertical process, there is always the Horizontal market before prices come down enough so that a person can switch brands, not just components. Steve Jobs and Scott McNealy are both people who never gave in to the Horizontal marketplace, never willing to give in to the quality penalty such a move would give their companies and their reputation.

They have had to live deep in to their middle-life to see it come back, but in the world of PSP, iPod and Google where entire industries have had sprung up around these Vertical ecosystems, they can finally say they never gave up on the idea of quality and integration championing the dull and the mass produced.

LispWorks Will Have Native Intel Mac Version In Q2 of 2006

Friday, February 10th, 2006

Martin Simmons of LispWorks confirmed today on the LispWorks mailing list that an Intel native version of LispWorks for the Macintosh platform will be available by June 2006.

There will be an Intel native Mac version of LispWorks 5.0, which is due in Q2
this year…We can probably fix problems with LispWorks for Macintosh 4.4 running under
Rosetta as chargeable support work. Please ask about that on lisp-support.

Many people have commented that almost all versions of Lisp (both free and commercial) have problems running on the Intel platform of Mac OSX do to signifigant problems with using Lisp through the Rosetta software program that translates PPC instructions to Intel for compatibility with applications that do not have a universal binary or Intel native product available.

Lisp is a language that ties very deeply to the kernel and the hardware of a computer, and it is not surprising that Rosetta is causing problems with Lisp developers. Among reports of problems are hanging and very slow compile and start-up times for Lisp IDEs and applications.

An un-answered question is the support for PPC and in particular Mac OSX on PPC in the future. Because Lisp is processor dependent, a universal binary (fat binary) solution is not possible, and Lisp vendors will have to actively support versions for both PPC and Intel on Mac OSX.

Given the wide use of Mac OSX in the acedemic and biomedical industries, this move was expected but previously un-released. Allegro, the other big commercial Lisp vendor, has not disclosed any plans on when it will go Intel native.

Allegro 8.0 Lisp Also Crashes On Mac OSX Like SBCL Does

Thursday, February 9th, 2006

John Wiseman sadly reports that the latest Allegro version of their Common Lisp, 8.0, which has gotten written up in eWeek and made us all proud, also crashes (not really) on Mac OSX the same way that SBCL does. This is a problem that’s going to have to be fixed, because the number of CrashReporter instances it generates on a system is unacceptable when in REPL developing.

Imagine every stacktrace spawning a 30MB process on your system each time…

I also wrote something about it as a note (read:warning) on my research project’s installation instructions. It goes:

You can use SBCL on Mac OSX from both the command line and visually, but you probably don’t want to at this moment. SBCL throws a SIGSEGV at every stracktrace, and Apple’s Crash Reporter looks for these events at the kernel level and opens a Crash Reporter process. When being used visually, SBCL will give you a dialogue box displaying this issue. However, when you run SBCL from the command line or even in the REPL in interactive mode (like you do in Emacs with SLIME), every compile will trigger an Apple Crash Reporter process. This means that after one hour of development you could have 30 or 40 crash reporters launched on your system without any visual indication. Since SBCL developers are aware of the problem, but have not patched the SBCL distribution, we do not recommend or support using SBCL in development on Mac OSX. You can still do it, but keep your Activity Viewer open.

Now it would appear the same thing is true with Allegro 8.0, but something tells me this will be fixed quick. There are a lot of scientist running OSX in the biomedical and computer science field and they are Allegro’s bread and butter.

I don’t think we’ll get the same from SBCL.

Why This MacWorld Means More To Java Developers Than Anyone Else

Monday, January 9th, 2006

Although many people have been anxious to speculate on what the Intel transformation means for Apple going forward, and what Intel machines will be released tomorrow, one issue that has not been spoken about as much is what the Intel transformation means for Java developers. It’s no secret that at any JavaOne or geek conference you attend, what would have been a sea of standard Dell laptops around 2001 are now, just five years later, a sea of glowing apple logos from Powerbooks.

The reason for this transition is simple: Apple provides developers with the best of both worlds. You can develop and set up your XML files, CLASSPATH entries and config files on Mac OS X and create a perfect build environment that can be moved over to whatever Linux or AIX/Solaris platform you are deploying on with absolutely no extra steps. Developing in Mac OSX for UNIX deployment really is WYSIWYG development on all levels. This can’t be said for Windows, which because of it’s 1980s Win32ness (which shows no signs of changing in Vista) requires a build environment totally different from where most apps will be deployed. This requires large migration efforts and usually results in the local development environment and the QA / Production environment always being out of sync.

In the other world, Apple also allows developers to plug easily in to the business side of their work life, with Microsoft Office, Adobe Photoshop and other large business applications (not to mention you can always fire up World of Warcraft in your hotel room for some down time with your favorite night elf friends). These benefits for the developer even drawf the other large strengths of Mac OSX, such as it’s state of the art Quartz rendering, open source friendliness, and gorgeous UI.

The deal seems too good to be true. For the last few years, it has been.

The dirty little secret is that Apple has been using the JDK to force upgrades to it’s latest operating system, and Java developers have had to give in to the very Microsoft tactics of Apple in order to continue to be relevant when developing applications. Further, as Dmitry from Creo (recently purchased by Kodak) recently commented to me, those companies that make Java applications that run cross-platform (including the Mac) can’t be certain if their users are using the latest JDK. Also, since they can’t legally install the new Apple JDK on their client’s computers that may not have the latest OS (think about that for a minute, this is Java we’re talking about), they can’t use JDK 5 features even if they wanted to. The write once / run anywhere benefit of Java couldn’t be stopped by Microsoft, but seems to slam in to a Sun approved brick wall with Apple and holds all Java client apps that want to be truly cross-platform without uprgrade to the JDK 1.3 level (Jaguar).

If you install the JDK 5 distribution available from Apple’s Developer Connection website, the installer will check your OS level and politely tell you that the JDK 5 update is only for Tiger users. There is no technical reason why this is the case, as many developers who choose not to upgrade their operating system simply use the excellent Pacifist application to install the JDK without going through Apple’s OS test. Apple’s JDK update simply installs the latest Java JDK in /System/Library/Frameworks/JavaVM.framework/Versions/, updates the symbolic links and goes away. The fact that there is no difference in how Java was distributed between Tiger (10.4) Panther (10.3) and even Jaguar (10.2) shows how transparent and deplorable this restriction is.

Needless to say, Java developers who moved to the Mac platform have been taken aback by the fact they don’t have a redistributable platform, the very definition of Java since it’s inception.

Luckily, Apple is slated to lose control of their PowerPC built, invitation-only JDK distribution with the release of Intel based Macs. Since OS X will run on the x86 instruction set, the JDK work that is often hardest to port (threading, “Little Endian” vs. “Big Endian”, ect.) will become mostly transparent between linux and os x compilations going forward. Either Sun will make an x86 Mac JDK with Apple’s consent, or Apache will make one without their consent. The differences at the architecture level should be minimal, although file system integration and other important things will still require at least some work.

Apple seems to know this, as they have done to Java what they do to most third party environments when they know they can’t control them anymore, they drop their own internal work on it and leave it for the vendors to do. They have abandoned the Java-Cocoa bridge, they have given the amazing WebObjects framework over to the public for free, and are minimizing Java over Objective-C in their Xcode feature development (I will be shocked if Xcode 3 even has Java in it). Once a large bullet point on the advantages of using Mac OSX, now Java is seen as something that Sun and IBM can do much better on Mac OSX than Apple can.

All of this is great for the Java developer, who will finally get the platform that OS X seemed at first to be.

Quickly: Conversation on EJB3 continued, Mac Love, Wordpress 2.0

Friday, December 30th, 2005

Good conversation between Gavin King (inventor of Hibernate & EJB3 spec) and myself regarding my article on Java Lobby. He takes me to task on arguing to leave JBoss and JEE more open to disruptive technologies like Hibernate was.

Also, I’ve been busy moving all my code and environment over to my new iMac G5 I got myself for Christmas. I have been using Powerbooks for two years now since a lot of my work takes me all over and I needed a powerful system to follow me. However, considering it might be nice to have a dedicated desktop system to use when at home, I decided an iMac G5 was just enough of an investment to last me till the Intel chip switch (investing in a PowerMac at this point without seeing the Intel benchmarks would be a lot of money invested in an old platform). The Apple Store at Kenwood Towne Center did give me an (unintentional?)free upgrade that I didn’t want by giving me the iMac G5 with the wireless keyboard and mouse ($89 extra at Apple Store online). Unfortunately, I didn’t want this option because I was looking forward to getting the Mighty Mouse included for the right mouse click. Yes, I know they are generally bad and I do have a two button MS mouse, but I at least wanted to give it a go. I’m not certain if they were out of Might Mouse iMacs or if it was a packaging error (the employee scanned the box, the additional cost was not there).

If anyone doesn’t know about Apple’s excellent online service yet, .Mac, it is truly an incredible synchronization technology that is woefully missing on the Microsoft platform despite their attempts to do something like it in MSN. I moved all of my important documents, keynote presentations and code projects I wanted to be transparent across my Powerbook and iMac on to my Apple provided 2 GIG iDisk and told both to synchronize but keep a local copy (for speed). Also, .Mac synchronizes all of your calendar entries, address book entries, email, bookmarks, keychains (passwords and forms for the web and drive shares) and other system settings between the Powerbook and the iMac seamlessly. If you code on the iMac for two days, add lots of code to the project, and then open your Powerbook.. there is your code on the Powerbook. Same with an appointment you add to your Powerbook during a meeting, as soon as you go home and log in to your iMac.. there it is.

I knew it did this in theory but I had never before used it to keep everything in sync. It works wonderfully. (Both Mac OSX 10.4 Tiger, your mileage may vary).

It is a platform in itself, with the latest .Mac SDK 2.0 (Developer Preview 2) just released, which allows third party providers to write to this sync technology. Transmit, a great graphical FTP application, uses this SDK so that your list of FTP sites (and username / passwords) are updated between your computers - directly in the application - so that as soon as you launch Transmit the new FTP sites you may have added on your Powerbook now appear on your iMac. NetNewsWire also uses this to keep your RSS feeds synchronized across Macs, even keeping track of which articles you’ve read and which you have not. It’s not hard to imagine the other great applications using this technology.

Also, IntelliJ Idea on the Macintosh platform is a joy, although people should be wary of Apple’s latest J2SE 5.0 Release 4 Developer Preview 3 that appeared on the developer site two weeks ago, it seems to have some Swing bugs on redraw. I’d stick with the Apple J2SE 5.0 Release 3 for now.

Finally, I upgraded the site to Wordpress 2.0 two days ago. If you didn’t notice, it’s because it took 5 minutes (plus about 30 minutes to re-apply my stylesheet and code modifications I made to the old site). Wordpress has made the upgrade very easy, but for a 2.0 release the feature-set has not been added to greatly. However, a lot of the changes are under the hood and the site does appear faster. It even includes the AJAX goodies all web apps must have these days, but they are mostly just visual candy. For instance, when you delete an item the list fades to red and then disappears. Wooooo. Ahhhhh. Pretty!

The best things are to come in the future to be certain, when the plug-in developers begin working with the new 2.0 API. However, if you are holding off on upgrading to Wordpress 2.0 on downtime concerns, it’s not really an issue.

Hey Gosling: This is why we don’t use Java 5.0 yet!

Tuesday, December 20th, 2005

Whenever there is a major JDK update everyone on the Sun Microsystems side seems to love to beat the drum of upgrading. This leaves developers in a situation where they love the new features of the new JDK but quickly find out the rest of the world isn’t so quick to follow them. Recently, even James Gosling argued with developers about moving to JDK 5.0, stating that, “Don’t wait for a .1 release… We’re not going to do it because 5.0 is very stable. Don’t wait just get the .0 release.”.

Worse, the platform of choice of Java developers, Apple Mac OSX, has just released a new update to their J2SE 5.0 Developer Preview that finally changes that magic symbolic link to make JDK 5 perferred (before you had 5.0 but all apps ran 1.4.2 by default).

Well, after having just got burned again by coding to JDK 5 with the StringBuilder, the autoboxing, generics and the printf() for a friend only to find out the deploy envionment doesn’t support JDK 5 yet, and having to spend two days changing by code, (and feeling the pain I cringed at after reading Kirill Grouchnikov’s entry on Java.net in July ) I created the following list of things that must occur before people stop coding in JDK 1.4.2:

1. Sun’s own tools, such as NetBeans, Studio Creator, and Enterprise Studio must not ask for a JDK 1.4.2 or refuse to install and in the future, they should not recommend people upgrade their JDK UNTIL Sun’s tools themselves can at least run with the latest JDK, not a year after the JDK’s release.

2. All third-party vendors that have shared VMs across their Tomcat hosting systems, such as GoDaddy.com, must give us good information on what JDK is installed and when it will be upgraded.

3. Someone must write a NetBeans or Eclipse plug-in to reverse all trivial JDK 5.0 uses such as auto-boxing and StringBuilder. Don’t write, I know IntelliJ already does this and provides intentions to correct this, and that is why all my opensource and professional development uses IntelliJ and provide licenses to others who work with me. Also, I am aware of RetroWeaver, but I’ve heard it’s success is uneven.

Until these things happen, I’ll just have to write to JDK 1.4.2 and try not to think how easy .Net developers had it when upgrading to the recently released .Net 2 Framework. Yes, Java runs everywhere, but not evenly.

Opensource Project JavaPress, approved by IntelliJ!

Monday, December 12th, 2005

Powered by IntelliJ Well my fellow PressHeads, it looks like IntelliJ finally came through for us and approved our project as a worthy of the coveted IntelliJ Open Source Prize and gave us our open source IDE license. JavaPress, for those who don’t know, is a… “is a content management system that runs in a Jakarta Tomcat container with AJAX additions.”

Thanks to everyone who helped and thank you to IntelliJ for approving us and giving us thousands of dollars of software for free! Yes, IntelliJ, you can revel that your logo is squarely in the pages of NetBeans territory, Sun’s java.net!

NOTE: Yes, as many of you will chuckle, on the JavaCast (before I was replaced by a Sun guy and a Google guy) I said in front of 40,000 listeners that IntelliJ was a bare-bones IDE, leading to an uprising in St. Petersberg, Russia that was amazing (not to mention the vocal IntelliJ fan base, about as ravid as the Apple fan base of which I am a part). So, I deicded to download it (we also interviewed IntelliJ’s Rob Harwood) and the more I used it the more I migrated projects to it, in a “well, let’s see what IntelliJ will do with it” kind of thought process. I also got to know a lot of the IntelliJ folks pretty well, and their passion is pretty amazing. Now, I have to admit IntelliJ is the best IDE out there, and I don’t see anyone coming close to the speed or joy that using IntelliJ inspires. Yes, it’s not free. However, it is worth the price.

Also, when I interviewed Bruce Tate from Beyond Java fame (before it was released.. what a scoop!), we talked at length about IntelliJ as well.

Enable “Safe Sleep” Mode On Your Powerbooks and iBooks

Wednesday, November 16th, 2005

Powerbook Safe Sleep Progress Bar Demo No hardware upgrade needed! I found Matt Jonhson’s post, via Daring Fireball, that showed you how to enable Apple’s new Safe Sleep mode (known in the Windows world as suspend to disk or hibernate) that Apple has locked to operate ONLY on the latest Powerbooks. Well, if you have any Powerbook or iBook made from 2003 on, and you have OSX 10.4.3, then you can also enable this! I did this on my Powerbook 1.25 GHz Aluminum just to test it and it seems to work great!

Read the article and download the scripts here.

From the Apple KnowledgeBase article:

“The progress bar indicates that the PowerBook is waking from Safe Sleep. Safe Sleep ensures that data stored in main memory will not be lost should the system shut down due to a loss of power during sleep mode. Prior to your system entering sleep, Safe Sleep automatically saves the contents of main memory (such as desktop settings, open applications, and other work in progress) to the hard drive. In the event the battery becomes completely depleted while the system is asleep, the computer will shut down. But when a power adapter is connected or a freshly charged battery is installed, the PowerBook can be restarted and it will automatically return to the desktop state that existed prior to entering sleep. This means that applications and files will remain exactly as they were prior to the system being put to sleep, making it easy for you to continue on with your work.”