2014-01-01から1年間の記事一覧
環境が汚くなっていたのでgemsetつくり直して刷新。忘れているのでBlogにメモメモ。 rbenv gemset <tab> active create delete file list version 嬉しいtab補完つき。ここまで思い出せば大体わかる! 大体わかるけど主にこの辺がわかってればOK。createはrbenv c</tab>…
独学者としてはRubyの上達法というエントリはとても参考になります。今回は以下の記事で紹介されていた、コードの外的振る舞いから実装に落とし込む作業をしてみた。 Rubyをより良く書けるようになるための課題演習のつくりかた 作業時間は延べ2時間くらい?…
irbでrequireが必要な際はloadコマンドが使える。 load './machine.rb' 変更があったら再度loadすること。
IPアドレスのレンジを例えば[0-254]とか表記する場合、さくっと表記したいけど、数字のレンジで扱わないといけないのでイチイチ手間がかかる。 そういうわけなので数字レンジを[hoge-hogehoge]で扱えるようなものを書いた。 require 'test/unit' module Comp…
あれ?できたのか。ということでメモがてら記録。 exp = "#{ip[0]}\.#{ip[1]}\.#{ip[2]}\.#{ip[3]}" result = [] logs.each do |content| result << content if /#{exp}"/ =~ content end 変数expに中身を書けば#{exp}で展開して使える。
ファンって何? 独断と偏見なんですけど、「お金を落としているか」が一つの基準なんじゃないかと思っています。 自分なんかも水樹奈々のCD・BDは発売日に購入しますし、関連作品もチェックする。このときの多少の出費は意識しません。世の中のアイドルオタ…
今週の週刊ダイヤモンドより 客が10の何乗かで、営業に求められるスキルがかわる 規模とスキルは以下のような感じ 1000〜1万社=産業機械を売るレベル(営業のスキル:問題解決型の提案) 10万社規模=汎用的な事務機器(営業のスキル:相手の琴線に触れるコ…
当然といえば当然か サボっている間は、検索流入が相対的に増えているように見えました。疑問なのは、更新を頻繁にしていた頃と毎日のヒット数にあまり差がない点です。 割合として増えるのは感覚的に理解できるのですが、ヒット数は絶望的なまでに減ると思…
なぜに筋トレ本 年末からの正月太り是正を大きな目標に、最近ジム通いを始めました。 通っているジムは、筋トレマシンと一定のフリーウェイト用スペース、十機程度のトレッドミルという、最小限の設備を提供する施設です。価格は割安ですが、トレーナーがい…
特定のオブジェクトにだけ振る舞いを与える モジュールに定義されたメソッドはextendメソッドを用いて、オブジェクトの特異メソッドとして取り込むことができる。 module Greetable def greet_to(name) puts name end end o = Object.new o.extend Greetable…
クラスをネストすることの意味 クラス定義のネストはいつ使うべきなのか。 リファレンスマニュアルを読むと以下のように書かれていました。 クラスのネストは、意味的に関連するクラスを外側のクラス/モジュールでひ とまとまりにしたり、包含関係を表すた…
苦手なのでRubyの例外処理まとめます raiseでエラーを表示させます raise 'error' #=>RuntimeError: error beginで例外を捕捉します。beginは例外が発生しそうな箇所に使用します begin 1/0 rescue = e puts e.message #=>divided by 0 puts e.class #=>Zero…
とりあえず RSSリーダー作成した。 テストもFATなコントローラも目をつぶった習作です。暇な時間使って1週間くらい?大体こんな感じ。 実装済み URLの登録機能 登録サイトの一覧 登録サイトの削除 登録サイトの最新記事一覧ページ 未実装 自動更新 未読既読…
RSSのパース時に発生しました 結論からいうと、RSS::NotWellFormedErrorはURLをパースする際に適切なURIでないと発生するエラーです。 例えば、以下のように単なるURLをパースしようとするとエラーが出ます。 url = "http://somethingpg.hatenablog.com/" rs…
小さな成果を意識して 昨日はこんな口幅ったいことを言っていたので、いままでローカルでやってたことをGithubでちゃんとIssue使ってコード書き出しました。 ブログを続けるにあたり考えたこと:小さくても成果を意識すべきではないか github/rssreader 習作…
数日ぶりです。こんばんは。 数日ぶりの更新となります。 更新に間が空いたのは単に休暇だったからですが、その間少し思うところもあったのでブログに残しておきます。 小さくても成果を意識すべきでは ブログを続けて2ヶ月になりますが、勉強中のプログラミ…
Macのタッチパッドと一部キーが異常な動作 タッチパッドはマルチタッチの操作をほぼ受け付けず(2本指スクロールが超低速)、command + tabでアプリケーションの切り替えをすると、tabを押していないのにカーソルがガァーーーっと右端まで選択されてしまう。…
Rubyでの変数とスコープをざっとまとめました。 # トップレベルの変数をメソッド foo = 'foo in toplevel' def display_foo puts foo #=> NameError トップレベルのローカル変数は参照できない end puts foo #=> foo in toplevelと表示される # display_foo …
最初が大文字のメソッドを作る場合は注意が必要 def Hello puts “hogs” end Hello #=> エラーが帰ってきます レシーバを記述するか、引数なしの場合は括弧をつけないとメソッドが呼び出せません。 Hello() #=>hoge あまり最初の文字を大文字で指定するメリッ…
自動でクローズされるってよく言われるけど、結局はFileオブジェクトの使い方に依る。 ブロックで開けば自動でクローズされる。 File.open ‘README.md’ do |file| puts file.read end ブロックで開いてない場合、ファイルは自分で閉じる必要があります。 fil…
たまには時事ネタに乗ってみます 「JALマイレージバンク」に不正ログイン、マイル盗む 数字のみパスワードの強化策は「検討していない」 パスワードは数字六桁強制で、現在は「対策する」と明言していますが、一時は、他の文字列使用を使用しての安全性向上…
猫も杓子もRSSリーダー RSSリーダーって「まずはこれ!」みたいな感じなので実際に作ってみます。 まずはRSSの要素を読み込んでみましょう。 RSSライブラリで読み込むよ require 'rss' rss = RSS::Parser.parse('http://somethingpg.hatenablog.com/rss') 超…
sinatraでコード書くために基本的な処理書いた Railsチュートリアルをボツボツ読んでましたが、Ruby自体への理解のなさに嫌気がさし舵を切り直して言語限定の学習に移行、パーフェクトRubyなんかを読み進めてますが肝心のアプリが手付かずなのでいろいろ考え…
END以下の行は定数DATAへ DATA.each_line do |line| puts line end __END__ いろはにほへと ちりぬるを #=>いろはにほへと #=>ちりぬるを END以下のデータはDATAという定数にFileオブジェクトとして保存されます。 ENDを宣言しない限り、定数DATAは生成され…
selfのことがめっちゃよくわかるサンプルコード class Ruler attr_accessor :length def set_default_length # length = 30 だとメソッドは呼び出されずローカル変数lengthへの代入扱い self.length = 30 end end ruler = Ruler.new ruler.set_default_lengt…
特異メソッドはこんな感じ message = “Hello” def message.build_greeting(target) “#{self} , #{target}” end message.build_greeting(“world”) #=> Hello,world たとえばmessage2 = “Hello"なんかにしても、 message2.build_greeting(“world”)は呼び出せま…
def Duraion def initialize(since,till) @since = since @until = till end attr_accessor :since, :until end attr_accessorはgetter,setterの定義です。 duration = Duration.new(“hoge”,”hogehoge”) とすると、duration.sinceで”hoge”が呼べる。 duratio…
ブロックがクロージャーとしての役割を持ちます def create_counter count = 1 return Proc.new do count += 1 p count end end counter = create_counter counter.call #=> 2 counter.call #=> 3 こんな感じになる。 create_counterメソッド自体は終了して…
(タイトルのようなことを)気付かず使ってたのでメモ 通常、返り値は最後の値が返されます。 def sum x,y x + y end 上記のようなメソッドであれば、x + yの結果が戻ります。 では、x,yの2値を返すだけのメソッドが欲しい場合があったとした場合、どう書け…
レシーバ省略とローカル変数 ちゃんと理解したことを記録するためにもメモ。 こんなコードがあるとします。 class Laputa def hover vibrate end def vibrate p "vibrate" end end l = Laputa.new l.hover #=> "vibrate" l.hoverは当たり前のように"vibrate"…