Posted by & filed under Linux, Software.

This is short but intensive QEMU-KVM tutorial

KVM Introduction

kvm

qemu-kvm

Kernel-based Virtual Machine (KVM) is a virtualization solution for the Linux kernel. KVM is a part of the Linux Kernel since version 2.6.20 (Feb. 2007). Also KVM requires a processor with hardware virtualization extension, which is meanwhile present on most desktop and server processors. Future Kernel versions will include KVM for ARM architecture too, making it’s ubiquitous available ;)

qemu-kvm

Talking about kvm is talking about virtualization technology or about kernel modules (kvm.ko, kvm-intel.ko or kvm-amd-ko). Sometimes kvm is mentioned as a virtual machine, ti is not correct, because kvm does not provide virtualized hardware.
This is where QEMU (generic machine emulator and virtualizer) comes to play.
Qemu-kvm is a stable fork of qemu’s point releases with kvm features or extras on top of it. I’m a bit unsure about the state of the art, but there are plans to merge qemu-kvm fork completely to qemu(correct me please). However below description is about qemu-kvm which is available in most common linux distributions.

Read more »

Posted by & filed under Linux, Software, Software Development.

There are many people who use Apache Maven or Ant for years but do no use a repository manager like Nexus or Artifactory. Maybe initial step is something everyone need to overcome.This article describes how you can setup and get running your  Nexus – an Artifact Repository Manager. Let’s begin with short motivation

Motivation

In my last article i introduced basic maven concepts, even when dependency management was not covered explicitly it is still one of the greatest thing maven introduced to the java eco-system. Most of maven builds produces artifacts also projects do depend on another artifacts (e.g java jar files) in different versions and configurations. It’s all about managing the artifacts. Therefore every maven installation already brings a repository that may be sufficient for single developer or small team. But the more professional your software development is the more reason is present professional artifact repository. Long story short the reasons are…

  • More control (Releases, Dependencies, Audits)
  • Predictability and Scalability
  • Speeding up of Builds
  • Saving  Bandtwidth
  • 3dt party artifact flexiblity
  • Intra/inter organisational colaboration and distribution of work

If interested read more details. Read more »

Posted by & filed under Java, Software, Software Development.

My last article on maven described maven basic setup. This article covers basic concepts of maven self. 

Introduction

Maven is a project management framework (or tool).

This definition is quite abstract and don’t justifies the richness and complexity of Maven. It turns out often it’s not easy to describe software tools. So the idea of Software is central element. The effort was to adopt best practices let’s say principles:

  • Convention over configuration
  • Declarative execution
  • Reuse of build logic
  • Coherent organization of dependencies

Let’ see how maven adopts these. Here are the key concepts maven provides:

  • Set of build standards
  • Standard life cycles for building, testing and so on
  • Default Tasks
  • Common declarative Project Object Model (POM)
  • Dependencies description and management
  • Artifact repository
  • Modular Design (Plug-ins)

Maven provides a comprehensive model that can be applied to all software projects. That model uses a common project “language”, and the software tool is just a supporting element within this model.

Maven is not like Ant

Because i’m was long time a Apache Ant user (and still i am) it’s important for me to emphasize some key differences in maven philosophy.

  • Pre-defined (non just project wide) build standards, with pre-defined default life cycles, directory layout and more. Can say maven has predefined assumptions how to build your project (I don’t say that i like it in any sence)
  • It’s possible to build any given project without having to understand how the individual plug-ins works.
  • Maven provides declarative style. Instead of defining procedures your configure it.

That is in general. Let’s look deeper where and how the configuration is done.

Read more »

Posted by & filed under WordPress.

Hello out there,
actually I do some upgrades of my blog. Shortly i switched to livefyre (and upgraded it). And yesterday I changed the WP-Theme, finally i’ve changed categories a bit and hope google will not go crazy ;)

The new theme is an addoption of wpbs and is also awailable on github. Is bases on Twitter Bootstrap Framework and you see it, because it is still in default color scheme. But i’m not designer, so i have not much ideas about prettifying such things. Important for me is that Twitter Bootstrap is relative easy to understand and that it bring  good typography out of the box. And typography is essential for blogs. Further bootstrap is modern and supports all actual and even not newest browsers ans finally it supports for all kinds of modern media devices too. From now on my blog layout is well suitable for Tablets and mobile phones. Try out! ;) Read more »

Posted by & filed under Linux.

This article provides step by step tutorial of Apache Maven installation. The tutorial uses linux but  can be easy reproduced on windows or mac.

Motivation

Apache Maven is Software Project Management and Configuration tool. Through it’s bride acceptance in the java-developer community it introduces some kind of unification and standardisation in a structure of java Software projects. Long story short at the end of every build some artifacts (e.g .jar files) are produced, deployed, archived, copied to location here there are referenced and so on. Maven provides basic support for all this tasks. Therefore  if you’re interested in professional software development, clean versioning, clear dependency management but didn’t know how to start with maven easy consider to install maven like described here and to understand it by my next article.

