0

ACM Portalの論文をDLした

こういう論文pdfがいっぱいあるページを見つけて http://dl.acm.org/citation.cfm?id=2141512&preflayout=flat

extract_linksする

extract_links "http://dl.acm.org/citation.cfm?id=2141512&preflayout=flat" | grep "dl.acm.org/ft_gateway" | xargs -n1 wget -U gesai

後ろにパラメータが付いた変なファイル名になっているので削除する
ls | ruby -lane 'res=$_.split("?")[0]; File.rename($_, res)'


別のサーバーでやったら、wgetがリダイレクト後のURLをファイル名にしてくれなかったので
hugeurlで展開してからwgetに渡した。
gem install hugeurl
extract_links "http://dl.acm.org/citation.cfm?id=2141512&preflayout=flat" | grep "dl.acm.org/ft_gateway" | hugeurl | xargs -n1 wget -U gesai


さっき3つ同時に並列DLし続けていたらアク禁喰らってトップページ以外何も見えなくなったので、気をつけてください。

0

壁紙を7000枚集めてGyaTVに登録した

GyaTV: 壁紙まとめのまとめに登録しておいた。


壁紙まとめスレのまとめに大量の壁紙が掲載されているwebページがまとめられてたので収集した。

まずURLを渡したらaタグを抜き出すスクリプト (extract_links)を用意して


2段階pipeして画像を抜き出す

extract_links "http://queltide.com/matome/index.php?%E5%A3%81%E7%B4%99" | grep "queltide.com" -v | xargs -n1 -P10 extract_links | grep ".\(jpe\?g\|gif\|png\|bmp\)$" > wallpaper.txt

0

Twのレシピ

tw (http://shokai.github.com/tw)の活用方法を紹介します。
うまく使うとプログラムを書かなくてもtwitter botを作ったりできる。

前:ターミナルで使うtwitterクライアント作った


基本的なレシピから順に解説していきます。

最新版にアップデート

ここに書いてあるレシピは、今日リリースした最新版(v0.3.1)でしか動かない物が含まれるので
最新版をインストールしなおしておいてください。
gem install tw
リクエストを並列化して速くなったりもしたし。


zshのコマンド補完を使う

@glidenoteさんがすごい勢いで作ってくれました。
ターミナルで使うtwitterクライアントtwが便利なのでzsh補完関数を作った – Glide Note – グライドノート


UNIX pipeをつかう

コマンドを実行して、アカウントを@shokai_logに切り替えつつ結果をtweetする
% echo "現在の時刻 `date`" | tw --pipe --user=shokai_log


出力フォーマットをカスタマイズ

% tw --format=json
JSON出力される。他のプログラムに渡す時に使える。


自分でフォーマットを決められる
% tw --format="@#{user} #{text}"
user, text, time, id, urlの5つが使える。


Twだけでtwitter botを作る

プログラムを書かずに簡単なbotを起動可能。
–stream, –silent, –format, –pipeを組み合わせる


crontabでbot

0 15 * * * echo "3時です。おやつです。" | tw --pipe --user=shokai_log
3時のおやつを教えてくれる。


shokaiで検索して、即「はい」とリプライするbot

% tw --silent --stream:filter=shokai --format="@#{user} はい" | tw --pipe
grepや–format=json、ワンライナーも活用しよう。


重い処理が終わったら、自分にDMを送る

% make build && echo "buildできたぞー" | tw --pipe --dm:to=shokai --user=shokai_log


ハッシュタグを読み上げる

% tw --silent --stream:filter=tag1,tag2,tag3 --format="#{text}" | xargs -n1 say
動画は3つ同時に見れないけど、読み上げなら3つぐらい同時に実況を把握できて便利
Macのsayコマンドに日本語を喋らせる方法はMac/Linuxに喋らせるに書いた。


現在位置をtweetする

% echo "イマココ `whereami -map`" | tw --pipe
gem wifi_locationでインストールできるwhereamiコマンドを使った。


iTermを使う

command+クリックでURLをブラウザで開けるのが便利



もっと色々やりたい人へ

Twを部品として使うと良いです。
twitter botのプログラム書いてみると、大部分が認証だったり、oauth tokenをgitにcommitしてしまったりして大変あほくさい。
そういう面倒な部分をTwにまかせてしまえば捗ります。


アカウント設定ファイルを直接使う

$HOME/.tw.yml に保存されている
これを直接読んで、別のtwitterアプリで使っても良い。
削除してもtwコマンド毎に自動再生成される安心設計


Twitter gemの認証管理フロントエンドとして使う

twはtwitter gemのラッパーで、アカウント管理機能もあるので、twで認証してからTwitter gemを使えば楽になる
例: アイコンアップロード
認証だけTwを使っている。


Tw::ClientのAPIを使う

Twコマンドが使っている内部API(Tw::Client)が使える。
例1: mentionを読んだりtweetしたりする例

例2: dfをツイートする

0

画像をまとめて小さくする

*.JPGをまとめて小さくする

mkdir resized
find *.JPG | ruby -lane 'system "convert -resize 20% -quality 100 #{$_} resized/#{$_}"'
ImageMagickを使った。

xargs -n1で末尾以外に引数入れる方法がわからなかったのでruby使った

0

wifiで位置情報を取得するrubygem

なんとなくgithub page作った
Wifi location – Get your location with WiFi Mac Address and GoogleMap.

github page楽すぎる


前記事:Mac/LinuxのWiFiで位置情報を取得