メモの日々


2003年01月05日(日) 白骨温泉で雪崩

[life] 冬休み出勤(4)

引き続き。今日で冬休みもおしまい。今日は高本さんと吉田さんが来た。少し進んだのでよかった。休日の会社は暖房が貧弱でひどく寒い。なんとかならないのか。特に足にこたえうまく動かせない。単に年かな。


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を使うことにした。以前にメモした

を見ながらやる。

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 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という運用をするといいみたい。

などを見ながら、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 の -c オプションで core.sshCommand を指定するのがよさそう。

$ git -c core.sshCommand="ssh -i ~/.ssh/鍵ファイル名" clone リポジトリ

のような感じ。


2023年01月05日(木)

[windows] WSLのディストリビューションを非Cドライブに移動した

CドライブでWSLが使用している領域が大きかったので、別のドライブへ移動した。やったことをメモ。

インストールされているディストリビューションの確認

> wsl -l -v
  NAME                   STATE           VERSION
* Debian                 Stopped         2
  docker-desktop-data    Stopped         2
  docker-desktop         Stopped         2

このDebianを移動したい。

エクスポートする

移動するために対象のディストリビューションをエクスポートする。

--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の方を使うので、それを既定に設定する。

> 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 を作るのがいいようだ。日本語の説明はわかりにくかったので英語版から引用。

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