<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:base="https://hippou.cz/">
    <title>Radek Dobrovolný</title>
    <subtitle>Software Developer | Data Engineering | Web Applications | Python | Django | AWS</subtitle>
    <link href="https://hippou.cz/feed.xml" rel="self"/>
    <link href="https://hippou.cz/"/>
    <updated>2026-02-07T00:00:00Z</updated>
    <id>https://hippou.cz/</id>
    <author>
        <name>Radek Dobrovolný</name>
    </author>
    <entry>
        <title>Šuplík</title>
        <link href="https://hippou.cz/post/drawer.html"/>
        <updated>2026-02-07T00:00:00Z</updated>
        <id>https://hippou.cz/post/drawer.html</id>
        <summary>Digital drawer for ideas</summary>
        <content type="html">&lt;h1&gt;Drawer: Digital drawer for ideas&lt;/h1&gt;
&lt;h2&gt;&lt;a href=&quot;https://suplik.hippou.cz/&quot;&gt;suplik.hippou.cz&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;It was just after eight in the evening and I felt like creating something. I fooled around with ChatGPT for a while, asking if it could suggest a topic for a two-hour project, but nothing seemed interesting. However, it led me to realize that I often come up with ideas, nice little things, and then forget about them.&lt;/p&gt;
&lt;p&gt;So I thought of creating a digital &lt;a href=&quot;https://suplik.hippou.cz/&quot;&gt;drawer&lt;/a&gt; where I could toss that idea (and probably never return to it). Sure, it would certainly be enough to create a page for it in Notion, notes on my phone, or a document on Drive. But I liked the idea that it would be hanging publicly and that anyone could toss an idea into the drawer. It&#39;s not about practicality, it&#39;s about the feeling.&lt;/p&gt;
&lt;p&gt;It was a bit more diverse on the technical side, where I wanted to try new things. I wanted to solve it as a simple web app that stores data. I was looking for whether there are online hosted databases where you can store data for free for mini-projects. I then wanted to host the web app itself as usual on GitHub Pages.&lt;/p&gt;
&lt;h2&gt;Supabase&lt;/h2&gt;
&lt;p&gt;I found &lt;a href=&quot;https://supabase.com/&quot;&gt;Supabase&lt;/a&gt;, Postgres hosting for developers, where you get a database, API, and authentication and all this is available in the free tier. Cool. Registered and created a table for ideas. It actually had just one meaningful column with text and then only ID and creation time. Then it was necessary to set what operations could be done via the API (load records, add new).&lt;/p&gt;
&lt;p&gt;Then I coded the web app with Claude: connection to the database, data loading, output to web, and CSS styles. I was surprised that the entire website was created practically with one prompt and then we just fine-tuned. In the configuration, it was necessary to set the URL of the remote database and API token.&lt;/p&gt;
&lt;p&gt;Finally, I had a deploy manifest generated for GitHub and went live. The whole project was done in less than two hours, which was my intention. Joy.&lt;/p&gt;
&lt;h2&gt;PocketBase&lt;/h2&gt;
&lt;p&gt;About two weeks later, however, the database in Supabase paused due to inactivity. Honestly, I don&#39;t really know what exactly that &amp;quot;inactivity&amp;quot; means – every other day I added some idea to the &lt;a href=&quot;https://suplik.hippou.cz/&quot;&gt;Drawer&lt;/a&gt; or at least viewed them, so there was some minimal traffic there. OK. The database could be unpaused and the free tier could continue without problems.&lt;/p&gt;
&lt;p&gt;But at that time I was playing with my home server, so I decided to try to redo it. I came across the &lt;a href=&quot;https://pocketbase.io/&quot;&gt;PocketBase&lt;/a&gt; project, which is a really cute wrapper over SQLite that turns it into an instant backend. PocketBase is still very much in development, so I&#39;m curious what features will be added. However, it doesn&#39;t have an official Docker image yet. Fortunately, the documentation describes how to write a Dockerfile and build the image yourself, which I did.&lt;/p&gt;
&lt;p&gt;The installation wasn&#39;t completely smooth, but it worked and I got PocketBase running on my server.&lt;/p&gt;
&lt;p&gt;Then it was easy. Export data from Supabase, upload it to PocketBase (actually, the import didn&#39;t work for me, so I copied those eight rows manually), set public access, adjust the database connection in the code (one prompt for Claude) and deploy. It works. Joy again.&lt;/p&gt;
&lt;h2&gt;Enjoy&lt;/h2&gt;
&lt;p&gt;So if you ever get an idea that you want to put in a drawer, feel free to use &lt;a href=&quot;https://suplik.hippou.cz/&quot;&gt;Drawer&lt;/a&gt;. And if you&#39;re bored and looking for inspiration, you can look into the &lt;a href=&quot;https://suplik.hippou.cz/&quot;&gt;Drawer&lt;/a&gt; and maybe start something.&lt;/p&gt;
&lt;p&gt;You can find the project repository on &lt;a href=&quot;https://github.com/RadekDobrovolny/suplik&quot;&gt;GitHub&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Happy creating!&lt;/p&gt;
</content>
    </entry>
    <entry>
        <title>Crossing Boundaries</title>
        <link href="https://hippou.cz/post/crossing-boundaries.html"/>
        <updated>2025-03-24T00:00:00Z</updated>
        <id>https://hippou.cz/post/crossing-boundaries.html</id>
        <summary>Digital Artifact: Workshop at KISK Winter School</summary>
        <content type="html">&lt;h1&gt;Digital Artifact: Workshop at KISK Winter School&lt;/h1&gt;
&lt;p&gt;&lt;em&gt;At the KISK Winter School, I led a workshop where we attempted to create a shared digital artifact – a memory that would survive both physical time and space. Did it work? And what happened during one intense hour and a half at Nová Cvernovka?&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Ideation&lt;/h2&gt;
&lt;p&gt;In mid-February 2025, I attended an event organized by KISK students – the first Winter School, a community event entirely realized by students, with content brought by participants themselves.&lt;/p&gt;
&lt;div class=&quot;polaroid left&quot;&gt;
    &lt;img src=&quot;https://hippou.cz/assets/images/posts/zs-prostor.jpg&quot; alt=&quot;main hall&quot; /&gt;
    &lt;span&gt;main hall&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;The event took place in Bratislava at the creative and cultural center &lt;a href=&quot;https://novacvernovka.eu/&quot;&gt;Nová Cvernovka&lt;/a&gt;. I was eager to soak up the atmosphere of this environment, take a trip, meet new people, and get a glimpse into the current mood and topics of students. And in the end, it was really great.&lt;/p&gt;
&lt;p&gt;During registration, you had to immediately say what you wanted to contribute to the program. The options were lectures, workshops, and similar formats. I wrote a somewhat general answer because I didn&#39;t know what the initial conditions would be – mainly time and number of people. Eventually, we agreed that I would do a workshop. Specifically: we would try to create a digital artifact together.&lt;/p&gt;
&lt;p&gt;We ended up agreeing on quite challenging parameters. Time allocation of an hour and a half, about 15 participants. &lt;em&gt;Phew.&lt;/em&gt; My ideal scenario was half the number of people and more than two hours. Oh well – it would be a challenge and it would be intense.&lt;/p&gt;
&lt;h2&gt;Theme and Anchoring&lt;/h2&gt;
&lt;p&gt;I really liked the claim of the whole event: &lt;em&gt;crossing boundaries&lt;/em&gt;. My goal was to create some digital work during the workshop – a memory of this event – that all participants would contribute to.&lt;/p&gt;
&lt;div class=&quot;polaroid right&quot;&gt;
    &lt;img src=&quot;https://hippou.cz/assets/images/posts/zs-prezijeme.jpg&quot; alt=&quot;Physical artifact&quot; /&gt;
    &lt;span&gt;Physical artifact&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;But first, a bit of theory. I tried to introduce what digital artifacts actually are and show a few examples. We talked about how we&#39;re operating at the intersection of digital creation, art, programming, and generative art – and that the boundaries between these areas are often quite blurred. I didn&#39;t want to get bogged down in debates about whether it&#39;s art or not. That wasn&#39;t important to me at that moment. I perceive digital artifacts as a tool for self-expression.&lt;/p&gt;
&lt;p&gt;I mentioned the &lt;a href=&quot;https://genuary.art/&quot;&gt;Genuary&lt;/a&gt; challenge, the aggregator &lt;a href=&quot;https://theuselessweb.com/&quot;&gt;The Useless Web&lt;/a&gt;, and introduced some creators on Instagram. We had about 15 minutes for the theoretical introduction – I tried to convey as much as possible, but in this time it might have seemed a bit convoluted.&lt;/p&gt;
&lt;h2&gt;Roles and Division&lt;/h2&gt;
&lt;p&gt;Then I presented what we could try to create. I wanted to work with the p5.js library, which I briefly introduced: we have a canvas on which we can create, and then place the output on the web. The goal was to try to express the atmosphere of the winter school and preserve it in the digital world – something that might evoke a feeling even in five years.&lt;/p&gt;
&lt;div class=&quot;polaroid left&quot;&gt;
    &lt;img src=&quot;https://hippou.cz/assets/images/posts/zs-rajcata.jpg&quot; alt=&quot;vegetables&quot; /&gt;
    &lt;span&gt;vegetables&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;I had prepared small subgroups that participants divided into.&lt;/p&gt;
&lt;p&gt;The first group was tasked with collecting visual impressions – walking around the space and taking some photos.&lt;/p&gt;
&lt;p&gt;The second group collected sounds – noises, phrases, or even short messages.&lt;/p&gt;
&lt;p&gt;The third focused on texts – excerpts from lectures, materials, inscriptions, and other text fragments that affected them somehow.&lt;/p&gt;
&lt;p&gt;The penultimate group was in charge of visual style – fonts, colors, graphic elements.&lt;/p&gt;
&lt;p&gt;The last group were interaction designers – their task was to come up with how the page would behave, what would be displayed, how the interaction would look.&lt;/p&gt;
&lt;div class=&quot;polaroid right&quot;&gt;
    &lt;img src=&quot;https://hippou.cz/assets/images/posts/zs-koule.jpg&quot; alt=&quot;Disco&quot; /&gt;
    &lt;span&gt;Disco&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Participants chose their own group and went off to collect. We had about half an hour for data collection. I sat down with the designers&#39; group and helped determine the boundaries between what we were capable of implementing and what would be too demanding.&lt;/p&gt;
&lt;h2&gt;Let Them Cook&lt;/h2&gt;
&lt;p&gt;The main idea was working with the theme of &amp;quot;&lt;em&gt;crossing boundaries&lt;/em&gt;&amp;quot;. Two contrasting text messages should be displayed in the middle of the screen. The screen is divided by a fluid vertical boundary. And graphic objects move around the screen, which change when crossing the boundary. On touch, they stop and play a random sound. Ok, we had ideas. On paper, it looked feasible – although I honestly had no idea how quickly it could be put together.&lt;/p&gt;
&lt;p&gt;Half an hour passed, participants returned, and we started presenting the collected materials. Each group added context about why they chose this particular thing. It was rich, diverse. There was enough material – but not so much that it overwhelmed us. I was pleased.&lt;/p&gt;
&lt;p&gt;At this stage, we still fine-tuned the interaction plan and overall concept. And with that, we reached the end of the workshop&#39;s time frame.&lt;/p&gt;
&lt;h2&gt;Implementation&lt;/h2&gt;
&lt;p&gt;I then collected all the materials and went to dinner. And in the evening, I started the implementation. I had a web template with a p5.js canvas prepared. I inserted the background, created a panel for displaying texts, wrote a function for random selection and display. I added movement to the images. I was a bit worried about the &amp;quot;fluid boundary&amp;quot; in the middle of the screen. I heavily used ChatGPT to generate code, and then I put it together like a puzzle and fine-tuned the details. Finally, I added sounds and touch interaction. In about an hour and a half, the result was ready – and I could present it to others.&lt;/p&gt;
&lt;div class=&quot;polaroid left&quot;&gt;
    &lt;img src=&quot;https://hippou.cz/assets/images/posts/zs-valentin.jpg&quot; alt=&quot;Valentín&quot; /&gt;
    &lt;span&gt;Valentín&lt;/span&gt;
&lt;/div&gt;
&lt;p&gt;Then I just fine-tuned the display on mobile phones and fixed sound playback. I was really pleased with the result. I liked how quickly such an artifact can be created – when you have materials, vision, and help from AI.&lt;/p&gt;
&lt;h2&gt;Cooked&lt;/h2&gt;
&lt;p&gt;I uploaded the result to a &lt;a href=&quot;https://github.com/RadekDobrovolny/zimni_skola_2025&quot;&gt;GitHub repository&lt;/a&gt;, where I also use GitHub Pages for hosting. You can view the digital artifact here: &lt;a href=&quot;https://radekdobrovolny.github.io/zimni_skola_2025/&quot;&gt;radekdobrovolny.github.io/zimni_skola_2025&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I was glad that the workshop&#39;s goal was fulfilled. That everyone contributed their part to the shared, community result. And now we&#39;ll see – whether someone will return to that artifact in a few years, or it will fall into oblivion.&lt;/p&gt;
&lt;p&gt;I would like to repeat this workshop sometime. Ideally in a less wild form, when there will be more time, with a smaller group and greater participant involvement in creating with p5.js. To show how to transform ideas into code with ChatGPT&#39;s help and animate them in digital space.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <title>What is love?</title>
        <link href="https://hippou.cz/post/what-is-love.html"/>
        <updated>2024-06-28T00:00:00Z</updated>
        <id>https://hippou.cz/post/what-is-love.html</id>
        <summary>Just another mini project from KISK Summer School 2022</summary>
        <content type="html">&lt;h1&gt;What is love? KISK Summer School 2022&lt;/h1&gt;
&lt;p&gt;The theme of digital memory and capturing emotions is somehow important to me. I use digital artifacts for this. They&#39;re easy to share, simple to revisit, and I have this feeling that they won&#39;t get lost as easily as a photo or a sketchbook.&lt;/p&gt;
&lt;p&gt;This is a description of a micro-project that isn&#39;t particularly interesting from a technical standpoint, but it&#39;s a sweet little thing.&lt;/p&gt;
&lt;p&gt;At &lt;a href=&quot;https://kisk.phil.muni.cz/&quot;&gt;KISK&lt;/a&gt; Summer School, &lt;a href=&quot;https://leabelejova.wixsite.com/portfolio&quot;&gt;Lea&lt;/a&gt; decided to go around to all the participants and ask them quite simply: &amp;quot;What is love?&amp;quot; I&#39;m still not entirely sure what her intention was. But I&#39;m convinced that the environment in which it took place lent itself to a light magic.&lt;/p&gt;
&lt;p&gt;Summer is beginning, the semester is ending, you&#39;re in beautiful nature, somewhat cut off from the world. Around you are forests and high cliffs, a river murmurs. There are friends here, or at least people with whom you share a few common interests. And you&#39;re spending a whole week here. I wouldn&#39;t dare claim whether some kind of self-reflection happens here, but relaxation certainly does. And then someone asks you: &amp;quot;What is love?&amp;quot;&lt;/p&gt;
&lt;p&gt;The collected answers are cheerful, funny, a bit philosophical, loving, brief and extensive, some perhaps slightly bitter. I don&#39;t remember exactly how it all happened and who approached whom, but Lea and I agreed to create a digital artifact and immortalize the answers by releasing them into the internet.&lt;/p&gt;
&lt;h2&gt;Technology&lt;/h2&gt;
&lt;p&gt;Now for the less poetic part. Lea prepared graphics in Canva, and I put together a simple website where you can view the answers. Nicely one after another, similar to when you walk around to individual people. Just a bit of HTML, CSS, and simple JavaScript. We added chirping birds to the background. And that&#39;s it.&lt;/p&gt;
&lt;p&gt;The project is available on &lt;a href=&quot;https://github.com/RadekDobrovolny/laska&quot;&gt;GitHub&lt;/a&gt; and is also hosted on &lt;a href=&quot;https://radekdobrovolny.github.io/laska/&quot;&gt;GitHub Pages&lt;/a&gt;. Happy browsing.&lt;/p&gt;
</content>
    </entry>
    <entry>
        <title>Personal Website</title>
        <link href="https://hippou.cz/post/personal-website.html"/>
        <updated>2024-06-09T00:00:00Z</updated>
        <id>https://hippou.cz/post/personal-website.html</id>
        <summary>The decision and the way I built this website</summary>
        <content type="html">&lt;p&gt;🇨🇿 This blog post is currently in Czech. Thanks for your patience—English version coming soon!&lt;/p&gt;
&lt;h1&gt;Webovky&lt;/h1&gt;
&lt;p&gt;Na jaře letošního roku jsem hledal nové pracovní místo. Komunikoval jsem s mnoha recruitery a procházel dlouhou sérií
pohovorů. Jako svůj životopis používám profil na LinkedIn. Je v něm shrnutí kde jsem pracoval, jaké jsem tam používal
technologie, jak vypadaly projekty a podobné informace, které zajímají lidi z HR.&lt;/p&gt;
&lt;p&gt;Pak ale začnete komunikovat s teamleady vývojářských týmů, seniorními programátory a ti se začnou ptát na detailní
otázky ohledně programovacích jazyků, frameworků a vůbec technologí. Cítil jsem potřebu mít svůje CV rozdělené na
jakousi business verzi a pak detailní technickou, kterou bych mohl posílat právě lidem na techničtějších pozicích.&lt;/p&gt;
&lt;h2&gt;Portfolio&lt;/h2&gt;
&lt;p&gt;K technickému résumé by bylo dobré mít i ukázky svojí práce. Tohle byla úplně automatická myšlenka. Vzpomněl jsem si,
jak současní studenti KISKu jsou vedeni k tomu, aby si během studia začali utvářet svoje portfolio, formou webové
stránky. Většinou si vytvoří web na Wordpressu anebo Google Sites a píšou tam shrnutí svých semestrů, čemu se věnují a
co nového se naučili. Vždycky se mi ta idea líbila a tak jsem se rozhodl se po této cestě vydat taky. Mít malý web, kde
bude něco o mně a o tom, co zrovna dělám. Résumé, portfolio a blog.&lt;/p&gt;
&lt;h2&gt;Technologický stack&lt;/h2&gt;
&lt;p&gt;Tak záměr by byl. Teď vymyslet, jak jej zrealizovat. Chtěl jsem se vyhnout složitým redakčním systémům, takže
automaticky vypadává Wordpress a podobné. Myšlenka, že budu muset vybírat pluginy a kontrolovat jejich updatování a
věnovat velkou péči údržbě, se mi nelíbila. Chtěl jsem jednoduchý, statický web, kde budu mít plnou kontrolu nad kódem.
Přemýšlel jsem i nad čistým HTML + CSS kódem. Ale nakonec jsem se rozhodl, že použiju generátor statického webu. Nabídka
není úplně malá, kdysi jsem se setkal s Hugo (napsaný v Golangu), zalíbilo se mi Astro (js) a nakonec jsem vybral 11ty
(také js), které mi doporučil Honzík Martinek, protože má sympatického tvůrce. Cílem bylo také naučit se něco nového, tak
proč ne.&lt;/p&gt;
&lt;p&gt;Také jsem se rozhodl, že si napíšu sám celé CSS, což jsem udělal asi poprvé v životě. Na frontend jsem vždy používal
nějaké šablony, anebo knihovny kompoment. Měl jsem z toho trochu obavy, ale nakonec mě psaní CSS vlastně bavilo nejvíce.
Velkou výhodou a pomocníkem je dneska ChatGPT. Mám takovou zkušenost, že nevyřeší problémy za mě, ale je to jako kdyby
vedle mě seděl seniorní vývojář a ochotně mi odpovídal na všechny moje dotazy a validoval moje nápady.&lt;/p&gt;
&lt;h2&gt;Design&lt;/h2&gt;
&lt;p&gt;Další krok bylo vymyslet, jak web bude vypadat.&lt;/p&gt;
&lt;h2&gt;Zmrzlina a les&lt;/h2&gt;
&lt;h2&gt;1 3 2 4 3 5 8&lt;/h2&gt;
</content>
    </entry>
</feed>
