<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.1.1">Jekyll</generator><link href="https://wejn.org/feed/by_tag/programming.xml" rel="self" type="application/atom+xml" /><link href="https://wejn.org/" rel="alternate" type="text/html" /><updated>2026-04-01T19:00:10+02:00</updated><id>https://wejn.org/feed/by_tag/programming.xml</id><title type="html">Wejn.org</title><subtitle>Wejn's corner on the interwebs, containing articles about computers (Linux), programming, system administration, and whatever else takes my fancy.</subtitle><author><name>Michal Jirků</name></author><entry><title type="html">Swisscom 2025 security.txt challenge: full writeup</title><link href="https://wejn.org/2026/01/swisscom-2025-securitytxt-challenge-full-writeup/" rel="alternate" type="text/html" title="Swisscom 2025 security.txt challenge: full writeup" /><published>2026-01-28T22:25:00+01:00</published><updated>2026-01-28T22:33:09+01:00</updated><id>https://wejn.org/2026/01/swisscom-2025-securitytxt-challenge-full-writeup</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="reversing" /><category term="quickie" /><summary type="html">In Accidentally solving the Swisscom 2025 security.txt challenge I briefly hinted at the steps that I took to solve the challenge.</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-swisscom/bug-hunter.jpg" /><media:content medium="image" url="https://wejn.org/assets/2025-swisscom/bug-hunter.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Visualize those pesky rainbows (interactively)</title><link href="https://wejn.org/2026/01/visualize-those-pesky-rainbows-interactively/" rel="alternate" type="text/html" title="Visualize those pesky rainbows (interactively)" /><published>2026-01-14T18:25:00+01:00</published><updated>2026-01-14T19:00:34+01:00</updated><id>https://wejn.org/2026/01/visualize-those-pesky-rainbows-interactively</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="quickie" /><category term="tobes_ui" /><category term="color_wonkery" /><summary type="html">In the previous post (On the unreasonable difficulty of plotting pretty rainbow, fast) I spent many words coming up1 with the Ultimate Rainbow™ for visible light spectra. Well, stealing from Dr. Young, really. ↩</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2026-rainbow-int/screenshot.png" /><media:content medium="image" url="https://wejn.org/assets/2026-rainbow-int/screenshot.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">On the unreasonable difficulty of plotting pretty rainbow, fast</title><link href="https://wejn.org/2026/01/on-the-unreasonable-difficulty-of-plotting-pretty-rainbow-fast/" rel="alternate" type="text/html" title="On the unreasonable difficulty of plotting pretty rainbow, fast" /><published>2026-01-10T14:56:00+01:00</published><updated>2026-01-10T20:40:31+01:00</updated><id>https://wejn.org/2026/01/on-the-unreasonable-difficulty-of-plotting-pretty-rainbow-fast</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="tobes_ui" /><category term="color_wonkery" /><summary type="html">The problem</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2026-rainbow/old-vs-new.png" /><media:content medium="image" url="https://wejn.org/assets/2026-rainbow/old-vs-new.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Overengineering float serialization for no good reason</title><link href="https://wejn.org/2025/12/overengineering-float-serialization-for-no-good-reason/" rel="alternate" type="text/html" title="Overengineering float serialization for no good reason" /><published>2025-12-25T17:09:00+01:00</published><updated>2025-12-25T19:24:21+01:00</updated><id>https://wejn.org/2025/12/overengineering-float-serialization-for-no-good-reason</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="quickie" /><category term="tobes_ui" /><summary type="html">Problem statement</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-float-serialization/trunc.png" /><media:content medium="image" url="https://wejn.org/assets/2025-float-serialization/trunc.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">LLM: Write production-ready code!</title><link href="https://wejn.org/2025/10/llm-write-production-ready-code/" rel="alternate" type="text/html" title="LLM: Write production-ready code!" /><published>2025-10-25T17:40:00+02:00</published><updated>2025-10-25T18:23:58+02:00</updated><id>https://wejn.org/2025/10/llm-write-production-ready-code</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="llm" /><category term="quickie" /><summary type="html">Problem statement</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-llm-write-production-ready-code.jpg" /><media:content medium="image" url="https://wejn.org/assets/2025-llm-write-production-ready-code.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Accidentally solving the Swisscom 2025 security.txt challenge</title><link href="https://wejn.org/2025/09/accidentally-solving-the-swisscom-2025-securitytxt-challenge/" rel="alternate" type="text/html" title="Accidentally solving the Swisscom 2025 security.txt challenge" /><published>2025-09-27T17:27:00+02:00</published><updated>2025-09-27T18:59:55+02:00</updated><id>https://wejn.org/2025/09/accidentally-solving-the-swisscom-2025-securitytxt-challenge</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="reversing" /><category term="quickie" /><summary type="html"></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-swisscom/bug-hunter.jpg" /><media:content medium="image" url="https://wejn.org/assets/2025-swisscom/bug-hunter.jpg" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Failing to calibrate flame-s-vis-nir-es spectrometer</title><link href="https://wejn.org/2025/07/failing-to-calibrate-flame-s-vis-nir-es/" rel="alternate" type="text/html" title="Failing to calibrate flame-s-vis-nir-es spectrometer" /><published>2025-07-31T19:09:00+02:00</published><updated>2025-12-25T19:24:21+01:00</updated><id>https://wejn.org/2025/07/failing-to-calibrate-flame-s-vis-nir-es</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="reversing" /><category term="quickie" /><category term="color_wonkery" /><category term="tobes_ui" /><summary type="html">Problem statement</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-spec-calibration-fail/spectrometers-comparison.png" /><media:content medium="image" url="https://wejn.org/assets/2025-spec-calibration-fail/spectrometers-comparison.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Torch Bearer Spectrometer UI</title><link href="https://wejn.org/2025/07/torchbearer-spectroscope-ui/" rel="alternate" type="text/html" title="Torch Bearer Spectrometer UI" /><published>2025-07-05T11:20:00+02:00</published><updated>2025-12-25T19:24:21+01:00</updated><id>https://wejn.org/2025/07/torchbearer-spectroscope-ui</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="reversing" /><category term="quickie" /><category term="color_wonkery" /><category term="tobes_ui" /><summary type="html">Problem statement</summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://wejn.org/assets/2025-tobes/pretty.png" /><media:content medium="image" url="https://wejn.org/assets/2025-tobes/pretty.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Extracting data from Goethe Zertifikat B1 Wortliste pdf</title><link href="https://wejn.org/2023/12/extracting-data-from-goethe-zertifikat-b1-wortliste/" rel="alternate" type="text/html" title="Extracting data from Goethe Zertifikat B1 Wortliste pdf" /><published>2023-12-10T16:11:00+01:00</published><updated>2024-10-28T16:05:40+01:00</updated><id>https://wejn.org/2023/12/extracting-data-from-goethe-zertifikat-b1-wortliste</id><author><name>Michal Jirků</name></author><category term="unix" /><category term="programming" /><summary type="html">Problem statement</summary></entry><entry><title type="html">Implementing toy RSA in Ruby, on a dare</title><link href="https://wejn.org/2023/10/implementing-toy-rsa-in-ruby-on-a-dare/" rel="alternate" type="text/html" title="Implementing toy RSA in Ruby, on a dare" /><published>2023-10-27T10:27:00+02:00</published><updated>2023-10-27T17:10:02+02:00</updated><id>https://wejn.org/2023/10/implementing-toy-rsa-in-ruby-on-a-dare</id><author><name>Michal Jirků</name></author><category term="programming" /><category term="ruby" /><category term="fun" /><category term="quickie" /><summary type="html">Problem statement</summary></entry></feed>