May 2002

Version Control with CVS on Mac OS X

Apple explains how to use cvs on OS X. It’s interesting that the tutorial uses a website development context rather than app development. It’s cool that it shows how to use cvs with BBEdit.

Incoming Mail and PHP explains how to send mail to PHP. (It’s easy to send mail from PHP; sending email to PHP is somewhat trickier.)

Understanding XPath explains XPath, which appears to be similar to file system paths, except that it works with structured XML data.

Using PHP with Files “The ability to work within the file system is the power to store and retrieve information from the server.”

SQL basics I: Data queries on the basic SQL queries: select, insert, update, and delete.

Scratching the Surface: Getting Started with PHP Fusebox

DevShed: “Based on a hub-and-spoke model, Fusebox allows sections of code to work independently of each other while promoting code reuse, distributed development and cheaper maintenance.”

Template-Based Web Development with patTemplate (part 1)

DevShed: “This alternative solution involves using ‘templates’ to separate presentation and layout information from program code, and a template engine to combine the two to create the final product.”

Huevos 1.0

The main change since the last release is that the search window is now smaller so it takes up less screen real estate. Huevos is open source (BSD license) and the source is available as a separate download.

Creating Custom PHP 404 Error Pages

PHP Beginner: “Have you ever seen 404-error pages that have the same look and feel as the web site you are on instead of those boring generic Apache or IIS ones? In this tutorial I am going to show you how to create and customize your own custom 404-error pages.”

AppleScript Properties

The Mac Observer: “You can set a property to represent data like regular variables, but unlike variables, the value of the property is stored permanently in the memory banks of the script.”

Eudora 5.1.1 released, for OS X

MacCentral reports on the release—at long last—of Eudora for OS X. Me, I’ve been a Eudora user for something like seven years, and I’m glad to see it released for OS X. (I’ve been using Eudora betas, of course.)

Interface Builder Palettes

CocoaDevCentral: “Interface Builder palettes allow you to drag and drop an object into your project’s nib file, edit an object’s attributes through an Inspector, and put an object into ‘Test Mode.’ These properties make palettes a great way to distribute your own custom objects to other developers. So let’s get started and see just how easy it is to palettize an object.”

First Impressions of Conversant 1.0b2

I installed and tried out Conversant today. Though there’s a fair amount of criticism in this article, my main impression is positive. Conversant is definitely worth checking out.

MacHack 2002

MacHack 2002 will take place June 20-22 in Dearborn, Michigan. Rob Malda, aka Slashdot’s CmdrTaco, is scheduled to speak.

O’Reilly OS X Conference Call for Participation

O’Reilly: “The curriculum for the conference is tailored to programmers, developers, technical staff, and power users who want to master the power of Apple’s state-of-the-art operating system. This four-day event connects Unix experts seeking to adapt their existing knowledge to the Mac platform with traditional Mac gurus who are learning the Unix underpinnings of Mac OS X.”

Make your PHP code portable “There’s a lot of PHP code available for free on the net but also not all of it can run on your system as it is. This article shows you how to distribute a setup required by your program to run.”

Up and running with Cocoon “Cocoon is definitely not just another open source project; it has matured to a stage where it does a great job of enabling rapid development and deployment of robust applications.”

Tailoring Java Applications for Mac OS X

Apple Technical Note TN2042: “This Technical Note describes techniques and methods that Java developers on Mac OS X can employ to provide a ‘complete Macintosh experience’ in their Java applications on Mac OS X. It is also intended for Java developers from other platforms looking to bring their existing applications to Mac OS X as flawlessly as possible.”

Inside the Objective-C Runtime

O’Reilly: “One reason—yes, there are others—that scripting languages like Perl became so popular for building dynamic Web sites is they are inherently dynamic. Being interpreted (rather than compiled) runtime is ‘compile-time.’ Of course there’s a performance penalty (and the lack of type checking—which some might count as a feature—among other issues) and that’s where compiled dynamic languages like Objective-C come in.”

Five Best Practices for Content Management Application Development

WebReference: “The Return on Investment (ROI) from a content management system deployment lies in the distributed nature of the application. Content management systems allow business units to handle their own content creation and content publishing without the assistance or gate-keeping of an IT or E-business group.”

Inside Jaguar: Reader requests and questions

Think Secret continues its reports on the next major update to OS X.

