読者です 読者をやめる 読者になる 読者になる

アルパカDiary Pro

はてなブログProではありません

2016年振り返りと2017年

昨年をあらためて振り返ると、個人としては30代のワーストとなる年だった気がする (あくまで個人としての話です) ワーストの理由 インプット/アウトプットともにほぼ0に近かった(特に登壇は0) 家庭についてもあまりお手伝いできず、家内に負担をかけ…

Nginx実践入門

nginx実践入門 (WEB+DB PRESS plus)posted with amazlet at 16.01.31久保 達彦 道井 俊介 技術評論社 売り上げランキング: 18,258Amazon.co.jpで詳細を見る この度はご恵贈いただきましてありがとうございます。 途中からですが、自分もレビュアーの一人とし…

2015年振り返りと2016年

※仕事納めしながら書いてる 今年はまれに見る激動の年だった。 とくに後半は何してたかもあんまり覚えてない。 登壇 自分にしては例年よりか登壇して喋ったような気がする。 しかも嬉しいことにお声がけ頂くことも。。 CROSS 2015: はやぶさ2開発者に聞く〜…

YAPC::Asia 2015で「Docker3兄弟」というお話をしました+QA補足 #yapcasia

※2015/08/29 追記 現在DockerToolboxでVirtualBoxもインストールすると最新の5.0.2がインストールされますが このバージョンがDockerMachineと相性が悪く、VMが起動しないという罠があります。 https://github.com/docker/machine/issues/1716 VirtualBoxの…

#tvrendo テレビ連動サーバ勉強会 で発表しました

http://connpass.com/event/10424/ 弊社にて、テレビ連動サービスに特化した勉強会を開催しました。 で、自分も発表してました。 スライドはこちら。 http://www.slideshare.net/tsuyoshitorii5/public-43549341 TV連動サービスのリアルタイム通知を支える技…

omnibus-gitlabを利用したGitlabアップグレードの手順メモ

毎回ドキュメント見つつ実行するのがダルいのでメモしておく。 7.10.x 以降: 手順 これだけでOKになりました:) # ubuntuバージョン sudo apt-get update sudo apt-get install gitlab-ce7.9.x 以前のバージョンから上記手順に移行したい場合は 普通に最新版…

isucon4予選問題のLua(Lapis)バージョンを書いてみた

isuconアプリを書いてみましたシリーズ。 生でOpenresty+Luaで書いても良かったんですが せっかくなのでLapisというWebフレームワークを使ってみました。 実は自分も初触り。 最初にLapisの概要など http://leafo.net/lapis/ LuaのWebアプリケーションフレー…

2014年振り返りと2015年

まずは振り返ってみる。 家電その他の故障率が異常 最初に仕事の話持ってこようかと思ったんですが、 去年一番印象に残っているのは とにかくモノがよく壊れた ということ。 壊れたもの一覧。 冷蔵庫 洗濯機 炊飯器 給湯器 自転車 イヤホン 「家電は一気に壊…

lua-resty-woothee というモジュールを書きました

Lua Advent Calendar 2014 7日目の記事です。 wootheeというUA解析プロジェクトを最近知ったのですが、 Lua版が無さそうだったので書いてみました。 本当はLua単体で動くようにしたかったんですが、諸事情によりOpenresty依存となっております。 理由は後述…

【練馬/板橋エリア】お金をかけずに子供を遊ばせるスポットのご紹介

↓こちらに移動しました! http://www.adventar.org/calendars/681

GitLab+DroneでHerokuにCIする、という最高の環境を10分で作る

※2015/4/17 GitLab7.9 / Drone0.3 版に記事をアップデートしました。 Drone0.3で大きく変更されたため、手順もだいぶ変わっています。 今回の手順で主な変更点としては以下の様なものがあります。 GitLabでDroneアプリケーションを登録する必要がある Drone…

OSS版DroneでDockerコンテナに対してansibleを実行しserverspecでテストをする

さよならインターネット:CircleCIでDockerコンテナに対してansibleを実行しserverspecでテストをする こちらの補足エントリです。 OSS版Drone.io https://github.com/drone/drone drone.io のオープンソース版です。 Golang+Dockerで実装されているCIサービ…

一人isuconで遊んでみた

