Libra Studio Log

開発に関することやゲーム、ガジェットなどについてつらつらと書き記しています

軽量HTTProuter(httprouter)

f:id:daihase:20190809022658p:plain

こんにちは、daihaseです。

今日は前回やった「net/httpパッケージを使ったWebサーバー」、このような処理もライブラリを使ってもっと楽に!そして高性能に!というのをお題とします。

そこで紹介するのがhttprouter。GitHubのスター数も凄いですね。これが全ての基準ではないですが、ただそれだけ利用者も多く人気ということかと。

httprouterはその名前が示すように、HTTPの要求を特定のハンドラにルーティングします。基本的なGo標準のnet/httpと比較して以下のような機能を備えています。

続きを読む

dockerコマンド実行時の「Got permission denied while trying to connect to the Docker daemon socket」

f:id:daihase:20190809101937p:plain

こんばんは、daihaseです。 今日はdockerついて。 Ubuntu(18.04)環境にdockerをインストールし、早速dockerコマンドを叩いたらタイトルのようなメッセージが出て叩けませんでした。

dockerコマンドはデフォルトではroot権限なしには叩けないようになっています。 そこでdockerグループにユーザーを追加し、sudoなしでも叩けるようにしましょう。

続きを読む

net/httpパッケージを使ったWebサーバー

f:id:daihase:20190809022658p:plain

こんにちは、daihaseです。

今日はGoを使った最も簡単なWebサーバーの構築を説明したいと思います。PHP, Java, Ruby... サーバーサイドを実装する言語は多くありますが、このGoを使ったWebサーバーの実装はその中でも最も簡単と言えるくらいです。

Goは非常に強力な言語で、標準パッケージだけでも十分Webサービスを作れてしまいます。今回はWebサーバーとして動かすためにその中の1つ、net/httpについて紹介したいと思います。

続きを読む

曜日や日付を簡単に取得するExtension

f:id:daihase:20190809100049p:plain

こんばんは、daihaseです。

1ヶ月ぶりくらいのブログです。今日は大好きなSwiftネタを久々に。 Dateを使った日付表示とかはツール系のアプリでもよく出てきますね。 その度に毎回 let dateFormatter = DateFormatter() なんて書いてたら微妙なんで、ここはDateクラスをExtensionで拡張してどこからでも曜日や日付を取得出来るようにしてみましょう。

続きを読む

Cannot allocate memory for the buffer pool でMySQLが落ちる

f:id:daihase:20190809100556p:plain

こんにちは、daihaseです。 先日、実は当ブログが一時的に接続出来ない状態となっていました。

直ぐに復旧はしましたが、原因はタイトルにもある「バッファプールへのメモリ割り当てが足りていない」というものでした。

当初このブログもAWSのt1.microで動かしており、その際swap領域も割り当てたのですが以前より今はアクセスも多くなってそれだと厳しかったようです。

実際MySQLのログを見てみると以下のようにエラーが出ていました。

続きを読む

docker: Error response from daemon: driver failed programming external connectivity on endpoint xxx (xxx):x Error starting userland proxy: Bind for 0.0.0.0:80: unexpected error (Failure EADDRINUSE). が出たら...

f:id:daihase:20190809101937p:plain

こんばんは、daihaseです。

はい、異様に長いタイトルですね。Dockerのエラーなんですが、最初にMacでコンテナを走らせようとすると1度くらいは遭遇するコレ。その解決方法をメモ。

続きを読む