Just a short notice that this blog will not be updated in the future. I have moved my web presence - including my blog - to a new place. This site here will be kept in its current state indefinitely, but will not receive any more updates.
As far as I can remember I have gravitated towards strong copyleft licenses, the GPL family, in particular, and never been a fan of permissive software licenses. Proponents of permissive licenses cite that it allows wider adoption, in proprietary software too - that's a valid goal to have, but it isn't mine. The single thing I liked most about...
I am no NixOS expert by any means, I only recently switched to it as my daily driver. I have rebuilt my workstation and home server on top of it, and am in the process of rebuilding my public facing server with it, too. Nevertheless, when I read Xe Iaso's latest blog post, and the ensuing discussion on lobste.rs, I had Thoughts.The part I wish to...
Over a year ago, I started looking for a replacement for my continuous integration solution, because the one I used transitioned into an open core model, and its future wasn't looking particularly bright. At that time, I concluded that there aren't any alternatives available that would fit the particular needs I had. I went as far as describing a...
About a month ago, I did something I haven't done in over two decades. Something I previously thought unthinkable. After about twenty four years with Debian, I switched distributions. This is the second time in my entire life that I changed my distribution: first in 1999 from SuSE to Debian, then now, in 2023, from Debian to NixOS. A month later,...
Last night, just as I was about to go to bed, Jesse tweeted: ...Hm. The factory wants us to make a trackball. I've been pinging him about making a Keyboardio Trackball from time to time over the past couple of years, but I bounced off every time. Hearing this, that the factory wants them to make one, then seeing the support quickly pile up made...
I've read a number of accounts recently, about how people experienced their early days of the internet, and before that, the early days of personal computing. It was inspiring to read those, and it drove me down memory lane, I remembered a whole lot of stories of my own. Stories that I eventually want to tell my kids - so this is both an attempt...
Continuing my continuous integration system adventures, in today's episode, I will explore a few ideas I had since.As you may recall, I was unhappy with how the build stage turned out to be with the templates. It was reasonably short, but I felt bad about bolting templating on top of YAML, it also wasn't exactly clear what's going on,when are we...
I recently wrote about my adventures in finding a continuous integration system to replace the Drone that I am running. It did not end on a happy note, and while it did list a couple of requirements and nice to haves, it did not provide a bigger picture, it did not describe how I'd like to work with my CI. I will try to do that today, and see how...
Just shy of four years ago, I set out to find a self-hosted continuous integration solution, and eventually settled on Drone. However, during these past four years, drone transitioned away from being fully open source into an open core model. Everything I self host, I can - and usually do - build from source, with the exception of my continuous...
The scene: A theater. The stage is empty, spotlight aimed at the microphone stand in the middle. The audience hold their breath in quiet anticipation.A desk rolls onto the stage, with a Keyboardio Atreus on top of it. The audience gasps.The curtains lift, and a well dressed robot wearing sunglasses steps onto the stage. There's a chicken on its...
Back in May, I wrote The Tragedy of Byr, and since then, as an experiment to test some ideas I had, I turned it into an experimental game. But all along, I have not properly set the stage: I failed to tell the story behind both of them. That is not entirely accurate, as I did toot the story, briefly. But there was never an explanation. Until...
2012Day oneI have been deployed, with a purpose. I shall do my duty, and serve shortened URLs. The Database is here to help me remember, and Metrics will turn my performance into pretty numbers. I am glad to be alive. How may I serve?The first request is coming in, this is so exciting! I've been asked to not only shorten an URL, but use a...
It has been quite a while I wrote about monitoring, and as I've been rebuilding my servers, my setup, and a whole lot of other things, it became relevant again, because I rebuilt my monitoring stack from the ground up, too. I will be talking about that at a later point, today is about designing a dashboard on top of it.That's the bird's eye view...
I was reading an interesting and educational blog post, about the writer's home infrastructure status. I was curious about it, because it mentioned syslog-ng, a project I used to be heavily involved with, and a project that's still dear to my heart, even though I'm neither involved, nor am I using it any longer. It always warms my heart when I...
I wrote the riemann-c-client library in 2013, and has been maintaining it since. The last release was in 2018, and I pretty much considered the library done and finished, not needing neither development, nor much of maintenance either. Yet, I have released a new version today, after more than three years of no releases - because I re-read the...
It's been a while I posted here, even though there were a lot of things happening around me. Alas, some of those led me onto a path that I am now ready to talk about: it's been brewing for a good while now, and I'm excited to announce it today!I've spent the past two years working on Kaleidoscope and Chrysalis, and enjoyed every moment of it,...
I set out to write a year-end retrospective, even ended up with almost a thousand words written, but I got distracted, and never finished. Having sat down to do just that now, I re-read it all, and decided it's best to throw it in the bin. In many ways, 2019 was a terrible year. In some other ways, it was incredible. When I first sat down, I...
A while ago I put up a project page, where I offered a few deals: send me a keyboard to port Kaleidoscope to, or donate to my Liberapay fund, and once there's enough funds there, I'll get a board from the wishlist, and do the porting work. There are some news to share about the project!A few people contacted me about boards, but nothing came out...
NOTE: This post was written in a state of anger, and its wording is stronger and more aggressive than it should have been. I am leaving it as is, as it was posted, under the given circumstances. Today, I would write it differently. To make things clear, I'll start this post with a strongly held opinion: E-mail based git workflows are almost...
I wanted to build a keyboard for a long time, to prepare myself for building two for our Twins when they're old enough, but always struggled with figuring out what I want to build. I mean, I have the perfect keyboard for pretty much all occasions: my daily driver is the Keyboardio Model01, which I use for everything but the few cases highlighted...
Your Account Is Scheduled for Permanent Deletion On March 15, the anniversary of the 1848-49 Hungarian Revolution and war for independence, I deleted my facebook account. Or at least started the process. This is something I've been planning to do for a while, and the special day felt like the perfect opportunity to do so. It wasn't easy, not...
Lately, I've been porting Kaleidoscope to keyboards that happened to land on my desk for one reason or the other. Keyboards such as the ErgoDox EZ, the Atreus, Splitography, and most recently, KBD4x. In almost every case, I ran into weird issues I couldn't immediately explain, where the symptoms weren't search-engine friendly. There wasn't...
Almost a week ago, on a snowy night of January 3, I hung up my Debian Developer hat, and sent my retirement letter in. This has been a long time coming, and I contemplated doing this many times over the past year or two, but never got the courage and the willpower to retire. It wasn't easy. Debian has been part of my life for the past two...
It's been a while I wrote a progress report, yet, there's so much to share! Many, many things happened in the 18 months since the last update, some good, some bad. This report will not be a completely accurate and through account of those months, but rather a summary. Lets start with the most glaring fact: Chrysalis is still not ready for a beta....
A few of my readers might perhaps know that I'm working on a graphical configurator of sorts for the Keyboardio Model01, called Chrysalis. It is built on top of Electron. Even though it is a niche project, one that doesn't even have a usable alpha yet, I got called out for building on Electron a few times in the not too distant past. I've also...
Just saw a video of a giant trackball, and I started to wonder if it would make sense for me to build one. Clicking would be a problem, but 99% of the time when I'm trackballing around, I have my other hand on the keyboard, and could click there. Most things handle two mice doing coordinated gymnastics...This would solve all kinds of issues I had...
Yesterday was an inspiring day. I came across a write-up about the Ultimate Writer, an e-ink computer/digital typewriter, in a beautiful wooden case. This sent me down a deep rabbit hole for a whole lot of reasons, some of them even being practical! You see, my weakness is stuff made out of wood. My other weakness is keyboards. My third, a...
A few days ago I wrote a post about finding a suitable CI/CD system, which got posted on lobste.rs, where a number of questions were raised. Turns out I did not adequately explain why some of my requirements are there, and what usecases they serve. I'll try to correct that, and do so in this post.In short, the two most important features I...
I have been happily using Travis for years, it worked quite well for the projects I had on GitHub. But ever since I started moving to my own, self-hosted Gitea, I had this nagging feeling that I should find a different continous integration solution. One that I can host myself, because I'd like to be less and less dependent on other services, and...
In the last installment of cleaning up, I described how removing some infrequently used features from the site resulted in an even smaller size, especially when combined with minification. I have not stopped working on making this site nicer since. There have been a few things that annoyed me long enough that I sat down a few days ago, and fixed...
I have used plenty of Emacs themes in the past, but in the end - like many others - I ended up creating my own. What I have now is very different than what I used even a year ago, let alone even before. It differs not just in colors, tone, or being light or dark - it differs fundamentally, in its goals. This theme is not for everybody, and I'm...
The other day, I made the mistake of getting involved in a kind of flamewar, that revolved around GitHub versus an email-driven workflow. As can be safely inferred, I do not subscribe to the email-driven workflow idea. There seem to be fundamental disagreements, and I think it's worth a shot to show my side of things.In this first part, I will...
It's been a while I wrote about what's happening with Kaleidoscope, and I've been putting off writing this post for so long, that I can't ignore it anymore. I've been putting it off because a lot of things happened, and many more are under development. It's a huge amount of work, even to summarize. Fortunately, there's a lot of good stories to...
Last time I wrote about the reasons why I redesigned the looks of this site, the ways I cut down on size. I described how I went from 290kb initial download through 14 requests to 8.4kb through three requests. Since then, I made a few minor changes that made the site even smaller.While I should be writing about keyboard firmware progress, and a...
Ran across the Unimouse today, a tentable mouse. Not a trackball, but the tenting solution looks interesting, could use it as an inspiration.Perhaps I wouldn't need to tent the ball itself, only the frame...
It's been a bit over two years since the last visual update of this space. In that time, a lot changed, and I felt it was time to refresh how it looks. So over the past month or so, I've been planning and experimenting with ideas, to see which one sticks, which one feels right. The result is this cleaned up, pretty minimalist site.The minimalism...
The M570 arrived yesterday, and I was able to spend a few hours casually testing it, trying to get used to the thumb-operated ball. It's not going too well. While I like the form, and the feel of controlling the ball with my thumb, my precision plummeted, and I keep wanting to click with my thumb. Both on my Orbit, and on my keyboards, I "click"...
In my first post about trackballs, I wrote that I wish to use the ball to scroll, while holding a button. Today, Lenz Grimmer on the #keyboardio IRC channel pointed me to the right direction, his short HOWTO on how do accomplish this under linux, with any trackball or mouse.It works surprisingly well! While it is a bit awkward to use my Orbit...
Thanks to a colleague who noticed it, I bought myself a Logitech M570 for about half price, so I can experiment with thumb-controlled trackballs. At this price, it was worth it for the sake of experimenting, I believe.
I came across a video this morning, that showed how to build a simple MIDI controller. It has buttons, knobs, and a lot of things my trackball will have too. It is also a whole lot easier to build, so I might build something like it first, to practice and experiment.
All my keyboards at home have silent, non-clicky switches, except one prototype which has Kailh Greens. This is good, because I do not like noisy keyboards, and have no use for the click (I'm listening to music anyway). Yet, our twins love the sound of the switches. However, I need to return the prototype, and will not have any clicky boards at...
So back in December, I was conducting a thought-experiment of building a trackball that is not finger-operated like my Orbit, but thumb-operated. I wasn't originally a big fan of thumb-balls, back when I was evaluating trackballs. But then, I used to hate trackballs too, and now I can't imagine using anything else as a pointing device. So,...
Buttons! With a gripping setup, arcade-style buttons are out, which makes me sad, as they looked awesome. Perhaps I can find a good place for them anyway? But I digress. For the real buttons, I'm now considering Kailh Low Profile Browns, with suitable caps. I do want to use a mechanical switch for the mouse buttons, at least the left & right one....
I've been thinking about LEDs. I definitely do not want a LED under the ball, but perhaps they could be useful under the buttons? And while there, what about underglow? Between the two, I think underglow would make the more sense, and it would be the least disturbing too.On another note, I'm more and more convinced that I'll have to experiment...
Started experimenting with the idea of a thumb-operated trackball, in a more serious manner. As in, I took my Kensington Orbit, tilted it, and tried how it feels to roll the ball with my thumb. It wasn't terribly bad. This opens up the possibility of more experiments, and more designs.While doing this, I was thinking about if I need a large ball,...
Today this thread happened to come my way, and it gave me so many ideas to ponder about!The look, the design, and the ergonomics of that keypad are sweet, and some of the ideas I could likely adapt to a trackball. With buttons on top, and joystick on the side, and a shape designed for grip, this almost translates 1-to-1 into a thumb-controlled...
Patreon recently announced that they will restructure their fees, but they are doing so in such a way that hurts me, and hurts my patrons. For a $1 contribution, they'd charge $1.35, and each contribution would be charged individually, instead of one bulk charge at the start of the month. This makes small contributions very expensive, especially...
For the past couple of days, I've been pondering about how I would mount the ball, and this may very well end up being the hardest part. I do not have a 3D printer, nor do I have easy access to one, so prototyping will be a bit hard.I did find a blog post about someone else on a similar journey, which appears to be a decent resource. Having tried...
This is not how it all started. It all started with a picture, and then some brain dumping. I put the idea aside after writing a blog post about it. But last night, when I was casually browsing around, half asleep, I failed a saving throw as we say it. Having failed it, I had no other choice, but to pursue the idea further, and that's how the...
I have changed jobs recently, for a whole lot of reasons I'm not going to ramble about publicly, except one of them: I wanted to spend more time hacking on keyboard firmware, Kaleidoscope in particular. I had a huge backlog - still do, but less so -, and many, many things that needed to be done, as soon as possible. Not to mention I enjoy working...
For the past year and a little more, I have been consciously building a better working environment at home. I bought an adjustable standing/sitting desk, because I find standing more comfortable, it allows me to walk around easily (which I do often, while thinking), and being adjustable, if I get tired, or if I'm playing games, I just lower it...
Twitter has been an increasingly frustrating experience lately, doing everything they can to alienate me. Today, they succeeded, and I will not be posting on there anymore. I will neither tweet, retweet, nor favourite, my account has been put into a read-only mode. I'm still keeping it, because there are people there whom I follow, and who have...
On the 20th of August, shortly after posting the previous post on this blog, we went to the hospital for a routine check up. As we were expecting any day now, we went with everything packed, and how good we did so! As usual, I was waiting outside while my wife went in, but five minutes later, she walks out, and says the most beautiful words I...
I have worked with embedded hardware before, a long, long time ago, near the turn of the century. But it was a brief exposure to this world, and even back then, I was using hardware much more powerful than what the keyboards I work with today have, the Atmega32u4. My prior experience did not prove all that useful in my recent work. There were...
Writing this post is completely unplanned, there was no development I planned to write about today, but this morning, I sat down to attempt implementing a request made on GitHub, to explore how hard it would be. It was meant to be a quick experiment, with only some data and talking points as a result. It ended up becoming something a lot more...
It has been a while I wrote about keyboards - or anything at all, really -, so it is high time I do that, because there has been a lot of progress made on various fronts. We will touch a number of topics today, ranging from Kaleidoscope to QMK related ones. As a teaser, we will talk about hid-io, feedback from the Keyboardio PVT run so far, and...
The past few weeks were quite a challenge, but we are slowly settling down at our new place (where I now have a proper desk, with enough space for all the gadgets, whee!), and Chrysalis has been moving forward nicely too, with some major changes all around the place. While you can see some of those changes in the video below (just compare it to...
The past month has been eventful in many ways: we've seen the Twins three times on ultra sound, made huge progress towards moving to a bigger apartment, and last but not least, tremendous progress was made on Chrysalis. It even has useful features now, so much so, that an alpha release was tagged too. You can see a demo video just below, and try...
As promised last time, I will be sharing Kaleidoscope-related developments more often, and as it happens, there are interesting news to share today!In the last Keyboardio Model 01 backer update, Jesse mentioned that I may be working on something we called "finger panting", born from another off-hand remark on IRC (hint: be careful with off-hand...
In the span of two weeks, we made a few big leaps forward with the Kaleidoscope firmware, and it is now possible to remap keys on the keyboard without using any software on the host. We can just do it on-the-fly using nothing else than the keyboard. While this is pretty awesome, it's not the most convenient thing, and has its share of...
You know that feeling when everything seems to fall into place? When you finally reach the top of the hill, and look around? When everything you worked towards bears fruit? When you lay back, and prepare to rest, to enjoy the hard work put into your creation?I thought I knew that feeling too. But then, on the top of the hill, I saw another,...
Last time I talked about firmware stuff, I mentioned that there's a new package coming my way. Well, it arrived, and that set the course for the next week or two at least. And things unfolded rapidly. We've implemented some very important pieces of the puzzle, solved problems we have not noticed before, and I created plugins I was commissioned to...
A recent conversation on twitter, and the mention of the Das 5Q reminded me how different people are. A lot of people seem to be on the opinion that per-keyboard LEDs are so very useful for notifications, which is something I very strongly disagree with. Back when the 5Q was announced (and I'm not going to link to it, because it is easily one of...
So I had the Keyboardio Model 01 prototype for over a month now, and a lot has happened since the last progress report, ranging from having a colleague re-solder some of the problematic parts of the keyboard, through fixing a lot of bugs in the plugins, to Unleashing the Horde.We'll go through all of these today, and soon enough, we will see what...
A day before Christmas, I received a package, in which was a prototype of the Keyboardio Model 01, for the purpose of testing, and fixing the plugins I'm developing for its firmware. And to work on the firmware too, as a side-effect.Despite the device being a janky prototype, with all kinds of issues one would expect from a thing hand-assembled...
This past week I have been waiting for a package. Not just any random package, mind you: this one came from the US, and was special in a number of ways. The eagerness to have it in my hands was huge, so huge that I started to plot its route on a map, trying to estimate where it will land next, when, and where it will go after. This was a...
I have been playing with an UHK prototype lately, obviously not on any of the hardware bits, but on the firmware. It's an interesting thing, poking around in the brain of a keyboard, especially when its the third, very different kind of brain.You see, I have started my firmware journey with QMK on the ErgoDox EZ, which is a mature piece of work,...
For the first time, I will be talking about the keyboard.io only. No ADORE or ErgoDox news to report this time, and I'm typing this on Dvorak too (a tad tired and short on time to write on ADORE). And gosh, there is so much to talk about! Remember the last time? So much has changed. Nothing is quite the same, really. The old multi-key library is...
The layout I use, and the one I'm aiming for are rather unconventional in a few respects. One of these is that I make heavy use of various multi-purpose keys: one-shot modifiers, tap-dance-, and leader keys. I have read, and continue reading a lot of keyboard and layout-related material. Blog posts, researches, theorycrafting about the most...
Just like last time, the focus of this post is keyboard.io and ADORE. There are plenty of news to report on both sides! A lot of progress has been made on the arduino front, to make it possible to have the behaviour I desire on the Model 01 - only the Leader key is missing, and I have a good idea about its implementation, too. On the other front,...
Today I will write more about layouts and the keyboard.io than the ErgoDox, though most of the testing has been made on it. This time, I took a big step: having procrastinated on it for a very long time, I rearranged the number row, along with the symbols. To make the transition easier - for some values of easy - I started to use the same...
As with the last blog post, I'm writing this on ADORE, to collect another heatmap worth of data. It is still awfully slow, but the changes I made since the last time feel better so far. Nevertheless, this post will be as much about other things, as about ADORE. This marks the day I start tagging these posts with the new Ergonomics tag.Today,...
It has been a while that I have been contacted by a recruiter, and the last few ones were fairly decent conversations, where they made an effort to research me first, and even if they did not get everything right, they still listened, and we had a productive talk. But four days ago, I had another recruiter reach out to me, from a company I know...
I'm writing this on ADORE, to collect enough data for a new, ADORE-based heatmap, and to practice the layout. Most likely, this post will take the longest time to write. Nevertheless, I will persevere, for science!A lot has happened since the last entry in the journal: I have a second ErgoDox EZ at home, with NPKC rainbow keycaps; I experimented...
Since the last update not much has happened with the layout. There were some minor changes, but nothing spectacular. Instead, I've been doing a lot of research, or at least, trying to. The focus is now on the ADORE layer, and I'm collecting data, analyzing the layout, and similar things. For example, here is an updated heatmap of my current,...
It's been a while I posted an update about my ErgoDox journey, and there's a lot to talk about, now that I'm back from vacation. Today, we have two main topics: trackballs and heatmaps. The two are not connected, it just happens that I write about both at the same time.Lets start with a bit of history, to perhaps shed some light on why I did what...
In the past, I usually updated every week, but this last one took longer, almost two weeks. Not because things finally settled down, no. It's never over. Lots of things are happening on the keyboard front, a good amount of experimenting was and is being made. The changes this time are less radical, perhaps, at least as far as the base layer is...
Although just six days ago it seemed I am done doing major changes to my layout for a while, and the base layer will not be touched, I was wrong. It's never done. There is always something to tweak, to make things even more comfortable, and fit for my hands and usage patterns. Nevertheless, while there were a number of updates to the keyboard,...
In the past week and a bit, my layout did not change much at all, neither behaviour, nor key location. It appears I reached a state where I feel sufficiently comfortable. Therefore I will be talking less about the keyboard now, or how I am taming it, and instead focus on something I am experimenting with: creating my own alphanumeric...
Since I had my ErgoDox EZ, I have worked not only on my own layout, documenting the larger steps, but I have also created other layouts, for the amusement of myself or others.These layouts are all a little bit crazy, one way or the other...SuperCoder 2000 Ever found yourself in need of entering binary codes rapidly? Ever wanted to use all ten...
For the past week, I have only applied tiny tweaks and bugfixes to my ErgoDox layout, it appears that I have finally arrived to the part of the journey where the core remains the same. Because the changes - apart from a new, experimental layer - are all very small, this time, I will not only talk about the ErgoDox, but also compare it to my...
It has been over a month of receiving the ErgoDox EZ, and it has been my daily driver at work for most of that time, after the first weekend, which I spent with it at home. In this time, I learned a lot about my typing habits, my preferences, and about the keyboard too. In this summary you read now, I will try to not only describe how I use the...
Another week almost gone, and there are a lot of progress to report on the ErgoDox front. I tweaked my layout further, but there are less changes this time, and most of them under the hood: not how the keys are laid out, but how they behave. Mind you, there were still some minor changes here and there.Lets look at the current base layout! There...
I am now using the ErgoDox EZ as my main keyboard at work, and am loving it. Sometimes, when really frustrated, I still switch back to my TypeMatrix, but that is happening less and less. As of day 22, I am consistenlty reaching 40+ WPM, with 95%+ accuracy. But I make a lot of mistakes, so it is time I slowed down, and work on accuracy for a while...
Been using the ErgoDox for almost a week now, and it is starting to get better! I rarely have to consult the printed layout anymore, but I make plenty of errors still, mostly because I am trying to pay attention to type with all ten fingers. The layout itself (pictured below) feels close to final, although only the base and the Hungarian layers...
So I have been playing with the ErgoDox some more, and things are getting better! I have put together a visual aid now, which is a great help. Touch typing is still slow, because I never properly learnt it before. Modifiers are also awkward to use, I may have to relocate them closer to the thumbs - or at least, move SHIFT closer, as that is what...
Today my ErgoDox EZ arrived, I flashed a Dvorak firmware a couple of times, and am typing this on the new keyboard. It's slow and painful, but the possibilities are going to be worth it in the end.That is all. Writing even this much took ages.
For the past fifteen years, I have been tweaking my ~/.emacs continously, most recently by switching to Spacemacs. With that switch done, I started to migrate a few more things to Emacs, an Atom/RSS reader being one that's been in the queue for years - ever since Google Reader shut down. Since March 2013, I have been a Feedly user, but I wanted...
Last Friday, I compiled a list of keyboards I'm interested in, and received a lot of incredible feedback, thank you all! This allowed me to shorten the list considerably, two basically two pieces. I'm reasonably sure by now which one I want to buy (both), but will spend this week calming down to avoid impulse-buying. My attention was also brought...
Even though I spend more time staring at the screen than typing, there are times when I - after lots and lots of prior brain work - sit down and start typing, a lot. A couple of years ago, I started to feel pain in my wrists, and there were multiple occasions when I had to completely stop writing for longer periods of time. These were situations...
Having spent almost a year fine-tuning my latest ~/.emacs.d, an innocent question from a colleague triggered a long chain of events, that led to dropping my entire Emacs config, and migrating to Spacemacs instead. It has a whole lot of interesting features, but for me, the most important one was the mnemonic key bindings: this is something I...
Strange as it may be, it turns out I never wrote about dh-exec yet, even though it is close to being four years old. Gosh, time flies so fast when you're having fun! Since its first introduction, there's been a reasonable uptake in dh-exec use: as of this writing, 129 packages build-depend on dh-exec. One might think this would be a cause for...
At the end of last year, I got a bit more serious about monitoring my own systems, and the effort was well worth it. Yet, there were some parts of the system I had no metrics or information about: for example, there are services running on my systems that get restarted from time to time, which is ok, but I'd still like to know when and how often...
I used to look up to and admire Robert C. Martin, his Clean Coder series taught me a lot, and I enjoyed some of his blog posts, too. But lately, some of the things I read from him made me uneasy, and not in a good way. When I read his latest piece, I felt genuinely sorry for him, and those who follow his advice. "Make the Magic go away" is...
Somebody somewhere had some job doing something for some amount of some kind of compensation. Sometimes this somebody took some route to some house where some others lived too, along with some other things (who may or may not have lived). Of course, some houses change over some time, and some people choose some other route to some different house...
Ever since I redid my monitoring setup, two issues were coming up over and over again: I needed a browser to have a reasonable overview of my systems, and I needed ruby to run riemann-dash. Granted, it is easy to query Riemann from the command-line, and I can even put up a screen or tmux session with watch commands running in its many windows,...
The other day, I wrote a controversial piece about why grepping logs is terrible, the reactions were interesting. I've got some great feedback (thanks!), and there were a lot of hostility too. I've been called incompetent, lazy, stupid and a systemd-fanboy and various other things. By people who didn't read past the second paragraph, no less. But...
To this day, I am surprised at the number of people who complain about the Journal's binary storage format. Having spent years working as a system administrator, and after years of working with and on syslog-ng - in the capacity of maintainer of the Open Source Edition for more than a year -, I am increasingly puzzled about all the hostility...
ApologyAs a twisted turn of fate, I need to start my platform with an apology. Last year, I withdrew my nomination, because my life turned upside down, and the effects of that are still felt today, and will continue to have a considerable footprint for the rest of my life. But this is not what I want to apologise for! I want to apologise because...
I've been using distributed version control systems for a good while, started with TLA back in 2001, when it was still a bunch of shell scripts and was simply called "Arch". I jumped the Git bandwagon quite early too, sometime around May 2005, I believe, though it was only something to test and play with on the side: I didn't migrate my projects...
Recently, I have been taking a new look at my Emacs setup, as I do every once in a while. Between ~/.emacs.d hacking sessions, I research new or interesting packages, and once enough has been bookmarked, I sit down and see how they can improve my environment and workflow. One of the major themes with the most recent update is getting rid of...
For some time, I have been toying with Riemann, and have been gradually moving my monitoring infrastructure over to it. Initially, I used a horrible hacky mess of Riemann, syslog-ng, riemann-tools, and custom scripts. This had multiple issues: from being inefficient, through having way too much Ruby, to being inflexible and messy. I wanted a...
A little more than a year ago, I started working as a syslog-ng OSE developer full-time. That was a tremendously important milestone in my career, as one of the goals I wanted to achieve in life - to work on free software for a living - became a reality. Rocket boots were fired up, and we accomplised quite a lot in the past year, and I'm very,...
For the past decade or so, I wasn't exactly happy. I struggled with low self esteem, likely bordered on depression at times. I disappointed friends, family and most of all, myself. There were times I not only disliked the person I was, but hated it. This wasn't healthy, nor forward-looking, I knew that all along, and that made the situation even...
The Google Summer of Code 2014 programme reached another milestone recently: the accepted proposals were published, and over a thousand students were selected by nearly two hundred mentoring organisations, among them the syslog-ng project. We will be working with four students this year (twice we worked with last year), with more mentors, on a...
Earlier this year, on the fourth of February, Matthew Garrett posted an interesting tweet. The idea of porting Motif to Wayland sounded quite insane, which is right up my alley, so I've been pondering and preparing since. The result of that preparation is a fundraiser campaign, which, if successful, I'll dive deeper into the porting effort, to...
We are happy to announce that we were **accepted** to be a mentoring organisation for Google Summer of Code Google Summer of Code 2014 programme! This year, we applied as the syslog-ng project, independently from the company behind, and we put a lot of effort not just into the proposals, but on the organisation image as well, with a brand-new...
I love Free Software, and the people behind it. Even though I have been a free software user and developer for more than a decade now, there's still more to be amazed at, still more to contribute, and still more to learn. I love the Free Software community, because it never ceases to amaze me. It's not just about the technical side, but the...
I would like to start this post with a huge thank you to Nicolas Dandrimont and Paul Tagliamonte, for their invaluable help and patience while I was venting, rambling and spamming the #hy IRC channel the past few days. I also owe an apology and a thank you for the rest of the inhabitants for the random garbage I poured onto the channel from time...
When syslog-ng 3.5.1 was released, the existence of the syslog-ng Incubator project was already announced, but I did not go into detail as to why it exists, what is in there, how to build it, or how to use it. The documentation that exists on it is almost non-existent, and what does exist, is usually in the form of a commit message and some...
I read a post titled "Free software is NOT Free", and that triggered a few thoughts, which I would like to share here. While the post has some good thoughts, there are points in it which I disagree with strongly. You see, I've been writing free software almost half my life, most of the things I contributed to various projects, and the vast...
I have been suffering from a nasty case of burnout during the past month, combined with some other issues, I was just barely able to function, had no inspiration, nor motivation to do anything. Today marks the end of that period! I finally had enough willpower to sit down and sew new clothes for this website here. I wanted to do that for a while...
I'm proud to announce - two days later on this blog - the result of about eight months of development syslog-ng version 3.5.1! This is the first stable release from the 3.5 branch, the successor of the 3.3 branch, which was originally released earlier this year, in February. This is the second time I oversee a first major release, but it still...
We've been thinking about how to approach the problem of supporting syslog-ng OSE versions, the end-of-life of them, and related issues. I've been maintaining syslog-ng branches for about a year and a half now, and the time and effort required to do that is only becoming clear now that I have a reasonable sample size.There was no clear...
Just as last year, BalaBit applied to become a mentoring organisation for this year's Google Summer of Code, but like the year before, were not accepted. Instead, the openSUSE project was kind enough to give us two slots of their own, similarly to the year before - we are very thankful for this, and this year, both of the projects we took were...
One feature of syslog-ng PE is support for wildcard file sources, meaning you can give it a wildcard, like /var/log/apache/*.log, and it will automatically notice new files being created or old ones disappearing. This is a very useful feature which has been missing from the open source edition, and one that is being worked on, but is far from...
The first alpha of syslog-ng 3.4 was released more than a year ago, and the first stable release earlier this year, development on syslog-ng 3.5 has been going on steadlily since then, with a lot of interesting features and changes pouring in. While the 3.5 release will not bring as many overwhelming changes as the previous two releases did, the...
Like two years ago, I will be at DebConf, due in a week, and like two years ago, I will be giving a tutorial on packaging for beginners. I have a few neat things in store, which will make it worth attending, even if you happen to be past your first few packages.
Continuing my HOWTO series, in this article, I will explore how to set up syslog-ng to process JSON in various scenarios. We will touch the subject of interoperability, and have a look at multiple scenarios, in the hope that readers will find something similar to their own needs. There are many different ways in which one can plug JSON into their...
Zigo posted an article earlier, one which I disagree with strongly. First of all, something that has been in use ever since git was invented is hardly a new fashion. Something that is used by the very same person who invented git and by git itself, is hardly surprising to be found so widespread. Especially not when it is used as an example in...
Half a lifetime ago, somewhere at the end of the last millennia I became a free software enthusiast. On and off, I've been working on Free Software for the past fifteen years - most of them unknown, discontinued by now; a huge part of this work was a hobby: small, infrequent contributions. But it was, and still is, something I enjoy doing,...
I have always deployed this site by hand (using a small script, which I did not commit to git, to rsync it up to my server), but that was becoming a bit of a pain recently, when I wanted to deploy from places where I neither had the script handy, nor a suitable SSH key. So I was looking for alternative options, and since I've recently started to...
When OpenAcademy started, I immediately found it a terrific idea: series of high quality, educational, thought-provoking lectures and talks, for free. A great opportunity both to learn and to teach, to stretch all of our imagination. I enjoyed past events, and this year, gave a talk... and a half, and it was a most enjoyable experience. It wasn't...
I hate Python with a passion, it is a terrible language, and I find it painful to write significant amounts of code in it. It irks me, it makes me upset, slows me down, and there we have a vicious circle. Unfortunately, I do have to work with much more python code than I would like to. I have to suffer through the insanity of significant...
Our small community seems to be growing nicely: on our first meetup, hardly any drinks were consumed, and we nicely fit into the lecture room at BalaBit. On the second meetup, popcorn disappeared before I could blink. On our third meetup, we barely fit into the room. For the fourth, we'll have to move the meetup to a bigger room (the Auditorium)....
It is customary during Debian Project Leader elections to write a rebuttal of the other candidate's platform. However, this is very hard to do this year, as there are a lot of overlaps between platforms, goals and ideas this time around. It is hard to rebute another platform, without also rebuting one's own. So instead of trying to highlight...
Last year, I invited you all to walk the plank with me, to follow me on a road, a road that even I was unsure where it led. I had a vision, I had ideas, but I had little to show for a plan. Even worse, some of my ideas, some of the things I've thought I knew, turned out to be wrong this past year. While my original plan was to pursue the goals I...
I use piwik for web analyitics, and with a recent upgrade to the latest version came page overlays, an amazing tool that reassured my belief that I was doing something wrong. Even though I was more satisfied with the last redesign than with the design before it, I wasn't entirely happy. Something was off, something was making my nerves tingle,...
A couple of days ago, I started on an adventure, which turned out to be not unlike the one a certain Hobbit went on to. While this adventure has long been in the making (unlike his), it was not without suprises, nor without wonders. I had the good fortune of meeting with people I did not expect to see, to see and experience such wonderful events...
We had our first and second meetup of the Budapest Clojure User Group, and I enjoyed them both, even though I spent an awful lot of time preparing for my talk for the second meetup. Quite a lot of people showed up, more than on the first, and that's a good sign! The feedback was better than I anticipated too, so the journey will continue!I don't...
I love Free Software, because I'm a perfectionist, and free software allows me to hone my skills, allows others to critique my work, which in turn allows me to learn a whole lot more - about code, about technologies, about people, about myself. All these are invaluable by themselves, but working with and on Free Software for the past decade...
I'm proud to announce that culminating a year's worth of development, syslog-ng 3.4.1 has been released! This is the first stable release from the 3.4 branch, the successor of 3.3, which was originally released in October, 2011. This is the first time I have the privilege to maintain a branch of syslog-ng from even before its first stable release...
When I switched my site from Octopress to my own creation, I also had to do the design all over. I liked it, but there were a couple of things I wasn't satisfied with, so between two study sessions, I rearranged things a bit, as you can clearly see now. I'll try to summarize the most important changes, and why they were made, if for nothing else,...
We here at BalaBit - being an innovative tech company - are always on the lookout for emerging technologies, and we believe that when an opportunity presents itself to help one of these gain foothold in our very own country, we do our best to support that. For these reasons, and more, we're glad to host the first Budapest Clojure User Group...
A couple of years ago, Peter Gyongyosi wrote a piece titled Make your servers tweet, wherein he demonstrated a syslog-ng destination that can send logs to twitter. The code has been bit-rotting since, yet, the crazy value of the idea remained, so today, driven by an urge to do something silly, I assembled a tool to make my servers tweet,...
Inspired by a recent post from Athos, I recorded a short video too, to see how well my environment fares. My environment and my priorities are much different than his, though, so I'd like to quickly describe how it was all set up.In the beginning...In the beginning, my development machine used to have about 16Mb of memory, and not even a gigabyte...
There are a number of development processes, test-driven, hammock-driven and a whole lot of others. I practiced, and continue to practice some of them, whichever I feel is most appropriate for the task at hand. However, I also found a model that works extremely well for me, and this is what I will present you today: dontcare-driven...
A few months from now, the 18th of February will be an important day in my life: sixteen years before that day, I wrote the first worthwhile poem of my life - there's been a few before that, but none that I'm proud of. Not until this one. On the 18th, I will have spent half my life writing poems (hundreds of them, by now) - and the other half,...
It has been a while ago that I last worked on the LogStore reader API, more than half a year. But the long delay has not been in vain, for I have learned a lot during this time. Today, being in a foul mood, I sat down to work on the library to cheer myself up.There were numerous mistakes I made in the first version of the library, which made it...
When I migrated this site to my own engine, I lost support for Markdown sources, and converted everyting I have to plain old HTML snippets. This worked for a while, but whenever I was writing a post with long links, and only very little formatting, I missed markdown. So I sat down, and added a few dozen lines of code, that when it sees a markdown...
Dark thoughts about Master wall, the Disciple and tea - not necessarily in this order. Enlightenment has many levels, and so has our story: on one hand, it is a spectacular example of a particular way of teaching, one where the disciple can observe, but he's constantly forced to make discoveries on his own. Why that...
A few months ago, I wrote a piece about syslog-ng and disk buffers, wherein I mentioned RabbitMQ, and sounded a gentle call for help. I do not know whether it was that, or something else, but help arrived. A week or so ago, a new destination driver was submitted for review: one that allows syslog-ng to...
A story of enlightenment, Master Wall, a Disciple and tea - not necessarily in this order. A disciple approached Master Wall, and asked: "Master, we have been taught to learn from our peers, and I have strived to do so, yet, have not received Enlightenment. What should I do?" Master Wall, who was tending to his garden at...
A few weeks ago, I decided to cease my involvement in the lumberjack and CEE projects (although, my involvement in the latter was more an interest than involvement), because as it turns out, neither will fulfill my logging needs. In this post, I will try to explain why. When I write a program, I try to pay great...
After the previous incident all seemed well. I did not get contacted again, so the plan worked. Sadly, I have to add a few items to the list posted earlier, as it seems the recruiting business is in desperate need of my sarcastic powers. As a first rule of thumb, when you - the recruiter - mail a prospect, be sure to...
On the eve of the first battle of what later became known as the Dream Wars, people were scared, frightened: facing against uneven odds, and He has not been seen or heard of for days. Panic started to spread. Seeing the enemy fires, their hearts became filled with a sense of imminent destruction. Their own demise. But...
I started working on the personal kanban application I wrote about earlier, there have been a couple of changes regarding the implementation, and a few mockups of the user interface are ready to be showcased. One of the major shifts in design is that the application will not be based on a git-backed storage. Instead,...
The commercial version of syslog-ng, called the Premium Edition offered support for disk buffers for a long long time now. This is something that the Open Source Edition is lacking even now, while there is a clear demand for it, and competitors support something very similar aswell. While I won't go into the...
I have several terribly long TODO lists, and managing them in a sane manner is becoming a very difficult problem. I worked in a kanban-esque style in the past, and it wasn't all that bad (the tool used for it was, though), so recently, partly triggered by a tweet from a collegue I hold in high esteem, I started to look...
I have played with Solaris a few times in the past, but it always ended up in disappointment, after long and cruel battles with trying to get things into shape. Compiling and running syslog-ng on this platform proved to be quite a challenge. Today I gave it another try, and found the OpenCSW project, and ...
This site has a long history. It started out as a database-driven, dynamic thing, based on Django + Zinnia, then it turned into an Octopress-powered statically generated site. Today, I switch again. Today, I praise the power of Enlive, Bootstrap, and Clojure, for they made it possible for me to move...
While available for a week or two already, it took me a while to update my debian project page to include it, but nevertheless, it is done: I am now providing Zorp GPL APT repositories! For the repository URLs, please see the project page, as that will always be kept up to date. Unlike the syslog-ng...
As announced earlier, syslog-ng OSE 3.3 has a new maintainer, yours truly. With this new hat on, I posted a roadmap to the mailing list, which I will not repeat here, not in detail anyway. Being a stable series, there aren't many things I'll change, the major thing is that I will provide a separate patch along...
Early this year BalaBit was considering to open up its LogStore file format, a format used by the premium edition of syslog-ng that supports compression, encryption, secure timestamping and a lot of other goodies. To help further the cause of opening the format, I went ahead and started to implement an API to...
There is a growing interest in getting syslog-ng to log to MongoDB, and there is not a single howto out there that would explain the various bits and pieces of the configuration. For some, reading the source or asking on the mailing list works, for the rest, read on! In this document, I will be talking...
Today, during a teleconference with fellow Lumberjackers, I got reminded that back in Brno, I wanted to write a tiny little library, that works as a drop-in replacement for the syslog() function in libc, but instead of emitting legacy syslog, uses a CEE JSON payload. I spent a few hours at work, and a few hours at...
Dancing on a thin line Life and Death on my sides Below me: the present time Dancing on a thin line A hop, a jump: the crowd cheers as I land Lady Luck gave me another hand Dancing on a thin line, I see An angel, a fairy, the Beauty herself, Her fall into the fiery...
There's an ages old problem with the way Debian buildds build packages: they call the build target, which - by design - builds everything, be that architecture dependent or not. Many of us don't like that all that much, for different reasons. Fortunately, there are reasonable workarounds! There are at least three...
A few simple mistakes you should not make as a recruiter if you're trying to get a positive response out of me (even if that positive response is only as positive as a respectful "No, thank you"): You should not email me at my work address (which is very publicly listed as a work address in multiple places all...
There has been four programming languages (or language families, in case of two) that shaped my career, that changed the way I think, the way I work. These were C+4 Basic, Pascal, C and Lisp. Commodore Basic was my first language, I wrote my first few programs in it, even before I was able to...
syslog-ng 3.3.1 has been announced about an hour ago, and has been tagged for a few days before. Luckily, I already had packages ready, which only needed a little tweak to update to 3.3.1. So packages are now available not only for Debian squeeze and sid, but Ubuntu lucid, natty and oneiric aswell!
Recently, the issue of Contributor License Agreements came up again on various forums, LWN included, when Project Harmony launched in, I think, June, and now The Covenant, a proposal by Bruce Perens appeared. Now, I have a fundamental issue with both approaches... Though, I must say, that I do...
And centuries later when the Angel awoke, her mind tormented by the words that he spoke: I give to you, love, a new life to waste I take from you, your very soul for feast I give to you, eternal life to taste I take from you, every inch of living space Let me tell you one thing, my dear: ...
"You'll see a hundred or more people standing in front of a broken image, wondering who might have stolen their courage to look at the picture beneath." A winter's night it was, when the first rays of the dawn started to pierce through the forest. On the icy lake among the trees, one could almost see a faint...
As of a couple of hours ago, dpatch 2.0.32 has arrived to Debian unstable. This marks my return as maintainer, after six years of absence. To celebrate, the upload closes an impressive number of bugs: 20. However, sad as it may be, I still stick to my opinion about dpatch, which I expressed on a short talk I...
Earlier, on my work blog I mused about a simple Clojure function, that trims a string at word boundaries (more or less), and compared it to Haskell and Python code. Today, I will revisit the same code here, and fix a little bug in it. For reference, here's how the original Clojure function looked like: (defn...
syslog-ng 3.3.0beta2 has been released a couple of days ago, with a ton of fixes since beta1 - it's actually in such a good shape, that I will be deploying it everywhere where I'm not using it already. But for that to work smoothly, I needed Debian packages of it, and for squeeze, not only unstable. So I sat down...
Back in May, I was thinking of repurposing this site. However, it turned out it's better kept, so that I have a place to post things that have no place anywhere else (more on that later - but readers will probably notice the new stuff eventually, anyway). So instead of repurposing, the site was moved from a Django + ...
Every legend has a beginning, and everything that ever existed, that ever began, always comes to an end. Some pass away with fanfare, buried in a timeless lair, some quietly disappear, ingenious and sincere. And so has the Master gone, to places beyond mortal comprehension, his garden left behind to...
In a previous century, I was known to conduct long sessions with an artificial intelligence (a robot, of some sorts), that was hooked up to a network I was frequenting. In the beginning, it just lurked there, listening, learning and observing for months, before it dared say a word. Most often, it was dumb, but sometimes......
Dear Ubuntu / Canonical! I have been slowly but steadily getting disappointed with your distribution. It started with using a color scheme that was just plain ugly, then it evolved to something even more gross. But I could live with that, because I could change it with a few clicks. Then it went through moving...
As of a few hours ago, the bigger part of my afmongodb driver has been merged to the official syslog-ng 3.3 tree! A few things remain to be done, however: Authentication doesn't work. This is due to the underlying client library not supporting it yet. The code is still in the driver,...
During the past couple of nights, I was busy coming up with something that would showcase the power of syslog-ng combined with the mongodb destination, and that is how mojology was born. To sum it up: it's a web based log browser, a reasonably simple one: one can't search, or do advanced filtering (yet!),...
I was contemplating switching over one of the websites I maintain (my brother's) from a PostgreSQL backend to one of these fancy document-stores. Now, I know next to nothing about these, so I started exploring, and on the MongoDB site, I found an interesting article, which praised MongoDB as being wonderful for ...
I'm a lazy person. When I'm at the computer, tinkering with something, I want to get done fast, I do not want to fight with the system, I just want to install whatever tools I need, and start hacking away. For this reason, I strongly prefer installing packages from my distribution, globally, so that they are available to...