<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Objects on sławek gonet</title><link>https://slawekgonet.pl/works/</link><description>Recent content in Objects on sławek gonet</description><generator>Hugo</generator><language>en</language><lastBuildDate>Tue, 01 Oct 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://slawekgonet.pl/works/index.xml" rel="self" type="application/rss+xml"/><item><title>maho mh300m rebuild</title><link>https://slawekgonet.pl/works/maho-mh300m-rebuild/</link><pubDate>Tue, 01 Oct 2024 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/maho-mh300m-rebuild/</guid><description>&lt;div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;"&gt;
 &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube.com/embed/dVzr5d4boyE?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"&gt;&lt;/iframe&gt;
 &lt;/div&gt;

&lt;p&gt;Metal milling was on my &lt;em&gt;wish list&lt;/em&gt; for a long time, and at some point I started looking around. It was mostly revolving around Avia FNC-25 and Oradea FUS-22. FND-25 would be nice, but was far more expensive, same goes for FND-32 which was also noticeably bigger.&lt;/p&gt;</description></item><item><title>maho feed controller</title><link>https://slawekgonet.pl/works/maho-feed-controller/</link><pubDate>Thu, 05 Sep 2024 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/maho-feed-controller/</guid><description>&lt;p&gt;A feed rate controller for the Maho MH300M vertical milling machine. The machine was purchased without its original BBC servo drive, fitted instead with a basic open-loop PWM controller that had no tacho feedback, no rapids, and inconsistent speeds under load. After replacing the drive hardware with a Parker 512C closed-loop servo, the front panel feed selector no longer corresponded to actual feed rates.&lt;/p&gt;
&lt;p&gt;The controller software maps the MH300M&amp;rsquo;s original panel selector positions to the correct setpoint voltages for the Parker drive. The feed axes use a 1:10 gear ratio, with working feeds up to 500mm/min (1250rpm, -7.5V tacho) and rapid traverse at 1200mm/min (3000rpm, -18V tacho). The controller computes the appropriate voltage for each selector position so the operator can trust the panel markings.&lt;/p&gt;</description></item><item><title>portfel-rs</title><link>https://slawekgonet.pl/works/portfel-rs/</link><pubDate>Sun, 10 Dec 2023 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/portfel-rs/</guid><description>&lt;p&gt;portfel-rs is a Rust command-line tool built for managing a simple, long-term investment portfolio. Given a set of positions with target allocation percentages, it computes the optimal amounts to invest in each position so that the portfolio stays balanced. The portfolio is defined in a YAML file that the user edits by hand, keeping the workflow transparent and the data fully under the user&amp;rsquo;s control.&lt;/p&gt;
&lt;p&gt;The core feature is the &lt;code&gt;invest&lt;/code&gt; command, which simulates how a given amount of new capital should be distributed across positions to bring the portfolio as close to its target allocation as possible. It does not modify the portfolio file; it simply shows what to buy and how much per position and per investment group. The &lt;code&gt;show&lt;/code&gt; command displays the current state of the portfolio, including each position&amp;rsquo;s actual vs. target weight.&lt;/p&gt;</description></item><item><title>Księżyc</title><link>https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/</link><pubDate>Thu, 01 Jun 2023 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/</guid><description>&lt;p&gt;Balcony lamp shaped as a circle finished to look like a wall surface, standing proud of the wall and backlit from behind.&lt;/p&gt;





&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-images" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1979.jpeg" title="IMG_1979" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1979_hu_1c2d98d0d5d72cd8.webp" alt="IMG_1979" title="IMG_1979" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1980.jpeg" title="IMG_1980" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1980_hu_75191ee153ef7e7e.webp" alt="IMG_1980" title="IMG_1980" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1983.jpeg" title="IMG_1983" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1983_hu_4f70cb44d07145d4.webp" alt="IMG_1983" title="IMG_1983" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1984.jpeg" title="IMG_1984" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1984_hu_f97c9579c4d25e9c.webp" alt="IMG_1984" title="IMG_1984" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1993.jpeg" title="IMG_1993" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_1993_hu_63aedb430e06bb94.webp" alt="IMG_1993" title="IMG_1993" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2015.jpeg" title="IMG_2015" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2015_hu_4a80ceadac9b7c1f.webp" alt="IMG_2015" title="IMG_2015" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2016.jpeg" title="IMG_2016" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2016_hu_3678bc50ab36b301.webp" alt="IMG_2016" title="IMG_2016" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2017.jpeg" title="IMG_2017" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/ksi%C4%99%C5%BCyc/images/IMG_2017_hu_682fbdb74d6716d4.webp" alt="IMG_2017" title="IMG_2017" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-images").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;</description></item><item><title>Landroid Spikes</title><link>https://slawekgonet.pl/works/landroid-spikes/</link><pubDate>Tue, 02 May 2023 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/landroid-spikes/</guid><description>&lt;p&gt;Wheel spikes for a Worx Landroid robotic mower. Improve traction on slopes and wet grass.&lt;/p&gt;





