<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Projects</title>
    <link>https://ciesie.com/</link>
    <description>Recent content on Projects</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language><managingEditor>ciesielskimm@gmail.com (Michał Ciesielski)</managingEditor><webMaster>ciesielskimm@gmail.com (Michał Ciesielski)</webMaster>
    <lastBuildDate>Sat, 02 Dec 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ciesie.com/index.xml" rel="self" type="application/rss+xml" /><item>
      <title>Emotional value of the bytes you don&#39;t own</title>
      <link>https://ciesie.com/post/bytes_you_dont_own/</link>
      <pubDate>Tue, 08 Mar 2022 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/bytes_you_dont_own/</guid>
      <description>For a long while now I&amp;rsquo;ve been using Google Photos service to store my photos. Few years ago I&amp;rsquo;ve switched to using iOS devices and Apple&amp;rsquo;s ecosystem. That made me start using Apple Cloud service. I guess my life would be simple if not for the fact that these two places don&amp;rsquo;t store my entire photos collection. Some photos and videos are stored on my local drive, backed up on yet another cloud service.</description>
    </item><item>
      <title>Alternative social media and federation</title>
      <link>https://ciesie.com/post/alt_social_media/</link>
      <pubDate>Sun, 30 Jan 2022 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/alt_social_media/</guid>
      <description>At this point most people are pretty cynical about social media. The worst offender in that space is Facebook, recently rebranded into Meta. In a world constantly incentivized by profit it&amp;rsquo;s difficult to imagine Meta optimizing for anything else. The striking part was always how cunning and ruthless they are in pursuing profit. Nevertheless, despite many controversies around privacy, usage of personal data and Meta&amp;rsquo;s political involvement services like Facebook grow year after year.</description>
    </item><item>
      <title>Update for September, year of the new hope 2021</title>
      <link>https://ciesie.com/post/update_22092021/</link>
      <pubDate>Wed, 22 Sep 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/update_22092021/</guid>
      <description>I&amp;rsquo;ve not written one of those at all this year. Not surprisingly, the most productive year for this website was 2020&amp;hellip; thanks global pandemic&amp;hellip;?&#xA;I&amp;rsquo;ve posted the RFID Explained blog post. I&amp;rsquo;m trying to gather everything I&amp;rsquo;ve learned, while working on my RFID project, in one place. This is an assumption but in the maker&amp;rsquo;s space a lot of technologies are just an Arduino libraries. What I mean by that is that very few people actually learn how a specific technology works.</description>
    </item><item>
      <title>[STM32] - part 4 - CPU goes brrrrr</title>
      <link>https://ciesie.com/post/stm32_part4/</link>
      <pubDate>Sat, 24 Jul 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/stm32_part4/</guid>
      <description>This is the final part of a series of articles. I&amp;rsquo;d suggest going through part 1, part 2 and part 3 first.&#xA;I&amp;rsquo;ve been working on a project (which you can find here), using Bluepill board with a STM32F103C8T6 microcontroller. It&amp;rsquo;s a USB keyboard project. It uses the libopencm3 project and I&amp;rsquo;d consider this a pretty minimalistic, baremetal project. It&amp;rsquo;s great for analyzing what happens when a ARM Cortex-M processor boots.</description>
    </item><item>
      <title>You can’t create in a bad environment</title>
      <link>https://ciesie.com/post/environments/</link>
      <pubDate>Thu, 10 Jun 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/environments/</guid>
      <description>Recently I haven’t been as productive as I’d like. Sure, the pandemic took its toll. The summer is coming and if there is a time to consume what life has to offer, instead of producing what you have to offer, this is it. Productivity should never be the goal in itself.&#xA;Nevertheless, I could be better at focusing on what’s important. Significant amount of time gets wasted. It’s rarely caused by an unexpected, huge time sinks.</description>
    </item><item>
      <title>[WIP] RFID Explained</title>
      <link>https://ciesie.com/post/rfid_explained/</link>
      <pubDate>Sat, 08 May 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/rfid_explained/</guid>
      <description>RFID is complex but It&amp;rsquo;s also fun. Personally I find this technology to be a bit underutilized. I&amp;rsquo;d like to explain it in a simple way so you don&amp;rsquo;t have to do the &amp;ldquo;wait, what?&amp;rdquo; through the many, many documentation PDFs. I hope to give you some confidence and maybe inspire you to do something fun with RFID.&#xA;My experience is that you either grab the cheapest, most popular MFRC522 based RFID reader and hook it up to Arduino or you go deep down the rabbit hole.</description>
    </item><item>
      <title>Perks and difficulties of tech blogging</title>
      <link>https://ciesie.com/post/technical_blog/</link>
      <pubDate>Mon, 01 Feb 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/technical_blog/</guid>
      <description>Having your own blog is a very interesting experiment. Like any other project it will teach you something. Your writing skills will improve (that&amp;rsquo;s an assumption but it&amp;rsquo;s difficult not to improve if you do it regularly). If you&amp;rsquo;re not writing in your native language, you&amp;rsquo;ll improve in the language you do write in. You&amp;rsquo;ll notice holes in your understanding of the subject you&amp;rsquo;re describing. You&amp;rsquo;ll draw attention of others to your work and, hopefully, you&amp;rsquo;ll help others.</description>
    </item><item>
      <title>C as a scripting language thanks to TinyCC</title>
      <link>https://ciesie.com/post/tinycc_dynamic_compilation/</link>
      <pubDate>Thu, 21 Jan 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/tinycc_dynamic_compilation/</guid>
      <description>This year I&amp;rsquo;d like to play around with music. Mostly live looping. Live looping is a pretty specific way of making music. It&amp;rsquo;s about recording short, simple music clips and overlaying those to create more complex and interesting music.&#xA;A recent googling session took me to OpenAV&amp;rsquo;s website. It&amp;rsquo;s Harry Van Haaren&amp;rsquo;s initiative. He&amp;rsquo;s focusing on making open source application&amp;rsquo;s for live music performances. You can find the apps&amp;rsquo; code on his Github page.</description>
    </item><item>
      <title>Update for December, year of total chaos 2020</title>
      <link>https://ciesie.com/post/update_06122020/</link>
      <pubDate>Sun, 06 Dec 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/update_06122020/</guid>
      <description>This will be the last update for 2020. We&amp;rsquo;re almost on the other side! We shouldn&amp;rsquo;t expect much out of 2021, since the time doesn&amp;rsquo;t care about our labels. Still, there is a feeling of hope that we&amp;rsquo;ll be able to, slowly, transition to post pandemic world. How will that world look like? Time will tell.&#xA;Last few months have been very productive for me. For better or worse. It&amp;rsquo;s nice to create and have a lot of fun ideas but&amp;hellip; there is only so much time in a day.</description>
    </item><item>
      <title>My terminal, coding workflow - i3, Kakoune, nnn</title>
      <link>https://ciesie.com/post/i3_kakoune_nnn/</link>
      <pubDate>Tue, 17 Nov 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/i3_kakoune_nnn/</guid>
      <description>If I&amp;rsquo;m working on code or tech related tasks, I&amp;rsquo;m doing it on Linux. That&amp;rsquo;s because I enjoy spending my time in terminal. I like playing around with new command line tools and fitting them into my workflow. Improving my process is important so I often try to update parts of my setup. The goal is to reduce the friction between my intention and execution.&#xA;Linux environment is full of various tools and utilities.</description>
    </item><item>
      <title>Communication with Blender via Python RPC</title>
      <link>https://ciesie.com/post/blender_python_rpc/</link>
      <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/blender_python_rpc/</guid>
      <description>My current 3D graphics setup revolves around Blender, ZBrush and, less often, Marmoset Toolbag 3. Transferring the meshes between ZBrush and Blender is the constant dance of exporting and importing (yes, I know about GoB but it&amp;rsquo;s not good enough for me). I strongly dislike this back and forth. I feel it adds a lot of friction, throws me off and wastes a lot of time. That makes me experiment with inter process communication.</description>
    </item><item>
      <title>Flexbile Python use in Blender</title>
      <link>https://ciesie.com/post/blender_flexible_python/</link>
      <pubDate>Fri, 16 Oct 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/blender_flexible_python/</guid>
      <description>This post is about using Python in Blender. It&amp;rsquo;s not a tutorial. It&amp;rsquo;s more of an encouragement to learn and experiment with Python.&#xA;Imagine you work on a piece. The first stage is very experimental. You look for what works and what doesn&amp;rsquo;t. At some point the piece and the process take shape. Some things become repetitive. It&amp;rsquo;s very useful to notice those patterns early and optimize them.&#xA;Lets say I&amp;rsquo;m working in ZBrush and I want to render in Blender.</description>
    </item><item>
      <title>(Basic) Thoughts on Nim</title>
      <link>https://ciesie.com/post/thoughts_on_nim_01/</link>
      <pubDate>Mon, 31 Aug 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/thoughts_on_nim_01/</guid>
      <description>Warning: this is a very opinionated post. I&amp;rsquo;m not claiming I&amp;rsquo;m right. I&amp;rsquo;m describing my observations.&#xA;This is a great time when it comes to new, fun programming languages. Languages like Rust, Zig, Odin, Nim, Jai bring something new to the table. Those are only the languages I&amp;rsquo;m keeping tabs on. There is way more projects worth following.&#xA;This post is about Nim. I use a lot of Python and I enjoy it less and less everyday.</description>
    </item><item>
      <title>Update for August, year of total chaos 2020</title>
      <link>https://ciesie.com/post/update_18082020/</link>
      <pubDate>Tue, 18 Aug 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/update_18082020/</guid>
      <description>Close to month and a half has passed since the last update. So many things have happened during that time. I&amp;rsquo;ll only write about tech related topics. It&amp;rsquo;s not a hard constraint but it&amp;rsquo;s also not a personal blog about my life.&#xA;The project that takes most of my free time is the custom controller for CG artists. Unfortunately the BLE version is on hold. I have not been able to fix Windows pairing problems.</description>
    </item><item>
      <title>Song practice app concept</title>
      <link>https://ciesie.com/post/song_practice_app/</link>
      <pubDate>Tue, 07 Jul 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/song_practice_app/</guid>
      <description>If you&amp;rsquo;ve ever tried to get better at playing a particular song you want to learn, you might want to first learn it in chunks. After you feel good with those chunks you start putting it all together. Then you realize, you still suck at some of those chunks, so you practice them.&#xA;It would be nice to have a tool that works well for that process. I didn&amp;rsquo;t feel like coding today but I needed to export this idea out of my mind so here is a quick concept I&amp;rsquo;ve put together.</description>
    </item><item>
      <title>Update for July, year of total chaos 2020</title>
      <link>https://ciesie.com/post/update_06072020/</link>
      <pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/update_06072020/</guid>
      <description>I&amp;rsquo;m trying something new. I&amp;rsquo;d like to regularly write some sort of an update which explains what I&amp;rsquo;m working on. Since this website doesn&amp;rsquo;t generate any meaningful traffic, I&amp;rsquo;m doing this for myself. I&amp;rsquo;m not imposing any strict time frame on this. I don&amp;rsquo;t want to do this too often, since I don&amp;rsquo;t want my blog to be full of posts like this one. I want the blog section to be useful for weary travellers who look for answers, in this world full of questions!</description>
    </item><item>
      <title>Adding comments system to this website</title>
      <link>https://ciesie.com/post/comments_isso/</link>
      <pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/comments_isso/</guid>
      <description>I&amp;rsquo;ve started this website with the Beautiful Hugo theme. At that point in time I was learning how Hugo works. I knew I wanted to design my own theme, only because I like customizing and designing. The theme I&amp;rsquo;m currently using was designed and written by me. I&amp;rsquo;m not a web developer so it&amp;rsquo;s not professional quality. It&amp;rsquo;s made by me - that&amp;rsquo;s what matters. I&amp;rsquo;ve never implemented a comments system in my own theme.</description>
    </item><item>
      <title>Connecting Ender3 to WiFi with ESP32</title>
      <link>https://ciesie.com/post/ender_esp/</link>
      <pubDate>Fri, 15 May 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/ender_esp/</guid>
      <description>If you dabble in 3D printing, you&amp;rsquo;ve probably stumbled upon the OctoPrint project. It&amp;rsquo;s a web interface for your printer. It&amp;rsquo;s a very cool project with lots of features. The typical use case is to host OctoPrint on a Raspberry PI. That requires a bit of fiddling around if you want to power it from the printer&amp;rsquo;s power supply. It&amp;rsquo;s a very popular project so finding instructions on how to do it isn&amp;rsquo;t difficult.</description>
    </item><item>
      <title>Microphone stand for Novox NC-1 microphone</title>
      <link>https://ciesie.com/post/mic_stand_01/</link>
      <pubDate>Sat, 02 May 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/mic_stand_01/</guid>
      <description>I like the idea of small, weekend projects. Something small you can make in a weekend. I&amp;rsquo;ve used the last two days to play around with an idea for a microphone stand. That&amp;rsquo;s because the microphone stand I&amp;rsquo;ve got when buying the microphone is really, really bad. It&amp;rsquo;s unstable and can barely hold the weight of the microphone, which in my case is the Novox NC-1 microphone. It&amp;rsquo;s a good entry level microphone, which I&amp;rsquo;ve used to record most of my YouTube videos.</description>
    </item><item>
      <title>Learning Zig - first hour...</title>
      <link>https://ciesie.com/post/zig_learning_01/</link>
      <pubDate>Tue, 31 Mar 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/zig_learning_01/</guid>
      <description>Today I&amp;rsquo;ve played around with Zig, the new, hip (is it hip?) programming language. I find it pretty neat. I&amp;rsquo;m going to walk you (and myself) through my first, very short, piece of code.&#xA;Below you can see the entirety of it. It basically allocates a 2MB buffer and reads a file into it&amp;hellip; Yep, not particularly impressive, but this is a judgment free, learning zone, ok?!&#xA;1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 const std = @import(&amp;#34;std&amp;#34;); const warn = @import(&amp;#34;std&amp;#34;).</description>
    </item><item>
      <title>Cool, new language for 2020</title>
      <link>https://ciesie.com/post/new_language_2020/</link>
      <pubDate>Sat, 28 Mar 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/new_language_2020/</guid>
      <description>A lot of new programming languages pop up here and there. It&amp;rsquo;s a very interesting moment to pick a new one up. The ones I&amp;rsquo;m interested in are Rust, Nim and Zig.&#xA;Rust? Might be a good choice but it&amp;rsquo;s intimidating. I&amp;rsquo;m not convinced yet that what it brings to the table justifies its difficulty&amp;hellip; Nim is pretty cool. Don&amp;rsquo;t have that much experience writing Nim though. It has a garbage collector, which you can turn off and use your own memory management system.</description>
    </item><item>
      <title>Derotating image with EXIF orientation</title>
      <link>https://ciesie.com/post/fspy_exif_orientation/</link>
      <pubDate>Sat, 21 Mar 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/fspy_exif_orientation/</guid>
      <description>If you want to overlay a rendered graphics on top of an image or a static video in Blender you should use the fSpy tool. It matches the camera to specified frame of reference. Unfortunately it doesn&amp;rsquo;t support EXIF meta information. That means that it sometimes fails to properly orient an image.&#xA;When it comes to an image orientation there are two factors: how image is encoded and the EXIF orientation value.</description>
    </item><item>
      <title>Pointers to pointers in C</title>
      <link>https://ciesie.com/post/pointers_c/</link>
      <pubDate>Sat, 21 Mar 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/pointers_c/</guid>
      <description>Pointers seem to be the most confusing part about C. It takes a while to fully understand them. As soon as you start feeling what they are about you stumble on a pointer to a pointer. Technically not that much changes but, again, it takes a while to create a solid understanding of what&amp;rsquo;s going on. As they say: you don&amp;rsquo;t understand something if you can&amp;rsquo;t explain it in a simple way.</description>
    </item><item>
      <title>Communication with Blender via sockets</title>
      <link>https://ciesie.com/post/blender_sockets/</link>
      <pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/blender_sockets/</guid>
      <description>I&amp;rsquo;m always curious about expanding functionality and improving workflow by connecting devices to software that I already enjoy using. I love using Blender and making custom controllers for creating computer graphics is something very interesting to me.&#xA;As long as a program has a scripting environment or a plugin support, you can usually connect anything you like to it. In one of my previous experiments I&amp;rsquo;ve added a serial communication between Blender and a custom device.</description>
    </item><item>
      <title>What problem does it solve?</title>
      <link>https://ciesie.com/post/solving_which_problem/</link>
      <pubDate>Sat, 08 Feb 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/solving_which_problem/</guid>
      <description>My experience in tech industry isn&amp;rsquo;t that big. It would be something around 5 years working as a coder. This industry moves fast, things change, new technologies emerge on daily basis. In order to do my job well I have to constantly learn something new. I enjoy that a lot. Learning is great. It allows you to look at the world differently than you did before.&#xA;Sometimes it&amp;rsquo;s exhausting and frustrating.</description>
    </item><item>
      <title>SparkFun Thing Plus - Ambiq Apollo3 - part 1</title>
      <link>https://ciesie.com/post/sparkfun_thing_plus_part1/</link>
      <pubDate>Fri, 29 Nov 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/sparkfun_thing_plus_part1/</guid>
      <description>Driven by the idea of building a Bluetooth keyboard like device, I&amp;rsquo;ve bought the SparkFun Artemis Thing Plus board. It&amp;rsquo;s a board designed for small, power efficient devices with Bluetooth capability.&#xA;The board carries an Ambiq Apollo3 processor. It&amp;rsquo;s an ARM Cortex-M4F chip. Runs at 48MHz but can, for a brief amount of time, go up to 96MHz. Here you can read more about the whole Apollo line-up.&#xA;The SparkFun&amp;rsquo;s board brings some cool features.</description>
    </item><item>
      <title>Blender - text with scanlines</title>
      <link>https://ciesie.com/post/blender_text_scanlines/</link>
      <pubDate>Fri, 20 Sep 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/blender_text_scanlines/</guid>
      <description>With the release of Blender 2.8 I went back to messing around with graphics. I would like to be able to replicate some of the, already existing, effects. Nothing fancy. Nothing new. At the same time looking&amp;hellip; good! I also would like to explain the process to learn and improve.&#xA;Lets look at a text with some scanlines.&#xA;The scene is pretty basic, text object and a scaled cube with an array modifier.</description>
    </item><item>
      <title>Debugging image resources</title>
      <link>https://ciesie.com/post/gdb_images/</link>
      <pubDate>Thu, 27 Jun 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/gdb_images/</guid>
      <description>I work a lot with image processing. There is a lot of transformations and sub images extraction. Often, it would be great to actually see those images when debugging. Quick Google search pointed me to the dump command present in gdb.&#xA;In short, to get the memory dump, you would do something like this:&#xA;set $source=pointer_to_the_memory set $size_of_the_dump=4096 dump memory filename.bin $source $source+size_of_the_dump You have to know the size of your data.</description>
    </item><item>
      <title>Node based GUI app</title>
      <link>https://ciesie.com/post/node_based_gui/</link>
      <pubDate>Sun, 16 Jun 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/node_based_gui/</guid>
      <description>Inspired by a horrible Jenkins CI workflow I thought about a GUI app that could help compose and request/monitor CI jobs. Node based GUI seemed like an interesting option for that. I&amp;rsquo;ve tested several technological stack to develop something like that and here are my observations.&#xA;Nodes in Haxe/Heaps I&amp;rsquo;ve started with testing Haxe + Heaps. I like the flexibility Haxe gives. Outputting a web app based on JavaScript is pretty easy.</description>
    </item><item>
      <title>Black magic probe out of cheap STLink programmers</title>
      <link>https://ciesie.com/post/black_magic_probe_stlink/</link>
      <pubDate>Thu, 03 Jan 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/black_magic_probe_stlink/</guid>
      <description>If you have ever worked with ARM Cortex M processors you&amp;rsquo;ve probably used GDB + OpenOCD combo for debugging. If you didn&amp;rsquo;t: OpenOCD connects to the processor via a STLink programmer and opens a socket to which GDB can connect. It will push data necessary for debugging (and understandable for GDB) through this socket. That means that if you connect GDB to this socket (so called remote debugging) you can debug processor&amp;rsquo;s software like any other application on your PC.</description>
    </item><item>
      <title>Using txti.es &#43; Python as a data dashboard</title>
      <link>https://ciesie.com/post/txti_python/</link>
      <pubDate>Sun, 30 Dec 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/txti_python/</guid>
      <description>Have you ever heard about txti.es? It&amp;rsquo;s a basic web page creator. You can basically create a very simple website by typing content into a form. I thought it might be used as a very simple frontend.&#xA;I always dabbled with automation. An example would be a scraping script that gets the job postings from a specific website or one that checks when the bus I take every morning leaves and sends this information by e-mail.</description>
    </item><item>
      <title>Creators responsibility</title>
      <link>https://ciesie.com/post/creators_responsibility/</link>
      <pubDate>Tue, 04 Dec 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/creators_responsibility/</guid>
      <description>Recently I&amp;rsquo;ve enjoyed reading blog posts by Nikita. You can find the blog here. One blog post I see quoted often is this one (you can read it in 6 languages - that says something). It&amp;rsquo;s about the disastrous state of current software development.&#xA;The author brings a lot of good points. The message is that no one puts effort into making software performant. We solve problems by adding complexity, never actually solving the root cause.</description>
    </item><item>
      <title>Setting up a PiHole</title>
      <link>https://ciesie.com/post/setting_pihole/</link>
      <pubDate>Sat, 17 Nov 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/setting_pihole/</guid>
      <description>What&amp;rsquo;s a PiHole? It&amp;rsquo;s basically a DNS sinkhole. DNS servers resolve domain names into IPs. DNS sinkholes are basically faulty DNS servers. For example when you go to a website your web browser will also download ads. In order to get them it has to resolve the domain name of the ads provider into an IP. That&amp;rsquo;s what DNS server does. PiHole is just a local DNS server which say &amp;rsquo;nah&amp;rsquo; when you ask it to serve a content from a blacklisted provider.</description>
    </item><item>
      <title>Setting your pc for remote access</title>
      <link>https://ciesie.com/post/pc_remote_access/</link>
      <pubDate>Sat, 13 Oct 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/pc_remote_access/</guid>
      <description>I&amp;rsquo;m not sure I need it. Maybe you will. It is an exercise in excess. I rarely need something from my home PC because nowadays it&amp;rsquo;s so easy to store things in the magical cloud. Still, it&amp;rsquo;s a nice exercise.&#xA;I have set up remote access on Void Linux and I will describe the process of doing so for that OS. You might encounter some problems if you are using Windows&amp;hellip; but if you do you have bigger things to worry about (writing this around the time M$ update for Windows bricked some users&amp;rsquo; computers.</description>
    </item><item>
      <title>[STM32] - part 3 - Start your engine!</title>
      <link>https://ciesie.com/post/stm32_part3/</link>
      <pubDate>Tue, 19 Jun 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/stm32_part3/</guid>
      <description>I think it&amp;rsquo;s time to go through what happens when you power on the STM32 Cortex-M microcontroller. There is a lot of resources on this topic (if you are reading this one&amp;hellip; thank you!). I will explain this process in my own words.&#xA;You have powered on your microcontroller. Less than a second has passed and it is already munching through data, sending and receiving messages, controlling motors and blinking leds.</description>
    </item><item>
      <title>Shortcomings of todays human-computer interaction</title>
      <link>https://ciesie.com/post/shortcomings_of_human_computer_interaction/</link>
      <pubDate>Mon, 11 Jun 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/shortcomings_of_human_computer_interaction/</guid>
      <description>I have spent a lot of time in front of a computer. That&amp;rsquo;s because you can do a lot of amazing stuff with it. I don&amp;rsquo;t think I enjoy the process that much though. Sometimes there is so much clicking and pointing to do simple stuff. I don&amp;rsquo;t think I would code without using VIM or at least adding VIM bindings to the text editor I&amp;rsquo;m using. I just can&amp;rsquo;t use mouse when I code.</description>
    </item><item>
      <title>[Knowledge snippet] - STM32 bootloader</title>
      <link>https://ciesie.com/post/stm32_bootloader/</link>
      <pubDate>Sat, 09 Jun 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/stm32_bootloader/</guid>
      <description>You programmed STM32 microcontroller using Nucleo or Discovery boards. That means you used Serial Wire Debug (SWD) for programming/debugging. Now, you are designing a PCB with a STM32 microcontroller on it, which means you have to be able to program it. One solution is uploading the code through a bootloader - a small piece of software, made by ST that has been saved in the protected (read-only) memory of the microcontroller.</description>
    </item><item>
      <title>[STM32] - part 2 - Lets look inside!</title>
      <link>https://ciesie.com/post/stm32_part2/</link>
      <pubDate>Fri, 27 Apr 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/stm32_part2/</guid>
      <description>Still wondering why it all works? Why this black square does things? Lets go deeper.&#xA;Previously I explained a bit about processor architecture. It&amp;rsquo;s the basis of the chip. It&amp;rsquo;s a fundament. You won&amp;rsquo;t find anything about an UART in a Technical Reference Manual of Cortex-M4. It&amp;rsquo;s just not a part of this fundament.&#xA;When you get an STM32 microcontroller based on the Cortex-M4 architecture you just get microcontroller made by ST which uses this specific architecture.</description>
    </item><item>
      <title>[STM32] - part 1 - Cortex what...?</title>
      <link>https://ciesie.com/post/stm32_part1/</link>
      <pubDate>Tue, 10 Apr 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/stm32_part1/</guid>
      <description>Recently I wrote a short article about setting up an environment for programming STM32 microcontrollers with the libopencm3 library. You can read it here.&#xA;I wanted to write the second part as soon as possible but I found out that even though I could, I didn&amp;rsquo;t understand everything well enough. I just didn&amp;rsquo;t feel comfortable with the subject. That&amp;rsquo;s why I started this series. I want to explore what actually happens when you program a STM32 microcontroller.</description>
    </item><item>
      <title>Adventures in libopencm3 - part 1</title>
      <link>https://ciesie.com/post/libopencm3_part1/</link>
      <pubDate>Sat, 31 Mar 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/libopencm3_part1/</guid>
      <description>Recently, I&amp;rsquo;ve started working on a new project. It will take some time before the goal of the project is even worth mentioning. The important part is that it is an electronics/hardware project and it needs an energy efficient computing unit.&#xA;For early development I chose an ARM Cortex M3 STM32F3 microcontroller. More precisely STM32F303K8T6, mostly because I have a Nucleo board, with this chip, laying around. It&amp;rsquo;s also a good time to try a new framework.</description>
    </item><item>
      <title>Compiling Raylib programs with SCons</title>
      <link>https://ciesie.com/post/building_raylib_with_scons/</link>
      <pubDate>Sun, 18 Mar 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/post/building_raylib_with_scons/</guid>
      <description>If you like writing programs in C, are interested in game development and don&amp;rsquo;t enjoy all those complicated and ancient build systems I think I&amp;rsquo;ve got something of interest to you. I belive there is something enjoyable in the simple setup I&amp;rsquo;m describing below. Hope you will enjoy as well.&#xA;Raylib Raylib is a C library made by @Ray San. On the Raylib&amp;rsquo;s website it says &amp;lsquo;raylib is a simple and easy-to-use library to learn video games programming&amp;rsquo;.</description>
    </item><item>
      <title>Naive comments system</title>
      <link>https://ciesie.com/project/naive_comments/</link>
      <pubDate>Sat, 02 Dec 2023 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/naive_comments/</guid>
      <description>This website used Cactus comments system, which leverages Matrix protocol. It was a nice little experiment but it&amp;rsquo;s a half baked project, which didn&amp;rsquo;t grow in the last few years. I have decided to make my own comment system. Something as simple as possible, where comments are stored in the most universal way possible. Because systems change, but data? Data is forever.&#xA;The simplest comment system is an interface to send text data, a way to store it in a structured manner and an interface to retrieve that data or its subset, to present it.</description>
    </item><item>
      <title>1S Li-Po battery charger</title>
      <link>https://ciesie.com/project/lipo_charger/</link>
      <pubDate>Mon, 10 Oct 2022 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/lipo_charger/</guid>
      <description>One day I hope to design a product with quality of a commercial product. I do not feel I can go through the entire process by myself. While I might never be able to do that, I still want to close as much of that gap as possible.&#xA;This time the exercise was to design a PCB that can charge a 1S Li-Po battery. The design is not a product of my lacking, electronics knowledge.</description>
    </item><item>
      <title>MagKnob</title>
      <link>https://ciesie.com/project/magknob/</link>
      <pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/magknob/</guid>
      <description>Let&amp;rsquo;s control volume with a (moderately) fancy knob!&#xA;AS5601 might be my favourite sensor right now. It&amp;rsquo;s an on-axis magnetic rotary position sensor. It generates a signal typical for encoders, but it does it by detecting the change in a magnetic field of a diametrically magnetized, rotating magnet.&#xA;The knob acts as a USB HID device. That means that, currently, it can do everything that a 2 button keyboard could do.</description>
    </item><item>
      <title>Website... this website</title>
      <link>https://ciesie.com/project/this_website/</link>
      <pubDate>Fri, 05 Nov 2021 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/this_website/</guid>
      <description>You should start a website. It&amp;rsquo;s quite fun!&#xA;2023-12-29 This article, titled &amp;ldquo;CSS is fun again&amp;rdquo;, put the OKLCH color space on my radar. It&amp;rsquo;s a color space, created in 2020, which covers capabilities of the most common, sRGB screens, but also the newer ones, like those using P3 or Rec. 2020 color spaces.&#xA;Oklab and OKLCH were created by Björn Ottosson, to fix issue in the CIE LAB and LCH color spaces.</description>
    </item><item>
      <title>Bluetooth Graphics Controller</title>
      <link>https://ciesie.com/project/ble_graphics_controller/</link>
      <pubDate>Sat, 06 Jun 2020 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/ble_graphics_controller/</guid>
      <description>Process 2020-08-14 Summer isn&amp;rsquo;t the best time to push personal projects, but I&amp;rsquo;m doing my best to push this one. I had to take a step back though. The BLE controller still doesn&amp;rsquo;t work with Windows. Even though it&amp;rsquo;s fun to learn about BLE this project isn&amp;rsquo;t about protocols. It&amp;rsquo;s about exploring a possibility of creating a controller designed for CG artists. Trying to debug BLE problems is exhausting and it kills any excitement for this project.</description>
    </item><item>
      <title>Time tracker</title>
      <link>https://ciesie.com/project/time_tracker/</link>
      <pubDate>Tue, 21 May 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/time_tracker/</guid>
      <description>THIS IS A WORK IN PROGRESS Below you will find log entries that describe the design/thinking process.&#xA;Idea The goal is to build a device that could allow me to comfortably measure time spent on a project. I want to have a full history of the time spent on particular project. The time log needs to be plain text, easily queried and human readable.&#xA;Process 2023-08-23 And here we go with another attempt at prototyping this device.</description>
    </item><item>
      <title>Fuel gauge - Godot Engine</title>
      <link>https://ciesie.com/project/fuel_gauge_godot/</link>
      <pubDate>Sun, 07 Apr 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/fuel_gauge_godot/</guid>
      <description>I&amp;rsquo;ve made a small visualization of a motorcycle fuel gauge in Godot engine. It allows you to disassemble the gauge and learn what&amp;rsquo;s inside without actually buying a motorcycle&amp;hellip; I did that for you&amp;hellip;</description>
    </item><item>
      <title>Wii Nunchuk as a USB HID controller</title>
      <link>https://ciesie.com/project/wii_nunchuk_usb_controller/</link>
      <pubDate>Sat, 02 Feb 2019 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/wii_nunchuk_usb_controller/</guid>
      <description>TL;DR You can find the source code here.&#xA;I used the Wii Nunchuk controller to prototype one handed controller for creating computer graphics. I used the Blue Pill board which carries a STM32F1 microcontroller with a built-in USB peripheral. That allowed me to implement it as a true USB HID (Human Interface Device) for the Windows OS.&#xA;The results were disappointing. My USB HID implementation was poor. I have fixed several important bugs in another project.</description>
    </item><item>
      <title>Capacitive buttons keyboard</title>
      <link>https://ciesie.com/project/capacitive_buttons_keyboard/</link>
      <pubDate>Thu, 05 Jul 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/capacitive_buttons_keyboard/</guid>
      <description>A video showing the a keyboard made with capacitive buttons.&#xA;Source code</description>
    </item><item>
      <title>Blender analog controller</title>
      <link>https://ciesie.com/project/blender_three_knobs_controller/</link>
      <pubDate>Wed, 13 Jun 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/blender_three_knobs_controller/</guid>
      <description>In the digital age you stumble on concepts analog in their nature. Modern graphics are created on a computer yet they originate in an analog process. You constantly change the brush size yet the computer allows you to do it in an increments. Do you actually care your color is R=53, G=123, B=200 in numerical values except when moving the data?&#xA;Concept of making an analog controller for art creation on the computer was always interesting for me.</description>
    </item><item>
      <title>Portable power for Yamaha Amplifier</title>
      <link>https://ciesie.com/project/portable_amplifier/</link>
      <pubDate>Sat, 21 Apr 2018 00:00:00 +0000</pubDate><author>ciesielskimm@gmail.com (Michał Ciesielski)</author>
      <guid>https://ciesie.com/project/portable_amplifier/</guid>
      <description>Voltage converter in 3D printed casing I&amp;rsquo;m using Yamaha THR5 electric guitar amplifier. It&amp;rsquo;s possible to power it with batteries. It isn&amp;rsquo;t economically good solution though. Something rechargeable would be way better. Since I had a Li-Po battery lying around I made a small dongle which regulates the voltage.&#xA;Voltage converter in 3D printed casing The dongle in a 3D printed casing. Two switches allow breaking input and output circuit independently.</description>
    </item>
  </channel>
</rss>

