Skip to main content

Enable "Last Updated" Docusaurus Dates on Vercel

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Docusaurus provides a powerful feature that displays the last updated time and last updated author for every blog post and documentation page.
However, when deploying a Docusaurus website on Vercel, many developers encounter the same confusing issue:

Every page shows the exact same “last updated” date — or no date at all.

This guide explains precisely why this happens and the exact configuration you must enable on Vercel to make Docusaurus timestamps work correctly.

Why and when to use the Pendulum module in Python

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Pendulum is a Python library designed to simplify working with dates and times, often serving as a more developer-friendly and robust replacement for Python's built-in datetime module. You should use Pendulum whenever your application involves timezone handling, complex arithmetic, or serialization/parsing of date strings, as it provides clear, unambiguous, and efficient methods for these tasks.

Python Pip most useful commands and use cases

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Pip is the standard package installer for Python. It allows you to manage the libraries and dependencies needed for your projects. Mastering a few core commands can significantly streamline your Python development workflow.

Switching Python Versions: Comprehensive Guide

· 6 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Managing the active Python version is critical for development, especially when working on projects with different dependencies or legacy requirements. The methods vary significantly depending on whether you are using a dedicated version manager, a package manager, or system-level tools.

Git Detected Dubious Ownership in Repository Error

· 6 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

The Git error message "detected dubious ownership in repository" is a modern security feature introduced in Git version 2.35.2 (and backported to several older versions) [1].

This error occurs when you attempt to run Git commands (like git status, git pull, or git commit) inside a repository whose files are owned by a different user ID (UID) than the one currently executing the Git command.

The primary purpose is to prevent privilege escalation or arbitrary code execution when working on shared systems or filesystems that allow one user to create a malicious .git/hooks file that another user (especially one with higher privileges) might unknowingly execute [2].

All Possible Ways to Remove Timezone Information from a Python `datetime` Object

· 7 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

A Python datetime object is considered timezone-aware if its tzinfo attribute is set, and timezone-naive if tzinfo is None. Removing timezone information, or "making it naive," is the process of setting this attribute to None.

The key consideration when stripping the timezone is which time value you want to keep: the time as it was originally represented, or the time converted to a standard reference (like UTC or local time) before stripping the timezone.

Poetry Fails to Install Multidict: Pyenv, Compilers, and Wheels

· 6 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

If your poetry install command is failing specifically when trying to install multidict (or packages that depend on it, like aiohttp or discord.py), the root cause is almost always a failure to compile the optional C extensions for the package.

Since multidict offers pre-compiled binaries (wheels) for standard Python versions on common operating systems, a compilation error indicates one of two things: the wheel is unavailable for your specific setup, or the local build tools are missing. Your use of pyenv often exacerbates the issue by complicating the environment setup.

Authorization in the App Layer: Using Casbin Flask Middleware

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

If your deployment environment doesn't support a service mesh like Envoy or an external authorization server (common in simpler, monolithic, or traditional hosting setups), you can certainly move the Casbin authorization check into your Flask application using middleware or decorators.

This approach centralizes authorization logic within the Python code, relying on dedicated extensions like flask-authz or Flask-Casbin.

SQLite Adapter for Casbin: Local Policy Storage Guide

· 5 min read
Serhii Hrekov
software engineer, creator, artist, programmer, projects founder

Using SQLite as the database adapter for Casbin policy storage is the ideal solution for local development, unit testing, and small-scale applications due to its lightweight, file-based nature.

In the Python Casbin ecosystem, this is achieved using the casbin-sqlalchemy-adapter, as SQLAlchemy natively supports SQLite without needing separate driver installations [2].

Looking for more content?
Hrekov Blog contains 165 articles. Browse the blog archive or Explore the full timeline.