かざいむ日誌

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

OpenShift mongodb ちょっと覚書(MongoDBカートリッジとか)

OpenShiftにNodeJSとMongoDBを入れて動かしている。で、直接DBにデータをつっこみたいけどうまく行かない。puttyで繋いでmongoと打っているけど、それで見えるdbとNodeJSから見えるdbが違うっぽい。

OpenshiftでMongoDBへの接続を行う場合はこういう宣言でOK。

mongo_url = process.env.OPENSHIFT_MONGODB_DB_URL;

stackoverflow.com

Mongoは検索条件の指定とかもJSONだから、とったデータをそのまま検索条件にも出来る。SQLの組み立てがいらないのはなんか楽。

qiita.com

qiita.com

取得件数はこうやって数える。

Model.find().exec(function (err, results) {
var count = results.length

});

stackoverflow.com

 

OpenShiftで1つのログだけ見たいときはこのコマンド。

rhc tail -f app-root/logs/nodejs.log -a myAppName

stackoverflow.com

 

Mongoose全般についてはこのサイトで勉強しました。

albatrosary.hateblo.jp

 

WebHookの穴のふさぎ方。

Securing your webhooks | GitHub Developer Guide

日本に戻ったらどうしよう。 読書メモ。

日本に戻ってからの生活をどうするか妻と話をした。子どもが2人いて、私の収入が多くないので共働き、妻と子供は妻の実家に暮らして、単身赴任という形もやむなし、と考えていた。なんか追い詰められているような気持ちになりながら本を読んでいたら、考えるきっかけになる文章があったので、これを糧になんとか新しい生活を構想していきたい。

 

ニーズとは、欠乏やという意味からきている。私の現在の状態を、こうあってほしい状態に対する不足ととらえて、そうではない新しい現実をつくりだそうとする構想力を持ったときに、はじめて自分のニーズとは何かがわかり、人は当事者になる。ニーズはあるのではなく、つくられる。ニーズをつくるというのは、もうひとつの社会を構想することである。

『当事者主権』中西正司、上野千鶴子著、岩波新書

 

僕が思う「哲学」というものは、この隅田公園と隅田川河川敷が実は違う管轄で、それによって警察の動き方や行政の動き方が変わることを理解し、自分のくらす場所を獲得するという行為そのものである。彼は匿名していた「土地」を名のある大地として再認識した。つまり、レイヤー間をジャンプし、サバイブすることに成功したのだ。

その「考える」行為。匿名化した社会システムレイヤーの裂け目、空間のほつれを認識し、そこにたそうなレイヤーが存在していることを知覚し、ジャンプし、独自のレイヤーを作成する行為。

これが 「生きる」である。

 『独立国家のつくりかた』坂口恭平著、講談社現代新書

 

なんか本を読んでて繋がった気がしたのでメモ。

テロリストと人権活動家の共通点

先日ちょっと縁があって、人権活動のNGOについての話を聞かせてもらった。するとテロリストと似ているところがあるなと思ったのでその顛末を書く。

最近IS関連のニュースで取り上げられるのはその通信手段。以前は世界の各地から中東のIS支配地域に渡航し、トレーニングを受けて、各国に戻る。そして、テロを実行する。それが最近は、それぞれの国にいたままIS構成員の指導を受けて、テロを実行するとか。その際にIS構成員とのやり取りは盗聴されないようにしているとか。

一方で人権活動家は各国政府から監視されることが多く、盗聴などの対策を取っている。2段階認証のメールを使ったり、もろもろ対策を講じるとのこと。

と考えると、通信の面ではテロリストと人権活動家は似ていると言える。それもそのはず、どちらも反体制という意味では一緒だからだ。そう考えるとテロリストの手口に人権活動の進め方や他の活動の進め方のヒントが得られるかもしれない。

 

例えば、遠隔でトレーニングを施すとか、NGOや国際協力でももっと活用出来るはず。インターネットはどんどん普及しているので、各国語で学ぶ環境、英語を学ぶ環境を整えれば変化を生み出せるかも。

