Quickstart: Create a Wicket Web Application with Scala

Scala is an object-functional programming language, designed to concisely express solutions in an elegant, type-safe and lightweight manner (from Wikipedia). Scala is making life easier and more productive for the Java developers.

Apache Wicket is a lightweight component-based web application framework for the Java programming language. It lets developer to omit heaps of XML configuration files and be concentrated on producing nice Java code.

I’d like to join these two perfect things together: to develop a Web application on excellent Web framework using elegant object-functional programming language!


Read more »


reCAPTCHA Your Wicket Application


This sample project demonstrates one of plenty possible ways to integrate Google reCAPTCHA into Wicket-based web application. reCAPTCHA is a popular “CAPTCHA” implementation of bots abuse protection:

More information about CATCHA / reCAPTCHA is availabe at Google reCAPTHA page.


  • Java SDK 1.7
  • Apache Maven 3.x

… as well as any Java Development IDE, a browser and connection to Internet. Check if Maven and Java SDK are properly installed:

$ mvn --version
[email protected]:~$ mvn --version
Apache Maven 3.0.4 (r1232337; 2012-12-08 09:44:56+0100)
Maven home: /home/mykhaylo/devres/apache-maven-3.0.4
Java version: 1.7.0_10, vendor: Oracle Corporation
Java home: /home/mykhaylo/devres/jdk1.7.0_10/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.2.0-35-generic", arch: "amd64", family: "unix"
[email protected]:~$

In this demo I am using Apache Wicket 6.4.0. Additional libraries like JUnit 4.10, Log4J 1.2.x and Jetty 7.6.x servlet container are download by the Maven as project dependencies.

Create wicket project

Open a command line shell (like bash or cmd) and go to your favorite development folder. Create a dummy wicket project using Maven archetype:

Read more »


Back-office application in 60 Minutes with Vaadin. Minute 1 – 15. Creating application skeleton.

Vaadin is a component-based rich Internet application Java framework that is designed to make creation and maintenance of web-based user interfaces easy. Due to server-driven programming model, Vaadin takes care of the user interface in browser and the developer concentrates on the implementation of business logic. You do not need to spend your time with browser technologies, like HTML or Javascript, you can think of the web browser as a thin client only.

This article covers development of a kind of “back-office” application. This kind of applications is aimed for maintenance staff, call center agents, marketing managers etc., that need to access some configuration of customer data, custom services of the wide computing system like a shop, insurance or finance company. The requirements for such kind of applications normally are to be cheap, agile in development and maintenance, user friendly and Nobody cares about web design and corporate fashion of web pages. For example: call center application for registering clients issues, an application for marketing staff for creating and maintenance advertising campaigns, tariff or ware management for some finance online service. It is exactly what are we going to implement with Vaadin framework.


I don’t want to cover setting up the development environment in this article, please refer to the free Vaadin boot at the bottom of the article. You need the following software to run the examples:

  • Linux, Mac OS X or Windows XP or newer. I am running Ubuntu Linux 11.04 on my laptop.
  • Java SDK 1.5 or newer. I used Java 1.6.0_21 (Sun Microsystems Inc).
  • Any IDE for Java EE development: Eclipse (with Vaading plugin), IDEA Intellij or Netbeans. My favorite IDE for several years is IDEA Intellij. currently I am running version 11.0.1.
  • Apache Maven 3 (I used v. 3.0.2). A web and testing frameworks, Jetty Application Server and all required libraries are downloaded by the Maven.
  • Firefox, Chrome or Safari web browser
  • Internet connection to let Maven download some artifacts
  • Optional: Git, Apache Tomcat 6 or newer.

I am going to create and run application with Maven to avoid a coupling with any development IDEs.

Create a New Vaadin Project with Maven

Open a command line shell and go the directory where you are doing your Java development. We are going to create a sub-directory with the Vaading project skeleton there using a Maven archetype generator:

Read more »


Remember To Take a Pause!

YouTube Preview Image

Enhance Git Log

The output of git log command is the most frustrating thing you face on git shell usage. But in one minute a poor git log output like

is enhanced to

It is done in the following way:

Read more »


Waste your time due to accident git checkout? Prevent it now!

A common thing by using git in unix shell is accident executing git checkout -f command. For example, you want to reset some file by getting it from the head with git checkout -f filename, but instead of this you drop the changes on the whole branch by accidentally executing git checkout -f.

You can easily protect yourself by saving changes on the development branch into a tiny patch file before any git checkout command:

Read more »


Fix and get better fonts for gitk running on Ubuntu

You can make Gitk fonts look better! Gitk fonts are handled by the simple windowing shell (wish), it should be configured and the different graphical toolkit should be installed:

# Getting different graphical toolkit (tk8.5)
sudo apt-get install tk8.5
# Switching toolkit. Choose the /usr/bin/wish8.5 item
sudo update-alternatives --config wish

Enjoy gitk with the better front now!

You can always rollback these changes by performing the last step once again and choosing the first selection item.


Global .gitignore

To get git to ignore certain files and directories without having to put .gitignore file in every git repsitory, you need once to create a global ~/.gitignore file and configure it as a global .gitignore:

# Copy .gitignore to your home directory or create a new one with touch:
touch ~/.gitignore

# Make it global:
git config --global core.excludesfile ~/.gitignore

Example of ~/.gitignore file:

[email protected]:~$ cat ~/.gitignore