いい時代になったなぁ

10代の頃にプログラミングに挫折した30代の学び直しブログ

英語苦手だけどCodecademyのRuby on Railsを活用する

Codecademyもアカウントだけはだいぶ前から取っています。

Ruby on Rails 4入門 (全28回) - プログラミングならドットインストール」が終わったので、次は放置していたこちらを終わらせることにしました。

Learn to code | Codecademy

www.codecademy.com

  

Ruby on Railsに関しては、何度かミスをすると、「Having Trouble?」と聞いてきてくれます。そこで、「Keep Trying」ではなく、「Get the Code」を選択すると、残りの問題のコードを表示し、次に進めるようになります。

 

そんな感じで、わかるところだけ埋めていきます。

 

(おそらくこれができるのは、「Web Developer Skills」というカテゴリのものだけです。

「Language Skills」の方は何度間違えても先には進めません。)

 

そして100%になったら、同じことをCloud9でやります。

Codecademyの支持する順番どおりに進めていきます。

 

データについては、rake db:seedを実行する前に、db/seeds.rbからコピーしておけばOKです。

 

 

私の場合は、実行すると、まず「NameError - uninitialized constant ~」というエラーが出ました。

調べてみると、モデル名に問題がありそう。確認すると、大文字小文字以前に、そもそもモデル名の綴りが間違っていた。
rails destroy model でモデルを削除し、rails generate modelで作り直す。
で、実行してまたエラー。ああ、モデル作りなおしたんだから、マイグレーションファイルの中身も修正しないと。
で、最後に rake db:migrate:reset を実行。なんとかうまくいきました。

qiita.com

 

ちなみに、seed.rbのコピーとか、rake db:migrate:resetは、「Ruby on Rails チュートリアル:実例を使って Rails を学ぼう」のおかげで得た知識なんですが、Rail Tutorial自体はまだ終わっていません。

9章の途中でおかしくなったままです。直せない(Gitで巻き戻しもできない)ので、折を見てやり直します……。

 

 

環境構築で挫折したWindowsユーザにお勧めしたいドットインストールの新講座

5/5にドットインストールで、新しく「Cloud9入門」がリリースされました。

正直、待ってました! という感じです。

dotinstall.com

内容としては、Cloud9でサーバを立てて、HTML,JavaScriptPHPRubyPythonなどなど。

そして、最後にテンプレートを使ってRuby on Railsを実行するという、8回と短いながら、盛りだくさんの内容になっています。

 

さっそくCloud9入門を終了し、そのまま、Cloud9を使って1年間放置していたRuby on Rails4を終わらせることができました。

 

 

そもそも、私が初めてドットインストールを知り、登録したのは2013年です。(ちょうどソースコードが有償になったタイミング……)

 

なので、登録から800日以上経過しています。

当時は、ローカル環境の構築がMacしかなく、Macの方でWindowsに読み替えながらやろうと始めたものの、そんな器用なことができるはずものなく、すぐに撃沈。

その後、課金して「さくらのVPS入門」にチャレンジし、こちらはやり遂げたものの、ドットインストール+サーバのレンタル費用を継続して払えず(なので、当然Macを購入する余裕もなく)中断してしまいました。

 

それから放置していたのですが、昨年ふとドットインストールを訪れたところ、いつの間にか「ローカル環境の構築」Windows版ができているではありませんか。

dotinstall.com

さっそく課金してチャレンジし、最後までやり遂げたものの……。

パソコン2台のうち、メインで使いたかった1台はVagrant Upをしても立ち上がらず、(メッセージが文字化けしてよくわからず、調べてもヒットしない)もう一台のあまり使わないは立ち上がるのですが、肝心のrailsのインストールに失敗してしまいました。

立ち上がる方は、ローカル開発環境を快適に動かせるほどスペックも高くなく、ハードディスクの容量も少ない。

それであきらめてまた放置。

f:id:codee:20160510211136p:plain

 

そんなわけで、しばらく勉強自体していなかったのですが、再開のきっかけになったのは、今年に入って、「キャリア決済」ができるようになったので課金してみたschooのRuby on Rails講座でした。(schooも、ID自体取ったのは2012年……)

 

そこで、Nitrous.ioの存在を知り、え、これでRuby on Railsの勉強ができるの? と目からうろこに。

それから、Ruby on Rails チュートリアルでCloud9の存在を知る。

Nitrous.ioは無償だと1つしか環境作れないんですが、Cloud9はPublicならいくつも勉強用に環境が作れるんですね。

 

あー、ドットインストールもCloud9とか使えばいいのに……とここに書こうと思ってた矢先の今回の公開でした。(さっさと書いておけばよかった)

ドットインストール自体は、Cloud9よりもローカル環境を構築して勉強することを推奨しているのですが、私はしばらくCloud9を使い続けて行こうと思います。(他のパソコンでも学習の続きができるので……)

 

ちなみに、ドットインストールは、今のところ無償で使わせていただいています。

文字起こしはすごく見たいんですが、ソースコードはついコピペしてしまうんで……。

Ruby on Rails講座はソースコードをコピペすることなくやり遂げました。

