Wed Jul 02 16:40:56 JST 2014

ますますネットワークに繋がることが「当り前」になってきている。 ますますメモリを大量に搭載していることが「当り前」になってきている。

エンジニアは何をすべきなのだろうか。


Mon Jul 07 09:38:27 JST 2014

MH フォルダの mknmz の処理がコケてた。NMZ.lock2 ファイルが邪魔だよ、と言うので このロックファイルを消してリランしても、また同じく NMZ.lock2 ファイルが出来て死ぬ。

インデックスディレクトリに残留している *.tmp ファイルを消してやり直したら、 進んでいるようだ。しばらく放置する。


Mon Jul 07 09:54:17 JST 2014

それでも mknmz がエラーで止まってしまっていた。

Unterminated compressed integer in unpack at /usr/local/bin/mknmz line 2504.

軽くググった感じでは、インデクスが壊れているらしい。 さて困ったな。まとまった時間が欲しい。


Tue Jul 08 00:59:50 JST 2014

帰宅後に、インデクスディレクトリを新規に作成して mknmz なう。

255975 ファイルに対して、 40分で 61408 ファイル。約 25% ってところなので、 160分 = 2時間 40分 …長い…


Tue Jul 08 08:05:14 JST 2014

インデクス作成処理は、無事完了していました。

開始 Tue Jul  8 00:19:54 JST 2014
終了 Tue Jul  8 02:49:55 JST 2014

2時間半、ぴったり。旧ディレクトリから NMZ.slog を移植。


Tue Jul 08 21:33:25 JST 2014

ぼちぼち git やろう、ということで、すなわち ぼちぼち vim やろう、って感じ。 何しろ commit ログには日本語を書きたいじゃないですか。

:map ^K^U :set fileencoding=utf-8^M

これで C-k C-u でファイルを UTF として保存できるようになったので、 editor に設定する。

% git config --global core.editor vim
% git config --global credential.helper cache

最後の credential.helper cache はおまけ。 初回の http 認証を しばらく 記憶しておいてくれるようになる。


Wed Jul 09 02:24:05 JST 2014

gitbucket の新しいのが出てたので、更新作業を行ってみた。 試行錯誤したけど、結論だけ書いておこう。

  • tomcat 止める
  • war 置く
  • tomcat 上げる

以上だ。あれっ、こうやって書いてみると、異常に簡単だな…。 試行錯誤の部分も書いておこう。

  • tomcat-users.xml には manager-gui と書く。manager っていう role は無い。
  • manager で upload できる war サイズには制限がある。
  • 環境変数 GITBUCKET_HOME 付きの起動スクリプトを作っておくといいね。

ほとんど tomcat メモじゃないか。


Thu Jul 10 02:33:04 JST 2014

うぉっ、、、いま一瞬バックライト切れた。やばい。寿命か。x61s。


Thu Jul 10 02:43:19 JST 2014

安室奈美恵さんの「Ballada」、dagrab で ripping したデータは 少々ノイズが乗ってしまっていたので cdparanoia で取り直し。

一般ユーザで作業するには xpt0 が触れる必要があるらしい、 ということで devfs に追記。

# vi /etc/devfs.conf
perm cd0   0660
perm pass0 0660
perm xpt0  0660
# ls -l /dev/xpt0
crw-------  1 root  operator    0,  95 Jul 10 01:50 /dev/xpt0
# /etc/rc.d/devfs restart
# ls -l /dev/xpt0
crw-rw----  1 root  operator    0,  95 Jul 10 01:50 /dev/xpt0
#

