ANGARAI, a company based in Prince George’s county, signed an MoU with CI to pursue opportunities in mobile and web applications. The MoU was signed during the signing of ‘Sister State Agreement’ between Andhra Pradesh and Maryland.

To read more:

The Hindu

The New Indian Express

Facebook has become one of the most popular social networking sites. Most of the users use Facebook applications. How do the applications work? Apps on Facebook are web apps that are loaded in context of Facebook Canvas Page. A canvas page is a blank page within Facebook on which the app is run. Facebook applications are called from the developer’s production environment when the URL is called. The URL of the application is registered in Facebook. When the URL is called, Facebook directs the request to the developer’s server. The application processes the request, communicates with Facebook using Facebook API or Facebook Query Language (FQL). The following are the major components involved in Facebook app creation:

Facebook Canvas Page: Apps are loaded into canvas page. A canvas URL containing HTML, JS and CSS is used to populate the canvas page. When a user requests the canvas page the canvas URL is loaded in an iframe.

Social Channels: The advantage of Facebook Platform is the potential to reach millions of Facebook users. Social channels include bookmarks, notifications, news feed stories and search. Social channels enable new users to discover new apps and allow existing users to re-engage with existing users.

Analytics: Insights regarding app usage helps companies in understanding the interaction between the user and the app. Feedback for stream stories, referral traffic to app, user actions vs active user count, user demographics, permission related information are tracked. Diagnostics for apps are also provided to track API errors, access allocations and throttling information.

Source: https://developers.facebook.com/, Building Facebook Applications for Dummies book.

App-stores are increasingly playing a major role in the mobile software market. There are number of tools, libraries and frameworks available in the market for creating of native apps and web apps. The technology for creating mobile apps can be classified as follows:

  • Use different languages and compile native app(s) in different platforms: Titanium Appcelerator uses HTML/JS/CSS for developing apps for Android, Blackberry and iPhone market. Ansca Mobile uses ActionScript and Lua for developing apps for Android and iPhone markets.
  • PhoneGap and QuickConnect help in using native platform language to expose certain native features to web app. Sencha, jQTouch, iui, jQuery Mobile, Jo framework help in creating touch device optimized, native look and feel web apps.

The technology market is buzzing with news about Windows 8 after Microsoft showcased it in the recently held developer conference. It sure looks promising. But what would motivate a user/company to upgrade to Windows 8 if they have recently invested in Windows 7.

  • UI experience: Windows 8 has embraced Metro language to the core. It is similar to the Windows Phone 7 interface. In Windows 8, live tiles are used to display the required information from the start. It is almost like the gadgets that are displayed in desktop sidebar. Tiles are user interface elements replacing icons. They can be pinned/unpinned in the Start Screen. Windows 8 Metro will be powered by IE 10. The Metro interface is powered by Trident rendering engine and Chakra JavaScript engine from IE 10. Three instances of IE10 will be running: Metro and apps, Metro style IE 10 and desktop IE 10.
  • Faster boot: This is going to enable the computer to launch the screen within seconds of pushing the power button.
  • Windows Explorer: In Windows 8, user can copy, move, rename and delete files especially large groups of large files faster and with better control. Multiple conflicts can be seen in a single box. Menu and toolbars have been replaced in ribbon layouts. Contextual tabs help the user in finding the tools based on the task being performed.
  • Multitasking: Although multiple applications may be running simultaneously only those displayed on the screen should draw power. The rest are in freeze-dried state not drawing any processing power unless they are made active again.
  • Task Manager: The task manager is redesigned to provide more insight on the processing power and the power used by the apps.
  • Windows Store: Metro apps will be made available only through Windows Store. The store is similar to Mac App Store.
  • Anti-Virus: Windows Defender would be an anti-virus suite. It will be automatically turned off on installing other anti-virus software.

These are some basic features which I found interesting after reading through different features of Windows 8. Windows 8 is supposedly going to work well with touchscreen as well mouse and keyboard. The features are leaning towards touch enabled computers mainly. To learn about Windows 8 features terminology you can click here. References for this post have been taken from cio.com.au.

~ Ramya

Unit testing is done to validate a piece of code. Developers use unit tests to test a unit of code and to improve code quality. Code Contracts complement unit testing. It was introduced by Microsoft in .NET framework 4. The contracts take form of pre-conditions, post-conditions and object invariants for the classes. Code contracts provides feedback as code is written. It gives useful information about the code being develop. These help in ensuring software correctness in three ways:

They are part of the method implementation and contribute to ensuring the function abides by its contract. Second they force developers to think about what each method if expected to do and why. Finally contracts are form of metadata and the information they convey can be consumed by other code analysis tools like Microsoft static checker. The static checker is triggered by code changes, compile steps and ensures that pre-conditions and post-conditions match. It also ensures that conditions that must hold for a class at all times is always met.

If the contract defined for the classes are correct and no warnings are generated from static analysis then the code is likely to be correct. Correctness refers to the correct flow of actions and data which contracts can verify. Implementation details are verified with unit tests. Unit tests and code contracts complement each other.

