パブリックドメインな、SQL データベースエンジンを提供する C ライブラリ。
データベーススキーマを確認する:
sqlite dbfile 'select * from sqlite_master'
テーブル一覧
sqlite dbfile "select name from sqlite_master where type='table'" sqlite dbfile .tables
「DBIx::Class + SQLite でお手軽に」と思ったが、考えてみればテーブルの作成は必要なんだよな。
SQLite はファイルベースのデータベースで、指定したファイルが無ければ新規に作られるんだけれど、さすがにテーブルは自分で作る必要があるわけで。
WiKicker を使うのに sqlite コマンドラインツールの用意を要求するのは避けたいので、専用の管理スクリプトを提供することにする。
なんだかんだいって工数がかかるな。
入社してから社内情報共有の一環として
といろいろ手をつけてきた。 次に狙っているのは SBS である。
Wiki や社内 Blog に書くほどではないけれどメモ程度にブックマークしておきたい URL を、気軽に晒せるようにするのが目的。
はてなブックマークのような公開サービスは
という点から、今回は利用できない。
ということで社内に SBS を設置したい考えている。
最初は Scuttle にしてみようと思ったのだが、PHP ベースであるのと MySQL を使うというところで気遅れしている。 いや SQLite でもいけそうらしいということで、実は Debian でちょっと試そうとしたのだが、テーブル作成の SQL が MySQL 用で、これを修正するのが面倒なので断念。
次に Perl + SQLite で動く Rubric を試してみることにした。
Rubric は CPAN にあがっているので CPAN.pm から install Rubric でインストールできる。 モジュールをインストールしたら、セットアップ。
これで OK。
rubric.cgi にアクセスしページが表示されればひとまず成功。 メニューの「register」から、ユーザ登録する。 確認用のメールが届くはずだが、面倒くさいのでこれを待たずに
rubric user -a ユーザ名
でアクティベートする。
Rubric の HTML フォームからのブックマーキングは成功し、うまく動いているようである。 ただし、日本語の処理はどうもよくない。 title や description が化ける。 惜しい。
基本的には UTF-8 ベースでうまくいきそうなのだが、どこかで化けるようだ。 ちょっと手を入れれば直るかなと思ったが、化けるところと化けないところとがあるので逆に直す場所が多そうなので今日はやめておくことにした。
とりあえず Rubric はおいておいて、他のものも試してみることにするか。
やまだ君が声をかけてくれた飲み会に参加。 宮寺先生、福田先生、やまだ君、田中丸君、花田君、自分の6人。
待ち合わせ場所の連絡が無かったので、とりあえず電気街口に行ったら落ち合えた(実は連絡はきちんとしてもらっていたのだけれど、メールサーバ障害で届いていなかった)。
場所は矢まと秋葉原店。座敷で壁で仕切られたテーブルなので、他を気にせずに会話できたのは良かったが、ドリンクがくるのが遅かったのが×。
技術形の話は、以前に比べて Web アプリケーション系の話が増えたなあと実感。
新しい開発プロジェクトでは Git + Redmine を使おうと思う。 で例により使えるのが Red Hat Linux 8.0 サーバなので対応する Ruby やライブラリを含めてソースコードからビルドしてインストールしたのだが、ちょっとハマったのでメモ。
システムにインストールされている OpenSSL を(パッケージがなくアップデートできないので)残したまま、新しい OpenSSL をいれて使うのだが Ruby でこれを使えるようにする方法に辿りつくまで8割の時間を費した。
OpenSSL のデフォルトである /usr/local/ssl へビルドしてインストールする。
tar zxvf openssl-1.0.0b.tar.gz cd openssl-1.0.0b ./config shared make make test make intall
何も指定しないと共有ライブラリ(so)がビルド・インストールされないのが落とし穴。
後は /usr/local/redmine 以下に Redmine に必要なものを入れる。
tar jxvf ruby-1.8.7-p302.tar.bz2 cd ruby-1.8.7-p302 CFLAGS='-I /usr/local/ssl/include' \ LDFLAGS='-L /usr/local/ssl/lib -Wl,-rpath=/usr/local/ssl/lib' \ ./configure --prefix=/usr/local/redmine --enable-rpath make make install
大きな落とし穴は Ruby に含まれている ext/openssl。 OpenSSL 用の共有ライブラリが作られるのだが、いくらやってもこいつが /lib に入っている古い OpenSSL 共有ライブラリの方をリンクしてしまい /usr/local/ssl/lib の方をリンクしてくれない。
configure や make 時に LD_RUN_PATH やら -rpath を指定しても効かないし、ext/Setup で openssl を静的に指定しても駄目だし。
結局 configure.in を眺めて AC_ARG_ENABLE(rpath, ...) があるのを発見して --enable-rpath したところようやく -rpath が共有ライブラリのビルドに反映されるようになった。
30m ぐらいの深さの大きい落とし穴。
/usr/local/redmine に Ruby が入ったので必要なものを入れていく。 確実にそこの Ruby を使うようにしばらくは /usr/local/redmine/bin 以下を絶対パス指定で作業。
tar zxvf rubygems-1.3.7.tgz cd rubygems-1.3.7/ /usr/local/redmine/bin/ruby setup.rb
Redmine のデータベースは一番お手軽な SQLite を使う。これもインストール。
tar zxvf sqlite-amalgamation-3.7.3.tar.gz cd sqlite-3.7.3 ./configure --prefix=/usr/local/redmine make make install
Ruby から SQLite を使うためのライブラリをインストール。
/usr/local/redmine/bin/gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/redmine
SQLite のありかを示す --with-sqlite3-dir を -- の次に指定するというところに気がつくのに浅い落とし穴。
Redmine のインストールの説明では Passenger を推奨しているようなので入れてみる。
/usr/local/redmine/bin/gem install passenger
OK。しかし Apache モジュールを
/usr/local/redmine/bin/passenger-install-apache2-module
でインストールしようとすると失敗。Apache の dev 系のファイルがシステムに入っていないので、それはそうだな。しかし Passenger のコマンドは寡黙ではなく何が駄目で何をすべきかきちんと表示してくれるのでわかりやすい。
この落とし穴は、横を通って回避。
Passenger のインストールで最新の Rack が一緒にインストールされるのだが、Redmine には新しすぎて後の手順でエラーで止まる。 ので、ここで 1.0.1 にダウングレードしておく。
/usr/local/redmine/bin/gem install rack -v 1.0.1
これは皆が知っている落とし穴。
ようやく Redmine のインストール。 展開するだけ。
tar zxvf redmine-1.0.3.tar.gz mkdir -p /usr/local/redmine/var/lib mv redmine-1.0.3 /usr/local/redmin/var/lib/redmine
以下 /usr/local/redmine/var/lib/redmine で作業。
cd /usr/local/redmine/var/lib/redmine
config/database.yml を作成する。SQLite を使うように設定。
production: adapter: sqlite3 database: /home/naney/var/redmine/redmine.db
データベースは定期バックアップのある自分の home 以下に。
makdir -p ~/var/redmine
config/email.yml を作成する。今回は専用の redmine@example.com を作成して、その SMTP サーバ/アカウント経由で送信するようにする。
production: delivery_method: :smtp smtp_settings: address: smtpserver.example.com port: 25 domain: redmine.example.com user_name: "redmine@example.com" password: "mypassword"
必要なファイルやらデータベースの初期化やらを行う。
/usr/local/redmine/bin/rake config/initializers/session_store.rb /usr/local/redmine/bin/rake db:migrate RAILS_ENV=production /usr/local/redmine/bin/rake redmine:load_default_data RAILS_ENV=production
最後のコマンドでは言語を選ぶプロンプトが出るので ja を指定。
Apache 経由ではなく Passenger スタンドアローンで Redmine を使ってみる。
/usr/local/redmine/bin/passenger start
失敗。途中の処理で rake が見つからないという。
PATH=/usr/local/redmine/bin:$PATH passenger start
やっぱり失敗。自動的にダウンロードした ngix のビルドに失敗しているっぽい。 落とし穴。
/usr/local/redmine/bin/ruby script/server webrick -e production
Redmine 的には 本番向けではない WEBrick は無事起動。
http://インストールしたサーバ:3000/
にブラウザにアクセス。Redmine のページが見えたよオッカサン! admin:admin でログインしてあとは Web ブラウザから設定。 Git リポジトリの連携もすんなり。
やったね。
WEBrick で使い続けるなら script/server 起動時に -d オプションを指定する(記事)。
2002年10月19日から開発を始めてしばらく公開・運用をしていた WikiEngine だけれど最近は WikiEngine そのものは使っていなくて、今はそのコードをベースに作った日記システム の DiKicker 部分しか使っていない。DiKicker の方は自分自身で今後も使っていくんだけれど、さすがにいろいろ古いのでそろそろ大改修しようかなと。基盤部分的には
などをして今後も使っていけるようにしたい。既に使っていないアプリケーションとしての WikiEngine 部分は移行させていく手間をかける必要はないと思うので、コードを削除していくことにした。WikiForum 立てるなら既にいろいろ他の選択肢があるしね。
CVS での管理もやめて Git 管理に変更。最後の公開 tarball を展開して git init して最初のコミットとし、その後に変更した作業ディレクトリを Git 側の作業ツリーに上乗せしていったんコミット。あらためて最後の公開コードの上に差分を積んでいくつもり。
Windows で写真のブラウズとスライドショーでの閲覧に使うソフトウェアを選定中。 Linux でずっと使っている写真管理ソフトウェア digiKam をチェックしたら Windows 版バイナリのインストーラがあったのでインストールしてみた(digiKam-installer-4.9.0-win32.exe)。インストーラが 232MB あって結構大きいなと思ったんだけれどインストールしたら 1GB 以上のインストール容量でさらにびっくり。Konqueror とかも同梱されていたりと KDE の主要なものまるっと入っているっぽい。富豪的。
起動すると見慣れた画面。いけそう。ただ Windows 7 のエクスプローラから写真ファイルを KDE のペインにドラッグ&ドロップでコピーしようとしたら重複確認ダイアログが出て(KDE のアルバムフォルダ側は空の状態)、しかもキャンセルするとコピー元の写真側が OS のごみ箱に入れられてしまったりとちょっと危険な挙動をした。digiKam 内でコピー・移動させる分には問題ないので、普通の Windows アプリケーションとの間ではドラッグ&ドロップを気をつければ良さそう。
ということでひとまず第一候補。
ちなみに昨日 Windows Essentials 2012 に入っている「フォト ギャラリー」というソフトウェアも試してみたんだけれど、こいつはタグその他の情報を写真ファイルに直接書き込んで更新してしまうタイプだったので NG だった。元ファイルを書き換えてしまうの嫌い。
ちなみに digiKam は SQLite データベースに管理情報を書き込むので元のファイルを書き換えないので良い(オプションで画像ファイルにメタ情報を書き込む運用もできる)。
OS X でも digiKam 使いたいと思っているんだけれど MacPorts での提供になっている。 Homebrew 使い始めているので MacPorts は入れたくないなと思っていてちょっと考え中。
Linux から OS X に乗り換えてから写真管理ソフトウェアをどうするか困っていたんだけれど、 Linux で愛用していた digiKam の バイナリ (4.10.0 の pkg ファイル)が配布され始めたのを知って小躍りして昨日インストールした。ちょっと使っている範囲では問題なく動いている。
もともと公式サイトでは MacPorts でのインストール方法自体は案内されていて OS X では動くようになっていたのだけれど、自分は Homebrew 使っているので MacPorts で入れるの嫌だなあと思っていたので躊躇していたところなので嬉しい。
Adobe Photoshop Lightroom は評判が良いのだけれど高いし Photos (写真)はクラウドに向かっているらしいのでちょっと違うしで、とりあえず Finder で済ませつつどうしようと思っていたところなので良かった。
digiKam は写真を置いてある任意の複数ディレクトリをアルバムとして指定して管理できるタイプのソフトウェアで個人的に気に入っている。写真データファイルをファイル名含め勝手に書き換えることもないので安心(設定次第ではメタデータを写真に埋め込むこともできるけれど、通常の設定では SQLite データベースファイル上にメタデータが保存される)。がっつりフォトレタッチしたいとかではなく、デジカメで撮ったたくさんの JPEG ファイルを撮影日で探したりスライドショーをしたりといったことができれば良い人にはお勧めである。
(画像は https://www.digikam.org/node/739 掲載の https://www.flickr.com/photos/digikam/17379488119 (Caulier Gilles 氏) より)
この日記(nDiki)で使っている自作日記システム DiKicker、開発し始めたのが2003年12月末なのでもう13年物だったりします。ここ最近大きなメンテナンスはしていなかったのですが、まだこの先10年以上使えるように手を入れることにしました。一昨日から着手。
やりたいこと
Naney (なにい) です。株式会社MIXIで SNS 事業の部長をしています。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。