Garmin Forerunner 225

I purchased the Forerunner 225 because of the wrist-based heart-rate monitor.
As a owner of a 410 (which I find often overkill, for my needs), I didn’t expect more.
I am surprised and delighted to learn that it includes an accelerometer as well. This means that you have, for free, cadence and stride length.

For a data geek, this means a lot of data to play with and, hopefully, some useful insights. More to come.

Tiles

I have just published on github tiles.

When I was repairing home, I looked into different solutions for bathtub/floor tiles, choosing different colors. This led to a journey into graph coloring, looking for the best algorithm, and the above Maven project.

As of today, I have two tests:

  • Random colors: the color of each tile is randomly chosen
  • Welsh-Powell colored tiles: no adjacent tiles share the same color. Since this is a greedy algorithm, we end up with an unevenly distribution of tiles

Eventually, I will implement an in-between solution: no touching colors, but a better distribution.

Snapshot of a Bugzilla database

Bugzilla is not my preferred choice when choosing a bug/issue/incident tracking system : I found Jira (way) more powerful and flexible, even a the price of an increased complexity and learning curve (for the administrator).

Some times ago I worked on a bugzilla installation used mainly to track software development for a large, enterprise-level ERP.

One requirement was to display the status of the database at a particular time in the past (for reporting purposes), but Bugzilla doesn’t have such tool (it has other nice reports btw). Continue reading “Snapshot of a Bugzilla database”

Lift properties improved

Lift web framework uses a sophisticated file-based strategy for application properties, based on modes/hosts and file naming conventions. While very handy, this could be unpractical on a CI environment where typically one doesn’t want to mess with the filesystem (think CloudBees), and doesn’t want to store sensitive properties (such as user credentials) into SCM.

The problem is well known, and a few strategies exists. Continue reading “Lift properties improved”

Grails application with ws-client on AWS Elastic Beanstalk

If you happen to have a grails project to deploy on Amazon AWS Elastic Beanstalk, and your project depends on ws-client, you may experience a few issues, which I am documenting here.

Please note that there is nothing new here, as the information is already available on the Internet, and I am reposting here for ease of use. Continue reading “Grails application with ws-client on AWS Elastic Beanstalk”

Grails spring-security-core using dynamodb

Using Spring Security plugin for grails with Amazon DynamoDB plugin for Amazon DynamoDB is pretty straightforward, but there are two issues to be confronted with.

The id into your User, Role and UserRole classes has to be explicitly set to String, since DynamoDB uses UUID as default primary key hash generator. Otherwise you can set the id_generator to hilo, if you prefer to stick to Spring Security model.

Second issue is a Spring Security bug which will double encode your password if you’re using a second datasource, which is likely unless you removed hibernate from you project. A workaround is posted in the above thread

class User implements Serializable {
...
transient bEncoded = false
...
protected void encodePassword() {
if (!bEncoded ) { password = springSecurityService.encodePassword(password); bEncoded = true; }
}
...
}

Besides these two issues, the plugins work like a charm together.

Semantic web, Google and semantic search

“The W3C’s web of data model is still not on [Google’s] radar”, as we can read in Google VP words.

This approach makes perfectly sense. Everything doesn’t have to be represented semantically nor should. Continue reading “Semantic web, Google and semantic search”