In programs written in C, command line argument parsing has always been done using the getopt(3) library function. This function has set the standards Linux/Unix users have come to expect from command line interfaces. Fortunately, there's a getopt(3) equivalent for almost every programming language and the shell …
read moreCreating a Minimal Enterprise Application with Maven
Setting up a Java EE application is no trivial task. Dependency management, building, and deployment can get pretty complex and require a thorough understanding of deployment descriptors, jars, ears and other artifacts.
In this article, I'm going to present a truly minimal Maven-based setup for the JBoss Application Server (tested …
read moreUsing the Maven Source Plugin
When using an ordinary jar library, IDEs like Eclipse's JDE don't have enough information to display inline javadocs for referenced classes. You have to manually direct Eclipse to the library's source code to take advantage of inline documentation. Maven's source plugin provides a convenient solution to this problem. When building …
read moreGenerating DDL Scripts with Maven
Java's persistence API (JPA) makes object-relational mapping very convenient. Using Hibernate, tables and sequences are generated automatically which speeds up development significantly. However, in production systems automatic schema creation isn't desired. In many cases you would want to tune the schema a bit, like adding an index for speeding up …
read moreMounting Directories via SSH
For mounting directories from a remote machine, usually NFS or SMB/CIFS is used which requires a running file server. On many linux servers, however, all you have is a shell account, so file transfer has to be done via scp.
Using the FUSE Linux kernel module, which provides user …
read moreBookmarkable Pages with JSF
Good API Design
Recently I discovered an interesting video for all of us aspiring software architects on Google Video. As part of the "Google Tech Talks" series, Joshua Bloch talks about "How to Design a Good API and Why it Matters". Being one of the main architects of Java (among others, he designed …
read moreRelease Management in Open Source Projects
During my work in open source projects, I observed several ways of dealing with software releases, ranging from chaos up to well-defined release processes.
In this article, I'm going to describe two common patterns of dealing with releases from a technical perspective. This article has been written with subversion in …
read moreUnderstanding Function Pointers in C
Many people familiar with object oriented programming languages like Java seem to have trouble understanding C function pointers. Even among C programmers, they are sometimes treated like an obscure feature that is avoided wherever possible. However, if you understand the concept of a pointer and know a few basic rules …
read moreBuilding RPMs Without Root Access
This week at work I had the opportunity to build an RPM for some third-party software package.
My previous experiences with RPM date back to SuSE 5 almost ten years ago and I haven't touched it ever since. Packaging for Debian or even NetBSD is mostly a painless process, so …
read more