At Plot we received a request to make our library for location based notifications available as a plugin for Cordova/PhoneGap. We looked into this and decided to start with a minimal implementation that would provide the basic functionality to apps created in Cordova/PhoneGap. This article shows how we did this for Android!
More and more research is pointing out that relevance is the key metric to increase offer redemption in advertisement. Plot Projects is successfully enabling our clients to reach out to their customers in the right place at the right time.
Most of the time it isn’t convenient to check your project files into your version control system, because they often contain settings specific to your local setup. Additionally project files are difficult to merge when a conflict arises. It may even be the case that team members use a different IDE. Finally, project definitions for your IDE can easily be generated, which is the focus of this article.
At Plot Projects we initially used MongoDB for persistent storage. However, we recently moved a part of our data storage from MongoDB to a PostgreSQL database. The only data that is kept in MongoDB is the data collected from mobile devices.
This article starts with a short introduction why we moved from MongoDB only to polyglot storage. After that I explain how Slick can be used to read data from your SQL database.
Thursday April 18th we hosted the 22nd meet-up of the Dutch Scala Enthusiasts group. There were 2 talks: Jan-Pieter gave an introduction to the Scala based load and stress testing tool Gatling and Mark talked about our partial migration from MongoDB to PostgreSQL and the usage of Slick.
When working on a project, you often discover that you need some functionality that would be useful in other projects, but using or creating a separate library is not desirable in separate workspace. Using an existing library is in many cases impossible since there may not be a library that meets your needs. Creating a completely separate library adds some overhead to the project. You have to create a new version control repository and you have to publish the binaries to an artifact repository.
Have you ever wondered how many concurrent users your application could handle? Since I began writing Scala code I wanted to know how “scalable” it really is. You don’t want to be embarrassed when your awesome product gets some traction and stops working with only a few concurrent users. And when it does stop working you want it to recover. This is where load and stress testing is required. And what better way to do this than with a tool written in Scala? This blog post I will introduce the basic usage of Gatling.
Update 19-04-2013: Updated all examples to Gatling 1.4.7.
Traditionally people have been taught to stay away from multithreading. Unfortunately this poses two problems. The first has been around for a long time: When waiting for I/O the system isn’t free to do meaningful work. The second is that while the clock speed of processors has frozen, the number of cores is ever increasing. Server software can perform much better when making use of all cores instead of just one.