Techblog

  • Datepickers in Liferay 7

    In one of my recent projects, I had to create a CRUD interface for a service builder portlet. Some of the fields in the object I was maintaining were date fields. To be specific, I had a start date and an end date, and I wanted the end date to...
  • Disabling a link in a Liferay portlet until a checkbox is checked

    Introduction In one project I was working on, I encountered a requirement to select a checkbox before being able to click a button. But as this button was actually implemented as a link for styling reasons, I had to find a way to disable the link until the checkbox was...
  • Adding scheduled tasks to Liferay

    Introduction Last week I had to add a scheduled task to Liferay 6.2, so I tried to find out how that worked. I found a lot of hints, but nothing seemed to make it work for me. I found a lot of people adding a scheduler to a portlet, but...
  • 5 steps for successfully upgrading Hippo applications

    Introduction Hippo’s annual Hippo Connect was held on november 17, 2016 at the Westergasfabriek in Amsterdam. This is an event where industry experts, clients and developers share their expertise about Digital Experiences and in particular their experiences with Hippo CMS. I visited this great event and also gave a presentation...
  • Mocking the Liferay Service classes in a unit test

    Introduction A while back I wanted to write some unit tests in which I wanted to mock some of the Liferay classes. The specific code I was testing called these Liferay Service classes, but I wasn’t interested in their internals. It took me quite a while to find an example...
  • A Smart home, of course open source with Java

    Introduction What makes a home smart? Does your house tell you that the washing machine is finished? Do you get a push notification on your phone when there is someone at the door? Do your light and the fan on the toilet go on and off automatically? Can you see...
  • Angular2 baby steps

    Some time ago, I started reading about Angular. Sure I’ve heard about it, I even did a tutorial. But somehow I just couldn’t get into it. But then I read about Angular2. The new version, and a complete rewrite. It became a object-oriented framework. While I was reading blogs and...
  • AWS Lambdas and testing in Java

    Introduction Recently I had to develop a data processing service with AWS Lambda. AWS Lambda is an Amazon infrastructure service where one can upload functions that are triggered by events and/or HTTP requests. One could compare it to a war file in an application server, but then for just a...
  • Are designers, architects, analists etc. part of the development team in Scrum?

    Nowadays Scrum is more integrated and standard in development organizations than ever. Still, there are a lot of difficulties about how the framework of Scrum should be implemented correctly. Some problems I have noticed in the past years as Scrum Master concerning team work is: How to go about using...
  • How to get Liferay use binary attributes from Active Directory (or any LDAP)

    Introduction Recently I had to integrate with an Active Directory, which by itself is trivial. Sure, it takes some tuning and fiddling with CN’s and DN’s and getting search filters right, but it has all been done before. ObjectGUID, EntryUUID, UUID, whatever… In this particular case I had to import...
  • The Hippo Advanced Developer

    Hippo is a highly mature framework having a development history spanning over 15 years. Grasping such a rich and developed framework takes time, effort and some official training. Having completed the basic training about one year ago and having been working on various Hippo projects it was high time to...
  • Creating a translationpicker plugin for Hippo CMS

    Introduction Hippo is a great CMS with support for multi-language. The editor can easily mark folders as translations of each other and create a translation of a document. However, there is one particular annoyance: it is not possible to mark existing documents as translations of each other. Luckily creating a...
  • Performance boosting in Drupal 8 just got better

    With the release of Drupal 8.1 on April 20th the BigPipe module was added to core to increase the speed of Drupal for anonymous and logged in visitors. What does BigPipe do in general? BigPipe is a technique to render a webpage in phases. It uses components to create the...
  • Joy of Coding 2016

    Joy of Coding 2016 June 17 marks the forthcoming edition of Joy of Coding, to be held at De Doelen in Rotterdam. Joy of Coding is “a one-day conference that celebrates the art, craft, science but foremost the joy of software development”. It is an event that attracts hundreds of...
  • The Answer to The Ultimate Question of Life, the Universe and Drupal

    Introduction What if we had a Drupal theme that does exactly what we want? No more divs, in divs, in divs. No more weird css. Out of the box responsiveness, both adaptive as fluid. Debuggers, good javascript additions, Gulp. Maybe even a little styleguide generator. That’s what we thought when...
  • Stopping spam in a Drupal community platform

    Introduction Drupal provides a lot of functionality to build community driven websites. For the award winning platform ModeMuze, we have developed a platform to expose the different fashion collections of different Dutch museums. Besides exposing the different collection items, one of the goals is to engage the Dutch fashion community...
  • Front end testing with Pioneer.js

    Introduction Pioneer.js is a front end testing framework based on cucumber and selenium. It consists of several layers, claiming to keep tests as clean and readable as possible. In this blog we will create a simple basic front end integration test, and we will explain some possibilities that you can...
  • Introduction to Vert.x

    Introduction to Vert.x Introduction Vert.x is an event driven “Platform” where you can develop your application on. Vert.x is like Node.JS, but the biggest difference is that it runs on the JVM, it’s scalable, concurrent, non-blocking, distributed and polyglot. In this article you can read how a simple web app...
  • Drupal Flight Control: A brief introduction to it's potential

    What ?! Last year we built this tool called Drupal Flight Control. You might think “Flight ?? Control ?? Like … air balloons and zeppelins ??” Nope, it gets you in control of your Drupal projects, it’s servers and your whole DTAP environment. Let’s have a quick walkthrough… Some background...
  • Improving search result with Search API Solr (Custom boosting)

    Introduction At Finalist we use the Search API and the Search API Solr modules to provide the search functionality for most of our websites. With a little bit of configuration you can get a great search experience that works perfectly for a basic website. However, sometimes customers want more then...
  • Improving search result with Search API Solr (Better search excerpts)

    Introduction At Finalist we use the Search API and the Search API Solr modules to provide the search functionality for most of our websites. With a little bit of configuration you can get a great search experience that works perfectly for a basic website. However, sometimes customers want more then...
  • Improving search result with Search API Solr (Partial Search)

    Introduction At Finalist we use the Search API and the Search API Solr modules to provide the search functionality for most of our websites. With a little bit of configuration you can get a great search experience that works perfectly for a basic website. However, sometimes customers want more then...
  • Improving search result with Search API Solr (Stemming)

    Introduction At Finalist we use the Search API and the Search API Solr modules to provide the search functionality for most of our websites. With a little bit of configuration you can get a great search experience that works perfectly for a basic website. However, sometimes customers want more then...
  • My first attempt to developing a Drupal 8 module

    Introduction In this article we are going to develop a full module. This is a step by step example. This module will give users the ability to create single or multi-step forms. I will call this module: WEBFORM. Built and tested on Drupal: 8.0.0-dev, PHP : 5.4.24 and Apache. This...
  • Setting up Spring Security in the HST

    Introduction One of the challenges in implementing HippoCMS usually comes down to authenticating user on the site (HST) with external systems. These systems are either integrated with by usage of a standardized protocol or by implementing custom authentication logic to authenticate with e.g. legacy systems. In this lab I will...
  • Creating a Docker container for HippoCMS

    Introduction Don’t we all know Docker by now? In short, Docker is a so called “container solution”, which you can use to create application containers. Such a container is constructed from a base image and provisioned with e.g. an application and its configuration files. Unlike VM-based solutions, where a guest...