Tag Archives: mac

Thanks to our Core Int listeners

Yesterday we published episode 260 of Core Intuition. From the show notes:

Daniel and Manton discuss Sal Soghoian’s sudden departure from Apple, and what it may mean for Apple’s future ambitions with automation. Then they react to Apple’s alleged decision to abandon their line of AirPort branded routers, and bemoan the loss of yet another “just buy the Apple one” peripheral option

I liked the topics for our show this week because it allowed us to not just talk about AppleScript as it exists today, but also to reflect on what life developing scriptable apps was like in the early days of AppleScript. It’s always fun to think back on 1990s Mac development.

Many of our listeners are celebrating Thanksgiving today. To all of our listeners, whether you’ve listened since the beginning in 2008 or just recently discovered the podcast, thank you so much for giving our show a chance and for being part of the community. Daniel and I still feel incredibly lucky that we get to chat every week about Apple news and our work as indie developers.

SE/30 and the Mac Classic

I finally read Stephen Hackett’s article over at iMore about using “SE” in Apple product names. He lists the Macintosh SE, iMac DV SE, iBook SE, and others. Most are forgettable, but the SE/30 feels the most like today’s iPhone SE: better internals in an old package.

Stephen also pointed to a Macworld article with quotes about the SE/30 and other Macs. John Siracusa had this to say:

Though future models with the original upright shape were released, they were all tagged with the derisive moniker Classic. The SE/30 bore no such shame. It was and is the undisputed king of the original, iconic Macs and, therefore, of all Macs for all time.

The very first computer I ever owned was the Mac Classic. It was the cheapest Mac at the time, but still very expensive for us. I insisted that we get it despite the cheaper PCs that were more powerful and in color.

What struck me when I later saw my friend’s SE/30 was that the Classic was actually slower and worse in a couple of ways than the SE/30, even though the Classic came out almost two years later. Still, I loved that little machine. Everything good that has happened in my life since can be traced back 25 years ago to when I brought it home.

There’s a lot of hyperbole in the tech industry about creating products that make the world a better place. But most products just don’t have that big of an impact. To me, the Macintosh was an incredible, wildly divergent fork in the road — a choice leading to new friends and a new career, meeting my wife and starting a family. It’s hard to even imagine where the original path was leading.

Navigation controllers on the Mac

Brent Simmons has a good post about the pros and cons of bringing UIKit to the Mac. On the differences between iOS and Mac development, though, one point did stand out for me:

And there are things Macs don’t have at all — navigation controllers, for instance, since they don’t make sense in a context where you can just show the hierarchy via multiple panes.

Brent’s right that most Mac apps don’t need navigation controllers. I don’t think I’d have any use for them in my Mac app, Clipstart, for example. But navigation controllers are becoming more common in Mac apps, starting with Twitter apps especially. I expect an important part of Iconfactory’s work on the Chameleon framework to bring Twitterrific to the Mac was supporting navigation controllers.

I’ll always consider myself a Mac developer first, even though most of what I do these days is on iOS and for the web. I’d definitely welcome UIKit for Mac. I’m getting closer to announcing a new iPhone app and web platform, and while I have a Mac version in development too, I can’t justify the time right now to finish it. UIKit for Mac would make that decision much easier.

Two weeks notice: new products

Tonight I worked on some bug fixes to one of the new apps I hope to ship for Riverfold Software. I have just a handful of beta users, but got some good feedback and bug reports last week, things I want to address before opening it up to more users.

When I think of the in-progress apps that I can ship soon to help increase revenue, there are really only 2:

  • Clipstart 2.0, which will be renamed Sunlit for Mac, to complement the iPhone version.
  • Unannounced microblogging-related web app, which may also come with iPhone and Mac apps.

The problem with Sunlit for Mac is that I’m requiring 10.11 El Capitan. So no matter how much progress I make on it, I can’t ship it until Apple releases their next version of Mac OS X. I want to chip away at the new features, but I can’t spend all of my time on it yet. I need to focus attention on projects that have a chance of bringing in additional revenue in the very near future, not by the end of the year.

