Welcome

Welcome to our blog about all kind of topics that are related to software development. We blog about:

SOA, BPM, EDA, ECM and all the other buzz words. Beware some post might not be so common as you think. We are not scared to go against main stream thoughts.

Technologies like java, maven, springframework, OSGi and front end technologies and frameworks like jQuery, DWR, Flex.

Finally to make this happen we need tools and of course a Mac (well some of us do). So we blog about that as well.

Technorati

Add to Technorati Favorites

Introducing a query tool for elasticsearch

ElasticSearch logo

In my previous blog posts I was working on reading data from wordpress blogs using groovy. This is nice, but of course there was a reason why I needed this. I wanted to create a tool or better a plugin for Elasticsearch. This plugin should make it easier to check the state of you cluster, play around with facets and query your data.

On my employers blog I started a series of blog posts that explain this plugin. I go into details for the libraries I used: AngularJS, Twitter Bootstrap and of course elastic.js.

Check my employers blog post if you are interested.

Introducing a query tool as an elasticsearch plugin (part 1)/

Doing more ElasticSearch with groovy

In my previous blog post I wrote about a groovy client for reading a wordpress blog. Than using this client I send the data to ElasticSearch to be indexed. Of course you cannot do anything with ElasticSearch if you do not read the data by executing queries. So that blog post also talks about executing search queries and doing count queries.

But what if you want to start playing with things like facets? What if we want to use a different analyzer to separate the keywords on a comma? Than you can use curl. No wait there is more. You can also use groovy of course.

That is what I discuss in this blog post, creating and removing indexes. Beware, this is not something you want to do on your production server. Deleting an index makes the index disappear, yes for real, you cannot get it back.

Read on if you want to learn more about groovy and ElasticSearch.

Continue reading Doing more ElasticSearch with groovy

Learning about ElasticSearch

ElasticSearch logo

This week I had a training at Trifork Amsterdam by Martijn and Uri from ElasticSearch. This training was a very nice in depth look at the capabilities of ElasticSearch. Like with all trainings and conferences I get motivated to try out the technology immediately. I am working on a plugin for ElasticSearch using AngularJS. More on this in a next blog at Trifork.

In this blog I am going to tell you the steps I took to get going with ElasticSearch. I show some of the steps for installing ElasticSearch, explain the first steps in using the groovy library. Next to that I’ll show you how to index this wordpress blog using ElasticSearch. When everything is indexed I will of course show some of the queries you can perform.

Let us get going.

Continue reading Learning about ElasticSearch

Review of the book: Presentation Patterns

I have written a review about the book Presentation Patterns: Techniques for Crafting Better Presentations (@Amazon)

In the past I have read multiple books about creating and giving presentations. I really like to present something to the public. On numerous NLJug events I have presented as well as a lot of internal events @ trifork.

These books have helped me to improve my presentation skills as well as the process to come up with nice presentations.

If you are also interested in these kind of books and you do not mind that I earn a few bucks you can buy these books that I highly recommend @ Amazon.

This was my 2012

It is almost the end of the year, we are getting ready for 2013. Therefore I want to look back at my 2012 as a software engineer. I want to look back at the blogs I have written, the presentations I have given, the books I read and the conferences I attended. This blog post will give a nice overview of my year and therefore a lot of links to the things I found interesting.

Twitter

I am not a very active user on twitter with @gridshore. I do twitter more with my personal account @jettroCoenradie. Still it is not hard to see what I was busy with this year. Check my twitter overview created with vizify

Presentations

This year I presented at two events. At the Hippo Gettogether I presented about the ldap integration we did at the University of Amsterdam. You can find the slides here at slideshare.

At the yearly JFall conference of the NLJug i presented about creating polyglot and scalable applications. You can download the slides, but you can also watch the presentation on Parleys.

Blogs

When looking back I see there is not a lot of activity on the gridshore website. Most of my activity moved to my employers blog. Therefore I have decided to write a short post in here as well when I write a blog post at my employers blog.

