diff options
author | jaseg <git@jaseg.de> | 2025-07-26 17:53:39 +0200 |
---|---|---|
committer | jaseg <git@jaseg.de> | 2025-07-26 17:53:39 +0200 |
commit | eefa5cbb554017a41095e54e6c39592bc1de1761 (patch) | |
tree | 2f2ff3ffe57b1b3a3c11560b3ee79b1480efa4e7 /index.xml | |
parent | 3fd0c107e02858843314107afbbeaf5c056f785f (diff) | |
parent | ccd6338503549e61b74b51c2904617edbfd604cc (diff) | |
download | blog-eefa5cbb554017a41095e54e6c39592bc1de1761.tar.gz blog-eefa5cbb554017a41095e54e6c39592bc1de1761.tar.bz2 blog-eefa5cbb554017a41095e54e6c39592bc1de1761.zip |
deploy.py auto-commitdeploy
Diffstat (limited to 'index.xml')
-rw-r--r-- | index.xml | 174 |
1 files changed, 174 insertions, 0 deletions
diff --git a/index.xml b/index.xml new file mode 100644 index 0000000..de6d7e8 --- /dev/null +++ b/index.xml @@ -0,0 +1,174 @@ +<?xml version="1.0" encoding="utf-8" standalone="yes"?> +<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> + <channel> + <title>jaseg.de on Home</title> + <link>http://jaseg.de/</link> + <description>Recent content in jaseg.de on Home</description> + <generator>Hugo</generator> + <language>en-us</language> + <copyright>Jan Sebastian Götte</copyright> + <lastBuildDate>Wed, 23 Jul 2025 23:42:00 +0100</lastBuildDate> + <atom:link href="http://jaseg.de/index.xml" rel="self" type="application/rss+xml" /> + <item> + <title>Code listings with nice line wrapping and line numbers from plain CSS</title> + <link>http://jaseg.de/blog/css-only-code-blocks/</link> + <pubDate>Wed, 23 Jul 2025 23:42:00 +0100</pubDate> + <guid>http://jaseg.de/blog/css-only-code-blocks/</guid> + <description><div class="document">


<p>Code listings in web pages are often a bit of a pain to use. Usually, they don't wrap on small screens. Also, copy-pasting code from a code listing often copies the line numbers along with the code. Finally, many implementations use heavyweight HTML and/or javascript, making them slow to render. For this blog, I wrote a little CSS hack that renders nice, wrapping code blocks with line continuation markers in plain CSS without any JS.</p>
</div></description> + </item> + <item> + <title>Getting the .ipynb Notebook File Location From a Running Jupyter Lab Notebook</title> + <link>http://jaseg.de/blog/jupyterlab-notebook-file-oneliner/</link> + <pubDate>Sun, 29 Jun 2025 23:42:00 +0100</pubDate> + <guid>http://jaseg.de/blog/jupyterlab-notebook-file-oneliner/</guid> + <description><div class="document">


<p>If you need to get the path of the ipynb file in a running #Jupyter notebook, this one-liner will do the trick. It seems chatgpt is confused, and a bunch of other approaches on the web look fragile and/or unnecessarily complex to me.</p>
</div></description> + </item> + <item> + <title>8seg Technical Overview</title> + <link>http://jaseg.de/blog/8seg/</link> + <pubDate>Tue, 26 Dec 2023 15:26:00 +0100</pubDate> + <guid>http://jaseg.de/blog/8seg/</guid> + <description><div class="document">


<p>8seg is a large-scale LED light art installation that displays text on a 1.5 meter high, 30 meter wide 8-segment display made from cheap LED tape.</p>
</div></description> + </item> + <item> + <title>KiMesh</title> + <link>http://jaseg.de/projects/kimesh/</link> + <pubDate>Wed, 04 Oct 2023 23:42:00 +0200</pubDate> + <guid>http://jaseg.de/projects/kimesh/</guid> + <description><div class="document">


