2023-01-28

Manicって誰?

ネットで偶然知ったShakatakの曲を聴いています。Youtubeで「THE BEST OF SHAKATAK 2」などを聴いていて、とても気に入ったので、タワーレコードが出した「NIGHT INVITATIONS:The Best Tunes & Remixes」を買いました。どの曲も気に入っているのですが、別なところで疑問がわきました。


Mr Manic Sister Cool (Cool Mix)」という曲があります。また「Stop Manic Cool」という曲もあります。これらの曲のタイトルに出てくる「Manic」って誰?ひとつの曲のタイトルに出てくるだけなら、何か思い出に残る人物なのかなと思うだけですが、複数の曲でタイトルに出てくるとなると、よほど重要人物なのかと思います。

 

もっともManicが誰なのかが分かるところで、別に良い事が起きる訳でもないのですが。

登記所備付地図の電子データ

2023年1月20日に法務省が「地図データのG空間情報センターを介した一般公開について」を発表しました。続けて2023年1月23日にはデジタル庁が「登記所備付地図データ(地図XML形式)変換コンバータの公開について」を発表しています。ネットを検索すると、「デジタル庁の登記所備付地図データ変換コンバータmojxml2geojsonを使ってみる」のように、実際に使ってみた報告があがっています。そこで僕も、それらを参考にしながら、試してみました。

 

試行環境は、WSL2上のUbuntuです。Pythonが使える環境なら、他にもWindows10とかFreeBSDなどもありますが、普段使わないパッケージでディスクが占領されてしまうのは避けたいところです。WSL2上なら後腐れなくクリーンな状態に出来ますし、そういう意味ではVirtualBox上のUbuntuでも構わないかもしれません。

 

Ubuntuは「22.04.1 LTS」です。またPythonは「3.10.6」です。インストール手順は、上述した資料のとおりです。関連するパッケージが沢山インストールされましたが、特にエラーもなく順調でした。

 

地図データはG空間情報センターからダウンロードしました。無料で公開されているといっても、ダウンロードするにはアカウントを作る必要があります。アカウントを作成する際に、申請したメールアドレスに「確認番号」が送られてくるのですが、当初その番号をコピペしたら、「確認番号が違います」というエラーになりました。なんだ、そりゃ?入力ミスはないはずですが、再度入力しても同じエラーになります。仕方ないので「確認番号を再送信する」というボタンを押して、別の「確認番号」が届いたので、それを入力したら、今度は成功しました。なんだったんだろう。

 

試しにファイルをダウンロードしてみて、XMLをGEOJSONに変換してみました。問題なく変換できたのですが、そのコンバータがインストールされている場所が「~/.local/bin」だったので、当初は「そのようなコマンドはありません」と言われてしまいました。そこをパスに入れたら良いだけでしたが、ちょっと引っ掛かりました。

 

変換したファイルをQGISで確認してみましたが、問題ありませんでした。ただし標準的な座標系ではないようです。Googleグループでは「【情報共有】登記所備え付け地図データの公開」という情報もありました。

There are four basic choices:

The Japan Times Alphaで連載されているコラム「Odds & Ends」の2023年1月のテーマは「Japanese English」です。その第3回目のタイトルは「List」でした。コラムの月間テーマや今回のタイトルで取り上げられている話題についても、興味深いのですが、ちょっと別のことが気になりました。コラムでは、次のように書かれています。

 Let's take a look at the verbs you can use with "list."

There are four basic choices: make, write, draw up and compile.


ここで「There are four basic choices:」を和訳すると、どうなるでしょうか。Google翻訳にかけたら「次の4つの基本的な選択肢があります。」となりました。これは別に誤訳ではありませんし、何の問題もないと思います。しかし日本語では「基本的な選択肢が4つあります。」という訳し方もできるのではないでしょうか。


