Panic Blog

From the desk of
Engineering Dept.

Check App Store Updates With a URL

When something new goes live at Panic, the first to know about it are the dedicated followers of our Twitter account.

And when we tell people there’s something new, like a software update, we really like to provide a specially crafted URL that will allow that person to get said update with one click. We built this functionality into Transmit and Unison, and it makes for a great Twitter experience: here’s a new thing, click here to get it, boom, done.

When the Mac App Store was in beta, I was really hoping for something similar — a simple way to notify a user of an App Store update, with a link to take them to the update in one click.

This is where I tell you something amazing: I filed a bug with Apple and made this specific feature request, even proposing the URL format, and Apple added it to the App Store a couple versions later. The system worked!

So now I’ll reveal the secret to you. To send your users to Mac App Store updates, use this URL:

  1. macappstore://showUpdatesPage

That’s it. You can see it at work here:

(We built a redirector since URL shorteners don’t like funky URL types.) And that’s all there is to it.

Posted at 3:26 pm 20 Comments

Copywriter: Cabel.

The Transmit Model

I got an e-mail from Kenichi, our 3D icon master in Japan, the other day:

“I’m learning and trying a new lightings. HDRI map + system light sources. It’s great, but sometimes does not work for icon design.”

He sent along three images that I thought you’d enjoy seeing. You’ve probably never seen the Transmit truck from these angles!

Man, it really makes me want a Transmit truck toy…

Posted at 4:13 pm 33 Comments

From the desk of Cabel
Portland, Oregon 97205

Panic State of the Union ’11

So, what’s going on at Panic lately? Allow me to explain!

Let’s start with Coda 1. We’ve recently done a series of Lion updates, ending with Coda 1.7.4, which significantly improved the stability of our all-in-one web editor. That said, there’s still one annoying bug on our list that can prevent Preview from fully refreshing linked files such as CSS stylesheet changes. We think we’ve got this one licked, so look for a Coda 1.7.5 release in the coming weeks to fix it. One more important note about Coda 1 — at some point, our automatic update notifications broke! Ugh. The worst. We’ll fix it in 1.7.5, but you might be running an older version and suffering dumb bugs. Please, if you use Coda, choose “Check for Updates…” from the Coda menu and make sure you’re up-to-date.

We’ve been spending Transmit’s year gathering feature requests, planning for the future, and issuing important bug fixes to our world-class file transfer client — including two recent releases to improve Lion compatibility. Now at a nice place with version 4.1.7, we’ll continue to monitor bugs, and hope to spend some quality time with Transmit soon.

