<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>パッチ on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%91%E3%83%83%E3%83%81/</link>
		<description>Recent content in パッチ on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Mon, 07 Mar 2022 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/%E3%83%91%E3%83%83%E3%83%81/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>ワードプレスのソースコードから8年間懸案の変数名「おしっこ」が除去</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/03/wordpress-removed-pee-from-code/</link>
				<pubDate>Mon, 07 Mar 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/03/wordpress-removed-pee-from-code/</guid>
				<description>&lt;p&gt;ブログツールとして世界中の多くのサーバで使われている WordPress のソースコードの、数限りなくある中の&lt;a href=&#34;https://core.trac.wordpress.org/changeset/52789&#34;&gt;ちょっとした修正&lt;/a&gt;は、変数名の&amp;quot;pee&amp;quot;と&amp;quot;tinkle&amp;quot;を書き換えるというものでした。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;-442 function wpautop( $pee, $br = true ) { +442 function wpautop( $text, $br = true ) {&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;wpautop()という関数は、ブログ記事のテキストに2行以上の改行があった時、それを&lt;p&gt;タグに置換する、という働きをします。&lt;/p&gt;&#xA;&lt;p&gt;「WordPress(wp) が自動(auto)で p(タグ)をつける」といったあたりから命名された関数だろうと思いますが、WordPress の歴史は長いのでこの関数も昔から存在していたようです。&lt;/p&gt;&#xA;&lt;p&gt;それで、この関数を書いた誰かは「オートでPする」の響きからの連想か、引数名に $pee(しっこ、幼児語)を使う言葉遊びをしてしまったようですね。&lt;/p&gt;&#xA;&lt;p&gt;その後のどこかの時点の修正で $pees をループで一つずつ処理する際に、取り出す変数を $tickle (こちらも しっこ、幼児語)が使われています。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://dictionary.cambridge.org/ja/dictionary/english/tinkle&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/wordpress-removed-pee-from-code/tinkle-meaning_hu_6f50088b2d4d2a2c.webp 247w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2022/03/wordpress-removed-pee-from-code/tinkle-meaning.png&#34; width=&#34;247&#34; height=&#34;143&#34; alt=&#34;&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;# tinkle というとリトルスターぐらいしか連想しませんが、そんな意味もあるんですね。&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;&#x9;&#x9;&#x9;&lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/QpHIdb23h9Y?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;&#x9;&#x9;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;WordPress の公式バグ管理システムからは、&lt;a href=&#34;https://core.trac.wordpress.org/ticket/25615&#34;&gt;8年前のチケット&lt;/a&gt;で初めてこの二つの変数名についての指摘がなされたことがわかります。&lt;/p&gt;</description>
			</item>
			<item>
				<title>Debian の perf を高速化するパッチと、そのGPL的な背景</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/</link>
				<pubDate>Tue, 28 Sep 2021 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/</guid>
				<description>&lt;p&gt;Cargo の &lt;a href=&#34;https://github.com/flamegraph-rs/flamegraph&#34;&gt;flamegraph&lt;/a&gt; ツールが&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911815&#34;&gt;Debian の perf のせいでとても遅い&lt;/a&gt;という話。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_9c524255cc8709fc.webp 480w, https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_ce280d565fd6d098.webp 768w, https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped_hu_4dc32e8f18544df0.webp 2284w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2021/09/debian-perf-slowness-comes-from-license-incompatibilities/example_cropped.png&#34; width=&#34;2284&#34; height=&#34;862&#34; alt=&#34;Cargo flamegraph sample&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&#xA;&lt;/picture&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;perf コマンドがプロファイルデータを解析する際に libbfd をリンクすればずっと高速になるのですが、&lt;a href=&#34;https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=911815#15&#34;&gt;Debian のポリシーでライセンスに違反するため libbfd をリンクすることはできない&lt;/a&gt;そうです。&lt;/p&gt;&#xA;&lt;p&gt;[修正] コメントでの指摘を受け修正しました&lt;/p&gt;&#xA;&lt;p&gt;perf のライセンスが GPL バージョン2、libbfd のライセンスが GPL バージョン3+ であり、これら二つのプロジェクトを&lt;a href=&#34;https://mag.osdn.jp/07/06/05/0114203&#34;&gt;合法的にリンクさせる方法がない&lt;/a&gt;そう。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://salsa.debian.org/kernel-team/linux/blob/master/debian/rules.d/tools/perf/Makefile#L45&#34;&gt;Debian の Makefile では、わざわざ生成された perf コマンドが libbfd をリンクして「いない」ことをチェックするようになっている&lt;/a&gt;のですね。&lt;/p&gt;&#xA;&lt;p&gt;そんな訳で、Debian の perf は dso 一つごとに addr2line コマンドをパイプで呼び出す(そして、毎回サブプロセスは終了する)方式となっています。&lt;/p&gt;&#xA;&lt;p&gt;しかし、大量の perf 呼び出しを行う flamegraph を作ろうとした @leastfixedpoint さんは、いつまでも帰ってこない perf コマンドに業を煮やし、libbfd をリンクさせない範囲での高速化を考えました。&lt;/p&gt;&#xA;&lt;p&gt;この&lt;a href=&#34;https://eighty-twenty.org/2021/09/09/perf-addr2line-speed-improvement&#34;&gt;パッチでは&lt;/a&gt;、addr2line を別プロセスとして起動させたままにしておき、dso をデータとして送り付け結果を受け取っても、addr2line プロセスを終了させないことで、とあるデータ量に対して68倍速く処理が終わるようにできたそうです。&lt;/p&gt;&#xA;&lt;p&gt;対象のデータ量によっては気にならない程度の速度差なのかもしれませんが、同じようにここの処理速度で困ってる人もいるんじゃないでしょうかね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://news.ycombinator.com/item?id=28468751&#34;&gt;Hacker News&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Linuxのソースコードコメントからf*ckを消してhugにしようと提案するパッチが議論を巻き起こす</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2018/12/linux-patch-suggests-to-replace-f-cks-with-hugs/</link>
				<pubDate>Thu, 06 Dec 2018 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2018/12/linux-patch-suggests-to-replace-f-cks-with-hugs/</guid>
				<description>&lt;p&gt;ヤルコ・サッキネンさん(Jarkko Sakkinen)が&lt;a href=&#34;https://lists.freedesktop.org/archives/dri-devel/2018-November/198581.html&#34;&gt;リナックスDRM開発者メーリングリストに提案した33行のパッチ&lt;/a&gt;は、コメント中の&amp;quot;fuck&amp;quot;を&amp;quot;hug&amp;quot;に置き換えるというだけのもの。提案の変更箇所は以下となり、変更内容はたとえば&lt;a href=&#34;http://lkml.iu.edu/hypermail/linux/kernel/1811.3/07110.html&#34;&gt;こんな感じ&lt;/a&gt;です。&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;code&gt;In order to comply with the CoC, replace **** with a hug.  Jarkko Sakkinen (15): MIPS: replace **** with a hug Documentation: replace **** with a hug drm/nouveau: replace **** with a hug m68k: replace **** with a hug parisc: replace **** with a hug cpufreq: replace **** with a hug ide: replace **** with a hug media: replace **** with a hug mtd: replace **** with a hug net/sunhme: replace **** with a hug scsi: replace **** with a hug inotify: replace **** with a hug irq: replace **** with a hug lib: replace **** with a hug net: replace **** with a hug  Documentation/kernel-hacking/locking.rst | 2 +- arch/m68k/include/asm/sun3ints.h | 2 +- arch/mips/pci/ops-bridge.c | 24 +++++++++---------- arch/mips/sgi-ip22/ip22-setup.c | 2 +- arch/parisc/kernel/sys_parisc.c | 2 +- drivers/cpufreq/powernow-k7.c | 2 +- .../gpu/drm/nouveau/nvkm/subdev/bios/init.c | 2 +- .../nouveau/nvkm/subdev/pmu/fuc/macros.fuc | 2 +- drivers/ide/cmd640.c | 2 +- drivers/media/i2c/bt819.c | 8 ++++--- drivers/mtd/mtd_blkdevs.c | 2 +- drivers/net/ethernet/sun/sunhme.c | 4 ++-- drivers/scsi/qlogicpti.h | 2 +- fs/notify/inotify/inotify_user.c | 2 +- kernel/irq/timings.c | 2 +- lib/vsprintf.c | 2 +- net/core/skbuff.c | 2 +- 17 files changed, 33 insertions(+), 31 deletions(-)  -- 2.19.1&lt;/code&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
