TweetFollow Us on Twitter

Mar 02 Mac OS X

Volume Number: 18 (2002)
Issue Number: 03
Column Tag: Mac OS X

What's So Funny About Peace, Love and Mac OS X?

by Andrew Stone

One of my favorite riffs is why Apple is so freakin' groovy and it begins something like this: Once upon a time there were two young men in their garage and they dropped some... Well, you know that part of the story - the light shined bright and I think George Harrison was playing. And as Patti Smith sings "This is an era where everyone creates!" And this has come to pass with the help of personal computers, with many of the innovations coming from Apple (and NeXT). The rest of the industry largely copies what Steve Jobs & Co. do! Even the digital hub concept is being ripped off by Intel - they had a full page ad in USA Today the day after Steve introduced the new iMac. MacWorld Expo this year marked the transition into OS X - all new computers are shipped with OS X as the default operating system. One of my favorite parts of the keynote was "a moment of musical tribute" to the late great George Harrison, reminding us of our roots and gratefulness to the visionaries that have come before us. Sales of the new iMacs have been phenomenal, and complementing this hardware renaissance, Cocoa is bound to create a software renaissance.

Running a booth at Expo is both exhausting and exhilarating, but is an essential counterpart to being a software hermit. Meeting your customers, giving demos that really excite people, and making impulse sales are all part of what makes a show invaluable. But what really makes it all worthwhile is the occasional random, ghost-in-the-machine, basic Apple Magic encounters. On Thursday, a rather Tolkien looking fellow ambles up to me and says ‘Hey Andrew, here's an invitation to a party we're throwing!' He has an Apple employee badge, so I'm all ears. He hands me a big linen envelope. Thinking of my comrades, I asked for, and received 3 more. "The Gay Blade and the Naked Mole Rats present..." - hmmm, definitely a little edgy, and it starts before the ‘The Party Formerly Known As ... (The Knife's Last Call). Running in to an old friend who was recently hired by Apple to promote unix ports, we have an impromptu Thai dinner with a bunch of old NeXTSteppers, WebObjects guys, the original Darwin dude, and a guy from Sun who is looking for people to work on the OS X port of Open Office (www.openoffice.org). Only two guys join me for the parties, but we are rewarded mightily!

We find the venue in a back-alley south of Market watering hole where there's an open bar with a decent microbrew, and a very famous band (at least in the rock and roll accordion world) takes stage. ‘Those Darn Accordions' - http://thosedarnaccordions.com/index.htm is a very original and humorous band featuring 3 accordionists, and they totally rocked the house. It turns out I had been invited to a very exclusive Mac insiders party: a veritable who's who in the old time Mac community! During the set break, the band's lead singer, Paul Rogers, turns the audience into the performers. He's a total Mac user, and he breaks out a long list of questions of obscure problems he's had with his Mac, and he wants the audience to answer the questions. One by one, the world's Mac experts crack his questions, and it's a joy to watch our collective knowledge in action.

Finally, he comes to a question - "Mac OS X is on my disk, and its taking up space. What should I do - Nuke it? What's it good for?"

In the spirit of the moment, I jump up on stage, grab the microphone, and say, "I can speak to that. I've been developing with Mac OS X's "new" development environment, Cocoa, for 12 years. I shipped my first app in 1989 on the NeXT, and followed the vision of object oriented software without losing faith, and now have 10 applications shipping for OS X. First - those problems that you've been having on your Mac - most of those (init conflicts, memory issues, crashes) would totally disappear on OS X. Second, we are at the beginning of a renaissance - it was announced at Expo that Apple would be shipping the entire Developer CD with every computer. Who knows where the next killer app will come from?

Cocoa gives tinkerers the ability to write fully integrated OS X software. To give you an idea of Cocoa's power, you can build a word processor that has multiple fonts, rulers, colors, ligatures, baseline, justfication, kerning, full undo, printing, spell-checking and even drag and drop of 30 graphic formats in just 8 lines of code! Putting the development environment into the hands of the users is extremely healthy for the biodiversity and future of OS X software."

Anyway - the second set was even more rocking!

Here's how to create a multi-document word processor that has support for graphics, colors, rulers, alignment, super and subscripting, baseline control, UNICODE, kerning, and it reads and writes RTF and RTFD files. The 10 lines of code are for the reading and writing - the rest is provided via Interface Builder.

  1. In Project Builder, select "New Project...", choose "Cocoa Document-based Application", and save it.
    <00_New_Project.tiff>>
    

    Project Builder creates the main menu and document interfaces, and the MyDocument subclass of NSDocument.

  2. Add the document types that we can edit to the Application Settings pane of the Target Inspector:
    <01_Document_Types.tiff>>
    

    Associate the Rich Text Format (RTF) and RTFD (with graphics) file types with "MyDocument".

  3. Add the instance variable ‘text" to MyDocument subclass - only bolded text is what you write, because the rest of the file was stubbed out by Project Builder.
    //
    //  MyDocument.h
    //  X Word
    //
    //  Created by Andrew Stone on Wed Feb 06 2002.
    //  Copyright (c) 2001 __MyCompanyName__. All rights reserved.
    //
    
    
    #import &#60;Cocoa/Cocoa.h&#62;
    
    @interface MyDocument : NSDocument
    {
        id text;
    }
    @end
    
  4. Open MyDocument.nib in InterfaceBuilder, drag MyDocument.h icon from Project Builder to add this instance variable to the File's owner (the MyDocument class).
  5. Drag in a text view from the Cocoa-Data Palette window and resize it to fill window
  6. In the Size Info, click the "Springs" sproingy so that it grows to fill the window when you resize it
  7. In Attributes Info, click "Undo Allowed" and "Graphics Allowed"
  8. Control-drag from the File's owner icon to the text view, and click on "text", and then Connect
  9. Open MainMenu.nib, and drag the Text and Font menus from the Cocoa Menus palette onto the main menu. Change occurrences of Newapplication to X Word.
  10. Fill out the read and write primitives (the unbolded part of this file was generated by Project Builder):
    //
    //  MyDocument.m
    //  X Word : a 10 line Graphics Enabled Word Processor
    //
    //  Created by Andrew Stone on Wed Feb 06 2002.
    //  Copyright (c) 2001 __MyCompanyName__. All rights reserved.
    //
    
    #import "MyDocument.h"
    
    @implementation MyDocument
    
    - (NSString *)windowNibName
    {
        // Override returning the nib file name of the document
        // If you need to use a subclass of NSWindowController or if your document supports multiple 
        NSWindowControllers, you should remove this method and override -makeWindowControllers instead.
        return @"MyDocument";
    }
    
    - (void)windowControllerDidLoadNib:(NSWindowController *) aController
    {
        [super windowControllerDidLoadNib:aController];
        // Add any code here that need to be executed once the windowController has loaded the document's 
        window.
    }
    
    #define Whole_Range NSMakeRange(0,[[text string] length])
    
    - (NSData *)dataRepresentationOfType:(NSString *)aType
    {
        if ([aType isEqualToString:NSRTFDPboardType])
            return [text RTFDFromRange:Whole_Range]; 
        else if ([aType isEqualToString:NSRTFPboardType])
            return [text RTFFromRange:Whole_Range]; 
        // add other types
        return nil; 
    }
    
    - (BOOL)loadDataRepresentation:(NSData *)data ofType:(NSString *)aType
    {
        if ([aType isEqualToString:NSRTFDPboardType])
            [text replaceCharactersInRange:Whole_Range withRTFD:data];
        else if ([aType isEqualToString:NSRTFPboardType]) 
            [text replaceCharactersInRange:Whole_Range withRTF:data];
        return YES;
    }
    
    @end
    

Save the files, build it, test it, ship it! All you need is an icon. Or, you can grab the source from:
http://www.stone.com/dev/X_Word/X_Word.tar.gz


Andrew Stone andrew@stone.com is founder of Stone Design Corp http://www.stone.com and divides his time between farming on the earth and in cyperspace.

 
AAPL
$473.06
Apple Inc.
+5.70
MSFT
$32.24
Microsoft Corpora
-0.64
GOOG
$881.20
Google Inc.
-4.31

MacTech Search:
Community Search:

Software Updates via MacUpdate

VueScan 9.2.23 - Scanner software with a...
VueScan is a scanning program that works with most high-quality flatbed and film scanners to produce scans that have excellent color fidelity and color balance. VueScan is easy to use, and has... Read more
Acorn 4.1 - Bitmap image editor. (Demo)
Acorn is a new image editor built with one goal in mind - simplicity. Fast, easy, and fluid, Acorn provides the options you'll need without any overhead. Acorn feels right, and won't drain your bank... Read more
Mellel 3.2.3 - Powerful word processor w...
Mellel is the leading word processor for OS X, and has been widely considered the industry standard since its inception. Mellel focuses on writers and scholars for technical writing and multilingual... Read more
Iridient Developer 2.2 - Powerful image...
Iridient Developer (was RAW Developer) is a powerful image conversion application designed specifically for OS X. Iridient Developer gives advanced photographers total control over every aspect of... Read more
Delicious Library 3.1.2 - Import, browse...
Delicious Library allows you to import, browse, and share all your books, movies, music, and video games with Delicious Library. Run your very own library from your home or office using our... Read more
Epson Printer Drivers for OS X 2.15 - Fo...
Epson Printer Drivers includes the latest printing and scanning software for OS X 10.6, 10.7, and 10.8. Click here for a list of supported Epson printers and scanners.OS X 10.6 or laterDownload Now Read more
Freeway Pro 6.1.0 - Drag-and-drop Web de...
Freeway Pro lets you build websites with speed and precision... without writing a line of code! With it's user-oriented drag-and-drop interface, Freeway Pro helps you piece together the website of... Read more
Transmission 2.82 - Popular BitTorrent c...
Transmission is a fast, easy and free multi-platform BitTorrent client. Transmission sets initial preferences so things "Just Work", while advanced features like watch directories, bad peer blocking... Read more
Google Earth Web Plug-in 7.1.1.1888 - Em...
Google Earth Plug-in and its JavaScript API let you embed Google Earth, a true 3D digital globe, into your Web pages. Using the API you can draw markers and lines, drape images over the terrain, add... Read more
Google Earth 7.1.1.1888 - View and contr...
Google Earth gives you a wealth of imagery and geographic information. Explore destinations like Maui and Paris, or browse content from Wikipedia, National Geographic, and more. Google Earth... Read more

The D.E.C Provides Readers With An Inter...
The D.E.C Provides Readers With An Interactive Comic Book Platform Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Choose ‘Toons: Choose Your Own Adventure...
As a huge fan of interactive fiction thanks to a childhood full of Fighting Fantasy and Choose Your Own Adventure books, it’s been a pretty exciting time on the App Store of late. Besides Tin Man Games’s steady conquering of all things Fighting... | Read more »
Premier League Kicks Off This Week; Watc...
Premier League Kicks Off This Week; Watch Every Single Match Live Via NBC Sports Live Extra and Your iPhone or iPad Posted by Jeff Scott on August 13th, 2013 [ permalink ] | Read more »
Meet Daniel Singer, the Thirteen-Year-Ol...
Ever had the idea for an app, but felt like the lack of programming and design ability was a bit of a non-starter? Well, 13-year-old Daniel Singer has made an app. He’s the designer of Backdoor, a chat app that lets users chat with their friends... | Read more »
Flashout 2 Gets Revealed, Offers Up An E...
Flashout 2 Gets Revealed, Offers Up An Enhanced Career Mode and Exciting New Circuits Posted by Andrew Stevens on August 13th, 2013 [ permalink ] | Read more »
Mickey Mouse Clubhouse Paint and Play HD...
Mickey Mouse Clubhouse Paint and Play HD Review By Amy Solomon on August 13th, 2013 Our Rating: :: 3-D FUNiPad Only App - Designed for the iPad Color in areas of the Mickey Mouse Clubhouse with a variety of art supplies for fun 3-... | Read more »
Strategy & Tactics: World War II Upd...
Strategy & Tactics: World War II Update Adds Two New Scenarios Posted by Andrew Stevens on August 12th, 2013 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Expenses Planner Review
Expenses Planner Review By Angela LaFollette on August 12th, 2013 Our Rating: :: PLAIN AND SIMPLEUniversal App - Designed for iPhone and iPad Expenses Planner keeps track of future bills through due date reminders, and it also... | Read more »
Kinesis: Strategy in Motion Brings An Ad...
Kinesis: Strategy in Motion Brings An Adaptation Of The Classic Strategic Board Game To iOS Posted by Andrew Stevens on August 12th, 2013 [ | Read more »
Z-Man Games Creates New Studio, Will Bri...
Z-Man Games Creates New Studio, Will Bring A Digital Version of Pandemic! | Read more »

Price Scanner via MacPrices.net

Apple refurbished iPads and iPad minis availa...
 Apple has Certified Refurbished iPad 4s and iPad minis available for up to $140 off the cost of new iPads. Apple’s one-year warranty is included with each model, and shipping is free: - 64GB Wi-Fi... Read more
Snag an 11-inch MacBook Air for as low as $74...
 The Apple Store has Apple Certified Refurbished 2012 11″ MacBook Airs available starting at $749. An Apple one-year warranty is included with each model, and shipping is free: - 11″ 1.7GHz/64GB... Read more
15″ 2.3GHz MacBook Pro (refurbished) availabl...
 The Apple Store has Apple Certified Refurbished 15″ 2.3GHz MacBook Pros available for $1449 or $350 off the cost of new models. Apple’s one-year warranty is standard, and shipping is free. Read more
15″ 2.7GHz Retina MacBook Pro available with...
 Adorama has the 15″ 2.7GHz Retina MacBook Pro in stock for $2799 including a free 3-year AppleCare Protection Plan ($349 value), free copy of Parallels Desktop ($80 value), free shipping, plus NY/NJ... Read more
13″ 2.5GHz MacBook Pro on sale for $150 off M...
B&H Photo has the 13″ 2.5GHz MacBook Pro on sale for $1049.95 including free shipping. Their price is $150 off MSRP plus NY sales tax only. B&H will include free copies of Parallels Desktop... Read more
iPod touch (refurbished) available for up to...
The Apple Store is now offering a full line of Apple Certified Refurbished 2012 iPod touches for up to $70 off MSRP. Apple’s one-year warranty is included with each model, and shipping is free: -... Read more
27″ Apple Display (refurbished) available for...
The Apple Store has Apple Certified Refurbished 27″ Thunderbolt Displays available for $799 including free shipping. That’s $200 off the cost of new models. Read more
Apple TV (refurbished) now available for only...
The Apple Store has Apple Certified Refurbished 2012 Apple TVs now available for $75 including free shipping. That’s $24 off the cost of new models. Apple’s one-year warranty is standard. Read more
AnandTech Reviews 2013 MacBook Air (11-inch)...
AnandTech is never the first out with Apple new product reviews, but I’m always interested in reading their detailed, in-depth analyses of Macs and iDevices. AnandTech’s Vivek Gowri bought and tried... Read more
iPad, Tab, Nexus, Surface, And Kindle Fire: W...
VentureBeat’s John Koetsier says: The iPad may have lost the tablet wars to an army of Android tabs, but its still first in peoples hearts. Second place, however, belongs to a somewhat unlikely... Read more

Jobs Board

Sales Representative - *Apple* Honda - Appl...
APPLE HONDA AUTOMOTIVE CAREER FAIR! NOW HIRING AUTO SALES REPS, AUTO SERVICE BDC REPS & AUTOMOTIVE BILLER! NO EXPERIENCE NEEDED! Apple Honda is offering YOU a Read more
*Apple* Developer Support Advisor - Portugue...
Changing the world is all in a day's work at Apple . If you love innovation, here's your chance to make a career of it. You'll work hard. But the job comes with more than Read more
RBB - *Apple* OS X Platform Engineer - Barc...
RBB - Apple OS X Platform Engineer Ref 63198 Country USA…protected by law. Main Function | The engineering of Apple OS X based solutions, in line with customer and Read more
RBB - Core Software Engineer - Mac Platform (...
RBB - Core Software Engineer - Mac Platform ( Apple OS X) Ref 63199 Country USA City Dallas Business Area Global Technology Contract Type Permanent Estimated publish end Read more
*Apple* Desktop Analyst - Infinity Consultin...
Job Title: Apple Desktop Analyst Location: Yonkers, NY Job Type: Contract to hire Ref No: 13-02843 Date: 2013-07-30 Find other jobs in Yonkers Desktop Analyst The Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.