HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
280north
cappuccino
Objective-J2008–2011
280north / cappuccino

cappuccino

MOVED TO https://github.com/cappuccino/cappuccino

9Distinct people
13Mentions
0Explicit recommenders
45GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

MOVED TO https://github.com/cappuccino/cappuccino

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year13 dated mentions

Observed mentions: 2008-09-04 18:06:45 UTC to 2011-07-18 19:20:22 UTC.

02462008-01-01 00:00:00 UTC to 2009-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments20082009-01-01 00:00:00 UTC to 2010-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments20092010-01-01 00:00:00 UTC to 2011-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments2011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 6 mentions; 1 submissions, 5 comments2011

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20082008-01-01 00:00:00 UTC2009-01-01 00:00:00 UTC303
20092009-01-01 00:00:00 UTC2010-01-01 00:00:00 UTC000
20102010-01-01 00:00:00 UTC2011-01-01 00:00:00 UTC404
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC615

What Hacker News says

13 sources
Got a whole page of projects here: https://github.com/280north/cappuccino/wiki/Current-Projects A fairly recent impressive Cappuccino application is PicsEngine: http://www.picsengine.com/ Also check out GitHub Issues which very nicely demonstrates the state of the art TableView widget: http://githubissues.heroku.com/ Archipel is more of a technical app highlighting a ton of various '2.0' techs in one app unified by the Cappuccino experience: http://archipelproject.org/
In Cappuccino 0.9
It depends on how complex your front-end is. As you put more logic on the client-side, the chance of some of that code being useful on the server-side grows. For example, the Objective-J compiler and loader system ( http://github.com/280north/cappuccino/tree/master/Objective-... ) runs with almost no modification both in the browser-- for on-the-fly compilation during development-- and from the command line-- for pre-compilation prior to deployment. (As an aside it runs on Narwhal, not Node.JS. But the point stands.)
In Why Node.js Is Totally Awesome
The title is incorrect, the broken features have nothing to do with HTML5. These features haven't been removed entirely, but as I found when I tried to add them to Cappuccino some of them are very buggy (http://github.com/280north/cappuccino/blob/master/Tools/capp... and http://github.com/280north/cappuccino/commit/9f50f0806528d03...). "apple-touch-icon" and "apple-mobile-web-app-capable" work as expected, as do HTML5 cache manifests. Setting the viewport meta tag to "initial-scale=1.0, user-scalable=no" also works as expected, which is what I needed to get Cappuccino applications to display correctly (this is probably what you want for most JavaScript "applications"). I didn't try any other configurations. This works in both MobileSafari and applications saved to the home screen. I tried "apple-mobile-web-app-status-bar-style" with "blac
Read the rest
k" (default) and "black-translucent", both seemed to work for me, but I stuck with the default. The biggest problem is with the default image, i.e. "apple-touch-startup-image". For some insane reason it expects the PNG to be 748px wide by 1024px tall. This aspect ratio implies the image should be portrait oriented, yet the 20px for the status bar is taken from the narrower dimension, implying that it should be landscape oriented. And in fact the image is scaled from 748x1024 to 768x1004. There is no way around this AFAICT. Original default.png image: http://cl.ly/JCs Displayed in portrait orientation: http://cl.ly/IyM Displayed in landscape orientation: http://cl.ly/Ibx The only way to get something reasonable is to squash your default image in the opposite direction. That is, start with a 748x1024 image, crop it to 768x1004, then scale it back to 748x1024. Unfortunately then you end up with a white bar along one edge in landscape mode. Madness. If I'm mistaken about any of this I'd love to know.
In HTML5 webapps broken on the iPad
Deploying a long-running JavaScript application, like 280 Slides (and most Cappuccino apps), on one hand can be trivial (just copy the client resources to your webserver!), but also can be an interesting challenge. Namely keeping clients running an old version of the client-side code using the corresponding version of the server-side app. When you add in something like Gears for offline access it gets even tougher. There was a good presentation at Google IO that covered all these issues: http://sites.google.com/site/io/taking-large-scale-applicati... We wrote a little custom code (we call it "bake") for deploying Cappuccino applications: "bake": http://github.com/280north/cappuccino/tree/master/Tools/bake... sample "bakefile": http://github.com/280north/cappuccino/tree/master/Tools/bake... It pulls your code from git (but could easily do
Read the rest
local files, scp, rsync, svn, etc), runs an optional build command (like "ant"), copies source paths to destination paths in a deployment directory, gzips the deployment directory, scp's the code to your server(s), ungzips it, and does a little magic... Each version is placed in it's entirety in a uniquely named (unix timestamp) subdirectory. We could just redirect from "/" to "/1221268756/" (for example) but that's incredibly ugly, so we use the little known HTML <base> tag to trick it. The index.html file in "/" is identical to the one in "/1221268756/" except it has a <base> tag which tells the app all URLs are relative to "/1221268756/" instead of the default containing directory ("/"). And it actually seems to work really well. The big advantage of this is you can set your cache expire date arbitrarily far in the future, and your entire app will be cached until you change index.html to point to a new <base>. 280 Slides, which is ~2.6MB uncompressed, loads on my computer in about 1.5 seconds if it's cached. The only problem with this approach is when you deploy, all clients will have to re-download every resource, even ones that don't change. A more granular system would be ideal, but significantly more complex. I looked at Capistrano briefly but decided against it for some reason I can't remember. Perhaps that would have been better, but c'est la vie...
In Ask HN: how to push to a live site?

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.