nDiki : データベース

2010年7月2日 (金)

今日のさえずり: バックで逆走って、どこまで許されるの?

naney:4767516521

2010年07月02日

[ 7月2日全て ]

2010年9月15日 (水)

今日のさえずり: 「謎が解けそうだよ!」(代償は大量のデバッグログコード)

2010年09月15日

  • 09:24Twitter? 目の前には新・午後の紅茶の広告。どこが新しいの(両方とも)?
  • 10:07 Evernote の今回のサイクルではじめて 250MB 弱までいった。今日の午後には新サイクルに入るはず。
  • 10:57 MongoDB におけるアトミック操作について確認。
  • 12:10 弁当 350円。 (@ 向日葵 和泉町店・カレー食堂) http://4sq.com/9oazrC
  • 12:25 今日は環境変数 ComSpec が comspec から ComSpec に戻ってるよ……。
  • 16:56 もちっとホットケーキ 105円。 (@ ファミリーマート神田佐久間町店) http://4sq.com/biJuCj
  • 17:42 「じっちゃん、謎が解けそうだよ!」(代償は大量のデバッグログコード)。
  • 19:47 会社出ようとしたら雨。
  • 20:14 前のおばちゃんが JTB 箱根パンフレットを上目遣いで激しく睨んでて怖い。
  • 22:57 Berkeley DB って今 Oracle なのか。猫の時代しか知らない。
  • 23:59 MongoDB みたいなドキュメント指向データベースで組み込みデータベースって無いのかな。カジュアルに使いたい。MongoDB を自力で埋め込むのは大変だろうし、GNU AGPLv3 を意識しなければならないし。
  • 24:08 ああ、やっぱり PARKER のエスプリ欲しい。 http://amzn.to/cw8Fnp
  • 24:28 明日 9:00 出社だった。寝る。
[ 9月15日全て ]

2010年9月23日 (木)

今日のさえずり: 割高だけれどマクセルのボルテージにしてみた

2010年09月23日

  • 08:35 この雨で季節が変わるんだな。
  • 11:55 朝より室温下がってきてる。半袖 T シャツだと涼しくなってくるかな。
  • 12:27 雨につき墓参りはやめておいたけど、おはぎは食べた。
  • 12:30 Dropbox for Android が 1.0 系になった。KeePass データベース共有以外には Android からは Dropbox 活用していないけれど、もっと使っていきたいところ。
  • 12:53 東芝アルカリ1が豪快に液漏れしていたので、今回はちょっと割高だけれどマクセルのボルテージにしてみた。耐漏液性能を大幅向上の効果はいかに。
  • 13:55 そういえば今日から4連休
  • 15:24 最近朝ブラウニーが食べたくて仕方がない。
  • 21:03 急に上海やりたくなった。でも SUNSOFT のは600円。 #Android
  • 22:23 ああ、なんか甘いものが食べたくなってる。
  • 22:40 ネットサービス登録に使っているメールアドレス(複数)がなし崩し的に混ざっているのでちょっと整理しよう。
  • 22:46 Facebook は複数のメールアドレスを登録しておくと、どのメールアドレスでもログインできるのか。
  • 26:05 Seesmic Web アカウントの登録メールアドレスが変更できないのでアカウントを削除。Linux 上の Google ChromeFirefox からだとうんともすんとも言わないので Xperia 上の Dolphin Browser から。
[ 9月23日全て ]

2010年10月16日 (土)

今日のさえずり: あの牛乳の量ヤバい。腹にヤバい。

2010年10月16日

naney:5085927553

[ 10月16日全て ]

2010年11月24日 (水)

専用 RubyOpenSSLビルドして Redmine を入れるときの落とし穴

新しい開発プロジェクトでは Git + Redmine を使おうと思う。 で例により使えるのが Red Hat Linux 8.0 サーバなので対応する Ruby やライブラリを含めてソースコードからビルドしてインストールしたのだが、ちょっとハマったのでメモ

システムにインストールされている OpenSSL を(パッケージがなくアップデートできないので)残したまま、新しい OpenSSL をいれて使うのだが Ruby でこれを使えるようにする方法に辿りつくまで8割の時間を費した。

OpenSSLインストールする

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)がビルドインストールされないのが落とし穴。

Ruby 1.8.7 をインストール

後は /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 ぐらいの深さの大きい落とし穴。

RubyGems をインストール

/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

SQLiteインストール

Redmineデータベースは一番お手軽な SQLite を使う。これもインストール

 tar zxvf sqlite-amalgamation-3.7.3.tar.gz
 cd sqlite-3.7.3
 ./configure --prefix=/usr/local/redmine
 make
 make install

sqlite3-ruby をインストール

Ruby から SQLite を使うためのライブラリをインストール

 /usr/local/redmine/bin/gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/redmine

SQLite のありかを示す --with-sqlite3-dir を -- の次に指定するというところに気がつくのに浅い落とし穴。

Passenger

Redmineインストールの説明では Passenger を推奨しているようなので入れてみる。

 /usr/local/redmine/bin/gem install passenger

