るびらな!

RubyをLearnする人の勉強記録。(超)弩(級の)素人なので、誰かダメさがわかる人に罵ってもらったりして、少しずつ知見を広げたいと思っています。

RailsTutorial第5章完了!

今日は久しぶりに1日休めるので、箱根駅伝を見ながらRailsTutorialがんばりたいと思います。

ということで、朝から作業を進めて、vagrantにheroku Toolbeltを入れたりいろいろやってきましたが、無事にRailsTutorialの環境を整え、第5章が完了しました。

Home | Ruby on Rails Tutorial Sample App

さて、まだまだ8区に入ったところで、青学の独走が続いていますね。

近年の箱根駅伝は、本当にトップ校が毎年変わるので非常に楽しいです。ぜひ、青学初優勝に向けてがんばって走って欲しいですね。


あ、私の母校は出ていませんので、非常に心が平穏です。

ITP1_5_A Print a Rectangle

さて、新年も明けましたが、義理の実家に行っていたので大して何も進んでいません。

ということで、今日もちょこっとやってみたAOJ。 #=> 長方形の描画 | プログラミング入門 | Aizu Online Judge

問題

長方形の描画

たてH cm よこ W cm の長方形を描くプログラムを作成して下さい。

1 cm × 1cm の長方形を '#'で表します。


Input

入力は複数のデータセットから構成されています。各データセットの形式は以下のとおりです:

H W

H, W がともに 0 のとき、入力の終わりとします。


Output

各データセットについて、H × W 個の '#' で描かれた長方形を出力して下さい。

各データセットの後に、1つの空行を入れて下さい。


Constraints

H, W ≤ 300

なるほど、0 0が来るまでループで取得したH × Wの#を並べればいいのか。これなら難しくないね!

自分のコード

while true
    rect = gets.split.map(&:to_i)
    if rect[0] == 0 && rect[1] == 0
        break
    end
 
    rect[0].times do
        puts '#'*rect[1]
    end
    print "\n"
end

何も考えずシンプルにループを書いて、一応これで最速タイ。

他の人のコード

一番コードが短い人。

