My last post was about Cassandra Set Up. Current article discusses Cassandras data model and objects. In essence Cassandra is a hybrid between a key-value and a column-oriented NoSQL databases. Key value nature is represented by a row object, in which value would be generally organized in columns. In short, cassandra knows following objects
- Keyspace can be seen as DB Schema in SQL.
- Column family resembles a table in SQL world (read below this analogy is misleading)
- Row has a key and as a value a set of Cassandra columns. But without relational schema corset.
- Column is a triplet := (name, value, timestamp).
- Super column is a tupel := (name, collection of columns).
- Data Types : Validators & Comparators
Read more »
Introduction to Cassandra
Even Cassandra is often mentioned in books and in several NoSQL blogs, there is still not enough attention to this very interesting NoSQL database. Cassandra is extremely scalable and can deliver continuous availability. Cassandra is very good for managing large amounts of data in a cluster that span across multiple data centers and the cloud. Best of all cassandra is also linear scalable. Ok, you say, what about maintenance? Apache Cassandra promisses operational simplicity, zero conf and self-balancing architecture. It also promises some degree of hardware agnosticism and can run on commodity servers and even on any kind of consumer hardware. As i mentioned before Cassandra is very good in scale and has no single point of failure (not by design, but you can get one if you treat it wrong ). So why there is still no so much attention to this database, even if access times outperforms Mongo DB (especially writes)?
I don’t know exactly, but i think it has to do with a relatively steep learning curve in comparison to some competitors in the field.
However this article shows that one can get pretty fast familiar with Cassandra, starting using it with one local node.
Read more »
In a past article i described how to enable KVM virtualization on your Linux. Present article is about virtual network you can span with several commands or simple script.
Private virtual machines, if they are created, usually needed to be connected to some networks. Of course there could be a plenty of different solutions for variable infrastructure contexts. In this post im focusing on simple and easy way to enable network and hang all the local vms into it. So i need and show a solution good situated for Linux based private or small organizations. It is even best solution (until you provide a better on in a comment ) for your laptop. Because laptops can be moved around, i don’t want to relay on any constrains of external network, also maybe i don’t want expose to much information about my local network. Further. The whole has to be simple and easy to. Interested? Read more »
Aptitude is native packet manager for debian linux which is based on apt. I prefer to use it if available because of easiness. Below some tips on how to use it in graphic mode.
- Update packet database before do anything else by pressing
- Action on selected packages:
+ for add or update;
- for remove;
= for hold version.
Ctr+T to open menu with all available commands
- Aptitude uses different screens. For example during the update new screen appears but the main screen is not closed but only overlapped, you can navigate through them with
F7 . And you can close any screen by pressing
q . Aptitude is quits if you close last screen.
/ for search
n for next element. Alternatively press
l for reducing the package tree for only search results. Un-Limit is again by deleting filter or by navigation through menu-> Search->Un-Limit Display…
[Shift+U] select all packets for upgrade.
- by conflicts you can examinate them by pressing “e” and then switch between proposals by pressing
. However sometimes it’s there are just um any. Therefore to guide aptitude you ca select particular package then switch in the info-panel by pressing
Tab and explicitly reject one of the proposal by pressing
r. For example you maybe want to reject any proposal of removal of that particular package.
Current state column
|-||the package is installed and all its dependencies are satisfied.|
|-||the package was removed, but its configuration files are still present.|
|-||the package and all its configuration files were removed, or the package was never installed.|
|-||the package is virtual.|
|-||the package has broken dependencies.|
|-||the package has been unpacked but not configured.|
|-||half-configured: the package’s configuration was interrupted.|
|-||half-installed: the package’s installation was interrupted.|
Action flags (what will be done)
|-||the package will be installed.|
|-||the package will be upgraded.|
|-||the package will be deleted: it will be removed, but its configuration files will remain on the system.|
|-||the package will be purged: it and its configuration files will be removed.|
|-||the package will be held back: it will be kept at its current version, even if a newer version becomes available, until the hold is cancelled.|
|-||An upgrade of the package has been forbidden.|
|-||the package will be reinstalled.|
|-||the package is “broken”: some of its dependencies will not be satisfied. aptitude will not allow you to install, remove, or upgrade anything while you have broken packages|
|-||automatically installed package as dependency|
|-||Package from Untrusted source|
This is short but intensive QEMU-KVM tutorial
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
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.
There are more and more interesting news comming from “modern” Java framweworks these days.
Even Big Player LinkedIn switches more and more to Play!.
What do you think about? What is your experince with Play! in big projects?
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
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 »
My last article on maven described maven basic setup. This article covers basic concepts of maven self.
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 »
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 »
This article provides step by step tutorial of Apache Maven installation. The tutorial uses linux but can be easy reproduced on windows or mac.
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.
I think some command annotation is enough. Pleas feel free to ask in comments if something is fussy.
Read more »