Recent Posts

Thanks Guys from Finkar! 1

Ivan, Nick, Ihar,

Thanks!  Really apprecaite the quick work in getting V1.0  of Finkar launched so quickly.  We look forward to iterating over the coming months and building a great product with your help. 

Keep up the agile development work :)

Tim O’Reilly, CEO, Rockall Data, LLC

Support Causes By Browsing The Web 3

Just under a month ago, DoGood Headquarters had the privilege of launching our browser plug-in, the DoGooder. The DoGooder, which is available for Firefox, Internet Explorer, and Safari, hides the generic advertising you see on the Internet, and shows you thoughtful green, charity, and health and wellness campaigns instead. From the profits generated from said campaigns, DoGood Headquarters donates 50% back to charitable organizations, green initiatives and non-profits. Win-win.

dogood-homepage

The DoGooder presents an exciting shift at the apex of technology and philanthropy. Together, end-users from virtually any demographic can make a tangible difference in this world without effecting their current lifestyles or bank accounts.

The DoGooder offers end-users several interesting functions. By simply right-clicking a web page (Firefox and Internet Explorer), end-users can:

• Show original advertisements at any time

• Suggest causes to support

• Allow any web site to ignore the DoGooder

• Report advertisements that are irrelevant to improve our algorithms

Not only does the DoGooder provide a means for anyone to do some good, it also allows end-users to choose what, when, and where they see online advertising. Without any effect on browser performance, or any related security or privacy issues, the DoGooder is posed to, well… do some serious good.

For more information, please visit www.dogoodhq.com. The DoGooder is simple to use, takes ten seconds to install, and it’s totally free.

ServiceMerchant – Ruby toolkit for recurring billing and subscription management 1

ServiceMerchant is an open source library for Software-as-a-Service applications, based on subscription payments and various service plans. It’s available under MIT license for more then a year. It’s home page is here.

The library consists of number of well-isolated and well-defined components, so that you may re-use portions of the library, should you find the full functionality not required for you. If you choose to use the library as whole, it should cover most of your payments requirements, thus being billing module for your application.

ServiceMerchant’s main purpose is providing gateway-independent support for recurring billing operations and powerful high-level tools for building subscription-based billing atop of it. It is built on top of well-known Active Merchant library.

ServiceMerchant can be used both as a Rails plug-in or standalone Ruby library. It is also possible to integrate ServiceMerchant with non-Ruby web applications via REST interface or common GUI.

Supported Gateways: Currently Authorize.Net and Paypal Website Payments Pro (US) are supported.

Generally, if Active Merchant supports some gateway with recurring billing features then it is easy to add ServiceMerhant support as well. In this case you’ll only need to add a few lines of proxy code between Active Merchant and common recurring billing API.

How do I get it?

git clone git://github.com/itteco/service_merchant.git

If you’re not using git, you can download snapshot from Service Merchant page on github.com

Components

ServiceMerchant consists of three relatively independent components:

  • Recurring Billing API – is aimed at providing uniform interface for recurring billing features of payment gateways and making switching from one to another as painless as possible.
  • Transaction Tracker – stores local and readily available snapshots of so-called “recurring billing profiles”. With Tracker you can check account status much faster than vie gateway query (which not every gateway API includes). Transaction Tracker hooks automatically to Recurring Billing API and updates your local copy of data according to all ongoing operations.
  • Subscription Manager – provides high-level logic for managing subscription services, tariff plans, payment policies and so on. You can even use it to automatically adjust final price with the tax of appropriate region!

Give it a whirl on your next SaaS project, Ruby or other. We have successfully integrated ServiceMerchant into Python/Django application, for example.

jFuSea – Java based Fuzzy search library

Back in May 2009 we open-sourced jFuSea – Java library, which allows implementing fuzzy logic searches based on pre-configured settings.

It got the following features so far:

  • Initial linguistic analysis (lexeme and morphologic) of user’s request. It allows clean request from stop-words and determine part of speech for all words of request and also to construct all word forms to search. The results are returned as XML-documents, making it easy to put it in a database with request builder.
  • Preparing your database by making word-based index tables for some document table. In general cases you may configure only library’s text files without code modifications.
  • API for searching indexed documents using configurable SQL-queries. Request builder to translate results of linguistic analysis into a database query.
  • Samples of usage: Craigslist aggregator and search of recent advertisements to search above cities and categories.
  • Web demo-application for demonstrating search for Craigslist advertisement database.

Check it out at Google code.

Big Table Solution

Big Table Solution (BTS) is Apache 2.0 – licensed open source Java library, we published back in April 2009.
BTS is essentially a JDBC driver which allows applications to operate with distributed multiple database instances as they do with the single database. It offers a solution to the problems that arise with the growth of the volumes of data in an application’s relational database and parallel growth of load on the database layer.

Relational database management systems would typically provide partitioning and/or clustering to deal with those issues. BTS, for one, offers an alternative solution by suggesting to split application’s data into more than one database instances and taking the responsibility of executing particular SQL queries against the relevant database instances.

Since BTS resides between application’s data access objects layer and JDBC drivers of the database being used, it can work with any RDBMS that goes with a JDBC driver.
BTS itself is implementation of JDBC driver specifications, making it easy for developers to integrate with. It may also be used with either plain JDBC or with literally any persistence framework (e.g. Hibernate or iBATIS).

Visit library’s homepage for more details.

Our first app for Google G1 Android platform is on the market!

We have silently rolled out our first Google G1 Android platform application today.

It is actually a game, yet another implementation of famous addictive ball game, called SameGame. We chose it as our pilot project for Android because it has its own fans already, there were no implementation of this game for Android when we started (2 appeared while we have been in development), and foremost – we like the game ourselves.

The game differs from the counterparts with pretty good graphics, error-free implementation, high score integration, redo-undo functions, etc. It asks the permission to get access to smarphone’s call state – so that you may safely return to the game after unexpected incoming call, it asks for internet access and geolocation coordinates so that we can show off your high score globally and locally.

We had a lot of fun developing for a new for us platform, all the way through. Perhaps, the most tricky issue turned out to be the geolocation coordinates.  We did not want to ask user a permission and make him wait until his current coordinates will be calculated, and therefore we used last known location instead. It was confusing though as Android (like iPhone) can check the location over wireless as well over GPS and sometimes last known location is not what one would have expected :) . The other issue we spent quite a bit of time on was to trigger the proper handlers once the phone wakes up of the standby state. Not that we were preparing to get users asleep while playing this game, but did do the handlers just in case one only plays at the red traffic lights (like I did while testing the game).

The other important business lesson we learned – if you want to do something, start it as soon as possible so that you do not regret should rivals do it faster.

Android market was amazing – we have been able to upload our game just under 5 minutes of time. Quite a bit of a difference compared to Apple Store. Such openness makes us believe Google Android has very prosperous future. The community, apparently, is very active. We have had more then 100 installations within 2 hours after upload, and 26 reviews within the same time (provided, we did not announce anything – just uploaded into the market, yes, that easy).

Here is what most recent comments are about:

Check it out and let us know what YOU think!

The game is open-source, as most of our pilot projects. The source code can be found here. (We will actually upload it tomorrow – as soon as Google repositories become writable again, they had extended maintenance today).