新しいClojure体験

April 28, 2018

Clojure 1.9と共に紹介されたコマンドラインツール。初めてClojureを体験する人にとって、とっつきやすくなったかな? まだWindows版は出てないけど、一応、作業中っぽい。

インストール

インストールは簡単


シェルスクリプトでdialogを使う

April 19, 2018

シェルスクリプトからダイアログを出したい? ズバリdialogというコマンドがあるね。

インストール

$ sudo pacman -S dialog

まさかのManjaro Linux再インストール

February 28, 2018

Manjaro Linuxを入れて使っていたThinkPad X1だったが、先日、かなりの量のパッケージをアップデートした後から調子が悪くなってしまった。Mozcが起動しないとか、突然、Xfceのパネル(xfce4-panel、タスクバーみたいなやつ)が空っぽになってしまったりとか。ローリング・リリース、恐るべし。

Mozcは修復できたけど、パネルの方はどうやってもダメだ。Whiskerメニューや時計などのアイテムが全部消えて、短い空っぽのバーが表示される。コンフィグ、セッション、キャッシュあたりの不整合が起きてるっぽい。新しいアカウントを作ってみると、デフォのままならいいが、パネルのpreferenceを変えてから再ログインしたところで再発。~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-panel.xmlを書き換えても、パネルを起動したところで上書きされているようだ。

似たような現象がManjaroのフォーラムで報告されているが助けにならなかった。諦めて、クリーンインストールすることにした。


ClojureでGUI操作を自動化

February 17, 2018

仕事で、.Netアプリの操作を自動化する必要があって、標準のAutomation機能とか、昔ながらのSendMessage()とかを試したんだけど、どうも、うまくいかない。.Netの場合、他アプリのコントロールに対してSetWindowText()とかできないらしい(ラベルとかならできたけどテキストボックスはダメ)。

そんななかで、sikuli(https://github.com/sikuli/sikuli)というツールを見つけた。ソースをチラッと見てみると、JavaのRobotクラスを使ってるようだ。そう言えばそんなのもあったなぁ。面白そうなので、Clojureで作ってみた。

ソースは、GitHubのここ


Case ~大文字・小文字

February 12, 2018

よく、大文字・小文字を区別せずに検索することを、ignore caseと言ったりする。逆に、区別する場合はcase sensitiveだ。大文字はupper caseで、小文字はlower case。ここで言うcaseという単語は、そのまんまケース(箱)のこと。かつて活版印刷の植字工が、個々の活字を大文字と小文字に分けて別々の箱に入れて管理していたことから、caseが大文字小文字区分そのものを意味するようになったらしい(https://www.collinsdictionary.com/dictionary/english/case#case__5)。

本題。プログラミングでは、関数や変数などをネーミングするときに複数の単語を連結することが多い。その際、英文のように半角スペースで単語を区切ることはできないので、別の方法を使う。よく目にする表記スタイルを集めてみた。それぞれに名前が付いている。

呼称補足
camelCase小文字で始めて、単語の区切りを大文字。camelはラクダのこと。
PascalCase大文字で始めて、単語の区切りも大文字。発案者がTurbo Pascalというpascalコンパイラの開発者だった?
snake_case全部小文字で、単語の区切りはアンダースコア。地を這うヘビ。
kebab-case全部小文字で、単語の区切りはハイフン。ケバブはトルコ料理で、食材を串刺しにする。chain-caseとも(鎖ね)。
SCREAMING_SNAKE_CASEsnake_caseの大文字版。叫んでる。定数名に使うことが多い。