モンキーパッチでArray#eachを上書き(ついでにHash#eachも

Array#eachからRubyのブロックを理解する - Qiita へのコメントの備忘録。 実際にyieldを使ってeachメソッドを作ってみると、次のようになります。(eachメソッドを上書きしようとしたらstack level too deep (SystemStackError)になってしまいましたので、e…

多重代入と連鎖した代入との違い

多重代入について(8409)|teratail で回答したものを補足して引用。 質問: a, b = 1, 1 と a = b = 1 のときに、どちらでも a += 1; b += 2 とすると a は2、 b は3になるので、両者は同じ意味か?回答: 違います。 a, b = 1, 1 は多重代入で、a と b それ…

コンソール.appを使って一般(非管理者)ユーザからsystem.logを閲覧する

Mac

一般ユーザだとコンソール.appを使っても「このログを読み取るアクセス権がありません」と出てしまいsystem.logが見れません。 でも見たいことありますよね。sudoしちゃいます。 sudo /Applications/Utilities/Console.app/Contents/MacOS/Console

HashじゃなくStructを使ってみようメモ

ネットから HTML を取得し、 Nokogiri でパースして取れた項目をテキトーに Hash に入れて、それを配列に入れておく、ようなことをしょっちゅうしています。 Hash にしておくと当然ながら項目は Hash[:title] のように Hash#[] で取得することになります。メ…

Mechanizeの使い方(CookiesはRedisサーバへ保存)

普段は OpenURL 、 JS が必要な場合には Watir-Webdriver を使ってサイトへアクセスするのですが、今回は Cookies が必要なだけだったので、初めて Mechanize を使ってみました。記録しておきます。 今回の目的 Qiita にログインして http://qiita.com/api/n…

amazon-ecs gem めも

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 …

Twitter APIめも

REST API(Twitter::REST::Client.new(setting)) 検索 検索APIを使っても検索時刻から20秒前までのツイートは取得出来ません。 User Streaming API(Twitter::Streaming::Client.new(setting).user) ブロックパラメータ status は Twitter::Tweet や Twitt…

minifyされたCSSをセレクタ毎に改行するための正規表現