My year started with a blog post about running the hippo cmd components from within intellij. At Hippo they preferred the cargo plugin to run their components, which is not ideal when debugging your software. Therefore I came up with a way to make it easy to run your components in intellij.

The next blogpost I wrote was about creating a MongoDB based event store for the Axonframework. Allard made some nice improvements to the event store, but this was the foundation. The event store is used in a sample application called the Axon Trader. More on this later on.

I am a hobbyist photographer. I attend a number of workshops every year at Yvonne van der Mey. She needed a new website and I like to help people out. Therefore I created a wordpress based website for her. I have a number of other wordpress website under maintenance (www.wateenjuweeltje.nl, www.coenradie.com,www.nicobulder.com). In the beginning I was doing my editing on the server, but I wanted to have a better solution. I started using git to have a history for my scripts. Manually copying the sources to the server was not nice. Therefore I created a few scripts to check git what changes were not send to the server yet. Using ftp I send these files to the server. Of course I wrote a blog post about this: Deployments with Git and Bash on a Mac.

I continued building applications using Axonframework and MongoDB. I already created the event store, but an application using axon also has a query side. For the Axon Trader sample I wanted to use MongoDB for the query side as well. I heard about the spring-data project and thought there was a good match for my sample. In this blog post I discussed my experiences with the spring-data project and the MongoDB module specifically.

For a number of projects we wanted information about the server using a ping request. I thought it was good to create something reusable, therefore I created the Healthcheck library. In this blogpost you can read more about the java based health check library.

For the University of Amsterdam we are creating a Hippo based solution for their new websites. Like with other hippo projects we have a lot of integration to do. I usually create an administrator application for managing all these integration components. Of course we do not want everybody to be able to login, therefore we have created an authentication mechanism for Spring-security to authenticate against a hippo repository. This blog post discusses that mechanism.

During 2012 I started learning about Vert.x. This is a very nice application framework to create scalable/polyglot applications on the JVM. I had an idea about a presentation proposal for the NLJuG JFall event. Before being able to present about it I had to learn. Usually I learn by creating sample applications and blogging about my experiences. Therefore I wrote this blog post about my first steps with vert.x. This was a very well read blogpost that was tweeted about 32 times. Nice to know that people liked what I was doing.

During the Devoxx conference I learned about AngularJS. I really liked the idea around this JavaScript framework. It also seemed easy enough to work with. With my interest in Vert.x and Axonframework I wanted to combine this knowledge in a sample application. This blog post described my experiences: Basic Axon Framework sample using vert.x and angular.js.

Conferences

In May I attended the GoTo conference in Amsterdam. At Trifork we organise all the GoTo conferences. The one in Amsterdam was a nice conference this year. I learned a lot and got really inspired by a few talks.

In November I was able to join the Devoxx conference. What I thrill this is. I attended a lot of presentations and we joined a booth with 10gen, the creators of MongoDB. I had some very interesting talks that made me think and want to try out new stuff. I really liked the talk about AngularJS. The evening I got back I rewrote a part of a sample using angularJS. This is really something for the future. Here you can read more about my devoxx 2012.

iOS

Screen ios rekenen

In this year I also started learning about iOS development. I started with an app for the iPad. But since both my kids have an iPod touch I wanted to create a very basic application to learn mathematics for the kids. I’ll write more about this in 2013.

Books

Like every year I spend some money on books. A lot of them are eBooks, but I also keep buying hard copy books.

  • Presentation patterns – Neal Ford
  • The lean startup – Eric Ries
  • Just enough software architecture – George Fairbanks
  • Java Performance – Charlie Hunt
  • Don’t make me think – Steve Krug
  • Spring Integration in Action – Mark Fisher
  • 7 databases in 7 weeks – Eric Redmond
  • iOS Storyboarding – Dr. Rory Lewis
  • The iOS 5 developers Cookbook – Erica Sadun
  • iOS SDK Development – Chris Adamson

