Trifork Blog

Category ‘Custom Development’

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 »

Eindhoven FREE GOTO NIGHT 16 April 2015 : An Introduction to Docker with Adrian Mouat .Have you registered … space is limited!

March 2nd, 2015 by
(http://blog.trifork.com/2015/03/02/docker-trainings-now-available-in-eindhoven-goto-docker-night-16-april/)

Docker training courses now available in Eindhoven! The first training will be held on the 29 & 30 April 2015. A special VIP discount code of 10% is given to attendees of the GOTO Eindhoven Docker Night on the 16 April 2015. We are filling up the room so register today you don’t want to miss this .

Read the rest of this entry »

Basic Android UI performance

February 23rd, 2015 by
(http://blog.trifork.com/2015/02/23/basic-android-ui-performance/)

The base of every good app is performance. No user is willing to use an app with subpar performance, especially not with the amount of apps on the Play Store and thereby possible alternatives. In this post, we will take a look at some of the basics of Android UI performance and some of the pitfalls.

Layout Hierarchies

All Android UI are based on XML files describing the desired design. Developers are easily carried away by nesting several instances of different elements like <LinearLayout> or <RelativeLayout> to solve a layout puzzle. This can be a potential performance problem, since each elements require initialization, layout and drawing. We are talking milliseconds here, but with several layouts on-screen using, for example a <ListView>, these milliseconds get multiplied and noticeable delay could occur. Read the rest of this entry »

GOTO Academy Trainings Overview!

February 20th, 2015 by
(http://blog.trifork.com/2015/02/20/goto-academy-trainings-overview/)

In this newsletter you will find a recap of our training offerings, the trainings schedule and we have a few treats for you, e.g. free events and the newest release on our YouTube channel. We hope you like it! 

And for a quick update…
In February we ran 3 courses: the AngularJS, Core Spring and the UX Course and they all turned out to be a big hit and they were all sold out. For March we’ve planned the following courses, AngularJS, Axon Immersion, Intro to Docker and What’s New in Spring. Usually we organize 2 trainings a month, and with 3 trainings in February and 4 in March, we are excited to see that the GOTO Academy is growing.

Read the rest of this entry »