背景 Coderbyteのプログラミング問題をやっていて、他の人の解法で遭遇したメソッドたち。 使う機会があればかなり嬉しい、乙なメソッドを集めたつもりです。 順次追加します。 -- String count(letter) -> int 文字列に対して呼ぶと、letterで指定した文字が何個存在するか教えてくれる letterに二文字以上の文字列を入れると、一文字ずつ検索して、全部合算した個数を教えてくれる
![Rubyで使う機会があれば嬉しい「乙な」メソッドたち - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/23b6565318cc811fd7533423f4a2abba7264732a/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UnVieSVFMyU4MSVBNyVFNCVCRCVCRiVFMyU4MSU4NiVFNiVBOSU5RiVFNCVCQyU5QSVFMyU4MSU4QyVFMyU4MSU4MiVFMyU4MiU4QyVFMyU4MSVCMCVFNSVBQyU4OSVFMyU4MSU5NyVFMyU4MSU4NCVFMyU4MCU4QyVFNCVCOSU5OSVFMyU4MSVBQSVFMyU4MCU4RCVFMyU4MyVBMSVFMyU4MiVCRCVFMyU4MyU4MyVFMyU4MyU4OSVFMyU4MSU5RiVFMyU4MSVBMSZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnM9YTVjY2Q0MDE3ZDBhNzZkOGY5NjY3MmU0YzBmZDUxM2U%26mark-x%3D142%26mark-y%3D57%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBrZW56YW4xMDAmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWI4MjkwY2RmMjA4YmQyYTMzOWFhYmFlYmE0YWZmM2Iw%26blend-x%3D142%26blend-y%3D436%26blend-mode%3Dnormal%26txt64%3DaW4g44Ko44Oz44K444OL44Ki44Go5Lq655Sf44Kz44Of44Ol44OL44OG44Kj%26txt-width%3D770%26txt-clip%3Dend%252Cellipsis%26txt-color%3D%2523212121%26txt-font%3DHiragino%2520Sans%2520W6%26txt-size%3D36%26txt-x%3D156%26txt-y%3D536%26s%3D75f021f80068d2bf778212dcb0657d17)
■1 Emacsでの見た目そのままにソースコードをKeynoteのスライドに貼り付ける方法 RubyKaigi2011の足音が聞こえてくるなか(おい、再来週はRubyKaigi2011だぞ!!)、 社内でKeynote勉強会をしたときにも意外に知らない人が多いんだなーと改めて思ったので説明してみます。スライドづくりのご参考に。 緊張しているトークの最中にソースコードを見せるときには、普段自分が見ている見た目と同じになっていると幾らか緊張がほぐれるものです。Xcodeとか(TextMateも?)を使ってる人はこんな手順踏まなくても良さそうだけど(もしかしてEmacs23の人も?……私はまだCarbonEmacsを使っているのであった)。まあ、それはそれとして、手順は3つ(人によっては4つ)。 0. htmlize.elをインストールする 1. ソースコードをhtmlizeする 2. HTML
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Dr. Nic is the CEO and founder of Stark & Wayne. He previously served as both VP of Technology and VP of Engineering at Engine Yard. He discovered Cloud Foundry in 2011, and launched Stark & Wayne in 2012 to help the enterprise world with successfully running application container platforms. Dr Nic is a heavy user and evangelist of Cloud Foundry, Kubernetes, Rancher, Concourse CI, and BOSH. He is
「Do Ruby!」とは、株式会社ケイビーエムジェイのエンジニアによるRuby on Rails技術解説ブログです。Ruby on Rails開発現場ならではの実践的な技術ブログを随時掲載していきます。是非ご覧下さい。KBMJ(ケイビーエムジェイ)では、Ruby on Railsによるシステム構築・開発を承っております。KBMJがZDnetで連載している記事を紹介します。コメントなどありましたらそちらでお願いします。 Rubyでどう書く?:RubyCocoa+Core Animationでお手軽アニメーション 佐藤伸吾(KBMJ) 今回はRubyCocoaとMac OS XのフレームワークであるCore Animationを使って、お手軽にアニメーションを作成してみましょう。
ここでは、Rubyによるネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)です。 TCP 簡単なTCPサーバとクライアント TCPクライアント(エラー処理付き) 何度も受信できるTCPサーバ TCPサーバ(acceptした相手の確認) UDP UDPを使う UDPでブロードキャストを使う UDPでマルチキャストを使う(マルチキャストを送信する) UDPでマルチキャストを使う(マルチキャストを受信する) UDPでマルチキャストを使う(TTLを設定する) Web 簡単なHTTP GET(Net::HTTP) HTTP HEADと全てのHTTPヘッダの表示(Net::HTTP) HTTP POST(Net::HTTP) 簡単なRSSクライアント その他 IO::selectを使う IPアドレスからホスト名への変換
Webページの自動カテゴライズ の続き。 前回書いたとおり、パストラックで行っている Web ページのカテゴライズでは、Web ページの本文抽出がひとつの鍵になっています。今回はその本文抽出モジュールを公開しつつ、使っている技法をざっくり解説などしてみます。 本モジュールの利用は至極簡単。require して analyse メソッドに解析したい html を与えるだけ。文字コードは UTF-8 です。 【追記】大事なこと書き忘れ。本モジュールは Ruby1.8.5 で動作確認していますが、特別なことはしていないので、1.8.x なら動くと思います。 $KCODE="u" # 文字コードは utf-8 require 'extractcontent.rb' # オプション値の指定 opt = {:waste_expressions => /お問い合わせ|会社概要/} ExtractCont
尾藤正人(a.k.a BTO)です 先日公開したブラウザだけでネットワーク対戦ゲームができるサイト「プラッシュ」では、 フラッシュとネットワーク通信を行う専用のXMLSocketサーバを開発しました。 このXMLSocketサーバはrubyで書かれています。 LLでデーモンを書く需要が、それほどあるとは思えませんが、デーモンを書く際に気をつけた点、工夫した点をまとめてみたいと思います。 なぜrubyを選んだのか rubyを選んだのには理由は2つあります。 Railsを採用した LLで早く開発をしたかった 僕も昨今のRailsブームにのって個人的にRailsを使い始めていました。 プラッシュは完全に新規プロジェクトで環境を選択する事ができたので、迷わずRailsを選択しました。 では、なぜCのようなコンパイル言語で書かなかったのか。 速く動くものを開発するよりも、早く開発をしたかったからです
#!/usr/bin/env ruby EDITOR = ENV['EDITOR'] || 'vim' files = `find . -type f ! -path './tmp/*' ! -path './log/*' ! -path '*/.svn/*' #{ARGV.map{|v| "#{/^-/ === v ? '!' : ''} -path '*#{v.gsub(/^-/, '')}*' "}.join}` system("#{EDITOR} #{files.split.join(' ')}") puts files というスクリプトをvifという名前でコマンドにしておいて、$ vif .jsでJavaScriptファイルを全て開いたり、$ vif controller -testとかで、テストを除くコントローラ関係のファイルをすべて開いたり。 EclipseのGoToFile
Mailクラスを使うとメールを解析することができます。以下では、mbox形式のファイルストリームからメールを読み出し、差出人に example.com が含まれているものを集計しています。 require 'mailread' MBOX = 'math_girls.mbox' from = Hash.new(0) File.open(MBOX) do |mbox| while not mbox.eof? message = Mail.new(mbox) from[message.header['From']] += 1 end end from.keys.grep(/example\.com/).sort.each do |name| puts "#{name} => #{from[name]}" end 実行例です。 <xxxxxxxx@example.com> => 202 <yyyy
複数の実装方法のどちらが速いかな?とRubyで調べたいときには、Benchmarkモジュールが便利です。 1〜nまでの和を計算する二つの方法を比較してみましょう。以下のプログラムでは、足し算を本当に繰り返して求める方法(method1)と、公式を使って計算で求める方法(method2)の二者の速度を比較しています。 require 'benchmark' def method1(n) sum = 0 1.upto(n) do |k| sum += k end sum end def method2(n) (1 + n) * n / 2 end n = 100_000 Benchmark.bm(7) do |x| x.report('case A') { method1(n) } x.report('case B') { method2(n) } end 実行例です。 user system
先日の Ruby 会議、参加者・スピーカ・スタッフの皆さんお疲れ様でした。非常に楽しめたイベントで、企画運営などさまざまなことを行ってくださったスタッフの方々にはほんと感謝です。 また久しぶりに Rubyist な方々といろいろ話ができて楽しかったです。人見知りなので、話しかけてくださった方々、ありがとうございます:D というわけで、以下発表資料。 モテる Ruby! 舘野祐一 ( id:secondlife ) 自己紹介 舘野祐一 id:secondlife 株式会社はてなエンジニア Shibuya.js 企画・運営 自己紹介 好きなの Ruby が好き vim が好き アイドr Ruby はモテ? Ruby は昨年から世間で大ブレイク でも Ruby を使えてもモテる気配がしない… Ruby の集まりはほぼ男性ばかり マーティン・ファウラー曰く 「Rubyコミュニティでは、女性を一切見
Perl での print debug の方法の紹介がブーム(?)だったので、自分がよく行ってる Ruby での debug 方法7つについて書いてみます。 p ご存じの人も多い Kernel#p メソッド。これを使うとオブジェクトの内容を見やすい形で出力してくれます。 >> p ({:foobar => :baz}) {:foobar=>:baz}Object#inspect を使うと、p で出力するときと同じ文字列を String として取得できます。 >> puts ({:foobar => :baz}).inspect {:foobar=>:baz}初心者の頃この p での出力を使う方法がわからなくて困った記憶が…。 pp pp というライブラリを使うと、p より、より見やすい形式で出力してくれます。たとえば >> a = Array.new(10) { {:foobar => :
配列をユニークにしてその個数とともに返せ。 具体的には、["foo", "bar", "foo", "baz", "bar", "foo"] を、[ ["foo", 3], ["bar", 2], ["baz", 1] ] にする。 golf - babie, you're my home 考える道筋を全部書いてみます。 (1) 配列を表示させます。 a = ["foo", "bar", "foo", "baz", "bar", "foo"] a.each do |e| puts e end (1)の実行結果です。 foo bar foo baz bar foo(2) Hashを使って要素の数を数えます。 h = Hash.new(0) a = ["foo", "bar", "foo", "baz", "bar", "foo"] a.each do |e| h[e] += 1 end h.
Shiubya.js #1で話したネタですが、Winkでデモを作ってみました。 http://la.ma.la/misc/demo/realtime_cssedit.htm エディタとブラウザが並んでて窮屈ですが、実際はこれを20インチワイド液晶縦置きデュアルでやります。 仕組みは、WEBrickでローカルプロキシを立てて、同名のファイルがローカルにある場合は内容を置き換えて表示する、というもので、CSSやJavaScriptを編集するのに向いています。 プロキシサーバーはPerlで書かれた同等のものがここにあります。 http://www.ornithopter.jp/archives/2006/05/perl_perl.html 自分が使ってるのは必要に応じて行き当たりばったりに拡張していったりするのですが、現時点でのソースを置いておきます。 http://la.ma.la/misc/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く