2004年01月05日(月)
■ [xrea] namazu
XREAでのnamazuについては、去年末にXREAの掲示板にてwebmasterからのコメントがついてました。目新しいことは書かれていませんが。
■ 生活
- 定期券を購入した。郵便番号とか入力させられたけれど、何に使うのだろうか。
- 今日から仕事。久しぶりの職場。遅い出社。
- 遅い退社。
2007年01月05日(金)
- 今日から仕事。休みの間に職場のメイルアドレス宛へ来ていたspamは700通ちょっと。
- 疲れた。帰ってきてすぐ寝た。起きてから食事。
■ [life][soft][windows] さようならDatula
長いことDatulaを自宅のメイルクライアントとして使ってきたけど、年明けからSylpheedを使うようにしてみた。職場では以前からSylpheedを使っている。
Datulaと比べて不便な所:
- スレッドを切ったり繋げたりする機能がない
- 直前に読んだメッセージに戻る機能がない
- メニューにない操作のキーバインドの変更ができない。できるのかもしれないけどわからない。キーバインドを変更したい操作:
- メッセージの逆スクロール。デフォルトだとShift-Spaceでできる。
- メッセージの1行スクロール。デフォルトだとEnterでできる。でも2.5行くらいスクロールするなあ。
- メッセージの1行逆スクロール。デフォルトだとShift-Enterでできる。
- フォルダのプロパティにSubjectの内容を設定できない。
パッチを書ければいいんだけど、GTK+が面倒そう。日本語の情報あるのかな。む、日本GNOMEユーザー会にある感じ。とりあえず自分でコンパイルしてみるかなあ。
Datulaにはさようなら。1998年から9年近く使った。
2011年01月05日(水)
■ [unix][howto] CentOS 4 でRPMforgeを設定
久しぶりにCentOSの設定をする羽目に。バージョンは4.8と古い。yumとかもう忘れたよ。
標準のyumリポジトリだけだと全然足りないので、RPMforgeを使うことにした。以前にメモした
- Installing RPMforge (CentOS Wiki)
を見ながらやる。
GPGキーのインポート
上のWikiには
# rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
を実行するよう書かれていたが、これは
エラー: http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt: import read failed.
というエラーになった。当該URLにアクセスすると http://apt.sw.be/RPM-GPG-KEY.dag.txt へリダイレクトされたので、こちらのURLで試したらうまくいった。
rpmファイルの検証とインストール
Wikiにある通り、rpmファイルをダウンロードし、rpm -K で署名を検査して、rpm -i でインストールする。
インストールすると、/etc/yum.repos.d/ にrpmforge.repo など4つのファイルが作られた。
yum-plugin-prioritiesをインストール
RPMforgeは3rd Party Repositoriesなのでyum-plugin-prioritiesをインストールした方がよかろうと思いインストールした。
- yum-plugin-priorities (CentOS Wiki)
に説明がある。ここにある通り
# yum install yum-plugin-priorities
でインストールできる。その後、/etc/yum.repos.d/rpmforge.repo に「priority = 10」などと追記した。
■ [python][unix] Mercurialをインストールした
RPMforgeを使えるようにしたのはMercurialをインストールするためだったのだが、MercurialはPython製なので、setuptoolsに含まれるeasy_installを使ってインストールした方がいい気がしてきたので、そうすることにした。
setuptoolsはRPMforgeに python-setuptools というパッケージとして存在していたが、これだと /usr/bin/python にあるPython 2.3が使われてしまうようで、うまくなさそう。Pythonは独自にビルドしたもっと新しいバージョンを使いたい。
こういうときには"Virtual" Pythonという運用をするといいみたい。
- Python開発環境を整えよう (ウノウラボ)
などを見ながら、virtual-pythonを設定してeasy_installを使えるようにした。あまりよくわかっていないので手順はメモしない。
その後、
$ easy_install mercurial
とすることで ~/bin/hg をインストールできた。
■ やること
- 定期券
2014年01月05日(日)
■ [java] JavaFXでイベントハンドリング
JavaFX 2で始めるGUI開発 第2回 シーングラフとFXMLを読んだ。コントローラクラスでGUIからのイベントを受け取る方法が説明されていたので試す。
FXML
掛算を行う画面を作ってみた。画面とそのFXMLは次の通り。
<?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.TextField?> <?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.HBox?> <AnchorPane id="AnchorPane" prefHeight="200.0" prefWidth="300.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/2.2" fx:controller="hello.HelloController"> <children> <HBox alignment="CENTER" spacing="10.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <children> <TextField fx:id="leftField" onKeyReleased="#handleKey" prefWidth="50.0" /> <Label text="×" /> <TextField fx:id="rightField" onKeyReleased="#handleKey" prefWidth="50.0" /> <Label text="=" /> <Label fx:id="resultLabel" text="" /> </children> </HBox> </children> </AnchorPane>
- xmlnsのURLが前回と違うのは、Scene Builderがこう書き換えてしまうから。
- ルート要素のAnchorPaneタグのfx:controller属性でコントローラとするクラスの名前を指定している。
- コントロールを横一列に並べるのにHBoxを使ってみた。
- 入力を受け付けるTextFieldタグと結果出力用のLabelタグのfx:id属性でそれぞれのフィールドに名前を付けている。
- TextFiledタグのonKeyReleased属性で、キーボードのキーが離されたイベントを処理するコントローラクラスのメソッド名を指定している。
コントローラクラス
FXMLで指定したコントローラクラスのコードは次の通り。
package hello; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.input.KeyEvent; public class HelloController { @FXML private TextField leftField; @FXML private TextField rightField; @FXML private Label resultLabel; @FXML public void handleKey(KeyEvent event) { try { double left = Double.parseDouble(leftField.getText()); double right = Double.parseDouble(rightField.getText()); resultLabel.setText(String.valueOf(left * right)); } catch (NumberFormatException | NullPointerException ex) { resultLabel.setText(""); } } }
- FXMLで名前を付けた要素それぞれに対し、同名のメンバ変数を用意している。@FXMLアノテーションを付けることで、FXMLで定義した要素のオブジェクトを自動的に参照するようになるみたい。
- FXMLで指定したキーreleaseイベントのハンドラメソッドを用意している。これにも@FXMLアノテーションを付ける。メソッドの引数がKeyEventになるということはNode#onKeyReleasedの型から分かるのだと思う。
メインクラス
メインクラスは前回と同じでよい。以上で掛算画面が動作するようになった。
2021年01月05日(火)
■ [dev] GitでSSH鍵を指定する
gitコマンド実行時にデフォルト以外のSSH秘密鍵を指定したかった。
- git clone 時に秘密鍵を指定する (Qiita)
にあるように、git の -c オプションで core.sshCommand を指定するのがよさそう。
$ git -c core.sshCommand="ssh -i ~/.ssh/鍵ファイル名" clone リポジトリ
のような感じ。
2023年01月05日(木)
■ [windows] WSLのディストリビューションを非Cドライブに移動した
CドライブでWSLが使用している領域が大きかったので、別のドライブへ移動した。やったことをメモ。
インストールされているディストリビューションの確認
- インストールされている Linux ディストリビューションを一覧表示する (WSL の基本的なコマンド)
> wsl -l -v NAME STATE VERSION * Debian Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2
このDebianを移動したい。
エクスポートする
移動するために対象のディストリビューションをエクスポートする。
- ディストリビューションのインポートとエクスポート (WSL の基本的なコマンド)
--vhdオプションを付けた方が速くエクスポートできるようだ。
コマンドを実行したフォルダに巨大なファイルが作られるので注意。
> wsl --export Debian debian.vhdx --vhd エクスポートが進行中です。これには数分かかる場合があります。 この操作を正しく終了しました。
インポートする
> wsl --import debian2 M:\kenichi\wsl\debian debian.vhdx --vhd インポート中です。この処理には数分かかることがあります。 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * Debian Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2 debian2 Stopped 2
Mドライブへ別名でインポートした。インポート時にも --vhd オプションが必要。
この段階でインポートしたディストリビューションが動くことを確認したらいい。Windows Terminalでdebian2を選べるようになっているはず。
既定のディストリビューションを変更する
今後はdebian2の方を使うので、それを既定に設定する。
- 既定の Linux ディストリビューションを設定する (WSL の基本的なコマンド)
> wsl --set-default debian2 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * debian2 Stopped 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2 Debian Stopped 2
移動元のディストリビューションを削除する
インポートしたディストリビューションが動くことを確認できたら移動元の方は削除する。
これでCドライブの空き容量が増えた。
> wsl --unregister Debian 登録解除。 この操作を正しく終了しました。 > wsl -l -v NAME STATE VERSION * debian2 Running 2 docker-desktop-data Stopped 2 docker-desktop Stopped 2
既定のユーザーを設定する
インポートしたディストリビューションは起動するとログインユーザがrootになる。これを変更するにはディストリビューション内に /etc/wsl.conf を作るのがいいようだ。日本語の説明はわかりにくかったので英語版から引用。
- Change the default user for a distribution (Basic commands for WSL)
Warning
This command will not work for imported distributions, because these distributions do not have an executable launcher. You can instead change the default user for imported distributions using the /etc/wsl.conf file.
$ cat /etc/wsl.conf [user] default=kenichi
- ユーザー設定 (WSL での詳細設定の構成)