<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Esoteric-Language on akky@サイボウズラボ・ブログ</title>
		<link>https://labs.cybozu.co.jp/blog/akky/tags/esoteric-language/</link>
		<description>Recent content in Esoteric-Language on akky@サイボウズラボ・ブログ</description>
		<generator>Hugo</generator>
		<language>ja</language>
		
		
		
		
			<lastBuildDate>Mon, 17 Jan 2022 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://labs.cybozu.co.jp/blog/akky/tags/esoteric-language/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Folders.py - ディレクトリ構成(だけ)で書く変態プログラミング言語 Folders の Python 実装</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2022/01/folders-py-runs-file-system-folders-as-a-program/</link>
				<pubDate>Mon, 17 Jan 2022 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2022/01/folders-py-runs-file-system-folders-as-a-program/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://github.com/SinaKhalili/Folders.py&#34;&gt;Folders.py&lt;/a&gt; は、難解(esoteric)プログラミング言語と言われる変わったプログラミング言語のひとつ &lt;a href=&#34;http://esolangs.org/wiki/Folders&#34;&gt;Folders&lt;/a&gt; の Python による実装です。&lt;/p&gt;&#xA;&lt;p&gt;オリジナルの Folders 処理系は 2015年に &lt;a href=&#34;https://danieltemkin.com/Esolangs/Folders/&#34;&gt;C# で書かれた&lt;/a&gt;ということです。&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;プログラムはディレクトリの階層構造として記述される&lt;/li&gt;&#xA;&lt;li&gt;フォルダ内のファイルはすべて無視される&lt;/li&gt;&#xA;&lt;li&gt;文や式はフォルダ内にあるサブフォルダの個数によって定義される&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;コマンドの定義はこんな感じ。&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;コマンド&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;サブフォルダの数&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;詳細(引数など)&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;if&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;0 folders&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder holds expression, third holds list of commands&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;while&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;1 folder&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder holds expression, third holds list of commands&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;declare&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;2 folders&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder holds type, third holds var name (in number of folders, ex. zero folders becomes &amp;ldquo;var_0&amp;rdquo;)&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;let&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;3 folders&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder hold variable name (in number of folders), third holds an expression&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;print&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;4 folders&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder holds expression&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;input&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;5 folders&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;Second sub-folder holds variable name&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Expression, Type も同じような表で、サブフォルダの個数と改装で定義されます。&lt;/p&gt;</description>
			</item>
			<item>
				<title>ランダムなアルファベット4文字x2で、Google画像検索が謎の抽象画を返してくる</title>
				<link>https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/</link>
				<pubDate>Fri, 25 Jan 2019 00:00:00 +0000</pubDate>
				<guid>https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/</guid>
				<description>&lt;h3 id=&#34;グーグル画像検索を乗っ取るサイト&#34;&gt;グーグル画像検索を乗っ取るサイト?&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.reddit.com/r/whatisthisthing/comments/agd4hx/these_abstract_drawings_that_sometimes_come_up_if/&#34;&gt;reddit/whatisthisthing(これは何?)&lt;/a&gt;で質問されて話題になった謎の現象がこれ。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.google.com/search?newwindow=1&amp;amp;rlz=1C1GCEU_jaJP822JP822&amp;amp;biw=1358&amp;amp;bih=995&amp;amp;tbm=isch&amp;amp;sa=1&amp;amp;ei=35pKXMC8LYv_8gWK6JvICg&amp;amp;q=jwsr&amp;#43;ljxb&amp;amp;oq=jwsr&amp;#43;ljxb&amp;amp;gs_l=img.3...1678.2009..2997...0.0..0.91.167.2......1....1..gws-wiz-img.FAU25UEkwbY&#34;&gt;グーグル画像検索で&amp;quot;jwsr ljxb&amp;quot;のように、アルファベットで単語になってなさそうなものを2個入れる&lt;/a&gt;と、出てくる候補が謎の図形画像だらけになります。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-on-google-image-search.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-on-google-image-search_hu_f951ed42917794f6.webp 480w, https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-on-google-image-search_hu_551b15b4f82bc09b.webp 768w, https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-on-google-image-search_hu_a5b7cb1b9be8c730.webp 879w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-on-google-image-search.png&#34; width=&#34;879&#34; height=&#34;878&#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;どんな4文字でも出るわけではありません。まず辞書にあるような4文字はダメです。その単語に関する画像が出てきます。略語として成立してるものもだめ。子音ばかりを読めないような並びで並べると出やすいように思います。&lt;/p&gt;&#xA;&lt;p&gt;画像のサイトを開いてみると、どの画像も &lt;a href=&#34;http://c0d3.attorney/&#34;&gt;c0d3.attorney&lt;/a&gt; というドメイン上のページにあることがわかります。その内容はというと、&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-screenshot.png&#34;&gt;&lt;picture&gt;&#xA;  &lt;source type=&#34;image/webp&#34; srcset=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-screenshot_hu_cff5ea929f9156f5.webp 229w&#34; sizes=&#34;(max-width: 56rem) 100vw, 54rem&#34;&gt;&#xA;  &lt;img src=&#34;https://labs.cybozu.co.jp/blog/akky/2019/01/two-four-random-letters-gives-you-mysterious-images-on-google/c0d3-attorney-screenshot.png&#34; width=&#34;229&#34; height=&#34;958&#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;謎の画像二つに、ごく短いプロジェクト紹介、そしてその後ろには長々と、デタラメにも見える読めないテキストが続いています。&lt;/p&gt;&#xA;&lt;h3 id=&#34;難解プログラミング言語-malbolge-を使ったプロジェクト&#34;&gt;難解プログラミング言語 Malbolge を使ったプロジェクト&lt;/h3&gt;&#xA;&lt;p&gt;プロジェクト紹介の内容はこちら&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;c0d3.attorney は &lt;a href=&#34;http://d.hatena.ne.jp/Robe/20060824&#34;&gt;Malbolge, 1998年にベン・オルムステッド氏が作成したパブリックドメインな難解言語&lt;/a&gt;, で書かれたプログラムを表示することに特化したプロジェクトです。言語は使うことがほぼできないように設計されています。(しかし)設計上の弱点がこれまでに発見され、使えるプログラムを書くことが可能となりました。これを共有できることは喜ばしいことです&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;とても短い紹介文で、これ以外には情報がありません。&lt;/p&gt;&#xA;&lt;p&gt;ページのほとんどを占めるデタラメ風テキストが、そうすると Malbolge 言語のコードだということなのでしょう。&lt;/p&gt;&#xA;&lt;p&gt;画像もコードも、URLに与えたパラメータに応じて変化しますが、あるページで数えてみると、約5万語、61万文字ありました。&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;http://malbolge.doleczek.pl/&#34;&gt;オンラインの Malbolge実行環境&lt;/a&gt;(あるんだ…) に最初の一行を食わせてみましたが、エラーとなってしまいました。1行だけ入れても動かないのかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;ちなみに、サイトにサンプルとしてある Hello, World はこれ&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;(&#39;&amp;amp;%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@&amp;gt;}=&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;うん。まったくわからん。&lt;/p&gt;&#xA;&lt;h3 id=&#34;google-は知らんと&#34;&gt;Google は「知らん」と&lt;/h3&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://thenextweb.com/distract/2019/01/23/google-images-mysterious-art-searching-random-letter-words/&#34;&gt;TheNextWeb が Google にこの現象に関して問い合わせしてくれています&lt;/a&gt;が、これは Google のイースターエッグではないし、同社は c0d3.attorney とは何の関係も無い、という回答が来たそうです。&lt;/p&gt;&#xA;&lt;p&gt;「一般的な話」として、画像のあるページにある文字で検索したら出るよ、ともコメントにあったということで、ごくごく当たり前のつまらない結論になってしまうのですが、この自動生成っぽい Malbolge 言語のコードの中にアルファベット4文字のセットが大量にでき、その中の2組の4文字をウェブの他のサイトで2つ同時に使ってる他のサイトがほとんど無いために、検索で出てきてしまう、ということでしょうね。&lt;/p&gt;&#xA;&lt;p&gt;今の時点でも、この謎のサイトを作ったのは誰か、などは判明していません。&lt;/p&gt;&#xA;&lt;h3 id=&#34;純粋なプロジェクトか意図のあるseoスパムか&#34;&gt;純粋なプロジェクトか、意図のあるSEOスパムか?&lt;/h3&gt;&#xA;&lt;p&gt;ドメインの世界では、 .com 以下は、ランダムだろうと意味がなかろうと 4文字のドメイン名はすべて誰かに取得されていることが&lt;a href=&#34;https://whoapi.com/blog/we-are-out-of-4-letter-com-domains/&#34;&gt;2013年には報告されています&lt;/a&gt;。打ち間違いでもなんでも、4文字.com を入れた人を待ち構えて、広告を見せたりドメインを売りつけたりという商売をしてる人たちがどこかに存在するわけです。&lt;/p&gt;&#xA;&lt;p&gt;となると、今回のサイトもそういう「迷い込んできた人」を捕まえるために作られた可能性も消し去ることはできません。とはいえ、今のところサイトに来ても、広告があるわけでもなし。単に人が来たからといって得になることなんてあるのかなとも思います。&lt;/p&gt;&#xA;&lt;p&gt;いろいろな文字列でGoogleから推薦される、と聞くと人によってはたいへん魅力的に感じるかもしれませんが、そのデタラメな文字で迷い込んでくる人が分量としてどれほどのものか、という話もあります。総量としては見つけてやってくる人はそれほど多くないかもしれません。&lt;/p&gt;&#xA;&lt;p&gt;ですが、今回の件で興味を持った人は、単語になってない日本語の文字の組み合わせを大量に配置するサイトでも作れば、同様の結果を得られたりするかもしれませんね。&lt;/p&gt;&#xA;&lt;p&gt;via &lt;a href=&#34;https://www.reddit.com/r/whatisthisthing/comments/agd4hx/these_abstract_drawings_that_sometimes_come_up_if/&#34;&gt;reddit&lt;/a&gt; and &lt;a href=&#34;https://thenextweb.com/distract/2019/01/23/google-images-mysterious-art-searching-random-letter-words/&#34;&gt;TheNextWeb&lt;/a&gt;&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
