pplog

ポエムがないほうのpplogです

Archive for the ‘開発’ Category

サブクエリ

とあるデータを集計するときに、

  • 一度該当ユーザーのIDリストを取得するクエリを実行
  • それをエディタで整形
  • where句のIN ()の中に突っ込んで再度クエリを実行

とやっていたんだけど、「IN()の中にselect書けますよ」って教えてもらってめっちゃ便利だった。

ガラケーがスマホになったくらい便利だった(?)。

Codecademy Ruby編 finshed

作りたいものがあっても、いきなりRailsに手を出して何度も挫折してきたので、基礎となるRubyを学習しておこうとはじめた Codecademy。

3ヵ月弱かかったけど、ようやっとCodecademyのRubyコースをクリアした。

Ruby | Codecademy

進めていくと【達成率○%】って教えてくれてるので、やる気が継続されて良かった。
環境構築が要らないというのも手軽で良い。ブラウザがあれば学べるし、別のPCからでも再開が簡単。

最後の方はclass、module などの概要を学んだり、クラス変数、インスタンス変数、ミックスインとかやったり。
ラムダやprocもあったなー(遠い目)。最後の方は結構難しかったけど、全体像が知れたので良し。

ちなみにコースを進めると、バッジみたいなものをもらえる。
とくにモチベーション維持には寄与しなかったが・・・。

マイバッジ一覧

うちのチームのデザイナ氏(新卒二年目)も毎朝30分程早く会社に来て、一緒にCodecademyやってたら、一ヶ月半ほどで arrayやhashの中身をループで処理したり、条件文を書けるようになった。素晴らしいことである。

実際の仕事ではデザイナ氏が複雑なコードを書くことはないけれども、エンジニアが書いたコードを見て「このコードは、こういう処理をしているのかな」と考えられるようになったので、デザイナとエンジニア間の話が前よりも捗っていると思う。頼もしい限りである。

ちなみに、うちのチームではデザイナがコードを見て内容が理解できたときは「あっ、このコード、Codecademyでやったやつだ!(進研ゼミ風)」っていう茶番が繰り広げられます。

ということで、デザイナの方にも Codecademy オススメです。

Ruby | codecademy 3章,4章

Codecademy の3章と4章おわり。

だいたい過去にやったことがある内容だったので、スムーズに終わった。

3. Control Flow in Ruby

ifelseelsif==<=&&|| などの説明。

途中、boolean_1 はtrueかfalseか答えよ、みたいな問題が出てきて発狂しそうだった。

 # boolean_1 = (3 < 4 || false) && (false || true)
 boolean_1 = 

 # boolean_2 = !true && (!true || 100 != 5**2)
 boolean_2 = 

 # boolean_3 = true || !(true || false)
 boolean_3 = 

リーダブルコードでお願いします。

4. Thith Meanth War!

include? とか gsub とか文字列を探して変換するなど。
これも以前やったことがある内容だったので、さらっと終わった。

この章のタイトル Thith Meanth War! って辞書にものってない単語だし何だろう?って感じだったのだけど、sth に置き換えたものだったのかー。納得。
This Means War! って映画なのかな。

5章はループ。がんばろー。

何度目かのRuby入門。今回はブラウザだけ。

今年の個人的な目標は

  • カリグラフィーを学び、普及する活動
  • 英語の勉強
  • Rubyを日常的に使う
  • 継続的なブログ更新

を挙げているんだけど、9月を過ぎたというのに Ruby に関してはは全く手つかずだった!
そろそろやらねばと思い、以前ブックマークしていた海外の Ruby 学習サイト(英語)へ。

以前はサイトを見ても Ruby を学んでるのか、英語を学んでるのか…という状態だった挫折していたのだけど、年初から英語の勉強(文法)をやってきた成果か、書いてある内容が「なんとなく」わかるようになってた。

最初にやったのは、【Code School – TryRuby】 というサイトで、3日くらいコツコツやってたら終わった。
次は 【Ruby | Codecademy】 というサイトのレッスンをはじめてみた。

どちらのサイトもブラウザで Ruby のプログラムが書けて、結果もブラウザに表示されるから、環境構築とか考えなくていいからよい。

Methods__Methods_Everywhere___Codecademy
▲ Codecademy はこんな感じの画面で、真ん中あたりでRubyを書いて、右の黒い枠に結果が出力される。

2日に1章くらいのペースでコツコツやっていこう。
一気に進めると記憶が定着しない気がする(英文法の勉強しててそう感じた)。

Ruby のバージョンはいくつがいいの?とか、Macに環境構築だ!とか考えだしたらキリがないので、ブラウザ完結って楽。

しばらくは Ruby という学問を学ぶ気持ちで、目の前にあるものをせっせと消化しよう。
いずれサイトなのか、ツールなのか、何か作りたいものが出きたときに備えて頑張る。

Codecademy 1章メモ

