javascript: All content tagged as javascript in NoSQL databases and polyglot persistence
Tuesday, 22 January 2013
Couchjs: Drop-In Replacement Javascript V8 Engine for Apache CouchDB
By the Iris Couch guys that are also providing Apache CouchDB cloud hosting:
couchjs is a command-line Node.js program. It is 100% compatible with Apache CouchDB’s built-in JavaScript system.
By using couchjs, you will get 100% CouchDB compatibility (the test suite completely passes) but your JavaScript environment is V8, or Node.js.
Original title and link: Couchjs: Drop-In Replacement Javascript V8 Engine for Apache CouchDB (©myNoSQL)
Thursday, 10 January 2013
CouchDB, TouchDB, PouchDB…
Calvin Metcalf writes about PouchDB, which is neither TouchDB nor CouchDB:
Before we discus PouchDB we’re going to need to talk about CouchDB which Pouch is based on. […] So one of the issues with CouchDB is that Erlang…well lets just say people have mixed feelings about it, which lead to pretty quickly, CouchDB compatible Databases, Big Couch from Cloudant which you can cluster, TouchDB is a version written in Objective-C targeting embedded apps, and then we have PouchDB.
Hurry as you may run out of names: AouchDB, BouchDB, DouchDB, EouchDB, FouchDB, GouchDB, HouchDB, IouchDB, JouchDB, KouchDB, LouchDB, MouchDB, NouchDB, QouchDB, RouchDB, SouchDB, UouchDB, VouchDB, WouchDB, XouchDB, YouchDB, ZouchDB. For special requests we could expand to using unicode and emoji.
Original title and link: CouchDB, TouchDB, PouchDB… (©myNoSQL)
Friday, 20 April 2012
Rickshaw: Interactive Time Series Graphs JavaScript Toolkit
Rickshaw is a JavaScript library providing the elements needed to create interactive time series graphs: renderers, legends, hovers, range selectors:

The Richshaw example page lists many other visualizations.
Original title and link: Rickshaw: Interactive Time Series Graphs JavaScript Toolkit (©myNoSQL)
Thursday, 19 April 2012
MongoDB and Node.js With Geddy: Persisting a Todo List
In this three part tutorial, we’ll be diving deep into creating a to do list management app in Node.js and Geddy. This is the last entry in the series, where we’ll be persisting our todo items to MongoDB.
Nice intro to using MongoDB from GeddyJS1 on Node.js. But if you need a todo application just download one from the AppStore.
Original title and link: MongoDB and Node.js With Geddy: Persisting a Todo List (©myNoSQL)
Tuesday, 21 February 2012
Riak Performance of Link Walking vs MapReduce
If you are asked to compare (or you just wonder about) the performance of link walking and map-reduce in Riak keep in mind the following details of how the two mechanism are implemented:
The biggest difference I see is that the link-walk uses an Erlang function where your MapReduce query uses a Javascript function (link-walking is implemented as a MapReduce query internally).
Serializing/deserializing to JSON as well as contention for Javascript VMs likely accounts for the lost time.
My emphasis on Bryan Fink’s email from Riak’s mailing list.
Original title and link: Riak Performance of Link Walking vs MapReduce (©myNoSQL)
Monday, 19 December 2011
Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS)
Jeff Darcy has written a while back about the (lack of) security in NoSQL database. Unfortunately things haven’t changed much and if you check the NoSQL + Node.js applications I’ve posted lately you’ll notice that some of them are completely ignoring security.
And there are some people realizing the risks and starting to express their concerns:
Playing with MongoDB lately, I’m getting scared. Because I’m seeing some really bad practices out there. Seeing it in live code. In tutorials.
Bryan Sullivan (Senior Security Researcher, Adobe Secure Software Engineering Team) has published a paper (PDF) explaining some of the possible server-side JavaScript injection attacks and the risks the apps and the data are exposed to. Teaser: he can do pretty much everything.
It should be noted that exploitation of server-side JavaScript injection vulnerabilities is more like that of SQL injection than of cross-site scripting. SSJS injection does not require any social engineering of an intermediate victim user the way that reflected XSS or DOM-based XSS do; instead, the attacker can attack the application directly with arbitrarily created HTTP requests.
Because of this, defenses against SSJS injection are also similar to SQL injection defenses:
- Avoid creating “ad-hoc” JavaScript commands by concatenating script with user input.
- Validate user input used in SSJS commands with regular expressions.
- Avoid use of the JavaScript eval command. In particular, when parsing JSON input, use a safer alternative such as JSON.parse.
Remember there’s no such thing as security through obscurity.
Original title and link: Attacking NoSQL and Node.js: Server-Side JavaScript Injection (SSJS) (©myNoSQL)
Thursday, 1 December 2011
Using GeoCouch for Serving-Up GeoJSON
Todd Jackson:
It took around 30 minutes for my 2.5 million records to load, which isn’t too bad considering it took about 20 minutes in PostGIS. My PostGIS table is approximately 950MB in size, while my CouchBase database, with just the data is 3.7GB, so there is a fairly large difference there. […] While the size/time to create spatial indexes in CouchDB is much larger/longer than PostGIS, I think it is a platform that will improve over time.
CouchDB has other benefits such as the distributed architecture that allows it to scale out, as well as Couchbase having a mobile solution as well, which when combined with the master-master replication scheme could enable some compelling mobile solutions.
For this use case another advantage is that both data and the code (server and client side) are all JavaScript. No impedance mismatch.
Original title and link: Using GeoCouch for Serving-Up GeoJSON (©myNoSQL)
via: http://boomphisto.blogspot.com/2011/10/serving-up-geojson-while-having-rest-on.html
Thursday, 3 November 2011
Node.js + MongoDB = Love
Pair Joyent Cloud’s hosted node.js SmartMachine Appliance with MongoLab’s hosted MongoDB and the integration becomes downright operatic. Angels sing. Trumpets blare. Grey storm thunderheads of object-relational-mapping haze part. Revealed are golden rays of low-impedance JSON object storage and query. All in the fertile green valley of asynchronous JavaScript on the unflappable, cool bedrock of Joyent’s SmartMachine hosting platform. Songbirds tweet. Life is good. Metaphors strain.
All that until you have to debug your code to find a missing var or purely drown under a pile of unmaintainable async Javascript code.
Original title and link: Node.js + MongoDB = Love (©myNoSQL)
via: http://joyeur.com/2011/10/26/node-js-mongodb-love-guest-post-from-mongolab/
Monday, 31 October 2011
Lamer News: A Redis-Sinatra-JQuery HN-like News Site
Salvatore antirez Sanfilippo has published on GitHub Lamer News a Hacker News like social site built on top of Redis, Sinatra, and jQuery—when writing this I’ve already checked out the code. For a long time Twitter-related and blog-related projects have been the favorite demos for NoSQL solutions, so its nice to see more serious applications featured.
The project is also running live at lamer news.com. It could benefit of a bit of UI liftup though.
Original title and link: Lamer News: A Redis-Sinatra-JQuery HN-like News Site (©myNoSQL)
Monday, 22 August 2011
Minimalistic CouchDB Client for node.js
Nuno Job’s NanoCouch Node.js driver for CouchDB:
After doing development like this for a while some obvious patterns started to emerge, as well as some code duplication. So the idea of nano was born: Build the minimal abstraction possible that allows you to use CouchDB from nodejs while preserving
stream#pipecapabilities.
NanoCouch was well received by the CouchDB community with comments like:
Mikeal Rogers: this post is really good because it doesn’t assume you know all the little things i always forget to explain, like how the callback arguments are structured. perfect beginner article! :)
Joe McCann: This is why CouchDB and Node.js are made for each other
Original title and link: Minimalistic CouchDB Client for node.js (©myNoSQL)
via: http://writings.nunojob.com/2011/08/nano-minimalistic-couchdb-client-for-nodejs.html
Saturday, 25 June 2011
A Javascript Blog With CouchDB and Node.js
I won’t say that everyone should do like Oren Eini and migrate his own blog to using a NoSQL engine, but I agree that NoSQL-based blogs are usually a better version of “hello world” apps.
In the two screencasts embedded after the break, Mark Cotton demonstrates how to build a Javascript based blog using CouchDB and Node.js.
Tuesday, 10 May 2011
Limitations of MongoDB
Some limitations and bugs in MongoDB, mostly related to its MapReduce and import/export:
There’s still plenty to like in Mongo, but at this point, I feel like Mongo’s mapReduce functionality is better suited to running queries which are too big to fit in memory, rather than serious data crunching. Perhaps my difficulties have been due to getting sharding involved with mapReduce. It’s also possible I’ve made a crucial mistake in configuring sharding, but I think I followed the directions pretty closely.
Original title and link: Limitations of MongoDB (NoSQL databases © myNoSQL)
via: http://leifw.wickland.net/2011/04/weird-buggy-and-disappointing-behavior.html
Most Popular Articles
- Translate SQL to MongoDB MapReduce
- Tutorial: Getting Started With Cassandra
- CouchDB vs MongoDB: An attempt for a More Informed Comparison
- Cassandra @ Twitter: An Interview with Ryan King
- A Couple of Nice GUI Tools for MongoDB
- NoSQL benchmarks and performance evaluations
- Ehcache: Distributed Cache or NoSQL Store?
- Document Databases Compared: CouchDB, MongoDB, RavenDB
- Quick Review of Existing Graph Databases
- NoSQL Data Modeling