<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Posts on Unigiri</title>
    <link>https://unigiri.gitlab.io/en/posts/</link>
    <description>Recent content in Posts on Unigiri</description>
    <image>
      <title>Unigiri</title>
      <url>https://unigiri.gitlab.io/images/unigiri.png</url>
      <link>https://unigiri.gitlab.io/images/unigiri.png</link>
    </image>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Thu, 22 Jan 2026 10:28:49 +0900</lastBuildDate>
    <atom:link href="https://unigiri.gitlab.io/en/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Hyprland installation steps for Arch Linux</title>
      <link>https://unigiri.gitlab.io/en/posts/install-hyprland-on-arch-linux/</link>
      <pubDate>Thu, 22 Jan 2026 10:28:49 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/install-hyprland-on-arch-linux/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Installing &lt;a href=&#34;https://hypr.land/&#34;&gt;Hyprland&lt;/a&gt; as a compositor for &lt;a href=&#34;https://archlinux.org/&#34;&gt;Arch Linux&lt;/a&gt;&lt;br&gt;
Note that what a compositor is, features of Hyprland, and comparisons with other compositors etc. are omitted here&lt;/p&gt;
&lt;h2 id=&#34;installing-hyprland&#34;&gt;Installing Hyprland&lt;/h2&gt;
&lt;p&gt;Install according to &lt;a href=&#34;https://wiki.hypr.land/Getting-Started/Installation/&#34;&gt;Installation – Hyprland Wiki&lt;/a&gt;&lt;br&gt;
Since installing on Arch Linux here, run the following command&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -S hyprland
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;installing-fonts&#34;&gt;Installing Fonts&lt;/h2&gt;
&lt;p&gt;Hyprland uses &lt;code&gt;sans-serif&lt;/code&gt; or &lt;code&gt;noto-fonts&lt;/code&gt; as the default configuration font, so install it beforehand&lt;/p&gt;</description>
    </item>
    <item>
      <title>Arch Linux installation guide</title>
      <link>https://unigiri.gitlab.io/en/posts/install-arch-linux/</link>
      <pubDate>Thu, 22 Jan 2026 10:19:09 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/install-arch-linux/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Documenting the installation procedure for &lt;a href=&#34;https://archlinux.org/&#34;&gt;Arch Linux&lt;/a&gt;&lt;br&gt;
Note that an overview of Arch Linux and comparisons with other OSes are omitted&lt;/p&gt;
&lt;h2 id=&#34;iso-installation&#34;&gt;ISO Installation&lt;/h2&gt;
&lt;p&gt;Download iso, sig, and b2sums.txt from the download page, and verify with the following commands&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;b2sum -c b2sums.txt
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --auto-key-locate clear,wkd -v --locate-external-key pierre@archlinux.org
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gpg --verify archlinux-x86_64.iso.sig archlinux-2025.12.01-x86_64.iso
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;creating-usb-installation-media&#34;&gt;Creating USB Installation Media&lt;/h2&gt;
&lt;h3 id=&#34;confirming-usb-drive-name&#34;&gt;Confirming USB Drive Name&lt;/h3&gt;
&lt;p&gt;Find the USB drive name with the following command, and confirm it is not mounted using &lt;code&gt;lsblk&lt;/code&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>An article about my favourite cooking recipes</title>
      <link>https://unigiri.gitlab.io/en/posts/my-favorite-cooking-recipes-2025/</link>
      <pubDate>Fri, 12 Dec 2025 00:00:00 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/my-favorite-cooking-recipes-2025/</guid>
      <description>Tabletop Games Chest Advent Calendar 2025 Day 12</description>
    </item>
    <item>
      <title>An article about cryptography</title>
      <link>https://unigiri.gitlab.io/en/posts/i-love-cryptography/</link>
      <pubDate>Fri, 06 Dec 2024 23:13:01 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/i-love-cryptography/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Hello. I go by Unigiri.&lt;/p&gt;