So the microblogging app — the one I worked on tonight — keeps coming to the front. Since it’s mostly a web app, it has the least number of external API and App Store dependencies that would hold it up. I can ship the core functionality whenever it’s ready. The sooner I get it out the door, the sooner I’ll know if it’s something I can count on as business income.

John Siracusa’s unbreakable record

I’ve been watching a lot of NBA games this season. I’ve caught well over half of the Spurs’s 82 games so far alone, on TV and SiriusXM in the car (and a few in person in San Antonio). I’m not sure how far they’ll make it, but you can’t argue with the greatness of this team over so many years.

The NBA has some records that just seem unbreakable. Either because the rules or style of play have evolved in the modern era, or because the records were insane at the time, these are feats we may not see again. Here are 10 such records, from Wilt Chamberlain’s 100-point game to the Laker’s 33-game winning streak to Bill Russell’s 11 championships. The Spurs’s 16-year streak of 50-win seasons is approaching this category of success as well.

That’s kind of how I view John Siracusa’s series of Mac OS X reviews on Ars Technica. There have been other excellent reviews about Mac OS X over the years, but the depth and consistency of John’s reviews may always stand apart. If you’re starting today and want to top it, you will have to work for the next 15 years just to be competitive at all.

Congratulations John on a great run. Nothing seems to last forever on the internet — web sites fade away, and some obscure technology isn’t well-covered to begin with — so it’s nice to know that these Mac OS X reviews are at a stable site where we’ll be able to reference them for years to come.

The third era of WWDC

“This is it,” a friend said to me as we were walking up Market Street with other developers, late at night as WWDC was winding down several years ago. The iPhone had hit. The conference was getting bigger. Apple was on the verge of becoming a giant in the industry and you could feel it in the air — a coming change that was obvious only from a distance because it disappeared as you reached for it, like San Francisco fog rolling over the bay. “This is the height of the conference and it’s never going to be like this again.”

Looking back it perfectly captured what I think of as the second “era” of WWDC. It was a kind of golden age for Mac and iOS developers, with a new generation of successful Mac indies and before the iOS race to the bottom was much past the starting line.

From my perspective, learning Mac development in the mid 90s, there are three distinct eras of Apple’s WWDC. My first WWDCs were at the San Jose Convention Center. The developer base was small enough that you consistently ran into everyone, companies like Metrowerks and even Adobe seemed to have an influence on the conference, and Apple frequently showed off new APIs that might not actually ship soon or ever. It was an exciting time to be a Mac developer but the rest of the world didn’t care. This was the backdrop for the failed Copland project, for Steve Jobs coming back, for the clash between Carbon and Cocoa, and the acceptance of Mac OS X.

The next era was at the move to San Francisco. The conference was getting bigger but Apple attempted to keep the events and themes that made WWDC the same, even for a while busing attendees to the beer bash in Cupertino. This is the time when the iPhone SDK arrived and the conference exploded. I think most developers will always look back at this time as something amazing. It’s the backdrop for that walk up Market Street and a dozen similar conversations.

Now we’re in the third modern era of WWDC, with one undeniable characteristic: a small percentage of developers can get a ticket to the conference. The community, however, is as strong as ever, and there’s still a desire to have WWDC be that “one place” that developers can meet each year. It’s a need that smaller, regional conferences, no matter how important they are, just can’t fill.

I like this post from James Dempsey because it starts with the assumption that not getting a WWDC ticket is the new normal:

“Once something changes from being dependably available to rarely available, you begin to form alternate plans and take alternate paths.”

He’s right. Since it’s likely that Apple will continue to iterate slowly instead of making major changes to grow the conference, we’re better off adapting. By adapting we can focus on preserving the community aspects of WWDC that are arguably just as important as the technical tracks.

