For computer programs that I have written, and for my publications in electronic form, please see my home page. This brain for hire (teaching, writing, editing, programming, etc.).
The new edition of “volume 2” of my iOS programming book pair, now titled Programming iOS 13. Updated for Swift 5.1 and Xcode 11. Code from this book is available at my github site.
The new edition of “volume 1” of my iOS programming book pair, now titled iOS 13 Programming Fundamentals with Swift. Updated for Swift 5.1 and Xcode 11. Code from this book is available at my github site.
The new edition of “volume 2” of my iOS programming book pair, now titled Programming iOS 12. Updated for Swift 4.2 and Xcode 10. Code from this book is available at my github site.
The new edition of “volume 1” of my iOS programming book pair, now titled iOS 12 Programming Fundamentals with Swift. Updated for Swift 4.2 and Xcode 10. Code from this book is available at my github site.
The new edition of “volume 2” of my iOS programming book pair, now titled Programming iOS 11. Updated for Swift 4 and Xcode 9. Code from this book is available at my github site.
The new edition of “volume 1” of my iOS programming book pair, now titled iOS 11 Programming Fundamentals with Swift. Updated for Swift 4 and Xcode 9. Code from this book is available at my github site.
The new edition of “volume 2” of my iOS programming book pair, now titled Programming iOS 10. Updated for Swift 3 and Xcode 8. Code from this book is available at my github site.
The new edition of “volume 1” of my iOS programming book pair, now titled iOS 10 Programming Fundamentals with Swift. Updated for Swift 3 and Xcode 8. Chapters 1–5 and the Appendix of this book are available to read online for free. Code from this book is available at my github site.
Wrote the documentation for version 6 of Script Debugger. This online documentation was written entirely with RubyFrontier.
This is “volume 1” of my iOS programming book pair, now titled iOS 9 Programming Fundamentals with Swift. Now updated for Swift 2.0. If Swift 2.0 threw some curve balls at your code, this is the book to get. Plus, documents new features of Xcode 7. Read this book first and now you’re ready for the other book! Code from this book is available at my github site.
Latest revision of “volume 2” of my iOS programming book, now called (of course) Programming iOS 9. Rewritten to cover iOS 9 and Xcode 7, with all code in Swift 2.0. Code from this book is available at my github site.
This is “volume 1” of my iOS programming book pair, now titled iOS 8 Programming Fundamentals with Swift. Teaches the Swift programming language, Xcode usage, and the basics of the Cocoa framework. Read this book first and now you’re ready for the other book! This was a really difficult book to write, because Apple threw us a curve ball by creating Swift, and I had to work out a way to teach it. My approach to explaining Swift is, of course, like no one else’s. Code from this book is available at my github site.
Complete revision of “volume 2” of my iOS programming book, now called (of course) Programming iOS 8. Rewritten to cover iOS 8 and Xcode 6 — and all code completely recast to use the Swift programming language! Code from this book is available at my github site.
Regular author of reviews and columns for this prestigious online magazine (the oldest Macintosh online magazine in existence). For links to some of my writings in TidBITS, see my home page.
Occasionally, I’ve also used my programming experience to assist TidBITS operations. For example, I’m largely behind the current use of subversion at the heart of the TidBITS publication workflow. And some years ago, I transmuted the entire archive of TidBITS back issues from .etx (“setext”) email text format to HTML, using Nisus Macro language scripting (all TidBITS back issues are now available nicely formatted on the Web because of this work).
This is the second volume of my revised iOS programming book, entitled Programming iOS 7, consisting of Chapters 14–39 of the previous editions, covering views, view controllers, controls, frameworks, and some additional topics like files, networking, and threading. For more information, see my home page. Code from this book is available at my github site.
You can also hear a related MacVoices podcast.
Revised my book yet again, to cover iOS 7. The book was getting very large, so we broke it into two separate volumes. The first volume, entitled iOS 7 Programming Fundamentals, consists of Chapters 1–13 of the previous editions, covering the basics of the language, the IDE, and the app creation process. For more information, see my home page. Code from this book is available at my github site.
Revised my book once again, to cover iOS 6 — hence, Programming iOS 6. For more information, see my home page. This edition is now available to read for free online.
Wrote the ebook Take Control of Using Mountain Lion.
You can also hear a related MacVoices podcast.
Wrote the documentation for version 5 of Script Debugger. This online documentation was written entirely with RubyFrontier. The work also involved revising Script Debugger’s new scriptability dictionary (“sdef”), as well as helping to wrangle the beta-testers. Plus, I made eight tutorial webcasts.
Revised my earlier book, Programming iOS 4, to cover iOS 5 — hence, Programming iOS 5. For more information, see my home page.
You can also hear a related MacVoices podcast.
Wrote the ebook Take Control of Using Lion.
You can also hear a related MacVoices podcast.
Wrote an O’Reilly book on iPhone / iPad programming, Programming iOS 4. For more information, see my home page.
Once the iPhone SDK was sufficiently far advanced, I couldn’t resist; I got an iPod touch (and later an iPad) and started writing apps. Apps so far under my own name are: Albumen, Zotz!, 99 Bottles!, LinkSame, J&S Latin Vocab, and JACT Greek Vocab.
I’m also the author of the TidBITS News app. Plus I’ve done some contract programming for iPhone, but I’m not allowed to tell you about it.
Wrote the ebook Take Control of Exploring & Customizing Snow Leopard.
Updated the online documentation (help book) for version 1.5 of MacSpeech Dictate, and also designed and wrote a completely new PDF User Manual using Adobe InDesign. If you’re curious, you can download the manual here.
Did a great deal of work helping with FaceSpan 5, the incredibly great (and, unfortunately, now abandoned) successor to earlier versions of FaceSpan. This application, which lets AppleScript programmers write stand-alone GUI apps in a powerful, easy way, was created by Mark Alldritt. I wrote documentation Web pages and examples, plus I edited the internal AppleScript dictionary to make it an essential and useful part of the documentation. Click here for more info.
Wrote the online documentation (help book) for version 1.3 of MacSpeech Dictate. This online documentation was written entirely with RubyFrontier, from scratch, in just three weeks. At the moment, MacSpeech’s Web site describes this as “Exceptional Online Help”, “a complete online, searchable help book … convenient to use, easy to understand.” So I guess they liked it! As usual, I also pinpointed a number of bugs and in other ways made myself useful (or pesky, depending on how you look at it).
Wrote the documentation for version 4.5 of Script Debugger. This online documentation was written entirely with RubyFrontier. You can now view the documentation! The work also involved rewriting the narrative introduction (tutorial) and editing Script Debugger’s new scriptability dictionary (“sdef”), as well as helping to wrangle the beta-testers.
Started creation of the documentation for the successor to Jon’s Phone Tool, codenamed Dialectic. I say “started” because, although I estimated the whole job as requiring three weeks of work, and although this estimate proved to be highly accurate, Jon asked me to stop working after two weeks. So the content that I created for him will probably be incorporated into the online documentation for this application, but it won’t be my content and (at my request) I won’t be credited with authorship. Nothing wrong with that; I’m very happy to contribute to the writing of documentation at any stage.
I’d like to add something about the nature of my contribution to the application as a whole. I didn’t just write documentation. In order to do that writing, I systematically tested every single tiny little bit of the application’s functionality, and in the course of doing that I found many, many bugs that Jon’s beta testers had missed. I also found many inconsistencies and infelicities in the interface, and made many suggestions for improving the application’s interface and behavior. So perhaps for this job, and for any job where I write documentation, I should be calling myself something like Documentation Writer, Ultimate Beta Tester, and Interface Brainstormer. Anyway, my point is, that’s the kind of work you can expect from me if you hire me to write your documentation. If you don’t want your bugs found, don’t hire me!
You can read a recommendation of me that Jon Nathan wrote about this work.
Wrote the ebook Take Control of Customizing Leopard.
Wrote Cocoa classes and AppleScript API for custom functionality in an AppleScript Studio application. This was an interesting assignment. Avatar already had an AppleScript consultant writing an AppleScript Studio application for them, but AppleScript Studio is bridged only to a small subset of Cocoa’s abilities. My job was to use Objective-C to provide some further desired functionality, along with bridge code to allow my Objective-C code and the other consultant’s AppleScript code to communicate back and forth.
Wrote the original documentation for Opal, the new Mac OS X-native version of the developer’s Acta outliner. (After about version 1.0.7 the developer took over maintenance of the docs himself.)
Wrote the documentation for version 4 of Script Debugger. (This online documentation was written entirely with Frontier and John Gruber’s Markdown.)
Wrote the second edition of AppleScript: The Definitive Guide. For more information, see my home page.
Wrote the ebook Take Control of Customizing Tiger.
Wrote the manual for Ovolab Phlink (software and hardware that turns your computer into a telephone answering machine). The manual was completed in time for WWDC in January of 2005 (even though the developer didn’t get the final version of the software to me until about four days beforehand), and is now part of the Phlink 2.0.x release. The way you control what Phlink does is mainly by extensive use of AppleScript; I wrote a book about AppleScript, so this manual was a natural for me to write, and was a lot of fun.
Wrote two Take Control ebooks about Microsoft Word, Take Control of What’s New in Word 2004.
Wrote the documentation for Affrus, a Perl editor/debugger. (I later wrote an online article about how this documentation was written using Eastgate’s Tinderbox.)
Wrote a custom thumbnailing application. The Photo Lab at Warner Bros. Studios sends out many CDs of still photos, and these need to be accompanied by a page of thumbnails showing what’s on the CD. The formatting requirements here are rather specific, and the Lab was producing these thumbnail pages essentially by hand; they called me in to see if the process could be automated. Although I considered a scripting solution, the simplest, quickest, and most reliable approach, seemed to me to write them a custom application, which I did using Cocoa.
Wrote the ebook Take Control of Customizing Panther, as part of the new TidBITS publishing venture, the Take Control series.
Wrote the book AppleScript: The Definitive Guide. For more information, see my home page.
Served as lead Cocoa programmer - in fact, I was the only Cocoa programmer - creating from scratch a custom Cocoa application for DangerIsland’s corporate client. This application has now shipped and is in full-time use in a commercial environment, but unfortunately it isn’t yet available to the general public so I can’t show it to you.
Here’s the story. There’s a rock band called Pearl Jam that has a fan club called Ten Club, which sells club memberships, tickets, and other goods both through mail order and via an online store. The store is managed through a database - when you buy stuff through the online store, you’re actually talking to this database, and the Ten Club employees manage the store through the database as well, entering mail orders, fulfilling both web and mail orders, maintaining inventory, and so forth. The entire system is contracted out to DangerIsland. Until recently, it was all done through FileMaker, but this wasn’t scaling well, so DangerIsland wanted to switch to MySQL. But unlike FileMaker, MySQL is just a database: it has no GUI front end. My job was to write one.
My application, MerchMaid, is how Ten Club views and works with the database. It communicates transparently with the MySQL database; the Ten Club folks don’t know any SQL and they don’t have to, because my application speaks it for them. They can enter, find, and edit customer records, find and enter orders, and take those orders through the entire fulfillment process. My application speaks XML over the Internet to authorize and settle credit card orders, it prints the lists Ten Club uses to pull goods off the shelf in the warehouse, it prints the forms included inside the boxes of goods to be shipped out and the labels to go on the outside, and keeps track of inventory. It even sends out emails to customers telling them their order has shipped! In short, it’s the center of Ten Club’s entire customers-and-orders operation.
This application was great fun to write, mostly because Cocoa is so cool. Also, throughout the entire design and programming process I got to work with other employees of DangerIsland who were taking care of other parts of the system (such as the MySQL database itself, and the Lasso code used to tie the online store to the database). Thus I was involved in a major cooperative commercial programming effort from start to finish.
From its inception I served on the editorial board of this exciting new magazine for REALbasic programmers, advising on editorial policy on the basis of my experience both with the language and as a former MacTech editor. I also wrote the regular Algorithms column for REALbasic Developer, and contributed the occasional feature article as well.
This site represents the most extensive integration of Panorama and Frontier I’ve ever done. The webmaster wanted to be able to build and maintain the site with Frontier while keeping all the content in Panorama. Starting with his web design, I created a series of Frontier templates and scripts that allow him to do exactly that. Just about none of the web page content is in Frontier; it is all kept in a set of Panorama database files, and the site is built by having Frontier scripts grab the content from Panorama and pour it through the templates, building the structure of the site and constructing the navigation links. This melding of Panorama and Frontier allows the webmaster to take advantage of Panorama’s strengths as a true database (fast sorting, searching, and filtering) and avoid Frontier’s weaknesses.
Became webmaster for their site, giving it a complete rewrite while adhering to the basics of the existing design. (I am no longer maintaining the site.) In my system for the site, I generated it in an interesting way: since the site was basically a catalog, I kept the data (including pictures) in a Panorama database; then I used Frontier to construct the actual pages of the site, communicating with Panorama using Apple events. I had written Frontier scripts to generate the thumbnail images by scripting Graphic Converter and place the images in the catalog pages as links to the pages containing the larger versions of the same images.
The whole system was automated, so when the Morgan Carriage people wanted to add an item or change a price, they just let me know about it, I stuck that information into the database, and then the relevant pages were regenerated automatically with no further work on my part (and so, with no charge to them).
Wrote the documentation for version 3 of Script Debugger.
Wrote the second edition of my REALbasic book (700 pp., September 2001), covering REALbasic 3.2 (and to some extent 3.5) and Mac OS X. For more of my material associated with REALbasic (online articles, examples, etc.) see my home page.
Using REALbasic, wrote the Mac version of Galileo, a stereo image generator. I don’t really know whether this software was ever released, or whether, if so, the Mac version was developed further; the code was complete, working fine, and fully documented at the time I handed it over in order to devote full-time attention to the second edition of my REALbasic book.
Wrote the documentation for their free JavaScript OSA scripting system.
During this period I was involved in some occasional Frontier consulting for some work being contracted out by this firm.
This work involved integrating strong encryption into a Frontier dynamic web site. An outcome of this was my REALfish application, a cross-platform, scriptable REALbasic implementation of Blowfish encryption which you can download at my REALbasic page.
Created and maintained catalog web site, using Frontier and Panorama. See my comments on the Morgan Carriage site, above. (I am no longer involved with this site.)
When Late Night came to me, they were two weeks out from shipping Script Debugger 2.0 - but they had no manual, because their manual writer hadn’t come through. I wrote a complete draft of the manual in the required time, largely from scratch but also (thank heavens) from extensive notes accumulated by Mark Alldritt, Script Debugger’s developer.
I had a wonderful time doing this, because I felt I was the Man For The Job, if you see what I mean. I know scripting, and had used an earlier version of Script Debugger; I know FrameMaker, which was to be used to generate the manual; writing my books had provided me with the experience to teach this material in a fluid, straightforward way; and editing MacTech Magazine had taught me to work really fast!
You can read a letter from Late Night Software about this job.
Around this time, did some fairly extensive contract work on a Frontier dynamic Web site for someone affiliated with the Reproductive Sciences Program at the University of Michigan. Unfortunately that work remains under a non-disclosure agreement so I can’t tell you any more about it.
Around this time, did some REALbasic programming work for Macrobyte. They were mostly in the course of developing their Conversant online webhosting system using Frontier, but they also were doing some contract work porting an existing application from Visual Basic to REALbasic, and I very briefly contributed some code to that project.
Wrote the DrMatt Tutorial Pages, unifying UserLand’s documentation and bringing my own Frontier teaching up to date to cover Frontier 6.0 and eventually 7.0 and beyond. The pages were taken down when UserLand reneged on its contract.
Around this time I had a brief stint contributing to the documentation for Princeton Review’s homeroom.com project.
Conducted a small experimental computer camp for some local children, teaching them to program with REALbasic. As I expected, REALbasic turns out to be a wonderful way for kids to learn programming; it provides instant feedback, interactivity, and satisfaction, while subconsciously instilling modern programming habits such as object-oriented thinking.
Writing REALbasic: The Definitive Guide, a teaching and technical guide to REALbasic (650 pp., October 1999).
Besides consulting, I also do training! With Fieldston School, I did both. I’ve been teaching their Webmaster about Frontier via email (I even created a special series of training exercises for him), and consulting when the need arises; but I also went there and ran a three-day intensive seminar.
You can read a recommendation of me, if you like.
During this period I was involved in a number of Web site projects.
This page for AG Consulting doesn’t look like much; in fact, I didn’t even design its overall look. But behind the scenes, it’s managed by a clever little content management CGI that I wrote in Frontier. The AG Consulting people wanted their News, Events, and Career Opportunities pages to be constantly updated, correct, and mutually linked, without knowing any HTML themselves. So, in-house, they see a set of interactive Web pages with forms that they fill out (sorry, I can’t show you those, you’re not authorized!). When they use these forms to create a new entry or delete an old one, my Frontier scripts automatically generate the corresponding Web page, updating the table-of-contents page linking to the individual pages.
The folks at Keene Engineering had a printed catalog of their products, but no Web presence. I transformed the catalog from a Quark file into a set of Web pages. Since then, they’ve evolved the design of the pages, though; also, my original design involved a system (using Frontier) for attaching the correct, up-to-date price to each item in the catalog, extracting it automatically from their Excel database as the Web pages were built.
Christopher Drozd, head of Sportfit, had an extensive site of some 150 or 200 pages, with some interesting JavaScript effects, but no uniform look, and the site as a whole was difficult to maintain. I turned the entire site into a Frontier site. This allowed Christopher to tweak the overall look of the site (its “template”) and then regenerate all the pages, as well to maintain links between pages automatically. This shows how Frontier puts the power into the hands of the user; I didn’t make him a Web site, I made him the tools so he could maintain the Web site himself.
The now-defunct site http://www.emailjournal.com/ was an online journal with a Frontier-based Web application operating behind the scenes. Users could submit journal entries by email or through a Web form in their browser, and maintain a private or public journal online without knowing any HTML. If that sounds like a weblog, it was; but it was in the days before weblogs were common. (It was also before Frontier had Manila or MainResponder. This was an impressive piece of work! But alas, it no longer exists.)
When I started at MacTech, we literally didn’t know where the articles for the next issue would come from, and production of issues was chaotic (no timetables or procedures).
I gradually systematized the production process. I also built up our author contacts; through careful record-keeping and systematic canvassing, I generated a large stock of articles promised and submitted. By the time I left, we had an editorial calendar for the first time, and enough articles in the kitty that the magazine would be able to proceed comfortably for a year into the future!
When I started at MacTech, the magazine had an inconsistent overall look-and-feel; editing was spotty, articles being left largely in the form in which they were submitted.
Gradually, I substituted a production system where I edited the entire magazine word for word, rewriting extensively, imposing clarity and formality of style, and introducing uniformity of typographic and structural convention. One has only to compare, say, the December 1995 issue (before I was really in the driver’s seat), with the August and September 1996 issues (the last ones I edited) to see the difference.
I was the corporation’s unofficial scripting guru, solving problems on-the-spot using Nisus, Word, Excel, QuicKeys, etc.
I was also explicitly assigned various scripting projects, of which the largest was the transfer of the whole 1995 article base out of QuarkXPress into THINK Reference format for distribution on our annual CD. This was an interesting job: here’s how it worked.
I wrote a Frontier script which was able to find each article and its components in Quark, and export them as XPress Tags to Word; then I used a Word Basic macro to parse the Tags and construct a (very differently) formatted file for export to RTF, from which the THINK Reference files could be made. Meanwhile, pictures were passed through Graphic Converter (to reduce depth), again driven by Frontier. Finally, FileMaker was brought into play for the creation of the indexes.
iOS 13 Programming Fundamentals With Swift
O’Reilly Media, 655 pp., October 2019
O’Reilly Media, 1150 pp., December 2019
iOS 12 Programming Fundamentals With Swift
O’Reilly Media, 626 pp., October 2018
O’Reilly Media, 1145 pp., October 2018
iOS 11 Programming Fundamentals With Swift
O’Reilly Media, 620 pp., September 2017
O’Reilly Media, 1140 pp., November 2017
iOS 10 Programming Fundamentals With Swift
O’Reilly Media, 600 pp., September 2016
O’Reilly Media, 1050 pp., November 2016
iOS 9 Programming Fundamentals With Swift
O’Reilly Media, 580 pp., September 2015
O’Reilly Media, 1020 pp., November 2015
iOS 8 Programming Fundamentals With Swift
O’Reilly Media, 500 pp., March 2015
O’Reilly Media, 950 pp., November 2014
O’Reilly Media, 900 pp., December 2013
iOS 7 Programming Fundamentals
O’Reilly Media, 400 pp., September 2013
O’Reilly Media, 1150 pp., March 2013
O’Reilly Media, 983 pp., March 2012
O’Reilly Media, 806 pp., May 2011
AppleScript: The Definitive Guide, 2nd edn.
O’Reilly and Associates, 565 pp., January 2006
Take Control of Panther, Volume 1 [Section on Customizing Panther]
Peachpit, September 2004
‘AppleScript Power Handlers’
Mac Developer Journal, Summer 2004, 43-47 (also can be read online)
Mac OS X Panther Hacks [Hacks #13 and #18]
O’Reilly and Associates, June 2004
‘The REALbasic Language Revisited’
Mac Developer Journal, Spring 2004, 52-57 (also can be read online)
AppleScript: The Definitive Guide
O’Reilly and Associates, 500 pp., November 2003
‘Understanding Encodings’
REALbasic developer 2.2 (October 2003), 23
Note: This and all the other REALbasic developer articles can now be read from links on my REALbasic page.
‘Algorithms: Genetic Algorithms, Part 2’
REALbasic developer 2.1 (August 2003), 34
‘Algorithms: Genetic Algorithms’
REALbasic developer 1.6 (June 2003), 34
‘REALbasic 5 Preview’
REALbasic developer 1.5 (April 2003), 21
‘Algorithms: Memoizing’
REALbasic developer 1.5 (April 2003), 34
‘Algorithms: Hashing’
REALbasic developer 1.4 (February 2003), 34
‘Algorithms: Sorting (Heaps)’
REALbasic developer 1.3 (December 2002), 34
‘Algorithms: Sorting’
REALbasic developer 1.2 (October 2002), 34
‘Algorithms: Linked Lists’
REALbasic developer 1.1 (August 2002), 34
‘Expressions of Delight: REALbasic’s Regex class’
REALbasic developer 1.1 (August 2002), 24
REALbasic: The Definitive Guide, 2nd edn.
O’Reilly and Associates, 700 pp., September 2001
REALbasic: The Definitive Guide
O’Reilly and Associates, 650 pp., October 1999
Frontier: The Definitive Guide
O’Reilly and Associates, 600 pp., February 1998
‘Hypercard in Classical Language Teaching’
Australasian Wheels For The Mind 3:1 (1993) 16-22
‘SWEET16: a blast from the past’
8/16: The Journal Of Apple II Programming 1:3 (May 1990) 4-14
‘PEEKing at auxiliary memory: a Monitor utility’
The Sourceror’s Apprentice: The Assembly Language Journal Of Merlin Programmers 1:6 (June 1989) 2-10
Explaining recursion to a terrified but spellbound audience |
‘The O’Reilly Author Experience’
OSCON, Portland, OR, July 2012
‘Replacing AppleScript With Ruby’
MacTech Conference, Los Angeles, CA, November 2010
‘Developing Help for the Mac’
WritersUA Conference, Portland, OR, March 2008
Macintosh applications have a standard way of accessing online help: choose from the Help menu to see online Help Viewer documentation, plus any embedded PDFs, movies, and so on. How did those resources get into the application? This talk explains the process. I’ll demonstrate how to embed your help files into an application and make them searchable. Plus, I’ll show other tools and techniques used cooperatively by the developer and the documentor, such as interface tooltips, and interface buttons that access specific help pages.
- Listen to a recording of this talk.
- View a PDF of the slides associated with the talk.
- Watch a screencast based on this talk. It’s a 15-minute tutorial on how to implement Apple Help in your Xcode project.
‘AppleScript Studio in Leopard’
AppleScript Pro, St. Petersburg, FL, February 2008
‘AppleScript for Hackers and Slackers’
AppleScript Pro, St. Petersburg, FL, February 2008
AppleScript is a very strange language. It is deficient in many features basic to a modern scripting language; yet it also implements numerous power features, such as recursion, the script object inheritance chain, first-class status of handlers and script objects, and closures. This talk illustrates and explains some of these power features — features that very few AppleScript programmers actively use, but they’re there if you want them (or if you just want to amaze your friends and astound your enemies)!
- Listen to a recording of this talk.
AppleScript Pro, Denver, CO, June 2007
AppleScript Pro, Secaucus, NJ, May 2006
AppleScript Pro, Monterey (CA), May 2005
AdHoc/MacHack Pre-Conference Training, Detroit, July 2005
‘Apple Events: Packets of Power’
Apple Worldwide Developer Conference (WWDC), San Francisco, June 2007
‘AppleScript Studio in Tiger’
AppleScript Pro, Denver, CO, June 2007
AppleScript Pro, Secaucus, NJ, May 2006
AppleScript Pro, Chicago, October 2005
‘Customizing Tiger’
South Bay Apple Macintosh User Group, August 2006
‘Scripting Microsoft Word 2004’ and ‘AppleScript Studio’
AppleScript Pro, Newport (RI), November 2004
‘AppleScript Studio’
AppleScript Pro, Monterey (CA), May 2004
‘AppleScript Everywhere’
O’Reilly Mac OS X Conference, Santa Clara (CA), October 2003
‘Taking control of Mac OS X’
O’Reilly Mac OS X Conference, Santa Clara (CA), October 2002
Power User Conference Session, Macworld Expo, San Francisco, January 2002
Wishing your Mac would help you with some repetitious or tedious or specialized task, or that you could get different programs working in automated harmony? You can, and with Mac OS X you’ve got more options than ever: macros; the Unix shell; scripting with AppleScript, JavaScript, or Perl; and writing an application. And you can combine them! Attendees will learn what their options are for controlling the Mac, what sorts of task each option is good for, and what investment of time and effort might be required. Extensive real-world examples will demonstrate QuicKeys, Terminal, BBEdit, Script Debugger, and REALbasic and Cocoa; applications driven will include FileMaker Pro, Eudora, Microsoft Word and Excel.
‘Taking control of your Mac’
User Conference Session, Macworld Expo, San Francisco, January 2001
‘REALbasic: Who’s afraid of object-oriented programming?’
O’Reilly booth, Macworld Expo, San Francisco, January 2001
(This talk evolved into an online article.)
‘For kids (of all ages): learn programming with REALbasic’
O’Reilly booth, Macworld Expo, New York City, July 2000
(This talk evolved into an online article.)
‘Taking control of your Mac with macros, scripts, and programming’
Santa Barbara Macintosh Users Group, April 2000
‘Complete Web site management and CGIs with UserLand Frontier’
3-hour intensive seminar, MacFair LA, Burbank (CA), May 1998
‘Complete Web site management with UserLand Frontier’
MacWest Expo, Los Angeles, October 1997
‘The TidBITS experience’
Panel with Adam Engst and Tonya Engst, MacFair, Los Angeles, May 1997
‘A successful Mac language lab’
Apple University Consortium Conference, Christchurch, NZ, August 1993
See my home page for a listing of these (and links, so you can read them, download them, etc.).
Back to Matt Neuburg’s Home Page
This page prepared
October 16, 2019
by Matt Neuburg, phd = matt at tidbits dot com,
using RubyFrontier.
RubyFrontier is a port, written in the Ruby language,
of the Web-site-creation features of UserLand Frontier.
Works just like Frontier, but written in Ruby!
Download RubyFrontier from
GitHub.