El Capitanにした後、rails newコマンドでエラーになる件

久しぶりにrailsアプリケーションを作成しようとして、rails new コマンドで
railsプロジェクトを作成しようとしたけど、エラーになった。
原因は、Mac OSをEl Capitanにアップデートしたことで、
/usr/local の権限がrootに変更されていたため。

以下のページを参考にして、/usr/localの権限を自分自身に変更して、
Homebrewを動くようにしました。
Homebrewがいつの間にか動かなくなっていたので直した - Qiita

再度、rails newコマンドを実行。
正常にインストールできました。

$ rails new blog
Bundle complete! 12 Gemfile dependencies, 55 gems now installed.

Homebrew CaskからAtomをインストールした時のメモ

Homebrew CaskからAtomをインストールした時のメモ

以前からGUIテキストエディタAtomが気になっていたので、インストールしてみました。

環境

OS X 10.10.5

Homebrew Caskのインストール

Homebrew Caskは、Homebrewの拡張コマンドで、GUIアプリのインストールができます。

以下のコマンドでHomebrew Caskをインストールします。

$ brew install caskroom/cask/brew-cask

以下のコマンドで、バージョンを表示されることを確認します。

$ brew cask --version
0.56.0

以下のコマンドで、Homebrew CaskからAtomがインストールできるか確認します。
atomが表示されればOK

$ brew cask search atom
==> Exact match
atom

以下のコマンドで、atomをインストール

$ brew cask install atom

Launchpadを開き、atomがインストールされたことを確認します。

まとめ

Homebrew CaskをインストールしてAtomをインストールしました。
思っていたよりも簡単にできた印象です。

参考にしたページ
http://vdeep.net/mac-homebrew-atom

システム開発ドキュメントに何を書くか

RubyでWebアプリケーションの設計をしようと思い、
どんなドキュメント構成にしようかなと考えた時に参考にしたページ

  • サンプルで見るシステム開発ドキュメントの作り方 ascii.jp
まとめ

とりあえず、ドキュメント構成を決めた。
1.表紙
2.改定履歴
3.機能要件
4.画面イメージ
5.基本画面遷移
6.処理フロー

YAPC::Asia 2015 Tokyoに行ってきました(2日目の感想)

YAPC::Asia 2015 Tokyoの2日目の感想です。

10時からのnode.jsのトークを聞きたかったので、
前日の反省を活かし、席を確保するため、9時過ぎに会場に着きました。

どうしてこうなった?Node.jsとio.jsの分裂と統合の行方。これからどう進化していくのか?by Yosuke FURUKAWAさん

speakerdeck.com

内容としては、
・Node.jsの歴史
・Node.jsとio.jsが分裂した経緯
・そして今後のNodeについて

Node.jsについてほとんど知らなかったので、とても勉強になりました。

NASA主催の世界最大級ハッカソンSpaceAppsを運営した話 by Tsubasa YUMURAさん

今回のYAPCの中で一番聞きたかったトークです。
運営の話が中心でしたが、今年5月に行われたSpaceAppsで実際に作った宇宙アプリの紹介や活動内容について聞けてとても興味深かったです。
機会があればSpaceApps参加してみたいです。

まとめ

いやー。楽しかった。 perlを全く知らない私が、どれだけ楽しめるのかとても不安でしたが、杞憂におわって良かったです。
YAPC::Asiaは今年で最後ということなので、残念ですが、
復活した暁には、是非参加したいと思います。
スタッフの方々本当にお疲れさまでした。
スピーカーの皆様、楽しいトークありがとうございました。
そして、YAPCに誘ってくれた会社の後輩に感謝です。

YAPCありがとう。

YAPC::Asia 2015 Tokyoに行ってきました(1日目の感想)

はじめに

先日、日本最大級の技術カンファレンスであるYAPC::Asia 2015 Tokyoに行ってきました。
ブログを書くまでがYAPCということなので。

まずは運営に携わった方々お疲れ様でした。
とても良い時間を過ごすことができました。

YAPCに参加するのは初めてでしたが、ノベルティグッズが欲しかったので、
個人スポンサーとして参加しました。

