This blog does not get updated very often, and there is a simple reason for that: most of my free time goes into a side project called Bor. After more than a year of evenings and weekends spent on it, it deserves a proper introduction here. What is Bor Bor is an open-source policy management platform for Linux desktops. The core idea can be summarized in one sentence: define, distribute, and…
Note: this post is in Bulgarian, as it concerns the Bulgarian amateur radio license exam held by the Communications Regulation Commission (CRC). Какво направих От известно време имам намерение да се явя на изпита за радиолюбителска правоспособност. При прегледа на материалите за подготовка установих, че официалните въпроси на Комисията за регулиране на съобщенията (КРС) са достъпни само като PDF…
♫ As the snow flies, On a cold and gray Chicago mornin’, An overworked dev logs in… “the daily.” And his mama cries, ‘Cause the build broke down at half past five, While the scrum master pries… “In the daily.” People stand around, Talking ‘bout “alignment” while the deadlines hound, And the mute bug bites… “In the daily.” Then the…
If you work on a project that primarily runs on Linux or another Unix-like environment but collaborate with colleagues on Windows, you’ve likely run into two recurring headaches: Inconsistent line endings (CRLF vs. LF) leading to unnecessary diffs, merge conflicts, or even runtime errors in scripts. Missing Unix permissions when cloning to an NTFS-based filesystem, which doesn’t store executable…
Introduction Have you ever needed to access a service running on a machine behind NAT—one where you can’t simply open a port and connect from the outside? This scenario is very common for remote management or “agent” scenarios, but not only that. Other use cases might be: Sharing a local VNC server port to provide remote assistance (similar to RustDesk / TeamViewer) Accessing IoT…
Together with Vasil, we organized a workshop about self-hosting in initLab, the hackerspace of Sofia. It was fun and productive discussion! Your browser does not support the video tag.
On October 10th, I had the pleasure of joining Bogomil (Bogo) Shopov on the Bulgarian national radio program “Horizont” in their show “Izotopia” [🇫] to talk about some of the most pressing issues in technology today. As part of the OpenFest team, we delved into the world of open source, the evolving landscape of internet freedom, and the role of AI in this digital age. We…
The whole project took about ~30 min, using some stuff around the living room and electrical tape. The controller is Olimex AVR-T32U4, Arduino Leonardo clone. It runs really well with the Kwin script for maximizing the windows to a new virtual desktop, when they are in full screen. Just like in Mac. Here is the code: #include <Keyboard.h> const int upPin = 2; const int downPin = 3; const int…
In the age of information overload, it’s crucial to find the right tool that streamlines our online reading experience. While there are numerous feed aggregators in the market, Miniflux has emerged as my aggregator of choice. Here’s why: 1. A Minimalistic User Interface for a Distraction-Free Experience First and foremost, what captured my attention about Miniflux is its blazing fast and…
Hey folks, hope you’re all doing well! If you’ve ever had to deal with backups, you know it can be a chore. Enter Restic — an excellent command-line tool for backups. But wouldn’t it be nice to skip the bash scripting for simple projects? That’s exactly why I decided to build Resticara over a weekend. I was working with a client and realized that both of us needed a more…
Old project which is useful for QA testing of mail servers and mail security appliances. In the time, it was needed for testing one mail account with different configurations. The code is here
I don’t keep the code but it was really simple. Olimex AVR-T32U4 was used for keyboard emulation. Your user agent does not support the HTML5 Video element.
Hello, could you please generate lyrics for a new song of Manowar? Sure, here’s a sample of lyrics for a hypothetical Manowar song: Verse 1: In the land of steel and thunder We ride to fight, our will unbroken With the power of the gods in our hearts We strike down our enemies, unspoken Chorus: Manowar, Manowar We are the warriors, hear our battle cry Manowar, Manowar Our strength and honor,…
Update So, here is the code. It’s really simple gadget. The whole setup took me less than a hour for building and coding. I got the rotary dialer from a local auction site, like Ebay. My first idea was to include everything inside it’s box and leave only the USB cable outside but it was encapsulated and I didn’t have any success for opening it. Originally, the cable had 5 pin DIN…
Well, we had a really bad experience with a host in Portugal. He waited only 10 minutes for us and then he left the place, without responding for hours. We had to book another hotel which was not a bad idea at all :). The place was really cheap and I didn’t care about the refunding. Still, we didn’t get any support options from Airbnb. The most unpleasant part was today, when my review…
In this way, it’s really comfortable to control the lamps without trying to find the switches at night :) I made it with two industrial joysticks bought from a local hardware shop. The signal is going to the electrical rack in my storage room. I’m using two smart relays - Shelly Pro 4PM made by a Bulgarian company. They are enough to control the lights in the whole apartment. I have…
If you are experiencing errors when installing Gluu, the Open Source digital identity server in LXD, this is because Gluu works in a chrooted environment by default. Errors like these should appear on systems with deb or RPM packages installed: Jun 03 14:05:10 gluu systemd[1]: Starting Container gluu-server... Jun 03 14:05:10 gluu systemd-nspawn[1546]: Failed to mount n/a (type n/a) on…
Building from scratch machines with similar configuration is not very wise. Unless it’s not often. Preparing at least LXD base images would be helpful. Small routine tasks like changing the default repositories, MOTD, adding ssh keys and base tools would take more than 5 minutes per machine. 5 new machines per week, that takes a lot. To be effective, system administrators should be lazy and…
For the project I mentioned in the last post there was a requirement for running some Windows games on the computers. Despite the challenge to maintain 20 years old Windows software in Linux, the main challenge was to make it working in multi user environment with LDAP. Wine is a per-user app. Every user has their own Wine prefix with the apps directory and the emulated Windows root drive.
Occasionally I’m giving technical support to foundation “Revival of the Bulgarian villages” (фондация Възраждане на българските села). They are just a group of people with the noble mission to support the small places in our country with education and equipment. The children in these regions must have equal access to knowledge and technologies just like their peers from the big…
DeltaProXmlGen Two years ago I made a small desktop program for my girlfriend’s company. It converts XLS financial statements from the Amazon web store to Microinvest DeltaPro. It’s really simple but working solution that is saving some manual data entry time. A new version is planned for the future. The most important functionality which is missing is the automatic currency conversion…
It’s been a long time since my last post here. There are several reasons for this but the main one is laziness. Although, system administrators should be lazy. Another reason was the blog platform ( Hexo ). Last week I worked for about two evenings to migrate the website to a new platform. As well as he last one, Octopress Hexo, became difficult to maintain. Most of the community support of…
This is my lighting talk from OpenFest 2017 It’s about the home automation in my appartment. Sorry, Bulgarian only. . . . And here is another great one from the same session
Quick post, first for 2017. I got an Android car PC computer for Christmas and the hacking ideas began to appear. Because most the buffer parkings near the Sofia subway stations are full from early in the morning, I always have to do a lot of maneuvers with the car. It would be great if the car PC warns me about the free places around 1km away from the parking every morning, based on the GPS.
I made a HAProxy build with Debian-style config file because some of the haproxy.cfg files on my servers became really big. HAProxy has an option to include multiple config files as a command line arguent, like this: haproxy -f haproxy.cfg -f haproxy2.cfg -f...etc. So, the algoritm is like: Read /etc/haproxy/haproxy.cfg (The global settings); Read /etc/haproxy/haproxy.cfg.d/http/http.cfg (Global…
Percona’s XtraBackup is really good solution for incremental backups if small or large MySQL/MariaDB databases. Mysqldump is really slow and is not downtimeless. In our case, we need two week history of every day. Every Sunday the backup will be full and the rest of the days, backups will be incremental, based on Sunday’s full backup. The backups will be placed in a folder named…
To work with the root user and ssh keys is a common practice in the Ansible community. Another variant is to use a “deploy” user with the same password on every machine. Another option is to use Ansible Vault to encrypt the yaml files. or to use a password manager. It’s never a good idea to keep passwords, private keys and other sensual data to the source code repository. Pass I…
It’s been a while since my last post here. This is my first post with the new platform - Hexo. It’s faster and simpler than Octopress and it’s not Ruby but nevermind… The whole concept with the Certification Authorities is completely broken but we don’t have something better which is working. A world with fully encrypted web is a really a good idea since the whole…
This is my first non technical post here. I’m going to explain in details my way to cook Patatnik - Bulgarian dish from the Rhodopi Mountains. It’s made of shredded potatoes, eggs, onions, cheese and some local spices. I’m not sure if this is the most authentic recipe but it’s the way I like it. What is needed for two servings: 3 - 4 medium potatoes; A head of an onion; 3…
Let’s assume that we need to setup VirtualBox VM with Windows XP and an old version of Microsoft Office. The machine must be used from everyone on a given number of Linux workstations. The workstations may work with LDAP and NFS/Cifs. The standard installation of the VM would be extremely space consuming and it would cost a lot of the personal life of the administrator. I made an easy hack…
In this post I’m going to explain you how to deploy really fast and cheap cluster of Linux Containers. I use the same setup in a production enviroment for a big ERP system with accounting data (10GB++ of MySQL). Why LXC? Because it is Über-cool! Compared to the Hardware Virtualization, the runtime performance is near the bare metal speeds. Operations like starting/stopping of the system or…
Today Perl helped me again to solve a boring office problem. The colleagues gave me a presentation with almost 1000 slides. It was designed for a theatre subtitles. The slides was simple. Just a sentence per each slide. Only the colors was mistaken. Not black on white but white on black. My colleagues spent hours in googling for M$ Office bulk color change function. Then something blinked in me.…
Some of my Facebook friends have enough free time to repost stupid Facebook page images, Tumblr gifs and other crap. Others are just not clever enough. The worst is when there’s a new reality show on the TV, a new internet meme or “just-share-crap” trend. I don’t want to be a part of that. F.B. Purity helps me to filter the Facebook wall with more advanced tools than the…
It’s time to convert the physical disk to a virtual image. I’m using KVM/Qemu almost everywhere, so, this tutorial will be about KVM. You can use the images in Xen/VMWare almost the same way. First, install the VirtIO drivers for a better performance. The Fedora team builds isos with binary executables. Check the KVM documentation for the newest download links. First, attach a new VirtIO disk…
There are a lot of dirty legacy Personal Computers which are online and cannot be reinstalled. The most common problems are that they are installed with a special software and the CDs are lost or licensing problems. But what will happen when your zombie Durom dies? And your boss wants to use the accounting software ASAP.. The best scenario is when your HDD is healthy 🙂 First, you shoud find a…
This year, on OpenFest 2013 I will talk about Ulteo OVD - Open Source Application Delivery system. The conference shedule was full and there was just a place on the Lighting Talks, but it’s enough. I will cover the core functionality and some words about the company which is developing Ulteo. It’s a good idea to invite the developers on the next OpenFest. I have a working setup in the…
Just a small dummy C project from the highschool, made probably in 2008. It’s completely useless. I still keep it as a good example of using an escape characters in Bash. The code is hosted here
Zentyal, The Linux Small Business Server includes the most important services for a small or medium company. Most of the services are integrated around OpenLdap. Since version 3.1, Zentyal uses Samba4 as a Directory and File Sharing services. I’m maintaining the computers in the Francophone center in University of Sofia. Everything in this place is with Ubuntu workstations. There was a major…
My name is Blagovest Petrov and this is my personal blog. Here I’m writing mainly about Linux, System Administration and DevOps. The purpose of most of the posts is to track what I have done over the years for myself. Currently I’m a DevOps team lead at IBM. In my free time I like to go kayaking on dams or to the Greek seasisde, visiting music festivals, working on DIY projects, etc.