Why should I want that?

I have two sons that I try to raise to become nice boys with a good education while having a lot of fun. In the evening I tell them to take a shower, brush their teeth. During the day I tell them to listen well, be nice to their mother and to each other. Still they regularly they respond that they do not want to do something like cleaning their room, or finish their diner before getting a desert. I am glad they do not respond yet with “Why should I want that?”.

Both my sons play soccer. I am one of those fathers that played soccer themselves and therefore think they are qualified to be a soccer trainer. Well, someone needs to do it and the kids and parent tell me I do a good job. Of course I did some research on the internet, watched youtube movies and I even attended a “train the trainer training” (nice sentence). When training the kids (around 10 of them) I ask them to try certain exercises like tip the ball with your toe, pass the ball to someone else and wait to get it back. I think you get the idea. During the training I try to combine hard work with having fun. Still the first thing the kids ask is: when are we going to play a match? However, when explaining a new exercise, I am glad they do not ask “Why should I want that?”.

At work I am one of the seniors of the company. I like to mentor/coach my colleagues. I think it is great to see interns grow from still in school “I know the world guys” into men who have actually been part of something. I like to think about the future together with them, and make plans. Talk about what they want to become and the steps they need to take. I discuss the questions they need to ask themselves. I think it is very important to like what you are doing at work. It is hard to keep up if you are not having fun. One thing that surprises me is that colleagues very often forget to ask the question “Why should I want that?”

First steps with vert.x: creating a WebSocket sample

Some time a go, a colleague of mine (Joris) told me about vert.x. I liked the idea of having something like node.js on the java platform. So I was interested, but I did not spend time on it. Recently I attended the talk of Tim Fox at the Goto conference in Amsterdam. Again I liked the idea about vert.x. Therefore I decided to give it a go.

For the axon trader sample I am working on I want to have a screen of executed trades. I want the screen to be updated as soon as possible. I have some wild ideas of connecting the vert.x event bus to the axon event bus, but that is not the focus for this blog post. In this blog post I am going to step through the stages of creating a sample vert.x application that makes use of sockjs to visit a page where you can connect to the event system and get updates about the executed trades. The executed trades are stored in a MongoDB instance. I use the query tables from the axon-trader sample, but this is not a requirement for you to replay the sample.

I am also not going to explain what vert.x is, the website http://vertx.io/ does a good job already. Expect a lot of code samples and of course the source is available in github. Check the references at the end.

If you are still interested, the click the read more link and start reading. Feedback and improvements are appreciated.

Continue reading First steps with vert.x: creating a WebSocket sample

Deployments with Git and Bash on a Mac

I am creating a number of websites based on wordpress. Up till now I was just hacking the server and hoping that a backup was in place. At a certain moment I accidentally broke the .htaccess file. I enabled nice permalinks for an image library and my .htaccess file got overwritten. I wanted to have a look at the backup to see the rewrite rules I had in place. The hosting party wanted me to pay around 40 euros to provide the backup. That made me think about my hacking around on the server. There should be a better option than this.

I started thinking about putting the sources in a version control system. Since I like Git and have a Github account I wanted to store the files in Git. But I had some other requirements.

  • I do not want to manually copy the changed files to the server.
  • I am limited to ftp access, the hosted does not provide ssh access.
  • I want to be able to make quick changes from multiple laptops.
  • I want to have the changes taken from Git but also changes that have not yet been committed if I wanted to.
  • I have no requirements for removing files, this does not happen a lot.

Since I am on a Mac and have some very basic experience with Bash, I decided to use Bash. I did have some issues with FTP, but more on that later on.

If you are curious about the websites I have created:

Yvonne van der Mey ~ Wildlife Photographer
Nico Bulder ~ Wildlife Painter
Continue reading Deployments with Git and Bash on a Mac