Tuesday, March 25, 2014

Is MongoDB a good choice for your Application


In todays time when starting a new project you no longer have to choose only between RDBMS’s for software development despite a number of products are created (NoSQL) to offer new approaches to data persistence . Among them some offer better read-write performance than classical storage , some offer near-linear horizontal scalability and some focus on better data representation for more convenient data access for business domain.
MongoDb is one such NoSQL storage that supports sharding , replication and document-oriented persistence. MongoDB is the leading open source, document oriented and  cross-platform schemaless NoSQL Database developed by 10gen. It provides subscriptions , consulting , and training for the NoSQL database.
In MongoDB structured data is stored as JSON-like documents associated with dynamic schemas unlike it is stored in form of tables in classical relational database, thereby making data integrations much faster and easier. Unlike MySQL which is written using SQL queries, Mongodb is focused on BSON i.e binary JSON which means that much of the functionality can be directly accessed through JavaScript Notation.
MongoDb comes with its own shell interface to directly run commands onto database. It focus more on objects containing key value pairs.
NoSQL is a vague term that comprises of different types of database engines . It main classes include Graph databases , Column databases ,  Key/value stores and document databases.
Examples of Graph databases are Neo4j and OrientDB , these model depicts the relations between entities . Cassandra and Hadoop are Column databases and are used for processing large amounts of data . memcache  or Redis belong to key/value stores where data is stored and retrieved by a specific key . Lastly MongoDb and Apache CouchDb belongs to the last Document database category.
Document Database -
In a document database(MongoDb) the smallest unit is a document. Every record in MongoDB is a document composed of field and value pairs , it is a data structure more or less similar to JSON objects. The value here can include arrays or arrays of documents . Documents are stored inside a collection which together makes a database. There are many advantages of documents like it corresponds to native data types in many programming languages , dynamic schema supports polymorphism and embedded arrays and documents reduce any need for expensive joins.
Not every document is required to have the same structure each can have different fields or even sub documents normally described as nested or embedded documents .The document database allows to easily retrieve the objects without threading data together to form a valid object.


Why to choose MongoDB :-


1. MongoDB is free and Open source  -  It is open source and with new releases and updations it is still stable with nice documentations and a growing community. With each new updations new functionalities are being added at rapid pace.


2. Schemaless and Document Oriented  -  Mongo has no schema and hence makes it a perfect choice for rapid software development as you need not spend time doing schema design . Unlike relational database it stores data in collection of BSON documents which simplifies the mapping between database and domain objects . Arrays and nested objects are transparently stored in the DB making it an apt choice for domains with polymorphic data.

3 . Querying & Aggregation Framework  -  Mongodb provides a powerful querying facility , which uses indexes that you have created to query nested or embedded objects and arrays . For query that requires MAX , AVG or GROUP BY from SQL , mongo offers a new mechanism Aggregation framework , that allows to run ad-hoc aggregation queries without any need to write cumbersome scripts .
4.  Horizontal Scalability  -  Mongodb provides replication and sharding features to build a clustered topology where replication provides consistent read scaling while sharding facilitates read and write scaling.
5.  Intuitive architecture  -   Mongodb has a single master per replica making it simpler compared to other peer to peer architectures , it also offers fast writes for quick collection of various  statistics in a shorter response time .
6.  Multiple PL Support  -  A large no. of programming language can leverage mongodb from ruby to java to php.
7.  MapReduce  -  It is a powerful searching algorithm for aggregations and batch processing similar to hadoop. Massive aggregation is carried out by it, in mongo map and reduce functions are written in javascript and are executed on mongod servers and results are collected on result collections.
Mongodb even provides incremental MapReduce, it allows to run mapreduce jobs over collections,this can lessen the work by merging new data into existing results collection .

8.  Role Based - It allows to assign security policies to server and database and other cluster organization .
9 .   Mongodb offers replica sets for better fault tolerance and support for large amounts of data in larger environments. In these replica sets , all nodes are copies of one another and there is no single point of failure.
10.   Mongodb features a large community  with higher level ORM libraries that provides a closer mapping of objects .
MongoDb is mostly preferred and is best used while testing a new application to see how to structure a database with free form objects. Mongo is rich with drivers for nearly all languages including Perl, .NET , PHP, Python,C/C++,  and Node.js.
Key Features of MongoDB -
  • High Availability -  Replica sets which is mongodb’s replication facility is responsible for its high availability . It provides data redundancy and automatic failover.
  • High Performance -  Mongodb supports embedded data models that reduces input/output activity on DB. Mongodb being a document database has no joins and transactions making the queries much simpler ,also Indexes supports faster queries .
  • Automatic Scaling  -  Sharding provides scalability in mongodb . It distributes the large chunk of data into small clusters and allows horizontal scaling. Sharding can also be termed as partitioning . Mongodb can change partitions for data distribution and load balancing and allows to elastically add new nodes.
