Ruby

Ruby から Slack の WebHooks URI を叩いてメッセージをポストする

Ruby スクリプトで Slack の WebHooks URI を叩いてスクリプトの実行結果などをポストさせたかった時に調べました。 Ruby Gems には WebHooks を叩くための gems がいくつかあります。例えば slcak-notifier などなど。 今回は本当にスクリプトから Slack に…

既に誰かがやってそうな誰もお前を愛さない sl コマンドを作った

ls コマンドのタイプミスとして sl とタイプしてしまった時に機関車の AA が流れるのは有名なジョークコマンドだと思います。 Twitter でよく流れる 誰もお前を愛さない を表示するものを作ってみました。 sudo でやってるのを見て書いたコマンドですが、き…

mikutter を起動した瞬間にろき氏をブロックするプラグインを書きました

一部で被ブロック芸人として知られ、[被ブロック数n件達成イベント]などが開催されているろき氏、そんな彼をブロックするためのプラグインが mikutterにあるのかと作者の人に尋ねてみましたが、どうやら無いようだったので作ってみました。 @toshi_a mikutte…

Ruby で SQLite のデータベースを作成してジオメトリを突っ込む

Ruby で SpatiaLite を作成します。 gem で sqlite3 を入れるのと、システムに SpatiaLite のパッケージを入れるのを忘れずに。 #!/usr/bin/env ruby require 'sqlite3' sqlitefile = "test.sqlite" db = SQLite3::Database.new(sqlitefile) db.enable_load_…

ふぁぼとリツイートを受けると感謝のリプライを送る bot

Ruby で Twitter bot を作ろうかなとしているところで、とりあえずふぁぼとリツイートに反応して、ふぁぼやリツイートした人に「ありがとう」を返す機能だけを作りました。 作ったのは次のような環境です。 debian 8.2 Ruby 2.2.2p95 Ruby Gems Twitter Ruby…

OpenStreetMap 埼玉リージョンの切り抜き実験

GEOFABRIK の日本リージョンから japan-latest.osm.pbf をダウンロードして 埼玉県の部分だけを切り抜くスクリプトを作成し、毎朝実行しています。 GEOFABRIK で日本リージョンが地域ごとにダウンロードできるようになったので関東リージョンから kanto-late…

OpenStreetMap の編集数をツイートするスクリプトを書いてみた

24時間でどれくらい編集したかをツイートします。 ツイートされるのは変更セットの数、ノードの数、ウェイの数の3つです。 最初はディベロッパー用 API の URL に自分の UID だの チェンジセットだの取りに行っていたので何も返ってこなかったというアホなこ…

GeoJSON のポリゴン面積を求める Ruby スクリプトを書いてみた

QGIS で操作すればできますが、JSON の扱いに慣れてみるのも一興と思って書いてみました。 ちなみに、世界測地2000の平面直角座標以外は計算できないので弾いています。 任意座標でも計算できますが、それそもそも GeoJSON としてどうよって感じなので扱わな…

川の水位変化をグラフにする

現在住んでいる場所は大きめの川が近くにあるところで、シミュレーションによっては洪水で5m近くの浸水になる可能性が示唆されているところです。 幸い引っ越してきてからはそういった水害はありませんが、一応河川の水量がどんな風に変化しているのか見てみ…

csv2geojson.js でエラーとして出力された JSON を GeoJSON に変換する

node.js のパッケージとして csv2geojson が公開されています。 コマンドイッパツで CSV や TSV を GeoJSON にしてくれる優れものです。 $ npm install -g csv2geojson $ csv2geojson geodata.csv > geodata.geojson 非常に便利なのですが、変換できる位置情…

Ruby で SIMA ファイルを GeoJSON に変換する

測量データ共通フォーマット SIMA ファイル(CSV 版)を PC-MAPPING に読み込んでシェープファイルに吐き出して QGIS で表示するのが面倒過ぎたので GeoJSON に変換する Ruby スクリプトを書き始めました。 コマンドから変換してやれば PC-MAPPING での GUI 操…

