2016-02-01から1ヶ月間の記事一覧
以前から遊びで自宅サーバを立ち上げたいと思っていて、とりあえず最小限度何をすればよいか調べました。 とりあえず CentOS などで本格的なサーバを立てるのではなく、まずはふつうの Ubuntu 14.04 でやってみました。 まず、家庭の LAN に割り当てられてい…
ブロックを使わずに、簡単に Ruby で多重配列を生成します。Array.make(ar, ob) です。ar は配列で多重度を指定します。ob は初期化因子(初期値)ですが(省略可能)、Array.new とちがって ob をコピーしたものが入ります。なので、初期値の一部を object_…
以前作った野良Gem ですが、bundlerを使ってインストールしていたので、Windows には入れることができませんでした。しかし、specific_install という Gem を使えば Windows でも可能だということがわかりました。specific_install のインストールは $ gem i…
破壊的メソッドになります。 class Array #要素iから下へ、maxヒープ状態が満たされるようにselfを修復する def max_heapify(i) l = 2 * i + 1 r = l + 1 largest = (l <= @heap_size - 1 and self[l] > self[i]) ? l : i largest = r if r <= @heap_size - …
キュー(待ち行列)の Ruby 実装例です。スタックは Array で実装されているので、キューだけ実装してみました。ただし既に Queue クラスが thread ライブラリに存在するので、クラス名は UserQueue にしました。以下は限られた長さの配列を無駄なく使うため…
注記。こちらのやり方の方がいいと思います。 obelisk.hatenablog.com 以下は古い記事です。 GitHub に入れておいた野良Gem「utils」ですが、バージョンアップしてみました。 野良 Gem の作り方(Ruby) - Camera Obscura の続きです。bundler が必要です。 …
また rscの日記さんのところからです。もとの問題はこちら。 ある塾のA組からC組までの3つの組には、合計105人の生徒が在籍しており、それぞれの組の生徒数に関して、次のア、イのことがわかっている。 ア B組の生徒数の3倍は、A組の生徒数の2倍より5人以上…
野良 Gem(RubyGems.org に登録していない Gem を、ここではこう呼びます)が何とか作れるようになったので、自分用にメモしておきます。初心者なので、理解していないところがたくさんあります。あくまでも備忘録なので、そのつもりで。OS は Linux Mint 17…
自分でも Gem を作ってみたいなあと思い、野良 Gem(RubyGems.org に登録されていないやつ)を作って GitHub で公開してみました。Naver まとめから画像をダウンロードする Gem です。bundler でインストールして下さい。Gemfile に gem "naver", github: "o…
Ruby の Gem って、別に RubyGems.org に登録しなくても使えるのですね。ここで Gem の作り方について解説してあるのですが、そこで例に挙げられている Gem も GitHub から bundler でインストールできます。まずいつもどおりの Gemfile ですが、ただ gem 't…
/usr/share/sounds/ あたりに色いろな音が入っています。Linux Mint 17.2 では $ paplay /usr/share/sounds/freedesktop/stereo/complete.ogaなどで鳴ります。色いろ試してみて下さい。※参考 Ubuntu日本語フォーラム / ビープ音が鳴りません
変数 snd に送られるファイル(またはディレクトリ)の入ったディレクトリ、rsv に送り先のディレクトリを入れます。確実に時間順にするために 1.2 秒間スリープしています。 require 'fileutils' snd = '/home/***/Pictures'; rsv = '/media/***/99EE-E8C41…
Mechanize は超強力です。使ってみてとても愉快でした。パースには少し時間がかかりますが、使いやすくて楽です。JavaScript がエミュレートできないだけ残念ですが、それはないものねだりというものです。誰かが「Mechanize はブラウザだ」と言っていました…
Linux(Ubuntu)同士でファイルを手で移してやるのが面倒なので、SSH を使ってみることにしました。とりあえずローカル(インターネットに出ない)で使う前提です。まずサーバー側に OpenSSH を入れます。 $ sudo apt-get install openssh-serverインストー…
組み込みメソッドにないような。配列で返します。まあ、本来のハッシュの使い方ではないですよね。 class Hash def collect_keys(value) each_key.select {|k| self[k] == value} end end p({:A=>0, :B=>2, :C=>0}.collect_keys(0)) #=>[:A, :C]
また rscの日記さんのところにあった問題です。おもしろそうなので Ruby で解いてみました。元の問題はこれです。問題をコピペしておきます。 円卓の判断推理 問題 A~E の5人が円卓に等間隔で着席している。5人のうち女性は2人で、この2人の席は隣り合…