nDiki : Apache

Apache - Apache HTTP Server

2010年10月1日 (金)

Evernoteデベロッパーズミーティング

image:/nDiki/Flickr/5044375882.jpg

一昨日、橋本大也氏の情報考学の記事「10月1日開催 Evernoteデベロッパーズミーティング@デジタルハリウッド大学大学院 秋葉原メインキャンパス」で、Evernoteの日本初のデベロッパーズミーティングが開催されることを知った。 会場が秋葉原で会社帰りに寄れるし、Evernote を利用している中で API についてもちょっと興味を持ち始めていたので、いい機会だと参加申し込み。 Evernote 遍歴を整理してみたり。

で、本日退勤後参加してきた。まだ若い企業であること・日本法人「エバーノート株式会社」も今年設立されたばかりであることなどもあってか、即席的だけれどフレンドリーな雰囲気のある、皆でこれから盛り上げていきましょう的な良い雰囲気の会であった。 Evernote 好き度ちょっとアップ。

以下ノート

ウェブサイトエキスパート編集長 馮富久氏

開会のメッセージ。

Seth Hitchings 氏(Evernote Director of Partner Integrations)

「Integrating with Evernote

  • Trunk・Evernote Affiliate Program などがあるよ。
Evernote Site Memory

英語による発表。中島健氏が適宜通訳。

  • ユーザ視点では「適切な記事部分をクリップ」できるようになる。
  • パブリッシャー視点では「アフィリエイトプログラム」により収入を得られる。
  • 「Site Memory」という名前は Evernote ウェブクリッパーでドメイン別にリスト表示できることから「Site + Memory」という意味でつけられた。
  • Button Builder でボタンを作成。By HTML element ID や By DOM element でクリップ範囲を指定できる。

Evernoteサイトメモリー自体は思うところがあってまだ導入してみていなかったんだけれど、話を聞くことでサイトオーナーにもメリットがあることは感じられた。

Web Service API

OAuth も対応しているんだ。 また API を使えば Linux 版クライアントを作れる人は作れるんだな。

途中で Twitter ハッシュタグ指定が。 この時点で #EvernoteJP よりも多く Tweet れている #Evernote を推奨とのこと。

  • Apache Thrift framework を使用。
  • Evernote Markup Language (ENML)
    • en-note
    • en-crypt
    • en-todo
    • en-media

ENML については以前ドキュメントを読んだことがあるので流して聞く。

  • Evernote Bridge for iOS
  • Evernote for Android
    • intents
      • Future releases will feature additional intents for searching and displaying.

Android はやはり intent が強力だね。 今後新しい intent 対応があるとのこと。楽しみ。 個人的にははやくオフライン閲覧ができるようになってくれると嬉しい(すこし前のアップデートで準備段階としてキャッシュ機能が入ったのでもうすぐらしいんだけれど)。

Q & A
  • Q. ActionScript 3.0 からの API 利用は?
    • A. 今は準備していない。
  • Q. API でポカした場合どうなるのか?
    • A. 今までひどい開発者/ソフトウェアは出ていないが最悪ノート消去や・意図しないデータアップロードが考えられる。
    • A. 負荷が高ければ API key を revoke することも。
    • A. 実装したい機能仕様にあわせて権限を限定したキーを発行することも。
    • Q. モバイルからの印刷機能を提供する予定はあるか?
      • iOS 4.2 は OS の機能として。
    • Q. ENML の validating service はあるか?
      • A. サーバサイドで DTD ベースのバリデーションがかかる。
    • Q. サンドボックス環境は?
      • A. ある。
    • Q. サードパーティのものを Evernote クラインアト左下の広告エリアで紹介するようなとはあるか?
      • A. そのエリアには有料広告 または Evernote として面白いものを。
      • A. まずは Trunk へ。Evernote では Trunk を商売の場としては考えていない。
    • Q. サードパーティーがユーザからの課金する仕組みはあるか?
      • iPhoneAndroid 向けアプリはそちらのマーケットで。デスクトップ向けはない。
    • Q. 従量課金のための仕組みは?
      • A. 今のところない。使えるとしたらアップロードデータ量のカウントぐらい。
    • Q. アフィリエイトのトラッキングは動いているの? レポートは?
      • 1カ月周期でメールで。参照された総数と。$10 支払い発生したユーザ数。
      • API 使用量などの統計データは一部とっている。メールで相談を。
メディアプローブ株式会社 渡辺泰氏

デベロッパーズミーティングということで、ぜひ開発者の声をということで今朝プレゼンテーションを頼まれたとのこと。

初代 MacBook Air 用ディプレイ接続のアダプタを忘れたが、会場参加者にもっている人が貸してくれて無事プレゼンテーション。やはり Mac 率高い。

開発している iPhone RSS リーダに求められた「ニュース保存」に対応するために

  1. Twitter
  2. Evernote

