RSSAmplifier

Blog

Tomislav's Blog

Recent content on Tomislav's Blog

tmarice.devRSS feed ↗13 posts

Latest posts

Nix ❤️ Python: Maybe You Don't Need Devcontainers After All

This talk was held at Python meetup Zagreb on February 10, 2026 . Previous Next / [pdf] View the PDF file here .

The Illusion of Simplicity

I really like Django. I would pick Django over any other option for setting up a website regardless of expected complexity. In my opinion, if you fully embrace Django, it will allow you to focus on the product and not fight an uphill battle against the computer. I do a bit of freelancing on the side, and it saddens me that I rarely see Django projects in the wild. Wherever I join and I’m…

Vim Mandates >> AI Mandates

Intro The internet is full of articles on CEOs declaring their companies “AI-first”, in the name of increasing efficiency. After all, why have 50 engineers if you can have 5 managing a swarm of AI agents? I am a heavy user of GenAI assistive tools and they truly do help me achieve results faster. But another thing that helps you achieve results faster is not having to fight an uphill…

Configuring PostgreSQL server parameters on GitHub Actions

If your project is not fully containerized, but you still want to use PostgreSQL in your GitHub Actions workflow, you can use the services feature of GitHub Actions to easily spin up a PostgreSQL container. However, the services functionality restricts what you can configure declaratively in the workflow file – namely you cannot configure the PostgreSQL server parameters that you would…

Taskmaster: Solving Deployment Headaches Caused by Long-Running Celery Jobs

This talk was held at Python meetup Zagreb on June 11, 2025 . Previous Next / [pdf] View the PDF file here .

On Usable Documentation

Having no documentation is often less harmful than having inaccurate documentation. Like code, documentation degrades over time. What was once accurate may now be obsolete. And practices we once ignored might now be part of our daily workflow. Unless maintaining documentation is an intentional process, it will rot, maybe beyond saving. In this article I’ll outline a few guidelines that…

Handling Csrf Login Errors Gracefully in Django

What’s CSRF? Cross site request forgery is a type of attack where a malicious website tricks a user into performing actions on another site where they’re authenticated. This is usually done by embedding a form in the malicious site, and submitting it to the target site. An example of this would be a card game website where, when you hit the “Play” button, it sends a POST…

Better Living Through Optimized Django

Every engineer that loves Django and has a blog has at least one of these posts. Django’s ORM is excellent, but given enough time it’s easy for approaches that weren’t mistakes to grow into mistakes This is a great thing, because it usually means your company didn’t go bankrupt, you’re still here and can fix things, and the company is doing well because the scale…

On Python's @property Decorator

@property decorator is an excellent way to reduce the readability of Python code. It obfuscates a perfectly good function call and tricks readers into thinking they’re performing a regular attribute access or assignment. Unless there’s a really good and explicit reason to do this, don’t. List of Good and Explicit Reasons: Refactoring That’s pretty much it. If you need to…

Why I Always Assign Intermediate Values to Local Variables Instead of Passing Them Directly to Function Calls

Instead of def do_something (a, b, c): return res_fn( fn(a, b), fn(b), c ) I do: def do_something (a, b, c): inter_1 = fn(a, b) inter_2 = fn(b) result = res_fn(inter_1, inter_2, c) return result The first version is much shorter, and when formatted properly, equally readable. But the reason I prefer the second approach is because all intermediate steps are saved to local variables. Exception…

Using Jupyter Outside of Data Science

This talk was held at Python meetup Zagreb on October 10, 2023 . Previous Next / [pdf] View the PDF file here .

Hacking Analytics With Postgres

This talk was held at Python meetup Zagreb on June 14, 2022 . Previous Next / [pdf] View the PDF file here .

Projects

Here are some of the projects I’ve worked on: Devenv.sh Raycast Extension Browse devenv.sh docs from the comfort of your Raycast command line. Fast Masked Mail Creator An unofficial Chrome extension for the easy creation of new, single-purpose Fastmail masked emails. django-timed-tests Django test runner that pinpoints the slowest tests with precise timing reports, enabling faster, more…