<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Programming on /dev/urandom's dev site</title><link>https://devurandom.xyz/tags/programming/</link><description>Recent content in Programming on /dev/urandom's dev site</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Mon, 05 Jan 2026 14:11:24 +0300</lastBuildDate><atom:link href="https://devurandom.xyz/tags/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>cuda debugging notes</title><link>https://devurandom.xyz/tech/cuda_debugging/</link><pubDate>Wed, 19 May 2021 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/cuda_debugging/</guid><description>&lt;p&gt;So, turns out, when you run a program that uses CUDA, either directly or
indirectly (my program runs on CUDA, but uses OpenCL instead), &lt;a href="https://github.com/google/sanitizers/issues/629"&gt;there are
issues&lt;/a&gt; preventing &lt;code&gt;libasan&lt;/code&gt;
from working. More specifically, if you run a program with &lt;code&gt;libasan&lt;/code&gt;, the CUDA
libraries will not work, and the OpenCL ones will not display an NVIDIA platform
as available in the first place.&lt;/p&gt;
&lt;p&gt;From my experience, seems like there are similar issues preventing Valgrind from
working, either.&lt;/p&gt;</description></item><item><title>note on cpan</title><link>https://devurandom.xyz/tech/cpan/</link><pubDate>Tue, 23 Mar 2021 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/cpan/</guid><description>&lt;p&gt;Note to self: if your distro&amp;rsquo;s repositories don&amp;rsquo;t have a Perl package, it&amp;rsquo;s best
to install them from CPAN instead. A tool called &lt;code&gt;cpan minus&lt;/code&gt; (In Alpine, its
packaged as &lt;code&gt;perl-app-cpanminus&lt;/code&gt;) can do it easily, either installing packages
into one&amp;rsquo;s home directory or globally.&lt;/p&gt;</description></item><item><title>trying to do assembly-level debugging in gdb</title><link>https://devurandom.xyz/tech/gdb_assembly/</link><pubDate>Mon, 02 Nov 2020 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/gdb_assembly/</guid><description>&lt;p&gt;GDB seems to have been clearly made with source-level debugging in mind, the
kind where the source code of the program is available. Sometimes this is not
the case, or you just don&amp;rsquo;t want to bother looking for the source code. Here
I&amp;rsquo;ll put a bunch of useful commands.&lt;/p&gt;</description></item><item><title>assorted shell scripts</title><link>https://devurandom.xyz/tech/assorted_shell_scripts/</link><pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/assorted_shell_scripts/</guid><description>&lt;p&gt;shell scripts:&lt;/p&gt;
&lt;p&gt;grab lines from dictionary, convert them into up-to-16-byte strings, do a binary dump&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;for x in `cat input_words.txt`; do echo $x | tr -d \\n | dd ibs=16 conv=sync 2&amp;gt;/dev/null | xxd; done
&lt;/code&gt;&lt;/pre&gt;
&lt;hr&gt;
&lt;p&gt;convert a .vgz directory to a .vgm one, along with updating all the playlists:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;rename &amp;quot;.vgz&amp;quot; &amp;quot;.vgm.gz&amp;quot; *.vgz; gzip -d *.vgm.gz; sed -i &amp;quot;s/\.vgz/\.vgm/&amp;quot; *.m3u
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;(requires rename from &lt;code&gt;util-linux&lt;/code&gt; and not from perl)&lt;/p&gt;</description></item><item><title>profiling utility hints</title><link>https://devurandom.xyz/tech/profiling_hints/</link><pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/profiling_hints/</guid><description>&lt;p&gt;Some small hints for profiling utilities used on Linux systems.&lt;/p&gt;</description></item><item><title>shell parameter expansion</title><link>https://devurandom.xyz/tech/shell_parameter_expansion/</link><pubDate>Sun, 31 May 2020 00:00:00 +0000</pubDate><guid>https://devurandom.xyz/tech/shell_parameter_expansion/</guid><description>&lt;p&gt;This is a small cheat sheet to remind me of how parameter expansion works in
unix shells.&lt;/p&gt;</description></item></channel></rss>