In this article about how to track the logins and logouts of users the AppModule
has been used to add some configuration to a Tapestry application. The current article is about adding a product line to a Tapestry application in terms of localized message strings dependent on the language as well as the chosen product. The corresponding project may be found on github.
Read More
Removing a whole bunch of commits from git
Imagine you have a repository for some time and then decide to publish it to someone (e.g. make it open source). The first n
commits are garbage or contain content, that you do not want to share with others. So how do we get rid of these commits? Here we go.
Read More
VirtualBox v4.2.18 with Native Hard Drive Partition in Mac OSX Lion
Most of the time you use desktop virtualization, you simply add a virtual hard drive and install a guest operating system (like (K)Ubuntu Linux) in it. But some times – as in my case – you already have another operation system on a partition on your native hard drive. For a mac it’s either via Bootcamp or via something like rEfit enabling you to install a BIOS boot manager like Grub. Since it is kind of uncommon using such an existing partition for desktop virtualization, it is not supported (and documented) so good in the different virtualization solutions.
Read More
Uninstall VirtualBox Guest Additions on a Linux Guest OS
If you’d like to port a virtual machine from VirtualBox e.g. to parallels, you need to uninstall the guest additions. This is how it works:
sudo /opt/VBoxGuestAdditions-${version}/uninstall.sh
Trouble with Black Screen in Parallels Desktop v9 with Linux Guest OS on Native Partition
This post is a follow up to Using Parallels Desktop v9 with Linux Guest OS in a Native Partition. After the successful utilization of an existing Linux installation in Parallels Desktop v9 you might want to install the Parallel Tools, in order to have a much nicer integration of the guest system.
But I had the problem, that right after installing the Parallel Tools for Linux AMD 64: The screen went black after the login, when the video driver had been loaded. So I uninstalled the parallel tools again and uninstalled all nvidia drivers which I had installed for dual boot use. Afterwards I reinstalled parallel tools and everything was fine.
Using Parallels Desktop v9 with Linux Guest OS in a Native Partition
Most of the time you use desktop virtualization, you simply add a virtual hard drive and install a guest operating system (like (K)Ubuntu Linux) in it. But some times – as in my case – you already have another operation system on a partition on your native hard drive. For a mac it’s either via Bootcamp or via something like rEfit enabling you to install a BIOS boot manager like Grub. Since it is kind of uncommon using such an existing partition for desktop virtualization, it is not supported (and documented) so good in the different virtualization solutions.
Read More
HowTo Word Break Type-Writer in LaTeX
By default LaTeX does not insert word breaks in type writer fonts, because the font has no dedicated character for hyphenations. But you can set the ‘-‘ as the corresponding character:
% line breaks in tt fonts \newcommand{\origttfamily}{} \let\origttfamily=\ttfamily \renewcommand{\ttfamily}{\origttfamily \hyphenchar\font=`\-}
Task Queue for Heavy Weight Tasks in JavaSE Applications
Modern hardware systems have a multi-core architecture. So in contemporary software development concurrency is an even more crucial ingredient than before. But as we will see it is of great importance for single core systems, too. If you have already created a Java Swing application you’ve propably made an acquaintance with the SwingWorker
, in order to delegate long running tasks from within Swing events to another thread. But first things first. In Swing the whole painting and event handling of the graphical user interface is executed in one thread the so called event dispatching-thread from AWT the underlying former window toolkit from Java. Therefore most of Swing-based methods are not thread-safe, meaning that you have to prevent race conditions by yourself, but it offers the possibility to dispatch tasks to the event-dispatcher thread. It is highly recommended to do everything, that updates the GUI in the corresponding thread.
Read More
Exception Handling for Injection Interceptor
Remember my post “Circular Injection of Util Classes in EJB 3.0“? There I offered a some kind of ugly solution to the circular dependency problem for managed classes in Java EE 5. In a preceding post (Circular Dependencies of Session Beans) I grumbled about the exception handling in jBoss-5.1. It lets you alone with a meaningless error message and you have to guess what the problem is. Unfortunately my own code presented in the former post is even worse, since it logs problems but ignores them. It wasn’t mentioned for productive use, but it was annoying to me, so here is a little tune up adding exception handling and readable error messages.
Read More
Inject CDI beans into Tapestry-5.x e.g. in Jboss-7.0.2-Final
As I explained in “Inject Java EE Beans into Tapestry-5.x“, the AppModule offers a way to configure Tapestry Web Applications directly in Java. In that post, we injected Java EE Beans into Tapestry applications. This time we do the same with Context and Dependency Injection (CDI) Beans. It follows the same procedure. The only difference is the way of looking up a bean. We still use JNDI for a lookup, but this time we retrieve the CDI BeanManager. In a second step we get the bean. For performance reasons we retrieve the bean only once per Thread (see annotation @Scope). It will be cached for subsequent lookups.
Read More