Win the Spam Arms Race

A List Apart: “Most seasoned web developers have learned the hard way that posting an email address on a website is a sure-fire way to guarantee a steaming pile of spam delivered to that address for years to come.”

Simple Content Management

A List Apart: “Why another CMS? I’m not a fan of the client-side content management provided by FrontPage or Dreamweaver, and server-based systems rely on server OS and software and are vulnerable to the restrictions of hosting packages. This CMS will work on any desktop system.”

New Cocoa Links Directory

The folks have started a new Yahoo-like directory for Cocoa tutorials, sample code, and so on. There’t not much there yet, but you can suggest links.

Interview – PHP’s Creator, Rasmus Lerdorf

WebmasterBase: “He is quick to play down his contribution to what PHP is today, instead attributing most of PHP’s success to the vast community of developers that have signed on to the project over the years. In a sense, Rasmus today is simply PHP’s biggest fan.”

How OS X Is Growing the Mac User Base

Low End Mac: “A funny thing happened on the way to 12 o’clock hour for OS X. The Macintosh faithful, ever the standard bearers for simple GUI computing, have become command line power users.”

Creating Generic Website Branding in PHP

PHP Beginner: “Have you ever had the need to create a custom look and feel for a website? Many sites today have a custom look and feel to them ‘branding.’ In this article, I will show you how to set up a generic branding for your site by using PHP.”

Oh, my—MySQL! “Do you have a hosted Web site? If you do, chances are you have access to a MySQL database. MySQL is a relational database management system (RDMS) that is great for energizing your Web site, managing personal data, or any of the average everyday uses of a database.”

DTML Basics (part 1)

DevShed: “One of the nicest things about Zope is its ability to separate an application’s presentation layer from the business logic that drives it. It does this using its very own tag-based markup language, Document Template Markup Language or DTML.”

AppleScript In Mac OS X: A Brave New World

The Mac Observer: “After an hour of Mac OS X, you decided that Mac OS 9 is as outdated as System 7. You’re just about to snuggle in when you realize that something doesn’t feel right. You’re missing your AppleScripts, right? I know the feeling. Don’t despair! Once inside Mac OS X, AppleScript is easy; however, the transition can be a little rocky. That’s why I’m providing you with these instructions on updating your scripts for Mac OS X.”

Where Apple Doesn’t Always Play Nice

BusinessWeek: “Some small developers are crying foul. They’re accusing Apple of freely copying third-party programmers’ innovations into its own software. ‘Apple should work with independent developers, rather than taking everything in the house,’ Rob McNair-Huff, publisher of the popular Mac Net Journal Web site, wrote recently.”

Netscape 7.0 Preview Release 1

New features in Netscape’s browser include tabbed browsing, bookmark groups, and click-to-search.

Metrowerks announces CodeWarrior 8

MacMegasite: “Metrowerks has announced CodeWarrior Professional 8.0, which now supports Objective C and Cocoa, as well as C, C++, and Java.”

Conversant released

Macrobyte Resources: “With Conversant, your organization can view your information from anywhere and by any means you choose. Conversant gives you and your users the power to decide how to collaborate and share documents and data. Conversant makes it easy to collaborate by allowing your organization to use all the tools you’re already comfortable with: your web browser, your newsreader, and your e-mail tool.”

Cocoa Sprite Kit

Sugar Cube Software says it’s “the only 2D Sprite Gaming Kit built from the ground-up to take full advantage of Macintosh OS X.”

Inside Jaguar: A visual look at its other apps

More (apparent) Jaguar screen shots from Think Secret.

IF vs Switch

PHP Beginner: “When I first started programming in C many of my programs were littered with IF statements. Is this good programming or there are better ways? What about SWITCH? What is better to use and how can this help to speed up your script execution time?”

MySQL Guestbook

PHP Beginner: “Here again, today we’ll discuss how to connect to MySQL database using PHP and how to store and retrieve data from MySQL database. I’ve choosen a simple Guestbook application as the example.”

OmniOutliner as a Script Analysis and Management Tool

Studio Log: “Analyzing and managing programming code is a tough task in the best of circumstances. This article explores using OmniOutliner as a script analysis and management tool and, through extensibility with adding AppleScripts to the Scripts Menu, using OmniOutliner as a script editor.”

Straining against the harness

