golden-luckyの日記

ツイッターより長くなるやつ

QMKの「タップ」と「ホールド」を極める

自作キーボードを始めるとお世話になるQMKというファームウェアがあります。 キーボードは要するにスイッチなので、「どのスイッチが押されたときにどのキーの情報としてPCに伝えるか」を制御する必要があるのだけど、これはキーマップと呼ばれる情報をATmeg…

『Engineers in VOYAGE』の「ITエンジニア本大賞」受賞に寄せて

本って「紙に情報を印字して束ねたもの」っていう点ではどれも見た目が似ていて、そのため「本」という単一の群が存在するかのように扱われがちな傾向があると思う。 でも、とくに商品として見ると、本はジャンルごとにぜんぜん別物だ。 ジャンルごとに「購…

ラムダノート第5期の出版活動の個人的ふりかえり

設立からあっという間に5年が経過し、さらに出版で収益が出るようになってから4年が経とうとしている(最初の1年間ちょっとは何も本を出していなかったので)。 既刊の点数も10を超えた。 なんとなく、この第5期は、気づいたら出版社としてのトンネルを1つ抜…

独学でプログラミングを勉強した自分がこれは役に立ったなと思っている本

今ではプログラミングできないわけではないけど、そういえばプログラミングは完全に独学と言っていい。 いや、大学では数学をやっていたので、FortranとかLispはちょっとやった。 なので「完全に独学」といったら嘘になる。 それでも、いま仕事で使っている…

2021年賀状(というかPostScriptのQuineの話)

もう10年間、ほぼ毎年PostScriptのプログラムを手書きして年賀状を作ってきたわけだけど、いつも年賀状を出しているのは親戚などの非コンピューターな人たちが大半なので、PostScriptでプログラマティックにデザインを生成している面白さはわからないし、も…

専門書を売る

「日本の専門書は安い、もっと高くあるべき」という意見があります。 この意見の背景には、専門書の価格はその価値で決まるかという観点と、出版社は専門書でどう利益を出せるかという観点があるような気がします。 ここでは、それぞれの観点について、個人…

30キー左右分離キーボードfoobarをPico Micro Cで作った

はやりの自作キーボードの記録です。 きっかけは、2年前のpyspa忘年会でこちらのキーボードの基盤を手にしたことでした。 foobar 1.1 with plates https://www.40percent.club/2017/09/foobar-11-with-plates.html リンク先の写真からわかるとおり、キーが30…

2010年代に日本のインターネットでいろんな事業をいい感じにやってきた会社から2020年代へのヒントをもらえる本を作った

半年ぶりの新刊です。『Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち』です。紙とPDFがセットになった直販サイトはこちら。 Engineers in VOYAGE ― 事業をエンジニアリングする技術者たち(紙書籍+電子書籍) https://www.lambdanote.com/p…

昨晩、『コンビニ人間』という原作の存在を知らずになぜか買って積読していた“Convenience Store Woman”を一気に読んだ。英訳されたほうを読んでよかった。たぶん日本語だったら中盤でつらくなって、短い小説だけどきっと挫折していた。 この小説で主人公は…

gitで2つのリポジトリを混ぜる戦略を考える

「2つのgitリポジトリがあって、その片方をもう一方に取り込みたい」という状況を考えます。依存ライブラリのソースを自分のプロジェクトで保持したい、といった状況が典型的でしょう。 この場合、通常は git submodule を使うと思います。 git submodule で…

みんなが出版社になれるのか

「本の編集者は何をしているのか」を書こうとしていて、もう何か月もまとまらなので、とりあえず「出版社が何をしているのか」を書いておきます。 素朴な出版社のイメージ=中間搾取者 出版社そのものは販売網ではない 販売網への窓口は出版社の機能のごく一…

2020年 年賀状

2年ぶりにPostScriptしました。 github.com コードを見てもわかりにくいかもだけど、「2と0をランダムに並べた配列を作り、 2020 という文字列が完成した場合にだけ色をつける」というロジックとしては単純なプログラムをPostScriptで手書きしています。 ス…

出版社を作って4年が経ちました

ラムダノートという出版社を作って4年が経ちました。 www.lambdanote.com 去年に引き続き、今年もちょっとふりかえりをしてみます。 この記事はラムダノートの技術 Advent Calendar 2019の25日めのエントリーです。 第4期(2018年12月~2019年11月)のふりか…

直販サイトを作って書籍を売ること

昨日までこのアドベントカレンダーでは、PDFの内部の話から始めて、XMLという構造化文書の話、Pandocで記法を変換する話、EPUBで本というパッケージを作る話というように、徐々にレイヤを上げてきました。今日と明日はさらにレイヤを上げて、出版社の立場の…

TeXの脚注をなんとかする

この記事はTeX & LaTeX Advent Calendar 2019の24日目の記事です。23日めはwtsnさんの記事でした。25日めは☃さんの記事です。 TeXの脚注は出力されない場合がありますね TeXはなぜ脚注を期待どおりに扱えないのだろう 脚注をMVL上で可視にすればよい ページ…