と対応していった。EvernoteAPI 対応は1〜2日程度+テスト。工数少なく機能実装できたとのこと。メール送信によるノート新規追加を連携としているものが多いが、API 利用することでノート表示などもサポートできるという利点があるなど。

デジタルハリウッド大学教授/データセクション株式会社 橋本大也氏

Evernoteなう」

  • Blog記事解析による Evernote の動向(記事数・共起語の変化・ポジティブ/ネガティブ語)
  • 先日情報考学にEvernoteサイトメモリーボタンを追加。Movable Typoe から Evernote に自動的にノート追加してくれるといいな。
  • Evernote の image recognition では認識した文字列の候補を複数もつことで再現率を上げている。
  • Evernote に送る」それとも「Evernote に保存する」?
    • Evernote としては「クリップする」が一押し。
  • レシートを取り込みたい。
  • Evernote では直接音声認識はないけど、Evernote に追加した録音音声からテキスト化してノートにしてくれる外部サービスはある。
  • GTD については?
  • Dropbox との連携は?
    • 「ぶっちゃけみんな Dropbox ユーザ」
[ 10月1日全て ]

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日全て ]

2011年7月5日 (火)

今日のさえずり: 来年は夏の文脈自由文法祭りですね

2011年07月05日

  • 08:23 http://gplus.to/naney
  • 10:28 ディスプレイアーム設置。よいよい。
  • 10:46 次は半袖でペタペタするこのアームを改善したい。
  • 10:54 次のミーティング12人か。あれ8人まで向けの部屋では。
  • 11:05 うちの開発チームなんて呼ぶのって話やっぱり出た。
  • 12:02 RT @maka2_donzoko: 明日の #shibuyapm に参加される方でまだAcme大全2010欲しい方いらっしゃるかな。10冊ほど残ってた。
  • 13:24 そういえば朝、渋谷に ODBOX があるの今ごろ思い出した。近日ぶらりしたい。
  • 13:43 塩牛丼 400円。 (@ 神戸 らんぷ亭 渋谷並木橋店) http://4sq.com/kyqBv0
  • 14:42 RT @mixi_engineers: mixi Engineers' Blog 更新しました → mixi Engineers’ Seminar #2のご報告 http://alpha.mixi.co.jp/blog/?p=3362
  • 15:00 食券印刷した。今晩のおかずは何かな。
  • 15:11 もう並んだ方がいいですよ。「なお、お食事の数に限りがございますため 無くなり次第終了とさせていただきます。」 RT @mushikabu: @Naney むむ、ここにもライバルがw
  • 17:04 ちょっとだけゾーンに入る。
  • 19:03 RT @mixi_engineers: mixi Engineers' Blog エントリ追加しました(今日は2つめ) → Apache Solr を利用した検索パッケージ Anuenue http://alpha.mixi.co.jp/blog/?p=2880
  • 19:23 なんかもう皆ぞろぞろまかないに向かっている。
  • 19:32 学食?
  • 21:03 RT @nipotan: 明日の Shibuya.pm 用にまど☆マギ T シャツを入手しようと思ったが、お急ぎ便で間に合わないかも知れないから、別の T シャツ着る。
  • 22:35 退勤。まかないパワー。
  • 22:43 明日は #shibuyapm だから皆さん今夜は perlre 丸暗記ですね? #Perl
  • 23:32 Google+ for Android って連絡先の同期つけるつもりないのかな。
  • 23:58 RT @yoshiori: 一周まわって mixi やろうぜ!! けっこう面白いよ!!
  • 25:13 来年は夏の文脈自由文法祭りですね。再来年は…… #shibuyapm
[ 7月5日全て ]

2013年3月1日 (金)

nginx デビュー

ちょっとした Web サーバが欲しくなったんだけれど Apache 面倒だなと思って、初めて nginx 触ってみた。

tarball ダウンロードして適当に configure、make install して conf で port 番号変えて起動。ドキュメントほとんど読む必要無くて10分かからなかった。

 wget http://nginx.org/download/nginx-1.2.7.tar.gz
 tar zxvf nginx-1.2.7.tar.gz
 cd nginx-1.2.7
 ./configure --prefix=$HOME/local/nginx-1.2.7
 make
 make install
 emacs $HOME/local/nginx-1.2.7/conf/nginx.conf
     # http {} の中の server {} の中の listen を 80 から 8000 に変更。
 ~/local/nginx-1.2.7/sbin/nginx

Web ブラウザで 8000 にアクセス。「Welcome to nginx!」ページの表示を確認。

お手軽。

[ 3月1日全て ]

2013年8月7日 (水)

プログラミング言語仕様・振る舞いを確認するために小さいプログラムを書く

プログラミング言語仕様・振る舞いを確認するために小さいプログラムを書く。 「この式を評価すると値は何になるの?」とか「この2つの書き方どっちが速いの?」とか「この正規表現にどうパターンマッチングするの?」とかを確認したい時。

当たり前の進め方だと思っていたんだけれど、そうすることを勧めたらスルー気味だったので。

