<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>

<channel>
	<title>mobicules</title>
	<atom:link href="http://www.mobicules.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mobicules.com</link>
	<description>From Concepts to Solutions - Real Quick, Real Smart</description>
	<pubDate>Tue, 24 Aug 2010 12:07:03 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Local Storage API</title>
		<link>http://www.mobicules.com/local-storage-api/</link>
		<comments>http://www.mobicules.com/local-storage-api/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 09:46:31 +0000</pubDate>
		<dc:creator>sushil</dc:creator>
		
		<category><![CDATA[HTML5]]></category>

		<category><![CDATA[cache]]></category>

		<category><![CDATA[local]]></category>

		<category><![CDATA[storage]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=729</guid>
		<description><![CDATA[HTML5 brings a whole set of new and exciting functionalities to the browser. One of these features is the new Web Storage API.
The new storage api is designed for two basic purposes - session storage and local storage.
Session Storage enables carrying out multiple transactions in different windows at the same time, in effect giving each [...]]]></description>
			<content:encoded><![CDATA[<p>HTML5 brings a whole set of new and exciting functionalities to the browser. One of these features is the new Web Storage API.</p>
<p>The new storage api is designed for two basic purposes - session storage and local storage.</p>
<p>Session Storage enables carrying out multiple transactions in different windows at the same time, in effect giving each window its own data store for current session.<br />
While it sure is very helpful, the one that we find more interesting is local storage api.</p>
<p>Storing data on the client has been a challenge for Web developers for ages and HTTP Cookies have been the only way to accomplish that. Cookies do not handle this case well, because they are transmitted with every request - which is a performance hit if there is more and more data. Web Storage brings us the freedom to do this with local storage api.</p>
<p>Apart from uses like personalization or tracking user behavior, a much more significant one is caching data from your servers, on the client&#8217;s local machine. This allows you to avoid waiting for potentially slow calls back to your servers and minimizes the amount of data needed from your servers. It is often inefficient, insecure, or inappropriate to store that data on a server and this may amount to megabytes of user data, such as entire user-authored documents or a user&#8217;s mailbox.</p>
<p>The recommended storage space for each site is 5MB. This is way more than the 4KB space available via cookies. Stored data is accessible from multiple windows and lasts beyond current session and each site has its own separate storage area.</p>
<p>Another important aspect is the ease of use of the API. The Storage API is a classic name/value pair data structure. It has simple methods like getItem(name), setItem(name, value) and remove(name). For iterating over all of the name/value pairs, one can use the length property which gives you the total number of name/values pairs being stored, or go along with a key(index) method which returns a name from an array of all names used in storage.</p>
<p>It is already supported in the latest versions of all major browsers: Microsoft®, Internet Explorer®, Mozilla Firefox, Opera, Apple Safari, and Google Chrome. Even more importantly for mobile developers, it is supported in WebKit-based browsers like those found in the iPhone and phones using Android (version 2.0 or later) phones as well as other mobile browsers like Mozilla&#8217;s Fennec.</p>
<p>We, as developers, suddenly have a huge amount of storage space on the client. For mobile developers, it&#8217;s even more exciting as it really opens up the local caching of data. In addition to dramatic improvement of the performance of your application, local caching is key to enabling another new exciting capability of mobile Web applications - going offline.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/local-storage-api/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google Apps API and Services - Now create secure, powerful applications for Google Apps users</title>
		<link>http://www.mobicules.com/google-apps-api-and-services-now-create-secure-powerful-applications-for-google-apps-users/</link>
		<comments>http://www.mobicules.com/google-apps-api-and-services-now-create-secure-powerful-applications-for-google-apps-users/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 10:38:07 +0000</pubDate>
		<dc:creator>niraj</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=714</guid>
		<description><![CDATA[ Google&#8217;s API and services allows developers and IT departments of companies that use Google Apps to create applications that work with Google Apps services like mail, docs, calendar etc. Such applications can then be sold through the Google Apps marketplace. In addition to API for Google&#8217;s services like docs and calendars, such applications can also [...]]]></description>
			<content:encoded><![CDATA[<p> Google&#8217;s API and services allows developers and IT departments of companies that use Google Apps to create applications that work with Google Apps services like mail, docs, calendar etc. Such applications can then be sold through the Google Apps marketplace. In addition to API for Google&#8217;s services like docs and calendars, such applications can also use Google Apps API and services. The following is a quick overview of the Google Apps API and services, and an idea of what can be achieved with this API.</p>
<p><strong><img class="alignnone" title="Mobicules Google Apps API development" src="http://code.google.com/googleapps/images/apps_mp.png" alt="" width="128" height="119" /></strong></p>
<p><strong>1. Google Secure Data Connector</strong> - The SDC enables the deployment of Google Apps applications that user resources deployed inside an IT departments firewall. The idea is simple, even when a company is using Google Apps to host their email, documents, calendars etc., there might still be digital resources within the corporate firewall that users might need. A very simple example might be a telephone directory of clients, stored on a computer within the corporate firewall. Using the SDC, a Google Gadget can be created that can allow users access to this telephone directory from inside their email or google docs interfaces. Not only that, permissions regarding which user can access which resources can be defined using SDC, so an IT department can strictly control access privileges.</p>
<p>SDC is only available for Premier Edition or Education Edition Google Apps accounts.</p>
<p><strong>2. Provisioning API</strong> - The provisioning API provides functions for creating, retrieving, updating and deleting user accounts, nicknames, and groups. Essentially, it can enable creation of custom admin panels for administrating Google Apps accounts for their admins.</p>
<p>Provisioning API is also available only for Premier Edition or Education Edition Google Apps accounts.</p>
<p><strong>3. SML Single Sign On service</strong> - Security Assertion Markup Language (SAML) is an XML standard that allows secure web domains to exchange user authentication and authorization data. Using SAML, an online service provider can contact a separate online identity provider to authenticate users who are trying to access secure content. Essentially, this allows Google to &#8216;off-load&#8217; the job of authenticating the user on another provider, whose primary responsibility might be to be a single window authentication service for all digital resources and facilities of a company. Very intelligent, and very useful.</p>
<p>From Google&#8217;s documentation on this service: &#8221; Using the SAML model, Google acts as the service providerand provides services such as Gmail and Start Pages. Google partners act as identity providers and control usernames, passwords and other information used to identify, authenticate and authorize users for web applications that Google hosts. There are a number of existing open source and commercial identity provider solutions that can help you implement SSO with Google Apps.&#8221;</p>
<p><strong>4. Email Migration API</strong> - Targeted at users who had earlier been using some other email service or provider, and would now like migrate to Gmail for their company. How it works is simple, a domain admin or user can send POST web requests to Google to enter data into their email accounts. There are also a wide variety of applications now available from Google to migrate email to Gmail from popular email software like Microsoft Outlook.</p>
<p>Again, Email Migration API is only available for Premier Edition and Education Edition Google Apps accounts, and can not be used to migrate Standard Edition email or gmail accounts.</p>
<p>We at Mobicules, being long time Google Apps users, have been playing around these API for some time build some internal tools. Get in touch if you think we can do something for you to make Google Apps work better and do more for you</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/google-apps-api-and-services-now-create-secure-powerful-applications-for-google-apps-users/feed/</wfw:commentRss>
		</item>
		<item>
		<title>CodeIgniter vs Symfony - quick roundup</title>
		<link>http://www.mobicules.com/codeigniter-vs-symfony-quick-roundup/</link>
		<comments>http://www.mobicules.com/codeigniter-vs-symfony-quick-roundup/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 10:23:23 +0000</pubDate>
		<dc:creator>Swapnil</dc:creator>
		
		<category><![CDATA[Mobicules]]></category>

		<category><![CDATA[CodeIgniter]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Framework]]></category>

		<category><![CDATA[Model]]></category>

		<category><![CDATA[ORM]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=706</guid>
		<description><![CDATA[There are many PHP frameworks available for a developer to choose from - Zend, Symfony, CakePHP, CodeIgniter to name a few. All these frameworks provide a solid structure for the code along with in-built library to address commonly needed programming tasks which makes life easier for the developer. Framework allows a developer to creatively focus on the [...]]]></description>
			<content:encoded><![CDATA[<p>There are many PHP frameworks available for a developer to choose from - Zend, Symfony, CakePHP, CodeIgniter to name a few. All these frameworks provide a solid structure for the code along with in-built library to address commonly needed programming tasks which makes life easier for the developer. Framework allows a developer to creatively focus on the project by minimizing the amount of code that needs to be written for a given task.</p>
<p>We shall be discussing two frameworks here today - Symfony and CodeIgniter.</p>
<p>To first note down a few similarities between the two:</p>
<ul>
<li>Both the frameworks follow MVC architecture, which gives us distinct separation of code in terms of logic, view and database interaction.</li>
<li>Use configuration files to help you maintain vital metadata, such as the location of the database, base URLs, and the like.</li>
<li>Provides helpers classes for various features.</li>
<li>Allow the developer to extend the core code and build their own libraries and helper functions.</li>
<li>Both support caching, multiple databases, form support, form validations and other common features.</li>
</ul>
<p>Both the frameworks are very similar in the sense that they allow a platform to the developer to easily create their application in minimum amount of time and effort. But they differ in terms of implementation and the features they provide.</p>
<ul>
<li>One of the biggest difference between the two frameworks is the ease of use. CodeIgniter is pretty easy to start with where as Symfony has a distinct learning curve and can be little difficult to start with.</li>
<li>CodeIgniter has a very small footprint, which is only about 1MB where as Symfony comes to around 5MB. This is due to the fact that Symfony comes bundled with many 3rd party libraries (which one might not be using at all). This also makes Symfony slightly slower in the run-time compared to CodeIgniter.</li>
<li>Installing Symfony can be tricky on shared hosting as it has PEAR dependency and requires shell/command line access for setting up projects, creating modules and other tasks, where as setting up CodeIgniter is as easy as copying the source folder on the server and changing a single line in the config file.</li>
<li>Another area of difference between the two frameworks in the PHP version support. Symfony only supports PHP 5 where as CodeIgniter supports both PHP 4 and 5. This is due to the fact that Symfony is developed fully with Object Oriented approach.</li>
<li>Symfony facilitates user with auto code generation for modules, models, database etc which is missing from CodeIgniter. Symfony comes bundled up with propel/doctrine ORM tool which provides wrappers for database functions. This feature is not available by default in CodeIgniter but can be integrated separately.</li>
<li>Symfony provides in-built Ajax support, which is lacking from CodeIgniter.</li>
<li>Debugging capabilities of these framework differ a lot. Symfony provides a debug toolbar in development mode which provides information about database connections, load time, parameters passed, session details among other things. This helps is analyzing and optimizing an application to a great extent. A similar feature is not available in CodeIgniter.</li>
<li>Symfony CLI provides commands to quickly (and effortlessly) create an admin backend for the generated model classes. Again, no such feature is available in CodeIgniter.</li>
<li>CodeIgniter is a simple and easy framework to use. It give the developer options to implement the application as desired and is flexible in implementation. Symfony on the other hand is a very powerful but somewhat rigid framework which follows convention where ever possible. Symfony is all about best practices whereas CI seems to take a more pragmatic route.</li>
</ul>
<p>Whenever we compare things, we&#8217;ll always have pros and cons but that doesn&#8217;t necessarily make one thing better that the other. The same applies here as well. Both the frameworks have their own advantages/disadvantages and should be used according to the requirements.</p>
<p>In my opinion CodeIgniter works well for something quick and small, Symfony work wonders when it comes for complicated projects.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/codeigniter-vs-symfony-quick-roundup/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Design Patterns</title>
		<link>http://www.mobicules.com/design-patterns/</link>
		<comments>http://www.mobicules.com/design-patterns/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 12:40:27 +0000</pubDate>
		<dc:creator>Swapnil</dc:creator>
		
		<category><![CDATA[Mobicules]]></category>

		<category><![CDATA[design pattern]]></category>

		<category><![CDATA[factory]]></category>

		<category><![CDATA[mvc]]></category>

		<category><![CDATA[ruby on rails]]></category>

		<category><![CDATA[singleton]]></category>

		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=700</guid>
		<description><![CDATA[In developing a software system, choosing the right design pattern is very important. It directly impacts the application in terms of Maintenance, scalability and/or re-usability.
A Design Pattern is a known solution to commonly occurring problems or scenarios in software design. It is a kind of a template or structure on which one can code the [...]]]></description>
			<content:encoded><![CDATA[<p>In developing a software system, choosing the right design pattern is very important. It directly impacts the application in terms of Maintenance, scalability and/or re-usability.</p>
<p>A Design Pattern is a known solution to commonly occurring problems or scenarios in software design. It is a kind of a template or structure on which one can code the application. It drills down in to the details relating to implementation of certain components. Benefits of knowing and using design patters are several. Patterns are known solution for building software systems. They can reduce development time as known solutions are used instead of reinventing the wheel. It is also a benefit to use known solutions that are tried and tested.</p>
<p>We, at Mobicules understand this and try to utilize design patterns where ever possible. We&#8217;ve developed many projects using the Symfony Framework, which implements the MVC pattern quite effectively. We&#8217;ve also made use of Symfony EventDispatcher, which is an implementation of the Observer Patter.</p>
<p>Implementing Singleton pattern (described below) with Ruby on Rails (another area of expertise at Mobicules), is as easy as adding &#8216;including Singleton&#8217; in the class. This makes the class a singleton class and can be used throughout the application accordingly.<br />
Below are the few popular design patterns which Mobicules have implemented in various projects:<br />
<strong></strong></p>
<p><strong><span style="text-decoration: underline;">Singleton:</span></strong></p>
<p>This pattern is used in applications when only a single instance of a resource is required. Most common type of resource, on which this can be applied is database connection.</p>
<p>Using singleton pattern for database connection, the overhead caused for creating multiple connections is reduced.</p>
<p><strong><span style="text-decoration: underline;">MVC:</span></strong></p>
<p>Model-View-Controller, this is the most commonly used design pattern. This patterns separates the business logic and presentation logic in such a way that any changes in the presentation logic should not interfere with the business logic and vice-versa. This is done with the help of a middle object called controller whose job is to take the request from the view pass it on the model and if required present the updated/new view to the user.</p>
<p><strong><span style="text-decoration: underline;">Factory Method:</span></strong></p>
<p>Factory Method is a object oriented creational pattern.The method is used to create and initiate objects for classes. Use of factories gives the programmer the opportunity to abstract the specific attributes of an Object into specific subclasses which create them i.e. it defines an interface for creating an object, but let the subclasses decide which class to instantiate.</p>
<p><strong><span style="text-decoration: underline;">Observer:</span></strong></p>
<p>The Observer pattern allows one object (the observer) to watch another (the subject). The subject object notify the observer object if the subject’s state changes (Conceptually, the Observer pattern in something like a trigger in a database, which runs a stored procedure when a table row is modified).</p>
<p>The main advantage of this pattern is that it decouples the observer from the subject. The subject doesn&#8217;t need to know anything special about its observers. Instead, the subject simply allows observers to subscribe. When the subject generates an event, it simply passes it to each of its observers which they can use in whichever way required.</p>
<p>There are many other creational/structural/behavioral patterns, like Iterator, Adapter, Prototype, State etc. But in order to implement a pattern effectively a detailed study is done at our end to understand the nature of the problem and how a particular design pattern solves it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/design-patterns/feed/</wfw:commentRss>
		</item>
		<item>
		<title>F8 Announcements - Facebook Everywhere</title>
		<link>http://www.mobicules.com/f8-announcements-facebook-everywhere/</link>
		<comments>http://www.mobicules.com/f8-announcements-facebook-everywhere/#comments</comments>
		<pubDate>Fri, 23 Apr 2010 12:31:43 +0000</pubDate>
		<dc:creator>niraj</dc:creator>
		
		<category><![CDATA[Facebook Application Development]]></category>

		<category><![CDATA[Using Social Networks]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=690</guid>
		<description><![CDATA[F8 has generated a huge amount of interest among users, developers and business owners alike. And quite understandably so, as it brings about some sweeping changes in Facebook&#8217;s strategy in how it plays with the web. Additionally, there are some very logical &#8216;enhancements&#8217; to the Facebook API, which we are sure developers are going to [...]]]></description>
			<content:encoded><![CDATA[<p>F8 has generated a huge amount of interest among users, developers and business owners alike. And quite understandably so, as it brings about some sweeping changes in Facebook&#8217;s strategy in how it plays with the web. Additionally, there are some very logical &#8216;enhancements&#8217; to the Facebook API, which we are sure developers are going to love.</p>
<p><a href="http://www.mobicules.com/wp-content/uploads/2010/04/f81.png" ><img class="size-full wp-image-686" title="f81" src="http://www.mobicules.com/wp-content/uploads/2010/04/f81.png" alt="f8 announcements - social plugins, opengraph protocol" width="377" height="224" /></a></p>
<p>First the Social Plugins. Social Plugins enable functionality most of which was already possible using Facebook Connect, but Social Plugins make integration with Facebook much more uniform, simple and intuitive. With Social Plugins, site owners can very easily &#8216;embed&#8217; Facebook related functionality into their websites, enabling user actions which can then reflect back on the user&#8217;s profile on Facebook. A few key points of note:</p>
<ul>
<li> When they visit a site, even before they log in to the site using Facebook, they would be able to see their friends who are members of the site using Facebook, if the user is logged into Facebook from the browser.</li>
<li>Users can comment on content on the site using functionality enabled by Facebook, and the comments would be visible on Facebook on the user&#8217;s profile.</li>
<li>The Facebook &#8220;Like&#8221; button is going to be everywhere on the web, and would be an easy single step process for users to connect their facebook profiles with the content on the site.</li>
<li>A very interesting Live Stream plugin can be embedded on your website to enable a live discussion between a Facebook user and his Facebook friends on your website</li>
</ul>
<p>We&#8217;re sure a lot more would come soon. This paradigm of enabling connections can be stretched to a great length by Facebook to enable a lot of interesting functionality.</p>
<p>Whats next is the OpenGraph protocol, which is Facebook&#8217;s baby step (but a profound one) towards the semantic web. What it provides is a very simple way for any site to link itself up with Facebook content and pages, so that the sites can show up seamlessly and richly across Facebook - in search results, user profiles or newsfeeds. Site owners can now easily declare meta information on their site that can be picked up by Facebook and shown on newsfeeds, search results and user profiles. Site owners can not only define titles and descriptions for their pages to show up inside Facebook, but they can also direct Facebook as to which section or category on Facebook should the page appear under. Additionally, owners can also declare contact information using the meta tags, which makes it very easy to contact the site owners from inside Facebook. All this is fairly simply, and from what it appears, potentially very effective.</p>
<p>What has the developers interested is the Facebook Graph API. Other than the fact that it brings in a completely new way for developers to interact with the Facebook platform, what is of great interest is that Facebook now allows developers to cache Facebook&#8217;s data on their own servers for more than 24 hours, which was, till now, strictly disallowed. This has raised privacy concerns, and it will be interesting to see how Facebook handles it.</p>
<p>All in all, in our opinion, this appears to be the most important and biggest step in the Facebook system after the release of the Facebook API years back. The effect of this is going to be potentially explosive, and if this works out well, will make Facebook totally ubiquitous, probably even synonymous, with the web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/f8-announcements-facebook-everywhere/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Voyavo</title>
		<link>http://www.mobicules.com/voyavo/</link>
		<comments>http://www.mobicules.com/voyavo/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 14:45:49 +0000</pubDate>
		<dc:creator>sushil</dc:creator>
		
		<category><![CDATA[fbconnect]]></category>

		<category><![CDATA[jquery]]></category>

		<category><![CDATA[symfony]]></category>

		<category><![CDATA[api]]></category>

		<category><![CDATA[cars]]></category>

		<category><![CDATA[flights]]></category>

		<category><![CDATA[hotels]]></category>

		<category><![CDATA[local api]]></category>

		<category><![CDATA[maps]]></category>

		<category><![CDATA[travel]]></category>

		<category><![CDATA[trip planning]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=575</guid>
		<description><![CDATA[We are really excited to see the private-beta release of Voyavo, a trip planner, which we recently developed for one of our clients, Momentum Design Lab.
Voyavo is an application developed with latest web2.0 technology and cutting-edge user interface. Highly interactive and having all the social interaction features - Voyavo is just the right tool for [...]]]></description>
			<content:encoded><![CDATA[<p>We are really excited to see the private-beta release of <a href="http://voyavo.com" onclick="javascript:urchinTracker ('/outbound/article/voyavo.com');">Voyavo</a>, a trip planner, which we recently developed for one of our clients, <a href="http://momentumdesignlab.com/" onclick="javascript:urchinTracker ('/outbound/article/momentumdesignlab.com');">Momentum Design Lab</a>.</p>
<p>Voyavo is an application developed with latest web2.0 technology and cutting-edge user interface. Highly interactive and having all the social interaction features - Voyavo is just the right tool for all the travel enthusiasts for planning their trips. Apart from making trip management a piece of cake, Voyavo also helps you find the best and book flights, hotels, car hire and activities and you can easily add them to your itinerary.</p>
<p>Voyavo brings a more social travel experience with the ability to share proposed itineraries, watch for the best priced items, store travel bookings, and quickly develop a travel plan – to meet the needs of all travelers on a trip, before your book the travel details. Voyavo harness social networks and helps consumers to organize, share details and invite others to join in travel planning and search, book, post and share activities with friends, family and associates.</p>
<p>All of your restaurant reservations, day activities, flights, hotel stays and other details from your trip can be kept together and organized by day, and by week. Voyavo has a seamless integration with maps and you can even view your trip details in relation to each other - get directions to and from all your planned events. With a number of privacy options, you decide who can view what. Keep your own itinerary separate from everyone else. For group trips, you can keep a separate itinerary that is private from the rest of the group. You can also create other organizers to help plan the trip. You can also create a watchlist of fares &#038; prices - Voyavo keeps track and notifies you of the best deals and prices of flights, hotels, and cars you add to your watchlist.</p>
<p>You can login with any of your social network or email accounts - connect to Voyavo with your MySpace, Facebook, Yahoo!, AOL/AIM, Gmail, OpenID, or Twitter account! You don&#8217;t need to create another set of login information you might forget! Invite your friends from Facebook and your address books to easily keep everyone up-to-date on travel plans.</p>
<p>Voyavo is developed using Symfony and JQuery - the latest in web technology. Symfony is a php-based framework designed on the principles such as DRY and KISS. It is the perfect tool for developing feature rich complex web applications such as Voyavo. It is also highly customizable with a wide range of plugins and an active community. JQuery is one of the most feature rich and customizable javascript library. It accelerates development to a great extent and helps you deliver a highly enhanced GUI to the users. Again, with a wide variety of plugins available, you can create a state-of-the-art interface to impress your consumers.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/voyavo/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Symfony - A Bird&#8217;s Eye View</title>
		<link>http://www.mobicules.com/symfony-a-birds-eye-view/</link>
		<comments>http://www.mobicules.com/symfony-a-birds-eye-view/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 12:58:20 +0000</pubDate>
		<dc:creator>sushil</dc:creator>
		
		<category><![CDATA[symfony]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=513</guid>
		<description><![CDATA[Symfony is a great framework to build sophisticated, maintainable, extendable and scalable applications using php. Following the MVC paradigm, it keeps code maintainable, and heavily minimizes the number of repetitive tasks that need to be performed while building and maintaining the application.
Symfony - A Bird&#39;s Eye View
View more presentations from csushil.

Choosing the right tools for [...]]]></description>
			<content:encoded><![CDATA[<p>Symfony is a great framework to build sophisticated, maintainable, extendable and scalable applications using php. Following the MVC paradigm, it keeps code maintainable, and heavily minimizes the number of repetitive tasks that need to be performed while building and maintaining the application.</p>
<div style="width:425px;text-align:left" id="__ss_1983582"><a href="http://www.slideshare.net/csushil/symfony-1983582"style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;"  title="Symfony - A Bird&#39;s Eye View" onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">Symfony - A Bird&#39;s Eye View</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symfony-mobicules-090911073055-phpapp02&#038;stripped_title=symfony-1983582" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symfony-mobicules-090911073055-phpapp02&#038;stripped_title=symfony-1983582" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a href="http://www.slideshare.net/"style="text-decoration:underline;"  onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">presentations</a> from <a href="http://www.slideshare.net/csushil"style="text-decoration:underline;"  onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">csushil</a>.</div>
</div>
<p>Choosing the right tools for development of a product is an essential part of its success. We at Mobicules understand this and recommend the best solutions from the industry.  The Internet is ever-changing and ever-expanding and so are the applications.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/symfony-a-birds-eye-view/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Choosing a framework/platform for a social network that needs to be 10 million users ready</title>
		<link>http://www.mobicules.com/choosing-a-frameworkplatform-for-a-social-network-that-needs-to-be-10-million-users-ready/</link>
		<comments>http://www.mobicules.com/choosing-a-frameworkplatform-for-a-social-network-that-needs-to-be-10-million-users-ready/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 09:12:17 +0000</pubDate>
		<dc:creator>niraj</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=281</guid>
		<description><![CDATA[We know it makes more sense for most people having their social networks built to have a first version built very quickly and test it with the target user group or the market, but we have recently had experience with building social networks where the focus was on coming up with an architecture that will [...]]]></description>
			<content:encoded><![CDATA[<p>We know it makes more sense for most people having their social networks built to have a first version built very quickly and test it with the target user group or the market, but we have recently had experience with building social networks where the focus was on coming up with an architecture that will scale up to 10s of millions of users economically and effectively. We did an analysis of all the options available to us, and the following is a quick summary of our findings and recommendations.</p>
<p><strong><span style="text-decoration: underline;">Goal</span></strong></p>
<p>To select a platform/framework which will allow scaling to 10s of million users for a social application.</p>
<p>The core issue here is Database Scalability and Flexibility. We&#8217;ll touch upon both one by one:</p>
<p>Database Scalability: As it turns out, perfectly normalized, flat databases with absolutely no data/information duplication are not essentially right for applications that need to scale to a huge user base. Such a database structure needs excessive computation and a lot of table joins, which end up getting computationally very expensive as user base grows.</p>
<p>Database Flexibility: Complete control over database structure is required if one is to design an application that is needed to scale to a huge user base, as with time, different clustering and partitioning schemes might be required to help the application scale horizontally.</p>
<p><strong><span style="text-decoration: underline;">Platform Assessment</span></strong></p>
<p>The following is an assessment of Elgg, Drupal and Symfony on the above parameters:</p>
<p>ELGG: Due to a very flat and normalized database structure, the only way to scale horizontally with ELGG is to duplicate the database using MySQL replication on multiple servers. The negative with this approach is that it ends up duplicating the complete database, with the result that each machine running a copy of the replicated database will have to be very powerful server, rendering the solution expensive. (MySQL clusters is a standard way of doing it)</p>
<p>Drupal: Similar problems as ELGG with Drupal, but database is not as flat and normalized as ELGG. Scaling up in a similar manner as described for ELGG wity MySQL clusters would probably be cheaper with Drupal.</p>
<p>Symfony: Allows us to use a custom database structure. We can design the database and replicate it as we like. Symfony also uses its own query/object caching mechanism, which is efficient. As an example, the Yahoo bookmarks site supports 20 million users on Symfony.</p>
<p><strong><span style="text-decoration: underline;">Proposed Solutions</span></strong></p>
<p>Solution 1:<br />
Get deep into the ELGG code and customize the database interaction layer so as to support our own database, that can be designed and partitioned as we wish. The problem that this approach comes bundled with is that subsequent ELGG updates/releases will not be directly usable by us, and we will have to manually merge them into our &#8216;custom ELGG&#8217;. The positive of this approach is that ELGG plugins will work on our &#8216;custom ELGG&#8217; with none or very little changes, if any.</p>
<p>Solution 2:<br />
Build the solution ground up with Symfony, with our own custom database design that allows us the flexibility to partition it as we like. </p>
<p><strong><span style="text-decoration: underline;">Recommendation</span></strong></p>
<p><strong><span><span style="font-weight: normal;">Our recommendation in a case where you are looking to scale up to 10s of millions of users would be write everything from scratch (and not use a &#8216;platform&#8217; like ELGG/Drupal), that allows you to customize and tweak anything and everything. Symfony seems to have a good reputation for enabling creation of very large websites, and so, we would recommend using Symfony as a framework.</span><br style="text-decoration: underline;" /></span></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/choosing-a-frameworkplatform-for-a-social-network-that-needs-to-be-10-million-users-ready/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Designing a multimedia kiosk network</title>
		<link>http://www.mobicules.com/designing-a-multimedia-kiosk-network-software/</link>
		<comments>http://www.mobicules.com/designing-a-multimedia-kiosk-network-software/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 10:09:07 +0000</pubDate>
		<dc:creator>niraj</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/?p=266</guid>
		<description><![CDATA[Recently, we worked with C3Cube Multimedia to build a kiosk network for Coca-Cola India celebrating its sponsorship of the Delhi DareDevils, which is a team that competed in the Indian Premier League (IPL). It provided an array of interesting interactive, multimedia and social features, and was installed at 27 locations across Delhi/NCR. Designing a multimedia [...]]]></description>
			<content:encoded><![CDATA[<div>Recently, we worked with <a href="http://www.c3cube.com/" target="_blank" onclick="javascript:urchinTracker ('/outbound/article/www.c3cube.com');">C3Cube Multimedia</a> to build a <span class="il">kiosk</span> network for Coca-Cola India celebrating its sponsorship of the Delhi DareDevils, which is a team that competed in the Indian Premier League (IPL). It provided an array of interesting interactive, multimedia and social features, and was installed at 27 locations across Delhi/NCR. Designing a multimedia <span class="il">kiosk</span> network was an extremely challenging and interesting job, and the challenge was compounded by the aggressive delivery timelines required by the project.</div>
<div></div>
<p><img src="http://www.mobicules.com/wp-content/uploads/2009/06/mcd3.jpg" alt="CocaCola Dillidilse Kiosk" /></p>
<div></div>
<div>Here are some key features built for the <span class="il">kiosk</span> network:</div>
<div>-&gt; Interactive multimedia games with real-time response</div>
<div>-&gt; Social networking features</div>
<div>-&gt; Integration with an on-<span class="il">kiosk</span> camera</div>
<div>-&gt; Integration with bluetooth for upload and download of files at kiosks</div>
<div></div>
<div></div>
<div>Add to the above the need to monitor the kiosks and do software updates and maintenance remotely on machines at scattered geographic locations, and we had a very big task at hand.</div>
<div>These, in very short, were the constraints we worked under:</div>
<div>-&gt; We had to reuse a lot of components built for the web browser, for use in a web-site. This meant the <span class="il">kiosk</span> application had to be a &#8216;website&#8217;</div>
<div>-&gt; Deliver real-time or very quick response in the application &#8216;website&#8217;</div>
<div>-&gt; Integrate the <span class="il">kiosk</span> application &#8216;website&#8217; (running in the browser) with hardware components like bluetooth and video camera on the <span class="il">kiosk</span></div>
<div>-&gt; Develop social features on the application which could only run off a remote server.</div>
<div>The solution was designed and developed in just 50 days, and managed to wow most of the 10000 users who used the kiosk.</div>
<p>With this experience in the background, Mobicules is now capable of designing, developing, deploying and maintaining rich kiosk multimedia applications and kiosk management infrastructure.</p>
<p><img src="http://www.mobicules.com/wp-content/uploads/2009/06/mcd2.jpg" alt="Kiosk Network Designer Inida" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/designing-a-multimedia-kiosk-network-software/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Delaying call to require_login for accessing Facebook applications: Benefits, How-To and Case Studies</title>
		<link>http://www.mobicules.com/delaying-user-login-for-accessing-facebook-applications-benefits-how-to-and-case-studies/</link>
		<comments>http://www.mobicules.com/delaying-user-login-for-accessing-facebook-applications-benefits-how-to-and-case-studies/#comments</comments>
		<pubDate>Wed, 03 Dec 2008 09:41:20 +0000</pubDate>
		<dc:creator>niraj</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.mobicules.com/2008/12/03/delaying-user-login-for-accessing-facebook-applications-benefits-how-to-and-case-studies/</guid>
		<description><![CDATA[We did a talk at the Facebook Developers Garage, Delhi on why deferring a call to require_login() can be good for your Facebook application. Here&#8217;s the presentation.
Delaying call to require_login for accessing Facebook applications: Benefits, How-To and Case Studies
View SlideShare presentation or Upload your own. (tags: require_add seo)

]]></description>
			<content:encoded><![CDATA[<p>We did a talk at the Facebook Developers Garage, Delhi on why deferring a call to require_login() can be good for your Facebook application. Here&#8217;s the presentation.</p>
<div id="__ss_812403" style="width: 425px; text-align: left;"><a href="http://www.slideshare.net/mobicules/delaying-user-login-for-accessing-facebook-applications-benefits-howto-and-case-studies-presentation?type=powerpoint"style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Delaying call to require_login for accessing Facebook applications: Benefits, How-To and Case Studies"  onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">Delaying call to require_login for accessing Facebook applications: Benefits, How-To and Case Studies</a><object width="425" height="355" data="http://static.slideshare.net/swf/ssplayer2.swf?doc=facebookrequirelogin-1228296175829554-8&amp;stripped_title=delaying-user-login-for-accessing-facebook-applications-benefits-howto-and-case-studies-presentation" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=facebookrequirelogin-1228296175829554-8&amp;stripped_title=delaying-user-login-for-accessing-facebook-applications-benefits-howto-and-case-studies-presentation" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View SlideShare <a href="http://www.slideshare.net/mobicules/delaying-user-login-for-accessing-facebook-applications-benefits-howto-and-case-studies-presentation?type=powerpoint"style="text-decoration:underline;" title="View Delaying call to require_login for accessing Facebook applications: Benefits, How-To and Case Studies on SlideShare"  onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">presentation</a> or <a href="http://www.slideshare.net/upload?type=powerpoint"style="text-decoration:underline;"  onclick="javascript:urchinTracker ('/outbound/article/www.slideshare.net');">Upload</a> your own. (tags: <a href="http://slideshare.net/tag/require_add"style="text-decoration:underline;"  onclick="javascript:urchinTracker ('/outbound/article/slideshare.net');">require_add</a> <a href="http://slideshare.net/tag/seo"style="text-decoration:underline;"  onclick="javascript:urchinTracker ('/outbound/article/slideshare.net');">seo</a>)</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mobicules.com/delaying-user-login-for-accessing-facebook-applications-benefits-how-to-and-case-studies/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
