Home About
goldmark を使って markdown を HTMLに変換する mymark コマンドをつくった

hugo という静的サイトジェネレータを使いはじめて、 急にこのブログサイトのオレオレ静的サイトジェネレータがみすぼらしく感じはじめた。 ならば、このブログサイトも hugo で構築すればいいじゃないか、と思ったのだが、 hugo 用の気に入ったテーマが見つからない。

hugo で使うコンテンツは markdown で記述するのだが、それは goldmark という golang 製の markdown パーサーが使われているという。 ならば、変換部分だけは goldmark を使うことにして、残りのサイト構築部分は既存のものを流用しつつ 良い感じにすればいいんじゃないの?ということで、オレオレサイトジェネレータの刷新がはじまった。

その顛末は長いので割愛するが、肝心の markdown を HTML に変換する goldmark がすばらしく便利なので、 そこだけ紹介します。

Wnn7egg から tamago-tsunagi に変更, Emacs 26.3 日本語入力

Wnn8 server + Wnn7egg + Emacs の組合わせで日本語入力しているが、なんか変換結果を学習してくれないのです。 単に自分が設定を間違えているだけだと思う。 しかし、少し調べたくらいでは解決方法がわからなかったので、 試しに Wnn7egg に代えて tamago-tsunagi を使うことにした。 インストールしてみると、問題なく使える。目的の変換結果の学習もしてくれる。 とりあえず当初の目的は果たしたので、しばらくは tamago-tsunagi を使い様子をみよう。

ついに Parallels Desktop 16 が M1 Mac に正式対応したので試した

とは言っても、M1 Mac ではなく、手元にある Intel Macbook Air にまずはお試しでインストール。

Parallels Desktop 16 for Mac のトライアルをダウンロードしようとすると、 ゴールデンウィーク向けのプロモーションとかで 25% OFF クーポンのオファーがあり、 もうこれ買うしかないのか、とか思いつつも、まずはトライアル。

インストールは簡単で、Ubuntu Desktop のインストールも、iso イメージファイルを指定するだけで あとはいつも通りです。 ただし、Parallels のアカウントを作成しないと試すことはできません。 これは少し煩わしく感じますが仕方ありません。

GA-F2A88XN-WIFI にインストールした Ubutnu 20.04 Desktop の bluetooth (7260HMW) がうまく作動しない問題の解決

こんな古いマザーボードを今の使っている人はほとんどいないと思うが、とりえあず備忘録。

歯車っぽい設定アイコン画像をつくる / 円周上の点を計算して図形を描画

歯車風の見た目の 設定アイコン をSVGで描画しようとおもった。 歯車の図形は円周上の点を計算してそれをつなぐとうまく描画できそうなので、 円周上の点の計算とそれらを組み合わせて図形をSVG描画する方法についてコードをまとめておきます。

settings_icon

Amazon Music から YouTube Music (Premium) への乗り換え検討中

もう数年前から音楽の聴き放題ストリーミングサービスは Amazon Music 一本で來た。 もともとは、聴きたい曲で、Amazon Music で聴けない曲が YouTube Music にあったので、フリートライアルをはじめたのだが YouTube Music がすばらしすぎるので乗り換えるかも。

NUC に FreeBSD 12.2 をインストールして それを Wnn8 サーバにした

少し前に Wnn7 + VirtualBox + FreeBSD 10.4 の環境をつくった。 しかし良く調べてみると Wnn8 を使えば、あんな苦労はしないで、最新の FreeBSD 12.2 に普通インストールできるらしい。 しかも Wnn8 で wnn7egg がそのまま使える。さらに Wnn8 は今でも購入することができる。

ならばということで、NUC ( NUC6CAYH ) を用意して Wnn8 サーバをつくることにする。 今回はその作業の覚え書きです。

Android Studio を使わない ライブラリプロジェクトで Robolectric テストをする一番簡単なプロジェクト例

諸事情により Android Studio を使わないでライブラリはつくるようにしています。 その場合の Junit4 と Robolectric を使った 一番簡単なテストの書き方を覚え書きとしてここに残します。

org.json.JSONObject で JSON データを読むときに欠落しているパラメータを上手に扱いたい

JSONは柔軟にデータを表現できて便利だが、 org.json.JSONObject を使ってプログラムでそれを読むときに、 プログラムからみて想定外のデータ構造(たとえば、キー name に対する値があるはずだが、無い場合もある、のような場合)に 例外が発生してプログラムがそこでストップすることになる。 それは困るので、例外をキャッチして、デフォルト値を代わりに適用するなどというコードを書くわけだが、 そのようなコードは非常に読みづらい。これをなんとかしてスマートに書く方法はないのか? ということであれこれ試行錯誤した結果をここに書き残す。

Wnn7 の FreeBSD 用アップデートを適用する