&lt;p&gt;This is an article for Day 7 of &lt;a href=&#34;https://adventar.org/calendars/9950&#34;&gt;Table Game Tansu Advent Calendar 2024&lt;/a&gt;, but the content has nothing to do with board games or TRPGs.&lt;br&gt;
Like &lt;a href=&#34;https://unigiri.gitlab.io/notes/my-favorite-songs/&#34;&gt;last year&lt;/a&gt;, this is an article where I talk about things I love.&lt;br&gt;
This year, I&amp;rsquo;ll talk about cryptography to my heart&amp;rsquo;s content.&lt;/p&gt;
&lt;p&gt;Given the motivation of just filling a single open slot in the schedule, I&amp;rsquo;ll barely revise, write in colloquial style, and won&amp;rsquo;t fact-check.&lt;br&gt;
I&amp;rsquo;d be happy if you read it with the feeling of listening to someone from the same lab spouting off casually over drinks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>An article about my favourite songs</title>
      <link>https://unigiri.gitlab.io/en/posts/my-favorite-songs/</link>
      <pubDate>Tue, 05 Dec 2023 17:00:00 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/my-favorite-songs/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This article is for Day 5 of &lt;a href=&#34;https://adventar.org/calendars/8983&#34;&gt;Table Game Tansu Advent Calendar 2023&lt;/a&gt;.&lt;br&gt;
Day 4 was Mogukun☆&amp;rsquo;s &lt;a href=&#34;http://moumoon.jp/PCS/m%e3%83%aa%e3%83%bc%e3%82%b0%ef%bc%88%e9%ba%bb%e9%9b%80%ef%bc%89%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e8%80%83%e5%af%9f/&#34;&gt;Reflections on the M.League (Mahjong)&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The advent calendar season has come again this year!&lt;br&gt;
I go by Unigiri.&lt;/p&gt;
&lt;p&gt;On September 26 of this year, I posted the following image on &lt;a href=&#34;https://tablegame.mstdn.cloud&#34;&gt;Tansu&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://tablegame.mstdn.cloud/@unigiri/111127497256650263&#34;&gt;https://tablegame.mstdn.cloud/@unigiri/111127497256650263&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;これは寝られないのでなんとなく作った好きな音楽アルバムのコラージュ42枚です&lt;/p&gt;
&lt;/blockquote&gt;
&lt;blockquote&gt;
&lt;p&gt;(Translated) I couldn&amp;rsquo;t sleep, so I just put together these 42 collages of my favourite music albums.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tips for winning at 6 Nimmt! (6-player version)</title>
      <link>https://unigiri.gitlab.io/en/posts/6nimmt-tips/</link>
      <pubDate>Thu, 01 Dec 2022 00:00:00 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/6nimmt-tips/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This article is for Day 1 of &lt;a href=&#34;https://adventar.org/calendars/7799&#34;&gt;Table Game Tansu Advent Calendar 2022&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Are you familiar with the card game &lt;a href=&#34;https://en.wikipedia.org/wiki/6_Nimmt!&#34;&gt;6 nimmt!&lt;/a&gt;?&lt;br&gt;
