2014-01-01から1年間の記事一覧

WatirでPhantomJSを使うときに出るエラー

PhantomJSでWatir(正確にはWatir WebDriver*1およびその中で働いているSelenium WebDriver)を使ってWebアクセスするとき、1回だけならばエラーが出ないのだけど、ループ処理など繰り返しPhantomJSとWatirを使うと時々PhantomJSが動かなくなるときがある。…

誤記の指摘はコメント欄じゃなく「編集リクエスト」を使いましょう

誤記の指摘はコメント欄じゃなく「編集リクエスト」を使いましょう - Qiita

文字列"12時34分"を"12:34"へ一行で変換

文字列"12時34分"を"12:34"へ一行で変換 - Qiita

Swift予約語リスト

Swift予約語リスト - Qiita

Booleanは`true`と`false`のみ

Booleanは`true`と`false`のみ - Qiita

複数枚写真が添付されたツイートの写真URL等を取得するTwitter gemモンキーパッチ

複数枚写真が添付されたツイートの写真URL等を取得するTwitter gemモンキーパッチ - Qiita なお twitter gem の v5.10.0 で Twitter::Entities#media メソッドで複数の Twitter::Media::Photo オブジェクトが返るように更新されました。 Add support for ext…

スレッドをまたいだ大域脱出はエラーになるのでスレッドのブロックぎりぎりに大域脱出しよう

当たり前と言えば当たり前なんですけど。 スレッドをまたぐ大域脱出 Threadブロックよりも外にあるcatch(:out_of_thread)へ脱出しようとするとArgumentErrorエラーになります。 pry(main)> catch(:out_of_thread) do pry(main)* Thread.start do pry(main)* …

OAuth gemだけでTwitter APIを使ってみる

Twitter gemは非常に優秀ですので、低レイヤーなOAuth gemを使ってTwitter APIにアクセスする必要はまずありません。 ただし、「Twitterからの応答をちゃんと返してくれているのだろうか?」と疑問があったときに、gemを介さずに直接アクセスする手段を知っ…

自分のツイートへのリプライを正しく確認できるのは公式のみorz

ツイッター新機能がAPIに反映されてるか:写真へのタグ付けと写真4枚添付可能 - 別館 子子子子子子(ねこのここねこ) に引き続き、Twitter APIだと取得できない情報シリーズです*1。 結論を書くと、ツイートした文そのままなのですが 自分へリプライしたと…

アスタリスクとto_a

さっき見たスクリプトに衝撃を受けた。 class Hash def safe_invert invert.inject( Hash.new{ |h,k| h[k] = [] } ) do |hash, (keys, val)| [*keys].each{ |key| hash[key] << val } hash end end end 1つのキーに複数の値が対応して且つそれぞれの値が重複…

正規表現でユニコードの漢字・ひらがな・カタカナをマッチするには

