- nice recent overview: http://html5-demos.appspot.com/static/webcomponents-bdconf/index.html
- as so often in dev evangelist slides, focuses on what, not so much why (motivating use cases, tradeoffs, alternatives)
- Web Components G+ page, lots of talks/links: https://plus.google.com/103330502635338602217/posts
- Tons of Web Components articles on html5rocks, the only place I've found a list of them is the search results page
- Mozilla Hacks, Web Components tag: https://hacks.mozilla.org/category/web-components/
- MDN overview of Web Components: https://developer.mozilla.org/en-US/Apps/Developing/x-tags
| //text-to-speech for your meatspaces | |
| // | |
| // instructions. | |
| // 1. create a bookmarklet with the following contents: | |
| javascript:(function(){document.body.appendChild(document.createElement('script')).src='https://rawgithub.com/6a68/6a68.github.com/meatsong/src/meatsong.js';})(); | |
| // 2. load chat.meatspac.es | |
| // 3. when the page settles, click your button and behold roboty delight. |
| <!doctype html> | |
| <script src="https://login.persona.org/include.js"></script> | |
| <script> | |
| navigator.id.watch({ | |
| onmatch: function() { console.log("onmatch") }, | |
| onlogin: function() { console.log("onlogin") }, | |
| onready: function() { console.log("onready") }, | |
| onlogout: function() { console.log("onlogout") } | |
| }); |
jareds-partybus-4:aphyr-jepsen jhirsch$ lein test
lein test jepsen.load-test
lein test :only jepsen.load-test/map-fixed-rate-test
FAIL in (map-fixed-rate-test) (load_test.clj:32) more expected: (most? #{1} starts) actual: (not (most? #{1} (1 1 1 1 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 3 0 1 0 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 0 1 2 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 1 1 1 1 1 1 1 0 1 2 1 1 1 0 2 1 1 1 1 0 1 2 1 1 1 0 1 2 1 1 1 0 2 1 1 1 0 2 1 1 1 1 0 1 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 1 1 1 1 1 1 0 2 1 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 1 1 1 1 1 1 1 1 1 0 2 1 1 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 0 2 1 1 1 1 0 2 1 1 1 0 1 2 1 1 0 1 2 1 1 0 2 1 1 1 0 2 1 1 1 2 0 1 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 2 0 1 1 1 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 0 2 1 1 1 1 0 2 1 1 1 0 2 1 1 1 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 1 0 2 1 1 0 2 1 1 1 0 2 1 1 1 2 0 1 1 1 2 0
- let's plan a blog series here.
- selecting a data store: needs, options
- factors that led us to consider cassandra
- other data stores we rejected, rationale
- porting a mysql schema to cassandra
- our schema is really simple, it's ideal for a blog post
- nodejs clients, our experiences with helenus and node-cassandra-cli
- migrating mysql -> C* on AWS
- use case: need rollback option, need to handle AWS destruction gracefully
// remap exports.foo to exports._foo, log arguments
// passed to foo, then call _foo.
for (fun in exports) {
(function(f) {
// bail if it's not a function I added to the exports object
if (typeof exports[f] !== 'function' || !exports.hasOwnProperty(f)) { return; }
exports['_' + f] = exports[f];| helenus at the node repl: (because i keep killing my session with uncaught exceptions...) | |
| // start connection | |
| h = require("helenus") | |
| p = new h.ConnectionPool({hosts:['localhost:9160'],cqlVersion:'3.0.0'}) | |
| p.connect(console.log) | |
| p.cql("USE browserid", console.log) | |
| // couple of helpers | |
| function getValue(r, key) { return r && r[0] && r[0].get(key) && r[0].get(key).value } |
CQL catchup: http://www.slideshare.net/patrickmcfadin/become-a-super-modeler
great advice from @bbangert:
- things to remember with C*:
- writes are super cheap, everything is super denormalized, data is written for optimized reads
- the last part implies that if you need different ways to access all or part of the data, you write it.... again, in the other style of access you need
- on migrating existing data:
Suppose we have a 5.1 cluster and are upgrading to 5.6
- Cross-version incompatibilities to worry about
- 5.5: backwards-incompatible binlog changes
- you cannot put a 5.1 slave on a 5.5 master
- 5.5: changed string/number conversion algorithm
- 5.6.4: backwards-incompatible timestamp/datetime storage format changes.
- upgrading isn't required, but restoring from backups is 'more difficult' unless you have a
.frmfile
- upgrading isn't required, but restoring from backups is 'more difficult' unless you have a
- 5.5: backwards-incompatible binlog changes
- todo figure out wtf this means