OK。しかし Apache モジュールを

 /usr/local/redmine/bin/passenger-install-apache2-module

インストールしようとすると失敗。Apache の dev 系のファイルがシステムに入っていないので、それはそうだな。しかし Passenger のコマンドは寡黙ではなく何が駄目で何をすべきかきちんと表示してくれるのでわかりやすい。

この落とし穴は、横を通って回避。

Rack のダウングレード

Passenger のインストールで最新の Rack が一緒にインストールされるのだが、Redmine には新しすぎて後の手順でエラーで止まる。 ので、ここで 1.0.1 にダウングレードしておく。

 /usr/local/redmine/bin/gem install rack -v 1.0.1

これは皆が知っている落とし穴。

Redmineインストール

ようやく 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

Redmineデータベース設定をする

config/database.yml を作成する。SQLite を使うように設定。

 production:
   adapter: sqlite3
   database: /home/naney/var/redmine/redmine.db

データベースは定期バックアップのある自分の home 以下に。

 makdir -p ~/var/redmine

Remine のメール設定をする

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"

Redmine の初期化をする

必要なファイルやらデータベースの初期化やらを行う。

 /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 を指定。

Passenger で Redmine を起動する(NG)

Apache 経由ではなく Passenger スタンドアローンで Redmine を使ってみる。

 /usr/local/redmine/bin/passenger start

失敗。途中の処理で rake が見つからないという。

 PATH=/usr/local/redmine/bin:$PATH
 passenger start

やっぱり失敗。自動的にダウンロードした ngix のビルドに失敗しているっぽい。 落とし穴。

WEBrick で Redmine を起動する(OK)

 /usr/local/redmine/bin/ruby script/server webrick -e production

Redmine 的には 本番向けではない WEBrick は無事起動。

 http://インストールしたサーバ:3000/

にブラウザにアクセス。Redmine のページが見えたよオッカサン! admin:admin でログインしてあとは Web ブラウザから設定。 Git リポジトリの連携もすんなり。

やったね。

追記 (2010年12月2日)

WEBrick で使い続けるなら script/server 起動時に -d オプションを指定する(記事)。

[ 11月24日全て ]

2010年12月23日 (木)

今日のさえずり: ラオックス井門大井店12月31日閉店

naney:5292605613

2010年12月23日

[ 12月23日全て ]

2011年5月5日 (木)

Android の[ワイヤレスネットワークを使用]をオンにした

Xperia SO-01B での現在位置取得については GPS のみオンにしていたのだけれど(理由: Google Latitude Android 設定攻略)、やはりこれだと窓際などでないと測位ができないため、foursquare 等のチェックインが結構不便。

先月下旬に Android の位置情報の収集について話題になったばかりではあるが昨日、[ワイヤレスネットワークを使用]*1をオンにした。

なおこの設定による影響は以下(だと思っている)。

*1[設定]-[現在地情報とセキュリティ]-[ワイヤレスネットワークを使用]

現在地の取得と精度

  • GPS で測位できなくても携帯電話の基地局からの電波が拾えれば測位できるようになる。ただし GPS よりかなり精度が落ちる。
  • GPS で測位できなくても Wi-Fi の電波が拾えれば測位できるようになる(Wi-Fi が ON になっている場合)。携帯電話の電波によるものより精度が高いが、Google 側の位置情報データベースに誤りがあると、全然違う場所と認識されてしまう場合がある。

セキュリティ

  • アプリケーションの起動の有無にかかわらず匿名化された位置データの収集が定期的に行われ Google に送信されるようになる。以下の組らしい。

Google Latitude

  • バックグラウンドで現在地を更新できるようになる(ロケーション履歴など)。
  • チェックイン通知が機能するようになった(バックグラウンドで現在地を取得できるようになったためか)。

その他

  • [ワイヤレスネットワークを使用]が有効でないと使えないアプリケーションが使えるようになる(例えば以前、ロケタッチに有効にしろと言われた)。
  • 位置データの取得・収集に通信が行われるため、契約によっては通信料が余計にかかる。
  • 通信が行われるため、余計に電池を消費する。

プライバシーに関する考察

まず1点目は Google に定期的に現在地が送られてしまう点。 位置情報を使うアプリケーション(Google マップfoursquare など)を使うことで、明示的にチェックインなどをしなくても位置情報をサービス側に送ってしまっているので、自宅の場所とかはどのみちいろんなサービスに割れてしまっていると思った方がいい。 という前提だと、あとは定期的に送られるという点を許せるかどうか。 個人的には Google なら、もうしょうがないかというか。 そもそも Google Latitude ロケーション履歴使ってるし。

2点目は無線 LAN アクセスポイントの MAC アドレスと、位置の紐付けについて。 これについては通りがかった他の Android ユーザによって、紐付けられてしまう可能性があるので自分だけがオフにしても防げるというものでもない。

今までは OFF にしてきたんだけれど、結局利便性をとって ON にすることに決めた次第。

ちなみに以下のサイトにアクセスポイントの MAC Address を入れると(収集されていれば)どの位置と認識されているかわかる。

[ 5月5日全て ]

2012年1月6日 (金)

