メモ

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

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

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^%#"'/(){}>?!.*:;,=-]+}}|\…

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 # ポート指定(デフォルト…

クッションページへのリンクを張っているニュース系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: 最新ニュース配信アプリ

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…

MacのChromeでPOODLE脆弱性対策(Automatorを使う)

2014/11/19更新:今日公開されたChrome 39で対策済み…のはずですが、まだ確認サイトで確認すると「脆弱性!」と出ます。現在状況確認中。2014/4/15更新:今日公開されたChrome 42ではもうPOODLE対策されてました。どうやら Chrome 40 で対策済みだった よう…

公式RTを排除して検索するには exclude:retweets

おお、検索の時「 exclude:retweets」って付ければRT除外できるのか。— Shinichi Ohki (@Ohki) July 6, 2014コレを書き残したかっただけですw おまけ:iPhoneのクライアントでの検索 iPhone のクライアントで Twitter for iPhone や Tweetbot for iPhone だ…

Nokogiriのエラー処理(open-uri使用時)

書き方に統一感が全く無いのは、全く違うときに書いたためです。そのうち書き直します。 手抜き版 def nokogiri_wrapper(&nokogiri) nokogiri.call rescue puts "error in Nokogiri..retry" sleep 1 retry end 使い方 doc = nokogiri_wrapper { Nokogiri::HT…

Enumerator の作り方

ブロックを付けておくといろいろ出来ます。 new {|y| ... } -> Enumerator Enumerator オブジェクトを生成して返します。与えられたブロックは Enumerator::Yielder オブジェクトを引数として実行されます。 生成された Enumerator オブジェクトに対して eac…

Ruby 1.9で Enumerable#lazy を使う

Enumerable#lazy 及び Enumerator::Lazy について » ruby2.0-preview2で怠惰な生活を送ってみた。1.9版lazyもあるよ!! TECHSCORE BLOG EnumeratorとEnumerator::Lazyの違い - gam0022.net Rubyist Magazine - 無限リストを map 可能にする Enumerable#lazy…

素数を探すライブラリ prime_finder gem

エラトステネスのふるいを使って、与えられた数の上限まで毎回計算してます。 robertkchang/prime_finder Class: PrimeFinder ― Documentation for prime_finder (1.0.2) 利用範囲の素数を一気に求めておいてから配列に入れておき、それを使うのがよいでしょ…

iPhoto 8(iPhoto '09 / iLife '09)のデータベース情報めも

Fat Cat Software - iPhoto Library Manager Help - iPhoto Library Internals iPhoto Library フォルダのファイルの紹介。 写真データベースは iPhoto 7, 8(iLife '09)では SQLite のデータベースである iPhotoMain.db iPhotoAux.db なお iPhoto 9(iLife…

RubyからSQLite3を使うめも

sqlite3-ruby gem が主流っぽい(うすいラッパ) sparklemotion/sqlite3-ruby File: README ― Documentation for sqlite3 (1.3.9) インストール $ gem install sqlite3 Fetching: sqlite3-1.3.9.gem (100%) Building native extensions. This could take a w…

wgetでサイトを丸ごとダウンロードする

まえがき 昔から大好きなサイトがあります。 大阪の川(淀川水系・大和川水系)を源流から調べたサイトです。淀川 via kwoutこのサイトを一括して丸ごとダウンロードしてみたいと思い、アプリを探してみました。その途中に「cURL と違い wget ならばサイト内…

ffmpeg 2.3.2 で映像と音声を結合させる

メモです。 ffmpegはバージョンが違うとオプションの使い方が大きく変わったりしますのでご注意ください*1。 ffmpegのバージョン $ ffmpeg -version ffmpeg version 2.3.2 Copyright (c) 2000-2014 the FFmpeg developers built on Aug 17 2014 23:24:49 wit…

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

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

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%) …

homebrewからnanoをインストール

最近になりようやくgitを使い出しました。 参考書はこれです。 gitを使っていなかったときに本屋で立ち読みした時は、作業の手順で書いてあるのはどうかな、と思ったのですが、少しgitを使い出した後では、リファレンス的な本よりも手順に従う方が学びやすい…

Ruby 1.9(鬼車)では\bが\wと\Wの間にマッチしない(2.0以降の鬼雲も)

$ ruby -v ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10.8.0] 1.8とは違って1.9では\wに全角文字が含まれません。 pry(main)> str = "あいうabc" => "あいうabc" pry(main)> str[/\w+/] => "abc" pry(main)> str[/\W+/] => "あいう" \bは\w…

Twitter gemのrescue処理

くじら、重複ツイートのエラー処理をしていましたが、もうひとつnet/httpのエラー処理が必要と知りました。 Net::HTTPは内部でTimeoutを利用しているけども、これのエラー補足までの面倒は見てくれない。 なので必ずrescueで補足してあげる必要がある。 Time…

複数キーのソート Enumerable#sort (昇順・降順のみ、昇順・降順混在)

すみません控えのみです。 まずsortメソッド、sort_byメソッドの復習 instance method Enumerable#sort sort -> [object] sort {|a, b| ... } -> [object] 全ての要素を昇順にソートした配列を生成して返します。 ブロックなしのときは メソッドを要素に対し…