[ruby] ローカルにあるgemファイルをインストールする - プログラム番長のヲボエガキ
ここを参考にして出来た!
gemの-lオプションを使う。
$ gem install -l foo.gem
$ gem instlal -hして確認。
-l, --local Restrict operations to the LOCAL domain
[ruby] ローカルにあるgemファイルをインストールする - プログラム番長のヲボエガキ
ここを参考にして出来た!
gemの-lオプションを使う。
$ gem install -l foo.gem
$ gem instlal -hして確認。
-l, --local Restrict operations to the LOCAL domain
ホモスレのURLをツイートするホモスレbotを書きました。
最近はホモスレ多いですよね。1日に何本も立ってる気がします。
欲しかったので作る、いつもの流れですね。
何度か使ってなれているので、Twitterのgemを使っています。
Twitterの「ホモスレ」の検索結果からURLを抽出し、DBにデータを蓄積しツイートするようになってます。
既にツイートしたことのあるURLはツイートしないようになってます。
一旦Mechanizeで実際にアクセスすることで、リダイレクト後のURLを取得するようになっています。(なっているはずです、多分)
実際にアクセスする前のURLと、実際にアクセスしたURLが違う場合(リダイレクトなど)データベースで、リダイレクト後のページとひもづけてます。
前から欲しいなーと思ってたので作りました。快適な生活に一歩近づきましたね。
もっと需要の高そうな別のワードに対するbotを作成するときに役立つかもしれません。
ホモスレbot作った話をブログに公開することで更にアレなものを作っても公開出来る謎の自信がつきました。
Sinatraを使ってWebアプリケーションを作る際、Sinatraを手動で何度も再起動するのは面倒くさくないですか?
そんなときはGuardとPowを使えばSinatraのファイルを書き換え保存するだけで自動的に再起動させることが可能です。
これでテンポよく快適に開発出来ます。
~/.pow/以下にRackアプリのディレクトリへのシンボリックリンクをはるだけで、http://ほにゃらら.dev/でそのアプリにアクセス出来るようになります。
Homebrewを使っている場合は
% brew install pow
で導入出来ます。(多分)
僕はbrewを使わずに入れました。Powにはnode.jsが必要です。
僕はnvmを使ってnode.jsインストールしてPowのサイトに書かれたコマンドを実行してインストールしました。お好きな方で。
参考:Node.js 入門
参考:Pow: Zero-configuration Rack server for Mac OS X
Powを更に便利に使うためにPowderをインストールします。
% gem install powder
で入ります。
参考:Pow使うならPowder入れておくだァーッ! - Meltdown Countdown
Guardを使えばファイルが変更されたら自動で何かすることが出来ます。
自動で何をするのかをGuardfileに書きます。
bundlerやcucumberなど様々なツールに対応しています。(参考:List of available Guards ? guard/guard Wiki ? GitHub
guard-powを使えばSinatraのファイルをいじったら再起動、といったことが簡単に出来ます。
% gem install guard-pow
参考:Guard::PowでPowを更に快適に使う | ひげろぐ
Nil% mkdir hello
Nil% cd hello
Nil% cat > web.rb
require 'sinatra'
get '/' do
'Hello world!'
end
Nil% cat > config.ru
require "./web.rb"
run Sinatra::Application
Nil% cat > Guardfile
guard 'pow' do
watch('web.rb')
end
Nil% cat > .rvmrc
use 1.9.2
Nil% powder link
Your application is now available at http://hello.dev/
Nil% guard
Guard is now watching at '/Users/sei/hello'
この状態でweb.rbを書き換えると
Pow restarted.
と表示され、無事再起動していることが確認できます。
# -*- coding: utf-8 -*-
この記事はざっくりすぎるので参考リンクを読んだ方が詳しく書いてます。
ざっくりまとめると
以上です。
僕のはてなブックマークの、1月頃から10月の末あたりまでの、タグ付けの様子を可視化してみました。
タグごとに円で表示されています。
いっぱいブックマークされたタグは大きめに表示されます。
時間がたつにつれて円がだんだん小さくなります。
シンプルなTwitterクライアント書きました。
名前はTwitter×Ruby、ついるび、つるび、つるべ、ということでtsurube。
コマンドラインで動作するTwitterクライアントを30分くらいで作れるPythonはかっこいい - YAMAGUCHI::weblog
こちらの記事をを見てRubyでやってみたくなった。
「30分? よゆー」と思ってたけどずるずる時間かかって実装力の足りなさを痛感しました。
今のところ
あたりのコマンドは実装した。基本的なツイートする、TL見る、メンション見る、終了する。が実装出来たし満足。
config.ymlに認証情報を登録したらすぐ使えます。
カーソルキーの上押すと前のコマンドが見れたり、Emacsバインドで編集出来れば最高なんですが、そういう事が出来るgemを僕は知らない。
探そうと思ったけどHighLineで対処。
今度良さそうなgemをいくつか試しておこうと思う。
日本語で発言するときにここのコードで「warning: regexp match /.../n against to UTF-8 string」が出た。
faraday/lib/faraday/utils.rb at master ? technoweenie/faraday ? GitHub
UTF-8の文字列に対してRegExpのオプションでnを渡して漢字コード無視ってるのが問題なよう。
エラーメッセージでググると同じ問題がいくつか出てきた。
FaradayのUtilsのescapeメソッドの中身をEscapeUtilsのescape_url使うようにして対処。
元ネタのライセンスが面白かったので同じものを採用。
ログインが必要な処理をブロックで渡して、ログインしてなかったらログインを促すメッセージをだしブロックを実行しない、ログインしていたらブロックを実行する。
という風に書いてみた。ブロック可愛いよブロック。
AndroidアプリからMacを操作するPaddapというアプリを作りました。
一言で説明すると、AndroidをMacのトラックパッド代わり等に使うアプリです。MacRuby使ってます。
週末ものづくり講座の成果物です。
勉強会はブログ書くまでが勉強会!
Okinawa.rbの勉強会に参加してきました。
具体的には、iPhone勉強会のやり方に倣って、Ruby/Rails初心者な方達には過去の勉強会資料などを使ってチュートリアルを行い、そうでない方々にはモクモクとハッカソンをしてもらう、という形です。
僕はモクモクとハッカソンしました。
ハッカソンの様子。真ん中で寝てるのが僕。
「はてなブックマークのタグ付けのデータを元に自分(や他人)が今興味をもっていることを視覚化したい。」
そう思ってしこしこ授業中に作ったのがこちら。
Processingを直接使うより手慣れた言語でやった方が早く出来るだろう。
データの取得も表示も同じ言語でやった方がやりやすそうだ。
ということでプロトタイプをRubyで書きました。
という流れ。これを皆が見れるようにウェブブラウザで動くように書き直そう!というのが僕の今日のハッカソンの目標。
とりあえずブラウザでProcessing.js使って加工済みのデータを表示するところまで出来ました。
といった感じでした。
書き直す前の元データと書き直した奴まとめて成果物として置いておきます。
こういうもくもくもいいですね。楽しかったー。自分も(完全ではないにしろ)ブラウザで動くようになったし。
同級生がRubyハマってくれたようだし、初めてRubyやる人多かったけど皆楽しいって言ってましたね。(英語がつらいとも…)
Okinawa.rbの人に長田のうどん屋、栄町のサワディ・おでんの東大など美味しそうな店紹介してもらった。行かねば。(特にうどん)
今月は26・27日にもハッカソンがあるのでたのしみです。2日も実装に使えるのでいいネタ考えねば! (2つ作るのもありなのかな)
忘れ物しないようにチェックを入れる事が出来るウェブアプリ
Node.jsいじってたらしい。自分もいじりたい。
第3回 Okinawa.rb 勉強会 - ハッカソン/チュートリアル - Togetter
クラスさえもClassクラスのインスタンス。全てがオブジェクト。
そしてModule.classはClassで、Module.class.superclassはModuleで…と頭がこんがらがりそう。
mixinの仕組みは便利ですね。Enumerableはいろんな演算を抽象化していて面白い。
試してみようはTree.rbがあんまりすっきり書けてない感じ。
本文に「このレベルの抽象化でも少しは優れたプログラミング言語になるが、Rubyの真の秘術が登場するのはまだまだこれからだ。」と書いているので次の章が楽しみです。
p24のtree.rbの例に書いてあったもの。
Erlang VM(BEAM)上で動くRuby-likeな言語らしい。
でももう開発止まっててこれ以上何かを追加する計画はないので興味があるならElixirをチェックしろと書いてますね。
面白そう。Erlangの章読んだらまたチェックしたい。
tree.rb
to_file.rb
Okinawa.rbも立ち上がったみたいだし
こんなすごく便利なサイトもあるし、Rubyもっと覚えたい。
残念ながら今のお仕事で使えるかは微妙。
とりあえずの目標として
シルバーをを受けてみたい。
いつでも試験を受ける環境はある、実行に移せるかは自分次第、なので頑張るのです。
RubyはOOPL、ダックタイプ、強い型付け、動的型付け。全てがオブジェクト!(数でさえも)
プログラマの生産性を高めてくれる機能がたくさん。
「人間様が気分よくプログラミングするための言語」Rubyは何を目指すのか - GIGAZINE
を読んだ。楽しそう。続けて2日目読みます。楽しい時間はあっというまだなー。
7つの言語7つの世界を買ったので読みます。Scheme修行と平行して読む。楽しみ楽しみ。7週間で読めるかは微妙なところだけどw
読んだら友達に貸す。貸したら自分で買いそうだけど。早く貸すためにちゃんとサボらず読む。
「はじめに」の中で書いてあったことを意識しながら読みます。
本書を単に読むだけでは、シンタックスの雰囲気はつかめるだろうが、それ以上は無理だ。
実は演習問題をやらずに1回読みました。それ以上を掴むためにもう一度読みます。
演習問題を自分でコーディングしてみる前にネット上で答えを探すようでは、失敗だ。まず自分で解いてみて、いくつかの問題が解けないことを自分自身で認識するようにしてほしい。
まず、自分で1回解くように頑張ります。僕は怠け癖が強いのでついつい調べてばかりで手動かせない。
でもRubyの1日目を解いてからググったら奇麗な解答を見つけることが出来たので終わったらググるの解禁、むしろ積極的にググって他人のコード見ます。
あと序文はかなり共感出来る。人の真似して書いてるだけでちょっとずつ出来ることが増えてくのだとか、実際に書いてコンパイルとおるように直しているうちに気づくこととか。
ちゃんと読むためにエントリかきました。
早速手を動かして、本読みます。
The Pragmatic Bookshelf | Seven Languages in Seven Weeksから本書のコードをダウンロード出来る。
正誤表もあるので不具合あったらチェックします。