How to Implement Hibernate Envers in an Application

Hibernate Envers Technology Hibernate Envers is the frameworks for auditing entities. As the name suggests Hibernate Envers is developed on top of Hibernate, it will on Hibernate and Hibernate implemented JPA. Hibernate Envers provides easy auditing, versioning solution for entity classes. Advantages of Hibernate Envers:Auditing of all mappings defined by JPA specification. Auditing Hibernate specific mappings which extends the JPA specification. Logging data for each revision using revision entity. » Read more

A Beginners’ Guide to x86-64 Instruction Encoding

The encoding of x86 and x86-64 instructions is well documented in Intel or AMD’s manuals. However, they are not quite easy for beginners to start with to learn encoding of the x86-64 instructions. In this post, I will give a list of useful manuals for understanding and studying the x86-64 instruction encoding, a brief introduction and an example to help you get started with the formats and encodings of the x86-64 instructions. » Read more

How To Debug Linux Kernel With Less Efforts

Introduction In general, if we want to debug Linux Kernel, there are lots of tools such as Linux Perf, Kprobe, BCC, Ktap, etc, and we can also write kernel modules, proc subsystems or system calls for some specific debugging aims. However, if we have to instrument kernel to achieve our goals, usually we would not like to pay more efforts like above solutions since we’d like to achieve our aims quickly and easily. » Read more

QEMU/KVM Network Mechanisms

Introduction As we know, network subsystems are important in computer systems since they are I/O systems and need to be optimized with many algorithms and skills. This article will introduce how QEMU/KVM [2] network part works. In order to put everything simple and easy to understand, we will begin with several examples and then understand how it works internally. Examples In this example, we will use TAP device [1] as QEMU/KVM host network device driver and VirtIO driver will be used to send/receive network packets/data between Host OS and Guest OS. » Read more

Basic Knowledge of HTML and Canvas

From a small business owner, a blogger, a student or individual with a personal project, the need to create websites has never been more prominent. Having a basic understanding of HTML and canvas knowledge can be helpful, and it is simple to master. The thought of learning to code and programming may seem a long and daunting task, but some people may be surprised to know that it need not be as scary as it sounds. » Read more

How to Install Paravirtualized CentOS 7 DomU on Xen

This post introduces how to install a paravirtualized CentOS 7 DomU on Xen. The very common way of installing DomU does not work for CentOS 7. A little trick to set the repository and the network used by the VM should be used by adding a setting strings to the “extra=” field for this VM. To install the DomU VM, first download the pxeboot images from CentOS’s official website at » Read more

How does linux kernel collect task stats data

Motivation ∞ Recently, I find it is hard to know the percentage of time that one process uses to wait for synchronous I/O (eg, read, etc). One way is to use the taskstats API provided by Linux Kernel [1]. However, for this way, the precision may be one problem. With this problem, I dig into Linux Kernel source codes to see how “blkio_delay_total” (Delay time waiting for synchronous block I/O to complete) is calculated. » Read more

Are You Wanting to Learn a Programming Language? Read Before Your Make a Choice

Programming LanguagesMaking a career choice is difficult. And, if you have decided on becoming a programmer, the difficulty is just beginning. The most important thing is to first decide the language that you want to learn and this is often the most difficult decision. The good part is that you know you need to focus on learning programming and the bad part is that you might still be thinking which programming language should you begin to learn. » Read more

Vim Tutorial for Beginners: vimtutor

There are many Vim tutorials and Vim tips on the Web. However, I find the vimtutor provides the best tutorial among those so far as I found on the Web while the vimtutor seems usually reachable from a terminal which is not obviously known to Vim beginners who are usually Linux beginners too. This page shows the content of the Vim tutorial from the command vimtutor in a web page which is especially easier for Vim beginners to get and learn. » Read more

Spring Shell Technology For Java development

This post is about the Spring Shell technology and its use in java. Experts of java development India have shared their best knowledge in this post for Spring Shell with the community people. If you have anything to ask, do it at the end. Technology: It is command line tool for Java applications to interact with java applications using spring shell framework. » Read more

Filter Salutation in Microsoft Dynamics CRM

In this tutorial, Microsoft Dynamics CRM India experts will teach you how to filter salutation based on Gender field in MS CRM. You can follow the step-by-step guide shared in this post to avail the results. Description- According to the requirement we need to filter salutation based on gender in contact entity. For this we need to create two new field having Datatype(option set). » Read more

How to Disable and Enable Laptop Keyboard in Linux

Attaching a USB keyboard to a laptop is common when using a laptop because a normal keyboard may provide a more convenient typing experience. The laptop keyboard is not used in these situations. However, the laptop keyboard may still be touched by accident. In this post, we will discuss how to disable and enable the laptop keyboard in Linux. I will also provide scripts ready for you to directly use them for disabling/enabling the laptop keyboard. » Read more

Three Methods of Executing Commands on Many Nodes in Parallel via SSH on Linux

It is common to execute commands on many nodes/hosts via SSH for managing a cluster of Linux servers. On Linux, there are many choices for this task. Generally, to run commands on many nodes, there are two modes: serial mode and parallel mode. In serial mode, the command is executed on the node one by one. In parallel mode, the command is executed on many nodes together. » Read more

Notes for Beginners of Software Development on Linux

Linux is a great platform for software development targeting servers or backends. In general, working on Linux is very productive. The problem that beginners on Linux face is the the learning curve is steep at the beginning. But believe me, after you get through the initial green steep learning step as in the figure below with some hard work, you will feel like working on a rocket in the yellow part. » Read more

Tutorial Video for “PHP Function for Fetching RSS Feed and Outputting Feed Items as HTML”

After the post A PHP Function for Fetching RSS Feed and Outputing Feed Items as HTML was originally published, there are some updates such as adding a simple RSS feed caching mechanism and supporting scanning content parts of the feed items for images. Recently, Webucator makes a great tutorial video on introducing the RSS to HTML PHP function. Here is the video that teaches how to use the PHP function. » Read more

Running a Command Upon Files or Directories Changes on Linux

Doing actions upon changes of files and directories is very useful. Examples like compiling a project after the source code files are changed, sending emails after important configuration files are modified, building the PDF after a TeX file is modified. On Linux, the inotify-tools provide good support for trigger actions after changes. In this post, I will introduce a small tool which continuously runs a command upon certain files and directories change. » Read more

A PHP Function for Fetching RSS Feed and Outputing Feed Items as HTML

I aggregated all my new posts from several sites into a single RSS feed. Last time I updated my homepage, I came across an idea why not showing these feed items directly on the homepage as HTML content. After some study, I got one single PHP function in my hand that fetches an RSS feed and outputs HTML content in the page. » Read more

A posix_spawn Example in C to Create Child Process on Linux

The posix_spawn() and posix_spawnp() functions create a new child process from the specified process image constructed from a regular executable file. It can be used to replace the relative complex “fork-exec-wait” methods with fork() and exec(). However, compared to fork() and exec(), posix_spawn() is less introduced if you search on the Web. The posix_spawn() manual provides details. However, it is still not sufficient especially for beginners. » Read more