Prompt, our nice SSH client for iOS, just had an update to seriously improve the handling of private keys. We’re also finishing up a bug fix release right now — expect it in the next few weeks. We love this app, and we love hearing how it’s saved your bacon, letting you reboot your server while fire-eating at Burning Man, etc. While we’re insistent on not kitchen-sinking it, if you have feature suggestions, let us know. (SSH tunneling is the #1 request by my count.)

We’ve just found an issue with CandyBar where it doesn’t properly import icons that have 1024 ⨉ 1024 representations (the 256 and 512 go missing), so you can expect a 3.3.3 release in the near future. As a side note, people sometimes ask if we can add Lion’s new sidebar icons to CandyBar, and we can, but there’s a sad catch — the system automatically applies monochromatic shading to those icons. We get the feeling people want to bring back color, not have a blob of gray, but that’s not currently possible.

(As for the rest: Unison is in a solid place and we’ll continue to monitor and fix bugs. We’re still working out our plans for the weird little guys: Stattoo actually has a nice update ready to go (!), and Desktastic has a years-old and pretty cool complete rewrite in the can (!!) save for some testing, but internally we’re struggling with overall strategy — it’s hard to find time to support and maintain these tiny little apps. Lesson learned, but thanks for your patience (all four of you) while we figure this out. Also, we continue to develop internal special projects. Who knows what we’re up to!)

Finally, the only part you care about: Coda 2.

Coda 2 has now been in development for about a year and a half. All of us have been working incredibly hard on this forthcoming release. We’re finishing up new features, boosting up the editor, dramatically cleaning up the UI, and improving what Coda already does well today, all while, hopefully, keeping things extremely light and lean. By the time you see it, Coda might look a little different than you’re used to, but we think it’s for good reason. We’ll see how it shakes out, but we’re very excited.

Yes, we can at last see the light at the end of the tunnel. That means I have to make good on the promise I made in last year’s State of the Union, and tell you: we’re almost ready to start private beta testing.

That’s your cue: click here to apply for the Coda 2 private beta! The signup form is now closed. Thanks for your interest!

We only need a limited number of users, and we’re especially interested in Coda contributors — folks who wrote plugins, syntax modes, etc. If you don’t make it in, please note that we still truly appreciate your interest.

So, when will it ship? Coda 2 is an extremely complex and multi-layered app, and it will take significant time to test, debug, and improve. That means there are many, many more months ahead of us — this release is important and needs to be as close to perfect as possible. So, to those of you currently camped out on the street in front of our office: you’ll need to hang in there for a quite a while still. Thanks for your understanding while we test!

Regardless, this is a major milestone in our development, and we thought you’d be excited as well.

That’s the scoop around here. Onward!

Posted at 1:17 pm 105 Comments

Summer in the Panic Kitchen

From the Panic kitchen, Chef Neven

It’s been a super-busy summer at Panic, so we’ve made sure to fuel our software-development efforts with a steady regimen of freshly prepared office meals. We hope to do one of these every month, and we’d love to inspire your own office cooking adventures. Any questions? Ask away!  And now, our tasty tetraptych:


No one doesn’t like ramen, right? Propelled by a mild case of bummed-outness at Portland’s general lack of awesome ramen houses* and the publication of the first, ramen-centric issue of David Chang’s Lucky Peach magazine, we figured we’d take matters into our own hands and cook up a big batch for the office.

We stuck to the Momofuku recipe from Lucky Peach as much as possible, skipping the noodle-making itself. (Yeah, we know it’s kind of important, but we wanted to have a bit of breathing room. And, Uwajimaya sells totally nice fresh noodles.) Armed with a big bag of chicken necks and backs, we gathered around the office stove for a whole day as the ramen broth reduced, all five gallons of it. Les made shredded pork on Sunday while I slow-poached eggs in their shells; this is a super-handy method for when you need fifteen poached eggs at the same time.

This was an extremely porky dish, so we served up vegan and pescatarian alternatives for Garrett & Mike: cold sesame noodles with black radish, and the same topped with an egg and dried anchovies (my favorite).

Nobody didn’t like it! A very fun – if exhausting – kitchen adventure.

* Since then, the brand-new Southeast joint Wafu has blown our noodle-socks off. On the West side, Shigezo is pretty good.

Miso Corn.

Continuing our Momofuku run, we noticed how darn sweet and tasty the corn was this August. I had previously postulated that the Roasted Sweet Summer Corn from the Momofuku cookbook was their most bang-to-bucky recipe. Simple: cut a bunch of fresh corn, roast it in bacon fat, add miso and butter, then top in a South-meets-East fashion.

Les handled the corn, pre-grilling it briefly to add some char. We then split it between our two largest dutch ovens. (Did we mention it’s tricky to cook for fifteen?) For toppings, we went with the shrimp from Momofuku’s Shrimp’n’Grits, more poached eggs, a bit of green onion, and a few slices of my dad’s homemade, home-smoked sausage. That stuff is my own personal bacon.

Garrett and Mike enjoyed a butter-free, tempeh-topped version. Everyone went nom nom nom. The best part? We ended up with an enormous quantity of corn husk and silk. You do not want to throw this stuff away; instead, make a stock of it. It’ll taste of sweet, sweet summer. To make ours portable, we reduced it for three days until five gallons turned to one dark, rich, syrupy quart. This can be diluted to use as stock or you can add use it to make corn ice cream, America’s best-kept ice cream secret.


Momofuku, take three: pork buns. We were looking for things that could be assembled and served fairly quickly once we’re at the office Monday morning (the usual setting for Panic Kitchen events). The buns themselves took a bit of work, but as predicted, our Monday prep was fairly mellow.

Dave joined Les and yours truly for a marathon Saturday of kneading, waiting, and rolling – lots of it, hoo boy. We ended up with exactly one hundred buns, covering every flat surfaces in our office kitchen. If you go bun-making yourself, clean out every table, desk, counter, and shelf you’ve got – you’ll need them all. Les was on pork duty once again, bringing in a simple pork-belly roast, and a version glazed in Cherry Coke. The former was served with hoisin sauce, Dave’s garden-grown cucumbers, and green onions; the latter, with pickled mustard greens, ground peanuts, and cilantro. Beer went well with both.

The buns contain milk, and it’s pretty much impossible to make fewer than thirty. Thus, the vegan option this time was coconut-rice cakes with Chinese-spiced roasted eggplant and shiitakes, and a papaya salad.

Would we do this again? Probably, and probably only on this scale.

Bánh Mì.

We’re big fans of Portland’s beat and cheapest Vietnamese-French-sandwich spot, Best Baguette. For this lunch, we wanted to see if we could best them at what they do best.

Les is still probably bummed that we didn’t attempt our own baguettes; my feeling was that we could never match – let alone beat – a professional bakery at this. We capitulated and bought our bread from Best Baguette, at approximately $0 or so per person. Our starting point for the recipes needed here was Viet World Kitchen. I took the weekend to pickle the daikon and carrots – more than twice the amount we ended up using, it turned out – and make the mayo. Les porked it up again, steaming a big batch of Vietnamese meatballs. Think about how crazy bánh mì really is – French bread topped with french mayonnaise, jazzed-up, chopped-up Italian meatballs, and Asian pickles. Did we mention it’s all served with iced coffee? We got a few cans of Vietnam’s favorite brand, Trung Nguyen, and Vietnamese-Nestlé sweetened condensed milk.

Pescatarian option: the classic sardine bánh mì (my favorite). Vegan: lemongrass tofu, miso mayo.

In the end, Greg declared Les’ meatballs better than Best Baguette’s. Sweet, sweet victory!

Posted at 1:13 pm 10 Comments

From the desk of Cabel
Portland, Oregon 97205

Thanks, Ian!

The story of how we hired Ian, one of our Cocoa engineers, is a nice piece of life.

When Panic’s headcount was two — me and Steve — the first thing we needed help with was tech support, but the idea of finding and hiring an employee was overwhelming. (It still is, really.) Riding my bike through downtown Portland late one night, a girl flagged me down to ask which bus might take her to her friend’s house. My knowledge of Tri-Met is limited to the one line I use and which seats have the least crust, so I — stay with me here — instead suggested we could walk to my car and drive. On the way, she asked me what I did, and when I mentioned computers, she said “Oh, I have a friend at PSU who does computer stuff! He’s looking for a job!” I quickly lost touch with Cassie, but Ian has worked for Panic ever since.

After first proving his worth at the often thankless task of tech support while simultaneously taking CS classes at Portland State University, Ian’s programming skills gradually grew. Eventually he seemed ready to jump to the next level, so Stattoo was concocted as Ian’s first-ever Cocoa app, a chance to cut his teeth without jumping into the frigid waters of a Transmit. Today, Ian is a part of everything, including major pieces of Coda and Transmit. We guarantee you’ve used his code.

Today is Ian’s last day at Panic, after over 10 years of service. What’s next for him? Medical school!

I’m sad to see Ian go, but I’m happy to see him follow his heart — how many of us could make such a drastic life change? — and while I love Ian as a Cocoa programmer, I really love the idea of him as a fantastic doctor.

So, here’s to your future, Ian! We’ll miss you, and we’ll be rooting for you always.

Posted at 1:15 pm 31 Comments