サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
blog.s21g.com
今まではネイティブのクライアントへJsonでレスポンスを返していたのですが、新しいサービスを開発する際に、レスポンスをMessagePackにしてはどうかとクライアントサイドから提案があったので検証してみました。 ちなみにリクエストまでMessagePackにすると、リクエスト内容が簡単に参照できなくなってデバッグや問い合わせ時の調査が大変ということで、今回はレスポンスのみに使う想定です。 検証用アプリ 構成は下記の通りです。 Nginx Passenger Ruby2.0 Rails4 今回の検証はJson圧縮とMessagePack圧縮の比較です。アプリはRails4で実装します。また、JsonはデフォルトのJSONクラスよりもoj(Optimized JSON)が早いということなのでそちらを使用しています。MessagePackの方はMsgpackRailsを使います。Gemfile
仕事で新しいサービスのDBを何にするか検討していて、MongoDBと同じような使い方ができてサーバコストが抑えられるものがないか探していたときにCouchbaseのことを思い出してハンズオンセミナーなど受けてきました。結局Couchbaseは使わないことにしたのですが、主にMongoDBと比べてどうだったかといったあたりを書いておきます。 Couchbaseについてざっくりと まずCouchbaseがどういったものかをざっくり説明しておくと、MongoDBと同じようなドキュメント指向のNoSQL製品で、JSONデータを格納します。 売りにしている特徴としては下記のような点が挙げられています。 容易なスケーラビリティ 安定したハイパフォーマンス 24時間365日安定稼働 柔軟なデータモデル MongoDBと似ているところ また、下記のような思想はMongoDBと共通しています。 データは全部
仕事でRailsを使うことになり、APサーバの選定にあたってPuma, Unicorn, Passenger の比較検討を行いました。方法としてはJMeterでAPサーバにデプロイしたRailsアプリケーションに対して負荷をかけられるだけかけるというやり方です。 試験環境 試験の環境としては下記の構成です。 Ruby2.0, Rails4 アプリケーションサーバ:1台(VM) JMeterサーバ:3台(VM) JMeterクライアント:1台(通常の作業PC) サーバ構成 hostanameCPU仮想コア数(Per CPU)MemoryDisk用途 loadtest01248192MB20GBAPサーバ loadtest02114096MB20GBJMeterサーバ loadtest03114096MB20GBJMeterサーバ loadtest04114096MB20GBJMeterサーバ
CPU使用率が高くなっているプロセスのPIDを指定します。 これにより、指定のプロセスから呼び出される system call の回数や消費CPU時間の集計が始まります。 10〜30秒程度たったら、Ctrl+Cで集計を終了します。 そうすると、以下の様な集計結果が得られます。 1 % time seconds usecs/call calls errors syscall 2 ------ ----------- ----------- --------- --------- ---------------- 3 100.00 1.470463 63933 23 munmap 4 0.00 0.000000 0 12 read 5 0.00 0.000000 0 24 write 6 0.00 0.000000 0 23 mmap 7 0.00 0.000000 0 24 r
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
が実行されて、sudo することを求められます。 これでは sudo できないユーザーでrvm install できないので、 足りないパッケージを root でインストールしてあげればいいのですが、 何が足りないのか教えてくれません。 足りないパッケージを知るには、一度
Nginx、php-fpm、FuelPHPの環境で開発することになったので、 開発環境を構築してみました。 <参考書籍> ハイパフォーマンスHTTPサーバ Nginx入門 はじめてのフレームワークとしてのFuelPHP <参考サイト> FuelPHPをNginxで動かしてみる PHPインストール ソースのダウンロードと展開 1 $ wget -O php-5.3.15.tar.gz http://jp2.php.net/get/php-5.3.15.tar.gz/from/jp.php.net/mirror 2 --2012-08-13 18:13:07-- http://jp2.php.net/get/php-5.3.15.tar.gz/from/jp.php.net/mirror 3 jp2.php.net (jp2.php.net) をDNSに問いあわせています... 49.2
月末や最終営業日に発生する繰り返し予定というのは結構あると思いますが、 Googleカレンダーで月末の繰り返し予定を追加するには、以下の様な内容の テキストファイルを作成して *.ics の拡張子をつけて保存し、 Googleカレンダーの 設定/カレンダー/インポート からファイルをインポートすれば良いようです。 1 BEGIN:VCALENDAR 2 PRODID:-//Google Inc//Google Calendar 70.9054//EN 3 VERSION:2.0 4 METHOD:PUBLISH 5 BEGIN:VTIMEZONE 6 TZID:Asia/Tokyo 7 BEGIN:STANDARD 8 TZOFFSETFROM:+0900 9 TZOFFSETTO:+0900 10 TZNAME:JST 11 DTSTART:19700101T000
1 [1] pry(main)> "Hello, " + "world!" 2 => "Hello, world!" 3 [2] pry(main)> _out_[1] 4 => "Hello, world!" 5 [3] pry(main)> _out_[-1] 6 => "Hello, world!"
Xcodeのバージョンアップをしてから、/Developer ディレクトリがなくなり /Applicationsの下に引っ越したようなので、 xcodebuildコマンドが動かなくなりました。 1 Error: No developer directory found at /Developer. Run /usr/bin/xcode-select to up 2 date the developer directory path.
といっても、ほぼ全部二つのサイトの記事なんですが、いつもゴソゴソ探すのでまとめることにしました。 ※ 要QuartzCore.framework Animating Interfaces with Core Animation: Part 1 惑星が軌道にそって動く+衛星がその周りを回るアプリ http://nachbaur.com/blog/core-animation-part-1 Animating Interfaces with Core Animation: Part 2 雲が左から右に流れていくアプリ http://nachbaur.com/blog/core-animation-part-2 Animating Interfaces with Core Animation: Part 3 押すとボタンがぶるんと震える(拡大して縮小する)アプリ http://nachbaur.
Mahout in ActionのChapter3についての自分の理解をメモ。 嗜好データの表現 Preferenceオブジェクト Preferenceオブジェクトは最も基本的な概念で、一つのユーザID、アイテムID、嗜好値で嗜好性を表す 一つのオブジェクトが一人のユーザの一つのアイテムに対する嗜好性を表している 一つのGenericPreferenceは20バイトの有用なデータを保持しており、8バイトのユーザID(Javaのlong型)、8バイトのアイテムID(long)、4バイトの嗜好値(float)から成っている オブジェクトが存在するためには上記以外に28バイトものオーバーヘッドがかかる PreferenceArrayと実装 PreferenceArrayはPreferenceのコレクションを配列のように扱うためのインタフェース 例としてGenericUserPreferenceA
UI特許取得を避けるために書いておきます。 クリック/タップでボタンを外した場合に、もう一挑戦してまた外れた場合、タップ地点の近くにあるボタンなどのUI要素をクリック/タップしたことにすると便利だと思います。 3回失敗、4回失敗するごとに、徐々に探索半径を広げていっても良いかもしれません。
1 cd `brew --prefix`/Library/Contributions/examples 2 git clean -n 3 rm brew-upgrade.rb
SCSSよりSASSが好きです。 時々SCSSのことをSASSと呼んでるものがあって紛らわしいですね。 Rails 3.1では config/application.rb に
新しい環境に移行すべく、ruby-1.9.3, rails-3.1.3 で作ったwebアプリをherokuにデプロイしてみたりしています。 いくつか注意点があったのでメモ。 application.css isn't precompiled 手元の環境で動いていても、いざデプロイすると以下のようなエラーが出ることがあります。
Hadoop World NYC 2011の参加レポートがあるということをTwitterで発見して、Hadoopソースコードリーディング第7回に行ってきました。 アジェンダは下記の3つ Hadoop World NYC 2011 参加レポート Part.1 Hadoop Troubleshooting 101 セッションレポート Hadoop World NYC 2011 参加レポート Part.2 それぞれで気になったところをメモ。 Hadoop World NYC 2011 参加レポート Part.1 Hadoop World NYC 2011の概要紹介と基調講演の内容の紹介といった感じ。会場の様子の紹介を聞く限りは盛況だったようですね。 参加者についてのトピックとしては、 利用者の平均Hadoopクラスタは120ノード 12.8%は1PB以上のデータ量 だとか。 基調講演の内容として
Mahout in Action Chapter 4 についてのメモ。 4.2 ユーザベースの推薦の詳細 4.2.1 アルゴリズム ユーザにアイテムを推薦する処理は下記のとおり。ユーザは u で表されている 1 for every item i that u has no preference for yet 2 for every other user v that has a preference for i 3 compute a similarity s between u and v 4 incorporate preference of v for i, weighted by s, into a running average 5 return the top items, ranked by weighted average 外側のループはユーザがまだ嗜好度を持っ
rvmを使ってcapistranoでアプリケーションごとに異なるrubyのバージョンを利用するには、Capfileの先頭に以下のような記述をすればok 1 $:.unshift(File.expand_path('./lib', ENV['rvm_path'])) 2 require "rvm/capistrano" 3 set :rvm_ruby_string, '1.9.3' 4 set :rvm_type, :user
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Mahout In Actionのコードを実行するために、EclipseでMahoutの開発をする環境を作成してみました。 下記サイトを参考にさせていただきました。 mahout/レコメンドシステムの作り方 前提 Java, Maven, Eclipseがインストール済みであること 手順 m2eclipseプラグインのインストール Maven Projectの作成 M2_REPOの設定 mahout-coreのdependency設定 Javaクラスの作成 それぞれの手順の内容は下記のとおりです。 ・m2eclipseプラグインのインストール Eclipse上からMavenの操作ができるようにするために、m2eclipseと
NetGenesis SuperOPT-GFiveを使っているのですが、特定のPCを接続するとIPマスカレードのセッションテーブルがいっぱいになるという問題が発生しており、原因を調べておりました。 怒とうのDNS攻撃(webalizer) という記事があり、webalizerが原因か、と疑ってみましたが、そのPCにはwebalizerは入ってません。 topでプロセスの動きを眺めていると、haproxyが変な動きをしていたのでこれをpurgeしてみると、どうやらビンゴのようでした。 ということで、特に使ってなかったのでhaproxy を削除してsession table full問題は解決。
new BSDライセンスがついているものをアプリに組み込みたいなと思いましたので改めて調べてみました。 結論から言うと、 EULAにLicense文書をそのまま入れる アプリ内にLicense文書を表示するwebViewを作る:設定やAboutなどで の2つをするがベストな感じです。 [参考1] @takuma104さんのブログ NatsuLion for iPhone クローン (略) から学んだこととかまとめ - @takuma104 log http://d.hatena.ne.jp/takuma104/20090329/1238329981 具体的には、 AppStore で配布する際の iPhone アプリで、New BSD License のコード等を使用する場合の適切な方法は、僕の考える限り、以下ぐらいの手法ではないかと思います。 EULA に License 文書をそのまま
1 RA layer request failed: REPORT request failed on '/!svn/vcc/default': REPORT of '/!svn/vcc/default': Could not read response body: Secure connection truncated (https://svn.s21g.com) at /usr/local/bin/git-svn line 3833 ぐぐっても情報が乏しいのでわかりませんが、大量のログがあるcloneだとエラーになる気がします。 Make sure your connection did not timeout. This is usually a client side connection problem. https://dev.openwrt.org/cgi-bin/trac
ピクサーのCEOでもあったスティーブ・ジョブズ氏がご健勝であったならこんな間違いは起こらなかったと思うのですが、iCloudのアイコンのスピン仕上げの表現(ハイライトが放射状に広がる表現)は問題があります。 iCloudのアイコン 正しいスピン仕上げ 正しいスピン仕上げはこんな風にハイライトが回転対称になります。 見かけるたびに気になってしょうがないので、ぜひ直してもらいたいですね。
普段はPostgresqlのサイトで配布されているMac用のインストーラを使っているのですが、どうやらLionはまだサポートされていないようです。 http://postgresql.1045698.n5.nabble.com/BUG-6122-Installation-fails-quot-database-cluster-initialisation-failed-quot-td4612893.html ということで、homebrewを使ってインストールすることにしました。 Homebrewをインストール 以下を実行すればok
RubyのStructは便利なのでよく使いますが、いくつか欠点があります。 無名Structを継承すると、スクリプトのreload時にsuperclass mismatchエラーが出る 同一構造のStructを定義しようとしても別なStructオブジェクトが返ってくる 名前付きStructの場合、Struct::StructName のような名前空間に定義されるので衝突が心配 これらの問題を回避するために、以下のように Struct.[] を定義することにしました。 1 def Struct.[](*members) 2 name = members.map(&:to_s).sort.map(&:upcase).join('__') 3 const_defined?(name) ? const_get(name) : new(name, *members) 4 end
LionにするにあたってCode Snippetsを移動する必要があるのかなと思ったのですが、Code Snippetsはちゃんと〜/以下に格納されているので意識する必要はなさそうです。 ただ、新しいマシンに以降するとき等は作業をする必要があります。 Xcode 4のCode Snippetsを別のマシンに移動する stackoverflow How Can One Transfer Xcode 4 Code Snippets from One Machine to Another http://stackoverflow.com/questions/5261076/how-can-one-transfer-xcode-4-code-snippets-from-one-machine-to-another 上で見つけたんですが、こんな感じにsnippetsが格納されています: 1 % p
次のページ
このページを最初にブックマークしてみませんか?
『something new and exciting』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く