This looks like a really cool project/language. How do I build it? Does it build on OS X?
--
I'd love to "watch" the project on github, but alas it's stranded on the island of google code. Check out this [1] basho blog entry on why they chose github over bitbucket — most of the reasoning applies to google code as well. I'm not affiliated with github, by the way, just a happy user.
For a project like this, the concept of "watchers" isn't a vanity metric. I've been working on a lisp->javascript language and have found github watchers to be surprisingly motivating and encouraging.
Thanks, Evan! I actually disagree about production use, with similar reasoning to Travis Swicegood's answer about coffeescript in production [1]. Since sibilant is just a source-to-source compiler, it's as production-ready as Node.js or client-side javascript is. The output javascript from sibilant is fairly plain and readable and encourages a particular subset of javascript's features. The language is under active development, but Node's API is also changing. I've been hacking on sibilant since late June and believe it to be sufficiently expressive, although it can always get better.
Pivotal labs does this by offering everyone free catered breakfast at the start of the day. As I understand it, the motivation was to synchronize everyone's lunch hunger so half of a pair-programming team wasn't hungry earlier because they hadn't eaten lunch but their pair had. It also served to mitigate mid-afternoon food-coma somewhat.
Oh: ride public transit. Notice that it runs on time, is fairly easy to understand, and is clean. There's a sky tram, a light rail, a streetcar, and an extensive bus system. Everything is free downtown in the fareless square.
Lived in Portland for 7 years (went to school in SE, Reed College). Hence, nostalgia dump:
When I left for the bay area a few years ago, NE Alberta and North Portland were picking up inertia. If you're into coffee, try Albina Press.
The lucky lab on SE Hawthorne (close in) is a Great pub and I'm not much of a pubgoer.
Eat street food. The Portland street food scene makes the mission district look behind the times.
Get some tea in the teahouse in the Chinese gardens (right downtown). It's often overlooked by Portlanders, but the Chinese gardens are really quite wonderful. The tea menu is run by the Tao of Tea, which is one of the better tea importers in America.
Check out the nickel arcade (wonderland, I think it's called) on SE Belmont.
Powells & Powell's Technical. If you're a book person, set aside at least half a day for this. Read some books in the cafe. Hang out a while - there's no better book store in America (including the strand - nyc, moe's - berkeley, serendipity, etc)
I know I'm disagreeing with other posters, but avoid the pearl like the plague. It's the least "truly portland" and is for people from other cities who are looking for shiny glass highrises and warehouses. Everything is more expensive and upscale. Similarly, NW 23rd and 21st have a distinctly "east coast haven" flavor. Go to NYC or SF for that, enjoy portland for what it does best — the quirky stuff that you can't get elsewhere, and there's plenty of that.
Speaking of quirky, get a doughnut in the middle of the night at voodoo.
Check out the saturday market (sat and sun), if it's running when you're in town. Another uniquely portland experience, but you probably won't buy anything.
Beers: Hair of the dog, rogue, lucky lab. Try something on cask or nitro if you haven't lived in a place that really geeks out on beer.
There's a lot of causal ambiguity in this article, particularly due to the fact that no small percent of millionaires likely come into wealth by way of inheritance or marriage. For example, the author cites the presence of 350k millionaire teachers as contradicting the statement "you won't get rich as a teacher." "get rich" implies causality, but "are rich" (the cited fact) does not.
I don't recall the urls - I was recursively crawling from a user-provided seed url and had trouble with apricot, node-xml, and libxmljs. I had the least time to play w/ libxmljs because of hassle w/ joyent --- I had to compile v8 and node to link against and scons wasn't playing nice w/ the build environment.
--
Edit: I should add that I'm using libxmljs in production (http://newsbasis.com/news) as an rss parser (streaming sax-push-parser) and it works quite well for that sort of xml.
Since they're proxying the page, they replace all <a>s with proxy <a>s, as well as adding a <script> and a <div> with some content to the bottom. Try viewing source on http://starcraft2destroyedmymarrage.no.de:3000/app/4
I've been programming since middle school and I'm now almost 30 and I google all the time. There's too much to remember, and I wouldn't want to burden my memory with too many specifics. I try to focus on remembering generic patterns, since those are far harder to search for.
What are you using for server side dom manipulation? jsdom? apricot? node-xml? libxmljs? I spent a lot of the weekend working on a webcrawler, but couldn't find a xml parser that didn't choke on the internet-at-large.
Haven't built in much monitoring yet, but watching the resque web interface, most of the delay is in actually finding the new page - from there to it showing up on your screen is no more than a second or two. For subscribed users, we do email notifications and we almost always beat google news alerts, often by around 15 minutes.
Sure. This probably will turn into a blog entry, but here's the gist:
4 medium sized linodes, divided as follows:
1 app: unicorn (rails), nginx
1 db: redis, solr, mysql
2 worker: resque workers (both ruby/rails node.js) & the crawler
The crawler is written in node.js, backed by redis. When it finds a new page, it downloads it to shared local storage and adds a task to a resque queue monitored by the rails workers. They add a row to a mysql table that represents the permanent record of the page, use nokogiri to extract the body content and any metadata, index it into solr, delete the local copy, and upload the page to an s3 archive. When you request the page, rails asks solr.
[ my public key: https://keybase.io/jbr; my proof: https://keybase.io/jbr/sigs/ay9Ew0uq18nLLvvi_rFYnpjPdtpNgQ7Yht3tTxUA73g ]