&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-images" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1603.jpeg" title="IMG_1603" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1603_hu_7402a52dcf88a374.webp" alt="IMG_1603" title="IMG_1603" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1609.jpeg" title="IMG_1609" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1609_hu_48b58642c202ec71.webp" alt="IMG_1609" title="IMG_1609" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1667.jpeg" title="IMG_1667" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/landroid-spikes/images/IMG_1667_hu_9c73cb57e3a9009f.webp" alt="IMG_1667" title="IMG_1667" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-images").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;</description></item><item><title>Racheting Screwdriver</title><link>https://slawekgonet.pl/works/racheting-screwdriver/</link><pubDate>Sat, 01 Apr 2023 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/racheting-screwdriver/</guid><description>&lt;p&gt;Restoration of an old PRL-era ratcheting screwdriver. The original mechanism was cleaned and reassembled, and the handle was converted to accept modern hex bits.&lt;/p&gt;





&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-images" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1448.jpeg" title="IMG_1448" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1448_hu_7102437c2905e529.webp" alt="IMG_1448" title="IMG_1448" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1452.jpeg" title="IMG_1452" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1452_hu_2c3b2f480a0e01ba.webp" alt="IMG_1452" title="IMG_1452" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1453.jpeg" title="IMG_1453" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1453_hu_5a4e9e1fc78b0d8a.webp" alt="IMG_1453" title="IMG_1453" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1474.jpeg" title="IMG_1474" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1474_hu_8daf9eb7560a16d7.webp" alt="IMG_1474" title="IMG_1474" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1481.jpeg" title="IMG_1481" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1481_hu_17993ffec1a29a89.webp" alt="IMG_1481" title="IMG_1481" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1482.jpeg" title="IMG_1482" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1482_hu_e01c22721fd8c7b8.webp" alt="IMG_1482" title="IMG_1482" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1483.jpeg" title="IMG_1483" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1483_hu_605737ef108109c8.webp" alt="IMG_1483" title="IMG_1483" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1486.jpeg" title="IMG_1486" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1486_hu_2b101fe97be472a2.webp" alt="IMG_1486" title="IMG_1486" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1487.jpeg" title="IMG_1487" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1487_hu_819338c65fa3e2b0.webp" alt="IMG_1487" title="IMG_1487" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1488.jpeg" title="IMG_1488" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1488_hu_24516e2228b5ecbe.webp" alt="IMG_1488" title="IMG_1488" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1489.jpeg" title="IMG_1489" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1489_hu_549862faa6a99253.webp" alt="IMG_1489" title="IMG_1489" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1490.jpeg" title="IMG_1490" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1490_hu_5715626b6073d402.webp" alt="IMG_1490" title="IMG_1490" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1491.jpeg" title="IMG_1491" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1491_hu_7149f76503cd9209.webp" alt="IMG_1491" title="IMG_1491" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1495.jpeg" title="IMG_1495" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1495_hu_5bc8af436814aefb.webp" alt="IMG_1495" title="IMG_1495" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1504.jpeg" title="IMG_1504" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1504_hu_fdc0a628283d5ed3.webp" alt="IMG_1504" title="IMG_1504" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1505.jpeg" title="IMG_1505" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1505_hu_6c316d635f55a952.webp" alt="IMG_1505" title="IMG_1505" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1506.jpeg" title="IMG_1506" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1506_hu_27d6f2794a728d24.webp" alt="IMG_1506" title="IMG_1506" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1508.jpeg" title="IMG_1508" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1508_hu_fb2d1253064d064e.webp" alt="IMG_1508" title="IMG_1508" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1511.jpeg" title="IMG_1511" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1511_hu_f6f7529085ae6a41.webp" alt="IMG_1511" title="IMG_1511" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1512.jpeg" title="IMG_1512" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1512_hu_5f1964e945ff3dda.webp" alt="IMG_1512" title="IMG_1512" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1514.jpeg" title="IMG_1514" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1514_hu_bec7572430e85ea0.webp" alt="IMG_1514" title="IMG_1514" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1516.jpeg" title="IMG_1516" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1516_hu_c60eddcc1fac16f5.webp" alt="IMG_1516" title="IMG_1516" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1518.jpeg" title="IMG_1518" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1518_hu_697ed6db68d99431.webp" alt="IMG_1518" title="IMG_1518" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1519.jpeg" title="IMG_1519" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1519_hu_96636041818287eb.webp" alt="IMG_1519" title="IMG_1519" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1521.jpeg" title="IMG_1521" data-lightbox="gallery-images"&gt;
 &lt;img src="https://slawekgonet.pl/works/racheting-screwdriver/images/IMG_1521_hu_1b97befbfa516ef8.webp" alt="IMG_1521" title="IMG_1521" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-images").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;</description></item><item><title>Caliber Chuck</title><link>https://slawekgonet.pl/works/caliber-chuck/</link><pubDate>Sat, 01 Oct 2022 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/caliber-chuck/</guid><description>&lt;p&gt;Watch caliber chuck machined as a gift for a friend watchmaker. The scroll-type chuck holds watch movements securely during service and assembly. Designed in CAD and machined on the CNC router and a manual lathe.&lt;/p&gt;
