About us       情シスのじかんとは?

ラベルに隠された謎が最高のおつまみになる。日本酒「ソースコード」の解読にチャレンジしてみました! –おつまみとしてのソースコード第4皿

ユニークで面白い、意外なアイディアが詰め込まれているソースコードの世界をおつまみ感覚で紹介するのが、情シスのじかんの「おつまみとしてのソースコード」です!週末も近づき、ちょっと一息つきたくなる木曜日の夕方にお届けしていきます。

本日は、一風変わったソースコードの解読にチャレンジしてみようと思います。今回取り上げるソースコードとは……その名も日本酒「ソースコード」です。

ソースコード
クリアな飲み口に、豊かなお米の旨みが溢れ出る上質な味わい。料理と合わせても、様々な温度帯でも楽しめる1本に、思わず誰もが「自分好みの楽しみ方」を探してしまう。「読み解きたくなるロジック」が詰め込まれた、システムエンジニアたちに飲んでほしい純米吟醸酒です。

 

kurand.jp

ソースコード| 山形県の日本酒| クラフト酒・日本酒の通販ならKURAND(クランド)
         

発売当初から話題となっていたため、すでにご存じの方もいらっしゃるかもしれませんね。
日本酒「ソースコード」とは、2024年1月に発売して以来、そのユニークなコンセプトが注目されているお酒です。ラベルに一見しただけでは解読不能なソースコードが書かれており、一体どのような処理が記述されているのか?というのを読み解きながら日本酒を飲むことができる、まさに「おつまみとしてのソースコード」とお酒が一体となった商品なのです。

これはチャレンジしてみるしかない!ということで、おつまみのソースコードの第四回は、話題の日本酒「ソースコード」についてレビュー&解読していきます!
「ソースコード」の味わいと、ラベルに隠された謎とはいかに?エンジニア仲間とのアイスブレイクや、一人でまったりする時間のお供に、ぜひご覧ください!

日本酒「ソースコード」にいざチャレンジ

こちらが、日本酒「ソースコード」です!

実物を手にとるとワクワク感が桁違いです!ラベルを少し読んでみますが、ぱっと見で解読は不可能でした。ここはやはりソースコードをつまみとして日本酒を味わうべく、まずは開封します。

いただきます!
とても美味しい日本酒です!辛口ですっきりしているのにふくよかで、純米吟醸らしいフルーティな味わいも楽しめます。いろいろな食事に合いそうです。
筆者はお刺身、チーズ、奈良漬けとペアリングしてみましたが、どれもよく合いました。美味しいお酒とおつまみは最高ですね。このまま晩酌タイムを開始してしまいたい所ですが、ソースコードに隠された謎が気になります。解読にチャレンジしていきましょう。

ラベルに書かれたソースコードの文字起こし

ラベルを眺めながら、すべて手で文字起こしをするべきか、画像解析に頼るべきか……と思案し、文字数も多いことから画像解析に助けてもらうことにしました。
瓶のままではラベルに書かれたソースコードが湾曲していてうまく撮影できないため、まずはラベルを剥がしていきます。色々調べた結果、水につけた後濡れたままラップをして、しばらく置いたあと剥がす、という方法が確実なようだったので、その方法でチャレンジします。

水に浸かるソースコード

ラップを巻いて20分ほど放置(長く置きすぎると紙がふやけてしまう可能性があるようなのでご注意です)

綺麗に剥がすことができました!さっそくラベルのソースコードを撮影し、文字起こしをします。

文字起こしはGoogleドライブに頼りました。わざわざアプリなどを入れる必要がなく、ドライブに画像を格納すれば文字起こしができてしまうのでおすすめです。
文字起こし結果を確認してみると、思ったよりも良い精度ではありましたが、ところどころに間違いがありました。ソースコード内に多用されている[]や,の誤読が多いようです。さすがに一筋縄ではいきません。
ソースコードは一文字でもミスがあれば正しく動作しません。ここは慎重にチェックをしていく必要があります。エディタのアシストにも頼りつつ、一文字ずつ丁寧に確認を進めます。
実際に目視の確認を進めてみると、同じ記号の繰り返しが多く、チェックしていた部分をひとたび見失うと、どこまで進んでいたのか探しなおすのが大変でした。文字起こし作業は、お酒はなしで集中して進めるのがおすすめです。

ソースコードを実行

ついにソースコードをすべて文字起こしすることができました!

