Programming
More Learning Than I Can Shake A Stick At
2008-05-06

Out of the Tunnel: 1/30s f/6.3 ISO400 17mm -0.3ev, Canon 30D, Canon 17-55 f/2.8 IS
I've been a bad blogger -- not blogging. It has something to do with working harder, commuting further, and earning less, but it's also also tied up with my head being in continual input mode right now.
My temporary spot tech writing has morphed a little and I have another writing client for whom I'm doing a developer guide for cell phone middleware, so I seem to have become a technical writer without really meaning to (talking to others, this is how it apparently happens). Not only that, I'm hiring and managing other tech writers. Plus I continue to plug away at my Cocoa application in my "spare" time.
Let's see, I'm learning:
- Ruby
- Rails
- XML
- XForms
- XPath
- How to hire and manage tech writers, set up a tech pubs department, etc.
- How enormous chips are designed
- Big chunks of Cocoa
- Object-oriented programming
- The practical application of MVC
- PDF document structure
- The math of Bezier curves
|
Cocoa Programming for Mac OS X Third Edition
2008-04-30
The third edition of Aaron Hillegass's book Cocoa Programming for Mac OS X is now available. It's been brought up to date with garbage collection, XCode 3.0, Core Data, Core Animation, and Leopard.
XCode and Subversion: How Do I Revert?
2008-04-17
I managed to code myself into a corner writing my Mac application. IKImageBrowserView has some quirks and when I tried to reorganize the structure of my code, I couldn't get it to work at all. The changes were combined with Interface Builder alterations as well, so it was complicated.
I have an alternate approach, but I have to undo the changes I made. Subversion to the rescue. I have a subversion repository set up and so I can revert to a previous version. But how? The subversion functionality in XCode is very limited: it's really only any good for checking in new versions and looking at history. There is no way to see the structure of past versions and no way to revert any more than single files.
The answer was to tag the current version by copying it to the tags subversion folder and then check out the older version. I did all of that with snvx. It's a simple but functional GUI subversion client.
My subversion repository has moved from its old location that I set up with Tiger. I had hoped to be able to access it from my laptop over AFP, but locking does not work. So I moved it to an HTTP server-based repository. There are plenty of places on the web that detail how to set it up with Leopard, and it was simple to do. Next I need to figure out how to do ssh tunneling and I'll have a remote access solution.
I have an alternate approach, but I have to undo the changes I made. Subversion to the rescue. I have a subversion repository set up and so I can revert to a previous version. But how? The subversion functionality in XCode is very limited: it's really only any good for checking in new versions and looking at history. There is no way to see the structure of past versions and no way to revert any more than single files.
The answer was to tag the current version by copying it to the tags subversion folder and then check out the older version. I did all of that with snvx. It's a simple but functional GUI subversion client.
My subversion repository has moved from its old location that I set up with Tiger. I had hoped to be able to access it from my laptop over AFP, but locking does not work. So I moved it to an HTTP server-based repository. There are plenty of places on the web that detail how to set it up with Leopard, and it was simple to do. Next I need to figure out how to do ssh tunneling and I'll have a remote access solution.
Cocoa Cheerleaders
2007-12-02

Cocoa Cheerleaders is brought to you by the team at PyrusMalus. It's a large collection of links to blogs, articles, books, code, and other information about Cocoa.
My interest piqued by the name, I discovered that PyrusMalus is the Latin name for the Domestic Apple tree. And there is a mystery application in the works looking for alpha testers called Atlantic.
Leopard: New Developer Features
2007-11-12

Deric Horn gave a very informative one-hour talk at Cocoaheads at Apple in Cupertino this week covering the developer improvements in Cocoa for Leopard. There are so many improvements under the hood that it is hard to remember all of them and Deric's talk served to fill in those blanks. Attendance was very good, and there were plenty of new faces. If you live anywhere nearby it is worth a visit. We meet in Town Hall, building 4. That's the auditorium where Steve Jobs introduced the new iMac, iWork, iLife, and .Mac in August.
I recorded the audio on my Canon S3 and edited it in GarageBand. You can download the file (AAC stereo, 30MB) via the Silicon Valley Cocoaheads page.
Learn Cocoa At Stanford
2007-11-10

