|Current selected tag: 'nosql'. Clear.|
Your new post is loading...
Your new post is loading...
Current selected tag: 'nosql'. Clear.
I started this project in my own free time, having an affection for geospatial data. The application itself was inspiried by the amazing online Google+ Photo Editor. This tool not only allows you to view your photos, but also allows you to see additional metadata associated with your photos. The metadata is in a format called EXIF (Exchangeable Image File Format), a standard that specifies the metadata that images should contain when a photo is taken using either a digital camera (including DSLRs) or a smartphone. This information includes details of the camera, settings of the camera at the time the photo was created (for example, aperture and shutter speed), and - my favourite piece of information - GPS data, which is the latitude and longitude of the place where the photo was taken.
Instead of beating around the bush, I shall cut to the chase right away. Firstly, this blog is only for readers who have some idea about NOSQL. Secondly, the purpose of this blog is to give you a good idea of different types of NoSQL databases so that when you go for a particular NoSQL database type, someone says to you ‘Excellent Choice Sir’. Lastly, this blog is part of the MEAN stack series I have been working on and I will be taking up MongoDB after I am done with NoSQL database types.
Jan Hesse's insight:
On my current project we are in need of a dynamic query-building user interface. In non-geek terms, that means a web page that allows a user to specify fields, constraints, and values that evaluate to some kind of query or expression. Alright that was still a geeky explanation... but if you're reading this then the geek-speak is probably appropriate for you. But I digress...
This little UI is all about the data structure you want the UI to represent. If you can plan the data structure, you can throw the UI on top of it. There may be specific theories and methods on how to properly represent a logical query like this, but I'm not following any particular approach here.
My data structure is as follows:
* Condition - a unit of logic that defines a field, comparison operator, and value (e.g. Color equals 'Black', Quantity is greater than two, etc).
* Group - contains an array of Conditions and Groups, and specifies whether to perform a logical-AND or a logical-OR on all items in the array.
Hacker News comments on the article "MongoDB Days" here: http://gaiustech.wordpress.com/2013/04/13/mongodb-days/
Last week I attended MongoDB Day London. Now MongoDB itself is a technology that I’m fairly interested in, I can see where it would have its uses. But the problem is the people! They all talk like this:
* Some problem that just doesn’t really exist (or hasn’t existed for a very long time) with relational databases
So anyway, since it’s free‡, there’s no reason not to evaluate MongoDB, and see if it suits your use cases. But just remember that these kids think they’re solving problems that IBM (et al) solved quite literally before they were born in some cases, and the features are probably already there in your existing database/technology stack (I have used Oracle for my rebuttals just because I am most familiar with it, but I expect the same is true for SQL Server and DB/2 as well). Talk to your friendly local DBA…
Angular is great at 2-way data bindings between the DOM and models in memory. What if you'd also like to persist your models on a server? Join us to hear guest speaker Anant Narayanan (@anantn) of Firebase discuss how their integration with Angular makes it a breeze to synchronize data between the DOM and a server-side JSON store.
Jan Hesse's insight:
ASP.Net guys - definately have a look on this
No matter what, I found the same question over and over again, "should I use a NoSQL solution to my <what ever problem>, help me!", but some days ago I crossed a question that I want to discuss.
"One size does not fit all" applies to the RDBMS world, 4 years ago the only way to store information in an organized way was RDBMS and several people think that they should apply RDBMS to every single problem, and that's not true. But this same principle applies to the NoSQL world, take a look of Maslow's hammer law.
Contents:Data Model comparison Code comparison Conclusion
Creating realtime web applications has been possible for a while now, however up until recently it’s been kind of a pain and required a big engineering effort.
I think this is largely because the tools haven’t provided exactly what we needed to do realtime in a simple and painless way.
Luckily this has all changed, now it’s pretty easy to build realtime applications and it’s my goal to prove that to you in this episode.
The best way to prove this is by showing you, so we’ll build a simple single page application the uses realtime features from top to bottom.
What does NoSQL mean and how do you categorize these databases? NoSQL means Not Only SQL, implying that when designing a software solution or product, there are more than one storage mechanism that could be used based on the needs. NoSQL was a hashtag (#nosql) choosen for a meetup to discuss these new databases. The most important result of the rise of NoSQL is Polyglot Persistence. NoSQL does not have a prescriptive definition but we can make a set of common observations, such as:
In my working on various front-end systems over the years, one thing that I have continually found painful is trying to manage data. Shoving it in some random location, calling the server relentlessly, keeping state where I need not, storing it in DOM — gross. And as web applications continually get beefier and users expect more responsive, awesome interactivity, the front-end has had to take on more of the workload in working with data. Thanks to HTML5 we have the rather awesome localStorage, but I, personally, find the API to not be really ultra sweet, and what they do give us seems a little under powered, IMHO. I also find that this is not an uncommon issue and in managing data on the front-end numerous developers end up creating a bunch of boiler plate and state management all over their code and it gets messy, painful to look at, and even more painful to manage.
I wanted to build a web app that would allow data to easily be transmitted to other connected web clients. I had heard of Firebase before. So I started reading the Firebase documentation and playing around with the examples.There is a nice library that they created called AngularFire which provides some slick integration between Firebase andAngularJS. But for some reason, the provided chat example would sporadically not work. (As an aside, it seems that it would work most of the time in most of environments that I'd try, but for some reason, it rarely worked in one). So I needed to find a new solution.
According to the project page: "LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values." What's great about LevelDB is that it's fast and it doesn't have any external dependencies that users need to install before they install your app.
LevelUP is the Node.js bindings built on LevelDOWN which is the low-level Node.js bindings for LevelDB.
Backbone.js gave you the possibility to divide your application in logical parts andprovided data binding. Only that wasn’t enough of course, because applications needed more components like:
And so, other frameworks were born, like: RequireJS, CommonJS, Component, AngularJS, Twitter Bootstrap, Flight, Hogan.js, QUnit, Jasmine, … (and I can probably go on for another hour).
Through the first 3 parts of this series we now have a scalable voting application that can process votes for events via SMS or voice and display the real-time progress of voting. However, there is currently no web interface for an administrator. Creating events or modifying them require making changes directly to the documents in CouchDB. In this blog post, I will walk through the process of creating a simple web interface for administrators using AngularJS.
Map-reduce is a programming technique to solve any aggregation-grouping-summation related problem, where we have huge amount of data and try to do the above operation in parallel in no of distributed machines.
In map function/s, we will collect the frequency of data after processing on some subset of data.
In reduce function/s, we will merge and aggregate the intermediate processed data from map function/s and can apply any other statistical formula on the result to make final output.
So the final result from map-reduce is a form of summery of raw data in repository before processing the data with map-reduce framework.
To make this possible, we have selected -
1> Angular.js for client side development – Single Page Application
2> Cross Domain Communication in between Angular.js and Node.js
3> Node.js for server side development
4> Rest based web service creation with express.js
5> Database – MongoDb
6> Node.js MongoDb Module Extention (mongojs)