block_given?

ジャングル ブロック ナイ アルノハ jump ダケ。CC-BY-SA 3.0

モダンなEmacsを求めて (6) Rubyについて

今回のモダンなEmacsを求めてはRubyの開発環境について。 rbenv.el rbenvへの実行パスを通してくれたりする。 package-install rbenv で入る。 (require 'rbenv) (global-rbenv-mode) rbenvを入れた場所の設定も必要。 brewで入れたのならbrew info rbenvで…

モダンなEmacsを求めて (5) helmをつかいはじめる

今回のモダンなEmacsを求めては超絶便利インクリメンタルサーチユーザーインターフェイスhelmについて。 前にEmacsを使っていたときはanythingを使っていた。最近はhelmが人気らしいので、helmを使う。 anything/helmがないEmacsとあるEmacsでは別のエディタ…

モダンなEmacsを求めて (4) package.elでインストールしていないパッケージを自動でインストールする

今回のモダンなEmacsを求めては、インストールしたいパッケージをリストに追加すると起動時に自動でインストールされるような仕組みをつくる。 前回、前々回でpackage.el、init-loaderの設定がすんでいるものとする。 モダンなEmacsを求めて (3) init-loader…

モダンなEmacsを求めて (3) init-loaderで設定ファイルを分割する

今回のモダンなEmacsを求めては設定ファイルの分割管理について。 init-loader.elを使うと、~/.emacs.d/inits以下で分割した設定ファイルを管理できる。 ファイル名ベースで読み込む順番や、環境依存の設定ができるので、モダンなEmacsにはかかせないパッケ…

モダンなEmacsを求めて (2) モダンなパッケージ管理 package.el を使う

今回のモダンなEmacsを求めてはEmacsのパッケージ管理について。 Emacsを便利につかうためカジュアルに機能拡張したい。 最近の、モダンな(バージョン24以降の)Emacsでは、ELPA(Emacs Lisp Package Archive)のためのパッケージ管理システムpackage.elが導入…

モダンなEmacsを求めて (1) モダンなEmacsを使う OSX編

今回のモダンなEmacsを求めてはモダンなEmacsの導入方法について。 新しいEmacsでは、パッケージ管理などの便利な機能が使えるらしい。 Mac OX Mavericksにデフォルトで入っているEmacsのバージョンを確認する。 $ /usr/bin/emacs --version GNU Emacs 22.1.…

モダンなEmacsを求めて

モチベーション 脱EmacsしてAtomを使っていたが非力なマシンではAtomが重かった。なのでEmacsに出戻る。 目次 モダンなEmacsを求めて調べたことを書いていく。 モダンなEmacsを求めて (6) Rubyについて - block_given? モダンなEmacsを求めて (5) helmをつか…

MRIを読む (4) Macでもデバッグしたい

マシンが非力なので仮想マシン上では動作が重たい。 Mac上でデバッグする方法を覚える。 Homebrewでいれたrbenv + ruby-buildをつかって2.1.4をインストールしている状態。 どのコンパイラが使われたのか clangである。なのでclangのデバッガを使ってソース…

インしたお! マイクラ開始即通知、idobata + fluentd

やりたいこと Minecraftのログイン通知をidobataにpostする Minecraftのログアウト通知をidobataにpostする TL;DR Minecraftサーバーにfluentdをいれて以下のような設定ファイルでログイン/ログアウト通知を実装した。 <source> type tail path /home/blockgiven/min</source>…

MRIを読む (3) デバッグ方法の入り口を覚える

MRIの中、Cでのデバッグをするための入り口を覚えたい。 gdbを試したい gdbがない $ gdb rubies/bin/ruby-2.1.4 The program 'gdb' can be found in the following packages: * gdb * gdb-minimal Ask your administrator to install one of them gdbを入れ…

MRIを読む (2) 環境構築: Rubyをビルドする

Rubyを読むためには、実際にRubyを動かして試せた方が便利です。 また、ソースコードに手を加えたり、デバッガで止めるのをCの世界(Rubyより下の世界)でやるために、Rubyを自分でビルド出来た方が捗ります。 ソースコードを入手 Rubyは更新が早いです。trunk…

MRIを読む (1) 環境構築: Linuxを入れる

MRIを読みたいので環境を整える。 普段はMac OSを使っている。 Mac OS上にMRIを読む環境を整えてもよいのだが、いろいろと壊す可能性もあるので、VMでLinuxをたてて読むことにする。 Vagrant + VirtualBoxを入れる $ brew cask install vagrant virtualbox …

MRIを読む

Ruboty plugin per dayの取り組みに区切りを付けたので新しいことをはじめる。毎日少しずつ読み進めたい。 この記事はまとめ記事にし、新しい記事を追加した際に更新していきたい。 MRIを読む (3) デバッグ方法の入り口を覚える - block_given? MRIを読む (2…

阿吽の呼吸でChatOps、標準入力と標準出力でハンドラがつくれるruboty-aunをつくった

標準入力にチャットの発言をすっと入れる。標準出力をふっと出せばハンドラーの出来上がり。Rubyでハンドラー書かなくてもいい。 使い方 Gemfileに以下を書いてbundle install gem 'ruboty-aun' Rubotyと同じディレクトリの下にaunを作って、その中に実行フ…

Rubotyが信ずる者の言葉にしか耳を貸さなくなるruboty-trust_meをつくった

簡単な名前による認証を提供します。 blockgiven/ruboty-trust_me つくろうと思った理由 ruboty + twitter-adapter でボットを作っている人っているのかな?万人向けのコマンドと管理者(本人)向けのコマンドとかの区別が必要になりそうだけど、その辺りど…

Redisのメモリ使用量を表示するruboty-redis-infoつくった

brainを結構つかうようになったのでRedisの使用率が気になった。 litaからぱくった わからなかったこと 何MBまで使える、みたいな情報とれないのかな 余談 ruboty-gen g redis-infoすると生成されるgemがダメ。夜気分が乗ったら-対応しよう。

おまえは今までOpsしたChatをおぼえているのか? ruboty-statsをつくりました

rubotyが反応したアクションを覚えていてくれる。 blockgiven/ruboty-stats 反応したチャットの文言、発言主などを表示できる。 まとめ Module#prependだいすき

「ちょっとマイクラ鯖の様子みてくる」ruboty-minecraft_statusつくりました

blockgiven/ruboty-minecraft_status 機能的にはblockgiven/minecraft_logged_in_notifierとほぼいっしょ。 > @ruboty minecraft status minecraft.example.com A Minecraft Server (0/20): > @ruboty minecraft status minecraft.example.com A Minecraft S…

暇なとき、チャットでよおよお! ruboty-yo!!

blockgiven/ruboty-yo つかいかた よ usaboty/yo usabotyとかくとYoが飛ぶよ。 恋の病の人向けの使い方 君のこと好きだよ usabotyでもYoが飛ぶよ。Yoしか伝わらないから安心だよ。 テスト yo.featureを書いた。 vcrはじめて使ったけどそれなりにべんりだった…

なんでも肯定してくれるruboty-yesを公開した

blockgiven/ruboty-yes ハマった RSpecのTurnipを使うRakeタスクの定義 Rubotyのreply時のto/fromの扱い Rubotyのテストをどうかくとうまくいくのか考える時間 Turnipのシナリオ 最初シナリオで使う人物名を実在の人物名にしてしまった。 架空の名前を考えて…

ゆるい〆切り管理、ruboty-deadlineを公開しました #ruboty

rubotyにゆるく〆切りを覚えてもらおう。 blockgiven/ruboty-deadline 相対的な時刻表示 今回は日付だけでよかったので1.dayで割ってto_iすることにした。 相対的な時刻表時、JSだとふつうはMoment.js使うけどRubyだと何がいいんだろう。 検索するとtime-lor…

一人でも雑談できるruboty-zatsudanつくった #ruboty

ほくほく。 blockgiven/ruboty-zatsudan くふう ドコモの雑談API使って特に苦労することなく雑談できるようになった... 会話の文脈を引き継げるみたい。賢い。 ほしいgemができた faradayでAPI叩いたけどクライアントのgemあるとはかどりそう。 このgemとは…

商用利用可能なフリー画像を探すruboty-free_imageをつくった #ruboty

今のところflickrにしか対応していない。 Flickrのapiキーが必要。 余力あればwikimedia commonsにも対応したかったけど時間切れ。 blockgiven/ruboty-free_image アイデア借りました BOTに商用フリーの画像を持ってこさせる hubot free image <keyword> というコマン</keyword>…

>ruboty-nullpo< >ガッ<

ぬるぽするとガッ blockgiven/ruboty-nullpo まとめ 死語

飯テロがはかどるruboty-mstrをつくった

@ruboty 飯テロすると飯テロできる。 飯テロ画像 飯テロ.in - 飯テロ画像共有サービスから勝手に拝借しております まとめ 体重インクリメンツ

Rubotyがにゃんにゃんしゃべるruboty-nyan_nyanを公開したにゃん =^・ω・^= #ruboty

@ruboty にゃんにゃんすると猫語をしゃべるようになる。もっかい@ruboty nyan nyanすると元通り。 blockgiven/ruboty-nyan_nyan こだわり urlはニャンニャンしない まとめ はにゃきん!

Ruboty製造はRubotyにまかせよ。ruboty-replicaをリリースしました #ruboty

人間がボタンを押さなくてもRubotyに頼めばRubotyをわけてくれる。 モチベーション ボタンをおしてもロボットが起動しない RubotyにRubotyを頼むとRubotyをわけてもらえるのおもしろい 画面じゃなくてチャットでロボットふやしたい あぶない Rubotyにアプリ…

Ueno park <3 ruboty-ueno_park_eventをリリースしました

上野公園のイベントがわかる blockgiven/ruboty-ueno_park_event つらみ 上野恩賜公園‐イベント案内‐ xpathやcssではなく人間的、あるいはホームページビルダー的にパースできるHTMLライブラリがまたれる。 いいところ 行こう!美術館・博物館《上野公園探検…

Rubotyプラグインを公開していこうかい? ruboty-dajareリリースしました。

ダジャレプラグインつくった。生活に笑いを。 blockgiven/ruboty-dajare よさそうなサイト オープンデータのサイトにはいろいろ変なデータがあるので、さくっと何か作るのに向いていそう。 ダジャレ集|オープンデータ共有&ダウンロード|LinkData まとめ r…

チャットで勤怠管理するruboty-kintaiをリリースしました

@ruboty 出勤/@ruboty 出勤@8:28, @ruboty 退勤/@ruboty 退勤@16:30で記録、@ruboty 先週から今日までcsvでのようなかんじで勤怠管理する。 blockgiven/ruboty-kintai きっかけ 前々からつくりたかったのだけどきっかけがなかった。増井さんがなんかつくって…

Slidegateから今日のスライドを表示するruboty-slide_meつくった

Slidegateから今日のスライドをとってきて表示する。 blockgiven/ruboty-slide_me つくるとき不満だったところ テーブルタグを雑にjsonに変換してくれるgemがほしくなった。 勝手APIをつくるために人間がnokogiriを書くのはやめたい。 まとめ cronでしかけれ…

突然の〜に反応してあのAAするrubotyプラグインつくった

blockgiven/ruboty-sudden_death まとめ テキストをデコる系のプラグインいい

Rubotyが静かになるruboty-silentを公開した

たまには静かにしててもらいたいときもある。 でも仕事はしてほしい。 blockgiven/ruboty-silent くふう 今までRuboty::Robotに手を加えることはなかった。 これからはRuboty自身のクラスにカジュアルに手を加えていきたい。 こうすればよかった extendじゃ…

Rubotyに切腹を命ずるruboty-seppukuつくった

@ruboty seppukuで死ぬ blockgiven/ruboty-seppuku くふうしたところ Herokuでも死ぬ HEROKU_APP_NAMEとHEROKU_API_KEYをheroku config:setなどで設定しておくとbotプロセスのDynoの数を0にする。 ハマったところ Dynoの中から自信のアプリ名をとる方法がわ…

Rubotyが代わりに「ちょっとHerokuの様子みてくる」ruboty-heroku_statusを公開した

Rubotyが代わりにちょっとHerokuの様子みてきてくれる。 blockgiven/ruboty-heroku_status くふうしたところ 気持ちのぶん人間らしい受け答えをさせるようにした。 さくっと作れて実用度が高くなるようにした。 Heroku Statusは簡単なjsonのapiなのでRuby標…

ruboty-twadaを公開した

blockgiven/ruboty-twada ハマったところ ノーテストでリリースして「テスト書いてない」って書いたら動かなくてbotが落ちた。

rubotyにウェブサイトのスクショを撮らせるプラグインruboty-ssを公開した。

デフォルトだと画像はGyazoに保存される。Dropboxに保存することも出来る。 blockgiven/ruboty-ss 試したもの json-collectionとjsonism GistのAPIを叩くために使った。 画像の添付などmultipartでpostしようとして少し時間がかかった。 ほんとはもっと楽な…

rubotyが電話をかけて返事を聞いてくれるruboty-callを公開した。

Twilioを使ってrubotyが電話をかけてくれるプラグインを公開した。 blockgiven/ruboty-call 使い方 くふうしたところ rubotyがやってくれるとうれしいことを考える 私は電話がにがてなのでrubotyに代わりにしゃべってもらうことにした。 rubotyに何かたのん…

Rubotyのハンドラーのgemをつくるためのruboty-genを公開した。

以前、Hubotスクリプトのhubot-sushiyukiをruboty-yasyとして移植した記事のまとめで「rubotyプラグインの作成の障壁を下げたい」と書いた。 $ ruboty-gen gem yo するとrubotyのプラグインを作るテンプレみたいなものが出来る。 blockgiven/ruboty-gen ∩ ∩ …

RubotyでHubotスクリプトが使えるruboty-hubotを公開した

TL; DR; ruboty-hubotを使うとscriptsディレクトリ以下に置いた単純なHubotスクリプトをRubotyで実行出来る。 blockgiven/ruboty-hubot 経緯 以前、Hubotスクリプトのhubot-sushiyukiをruboty-yasyとして移植した記事のまとめで、HubotスクリプトをRubotyで…

西暦を和暦の元号に変換してくれるruboty-gengoを公開した

1日1Hubotスクリプトのネタをパクることにした。 blockgiven/ruboty-gengo Usage @ruboty gengo <year> くふうしたところ 自分で何も書かずgemに頼った。 tomiacannondale/era_ja まとめ 毎日実用的なものやAPIを叩くなど重そうなものを書くのはちからがいる。 重</year>…

Rubotyすしゆきプラグインruboty-yasyを公開した

すしゆきを表示してくれる。 naoyaさんのhubot-sushiyukiをRubotyに移植した。 blockgiven/ruboty-yasy TL; DR Rubotyプラグインをつくるのを楽にして、みんなに面白いスクリプトいっぱい公開してほしい。 ハマったところ gemの名前被り ruboty-sushiyukiが…

ruboty-opening_sentenceを公開した

rubotyのプラグインを毎日作ろう3日目、ruboty-opening_sentenceを公開した。 @rubotyすると青空文庫の小説の中から適当に選んだ小説の書き出しをチャットに書き出してくれる。 blockgiven/ruboty-opening_sentence 書き出しは青空APIサーバーから取ってきて…

青空文庫APIサーバーをつくった

いわゆる勝手APIである。 エンドポイントは2つしかない。 GET http://aozora-api.herokuapp.com/books/random.json 作品情報をJSONで返す title: 作品のタイトル url: URL opening_sentence: 書き出し GET http://aozora-api.herokuapp.com/books/random/sen…

ruboty-slotを公開した

スロットが出来るようになった。得点の計算や、所持金の計算はやっていない。 blockgiven/ruboty-slot くふうしたところ リールはパチスロ業界初まとめ ~パチスロはじめて物語を参考にした。 はまったところ bundle gem スロットだとRubyの定数の名前として…

Usabotyを飼いはじめた

ウサギを飼いたかったのでrubotyで書いた。 blockgiven/usaboty くふうしたところ はじめてDeploy to Herokuボタンをつくった。 ポチるだけでHerokuにデプロイできて便利。 デプロイしたあとwebじゃなくbotのdynoを増やす必要がある。 app.jsonは思ったより…

ruboty-hiを公開した

@ruboty hi するとお返事hiしてくれる。 botが二人いたら無限にhiしてそう。 ruboty-hi | RubyGems.org | your community gem host blockgiven/ruboty-hi モチベーション @bouzuyaさんの1日1Hubotスクリプトが楽しそうなので真似をしたくてはじめた。今日が1…

サブアカウントはトップエンジニアの夢を見るか?

TL; DR 仕事用のマシンを職場に放置し、家では家庭用コンピュータとサブアカウントを使い、仕事と趣味レイヤーを分離する試みをはじめた。 問題 家にコンピュータを持ち帰ると、眠れないときについやり残した仕事をしたり、テストの結果をみたり、他の人のプ…

dotfiles

最低限の設定をしてプロンプトをカスタマイズした。 プロンプトに常にうささんがいる。とてもなごむ。 失敗すると目が赤くなる。 ブランチは土と草、ペケの色はニンジンをイメージしている。 blockgiven/dotfiles 工夫したところ アイコンをリポジトリに含め…

where.notについて

ActiveRecordでは次のように、引数無しでwhereを呼び出したあと、すぐさまwhereに渡すのと同じような条件をnotに渡すと、その条件に当てはまらないレコードを選択することが出来ます。 Post.where.not(author: author) # SELECT `posts`.* FROM `posts` WHER…