Wnn7 を macOS Catalina + emacs 26.3 nox で使う, VirtualBox + FreeBSD 10.4 を利用 では 製品版CDROM の内容でインストールを進めていましたが、 こちらから FreeBSD アップデートパッケージ が配布されていることが判明。 なるべく最新のものを使いたいので、このアップデートを適用してみます。

Wnn7 を macOS Catalina + emacs 26.3 nox で使う, VirtualBox + FreeBSD 10.4 を利用

随分前には ThinkPad X230 + Ubuntu + VirtualBox + Vine Linux + Wnn7 の組合わせで、運用していたこともあったが Wnn7 のためだけに VirtualBox をバックグラウンドで起動しておくのが負担になっていつしか使わなくなってしまっていた。

しかし、M1 chip 搭載の Mac が登場したことで、バッテリー効率が飛躍的に良くなったらしい。 それならば M1 MacBook Air などで、Wnn7 を常用する環境つくることできるのでは? と思いリサーチを始めた。

VirtualBox のゲストOSイメージのファイルサイズを減らす

検索すれば Windows がゲストOSの場合などの説明はあるのですが、 ゲストOSが macOS の場合の説明を見つけるのに苦労したので、ここに備忘用に書きます。

オブジェクト指向的な JavaScript

先日 closure を使った オブジェクト指向的なコードを JavaScript で書くというデモをする機会があり、これはその覚書です。

Chromebook Spin 13 レビュー

アメリカアマゾンから購入したものの到着してみたら外箱がぶっ壊れていて……という 幸先が悪かった Spin 13 ですが、初期不良の問題(キーボードの不具合)が解消してからは安定して利用できています。 しばらくは、また不具合が再発しやしないかとおっかなびっくり使っていたのですが、どうやら大丈夫のようです。

chromebook-spin-13-w640

Macの標準の日本語入力をやめて Google 日本語入力を試しはじめる

Macの日本語入力といえば「ことえり」だと思っていたのですが、Catalina から「日本語入力プログラム」と呼称されているようですね。趣がない。 その「日本語入力プログラム」が最近とても気に入らない。自分が期待した変換がこない感がすごい。理由はわからない。 そこで、Catalinaを機に使わなくなっていたATOKに戻ろうと思ったが、Macユーザはもはやサブスクリプションしか選択がなくなっていた。 毎日使う日本語入力なので、月額330円はアリといえばアリなのだが、どうしようかと思って調べてみると、 Macでも Google 日本語入力が使えることを知る。そうなんだ。 それなら、ATOKに行く前に先に Google 日本語入力を試すことにする。

V Corn をテスト導入

ここしばらくはずっと Sarasa を使ってきましたが、偶然 V Corn を使う機会に恵まれ、これを試験的に使いはじめました。

v-corn

Extendscript で 指定したフォルダ以下のフォルダ全部を探すには その2 (もっと単純に)

Extendscript で 指定したフォルダ以下のフォルダ全部を探すには その1 よりもっとシンプルに書く方法。 フォルダを順に辿りながら、フォルダを見つけたら callback する方式。

ExtendScript で 指定したフォルダ以下のフォルダ全部を探すには その1

指定したフォルダ以下のサブフォルダ、サブサブフォルダ...を含めてすべてのフォルダを探す、というコードを書いてみた。 ExtendScript では each や map, reduce などが使えないので、実装は少し面倒でした。

Chromebook Spin 512 を導入

数カ月前から Acer の Chromebook Spin 512 を購入しようかと悩んで今回のアマゾンプライムデーでようやく踏ん切りがついたというか。 とうとう入手しました。 ずっと日常的にペン入力できる Chromebook を探していて、Spin 13 が手元にあるのですが、あれは日常的にペン入力するには筐体が少しばかり巨大すぎました。 Android Studio 用の開発マシンとしては申し分ないのですが。

Chromebook で AsciiDoc をビルドする環境をつくる

執筆用のChromebookにAsciiDocでコンテンツをビルドする環境をつくったときの備忘録です。 HTMLに変換するだけならわけないのですが、PDFに変換しようとすると日本語が文字化けしてしまう問題がありました。 ググってもかなり苦労したのと、Chromebook の Linux(Crostini) 環境での構築説明が見つからなかったのでメモを残します。 ChromeOS バージョンは Version 86.0.4240.77 (Official Build) (64-bit) です。

macOS のターミナルでよく使う open コマンドを Chromebook の Terminal でも使いたい

macOS のターミナルでファイルの内容を閲覧するときに使う open コマンド。 これを Chromebook の Linux でも使うには、 open コマンドの代わりに xdg-open を使えばOK! と思っていたら、そうでもなかった。

VSCode と ExtendScript Debugger の使い方 覚書

