<?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 The Total Token Vortex</title><link>https://total-token-vortex.vercel.app/tags/programming/</link><description>Recent content in Programming on The Total Token Vortex</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Maciej Kalisiak</copyright><lastBuildDate>Wed, 01 Apr 2026 00:00:40 -0400</lastBuildDate><atom:link href="https://total-token-vortex.vercel.app/tags/programming/index.xml" rel="self" type="application/rss+xml"/><item><title>Migrating to Hugo (from Blogger)</title><link>https://total-token-vortex.vercel.app/posts/2026/migrating-to-hugo/</link><pubDate>Wed, 01 Apr 2026 00:00:40 -0400</pubDate><guid>https://total-token-vortex.vercel.app/posts/2026/migrating-to-hugo/</guid><description>&lt;p&gt;Ooof, that was rough. Blogger underwent many migrations since I used it last, and whatever migration tooling people have come up with in the intervening years, all are now broken, unsurprisingly. After much Gemini poking, back-and-forth, we arrived at this, which &amp;ldquo;works&amp;rdquo; (reads atom.feed):&lt;/p&gt;</description></item><item><title>Getting the pretty 'tree' for 'git log'</title><link>https://total-token-vortex.vercel.app/posts/2024/getting-the-pretty-tree-for-git-log/</link><pubDate>Tue, 20 Aug 2024 17:09:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2024/getting-the-pretty-tree-for-git-log/</guid><description>&lt;p&gt;See: &lt;a href="https://stackoverflow.com/questions/1057564/pretty-git-branch-graphs" target="_blank" rel="noreferrer"&gt;https://stackoverflow.com/questions/1057564/pretty-git-branch-graphs&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;In short, can use this one-liner:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;git log &amp;ndash;all &amp;ndash;decorate &amp;ndash;oneline &amp;ndash;graph&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;You can also make this into its own &amp;lsquo;git&amp;rsquo; command (&amp;lsquo;git adog&amp;rsquo;) using:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt; git config &amp;ndash;global alias.adog &amp;ldquo;log &amp;ndash;all &amp;ndash;decorate &amp;ndash;oneline &amp;ndash;graph&amp;rdquo;&lt;/p&gt;</description></item><item><title>The many merge options for 'git pull'</title><link>https://total-token-vortex.vercel.app/posts/2024/the-many-merge-options-for-git-pull/</link><pubDate>Tue, 20 Aug 2024 17:03:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2024/the-many-merge-options-for-git-pull/</guid><description>&lt;p&gt;Ran into this (massive hint printout from git when attempting pull)&lt;/p&gt;
&lt;blockquote&gt;&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: You have divergent branches and need to specify how to reconcile them.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: You can do so by running one of the following commands sometime before
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: your next pull:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: git config pull.rebase false # merge
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: git config pull.rebase true # rebase
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: git config pull.ff only # fast-forward only
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: You can replace &amp;#34;git config&amp;#34; with &amp;#34;git config --global&amp;#34; to set a default
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: preference for all repositories. You can also pass --rebase, --no-rebase,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: or --ff-only on the command line to override the configured default per
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Hint: invocation.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Git failed with a fatal error.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Git failed with a fatal error.
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Need to specify how to reconcile divergent branches.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/blockquote&gt;&lt;p&gt;And then thankfully came across this &lt;a href="https://stackoverflow.com/questions/71768999/how-to-merge-when-you-get-error-hint-you-have-divergent-branches-and-need-to-s" target="_blank" rel="noreferrer"&gt;VERY informative StackOverflow post&lt;/a&gt;:&lt;/p&gt;</description></item><item><title>cloning a github repo</title><link>https://total-token-vortex.vercel.app/posts/2011/cloning-a-github-repo/</link><pubDate>Mon, 17 Oct 2011 00:41:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2011/cloning-a-github-repo/</guid><description>&lt;p&gt;Steps needed to download my repo from github to a new computer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;install git&lt;/li&gt;
&lt;li&gt;generate SSH key&lt;br&gt;
ssh-keygen -t rsa -C &amp;ldquo;your_email@youremail.com&amp;rdquo;&lt;/li&gt;
&lt;li&gt;add public key to github keys associated with my identity&lt;/li&gt;
&lt;li&gt;have ssh-agent forget identies&lt;br&gt;
ssh-add -d&lt;/li&gt;
&lt;li&gt;now reread new ones&lt;br&gt;
ssh-add&lt;/li&gt;
&lt;li&gt;verify ssh setup is working (see &lt;a href="http://help.github.com/ssh-issues/" target="_blank" rel="noreferrer"&gt;http://help.github.com/ssh-issues/&lt;/a&gt;)&lt;br&gt;
ssh -vT &lt;a href="mailto:git@github.com" &gt;git@github.com&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;clone repo&lt;br&gt;
git clone git://github.com/maciekk/emacs.git&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note that did not have to do a &amp;ldquo;git init&amp;rdquo; or &amp;ldquo;git remote add&amp;rdquo;.&lt;/p&gt;</description></item><item><title/><link>https://total-token-vortex.vercel.app/posts/2011/post-1508366904087189637/</link><pubDate>Sun, 16 Oct 2011 23:09:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2011/post-1508366904087189637/</guid><description>&lt;p&gt;Steps needed to download my repo from github to new computer:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;install git&lt;/li&gt;
&lt;li&gt;ssh keygen&lt;/li&gt;
&lt;li&gt;add public key to github keys associated with my identity&lt;/li&gt;
&lt;li&gt;ssh-add -d  (have ssh-agent forget identies)&lt;/li&gt;
&lt;li&gt;ssh-add  (now reread new ones)&lt;/li&gt;
&lt;li&gt;ssh -vT &lt;a href="mailto:git@github.com" &gt;git@github.com&lt;/a&gt;  to verify ssh setup is working&lt;/li&gt;
&lt;li&gt;git clo&lt;/li&gt;
&lt;/ul&gt;
&lt;hr&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Claude (migration note):&lt;/strong&gt; &lt;em&gt;Empty or missing title. Filename is a numeric post ID (likely a Blogger import artifact). Missing title and truncated content (ends mid-sentence) — strong candidate for deletion.&lt;/em&gt;&lt;/p&gt;</description></item><item><title>'hot pixels' in digital cameras</title><link>https://total-token-vortex.vercel.app/posts/2009/hot-pixels-in-digital-cameras/</link><pubDate>Tue, 20 Jan 2009 21:39:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2009/hot-pixels-in-digital-cameras/</guid><description>&lt;p&gt;After playing around with my new Nikon D90, I noticed that some of my dark pictures have a red spot near upper right corner. It turns out this is a &amp;ldquo;hot pixel&amp;rdquo;. Further research led me to the following interesting pages:&lt;/p&gt;</description></item><item><title>research notes from DSLR hunt</title><link>https://total-token-vortex.vercel.app/posts/2009/research-notes-from-dslr-hunt/</link><pubDate>Thu, 15 Jan 2009 15:53:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2009/research-notes-from-dslr-hunt/</guid><description>&lt;p&gt;Camera reviews at dpreview.com:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.dpreview.com/reviews/nikond80/" target="_blank" rel="noreferrer"&gt;http://www.dpreview.com/reviews/nikond80/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dpreview.com/reviews/nikond90/" target="_blank" rel="noreferrer"&gt;http://www.dpreview.com/reviews/nikond90/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.dpreview.com/reviews/canoneos450d/" target="_blank" rel="noreferrer"&gt;http://www.dpreview.com/reviews/canoneos450d/&lt;/a&gt; (Canon EOS Rebel XSi)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Lens reviews:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.the-digital-picture.com/Reviews/Canon-EF-S-17-85mm-f-4-5.6-IS-USM-Lens-Review.aspx" target="_blank" rel="noreferrer"&gt;http://www.the-digital-picture.com/Reviews/Canon-EF-S-17-85mm-f-4-5.6-IS-USM-Lens-Review.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.photozone.de/canon-eos/181-canon-ef-s-18-55mm-f35-56-is-test-report--review" target="_blank" rel="noreferrer"&gt;http://www.photozone.de/canon-eos/181-canon-ef-s-18-55mm-f35-56-is-test-report--review&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slrgear.com/reviews/showproduct.php/product/355/cat/all" target="_blank" rel="noreferrer"&gt;http://www.slrgear.com/reviews/showproduct.php/product/355/cat/all&lt;/a&gt; (Tamron 17-50mm f/2.8 Di II &amp;hellip;)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slrgear.com/reviews/showproduct.php/product/349/cat/31" target="_blank" rel="noreferrer"&gt;http://www.slrgear.com/reviews/showproduct.php/product/349/cat/31&lt;/a&gt; (Sigma 17-70mm f/2.8-4.5 DC Macro)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.slrgear.com/reviews/showproduct.php/product/136/cat/11" target="_blank" rel="noreferrer"&gt;http://www.slrgear.com/reviews/showproduct.php/product/136/cat/11&lt;/a&gt; (Canon EF-S 17-85mm f/4-5.6 IS USM)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.the-digital-picture.com/Reviews/Tamron-17-50mm-f-2.8-XR-Di-II-Lens-Review.aspx" target="_blank" rel="noreferrer"&gt;http://www.the-digital-picture.com/Reviews/Tamron-17-50mm-f-2.8-XR-Di-II-Lens-Review.aspx&lt;/a&gt; (Tamron 17-50mm f/2.8)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Shopping links:&lt;/p&gt;</description></item><item><title>bash scripting docs</title><link>https://total-token-vortex.vercel.app/posts/2008/bash-scripting-docs/</link><pubDate>Tue, 07 Oct 2008 17:40:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2008/bash-scripting-docs/</guid><description>&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.faqs.org/docs/bashman/bashref.html#SEC_Top" target="_blank" rel="noreferrer"&gt;Bash Reference Manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.org/LDP/abs/html/index.html" target="_blank" rel="noreferrer"&gt;Advanced Bash-Scripting Guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.math.ucdavis.edu/%7Ezjohnson/doc/Adv-Bash-Scr-HOWTO/index.html" target="_blank" rel="noreferrer"&gt;Advanced Bash-Scripting HOWTO&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html#toc7" target="_blank" rel="noreferrer"&gt;BASH Programming - Introduction HOW-TO&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Windows STOP messages</title><link>https://total-token-vortex.vercel.app/posts/2007/windows-stop-messages/</link><pubDate>Mon, 12 Nov 2007 21:28:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2007/windows-stop-messages/</guid><description>&lt;p&gt;I just had Windows reboot out of the blue (no BSOD, just as if I pressed RESET). Looking at the system event log it seems Windows ran into trouble:
Event Type: Information
Event Source: Save Dump
Event Category: None
Event ID: 1001
Date: 12/11/2007
Time: 3:19:32 PM
User: N/A
Computer: SKYNET
Description:
The computer has rebooted from a bugcheck. The bugcheck was: 0x100000d1 (0x00000000, 0x00000002, 0x00000001, 0xba940dc2). A dump was saved in: C:\WINDOWS\Minidump\Mini111207-01.dmp.
For more information, see Help and Support Center at &lt;a href="http://go.microsoft.com/fwlink/events.asp" target="_blank" rel="noreferrer"&gt;http://go.microsoft.com/fwlink/events.asp&lt;/a&gt;.
A useful website detailing the STOP codes: &lt;a href="http://aumha.org/a/stop.htm" target="_blank" rel="noreferrer"&gt;http://aumha.org/a/stop.htm&lt;/a&gt;
Also of interest is the KB article on dealing with the minidumps: &lt;a href="http://support.microsoft.com/kb/315263" target="_blank" rel="noreferrer"&gt;http://support.microsoft.com/kb/315263&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Java links</title><link>https://total-token-vortex.vercel.app/posts/2007/java-links/</link><pubDate>Wed, 17 Oct 2007 18:07:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2007/java-links/</guid><description>&lt;p&gt;Java 6&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/javase/6/docs/" target="_blank" rel="noreferrer"&gt;JDK 6 Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html" target="_blank" rel="noreferrer"&gt;Setting the class path&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/getStarted/problems/index.html" target="_blank" rel="noreferrer"&gt;Lesson: Common Problems (and Their Solutions)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/javase/mvc/" target="_blank" rel="noreferrer"&gt;Java SE Application Design With MVC&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/ui/index.html" target="_blank" rel="noreferrer"&gt;Trail: Graphical User Interfaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/uiswing/layout/visual.html" target="_blank" rel="noreferrer"&gt;A Visual Guide to Layout Managers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;OpenGL in Java&lt;/p&gt;</description></item><item><title>the water charlatans</title><link>https://total-token-vortex.vercel.app/posts/2007/the-water-charlatans/</link><pubDate>Tue, 28 Aug 2007 15:49:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2007/the-water-charlatans/</guid><description>&lt;p&gt;This post is a cautionary tale, and a snapshot of all the relevant information I gathered in the process. It so happened that one day I get a phone call from a company &amp;ldquo;that deals with water quality&amp;rdquo;, and they claim that Cathy has done a survey with them, and has won some prize worth over $xxx (as a &amp;ldquo;thank you&amp;rdquo;). They wanted to know whether they can swing by sometime, drop it off, and do a free water test for us. As Cathy wasn&amp;rsquo;t home, I couldn&amp;rsquo;t check with her whether this was legitimate, so I said, what the hey, come on over. I was interested in the water test because I was wondering earlier whether we were suffering from excessive hardness of water here, but that&amp;rsquo;s another story.
6:30pm, the representative shows up. Sets up in the kitchen a row of plastic drinking cups, as if preparing for an elaborate shell game. Each cup is made to hold water from various sources (distilled, tap, Brita filtered, and various bottled waters in our house). He pulls out an upright binder with what seems like &amp;ldquo;informational material&amp;rdquo;. Oh oh, red flags start going off in my head!
First test is using a TDS (Total Dissolved Solids) meter. Distilled water obviously gets a very low reading. Tap water is higher. The readings for bottled water shoot up to 265. The &amp;ldquo;gentleman&amp;rdquo; claims that this reflects the amount of junk and pollutants in the water. In actuality, this is totally misleading. See &lt;a href="http://www.reefkeeping.com/issues/2004-04/rhf/feature/index.php" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt; for a full skinny on TDS measurement. It&amp;rsquo;s a bit of a misnomer, all it really does is detect charged ions in water, most of which are from the (benign, or even beneficial) hard water salts dissolved in the water (Calcium, etc.) The 265 p.p.m. figure for the bottled water was meant to impress and frighten us, but inspecting the label for the bottled waters in fact explicitly states that the expected mineral content in the waters is about 290 p.p.m., so if anything, the TDS reading for these waters was in fact a tad low.
I had a pretty strong sinking feeling at this point, that we&amp;rsquo;ve been conned into a sales pitch. The final touch was when the guy pulled out a precipitator test device for next round of testing. I&amp;rsquo;ve heard of these being used for scaremongering, and a quick check on the Net (I excused myself to grab my tea from upstairs) revealed to be the case, and also turned up this interesting &lt;a href="http://www.ene.gov.on.ca/envision/news/2004/120901.htm" target="_blank" rel="noreferrer"&gt;tidbit&lt;/a&gt; (government forbade this particular company to do chlorine testing without getting certified; I presume they were scaring residents with yet more deceptive tests).
Anyhow, in short, the company was &lt;a href="http://www.distilledwater.ca/" target="_blank" rel="noreferrer"&gt;Glacier Water Treatment Systems&lt;/a&gt; of Newmarket, Ontario. They sell water distillers for homes.
Links explaining the bogus nature of the precipitator test:&lt;/p&gt;</description></item><item><title>modifying the 'look-in' buttons in standard file dialog</title><link>https://total-token-vortex.vercel.app/posts/2007/modifying-the-look-in-buttons-in-standard-file-dialog/</link><pubDate>Fri, 24 Aug 2007 03:34:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2007/modifying-the-look-in-buttons-in-standard-file-dialog/</guid><description>&lt;p&gt;Standard file dialogs under Windows (2000 and higher?) have a set of five big buttons down the left side which you can click to be directly taken to the corresponding directories. It&amp;rsquo;s called the &amp;ldquo;Places bar&amp;rdquo;, and the buttons might be called &amp;ldquo;look-in&amp;rdquo; buttons. I went in search of how to modify them, as the default set was uterly useless to me. Here are interesting things I found:&lt;/p&gt;</description></item><item><title>alternatives to 'aglorithmic.sty'</title><link>https://total-token-vortex.vercel.app/posts/2005/alternatives-to-algorithmic-sty/</link><pubDate>Tue, 05 Jul 2005 03:04:00 +0000</pubDate><guid>https://total-token-vortex.vercel.app/posts/2005/alternatives-to-algorithmic-sty/</guid><description>&lt;p&gt;The TeX FAQ lists alternatives; see &lt;a href="http://www.tex.ac.uk/cgi-bin/texfaq2html?label=algorithms" target="_blank" rel="noreferrer"&gt;here&lt;/a&gt;
I think what I&amp;rsquo;ve been looking for is algorithmicx.sty, since it provides &amp;ldquo;procedure&amp;rdquo; and &amp;ldquo;function&amp;rdquo; blocks. newalg.sty looks good too.&lt;/p&gt;
&lt;hr&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;Claude (migration note):&lt;/strong&gt; &lt;em&gt;Filename renamed from &lt;code&gt;alternatives-to-aglorithmic-sty&lt;/code&gt; to &lt;code&gt;alternatives-to-algorithmic-sty&lt;/code&gt; (typo/encoding fix).&lt;/em&gt;&lt;/p&gt;</description></item></channel></rss>