$><<$<.map{|l|h,w=l.split.map &:to_i
[?#*w]*h*$/}*'
 
'

あ、えーと… うん、この2行目読みにくいというか、何というか…

じっくり見れば意味が分かってくるような気がしなくもないけど、自分で書こうとは思えない…


他の人のは、なんだか似たり寄ったりですね。あまり面白くないなぁ…

vagrant + virtualbox でRails環境を簡単に作れた!

さて、特段何もできていませんが、とりあえず報告だけ。

この前、vagrantで失敗して、rails環境の整え方を再考していました。


RailsTutorial第5章3節まで完了。今日中にどこまでいけるのか… - るびらな!

vagrantのセットアップが長すぎ、タイムアップ! - るびらな!

気軽にvagrant upしたらダメだったっていう話。 - るびらな!

vagrantの環境設定を楽に終える方法 - るびらな!


ということで、早速こちらを参考に、vagrant+virtualboxで、Ubuntu/ruby/rails/postgreSQL/MySQLなどなどのそろった環境を作っちゃおう!ということで、やってみました。


rails/rails-dev-box · GitHub

で、うまくいったのでまとめ。

手順

  1. Git for Windowsのインストール #=> Gitと同時にMSYSも入るので、Windows付属のコマンドプロンプトからSSH接続できるようになり、vagrantを使うには非常に便利です。
  2. コマンドプロンプトでC:\vagrant\に移動。
  3. 「git clone https://github.io/https://github.com/rails/rails-dev-box.git」と入力
  4. 「cd rails-dev-box」でrails-dev-boxディレクトリに移動
  5. vagrant up」でvagrantfileから環境を整える
  6. vagrant ssh」で接続。
  7. rails -v」と入れるが、railsがないと言われる
  8. 「su -」でPASSWORDに「vagrant」と入れ、rootユーザーに変更
  9. 「gem install rails」でrailsを入れる <=# ここで、本当はRails Tutorialにあわせてバージョンを4.0.5に指定するべきだった

そんな感じで、以前作ったものを「C:\vagrant\rails-dev-box」ディレクトリにコピーし、「rails s」してみたら無事にホストOSであるwindows側のブラウザからアクセスできましたとさ。めでたしめでたし。

明けました。

喪中なので、おめでたいとは言えないのですが、新年が明けてしまいましたね。

さて、このブログも初めて1か月以上。あまり進歩がなく、環境構築ばかりしていますが、RailsTutorialも少しずつ進んでいますし、前進していることにしておきたいと思います。

ということで、今年の目標。

  • RailsTutorialを終わらせる。
  • 何かRailsでWebサイトを一つ構築して、公開する。


本業では全くプログラムとは関係ないというか、PCすら事務機器としてしか使わない仕事をしているので、このブログの内容はあくまで余暇を使った趣味としてやっています。

そういった事情も考慮し、1つサービスを公開し、人を集める方法やWebサイトの運営のノウハウなど、実際にやってみて大変さを理解できたらいいのではないかと思っています。

ということで、週に10時間を目標に少しずつ作業を進めて、何とか上の目標二つに向けて熱意を失わず、頑張っていきたいと思います。

vagrantの環境設定を楽に終える方法

RubyRailsよりも、vagrantの設定に手間取っていますが、ググってみたら色々できるもんですね。ということで、vagrantまとめ。

そもそもvagrantを使える環境整えるには?

公式を見るのもいいけど、こういうのも勉強になるかなって。


Vagrant(ベイグラント)を使ってWindows上で仮想環境を手軽に作ってみる!|えんぞーどっとねっと


Vagrantで簡単仮想環境構築 – インストールと簡単な使い方まで | TechRacho


Vagrant入門から実践まで - Qiita


環境設定 …その前に

入れた後、vagrantで起動するゲストOSの設定は、vagrantfileに記述するわけですが、どう書いていいか全くわからん!となるわけです。

そこで思ったのは、「既にできてるvagrantfileをもらってくればいいんじゃね?」ということです。

そもそも、vagrantを入れるメリットというのは、他の人と共同で開発するときに開発環境を簡単に共有し、同じ環境で開発を進めることができるというところにもあるはずですし。

というわけで!

vagrantの設定を共有してくれている人を探す!

もう、色々ペタペタ貼っておきます。


morizyun/test-kitchen-rails · GitHub


VagrantでRails開発環境を整備 (CentOS 6.5/Nginx/mysql5.6/rbenv/ruby2.1.0) - 酒と泪とRubyとRailsと

(2014/12/31 12:31追記)

rails/rails-dev-box · GitHub


rails環境込みのvagrant設定の仕方を公開してくれている人。


Ruby on Railsチュートリアルの環境構築をvagrant上でやってみたまとめ - Qiita


【翻訳】DockerとVagrantによるRails開発環境 - Qiita

気軽にvagrant upしたらダメだったっていう話。

昨晩は、時間切れ!とか言って偉そうに書いたわけですが…


vagrantのセットアップが長すぎ、タイムアップ! - るびらな!


結局、寝れなくなってしまい朝3:00までvagrantをいじり倒し、PuTTYから無事アクセスできました。

そこから、rubyを入れ、railsを入れ、やったーーー!!となったわけですが、

「これって、vagrant再起動しても環境保持されなかったらダメなんじゃね?」と思ったわけです。

なので、PuTTYをいったん終了し、ホストOS側であるwindowsのコマンドからvagrantを起動しなおさないと…とか思ったわけですね。

そして、何を血迷ったのか

vagrant up

とか入れてしまったわけです。

すると、どうでしょう?

新たに起動したCentOSは、構築した環境が全く残ってない!

それどころか、プリインストールされてるRuby 1.8.7がまだいるよ!

というわけで、boxから直に起動されてしまっていたようです。

そんなこんなで、今度こそ本当にタイムアップ。大晦日にもかかわらず出勤したわけです…


まぁ、出勤しても誰がいるわけでもなく、職場に一人ぼっちなので、ちょこっとググったら出てきました。



Vagrantの仮想マシンとの紐付けの直し方 - メモ

vagrant upすると、既に設定されていたマシンではなく、違うマシンの設定を作ってしまうことがあるようですね。

UUIDを変更すればいいとのことで、とりあえず一安心。

義理の実家で2泊するという、超面倒なイベントを乗り越えたら、ちょこっとできるかなー? なんて思ってます。

vagrantのセットアップが長すぎ、タイムアップ!

さて、夕方にはじめたvagrantのセットアップですが、まだ続いています…


RailsTutorial第5章3節まで完了。今日中にどこまでいけるのか… - るびらな!

こちらを参考に環境構築を進めていたのですが、MSYSあたりで引っかかり(というより、失敗した結果まで書いてあってどれを参考にしてよいのか判らず)、下のページを参考に構築を進めています。


Windowsでgccなどを利用できるMSYS2の環境設定など - Qiita

しかし、とにかくvagrantboxのダウンロードに時間がかかりすぎ、残り2時間とか表示される始末で、そのまま待っていたら寝る時間がなくなってしまいますので、このまま放置して寝ようと思います。


ということで、年末はここまでかなぁ、という感じです。

あとは、余裕があったらiPhoneからpaiza.ioで動作テストをしてAOJを解いていくか、義理の実家でパーフェクトRuby on Railsを読むという空気の読めないことをするか、その辺なのかなぁ、と。。。

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails