サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大谷翔平
riocampos-tech.hatenablog.com
2016年より前だと、Google検索窓の検索文字列に「daterange:YYYY-MM-DD..YYYY-MM-DD」を追記すれば良かったようなのですが、最近は使えなくなってしまいました。 いまは、例えば2016/1/1から2017/2/21までを検索したい場合だと検索URLに &tbs=cdr%3A1%2Ccd_min%3A1%2F1%2F2016%2Ccd_max%3A2%2F21%2F2018 を追記するようにします。 で、cdr以降は何かというと encodeURIComponent("cdr:1,cd_min:1/1/2016,cd_max:2/21/2018") の結果なのです。日付は米国式にMM/DD/YYYYと書かなきゃいけない、ので面倒です。 これを追記するための bookmarklet を書きたいのですが、面倒になって書いてません。 だれか書いてくださいw 2019
herokuで永続化させるのにRedis To Goを使おうと思っているので、Rubyから扱えるRedis環境を作ってみます。 そして、オブジェクト指向でRedisを扱えるredis-objects gemをインストールします。 まずRedisインストール 日本語解説 redisドキュメント日本語訳 — redis 2.0.3 documentation Redis簡易解説本 the-little-redis-book/redis.md at master · craftgear/the-little-redis-book · GitHub ドットインストール http://dotinstall.com/lessons/basic_redis $ brew install redis ==> Downloading http://download.redis.io/releases/red
NHKのネット配信サービスであるらじる★らじる。 従来は https://gist.github.com/riocampos/5656450 のように rtmpdump を使う必要がありましたが、2017年9月から m3u8 というか HLS による配信へ変更されました*1。m3u8 なので10秒単位での録音になります*2。ので改めてエントリ(2022/2/23に M3U8URL の更新をしました)。 録音コマンド まず m4a(mp4 AAC)の場合。 ffmpeg -i M3U8URL -c copy outputfilename.m4a ファイルサイズ的に m4a が最も小さくなります。また m4a ファイルのときだけ "-c copy" オプションが使えます。 次に mp3 の場合。 ffmpeg -i M3U8URL -write_xing 0 outputfilename.mp
おことわり ここに記載した情報は、私的利用に限定した使用に限ります*1。著作権侵害は禁じます。 さて本編 今日の10時から、らじる★らじる聴き逃しサービス*2が充実しました。 聴き逃し番組を探す | NHKラジオ らじる★らじる いままでもラジオ第2の番組を中心に一部のストリーミングサービス*3が提供されていましたが、対応番組がかなり拡大されました。 ダウンロードしたいよねー さて。 語学番組のダウンロードをいろいろとやっている私としては、やはり聴き逃しサービス(ストリーミングサービス)もダウンロードしたいと思ったわけですよハイ。 ってことで上記の「聴き逃し番組を探す」サイトを確認してみると、以下の JSON ファイルが取得されていますね。 http://www.nhk.or.jp/radioondemand/json/index/index.json 内容はこんな感じ。 { "data_
EXAMPLE require 'amazon/ecs' # Configure your access key, secret key and other options such as the associate tag. Amazon::Ecs.configure do |options| options[:AWS_access_key_id] = '[your access key]' options[:AWS_secret_key] = '[you secret key]' options[:associate_tag] = '[your associate tag]' end # Or if you need to replace the default options, set the options value directly. =begin Amazon::Ecs.op
おことわり Wiresharkで通信ログを見たときに RTMP ストリームがあるもの限定です*1。 個人利用に限ります。 当方は責任を負いません。 お品書き 基本編(音声) 応用編(動画) 必要なもの Wireshark rtmpdump ffmpeg 基本編:「先読み!夕方ニュース」 手順1(キャプチャ) Wireshark を起動しておきます。 目的のサイトをいちおう開いておきます。 Wireshark でパケットキャプチャを開始します。 目的サイトをリロードします。 しばらく目的サイトの音声を流しておきます。再生/停止を繰り返すのも良いでしょう。 音声を止めます。 キャプチャを止めます。 手順2(解析) キャプチャしたデータから RTMP パケットを見付けて右クリック、「Follow TCP Stream」を選択します*2。どこでもいいです。ちゃんと RTMP ストリームの冒頭から表
launchdの作業ディレクトリ(Lingon 3を使ってplist作成) - 別館 子子子子子子(ねこのここねこ) の続きです。 cronだと次のような"*"(ワイルドカード)記法が使えます。 # 毎2時間おきに date コマンドを実行 0 0,2,4,6,8,10,12,14,16,18,20,22 * * * date >> /var/log/date.log wikipedia:Crontab 一方、Mac OS Xにはcronの代わりにlaunchdのplistで時刻指定をします。 StartCalendarInterval This optional key causes the job to be started every calendar interval as specified. Missing arguments are considered to be wild
この記事は2016/5/31までの内容です。 Twitter bot の運用に heroku を使っている [twitter:@riocampos] です。Web app はあまり使っていません。 Heroku free dynoがとうとう24x7じゃなくなったorz - Qiita でも記載しましたが、 Free dyno だと18時間起動/6時間強制睡眠を強要されるようになります(現状ではまだ24時間起動出来ていますが、そろそろ強要されそう)。 ということで対策を講じました。2つの app を使って交互に起動させる、という手段です*1。 process type として web を使います。それ以外では通信が行えないのでダメです。が、web だと30分の間にアクセスが生じないとプロセスが止められるのでその対策も行っています。 また、希望の時間帯に app を止めるために Process
参考アプリで学習その1 まず twitter oauth example を使ってみます。 右側にある「Download Gist」を押して tar.gz ファイルをダウンロードし、展開します。 そして views ディレクトリを作成して、「views_index.erb」ファイルをそこへ移動して「index.erb」にリネームします(これをしないとアプリが動きませんorz)。 まずTwitterにアプリ登録 Twitter Application Management でアプリケーション登録します。必要項目は アプリ名 アプリの説明(認証画面で説明として表示される。短いとダメ。) アプリURL(認証画面からリンクされる) Callback URL(Webアプリを置くURL) です。 この参考アプリを実行するのは自分の Mac なので、Callback URL は http://127.0
JS+Node.jsによるWebクローラー/ネットエージェント開発テクニック 作者: クジラ飛行机出版社/メーカー: ソシム発売日: 2015/08/31メディア: 単行本この商品を含むブログ (2件) を見る→ 個人的学習ノートの目次 01:Webページのダウンロード 特に気になるところは無し。見直すとhttp モジュールと fs モジュールとかの理解が出来ていなかったので追記しています。 まあここ↓ var http = require('http'); // HTTPのモジュール var fs = require('fs'); // ファイル関連モジュール を見て、 Ruby と違ってモジュールのオブジェクトを何か変数に入れておかなきゃいけないんだな、とか、括弧が多いよな、というのが気になるところか。 あと、コールバックという概念が慣れない。順繰り進んでいく Ruby と違って、 N
本家 Sinatra: README (Japanese) Sinatra Recipes(Sinatra Recipes の日本語訳(大感謝)) 起動(クラシックスタイル) ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-o HOST] [-s HANDLER]オプション: -h # ヘルプ -p # ポート指定(デフォルトは4567) -o # ホスト指定(デフォルトは0.0.0.0) -e # 環境(development/test/production)を指定 (デフォルトはdevelopment) -s # rackserver/handlerを指定 (デフォルトはthin) -x # mutex lockを付ける (デフォルトはoff) Sinatra: README (Japanese) ちなみに環境指定は環境変数を直
概要(歴史的な経緯など) 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第24回 Rackとは何か(2)Rackの使い方:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ruby Freaks Lounge|gihyo.jp … 技術評論社 この3回のコードをまとめてくださってる(+最近のRackでも動くように変更してくださってる)のが Rackについて調べてみた - ほげほげ(仮) ちなみに元のコードで何がまずいかというと、一つは require のファイル指定。Ruby 1.9以降はパスで指定しないとNGになったから。もう一つはミドルウェアの neco_filter.rb で Content-Length ヘッダが書き替えられて
形態素解析など言語解析業界では Python のほうがメジャーなようです。でも Rubyist としてはそこでも Ruby で突き進んでいきたいわけです(速度は気にしないという前提)。なので Ruby での使い方をやっていきます。 MeCabとは MeCab (和布蕪)とは MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。 言語, 辞書,コーパスに依存しない汎用的な設計を 基本方針としています。 パラメータの推定に Conditional Random Fields (CRF) を用 いており, ChaSenが採用している 隠れマルコフモデルに比べ性能が向上しています。また、平均的に ChaSen, Juman, KAKASIより高速に動作します。 ちなみに和布蕪
Twitter gem (バージョンは5.14.0)を使って検索して得られるインスタンス(以下、検索結果インスタンスと呼びます)の扱いが意外と難しいのに詳細解説している記事が見当たらないので書いてみました。 TL;DR(要点) result_tweets = client.search(query, count: 100, result_type: "recent", exclude: "retweets", since_id: since_id) で得られる result_tweets を取り扱うには take メソッドを使って取得ツイート数を決めてしまう Twitter gem モンキーパッチを当てて :since_id 指定を確実に有効にする module Twitter class SearchResults def next_page return nil unless next
Twitter gemは非常に優秀ですので、低レイヤーなOAuth gemを使ってTwitter APIにアクセスする必要はまずありません。 ただし、「Twitterからの応答をちゃんと返してくれているのだろうか?」と疑問があったときに、gemを介さずに直接アクセスする手段を知っておくことは大切なことだと思います。*1。 要約をQiitaに載せました Ruby - OAuth gemだけでTwitter APIを使ってみる - Qiita APIエンドポイント REST API v1.1 Resources | Twitter Developers で確認してください。 必要なもの OAuth gem $ gem install oauth しておきます。 ライブラリとして require 'json' require 'oauth' が必要です。 なおTwitter APIの返答がJSO
ガーベージコレクション(以下GC)すれば不要なオブジェクトが整理されてメモリが減る、と思い込んでいた[twitter:@riocampos]です。 環境はRuby 1.9.3です。 2014/8/19追記 google-picasa gemを扱うときにログインを終えたインスタンスをインスタンス変数に入れ、スレッドでインスタンス変数を呼んでいたのですが、どうやらインスタンス変数を呼び出すときに排他処理をしていなかったためにメモリリーク(?)が生じていたようです。 mutexを使ってインスタンス変数の呼び出しを排他処理したところ、メモリ使用量が抑えられたようです。 やはりスレッドとインスタンス変数とは相性が悪いようです…^^;; (追記ここまで) いまやってること あるサイトで定期的に更新される画像をRmagickで少し手を加えてPicasaに画像をアップする、という作業をherokuで動かし
Ruby - gemの移行でさっと使えるコマンドまとめ - Qiita のコメント欄で良い情報を得ました。 rbenv-communal-gemsというプラグインを利用すると、RubyのABI互換の単位でgemを共通に管理してくれるようになるので、ruby-2.1.2とruby-2.1.3などで同じgemを見てくれるようになります。 Ruby - gemの移行でさっと使えるコマンドまとめ - Qiita 以前から 1.9.3-p484 と 1.9.3-p547 とで重複した rubygems が入っているのがイヤだったのですが、これで共有できる!と思ったので入れてみました。 その前に、ABIって何よ Application Binary Interface(アプリケーション・バイナリー・インタフェース、ABI)とは、アプリケーションプログラムと基本ソフトウェアであるオペレーティングシステム
実はpoppler gemを使うまでにいろんなpdfを扱うgemを確認してました。でも上手く行かなかったのです。 Ruby/Popplerを使えば、テキストがポンと出てきます。gem i popplerでインストール出来ます。 require "poppler" document = Poppler::Document.new("keigo_tousin.pdf") puts document.first.get_text : (追記) Mac OS Xでインストールに失敗する場合、このあたりを参考にしてみてください。 (Rabbitをインストールすれば、Ruby/Popplerもインストールされます) http://rabbit-shocker.org/ja/install/homebrew.html Ruby で PDF と戯れるの巻 - Qiita 結論として、コメント通り、popp
rbenv 好きの [twitter:@riocampos] です。 pyenv も入れてます。 node.js はまだほとんど使ってないけど nodebrew だけぶち込んでいます。でも ndenv あると知ったのでそちらを入れたい、ついでに anyenv を入れよう、という魂胆です。 作者による anyenv 紹介 nvmがどうも好きになれないので、rbenv & ruby-buildを見習ってというか丸パクリしてndenv & node-buildを作りました。rbenvやplenvに慣れている人はそのままの感じで使えます。 node.jsのバージョン管理のためにndenv & node-buildを作ったのとanyenvの宣伝 - As a Futurist... anyenvの説明をば。 何? rbenvをコピーしたplenvやndenvなどは、.bashrcとかに2行追記して使
2014/11/19更新:今日公開されたChrome 39で対策済み…のはずですが、まだ確認サイトで確認すると「脆弱性!」と出ます。現在状況確認中。 2014/4/15更新:今日公開されたChrome 42ではもうPOODLE対策されてました。どうやら Chrome 40 で対策済みだった ようです。気付き遅れましたorzheartbleed やら shellshock やらいろいろ脆弱性が漏れ出てくるのですが、今回は SSLv3 終了のお知らせがやってきました。 SSL 3.0は15年前の古いバージョンではあるが、いまだにこのバージョンを使っているWebサイトが多数あるという。また、Webブラウザのほとんどは、HTTPSサーバのバグによりページに接続できない場合、SSL 3.0を含む旧版のプロトコルでリトライするという形でSSL 3.0もサポートしている。 この脆弱性を悪用すると、パスワ
以前にrtmpとopensslに対応するようにffmpegをhomebrewでインストールしました。 今回、Ogg Vorbisのことを調べていたら、ffmpegにlibvorbisを追加しないとマトモなVorbisファイルを作れないことを知りました。 atword.jp - このウェブサイトは販売用です! - レンタル テンプレート 無料ブログ ワードプレス サーバ リソースおよび情報 ということで、再度入れ直すことに。 インストール まずアンインストール。 $ brew uninstall ffmpeg Uninstalling /usr/local/Cellar/ffmpeg/1.2.1...そして適切なオプション(--with-openssl --with-rtmpdump --with-libvorbis)を付けてインストール。 $ brew install ffmpeg --w
pyenv Ruby使ってる人であれば「rbenvのPython版」で通じるかと。 つまり、Pythonの複数バージョンを切り替えれる環境をつくるものです。 今回はpyenvでPythonバージョンを変更したときに実行しないといけない「pyenv rehash」も自動で行ってくれる「pyenv-pip-rehash」も併せてインストールします。 インストール 毎度お馴染みhomebrewでインストールします。 $ brew install pyenv ==> Downloading https://github.com/yyuu/pyenv/archive/v0.4.0-20140211.tar.gz ######################################################################## 100.0% ==> Caveats To
youtube-dl Download videos from YouTube.com (and mores sites...) youtube-dl is a small command-line program to download videos from YouTube.com and a few more sites. It requires the Python interpreter (2.6, 2.7, or 3.3+), and it is not platform specific. It should work in your Unix box, in Windows or in Mac OS X. It is released to the public domain, which means you can modify it, redistribute it o
OpenSSL脆弱性 ご存じだと思いますが、4/8にOpenSSLの脆弱性が公開されました。 JVNVU#94401838: OpenSSL の heartbeat 拡張に情報漏えいの脆弱性 解説や対策はこちらにまとめられています。 CVE-2014-0160 OpenSSL Heartbleed 脆弱性まとめ - めもおきば homebrewとrbenvでの対策 homebrewでOpenSSL更新 上記まとめサイトのコメント欄でコメントしましたが $ brew update $ brew upgrade openssl で1.0.1gに更新されます。 念のため $ brew link openssl --force でhomebrew側にリンクし $ which openssl で /usr/local/bin/openssl であることを確認。 CVE-2014-0160 OpenS
Sinatra で簡単なサイトを構築しようと思いつつ、理解力がないためになかなか進まない[twitter:@riocampos]です。 Session? 再度書きますが私的理解です。誤解を含んでいるかも知れません。 Ruby on Rails でも Sinatra でも、Rack というものの上に立っている。 Web サイトではセッションがないとサイト遷移により情報が潰えてしまう。 セッション情報の保持には、Rack の場合 Rack::Session 以下のクラスで扱っているものを使用する。 Rack::Session::Cookie Rack::Session::Memcache Rack::Session::Pool ネットなどでいちばん良く説明されているのが Rack::Session::Cookie だが、セッション情報の全てを Cookie へ入れてしまうので盗まれた場合の危険
結論 homebrewではpythonコマンドがPython 2であるとしてスクリプトが組んであります。 GitHub - Homebrew/legacy-homebrew: The former home of Homebrew/homebrew (deprecated) のでPython 3にすると、トラブルの原因になります。 対策1 タイトル通りに「pyenvでは必ずPython2を一つ目に設定する」。 $ pyenv global 2.7.6 3.4.0 対策2 「pyenv local」コマンドを使えば、フォルダ内で使用するPythonのバージョンを指定できます。 ので、Python2用の作業フォルダPython2内で ~/Python2/: $ pyenv local 2.7.6 3.4.0 と設定しておく。 とはいえ 私はRubyistでありPythonistaではないので、
すみません控えのみです。 まずsortメソッド、sort_byメソッドの復習 instance method Enumerable#sort sort -> [object] sort {|a, b| ... } -> [object] 全ての要素を昇順にソートした配列を生成して返します。 ブロックなしのときは <=> メソッドを要素に対して呼び、 その結果をもとにソートします。 <=> 以外でソートしたい場合は、ブロックを指定します。 この場合、ブロックの評価結果を元にソートします。 ブロックの値は、a > b のとき正、a == b のとき 0、 a < b のとき負の整数を、期待しています。 ブロックが整数以外を返したときは例外 TypeError が発生します。 Enumerable#sort_by は安定ではありません (unstable sort)。 安定なソートが必要な場合は
たしか メタプログラミングRuby 作者: Paolo Perrotta,角征典出版社/メーカー: KADOKAWA/アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (125件) を見るに載ってたよなー、ActiveRecordで使ってるよーとか書いてたよなー、でもどうだったか思い出せないなー。 ということで検索してみて、やっと見つかりました。 class Hash def method_missing(name) return self[name] if key? name self.each { |k,v| return v if k.to_s.to_sym == name } super.method_missing name end end http://www.goodercode.com/wp/
Twitter APIリミットの残存回数取得メソッド - 別館 子子子子子子(ねこのここねこ)の続きです。 Twitter APIへアクセスしているときに、上限に達するとTooManyRequestsエラーになります。当然です。 そのTooManyRequestsエラーはrescueで拾い上げることが出来ます。 例:アカウントriocamposのフォロワーのアカウント名(:screen_name)を書き下す 注意:Twitter gemバージョン5の書き方をしています*1。 #!/usr/bin/env ruby # coding: utf-8 require 'twitter' client = Twitter::REST::Client.new(KEY_SECRET_HASH) begin followers = client.followers("riocampos").to_a f
次のページ
このページを最初にブックマークしてみませんか?
『別館 子子子子子子(ねこのここねこ)はてブロ部』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く