予選出れず泣いていたのですが、AMIが公開されたようなので遊んでみました。 以下条件。 今日の0時-3時で集中してやる マニュアルは事前に読んだ isucon参加者ブログは意識して見ないようにしてた。けどなんとなくヒントっぽい単語は目に入ってた なので、フ…

YAPC::Asia2014 レポート #yapcasia

YAPC、今までに何度か参加していますが 今年は念願のスピーカーとして参加することが出来ました。 話した内容についてはこちらをご参照ください。 たぶん言いたいこと全部書くとグダグダになるのでシュバッと。 最高でした 無限コーヒー 無限かき氷 無料ラン…

YAPC::Asia2014で儚いクラスタ運用話をしました

http://www.slideshare.net/tsuyoshitorii5/yapcasia2014-2-public (※一部素材を変更しています) TV連動サービスの運用ってこんな特徴があって それに合わせていろいろ運用改善したぜ〜、 という話をしてきました。 結構ボリュームが多くなってしまって 限…

GitLabとRedmineを連携してみるの巻

はてなブログさんの開発フローのお話 少し前の話になるんですが、GitHubKaigiで はてなブログさんの開発フローについて発表がありました。 その中で 当初はGitHubとRedmineを併用していたが、 両ツールの連携がイマイチだったので Redmineを止めてホワイトボ…

続・GitHubクローンのGitLabを5分でインストールした

前回の記事(GitHubクローンのGitLabを5分でインストールした) が 思いのほかブクマされてしまったので補足記事を書くことにしました。 インストールした後に設定したほうが良い項目とミドルウェア競合検証、 その他Tipsなど書いてみました。 公式ドキュメ…

GitHubクローンのGitLabを5分でインストールした

※2015/6/22 最新版の手順に更新 ※2015/1/7 アップグレードについての記事を書きました http://d.hatena.ne.jp/toritori0318/20150106/1420558625 ※2014/5/24 補足記事書きました http://d.hatena.ne.jp/toritori0318/20140524/1400955383 で、お決まりのパタ…

Redisのビットコマンドを用いた高速集計

Redisは様々な型をもっているので 単純な集計(increment)は結構柔軟にできたりします。 ですが、後から条件付きでクロス集計したい時があると思います。 Redisにはビット演算するコマンドがあるので それを使っていろいろな集計をしてみました。 ビット関連…

すぐに子供の写真を見れるGoogle Chromeの拡張作った。

※元ネタはこちらです http://soh335.hatenablog.com/entry/2013/02/10/011039 http://hisaichi5518.hatenablog.jp/entry/2013/02/01/003820 soh335さんのリポジトリをforkし、 DropboxAPIを利用してDropbox内の写真を表示するように改造してみました。 この…

microインスタンスはlimitかけると大きくパフォーマンスが向上する(※再追記あり)

※2014/07/02 T2インスタンスタイプとの比較 を追記しました。 ※2014/03/13 他インスタンスタイプとの比較/m3.mediumの検証 を追記しました。 こちらの記事の二番煎じです。 cgroupで、お手軽CPU使用率制限 なるほど。 リソースにLimitかけるとstealを防げる…

チャットを面白おかしくするおもちゃ箱

Skype や IRCなど、チャットツールは サービス開発のコミュニケーションツールとしては無くてはならないものである。 しかし時として、場の空気が重くなることもあるだろう。 そんな時、一筋の光をもたらすようなbotがいたなら。。。 時に笑いを提供し、時に…

M3インスタンスを使わない手はない

AWS

最近、また新たにEC2のインスタンスサイズが増えましたね。 【AWS発表】M3インスタンスの新サイズおよび新機能 + EBSの値下げ + S3の値下げ M3インスタンスはM1インスタンスの後継にあたる汎用インスタンスです。 今回新たに追加された m3.medium / m3.large…

pip1.5に注意

とある日、素のインスタンスにchef走らせたらpip installで何故かエラーになりました。 デプロイ周りで特にレシピ変更してないし全く身に覚えがない。。。 差分chefインストールだとpipエラー出ないし何でだー?とトレース追ってみると argparse==1.2.1でエ…

2013年振り返りと2014年

年末年始バタバタしてたので今頃振り返ってみます。 仕事 DevOps頑張ってた。 監視自動化とか、開発運用共通化とか。 改善前は各モジュールで独自の開発フローや秘伝のタレ化したデプロイツールなど、 担当者がいないと誰も管理できなくなってしまうという …

