Trifork Blog

Category ‘Custom Development’

A wrinkle in time

June 30th, 2015 by
(http://blog.trifork.com/2015/06/30/a-wrinkle-in-time/)

Leap second

I clearly remember the morning of Sunday July 1, 2012, almost three years ago. I was at church, actually, when I got a call from one of our clients: “The website doesn’t seem to be working.” All I could check at that point was that, indeed, the website was not responding. So I called our sysadmin, who found that even SSH-ing into the machine running the site was taking much longer than usual. Finally, restarting everything solved the problem, but we were still unsure about what had happened.

As we found out later, it was related to the leap second, a phenomenon I had not even heard of until then. Read the rest of this entry »

Axon from the trenches: how to keep your code compatible with legacy events and Sagas

June 8th, 2015 by
(http://blog.trifork.com/2015/06/08/axon-from-the-trenches-how-to-keep-your-code-compatible-with-legacy-events-and-sagas/)

Imagine you’re using Axon to run an event sourcing application. Your production event store might contain millions of events, created in various versions of the application. Wouldn’t it be nice to know for sure that the latest version of your application plays nicely with all your production events and Sagas, including those from previous versions? Well, you can check for that, and it is fairly easy. Read the rest of this entry »

iOS perspective on mobile development with Xamarin

June 4th, 2015 by
(http://blog.trifork.com/2015/06/04/ios-perspective-on-mobile-development-with-xamarin/)

One of the fundamental mantras of software development is DRY – “Don’t repeat yourself”. It’s an important rule, because it allows us to save both space and time. Instead of rewriting a non-trivial algorithm, we use a method call, instead of correcting bugs in multiple places, we do it only in one. Would you ever not follow DRY? Well… yes, when you need to develop a mobile app. If your plan is to get as many customers as possible, releasing an iOS and Android version is a must. This means maintaining two very similar codebases. Can we do better? The answer is yes and it’s called Xamarin. It’s the platform we’re using for some of our newest projects here at Trifork, and we would like to share with you our experiences, likes and dislikes. Read on if you’re not afraid to abandon Xcode and Objective C.

Read the rest of this entry »

Documenting your REST APIs

May 8th, 2015 by
(http://blog.trifork.com/2015/05/08/documenting-your-rest-apis/)

Whenever you deliver some API that is to be consumed by another party, you will get the inevitable question of providing documentation. Probably every developer’s least favorite task.

In Java there is javadoc, but that doesn’t cut it if you are delivering a Web Service API. In that realm we already know WSDL for SOAP based Web Services. Then again, every developer seems to prefer REST based Web Services these days and those are not WSDL based… So what then? That is a question with multiple answers. In the last few years there have been three different open-source projects that have tried to give an answer to this: swagger, RAML and API BluePrint. Of those Swagger has been around the longest and arguably gained the largest following.

Based on the completely subjective criteria ‘it needs to support Java’, ‘what about Spring MVC?’ and ‘can you deliver it to the customer by Monday?’ I decided to take a stab at documenting an existing API using Swagger. It is written in something that can run on a JVM, has Spring MVC support (via third party libraries) and seemed to be the easiest to set up based on their examples and various other online resources.

Read the rest of this entry »

CQRS as a Junior Developer

April 21st, 2015 by
(http://blog.trifork.com/2015/04/21/cqrs-as-a-junior-developer/)

Fresh from university, searching for a development job, having one within two weeks. And at an interesting company at that. That is what happened to me about a year ago. So, you could (and probably should) call me a junior developer. After a month of trainings and new experiences I was put on my first big project. Together with a senior colleague we were assigned to build the new roadside assistance application at the ANWB. The app was planned to work with Axon at the core and through this I came in touch with CQRS

Since I didn’t know squat about the ‘Command-Query Responsibility Segregation’ concept and soon had to work with it, I dove into a multitude of sites, blogs and wikis about the topic for self-study. That it separates the responsibility of commands and queries is quite obvious from the definition itself. And that this leads to scalability options since the command or the query side can be optimized to the system, made sense. Also, that it simplifies the creation of the domain model since there can be a focus on either the command or query side was quite clear through the information I read.

Read the rest of this entry »

Brand New Website GOTOAcademy.nl

April 17th, 2015 by
(http://blog.trifork.com/2015/04/17/brand-new-website-goto-academy-nl/)

Image Our New website www.gotoacademy.nl

Before you run off to start your weekend we would like to let you know that we are very excited to inform you that we have launched our brand-new website for the GOTO Academy!

With the new website it will be easier to find the trainings and training dates that you are interested in, you will be able to purchase your training directly via the website and besides that the new website has a new look and therefore a new feel to it!

Check it out for yourself. If you have any thoughts, suggestions, feedback that you would like to share with us, please let us know via training@trifork.nl.

www.gotoacademy.nl

Besides that, this newsletter contains information about the next upcoming events, new videos that we have released in the past month and an overview of the next available trainings! Enjoy!

For more GOTO Academy news, Follow us on Twitter @gotoacademyNL 

  Read the rest of this entry »

RUNNING CUSTOM “LINT” CHECKS ON YOUR ANDROID BUILDS

April 13th, 2015 by
(http://blog.trifork.com/2015/04/13/running-custom-lint-checks-on-your-android-builds/)

In this post, I’ll share a very simple tip on how to add very simple custom checks of your Android source code to your Jenkins build server, but the tip should be very easily ported to other build servers too.

What?
Most developers know of Lint checks as something which perform some kind of static analysis of their code and which complain heavily about stuff if you are enabling this check for the first time on an old project. Unfortunately, chances are rather high that you choose to disable the check due to time constraints not allowing you to fix all issues right now. Or maybe you actually enable running the checks as part of your build but choose not to make lint errors break it. Those two solutions are equally bad since none of them prevent you from adding bad code to the codebase.

Why?
I won’t go to great lengths to explain why you should perform lint checks, but I’ll say that there are many, many simple checks which can be checked at compile-time and which you (or your colleagues) might not have noticed when implementing a given feature. And why not let the lint tool weed out the stupid errors since it is so much better at detecting these things than you? For example, lint checks can prevent you from publishing an app which crashes on some devices due to code calling APIs, which are not available on devices with too low versions of Android running on them. Lint will compare the minimum API version supported by your app and the API version of every call performed in your app so you can ensure that you have carefully guarded these calls correctly and therefore won’t crash your app at run-time.

Read the rest of this entry »

Dealing with NodeNotAvailableExceptions in Elasticsearch

April 8th, 2015 by
(http://blog.trifork.com/2015/04/08/dealing-with-nodenotavailableexceptions-in-elasticsearch/)

tl;dr

Elasticsearch provides distributed search with minimal setup and configuration. Now the nice thing about it is that, most of the time, you don’t need to be particularly concerned about how it does what it does. You give it some parameters – “I want 3 nodes”, “I want 3 shards”, “I want every shard to be replicated so it’s on at least two nodes”, and Elasticsearch figures out how to move stuff around so you get the situation you asked for. If a node becomes unreachable, Elasticsearch tries to keep things going, and when the lost node appears and rejoins, the administration is updated so everything is hunky-dory again.

The problem is when things don’t work the way you expect…

Computer says “no node available”

Read the rest of this entry »

NewsBite April 2015

March 30th, 2015 by
(http://blog.trifork.com/2015/03/30/newsbite-march-2015/)

 

Trifork news bit 2

Dear Reader,

We have several news items that we would like to share with you. We have plenty of meetup activities and GOTO nights planned for the agenda that you don’t want to miss. The GOTO Amsterdam Schedule is now Live with core Tracks at this year’s event. 5th Keynote is all about Drones ! Additionally we have a new case study from FD to share and our partner elasticsearch changes name and  strategy Elastic: For – You Know, More Than Search Read on to learn more about all of this!

 

THINK COMMUNITY…THINK GIVING BACK…THINK WELIKETOSHARE

At Trifork, we are not only passionate about what we do we are also passionate about giving back. Social responsibility starts with us … together we can make a difference.

Weliketoshare 2

 

Trifork is pleased to announce it collaboration with Weliketoshare. An online hotel price checker Weliketoshare has launched a new way to donate to charity. A way of donating that costs nothing extra for you. Book from over 700,000 hotels worldwide the cheapest hotel and automatically do something good for the world.Free of charge. Weliketoshare makes this possible, with every booking, we give a fixed portion of our income to charity projects. So choose a project and book your hotel, together we realize beautiful things!

Are you looking for a hotel for business or personal travel? Book your travel arrangements through our Trifork Weliketoshare community page and you too can make a difference!

 

EMPOWERING OUR CUSTOMERS

We are delighted to be able to share with you our customer success story:
Transforming into a digital leader in the field of the financial and economic news.

Read the rest of this entry »

The GOTO Academy Trainings Overview, Free Events and Two New Videos

March 18th, 2015 by
(http://blog.trifork.com/2015/03/18/the-goto-academy-trainings-overview-free-events-and-two-new-videos/)

The GOTO Academy would like to update you on the next available trainings, free events and here is a bit of good news as well. Instead of 1, GOTO has actually released 2 videos on the GOTO YouTube channel. Read about this in the March issue of the GOTO Academy Newsletter! Enjoy!

FREE EVENTS

  • Wednesday, March 25: GOTO Night Elasticsearch at Bol.com (Utrecht) with Anne Veling & Jettro Coenradie. Only a few seats left. Sign up Here
  • Thursday, April 16: GOTO Night (Eindhoven) An Introduction to Docker with Adrian Mouat, Allard Buijze & Marc te Vruchte. Sign up Here

VIDEOS

 Two! New videos released on the GOTO YouTube Channel. Watch:

TRAININGS

Read the rest of this entry »