Last week I was helping a friend of mine to get one of his new apps off the ground. I can’t speak much about it at the moment, other than like most apps nowadays it has some AI sprinkled over it. Ok, maybe a bit maybe more just a bit – depends on the way you look at it, I suppose. There is a Retrieval-augmented generation (RAG) hiding somewhere in most of the AI apps. RAG is still all the RAGe – it even has its own Wikipedia page now! I’m not sure if anyone is tracking how fast a term...| Cybernetist
Intro Last week I was catching up with one of my best mates after a long while. He is a well-recognised industry expert who also runs a successful cybersecurity consultancy. Though we had a lot of other things to catch up on, inevitably, our conversation led to AI, LLMs and their (cyber)security implications. I’ve spent the last couple of months working for early-stage startups building LLM (Large Language Model) apps, as well as hacking on various silly side projects which involved interac...| Cybernetist
I heard about The Bear TV show from my brother a few times over the past couple of years but I never really felt like watching it. A TV show about a frantic family-run bistro in Chicago? Color me sceptical. Don’t get me wrong, I’ve got nothing against the catering or hospitality industry! My brother is a restaurant manager and I spent a fair amount of my youth cleaning dishes at many dubious establishments over a few summers before I learnt to make money by doing things with computers.| Cybernetist
Throughout my career, I’ve learnt, usually the hard way, the importance of getting the foundations of whatever I was working on right. Or at least as right as possible. I learnt how fundamental it is for setting your project — and by proxy, your team — up for success. I’d argue it’s one of the most important things you should pay attention to. Getting the basics right is notoriously hard due to the inevitability of changing requirements, external factors, etc.| Cybernetist
I have been aware of Cuelang (CUE) pretty much since the early stages of its development. It always seemed to me the language had the potential to solve a lot of problems in the ocean of YAML which we found ourselves drowning in the Cloud Native ecosystem. CUE excels in validating data against strictly defined schemas and is equally capable of generating code for data models from them. These are wonderful features, though I hadn’t found the perfect application for them in any of the project...| Cybernetist
It all started as a joke. I was in a group chat with a few of my friends and we were talking about football (soccer for the American readers). I entered the chat during a mildly heated discussion about the manager of a team one of my friends supports. It was going on for a bit while with seemingly no end in sight when it occurred to me that I could just as well clone my friends’ voices and pit them against each other by backing them with LLMs, and I’d probably not see much difference in t...| Cybernetist
I have been busy hacking since I got back from my long holidays. I didn’t miss computers while travelling around the world. Not for a second. When you hike up a volcano and engorge yourself in the beautiful views only this planet can reward you with it’s hard to think of computers let alone hacking. But now that I’m back and re-engaged my hacking mode I’ve gained a whole new appreciation for what the act of building software gives me.| Cybernetist
Update: 19/04/2024: read at the end of the post for more info. I have been trying to pick up Rust again recently. It’s been a bit of a slow burn at the beginning but I think I’m finally starting to feel the compounding effects kicking in. Maybe it’s just my brain playing a trick on me, but I’m feeling at much more ease when writing Rust now than I was a few weeks back.| Cybernetist
My name is Milos. I’m a software engineer currently living in London, UK. I graduated from Czech Technical University in Prague with Masters degree in Technical Cybernetincs, which is a fancy word that encompasses machine learning, control engineering and artificial intelligence. I’m one of the authors of a small book about Docker. I started Kubernetes London Meetup, currently one of the largest Kubernetes Meetups around the world, though I stepped down as an organiser lsat year.| Cybernetist
I am always open to new interesting opportunities. My current areas of interest are Go, AI agents and Rust. But I enjoy all aspects of backend engineering and I’m no stranger to frontend either. If you do anything interesting in those areas we should work together! Drop an email to my GitHub email address. You can read about me here and find out about my OSS work on my GitHub.| Cybernetist
Update 12/04/2024: Read at the end of the post for more info. I have been hacking on AI agents recently for both fun and profit as part of the work I’m doing for one of my clients. They’re mostly text-to-speech (TTS) agents leveraging LLMs for generating text which is then turned into voice by a trained TTS model. As you [probably] know, maintaining conversation with LLMs over a longer period of time requires maintaining the conversational context and sending it back to the LLM along with...| Cybernetist
Last year I wrote about the superpowers text embeddings can give you and how I tried using them to compare the song lyrics of some music artists. Though the results failed to paint the picture I hoped for – this was due to the methodology, or rather lack thereof – it made me appreciate the importance of simple open source tools (OSS) in the currently booming AI/LLM space. To get to the point of displaying the embedding projections in the blog post I had to jump through some hoops and comb...| Cybernetist
This blog post is a collection of advice or rules I’ve learnt to live by as a software engineer. It’s an accumulation of experiences I’ve gained through working for software organizations of various sizes. Most of the advice in this post is aimed at software engineers, but some may be applicable to other roles and industries. Understand the problems you are solving This isn’t a revolutionary idea. But the very sad reality of life is that it still hasn’t been internalised by so many ...| Cybernetist
UPDATE: 4th January, The way out of burnout The beginning of 2021 marked the point when some of us were bracing with hope for the year that lied ahead. The year that we hoped to be “better” than the one that we were leaving behind. Little did we know we should have braced for impact instead. For me personally, if 2020 was bad enough then 2021 wiped the last shreds of whatever mental resilience or energy I had left in me.| Cybernetist
Recently I had to write a fair amount of Go code which interacts with Active Directory (AD) for one of my clients. AD uses Lightweight Directory Access Protocol (LDAP) [1] for client-server communication. LDAP is a very mature and powerful protocol to interact with directory services, though some of my friends argue that it’s a bit of a relic of past at this point. I disagree with this sentiment, but my explanation why would probably take a whole another blog post.| Cybernetist
Over the past few months, I have been rekindling my interest in graph theory. I’m not quite sure what has caused this shift in my mind as I didn’t play with graphs too much since I graduated many moons ago, besides the occasional interview preparation. Maybe it was my reading about all the new graph databases that have come to existence over the past few years, or maybe it was my interest in the Graph Neural Networks which also seem to have (re)gained a lot of attention in the research co...| Cybernetist
On 26th March Kubernetes London Meetup planned to host another event. It was supposed to be our 5th birthday so we had worked hard to make the event, to quote Kelsey Hightower, “Dope”. Unfortunately, it wasn’t to be as the coronavirus disrupted all levels of public life in a way our generation never experienced before. This blog post is the long version of the short talk I wanted to give at the event to walk through some of the most memorable experiences I’ve had in the past 5 years a...| Cybernetist
If you happen to be one of the lucky people living in London you couldn’t miss we’ve had a bit of a sunlight crisis [not just recently]. Instead of the usual vitamin D deficiency which we are used to being brought to our attention during regular health checks things have been a little bit worse than that. First we got a visit by storm Ciara which was then shortly followed by storm Dennis.| Cybernetist
Just like many Go developers out there, I’m a big fan of Go standard library. Over the past few years I’ve been hacking on Go, I’ve discovered some real gems that not only made my life as a developer easier (no need to maintain unnecessary code), but they also made my code considerably more readable for others to follow. The last time I blogged I talked about how you can leverage Go standard library to generate weighted random draws.| Cybernetist
WASM: universal application runtime Last summer, fresh off my last freelance gig, I was catching up with my friend Asim, the founder of the widely popular microservices company, Micro at one of our favourite coffee shops in London. We would end up meeting almost every week talking about the presence and the future of technology. But that day our conversation turned into something that we had not talked about for a long time: Web assembly (WASM).| Cybernetist
When working on my last project I needed to find a way to draw a random number from a list based on some weight assigned to it i.e. given a list of numbers each of which has a weight assigned to it, I had to find a way to draw a number from the list based on the weight. The numbers which have higher weight assigned to them should be more likely to be drawn than the numbers with lower weights.| Cybernetist
Before the end of the last year I went to see a movie made by one of my favourite movie directors, Damien Chazelle. The movie is called First Man and it tells the story of the journey of the first man on the Moon. I am also a bit of a space nerd, so my expectations were sky high. I was happy to find out the movie delivered on its promise.| Cybernetist
This summer I spent quite a bit of time speaking to various people about “intelligent” Edge computing. I put double quotes around the word intelligent to avoid the wrath of the thought leaders on the internet as they fight each other over what intelligence is and what is not. The more I talked to people the more I was realizing the possibilities and opportunities the edge computing opens up for the future: “injecting” intelligence into dumb physical objects seems akin to injecting “...| Cybernetist
Tensorflow conditionals and while loops Recntly I found myself needing to implement more advanced control flow in some models I have been hacking on in my free time. In past I never really needed any graph conditionals or loops or any combinations thereof, so I had to dive into documentation and read up on them. This blog post covers tf.cond and tf.while_loop control flow operations and was written to document and share my experience learning about them.| Cybernetist
As I continue to explore the realm of Artificial Neural Networks (ANN) I keep learning about some really cool types of neural networks which don’t get much attention these days. Many of these networks have not found much practical use in the “real world” for various reasons. Nevertheless, I find learning about them in my free time somewhat stimulating as they often make me think of some problems from a different perspective.| Cybernetist
I haven’t blogged here for over 2 years. It’s not that I had nothing to say, but every time I started writing a new post I never pushed myself into finishing it. So, most of the drafts ended up rotting in my private Github gists. Although my interests have expanded way beyond the Linux container space, my professional life remained tied to it. Over the past two years I have been quite heavily involved in Kubernetes (K8s) community.| Cybernetist
Couple of months ago I came across a type of Artificial Neural Network I knew very little about: Self-organizing map (SOM). I vaguely remembered the term from my university studies. We scratched upon it when we were learning about data clustering algorithms. So when I re-discovered it again, my knowledge of it was very basic, almost non-existent. It felt like a great opportunity to learn something new and interesting, so I rolled up my sleeves, dived into reading and hacking.| Cybernetist
My rekindled interest in Machine Learning turned my attention to Neural Networks or more precisely Artificial Neural Networks (ANN). I started tinkering with ANN by building simple prototypes in R. However, my basic knowledge of the topic only got me so far. I struggled to understand why certain parameters work better than others. I wanted to understand the inner workings of ANN learning better. So I built a long list of questions and started looking for answers.| Cybernetist
This is the second post of the series about Principal Component Analysis (PCA). Whilst the first post provided a theoretical background, this post will discuss the actual implementation of the PCA algorithm and its results when applied to some example data. Theory Recap In the first post we learnt that PCA looks for a vector basis that can express the analysed data in a better (less redundant) way, whilst retaining as much information from the original data as possible.| Cybernetist
This is the first of the two post series about Principal Component Analysis (PCA). This post lays down important knowledge bricks that are needed to understand the core principles of the PCA algorithm. The second post will discuss the actual implementation and its results by applying it to various data sets. Motivation The world is becoming more data driven than ever before. We collect large amounts of data from arbitrary sources.| Cybernetist
Alert! This is another rant blog post! I promise the next one will be more technical :-) Rocket launch me some opinions Past few days I’ve been playing around with Rocket, the new container runtime by CoreOS. Quite a few people have asked for my opinion so I figured I would put it into a blog post. I haven’t planned on publishing it any time soon, but few blog posts I have come across recently have prompted me to put off the original post and write a different one first.| Cybernetist
Disclaimer: I do not work for Docker nor for any company whose business is tied to Docker in any way Recently there has been a lot of discussions about the future of Docker networking in various communication channels. It is due to hugely increased Docker usage over the past year. Users are now realising Docker’s networking limitations which are becoming more apparent. The truth is, and I’m sure we can all agree on this, the current networking capabilities of Docker are not sufficient for...| Cybernetist
2014-07-30 22:35 Update: I’ve updated the post with the link to netlink RFC. I’ve also replaced references to golang with Go programming language on majority of mentions in the article. I do agree with the people in discussions on the topic of Go/golang, but I’ve adpoted golang in my vocabulary as that’s my standard search term on Google for the information about Go language, hence the abundance of the word golang in the original post.| Cybernetist
Daily Dilemma Recently I’ve been finding myself in various conversations about Docker and Linux Containers (LXC). Most of the time the conversations eventually end up with one and the same question and that is whether we should run containers in production. Initially this post had a few paragraphs where I philosophised about readiness of the technology, but I’ve deleted those paragraphs now as the attention dedicated to containers in past year has been nothing short of amazing and more an...| Cybernetist
Update 9th January, 2024: Changed the title to “Fun With AI Embeddings in Go” Before the end of last year, I visited San Francisco (SF) for a few weeks. It felt great meeting some old friends and ex-colleagues face-to-face after a long hiatus. There is something incredibly refreshing about being in the same room with the folks you’ve spent chatting to so much time over the past few years on Zoom or Slack.| Cybernetist