では、1日目の参加したトークの感想を書きます。

メリークリスマス! by Larry Wallさん

Perl6がクリスマスに出るらしい。
Perl5とPerl6はそれぞれホビットの冒険指輪物語に例えてられていました。
残念ながら両方読んだことがないのであまり理解できませんでした。
ただし、Perlの父に会えてよかったです。

Effective ES6 by Teppei Satoさん

www.slideshare.net

ES6ではClassが追加されたことにより、JavaScriptが書きやすくなるなー
という感想です。
ES6についてわかりやすく説明されていたので、大変勉強になりました。
また、Babel REPLを使って、ES6で記述するとES5に変換して表示してくれる
JavaScriptコンパイラがあることもとても勉強になりました。

TBD by Yukihiro "Matz" Matsumotoさん

Rubyの悪口と新しく開発された言語のStreemのお話しでした。
コンピュータのテクノロジーの進歩によって求められるニーズが
パフォーマンスなのか生産性なのか振り子のように移り変わるので、
そういう時が新しい言語を作るチャンスだとおっしゃってました。
それと、Rubyの父に会えてよかったです。

トーク以外で良かったこと

ロビーでRebuild.fmでおなじみの@miyagawaさんを見かけたことです。

2日目に続く

【Ruby】クラスの継承階層を調べる

classメソッドと、superclassメソッドを使って、クラスの継承階層を調べます。

Rubyでオブジェクト自身のクラスを調べるには、classメソッド
オブジェクト自身の継承クラスを調べるには、superclassメソッドを使います。

例として、Stringクラスの継承階層を調べてみます。

・はじめに対象の変数sに文字列を設定
irb(main):001:0> s = String.new("foobar")
=> "foobar"
・sのクラスを調べます。
irb(main):002:0> s.class
=> String

 Stringクラスであることがわかりました。

・Stringクラスのスーパークラスを調べます。
rib(main):003:0> s.class.superclass
=> Object

 Objectクラスであることがわかりました。

・Objectクラスのスーパーメソッドを調べます。
irb(main):004:0> s.class.superclass.superclass
=> BasicObject

 Basicクラスであることがわかりました。

・BasicObjectクラスのスーパーメソッドを調べます。
irb(main):005:0> s.class.superclass.superclass.superclass
=> nil

 BasicObjectはスーパークラスを持たないことがわかりました。

よって、Stringクラスの継承階層は下記のようになっていることがわかります。

f:id:sahishiyo:20150517143642p:plain:w150

~/.ssh/configを作成してssh接続を簡単にする

~/.ssh/configを作成してssh接続を簡単にします。

ここでは、GitHubssh接続することを前提としています。
事前に下記の内容を実施してください。

 1. GitHubアカウントを取得する
 2. GitHubに登録するSSH Keyを作成する
 3. GitHubSSH Keyを登録する

~/.ssh/config作成前のsshコマンド

通常、github.comにssh接続する場合、以下のオプションをつけて実行します。

 $ ssh -l git -i ~/.ssh/id_rsa github.com

 オプションの説明
  -l:ユーザ
  -i:秘密鍵

とコマンドの入力が長くなりますが、

~/.ssh/configを作成しておくと、

sshコマンドの後にエイリアスを入力するだけで 接続ができます。

~/.ssh/configの作成

~/.ssh/configファイルを開く。

$vi ~/.ssh/config

~/.ssh/configの内容

Host github
 User git
 IdentityFile ~/.ssh/id_rsa
 HostName github.com

 説明
  Host:エイリアス(別名)
  User:ユーザ名
  IdentityFile:秘密鍵
  HostName:ホスト名

~/.ssh/config作成後のsshコマンド

sshコマンドにエイリアスgithubををつけて実行

$ssh github

正常時のログ

PTY allocation request failed on channel 0
Hi [xxxx]! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.

※xxxxには、登録したGitHubのユーザ名が表示されます。

(参考)
.ssh/configで設定すると接続が楽になる方法 - Qiita .ssh/configファイルで複数サーバーのSSH接続を管理 - Linux入門 - Webkaru