SitePen is a web development consultancy whose blog covers JavaScript, Dojo, Node.js, and related tools and frameworks.
HN links it for technical posts on JavaScript topics such as Dojo Deferreds, Resource Query Language, and the Persevere JavaScriptDB storage engine.
He missed my favorite: http://www.persvr.org/
CouchDB requires custom views for each field you want to optimally query. Persevere (using the JavaScriptDB) does that natively and smartly for all fields: http://www.sitepen.com/blog/2009/04/20/javascriptdb-perseveres-new-high-performance-storage-engine/ (see section: Adaptive On-Demand Concurrent Indexing)
The biggest benefit of NoSQL dbs is the ability to add properties (i.e. columns) on the fly. Querying these properties should not be an O(n) operation. Unless I am completely mistaken, it is in CouchDB unless you write a custom view. Persevere doesn't require that and supports most common methods of querying ( http://docs.persvr.org/documentation/jsonquery ) If you query a field, it will index it and if you query it often it will maintain the index and update it regularly.
I'm just starting on a project that uses Persevere and already I'm quite impressed by it. It may not be as famous as CouchDB/Cassandra yet but it offers a lot of very interesting features including transaction support and nested objects with referencing.
I make Dev Tips: https://umaar.com/dev-tips/ a place to share little tips primarily with DevTools. Currently at 200+ tips.
Few other random things I've written:
* The Benefits of Speaking at Tech Conferences: https://www.freecodecamp.org/news/the-benefits-of-speaking-at-tech-conferences-c36348c50ac1/
* Data Visualisation with 1 Billion Shazam Music Recognitions: https://www.freecodecamp.org/news/data-visualisation-with-1-billion-shazam-music-recognitions-90728df3a8c9/
* Open Source: Learning new code techniques and concepts: https://umaar.com/dev-tips/200-learning-from-open-source/
* Programmatically creating images with the CSS Paint API: https://www.sitepen.com/blog/programmatically-create-images-with-the-css-paint-api/
Why? Can't a company make it so that there's a "cancel contract" method? I am not an Ethereum expert, I just don't understand, to be clear.
I'm sure this is far more basic than what you know how to do, but this seems pretty simple to add a "cancel contract" method that seems like it'd meet the requirement to be as easy to cancel as it was to set up. The account status seems like they can at any time just read it off the smart contract, they already do for balance monitoring each month in this example.
https://www.sitepen.com/blog/smart-contracts-a-tutorial
Is the issue that there will be a bunch of extraneous data on the chain or something when, say, Verizon puts their entire customer database onto Ethereum?
It would be great to see a standard emerge here. I've watched with interest as JSONPath and JSONQuery proposals have been presented, JS ports of Linq, and this latest proposal: RQL –
http://www.sitepen.com/blog/2010/11/02/resource-query-language-a-query-language-for-the-web-nosql/
There's an Arel-style JS implementation to build RQL strings using chained methods, which makes it quite conducive to composition and makes it feel more like functional programming.
Along those lines are D3's selections:
http://mbostock.github.com/d3/#selections
... and jLinq
http://www.hugoware.net/Projects/jLinq
Where is the love for [Deferreds?](http://www.sitepen.com/blog/2010/05/03/robust-promises-with-dojo-deferred-1-5/)?
Deferreds are
* Mostly monadic (creating a deferred is "return", the "then" method is "fmap" and "bind").
* Can be implemented as a library, without a separate compilation step or having to patch the runtime.
* Avoids most of the CPS inversion of control madness. You can return and store promises and you can also add callbacks after the fact so code is much more flwxible. (writing sequential async loops is still annoying though)
Connect is a misguided effort IMHO, but as the creator of JSGI/Jack (http://jackjs.org/) I'm of course biased.
JSGI is a lot more elegant. It's more of a functional style (apps are just functions, middleware are functions that return another app, a function), asynchronous support is handled via promises. Connect is very much tied to the Node stream APIs, and ends up being more convoluted and difficult to understand, IMO.
Here's an analysis of Connect vs. JSGI by Kris Zyp: http://www.sitepen.com/blog/2010/06/11/jsgi-vs-connect-for-node-middleware/