CubicLouve

Spring_MTの技術ブログ

2014-01-01から1年間の記事一覧

2014年の振り返り

軽く振り返ってみる 1月 〜 3月 このときはまだ色々何をするか悩んでいた時期。 1月はまだperl書いてた。 2月位からunityを触り始めた。 初めてクライアント側の開発して、色々刺激になった。 (IDE使ってみたり、初めて静的型付け言語使ったりとかとか) 4月 …

一年後のキミへ

身欠きにしんを29日に買って仕込んでおけ! それだけだ! 以下はただ2014年のおせち料理のメモ 年末まとまった時間がとれたので、おせち料理を自作してみた。 30日に買い出しを行った。 完成品はこちら 松前漬け スルメイカ 3枚 昆布 スルメと同量くらい 人…

Faradayでnet/httpのアダプターを使っている場合のHTTPリクエスト/レスポンスを見る

忘れそうなのでメモっておく。 require 'faraday' module FaradayDebug def net_http_connection(env) http = super http.set_debug_output $stderr http end end module Faraday class Adapter class NetHttp prepend FaradayDebug end end end これを書い…

Objective-Cのintとlongの最大値は同じという記事をみて

よくわからんかったので試してみた。 #import <Foundation/NSObject.h> #import <stdio.h> int main(void) { int i = INT_MAX; NSLog(@"int i: %d", i); i++; NSLog(@"int i: %d", i); long l = (long)INT_MAX; NSLog(@"long l: %ld", l); l++; NSLog(@"long l: %ld", l); long long ll = (lo</stdio.h></foundation/nsobject.h>…

JavaのJSONObjectのgetIntとoptInt