Apart from all the benefits Mongodb offers it comes with few flaws that should also be considered while adopting it for your business .
Since mongo is a NoSQL technology so if there is need to select related data from different collections then it has to be done manually which offers slight inconsistency. Moreover ACID transactions won’t be there anymore hence no automatic rollbacks , but this can be overcomed with two-phase commit , in-app locks and entity versions . MongoDB like many RDBMS’s is not optimized to work on HDD , it performs well when your indexes fit into RAM and your SSD hard drives on prod servers.
For setting up MongoDB with Authentication on Windows follow this Blog and for authentication on Ubuntu follow  this  .

To discuss how we can help you, please contact with our team at info@oodlestechnologies.com   or skype : oodles.tech .

Thursday, February 27, 2014

How HTML5 is Influencing Web Development


HTML5 is no  longer just a buzz.  Along with JavaScript and CSS3, HTML5  is promptly reshaping the perceptions of web browsers and web standards .
With more and more browsers now implementing HTML5 features across different platforms and devices, web developers have started to integrate many new frameworks into their websites, web designs and web applications .
Javascript has swiftly emerged as one of the finest technologies to render animations and effects in a platform agnostic and self contained way. Although HTML5 has its own standard but true powers of it are best realized along with Javascript and CSS3.
HTML5 is the newest hyper text markup language for websites from the W3C Consortium . The first draft was made public in 2008, today all major browsers offer HTML5 support. It was created in order to make the coding process much easier and more logical. It comes with unique and impressive features in the multimedia department implying that graphic and  multimedia content will be executed and handled much faster and easier, without the need of APIs or plugins . A lot of  features have been incorporated taking into consideration users ease to run heavy content on low-powered devices.  
Some Amazing HTML5 features include :
  • Video :  Videos can be embedded without third party proprietary plugins or codec. Videos can now be embedded as easy as an image.
  • Geolocation : This feature is used on mobile devices and is coming with HTML5.
  • Canvas : It allows developers to render graphics on fly. No plugin is required for  video.
  • Application Caches : Now web pages can store more information on visitors computer locally, just like cookies but unlike cookies that are small it allows larger files. Google Gears is a fine example of this action.
  • Web Workers : Unlike certain web applications that use heavy scripts to perform actions, Web workers use separate threads for processing .
From past few months, the momentum behind HTML has build enormously with web application developers, browsers and hardware vendors fully supporting and embracing it. Not even developers , more and more users are now understanding benefits and scope of HTML5 and how it can influence the web app development.
Now with all browsers ( Google Chrome, IE9, Firefox, Opera and Safari ) rendering robust support for CSS3, Javascript and HTML5 we are already witnessing glimpses of what the future of web will be.
Things to Know About HTML

1.  Augmented Web App Development

HTML has shifted the focus to web based development again, its been a game changer. Recently innovation has shifted for mobile and gaming applications , but  HTML5 brought the web back. It allows to write web applications that are more lively and visually rich than the native applications.
2. Offline Storage
HTML5 brought many desktop type powers to web applications, one of its feature being its offline storage capabilities. This allows to use a web app even when you are not connected to internet , it allows you to cache content. In an ecommerce website with HTML5, users can add items and can finish the purchase later.
3. GeoLocation
With this your location can be accessed via a website if using chrome, safari or firefox browsers . So now not only mobile phones are capable of tracing locations,  even modern web browsers can now access  your locations on desktop computers or on any non mobile device, connected to wifi hotspots. You can easily get traffic and weather informations without having to enter your location.
4. Canvas : Advanced Graphics
Canvas a Javascript Graphics library  brings a host of animation effects that were only available previously with Flash. In multimedia also HTML5 offers many benefits as it allows to play audios and videos easily without having to install any plug-ins.
5. Streamlined Development
HTML5 includes features that deliver a rich user experience and streamline development. Its API combined with new browsers provides functionality and make things possible that weren’t before.
6. Mobile Advertising
HTML5 brought with itself huge possibilities and benefits for Mobile marketers and Advertisers. It made Ads highly rich and scalable and hence enhanced Online advertising as now ads are much more accessible on mobile devices and across different browsers and applications. .These can be easily downloaded from ad server and can be displayed on web browsers .
While flash seems to be lagging  today, HTML5 is good to go . HTML5 is created with a rock solid foundation and addresses much of the flaws which is a huge advantage for web developers.
Some HTML5 frameworks for mobile app development  -
1.  JQuery Mobile  :  Its an easy and fast Mobile framework and offers excellent theme support. It is often used with JQuery mobile and Zepto.js. It is easy to use and is free of cost.
2.  Sencha Touch  :  It is the most popular HTML5 framework , it enables to develop cross platform applications which can run on Windows, Blackberry, Android and iOS platforms.
3.  Da Vinci Studio  :  This framework allows developers with drag and drop facility. It works on what you see is what u get moto. Its a free of cost framework and is compatible with multiple devices.
4.  M-Project  :   Its a mobile Javascript framework which is known to make applications simple and swift . It is based on MVC architecture . It is again compatible and free of cost. It also provides offline support.
5. Wink  :  It stands for Webapp Innovation Kit. This framework is adapted for firefox and opera mobile . It is an open project and minimizes the file size which is of great use to developers and has an easy to use interface with sliding panels and 3D widgets.

