While working on lvm-dubstep the question was posed if D-bus could handle the number of changes that could happen in a short period of time, especially PropertiesChanged signals when a large number of logical volumes or physical volumes were present on the system (eg. 120K PVs and 10K+ LVs). To test this idea I put together a simple server and client which simply tries to send an arbitrary number of signals as fast as it possibly can. The number settled upon was 10K because during early testing I was running into time-out exceptions when trying to send more in a row. Initial testing was done using the dbus-python library and even though numbers seemed sufficient, people asked about sd-bus and sd-bus utilizing kdbus, so the experiment was expanded to include these as well. Source code for the testing is available here.
Bear Creek

Bear Creek
Baby robin in front yard

Baby Robin
libtool library versioning ( -version-info ‘current[:revision[:age]]' )
The documentation on the gnu libtool manual states:
The following explanation may help to understand the above rules a bit better: consider that there are three possible kinds of reactions from users of your library to changes in a shared library:
- Programs using the previous version may use the new version as drop-in replacement, and programs using the new version can also work with the previous one. In other words, no recompiling nor relinking is needed. In this case, bump revision only, don’t touch current nor age.
- Programs using the previous version may use the new version as drop-in replacement, but programs using the new version may use APIs not present in the previous one. In other words, a program linking against the new version may fail with “unresolved symbols” if linking against the old version at runtime: set revision to 0, bump current and age.
- Programs may need to be changed, recompiled, relinked in order to use the new version. Bump current, set revision and age to 0.
This was confusing to me until I played around with the -version-info value and looked at the library output on my linux development system.
Using google authenticator with OpenBSD SSH logins
Introduction on two factor authentication
Please read the following information on two factor authentication and why you would want to use it. http://en.wikipedia.org/wiki/Two-step_verification
NOTE: Make sure you leave a terminal with root access if you are using a remote system until you have tested that you can indeed authenticate to it!
Steps tested on OpenBSD 5.4, used tools on EL6 client to generate QR code. I’m mainly documenting this here so I can remember how to do this again.
Buffer bloat mitigation with OpenBSD pf
For an introduction to buffer bloat read more here http://en.wikipedia.org/wiki/Bufferbloat . My home network utilizes OpenBSD and the built in packet filter (pf). I use cable for broadband internet and found that if I tried to upload a large file my internet connecting became very unable with high amounts of latency. After utilizing tools such as http://netalyzr.icsi.berkeley.edu/blog/ it became obvious that I was suffering from buffer bloat. After doing some searching I came across using altq support in pf to try some configuration changes to reduce the buffer bloat in my configuration. I added a queue for my external network card with the following:
Orchestrating Your Storage: libStorageMgmt
NOTES:
- Updated 4/2/2015 to reflect new project links and updated command line syntax
- Updated 5/20/2021 to reflect new IRC service
- Updated 7/18/2023 removed IRC channel
Abstract This paper discusses some of the advanced features that can be used in modern storage subsystems to improve IT work flows. Being able to manage storage whether it be direct attached, storage area network (SAN) or networked file system is vital. The ability to manage different vendor solutions consistently using the same tools opens a new range of storage related solutions. LibStorageMgmt meets this need.
There is suppose to be hot water in the water heater, right?
A local contractor installed a new furnace and water heater for me on 1/21/2013. The install appeared to go well. The furnace is keeping our house warm and the water heater runs without making crazy noise and it is producing hot water. All is perfect in the world, well not quite…
While checking out the water heater (AO Smith GDHE-50) I noticed that the lower side connect was quite cold, the brass drain was very cold too. My three other water heaters never exhibited anything like this when they had hot water in them. The valve and the side connectors were quite warm when the unit was at standby.
Fool me once, shame on you, fool me twice …
American water heater company, the maker of the water heater I installed issued me a return authorization number for the water heater that would not run when installed per the instructions. I installed the new one (1/5/2013) and this one works better (it will start), but still not great. It makes noise when starting and the flame is quite yellow and has bad shape. I have posted videos of the start and flame for technical support to look at.
I didn't do anything wrong
Ben, a plumber from K&S came by and spent 3 hours going over my install and inspecting the water heater. He found nothing wrong with my install, whew! After talking to technical support we got the unit running by removing the intake and restricting the exhaust. We had hot water, but the install wasn’t going to pass code as it deviated from the installation instructions.
Water heaters go virtually unnoticed, that is until they don’t work!