Messenger botでメニューを作る。

Messenger Botでメニューを追加する場合、FacebookAPIにメニューのJSONを投げる。Macまたは、Linuxだと多分問題なく出来るけど、Windowsではちょっと注意が必要だった。curlでPOSTしたがうまくいかなかったので、RESTをいじるツールDHCでPOSTして成功。

FacebookのサンプルだとJSONデータ部をシングルクォーテーションで囲んでいるが、Windows環境ではダブルクォーテーションで囲む必要があるらしい。

dim5.net

 

こんな感じで投げたらうまく行った。

f:id:name_untitled:20170113192259j:plain

 

反映されるのにちょっとタイムラグがあるのかも。messengerを立ち上げたらこんな感じ。

f:id:name_untitled:20170113192459p:plain

OpenShift でLineBotを作る。(PHP)

OpenShiftで、Lineボットを作った。

github.com

つかったのは、TinySDKの方のEchoBotサンプル。

通常版のSDKのEchoBotのサンプルはSlimを使っていて、

OpenShift上でポートのListenがうまく行かなかったので断念。

まずは、サーバーソフトのnginxとは、最近メジャーなwebサーバーで、Apacheより多くのリクエストをさばくことができるらしい。ただ、Apacheよりも元の機能は少ないらしい。PHPについていうと、別のプロセスで実行されているものをソケットで呼び出すという形で呼び出すことになるそうだ。

www.atmarkit.co.jp

このカートリッジからnginxをインストール。

github.com

LineBotSDKではPHP5.6以上が必要らしいので、 同じ人のPHPカートリッジを追加する。あ、でもTinySDKなら普通のPHPカートリッジで良いかも。

github.com

 

そのあと、上記のLineBotSDKに載っているEchoBotのサンプルを展開する、とオウム返ししてくれる。

 

ちょっと勉強になったので、もろもろリンク集を載せておく。

 

 

以下は、通常版のSDKに一緒に載っているEchoBotを構築する際の試行錯誤のメモ。構成としては、nginx+PHP+Slimフレームワークで、きれいな気がする。

 

 

OpenShiftでデプロイしたファイルはこんな感じで展開される。ディレクトリをたぐって、composerを実行して、依存性を解決する?

developers.openshift.com

 

いや、多分↑はやり方を間違えている。OpenShiftはComposerを利用する場合にMarkerと言われるファイルを作成すると利用出来るようになるらしい。ただ、まだうまく行っていない、、、。

qiita.com

 

developers.openshift.com

ComposerはOpenShiftで使えるはずだが、うまく構成出来ていないとログに、autoload.phpが読み込めないというエラーが出る。

stackoverflow.com

 

Slimフレームワークについての説明はこちらのサイトが詳しい。

qiita.com

blog.orepedia.com

Web Servers - Slim Framework

 

OpenShift上でnginxサーバーでPHPのSlimで動かすようにしたいが、設定が終わったと思って動かしたら、ゲートウェイエラーが返ってきた。

kawatama.net

 

OpenShiftカートリッジで、上手くエントリポイントの設定が出来ていない。サンプルでは最後にこんなコマンドを実行して、待ち受けを開始する。

php -S 0.0.0.0:8080 -t public

が、OpenShiftでは権限エラーとなるので、別の方法で開始する必要がある。

minisatで論理パズルを解く。解ける。

VMWare上にCentOSを立てて、minisatの実行環境を構築する。

CentOSを立ち上げて、makeの環境を構築。

(そのままインストールできそうだけど、自前でmakeした。)

yum groupinstall 'Development Tools'

yum install gcc
yum install zlib-devel

 

minisatのソースをダウンロード。

MiniSat Page

 

make

で、minisatが出来る。

このサイトに詳しいが、論理パズルがこれで解ける。

面白い!

簡単な論理パズルを解く · Programming on SAT