MacEdition’s CodeBitch: “It does feel like we’re on the cusp of some big changes in the ways Web design is done, but for two years now, those changes have been just around the corner, tantalisingly close but always out of reach.”

Storage and re-use of images using PHP/GD - Part 1 “Publishing images on the web is nice, but tedious. It would be nice if we could use a system that automates the uploading, storage, converting and resizing of our images. We could feed that system our images once, and retrieve them later in many different formats.”

Making PDFs with PHP, PDQ

Webmonkey: “One trick that’s got a lot of potential is using PHP to dynamically generate PDF files and serve them via the Web.”

All About the Little Green Glob

O’Reilly: Programming with Cocoa: “You all know what I’m talking about: you click on that little emerald glob expecting the window to resize itself to efficiently display the window contents without taking over your screen (we can go to Windows for that). But instead it does something erratic like totally disrespecting the dock, or filling the entire screen to display a small picture.”

Inside Jaguar: A visual look at Mail and Address Book

ThinkSecret posts a bunch of (supposed) screen shots of Mail and Address Book updated for Jaguar.

Watching the Alpha Geeks: OS X and the Next Big Thing

Tim O’Reilly’s WWDC keynote: “There have been an amazing number of iBooks at recent O’Reilly conferences. The adoption by key OSS communities and leaders is also striking. For example: most of the Perl core team is now on OS X; James Gosling, Duncan Davidson, and a lot of other key Java developers; P2P developers; many of the key developers in bioinformatics.”

Py in Print “When Bryan Richard wrote me a few months ago to ask if I thought a Python magazine would make it, I told him it probably would, if it were a labor of love. I didn’t think he would make much money off the venture, but it would sure be great to have something out there. Maybe it could take off the way The Perl Journal did. Bryan decided it was love, and a few months later, the first issue Py was mailed out to early subscribers.”

MacNewsWire 1.0b6

It’s a freeware Cocoa app that brings the latest Macintosh news to your desktop. Screen shots: reading the latest news; running a search.

Cupertino libre

Naked Mole Rat: “While Generalissimo Jobs’ pronouncement that the big cat will spring in ‘late summer’ prompted some wags to speculate an eleventh-hour arrival date of Sept. 20 or thereabouts, the Blade’s Praetorian Guard is predicting a much more aggressive release schedule: The final candidate will rear its head during the last week of June, they aver, and the shipping version should put in an appearance at July’s Macworld Expo/New York—presumably alongside Apple’s next major round of desktop hardware.”

Beginning Database Design, Part I “Creating a database can be a daunting task to a beginner. As with most complex projects, good database design can be broken down into discrete steps which are easier to manage.”

The Power Of Three: XML, XSLT and PHP, part 3

PHP Beginner: “This is the third and final article in The Power of Three: XML, XSLT and PHP series. We will learn how to bring it all together and develop websites that utilize XML, XSLT and PHP to create a rich and powerful site.”

Using Zope with Apache

DevShed: “You can hook Zope up to Apache so that you get the best of both worlds, combining Apache’s legendary stability and flexibility with Zope’s everything-is-an-object paradigm to create an efficient, scalable and robust foundation for your Web site.”

iPhoto 1.1.1 Adds Needed Features

O’Reilly: “The iPhoto team didn’t waste much time putting together the first major upgrade for Apple’s digital photo organizer. It’s a hefty upgrade, and if you haven’t taken a look at the new version yet, you may want to after you read about the additional features.”

WWDC 2002: Everyone needs a pet Jaguar

MacEdition: “The most exciting news to come out of the keynote, though, is an answer to the notoriously sluggish Quartz rendering. Mix in a liberal dose of hardware acceleration (Radeon or better cards only, please), broil for 4 months, and what do you get? Quartz Extreme.”

The ABCs of CMS - Part IV “The first content management system I ever created (in 1996) wasn’t called a content management system. It was called an automatic article posting script (AAPS), except it wasn’t all that automatic... We have come a long, long way since then!”

Inside Jaguar: A visual look at the Finder and System

A bunch of Jaguar screen shots from Think Secret.

Jaguar or Jackalope?

Michael Swaine on the upcoming Mac OS X 10.2: “1. What a novel idea: an OS taking advantage of graphics hardware. 2. It doesn't work on my machine.”

How PHP handles files

PHP Beginner: “This article discusses the various file handling options available in PHP and how we can implement them... Many of these functions have been transparently extended to work with HTTP and FTP resources, allowing easy reading of remote files.”

