あれから水栽培から鉢に植え替えて、マーブルポトスも合流させたりその他のポトスも合わせたりと色々やってひとつの鉢で育てることにした。しかし、植え替えた鉢も既に限界に達してしまった。もう一回り大きな鉢に植え替えないとどうにもならない状況にまで育ってしまった。週に一回水を思いっきり鉢全体にぶっ掛けて室内の日当たりの良いところに置いていたら下の画像のようになった。丹精込めて育てたというより、むしろ勝手に育ったという感じ。
画像1枚目。3月辺りから急激に成長が早くなった。気温のせいだろうかと思う。
Javaとtomcatはインストール済みであることを前提とする。
[PR] Eclipse3.5ではじめるJavaプログラミング入門―Eclipse3.5 Galileo対応 (Java Programing Guide)
備忘。右画像のようにテキストボックス内に左余白を設定する。リッチテキストボックスのプロパティパネル内を見渡しても左余白を設定するプロパティは見つからなかった。右余白については、RightMarginというプロパティはあってテキストボックス内の右余白を設定することができるようになっている。しかし、RightMarginがありながらLeftMarginの設定をすることはできないらしい。あってもよさそうなのだけれど・・・。で、左余白を設定するにはselectionIndentを設定することで実現できる。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.RichTextBox1.SelectionIndent = 30 End Sub
余白を設定する方法を調べていたらプロパティパネル内にShowSelectionMarginというプロパティがあることに気づいた。これもよくわからないもので、ShowSelectionMarginのプロパティをtrueに設定するとわずかばかり左側に余白が設定される。その余白サイズについては不明。サイズを設定することはできない模様。SelectionIndentを設定することで事足りるので、ShowSelectionMarginの設定はおそらく要らないのではないかと思う。
listviewの一覧のアイテムをマウスでクリックして、そのクリックした項目のアイテム名を取得しようとしたら、
Message="'0' の InvalidArgument=Value は 'index' に対して有効ではありません。 パラメータ名: index" ParamName="index"
というエラーが発生した。listviewのアイテムを初回選択時にはエラーは出ず、2回目にアイテムを選択したときにエラーが発生した。どうも挙動が怪しい。1回目に選択して2回目に選択し直すときにselectedindexの値がクリアされてから選択をし直す、というような動きをしている。なぜそのような動きなのかはよくわからないけれど、とにかくエラーを回避するには、selectedindexのcountの値を見て、0である場合は読まないようにするしかない。
If Me.listView1.SelectedItems.Count > 0 Then
memo_file_name = Me.lv_index.SelectedItems.Item(0).Text
(省略)
End If
debianをインストール後にproftpdをapt-getでインストールした後、クライアントPCからftp接続をしてみたところログインできなかった。ユーザ名とパスワードは作成されたものを正しく入力していたにもかかわらず。proftpdのログを調べてみた。
KURO-BOX:/# tail /var/log/proftpd/proftpd.log Jun 07 06:46:49 KURO-BOX proftpd[6832] KURO-BOX (192.168.11.2[192.168.11.2]): USER nakahira (Login failed): Invalid shell: ''
Invalid shell: ”という部分が問題になっている。useraddでユーザを作成したときにシェルを指定することを忘れていた模様。では、usermodでシェルを指定することにしてみる。
KURO-BOX:/# usermod -s /bin/sh nakahira
これでfpt接続に再挑戦。しかし・・・、
User (192.168.11.10:(none)): nakahira 331 Password required for nakahira. Password: 530 Login incorrect. Login failed.
また失敗。もういちどproftpdのログを調べてみる。
KURO-BOX:/# tail /var/log/proftpd/proftpd.log Jun 07 07:12:32 KURO-BOX proftpd[6846] KURO-BOX (192.168.11.2[192.168.11.2]): FTP session opened. Jun 07 07:12:37 KURO-BOX proftpd[6846] KURO-BOX (192.168.11.2[192.168.11.2]): USER nakahira: Login successful. Jun 07 07:12:37 KURO-BOX proftpd[6846] KURO-BOX (192.168.11.2[192.168.11.2]): nakahira chdir("/home/cdn/nakahira"): No such file or directory Jun 07 07:12:37 KURO-BOX proftpd[6846] KURO-BOX (192.168.11.2[192.168.11.2]): FTP session closed.
ログインは成功している。しかし、ディレクトリが見つからないと言っている。作ったはずなんだけれど・・・。
KURO-BOX:/# mkdir /home/cdn/nakahira
もういちどfpt接続に挑戦。
220 ProFTPD 1.3.0 Server (Debian) [192.168.11.10] User (192.168.11.10:(none)): nakahira 331 Password required for nakahira. Password: 230 User nakahira logged in.
無事ログイン成功。めでたしめでたし。
備忘。正規表現を使ってある条件にマッチする場合、その文字列の一部分を別の文字列に置き換える、ということをやってみる。たとえば次のような文字列があったとする。
“00 abcde” “01 fghij”
上記の文字列を、ダブルクォートで囲まれた部分に半角スペースがあれば、その半角スペースをアンダーバーに置き換えるという処理をする。目的の形式としては次のような文字列が作成されればいい。
“00_abcde” “01_fghij”
考え方としては、ダブルクォートで囲まれた部分は、1個のダブルクォートから始まり1個以上の文字列があり、スペースが続き、そして1個以上の文字列があって1個のダブルクォートで終わる、という範囲になる。これによりダブルクォートで囲われた部分が複数あっても識別することができる。下記にサンプルコードを記載する。半角”(” “)”で囲われた部分は置換せずに残すという意味になる。置換後の文字列には$1と$2という部分があるが、これは置換前のカッコを意味しており、その数字はカッコの出現順を意味している。置換対象は半角スペースのみで、それを半角アンダーバーに置き換える、となる。
Imports System.Text.RegularExpressions ... searchStr = Regex.Replace(targetString, "("".+?) ([^""]+?"")", "$1_$2")