mazinlabsのブログ

RubyとかCloudとかその辺の記事を書いたり書かなかったり

「大企業におけるIT芸人としての生き方」というLTをしてきた

ものすごい久しぶりの更新で誰が見てるのかわからないけど元気に生きてます。 更新しようとは思っていたんだけどなかなか個人としてのアウトプットがなかったのですが、 久しぶりにアウトプットがあったので更新してみた。 先月、弊社にインターンシップの学…

mooと打つと”スーパー牛さんパワー!”を返すhubot scriptを作ってみた

なんとなくSlackを眺めていて、ふとチャンネルにいるHubotに"moo"と打ったところ反応がなかった。 ないとなるとなんとなく欲しくなってくる。 というわけで作ってみた。 Mahito/hubot-moo-scriptgithub.com 以下動作サンプル hubot-moo-script> hubot-moo-sc…

「AnsibleとServerspecではじめるInfrastructure as Code」というお話をしてきました

先日社内の勉強会で「AnsibleとServerspecではじめるInfrastructure as Code」というお話をさせていただいたので、その資料を貼っておく。 元々はSlideShareを使っていたのだが、最近になってスライドを見終えると別のスライドに飛ばされるのが嫌になったの…

VagrantでChef Soloのバージョンを指定する方法

あらまし VagrantでChef soloを使っているとエラーが出た。 ERROR: undefined method `sensitive' for Chef::Resource::Template ここを見るとどうもChef soloのバージョンが古いようなのでアップデートしようとしたのでその手順をまとめてみた。 流れ まず…

VagrantでCloudn Compute VPC (OpenNW)を操作する

背景 VagrantでCloudn Compute Flatは操作できるけど、VPC(OpenNW)が操作できないと周りで聞いたので解決できるかやってみた。 環境 最初に使った環境は以下のとおり % vagrant -v Vagrant 1.7.0 手順 vagrant-cloudstack pluginの導入 まず何にも用意がない…

Ansible Configuration Fileのtransport=smartについて

今年の夏ぐらいからChefあらAnsibleに乗り換えてまあまあ使ってきました。 Chefと比較した場合のAnsibleの利点として、エージェントレスで動作するということが挙げられます。 このエージェントレスでの動作ですが、簡単に言うと毎回SSH(他のプロトコルも利…

MacでCloudmonkeyが動かなかったのでなんとかしてみた

cloudmonkeyで遊んでみようとしたら、エラーが出て動かなかったのでなんとかしてみた。 まずはcloudmonkeyのインストール % sudo pip install cloudmonkey そして実行するとエラーはこんな感じにでてくる。 % cloudmonkey Traceback (most recent call last)…

SECCON 2014 オンライン予選(英語)32時間 CTFに参加してました

12/6-7に行われていた32時間耐久SECCON 2014オンライン予選(英語)にctpmのメンバとして参加してました。 SECCON CTF 2014 Online Qualifications (32 Hours) is coming up soon... といいながら、子供の相手した李家の掃除とかしてからの参加だったので、1…

DevStackでSahara(Juno版)を動かしてみよう

こんばんは。 現在12月8日の33時です。 今日の記事は「OpenStack (2枚目) Advent Calendar 2014」12/8 分です OpenStackのJuno版から入ったデータ処理サービス「Sahara」に興味があったので、DevStackでSaharaを動かすまでの軌跡を書いております。 Setup …

jujuでmachineの削除ができなくて

諸事情でMAAS/jujuの素振りをしていて色々言いたくなったので書き込み。 MAASは結構いいかなと思うもののjujuとjuju-guiがかなりの困りもの。 VirtualBox上で素振りしているこっちが悪いのかもしれないが、ちょっとうまく行かなかったのでVMを消して最初から…

#RubyHiroba 2014でLTしてきました

最近プライベートは育児で忙しいので、RubyKaigiには残念ながら参加できなかったものの、RubyHirobaに参加してきた。 RubyHiroba 2014 多分Ruby系のイベント参加は去年のRubyKaigiとHiroba以来なので懐かしい感じがした。 今回は生活発表とLTthonを見ようか…

ServerspecでXMLファイルの中身をテストするために少しテストをイジってみた

最近はChefとかAnsibleで構築を自動化する際に Serverspec で試験することも多くなってきたけれど、ServerspecだとXMLのテストがしにくい。 リソースタイプに'file'があるが、 containでは評価が正規表現なので通常のファイルの中身を見る文には便利。 descr…

Herokuでの文字化けを直してみた

FluentdのPluginを書こうかなと思って公式HPのプラグイン作成を解説しているページを見たところ、サンプルコード内の日本語が文字化けしてた。 プラグインを書く | Fluentd(現在はPR出して修正済み) どうも調べてみると、Herokuの上でCodeRayを使うと文字…

Fluentd Casual Talks #3に参加してきました

DeNAさんの会場でFluentd Casual Talks #3が開かれたので行ってきました。 申し込んでいたのをすっかり忘れていてTwitterのTLを見ていて 「へー、そんなイベントがあるのかー」と思ってATNDを見に行ったら自分が参加になっているのに気づいて、 慌てて嫁に予…

SECCON 2013 北海道大会に参加してきました+Writeup 2問

週末に物見遊山でSECCON 2013 北海道大会に参加してきました。 もともとセキュリティは壊す方には興味があるものの守りとかしらないという殴る一方のドS仕様な人間なのですが、今年の頭に社内で開かれたセキュリティコンテストなるものへ参加するチームに誘…

Chefをインストールしてみた

FabricについでChefもインストールしてみた。 今回はChef-soloを使う予定なのでChef Clientをインストール。 curl -L https://www.opscode.com/chef/install.sh | sudo bash が、Chefが認識されてない。 PATHみたらChefにPATH通ってなかったので通して動くこ…

Fabricをインストールしてみた

HadoopとかNoSQLで大規模クラスタ(とはいっても十数台程度)を作成する際に、各ノードに対して同じ操作を繰り返すのももう我慢の限界なのでFabricを使ってみた。 Fabricとは Fabric is a Python (2.5 or higher) library and command-line tool for streaml…

CodeIQの「西暦年を平成年に変換する数学パズル!」に挑戦しました

結果は最短ステップの7に至らず9ステップ。 [2]014->40[14]->40[19]6->40[3]616->(4096)16->6[41]6->6(16)(81)6->6(49)6->(676)->26 解答はプログラムで最短の候補を出してそれを手計算で更に縮める方法をとったが、どうやら出した最短の候補に最短ステッ…

SQLアンチパターン

前回の読書会の本は「SQLアンチパターン」だったが結構盛り上がった。SQLアンチパターンposted with amazlet at 13.09.10Bill Karwin オライリージャパン 売り上げランキング: 14,790Amazon.co.jpで詳細を見る 私は現場でDBとかを見たことがないのだが、実際…

shared_examples_forが便利

RSpecのテストをグルーピングして実行できる#shared_examples_forが便利。Shared example group - Example groups - RSpec Core - RSpec - Relishこれを使えばテストコードが簡潔になるのでテストコードの量を減らすことができる。 require "set" shared_exa…

本日の教訓

ActiveRecordを継承したモデルで#saveでも#save!でもデータが保存できなくなる自体に陥った。 で、1時間ぐらい格闘した結果、原因判明。 ActiveRecord継承したモデルを作った際に、モデルの内部でcreateとかupdateのメソッドを実装すると、 既存のcreateやup…

東京Ruby会議10で当日スタッフしてきました

Ruby会議2011に引き続き、東京Ruby会議10で当日スタッフをさせて頂きました。 セッションの内容は見れたものもあり、見れなかったものもあるので詳細は参加者の方々にレポートはお任せして、スタッフ業をさせていただいた感想を終わって1週間経つけど書いて…

Ruby 2.0の機能解説メモ(Itoplevel)

* toplevel * added method: * added main.define_method which defines a global function. * added main.using, which imports refinements into the current file or eval string. [experimental] 追加されたメソッド main.define_method グローバルな関…

Ruby 2.0の機能解説メモ(Mutex)

* Mutex * added method: * added Mutex#owned? which returns the mutex is held by current thread or not. [experimental] * incompatible changes: * Mutex#lock, Mutex#unlock, Mutex#try_lock, Mutex#synchronize and Mutex#sleep are no longer allow…

Ruby 2.0の機能解説メモ(NilClass)

* NilClass * added method: * added nil.to_h which returns {} 追加されたメソッド NilClass#to_h nilに対してto_hを呼ぶと空のハッシュが返ってくるようになった。 これにて、nil.to_aやnil.to_sと同じような動きになったらしい。 #いままでだとnil.to_h…

Ruby 2.0の機能解説メモ(LoadError)

* LoadError * added method: * added LoadError#path method to return the file name that could not be loaded. 追加されたメソッド LoadError#path ロードできなかったファイルの名前を返す。 何がどうなってるのかよくわからないが、pryで確認してもnil…

Ruby 2.0の機能解説メモ(IO)

* IO * deprecated methods: * IO#lines, #bytes, #chars and #codepoints are deprecated. 廃止予定のメソッド IO#lines IO#bytes IO#chars IO#codepoints

Ruby 2.0の機能解説メモ(Kernel)

久しぶり更新。 社内の読書会でRuby 2.0のリリースノートを読んで2.0の新機能を学ぼうという提案が通った。 自分の担当部分を軽くまとめておく。 * Kernel * added method: * added Kernel#Hash conversion method like Array() or Float(). * added Kernel#…

「Objective-C プログラミング」を献本していただきました

今年に入って知り合いがObjective-Cの本に関する翻訳をしていて、そのレビューに参加させていただいた。 あまりお手伝いできなかったのだけれども、Objective-Cの勉強をさせてもらいながら幾つかコメントを出したりしていたが、先月末にようやく発売されまし…

LTしてきたので資料をSlideShareに上げました

とある場所で機会をもらってLTしてきたので資料を公開します。 内容は今流行のBigData(笑)を集める手段としてTwitterのStreaming APIを用いる方法の紹介になります。 BigDataの集め方 from Mahito