nginx-lua-moduleでLuaスクリプト書いてみた

プロダクトでWebサーバ上の現在時刻出したい要件がありました。 これぐらいの処理ならアプリケーション介さずともnginxだけでやりたいですね。 現在時刻ヘッダーにつけるならnginx標準機能で出来そうなんですが、 深淵なる理由からコンテンツとして欲しいと…

chefでattributeファイルを上書きしたい時

attributeファイルのオーバーライド 公式レシピを使う場合に、attributesファイルの一部のパラメータだけ更新したい時があると思います。 jsonでいちいち指定しても良いんですが、共通で設定したいパラメータは site-cookbooks以下にattributesファイルで書…

vagrant-awsからメタデータ表示するvagrant-ec2info書いた

https://github.com/toritori0318/vagrant-ec2info vagrant-aws使いまくっているんですが、 そのインスタンスのdnsとかタグとかさくっと表示したいなーと思って書きました。 そんだけ。 こんなイメージです。 vagrant-aws必須。

vagrant-awsを利用したイイカンジ(?)のAWS開発フロー

Vagrantでupとdestroy繰り返すのが大好きです。アルパカ大明神です。 DevOps 社内でデブオプスを推進していることもあり、 まず第一歩として進めているのが ローカル開発環境構築 ローカルVagrantでのアプリケーション開発 EC2への環境構築 デプロイ クラス…

RE:ブログを続ける意味

http://anond.hatelabo.jp/20130911125217 ブログに書くの、もちろん自分の備忘録という意味もあるんですが 自分が書いた記事が誰かの手助けになれればいいかなー というモチベーションが大きくて続けています。 自分も他の方のブログで助けられたことが何度…

AmazonElastiCache Redisがデター!デター!

ElactiCache Redisがデテター!デテター! 【AWS発表】 Amazon ElastiCacheでRedisを利用可能に! http://aws.typepad.com/aws_japan/2013/09/amazon-elasticache-now-with-a-dash-of-redis.html 社内Redisおじさんとしては触ってみるしかないであろう、 とい…

CloudFormationでAutoScale管理すると便利+α

AWS

巨大なJSONファイルをメンテするのが嫌で今までCloudFomationを避けていたのですが、 とある要件があり先日からがっつりCloudFormationを触り始めています。 実際使ってみて、特にAutoScaleを管理するのがだいぶ楽ちんだなーとおもったので その辺りをメモが…

Packer+chef-soloでAWSのAMI構築を試してみた

最近、DevOpsというキーワードと共にPackerというツールの話がちらほら耳に入るようになりました。 Packerとは何ぞや?という話もあると思いますが、 すでに多くのブログで言及されているので詳しくはそちらをご参照いただくのが良いかと。 Packerでさまざま…

Redmineであしあと機能を実現するプラグイン書いた

書きました。 https://github.com/toritori0318/redmine_ashiato 概要 最近見たチケット/Wiki/メッセージなどを履歴として残し、参照できるようにします。 仕様 以下のアクションを行うと、あしあとに登録されます チケット詳細表示 フォーラムメッセージ表…

Redmineのプロジェクト毎にロゴやcss変える方法

久しぶりのRedmineネタ。 今回は「サーバにログインしてあーだこーだ」せず、 カスタマイズ無しでWeb上から プロジェクト毎にロゴやcss変える方法を書いてみます。*1 事前準備:Wiki Extentionプラグインインストール 事前準備として、Wiki Extentionプラグ…

アイコン変えた話

アイコン変えました。 これ、じつはハンコなのです。 邪悪なハンコ屋 しにものぐるい とある日、奥さんがこんなサイト見つけてきました。 邪悪なハンコ屋しにものぐるい 奥様「あ、ここアルパカのハンコあるよ。これ名刺にペタペタすればいいんじゃない?」 …

アルパカchef日記3日目 data bagについて / またはユーザ管理クックブックなど

2日目の続き。 コンセプトはこちらをご参照下さい。 3日目の目標 ユーザ管理(data bag) ユーザ作成 bash_profile管理 sudo ここの段階で ec2-userのsudo権限を剥奪し、新ユーザにsudo権限を付与 security_limit 3日目を始める前に:data bag ユーザ情報な…

rpm dbが壊れたときは

