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.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Printopia 3.0.4 - Share Mac printers wit...
Run Printopia on your Mac to share its printers to any capable iPhone, iPad, or iPod Touch. Printopia will also add virtual printers, allowing you to save print-outs to your Mac and send to apps.... Read more
Tinderbox 7.3.1 - Store and organize you...
Tinderbox is a personal content management assistant. It stores your notes, ideas, and plans. It can help you organize and understand them. And Tinderbox helps you share ideas through Web journals... Read more
ExpanDrive 6.1.6 - Access cloud storage...
ExpanDrive builds cloud storage in every application, acts just like a USB drive plugged into your Mac. With ExpanDrive, you can securely access any remote file server directly from the Finder or... Read more
VOX 3.0.1 - Music player that supports m...
VOX just sounds better! The beauty is in its simplicity, yet behind the minimal exterior lies a powerful music player with a ton of features and support for all audio formats you should ever need.... Read more
Merlin Project 4.3.3 - $289.00
Merlin Project is the leading professional project management software for OS X. If you plan complex projects on your Mac, you won’t get far with a simple list of tasks. Good planning raises... Read more
Mac DVDRipper Pro 7.1 - Copy, backup, an...
Mac DVDRipper Pro is the DVD backup solution that lets you protect your DVDs from scratches, save your batteries by reading your movies from your hard disk, manage your collection with just a few... Read more
iMazing 2.5.2 - Complete iOS device mana...
iMazing (was DiskAid) is the ultimate iOS device manager with capabilities far beyond what iTunes offers. With iMazing and your iOS device (iPhone, iPad, or iPod), you can: Copy music to and from... Read more
Pinegrow 4 - Mockup and design webpages...
Pinegrow (was Pinegrow Web Designer) is desktop app that lets you mockup and design webpages faster with multi-page editing, CSS and LESS styling, and smart components for Bootstrap, Foundation,... Read more
iExplorer 4.1.11 - View and transfer fil...
iExplorer is an iPhone browser for Mac lets you view the files on your iOS device. By using a drag and drop interface, you can quickly copy files and folders between your Mac and your iPhone or... Read more
Merlin Project 4.3.3 - $289.00
Merlin Project is the leading professional project management software for OS X. If you plan complex projects on your Mac, you won’t get far with a simple list of tasks. Good planning raises... Read more

Latest Forum Discussions

See All

The best mobile games to play while your...
Thanksgiving is a time to reconnect with loved ones, eat lots of food, and all of that jazz, but once the festivities start to wind down, folks tend to head to the couch to watch whatever football is happening for Turkey Day. | Read more »
The best Black Friday deals for Apple ga...
Black Friday is hours away at this point, but many popular retailers are getting a jump on things with plenty of pre-Black Friday sales already available. Many of those early bird sales including some sharp discounts on the latest Apple phones... | Read more »
The Inner World 2 (Games)
The Inner World 2 1.0 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0 (iTunes) Description: Solve mind-bending puzzles in a world full of mystery and save the family of the flute-noses! Their dynasty has been... | Read more »
warbot.io wants you for the robot wars
Fans of epic gundam-style battles will find a lot to love in warbot.io, the first game for up and coming developer Wondersquad. The game saw a lot of success when it first launched for browsers and Facebook, and now even more people are getting the... | Read more »
Uncover alien mysteries in cross-genre s...
If the Alien franchise taught us anything, it’s that landing on a strange planet at the behest of a faceless corporation is probably asking for trouble. And Eldritch Game’s Deliria doesn’t prove otherwise. In 2107, Dimension LG7 is rich with... | Read more »
The best mobile games to play during dre...
| Read more »
Animal Crossing: Pocket Camp beginner...
Animal Crossing: Pocket Camp, was just announced yesterday, but it's already in soft launch in Australia. No matter where you are in the world, you can still get access to the soft launch on iOS, so we've devised a few beginner tips for folks who... | Read more »
The mobile gamer's guide to Black F...
We're starting to catch wind of some exciting deals in the mobile gaming space for Black Friday. There are big discounts on mobile phones and accessories cropping up already, so you might want to get a move on things ahead of the big day. It's... | Read more »
The best pre-Black Friday deals - Novemb...
Black Friday will soon be upon us, but online retailers are already getting a headstart on the steep discounts. Don't wait until Friday—you'll find some pretty good deals all over the internet without waiting in lines or competing with other... | Read more »
Mighty Battles guide - how to build a so...
Mighty Battles, the latest title from Hothead Games, is set to take the App Store by storm. The game puts a welcome twist on lane battlers, adding FPS elements to spice things up a bit. You'll collect cards to put your own military unit to gether,... | Read more »

