投稿

11月, 2013の投稿を表示しています

nodejsからPHPを実行してWordPressのユーザー認証

イメージ
nodejsを使ってiPhone, Androidアプリ用のRest APIを開発する際に、WordPressのデータベースを使ったユーザー認証をしたかったので調査。 環境: CentoOS 5.10, node.js 0.10.21, php 5.4.21 最初はPHPでやっていることをJavaScriptで再現しようとしたけど、ソースコードを読んで無理そうだと諦めた。 なので、nodejsからPHPを外部コマンドとして呼び出して返り値を受け取ることにした。 nodejsから外部コマンドを実行するのは"child_process"を使うらしい。 Child Process Node.js v0.10.22 Manual & Documentation   nodejsから実行するPHPファイル。 wp_checkpassword.php <?php /** * WordPress Check Password for CommandLine * * @usage *   # php wp_checkpassword.php --hash="hash" --password="password" --path="/path/to/wordpress" */ $options = getopt(null, array('hash:', 'password:', 'path:')); // // Validation // if (empty($options['hash']) ||     empty($options['password']) ||     empty($options['path'])) {   exit('option error'); } // // @see wp-includes/pluggable.php line:1448 // $check = false; require_once($options['path'] . 'wp-includes/class-phpass.php&

[Titanium Mobile]Performance改善のためApplicationの設計を見直す

イメージ
Android, iPhoneアプリが一段落したので、次期開発に向けてアプリの設計とより良いパファーマンスを得られる書き方など調べ直したときの覚書。 環境:Titanium SDK 3.1.3.GA まず公式ドキュメント Best Practices and Recommendations - Titanium 3.X - Appcelerator Docs アプリのサンプルも公開されてた。 Community app - Titanium 3.X - Appcelerator Docs でもこれ2年間更新されてない(SDK v1.8.1)ので、abcsWriterの方がいいかも。 appcelerator-titans/abcsWriter | github 両方とも「名前付き関数(named function)」を多用しているので無名関数(nameless function, anonymous function)とどっちがいいか調査。 nameless vs named function · jsPerf Are named functions or anonymous functions preferred in JavaScript? - Stack Overflow 名前付き関数の方が速いらしい。 var hogeFunc = function() {}; このような無名関数を基本使っていたのでショック。今後は名前付きにしよう。。。   < 2013/11/20 Modified > ChariTi というアプリが 非常に 参考になる。 lib/core.js, lib/http.js, utilities.jsとかヨダレが出そうになるぐらい。別記事で詳細を紹介する予定。   去年のCODESTRONG(カンファレンス)のビデオを見てみた。 Breakout session - iOS Internals and Best Practices - CODESTRONG 2012 今後気をつけること。 setterを使うよりプロパティでアクセスした方が速い "透明"はコストが掛かるので常に背景色を設定した方が速い   関連した記事も見つけた。これは実際やっ

携帯(スマフォ)2台持ちなら激安SIM月額490円がお得

イメージ
最近激安SIMがあることを知ったので、契約して使ってみた。 参考サイト 格安SIM(ドコモMVNO等)LTE比較ランキング (2013年11月更新) | 最速資産運用 契約したのはこちら。 月額490円|ServersMan SIM LTE 100:【dream.jp】 概要 初期費用:3150円 月額:490円 ドコモ回線 回線最大速度100kbps(ドコモのXiは最大150Mbps) 転送量制限なし 高速化するオプション有り 1年縛り、2年縛りとかがないので気軽に試せる   切り替える前のドコモ料金はこちら。 ガラケー(F-01C) 基本使用料 (FOMAタイプSS_バリュー) +1年割り +ファミリー割引 924円 ガラケー(F-01C) パケ・ホーダイ ダブル定額料 372円 スマフォ(Galaxy S2) 基本使用料 (Xiデータプランフラットにねん) 3791円 スマフォ(Galaxy S2) SPモード 300円   これをガラケー+激安SIMにすると ガラケー(F-01C) 基本使用料 (FOMAタイプSS_バリュー) +2年割り 924円 スマフォ(Galaxy S2) ServersMan SIM LTE 100 490円   単純計算で 毎月3973円 安くなる。   100kbpsでも通勤途中は録画して転送した動画を見ているので問題なし。体感的には「ちょっと遅いかな?」という程度。電車の中の繋がりにくさは同じ。 今度利用者数が増えると遅くなりそうな予感。。。 「Xiデータプランフラットにねん」の 解約金1万円 を払っても変更した方が断然お得。ただ自分のスマフォが他社のSIMに変更出来るかは要確認。 「パケ・ホーダイ ダブル定額料」を解約すると「Xiデータプランフラットにねん」が正規料金になってしまうので、 月末(3日前ぐらいからOK)にドコモショップで手続きする必要がある 。   < 2013/11/28 Modified > ドコモショップに行ってきたら解約当月は必ず「Xiデータプランフラットにねん」の正規料金を請求されるので、月末に行こうが関係ない。 日割りに出来ないので、新しいSIMカードが届いたらすぐ解約しても

nginx + node.js + pm2でアプリ向けのREST API環境を構築

イメージ
前回の記事でWeb APIについて勉強し、モバイルアプリからのリクエストはNode.jsで捌くことにした。そのために環境を構築したときの覚書。 環境:CentOS 5.10, Node.js 0.10.21, nginx 1.4.3, pm2 0.6.5   < 2014/05/30 Modified > CentOS6版も書いたのでそちらも参考に。 SE奮闘記: CentOS6 + nginx + PHP5.4 + MariaDB10 + WordPress + node.jsの環境を構築する手順をまとめ   1.Node.jsをインストール < 2013/12/09 Modified > 本番環境の場合は実行ユーザーで作成した方がいいので、この記事の最後の方を参照。 前の記事を参考にnvmでインストールする。 SE奮闘記: LESSファイルを監視してCSSファイルに自動コンパイルする環境を構築 # nvm install v0.10.21 # nvm alias default 0.10.21   2.「Hello World」を作成 プロジェクトディレクトリに移動 # cd /home/project/ Express というNode.js向けのフレームワークをベースにする。 restify というREST Webサービス用に特化したモジュールもあるけど、開発のスピードと下記ベンチマークを参考にExpressを選択。 expressjs vs perfectapi vs restify 速度比較 | ab benchmarks on EC2 medium instance expressjsの公式ドキュメント 通りに「Hello World」を作る。 # vi package.json {   "name": "hello-world",   "description": "hello world test app",   "version": "0.0.1",   "private": true,   "dependencies&qu

iOSアプリをDistributeするときに120x120が必要になった

イメージ
Titanium Mobileで作成したアプリをストアに送信する「Validation」をしたときに下記エラーが出るようになった。 Missing recommended icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format. 120x120のアイコンが必要になったらしい。 環境: Titanium SDK 3.1.3.GA 参考にしたサイト。 Icons and Splash Screens - Titanium 3.X - Appcelerator Docs iOS Human Interface Guidelines: Icon and Image Sizes | iOS Developer Library   [iOS 7] iOSアイコンファイル早見表(2013/9) | Developers.IO   上記サイトを参考に Resources/iphone/appicon-60.png Resources/iphone/appicon-60@2x.png を用意したらValidationが通った。   < Related Posts > Titaniumで作成したアプリをApp Storeに申請してみた