タグ

ブックマーク / deeeet.com (13)

  • コマンドラインツールを作るときに参考にしている資料 | SOTA

    コマンドラインツールについて語るときに僕の語ること - YAPC::Asia Tokyo 2014 コマンドラインツールが好きで昔からつくってきた. 今年のYAPCで,そのコマンドラインツールをつくるときにどういうことを意識して作っているのか?どのような流れで開発しているのか?といったことを語る機会をもらえた. 具体的な内容については,是非トークを聴きに来てもらうとして, スライドをつくるにあったって過去に読んだ資料や,よく参考にしている記事を集め直したので,その一部を参考資料としてまとめておく. UNIXという考え方 UNIXという考え方 Mike GancarzによるUNIXの思想や哲学をまとめた.古いが全然色あせてない. コマンドラインツールの作り方を書いたではないが,これらの思想の上で動くツールはこの思想に準拠して作られるべきだと思う.何度も読んで考え方を染み付かせた. 小さい

  • 自宅で美味いコーヒーを淹れる

    この記事はコーヒー Advent Calendar 2015の17日目の記事です. コーヒーを淹れること,豆を買いに行くこと,コーヒー器具を集めること,コーヒー関連のを読むことが好きだ.コーヒー趣味といっても過言でなない.自宅で美味しいコーヒーを淹れるために今までいろいろ試行錯誤してきたが,最近ある程度固まってきたのでその環境についてまとめてみる. 過去 最初に自分とコーヒーとの馴れ初めをつらつらと. 親がコーヒー好きなので実家では当たり前のように毎日コーヒーが淹れられていた.そのため家で自分でコーヒーを淹れて飲むのは当たり前のものとして育った.実家ではドリップマシンが使われていた.特にこだわりはなく出されるものをそのまま飲んでいたと思う. 自分でコーヒーを淹れるようになったのは大学生で一人暮らしを始めてから.最初は実家にあった使われていないドリッパー(確かHARIO)と近所のスーパー

    delimiter
    delimiter 2015/12/17
  • デプロイ自動化とServerspec

    Serverspecの献ありがとうございました.とても面白かったです.詳しい書評はすでに素晴らしい記事がいくつかあるので,僕は現チームでどのようにServerspecを導入したか,どのように使っているかについて書きたいと思います. Serverspec導入の背景 今のチームではサーバーのセッアップおよびデプロイにChefを使っている.にも書かれているようにこのような構成管理ツールを使っている場合はそのツールを信頼するべきであり,Serverspecのようなテストツールは必要ない.僕らのチームもそのような理由でServerspecの導入には至っていなかった. しかしアプリケーションが複雑になりChefのレシピも混沌とするようになるとそれは成立しなくなる.見通しの悪いレシピはChefへの信頼度を落とす.信頼度の低下はデプロイ不信に繋がり人手(筋肉)によるテストが始まる. サーバーの数がそ

    delimiter
    delimiter 2015/03/26
  • Docker 1.5の変更点

    Docker 1.5の変更点 Docker 1.5.0-rc1 Docker 1.5: IPv6 support, read-only containers, stats, “named Dockerfiles” and more | Docker Blog Docker 1.5が出た.IPv6のサポートやstatsコマンドによるコンテナのメトリクス表示などが追加された.ユーザ的に一番嬉しいのはDockerfileの名前を自由に決められるようになったことだろうと思う. 今までDockerfileはDockefileという名前しか受け付けなかった,というかまともに動かなかった.やりようはあって,標準入力からぶっ込むことはできた.例えばbaseとう名前のDockerfileを作って以下のようにbuildを実行することができた. $ docker build -t tcnksm/test - <

    delimiter
    delimiter 2015/02/12
  • CoreOSに入門した

    CoreOS is Linux for Massive Server Deployments · CoreOS CoreOS + Docker Meetup Tokyo #1に参加してCoreOSにめっちゃ感動したので,CoreOSに入門していろいろ触ってみた. まず,CoreOSの概要とそれを支える技術について説明する.次に実際にDigitalOcenan上にVagrantを使って実際にCoreOSクラスタを立てて,CoreOSで遊ぶ方法について書く. CoreOSとは何か CoreOSは,GoogleやFacebook,Twitterといった企業が実現している柔軟かつスケーラブル,耐障害性の高いインフラの構築を目的としたLinuxディストリビューションである.軽量かつ使い捨てを前提にしており,クラウドなアーキテクチャのベストプラクティスを取り入れている.CoreOSの特徴は大きく4つ挙

    delimiter
    delimiter 2014/11/18
  • 複数プロジェクトを抱えるチームでのデプロイ自動化

    複数プロジェクトを抱えるチームでのデプロイ自動化 1つのチームで,10以上のプロジェクト,コードベースを抱える場合にどのようにデプロイの自動化を進めたか,工夫したこと,考慮したことなどをまとめておく. デプロイツールには,Python製のfabricを採用しているが,他のツールでも同様のことはできそう.なお,fabricの基的な使い方などは既にインターネット上に良い記事がたくさんあるので書かない(最後の参考の項を見てください). fabricの選択 シェルスクリプトとCapistranoを考慮した. まず,シェルスクリプトは人によって書き方が違うため,統一が難しくメンテナンスコストも高い.また共通化も難しい. 次に,Capistranoは,裏でやってくれることが多く,学習コストも高い.プロジェクトによってはかなり特殊な環境へのデプロイも抱えているため,Capistranoの前提から外れる

    delimiter
    delimiter 2014/10/31
  • boot2dockerでのVolume問題が解決しそう

    boot2dockerでのVolume問題が解決しそう (追記)Docker 1.3がリリースされた.boot2dockerはデフォルトでVirtualBox Guest Additionsをサポートし,boot2docker-cliはinitのときにホストのディレクトリをboot2docker-vm上にマウントするようになった(Docker 1.3: signed images, process injection, security options, Mac shared directories | Docker Blog). TL;DR OSXWindowsでboot2dockerを使う場合に特別な操作をしなくても-vオプション(Volume)が使えるようになる. 背景 OSXWindowsでboot2dockerを使うひとが最も不満に感じるのは-vオプション(Volume)が使

    delimiter
    delimiter 2014/10/08
  • DockerHub公式の言語Stack

    DockerHub公式の言語Stack DockerHub Official Repos: Announcing Language Stacks | Docker Blog DockerHubには公式のレポジトリがある.そこにはUbuntuやCentos,MySQLやPostgres,MongoといったDockerイメージがコミュニティーベースで,つまりより汎用的に使える形で開発され集められており,ベースイメージとして簡単に使えるようになっている. 今までは,OSのディストリビューションや,Webサーバ,DBなどがメインだったが,公式として各種プログラミング言語のベースイメージも公開された.現状(2014年9月時点)では,c/c++(gcc),clojure,golang,hylang,java,node,perlPHPpythonrailsrubyがある. 特徴 この公式の言語s

    delimiter
    delimiter 2014/09/26
  • Proxy環境下でDockerを動かす

    Proxy環境下でDockerを動かす Docker1.0がリリースされたことで,プロダクションレディ感もあり,企業でもDockerを使う機運が高まっている.でも,実際はまだまだ番環境ではなく,テスト環境などで使われることが多い. Dockerによるテスト環境構築でまず思い浮かぶのはdokku.dokkuはDockerを使ったbash実装のPaaS.プライベートPaaSを持たない,かつHerokuなどを気軽に使えない企業のテスト環境として今後使われる機会がありそう. ただ,個人での利用とは違い企業などでDockerやdokkuを使う場合は,Proxyに阻まれることがある(というか今日阻まれた).ので,Proxy環境下でのDocker,dokkuの使い方を簡単にまとめておく.まず,Docker全般に関して,次にdokku特有の問題についてProxyの問題を解決しなければならない状況とその解

    delimiter
    delimiter 2014/07/02
  • Dockerとtmuxを連携するdmuxというツールをつくった | SOTA

    Docker + tmux = dmux ! dmuxを使うと現在起動中のtmuxのwindowにおいて,新しくpaneをつくりそこでDockerコンテナを起動することができる.使い捨て,かつ高速に起動するクリーンな環境でコマンドを試したり,ツールを入れて使ってみたりなどといったことができる.また,プロセスと途中で止めて,後にそれを再開することもできる. デモ 以下は簡単な動作例. 上のデモでは,以下のことが可能であることを示している. dmux initにより新しいpaneでコンテナを起動し,そこにアタッチする dmux stopでプロセスを停止してpaneを削除する dmux startで停止したプロセスを再開して再びコンテナにアタッチする(for文が途中から再開している) dmux deleteでコンテナとpaneを削除する なぜつくったか Dockerのv0.12.0で追加されたp

    Dockerとtmuxを連携するdmuxというツールをつくった | SOTA
    delimiter
    delimiter 2014/06/16
  • Go言語のコードレビュー

    SoundCloudが2年半ほどGo言語を利用したプロダクトを番で運用した知見をGopherConで発表していた(“Go: Best Practices for Production Environments”).その中で“CodeReviewCommentsというGoogleでのGo言語のコードレビューにおいてよくあるコメントをまとめたサイトが紹介されていた. 最近Go言語を書くようになり,使えそうなのでざっと抄訳してみた.“リーダブルコード”的な視点も含まれており,Go以外の言語でも使えそう. gofmtでコードの整形をすること コメントは文章で書くこと.godocがいい感じに抜き出してくれる.対象となる関数(変数)名で初めて,ピリオドで終わること // A Request represents a request to run a command. type Request str

    delimiter
    delimiter 2014/05/27
  • Dockerのネットワークの基礎

    今までいろいろ触ってきて,Dockerネットワーク周りに関しては何となくは理解していたが,人に説明できるほど理解してなかったのでまとめておく.基は,Advanced networking - Docker Documentationがベースになっている. 仮想ブリッジの仕組み Dockerのネットワークは,仮想ブリッジdocker0を通じて管理され,他のネットワークとは隔離された環境で動作する. Dockerデーモンを起動すると, 仮想ブリッジdocker0の作成 ホストの既存ルートからの空きのIPアドレス空間を検索 空きから特定の範囲のIPアドレス空間を取得 取得したIPアドレス空間をdocker0に割り当て が行われる. コンテナを起動すると,コンテナには以下が割り当てられる. docker0に紐づいたveth(Virtual Ethernet)インターフェース docker0に割り

    delimiter
    delimiter 2014/05/12
  • Dockerとは何か?どこで使うべきか?

    この記事はDockerに関する実験的な記事や,Buildpackを使ってHeroku AppをDocker Containerとして使えるようにする“building”の開発などで知られるCenturyLink Labsの “What is Docker and When To Use It”の翻訳です. Dockerとは何か?Dockerをどこで使うべきか?についてよく見かける記事とは違った視点から説明されています. 翻訳は許可をとった上で行っています. Dockerとは何でないか Dockerとは何かを説明する前に,Dockerは何でないかについて述べる.Dockerの否定形は何か?Dockerの制限は何か?Dockerが得意でないことは何か? DockerLXCのようなLinux Containerではない DockerLXCだけのラッパーではない(理論的には仮想マシンも管理でき

    delimiter
    delimiter 2014/05/01
  • 1