

Backbone.js Fundamentals - pooriaazimi
https://github.com/addyosmani/backbone-fundamentals/raw/master/backbone-fundamentals.epub

======
pooriaazimi
As an aside, Peepcode has a 3 part video tutorial on Backbone.js, which is
_exceptionally_ great (more than 3 hours, but it's really condensed and it
took me 2 days to completely digest it). Each episode is $12; a little
expensive at first sight, but really worths it.

<https://peepcode.com/products/backbone-js>

<https://peepcode.com/products/backbone-ii>

<https://peepcode.com/products/backbone-iii>

------
jashkenas
A side question, which seems worth asking as long as this is floating at the
top of HN ...

We try to rotate in fresh projects into the list of Backbone apps on the
homepage:

<http://backbonejs.org/#examples>

... but there are often many more interesting things out there in the wild
than we're necessarily aware of -- for example: Rdio, the new
GoogleArtProject.com, and Pitchfork.com. Are you currently working on a fun
Backbone app, or have you seen one recently that we might not have heard
about?

~~~
nonrecursive
<http://openhercules.com> is a backbone app

~~~
jbigelow76
Off topic but I love your explanation of the openhercules name.

Edit: just played with the sample list and the keyboard interaction is pretty
impressive too. Nice work.

------
pooriaazimi
The online version[1] was submitted 10 days ago[2] (by someone else) but it
didn't get any attention. So I submitted a link to the epub version. It seems
like a very good tutorial and I hope someone finds it useful.

[1]: <http://addyosmani.github.com/backbone-fundamentals>

[2]: <http://news.ycombinator.com/item?id=3784854>

~~~
pooriaazimi
Also, I'm watching a terrific presentation from the book's author right now:

    
    
      Large-scale JavaScript Application Architecture
    

_Developers creating JavaScript applications these days usually use a
combination of MVC, modules, widgets and plugins for their architecture. They
also use a DOM manipulation library like jQuery.

Whilst this works great for apps that are built at a smaller-scale, what
happens when your project really starts to grow?

In this talk, I present an effective set of design patterns for large-scale
JavaScript (and jQuery) application architecture that have previously been
used at both AOL and Yahoo amongst others.

You'll learn how to keep your application logic truly decoupled, build modules
that can exist on their own or be dropped into other projects and future-proof
your code in case you need to switch to a different DOM library in the
future._

[http://speakerdeck.com/u/addyosmani/p/large-scale-
javascript...](http://speakerdeck.com/u/addyosmani/p/large-scale-javascript-
application-architecture)

~~~
ehutch79
Is there video of this? I find slides often miss out on things their author
says on stage.

~~~
pooriaazimi
I don't think so. But this particular presentation (130 slides!) has tons of
text on each slide that kinda works like a presenter...

------
ashconnor
I've converted it to Mobi if anybody wants it:

<http://dl.dropbox.com/u/24776084/backbone-fundamentals.mobi>

~~~
lurchpop
PDF: <http://steve.io/backbone-fundamentals.pdf>

------
oscardelben
> You're over the rate limit. Serve this file from your own servers. Contact
> support@github.com if you have questions.

If you get that error just get it from the main repo
<https://github.com/addyosmani/backbone-fundamentals/>

~~~
tibbon
And if you still hit an error, just git clone it :)

~~~
chops
Easy mode quick clone:

    
    
      git clone https://github.com/addyosmani/backbone-fundamentals.git

------
mike-cardwell
I was thinking of learning Backbone soon until I read about Meteor yesterday.
Is there any point in learning Backbone, or should I just go the Meteor route?

~~~
knowtheory
Your question strikes me as an odd one. Meteor just came out. I'm not sure
that there are any folks who have built any substantial systems using Meteor
yet (aside from it's authors) who would be able to give you a firm
recommendation.

That said, Meteor and Backbone do different things. Meteor is an attempt to
solve (obviate, really) the mismatch between client/server development. To
what extent it does this in a reasonable fashion is yet to be fully explored
(although it does look awesome!)

Backbone is a client-side JS application toolkit. It's purpose is to bundle up
the things that are common to _every_ JS application, and provide a solid API
to hook your application code to, and to hook your app to your RESTful server
API. That said, Backbone offers more than just a convention for how your JS
app talks to your API.

You will note that Backbone is included in the default set of installable
Meteor packages.

~~~
douglasisshiny
I'm a newbie, although I feel somewhat informed on these subjects (although
not skilled in coding).

Anyway, I like the idea of using javascript everywhere. I plan on building
smaller apps that are only client side. But I wonder if there is a cohesive
method yet of using javascript everywhere.

