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

Garmin Express 4.0.18.0 - Manage your Ga...
Garmin Express is your essential tool for managing your Garmin devices. Update maps, golf courses and device software. You can even register your device. Update maps Update software Register your... Read more
jAlbum Pro 12.6.4 - Organize your digita...
jAlbum Pro has all the features you love in jAlbum, but comes with a commercial license. With jAlbum, you can create gorgeous custom photo galleries for the Web without writing a line of code!... Read more
jAlbum 12.6.4 - Create custom photo gall...
With jAlbum, you can create gorgeous custom photo galleries for the Web without writing a line of code! Beginner-friendly, with pro results Simply drag and drop photos into groups, choose a design... Read more
Microsoft Remote Desktop 8.0.16 - Connec...
With Microsoft Remote Desktop, you can connect to a remote PC and your work resources from almost anywhere. Experience the power of Windows with RemoteFX in a Remote Desktop client designed to help... Read more
Spotify 1.0.4.90. - Stream music, create...
Spotify is a streaming music service that gives you on-demand access to millions of songs. Whether you like driving rock, silky R&B, or grandiose classical music, Spotify's massive catalogue puts... Read more
djay Pro 1.1 - Transform your Mac into a...
djay Pro provides a complete toolkit for performing DJs. Its unique modern interface is built around a sophisticated integration with iTunes and Spotify, giving you instant access to millions of... Read more
Vivaldi 1.0.118.19 - Lightweight browser...
Vivaldi browser. In 1994, two programmers started working on a web browser. Our idea was to make a really fast browser, capable of running on limited hardware, keeping in mind that users are... Read more
Stacks 2.6.11 - New way to create pages...
Stacks is a new way to create pages in RapidWeaver. It's a plugin designed to combine drag-and-drop simplicity with the power of fluid layout. Features: Fluid Layout: Stacks lets you build pages... Read more
xScope 4.1.3 - Onscreen graphic measurem...
xScope is powerful set of tools that are ideal for measuring, inspecting, and testing on-screen graphics and layouts. Its tools float above your desktop windows and can be accessed via a toolbar,... Read more
Cyberduck 4.7 - FTP and SFTP browser. (F...
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... Read more

This Week at 148Apps: April 20-24, 2015
The Apps of April How do you know what apps are worth your time and money? Just look to the review team at 148Apps. We sort through the chaos and find the apps you're looking for. The ones we love become Editor’s Choice, standing out above the many... | Read more »
Discover Your Reflexes With Minimalist G...
Discover O, BYOF Studios, may look simple at first with its' color matching premise and swipe controls, but as you speed up the task becomes more daunting. [Read more] | Read more »
Here's Another Roundup of Notable A...
Now that the Apple Watch is publically available (kind of), even more apps and games have been popping up for it. Some of them are updates to existing software, others are brand new. The main thing is that they're all for the Apple Watch, and if you... | Read more »
Use Batting Average and the Apple Watch...
Batting Average, by Pixolini, is designed to help you manage your statistics. Every time you go to bat, you can use your Apple Watch to track  your swings, strikes, and hits. [Read more] | Read more »
Celebrate Studio Pango's 3rd Annive...
It is time to party, Pangoland pals! Studio Pango is celebrating their 3rd birthday and their gift to you is a new update to Pangoland. [Read more] | Read more »
Become the World's Most Important D...
Must Deliver, by cherrypick games, is a top-down endless-runner witha healthy dose of the living dead. [Read more] | Read more »
SoundHound + LiveLyrics is Making its De...
SoundHound Inc. has announced that SoundHound + LiveLyrics, will be one of the first third-party apps to hit the Apple Watch. With  SoundHound you'll be able to tap on your watch and have the app recognize the music you are listening to, then have... | Read more »
Adobe Joins the Apple Watch Lineup With...
A whole tidal wave of apps are headed for the Apple Watch, and Adobe has joined in with 3 new ways to enhance your creativity and collaborate with others. The watch apps pair with iPad/iPhone apps to give you total control over your Adobe projects... | Read more »
Z Steel Soldiers, Sequel to Kavcom'...
Kavcom has released Z Steel Soldiers, which continues the story of the comedic RTS originally created by the Bitmap Brothers. [Read more] | Read more »
Seene Lets You Create 3D Images With You...
Seene, by Obvious Engineering, is a 3D capture app that's meant to allow you to create visually stunning 3D images with a tap of your finger, and then share them as a 3D photo, video or gif. [Read more] | Read more »

Price Scanner via MacPrices.net

Final day for Best Buy’s 4 Day Sale: Up to $3...
Best Buy has the new 2015 13″ 1.6GHz/128GB MacBook Air on sale for $799.99 through April 27th. That’s $200 off MSRP, and it’s the lowest price available for this new model from any reseller. Choose... Read more
College Student Deals: Additional $50 off Mac...
Take an additional $50 off all MacBooks and iMacs at Best Buy Online with their College Students Deals Savings, valid through May 9, 2015. Anyone with a valid .EDU email address can take advantage of... Read more
Save up to $300 on a new Mac, $30 on an iPad,...
Purchase a new Mac or iPad at The Apple Store for Education and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free,... Read more
Zoho Business Apps for Apple Watch Put Select...
Pleasanton, California based Zoho has launched Zoho Business Apps for Apple Watch, a line of apps that extends Zoho business applications to let users perform select functions from an Apple Watch.... Read more
Universal Stylus Initiative Launched to Creat...
OEMs, stylus and touch controller manufacturers have announced the launch of Universal Stylus Initiative (USI), a new organization formed to develop and promote an industry specification for an... Read more
Amazon Shopping App for Apple Watch
With the new Amazon shopping app for Apple Watch, Amazon customers with one of the wearable devices can simply tap the app on the watch to purchase items in seconds, or save an idea for later. The... Read more
Mac Pros on sale for up to $260 off MSRP
B&H Photo has Mac Pros on sale for up to $260 off MSRP. Shipping is free, and B&H charges sales tax in NY only: - 3.7GHz 4-core Mac Pro: $2799, $200 off MSRP - 3.5GHz 6-core Mac Pro: $3719.99... Read more
Apple refurbished Time Capsules available for...
The Apple Store has certified refurbished Time Capsules available for $100 off MSRP. Apple’s one-year warranty is included with each Time Capsule, and shipping is free: - 2TB Time Capsule: $199, $100... Read more
Intel Compute Stick: A New Mini-Computing For...
The Intel Compute Stick, a new pocket-sized computer based on a quad-core Intel Atom processor running Windows 8.1 with Bing, is available now through Intel Authorized Dealers across much of the... Read more
Heal to Launch First One-Touch House Call Doc...
Santa Monica, California based Heal, a pioneer in on-demand personal health care services — will offer the first one-touch, on-demand house call doctor app for the Apple Watch. Heal’s Watch app,... Read more

Jobs Board

*Apple* iOS Specialist - TCML (United States...
AppleiOS Specialist Senior Apple /iOS Administrator/Engineer responsible for configuration and distribution of desktop, laptop and mobile devices to State Employees Read more
*Apple* Client Systems Solution Specialist -...
…drive revenue and profit in assigned sales segment and/or region specific to the Apple brand and product sets. This person will work directly with CDW Account Managers Read more
*Apple* Retail - Multiple Positions (US) - A...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
*Apple* Support Technician IV - Jack Henry a...
Job Description Jack Henry & Associates is seeking an Apple Support Technician. This position while acting independently, ensures the proper day-to-day control of Read more
*Apple* Client Systems Solution Specialist -...
…drive revenue and profit in assigned sales segment and/or region specific to the Apple brand and product sets. This person will work directly with CDW Account Managers Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.