っていう情報を探しながら今回は root で作業してしまったので、 実際に試すのは次回(笑


Thu Jul 10 21:39:52 JST 2014

cdparanoia で ripping したデータでも、ノイズが乗っていることがわかった。 違うドライブで ripping してみよう。


Thu Jul 10 21:58:49 JST 2014

ちょっと古い ports ツリーで jetty をインストールしたら

  env - /usr/local/etc/rc.d/jetty.sh start

と出たのでその通りに打ったら無かった。 /usr/local/etc/rc.d/ に置いてあるのは jetty.sh じゃなくて jetty だった。

他にも、

cp /usr/local/jetty/etc/jetty.xml /usr/local/etc/jetty.xml

と出たので /usr/local/etc/jetty.xml を書き換えてみたのだが、 全く効果が無い。/usr/local/jetty/etc/jetty.xml を使ってる模様。

前者は ports ツリー上では修正されているようだが、後者は …結局誰の問題なのかよくわからない。あんま見る気もしない。 この手のプロダクトは ports で入れるのではなく野良インストールした方が良い感じである。


Sun Jul 13 00:34:30 JST 2014

sonarqube をお試しなう。 評価用で動かすまで。まず、 本家からダウンロードする。

てきとうなディレクトリに、ダウンロードした物体を展開する。一般ユーザでいいよ。

一般ユーザのまま、起動スクリプトを叩く。

% ./bin/linux-x86-32/sonar.sh start

もちろん我輩のマシンは linux じゃなくて FreeBSD なんだが、 そんなの関係ないらしい。動く。初回起動時はいろいろ環境設定が走るようで、 log/ 配下にできるログ (sonar.log) を tail -f していると面白い。

さて、起動すると 9000番で LISTEN する。 ブラウザでこいつにアクセスして、見えればOKだ。

デフォルトの H2 データベースは、評価用と位置付けられている。 画面下部に警告がうじゃうじゃ出て邪魔なので、PostgreSQL に切り替えることにする。

% ./bin/linux-x86-32/sonar.sh stop
% su - pgsql
$ psql postgres
postgres=# CREATE USER sonar WITH PASSWORD 'sonar'
postgres-# ;
CREATE ROLE
postgres=# CREATE DATABASE sonar WITH OWNER sonar ENCODING 'UTF8';
CREATE DATABASE
postgres=# \q
$ exit
% vi conf/sonar.properties

-  sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
+  #sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

-  #sonar.jdbc.url=jdbc:postgresql://localhost/sonar
+  sonar.jdbc.url=jdbc:postgresql://localhost/sonar
% ./bin/linux-x86-32/sonar.sh start

そて、これで見る側は出来たので、分析する側をやってみよう。 簡単な例として、ant でやってみる。 ant タスクも、本家のドキュメントサイトから落せる。 「Installing and Configuring SonarQube Ant Task」だ。 これを使うように、build.xml ファイルを書く。既存の build.xml とマージするのがダルかったので、ここでは sonar.xml として作った。

<?xml version="1.0" encoding="UTF-8"?>
<project default="sonar" name="sampleproject" basedir="." xmlns:sonar="antlib:org.sonar.ant">
<property name="sonar.jdbc.url" value="jdbc:postgresql://localhost/sonar" />
<property name="sonar.jdbc.username" value="sonar" />
<property name="sonar.jdbc.password" value="sonar" />
<property name="sonar.projectKey" value="sampleproject" />
<property name="sonar.projectName" value="sampleproject" />
<property name="sonar.projectVersion" value="1.0.0" />
<property name="sonar.language" value="java" />
<property name="sonar.sources" value="src/main/java" />
<!-- property name="sonar.sourceEncoding" value="UTF-8" / -->
<property name="sonar.sourceEncoding" value="MS932" />

<target name="sonar">
  <taskdef uri="antlib:org.sonar.ant" resource="org/sonar/ant/antlib.xml">
    <classpath path="buildlib/sonar-ant-task-2.2.jar" />
  </taskdef>
  <sonar:sonar />
</target>
</project>

そしたら、ビルドしよう。

% ant -f sonar.xml

ant のくせに(笑)、いろいろ頑張って $HOME/.sonar/cache/ を汚しつつ、 ビルドができる。そしたら、ブラウザでダッシュボードを確認しよう。

とりあえず、静的解析の結果が見える。ツールは何だろう。ルールの調整はどうしたらいいんだろう。 テストと組み合わせるにはどうしたらいいんだろう。


Sun Jul 13 01:50:22 JST 2014

テストと組み合わせるには、sonar.tests を書いておけばよいことがわかった。

んで、調子に乗って 例の 10000 オーバーclasses のプロジェクトの分析をしようとしたら、 死んだよ OutOfMemory で。export ANT_OPTS=-Xmx768m でリラン。


Sun Jul 13 03:40:22 JST 2014

decorate という処理の途中で死んだ。 2時間以上かかって死ぬとは。これ以上リランする気にはならない。


Thu Jul 24 19:25:12 JST 2014

dropbox uploader なるスクリプトを試してみた。

% dropbox_uploader.sh upload hogehoge.pdf tmp

bash スクリプトで、curl を使う。なかなか便利ですな。


HOME | index | prev | next
[Rev: --not under control--]
[EOF]