Obviously meteor was big news yesterday, but it's quite immature. The YUI
Mojito project also recently made news and is more stable/robust. While the
tightly integrated approach used in YUI sounds convenient, I get the
impression that there isn't much excitement behind YUI -- certainly not like
backbone.js, node.js, et al.

So is there a collection of libraries that can play together well to make for
an all javascript environment (i.e., backbone (plus underscore, jQuery) on the
client, node + socket.io on the server)?

~~~
oscilloscope
Backbone, underscore, jquery, node, socket.io is a good place to start.

~~~
douglasisshiny
Thank you! It's much appreciated.

------
danbee
iBooks shows me an error on the 2nd page:

"This page contains the following errors:

error on line 649 at column 295: Opening and ending tag mismatch: cpde line 0
and p

Below is a rendering of the page up to the first error."

~~~
obtu
Here is epubcheck if that helps anyone: <https://code.google.com/p/epubcheck/>

Seems to be a typo in index.md, and a bug in Pandoc which lets non-well-formed
xml tags pass through unquoted.

------
danneu
This week I'm finding it really hard to cognitive-dissonantly validate why I
don't _know_ javascript yet. But you're breaking me, O constant-plethora-of-
awesome-javascript-submissions.

~~~
pooriaazimi
3 months ago I thought JS was a toy language for those who don't know any real
programming language (a.k.a. script kiddies). I've never been so mistaken in
my life.

 _Node.js (written in CoffeeScript) + MongoDB/CouchDB/Redis + socket.io_ is a
wonderful (and scalable and _wicked fast_ ) development platform.

------
vanni
'[epub]' appended to submission title would be nice.

~~~
pooriaazimi
The original submitted title was:

    
    
        Backbone.js Fundamentals (free ebook - epub version)
    

A moderator changed it a couple hors ago.

------
Osiris
My team just finished building two new features of our application using
Backbone and now we're actually looking into switching to Ember.js to take
advantage of the automatic databinding and lack of a need to do manual DOM
manipulation.

Can anyone comment on their experience with the two frameworks?

~~~
pooriaazimi
For those who (like me) haven't heard of Ember.js before, it's SproutCore 2.0
(a complete re-architecture by the looks of it).

<http://emberjs.com/>

<https://github.com/emberjs/ember.js/>

<http://yehudakatz.com/2011/12/08/announcing-amber-js/>

------
legacye
For anyone else running into traffic/timeout issues with GitHub, you might
have better luck with this tagged version of the above project
[https://github.com/addyosmani/backbone-
fundamentals/zipball/...](https://github.com/addyosmani/backbone-
fundamentals/zipball/v0.9)

------
chris_wot
It says that the account is over it's rate limit. Can someone from Github sort
this out?

------
fotoblur
Fotoblur Labs is a project which utilizes backbone.js:
<http://www.fotoblur.com/labs>

------
tambourine_man
Any recomendation on epub readers for Mac?

~~~
pooriaazimi
There's always Calibre[1], but it's really bloated. It's a very powerful and
capable ebook management system though, it's just not really Mac-ish.

Adobe has a very good ePub reader, called 'Adobe Digital Editions'[2] that
runs on Mac, Windows and (I assume) Linux. It's an _Adobe Flash/Air_
application and is much prettier than Calibre. If you don't mind Flash on your
mac (I gave up last year), It's currently the best choice.

[1]: <http://calibre-ebook.com/>

[2]: <http://www.adobe.com/products/digitaleditions/>

[edit] No, there's no Linux version. You can use it with WINE though; use the
instructions here: <http://ubuntuforums.org/showthread.php?t=701191>

~~~
tambourine_man
Thanks. Isn't ePub just zipped xml/html? Why aren't there more choices? Seems
like a wrapped Webkit would do the trick. Or maybe people just don't read much
on PCs anymore.

~~~
pooriaazimi
It's more than just a zipped xml+css+html. There's a total mess underneath
that _open_ format specification (toc, item-references, etc).

Use Calibre (right click -> tweak ePub -> explode ePub), or eCub[1] to see and
manipulate what's inside an epub...

[1]: <http://www.juliansmart.com/ecub#mac>

------
zkirill
Google should really add Backbone.js to Libraries API.

------
ldvldv
Is there a PDF version somewhere?

~~~
pooriaazimi
_(it's really not an answer, but just in case you haven't seen it already,
here's an online version which is actually prettier than the epub
one:<http://addyosmani.github.com/backbone-fundamentals> )_

------
znake
You're over the rate limit. Serve this file from your own servers. Contact
support@github.com if you have questions. LOL