&lt;p&gt;




&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-main" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/caliber-chuck/main/Caliber%20Chuck.JPG" title="Caliber Chuck" data-lightbox="gallery-main"&gt;
 &lt;img src="https://slawekgonet.pl/works/caliber-chuck/main/Caliber%20Chuck_hu_8bb53fa75816d74f.webp" alt="Caliber Chuck" title="Caliber Chuck" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-main").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;






&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-complete" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/caliber-chuck/complete/Assembled%20caliber%20chuck.jpeg" title="Assembled caliber chuck" data-lightbox="gallery-complete"&gt;
 &lt;img src="https://slawekgonet.pl/works/caliber-chuck/complete/Assembled%20caliber%20chuck_hu_340b77d32c3b6b3b.webp" alt="Assembled caliber chuck" title="Assembled caliber chuck" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/caliber-chuck/complete/Case.jpeg" title="Case" data-lightbox="gallery-complete"&gt;
 &lt;img src="https://slawekgonet.pl/works/caliber-chuck/complete/Case_hu_25af2c0741c6e500.webp" alt="Case" title="Case" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-complete").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;
&lt;/p&gt;</description></item><item><title>CNC Router</title><link>https://slawekgonet.pl/works/cnc-router/</link><pubDate>Tue, 15 Mar 2022 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/cnc-router/</guid><description>&lt;p&gt;Custom-built 3-axis CNC router for milling wood and soft metals. Aluminium extrusion frame with a steel-backed X axis gantry. HGH15CA rails on X, unsupported LM20 linear bearings on Y, and supported 20mm linear bearings on Z. SFU1605 ballscrews on all axes, driven by a 1.5kW air-cooled spindle. Controlled by GRBL with bCNC as the interface.&lt;/p&gt;





&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-main" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/cnc-router/main/CNC%20Router.jpeg" title="CNC Router" data-lightbox="gallery-main"&gt;
 &lt;img src="https://slawekgonet.pl/works/cnc-router/main/CNC%20Router_hu_3a88a876df61767a.webp" alt="CNC Router" title="CNC Router" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-main").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;