Arrrr! Avast ye screen savers!

MacEdition on writing screen savers in Cocoa for OS X: “Why would anyone want to waste their time writing a screen saver? Because they’re fun! The Instant Gratification Factor is high: You can go from idea to crude implementation in under 15 minutes. Screen savers are also great places to play with drawing and animation APIs.”

PHP Guidelines publishes some tips on writing better and faster PHP scripts.

Apple ‘Bundle’ Creates a Rumble

Wired News: “In an interesting, unusual dialogue on some Macintosh-related sites, some people have expressed concern with news that Apple is adding yet another program to the stable of iApps included free in its new systems.”

AppleScript Studio WWDC Examples

Tim Bumgarner from AppleScript Studio Engineering cleaned up and posted his examples that were demonstrated at WWDC 2002.

Introducing Xserve

Apple introduces new rack-mounted servers. “Xserve features prodigiously powerful PowerPC G4 processors, massive amounts of storage, hot-plug drives, RAID solutions, remote management tools, and the ability to boot up and run without a monitor.” More details appear on Doc Searls’s weblog.

The Evolution of Darwin

Apple: “Darwin is like Linux with a day job: By day, it stays discreetly in the background, running Mac OS X. By night, Darwin shows its open source roots: hackable, extensible, and the product of the same community, culture, and traditions that created Apache, sendmail, GNU/Linux, Mozilla, and UNIX itself. Users are happy, but engineers also get to have their fun.”

Apple’s Jaguar - sliced and diced

The Register: “What should gladden the hearts of the patient X faithful, if our correspondents are not engaging us in a vastly elaborate hoax: is that with Jaguar Apple has the performance issues nailed.”

\r \r

The other new features are nice, but whatever—speed is what I want. That and more developer docs and samples.

Write Secure Scripts with PHP 4.2

WebmasterBase: “For the longest time, one of the biggest selling points of PHP as a server-side scripting language was that values submitted from a form were automatically created as global variables for you. As of PHP 4.1, the makers of PHP recommended an alternate means of accessing submitted data. In PHP 4.2, they switched off the old way of doing things! As I’ll explain in this article, these changes have been made in the name of security.”

Functions make life easier

PHP Beginner: “When you first start learning PHP, there are so many aspects to the language. PHP has hundreds of builtin functions that make it possible to do powerful things. But it does not stop there since you can write your own.”

Managing Images with a Web Database Application “Web developers often need to store images, sounds, movies, and documents in a database and deliver these to users. In this article, I’ll show you how to develop a simple Web database application that allows users to upload and retrieve images, but can easily be adapted to storing files of any type.”

The ABCs of CMS - Part III “In this installment we will start getting to the meat of a CMS, designing for the workflow process. Covered will be article submission, allowing an author to preview and edit his or her own articles, and more workflow theory.”

Introduction to mod_perl (part 2): mod_perl Quickstart

DevShed: “In the previous article, I’ve shown quite amazing web performance reports from companies that have deployed mod_perl heavily. You might be surprised but you can quite easily get similarly amazing results if you move your service to mod_perl as well. In fact, getting started with mod_perl shouldn’t take you more than 30 minutes, the time it takes to compile and configure the server on a decent machine and get it running.”

Avoiding the trap of developing in a bubble “As a network engineer and a software developer, I am amazed at the number of applications developed in a bubble—a near-perfect, sterile development environment that does not match the environment for which the application is being built.”

CSS Beyond the Browser: Going to Print

A List Apart: “You’ve seen them before: links that say ‘click here for printer-friendly version’ or words to that effect. Every time you follow one of those links, you load up a separate document that presents exactly the same information with a different layout, and probably different markup. That means somebody (or a script) had to take the original document and convert it to a stripped-down version that’s more suitable for print output. Maybe that somebody was even you.”

MacGrep with source code “I’ve had some thoughts about learning cocoa programming for some time, and so I decided to give it a try by developing my very own grep front-end.\r Well I spent a (very small) week-end, after having read some cocoa programming tutorials and technical articles, to code the app (my first in Objective-C).”

Jaguar Preview Is Stunning

O’Reilly: “Tevanian explained that the move to GCC 3 will give full C++ compliance, including support for the standard template libraries. As for Apple’s IDE Project Builder, there will be an improvement in the performance of generated code, and the redesigned multi-window UI will be much more full-featured.”