Ruby の中にあるもの全てがオブジェクト。
オブジェクトは メソッドをそれぞれもっている。スキルみたいなものだよ。
オブジェクトには string, number,boolean など種類があるよ。

Codecademy 2章メモ

chomp でプロンプトで入力値を受け取って出力する感じのことをやった。
putsの s って string だったのか〜。

capitalize, upcase, downcase などが出てきた。

Sqaleでmysqlに接続してテーブルを作成するときの手順

  • 何かしらアプリを作っている状態で、mysqlの接続情報はダッシュボードで確認しておく。あとSSHの鍵登録は終わってる状態で
  • mysql -u [データベース接続情報のUser] -h [ホスト] -p
  • パスワード入力求められる → 確認したパスワードを入力

  • 接続できたら、show databases;

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| sqale_e3c32281b1   |
+--------------------+
2 rows in set (0.03 sec)
  • use [Database名]; でデータベースを選択する
  • SQL 文貼り付て実行。
  • 無事終われば exit

未来の自分へのgitメモ

手元のMacで、Sqaleと30days Albumを動かせるようになっているのに、あまりいじる機会がなくいつも git の使い方を忘れてしまい、方方に迷惑をかけているのでブログに書いておこう・・・。

リモートブランチ一覧を確認する

git branch -r

チェックアウトしてブランチの内容を確認する

git co -b hogehoge origin/feature/hogehoge

-b でブランチを作って、チェックアウト。
-b のあとの hogehoge がローカルのブランチ origin/feature/hogehoge のところはリモートブランチにあるパスを指定
チェックアウトしたら bundle するなどして、 powder open

その他メモ

  • ローカルのブランチ名を指定せずに、git co してしまったので、次回は間違えないようにされたい
  • cp _Gemfile Gemfile して bundle不要になった bundleだけでOK
  • bundle exec scrit/server でサーバー起動

git log -p

diff付きでコミットログが見れる。便利。

便利情報

くろくんがコミットするまでの一連の流れを書いてたのでメモ

【初心者向け】Mac OSX10.8(Mountain Lion)で Ruby on Railsを動かすための5ステップ

2012年6月に書いた「【初心者向け】Mac(OSX Lion)でRuby on Railsを動かすための5ステップ」ですが、公開から半年程経過し、手順も少し変わっていたのでアップデートしました。

Mac OSX10.8(Mountain Lion)で Ruby on Railsを動かすための5ステップ

クリーンインストール直後のMacOSX 10.8(Mountain Lion)での作業手順です。
特に問題が起きなければ、1時間もかからず終わると思います。

  1. Command Line Tools for Xcode インストール
  2. Homebrew インストール
  3. rbenvとruby-build インストール
  4. Ruby(1.9.3-p327) インストール
  5. Ruby on Rails(3.2.9) インストール

おまけもあります。
せっかく環境構築できたら、何か作ってみたくなりますよね。

  • 【おまけ1】簡単なRailsアプリケーション「1人Twitter」を作ってみよう
  • 【おまけ2】Sqaleに「1人Twitter」を公開してみよう

Read the rest of this entry »

irbで日本語使いたい

irbで日本語入力したいので調べてみると、readlineというのが必要らしい。
readline – Rubyリファレンスマニュアル

rubyの入れなおしが必要そうだったので、1.9.3のp286でやってみた。

$ brew install readline
$ brew link readline
$ CONFIGURE_OPTS=\"--with-readline-dir=/usr/local\" rbenv install 1.9.3-p286

以前は rbenv install でバージョン一覧が出てたけと思うけど、rbenv install -l になってた。

ちなみに、ruby新しいバージョンが出てこないときはこれをやる。
rbenv install の一覧を更新する

p286のインストールは無事おわったけど rbenv global 1.9.3-p286 してもバージョンが切り替わらなかった。
rbenv versions したときに表示される set by パスの .rbenv-version を直接編集した。

irbで日本語が使えるぞー。やったー。
(pry使えばこんなことしなくてもいい?)

iTerm2でタブを増やしたときに、ディレクトリの情報を引き継ぐ

iTerm2って、タブを開くたびにホームディレクトリに戻るのが地味に不便だなー、って思ってたんですけど、設定で変えれた。

Profiles > General > working directory を Reuse previous session’s directory にすれば解決する話だった。

cd dev/hoge/ とか移動して、rails s したあとに、新しいタブを開いて cd dev/hoge/app/view/ とかしていくのが面倒くさかったんです・・。

iTerm2 つかってて不便だった一つが解決してうれしい。

【初心者も安心】Parallelsで、壊しても一瞬で元に戻せる開発環境(OSX Lion)をMac上に作る

ターミナルでコマンドを実行」するのって、結構勇気がいりますよね。

特に初心者の人ほど、

  • このコマンドを実行したら何が行われるのだろうか・・・
  • 取り返しの付かないことになってしまうのではないだろうか・・・

という不安を覚えると思います(僕がそうです)。

何度かの挫折を経て、不安を解消できる方法を見つけたので紹介します。

Read the rest of this entry »