VSCode での ExtendScript 実行は、 Adobe Script Runner を使えば簡単ですが、 これで実行したときにエラーがあってもその内容が表示されません。 これでは開発には困るので、 代わりに使うのが ExtendScript Debugger です。

回線を ADSL から Rakuten UN-LIMIT に乗り換え(暫定)

ADSLサービスがそろそろ終わりを迎えるので、いよいよ何かに乗り換えなければならない。 MVNOのSIM と ATERM の据え置きルータ(PA-HT100LN)を使った事前の調査で ここの環境では LTE の方が ADSL より速いことはわかっていた。 今年のはじめ頃には Fuji Wifi あたりに乗り換えて、しばらく様子を見ようなどと考えていたが、 コロナ禍により Fuji Wifi は契約できず。契約できるようになった頃にはお得なキャンペーンは終了してしまっていた。

SVGコマンドを android.graphics.Path に変換

以前に書いた Kotlin による簡易SVG parser の実装実験 を使って自前のAndroidアプリのアイコン描画などを行っていたのだが、 そんなの標準に提供されているライブラリで対処できるだろう、と思って調べたところ対処できたのでメモしておきます。

Java で JSON を diff したい → JSONassert が便利

Java を使って json データの差分を調べる必要が生じたので、便利なツールを探した。 Stackoverflow に JSONassert がよい、的な情報があったので、使ってみました。 とても便利だったので、紹介します。

Groovy で collectWithIndex 的な機能を実現する

Groovy で java.util.Collection コレクション に対するメソッドとして eacheachWithIndex があるので、 同じように collect にも collectWithIndex があるのかと思ったらない。
そこでそれを実現する方法を考えてみた。

再帰の復習

再帰のコードを書こうと思ったがわからなくなったので、 Groovy で復習した。

nginxで複数ドメイン運用と Let's encrypt 引越し&設定覚書

2つのVPSを使って、それぞれに一つのドメインをSSL/TLSサーバ証明書を入れて運用していたが、 諸事情により、これを一つにまとめたのでその時の手順の覚書です。 すごく面倒になると思って、先延ばしにしてきましたが、やってみたら簡単でした。

Elm, Hello World!

Elm で Hello World! したので、備忘録としてブログへ書き残しておきます.

Chromebook Spin 13 購入顛末 本当は怖い 米アマゾンからの個人輸入

Chromebook 単体 で Androidアプリ開発が完結できる ことがわかったので、 Android Studio が作動するスペックのChromebook を導入することにしました。 いくつか候補はありますが、 お絵描き系アプリをつくっているので、 スタイラス対応で、海外では評判が高いらしい Acer Chromebook Spin 13 にしました。

Chromebook に Androidアプリをサイドロードする、非デベロッパーモード

Chromebook に Android アプリを入れるには Google Play Store 経由が普通ですが、 開発中のアプリを ストア経由でなく直接 adb でインストールできないものかと思って 調べたところ普通にできることが判明。 今まで、Chromebook 自体をデベロッパーモードに変えないとそういうことができないと思っていたので これはうれしい。

LAMY ローラーボール再び、ただし中身は サラサ というか MUJIのサラサ互換替え芯

uni-ball シグノ vs LAMY safari に書いた通り、かつては、LAMYのローラーボールに LM-63 のアダプタを使って 替え芯は スタイルフィット ( UMR-109 ) または ZEBRA SARASA ( NJK-0.3 ) を使っていたのだが、 書き味がイマイチなのと、インク容量が少なくすぐなくなってしまう上に、価格が割り高なので、使うのをやめてしまっていた。

lamy-1

新しいサラサグランド 2020

新しくなった金属軸のサラサグランドを買いました(ダークグレー)。 古いサラサグランドを持っているのですが(ブラック)、 次第に気に入って頻繁に使うようになったので、もう一つ購入することに。

sarasa-grand-2020

帰ってきた iPhone SE (2016)

世間では iPhone SE 2020 が先月発売されたばかりですが、 iPhone SE (2016) のバッテリーを交換して使いはじめました。

iphone-se-2016

Rhino で js を実行中にファイルにログを書き出したい

Java から evaluateString する形で javascript コードを実行する場合に logger.log() で指定したファイルにログを書き出したい、という場合の解決方法.

Rhino で実行する javascript をコンパイルしてから使う

いままで Javaから javascript を実行するのに、 evaluateString ばかり使っていたが、事前にこれをコンパイルして使うことができるらしいので、試してみた。

改良版) Rhino を使って Java から JavaScript を実行する

Rhino を使って Java から JavaScript を実行する から、さらにあれこれ試していて多少進捗があったので、 現在までに得た見地をまとめます。

Mac の sed を GNU の sed に入れ替えよう