ConoHa VPS +Docker で Twitter bot 的なものを作成する

某毒舌な bot を作成してみようと思い、 ConoHa VPS で作業をしました。 Docker のコンテナに Ruby で書いたスクリプトから PostgreSQL に入れた文章をツイートさせます。 使ったのは gem くらいでフレームワーク的なものは使ってないです。 ツイートさせた…

debianでWebカメラを使って撮影をした

前回失敗したOpenCVとruby-opencvのインストールが無事にできました。おとなしく最新版をビルドしています。 ビルドは簡単で、Linux で OpenCV バージョン 2.4.9 のダウンロードとビルドとインストールとテスト実行にあるシェルスクリプトを実行するだけでイ…

大きくなったDropboxのCamera Uploadsを移動する

iPhone5で写真を撮った後にDropboxアプリを動かすと撮影した写真をCamera Uploadsフォルダにアップロードしてくれます。 ロックしたまま写真を撮影できるのでパシパシ撮ってたのですが、無課金Dropboxの容量を圧迫するようになってきたのでデータをファイル…

portversionでエラー

会社のFreeBSD 8.0-RELEASE-p2で動いているファイルサーバでportversion -vを実行したところでエラーが出た。 /usr/local/lib/ruby/site_ruby/1.8/portsdb.rb:119:in `fill': MOVED file format error (PortsDB::MOVEDError) from /usr/local/lib/ruby/site_…

世界測地系平面直角座標と緯度経度を相互変換

前回のエントリで書いたものですが、誤差が発生する原因がやっとわかりました。 例えば p 1 / 3 の結果が0になってしまいます。 「/」メソッドに1と3が代入される際、整数クラスとして扱われるために答えも0.3333…から整数部分の「0」だけが表示されてしまう…

Windows上でRubyを使ってMySQLにアクセスしてみよう

現在Windows Server上でIIS+.Net(VisualBasic)で作ったWebサイト上での住所検索機能をFreeBSD(またはLinux)+Apache+MySQL+Rubyで実現するためのテスト。なぜならVisualBasicはともかくWindows Server 2003 R2 Standardは開発ライセンスのものなので実運用に…

はてなダイアリーバックアップスクリプトで古いファイルを削除する

前回書いたスクリプトを使って毎日(更新しないのに毎日取ってる)取得しているのでそれなりに早いペースで保存データが増えていきます。 とりあえず1週間分を保存しておけばいいだろうということで、1週間前を基準日としてそれ以前のファイルを削除するように…

はてなダイアリーバックアップスクリプトをFreeBSDで動かしてる

前に方書いたスクリプトは無事に動作しているようです。 毎朝4:00にデータを取得して保存中。 あんまり古い状態を残しておいても仕方ないので、古いログは勝手に削除してくれるように書き換えた方がいいですね。

はてなダイアリーバックアップスクリプトをFreeBSDで動かす

サーバで定期的にスクリプトを動かしてやろうとMediaTombが動いてるFreeBSDでRubyの設定をしてみました。 # pkg_info | grep ruby でRubyがインストールされているのを確認。ただしruby-gemsとruby-iconvが入ってなかったのでその辺をインストールしました。…

gemと格闘してた

はてなダイアリーの出たバックアップを取ろうとして、Rubyスクリプトを書いていたところmechanizeが必要となりgemと格闘することになりました。gemでmechanizeをインストールするとエラーが出てちゃんとインストールできません。 どうもgemのバージョンが悪…

世界測地系平面直角座標と緯度経度を相互変換

平面直角座標で書かれた図面を緯度経度で表現する図面の上に配置するために平面直角座標と緯度経度を相互変換するためのRubyでスクリプトを書いてみました。Rubyは数行のスクリプトは書いたことがありましたが、この長さのものを書いたのは初めてです。 いく…