自作エンコーディングのエンコーダーでエンコーダー自身をエンコードしてみた

はじめに

少し前、ふざけ半分で作ったBase8192というエンコーディングがあります。こんな感じです。

入力: What is base8192?
Base8192: 卶晡啂幩唲幢吗慥冃弹儣洀等
Base64: V2hhdCBpcyBiYXNlODE5Mj8=

Base8192は漢字を利用することで、Base64と比較して文字数(≠バイト数)を抑えることができます。上記の例では、Base64が24文字必要なのに対し、Base8192はわずか13文字で済みます。

仕組みに興味がある方は、GitHubのリポジトリのREADMEに詳細が書いてあります。

https://github.com/karintomania/Base8192

こいつをとりあえず実装して期待通りに動くことは確認したのですが、ふと思いました。ユーザーが入力したテキスト以外もエンコードしてみたいと。

Read More

Quine(クワイン)とQuineリレーの作り方

背景

こんにちは。 かりんとうマニア(@karintozuki)です。
私が初めてQuineについてのWikipedia記事を読んだとき10分くらい悩んだ末、何もわからん!と諦めた記憶があります。今思えば、当時はJavaでプログラミングをしていて、JavaはボイラープレートがあるせいでQuineに向いてない言語だったのが原因かもしれません。

Read More

コマンドラインでPDF関連の処理(一つにまとめる、サイズを圧縮する)

背景

こんにちは。 かりんとうマニア(@karintozuki)です。
PDF関連の処理をたまにするんですが、オンラインの知らないサービスにファイルをアップロード・ダウンロードするのはセキュリティ的に少し怖いですよね。

今回はコマンドラインから起動できてオフラインで使えるPDFコマンドを紹介します。

Read More

公式ドキュメントを読むときの思考を言語化してみた🧑‍💻

背景

こんにちは。 かりんとうマニア(@karintozuki)です。

つよつよエンジニアのあるあるとして公式ドキュメント読めと言うのがあります。
私も読むようにしていますが、公式ドキュメントを読み始めたときはどのように読んでいいかわからず苦戦していました。

読めないから読まない、読まないからいつまで経っても読めるようにならない、という悪循環ですね。

なので、この記事では私が公式ドキュメントを読んでいるときに考えていることを言語化してみます。

Read More

人類はDSLを覚える必要がなくなった

背景

こんにちは。 かりんとうマニア(@karintozuki)です。

みなさんが働いているプロジェクトで、プロジェクトやサービス固有のDSL(ドメイン固有言語)を使うことはよくありますよね。

例えば、ログ解析ツールなどで検索する際に、そのサービスが検索用のDSL、クエリ言語を提供している、というのはよくある例だと思います。
私の前職ではSumo Logic、現職ではOpenSearchとBigQueryをログ管理に使用しているのですが、どちらも検索のためにDSLが提供されています。

これらのツールでほしいデータを検索するために、DSLを覚える必要がありますが、正直、めんどくさいですよね。

全部SQLで統一してくれればいいのに。。。

というわけでAIにお願いしてみました。

Read More