Price Scanner via MacPrices.net

Black Friday 2017: Find the best deals and lo...
Scan our exclusive price trackers for the latest Black Friday 2017 sales & deals and the lowest prices available on Apple Macs, iPads, and gear from Apple’s authorized resellers. We update the... Read more
Black Friday: 27″ 3.4GHz iMac for $1599, save...
Amazon has the 27″ 3.4GHz Apple iMac on sale for $1599.99 as part of their Black Friday sale. That’s $200 off MSRP, and shipping is free. Their price is currently the lowest price available for this... Read more
Black Friday: 13″ 2.3GHz/256GB MacBook Pro fo...
Amazon has the 13″ 2.3GHz/256GB Apple MacBook Pro on sale for $1299.99 as part of their Black Friday sale. Shipping is free: – 13-inch 2.3GHz/256GB Space Gray MacBook Pro (MPXT2LL/A): $1299.99 $200... Read more
Black Friday: 15″ 2.9GHz MacBook Pros for $25...
Amazon has lowered prices on Silver and Gray 15″ 2.9GHz MacBook Pros to $2549.99. That’s $250 off MSRP, and shipping is free. Their prices are the lowest available for these models from any reseller... Read more
Lowest Black Friday prices on Apple MacBooks:...
Save $150-$420 on the purchase of a MacBook Pro, MacBook, or MacBook Air this Black Friday and Holiday weekend with Certified Refurbished models at Apple. In many cases, Apple’s refurbished prices... Read more
Black Friday: Apple Watch Series 1 for $70 of...
Macy’s has discounted Series 1 Apple Watches by $70 on their online store as part of their Black Friday sale: – 38mm Series 1 Apple Watch: $179, $70 off – 42mm Series 1 Apple Watch: $209, $70 off... Read more
Apple offers 2016 13-inch MacBook Airs, certi...
Apple has Certified Refurbished 2016 13″ MacBook Airs available starting at $809. An Apple one-year warranty is included with each MacBook, and shipping is free: – 13″ 1.6GHz/8GB/128GB MacBook Air: $... Read more
Black Friday sale: Mac minis for $100 off MSR...
B&H Photo has Mac minis on sale for up to $100 off MSRP as part of their Black Friday sale, each including free shipping plus NY & NJ sales tax only: – 1.4GHz Mac mini: $399 $100 off MSRP – 2... Read more
Use your Apple Education discount to save up...
Purchase a new Mac using Apple’s Education discount, and take up to $300 off MSRP. All teachers, students, and staff of any educational institution with a .edu email address qualify for the discount... Read more
Adorama posts Black Friday deals on Apple Mac...
Adorama has posted Black Friday sale prices on many Macs, with MacBooks and iMacs available for up to $200 off MSRP. Shipping is free, and Adorama charges sales tax in NJ and NY only: MacBook Pros... Read more

Jobs Board

Business Development Manager, *Apple* Pay -...
# Business Development Manager, Apple Pay Job Number: 112919084 Santa Clara Valley, California, United States Posted: 18-Aug-2017 Weekly Hours: 40.00 **Job Summary** Read more
Digital Marketing Media Planner, *Apple* Se...
# Digital Marketing Media Planner, Apple Services Job Number: 113080212 Culver City, California, United States Posted: 03-Oct-2017 Weekly Hours: **Job Summary** Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Business Development Manager, *Apple* Pay -...
# Business Development Manager, Apple Pay Job Number: 112919084 Santa Clara Valley, California, United States Posted: 18-Aug-2017 Weekly Hours: 40.00 **Job Summary** Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 56553863 North Wales, Pennsylvania, United States Posted: 17-Jun-2017 Weekly Hours: 40.00 **Job Summary** Are you passionate Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.