Watson development to continue, says developer

MacCentral: “Dan Wood of Karelia Software, the developer of Watson, confirmed for MacCentral that he had no part in the development of Sherlock 3. Wood also confirmed that Watson is alive and well and he will continue the development of the product.”

\r \r

I’m glad. I don’t know if Watson will continue to be a successful product after Sherlock 3 ships. I hope so. One thing that has always bugged me is how people so often prefer the software made by their OS vendor. Bundling only works so well because people somehow seem to distrust competing apps that come from independent developers, even in the cases where those apps are better and more mature.

HexleyFrom the website: “, jointly founded in April 2002 by Internet Software Consortium, Inc. (ISC) and Apple, is an attempt to take cooperative Darwin development to the next level. Membership in the OpenDarwin project and access to its works are open to everyone. The project is also fully independent, with control over its own web site, project news, bug tracking information and CVS repository, as well as any other services that the community owners may wish to provide.”

Apple announces iPhoto 1.1.1

MacCentral: “iPhoto 1.1.1 includes new brightness and contrast controls, integration with Mac OS X’s Mail application for emailing photos and controls for setting favorite photos as desktop backgrounds and screen saver slide shows.”

OmniOutliner gets beefed-up project planning features

MacCentral: “Each item can now have a note that appears in a separate text area below the outline. A special note column displays an icon if an item has a note. Plus, there’s now auto-numbering of rows that include multiple numbering styles. Styles may be set on a per-level basis.”

Web Services Client Frameworks

Steve Zellers has uploaded his Cocoa demo projects for his Web Services Client Frameworks talk at WWDC. They work with Google’s SOAP API.

Interview - Jeffrey Zeldman of A List Apart

WebmasterBase: “I found my voice with the Web. So have many other people. So can you. If I have a message, that’s it. A worldwide medium is emerging from its infancy. You can be part of it. Do it.”

Photoshop 7 Arrives for Mac OS X

O’Reilly: “There’s no radical new ‘metaphor’ here, as when Photoshop 3.0 introduced Layers, but version 7.0 brings with it a broad range of new tools and enhancements, making it not only more flexible and powerful than its predecessor, but also friendlier.”

A look inside Jaguar

Apple: “In Jaguar, Sherlock makes it simpler to comprehend that information once you’ve found it. Now Sherlock displays search results in an interface tuned for each channel, instead of launching your Web browser.”

\r \r

As others, including the folks at TidBITS, have pointed out, the new Sherlock looks like a clone of Karelia’s Watson.

\r \r

Update 2 p.m.: Some people have suggested that Sherlock 3 actually is Watson in new clothes. It isn’t. See the comments page for this post for a note from Robb Beal clarifying that “Sherlock 3 from Apple is not Watson in any respect. Karelia LLC continues to operate as an independent software development company.”

The Power Of Three: XML, XSLT and PHP, part 2

PHP Beginner: “I am going to help you set up Sablotron on PHP so that you are able to parse XML files with XSLT in PHP with the use of Sablotron (A PHP extension for parsing XSLT files). I will walk you through the set up Sablotron and then configuring it with PHP. This allows you to use XML and XSLT together with PHP.”

Jobs Gives Developers a Thrill

Wired News: “Apple CEO Steve Jobs presided over an elaborate mock-funeral for OS 9 on Monday, burying the company’s old operating system in a large silver coffin and wishing it well as it enters ‘the bit bucket in the sky.’\r \r He then offered programmers at Apple’s Worldwide Developer Conference a ‘sneak peek’ at Jaguar, which is the code-name for the company’s next version of its current operating system, OS X.”

Introduction to Handling Carbon Windows and Controls

New (preliminary) developer documentation from Apple. Also, Apple’s kernel programming and AppleScript Studio docs have been revised.

O’Reilly Mac OS X Conference

O’Reilly: “One thing that’s been overwhelmingly clear this year is that the alpha geeks are choosing Mac OS X. Why? Mac OS X is one of the most exciting things happening in the industry today. It’s the confluence of three great traditions—Unix/open source, Java, and the Mac—and the best of all worlds.”

\r \r

I may go. Sounds like fun.

Jaguar, next major Mac OS X update coming this summer