各セレクタにおける CSS の指定状況を確認するため grep しやすいよう加工したかったのでいま作った。合ってるとは思うけど厳密に正確かどうかはまだ不明。 スクリプトだと while line = gets puts line.chomp.gsub(%r`@[\[\]\w\s^%#"'/(){}>?!.*:;,=-]+}}|\…

OmniAuth Twitterを使ったツイッター認証(認可)状況確認

SinatraでTwitterのWebアプリを作るための学習1 - 別館 子子子子子子(ねこのここねこ) では まず twitter oauth example を使ってみます。 としてそのスクリプトのリーディングも行いました。 ツイッター認証メソッド ツイッター認証されているかどうかを…

codeタグのカラーリングCSS設定

Qiita とかであるようにコード code の背景色をグレーにしてみた。 CSS は未だによく分かってないけどこんな感じに。 .body .section code { padding: 1px 3px; // 上下を1px、左右を3pxのパディングを取る font-size: 115%; // 等幅フォントを周囲の文字と…

Hamlメモ

Haml リファレンス File: REFERENCE — Haml Documentation Attributes: {} Brackets represent a Ruby hash that is used for specifying the attributes of an element. %html{:xmlns => "http://www.w3.org/1999/xhtml", "xml:lang" => "en", :lang => "en…

SinatraでTwitterのWebアプリを作るための学習1

参考アプリで学習その1 まず twitter oauth example を使ってみます。 右側にある「Download Gist」を押して tar.gz ファイルをダウンロードし、展開します。 そして views ディレクトリを作成して、「views_index.erb」ファイルをそこへ移動して「index.er…

Sinatraメモ

本家 Sinatra: README (Japanese) Sinatra Recipes(Sinatra Recipes の日本語訳(大感謝)) 起動(クラシックスタイル) ruby myapp.rb [-h] [-x] [-e ENVIRONMENT] [-p PORT] [-o HOST] [-s HANDLER]オプション: -h # ヘルプ -p # ポート指定(デフォルト…

Sinatra学習の基礎としてRackを学ぶ

概要(歴史的な経緯など) 第23回 Rackとは何か(1)Rackの生まれた背景:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第24回 Rackとは何か(2)Rackの使い方:Ruby Freaks Lounge|gihyo.jp … 技術評論社 第25回 Rackとは何か(3)ミドルウェアのすすめ:Ru…

SafariDriverの作り方

この記事は古くなりました。 Apple Safari: safaridriver (no download needed, it’s pre-installed if you have Safari 10) Drivers – Watir Project safaridriver requires using Safari 10 on either El Capitan or Sierra. Safari – Watir Project だそ…

Watir Webdriverの使い方の例: StackOverflow 日本版へログインする

JavaScript が使われているサイトのスクレイピングなどに役立つ Watir Webdriver 。しょっちゅう使っているのでこれに関する記事を書きたいと思いつつ書いてなかったのですが、今回 ruby - JavaScript が実行された後の HTML を取得したい - スタック・オー…

クッションページへのリンクを張っているニュース系botの短縮URL

クッション付けられるとウザイし、アフィbotになってるのは嫌い。 yabee.in さまざまニュース client: Yabee n2t.co n2t.co client: n2t.co ilusm.link ilusm.link client: ilusm.link rss2twi.com rss2twi.com client: 最新ニュース配信アプリ

saleonlines.netに引っ掛かってしまったアカウントを検索するRubyスクリプト

1/10から大量発生しているsaleonlines.netスパムを検索するためのスクリプトです。 参考:saleonlines.net というスパムツイートに注意! - Togetterまとめ30秒おきにツイートを検索します。検索1回に付き100ツイートまで検索出来ます(手抜きスクリプトのた…

ゆかりんのーとからTogetterに移行するためのRubyスクリプト

2015年5月12日をもって「Yukarin'Note」のサービスを終了いたします。 twitterのツイートをまとめるサービスの「Togetter」をご利用ください。 【重要】Yukarin'Noteサービス終了のお知らせ Yukarin'Noteからのお知らせ 私自身は Togetter しか使っていない…

rbenvでMacにRuby 2.2.0 インストール(オプション指定最新版

個人的な最新インストール方法: $ CONFIGURE_OPTS="--disable-install-rdoc --enable-shared" rbenv install 2.2.0ポイント:いままで必要だった CONFIGURE_OPTS="--with-readline-dir=`brew --prefix readline` --with-openssl-dir=`brew --prefix openssl…

ドットインストールの「jQueryで作るスライドショー」をJavaScriptのイベントリスナで書き直してみた

ドットインストールの「jQueryで作るスライドショー」をJavaScriptで書いてみた - Qiita のさらに書き直しです。インデントのついたコメント部分に jQueryで作るスライドショー (全8回) - プログラミングならドットインストール のソースを載せています。 <html lang="ja"> <head> <meta charset="utf-8"></meta></head></html>…

POODLE対策されたPhantomJS 1.9.8をインストール

以前から PhantomJS を使って Watir でアクセスしていた某サイト、最近なぜかアクセスできず悩んでいました。 UA を変えてみたり、いろいろやってみたのだけどアクセスできず。 ふと気付いたのが、このサイトへのアクセスが https であること。 もしや、と思…

herokuのPhantomJSを1.9.8のものに変更

PhantomJSのbuildpackは既に1.9.8に更新されています。 stomita/heroku-buildpack-phantomjs ので、git対象のファイルを何か更新して、herokuにpushしてやればOKです(ファイル更新無しにherokuの更新は出来ないのだろうか…)。 ログはこんな感じ。 $ git pu…

faviconがあるかないか確認

速記メモのみ。 require 'open-uri' def get_favicon(domain) open(domain + "/favicon.ico") end faviconが存在する場合 > yahoo = get_favicon("http://www.yahoo.co.jp") # => #<File:/var/folders/r8/t51gts3s5kb5b5qvskswx22c0000gn/T/open-uri20141120-3062-cb0tnc> > yahoo.base_uri => #</file:/var/folders/r8/t51gts3s5kb5b5qvskswx22c0000gn/t/open-uri20141120-3062-cb0tnc>

JavaScript/DOM勉強メモ

超個人的メモです。 jQueryなしにJavaScriptを使いたい主義で。 url先のレスポンス(HTMLでもJSONでも返してくるもの)を取得する function getSrc(url) { var req = new XMLHttpRequest(); req.open("GET", url, false); // 第3引数がfalseなので同期通信 r…

Twitter for iPhoneのURLスキーム

メモのみ。 Twitter Parameters: (provided by Luis Fernández, thanks!) twitter://status?id=12345 twitter://user?screen_name=lorenb twitter://user?id=12345 twitter://status?id=12345 twitter://timeline twitter://mentions twitter://messages twi…

RubyでJSのURIエンコードを

先にまとめ JavaScript の encodeURIComponent と encodeURI と同じエンコードするメソッドを String クラスに作るモンキーパッチ。 class String def encodeURIComponent unescaped_form = /([#{Regexp.escape(';/?:@&=+$,<>#%"{}|\\^[]`' + (0x0..0x1f).ma…

anyenvをインストール&Homebrewでインストール済のrbenvと互換を取る

rbenv 好きの [twitter:@riocampos] です。 pyenv も入れてます。 node.js はまだほとんど使ってないけど nodebrew だけぶち込んでいます。でも ndenv あると知ったのでそちらを入れたい、ついでに anyenv を入れよう、という魂胆です。 作者による anyenv …

anyenvをインストール2

anyenvをインストール&Homebrewでインストール済のrbenvと互換を取る - 別館 子子子子子子(ねこのここねこ) の続きです。 リンクを最低限にしたほうが対応しやすいはず さきほど書いた対応ではリンクを最低3つ張れば対応出来ます。でも、 **env 一つ当た…

anyenvをインストール3(gemの調子が悪くなった

anyenvをインストール2 - 別館 子子子子子子(ねこのここねこ) の続きです。 全ての gem に影響しているか今ひとつ分からなかったのですが、 gem 依存のあるスクリプトがうまく動かなくなりました。 rbenv-communal-gems プラグインを入れたあとの確認をほ…