And change comes slowly to WWDC. I realized while watching (https://developer.apple.com/tech-talks/videos/) recently that Apple just doesn’t see a big problem. John Geleynse described a situation where only one person from a team is at WWDC; the rest of the company is back at the office watching videos and sending questions to their coworker at the conference to ask in the labs. Getting videos out the same day makes the conference more useful for both those without a ticket and actual attendees (and their team) too.

(I still have complaints about how WWDC tickets are distributed and why Apple doesn’t attempt to grow the conference a little more, but the lottery is an improvement over last year. See Core Intuition episodes 132 and 133 for a full discussion.)

I’ll be in San Francisco for a few days next week — at AltConf, at the Cartoon Art Museum fundraiser, catching up on session videos, waiting in line for coffee, hiding in my hotel room writing code, and getting some good food and drink with fellow developers. WWDC means something different now, but it matters just as much as it always has. Hope to see you there.

Clipstart 1.4.2 (on MAS)

Just approved in the Mac App Store, Clipstart 1.4.2 fixes upload issues with YouTube and especially Vimeo, which was broken in previous releases because of Vimeo API changes. I expect this to be the final Mac App Store release for Clipstart. As I blogged about before, all Mac App Store customers can upgrade to the direct download version for free.

Here’s what you should do if you bought Clipstart from the Mac App Store:

  • Update to Clipstart 1.4.2 using the App Store app.

  • Run Clipstart at least once, then quit it. This allows it to copy the Mac App Store receipt so that it’s accessible to other versions of the app.

  • Download the latest version from the main Clipstart web site and replace the existing copy in your Applications folder with the direct download.

And if you’re thinking about buying Clipstart for the first time, please get it directly from the web site and checkout via PayPal. There’s also a demo with support for 2 uploads and tagging 20 videos.

I’m now turning my attention to version 1.5, which will improve a few things and add support for Gatekeeper on Mountain Lion.

Saying goodbye to Wii Transfer

“Around here, however, we don’t look backwards for very long. We keep moving forward, opening up new doors and doing new things, because we’re curious… and curiosity keeps leading us down new paths.” — Walt Disney

There are many posts on this blog about Wii Transfer, the little Mac app that launched commercially almost by accident, and convinced me that it would be worthwhile to invest time in this side business called Riverfold Software. Early posts like the launch post in 2006 or this one about the first 75 days, and this one covering the price bump in version 2.5. But the app has been fading over the last couple of years, no longer as relevant today as it once was. It’s time to let it go.

I’m retiring Wii Transfer to focus on my other apps. It’s not that it doesn’t sell; it still does. It’s just that it’s not an app I actually use anymore. By officially shelving the whole project, I hope to remove a psychological burden of sorts — to no longer worry that I’m ignoring an active product.

It also doesn’t fit into a new theme I have for Riverfold: apps that are all about keeping and remembering what matters. For Clipstart, that’s family videos. For Tweet Library and Tweet Marker Plus, that’s old tweets. Wii Transfer is about… listening to music on your Wii? It doesn’t fit, and in the world of the Apple TV and Roku, modern streaming technology has passed the app by.

If anyone is disappointed that Wii Transfer will no longer receive updates, of course I offer refunds. I won’t be selling or open sourcing the app, preferring instead to continue to support existing customers myself for as long as they want to use the app. And I’ll keep the automatic bookmark service running that makes setup easy, as well as the Mii rendering service, so nothing breaks.

I put a lot of work into Wii Transfer over its 5-year lifespan. It’s not easy saying goodbye, especially to some of the unique things that only Wii Transfer could do, such as exporting Miis as images. Maybe I can bring that back one day. For now, I’m following the path started by my apps Tweet Library and Clipstart, for which there are many new things still to do.

Clipstart 1.4.2

I released a small bug fix update to Clipstart today, version 1.4.2, to fix an issue with YouTube uploads when using your Gmail address sign-in instead of the YouTube account username. This version should also show up in the Mac App Store after it goes through Apple’s approval process. You can see the full release notes for recent bug fixes here.

As I said earlier this year, there will only be a couple more releases of Clipstart in the Mac App Store. My current plan is to switch completely over to direct-only sales with version 1.5. The new versions run without prompting for registration if you’ve already purchased and run a copy from the Mac App Store.

Holiday bundles and no-brainer promotions

Two new bundles were announced this week: “The Indie Mac Gift Pack”:https://indiemacgiftpack.com/ (6 great Mac apps for $60) and the “Fusion Ads Holiday Bundle”:https://fusionads.net/bundle/ (an assortment of web design-related apps, icons, and more for $79). I love apps in both of these bundles and recommend you check them out, buy what you need, or gift them to a friend. There’s a fear among many developers that a bundle can cheapen the healthy Mac software market, but both these bundles avoid that with a higher price and the feel of being put together carefully.

As a comparison, here’s a “Macworld article on holiday bundles from 2009”:http://www.macworld.com/article/145005/2009/12/holiday_bundles.html. That collection seems kind of random despite several good apps in the list.

And sales for the Indie Mac Gift Pack are split evenly to the developers, so we know it’ll be a nice revenue boost for them during the holidays. From the FAQ:

“Hey… you’re ripping these developers off, aren’t you?” … “No… we ARE these developers. Our six small companies decided to band together and do a promotion, to see if it works for us. We’re splitting all the proceeds evenly. There’s no middleman here.”

I’ve never participated in a bundle, but after some of the “MacHeist controversy”:http://homepage.mac.com/simx/technonova/reports/from_the_mouths_of_developers.html I developed a set of rules that I run Riverfold promotions on. These are the easy things that I can always say “yes” to without much thought:

Coupons are great. My coupons rarely expire and I don’t care if sites like “retailmenot.com”:http://www.retailmenot.com/ keep a list of them. Saving a few bucks might be the difference between someone buying my software and not.

Giving out software to bloggers is great. Inspired by “Wil Shipley’s C4 talk”:http://www.viddler.com/explore/rentzsch/videos/4/, I’ve “blogged about this”:http://www.manton.org/2008/04/wii_transfer_serial.html. Apple employees get free licenses too.

Small promotions are great. I freely give out copies to small sites that want to give away licenses of my software to encourage people to post comments. I think readers interpret these (correctly) as software developers doing something generous for a small site, instead of the gut reaction when you see software listed on MacZot or MacUpdate Promo (“are sales so bad they had to sell their software for half price?”).

Charity is great. I loved being a part of “Indie+Relief”:http://www.indierelief.com/, the Pan-Mass Challenge auctions, and other bundles that go directly to a cause. Just like smaller promotions, these are good for users (deals on software), good for developers (helps with marketing), good for charity (donated money), and good for the software market (these aren’t developers who are making a sacrifice because their sales aren’t doing well — it’s charity).

Now that I’ve seen a bundle like the “Indie Mac Gift Pack”:https://indiemacgiftpack.com/, I think I can more clearly judge a unique bundle opportunity when it comes along. Does it minimize the middleman? Does it respect the individual apps as peers? Does it use the total bundle price to underscore the value of software rather than cheapen it? Then it’s probably a good deal for everyone.

$1 apps won’t dominate the Mac App Store

“Marco Arment wrote an interesting piece”:http://www.marco.org/1432156914 on the Mac App Store shortly after it was announced. I was nodding my head in agreement for much of it, until I got to this part:

“And if the Mac App Store is only populated by a subset of today’s Mac software, a few key points (such as ‘Inexpensive’) still won’t be true. This is why I believe that the Mac App Store will be dominated by (and become known for) apps that don’t exist on the Mac today.”

He makes great points, and I think his assumptions about Apple’s rules are correct. But newcomers dominating the store? And $1 apps as the second most popular price point on the Mac? I’m not convinced.

Many iPhone app hits lend themselves to a mobile environment, but the Mac is different because people usually buy computers to get work done. You don’t have your MacBook Pro with you while you’re waiting in line at the grocery store. You don’t have it at a party when your friend tells you about the latest game. You don’t hand your computer to your kids when they’re bored in the car and want to play Angry Birds.

If $1 apps will be so common on the Mac App Store, why aren’t they common on the iPad? In the iPad top 10 right now there are only two 99-cent apps. Prices around $2.99 or $4.99 are much more common, and there are plenty of $10 apps as well in the top paid and especially top grossing lists. The iPad app making the most money right now is a $20 music app called “djay”.

I think $10-$20 will be pretty common on the Mac App Store, but not $1, and not even $2 or $3. Something that’s priced so cheap sends a clear message on the Mac: this app is useless and should have been free.

As I said recently on “Core Intuition”:http://www.coreint.org/, I absolutely wish all the best of luck to iOS developers and designers moving to the Mac. I had a great time hanging out with a mostly iOS group at 360iDev last month; these guys are ambitious and smart and bring innovation to the platform because they don’t have the baggage that the rest of us have. 2011 will be a fantastic year for new Mac software and for indie developers!

But take a good look at some of your favorite apps for iPhone and iPad and you’ll see that for the most part they lack the depth to compete with established Mac software. The workhorses on your Mac — text editors, image editors, file transfer apps, version control clients, web site tools — won’t be knocked off by new competition easily.

Maybe 10.7 Lion will be a revolution, but when the Mac App Store first launches on 10.6 it’s going to contain familiar software at familiar prices.

Laughing at the guidelines

Apple’s announcement yesterday of a Mac App Store is big news. As soon as the event was over, journalists reached out to developers to get feedback on what it means for existing Mac shops. Reading the variety of responses is fascinating to me, and I contributed some quotes for articles in “Macworld”:http://www.macworld.com/article/155061/2010/10/developers_mac_app_store.html and “Cult of Mac”:http://www.cultofmac.com/mac-app-store-more-developer-reaction/65036. There’s also a “write-up on Ars”:http://arstechnica.com/apple/news/2010/10/mac-app-store-boon-or-bust-for-developers.ars.

Here’s “Wolf’s take on the guidelines”:http://rentzsch.tumblr.com/post/1369652253/mac-app-store:

“My fellow Mac developers are laughing at the Mac App Store guidelines. They’re reporting that apps they’ve been shipping for years — a number of them Apple Design Award-winning — would be rejected from the Mac App Store. These are proven apps, beloved by their users. The current guidelines are clearly out-of-touch.”

Every developer I’ve talked to uses at least some private APIs on the Mac, often to work around bugs or limitations in current APIs. It’s disappointing that the Mac App Store is shipping before 10.7, because 10.7 would be a good opportunity to find out why developers still need private APIs and bake support directly into the next version of Mac OS X to solve common issues.

Can you imagine such rock-solid apps as BBEdit or Transmit being rejected from the Mac App Store? It’s going to be a lonely launch day full of hasty iOS ports if Apple doesn’t show some common sense when approving Mac apps.

Bodega bootstrap

I wrote the following before the iPad was announced. The world may have changed since then, but I’m posting it anyway. Enjoy.

I like the content but not the title in “John Casasanta’s blog post about the so-called death of Mac software”:http://www.taptaptap.com/blog/iphone-software-sustainability-and-the-death-of-mac-software/. He shares some great stats and lays out the case for why iPhone development is more appealing and successful for him, but that doesn’t make the Mac dead. What he really meant and says later is that it’s dead to him.

For those of us who love writing Mac software and who don’t feel the pull of get-rich-quick blockbuster apps, the Mac is alive and remains just as healthy as it was before the iPhone was announced.

That’s not what I want to write about, though. The real question is how do we learn from the App Store and expand the market for Mac software. Compared to the iPhone, the Mac has a fragmented application discovery and an inconsistent purchasing experience.

When Keith Alperin and Rick Fillion “talked on the MDN Show”:http://www.mac-developer-network.com/shows/podcasts/mdnshow/mdn017/ about a possible Mac app store, Rick revealed some interesting numbers from “Bodega’s”:http://appbodega.com/ installed base: 80,000 downloads and 10,000 active users. They’re not 1.0, and I don’t see anything wrong with these numbers, but it’s not big enough yet to make an iPhone-like impact on how we buy Mac software.

What Bodega does have is a technology head start. “My products”:http://www.riverfold.com/ have been listed there since launch, and they have a polished application and feature-rich backend for tracking releases and collecting usage metrics. The key is solving the chicken-and-egg problem of getting the Bodega app in everyone’s hands.

There are two approaches: either get people excited about installing Bodega because it’s useful for updating existing apps (which it is), or sneak a copy of Bodega on to many more Macs (which is what this post is about). This solution isn’t perfect, but short of Apple building a real Mac App Store or a marketing giant like MacHeist getting involved, it’s the only idea I can see working.

First, start with “PotionStorefront”:http://github.com/potionfactory/potionstorefront. There are a few of these in-app purchase frameworks out there, but I like the “Potion Factory’s aesthetic”:http://www.potionfactory.com/thehitlist/ and Potion Store is popular. The web service used to submit orders could be supported by other custom store backends, including Bodega’s own purchasing system when they have it.

On top of this in-app purchase foundation, you bundle a subset of the Bodega application discovery UI directly into the framework. Users can download and install demo versions of new apps without leaving the catalog. Think of it as a “lite” version of Bodega, streamlined to fit inside everyone’s app. You also include the full Bodega application so that it can be launched and optionally installed in the user’s applications folder.

What you’ve effectively done here is give everyone who buys a third-party app access to a new store where they can discover other apps. It’s compelling for developers because the more companies that participate, the wider their reach becomes. And it’s great for users because over time it starts to create a consistent user experience, and familiarity reduces the effort in buying Mac software.

Some tricky issues remain, though. You don’t want to distract users from buying their first application, or muddle that app’s branding, and you want to later encourage users to find or be notified about new applications without it looking like an advertisement. The challenge is in finding a balance that most developers would want to use.

Back to the iPhone’s success, from a post by “Guy English”:http://kickingbear.com/blog/archives/67:

“People, lots and lots of people, people who have no idea what software even is, will download Apps like they’re snacking on potatoe chips. What’s my proof? Well, two million downloads of an App in a week supports that and I’d argue that a total of three billion Apps downloaded backs up my argument too.”

We’ve never seen anything like it, and I’m really happy for my friends who have had success on the iPhone. Luckily, the iPhone and Mac don’t actually compete. The App Store can sell ten thousand times the amount of software as the Mac does and it doesn’t change the fact that Mac users need software too. It’s our job as developers to continue to provide solutions for users and help those users find us.

MDN Community Award

“The MDN Show episode 16”:http://www.mac-developer-network.com/shows/podcasts/mdnshow/mdn016/ reveals the winner of the MDN Community Award: a tie between Matt Gemmell and Jonathan “Wolf” Rentzsch, with Mike Ash as runner-up. Looking back on 2009 there should be no surprise over these top three. Matt has been sharing great code with the community for years and is now a fixture of the MDN podcast; Wolf started the successful C4 conference and won a Macworld Eddy for ClickToFlash; and Mike Ash has packed more technical information into a year of his weekly Q&A series than would fit in many Mac programming books.

(This also seems like a good time to link to nominee Daniel Jalkut, who got “his own version of a community award”:http://www.red-sweater.com/blog/1074/payback-time last month.)

I had a tough time singling out a specific developer among a dozen or more fantastic people, many who I consider my friends. But for me it was an opportunity to reflect on something at C4 that I didn’t get a chance to write about earlier, and since he won anyway I’ll include the email I sent to Scotty here.

“There are so many worthy candidates for the “MDN Community Award”:http://www.mac-developer-network.com/news/mdn-community-award-2009-update-the-nominations-so-far/ — people who are helpful to the Mac developer community by writing books, blogging, and sharing code — but when I heard about this award I thought about leadership. My pick is Jonathan ‘Wolf’ Rentzsch.

“A leader sets the tone and attitude of the community. For example, at the C4 conference when some attendees used the Twitter backchannel to turn against and openly mock a presenter, Wolf shamed the audience instead of glossing over or ignoring the event. It was a community course-correction and a reminder that Mac OS X developers come from many different backgrounds: old-school classic Mac programmers, NeXT developers, Linux and Windows users, even designers and web application developers.

“The community went through a rough transition point migrating to Mac OS X over 10 years ago, and is in the middle of another transition to embrace everyone excited about the iPhone platform. What I learned from Wolf is that we should never be afraid to welcome ‘outsiders’ to the community even if they haven’t yet caught up on the history and conventions of the platform.”

I have nothing but great things to say about everyone listed on the MDN page. Congrats again to Matt, Wolf, Mike, and the rest of the nominees.

Don’t give up, shipping takes time

I love the passion in “this comment from Wil Shipley”:http://theocacao.com/comment/5466:

“This app is all I’m working on. My entire reputation, my 25 years in the industry, my company is all riding on this release. I’m not going to just suddenly give up one day for no reason.”

I’m one of those people who will upgrade to “Delicious Library”:http://www.delicious-monster.com/ 2 on the first day and I know I won’t be disappointed. Although my indie app has a tiny fraction of the users Delicious has, I’m currently going through the same kind of delays.

After months of quick, focused “Wii Transfer”:http://www.riverfold.com/software/wiitransfer/ releases, I decided in November to skip a minor bug fix release and roll up all the outstanding issues into a bigger release with several important user interface improvements. You reach a point in this process where there is no turning back, and for every refinement to the product you see just how much more you could do. I think it’s that kind of constant, iterative polishing that Wil is going through now.

If you are curious about the business of software development, don’t miss his “talk from C4”:http://www.viddler.com/explore/rentzsch/videos/4/ last year. In many ways I’m glad it took so long for the videos to go up; I’ve already forgotten half of the content so it will be fun to review the sessions.

Rails and Mac dev communities

“Damon Clinkscales has a write-up”:http://damonclinkscales.com/past/lone-star-charity-workshop-wrap-up/ of the Charity Workshop that took place before the Lone Star Ruby Conference in Austin a couple weekends ago. I skipped the conference and attended these tutorials instead, enjoying some great talks by Marcel Molina, Bruce Williams, and 6 other speakers all packed into 4 hours. I definitely picked up a few good tips on Ruby blocks and ActiveRecord, but I was not-so-secretly relieved that I didn’t attend the full conference.

“Since brunch on Sunday”:http://www.flickr.com/photos/digitalnomad/1352583178/ after the conference, where I got to hear another wrap-up from co-workers, I’ve been thinking about why. Why did I sell my RailsConf ticket and book a flight to Chicago for C4 instead? Why skip a cheap Ruby conference practically in my own backyard? Why have I whittled my Ruby-themed blog subscriptions down to just a few from dozens?

Now I know: it’s about the difference in the communities. The Mac developer community is all about building unique apps, crafting an excellent user experience, and the “indie culture”:http://www.al3x.net/2007/08/c41-friday.html of building something small and useful. The Rails community by contrast seems focused on how few lines of code a controller method is. I’m lucky to work with people who care about that stuff, because it often does yield better applications, but I just don’t wake up in the morning excited about rewriting code, so why would I leave my family for a few days to hear someone talk about it?

There are many kinds of programmers. People who have hacked their whole life, dropping out of school to sell software; traditional developers with a CS degree and big company background; and even fine arts majors who fell into programming by accident as a way to build web sites. Based on that background, or what direction their passion takes them, I believe there is a balance between joy for the act of writing code vs. the pride in seeing the final product, and each programmer leans to one way or the other.

For Rails developers, at least many of the leaders in the industry who came from or were inspired by the extreme programming methodology and test-driven development, it’s the former: the art is found in the lines of code — how efficient can the logic be, how DRY, how RESTful.

For Mac developers, not just the “Delicious Generation”:http://www.rogueamoeba.com/utm/posts/Article/DeliciousGeneration-2006-11-06-10-00 but old school Mac developers as well, it’s the latter: the art is how the final product looks and behaves — being inspired to build something simply because you used another application that was great.

Cutting it this way allows me to see two things very clearly that were confusing before. It puts specifics to why I’ve drifted further away from the Rails cutting edge, and it explains why I get so annoyed with some of the newer crop of Mac developers who proclaim “bindings”:http://cocoadevcentral.com/articles/000080.php and garbage collection as beautiful gifts for programmer productivity even though they have no added value for the user experience.

Rails is a great framework, and I will continue to enjoy switching gears to write web apps in between my Mac projects. But I’m not going to tune back into that community until there is an equal focus on the bigger picture as it impacts the user (more scaling, more UI best practices), or whatever the next big thing to hit web apps ends up being.

The /Applications social network

Brent Simmons, from a “TUAW interview”:http://www.tuaw.com/2007/06/05/5-questions-with-brent-simmons-creator-of-netnewswire/:

“One of the things I love about being a Mac developer is getting to meet the folks who make the apps I use. In a way, my /Applications folder is also my social network. Which is cool.”

I never thought about it that way, but it’s definitely a great aspect of the Mac developer community. I hope to add a few more people to my /Applications social network next week at WWDC.

I’ve been to a bunch of WWDCs now, but I’m particularly excited this year because it will be the first time I’ve attended as representing both a “large-ish company”:http://www.vitalsource.com/ and an “independent one-man shop”:http://www.riverfold.com/.

I will be carrying VitalSource business cards in my wallet, but I also hope to have a printed batch of Wii Transfer serial numbers to hand out. I know a lot of Mac developers have a Nintendo Wii and it’s a shame I haven’t given out more copies. If you have a Wii and see me (I look “something like this”:http://www.manton.org/me/), please get my attention so that I can correct this oversight.

I didn’t go to C4

C4 was last weekend and looked like a lot of fun. Unfortunately I was about travelled-out this year with RailsConf and WWDC. Perhaps next time.

Daniel Jalkut was the first I saw with nice write-up. He provides “a speed-through of sessions”:http://www.red-sweater.com/blog/213/c4-abridged and closes with what is probably the biggest draw for attendees:

“As inspiring and as much fun as the scheduled speakers were, the unstructured social time both between sessions and in the evenings were just as much fun, and probably just as educational.”

I subscribe to a couple dozen Mac developer blogs, and keeping an eye on Flickr and Technorati tags for C4 is another great way to see what developers are up to. Mr. Rentzsch himself has a “set of links here”:http://rentzsch.com/c4/zeroLinkage, and Mike Zornek just posted some “short videos of the room”:http://clickablebliss.com/blog/2006/10/25/c4_photos_and_movies/ that give another view of the show.

When I go back through my older Mac programming posts, I’m reminded that I don’t really blog about Mac development as much as I used to. Perhaps that is because there are so many other good Mac guys blogging now.

RubyCocoa

I write Mac software, but over the last year I’ve increasingly been building Ruby on Rails web apps as well. Today I finally took a look at “RubyCocoa”:http://www.rubycocoa.com/. I wanted to whip up a quick Cocoa app that would involve some text parsing, and a dynamic scripting language like Ruby is a much better fit for text processing than C, C++, or Objective-C.

It turns out RubyCocoa works amazingly well. I have only scratched the surface with a small test app, but I was blown away by its ease-of-use, Xcode integration, example projects, and apparent maturity. You have full access to AppKit from Ruby-based controllers and views, and a single NIB file can even reference both Objective-C and Ruby classes. Fantastic stuff.

I don’t know if it’s ready for commercial software use yet. For distribution, I tested including the RubyCocoa.framework inside the application package and the app launches and runs correctly on a system without the full RubyCocoa install. There may be issues with requiring a recent version of Ruby, but otherwise it’s a fully native app.

My only disappointment was in the Objective-C calling conventions. There are two versions to choose from: a style using underscores to separate named values, and a slightly easier Ruby syntax using symbols and extra parameters. Here they are:

Objective-C:

[my_window setFrame:r display:YES animate:YES]

Ruby Underscores:

my_window.setFrame_display_animate(r, true, true)

Ruby Symbols:

my_window.setFrame(r, :display, true, :animate, true)

In my opinion, a better approach would be to take advantage of Ruby’s trick of allowing the last parameter to be a hash supplied without the curly braces. This feels more readable to me and more closely matches the Objective-C equivalent.

Better:

my_window.setFrame(r, :display => true, :animate => true)

In any case, that’s a minor complaint and doesn’t take much away from the beauty of writing native Mac apps in Ruby.

Last week, Joel wrote about

Last week, Joel wrote about Mac software developers:

“There are very few conditions under which it is actually the right business decision to develop software for the Macintosh. Developing for the Mac is not a whole lot different than creating a web site that only works on Netscape.”

Of course he gets some things wrong and misses the point on others. Luckily the comments in his discussion forum provided a good balance to his argument. Even Dave Winer jumped into the game this morning, bringing his perspective as a long-time Apple developer who embraced Windows development while Apple was suffering from vision and profitability problems in the 90s.

And then there’s Brent Simmons: “Why I develop for Mac OS X.” There’s also some good stuff in the comments below the essay. The essence of his argument is simple: Windows programming is boring.