サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
体力トレーニング
techs-empty.tumblr.com
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 最近、我々の開発はrubyのRailsだけでなくてcoffeescriptでのnode.jsでの開発のウェイトも高くなってきています。 そこで、Rubyとnode.jsを繋ぐ上での問題になった箇所をまとめて、今後同じような問題に当たる人へのメモにしようと思います。 まず始めに、認証編ということで、全3回でまとめます。 認証編の第一回目はcookie sessionのおさらいと作戦立てです。 cookie sessionのメリット まずは、cookie sessionのおさらいをしながらメリットを。 Railsでは2.0からcookie sessionを標準にしています。 cookie sessionの良い点は、 1. スケールアウトしやすい2. session管理の簡便さ3
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です postfixからメールの受信関係の処理をしました。 プログラム自体は凄く簡単なんですが、postfixの設定など含め色々つまづいたので、メモしておきます。 なお、サーバーはCentos6を使っています。 普通はRailsを使うと思いますが、単純にscriptを叩くだけだったのでファイル一枚を目指します。 今回の例では、メールを受信した後、外部のSSLがかかった、XMLRPCのAPIを叩きました。 実験環境は下記になります。 Centos 6.0postfixt 2.6.6ruby 1.9.3-p0actionmailer (3.1.3)ドメインの設定まずは、何はともあれ、メールを送れるようにしないといけないと。 ということで、下記のように登録しました。 mail.hoge
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 序Backbone.jsでDBに保存すべきModelの情報はAPIを通して保存しますが、 ちょっとしたUIなどの状態をCookieなどに保持しておきたいというニーズってありますよね。 その場合、CookieよりもlocalStorageがオススメです。 localStorageはCookieから毎回の通信で情報を送ってくる機能と、有効期限を除いた機能です。 各種ブラウザで対応もそれなりに進んでいますし、使い方もシンプルです。 単純な使い方は、 > localStorage["a"] = "ABC" > localStorage["a"] #=> "ABC" と入れるだけです。 で、今回はModelでのsaveとfetchをoverrideして、localStorageに保存
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です mysqlのconnection数はデフォルトでは100になっています。 メンテナンスの際にNavicatで接続すると、 ERROR 1040 (00000): Too many connections とのエラーが。。これは、アカンということで、パラメーターの調整を行いました。 下記を参考にしました。 http://satospo.sakura.ne.jp/blog_archives/tech/linux_server/mysql4_tune.html 現在の状態の把握とりあえず、今どうなっているか分からないので、確認用のコマンドを叩きました。 $ mysqladmin -u root extended-status | grep -E 'Max|Threads' | M
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 「さくらのクラウド」でのサーバ構築logを残していきます。今回はまっさらな状態から公開鍵sshログイン出来るようになるとこまでです。 1.user作成 $useradd taka $passwd taka $usermod -g wheel taka 2.ネットワーク設定 $vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=www.hoge.com GATEWAY=133.242.18.1 #共用のgatewayのIP $vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=”eth0” HWADDR=”9C:A3:BA:24:8E:2A” NM_CONTROLLED=”ye
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です Backbone.jsの簡単な例として、ボタンを作りましょう。 Backbone.jsの思想として、状態は全てModelに持たせ、Modelの状態にあった表現をViewがレンダリングするという形になります。 Modelまずは、Modelの設計です。 window.Btn = Backbone.Model.extend defaults: down: false isDown:-> @get("down") down:-> @set("down": true) up: -> @set("down": false) toggle:-> @set("down": !@get("down")) 状態として、押されている(down=true)、押されていない状態(down=false
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です nginxでBasic認証をかけたのでメモです。 nginxの設定nginxの設定は単純で、以下の2行追加すればOKでした。 auth_basic "QS Beta TEST"; auth_basic_user_file "/home/httpd/.htpasswd"; なので、通して書くと、 server{ listen 80; server_name xxx.abc.com; location / { auth_basic "QS Beta TEST"; auth_basic_user_file "/home/httpd/.htpasswd"; proxy_pass http://localhost:4009; proxy_set_header X-Real-IP $r
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 序CentOS6にて、Chefを導入しようと、chef-soloでuser登録しようと頑張っていました。 ためしに、パスワードを"ユーザー名+0123"にしてみようと思って以下を書いてみました。 %w(yamda sato).each_with_index do |u,i| user "activate_#{u}" do username u password "#{u}0123" home "/home/#{user}" shell "/bin/bash" uid 500+i gid 10 end end ところが、パスワードが上手く設定できないorz。 ということで、色々調べると、 chefのuserのパスワードは平文でそのまま設定することはダメみたいです。 /etc/
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 続けて、HTTPのサイトをtelnetで見ることになったので同じようなネタでもう一つ HTTPSと同じように、hogehoge.com:80をにアクセスしようとするとこんな感じです。 まずは、Basic認証がない場合から、 $ telnet hogehoge.com 80 > GET /index.html HTTP/1.1 > Host: hogehoge.com > [returnを2回] で、さらに、Basic認証がかかっているばあいは、 $ telnet hogehoge.com 80 > GET /index.html HTTP/1.1 > Host: hogehoge.com > Authorization: Basic aG9nZWhvZ2U6aG9nZWhv
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です underscore.jsやらjQueryのextendがあったので少しまとめます。 いつも通、jQueryは$で、underscoreは_です。 基本動作 2つ以上ののObjectを引数にとり、1つ目のObjectに後がちでどんどんextendしていく。 extendは破壊的 rubyのHash#merge!とほぼ同じ動作で、破壊的です。 浅いextendと深いextend _.extendも$.extendも基本は同じ動きで、浅いです。 jQueryの方は、第一引数にtrueを渡すことで深いextendができます。
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 起こったバグ Android4の標準ブラウザにて、構築したサイトを開いたら、なんとリダイレクトの無限ループ。 設定内容backbone.jsのrouterを使用して、開かれたURLによって、実行するjsを切り替えていた。 原因Android2系までは対応していたのに、3系以降対応しなくなったらしい。 http://d.hatena.ne.jp/zentoo/touch/20111130/1322667152 ちなみにこのサイト(http://fmbip.com/)で対応しているかどうかチェックできる。 で、backboneではpushStateに対応していないと、URLのパス部分をfragmentとして、 hashタグに変換して、リダイレクトする仕様になっているが、 そのあ
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です passbookWWDCで個人的に一番気になったのが、passbookでした。 passbookは、iOS6から乗るクーポンや映画チケットなどの管理アプリってところです。 NFCへの布石にもなっていそうな本アプリ。 web serverとどうやって連動するのか調べておこうという趣旨で、ざっとSDKを見てみました。 何となく分かったことAPI等の技術仕様はpass kitというSDKにまとまっている。クーポンなどのCRUD(発行、更新、削除)はREST-apiでserver側と連動して作成する。発行時は、背景画像やテキストなどをセットにしたディレクトリをzipで固めて配布可能配布内容は、jsonで色々指定できる。セキュリティ担保のため、ファイル内容はSHA1で暗号化する所感e
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です githubでもdoccoでもTumblrでもmarkdownは色々使いますよね。 そこで、自分たちのサービスでもmarkdownでパースできたら良いねという話になると思います。 markdownのパーサーは色々ありますが、拡張性の観点からmarkdown-js( https://github.com/evilstreak/markdown-js ) をお勧めしたいです。 以下、お勧めする理由です。 1. isomorphic (クライアントサイドでもサーバーサイドでも使える)isomorphicというのがとっても大きいです、markdownのpreviewを表示するためだけに、 サーバーサイドにアクセするのも勿体ないので、jsで処理させられるのはとってもメリットがあります
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 感想ruby1.9.3で、こいつ・・・動くぞ! 環境Centos 6ruby 1.9.3 (rvm利用)方針chef-clientを入れるchef-clientに入っているchef-soloを使ってbootstrapのレシピを走らせるchef-client$ sudo gem install chef --no-ri --no-rdoc chef-server$ sudo yum install gecode gecode-devel $ sudo rpm -Uvh http://rbel.frameos.org/rbel6 $ sudo mkdir /etc/chef/ $ sudo vi /etc/chef/solo.rb file_cache_path "/tmp/c
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です 遅延処理と実行トリガーなどどうも混同しやすいので整理してみる。 遅延処理(resque + daemon-spawn)バックグラウンドで非同期などとも言われるが、例えば1000通のメール送信とかなど、 一つの処理が重くて、ブラウザ上でユーザを待たせる場合に、後で処理しておく事。 2系ではResqueがデーモンで実行できないので、daemon-spawnを入れて可能となる。 実行トリガー処理が始まる直接的な原因 1.ユーザアクション:ユーザがボタンを押したときに即時実行2.遅延実行:ユーザがアクションした一定時間後3.時間:ある時間になったら処理が動きだす2と3を実行するには、resque-scheduler(cronに相当する 比較サイト)が必要である。 ほとんど、このサイ
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です platesって?flatironのisomorphic(=server/client両方で使える)なテンプレートエンジンのplates( https://github.com/flatiron/plates )を導入しようと考えています。 platesは珍しくhtmlからhtmlに変換するテンプレートエンジンになっています。 まずはこのことから説明します。 普通のテンプレートエンジン ( tmpl -> html )普通の、テンプレートエンジン(erb, eco, mustache etc…) は テンプレートファイル -> htmlという構成を取っています。これは、 元になるHTMLもどき + 差し替える場所(<%=%>, {{}} などで指定する)差し替えるオブジェク
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です Backbone.js(http://documentcloud.github.com/backbone/)を2,3ヶ月触ってみて、導入して良かったことをまとめます。 Backbone.js単体での威力はそこまでではないかもしれませんが、Server側も含めた設計思想を絡めて考えると大きな効果が期待できます(サーバー側も含めた構造改革が全体的に必要になるとは思いますが・・・)。 ViewとControllerの結合強度低下 = Viewのアプリ化viewとcontrollerが1対1対応だった頃Rails単体で作成している場合、Viewにロジックが入れられない以上、 そのViewで必要な変数などは、全てControllerに書く必要がありました。 この状態では、Contro
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です node.jsでは、twitter bootstrapを愛用していました。 http://twitter.github.com/bootstrap/ 久しぶりにRailsでアプリケーションを書くことになったのですが、 やはり、そこはbootstrapを使いたい。 そこで、rails用にbootstrapのtoolを調べたので紹介。 twitter-bootstrap-railshttps://github.com/seyhunak/twitter-bootstrap-rails BootstrapをRailsのasset pipelineに簡単に組み込めます。 Githubで調べたら最初にでますね。 less-rails-bootstraphttps://github.co
ガリレオスコープ開発チームによる �最新Web動向、技術メモ ( Ruby, Rails, node.js ) です ssh-copy-id というsshの公開鍵をリモートサーバーに登録する ちょっと便利なコマンドがあるんですが、macでbrewでインストールできなかったので、メモです。 下記のふぁいるを、/usr/local/binなどに作成します。 $ vi /usr/local/bin/ssh-copy-id #=> 下記のファイルを貼付け $ chmod +x /usr/local/bin/ssh-copy-id $ ssh-copy-id -i ~/.ssh/id_rsa.pub user@host #=> ~/.ssh/id_rsa.pub を指定したサーバーに設定 (ssh-copy-id) #!/bin/sh # Shell script to install your i
このページを最初にブックマークしてみませんか?
『@techs.empty?』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く