JavaのJSONObjectのgetIntとoptInt import org.json.JSONException; import org.json.JSONObject; public class HelloWorld { public static void main(String... args) { String json = "{\"screen_name\":\"katty0324\",\"age\":\"\"}"; JSONObject jsonOb…

Web API The Good Partsを読んだ

APIばっかり最近作っているので、Web API The Good Partsを早速買って読んだ。 これからAPIを作ろうとしている人、現在作っている人達の机に一冊あっても良いと思う。 これまで、TLや色々なところで議論されてきたWeb APIのクライアント側とサーバー側の"お…

macで共有ライブラリの依存関係を調べる

mysql2 gem を mysql5.6 の libmysqlclient.a と static link したい話 を読んでいて、macでも共有ライブラリの依存関係調べようとしたら、 zsh: command not found: ldd lddの代わりにotoolコマンドを使う。 % otool -L .rbenv/versions/2.1.2/lib/ruby/gem…

isucon4本戦に参加して惨敗してまいりました。 #isucon

1回でもいいから良い報告をしてみたいものです。 とりあえず、今は勢いで書く。 後で追記していく。 お題 今回は動画広告配信システムのチューニングでした。 いろいろやったけど 結局クライアント側のキャッシュ全然思いつかなかった。。。。 思いの丈を …

lldbでrubyのデバッグ初級編

スーパールーキーに教わってたことのメモ putsメソッドはrb_f_putsを呼んでいるので、そこでbreakpoitを仕込んでbacktrace取る。 % lldb `rbenv which ruby` (lldb) target create "/opt/boxen/rbenv/versions/2.1.2/bin/ruby" Current executable set to '/…

実行中のプロセスの環境変数を確認する

RACK_ENVとかを見たかったので。 Linux環境ならこれでOK。 % cat /proc/プロセスID/environ せやな。。。

MacOSでLD_PRELOADを実現するには

c

LD_PRELOAD試そうとおもったらMacでうまくいかず。。。 MacにはLD_PRELOAD自体はなく、LD_PRELOAD相当のDYLD_INSERT_LIBRARIESがあるそうなのでそれを試してみる。 元の実行ファイル(hello.c) #include <stdio.h> int main() { puts("hello world!!"); return 0; } こ</stdio.h>…

isucon 2014予選に参加しました

大分遅れたエントリになってしまいました。。。 今年もisuconに参加してきました! ISUCON4 予選 チームメンバーは去年と同じ、@sonots, @niku4iで参加しました。 チーム名はGoMiamiです。 結果は、去年に引き続き予選突破できました!! ISUCON4 本戦出場者…

bundler-noreleaseってgemを書いた

rubykaigi2014でも紹介されていましたが、社内向けgem向けにrake releaseを潰したかったので、bundler-noreleaseというgemを書きました。 rubygems bundler-norelease | RubyGems.org | your community gem host github SpringMT/bundler-norelease SpringMT…

HTMを試す

rubykaigi一日目の発表でHTMを使ったパフォーマンス向上の試みが発表されていたので試してみました。 RubyKaigi 2014 | Eliminating Giant VM Lock in Ruby through Hardware Transactional Memory RubyKaigi 2014 | Eliminating Giant VM Lock in Ruby thro…

stackprofを使ってみる

追記 2014/09/21 FlameGraphの出し方を追記しました 追記 2017/08/13 stackprofの原理をまとめました。 spring-mt.hatenablog.com rubykaigi 2014終わりましたね。 スタッフの皆様、本当にお疲れ様でした。 で、3日目のkeynoteを聞いて、stackprofは使いこな…

Ruby vs Rubinius vs GobiesVM

I benchmark GobiesVM compared with Ruby and rubinius. Rubykaigi2014で紹介されていたGobiesVMを使って、ベンチ取ってみた。 brucehsu/GobiesVM brucehsu/GobiesVM · GitHub Machine Specs % system_profiler SPHardwareDataType Hardware: Hardware Over…

rubykaigi2014 一日目(途中までのメモ)

メモ程度に RubyKaigi 2014 | Building the Ruby interpreter -- What is easy and what is difficult? Ruby Interpreterの責務はクオリティを高めることと考えている。 信頼性、高パフォーマンス、消費リソースが少ない、互換性、拡張性 これらの品質はそれ…

TSXのチェック

rubykaigi2014一日目のEliminating Giant VM Lock in Ruby through Hardware Transactional Memoryを聞いて、とりあえずコンパイルだけでもしておこうかと思って、TSXに対応しているか調べてみた。 % sysctl machdep.cpu.brand_string machdep.cpu.brand_str…

オブジェクトファイルのシンボルテーブル確認にreadelfコマンドを使う

シンボルテーブルを確認しようとして、おもむろにnmコマンド打ったら、シンボルでてこなかった。 # nm /usr/lib64/hoge.so nm: /usr/lib64/hoge.so: no symbols んな訳あるかって思ったら、elf形式だった。 # file /usr/lib64/hoge.so /usr/lib64/hoge.so: E…

android アプリのdebugをonにする

androidアプリの調査をするために、debugがoffになっているアプリをonにしたときのメモです。 debugをonにすると、monitorとかを使ったメモリの調査とかがかなりしやすくなります。 あ、これは自己責任でやってくださいね。 あと、Macで作業しています。 apk…

rspecを2.14.1から3.0.0に上げた時のメモ

追記 : transpecについて少し追記しました railsアプリで使っていたrspecを2.14.1から3.0.0にあげたら色々落ちたので、それを直したメモ。 まず、 bundle exec rails generate rspec:install して、spec/spec_helper.rbと.rspecを上書きした。 で、新たにspe…

railsでSSL

アプリ側で特に何も設定してないけど、https化されてるなあって思ったら、 X-Forwarded-Proto: https がrequest headerに入ってた。 忘れそうなのでメモ

iPhoneのネットワークアクセスをキャプチャする

メモ程度に残しておく iOS 5以降には remote virtual interface (RVI) が用意されている。下記参照 Technical Q&A QA1176 今回はそれを使用する。 やり方 MacにiPhoneをUSBでつなぐ iTunes開いて、iPhoneの情報からシリアル番号の上にカーソル合わせて、UDID…

codemodを使って一括置換

mac

Facebookのリポジトリにcodemodという一括置換ツールがあります。 facebook/codemod 結構便利なのでよく使っているのですが、周りであんまり使っている人を見ないので紹介しようと思います。 インストール repositoryからcloneして持ってきてもよいです。 ho…

use strict: use warnings; を忘れない

どうもperl書いてて、use strict: use warnings;を書かない人がいるらしい。。。。。 vimはファイル作成時に、指定したファイルから雛形が自動的にできるSkeletonAuってのがある。 SkeletonAu使って.pmとか作ったら、skelton呼び出して書けるようにしておく…

rails4.1のmigrationでundefined method `add_column_options!'ってでたら

rails4.1でmigration走らせたら、 % bundle exec rake db:migrate == 20140501144914 AddColumnsForHoge: migrating ========================== -- change_column(:foo, :bar, :integer, {:unsigned=>true, :limit=>8, :null=>true}) rake aborted! Standar…

acts-as-taggable-onでMysql2::Error: Specified key was too long; max key length is 767 bytesって怒られたら

MySQLのencodingをutf8mb4にしています。 なので、 varchar(255)のカラムにindexを貼ろうとすると、MySQLから怒られます。 MySQL(InnoDB) で "Index column size too large. The maximum column size is 767 bytes." いわれるときの対策 acts-as-taggable-on…

Rails4のtransactionでハマった <- これは私の間違いでした

申し訳ありません この記事完全に自分の間違いでした。 まず、自分のrailsアプリでは、、もろもろの深淵な理由で、モデルを作るときにActiveRecord::Baseを直接継承せずに、全てのモデルに共通で使うモデルを再定義しています。 なぜこんな事をしているかと…

core dump をとった後中身を見てみた(gdbruby編)

core dumpしても中身みないとしょうもないので、中身の見方をざっくりメモ。 rubyを使ってる場合は、gdbrubyを使うのがオススメです(結局gdbを使うことになるのですが。。。) 環境は、Centos6.2です。 まずはgdbrubyを使ってbacktraceとかをざっくりとみてみ…

core dumpするまで

core dumpする設定をいつもググってるきがするので、メモしておく。 ulimitでcore file sizeを調べて、増やしておく $ ulimit -a core file size (blocks, -c) 0 . . $ ulimit -c unlimited $ ulimit -a core file size (blocks, -c) unlimited . . sysctlで…