タグ

ブックマーク / please-sleep.cou929.nu (9)

  • Go の sql.DB がコネクションプールを管理する仕組み

    Godatabase/sql パッケージ の DB 構造体 は、データベースへのコネクションプールを管理し、かつスレッドセーフ (goroutine セーフと言ったほうが良いのだろうか…?) にそれらの接続を使用できることを保証している。 ドキュメント にも次のように書かれている。 DB is a database handle representing a pool of zero or more underlying connections. It’s safe for concurrent use by multiple goroutines. こちらの基的な実装内容と、動作を制御するパラメータについて調べてみた。 基礎知識のおさらい database/sql パッケージはデータストアの実装によらない一般的な SQL のインタフェースを提供している。具体的なデータストアへの接

    Go の sql.DB がコネクションプールを管理する仕組み
  • Steve Yegge の Google Platform Rant をもう一度読む

    2011 年の文章だけど、今でもかなり示唆深い。 Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(前編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(中編) Steve Yegge の Google とプラットフォームに関するぶっちゃけ話を訳した(後編) 以下は気になったポイントを引用しつつ、行間を読みつつまとめたもの。個人的な解釈も入っているので注意してください。 プロダクトとプラットフォーム まずシステムを “プロダクト” と “プラットフォーム” に分け、それらが根的に違うと言っている。 特定のセグメントに価値を届けるシステム (垂直統合的)特定のセグメントに機能を素早く提供できる完璧な要件定義をし、それをリリースするのが理想 プロダクト プラットフォーム プロダクトは特定のセグメントに対して価

    Steve Yegge の Google Platform Rant をもう一度読む
  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

    シェルスクリプトを書くときにいつもやるやつを調べた
    clavier
    clavier 2021/02/18
  • Chromium のコードを触ってみる

    Contributing to Chromium: an illustrated guide – Monica Dinculescu という記事が面白かったのでやってみた。Chromium へのコントリビューションのガイドということで、環境構築、コードへの手の入れ方から、ビルド、差分の送り方まで解説している記事。 題材としてはこのように、アバターのメニューに項目を追加するというもの。 さすがにパッチを送るわけにはいかないので、コードに差分をいれてビルドするところまでをやってみる。 環境構築 記事にもあるが、基的に Get the Code: Checkout, Build, Run & Submit - The Chromium Projects の内容が最新の状態に保たれているので、これに従う。 記事中に説明があるが、この wiki に無い情報としては、以下のビルドオプションの設定がお

    Chromium のコードを触ってみる
  • browserify をはじめてみる

    Browserify を触ってみたメモ。 Browserify とは CommonJS のモジュールの仕組み、つまり Node.js の require をブラウザ上でも使えるようにするもの、ということでいいみたい。Readme を読む限りは、npm にあるモジュールをブラウザ上にもっていくために作られ始めたような印象をうけるが、ちまたのエントリーをみていると AMD に代わりに CommonJS でフロントエンドの依存関係の管理をする (RequireJS ではなく、Node.js 感覚で require 関数をフロントエンドで使う) ためのツールとしても使っていいようだ。 やりたいこと 複数の js ファイルの依存関係を記述したい 最終的に、依存関係を考慮した順番で、ひとつの js ファイルに結合したい 作りたいのは第三者のサイトに埋め込んでもらうスクリプト (サードパーティスクリプト

    browserify をはじめてみる
  • Jenkins, Grunt, Jasmine で JavaScript のテストを CI

    jasmine で書いた js のテストを grunt で実行できるようにして jenkins で継続的に動作させる。 Gruntfile.js まず Gruntfile.js には以下のようにする。 module.exports = function(grunt) { grunt.initConfig({ jasmine: { all: { src: 'js/source/**/*.js', options: { specs: 'js/spec/**/*.spec.js', helpers: ['js/spec/helpers/jquery-1.11.0.min.js', 'js/spec/helpers/jasmine-jquery.js'], keepRunner: true, junit: { path: 'build/jasmine-test/' } } } } }); grun

    Jenkins, Grunt, Jasmine で JavaScript のテストを CI
  • Sinon.js Code Reading

    モジュールのロードまわり lib/sinon.js がモジュールのエンドポイント sinon object の作成、環境に応じた初期化、ユーティリティメソッドの定義を行う spy や mock などの機能毎にファイルが分かれる lib/sinon/*.js に配置 lib/sinon/spy.js など sinon.js 大きくは以下のように sinon object を作って返す。 var sinon = (function() { function somePrivateFunction() {}; var sinon = { foo: function foo() {} }; return sinon; }()); node の場合、ブラウザの場合、busterjs の場合で異なった初期化を行う。 node の環境かどうかの判定は module.exports の有無で行う。 var

    Sinon.js Code Reading
  • CentOS5 系に phantomjs をインストールするのが超簡単だった

    PhantomJS: Download and Install ここにバイナリがおいてあるのでダウンロードして展開してパスを通すだけで大丈夫。qt とか webkit をインストールする必要すらなくて超簡単。 古いシステムなどでソースから入れたい場合は PhantomJS: Build Instructions に従う。以下のステップだけでいいらしい sudo yum install gcc gcc-c++ make git openssl-devel freetype-devel fontconfig-devel git clone git://github.com/ariya/phantomjs.git cd phantomjs git checkout 1.9 ./build.sh ソースから入れる場合も同様に qt などは必要なくて、build.sh を叩くだけでいいそうだ。簡単。

    CentOS5 系に phantomjs をインストールするのが超簡単だった
  • ブラウザのバグを見つけたときにやること

    paulirish/browser-logos · GitHub バグを見つける 表示系のものならスクリーンショットをとっておく すでに報告されていないか調べる ブラウザごとのバグトラッカーで検索してみる サポートフォーラムなどコミュニティに相談してみる ブラウザの種類とバージョンの絞込み 他のブラウザでは発生するか. 他のバージョンでも発生するか (stable を使っているなら beta や nightly でも見てみる等) テストケースの最小化 バグを再現させる最小のテストケースを作ります 今回出会ったのは表示系のバグだったので, html / css を削りながら現象を再現させていき, 同じ現象が起こる最小の html を作りました バグの報告先とフォーマットの確認 ブラウザごとにバグ報告のガイドラインがあるはずなので, それを読めばどのように報告すればよいかわかるはずです chr

    ブラウザのバグを見つけたときにやること
  • 1