Tuesday, December 17, 2013

A lot of working, not a lot of breaks

I try to do everything; it is a good problem to have. However it is extremely hard to learn about every aspect of a project or problem, and exhausting. A few of the problems that I have been working on:

Automated REST API Documentation From LiON files (Lithium Object Notation):

I am using RAML (raml.org) as a POC for automated REST API docs. I will provide a tutorial to standing up an editor server to take advantage of their intuitive UI. This was done on Amazon EC2 but was done manually (not using chef or other deployment tools). Take a look at their website, demo and libraries:

Automated Bamboo Test Monitor and Reporting

At Lithium, we use Bamboo to run and monitor our automated tests. However there are often interesting views into the build results that the bamboo website does not offer. I decided to take all of the history from bamboo and put it in a local Elasticsearch instance. This allows us to split up the loops by team, and display "competitive" calculations such as:
  • Team/Loop/Build grade
  • Team/Loop/Build strict grade
  • Team/Loop test writing velocity
  • Team/Loop total green time
  • Team/Loop all green time
  • Team/Loop grades
  • Team/Loop durations
What does it matter to you? I am currently developing and hoping to open source a library called "panda". Can you guess what it does? It is a bamboo REST API client; get it! Panda's consume bamboo! Anyway, I am leveraging fasterxml's Json object mapper and annotations to serialize and deserialize everything. I hope to announce that soon, but there are a few other things that need to get done before then.

Picture you ask?! Unfortunately, not yet. I am still in the process of building out the data model and grading framework. It turns out that elasticsearch has the nice feature of automatically indexing strings making "keys" impossible to use until the mapping is fixed. Am I planning to just use a curl command to fix that ... ?

ElasticsearchMyAdmin

Is is funny how so many new technologies are trying to get away from SQL but so many people start building out wrappers that allow them to have that familiar SQL feel. Guilty as charged.

Lithium has been working to provide StarQL, a parser which provides a query language that has been specially designed to query against noun-centric REST API data models. We are currently using the parser against a Lucene search backing but are hoping to convert our search index to Elasticsearch for the "infinite" scalability.

However, this tool will allow is to build and edit our object models using a GUI interface while updating how elasticsearch indexes (or does not index) each field. I am sure that we will need to build out some type of migrations between mapping definitions when strings are changed from analysed to not-analyzed, but we will climb that mountain when we get there.


No comments:

Post a Comment