MacCentral: Jaguar will “come with Rendezvous, Apple’s proposed new industry standard for automatic discovery of computers, devices and services on IP (Ethernet, AirPort) networks. In other words, the technology will let Macs automatically recognize other computers on a wired or wireless network and share files with each other or, theoretically, with other digital devices. In his keynote, Jobs demoed streaming music files off of another Mac connected through an AirPort network.”

Spring blooms for Mac OS X

MacCentral: “Spring utilizes the concept of objects as activating various actions. For example, you can have one object in Spring that identifies a specific person—control-click on the person’s icon and choose among various actions like e-mail, instant messaging, view Weblog and check Work Calendar. Likewise, if you need to book a flight with Spring, you simply open a Spring canvas with a background map and click and drag between two spring cities.”

Introduction to mod_perl (part 1)

DevShed: “From the outset Apache was designed so that you can extend it by the addition of ‘modules.’ Modules can do anything you need to do, such as rewrite HTTP requests, restrict access to certain pages, perform database lookups and so on. Modules are normally written in C, which can be hard work. mod_perl is a module which lets you do all of these things, and more, using Perl—which makes the development much quicker than C.”

Steve Jobs and the History of Cocoa, Part One

O’Reilly: “In this first part of a two-part series, Simson Garfinkel and Michael Mahoney explain why Cocoa and Mac OS X aren’t nearly as revolutionary as they are evolutionary—and still in the process of refinement. The story begins with Apple’s genesis in the 1970s and takes you through key events up through 1993, when NeXTSTEP began to flounder.”

CodeWarrior for Mac OS, Version 8 due May 31

MacCentral: “CodeWarrior for Mac OS, Version 8 adds support for the Cocoa application environment, an Objective C class library created by Apple that lets developers build native Mac OS X applications. In addition, the new version includes Apple’s Interface Builder, which enables developers to quickly design and build user interfaces for their Cocoa and/or Carbon applications.”

Five tips for configuring Apache “This article presents five brief tips for tuning and configuring your Apache 1.3 or Apache 2.0 server. We will examine the following strategies: tuning of Apache’s accept() serialization, threading with Apache 2.0, SSL session caching with mod_ssl, optimizing the keep-alive timeout values, and examining server load to be able to tune the amount of requests the server can handle.”

Wrapping Web Service APIs

O’Reilly: “There are many approaches to writing XML based web services: SOAP, XML-RPC, REST. If all you want to do is use a service, and there is a Python wrapper for it, you might not care what it was written in. Mark Pilgrim has wrapped the Google SOAP API. Load up his PyGoogle module and google away. The wrapper takes care of the SOAP for you.”

Review: Jiiva’s ABC Frameworks

CocoaDevCentral: “The Omni Group has released a few very handy frameworks (if you’re doing networking, anyway). Various smaller companies and even hobbyists have released frameworks and palettes. One of the more complete and ambitious is the $199 (various discounts available in bulk) Application Builder Collection, or ABC, from Jiiva.”

The Weblog Tool Roundup

Webmonkey: “I’ve been running a personal website for about six years now. You should see the ladies’ faces light up when I casually drop that little nugget at a kegger or outside the dressing rooms at Old Navy. Their voices get husky, they twist their frosted curls around suggestive fingers, jot their numbers on my bare chest just in case I need someone to do some ‘freelance QA work,’ you know how it is.”

The ThinkFree Alternative

O’Reilly: “ThinkFree Office 2.0, the low-cost alternative to Microsoft Office, is now available on Mac OS X. Sure, this has been tried before.”

PHP and PostgreSQL

DevShed: “Well, it’s time to bring some balance back to the universe. Which is why this article looks at PHP from the PostgreSQL developer’s point of view, explaining how PHP can be used with the PostgreSQL database system.”

Output Buffering with PHP

DevShed: “I’m going to introduce you to some little-known, but nevertheless very useful functions, which offer you never-before-seen control over the output generated by your PHP scripts, and provide some interesting twists on the standard way of writing PHP code.”

A Cocoa About Box

CocoaDevCentral: “In Cocoa, a standard about panel is very easy to implement and is more than sufficient for most application’s needs. And best of all, Cocoa does nearly all of the work for you.”

TFM beta 3

It’s an app for reading, browsing, and searching Cocoa docs, source code, and so on. By Classical Software.


© 1995-2014 Ranchero Software, LLC