Skip to content

Instantly share code, notes, and snippets.

Kazunori Otani katzchang

Block or report user

Report or block katzchang

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@katzchang
katzchang / surize-ad-2017.md
Last active Nov 24, 2017
今日から使えるアドテクサービス構築プラクティス
View surize-ad-2017.md

今日から使えるアドテクサービス構築プラクティス

(このドキュメントは Sunrise 2017 アドテクノロジーコース でのお話の内容です)

  • 仮実装で始める
  • 計測する
  • すばやくデプロイする

誰よ?

View lambda-function.mk
HANDLERS = Hello \
my.LogAggregator \
my.CountDaily \
my.CountHourly \
supecial.LogCollector
BRANCH=$(shell git rev-parse --abbrev-ref @)
JAR=$(BRANCH)/myproject-assembly-0.1.jar
all:
@katzchang
katzchang / sleep-well.md
Last active Nov 12, 2018
処理が成功するまで実行しつづける - @katzchang.gist
View sleep-well.md

処理が成功するまで実行しつづける

インスタンスの起動スクリプトとかを書いてるときによく欲しいと思うやつです。

例えば、 service nginx start が実行されたあとに curl -i localhost | grep "200 OK" とかをすると、サービスがそれなりに動いていることが確認できてよかったりするのですが、あまりにも直後だとサーバの起動が間に合わず、curl が失敗してしまいます。nginxだとまだましだけど、アプリケーションサーバだとそれなりに時間がかかったりする。

古典的な解決方法は、 sleep 30 です。簡単だけど、アプリケーションが巨大になってくると30秒では起動しないこともある。じゃぁ sleep 60 が妥当か?でも、サーバインスタンスの起動スクリプト全体はできるだけ早く立ち上がってほしい。困った。

なので、curlが成功するまで叩き続ける、みたいなスクリプトに仕上げたくなるわけです。

View gateau_au_chocolat.md

ガトーショコラ

  • 調理時間70分

材料 (18cm 丸形1台分)

  • チョコレート (製菓用でも板チョコでも) 150g
  • バター (無塩) 100g
  • 砂糖 70g
  • 卵 3個
View Build.scala
import sbt._
import sbt.Keys._
import com.earldouglas.xwp.XwpPlugin._
import sbtassembly.Plugin._
import AssemblyKeys._
object BuildSettings {
val buildOrganization = "jp.zucks"
val buildVersion = "1.0.0-SNAPSHOT"
val buildScalaVersion = "2.11.6"
@katzchang
katzchang / rule.md
Last active Sep 15, 2016
新社会人が守るべきだがほとんど誰も教えてくれない社会のルール
View rule.md

新社会人が守るべきだがほとんど誰も教えてくれない社会のルール

  • トイレットペーパーホルダーが二つあるトイレでは、紙が少ないほうを先に使いましょう
@katzchang
katzchang / readme.md
Last active Aug 29, 2015
負荷低すぎ問題は障害ではなくパフォーマンスチューニング - @katzchang.gist
View readme.md

負荷低すぎ問題は障害ではなくパフォーマンスチューニング

負荷低すぎはもはや障害じゃないのかという記事の話。

そうすると、 『イベントで一時的にc4.4xlarge(8万/月)にして、そのまま最大CPU使用率10%とかで数ヶ月放置されている』 みたいなのはビジネス的な損失という意味で明らかに障害で、監視すべきじゃないだろうか?

とのこと。

View MSE.scala
package mse
import java.io._
import org.bytedeco.javacpp.helper.opencv_core.AbstractCvMat
import org.bytedeco.javacpp.opencv_core._
import org.bytedeco.javacpp.opencv_highgui._
object MSE {
def main(args: Array[String]) {
val ms =
@katzchang
katzchang / techass.md
Last active Aug 29, 2015
エンジニアの評価観点について - @katzchang.gist
View techass.md

エンジニアの評価観点について

こんにちは。 @katzchangです。

VOYAGE GROUPでは人事評価制度の一つとして技術力評価会というのが年に2回ほど開催されて、半年くらいの仕事から何かテーマをピックアップしつつ、別チームのエンジニア2名とお話をしつつ、なんと評価までされてしまうという、とても楽しい会があります。

評価する側のエンジニアも多様で、ある程度の評価軸はありつつも、それぞれの質問や評価はそれなりに個性が出るものだろうなーと眺めています。ということで、私なりの質問や評価のポイントをいくつか挙げてみます。

質問に対して明確に答えるための手段を知っているか?

View sigdump
```
Sigdump at 2014-08-10 18:45:49 +0900 process 1977 (/usr/sbin/td-agent)
Thread #<Thread:0x007f191859bf68> status=run priority=0
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:38:in `dump_backtrace'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:24:in `block in dump_all_thread_backtrace'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:23:in `each'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:23:in `dump_all_thread_backtrace'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:16:in `block in dump'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:107:in `open'
/usr/lib64/fluent/ruby/lib/ruby/gems/1.9.1/gems/sigdump-0.2.2/lib/sigdump.rb:107:in `_open_dump_path'
You can’t perform that action at this time.