David Majda

Software engineer and engineering manager with a passion for programming languages, web technologies, software craftsmanship, and sustainability.

David Majdadmajda
2025-12-30

@xChaos To je tak vše, co mě k tématu teď napadá. Kdyby tě @zoul zajímalo něco dalšího, klidně řekni.

David Majdadmajda
2025-12-30

@xChaos @zoul Co se práce týče, můj pocit je, že lidí, co by chtěli práci v Rustu, je víc než nabízených pozic (možná i řádově). Hodně z nich je navíc ve cryptu, HFT a embedded vývoji, což třeba pro mě nejsou zajímavé oblasti (možná krom té poslední). A typicky je vyžadováno pár let zkušeností.

Každopádně je myslím dobré vědět, že se okolo Rustu v Česku vytvořila celkem živá komunita:

rustlang.cz/

David Majdadmajda
2025-12-30

@xChaos @zoul U ownershipu je mechanika také v principu jednoduchá, jde spíš o to zvyknout si na nutnost nad tím uvažovat a na různé patterny. Chvíli trvá, než to člověku do sebe začne zapadat (mě v tomto třeba hodně pomohlo projít si v Rustu Advent of Code).

Pak je ještě třeba počítat s tím, že Rust je velký, produkční jazyk a jen málo lidí ho myslím zvládne úplně (a ani to není potřeba). To je ale stejné jako u Javy, C++ apod.

David Majdadmajda
2025-12-30

@xChaos Nemyslím, že by Rust byl zas tak složitý na naučení – alespoň do úrovně, kdy je v něm člověk schopen psát slušný kód. Jasně, nejde to tak snadno jako třeba Python, ale pro někoho zkušeného jako @zoul to není nic nezvládnutelného.

Vzato kolem a kolem, oproti jiným běžným jazykům jsou v něm nové enumy, traity a koncept ownershipu (borrow checker), přičemž ty první dvě věci jsou typu „aha, pěkné, chápu, dál“.

David Majdadmajda
2025-12-04

@honzajavorek @encukou Nice! However I think I’ll pass this one (way too many distractions already).

David Majdadmajda
2025-12-04

By the way, thanks @honzajavorek for the push! (I was already thinking about participating before, but hearing you’d discussed it with Jana was the final nudge I needed.)

David Majdadmajda
2025-12-04

I’m posting my solutions on GitHub:

github.com/dmajda/advent-of-co

I’m not entirely happy with days 1 & 2 — I spent too much effort on error handling and resorted to a brute-force algorithm on day 2. But I course-corrected on day 3 and ended up with a solution I’m pretty comfortable with.

Let’s see how the next days go.

David Majdadmajda
2025-12-04

I’ve decided to participate in Advent of Code this year, writing my solutions in Rust. It’s a good way to practice the basics of the language and keep my Rust knowledge fresh. Plus, the puzzles are fun!

David Majdadmajda
2025-12-01

The timeline is made using Vega, a declarative language for describing visualizations. If you’re curious, the code is available on GitHub:

github.com/dmajda/timeline

David Majdadmajda
2025-12-01

The timeline includes only languages I learned well and used substantially. I omitted languages I used only for one-off projects and periods when I used a language only occasionally.

Perhaps surprisingly, the language I used for the longest period is JavaScript. I first learned it in 1999 and used it more or less continuously ever since.

David Majdadmajda
2025-12-01

I’ve used a lot of programming languages in my life, so I went through my archives and created a little timeline — mostly for fun and for my own reference.

A timeline of programming languages I’ve used in my life
David Majda boosted:
2025-11-24

New blog post: "Fifty Shades of OOP." Put in a surprising amount of research for this one!

lesleylai.info/en/fifty_shades

David Majdadmajda
2025-11-21

@xChaos No, viděl jsem ho až po tom, cos o těch žralocích napsal. A o nich a kabelech jsem předtím taky neslyšel (nebo to už dávno úplně zapomněl) 🙂

David Majdadmajda
2025-11-21

@xChaos Jo, ekvivalent to v zásadě je, jen jim zde typový systém dost jasně říkal, že to možná není dobrý nápad.

David Majdadmajda
2025-11-21

@xChaos 😂

David Majdadmajda
2025-11-21

@xChaos Správné řešení by zde bylo poslat chybu chybu dál (signatura funkce s tím kódem to zdá se umožňuje) nebo alespoň místo .unwrap() použít .expect(msg), který dělá to samé, ale při ukončení vypíše předanou chybovou hlášku. V logu by tak hned viděli, kde je problém.

Všechno tohle je „Rust 101“, ví to každý, kdo s Rustem dělá. A při code review by .unwrap() v produkčním kódu měl být důvod se zastavit a prověřit, zda je opravdu na místě. Já bych ho tady určitě nepustil.

David Majdadmajda
2025-11-21

@xChaos Je to malinko jinak 🙂

Když koukneš na poslední řádek toho, kódu, je tam volání .unwrap(). To je způsob, jak v Rustu říct „jsem si jistý, že zde nedojde k chybě a pokud přece jen jo, zpanikař (ukonči program)“. Kdyby tam to volání nebylo, ten kód by neprošel typovou kontrolou.

Někdo tam ten .unwrap() explicitně napsal (namísto řádného ošetření případné chyby) a někdo mu to nejspíš při code review schválil. Obojí je podle mě problém.

David Majdadmajda
2025-11-21

@xChaos No, v Rustu tam na rozdíl od mnoha jiných jazyků to „neodchycení“ musíš explicitně napsat. Když to neuděláš, kompilátor ti řekne, že máš problém. Přijde mi jako problém, že takový kód prošel do produkce.

Každopádně chyby v kódu se prostě občas dít budou a myslím, že má pravdu tento komentář:

news.ycombinator.com/item?id=4

David Majdadmajda
2025-11-05

Last week, a speaker at the Prague Rust meetup created his slides using presenterm. It looks like a nice tool! I especially like how the terminal format constrains visual decisions, yet the result still looks great.

I think I’ll use it for my next technical talk.

mfontanini.github.io/presenter

David Majdadmajda
2025-10-01

@xChaos Jako jo, podobnost tam je.

Client Info

Server: https://mastodon.social
Version: 2025.07
Repository: https://github.com/cyevgeniy/lmst