HttpServletRequest: requestURI/requestURL/contextPath/servletPath/pathInfo/queryString
Continue reading →
Ansible: Best practices for deriving host-level var from a group var
Continue reading →
Frustration-Driven Development - Towards DevOps, Lean, Clojure
A post about development practices, speed, and frustration.
My wife has mentioned that she likes my passion for doing things right in software development. That made me thinking, why do I actually care so much and do not just enjoy the coding itself? It boils down to that I am not happy until my code is in production. Seeking the satisfaction of having my code used by and helping people while trying to eliminate all unnecessary mental drain is behind all the practices that I embrace and evangelize. It's a drug I like to take often, in small doses.
practices = f(max(delivered value), min(mental energy))
So how does this relate to DevOps, Continuous Delivery, testing, single-piece-flow, Lean Startup, Clojure? It is simple.
Continue reading →
Petitioning EU to act against Russian aggression in Ukraine
As a citizen of a country that has been invaded by Hilter in 1938 under the pretext of protecting local Germans and again invaded by Russia in 1968, I cannot watch another such invasion and annexation taking place in Europe while EU does little of any consequences.
Continue reading →
Recursive Copy In Ansible 1.5 And --diff
- the synchronize module, using rsync
- cons: does not support group=, owner=
- -C and --diff - it does not print diff of the files changed; when running ansible with -v, it will print output of rsync's --itemize-changes, i.e., for each changed file/dir, something like "<f.st...... conf/httpd.conf\n" (< = file uploaded, s = size changed, t = timestamp changed, . = this attribute has not been changed)
- the copy module
- -C --diff - it only reports "changed" without naming the changed files or showing diffs (unless there is only one changed file)
- the local_action module, used to run rsync manually (essentially the same as synchronize but more control)
- So the only way to do a kind of recursive copy with working diff is to use
copywith with_fileglob for each directory and subdirectory :-(
Continue reading →
Ansible Troubleshooting Tips
Run ansible-playbook in the verbose mode
ansible-playbook -vvvv ... will provide you with plenty of details of what is going on. (Notice that additional v:s, starting from none, add more detail.)Use ./hacking/test-module
Check out Ansible sources and use the ./hacking/test-module script - see Developing Modules.Continue reading →
Most interesting links of February '14
Recommended Readings
DevelopmentContinue reading →
Handling Deployments When Provisioning JBoss domain.xml (With Ansible)
domain.xml contains not only rather static configuration but also sections that change quite often such as deployments. So how can we manage the static parts of domain.xml with f.ex. Ansible while still enabling developers to deploy at will via jboss-cli (and thus changing the <deployments> sections of the file)? Here is one possible solution, based on extracting the sections from the current file and merging them into the template.Continue reading →
JavaServer Faces Are Evil (draft)
1. Problem
Let me start with a story. Once upon timeContinue reading →
Seek Understanding
Continue reading →
The Risks Of Big-Bang Deployments And Techniques For Step-wise Deployment
A deployment of many changes is risky. We want therefore to deploy them in a way which minimizes the risk of harm to our customers and our companies. The deployment can be done either in an all-at-once (also known as big-bang) way or a gradual way. We will argue here for the more gradual ("stepwise") approach.Big-bang or stepwise deployment?
A big-bang deployment seems to be the natural thing to do: the full solution is developed and tested and then replaces the current system at once. However, it has two crucial flaws.
Continue reading →
Demonstration of Ansible Features With Control & Test VMs
https://github.com/holyjak/ansible-example-with-vm
or continue reading the copy & paste here.This project has three things of interest:
- A non-trivial Ansible configuration that demonstrates couple of useful features and tricks
- A Vagrant/VirtualBox virtual machine with Ansible & co. to make it easy to run it (even on Windows)
- Another VM that can be used to test the configuration
Continue reading →
JBoss Modules Suck, It's Impossible To Use Custom Resteasy/JAX-RS Under JBoss 7
Continue reading →
A Secret Weapon Against Technical Debt
Continue reading →
Most interesting links of January '14
Recommended Readings
- ThoughtWorks latest interactive Technology Radar 1/2014(fixed link to pdf for Jan 2014:)
- The other kind of software debt - competency debt
Continue reading →