タグ Shogo's Blog
人気順 10 users 50 users 100 users 500 users 1000 usersGo言語の浮動小数点数のお話 - Shogo's Blog
元ネタ: [JavaScriptの問題] var a = 0.3 - 0.2; var b = 0.2 - 0.1; var c = a==b; cの中身はどれ? — RAO(らお) (@RIORAO) October 24, 2017 正確な実数計算をやらされるJavaScriptくん #擬竜戯画 pic.twitter.com/ipE56C2YbV — RAO(らお) (@RIORAO) Oc... 続きを読む
Go1.9から使える Monotonic Clocks を試してみた - Shogo's Blog
先日Go1.9beta1がリリースされました。 Go 1.9 Beta 1 is released! Announcement: https://t.co/lV5nvXwOoR Get it! https://t.co/2LhlOo2EtX #golang pic.twitter.com/zm09DwX93q — Go (@golang) June 14, 2017 Go 1.9 Release ... 続きを読む
Go言語のヒープに確保するデータの初期化コストについて調べてみた(Go1.8.1版) - Shogo's Blog
golangで p := new(Type) と p := &Type{} の使い分けってどうするべきだろう? — MURAOKA Taro (@kaoriya) April 12, 2017 こちらのツイートに対して、以下のベンチ結果が紹介されていました。 Go言語のヒープに確保するデータの初期化コストについて調べてみた しかし hnakamur2 さんも言及しているように、 これはGo1.2.... 続きを読む
Go言語でコンパイル時フィボナッチ数列計算 - Shogo's Blog
整数の公式でフィボナッチ数列を求める という記事を読んで、 「これコンパイル時ならGoでも簡単に計算できるのでは?」と思いやってみたメモ。 背景 みんな大好きフィボナッチ数列(要出典)。 漸化式で定義されているため、再帰やループを使って書くことが多いと思いますが、 閉じた式で書くことが知られています。 ただし、この一般式には無理数の演算が入るので、コンピュータで厳密に扱うことはできません。 ところ... 続きを読む
Go-sql-proxyがcontextに対応しました - Shogo's Blog
Go1.8ではdatabase/sqlのcontextサポートが入ります。 (きっと今日の Go 1.8 Release Party で詳しく説明があるはず、たぶん) それにともない Go言語でSQLのトレースをする で紹介した shogo82148/go-sql-proxy でもcontextを扱えるようにしました。 Go1.8新機能のサポート Golang 1.8 でやってくる databas... 続きを読む
Go1.8のGraceful Shutdownとgo-gracedownの対応 - Shogo's Blog
Go1.8beta1が出た時に、Go1.8で追加される予定のGraceful Shutdownについて書く! とTwitterに書き込んで早1ヶ月。 この前の金曜日に Go1.8rc2がリリースされ 、正式リリースも間近になってきて、 さすがに書かねばという気持ちになって来たので、がんばって検証してみます。 公式サポートで増える予定の機能 以前 Go言語でGraceful Restartをするとき... 続きを読む
Re:golang の http.Client を速くする - Shogo's Blog
先日 mattn さんの記事を読みました。 golang の http.Client を速くする nett というパッケージを使って 名前解決の結果をキャッシュすることで、 http.Client を早くするというものです。 この記事に関して、ちょっと疑問に思ったことがあったので、検証してみました。 疑問 疑問に思ったのは以下の点です。 名前解決遅すぎでは? ベンチマークの結果を見ると5億ns(=... 続きを読む
DateTime.pmにうるう秒の修正が入った話 - Shogo's Blog
こんにちは、 DateTime.pm Watcherのいっちーです。 本日面白いパッチがDateTime.pmに取り込まれたので、ご紹介したいと思います。 そのpullreqがこちらです。Closedになっていますが、該当コミットはmasterに取り込まれています。 The leap second in 2012 was on 2012-07-01 not 2012-06-01. #48 per ... 続きを読む
git-mergeの挙動をカスタマイズする - Shogo's Blog
最近gitのコンフリクト解消職人みたいになっていてすごくつらいです。 普通のプログラムであれば順番が重要なので手動でのコンフリクト解消は避けられないのですが、 僕が相手にしているのは最終的にMySQLに食わせるデータなのでそこまで順番は重要ではありません。 順番に挿入したところで、MySQLが順番にかえしてくれるとは限りませんからね。 このようなケースではある程度機械的にマージできるのでは?と調べ... 続きを読む
Perl の DateTime 利用上の注意点 - Shogo's Blog
この投稿は Perl 5 Advent Calendar 2015 の 9日目の記事です。 Perl の Time::Piece 利用上の注意点 という記事の最後にDateTimeへの言及があったのですが、 DateTimeはDateTimeでいろいろとハマりどころがあるんですよね・・・。 僕も今年いくつか罠にハマりました。ちょうどアドベントカレンダーの季節ですし、この機会にハマりどころをまとめて... 続きを読む
Go言語でGraceful Restartをするときに取りこぼしを少なくする - Shogo's Blog
少し前にStarletにGraceful Restartが時たま上手く動かない問題を修正するpullreqを投げました。 原因は割り込みハンドラ内でexitを呼んでいたからでした。 「割り込みハンドラ内ではフラグを建てるだけ」 「メインのプログラム内でそのフラグを見て分岐する」という原則があるのですが、それを守るのは難しいということですね。 (しかし新たな問題を産んでしまいrevertされてしまい... 続きを読む
Go言語でPerlのテストを早くする - Shogo's Blog
Test::mysqld::Multiというモジュールを書いてみたみたいな涙ぐましい努力により5分で終わるようになったテストですが、 プロジェクトのコードも増えて人も増えた影響で、 テスト時間が約7分まで伸び、テストのキューに10個近く並んで順番待ちさせられるという状況になってしまいした。 この状況を解決すべく go-prove というものを書いてみたので、そのご紹介です。 proveが遅い理由 ... 続きを読む
Go言語でSQLのトレースをする - Shogo's Blog
ぴっぴ先輩が「Go言語で発行したクエリを確認したい」って言ってて、 「MySQL使っているならGeneral Logを吐けばよいのでは?」と返したんだけども、 もっと汎用的な方法はないものかと考えてみました。 Golangの database/sql はどんなDBでも対応できるよう、ドライバを自由に入れ替えることができます。 ドライバは単にdatabase/sql/driverにあるインターフェー... 続きを読む
Go言語でGraceful Restartをする - Shogo's Blog
とあるHTTPサーバをGolangで立てようって話になったんだけど、 止まると困るので無停止でサーバ再起動をしたい。 PerlにはServer::Starterという有名モジュールがあるんだけど、 Golangはどうなってるの?ってことで調べてみました。 gracefulじゃないバージョン Golangの標準ライブラリを使ってHTTPサーバを立ててみる例。 レスポンスが一瞬で終わってしまうとよくわ... 続きを読む
OAuthの認証にWebViewを使うのはやめよう - Shogo's Blog
AndroidからTwitterへアクセスするためのライブラリとして,Twitter4Jが有名です. これを使ってみようと,「Android Twitter4J」と検索すると 認証にWebViewを使った例がたくさん出てきます. ・・・いや,ちょっとまて. それはちょっとまずいだろう. そういうわけでもうちょっと賢い方法を探してみました. 何がまずいのさ 「Android Twitter4J」と検... 続きを読む
リアルタイムにテンションを上げてみた - Shogo's Blog
昨日,Twitterで猫型さんのアイコンのテンションが上がっている話をしていたら, こんな無茶ぶりをされたんですよ. 明日には、いっちーがWebRTCでリアルタイムテンション上がってきたサービス作ってくれるだろうし、猫型さんがアプリの申請出してるだろう— Takashi Sasakiさん (@civic) 10月 2, 2012 いいだろう,その挑戦受けてやる! WebRTCって? WebRTCと... 続きを読む