HTML5 is going to be  more and more huge and will enable web developers to do more with web apps without relying on any third party extensions.  With the rise in mobile application space ,creation of web and mobile apps using HTML5, CSS3 and Javascript  are exploding with more and more browsers continuously being optimized for evolving HTML standards. Now lot of companies and big ventures are looking at HTML5 as their future platform to target their apps on next Gen devices. With evolving technology it won’t be surprising to see more html5 elements in native desktop apps as well . It  is surely going to be a driving force for mobile app development.

To discuss how we can help you, please contact with our team at info@oodlestechnologies.com  or  skype : oodles.tech

Monday, February 17, 2014

Oodles Technologies Reviews


Oodles Technologies Continues to Receive Amazing Client Reviews
Oodles Technologies is a Web & Mobile App development Company specializing in Grails Development, Mobile App Development and SaaS Services. We have successfully delivered projects on all of our technologies and are going strong.
Oodles is continuously receiving words of appreciation from all clients for its timely delivery and quality constrained Applications.
Recently  Oodles Technologies  received feedback says : “Great team. Thorough understanding of the project and it's requirements. Will work with  team again. ”
Our Technical prowess includes Grails App Development, Titanium Application Development, Video Streaming, SaaS, Mobile Application Development, Hadoop & MongoDB Technologies.
We have more than 50 clients all over the world and has successfully delivered more than 100 projects in a short span of time.
Have a look on our Portfolio to view all our recent and recommended projects. At Oodles we take pride in turning technologies into elegant solutions which are effective for your business.
Contact us on info@oodlestechnologies.com to discuss how we can help you in your next project.

Tuesday, February 11, 2014

Gain competitive advantage with Big Data : Transforms Businesses at all levels


The simplest explanation of Big Data is that it is that data which can’t be easily queried or structured using standard relational database. It is a collection of data from traditional as well as digital sources , inside or external to company.
Big Data is the latest trend in the IT sector after Cloud Computing, with the demand to manage newer types of data many organisations are leveraging Big Data and is looking at it with a pool of opportunities.

Big Data Projects are more of an Opportunity rather than a Challenge.

The amount of data in our world is exploding. There is a strong urge to analyse these larger data sets in order to gain competitive advantage. In the near future we will witness a exponential growth in the big data sector due to rising  multimedia , internet, and  increase in  volume of data in social media and enterprises.
Usually Big enterprises are the ones stealing headlines to be leveraging Big Data to all extents. Large Technology providers have brought markets to a frenzy, demanding the requirement of improved  tools to cut  through huge volumes  of  data and information.

One of the reasons for limited use of Big Data was the notion that only large enterprises could fully utilize all possibilities that Big Data offers. It was believed that smaller organisations lack resources to be able to collect, store or handle Big Data. Fortunately small businesses are no longer left out from the Big Data race, infact all large or small enterprises all over the world can leverage Big data and its business analytics.     
   
                  
Big Data helps smaller businesses  to better target their services and get more revenues out of their production and marketing investments.
Small and Medium-sized Businesses can be benefited from Big Data as the exposure to data will motivate the business owners to share the insights with employees and can even get them involved in companies competitive decisions.
Whether large or small, all kinds of businesses try to sustain in this challenging industry . With new emergents and ever changing technology and patterns its difficult to build a consistent towering business. With this being the case the managers and entrepreneurs must have the insights to better formulate their marketing strategies.
Small businesses can have huge benefits from big data, as more and more data is available online making it easier for people to find and use it , this is a good news for small businesses as plenty of startups will move forward to help customers there.
Big data is just not for fortune companies instead startups have all the required abilities and resources to make use of such massive amounts of data to target their tailored services or products more specifically in market.