「There are four basic options.」という英文からは、次のように和訳できますが、どちらでも構わないと思います。

  1. 4つの基本的な選択肢があります。
  2. 基本的な選択肢が4つあります。

 

一方で「基本的な選択肢が4つあります。」 という日本語からは、次のように英訳できるかもしれませんが、後者は不自然ではないかという気がします。ネイティブに確認をとったわけではないのですが、ネイティブなら前者を発想するような気がします。後者は日本語の直訳のように見えます。

  1. There are four basic options.
  2. Basic options are four.

 

このような例に限らず、「何か」が「いくつか」あるという場合の表現は、日本語では「いくつかの何かがあります」とも「何かがいくつかあります」とも表現できます。しかし英語では(日本語で表記すれば)「いくつかの何かがあります」という表現の一択ではないかという気がしています。

2023-01-22

「Build Your Own Lisp」を読んでみたい

ずいぶん前にアスキー出版局から出ていた『Cプログラムブック III』は、「Will O'Lisp」というLISP処理系を作成するという内容でした。私は、これを読むことでC言語を学びましたし、LISPも学ぶことができました。以前は手元にあったのですが、いつ頃かに処分してしまいました。また手元に置こうかと思ったのですが、もちろん新刊では入手できませんし、古本でも相当高額て取引されているようです。所蔵している図書館もあるようですが、地元には無いようです。


国会図書館に行けば閲覧できるし、一部ならコピーも取れるかもしれませんが、一冊全部を複写することはできません。しかも、何が何でも『Cプログラムブック III』でなければ駄目なんだという訳でもありません。もしかしたら似たような本があるんじゃないかと思ってWebを検索してみたら、案の定「Build Your Own Lisp」を見つけました。これは書籍としても販売されているようですが、オンラインで全文公開されているみたいです。

 

ここで問題となるのが、こういものを読み進めるためのテクニックです。つまり、印刷された書籍であれば、ノートをとったり、書籍に書き込みをしたり、付箋を貼ったりするような、読書術です。オンライン文書の場合には、どのような方法があるのでしょうか。

 

例えばPDFファイルであれば、書き込みを入れたり、マーカーを引いたりするような事ができなくもないと思いますが、同じことをしたい訳でもありません。印刷された書籍でやっていたような読書術を、オンライン文書で再現したい訳ではありません。オンライン文書には、ネット時代の新しいやり方があるんじゃないかと思います。

 

とりあえず模索してみようと思います。

2023-01-14

PlantUML

Webを見ていたらPlantUMLというものがある事を知りました。UMLなどの図をテキストから生成することができるツールです。このようなツールを前々から探していました。UMLの図はInkscapeなどを使ってGUIで描くことは可能ですが、GUIベースのツールを使って描くと、綺麗に描くことに意識が集中してしまうのではないかという疑念を持っていました。例えて言えば、WordのようなWYSIWYGのツールは、直観的に分かりやすいとは思いますが、使えば使うほど壁に突き当たる感じです。それに対して、LaTeXのようなツールは、取っつきにくいかもしれませんが、些事に煩わされず、文章に意識を集中できると思います。

 

PlantUMLは、Java実行環境を必要とするようです。僕の個人的な希望として、LaTeXやRなどはFreeBSD上で使えるように環境を整えてきたので、PlantUMLもFreeBSD上で利用可能なようにしました。FreeBSDのpkgで利用できるJREは、幾つかあるようですが、openjdk17-jre-17.0.5+8.1_1をインストールすることにしました。PlantUML本体は、ダウンロードのページにファイルが幾つか置いてあるのですが、どれを選んだらよいのか分かりません。入門のページにもplantuml.jarへのリンクがあり、どういう関係になっているのか分からないのですが、ひとまず入門ページのリンクにあるplantuml.jarを使うことにします。

 

入門ページの説明のとおりに操作したら、あっさりと動いて、PNGファイルができました。素晴らしい。 