POP3 しか提供されてないので hMailServer で Windows にローカル IMAP サーバ立てた

デスクトップ Windows PC 上でメールを送受信している時は社内で POP3 しか提供されていなくても問題なかったんだけれどノート PC をあわせて使うようになったら、こちらでメール閲覧できなくてちょっと不便してた。 POP3 サーバ上に数日残すようにしておいて両方の端末で受信するというありがちなやり方はイケてないのでローカルに IMAP サーバ立てることにした。

今回は艦が Windows デスクトップ PC なので Windows 用の IMAP サーバからセレクト。

選んだのは hMailServer。

バージョン 4 までは GPL、バージョン 5 以降はオープンソースではなくなったが free product として提供されている。

POP3 サーバからメールを POP してきてローカルのデータベースに保存し IMAP4 プロトコルでのアクセスを提供してくれるサービスとして動いてくれる。SMTP サーバ機能も持っている。データストアとしては MySQLPostgreSQL なども選択できるが、パーソナルユースなら embedded されている Microsoft SQL Server が使えるので手間いらずである。

実際使ってみたけれど GUI ベースで特に迷うことなく設定ができ、すぐに使い始めることができた。メール関係のサーバを Linux とかで立てる時は結構神経が磨り減るものだがストレスセットアップできた。ローカルにあった MH 形式のメールを数万通 SylpheedIMAP 経由でつっこんだけど今のところ順調。いい感じ。

導入手順ノート

  1. インストールする】
    1. hMailServer-5.3.3-B1879.exe をダウンロードする。
    2. ダウンロードしたファイルを実行しインストールを行う。
      1. 途中 Administrator のためのパスワード設定を要求されるるので、決めて入力する。
  2. 【ドメインを設定する】
    1. hMailServer Administrator が起動し Connect ダイアログが開くので localhost を選択して [Connect] ボタンを押す。
    2. Welcome の [Add domain] からドメインを追加する。パーソナルユースでメールボックス的に使う分には SMTP で受信する必要が無いので正式なドメイン名である必要無し。ただし '.' が含まれている必要がある。[General]-[Domain] にドメイン名を入力し [Enabled] をチェック。
  3. 【アカウントを作成する】
    1. ドメインを追加すると hMailServer Adiministrator の左側のペインのツリーにそのドメインのノードが表示される。そのノードの下の Accounts を選択して [Add] を押し自分用のアカウントを追加する。
      1. [General]-[Address] にアカウント名を設定する。「アカウント名@ドメイン名」が IMAP 接続する時の ID になる。
      2. [General]-[Password] にパスワードを設定する。IMAP 接続する時のパスワードになる。
      3. [General]-[Enabled] をチェックする。
      4. [External accounts] で [Add] を押し、POP3 受信設定する。実際にメールが届いているサーバからの受信設定をここにする。取得間隔は5分とか適宜設定する。
  4. IMAP を有効にする。】
    1. [Settings]-[Protocols] で IMAP がチェックされていることを確認する。

これで OK。

あとは同じホスト上の MUA からは IMAP サーバとして localhost を指定して設定した ID とパスワードで受信設定を行えば OK。 送信については hMailServer を通さずに普通に送信するように設定し、送信したメールIMAP 上の Sent フォルダ等に保存するようにしておく。

別のノート PC 等の MUA からは IMAP サーバとして hMailServer を立てている Windows PC のホスト名(等接続できる名前)を指定して同様に設定。

これで hMailServer が定期的にメールを POP3 にて受信してくれるので、あとは各 MUA から hMailServer に接続してメールを読めばよい。IMAP なので既読管理やフォルダ管理なども一元的にできる。

その他 hMailServer にはルールを設定して IMAP フォルダ振り分けしたり、迷惑メールフィルタやウイルスフィルタ設定したりできるので、必要なら設定するとよさそげ。

[ 1月6日全て ]

2012年10月19日 (金)

今日のさえずり: Visual Studio とか自腹切らんでしょ。普通 Turbo/Borland でしょ。

2012年10月19日

  • 06:46 起床。ついにこの時間の室温が20℃下回ってる。
  • 07:08 たまらず暖房オン!
  • 09:25 Visual Studio とか自腹切らんでしょ。普通 Turbo/Borland でしょ。
  • 09:58 フリース着てきた。 (@ 株式会社ミクシィ (mixi, Inc.)) http://t.co/YMx9hkc5
  • 11:53 @sseze 献金お願いします!
  • 18:35 git fetch --prune <repository> を知った。
  • 23:32 瞬間日記Android 端末にインストールしてみた。普段使いには PostEver より便利げ。再編集・削除できるし、ドラフトこれで書いて intent でソーシャルメディアアプリに送ったり、1日分まとめて intent で Evernote に渡せるし。
  • 23:44 タイムスタンプ付き140文字データベースとして、まずまず良い感じ。
[ 10月19日全て ]

2012年12月30日 (日)

今日のさえずり: 関西の人、朝マクドって言うの?

2012年12月30日

[ 12月30日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.068434s / load averages: 0.16, 0.32, 0.43
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker