Sunday, April 27, 2014

We launched Criticgiri mobile and web app

We at Kiprosh are happy to launch Criticgiri, our first mobile and web product. Criticgiri is a super simple way to read and give reviews.

Android - Criticgiri Android app is now available in Google play store. Click here to view app on Play store.


iOS - 
Criticgiri iPhone and iPad app is now available in Apple iOS store.  Click here to view app in iOS App Store


Using Criticgiri, you become the real critic by rating anything (lets say a movie, mobile handset brand, airline brand, laptop brand and many more to come in future like restaurants, hotels, places etc.) by selecting just GREEN or RED. Just two moods to select from.


Its a realtime app, meaning if anyone anywhere in the world is rating GREEN or RED for anything then you can see these rating updated live realtime on your screen. The idea and motivation behind Criticgiri is to keep things simple for reading and giving reviews.
The web application (criticgiri.com) can also be used on mobile phone browser or tablet browser as its fully responsive.

Criticgiri is fairly simple app at the moment with basic features. We are really thankful to you all for using it and showing confidence that this handy simple app can be useful in your day to day life. 


Thanks again for your wonderful feedback and inputs requesting specific features. We will surely implement these in Beta version, that is coming soon, with more useful features like FB, Twitter, Linked-in, Google integration and auth, detailed analytics with vote counts, location specific services, more categories to review - restaurants and hotels etc.

Thursday, September 6, 2012

Kiprosh Team at Spree Conference in Dublin, Ireland

We at Kiprosh had wonderful time attending Spree Conference in Dublin, Ireland and had opportunity to meet Industry leaders, Experts, SME's like Yehuda Katz (member of Ruby on Rails, jQuery core teams), Sean Schofield (Creator of Spree Project and CEO of SpreeWorks), Brian Quinn (CTO at Spree Commerce), Bridget Gleason (VP Sales of Engine Yard), Nick Gauthier (Author of Recipes with Backbone), Paul Cambell (Hypertiny), Gregg Pollack (Envy Labs), Jonathan O'Connor (Code Guru),  Daniel Honig (Architect at DirectNorth), Scott Ford (Cardigan Networks), Lynne Brehmer (Marketing and Sales at Spree Commerce), Antonio Velázquez (Director at Telefonica S.A.), Ruz Chisty (theBusinessPitch), Qamir Hussain (Aveclabs), Ryan Bigg (Co-Author of book Rails 3 in Action with Yehuda Katz), Adil Wali (Kemists) and Andreas Happe (Architect at Starseeders).

Conference was held at World Famous "Guinness Storehouse" in Dublin city.

Here are few pictures from our conference.















Thursday, May 31, 2012

Image crawler engine using "anemone + geospider + redirect_follower + memCached"

Recently our team at Kiprosh built an image crawler engine with following requirements (to be strictly developed in 1 week time or less).

1) crawl and spider all images from a given URL (http or https)
2) crawl it as a background process
3) scrape till 3 level deep per link. (configurable depth)
3) save img URL's in DB, caching
4) keep on displaying the crawled images in UI
5) ability to tag these images
6) ability to "multi select" (using shift + mouse clicks) tag and untag images
7) wonderful nice looking UI with ajax, pjax for pagination, tagging and ability to cache
8) search feature based on tags
9) multi size crawl feature

After thorough research and quick PoC, we used gems like geo-spider, anemone, redirect_follower and memcached to build this crawler engine. The overall app turned out to be very stable, scalable, fast and elegant due to usage of these awesome gems. There were other gems in comparison to geo-spider but for our requirement geo-spider served specific purpose to allow retrieve metadata we needed from source URL's. Anemone is another cool gem for depth crawling in URL that other gems and patterns didn't allow us earlier to dive deep into.

Links to these gems and their respective project page
GeoSpiderAnemone, Redirect_Follower, Memcached

On Heroku, we had to use following gems for caching.

#gem "memcached-northscale", "~> 0.19.5.4"
#gem 'memcached-northscale'
#gem 'dalli'

On our dedicated node, memcached worked just fine without customizing or supporting with other versions.

Queue_Classic and Mechanize Gems

Creating a list of useful (indeed very useful) gems for future reference. We used following gems recently in our rails apps (actually products & tools) that we are developing for our clients.

1) queue_classic - Though we have used Redis Resque, RabbitMQ in three to four apps in past but for this specific requirement we wanted to rely on fast, low maintenance message queue providing a simple and intuitive user experience. It is built upon PostgreSQL to avoid the necessity of adding redis or 0MQ on heroku. Yeah queue_classic doesn't increase any database load contrary its pretty efficient due to usage of inherently reliable PostgreSQL methods where PostgresSQL has many wonderful feature such as  Listen/Notify. (even Oracle too supports listen/notify.) Thus, to avoid resque worker running on heroku and due to its sheer simplicity, we opted for queue_classic. BTW, queue_classic is extensively used by Heroku Postgres team to monitor the health of their customer databases processing hundreds of jobs per second.

RailCasts - http://railscasts.com/episodes/344-queue-classic 
Source page and more information is at - https://github.com/ryandotsmith/queue_classic

2) Mechanize - What a wonderful gem we must say :) Well we have done lots of scrapping but mechanize is really handy to automate interaction with websites. We are building a tool (web based) for an enterprise to automate large number of routine and regular tasks for their helpdesk support staff. Mechanize scripts helps us execute these routine tasks that saves a ton of time for the support team.

RailCasts - http://railscasts.com/episodes/191-mechanize
Source page and more information is at https://github.com/tenderlove/mechanize


Saturday, December 10, 2011

iOS Testing Strategy

Recently our team at Kiprosh started using FoneMonkey for Automation testing of iOS apps. FoneMonkey is free and has strong support for both iPad and iPhone devices.

Here are the various tools that we evaluated and shortlisted for iOS testing and then finalized our testing strategy for iOS apps (tools marked in color green are recommended)

Unit Testing
  • Built in XCode based unit testing using OCUnit - (little complicated and requires too many steps to create the unit test, process isn't automated)
  • GTM - Google Toolbox for Mac - (suitable) http://code.google.com/p/google-toolbox-for-mac/wiki/iPhoneUnitTesting
  • GHUnit - (most suitable, easy to setup, has GUI, but documentation and other build issues)
  • Mocking - OCMock and OCHamrest

Automation Testing tools and framework

Integration / Automated Builds
  • Hudson with xcodebuild
  • Code coverage (gcovr) with Cobertura XML

Testing Strategy
Finally we formulated following testing strategy for iOS apps
1) GHUnit for unit testing
2) With memory management, we must verify that when allocation fails we get expected return value as nil rather than garbage
3) Automation test suite (using FoneMonkey mostly or Sikuli or DeviceAnywhere)
4) Finally plug all the unit tests and automation test suite with CI using Hudson
5) Integrate often

Tuesday, August 2, 2011

JRuby + BIRT Reporting + TorqueBox = Enterprise Reporting Solution with Seamless Integration

Recently I got an opportunity to work on a rails application to implement an enterprise solution using JRuby + BIRT reporting + Torquebox and Trinidad. All an all a great learning experience in integrating all these latest technologies to build an enterprise and reporting solution. We are still improving performance for BIRT reporting. Torquebox provides lots of flexibility and high performance in deployments. JRuby is a year older now and came up with various bug fixes so it again helps. We used Trinidad too that became our default application server to use with JRuby.

This kind of solution is ideal for the Rails app containing blend of Java and Ruby as architectural stack that heavily wants to reuse, consume stable reporting platform such as BIRT (offers rich variety of reports to an application). Rails stack lacks heavy reporting and readily available solution that delivers rich set of features in all the available formats. Thus BIRT is a good fit for solution that wants to implement reporting in Rails app with the help of Java ecosystem. BIRT offers charting engine too along with features for Lists, Crosstabs, Compound reports etc. Easy integration, rich documentation, lots of active forums for help adds good points in favor of BIRT and thus we tried it in our application.

Thursday, March 3, 2011

Give others and yourself an 'A' today !

Came across this nice article with stories on rewarding others and yourself an 'A' in advance.
Article - Give yourself an 'A' today! It makes a difference.

This makes sense and I must admit that directly or indirectly I was using this before too without any thought or doubt of weighing this as a good or bad practice despite having fairly above average results in both professional and personal life. Well quite debatable as it gets sometimes, but worth a try to experience first hand.

Wednesday, January 26, 2011

Websites as Graph

Recently came across this cool online tool that enables to view websites as graph
http://aharef.info/2006/05/websites_as_graphs.htm
http://www.aharef.info/static/htmlgraph/

Tried this on portal / web app we implemented and here is how their DOM elements look like

1) Saralsociety.com



2) Oncocure.com

Monday, August 23, 2010

API - Face recognition across the Web

A very interesting yet useful API launched by Face.com is making rounds and expanding across the web quickly. "CelebrityFindr, Tagger Widget and Poster Yourself" already uses Face.com technology.

Developers can now tap into Face.com’s technology to add facial recognition to all kinds of web apps for free via the open API.

Well i m trying it out in one of our web app so will post review. Face.com claims that its technology can identify faces even in poor lighting or poor focus; or when subjects are wearing glasses, facial hair, and supposedly even Halloween costumes.

The company’s technology was recently used in an impressive social Augmented Reality app.

I couldn't find any other free API for facial recognition which is so powerful.

Monday, May 10, 2010

Allan Jardine accepted my jQuery code for his next version of the plugin

Famous jquery plugins "DataTable" and "KeyTable" developer Allan Jardine has accepted my code (reusable function) to be included in his next version of KeyTable jQuery plugin.

Here is the mail transcript with him

________________________________

On 10 May 2010, at 1:15, Allan Jardine wrote:

Hi Rohan,

Very nice idea for an API function. I've just updated KeyTable to 1.1.5 and including a function which basically provides exactly the same functionality, but with the name fnSetPosition and it will take either x,y coordinates or a TD node to focus on.

Thanks for sending me this.

Regards,
Allan




On 8 May 2010, at 12:16, Rohan Daxini wrote:

Hi Alan,

For your information and just to keep you posted, I added this new function in KeyTable plugin to resolve multiple issues I was facing while attaching KeyTable to my DataTable. Now I just call this function as keys.fnSetPositionAndFocus(0, 0) in my javacript code to refocus on cell[0,0]. This can be used to reset and refocus on any cell of DataTable as the selection and focus were lost.

All the issues like reattachment, refocus, reselection, repeated cell selection and lost blue rectangle is resolved now due to the inclusion of this api function

this.fnSetPositionAndFocus = function(x, y) {
_iOldX = x;
_iOldY = y;
_fnRemoveFocus(_nOldFocus);
_fnSetFocus(_fnCellFromCoords(x, y));

var str = 'table tbody ' + 'tr:eq(' + y + ')>td:eq(' + x + ')';
$(str).addClass('focus');
}

Thanks,
Rohan