有償でないとみられないプレミアム講座もありますが、しばらく無償でがんばります。

 

schooの方は、キャリアをドコモから楽天に変えてしまったので、課金すべきか検討中です。980円の会員だとノート数に制限があるのと、途中で止めたときにどこかわからなくなるのがつらい……。(1,980円ならどちらも可能)

Todo管理の定番「Trello」が日本語になって捗る!

Trelloが4/19に日本語に対応しました。

blog.trello.com

 

ログイン後に、右上の自分のアイコンをクリックしてから、「Change Language...」を選択すれば、日本語に変更できます。

f:id:codee:20160422045845p:plain

 

これまでは、アドオンを使うなどして対応する必要がありました。

今そのアドオンにアクセスしたら、「不要」がついてますね。

 

chrome.google.com

 

これまでお世話になりました。ありがとうございました(o_ _)o)) 

 

 

日本語に変更すると、リストのメニューが……、

f:id:codee:20160422052313p:plain

 

こうなります!

f:id:codee:20160422052325p:plain

カードの中身も……

f:id:codee:20160422052640p:plain

 

こうなります!

f:id:codee:20160422052700p:plain

 

かなりとっつきやすくなったのではないでしょうか。

 

もともとTrelloを使って、プロジェクトのTODOをメンバーで共有しようという話が持ち上がり、一部の方は使ってましたが、一向に広がる気配を見せませんでした。

 

やはり、英語だからというのも大きいのだと思います。

 

私自身、Trelloについては半年以上前に勧められていたのですが、そのときは使いこなせず挫折していました。

 

この機会に、Trelloがもっと使われるようになったらいいな。

 

 

私がTrelloに再挑戦できたのは、以下の記事のおかげです。

Trelloの使い方、初心者向けの記事はたくさんありますが、私はこちらの記事が直感的でわかりやすかったです。

gigazine.net

 

routes.rbの内容を間違えたままherokuにデプロイしたのでやり直してみた

10章まで終わったものの、herokuにデプロイできてないとメールのテストができなさそうなので、Ruby on Rails Tutorialの第3章をNitrous.ioでやり直し。
 

railstutorial.jp


$
git push heroku master
 
実行。
 
しかし、いざherokuを確認してみると、

The page you were looking for doesn't exist.

You may have mistyped the address or the page may have moved.

If you are the application owner check the logs for more information.

というエラーが出てしまっている。
 
herokuのログを「Activity」から確認する。
 
ArgumentError: Missing :controller key on routes definition, please check your routes.
というエラーが出ている。
 
 
 
routes.rbファイルを確認して:controllerの指定がおかしくないかを確認してください。」
 
確認してみる。
 
あ、おかしい……。
 
最後の最後で、
 
  root 'static_pages#home'
 
であるところを、
 
  get 'static_pages#home'
 
のままにしている。
 
ようし、やり直そう。
route.rbを修正。
 
bundle exec rake test よし成功。
 
(そもそも、これをgit push herokuする前に実行しておけば気付いた話。
チュートリアルにも、ちゃんと「デプロイする前にテストを走らせていますが、こういった習慣を身につけておくと開発に役立ちます」と書いてある)
 
もう一度、「git push heroku」を実行。
 
……あれ、herokuの内容変わってない。
相変わらず、controllerの指定がおかしいというエラーのまま。
 
 
もしかして、いったんcommitの取り消しをしなければいけないのか。
 
error: Your local changes to the following files would be overwritten by merge:
        config/routes.rb
Please, commit your changes or stash them before you can merge.
Aborting
コミットIDを調べる……長い。
Nitrous.ioのターミナルはコピペができないので(多分)延々とIDを打ち込む。
1回は間違えたものの、2回めに何とか正しいIDを入力できた。
error: Your local changes to the following files would be overwritten by merge:
        config/routes.rb
Please, commit your changes or stash them before you can merge.
Aborting
しかし、またエラー。
 
error: Your local changes to the following files would be overwritten by merge:
        config/routes.rb
Please, commit your changes or stash them before you can merge.
Aborting
 
Please commitってことは、commitしてくれってことか。
 
git commit -m "config/route.rb-change"
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
        modified:   config/routes.rb
no changes added to commit
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
        modified:   config/routes.rb
no changes added to commit
 
no changes addedってことは、もう一回、

$ git add -A

をやればいいのかな。


ということで、もう一回、

git add -A
git commit -m "config/route.rb-change"

を実行

config/route.rb-change
 1 file changed, 1 insertion(+), 1 deletion(-)

お、うまくいってるようす。
 
続けて、
$git push
$git push heroku
 
無事、herokuに第3章の内容をデプロイすることができました。\(^o^)/
 
教訓:git push herokuの前にテストをすること。

Ruby on Rails チュートリアルをやり直す

cloud9で動作確認はできるものの、herokuにデプロイできないまま、10章の最後まで進めてきた。

とりあえず最後まで進めて、それからやり直す予定だった。

railstutorial.jp

しかし、最後に、実際にメール送信するにあたり、やはりherokuにデプロイしないと先に進めないと思って、11章に進む前に、やり直すことにした。

 

