TDD Training

In June this year I was asked to create a TDD training for 15 junior people in a sort of master class. Since I get more and more out of my comfort zone I decided to  do it!

The duration of the training was for three days and given in Zwolle @ ITPH academy. A really nice facility if you ask me and good atmosphere. Two days of mostly theory and one day of practism. Keywords are TDD, ATDD, Gherkin, Cucumber and fun!

itph_tdd_training

All the students gave positive feedback about the TDD training. Most enthusiasm was for the price 🙂 I was positive about this as well and executed it via socrative, an online tool for teachers and students to execute quizzes etc.

Handy commands

UNIX:
Locate java home: /usr/libexec/java_home -v 1.8

Locate application on port:  lsof -i:8080

Symbolic links:
rm /path/to/symlink
ln -s /usr/local/apache-maven-3.5.0/ /usr/local/maven

DOS:
Cleanup M2 REPO: del /s *SNAPSHOT*

GIT:
Show all “active” branches: git branch -a / git branch --no-merged master -a

List commit tickets: git log --oneline "{first-tag}..{last-tag}" | grep -E "[a-z0-9]{9,} ([A-Za-z0-9]+-[0-9]+)|(NOJIRA)" | gawk "{print $2}" | sed -e "s/[^A-Za-z0-9-]+//g"| sort | uniq

Maven in parallel

In maven version 3 it is possible to actually let all those microprocessors do something in your machine 🙂 For more information see parallel builds

The command I use often is

mvn clean package -T4

In my current project build time decreased from 6 to 2 minutes! Note: for release it is not recommend yet tot use the parallel builds.

 

SVN ignore files

At customer projects I come across lot’s of subversion repositories that do not have their ignore files properly configured. I usually add a file .ignore in the root with the following contents

*.class
*.jar
*.war
*.ear
*.iml
.classpath
.settings
.project
.metadata
.idea
bin
target

Since I am still a fan of command line the following commands are utilized

svn propset svn:ignore -R -F .ignore .
svn ci -m "svn propset svn:ignore -R -F .ignore ."

Nexus IQ Server

Lately I have been experimenting with Nexus IQ Server. This is a product from Sonatype. What I really like about this product is the overview it creates from all the external dependencies and their vulnerabilities.

Since open source is incorporated in more and more software projects I really think this is a valuable tool to implement in your tool stack. An example output is shown. Open source is hot and I feel that Sonatype masters this really nice in this part of their tooling software.

nexus_iq_server

This tool can really help you fix your external dependency versions with known exploits!

Cucumber and Selenium workshop

A few weeks back I executed a workshopworkshop_cucumber_rotterdam at CGI. The contents of the program was Cucumber and Selenium. I have experienced that the natural language of Cucumber/Gherkins can be really valuable in scrum environments. Especially the mix with the Selenium driver enables software developers to cooperate with testers thoroughly. Test behavior driven development can be of true value for your company and a very nice manner to add automated feature tests.

The tweet can be found here and some of the contents of the workshop can be found in this github repository.

 

Software releases

At my current employer I followed an internal traininig program. As a last assignment I decided to write a vision document about Software release.

The PDF document can be found here, it is Dutch only with no conlcusion because of internal information I do not want to expose in public.

Simpleinvoices

Yesterday I installed the open source program called simpleinvoices in order to create products, customers and invoices. I really like it. Only problem I faced was that I used and exclamation sign in my database password. This resulted in a white page during installation. Turns out that simpleinvoices is shipped with the ZendFramework and that does not handle the “!” character properly 🙂

The code can be found here. Nice clean solution for invoicing if you ask me.

Cucumber and selenium

Cucumber is a kind of language that specifies so called features in order to specify a test case or scenario. It can run automated tests written in a behavior-driven development style. Cucumber is written in Ruby and since 2011 their is a Java port as well. An example feature is as follows:

Feature: Planets in universe

  Scenario: The universe holds 8 planets
    Given I have a universe
    When I step into a space plane
    And I travel from the sun to the end of the universe
    Then I pass the orbit of 8 planets

Continue reading “Cucumber and selenium”

Utilize WordPress…

As of today I started to use WordPress for my website. In the past I have used Joomla of Drupal as well. However I must say that WordPress is more intuitive then Joomla. Installation is really a no brainer 🙂 Also for the purpose I have with my site, ie. to blog, I think WordPress is a good choice to do so.

This is also my first post. I will start with creation of my own theme that will be published as soon as possible. Just plain and simple. In order to blog and some quick links to my linkedin, twitter and facebook etcetera.