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

RubyでTwitter Streaming APIを使ってみる2

前回の宣言通りTweetStreamを使って書きなおしてみた。 tweetstream/tweetstream · GitHubコードを書く前にTweetStreamのGemをインストール gem install tweetstream そしてコード ちなみに前回までは秘密鍵とかトークンとかを直書きだったけど、なんとなくY…

RubyでTwitter Streaming APIを使ってみる1

その昔TwitterAPIを使ってBOTを作ろうとしたことはあったが、Twitter4Rを利用するところまでやってBOTのコンセプトが決まらなかったのでやめた。 で、今回また何かしようと思って調べた所、最近のTwitterはStreaming APIを利用すればこちらからPullしなくて…

Windows上でMavenを構築する方法

今後使うことはないと思うけど、もし使うことになったら困るので残しておく。 1.Mavenを拾ってくる Maven - Page Not Found 2.拾ってきたファイルを解凍する 3.解凍して出来たディレクトリを適当なディレクトリに置く # 自分の場合はC:\直下にした # 以降は…

日本語ページの表示を英語に変えたらFoursquareのAPI登録ができるようになった話

FoursquareのAPIを利用しようとしたところ、OAuth2を使うためにアクセストークンが必要らしい。 アクセストークンはFoursquareにアプリケーションを登録すればいけるとのことなので、早速登録してみる。 foursquare for Developers 登録ページに行って、メー…

セキュリティはなぜやぶられたのか

次の読書会の本が決まったので久しぶりに技術書を購入。セキュリティはなぜやぶられたのかposted with amazlet at 12.05.20ブルース・シュナイアー 日経BP社 売り上げランキング: 36548Amazon.co.jp で詳細を見る最近は積読消化のために買い控えていたけど、…

MacのTerminalでjavacをした時にコンパイルエラーが文字化けするの出なおしてみた

Macのターミナルでjavacをすると、コンパイルエラーがあった時にエラーの内容が文字化けしているので読めない。 % javac TestSample.java [~/tmp] TestSample.java:3: Sample ?? abstract ?ł??B?C???X?^???X?𐶐????邱?Ƃ͂ł??܂???B Sample sample = new Sample(…

Abstractクラスの中に実装したstaticメソッドは呼び出せるのか?

諸事情でやむにやまれずJavaの勉強してます。 本日は抽象クラス(Abstract Class)について勉強中。 抽象クラスは自身のインスタンスを持たないクラスです。 他のクラスのスーパークラスとして使います。 ( ´_ゝ`)フーン インタフェース(interface)と違って実…

2011年 DevQuizの一人ゲームを解いてみた

今更ながら諸事情で2011年のGoogle Developer Daysの参加の際に、審査に使われたDevQuizの一人ゲームをRubyでといてみた。 gets.to_i.times do gets queue = [gets.split.map{|s|s.to_i}] ans = 0 until queue.empty? tmp = [] queue.each do |test| tmp << …

YCSBを改造してみた

YCSB*1でMongoDBを触っている際にスレッド数を増やすとよくinsertに失敗*2してYCSBが止まる事がしばしば。。。 update, read, scanに関しては止まらないのになぜかinsertだけ止まるのでソースコードを覗いてみた。 src/com/yahoo/ycsb/Client.java while (((…

勉強会の資料を公開してみた

最近同期とやってる勉強会で使った資料を修正したのでSlideShareに上げてみた。 最新技術動向(2011年上期) View more presentations from Mahito Ogura 色々突っ込みどころがあると思いますけど、ゆるーく見ていただければ幸いかと思います。あと修正の指…

DevQuiz - Web Game

前回に引き続きDevQuiz。 今回はWeb Gameを見せられる&高速化させたコードを晒してく。 // 色を記憶する連想配列を作成 hash = {} // カードの枚数分だけめくる cards = document.getElementsByTagName("td").length; for(var i = 0; i < cards; i++){ var …

DevQuiz -Google Apps Script-

先週ぐらいからGoogle Developer Dayに参加するためのGoogle DevQuizに取り組んでました。 もっと早くからできたのにだらだらしてて最後は時間が足りなかったorz そんなわけで解いた問題は ・ウォームアップクイズ ・Web Game ・Google Apps Script Web Game…

Homebrew入れてみた

mac

同じパッケージ管理システムのMacportsよりもいいと聞いたのでインストールしてみることにした。 インストールはこれだけ。 % ruby -e "$(curl -fsSL https://gist.github.com/raw/323731/install_homebrew.rb)" ==> This script will install: /usr/local/b…

RailsでActiveRecordの削除

MongoDBを使うのでActiveRecordを使う必要がないのだが、SQLite3のGemがないというエラーが出た。 gem install sqlite3 で動くのだけどこれだといらないはずのGemが含まれてしまう。 調べてみたらconfig/application.rbの設定を書き換えればいけるらしいので…

Rails3でMongoid使ってみた

最近MongoDBに興味があるのでRails3から触ってみることにした。 今回はObject-Document-Mapper(ODM)にMongoidを使ってみる。 前にMongoDBのODMにMongoMapperを使おうとしていたのだが、うまくインストールできなかったことがあった。 MongoDB触ってみる - …

Rails3でHaml使ってみた

rstat.usを触って初めてHamlを見たときに簡単に書けそうだなーと思って興味があった。 ちょっと最近Rails3の勉強もしているので、erbを使わずにHamlを使ってみようと思って勉強開始。 まず最初にどうやってRailsの中で使うのか分からないので(rstat.usはSin…

リハビリ

Ruby会議に参加してやる気をもらったので最近リハビリがてらにProject Eulerを最初から挑戦し始めた。 今回はソースコードをgithubに載せていってる。 Mahito/project-euler · GitHub 英語が全く書けない困った社会人なのだが、なんちゃって英語でコメントも…

MongoDB触ってみる

最近NoSQLを調べる機会がありドキュメント指向DBが面白そうだなと思っていたのだが、会社だとドキュメント指向DBを扱う機会がなさそうなので個人的に触ってみようと思った。 ドキュメント指向DBはCouchDBとMongoDBが有名らしいけど、前からよく目にするMongo…

スクラム道バーストにいってきた!

6月24日のスクラム道バーストに参加してきました。 初めて参加させていただいたので感想を書いておく。 意外と多くの会社がスクラムを組んでいて驚いた。 議論自体も活発に行われており現場の生の声が聞けて非常に勉強になった。 2週間から1ヶ月でスプ…

C言語で物理メモリ量の取得

C言語で物理メモリ量を取得する方法ががわからなかったので調べてみた。 ・・・なかなか情報が見つからずなかったけど無事に目標達成。 結果をまとめておく。 sys/sysinfo.h /* Returns information on overall system statistics. */ extern int sysinfo (s…