XMLからEPUBを作る

昨日までの話をふりかえってみます。 構造化文書というと、どうしてもXMLタグの書式で構造を示すあの世界観が想起されやすい しかし、書式はあくまでも記法にすぎないと思うことにして、構造のほうだけ抽象データ型でかっちり用意するという世界観もありうる…

抽象データ型を自作する

昨日の記事では「書籍のマクロな構造」について話しました。 このマクロ構造はPandoc構造には組み込まれていません。 そのため、Pandocで書籍を作ろうと思うと、どうしたってPandoc構造にない部分を扱う別の仕組みが必要になります。 素のPandocでは、「書籍…

Markdownで書籍を作るとは

昨日まで何回かにわたり、多様なドキュメント形式の変換アプリケーションであるPandocのコアとなる仕組みを説明してきました。 特に、Pandoc構造とそれを生成するReader、生成されたPandoc構造を変換するPandocフィルターについて、少し時間をかけて紹介しま…

Pandocをコマンドでなくライブラリとして使う

昨日までの記事では、Pandocフィルターの基本と少しだけ実用味がありそうな例を紹介しました。 Pandocフィルターは、Pandoc本体の開発言語と同じくHaskellで書けますが、Pandocの内部動作を変えられるわけではなく、pandocコマンドによってJSONとして出力し…

Pandocで索引をどう作るか

Pandocフィルターの便利さと限界が見えてきたところで、最後に実用的かもしれない例を1つ紹介します。 Markdown原稿に索引のエントリを指定するための「記法」を考えてみる話です。 どういう記法にするか そもそもMarkdownの方言で索引に対応してるものはな…

もっとPandocフィルター

昨日の記事では、いわゆる行コメントっぽい振る舞いを例に、2種類のPandocフィルターについて説明しました。 今日は、もうちょっと非自明なPandocフィルターの例として、 昨日のPandocフィルターをもうちょっと進化させたバージョンと、コードブロックのLaTe…

Pandocフィルター101

昨日の記事では、PandocのReaderを自分で作り直す話をしました。 いうまでもありませんが、ReaderはPandocの一部なので、改造Readerを使うためにはPandocをソースから自分でビルドする必要があります。 ところがPandocというのは、Haskellで書かれているうえ…

PandocをreSTのリストテーブルに対応させる

Python界隈でよく見かける構造化文書のための記法として、reStructuredText(以降はreSTと書きます)があります。 reStructuredText https://docutils.sourceforge.io/rst.html 軽量マークアップ言語などと呼ばれることもありますが、reSTはかなり高度な表現…

Pandocの抽象データ型

Pandocのいいところは、構造をさまざまな記法から暗黙に読み取ってくれる点です。 ただし、その構造はPandocの内部で定義された抽象データ型であり、利用者の目的に合わせて増改築することはできません。 XMLやLaTeXでやるフルフルの構造化文書に比べると良…

ライトウェイト構造化文書

このアドベントカレンダーでは、先週まで、主にページメディアにおける「PDF」と「XML」の話をしてきました。 この2つ、それぞれ「Webブラウザでのレンダリング」と「HTML」に言い換えると、ウェブメディアの世界観と似ている気がしてこないでしょうか。 実…

GitHubで「コメントの一覧」を取得したい

近年、出版社でも原稿管理にGitの導入が進んでおり[要出典]、GitHubのようなWebサービスへの需要が高まっている[要出典]。 これに伴い、WebブラウザでGitHub上の原稿に対する特定のコミットを開き、そこに行コメントを残すといった利用も増えている[要出典]…

LaTeXソースを出力するときのエスケープ

昨日までの記事では、XMLの構文で書かれた原稿を他のマークアップにどうやって変換しているかを紹介しました。 こういった変換をするときに一般に悩みの種になるのが、変換先の記法で特殊な意味を持つ文字の扱いです。 たとえばTeXでは、次の10種類の文字は…

XMLのつぶし方

昨日までの話を整理します。 ドキュメントのXMLによる表現は、プログラムの抽象構文木に相当し、ドキュメントの意味構造を示したものであった なので、XMLの構文をS式で表せた すると、XMLの要素名がLispにおける関数、要素がその関数への引数に見えた そこ…

XMLをつぶす機械を作る機械を作る

昨日は、ドキュメントの構造をプログラムのように実行できるというアイデアの話をしました。 具体的には、「ドキュメントの構造をS式で表現し(SXML)、そのタグをLispの関数と見立て、それを要素に関数適用する」というアプローチです。 たとえば、XMLで表…

XMLをLisp評価器で実行する

昨日は、ドキュメントとは木であり、その木はXML、さらにいうとXMLアプリケーションとして形作られる、という話をしました。 一般にドキュメントは、生のままの構造として読み手に与えられるものではありません。 ドキュメントの構造が何らかのXMLアプリケー…