HN user

gbadman

122 karma
Posts4
Comments64
View on HN

This is a good set of arguments explaining some challenging corners of AngularJS.

It is true that when you start getting into the realm of edge cases, substantial knowledge of the framework's internals is required to put together a solution that is consistent with the 'zen of Angular'.

The author argues that some of the challenges introduced by Angular's $apply lifecycle and its approach to two-way bindings make it a challenge to use in certain circumstances. I would rephrase that and say that Angular's state-tracking and two-way binding solution is a very elegant hack to a very complex problem, considering limitations imposed by javascript, css and html. Angular proposes a set of integrated solutions that allow developers to avoid a substantial amount of boilerplate (and complex boilerplate, at that) for synchronizing state and the view. As with every other framework, it is not appropriate for every problem.

That being said, I continue to use and love Angular in a complex app with quite a few moving parts. I migrated from Backbone.js about a year ago and never looked back.

/x-post from Reddit: http://www.reddit.com/r/javascript/comments/1pdzbz/things_th...

For the vast majority of websites, this is true and I agree.

However, there are now websites that are more akin to applications than to the traditional website of yore and that are meaningless without Javascript. This is not a bad thing; it is just the opening up of the web platform to new opportunities.

Some of these emerging applications may want some of their content to be searchable and so I argue that the posted solution is solving a real problem and is of value to users.

Google has proven itself as a company capable of, and prepared to move into new markets and to diversify its portfolio of services. Twitter, on the other hand, has only diversified around the 140 character concept.

In my mind, it is diversification that allows a tech company to stay afloat when new entrants can have such a rapid impact on the market.

It is in no way conceivable to me that the 'trendy' means to communicate will still be in 140 character morsels 10 years from now.

You can actually do that in Plunker right now by having an `index.md` file instead of `index.html` [1].

In the absence of an html index, the plunker preview server will try transpiling to html from different languages. Markdown is currently supported.

Also transpiled are things like less, scss, coffee-script and more. Essentially, your html requests a file with the target suffix (e.g.: .css) and the preview server will search for compatible source files to transpile to that target.

[1] http://plnkr.co/edit/?p=streamer&s=markdown

This is a really cool and ambitious project. Although some mention ShareJS, I would say that the OT portion more closely resembles that employed by Firebase in their Firepad project [1] (in that no centralized server manages ordering and history). Actually, this system has many of the features of Firebase in a self-hosted package.

As a user of ShareJS (for the real-time collaboration on Plunker [2]), I can see some interesting benefits offered by TogetherJS; the system has cursor and presence features out of the box.

That being said, the main drawback that I see in TogetherJS is that it seems to be tightly coupled in a way that it is hard to take smaller parts of the overall system. It would be great if the P2P network system could be extracted and plugged into a node.js Stream interface. That would allow the code to plug into a whole ecosystem of interesting libraries [3].

I'm really excited by all the powerful libraries that Mozilla has been pumping out these days. The web is a great place to be.

[1] https://github.com/firebase/firepad

[2] http://plnkr.co/edit/?p=streamer&s=TogetherJS (Demo)

[3] https://github.com/substack/stream-handbook#introduction

I think that making claims on the changing capital market climate based on historical P/E ratios may be measuring the wrong thing. A declining trend in P/E ratios may suggest a decline in valuations but it also may suggest a change in capital structure. Or it may suggest a combination of the two.

It would be interesting to look at the trend for EBITDA multiples over time instead: https://cloudup.com/cHNL3Wcy5yH [1]. In this view, you can see that TEV/EBITDA ratios are very similar today to what they were in 1995 even though they took a very circuitous route to get there.

1: S&P Capital IQ (exported just now)