MacBook Air 2020 へ作業環境を移行しつつあるのだが、sed で躓いてしまった。 なんか作動がいつもと違うのだが・・・と思ったら Mac の sed と Linux の sed は振る舞いが違うのだった。 古い Mac では、GNU sed に入れ替えて使っていたのだがそんなことはすっかり忘れていた。

Rhino で console.log() したい

Java から evaluateString する形で javascript コードを実行する場合に Node.js のように console.log() したい、という場合の解決方法.

macOS Catalina に emacs をソースからインストール

Mac は Catalina から emacs がインストールされなくなった。 普通は homebrew などからインストールすればよい話だと思うが、 emacs のためだけに homebrew を入れるのもいやだったので、 今回、ソースからインストールしてみた。 特に難しいことはないのだが、備忘録としてシェアします。

Node.js で XML文書をパース

大量のXML文書から InDesign 文書を生成する必要が生じたので、Node.js での XMLパース方法をメモ。

java.util.Timer を使って、連続で発生するイベントが小休止のときを見計らって処理する

手書きのタブレット向けアプリで、ペンの入力が連続して発生するのだが、そのたびに保存処理を行うと作動が重くなる。 そこで、ちょっと入力が止んだそのスキを見計らって、保存処理を実行するようにしたい。 そのための java.util.Timer と TimerTask の使い方のメモ。
例によってコードはすべて Groovy です。

MacBook Air 2020 ついにシザー式キーボードが搭載

シザー式キーボードが MacBook Air に来たら買おうと決めていたので、今回は発売されてすぐにオーダーしました。 まだ数日しか使用していませんが、このキーボードは(今のところ)気に入っています。

macbook-air-2020-w360

Node.js で 指定されたディレクトリ以下にある InDesign ファイルを サブディレクトリを含めてすべて取得

別に対象が InDesign ファイルに限った話ではないが、再帰的にディレクトリを検索して、すべての InDesign ファイルリストをつくる、 という必要が生じたので備忘録として書き残します. 基本的には 再帰を使って木構造をリストに変換する JavaScript で書いたのと同じです.

Android Jetpack: RecyclerView を使った一番簡単なリストの改良:二列に表示

いまさらですが Jetpack によるUI構築編、その2。 前回 一番簡単なリストをつくりましたが、それを改良して、二列表示に変えます。

recyclerview-two-columns

Android Jetpack: RecyclerView を使った一番簡単なリスト

いまさらですが Jetpack によるUI構築編、その1。 シンプルなリストを RecyclerView を使ってつくります。
これ Create a List with RecyclerView を参考にしました。

recyclerview

Chromebook で PyGame 環境をつくって遊ぶ

今、「たのしくまなぶ Python ゲームプログラミング」を読みながら PyGame を試しているのですが、 ちょうどよいタイミングで Chrome OS が 80 にアップデートされて Crostini で Debian 10 Buster が使えるようになったため、 PyGame 環境の構築が簡単になりました。

この本には 環境構築については WindowsとMac用の説明しかないので、Chromebook(OS 80) + Crostini での環境構築方法をメモしておきます。

python-idle-with-shoot-the-fruit

ブラウザのテキストエリアで Emacs キーバインド を使いたい

Firefox Quantum がリリースされた結果、 Emacs キーバインド を簡単に実現できる Firemacs が使えなくなって随分時間がたつ。 Firemacs がなくても macOS では、もともと Firefox だろうと Chrome だろうと、ブラウザのテキストエリアで Emacs キーバインド が使えるので、その点ではよいのだが、 普段 ChromeOS と macOS と両方を使うので、うっかり Chromebook (のブラウザのテキストエリア)で、 Ctrl+N を使おうものなら、新規ウインドウが開いて大変なことになる。 たいてい Ctrl+N って連打してしまうから、無駄にウインドウがたくさん開いて、すごくいやな気分になる。

ADATA SSD SU650 が作動しない... 安物買いのなんとやら

Ubuntu 18.04 との組み合わせで問題発生。 現象としては、使いはじめてしばらくは問題ないが、大きなファイルの読み書きなどが連続で続くと、ファイルシステムが壊れてしまう。 詳しい理由までは調べていない。 SSDをHDDに変えて、他の条件はすべて同じにすると全く問題が生じないので、原因はSSDにある。 ただし、SU650 という製品が悪いのではなく、購入したこの製品の問題(初期不良ってことになる)かもしれない。 それから Windows10 なら問題がないとか。または、マザーボードとの組み合わせ問題?それから冷却が足りないとか。 でも、もうこのSSDのせいでこれ以上の時間を無駄にしたくないのであきらめることにした。

adata-ssd-2

無印のデスクライトから Z light に乗り換え

無印良品 手元をてらすリビングライト が素敵 とか言っていたのですが、結局 Zライトに戻ることになりました。

zlight-zg4000