CubicLouve

Spring_MTの技術ブログ

特定のJSONの圧縮効率を調べてみる(snappy、gzip、xz、lz4、zstd)

snappyが入っているのは察してほしい データの詳細は後で書く。(これも察して欲しい。だいぶ偏ったデータではある) これから詳細をちゃんと書くが、一旦ここにおく マシンスペック iMac使っています。 % system_profiler SPHardwareDataType Hardware: Hardw…

デーモンとは

メモ書き程度に デーモン 語源は悪魔のデーモンではなく、守護神のほうらしい。 デーモン (ソフトウェア) - Wikipedia まあ、それはそれとして デーモン(daemon)は長時間動き続けるプロセスのことです。 APUEのデーモンより ファイルモード作成時マスクをuma…

2016年おせち料理

3年連続のおせち作りです。 買い出しは12/22から開始しています。 完成品はこちら 重箱はここのを買いました。 かまぼこ、酢だこは既成品です。 買い物 クリスマス前に済ませておきましょう。 直前になると高くなったり、高級なものしか出回らなくなるので気…

gdbを使ってRuby 2.4.0のライブプロセスの情報を取得してみる

Ruby 2.4.0 リリース 2.4.0がリリースされたので、 spring-mt.hatenablog.com と同じことをやってみようかと思います。 準備 AWSのamazon Linux上で試しています。 # cat /etc/system-release Amazon Linux AMI release 2016.09 gccは 4.8.3、 gdbは7.6.1を…

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

驚愕の事実。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</stdio.h></foundation/nsobject.h>…

gdbを使ってRuby(2.3.3)のライブプロセスの情報を取得する

Rubyのプロセスに対して、非破壊的に中をのぞいてみたいことが時々ありますよね???(詰まっているプロセスとか) 今回、gdbを使ってライブプロセスにアタッチして調べてみました。 準備 今回はAWSのamazon Linux上で試しています。 # cat /etc/system-relea…

unboundを使って、iPhone、Androidの名前解決をよしなにやる

開発現場において、本来とは違うIPアドレスを返して確認するということをよくやると思います。 PCで確認できるページであれば、ローカルPCの /etc/hostsを書き換えてチェックするという手法が一般的かと思います。 ただし、iPhoneやAndroidで同じようなこと…

MySQL 5.6から導入されたoptimizer_traceを使ってみる

きっかけは下のブログ rkmathi.hatenablog.com 実際に使われるindexはSQLオプティマイザがコスト計算した結果で変わると思われる。 http://dbstudy.info/files/20120310/mysql_costcalc.pdf コスト計算の結果は、MySQL 5.6から導入されたoptimizer_traceを使…

SideCIの自動rubocop PRが羨ましかったので、自分で作った

blog-ja.sideci.com これを見て。 SideCIはGitHub Enterpriseに対応していない(2016/02/13現在)ので、自分で作った。 github.com サーバー上げて、githubのweb hookに仕込むだけでPRを送ったら、自動的にrubocopで自動修正した内容を別PRにして送ってくれま…

MySQL 5.6でロックの状態を詳細に見たい場合

innodb_lock_monitorを有効にする 有効にする場合 CREATE TABLE innodb_lock_monitor (a INT) ENGINE=INNODB; そして、 SHOW ENGINE INNODB STATUS; と打てば、TRANSACTIONSのセクションの中に、ロックの詳細情報が入るようになる。 終わったら、テーブルを…

2015年おせち料理

2014年に引き続きおせち作りました。 買い出しは一週間前から開始しています。 完成品はこちら なると、かまぼこ、栗きんとん、酢だこは既成品です。 松前漬け スルメイカ 3枚 昆布 スルメと同量くらい 人参 1/2本 たれ 酒 300cc 醤油(関東濃い口) 150cc み…

nginxのconfの内容をdumpする

nginxのconfですが、includeとか大量にしていると、うっかり上書きされててハマったことないですか? 自分は最近ドハマりして、イラッとして、confをdumpできるようにならなかと調べてみました。 で、最新のnginxのソースcloneして読んでたらもうあるじゃん…