[ROM][LineSkipper v3.0.1][Now fixes crash bug when joining line behind Audi's]

Although perhaps ridiculous at face value, I wonder how automobile manufacturers and legislators will prevent modders from tweaking driving algorithms to win the prisoner's dilemma of traffic.

Food for thought!

I think that the addition of support for keyframe-based animations in 1.1.5 is really the killer feature.

This will allow for drop-in animations (like animate.css, mentioned in the deck) in the same sort of way that bootstrap allowed for drop-in styles.

PSA: Hit the 'eye' icon on the right, 'Run' on the top or CTRL/CMD-ENTER to toggle the preview pane in the demos.

This is and will continue to be a challenge for the AngularJS team. While comprehensive, their documentation for complex things like directives seems more contributor-oriented than user-oriented.

Fortunately, the users on the Google group are very active and people like John Lindquist[1] are putting out insightful and approachable tutorials.

I think that one of the major issues faced by AngularJS from an adoption standpoint is that people see the simple examples on the front page and assume that, while powerful, it is best suited for toy apps. I'm not sure how to address this, but I've seen the perception repeated over and over by potential users who have done a 'surface check' and have then based their conclusion on an incomplete picture.

[1] http://egghead.io

That sounds like a very good (if not necessary) idea.

You can see a list of features on the development version of the site at: http://beta.plnkr.co/ These include:

* Real-time code collaboration

* Fully-featured, customizable syntax editor

* Live previewing of code changes

* As-you-type code linting

* Transparent translation of intermediate languages like Coffee-Script, Typescript, Sass, etc (with sourcemapping included where available). This means you create 'app.coffee' and ask for 'app.js' in your html and you are served the compiled version of 'app.coffee' as well as its sourcemap.

* Forking, commenting (not done yet) and sharing of Plunks

* Fully open-source on Github under the MIT license

Also, there is both a Google Group (http://plnkr.co/discuss) and github repo (https://github.com/filearts/plunker).

That being said, neither of these properly address your question. I will push out an about page as soon as I can.

If you guys are interested in putting together some usable examples (in the spirit of docs.angularjs.org), I would love to help you integrate live examples with Plunker (http://plnkr.co/edit/).

Bootstrapping an editor session is as simple as POST'ing a simple form targeted at that url.

I would really love to see the Ember.js community get some use out of Plunker. (@filearts on twitter if you'd like to chat).

Paul, very cool indeed.

Stretch goal: How about having an in-browser API that could create such a websocket?

That would open some interesting possibilities in terms of remote debugging by piping socket traffic over another socket/WebRTC datachannel as well as allowing websites to interact with the debugger.

Hi Paul,

What I understood from your article is that you're mostly exploring 1) the possibility of opening up the dev tools to locally-installed applications like SublimeText2; and 2) the integration of jsFiddle-like apps within DevTools.

Please correct me if I misunderstood.

What I'm asking about is creating an in-browser API for a website to interact with the dev tools. Obviously, this would require a very thorough review of the risks of having such an API from a security perspective (and how users can opt-in in a transparent and well-controlled manner). That being said, I am still hoping!

If this is already in the books, then Hooray! I can't wait to start experimenting.

I hope I didn't come across poorly, because I really appreciate all the work you've been doing!

How about opening up a browser-based API for existing in-browser IDE-like environments to leverage the debugging tools that are already present?

What I am talking about is instead of recreating jsFiddle in the dev tools, how about letting jsFiddle (with appropriate user confirmation) control the dev tools?

As the creator of Plunker (http://beta.plnkr.co/edit/e5iLyQ?p=preview), I would love to be able to leverage the environment that has already been created to allow adding breakpoints and inspecting of running code. Since Plunker already has live-previewing and a working multi-file editing interface, it would be really amazing to be able to take it to the next level.

Shameless plug: If you've never heard of Plunker, check it out. For free you get live-reload of previews, transparent compilation (and sourcemapping) of stuff like Coffee-Script, Typescript, Stylus, etc.., real-time collaboration on the same code, live js/css linting and much more! Also, it is open-source (http://github.com/filearts/).

To: JAshkenas, JWalton

From: The interwebs

Thank you for this! One of the biggest justifications for avoiding Coffee-Script has been the difficulty in debugging the translated code since there is (no longer) a 1-1 line mapping. This is now a thing of the past!

It took me all of 5 minutes to understand the new API for sourcemapping add support to Plunker. For those who are curious: https://github.com/filearts/plunker_run/commit/33eb3c5049b3e...

To me, this is the sign of a simple, but powerful API addition. Well done guys.

If you want an example of stepping through a sourcemapped coffee-script file, try adding a breakpoint to `app.coffee` on: http://beta.plnkr.co/edit/e5iLyQ?p=preview