Taking Enums to the next level with Java 8
In our awesome cloud Usage Analytics API, there is a call that returns the analytics data in data points format (these are meant to be used to build a graph). Recently, we added a feature allowing the user to choose the time period (initially, only days was available). Problem is, the code was strongly coupled with the day period…
Hackathon - formerly known as Itch Scratching Development
##The Non-Scratching
Our days are packed. We work on bug fixes, we work on features that have been sold to clients, on pieces required before the next rollout or it may be on the new architecture. We work on things that have a due date or that somebody is waiting for. We don’t have much time to ponder and wonder about all those little things we would like to change or those ideas we have; for all those itches we lack the time to scratch.
How do we encourage people to scratch the itch even if they are not part of our planning? Enter the Hackathon.
Working Remotely
I’ve been working remotely for more than two years now, and I thought I’d add my own experience to the rather large amount of similar posts out there on the web.
Optimizing web application build process
At Coveo, we love to tackle new technologies. Last year was all about TypeScript, preprocessed stylesheets with LESS/SASS and optimizing our JavaScript applications with minification, concatenation and compression. Since we have a Java stack in the cloud, using the build tools that were already in place was a no brainer. We started with an Ant script to manage the build process of the Cloud Admin Web Application.
Customizing the Insight Panel
If you haven’t deployed the insight panels in your organization yet, here is a link to the procedure to get it done: Installing the Coveo for Salesforce Application.
Out of the box there are several predefined Insight Panels with pertinent queries. That is a great starting point, but even more usefulness can be attained by customizing the insight panels to meet the needs and the ways of working of the users.
Reusing templates with UnderscoreJS
UnderscoreJS is probably one of my favorite template engines. I’ve been working with Mustache or Handlebars, and they just don’t offer the same flexibility as Underscore. Even more, we’ve been using this framework extensively in our JavaScript UI Framework, always delivering great results.
Customize Ranking with QRE
A query ranking expression (QRE) modifies the ranking score of search results matching a query expression.
Ad-hoc parsing using parser combinators
If you work for any given amount of time as a software developer, one problem you’ll end up with is parsing structured text to extract meaningful information.
Using Java 8 with Mockito
EDIT: With Mockito 2 you no longer need to use the following method. Lambdas are supported out of the box. You can use argThat(str -> str.length >5).
Java 8 is pretty cool. We (finally!) got Lambda Expressions in Java and a lot of other goodies. At Coveo, we started working with Java 8 as soon as the first stable release was available. As mentioned in my previous blog post, one way we’re using Java 8 is in our unit tests.
Grouping related search results
The JavaScript Search Framework is a step forward in website integration. It was a natural fit when we decided to launch our Q&A site. Here is how we managed to display a question and its answer(s) together in the search results.