324 karma · joined April 8, 2014
I’m also not certain about the canonical way to update Docker containers. I feel like we miss a standard “pod” (ie set of containers) orchestration tool (as docker-compose doesn’t really matches production requirements).
Thankfully MDG plan to address this issue soon.
Still 5s is far from ideal considering the development experience with webpack and React hot loader.
First, Blaze does not require to set a root element in a template, which could be a source of bugs with Hamlet because for instance the `each` child is a template, here is a snippet of problematic example from the Hamlet README:
- each @items, ->
.first
.second
This works perfectly fine in Blaze. IIRC Blaze uses comments node on the DOM that are never rendered in browsers in order to define some "domrange" that keep track of n children in a single parent group.The second runtime issue in Hamlet appears when a third-party library directly modifies the DOM, without telling the template engine. Basically the modification will be erased on the next template redraw which make this system incompatible with all jQuery plugins for instance. Blaze has "fined grained DOM updates" which mean that the modification of a single element in a template does not require to touch any other node in the DOM. For instance if you have a each loop of inputs, and the user start to enter some data in one input field, and for some reason the template is redrawn the text will stay in the input with Blaze, but will be erased with Hamlet.
Blaze also support reactive SVG (I'm not sure if Hamlet supports it but I haven't seen any particular mention in the code).
I think all of these features can be implemented in Hamlet drawing on Blaze and ReactJS runtimes.
Nevertheless I find the Javascript model declaration cleaner in Hamlet than in Blaze or Backbone or React. The only thing I'm not sure about is writing the js events in the template and not in the model, I actually like having all events of a given template in a single place but I don't have strong opinion on this.
[0]: Meteor support Spacebars (which is quite similar to Handlebars) by default https://github.com/meteor/meteor/blob/devel/packages/spaceba..., and there is also a package for jade https://github.com/mquandalle/meteor-jade (disclaimer: I'm the author). It also seems that it wouldn't be difficult to support other languages than Haml for Hamlet.
If you want to reduce the need to trust a single party you can also use a SchellingCoin system, described as a "decentralized data feed" in the ethereum white paper v2 [2].
[1] http://forum.ethereum.org/discussion/comment/180/#Comment_18...
[2] http://blog.ethereum.org/2014/03/28/schellingcoin-a-minimal-...
A more formal and technical description is presented in the Yellow paper (also draft) [2].
[1] https://github.com/ethereum/wiki/wiki/Whitepaper-2-Draft