これから本格的に使っていこうとすると、出力がPNGなのは気になります。画像を拡大すると画質が劣化するのが気になります。調べてみるとSVGで出力することも出来るようなので、そちらを使おうと思います。また日本語も利用したいところです。試しに日本語を入れたサンプルで確認してみると、確かに日本語は出ているのですが、文字が重なってしまって、とても使い物になりません。

 

Webを調べてみると「PlantUML Server で生成した SVG が中華フォントになるときの日本語フォント指定」という情報を見つけました。この記事によると「skinparam defaultFontName メイリオ」という指定をして解決したようですが、これでは解決しませんでした。

 

何が悪いのか分からないのですが、なんとなく日本語フォントのメトリック情報がないから綺麗に出力されないのではないかと想像しました。そこでWebを検索すると「javaを使ったSVG→画像変換の際の日本語化など。」という情報がありました。この記事を参考に調べてみると、僕の使っているFreeBSDには日本語フォントが入っていませんでした。そこでpkgを使って、ja-font-ipaを入れました。そして先程の記事を参考に「skinparam defaultFontName IPAGothic」という指定を入れました。

 

ここで改めて日本語が使われているサンプルでSVGを生成してみると、ちゃんと日本語も出るし、表示も綺麗になりました。これなら今後も使っていけそうです。

2023-01-09

WSLgで日本語が出るように設定

昨日WSLをストア版に更新することで、Windows10でもWSLgを利用することができるようになりました。GUI版のemacsが使えるので感動したのですが、日本語フォントがないので、日本語を表示できません。


Webを検索すると「Win11のWSL2 (WSLg)を日本語化 & Mozcで日本語入力」という情報を見つけました。日本語を表示するだけではなく、日本語入力も行えるようにするようですが、僕の場合は日本語表示だけで良いので、その一部だけを設定しました。


Ubuntu内で「fc-list」すると見つかるフォントは20個だけで、もちろん日本語フォントはありません。そこで/etc/fonts/local.confを作成してみると、572個ものフォントが見つかるようになり、GUI版emacsでも日本語が出るようになりました。


/etc/fonts/local.confは、上述した記事にあるのと同様で、以下の内容です。

<?xml version="1.0"?>

<!DOCTYPE fontconfig SYSTEM "fonts.dtd">

<fontconfig>

        <dir>/mnt/c/Windows/Fonts</dir>

</fontconfig>

Docker Desktop for Windowsをインストールしたら、既存のWSL2が影響を受けた

機能はWSL2をストア版に更新したので、次に前々から気になっていたDockerを入れてみました。Dockerの概念的なことは理解できます。しかし一歩踏み込んだところがピンとこないので、使ってみて理解していこうと思っています。

 

まずはDocker Desktop for Windowsをインストールしました。インストール後に再起動し、Windowsが起動しましたが、何をしたら良いのか、まだわかりません。PowerShellのコマンドラインから「docker run hello-world」してみましたが、問題なく動いているようです。

 

 Dockerについて今後おいおい勉強していくことにして、ここでちょっとWSLgで試したいことがあったので、WSL2のUbuntuを起動しました。ところが何だか様子が変です。昨日インストールしたはずのXクライアントが見つからなくなっています。しかもアカウントが「wslg」になっており、こんなアカウントは作った覚えがありません。いったい何が起きたのか全く分からず、PowerShellのコマンドプロンプトで「wsl -l -v」としたら、次のような結果になりました。

PS C:\Users\FURUSAWA> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop-data    Running         2
  docker-desktop         Running         2


Docker関係が増えています。何か悪さをしているのかもしれません。よくわからないので、PowerShellのコマンドプロンプトで「wsl --shutdown」してみました。docker-desktopは停止状態になりませんでした。それから改めてUbuntuを起動したところ、Dockerインストール前の状態が復活しました。


何故このような現象が起きたのか理由は分かりませんが、元の状態に戻ったので、良しとします。