Stanford University has a Cocoa programming course. Information about the course, code, and the lecture slides are available online.
Leopard: Objective-C 2.0 Part Two
2007-11-04
Scott Stevenson has posted Part 2 of his series on Objective-C 2.0. He covers public properties and private setters, custom accessor and variable names, mixing synthesized and custom accessors, and providing methods at runtime.
It's all good stuff -- both the features in Objective-C 2.0 and Scott's presentation of the material.
It's all good stuff -- both the features in Objective-C 2.0 and Scott's presentation of the material.
Leopard Programming Information Starting To Appear
2007-10-31
A couple of sites now have examples of coding under Leopard: a quick Objective-C 2.0 tutorial from Scott Stevenson, a bound NSCollectionView from Kevin Hoffman.
A good place to start exploring what's new in Leopard development is in the release notes at the Leopard dev center. You'll need an ADC membership to get it, but now the free membership works.
A good place to start exploring what's new in Leopard development is in the release notes at the Leopard dev center. You'll need an ADC membership to get it, but now the free membership works.
NSCoder Night
2007-10-25

Chris Hanson has announced NSCoder Night: every Tuesday 7:00pm to 9:00pm. Anyone who is interested in Cocoa/Mac programming can show up at Orchard Valley Coffee in Campbell to get help, give help, show, write, debug, whatever. Scott Stevenson has an announcement that features a Google map.
The first meeting is of course after Leopard's release, so the NDAs will no longer apply and there will be much rejoicing.
REAL Software Is Looking For A Cocoa Programmer
2007-08-03

Geoff Perlman at REAL Software is looking for a Cocoa programmer to help them complete their Cocoa platform layer and improve their Mac support for REALbasic. If you haven't met REALbasic yet, it's worth a look. It's a cross-platform programming system for Mac, Linux, and Windows particularly suited for rapid deployment, similar in many ways to Visual Basic.
Abject-Oriented Programming
2007-06-30
Tired of the object-oriented approach and looking for something new? Try Abject-Oriented Programming:
See the comments too. Lots of clueful input that adds to the effect and lots of clueless input that shows what is wrong with the state of computer science today.Abject-oriented programming is a set of practices for encouraging code reuse and making sure programmers are producing code that can be used in production for a long time. The number of lines of code in the application is a common measure of the importance of the application, and the number of lines a programmer can produce in a day, week, or month is a useful metric for project planning and resource allocation. Abject-oriented programming is one of the best ways to get the most lines of code in the shortest time.
abject: utterly hopeless, miserable, humiliating, or wretched: abject poverty.
And The OMGTWTF Winner Is...
2007-06-19

A calculator. In fact all the entries to the OMGTWTF contest were calculators -- amazing badly designed, badly implemented, unnecessarily convoluted, and obscurely coded calculators. That was the whole point. Where else but in critical working code would you find such gems as the MakeNegative function?

The twelve finalists are as follows:
OMGWTF Finalist #01: The Buggy 4-Function Calculator
OMGWTF Finalist #02: The FileSystemHashMapNotepadCalculator
OMGWTF Finalist #03: The estimator
OMGWTF Finalist #04: TerseCalc
OMGWTF Finalist #05: WTF Web Calc
OMGWTF Finalist #06: OMG!OCRCAL
OMGWTF Finalist #07: Rube Goldberg's Calculator
OMGWTF Finalist #08: Universal Calculator
OMGWTF Finalist #09: Terry's Calculator
OMGWTF Finalist #10: FerronCalc
OMGWTF Finalist #11: VICE, Virtual Integrated Circuit Engine
OMGWTF Finalist #12: ExtensibleCalc
A Guide To Objective-C for C++ Programmers
2007-06-06
Pierre Chatelier has posted a PDF guide to Objective C for C++ programmers. It's very good and very complete. I recommend it for anyone who only knows straight C as well because it covers the lesser-know corners of the language that are easily forgotten.
Site Focus: The Daily WTF
2006-12-30

The Daily WTF has a tag line that expresses exactly what it posts on a daily basis: Curious Perversions in Information Technology. Stories include inept management, peculiar programming techniques (Code Snippet of the Day), disastrous database techniques, labyrinthine designs, bizarre and ineffective security techniques, and incredibly misguided product developments . It is heavily tilted towards database, visual basic, enterprise application type of programming, but any member of an IT team will appreciate the material.
The Bagelturf site welcomes Donations of any size