特にスクリプト言語なら 「a.ほげほげ 」(Perl なら a.pl)なファイル作って実行してみればいいじゃんと思うのだけれど手間に感じるのかな。本丸のプログラムのソースコードを書き換えて試す(Apache 再起動して Web ブラウザでアクセスしてデバッグプリント読むとか)よりよっぽどはやいよ。あと、単体テストファイルでやっちゃうのもアリ。

それに適当に記事としてまとめておけば、今度は自分が他人に説明する時にそれを示せば済むようになるしね。

[ 8月7日全て ]

2013年9月18日 (水)

今日のさえずり: トピックブランチに統合ブランチを安易にマージしちゃ駄目

[ 9月18日全て ]

2013年10月12日 (土)

今日のさえずり: カメラの性能の違いが戦力の決定的差ではないということを教えてやる!

2013年10月12日

  • 07:15 昨日、ノハナのフォトブック2作目が届いた。見た人が笑顔になるのが一番嬉しいね。
  • 09:35 洗面台の排水口思ったより汚れてた。パイプユニッシュ。
  • 09:49 暗証番号を変えるのに返却していたクレジットカードの新しいのが届いた。簡易書留じゃなくてヤマト運輸のセキュリティー・パッケージ。
  • 10:27 三井住友銀行たんぽぽ支店なんてあるんだ。 / “被振込専用支店 : 三井住友銀行http://bit.ly/1bMZU7D
  • 11:40 久しぶりに Debian GNU/Linux sidアップデートしたら Apache のバーチャルホストが動かなくなってて、あれれと思ったら /etc/apache2/sites-available/* は .conf つけないといけなくなった模様。
  • 14:36 @maru_kei この USB 充電器(OWL-ACUS2)、コイル鳴きしないと評判良さそうなので狙ってます。ちょっと高めだけれど。 http://amzn.to/19G294Y
  • 14:39 明日のイベント用に NEX-5N の動作と設定確認中。去年の反省を生かしてオートレビュー(撮影直後の画像表示)は切っておこう。
  • 21:09 明日のポジション案練った。当たりかどうかはわからない。
  • 23:29 カメラの性能の違いが戦力の決定的差ではないということを教えてやる! (といえるぐらいになりたい)
[ 10月12日全て ]

2015年5月3日 (日)

公園でパンを食べたり、MacBook Pro でこの日記を編集できるようにしたり【日記】

image:/nDiki/Flickr/16727668524.jpg

いい陽気。今日は体力的にがっつりにはしないことにしようということで、パンを買って公園で食べてくるぐらいをしてきた。ちょっとした事だけれど、天気は良いし緑も綺麗なので幸せである。

あとはようやくこの日記MacBook Pro で更新できるようにした。記事データの転送自体はこの間 Unison でできるように設定してあるのであとは、事前にドラフトを確認環境を作るぐらい。

Perl の環境は perlbrew で。Web サーバHomebrewApache HTTP Server Versoin 2.4 を入れた。最近は Debian 流の Apache 設定で馴染んでしまっているので、素に近いのは久しぶりでなんか新鮮。初めてさわる 2.4 系は設定ファイルの書き方が少し変更になっていて一発ではうまく動かなかったけれど最終的に動くようになったので良かった。

あとは写真管理方法を決めることができてデータの移動も住めば ThinkPad X200 (Debian GNU/Linux) と MacBook Pro (OS X) の併用もだんだんしなくて済むようになるかな。

今日のさえずり: 新しい香山ピエール、キモいとブーイングの嵐

image:/nDiki/Flickr/17322813046.png

[ 5月3日全て ]

2015年8月13日 (木)

nDiki を HTTPS に対応させる

昨日ラピッドSSLを申し込んで TLS 1.0 接続できるようになったので、ここからはコンテンツ側の対応です。

URL 処理を修正する

nDiki (DiKicker) はかなり昔に作ったので CGI.pm を使っています。CGI.pm の url メソッドで絶対 URL を取得して permalink の生成などをしています。ここでさくらのレンタルサーバでは HTTPS 用の Apache はプロキシとしてとして動いていることもあり https://www.naney.org/diki でアクセスすると CGI.pm の url メソッドが https://naney.org:80/diki を返してしまうようになってしまいました。

ここはいったん設定ファイルでスクリプトの URL を明示的に設定できるようにして対応しました。

内部リンクを修正する

http スキームで書かれた内部リンクは順次 https に修正します。結構な量があるのでおいおいという感じです。画像などのリソースを http で指定しているところは優先して対応した方が良いですね。

外部からのリンクを修正する

外部サイトのプロフィールなどで htts スキームで書いたリンクなども順次修正です。こちらもおいおいという感じで。

[ 8月13日全て ]

2016年8月5日 (金)

今日のさえずり: マンホールのふた、もう届いてた

2016年08月05日

[ 8月5日全て ]

About

Naney Naneymx

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

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

Process Time: 0.0278s / load averages: 0.24, 0.30, 0.26