bitbucketのリポジトリを削除し、アカウントも削除して作り直し。SSHキーも設定し直す。

 

しかし、チュートリアルには、

 

Bitbucketに公開鍵を追加するには、右上にあるアバター画像をクリックして [Manage account]、[SSH keys] の順に選択します 

 

とあるが、右上にあるのは「Manage Atlassian Account」であり、その中にはSSH keysなんてどこにもない。

SSHキーを登録できるのは、「Bitbucket Setting」の方。

 

というか、勝手に「 Atlassian Account」とかいうのができるの勘弁してほしい。

 

git remote add origin git@bitbucket.org:<username>/hello_app.git

このコマンドを入れるときに、どっち? ってなる。

 

それから、次に、

git push -u origin --all

というコマンドを実行すると、

 

ssh: Could not resolve hostname gitbucket.org: Name or service not known
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

 

というエラーが出て、先に進めない。

(このエラーが出るから、Bitbucketのアカウントを削除して作り直した)

 

結局、「git remote rm origin」を実行してからリトライするとうまくいった。

30超えてるけど「10才からはじめるプログラミング図鑑」でPythonをやってみた

ネット環境のないところで、しばらく時間をつぶすことになったので、「10才からはじめるプログラミング図鑑」という本のPythonの部分をひととおりやってみた。

ちなみに、Pythonの実行環境はインストール済み。

 

www.python.org

 

 

しかし、最後の「せん水かんゲームというところでいきづまる。

私がちまちまコメントを入れてるからというのもあるけど、それでも180行超えのソースコード

とりあえずひととおり入力して、ひたすらエラーを取り除く。

(多かったのは、変数のiを1にしてしまっているのと、大文字小文字のまちがい)

エラーが全く出なくなったものの、期待通りに動かない。

 

せんすいかん(実際はただの円と三角を組み合わせた図形)を十字キーで動かし、あわ(円)にあたればスコアが加算される、というもの。

しかし、あわは動くものの、スコアも残り時間も表示されないし、あたっても何も起きない。

 

サンプルコードがないので、自力で解決するしかない。

 

もう一度本を読み返してみる。

 

ああ、わかった。

 

この本は、

(1)1つのファイルにサブの処理を書く
(2)(1)の下にメインの処理を書く
(3)(1)の下に別のサブの処理を書く
(4)(3)の下に別のサブの処理を書く
(5)(2)の処理(メイン)を修正する
(6)(4)の下に別のサブの処理を書く
(7)(6)の下に別のサブの処理を書く
(8)(5)の処理を修正する


と、いう感じ1つのファイルで書くところを行ったり来たりする。
修正箇所も、同じ色の微妙な濃淡で区別していてちょっとわかりづらい
せめて最後にひとつにまとまったソースを表示してくれればよかったんだけどなぁ。

この本は、スクリーンショットが全くないので、本当に合ってるのかわからない。

スクリーンショットっぽい挿絵はあるが、あくまで挿絵なので、実際の画面とは異なる。
たとえば、スコアやタイムは、実際には白で表示されるけど、挿絵は黒だったり。

スクリーンショットはないけど、ドット絵の挿絵はたくさんあるので、
実行すると、ドット絵が出てきて動くのかな? と勘違いしそう。

タートルモジュールを使っている部分も、亀のドット絵があるけど、実際はただの矢印だし。
潜水艦も、ドット絵の挿絵があるけど、実際は◯と△の組合わせ。
その前の章がScratchでグラフィカルにキャラを動かす内容だから、
余計に、「あれ、この絵が出て来ないけど合ってるのかな?」って混乱しそう気がする。

 

要は、「メインのループが複数あった」のが、エラーは出ないのに動かなかった原因でした。

私が間抜けっちゃ間抜けなんですが。 

 

色々書いたけど、ScratchとPythonの対比表はいいと思う。

Rails Tutorialでherokuにアップロードできなかったときの対処

cloud9でうまくいっていなかったRuby on Rails チュートリアル:実例を使って Rails を学ぼう1章最後のherokuへのアップデート。
Nitrous.ioでやり直しても失敗した。
 
こんなメッセージ。
 

Application Error

An error occurred in the application and your page could not be served. Please try again in a few moments.

If you are the application owner, check your logs for details.

 
エラーメッセージで検索をかけた所、こちらの記事がヒット。
 
で、この記事の通り、application_controller.erbの1行めに
 
# -*- encoding: utf-8 -*-
と記載する。それから、再度git push heroku master
 
……「everything up-to-date」と出てくる。
 
みんな最新でっせ、ということか。
 
そして、再度アクセスしてもエラー表示は変わらず。
 
おかしーなー。
 
で、herokuの「deploy」のところを見ると、このコマンド打てよと書いてくれていた。
親切。
 

Deploy your changes

Make some changes to the code you just cloned and deploy them to Heroku using Git.

$ git add .
$ git commit -am "make it better"
$ git push heroku master
そのとおりにコマンドを打って、アクセスしたところ、ちゃんと表示された! (^O^)
 
なんか嬉しい。
 
それにしても、herokuは無料だと5つまでしか領域作れないのね(^_^;)