Installation

I think some command annotation is enough. Pleas feel free to ask in comments if something is fussy.
Read more »

Posted by & filed under WordPress.

In my last post i’ve introduced new comment system WordPress Plugin from Livefyre. Now here is the latest version of it. The latest version seems to bring all the features i mentioned there.

Compare

Livefyre WP Plugin v3.17

to Livefyre WP Plugin v3.52 (Can be dowloaded here.)

Now many of new features have to be enabled. Please feel free to test it. Read more »

Posted by & filed under WordPress.

As you might have already noticed, i switched my commenting system to Livefyre. If i got it right it’s relative new but it seems to better for my needs than well established Disqus commenting system. Disqus gained popularity in last two or three years and I tried Disqus some time ago too, but didn’t liked it’s Wodpress Plugin.  Especially i didn’t liked the poor java Script implementation, which was not crawable by google (maybe it’s got better now). Livefyre promise to be SEO friendlier out of the box. Indeed Livefyre WP-Plugin renders all the comments to html, and I saw them  by switching  all the java-scripts off ;)

Additionaly i read many comparisons on that topic, like this one: Disqus vs Livefyte.

Livefyre Features

So let me just depict the features of Livefyre (Look here for details)

  • SocialSync - comment sync with twitter and FB
  • Social Sign In
  • Friend Tagging – you can tag FB or twitter friends.
  • Comment Sharing
  • Comment Liking
  • Rich Text Editor
  • LinkBack – Possible to live backling on every comment you do, wherever you do it.
  • Live Listeners
  • Comment Notifiers
  • Media Embedding
  • Comment Editing
  • User Profiles

UPDATE 12.09.12

Dhara the community manager from Livefyre has pointed me to Livefyre WP Plugin v3 (beta) which should provide all that feature for WordePRess, because now released version is still not good in “Rich Text editor”  and “Media Embeding”. I will try this beta soon.
UPDATE 15.09.12
I have installed latest betta v3.52 to this, but nothig has changed to the frondend. See comments.
So please feel free to comment any crap to this post, because i’m still testing livefyre. Let it be comment labor! ;)

Posted by & filed under Java, Software Development.

Apache Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns.

I thing this is enough to decide whether to read or not to read this article. If you thing lightweight Integration framework could be something interesting but you need  further readingo to decide, so maybe the shortest path is to look at  Stackoverflow discussion about what actually Apache Camel is. Read short introduction to Apache Camel with example below.

Basics

Apache Camel is java library and engine which is well situated for different Integration patterns. However Camel is not BPMN Engine or ESB but it could be under the hood implementation of such products. Apache Camel is a programers tool for mediation and integration problems. Let’s understand it by looking on the entitiest.

Entities

Lets’ start by basic Camel entities: Message and Exchange.

Message

org.apache.camel.Message – is the fundamental entity containing the data being carried and routed in Camel. Massages are contained out of

  • Unique Identifier: of type java.lang.String .
  • Headers may provide some hints about content. Headers are organized as name-value pairs. The name is a
    unique, case-insensitive string, and the value is of type java.lang.Object.
  • The body is of type java.lang.Object . It  means that it’s up to you  to make sure that the receiver can understand the content of the message. When the sender and receiver use different body formats you can use a number of camel mechanisms to transform the data into an specific format. In many cases the conversion can happen automatically with pre-defined type converters.
  • The fault flag it is a bit special thing to distinguish between normal and fault returns as defined by some Standards (e.g. WSDL).

Exchange

org.apache.camel.Exchange is abstraction for an exchange of messages  as part of a “conversation”. Below are components of a such conversation, that make this abstraction more comprehensive.

  • Exchange ID
  • MEP a particular Message Exchange Pattern like InOnly or InOut. When the pattern is InOnly, the exchange contains only IN- Message.
  • Exception when it occurs at any time during routing.
  • Properties  are similar to message headers, but they last for the duration of the entire exchange also camel may add some properties to a particular exchange.
  • IN-Message  or request message is mandatory.
  • OUT-Message or replay message exists if the MEP is defined as InOut. Read more »

Posted by & filed under Java, Software.

This post covers some basic OSGi concepts. Also i’ll present a Tycho buildable example of service definition in declarative approach. Next article will cover OSGi Blueprint DI container. Also look here for more complex tycho example.

Why modules

Breaking a system in modules is a very important architectural task or even a methodology. Remember  the Separation of Concerns (SoC)  principle [1, 2] and consider better system maintainability by enforcing logical boundaries between modules. This  and other aspects explain the growing popularity of OSGi technology in the past years. Since OSGi is very popular today (Nearly every modern Java Application Server and IDE is based on OSGi platform) it is worth to be familiar with it.
Read more »