Since this article won&amp;rsquo;t make sense without knowing the rules of 6 nimmt!, I&amp;rsquo;ll proceed on the assumption that you are familiar with them. &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&#34;1-introduction&#34;&gt;1. Introduction&lt;/h2&gt;
&lt;p&gt;6 nimmt! is a game whose strategy changes dramatically depending on the number of players and whether variant rules are adopted.&lt;br&gt;
Here, I&amp;rsquo;ll focus on the version I usually play: 6 players with no variant rules (hereafter referred to as &amp;ldquo;this article&amp;rsquo;s rules&amp;rdquo;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Quarto Solvers&#39; Club 2021 Activity Report</title>
      <link>https://unigiri.gitlab.io/en/posts/summary-of-quarto-2021/</link>
      <pubDate>Thu, 09 Dec 2021 17:17:37 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/summary-of-quarto-2021/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This article is for Day 9 of &lt;a href=&#34;https://adventar.org/calendars/6259&#34;&gt;Table Game Tansu Advent Calendar 2021&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The previous article was Kurenainoushi-san&amp;rsquo;s &lt;a href=&#34;https://note.com/kurenainousi/n/n450cd532fa2f&#34;&gt;Texas Hold&amp;rsquo;em Poker Rules Explanation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Starting April 11 of this year, the Quarto Solving by Computer Group (hereafter, Quarto-kai) has been holding regular sessions with four members: &lt;a href=&#34;https://tablegame.mstdn.cloud/@anno_kgrzk&#34;&gt;Kagurazaka Annon-san&lt;/a&gt;, &lt;a href=&#34;https://tablegame.mstdn.cloud/@Arbolpueblo&#34;&gt;Kimunii-san&lt;/a&gt;, &lt;a href=&#34;https://tablegame.mstdn.cloud/@ATESAKI/&#34;&gt;Atesaki-san&lt;/a&gt;, and myself. This article summarizes the founding history of Quarto-kai and its 2021 activities.&lt;/p&gt;
&lt;p&gt;Prerequisite knowledge such as Quarto&amp;rsquo;s rules will not be explained here. Please refer to external sites such as &lt;a href=&#34;https://nicobodo.com/archives/27464438.html&#34;&gt;Quarto! | Nicobodo | Board Game Review &amp;amp; Info Blog&lt;/a&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The ultimate way for iPhone users to stop oversleeping</title>
      <link>https://unigiri.gitlab.io/en/posts/the-ultimate-way-for-iphone-users-to-stop-oversleeping/</link>
      <pubDate>Wed, 01 Dec 2021 17:15:57 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/the-ultimate-way-for-iphone-users-to-stop-oversleeping/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This article is for Day 1 of &lt;a href=&#34;https://adventar.org/calendars/6259&#34;&gt;Table Game Tansu Advent Calendar 2021&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Last time was Raira&amp;rsquo;s &lt;a href=&#34;https://raira-trpg.blogspot.com/2020/12/i-wanna-sing-carol.html&#34;&gt;I wanna sing the Carol( )&lt;/a&gt; on the final day of 2020.&lt;/p&gt;
&lt;p&gt;This article is intended for iPhone users who are not suffering from insomnia.&lt;br&gt;
If you use Android or another smartphone, please consider purchasing an iPhone while reading this article.&lt;br&gt;
If you suffer from insomnia, please be outraged that such an infuriating article was written.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Thoughts on board games and tabletop RPGs</title>
      <link>https://unigiri.gitlab.io/en/posts/tansu-advent-calendar-2020/</link>
      <pubDate>Sat, 12 Dec 2020 03:51:58 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/tansu-advent-calendar-2020/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;h1 id=&#34;thoughts-on-board-games-and-trpgs&#34;&gt;Thoughts on Board Games and TRPGs&lt;/h1&gt;
&lt;p&gt;This is the Day 12 article for &lt;a href=&#34;https://adventar.org/calendars/6102&#34;&gt;Tansu Advent Calendar 2020&lt;/a&gt;.&lt;br&gt;
Yesterday was makino&amp;rsquo;s &lt;a href=&#34;https://makimochi89.hatenablog.com/entry/2020/12/11/015845&#34;&gt;Thoughts on All Classes, Types, and Ode Specialties in Shoujo Tenrankai&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;1-who-are-you&#34;&gt;1. Who are you?&lt;/h2&gt;
&lt;p&gt;I go by &lt;a href=&#34;https://tablegame.mstdn.cloud/@unigiri&#34;&gt;Unigiri&lt;/a&gt;. Read as &amp;ldquo;unigiri&amp;rdquo;.&lt;br&gt;
On &lt;a href=&#34;https://tablegame.mstdn.cloud&#34;&gt;https://tablegame.mstdn.cloud&lt;/a&gt; (commonly known as Tansu), I enjoy board games and TRPGs in roughly equal proportions.&lt;/p&gt;
&lt;p&gt;I&amp;rsquo;ve listed the board games I&amp;rsquo;ve experienced &lt;a href=&#34;https://unigiri.gitlab.io/article/%E7%B5%8C%E9%A8%93%E6%B8%88%E3%81%BF%E3%83%9C%E3%83%BC%E3%83%89%E3%82%B2%E3%83%BC%E3%83%A0%E4%B8%80%E8%A6%A7/&#34;&gt;here&lt;/a&gt; and the TRPGs &lt;a href=&#34;https://unigiri.gitlab.io/article/%E7%B5%8C%E9%A8%93%E6%B8%88%E3%81%BFtrpg%E4%B8%80%E8%A6%A7/&#34;&gt;here&lt;/a&gt;.&lt;br&gt;
For TRPGs, I&amp;rsquo;ve been exclusively a PL so far, but I&amp;rsquo;m planning to GM for the first time soon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ICPC 2019 Asia Yokohama Regional Participation Report</title>
      <link>https://unigiri.gitlab.io/en/posts/icpc2019-asia-yokohama-regional/</link>
      <pubDate>Wed, 04 Dec 2019 20:26:44 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/icpc2019-asia-yokohama-regional/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I also participated as a staff member this year.&lt;/p&gt;
&lt;h2 id=&#34;day-1&#34;&gt;Day 1&lt;/h2&gt;
&lt;p&gt;Assembled at Yokohama Sanbo Hall at 9 AM. Completed various preparations such as receiving T-shirts and name tags, then held the morning meeting.&lt;br&gt;
After that, finished the rehearsal test, and as the reception team, checked the area near the entrance and confirmed the procedure and notes for accepting contestants and coaches.&lt;br&gt;
Since it was the same venue as last year and I was also on the reception team last year, it went particularly smoothly for me personally.&lt;br&gt;
After confirming, we prepared balloons, had lunch, and waited until the admission time.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introduction to Monitoring (Daily Life Edition)</title>
      <link>https://unigiri.gitlab.io/en/posts/monitor-everything/</link>
      <pubDate>Sat, 20 Jul 2019 21:34:33 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/monitor-everything/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I gave a lightning talk at the online study group &lt;a href=&#34;https://wp.infra-workshop.tech/&#34;&gt;Infra Workshop&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The following is the cheat sheet and material used during the presentation; details were explained orally and are therefore omitted here.&lt;/p&gt;
&lt;h3 id=&#34;meaning-of-monitoring-here&#34;&gt;Meaning of &amp;ldquo;Monitoring&amp;rdquo; here&lt;/h3&gt;
&lt;p&gt;Visually checking the update status of all media, including news, blogs, SNS, etc.&lt;/p&gt;
&lt;h3 id=&#34;what-i-do-for-monitoring&#34;&gt;What I do for monitoring&lt;/h3&gt;
&lt;p&gt;I consolidate the operational foundation for visual checking into a single service and manage it&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to send Zabbix alerts to Mattermost</title>
      <link>https://unigiri.gitlab.io/en/posts/notify-zabbix-alert-to-mattermost/</link>
      <pubDate>Sat, 06 Jul 2019 19:38:17 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/notify-zabbix-alert-to-mattermost/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;environment&#34;&gt;Environment&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mattermost 5.11.0&lt;/li&gt;
&lt;li&gt;Zabbix 4.2.4&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;procedure&#34;&gt;Procedure&lt;/h2&gt;
&lt;h3 id=&#34;1-create-incoming-webhook&#34;&gt;1. Create Incoming Webhook&lt;/h3&gt;
&lt;p&gt;Select &lt;code&gt;Integrations &amp;gt; Incoming Webhook &amp;gt; Add Incoming Webhook&lt;/code&gt; from the Mattermost menu.&lt;/p&gt;
&lt;p&gt;Choose the channel you want to notify; other settings are optional.&lt;/p&gt;
&lt;p&gt;Note the URL generated after configuration.&lt;/p&gt;
&lt;h3 id=&#34;2-place-the-notification-script-on-the-zabbix-server&#34;&gt;2. Place the notification script on the Zabbix server&lt;/h3&gt;
&lt;p&gt;Here we use &lt;a href=&#34;https://github.com/jirouette/zabbix-mattermost-alertscript&#34;&gt;https://github.com/jirouette/zabbix-mattermost-alertscript&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Place the script mattermost.py under the path specified by &lt;code&gt;AlertScriptsPath=&lt;/code&gt; in &lt;code&gt;/etc/zabbix/zabbix_server.conf&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>blurhash v0.1.2 compilation error investigation</title>
      <link>https://unigiri.gitlab.io/en/posts/bug-in-blurhash-0_1_2/</link>
      <pubDate>Mon, 06 May 2019 01:49:18 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/bug-in-blurhash-0_1_2/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;what-happened&#34;&gt;What happened&lt;/h2&gt;
&lt;p&gt;In Mastodon v2.8.1, a bug occurred where &lt;code&gt;gem install blurhash&lt;/code&gt; would fail in certain environments. This issue has been fixed in v2.8.2.&lt;/p&gt;
&lt;p&gt;&lt;a href=&#34;https://mstdn.jp/@yi0713/102008223252331858&#34;&gt;https://mstdn.jp/@yi0713/102008223252331858&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;CentOS勢、masterに追加された blurhash というgemのインストールでコケると思います。原因は gcc が 4.8.5 と古いためのようです&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href=&#34;https://mastodon.social/@Mastodon/102044104623035256&#34;&gt;https://mastodon.social/@Mastodon/102044104623035256&lt;/a&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Some people have reported problems installing Mastodon v2.8.1 due to gem compilation.&lt;br&gt;
This and a few other small bugs have been fixed in #Mastodon v2.8.2&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;reproducing-the-bug&#34;&gt;Reproducing the bug&lt;/h2&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ cat /etc/redhat-release
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CentOS Linux release 7.6.1810 &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;Core&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gcc -v
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Using built-in specs.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;COLLECT_GCC&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gcc
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;COLLECT_LTO_WRAPPER&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Target: x86_64-redhat-linux
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Configured with: ../configure --prefix&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr --mandir&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/share/man --infodir&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/usr/share/info --with-bugurl&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;posix --enable-checking&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gnu --enable-languages&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;generic --with-arch_32&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;x86-64 --build&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;x86_64-redhat-linux
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Thread model: posix
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gcc version 4.8.5 &lt;span class=&#34;m&#34;&gt;20150623&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;Red Hat 4.8.5-36&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;GCC&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ gem install blurhash -v 0.1.2
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Building native extensions.  This could take a &lt;span class=&#34;k&#34;&gt;while&lt;/span&gt;...
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ERROR:  Error installing blurhash:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;        ERROR: Failed to build gem native extension.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    /usr/bin/ruby extconf.rb
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;creating Makefile
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make &lt;span class=&#34;s2&#34;&gt;&amp;#34;DESTDIR=&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;gcc -I. -I/usr/include -I/usr/include/ruby/backward -I/usr/include -I.   -fPIC -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;2&lt;/span&gt; -fexceptions -fstack-protector-strong --param&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;ssp-buffer-size&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;4&lt;/span&gt; -grecord-gcc-switches -mtune&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;generic -fPIC -m64 -o encode.o -c encode.c
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c: In &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;blurHashForPixels&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:28:2: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; y &amp;lt; yComponents&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; y++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:28:2: note: use option -std&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;c99 or -std&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;gnu99 to compile your code
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:29:3: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; x &amp;lt; xComponents&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; x++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:48:3: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; acCount * 3&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:62:2: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; acCount&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c: In &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;multiplyBasisFunction&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:75:2: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;y&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; y &amp;lt; height&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; y++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:76:3: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;x&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; x &amp;lt; width&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; x++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;   ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c: In &lt;span class=&#34;k&#34;&gt;function&lt;/span&gt; &lt;span class=&#34;s1&#34;&gt;&amp;#39;encode_int&amp;#39;&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:129:2: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; length - 1&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; divisor *&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 83&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:131:10: error: redefinition of &lt;span class=&#34;s1&#34;&gt;&amp;#39;i&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; length&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:129:10: note: previous definition of &lt;span class=&#34;s1&#34;&gt;&amp;#39;i&amp;#39;&lt;/span&gt; was here
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; length - 1&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; divisor *&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 83&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;          ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;encode.c:131:2: error: &lt;span class=&#34;s1&#34;&gt;&amp;#39;for&amp;#39;&lt;/span&gt; loop initial declarations are only allowed in C99 mode
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;(&lt;/span&gt;int &lt;span class=&#34;nv&#34;&gt;i&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; 0&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i &amp;lt; length&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; i++&lt;span class=&#34;o&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make: *** &lt;span class=&#34;o&#34;&gt;[&lt;/span&gt;encode.o&lt;span class=&#34;o&#34;&gt;]&lt;/span&gt; Error &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Gem files will remain installed in /usr/local/share/gems/gems/blurhash-0.1.2 &lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; inspection.
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Results logged to /usr/local/share/gems/gems/blurhash-0.1.2/ext/blurhash/gem_make.out
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;cause&#34;&gt;Cause&lt;/h2&gt;
&lt;p&gt;As shown in the error during reproduction, this is because &lt;code&gt;int i&lt;/code&gt; is declared within the for loop. This specification was introduced in C99, and requires &lt;code&gt;-std=c99&lt;/code&gt; to be specified during compilation.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Google CTF 2018 Beginners Quest Writeups</title>
      <link>https://unigiri.gitlab.io/en/posts/google-ctf-2018-beginners-quest/</link>
      <pubDate>Wed, 19 Dec 2018 08:54:08 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/google-ctf-2018-beginners-quest/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;This article is for day 19 of the &lt;a href=&#34;https://adventar.org/calendars/3210&#34;&gt;CTF Advent Calendar 2018&lt;/a&gt;. Day 18 was mage_1868&amp;rsquo;s &lt;a href=&#34;https://gist.github.com/m---/262d66e0163d42030d9ce1c272e6f65e&#34;&gt;MortAl mage aGEnts write-up&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As a CTF beginner, I&amp;rsquo;ve been working through the &lt;a href=&#34;https://capturetheflag.withgoogle.com/#beginners/&#34;&gt;Google CTF 2018 Beginners Quest&lt;/a&gt;, and I&amp;rsquo;m putting together the write-ups I&amp;rsquo;ve been writing in my &lt;a href=&#34;https://unigiri.gitlab.io/diary&#34;&gt;Diary&lt;/a&gt;. I haven&amp;rsquo;t finished them all yet, so I&amp;rsquo;ll add the rest as soon as I solve them.&lt;/p&gt;
&lt;p&gt;I was planning to write about the tools I used as well, but since it would get too long, I&amp;rsquo;ll save that for another time. If you have any comments, please reach out on Twitter or Mastodon.&lt;/p&gt;</description>
    </item>
    <item>
      <title>ICPC 2018 Asia Yokohama Regional Participation Report</title>
      <link>https://unigiri.gitlab.io/en/posts/icpc2018-asia-yokohama-regional/</link>
      <pubDate>Mon, 10 Dec 2018 08:59:09 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/icpc2018-asia-yokohama-regional/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Participated as a staff member on 8-9 December.&lt;/p&gt;
&lt;h2 id=&#34;8-december&#34;&gt;8 December&lt;/h2&gt;
&lt;p&gt;Met up at 9:00. Received my T-shirt and tag. We decided on our roles among the staff.&lt;/p&gt;
&lt;p&gt;This year I was in the balloon team, blowing up balloons for the practice session. We prepared 60 balloons each for problems A to D, but about half were left over, which was a bit sad. However, since you can&amp;rsquo;t predict the difficulty beforehand—and if it&amp;rsquo;s too easy, everyone finishes them all in an instant—the preparation is necessary.&lt;/p&gt;</description>
    </item>
    <item>
      <title>SECCON Beginners 2018 Nagoya CTF Writeups</title>
      <link>https://unigiri.gitlab.io/en/posts/seccon-beginners-2018-nagoya-ctf-writeups/</link>
      <pubDate>Sat, 24 Nov 2018 20:51:48 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/seccon-beginners-2018-nagoya-ctf-writeups/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;7th place out of 60+N people. The problems have not been made public.&lt;/p&gt;
&lt;h2 id=&#34;calc&#34;&gt;Calc&lt;/h2&gt;
&lt;p&gt;An HTML version of &amp;ldquo;Te-Keisan Extremes&amp;rdquo; from SECCON Beginners CTF 2018. However, there is no time limit for the answers.&lt;/p&gt;
&lt;p&gt;Get the mathematical expression and POST the result. Don&amp;rsquo;t forget to set the cookie for user identification.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-python&#34; data-lang=&#34;python&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;urllib.request&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;urllib.parse&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;bs4&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BeautifulSoup&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;kn&#34;&gt;from&lt;/span&gt; &lt;span class=&#34;nn&#34;&gt;http.cookiejar&lt;/span&gt; &lt;span class=&#34;kn&#34;&gt;import&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;CookieJar&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;http://10.2.6.1:8080/index.php&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;opener&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;urllib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;build_opener&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;urllib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;request&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;HTTPCookieProcessor&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;CookieJar&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;res&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;opener&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;res&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;soup&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BeautifulSoup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;html.parser&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;soup&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;find&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;div&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;_&lt;/span&gt; &lt;span class=&#34;ow&#34;&gt;in&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;range&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;urllib&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;parse&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;urlencode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;({&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;answer&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;eval&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)})&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;encode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s1&#34;&gt;&amp;#39;utf-8&amp;#39;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;res&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;opener&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;open&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;url&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;data&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;html&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;res&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;read&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;()&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;decode&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;utf-8&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nb&#34;&gt;print&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;soup&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;BeautifulSoup&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;html&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;html.parser&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;n&#34;&gt;exp&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;=&lt;/span&gt; &lt;span class=&#34;n&#34;&gt;soup&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;find&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;div&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;.&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;text&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;do-alert&#34;&gt;do alert&lt;/h2&gt;
&lt;p&gt;Inject &lt;code&gt;&amp;lt;script&amp;gt;alert(0)&amp;lt;/script&amp;gt;&lt;/code&gt; into the provided form and reload.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Full-text Japanese search with Hugo &#43; Lunr</title>
      <link>https://unigiri.gitlab.io/en/posts/full-text-japanese-search-with-hugo-plus-lunr/</link>
      <pubDate>Sun, 04 Nov 2018 23:54:29 +0900</pubDate>
      <guid>https://unigiri.gitlab.io/en/posts/full-text-japanese-search-with-hugo-plus-lunr/</guid>
      <description>&lt;hr&gt;
&lt;p&gt;This article was machine-translated from the Japanese version.&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id=&#34;what-is-hugo&#34;&gt;What is Hugo?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; is a static site generator framework built with Go.&lt;/p&gt;
&lt;h2 id=&#34;what-is-lunr&#34;&gt;What is Lunr?&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://lunrjs.com/&#34;&gt;Lunr&lt;/a&gt; is a text search engine built with JavaScript. It supports Japanese language search.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;
&lt;h2 id=&#34;how-to-set-up-the-search-function&#34;&gt;How to set up the search function&lt;/h2&gt;
&lt;p&gt;The following content is based on &lt;a href=&#34;https://gist.github.com/sebz/efddfc8fdcb6b480f567&#34;&gt;https://gist.github.com/sebz/efddfc8fdcb6b480f567&lt;/a&gt; and &lt;a href=&#34;https://gist.github.com/eddiewebb/735feb48f50f0ddd65ae5606a1cb41ae&#34;&gt;https://gist.github.com/eddiewebb/735feb48f50f0ddd65ae5606a1cb41ae&lt;/a&gt;.&lt;/p&gt;
&lt;h3 id=&#34;file-structure&#34;&gt;File structure&lt;/h3&gt;
&lt;p&gt;The file structure after implementation is as follows. Only the parts related to the search function are listed.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
