CatOps
5.08K subscribers
94 photos
5 videos
19 files
2.57K links
DevOps and other issues by Yurii Rochniak (@grem1in) - SRE @ Preply && Maksym Vlasov (@MaxymVlasov) - Engineer @ Star. Opinions on our own.

We do not post ads including event announcements. Please, do not bother us with such requests!
Download Telegram
Today I stumbled upon an interesting project: Withmarble helps you to learn computer science topics using interactive flash cards.

It also looks like it uses some LLM under the hood to generate certain answers, but this is just a guess.

In any case, the project is very raw: it has only a couple of cases, it has bugs on both mobile and desktop, etc. For example, if you opened a flash card, there is no way to close it and go back to the list.

Still, I think it's a nice idea to teach folks computer science. Maybe, some of you could take this idea and execute it better :D

#programming
👍5
There is a slight disagreement between those who believe that AI is here to save the world from software developers with a job, and those who believe that this is just an advanced autocomplete.

This article provides some arguments to the latter point.

For me, first and foremost, it is interesting insight on the ways how people test new AI models.

P.S. If you are from the optimistic tribe, make sure to check out Den's video (in Ukrainian) about Cursor - an AI-powered editor.

#ai #programming
👍72
A story of debugging OOMs of a Go application in Kubernetes.

Now, I do not agree with the author of this article that the fact that Go is not aware of memory limits is a problem. In my opinion, it works as expected: you don’t want to have environment-dependent runtimes.

However, this article provides some examples of how one can manage Go’s memory utilization and tune garbage collection a little bit. Plus, it has links to articles that describe Go’s garbage collector in more detail, which is also cool.

#go #programming #kubernetes
👍61
Regardless my feelings about Python, it's still a very popular language among the platform people.

So, here is a bundle of Python books by Pearson that I forgot to share with you earlier!

This offer is still valid for 7 days. As usual, you can pay about €25 to unlock the whole bundle.

#books #programming #python
3
​​Seva from UkrOps has started an English version of his blog with the first post about handling concurrency in Bash!

Bash still does a lot of heavy-lifting inside automation tools, task managers, and "CI/CD" systems, as well as for automating mundane ad-hoc tasks. So, you can easily apply ideas from this article in your setup.

#bash #programming
12👍6👎3🔥2
One of the strengths of Go is the existence of default helper tools such as gofmt and goimport. Thus, you don't have to worry about formatting, for example. These tools can also be easily integrated into your editor of choice.

For quite some time now, I have to write Python code in professional setting and an automated import is one of the things I miss the most. There are tools to achieve that, ofc, but still.

Another thing about such helper tools is that we often take them for granted, especially when they are default. But you don't have to!

This article describes on a high level how goimport works. While it is kinda intuitive, it's always nice to see a bit deeper perspective. And if you want to dive even deeper, you can always just read the code yourself.

#go #programming
👍51
How hard could it be to write a calculator app?

This article tells the story of the Android’s calculator app and shows that building a calculator is not as trivial as it may seem.

Honestly, I love articles like this one! They truly remind me why I like engineering.

#programming
👍7
According to DOU, Python is the most popular programming language among the DevOps-related specialists who understand Ukrainian.

Pydantic is a popular library for configuration validation, including the configuration that comes from the environment. However, it can break the unit tests, if the required environment variables are not present.

However, you can create a fixture for your Pydantic configuration that patches the environment, so your tests are isolated. Here's an article that describes, how to do that.

#python #programming
👍6
Today, I'd like to share with you a thing I've worked on for quite some time. Well, the majority of the time I was procrastinating it, but still.

This small project is called Cost Exporter. It's designed to fetch metrics from AWS Cost Explorer API and present them as Prometheus metrics on an HTTP endpoint.

In theory, it's extensible. So, other cloud providers and formats could be added.

It may have some rough edges, since I haven't tested it in real production, only in my test account. Also, this is a classical pet-project: its main goal is to refresh some knowledge and play with some new technologies - not necessarily provide a production-grade solution. Still, I think it may be a useful tool. At least, the idea itself is definitely useful.

Cost Exporter is written in Go, has a Helm chart, everything is stored in GHCR, and automated using GitHub Actions. I have some other ideas on how to improve it, but I cannot guarantee that I do that.

Hope, you'll find this project interesting!

#go #programming #aws #kubernetes
8👀6👍1🔥1😐1
Under daily routine, it's easy sometimes to forget, why we've gotten into the industry in the first place.

This is where pet-projects come in handy. Also, they are great for learning! Unfortunately, the "pet-project" term got a commercialized a bit. However, this article gave me a new term - "toy software"! I'm gonna use it from now on.

There are a few examples of such toy software that the author wrote through the years. Almost all those examples look super-complex to me. However, one need to understand that each of us has different expertise, and thus different things look easy or hard to each of us. I can easily think of a couple of examples of such platform-related toy software one could build. For example, Cost Exporter really took maybe a week, if I don't account for all the procrastination time.

#programming
👍31
A small article about software development in the time of AI -
Writing Code Was Never The Bottleneck
.

As the name suggests, this article is about the fact that although many vendors try to sell their AI coding tools as a "replacement for the developers", the blockers that those tools remove were never the biggest ones.

There are companies that understand that and encourage their employees to do "assisted" development, which in turn can yield great results, if people are not afraid of being fired. What a surprise...

#ai #programming
10
Some time ago, I shared an article from Honeycomb that had a notion of the "durable vs disposable" code. The gist is that there are two fundamental types of code bases: durable (OSes, databases, compilers, etc.) - those that should be predictable and stable; and disposable (PoCs, experiments, etc.).

In her new article, Charity Majors elaborates on this concept. There are some insightful things there. For example, that the cost of software is defined not by how hard is to write the code, but what degree do you need to maintain it. Also:

If I had to guess, I suspect it [writing the code\] won’t be a profession at all so much as a skill set, much like typing or spreadsheets, that any tech-literate modern worker is expected to pick up in order to perform the functions of their job in marketing, sales, product, design, etc.

However

Anything that can be done with disposable code probably will be, because as we all know, durable software is expensive and hard. But disposable software is a skill set; durable code is a profession.

Anyway, this is an interesting read.

#culture #programming #ai
👍1
I like it, when people talk about definitions, especially for some common / widely use terms. The more common a term is, the more one is "afraid" to ask about it. And since we cannot glimpse into other people's minds, we can talk about completely different things using the same words.

Availability Models talks about the definitions of "high availability" - incredibly popular term in computer science! It doesn't examine all the availability models, despite its name. Rather, this article brings up a question: so, what the heck is "high availability" and how can we define that based on our actual needs?

P.S. Also, I didn't know about the PACELC theorem. It always feels so cool to learn something new!

#databases #programming #system_design
3🤔1