<p>KiMesh is a KiCad plugin that automatically creates security meshes with two or traces covering an arbitrarily-shaped outline on the board.</p>
</div></description> + </item> + <item> + <title>Ubiquiti EdgeRouter on Deutsche Telekom GPON Fiber</title> + <link>http://jaseg.de/blog/telekom-gpon-sfp/</link> + <pubDate>Mon, 21 Feb 2022 20:00:00 +0100</pubDate> + <guid>http://jaseg.de/blog/telekom-gpon-sfp/</guid> + <description><div class="document">


<p>Short tutorial on getting a Deutsche Telekom GPON internet connection running using a SFP ONU unit in an Ubiquiti EdgeRouter.</p>
</div></description> + </item> + <item> + <title>New Paper on Inertial Hardware Security Modules</title> + <link>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</link> + <pubDate>Tue, 23 Nov 2021 23:42:20 +0100</pubDate> + <guid>http://jaseg.de/blog/ihsm-worlds-first-diy-hsm/</guid> + <description><div class="document">


<p>Paper announcement: We have published a paper on how you can DIY a tamper-sensing hardware security module from any single-board computer using a moving tamper-sensing mesh made from cheap PCBs.</p>
</div></description> + </item> + <item> + <title>Kicad Mesh Plugin</title> + <link>http://jaseg.de/blog/kicad-mesh-plugin/</link> + <pubDate>Tue, 18 Aug 2020 13:15:39 +0200</pubDate> + <guid>http://jaseg.de/blog/kicad-mesh-plugin/</guid> + <description><div class="document">


<p>I wrote a little KiCad plugin that you can use to create security meshes, heaters and other things where you need one or more traces cover the entire surface of a PCB. The plugin supports arbitrary PCB shapes, cutouts, and can route around existing footprints and traces on the PCB.</p>
</div></description> + </item> + <item> + <title>Private Contact Discovery</title> + <link>http://jaseg.de/blog/private-contact-discovery/</link> + <pubDate>Sat, 22 Jun 2019 10:30:00 +0800</pubDate> + <guid>http://jaseg.de/blog/private-contact-discovery/</guid> + <description><div class="document">


<p>I gave a short introduction into Private Contact Discovery protocols at our university workgroup.</p>
</div></description> + </item> + <item> + <title>Hardware Security Module Basics</title> + <link>http://jaseg.de/blog/hsm-basics/</link> + <pubDate>Fri, 17 May 2019 15:29:20 +0800</pubDate> + <guid>http://jaseg.de/blog/hsm-basics/</guid> + <description><div class="document">


<p>I gave a short introduction into Hardware Security Modules at our university workgroup, including an overview on interesting research directions.</p>
</div></description> + </item> + <item> + <title>How to talk to your microcontroller over serial</title> + <link>http://jaseg.de/blog/serial-protocols/</link> + <pubDate>Sat, 19 May 2018 08:09:46 +0200</pubDate> + <guid>http://jaseg.de/blog/serial-protocols/</guid> + <description><div class="document">


<p>Scroll to the end for the <a class="reference internal" href="#conclusion">TL;DR</a>.</p>
<p>In this article I will give an overview on the protocols spoken on serial ports, highlighting common pitfalls. I will
summarize some points on how to design a serial protocol that is simple to implement and works reliably even under error
conditions.</p>
<p>If you have done low-level microcontroller firmware you will regularly have had to stuff some data up a serial port to
another microcontroller or to a computer. In the age of USB, an old-school serial port is still the simplest and
quickest way to get communication to a control computer up and running. Integrating a ten thousand-line USB stack into
your firmware and writing the necessary low-level drivers on the host side might take days. Poking a few registers to
set up your UART to talk to an external hardware USB to serial converter is a matter of minutes.</p></div></description> + </item> + <item> + <title>Thor's Hammer</title> + <link>http://jaseg.de/blog/thors-hammer/</link> + <pubDate>Thu, 03 May 2018 11:59:37 +0200</pubDate> + <guid>http://jaseg.de/blog/thors-hammer/</guid> + <description><div class="document">


