Imagga is a cloud platform that helps businesses and individuals organize their images in a fast and cost-effective way. They develop a range of advanced proprietary image recognition and image processing technologies, which are built into several services such as smart image cropping, color extraction and multi-color search, visual similarity search and auto-tagging.
During Balkan Venture Forum in Sofia I sat down with Georgi Kadrev to talk about technology. Surprisingly this hi-tech service is built on top of standard low-tech components and lots of hard work.
Core functionality is developed in C and C++ with the OpenCV library. Imagga relies heavily on own image processing algorithms for their core features. These were built as a combination of their own research activities and publications from other researchers.
Image processing is executed by worker nodes configured with their own software stack. Nodes are distributed among Amazon EC2 and other data centers.
Client libraries to access Imagga API are available in PHP, Ruby and Java.
Imagga has built several websites to showcase their technology. Cropp.me, ColorsLike.me, StockPodium and AutoTag.me were built with PHP, JavaScript and jQuery above a standard LAMP stack.
Recently Imagga also started using GPU computing with nVidia Tesla cards. They use C++ and Python bindings for CUDA.
As an initially bootstrapping start-up we chose something that is basically free, reliable and popular - that's why started with the LAMP stack. It proved to be stable and convenient for our web needs and we preserved it. The use of C++ is a natural choice for computational intensive tasks that we need to perform for the purpose of our core expertise - image processing. Though we initially wrote the whole core technology code from scratch, we later switched to OpenCV for some of the building blocks as it is very well optimized and continuously extended image processing library.
With the raise of affordable high-performance GPU processors and their availability in server instances, we decided it's time to take advantage of this highly parallel architecture, perfectly suitable for image processing tasks.
Georgi Kadrev
If you’d like to hear more from Imagga please comment below. I will ask them to follow this thread and reply to your questions.
There are comments.
RETiDoc automates personal ID data entry, speeding up customer service and eliminating costly errors. The product is based on OCR algorithms and could be used on hardware devices scanning the ID card or through a compact scanner box specially designed for the need. The main problem tackled by RETiDoc is manual data entry at service providers, which is a time consuming, low-customer satisfaction process, filled with expensive typos and low productivity at provider’s front offices.
Co-founder Martin Kulov takes us behind the scenes.
RETiDoc is the second start-up featured on this blog to rely heavily on Microsoft technologies. Software development is done in C# using Visual Studio and Team Foundation Service.
Microsoft Test Manager is used to organize the test process!
Unfortunately this section is missing. The original format of this blog is for the start-up founders or head of IT to tell the readers what factors led to selection of the named technologies. RETiDoc team is busy at the moment, working on their product launch and don't have the time to fill-in the details.
Hopefully they will do so in the future.
If you’d like to hear more from RETiDoc please comment below.
There are comments.
Deed is an action-provoking platform for challenging yourself and others and also a business solution for improved engagement by the corresponding communities. It solves the problem of passivity by converting people who “Like” to people who “Act. The challenge format gives businesses an effective, fresh and low-cost solution to maintain active connection with their communities and measure engagement.
Emil Stoychev explains their technical background.
Deed is built around Microsoft technologies plus some open source libraries.
Their web application and API is built with ASP.NET MVC 3 using MS SQL 2008 database engine. Deed is hosted on a single cloud server at Rackspace and uses Akamai CDN for static files distribution. At the moment the team is testing Windows Azure cloud platform and plans migrating there.
A native Windows Phone application also exists.
Lots of JavaScript and CSS frameworks come to play at the web interface layer like jQuery, Handlebars for templates and Less CSS.
IDE of choice is Microsoft Visual Studio 2012 for C# and Vim for everything else. Source code revision control is managed with Mercurial and build scripts are written in Python.
The Deed team had experience with Microsoft technologies initially so it was natural for us to choose this stack. While not perfect and costly in terms of hosting fees, it serves its purpose for the moment. When you start a new project and you want to get up and running fast your best choice is to use what you already mastered. That in our case was the Microsoft stack.
Emil Stoychev
Indeed I strongly support this! Always use technologies you are a master at and change and adapt along the way if necessary.
If you’d like to hear more from Deed please comment below. I will ask them to follow this thread and reply to your questions.
There are comments.
MaistorPlus solves the common problem of finding a reliable builder or handyman. An online platform that brings master craftsmen and homeowners together.
The process is really easy. Homeowners post jobs on the website and receive offers from relevant tradesmen. After the job is done homeowners leave feedback and recommendations. With this feature homeowners can compare tradesmen profiles, offers and ratings and confidently choose who they want to hire.
The team is also runner up at the Start IT Smart 3Challenge. Boris Sanchez shared their technical mojo.
Main technologies used are PHP, Symfony 2.1 and PostgreSQL.
MaistorPlus is a traditional web platform developed with the Symfony framework. Web pages are rendered by Twig - a straightforward, flexible and easy to extend templating engine, which is integrated into the Symfony framework by default and works server-side with PHP in order to generate dynamic content, based on data stored in the database. Web pages also use jQuery and Sizzle.js and feature modern graphics. Everything is beautifully styled with CSS.
The original development team already had experience with Symfony, Zend, Spring and some other web application development frameworks. We opted for Symfony for two main reasons. First, Symfony is constantly improving, and has a strong and continuously growing community that offers 3rd party add-on components for free. Second, PHP is a bit easier to "learn as you go" then Java. The members of our design team didn't have a lot of prior programming experience, so we wanted to make sure we set a low barrier of entry for them, as we didn't have the enough development staff to have a distinct separation between design creation and design integration in our team.
For the initial prototype we used the MySQL database management system. After a while we wanted to add spatial features to the business logic, and discovered that MySQL does not have proper support for spatial indexing. We therefore decided to migrate to PostgreSQL, which supports spatial data with add-ons like PostGIS.
Boris Sanchez
MaistorPlus is going to organize a Beta Testing next month. You are welcome to subscribe to their monthly newsletter or follow them on Facebook / Twitter.
If you’d like to hear more from MaistorPlus please comment below. I will ask them to follow this thread and reply to your questions.
There are comments.
Ucha.se makes learning fun. It is an online platform, on which pupils and students learn and prepare for school. Pupils learn faster, improve their results and get inspired. The platform allows students to watch videos, take tests, ask questions and share comments. Learning is represented with gamification components like drawings, playful narration, dashboards with the best students, etc. It is available on the web and is extending to mobile. Ucha.se is well recognized by the parents and teachers in Bulgaria. In November 2012 Ucha.se was awarded as the best website in Bulgaria in the field of Education and Science.
Nikolay Zheynov is leading the IT team which maintains and expands the web platform. He shared with me some of the internals.
Main technologies used are PHP, MySQL, Nginx, jQuery and jQueryUI.
Server-side development is done with PHP 5. The main reason for choosing PHP is that the IT team working on the platform had long experience with the language. Ucha.se has developed their own PHP framework which is constantly expanding. This allows flexible programming and easier application maintenance. Nginx is the web server of choice.
MySQL 5 is used for the database because PHP + MySQL is like bread and butter. While the site usage was growing the team had to optimize their DB layer and switched from MyISAM storage engine to InnoDB.
On the client-side standard web technologies are used - HTML5, CSS3 and JavaScript. The main goal when doing the website design was to match expectation from different user groups - pupils, teachers, parents and students. jQuery and jQueryUI are widely used on the client side.
True to our agile approach to incrementally enhance the product and the technology that goes along with it, we strongly believe in the scaling on demand practices. Ucha.se's own framework reflects exactly to that. It allows us to meet our growing user demands and provides at the same time, the dev-team with enough flexibility to quickly react on new business opportunities and technological (r)evolutions.
Nikolay Zheynov
If you’d like to hear more from Ucha.se please comment below. I will ask them to follow this thread and reply to your questions.
There are comments.
I am starting a new section called What Runs Your Start-up where I will write about the technologies running behind some interesting start-up companies and why they made their technological choices. The articles will be short and to the point. Interested readers can engage in discussion with start-up owners in the comments later.
I am starting with a dozen companies from the Bulgarian start-up eco-system and will present one or two start-ups per week. If you'd like to read about a company which is not listed here or want to promote your own just let me know.
There are comments.
Useful at Night is a mobile guide for nightlife empowering real time discovery of cool locations, allowing nightlife players to identify opinion leaders. Through geo-location and data aggregation capabilities, the application allows useful exploration of cities, places and parties.
Evelin Velev was kind enough to share what technologies his team uses to run their star-up.
Main technologies used are Node.js, HTML 5 and NoSQL.
Back-end application servers are written in Node.js and hosted at Heroku, coupled with RedisToGo for caching and CouchDB served by Cloudant for storage.
Their mobile front-end supports both iOS and Android platforms and is built using HTML5 and a homemade UI framework called RAPID. There are some native parts developed in Objective-C and Java respectively.
In addition Useful at Night uses MongoDB for metrics data with a custom metrics solution written in Node.js; Amazon S3 for storing different assets; and a custom storage solution called Divan (simple CouchDB like).
We chose Node.js for our application servers, because it enables us to build efficient distributed systems while sharing significant amounts of code between client and server. Things get really interesting when you couple Node.js with Redis for data structure sharing and message passing, as the two technologies play very well together.
We chose CouchDB as our main back-end because it is the most schema-less data-store that supports secondary indexing. Once you get fluent with its map-reduce views, you can compute an index out of practically anything. For comparison, even MongoDB requires that you design your documents as to enable certain indexing patterns. Put otherwise, we'd say CouchDB is a data-store that enables truly lean engineering - we have never had to re-bake or migrate our data since day one, while we're constantly experimenting with new ways to index, aggregate and query it.
We chose HTML5 as our front-end technology, because it's cross-platform and because we believe it's ... almost ready. Things are still really problematic on Android, but iOS boasts a gorgeous web presentation platform, and Windows 8 is also joining the game with a very good web engine. Obviously we're constantly running into issues and limitations, mostly related to the unfortunate fact that in spite of some recent developments, a web app is still mostly single threaded. However, we're getting there, and we're proud to say we're running a pretty graphically complex hybrid app with near-native GUI performance on the iPhone 4S and above.
If you'd like to hear more from Useful at Night please comment below. I will ask them to follow this thread and reply to your questions.
There are comments.