Big data prevents smaller firms with the hit and trial method to find their targeted group instead it helps to understand the patterns which is in fact crucial for every business and these figures can tell specific things related to a business respective niche.
Now Big Data tools and analytics are available and even affordable to businesses with smaller budgets making it a competitive landscape provided all are given equal opportunities to leverage big data.
                                
Just follow these simple steps to incorporate Big Data into your small business:
1. Bind up your Data
The foremost step is combining data from various silos for gaining advantage from Big Data’s predictive capabilities. These technologies include classification, cluster analysis, data fusion and integration, genetic algorithms, natural language processing, neural networks etc. Additional technologies applied to big data include parallel processing databases, search based applications,data mining grids and cloud based infrastructure. Big data requires exceptional technologies and tools to process efficiently large chunks of data within certain time limits.
Big data can now  be achieved with more affordable IT. Most of the large enterprises are running customer relationship management (CRM) and enterprise applications for long enough and have aggregated huge mass of critical data in them.

2.  Data testing
On gathering all of the data as described in step one, testing the data can be commenced which  can be done quickly . Analyse the data and validate your result. This information is not only valuable to understand what people say about your competition  but also plays a key role in determining what people are saying about your business and its growth.

While it seems that medical research and huge scientific projects are core part of big data and naturally fits in, there’s no reason why startups or smaller firms cannot benefit There is undoubtedly huge opportunities for smaller companies and enterprises in Big data sector.
Among all the most interesting thing is the accessibility of applications by smaller businesses from the cloud mainly in the areas of ecommerce and marketing .

3. Know more about Big Data
Ideally it has to be the first step in the process but it is listed after step two as data should be there at first place . The right kind of data will enable you to understand and drive appropriate business decisions as what to offer in products and services and how to market effectively to drive enough sales, big data proves to be a origin of acumen.
But it should be kept in mind that Big Data is not a magic bullet and it does not provide or guarantee a positive outcome always but it increases the chances of success to a certain extent and is a wonderful tool which can be added in the strategic development process of an enterprise. Small businesses do have an advantage over large organizations that is they have the ability to quickly test new methods without going through significant studies .
The adaptation of big data will lead to growth and hence competition for individual enterprises . From the standpoint of competitiveness Big Data should be given high importance and needs to be taken seriously by all firms whether big or small. Most enterprises , new entrants, startups and established firms will leverage the potential benefits that big data offers to compete, innovate and capture real time informations.  The use of big data will derive new streams of productivity growth and consumer surplus.
Ultimately as big data turned to be more affordable it should be given a priority by all small scale businesses to embrace it. By using businesses will have a strong understanding of their desired markets and targets.  Big data is a valuable asset for all businesses at all kinds of levels.

To discuss how we can help you, please contact with our team at info@oodlestechnologies.com .

Friday, January 31, 2014

Reasons to Adopt AngularJS to master Web Application Development


New to AngularJS,, having doubts on its implementation and usage…??  Wondering why to switch from traditional MVC/SPA approach using pure JavaScript and KnockoutJS to the power pack combination of TypeScript and Angular ? Well then here’s everything you need to understand and get started with AngularJS .

What is AngularJS ?
AngularJs is an open source Javascript framework to organise and assist web applications and single page applications. In 2012 we witnessed rise of Javascript MVC frameworks and  libraries including Backbone.js , Ember.js and Angular.js.
AngularJS is created by Google to build single page applications which could be more architectured and maintainable. AngularJS is completely client-side and entirely JavaScript, so wherever Javascript runs AngularJS also runs. It is even less than 29kb making it highly minified and compressed. Angular is the next generation framework , in which  every tool  is designed such that it works with every other tool in an interconnected way.

