Relentless Coding

A Developer’s Blog

  • Unit Test Grails GORM Formulas

    Let’s take a look at how we can test GORM formulas in Grails.

    Read more…
  • Import Contacts Vcards Into Nextcloud

    In this post, we’re going to export our contacts from Google in vCard version 3 format, split the contacts file and use cadaver to upload all files individually to your address book.

    Read more…
  • Always on Vpn and Captive Portals

    I was attending a meetup that was taking place in a bar in Utrecht. The first thing you want to do is to make a connection to the internet and get started. The location used a captive portal, however. You know: you have the name of the wireless network (SSID) and the password, but when you try to open any web page, you are directed towards a login page where you have to accept the terms and conditions of whoever is operating the network.

    But what if you use an always-on VPN? You cannot connect to the network, because your MAC and IP address are not whitelisted yet by the operator. And you cannot get to the login page, because you do not allow any traffic outside your VPN.

    Read more…
  • Tutorial Rapid GUI Development With Qt Designer and PyQt

    Confession: I am the opposite of the lazy coder. I like doing things the hard way. Whether it’s developing Java in Vim without code completion, running JUnit tests on the command line (don’t forget to specify all 42 dependencies in the colon-separated classpath!), creating a LaTeX graph that looks “just right”, or writing sqlplus scripts instead of using SQL Developer (GUIs are for amateurs), I always assumed that doing so would make me a better programmer.

    Read more…
  • How to Use Groovy's CliBuilder

    Let’s use Groovy’s CliBuilder to create CLI programs that can take flags.

    Read more…
  • Using Groovy's AntBuilder to Zip and Unzip Files

    Need to zip or unzip files? Let’s take a look at how Groovy solves this.

    Read more…
  • I Like My Method Pointers With Curry in Groovy

    Invoking a method several times can easily be done in Java in a loop. But what if we have several methods that need to be executed several times? Since Java does not feature pointers to functions, we cannot pass functions around, and cannot create a generic method that takes a pointer to a method and executes it. This is where Groovy shines.

    Read more…
  • How to Ignore an Invalid SSL Certificate in Java

    Sometimes during development it is useful to use a certificate whose CN (Common Name) does not match the host name in the URL, for example localhost. In these cases Java will throw an SSLHandshakeException. How can we easily disable certificate checking for localhost and other domains of our choosing?

    Read more…
  • Creating Custom Intershop ISML Functions With CustomTag

    In this post, I’ll look at leveraging Intershop’s CustomTag to create custom functionality in ISML templates.

    Read more…
  • Java Stateful Sessions or How to Properly Send Cookies With Each Redirect Request

    Sometimes you need to log in to some webpage programmatically. I ran into one of those pages where, when the login succeeds, you’re being redirected to another page, and then to another (something along the lines of ‘Please login’ -> ‘You are successfully logged in’ -> ‘Admin panel’). So I needed to write something that would store the cookies that come along with each response, and send those cookies out with each subsequent request. With curl, I would have used:

    $ curl --location --cookie-jar logincookie 'https://login.securepage.com'
    

    So how can we emulate this behavior in Java?

    Read more…