50 karma · joined January 14, 2009
https://github.com/paulca/eyeballs.js/blob/refactor/eyeballs...
The initializer function is now 'oo' which works better all round I think. There's also a certain departure from its MVC root.
Finally, this library actually does predate Backbone. If backbone was around when I first built this, I probably would have gone ahead and used it.
Everything else is plain javascript, and you can use whatever language features you want within the definition functions.
1) conciseness of expression of intent ... I feel that this is the most important thing to get accross 2) conciseness of implementation logic: having chainable condition statements would hopefully lose a lot of if...else... conditionals within implementation logic 3) conciseness of conceptual mapping of the bound element to its name, eg. 'The "New Post" link" vs. "a#new-post" ...
Again, this is all just an argument from motivation rather than experience. It may turn out that this was a really, really bad idea.
In eyeballs.js, for examples, I explored doing all of the binding via the html elements themselves, eg:
<a href="#" data-bind="posts#new">New Post</a>
which would map to a pre-defined posts controller new action.
whenever.js is just another exploration along the same theme. Again, I'm not arguing that it's better or worse: just my motivations for making it.
eg. jQuery('a#click-me').click(function(){ $(this).text('Clicked!') })
... there's a lot of cognitive work going on here. Not only am I parsing javascript, as a coder, I'm parsing the CSS of the selector, and creating a mental model of the anonymous function. It's not to say that this is necessarily a bad thing, just that there's a lot of extra syntax to handle.
whenever("Click Me!").is('clicked').then('change it to "clicked"')
...reads without all of the extra syntax, but it still remains valid javascript.
> you'd have to look at three different places to understand what the code is _actually_ doing
This is a fair point, but I would argue that for most code you read, there's typically nowhere to go to find out the _intent_, which for me is really the most important thing. I think it's fascinating to be able to have "executable intent" ...
... but since I don't really have any real world experience using this, I can't really back up my arguments with any real data ... just the motivations I had to write this!
The reference to cucumber is really only a nod to inspiration for the given / when / then syntax, and the emphasis of speccing behavior in plane English.
I've also been fascinated by the idea of writing executable English as implementation logic, and since JS allows object labels to be strings, why not make full descriptive sentences.
I haven't used this for anything useful or practical (it's days old) ... but I'm hoping it will be a neat way to spec and as someone mentioned document the behaviour of my app and to try and try to separate the intent of what I'm writing from the implementation.
This was a huge audience to launch to. What advice would you give to people who want to dive in to their own company without trying to build up such a huge following before hand?
Is it madness to try to bootstrap without establishing an audience beforehand?
1) A place to put your meeting notes. So, rather than searching through Google Docs etc. there's an implicit understanding that the objects are notes. Subtle I guess, but I'm a big fan of focussed apps as an alternative to kitchen sink apps. 2) Keeping notes collected. We're week on this right now, but I'm looking forward to being able to click on a project and seeing all my meetings/notes from that project.
—P
Awesome! Thanks for the kind words. We'll probably iterate on the homepage in the next few days: there are a few issues with it.
Let us know what you think, and what we can do to to improve.
—P
I totally get your point about this, and I do work for one of those corporates, and I've seen the heavy use of IE6.
For us, building the app in our spare time, making IE6 allowances just wouldn't have been practical for getting the app built.
Isn't Chrome fairly easy to install with regular privileges on Windows?
—Paul