Chefからyum update走らせてたら以下のようなエラーが発生するようになってた。 _rpm.error: rpmdb open failed 以下のコマンドでローカルキャッシュを作りなおしたら復旧した。 sudo yum clean all sudo rm -f /var/lib/rpm/__db* sudo rpm --rebuilddb

アルパカChef日記番外編 VimでChefクックブックを編集する時に便利かもしれないプラグイン

今回は少し趣向を変えて、Vimのお話。 自分はビマーなので、ChefのクックブックをいじるのにもVimです。 そこでVimでクックブックを書く時に便利(?) かもしれないプラグインやScriptを紹介してみます。 chef.vim http://www.vim.org/scripts/script.php?s…

SQLAlchemyでデータベースの master / slave 参照切り替えを行う

SQLAlchemyで 「更新はMasterDB」 「参照はSlaveDB」 ということを実現したかったので調査メモを残しておく。 カスタマイズSessionクラスを作ってその中でMaster/Slave判定すれば良いようだ。 サンプルアプリケーション Flask使ってみる。 config.py # Maste…

Provisioning Frameworks Casual Talks vol.1 に参加しました

※2013/5/12 先着順受付についての記述追記 最近弊社のプロジェクトでもchefを少しずつ導入してることもあり、 先人の知恵を拝借すべく参加いたしました。 新卒研修でserverspecとChefを使った話(@fujiwaraさん) http://dl.dropboxusercontent.com/u/224433/p…

アルパカchef日記2日目 OS周りのクックブックなど

1日目の続き。 コンセプトはこちらをご参照下さい。 2日目…の前に補足など バージョンや構成についてのメモ。 chef 11.4.0 knife solo 0.3.0-pre4 ディレクトリ構成 基本的には knife solo init で作られたものです。 ▾ / ▸ cookbooks/ # Berkfileで管理す…

GW中にTwitterのアカウント名にパワーゲージを設定するアプリ作った

http://dry-dawn-2991.herokuapp.com どういうものか TwitterのOAuth完了後、パワーを選択して更新すると 自分のTwitterプロフィールの後ろにパワーゲージが設定されます。 何度でも更新可能。 クリアも可能。 500 エラーは出るものと心得よ 原因1 あなたの…

アルパカchef日記 1日目

1日目:chefを使うための前準備 今回はchefを使える状態になるまでの前準備とします。 chef自体の説明ですが 「chefとは何か?」「chef-serverとchef-soloの違いは?」 といった説明は省略します。 また chef-solo / knife-soloを使うための環境準備につい…

アルパカchef日記 0日目

0日目:概要 日々、chefと戯れる様子を淡々と綴ってみるよ。 アルパカchef日記のゴール knife soloを用い、EC2の生AMIに対して 以下の作業を一切サーバにログインせずに 全て達成すること を目標にしたいと思います。 ユーザ設定 ミドルウェアのインストー…

Amazon SQSを効率よく処理するための簡単なサンプルコード(perl / python)

Amazon SQSって便利だと思うんですがWeb上の情報って意外と少ないですよね。 実際SQSを使う際に効率よく、かつお金も節約できるような サンプルが欲しかったので書いてみました。 ワーカーで効率よく処理するため2つのポイント この2つを気にするだけでだ…

python-memcachedでunix domain socket接続する

hostを指定する所でそのままunixドメインソケット指定すればよい。 import memcache mc = memcache.Client(['unix:/tmp/memcached.sock']) mc.set('foo', 'bar') print mc.get('foo')

SQLAlchemy+MySQLでマルチバイト扱ったら文字化けた時の対応

マルチバイト扱ってたら以下のようなエラーが発生。 Failed to update model. 'latin-1' codec can't encode character u'\u3042' in position 15: 接続するときのコードはこんな感じ。 DBもクライアントもutf8指定してるのになーって感じ。 DSN = 'mysql://…

python httpクライアントのベンチマーク

http叩きまくるアプリ書いてるのでベンチ取ってみた。 requests遅いように見えるけど、 そこまで気にする差ではないとおもう。

curl/httpie 比較チートシート

CLIでJSONの整形をする http://yuroyoro.hatenablog.com/entry/2013/04/02/190709 httpie インストールが必要になってしまいますが httpのレスポンスを整形したいだけであればhttpieも便利です。 https://github.com/jkbr/httpie pip install httpiejsonコン…