<p>In case you were having an inferiority complex because your friends' IBM Model M keyboards are so much louder than the shitty rubber dome freebie you got with your pc... Here's the solution: Thor's Hammer, a simple typing cadence enhancer for PS/2 keyboards.</p>
</div></description> + </item> + <item> + <title>32-Channel LED tape driver</title> + <link>http://jaseg.de/blog/multichannel-led-driver/</link> + <pubDate>Wed, 02 May 2018 11:31:14 +0200</pubDate> + <guid>http://jaseg.de/blog/multichannel-led-driver/</guid> + <description><div class="document">


<p>Together, a friend and I outfitted the small staircase at Berlin's Chaos Computer Club with nice, shiny RGB-WW LED tape for ambient lighting. For this installation, I made a 32-channel LED driver that achieves high dynamic range on all 32 channels using a cheap microcontroller by using Binary Code Modulation.</p>
</div></description> + </item> + <item> + <title>Wifi Led Driver</title> + <link>http://jaseg.de/blog/wifi-led-driver/</link> + <pubDate>Wed, 02 May 2018 11:31:03 +0200</pubDate> + <guid>http://jaseg.de/blog/wifi-led-driver/</guid> + <description><div class="document">


<p>After the multichannel LED driver was completed, I was just getting used to controlling LEDs at 14-bit resolution. I liked the board we designed in this project, but at 32 channels it was a bit large for most use cases. Sometimes I just want to pop a piece of LED tape or two somewhere, but I don't need a full 32 channels of control. I ended up thinking that a smaller version of the 32-channel driver that didn't require a separate control computer would be handy. So I sat down and designed a variant of the design with only 8 channels instead of 32 and an on-board ESP8266 module instead of the RS485 transceiver for WiFi connectivity.</p>
</div></description> + </item> + <item> + <title>LED Characterization</title> + <link>http://jaseg.de/blog/led-characterization/</link> + <pubDate>Wed, 02 May 2018 11:18:38 +0200</pubDate> + <guid>http://jaseg.de/blog/led-characterization/</guid> + <description><div class="document">


<p>Recently, I have been working on a small driver for ambient lighting using 12V LED strips like you can get inexpensively from China. I wanted to be able to just throw one of these somewhere, stick down some LED tape, hook it up to a small transformer and be able to control it through Wifi. When I was writing the firmware, I noticed that when fading between different colors, the colors look <em>all wrong</em>! This observation led me down a rabbit hole of color perception and LED peculiarities.</p>
</div></description> + </item> + <item> + <title>8seg</title> + <link>http://jaseg.de/projects/8seg/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/8seg/</guid> + <description><div class="document">


<p>8seg is an experimental textual display. It is made from a 45m by 1.5m large lacework banner that can be put up in a variety of spaces, conforming to the space's size and shape through bending and folding.</p>
</div></description> + </item> + <item> + <title>About jaseg</title> + <link>http://jaseg.de/about/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/about/</guid> + <description><div class="document">


<div class="section" id="about">
<h2>About</h2>
<p>Hej, I'm Jan, or jaseg. At the moment I'm doing a PhD (Dr.-Ing.) at TU Darmstadt in Computer Science, specializing on
Hardware Security. This is my personal website where I publish things that I find interesting.</p>
<p>I self-host my code at <a class="reference external" href="https://git.jaseg.de/">git.jaseg.de</a>, but I am also on <a class="reference external" href="https://github.com/jaseg">github</a>
and on <a class="reference external" href="https://gitlab.com/neinseg">gitlab</a>. I use github for issue tracking for some of my projects such as
<a class="reference external" href="https://github.com/jaseg/gerbolyze">gerbolyze</a> and <a class="reference external" href="https://github.com/jaseg/python-mpv">python-mpv</a>. I maintain
the <a class="reference external" href="https://pypi.org/project/python-mpv/">python-mpv</a> and <a class="reference external" href="https://pypi.org/project/gerbolyze/">gerbolyze</a> python
packages on PyPI. Release tags on these two repositories are signed with the release signing key found <a class="reference external" href="https://github.com/jaseg.gpg">on github</a> and below.</p></div></description> + </item> + <item> + <title>Gerbolyze</title> + <link>http://jaseg.de/projects/gerbolyze/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/gerbolyze/</guid> + <description><div class="document">