Amazing Features of AngularJS
Angular has some compelling features for not just the developers but for designers as well.
1. Two Way Data Binding
It is the most crucial and useful feature of Angular. This feature is what all modern web apps are all about i.e Real Time.  Two way binding permanently binds the view to the model and reduces refresh cycles, it also saves a considerable amount of code as previously 80% of code was dedicated to manipulating, traversing and listening to DOM . With data binding this code disappears and hence more concentration can be laid to application. Normally with change in model the DOM elements and attributes need to be manually manipulated to reflect the changes, it proves to be a complex process mainly when application grows in complexity and in size. But with two way data binding the synchronization between the DOM and the model is well taken care of.
2.  HTML Template
AngularJS doesn’t rely on any rendering engine but uses browser parseable .html files for its partials. The HTML templates are parsed by the browser in the DOM. The DOM is now the input to the AngularJS compiler . Angular then traverses the DOM template for rendering called the Directives. The input here is bowser DOM and not the HTML string , this is the noticeable change between angular and all fellow frameworks.  
3. Directives
Directives are stand alone reusable elements separated from the app . All DOM manipulations are performed by Directives. Directives are used to create custom HTML tags to serve as new custom widgets .With Directive you can create a new HTML tag or attribute and make it do anything you want . Directives are very unique, useful, powerful and reusable feature available only in angular. With  Directives you can  invent new HTML syntax that are specific to your application.
4. Dependency Injection
Dependency Injection is an angular feature that enables  developers to easily  build, develop, test and manage applications . With this feature you merely ask for for the dependencies instead of making manually , it will provide you an instance for any service asked provided you add the service as a parameter to get access to this service.
5.  Testing
AngularJS is designed by keeping testability in mind such that angular applications can be tested easily as any Javascript code comes with a strong set of tests . Angular comes with a end to end test runner setup .


Reasons Web Developers should Use AngularJS
AngularJS is a new Javascript framework  by Google and is designed to make front end development easier . The popularity of single page applications and angular is flaming. Angular provides numerous concepts to to organize and manipulate  the web applications .

1.  Enabling a Parallel Workflow

It enables a parallel workflow between designers and developers. For a project both designing and hard coded developing can go side by side. For a project that is estimated to be completed in 4 months then by following the traditional sequential approach there would be dedicated 4 months of design followed by 4 months of coding making it 8 months altogether. But  XAML allows to work in parallel by agreeing upon an interface for a screen. Developers can work on grabbing the data and writing all properties and tests around them while designers can animate and manipulate until they reach their final desired design . Those not familiar with XAML it is a declarative XML based language to instantiate object graphs and set values. The reason XML became so popular is because they translate well to angular.

2. Handling Dependencies
AngularJS easily handles dependency injections , angular lets you divide your app into modules that are initialized separately and having dependencies on each other. This enables you to test only the modules you want at once while also unfolding the ability to create end to end tests as well.
Dynamic loading is used by single page applications to deliver native app feel, but it involves a lot of dependencies on various modules and services, angular organises these and even manages the lifetime of an object for you.

3. Declarative UI
Having a declarative UI has many advantages associated with it. A structured UI is always easier to understand and manipulate. Without ,then by mere looking at the markup it can’t be figured what UI will actually do. So its not apparent whether any translations and validations are taking place by looking at some form tags.
But by declaring UI and by directly placing markup in HTML one can understand the extended markup angular provides. It makes it clear where and to what data is being bound to. With added tools like filters and directives the intent of UI is much clearer.

4 .  Development <-> Design Workflow
This works very well with angular, markup can be added without breaking an application as it depends on a particular structure or id to locate element and do task. Even rearrangement of code is much easier as the corresponding code that binds with it also moves along.

5.  Control to Developers

AngularJS with directives enables to create new HTML elements and attributes. Directives can work as parallel, are testable, provides dependency injection giving developers controls and more importantly control over controls.


6.  Single Page Application Support

Single page applications are driving more attention towards themselves as they are far more responsive and feels like a native app in the web. Now more functionality is being moved to web and by rendering on client load to server is reduced and also minimizes network traffic as instead of sending a full markup page, a payload of data can be sent and then can be turned into markup at client side.

AngularJS provides routing i.e to map a URL dynamically to loaded pages and also allows users to use in built browser controls to stand a SPA application.

7. Flexibility with Filters

Filters are standalone functions and filter the data before reaching the view, it can involve formatting decimal places or reversing an array or simply implementing pagination. Filters are separate from app just like directives and are so resourceful that creation of a sorted HTML table is possible with filters without writing any Javascript.

8. Lesser Code

With AngularJS you have to write less code as there ain’t any need to write your own MVC pipeline. The view defined by HTML is also much concise , with data binding manually putting data into view is not required. Directives are separate from app and enables to be written by separate team in parallel with minimum integration issues. With filters you can manipulate data without changing controls on view level.


These fundamental features and principles will let you create a performance driven, maintainable , extensible and efficient front end codebase . AngularJS provides a rich experience to the end user, it is a robust and well maintained Javascript framework suitable for any professional web development .

To discuss how we can help you, please contact with our team at info@oodlestechnologies.com .
Visit : http://www.oodlestechnologies.com/services