workerの枯渇状況が分かるrack-server_statusというgemを書いています

unicornのwokerのbusy数とidle数の比率がわからなくて、うっかりworkerが枯渇して大変なことになったので、workerの状況を返すエンドポイントを追加するrackミドルウェアを書いています。 SpringMT/rack-server_statusgithub.com ぶっちゃけkazeburoさんのPl…

サーバーの状態やMySQLの状態の指標のまとめ

指標に関していつもググってばっかりいたので、まとめてみました。 ツッコミ大歓迎。 CPU usage name detail User ユーザ空間(アプリケーション)でCPUが使われた時間の割合 Nice 優先度を変更された(nice値が変更された)プロセスにより、ユーザ空間でCPUが使…

unix domain socketのstatus

cat /proc/net/unixの中身 項目 説明 例 Num カーネルのテーブルスロット ffff8800798ec0c0 RefCount ソケットを使用しているユーザー数 00000002 Protocol いまのところいつも 0 Flags ソケット の状態を保持しているカーネル内部のフラグ Type always '1' …

sinatraで設定したパス一覧を取得する

メモ こんな感じでスクリプトを書いた。 require 'rack' require 'sinatra' class Sinatra::Base private class << self attr_reader :original_routes # なぜかsuperが呼べない... def route(verb, path, options = {}, &block) @original_routes ||= {} (@…

railsで特定のモデルに対してbelongs_toで参照先を設定しているモデルを取り出す

まあ、いろいろ調べる必要がありまして。。。 ざっくりとこんな感じでとれた。 # production環境では要らないが、development環境では必要かと Dir.glob(File.expand_path('./app/models/*.rb', Rails.root)).each do |f| require f end # 定数を全部取得 co…

rubyで局所的にパッチを当てる方法を模索中

下記のようなコードで、Cクラスの中だけで何とかAクラスに対するパッチを当てたい。 class A def self.foo p 'foo' end def bar p 'bar' end end module ExtendFoo refine A.singleton_class do def foo p 'extend foo' end end refine A do def bar p 'exte…

railsアプリでstackprofを使ってボトルネックを探す + JSON::Schema(2.2.1)の高速化

railsアプリが遅いって言われたので、久しぶりにrubyでisuconしてみました。 railsアプリでstackprofを使ったプロファイリング まず、自分がいつもやってる方法なのですが、config.ruにstackprofの設定を仕込みます。 stackprofはrackミドルウェアとして差し…

Webサイトに必要なfaviconが21個になっていたらしいのでrack-favicon_allっての書いた

Webサイトに必要なfaviconが21個になっていた - IT探検記 Webサイトに必要なfaviconが21個になっていた - IT探検記 どうもWebサイトに必要なfaviconが21個もあるらしい。 で@bayashiが 増殖中の favicon を Plack::Middleware ひとつで配信する - @bayashi D…

SSL/TLSのシーケンスまとめ

TCP 3-way handshakeの復習 - CubicLouve TCP 3-way handshakeの復習 - CubicLouve 上記を踏まえた上でSSL/TLSのシーケンスをtcpdumpとwiresharkで追ってみました。 まだ理解しきれていない部分があるので直すかも。 clientのコードはこちらから。 SpringMT/…

TCP 3-way handshakeの復習

3 way handshakeのおさらい tcpdump の見方を勉強を見ながら自分でもやってみた。 ほとんど、上記のブログのままやってます。 clientとserverはこちらを使っています。 SpringMT/socket_test SpringMT/socket_test · GitHub コネクション開始 1. SYN クライ…

福岡でおすすめのモツ鍋のお店

おすすめ もつ幸 もつ幸 (呉服町/もつ鍋) もつ幸 (もつこう) - 呉服町/もつ鍋 [食べログ] 美味しかった 博多 表邸 博多 表邸 (薬院大通/魚介料理・海鮮料理) 博多 表邸 (はかた ひょうてい) - 薬院大通/魚介料理・海鮮料理 [食べログ] 刺身、イカとかも…

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…