Heroku router log format

2015/12/12現在(ふつうはさほど変わらないだろうけどね。11/2更新と書いてある。 HTTP Routing | Heroku Dev Center Heroku router log format info logs 2012-10-11T03:47:20+00:00 heroku[router]: at=info method=GET path=/ host=myapp.herokuapp.com f…

Sinatra内でloopなど定期作業を行うには

単純に Thread.start でスレッドを分けるんですけどね。重要なのはいつものイディオムだと問題が生じる、ということ。 ひとまず結論を先に示します。 クラシックスタイル require 'sinatra' Thread.start do loop do puts Time.now sleep 3 end end get '/up…

urlが存在するか確認するメソッド

元は!url.nil? && !url.empty?だけだったメソッドに、応答コードが200かどうかの部分を追加。 require 'net/http' def url_exist?(url) code = ->(url) { uri = URI.parse(url) Net::HTTP.start(uri.host, uri.port) { |http| http.get(uri.path) }.code } !…

PhantomJSとSelenium/Watirを使っているherokuでgit push heroku masterするとConnection refusedエラーが出てウザイ

こんな感じのエラーが出てログを圧迫する Cycling のときや push のときに Connection refused - connect(2) for "127.0.0.1" port 8910 (Errno::ECONNREFUSED) というエラーが出ます(なおポート番号は違う場合もあります)。 Nov 29 22:29:40 app-test her…

Watirでクリック後の更新を待つ

Watir-Webdriverでリンクなどをクリックした後に、更新されるのを sleep して待っていたのですが、ちゃんと更新を確認出来るメソッドがありました(当然ですよね ブロック内が真/偽になるまで待機する、というメソッドです。 (なお PhantomJS で ReactJS の…

Flashビデオ/オーディオ配信サイトからrtmpdumpでダウンロードするために解析する

おことわり Wiresharkで通信ログを見たときに RTMP ストリームがあるもの限定です*1。 個人利用に限ります。 当方は責任を負いません。 お品書き 基本編(音声) 応用編(動画) 必要なもの Wireshark rtmpdump ffmpeg 基本編:「先読み!夕方ニュース」 手…

NHK「先読み!夕方ニュース」の番組アーカイブスのダウンロード

今日放送された「広がる民間企業の図書館運営 現状は」を聞き損ねた[twitter:@riocampos]ですw先読み!夕方ニュース − R1 NHKラジオ第1 via kwoutとはいえありがたいことに、最近の NHK ラジオ第一のニュース番組はアーカイブを残していてくれているの…

外部処理に同期するための上限回数あり繰り返しメソッド

タイトル通りですね。処理を外部処理にしておけば同期が可能になります。処理を実行し、その結果を判断する、というブロックをメソッドに渡します。まず pre_sleep 秒だけスリープして遅延し、ブロックが false を返すと return(return if execution.call …

Web上の画像を付けてツイート(1つ・複数)

Twitter gemバージョン6.2.0以降の記事は次のリンクに書きました。 Web上の画像を付けてツイート(1つ・複数)Twitter gemバージョン6.2.0以降の場合 - 別館 子子子子子子(ねこのここねこ) 以下の記事はTwitter gemバージョン6.1.0までの内容です。 画像…

サイトタイトルを元に京都新聞で検索するbookmarklet

今月から京都新聞のスマホ向け有料サイトを利用している。月額300円+税。京都新聞携帯サイト・スマートフォン版のご案内 via kwout京都新聞の無料ニュースサイトに比べると京都府および滋賀県下のニュースが多く見れるのがポイント。京都新聞の Twitter アカ…

Twitterのツイートにおけるt.coの文字数を取得

t.coの換算が10/19ぐらいから23になってしまって困っている [twitter:@riocampos] です。 こういうときにも困らないようにするには、 Twitter API に入っている数値を取得して定数に入れるのが良いです。 client = Twitter::REST::Client.new(KEY_SECRET_HAS…

iOS 9のChromeからサイトをツイートするためのbookmarklet

Twitter 公式 app が先日 iOS 9に対応した際に、 Universal Links というものにも対応しました。 What’s new in version 6.37 : Support for universal links that open directly in Twitter rather than launching Safari. Twitter adds quick reply to iOS…

衆議院インターネット審議中継の取得

FFmpeg が SSL または TLS に対応している必要があります。 9/18衆議院本会議のmp4ストリーミングURLの取得 Chrome でアクセスし、デベロッパーツールの左上のスマホマークを押してスマホの UserAgent でアクセスします。 そしてHTMLを確認します。 CSS で表…

参議院インターネット審議中継から切り出し

9/19参議院本会議のmp4ストリーミングファイルを取得。 参議院インターネット審議中継の取得、音声ファイル抜き出し&mp3変換 - 別館 子子子子子子(ねこのここねこ) を参考にして URL 設定。 $ ffmpeg -y -i http://svwmlv.webtv.sangiin.go.jp/hls-vod/33…

参議院インターネット審議中継の取得、音声ファイル抜き出し&mp3変換

FFmpeg が SSL または TLS に対応している必要があります。 9/17参議院安保法制特別委員会のmp4ストリーミングURLの取得 リンク先の番号が3355。ストリーミング URL は http://svwmlv.webtv.sangiin.go.jp/hls-vod/3355.mp4.m3u8 になるようです。 $ ffmpeg …

Twitter用のnpm比較検討

ちなみにまだほとんど動かしてません。ドキュメントやソースを見ただけでの検討です。 ntwitter まずはよく使われているntwitter。でも検討しない。なぜなら DEPRECATED This repository has been unmaintained for two years, is deprecated on npm, and sh…

nationalgeographic.comの記事を画像付きで印刷したい

小顔のヒト属新種ホモ・ナレディを発見、南ア | ナショナルジオグラフィック日本版サイト という記事の大元記事がこちら。 This Face Changes the Human Story. But How? しかし、残念ながら、印刷しようとすると文章だけになってしまう。 CSS を見ると@medi…

Gistをはてなダイアリーに貼り付けた場合の高さを制限するCSS

もちろん単なる CSS なので、はてダじゃなくても有効(なはず)。 Gist貼りたい…でも全部表示されちゃう Gist にこんなふうにスクリプトを貼った後、はてダに貼り付けたいと思ったら 画面右側の「Embed URL」 <script src="https://gist.github.com/riocampos/e7d46949c8aa1a753a37.js"></script> をコピーしてはてダに貼り付ければOKです。 で…

「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」個人的学習ノート(第2章)

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック作者: クジラ飛行机出版社/メーカー: ソシム発売日: 2015/08/31メディア: 単行本この商品を含むブログ (2件) を見る→ 個人的学習ノートの目次 01:Webページのダウンロード 特に気になるとこ…

「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」個人的学習ノート(第1章)

JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック作者: クジラ飛行机出版社/メーカー: ソシム発売日: 2015/08/31メディア: 単行本この商品を含むブログ (2件) を見る→ 個人的学習ノートの目次 基本的に省略 本ではVirtualBox+VagrantでCentO…

「JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック」個人的学習ノート(その0)

スクレイピング好きの[twitter:@riocampos]です。情報大好き。 Rubyist なので、いままでは Ruby を使って open-url で取ってきた HTML を Nokogiri でぶった切ったり、 Watir-WebDeiver (Selenium)+ PhantomJS で取ってきた JS 必須サイトをクロールした…

全角アルファベットを含まずéやñなどのアルファベットにマッチする正規表現

正規表現は Ruby のリテラルで表記します。 復習:一般的な26文字のアルファベットにマッチする正規表現 /\w+/ éやñなどのアルファベットにもマッチする正規表現 /\p{Latin}+/ こちらも同様と思われます。 /[\p{Lower}\p{Upper}]+/ ただしこれだと全角アルフ…

Lion Serverのsyslogdが暴走

夏なので我が家の Mac mini の Lion Server も暴走してます。 と思ったのですが、暑さだけでは無さそうな気配。アクティビティモニタを立ち上げると syslogd が暴走して CPU 使用率100%に。うんともすんともならないので電源ボタン長押しで強制終了。 原因 s…

Swift1.2変更点

Xcode 6 Release Notes(Xcode Release Notes pdfのpp.12-21) XCode 6.3.1 日本語化計画-Xcode 公開ノート:日本語訳

Xcodeの使い方tipsへのリンク集

基本的にXcode 5及び6でのtips。 Xcodeで使われている文字アイコンの意味まとめ | objc-Lovers objective c - Xcode intellisense meaning of letters in colored boxes like f,T,C,M,P,C,K,# etc - Stack Overflow 開発レシピ:Xcodeの便利マーク | iOS開発…

「まつもと直伝 プログラミングのオキテ」からデザインパターン関連部分のリンク

結局はDRY原則もOCPも「原則」に過ぎず,状況に応じて適切に選択しなければならないということなのでしょう。再利用する予定がない,あるいは将来機能拡張する予定がないコードにむりやりデザイン・パターンを適用するのは望ましくないでしょう。デザイン・…

Yosemiteインストールメモ

前準備 brew install済みのformula一覧を元にbrewfile.shを作るワンライナー - Qiita を使って作成したファイル #!/bin/sh brew install autoconf brew install curl brew install exiftool brew install faac brew install ffmpeg brew install gcc47 brew …

ツイートを検索してRTするスクリプトの一例

Twitterアプリケーションを設定・作成し、続いてスクリプトの設定をしていきます。 今日は ドローンが首相官邸の屋上に落下 セシウムを検出【UPDATE】 のネタが大きかったので、「ドローン」または「drone」を検索することにします。 Twitter アプリケーショ…

Twitter gemの検索結果インスタンスとその内部を解説(ついでに since_id モンキーパッチも)

Twitter gem (バージョンは5.14.0)を使って検索して得られるインスタンス(以下、検索結果インスタンスと呼びます)の扱いが意外と難しいのに詳細解説している記事が見当たらないので書いてみました。 TL;DR(要点) result_tweets = client.search(query,…

MacでRubyを使ってMeCabを利用する準備

形態素解析など言語解析業界では Python のほうがメジャーなようです。でも Rubyist としてはそこでも Ruby で突き進んでいきたいわけです(速度は気にしないという前提)。なので Ruby での使い方をやっていきます。 MeCabとは MeCab (和布蕪)とは MeCabは …