&lt;h2 id="mechanical-construction"&gt;mechanical construction&lt;/h2&gt;
&lt;p&gt;X gantry and Z axis carriage assembly. The carriage rides on supported linear bearings and is driven by a ballscrew.&lt;/p&gt;</description></item><item><title>fusionsolar-rs</title><link>https://slawekgonet.pl/works/fusionsolar-rs/</link><pubDate>Fri, 25 Feb 2022 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/fusionsolar-rs/</guid><description>&lt;p&gt;fusionsolar-rs is a Prometheus exporter written in Rust that pulls statistics from Huawei PV (photovoltaic) inverters through the FusionSolar cloud API and exposes them as scrapeable metrics. It is designed to integrate solar power monitoring into a Prometheus and Grafana observability stack without requiring direct hardware access to the inverter.&lt;/p&gt;
&lt;p&gt;The exporter collects three key metrics: &lt;code&gt;day_power&lt;/code&gt; (total energy generated in the current day, in kWh), &lt;code&gt;device_active_power&lt;/code&gt; (current power output), and &lt;code&gt;device_temperature&lt;/code&gt; (inverter operating temperature). Currently, it supports String Inverter devices (FusionSolar device type 1), with the architecture allowing additional device types to be added.&lt;/p&gt;</description></item><item><title>dassault mystère joystick</title><link>https://slawekgonet.pl/works/dassault-myst%C3%A8re-joystick/</link><pubDate>Sun, 19 Apr 2020 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/dassault-myst%C3%A8re-joystick/</guid><description>&lt;p&gt;Purchased defunct, advertised as a joystick from a French fighter — best I could tell it came from a Dassault Mystère. Just a bare stick with a single potentiometer. I built a compact, self-sufficient USB joystick around it for basic flight sims — with slide-in/out sliders for throttle and mixture, custom springs for light centering, and an analog POV hat switch replacing the original two-position thumb switch. The plywood case was cut on an early version of my CNC router.&lt;/p&gt;</description></item><item><title>burp_exporter</title><link>https://slawekgonet.pl/works/burp_exporter/</link><pubDate>Wed, 04 Mar 2020 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/burp_exporter/</guid><description>&lt;p&gt;burp_exporter is a Python-based Prometheus exporter for the BURP backup program. It provides monitoring visibility into BURP backup infrastructure by exposing key metrics that Prometheus can scrape and that operators can use for alerting and dashboards.&lt;/p&gt;
&lt;p&gt;The exporter works by reading BURP&amp;rsquo;s spool directory directly on the filesystem rather than connecting through the BURP monitor protocol. This approach sidesteps the complexity of configuring a monitor client and keeps the setup minimal: just point burp_exporter at the spool path and it handles the rest. The tradeoff is that it must run on the same machine as the BURP server.&lt;/p&gt;</description></item><item><title>spec-debug</title><link>https://slawekgonet.pl/works/spec-debug/</link><pubDate>Tue, 03 Mar 2020 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/spec-debug/</guid><description>&lt;p&gt;spec-debug is a small Clojure library that instruments &lt;code&gt;clojure.spec.alpha/valid?&lt;/code&gt; to produce verbose, human-readable error output when a spec check fails. It solves a common frustration in Clojure development: when a &lt;code&gt;:pre&lt;/code&gt; or &lt;code&gt;:post&lt;/code&gt; condition backed by &lt;code&gt;spec/valid?&lt;/code&gt; fails, the default error message tells you that validation failed but gives no indication of why. You end up manually swapping &lt;code&gt;valid?&lt;/code&gt; calls for &lt;code&gt;explain&lt;/code&gt; calls across your codebase just to track down the problem.&lt;/p&gt;</description></item><item><title>clj-grpc</title><link>https://slawekgonet.pl/works/clj-grpc/</link><pubDate>Tue, 12 Nov 2019 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/clj-grpc/</guid><description>&lt;p&gt;clj-grpc is a Clojure library that wraps the official gRPC Java bindings, making it possible to define and serve gRPC services in idiomatic Clojure without wrestling with Java interop boilerplate. It provides a small set of macros and functions that handle service registration, RPC method definition, and protobuf message construction while staying close to the patterns described in the official gRPC Java tutorial.&lt;/p&gt;
&lt;p&gt;The design philosophy is deliberately minimal. Rather than building a new abstraction layer on top of gRPC, clj-grpc keeps users aligned with the standard Java gRPC approach. Each gRPC service maps to a single Clojure namespace, and the &lt;code&gt;implement-grpc-service&lt;/code&gt; macro wires up the generated protobuf classes automatically. The &lt;code&gt;defrpc&lt;/code&gt; macro defines individual RPC methods, and &lt;code&gt;on-next&lt;/code&gt; handles building response messages from plain Clojure maps, including automatic kebab-case to camelCase key conversion.&lt;/p&gt;</description></item><item><title>liberator-swagger</title><link>https://slawekgonet.pl/works/liberator-swagger/</link><pubDate>Wed, 12 Jun 2019 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/liberator-swagger/</guid><description>&lt;p&gt;liberator-swagger is a Clojure library that bridges the Liberator REST framework with Swagger API documentation. It provides a thin integration layer that lets you annotate Liberator resource definitions with Swagger metadata, then automatically generates a &lt;code&gt;swagger.json&lt;/code&gt; specification and serves a Swagger UI from your application. Spec support is provided through spec-tools, so your existing clojure.spec definitions can drive both validation and documentation.&lt;/p&gt;
&lt;p&gt;The library works by extending Liberator&amp;rsquo;s &lt;code&gt;defresource&lt;/code&gt; with a &lt;code&gt;:swagger&lt;/code&gt; key where you declare per-method metadata: tags, summaries, parameter specs (path, body, query), and response schemas. From these declarations, liberator-swagger builds a complete Swagger object that accurately describes your API. The generated spec and UI are served via helper routes that slot into your existing Compojure route definitions.&lt;/p&gt;</description></item><item><title>Rottefella Chili Tour-throw</title><link>https://slawekgonet.pl/works/rottefella-chili-tour-throw/</link><pubDate>Mon, 18 Feb 2019 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/rottefella-chili-tour-throw/</guid><description>&lt;p&gt;Tour-throw is common name for simple way of loosening spring tension in telemark ski bindings, especially useful for long tours over flat terrains.
This is an addon to Rotefella Chili telemark bindings, which out of the box only include single position heel lever.&lt;/p&gt;





