Today I decided to reorganize my GitHub repository. In the past, I added a lot of learning projects there and as time passed by, it was growing considerably. Since I currently have some work-related projects there, I thought it deserved some reorganization.
My idea was to consolidate some of the larger projects I had into a single repository where each component is a sub-module of the project. This was a rather natural choice because most of those projects are written in Java and use Maven, therefore being very easy to refactor into a module-based project layout.
One requirement I had was that I wanted to retain the commit history. After looking at some solutions involving git’s submodule or subtree features, I found one that was fairly simple. The process couldn’t be simpler: you have to add the projects as remote to your new project and run a couple of commands to merge, move and commit the files.
Additionally, since my projects usually follow the same standard, it was quite simple to automate. After running the initial steps to configure the new (consolidated) repository, I was able to run the mass import using the following command line:
formodule in$(echo"project1 project2");dogit merge-m"Merged $module master for repository reorganization"$module/master;mkdir$module;(forfile in$(echo"README.md pom.xml src test");do[[-e$file]]&&git mv$file$module/;done);git status;git commit-m"UPD: moved $module old files from a separate repo to a separate module".;done
I was even able to import the old branches for each of the sub-components I wanted to merge.
Just sharing some messaging tools I have been working with recently.
The first one is this performance test tool: msg-perf-tool. There’s no secret here: you run the tool and it does its best to bring your messaging system to its knees (though this may not be the correct way how to test it … check the testing tips on the Github page). For now it supports only AMQP, but Stomp and MQTT support is on the way. You can find rpms for RHEL/Centos (6 and 7) and Fedora (22, 23 and 24) for i686 and x86_64 on my Copr profile here.
The second one is a web page that can display the performance data stored on an ElasticSearch database and present it in a beautiful way. I call it messaging performance center. Here’s how it looks like:
Some bits are still in progress, but it’s functional.
Lastly, there’s litestomp. A C implementation of the Simple (or Streaming) Text Oriented Messaging Protocol. It was built on top of what-seems-to-be the now defunct libstomp project. There’s a couple of bugfixes, a simpler and higher level API for ease of use. Still a work in progress, but you can download the current rpms for RHEL/Centos (6 and 7) and Fedora (22, 23 and 24) for i686 and x86_64 from my Copr project page on this link.
There seem to a be problem with Parallels Tools 10.3 and recent versions of the Linux kernel (4.2, at least, which is used by recent versions of Fedora 22 and Fedora 23, for example). During the installation tools, the installer fails to compile one of the modules. That can lead to problems booting up your virtual machine.
In Fedora, in order to avoid this problem, you can just add the following line to /etc/dnf/dnf.conf file:
After Parallels release an update, you just remove the line, update the system, and it should be fine. As a final reminder, you should always generate a snapshot before upgrading the system.