Goでgraceful shutdownをミニマムに書く

Go

graceful shutdownの仕組みがわかってなかったので自分でミニマムに実装してみる。 コード量が小さく読みやすかったので以下のパッケージを参考にした。 github.com github.com 実装 自分でミニマムに実装したコードは以下の通り。アクティブな接続が返って…

Goアプリケーションをsupervisorでdaemonとして起動する

起動したGoのアプリケーションをdaemonプロセスとして動かす。なお、Centos6.7を使用している。 Supervisor: A Process Control System — Supervisor 3.3.3 documentation Install $ wget https://bootstrap.pypa.io/ez_setup.py -O - | python $ easy_insta…

Goで始めるMiddleware その2

Go

前回記事を書いたがもう少し詳しく書く。 takayukinakata.hatenablog.com なぜGoでMiddlewareを書きたいのか 前回書き忘れていたところ。 おそらくだがフレームワークを使用している場合には、フレームワークがよろしくやってくれるので自分でMiddlewareをど…

Goの標準logでやってるintをasciiにする変換処理を見てみる

Go

Goのlogパッケージでやってるintをasciiにする変換処理が何やってるか最初わけわかんなかったけど、多少理解できたからメモしておく。対象のコードは以下の通り。標準で年月日をログの先頭に付与できる機能(2009/01/23 01:23:23 log-messageみたいな感じ)が…

Goで始めるMiddleware

Go

そもそもMiddlewareとは何かと言うと、私の認識ではアプリケーションの処理の前後で何らかの処理を行ったりするもの。例えば、ログを追加したりリクエストのAPIキーを認証したりする。以下の図がわかりやすい。 Laravel 5.0 - Middleware (Filter-style) | M…

CentOSでユーザ追加

DockerでGoの環境構築する際にCentOSでユーザ追加したのでメモ。 $ useradd -m -d /home/docker -s /bin/bash docker $ echo "docker:docker" | chpasswd $ echo "docker ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers useradd:新規ユーザの追加 chpasswdでパス…

Real World HTTP を読んだ

Real World HTTPを読んだ。前に読んだやつ。 www.oreilly.co.jp HTTPについてそれが作成されてきた歴史と併せて説明されておりわかりやすかった。RFCのリファレンスにもなっており、これを通して初めてRFCの内容を読んだ。ハイパフォーマンスブラウザネット…

ハイパフォーマンスブラウザネットワーキングを読んだ

www.oreilly.co.jp TCP, TLS, HTTPといったアプリケーションよりも低いレイヤーについて基本的な構造を説明し、パフォーマンスの観点からエンジニアはどう関わるべきかが書かれている。文章は読みやすかった。読み飛ばした部分もあるが10日間ほどで読み終わ…

Webエンジニアに転職して半年が経った

Webエンジニアに転職して半年が経った。 仕事にも慣れてきたのでこれまでとこれからについて整理しようと思う。 転職前 企業向けのパッケージ開発をしていた。Web経由で使用してもらうものではなく、お客さんのとこに作ったサーバにパッケージをインストール…

md2keyを使った

社内LTでスライド作るのにmd2keyを使った。便利。 github.com k0kubun.hatenablog.com 太字や取り消し線はまだ使えないらしい Rich texts · Issue #11 · k0kubun/md2key · GitHub とのこと。 調べてみた 実装できないかなと思って、applescriptで太字や取り…

Working With Unix Processes を読んだ

Working With Unix Processes (English Edition)作者: Jesse Storimer発売日: 2011/12/20メディア: Kindle版 クリック: 1回この商品を含むブログ (1件) を見る この前読んだ本と同じ作者が書いている。 Working with TCP Sockets を読んだ - tnakata's blog …

Working with TCP Sockets を読んだ

Working With TCP Sockets (English Edition)作者: Jesse Storimer発売日: 2012/10/24メディア: Kindle版この商品を含むブログを見る 一通り読んだけど結構勉強になった。サンプルソースはRubyで書かれているから、Rubyを使っていてWebサーバとかソケットと…

'rails -v'コマンドは何をしているのか

‘rails -v'コマンドは何をやっているのか rails -vコマンドがどのような仕組みになっているか気になったので調べてみる。RailsのバージョンはRails 5.0.1。 which railsコマンドで実行ファイルの場所を取得する。 $ which rails ~/.rbenv/shims/rails rbenv…

Rubyではなぜmix-inでクラスメソッドを引き継げないのか

includeと継承の違い includeメソッドによりモジュールをinclude(Mix-in)してそのモジュールのインスタンスメソッドを使えるようになります。クラスメソッドは使えません。 instance method Module#include (Ruby 2.4.0) 一方、継承では親となるクラスのイン…