<p>Gerbolyze is a tool that allows the modification of Gerber PCB artwork with a vector graphics editor like Inkscape. Gerbolyze directly converts between SVG and Gerber, and accurately reproduces details that other tools can not.</p>
</div></description> + </item> + <item> + <title>Gerbonara</title> + <link>http://jaseg.de/projects/gerbonara/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/gerbonara/</guid> + <description><div class="document">


<p>Gerbonara is a user-friendly, powerful tool for reading, writing, modification and rendering of Gerber PCB artwork from the command line or from Python code. Gerbonara supports the Gerber dialects of all industry-standard EDA tools.</p>
</div></description> + </item> + <item> + <title>Impressum</title> + <link>http://jaseg.de/imprint/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/imprint/</guid> + <description><div class="document">


<div class="section" id="impressum">
<h2>Impressum</h2>
<p>
Sebastian Götte<br/>
c/o Praxis Dr. Götte<br/>
Krankenhausstr. 1a<br/>
54634 Bitburg<br/>
imprint@jaseg.net
</p>

Inhaltlich Verantwortlicher gem. § 55 II RStV: Sebastian Götte (Anschrift s.o.)</div>
<div class="section" id="lizenz-dieser-seite">
<h2>Lizenz dieser Seite</h2>
Dieses Werk ist lizenziert unter einer
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">
 Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International
 Lizenz (CC-BY-NC-SA)
</a>.<br/>
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/4.0/">
 <img alt="Creative Commons Lizenzvertrag" style="border-width:0"
 src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png" data-pagefind-ignore/>
</a></div>
<div class="section" id="haftungsbeschrankung-fur-inhalte-der-website">
<h2>Haftungsbeschränkung für Inhalte der Website</h2>
<p>Gemäß § 7 Abs. 1 TMG ist der Verantwortliche der Website i. S. v. § 5 TMG für eigene Informationen, die er zur Nutzung
bereithält, nach den allgemeinen Gesetzen verantwortlich.</p></div></description> + </item> + <item> + <title>lolcat-c</title> + <link>http://jaseg.de/projects/lolcat-c/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/lolcat-c/</guid> + <description><div class="document">


<p>lolcat-c is a small, high-performance re-implementation of the <a class="reference external" href="https://github.com/busyloop/lolcat">lolcat</a> rainbow cat utility. lolcat-c is meant as a lolcat that you can actually use in production. It is fast, not slowing down whatever you pipe through it, and it robustly handles real-world terminal output including escape sequences.</p>
</div></description> + </item> + <item> + <title>python-mpv</title> + <link>http://jaseg.de/projects/python-mpv/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/python-mpv/</guid> + <description><div class="document">


<p>python-mpv is a small, ctypes-based Python library wrapping the libmpv media player library. Despite its small size and simple API, python-mpv allows advanced control over libmpv and beyond simple remote control of mpv can be used to embed mpv in OpenGL, Qt, and GTK-based Python applications.</p>
</div></description> + </item> + <item> + <title>svg-flatten</title> + <link>http://jaseg.de/projects/svg-flatten/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/svg-flatten/</guid> + <description><div class="document">


<p>svg-flatten is a command-line utility that performs vector occlusion and clipping on SVG files, producing a flattened SVG file without overlapping elements, without changing what the file looks like. svg-flatten is used as a part of gerbolyze.</p>
</div></description> + </item> + <item> + <title>wsdiff</title> + <link>http://jaseg.de/projects/wsdiff/</link> + <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate> + <guid>http://jaseg.de/projects/wsdiff/</guid> + <description><div class="document">


<p>wsdiff is a command-line utility that produces self-contained, syntax-highlighted, HTML-formatted diffs that support both unified and side-by-side diffs from a single source file using nothing but CSS magic.</p>
</div></description> + </item> + </channel> +</rss> |