個人的なメモ。大半は引用です。 参考文献 [連載:正規表現] Unicode文字プロパティについて(1) [連載:正規表現] Unicode文字プロパティについて(2) — Pの一族 [連載:正規表現] Unicode文字プロパティについて (3) 文字プロパティとは そしてまとめスライド […

(homebrewで)readlineを6.3.3にするとreadlineを使ったRuby 2.x.xのインストールで失敗する('14/4/14〜5/10)

更新:readline 6.3.5以上でpatchなしインストールが可能になったようです Homebrewの場合は5/10に6.3.5になりました。 readline 6.3.5 · d62a6cf · Homebrew/homebrew Ruby 2.1.1 を rbenv で入れようとするとビルドがコケる。 brew な readline が 6.3.3 …

Mavericksにqtbindingsをインストールする

資料 GitHub - ryanmelt/qtbindings: An easy to install gem version of the Ruby bindings to Qt MacにqtbindingとRuguiをインストールする - Qiita Ruby再コンパイル(CONFIGURE_OPTS="--enable-shared" 追加)が必要な理由、の資料 Mac osx (Lion)にrben…

lambda/Procと変数の関係(クロージャ)

クロージャ クロージャはブロックの内部に変数を保持できる、ということはいろんなところで書いてあります。 Rubyのブロックはそれ自身をオブジェクト化することができ、そうすることによってメモリ上に独立して存在できるようになる。 lambda { n += 1 } # …

PhantomJSを使ったWatirでUser-Agentを変更する

残念ながら引用だけなんですけどね。 オリジナル require 'watir-webdriver' capabilities = Selenium::WebDriver::Remote::Capabilities.phantomjs("phantomjs.page.settings.userAgent" => "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like…

ツイート規制値は300ツイート/3時間(ソチ五輪以降

'14/5/18追記 昨夜は300ツイートを1時間半弱で記録したw riocampos(りおかんぽす)(@riocampos)/2014年05月17日 - Twilog riocampos(りおかんぽす)(@riocampos)/2014年05月18日 - Twilog のですが、規制されませんでした。もうしばらく調査してみます。 …

Thread.joinのイディオム

いままでよく使ってたイディオム Threadを集めるArrayを用意する。 th = [] n.times do |i| th[i] = Thread.start{ do_something } end th.each(&:join) '14/6/30追記:Arrayにpushする th = [] n.times do th << Thread.new { do_something } end th.each(&…

homebrewでOpenSSLの脆弱性対策版を入れたのでRubyも更新させる

OpenSSL脆弱性 ご存じだと思いますが、4/8にOpenSSLの脆弱性が公開されました。 JVNVU#94401838: OpenSSL の heartbeat 拡張に情報漏えいの脆弱性 解説や対策はこちらにまとめられています。 CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ - めもおきば ho…

homebrewを使うならばpyenvでは必ずPython2を一つ目に設定すること(もしくはPython3を優先したMacでのRicty作成苦労話)

結論 homebrewではpythonコマンドがPython 2であるとしてスクリプトが組んであります。 GitHub - Homebrew/legacy-homebrew: The former home of Homebrew/homebrew (deprecated) のでPython 3にすると、トラブルの原因になります。 対策1 タイトル通りに「…

Rubyでpdfのテキストを取得(poppler gem編)

実はpoppler gemを使うまでにいろんなpdfを扱うgemを確認してました。でも上手く行かなかったのです。 Ruby/Popplerを使えば、テキストがポンと出てきます。gem i popplerでインストール出来ます。 require "poppler" document = Poppler::Document.new("kei…

Rubyでpdfのテキストを取得(その他メモ)

origami 非常に高性能なpdfパーサ。 なのですが、日本語テキストを取ろうとするとかなりむずかしい。 Ruby で PDF と戯れるの巻 - Qiita あたりを参照。 Google Code Archive - Long-term storage for Google Code Project Hosting. File: README — Document…

NHK語学講座のラジオ番組ストリーミングを取得するRubyスクリプトgogakuondemand.rbをv3.5に更新

NHKは今日から新年度なのですが、予想通り若干変更がありました。 945 :名無しさん@英語勉強中:2014/03/31(月) 10:54:52.22 3月31日からシステムが少し変わった。 listdataflv.xmlのURLが変わったから、スクリプトをいじれる人はそこだけ直せばOK。 …

ツイッター新機能がAPIに反映されているか:写真へのタグ付けと写真4枚添付可能(5/31 APIに新機能追加されました)

新APIがまだ公開されていない時点での元エントリ → 本編 更新情報(5/23以降) 西海岸(太平洋)夏時間5/28(の0時)(日本時間5/28 16時)に写真複数添付機能がAPIに追加されます。On May 28th PDT (UTC-7) we will launch support for composing tweets wi…

MongoDBにTwitter Timelineを保存してごにょごにょする(その1:MongoDBを扱うためmongo gemをインストール)

きっかけ Qiitaでこの記事を読みました。 twitterからのデータを保存する tweetstreamがその機能を持っている…また、stasut.to_hでハッシュ化させることができるので、mongodbにはその状態をそのまま保存します。 mongodbに保存する mongodbには以下のように…

Marshalモジュールを使った「深い」コピー

配列やハッシュなどの要素がStringやIntegerなどであれば、dupメソッド又はcloneメソッドでコピーすれば問題がありません。コピー後の要素を書き替えても、元の配列やハッシュはそのまま維持されます。 しかし、配列やハッシュの要素として例えば配列オブジ…

githubからgit cloneしてみる

上記graphicsmagickのActive Support依存性が気に入らないので、消し去ってpull request掛けてやろうかと思っております。 pull requestはやったことが無いので、どきどきします。 作業開始 ~/prog/github というフォルダで作業しているとします。 いきなりg…

GraphicsMagickインストール

Mavericks(OS X 10.9.2)へインストールしたときのメモです。 homebrewでGraphicsMagickインストール GraphicsMagick Image Processing System コマンドリファレンスはGraphicsMagick GM Utility。 homebrewでのインストールオプションはhttps://github.com…

Ruby on Rails 4インストール

Mavericks(OS X 10.9.2)へまだ入れてなかったのでメモ。 バージョンは4.0.3。 $ gem install rails Fetching: i18n-0.6.9.gem (100%) Fetching: tzinfo-0.3.38.gem (100%) Fetching: minitest-4.7.5.gem (100%) Fetching: activesupport-4.0.3.gem (100%) …

twitter OAuthのアクセストークンをブラウザなしで取得

以前にブラウザを使った方法を引用したことがあります。 twitter OAuthのアクセストークンを取得 - 別館 子子子子子子(ねこのここねこ) ただし、この方法だと、目的のアカウントにログインしているWebブラウザを用意しておく必要があります。 面倒でした。…

pyenvインストール

pyenv Ruby使ってる人であれば「rbenvのPython版」で通じるかと。 つまり、Pythonの複数バージョンを切り替えれる環境をつくるものです。 今回はpyenvでPythonバージョンを変更したときに実行しないといけない「pyenv rehash」も自動で行ってくれる「pyenv-p…