&lt;div class="justified-gallery-container"&gt;
 &lt;div id="gallery-gallery" class="justified-gallery"&gt;
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/0001_wireframe.png" title="0001_wireframe" data-lightbox="gallery-gallery"&gt;
 &lt;img src="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/0001_wireframe_hu_323d675919b6dfa0.webp" alt="0001_wireframe" title="0001_wireframe" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/img1.JPG" title="img1" data-lightbox="gallery-gallery"&gt;
 &lt;img src="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/img1_hu_797782493881ded3.webp" alt="img1" title="img1" /&gt;
 &lt;/a&gt;
 
 
 
 
 
 
 
 
 
 &lt;a href="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/img2.JPG" title="img2" data-lightbox="gallery-gallery"&gt;
 &lt;img src="https://slawekgonet.pl/works/rottefella-chili-tour-throw/gallery/img2_hu_6aee99f7829bd17a.webp" alt="img2" title="img2" /&gt;
 &lt;/a&gt;
 
 
 
 &lt;/div&gt;
&lt;/div&gt;
&lt;script&gt;
 $("#gallery-gallery").justifiedGallery({
 margins: 3,
 border: -1,
 rowHeight: 256,
 maxRowHeight: "350%",
 captions: false,
 lastRow: "justify",
 });
&lt;/script&gt;</description></item><item><title>backuppc_exporter</title><link>https://slawekgonet.pl/works/backuppc_exporter/</link><pubDate>Fri, 16 Nov 2018 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/backuppc_exporter/</guid><description>&lt;p&gt;backuppc_exporter is a Prometheus metrics exporter for BackupPC, the popular open-source backup suite. Written in Go, it reads BackupPC&amp;rsquo;s configuration and data directories to expose two key metrics: the age of the most recent backup for each host (in seconds) and the overall pool disk usage (as a ratio from 0 to 1). These metrics make it straightforward to set up alerts for stale backups or a filling storage pool.&lt;/p&gt;</description></item><item><title>clj-systemd</title><link>https://slawekgonet.pl/works/clj-systemd/</link><pubDate>Thu, 02 Aug 2018 00:00:00 +0000</pubDate><guid>https://slawekgonet.pl/works/clj-systemd/</guid><description>&lt;p&gt;clj-systemd is a Clojure library that provides an interface to systemd through D-Bus, allowing Clojure applications to query and control systemd units programmatically. It is built on top of the java-systemd library and exposes its functionality through idiomatic Clojure functions.&lt;/p&gt;
&lt;p&gt;The library supports the core operations needed for systemd interaction: retrieving services, units, and timers by name, as well as starting, stopping, and restarting units with configurable start modes. It also provides a daemon reload function. These operations cover the most common use cases for applications that need to manage or monitor system services at runtime.&lt;/p&gt;</description></item></channel></rss>