ここで改めて内容を確認してみます。console.log()で始まっており、言語はJavaScriptとなります。ソースコードには以下の特徴がありました。(以降、多少のネタバレを含みますのでゼロからチャレンジされたい方は読み飛ばしてください。)

・console.log()が3回繰り返されている
・String.fromCodePoint()が多用されている
・String.fromCodePoint()の中身は+[]や+!![]やなどの表現が繰り返されている

console.log()は、メッセージをコンソールに出力するメソッドです。また、String.fromCodePoint()を調べてみると、引数に指定した Unicode コードポイントから文字列を作成するメソッドでした。
その中身として繰り返し使われている[]は空配列です。空配列に+をつけて+[]と書くと、型変換が働き0となります。また、!!は論理否定を2回繰り返しているのでtrueとなり、+!![]と表現することで型変換が働き1を表すようです。
つまり、一見謎の記号の繰り返しに見える!!や[]の羅列は、Unicode コードポイントを作成するための記述であることが伺えます。

カラクリが見えてきたところで、はやる気持ちを抑えて、プログラムを実行してみます。言語はJavaScriptであるため、PCに実行環境がない方でも、ChromeなどのWebブラウザですぐにプログラムを実行することができます。

実行結果は……予測通り、とあるメッセージが出力されました。プログラムを実行してめでたし、と終わりたい所ですが、メッセージはスペルミスしており、違和感があります。
シンプルなミスなのか、それともこの先にまだ何かがあるのか。不可解な気持ちで日本酒「ソースコード」について検索していると、以下のような投稿が見つかりました。

どういうことなのでしょうか。さらなる謎の答えを求めて、公式サイトを開いてみます。

ソースコードの解読

公式からのコメントに従い、ペアリングの項目を見てみると、「コンソール画面を参照」とだけ記載があります。これは怪しい……!
指示通りコンソール画面を開いてみると、気になるソースコードが。これは、もしや……?
詳細は伏せますが、ここでもう一度ソースコード解読の楽しみが待っていました!
解読すると、怪しいポップアップ画面が現れます。ここに、先ほどのラベルのソースコードの実行結果を入力すると……?

これが最終ゴールのようです!2重の謎解きが待っているとは予想もしませんでした。達成感も倍増です。

さいごに

やりきった爽快感とともに晩酌タイムスタートです。筆者は一人だったので数日に分けていただきましたが、本当に何でも合う日本酒で、毎日少しずつ飲むのが楽しいお酒でした。エンジニア同士で集まってワイワイ解きながら、一晩で空けるのももちろん楽しいと思います!
年末年始は日本酒を飲む機会が増える時期です。情シス仲間との忘年会や新年会のネタに、正月休みのお供に、読者の皆さまも是非日本酒「ソースコード」にチャレンジしてみてはいかがでしょうか?

著者:羽守ゆき
大学を卒業後、大手IT企業に就職。システム開発、営業を経て、企業のデータ活用を支援するITコンサルタントとして10年超のキャリアを積む。官公庁、金融、メディア、メーカー、小売など携わったプロジェクトは多岐にわたる。現在もITコンサルタントに従事するかたわら、ライターとして活動中。
 
 

特集|仕事で疲れた脳みそをリフレッシュ♬
おつまみとしてのソースコード

木曜日の夕方に仕事で疲れた脳みそをリフレッシュしたいとき、一人でゆっくりしたい夜、ちょっとした空き時間に、気軽に「つまめる」ソースコードの話題をお届けします。

まるで隠れ家バーでマスターが語るウンチクのように、普段は見過ごしがちなコードの奥深さや、思わず「へぇ〜!」と唸るようなユニークなアイデア、クスッと笑える小ネタを、ソースコードの世界を熟知した「情シスのじかん」がご紹介します。

コードを書くのが大好きなエンジニアさんも、ソースコードはちょっと苦手…という情シス部門の方も、この特集を読めば、きっとソースコードの新たな一面を発見できるはず。

業務効率化のヒントになるTipsや、セキュリティ対策に役立つ情報も盛りだくさん。

さあ、あなたも「おつまみとしてのソースコード」で、技術の世界をもっと身近に、もっと楽しく感じてみませんか?

本特集はこちら

参照元

 

関連記事Related article

       

情シスのじかん公式InstagramInstagram

       

情シスのじかん公式Instagram

30秒で理解!フォローして『1日1記事』インプットしよう!

close close