Reference for this blog post has been taken from Information Week magazine.

Configuration management is key in a software development environment. It helps in maintaining sanity when there are multiple developers across multiple locations working in different time zones. But the success of maintaining the configuration management system lies in the hands of the developer. The developer needs to maintain the check-in check-out discipline. Even if it is not maintained for a day then the sanity of the system can be questioned. At CI we use the following best practices related to check-in:

  • Check-in often – Build breakage will be less. Check-in conflict and merging problems can be avoided. Avoid leaving changes overnight.
  • Make sure unit tests pass before checking in – Continuous integration suite causes build to automatically run when someone checks in code related to the build. It knows that code is related to the build based on the build’s settings. If someone checks in code and causes the build to fail then one can know which check-in broke the build.
  • Avoid bypassing copy-modify-merge – There may be a situation when two people may need to work on the same file. By passing copy-modify-merge only results in human errors.
  • Comment policy – Always comment all check-ins.
  • Associate work items – Without work item association, it is difficult to group change sets to a particular work. Merging and rolling back group changes are also difficult.

Please feel free to share any best practices related to check-in policies.

With all the hype and information surrounding cloud, the decision to switch over to the cloud can lead anyone’s mind spinning. The move from a desktop based product to a SaaS based business model requires a specialized provider. This post lists the most important factors that ISV’s should look into before engaging with a service provider.

Business: Assess the business drivers behind considering cloud adoption like moving to a newer business model. If there is no immediate competition then the need to migrate may not be necessary. But if moving to the cloud helps lower the operational expenditure then migration would make sense.

Risk: Switching to the cloud completely changes the business model. What was once a license based business model would become a subscription based business model. Customer service becomes key in success of the product as the switching costs for the customer become very low. Risks in terms of frequent product releases, availability, security become pertinent.

While technology is relevant it may not necessarily be as important as the business and risk factors. Compatibility in terms of infrastructure and application platform helps narrow down the choice in choosing the appropriate technology.

Reference: cloudtweaks.com

Windows Phone 7 is shipped on devices that meet Microsoft’s design guidelines. Microsoft enforces specific requirements around the types and locations of buttons and logos, and there are rules requiring the single screen resolution supported by Windows Phone 7.

The user interface of WP7 is different. Rather than icons, WP7 uses start page with tiles that can indicate status like the number of emails, facebook notifications etc with easy access to launching the application. Once launched from tiles or the list of applications, non-game applications appear quite visibly different from other platforms in their design, which uses side scrolling design metaphor intended to organize information into unique views or tasks on individual pages.

Similar to iOS, Microsoft approves applications before they can be downloaded. WP7 does not support multi tasking. It also offers limited user customization options.

Reference: Redmond mag

Integration is key. Apple and Google have delivered on this focus i.e. tight integration of their products, platforms and services. On Apple iOS devices the built-in iTunes and App Store own the music and software franchises. On Android devices, Gmail and Google search are tightly integrated. Microsoft meanwhile has not exactly kept integration in mind. An explicit download of Windows Live Essentials is required to get Microsoft IM client, blogging client and photo editor.

In the software product development environment, product integration has become very important. The steps listed in the CMMi process framework provides a clear sequence of the process involved.

  • Prepare for product integration
    • Establish and maintain integration sequence
    • Establish the integration environment
    • Establish product integration procedures and criteria
  • Ensure interface compatibility
    • Review interface description for completeness
    • Manage interfaces
  • Assemble product components and deliver the product
    • Confirm readiness of product components for integration
    • Assemble product components
    • Evaluate assembled product components
    • Package and deliver the product or product components

CI has worked on several projects involving integration of ERP’s with add-on products and CRM’s. While all projects may not have involved all the steps the basic framework for the project usually tends to be the same.

Cost cutting has become the norm these days. The fire for new ideas and new technology seems to be held back. Economic downturns offer unique opportunities to launch innovative new products and services. Within a service company, the biggest challenge with driving innovation is getting everyone involved. Innovation lab may not necessarily be the answer as it limits the responsibility to the sole team. Employees are happy doing their assigned work.

At CI, we do not believe in innovation labs. We believe everyone has the right to innovate and is required to innovate. The strategy is to engage more people in the pursuit of innovation while maintaining a sharp focus on the needs of the business and improving customer satisfaction. Innovation efforts are ties closely with customer satisfaction efforts. When the effort is tied to helping a customer, there is pressure in finding the time and opportunity to think out of the box. So how do we encourage employees to innovate:

  • Openness to innovation – A sense of entrepreneurship among the employees and cultivating ownership among them. Innovation is about taking risks. Efforts matter. When the effort goes great then the employee is responsible. If the effort does not have the expected results then it is everybody’s mistake and not an individual employee’s.
  • New ideas – Not restricting innovation to a group of people has helped foster innovation and have a pipeline of new ideas.
  • Test and Learn approach – Failure is inevitable. One may not be able to avoid failure completely but one can definitely get to failure quickly and cheaply. Assigning a timeline to each of the ideas helps in validating the effectiveness of the same.