スポンサーリンク

2015年5月13日

技術本まとめ

タイトル:技術本まとめ

目的:ブログに書いてる内容にリンクしたお薦めな本をまとめる(第一弾)

※リンク先はAmazonのサイトです。

・Rubyの本
プログラミング言語 Ruby
まず、これは外せませんね。
Rubyの作者である、まつもとゆきひろさんが書いた本です。
必読書と言っても過言ではない本かと...大体の人が持っているんではないでしょうか?

初めてのRuby
Ruby初心者の一冊だと思います。
但し、プログラム完全な初心者だと少し厳しいかもしれません。

しかし、持っていて損になる本ではないです。
プログラミング言語 Rubyと一緒に最初に買っておくといいと思います。
値段も手ごろですし。

パーフェクトRuby
言語の仕様についても書いてある。手元にあったら便利な本です。
Ruby2.0にも対応しているので助かりますね。
ある程度、Rubyに親しんでから読むといいと思います。
ただ、分厚いですね(笑)

Rubyのしくみ -Ruby Under a Microscope-
タイトルの通り、Rubyの仕組みについて書いてある本です。
図や手順が載っているので、分かりやすいとは思います。
でも、初心者が読む本ではないと思います。

Effective Ruby
有名なEffectiveシリーズの本ですね。
自分はまだ読めてません...上級者向けの本です。

・Sinatraの本
Sinatra: Up and Running
Kindle版ですが、Sinatra始めるならこの本は欲しい。

Sinatraの本少ないですよね。
これしか見つけられませんでした...

・Gitの本
入門git
初心者にも分かりやすい本です。
これだけだと少し足りない気がするので、他の本と併用が望ましいと思います。

実用git
gitが内部でどうやって動作しているのかが分かります。
一人で開発する管理人では、あまり使わないかも知れないですが、
知識として押さえておくだけでも理解度が違うので...
しかし、翻訳微妙...

Gitによるバージョン管理
実際に複数人で開発する時に役立つと思います。
お一人開発のことも書いてあるのでいいですね。

・Sublimeの本
探したのですが、コレ!っと言う本がありませんでした。

結局のところ、Sublimeのドキュメントやプラグインのドキュメントを読むか、
Webで調べるのが速いと思います。

誰か良い本ご存知ですか?

今後、必要な時は各記事に本の紹介(?)のようなものを追加していく方針で行きます。
今回は、十数件の記事を修正するのが面倒だったからまとめますが...
たまには、お薦め本紹介の記事やりますけど。

Kindleが欲しい...

以上!!

2015年5月12日

Rubyのエンコーディングについて

タイトル:Rubyのエンコーディングについて

目的:Rubyのエンコーディングについての備忘録を作成すること

以下の環境により実施
OS:Windows8.1
Ruby:v2.2.2 x64
ディレクトリ構造:
作業ディレクトリ
|-encoding-test.rb
|-test-data.csv(保存はUTF-8)
|-csv-read.rb
|-csv-write.rb

前提条件

  • なし

以下の流れにより説明
  1. デフォルトエンコーディングの確認
  2. 外部エンコーディングと内部エンコーディング
  3. 実際に起きたエラーについて
  4. おまけ(CSVファイルの読み書き)

何故、Rubyのエンコーディングについて書いたのかと言うと、
csvファイルを使いたくてRubyで読み書きをしていた際、とあるエラーが発生し追っていく内にエンコーディングに行き着いたからです。

今まで、何気なく使っていたのですが、
Rubyのエンコーディングについてよく分かっていなかったみたいです。
現役の方とも質疑応答したので、復習がてら備忘録を作成しようかと思います。

1.デフォルトエンコーディングの確認

そも、文字エンコーディングって何だろうか...
文字コードを別の文字コードに変換することを文字エンコーディングと言う。
コンピュータで文字を入力するには色々な種類の文字コードがある。
大体は、国際基準のUTF-8を使っているんだけど...Windowsだと...

ここでは、
WindowsにおいてRubyを使用する時のデフォルトエンコーディングを確認する。

1.1
まず最初に、
WindowsでRubyを使う時のデフォルトのエンコーディングは「Windows-31J」になっていた。
実際に確認するため、以下のコードを実行する。
ソース1

結果は以下のようになる。
#<Encoding:Windows-31J>
nil
nil
nil
#<Encoding:UTF-8>
#<Encoding:UTF-8>

1.2
デフォルトでは、Windows-31Jが設定されている。
その後、UTF-8に設定しているので、出力が変わっている。
これで、扱う文字コードが変えられる。

2.外部エンコーディングと内部エンコーディング

2.1
1.1のソース内に外部内部とあるが何かと言ったところを記述する。
「外部エンコーディング」、入出力ファイルの文字コードを表す。
「内部エンコーディング」、ソース内部で扱う文字列の文字コードを表す。

3.実際に起きたエラーについて

3.1
まず、起きたエラーは以下のもの
エラー:invalid byte sequence in Windows-31J (ArgumentError)

3.2
そもそも何で起きたのかと言うところだが、
自分が取っていた行動を以下へ記述する。

Windowsの新規テキストファイル作成でcsvファイルを作成した。
その後、内容を編集しUTF-8で保存した。
それをRubyで読み込もうとしたところエラーが発生した。

3.3
これは、Rubyの外部エンコーディングの設定が「Windows-31J」になっているため、
読み込みcsvファイル(UTF-8)では、文字コード形式が違うためエラーとなった。

つまり、ファイルとエンコーディング設定の文字コード形式が合致しないため発生した。

3.4
エラー内容をコピペ検索するだけで、解決法は出てきますね...
一応方法ざっくり
  • 「-E UTF-8」を実行オプションにつける
  • 「set RUBYOPT=-EUTF-8」で環境変数いじる
  • 外部エンコーディングの文字コードを合わせ
  • ファイルの文字コードを合わせる

こんなところかな...

4.おまけ

csvの読み書きをRubyで作ったので上げておく。
(即席ソースなので期待はしないで下さい。)

4.1
csvの読み込みソースは以下
ソース2

4.2
csvの書き込み(追記)ソースは以下
ソース3

4.3
テストに使ったcsvファイルは以下
csv

分かれば、大した問題ではないんだよな~

以上!!

以下、参考にさせて頂いたサイト

2015年5月11日

Hamlを使ってみた。

タイトル:Hamlを使ってみた。

目的:Hamlの基本中の基本的な使い方とRubyコード埋め込みをテストする。

以下の環境にて実施
OS:Windows8.1
Ruby: v2.2.2 x64
Sinatra:v1.4.6
Sinatra-contrib:v1.4.2
haml:v4.0.6
ディレクトリ構造:
作業ディレクトリ(名称は何でもいい)
|-sinatraTest.rb
|-views(名称は左記の通りにディレクトリを作成)
    |-view.haml

前提条件

  • 上記に準ずる環境が構築されていること

以下の流れにて実施
  1. Hamlインストール
  2. Ruby側のソースコード作成
  3. Haml側のソースコード作成
  4. 説明&テスト
1.Hamlインストール

1.1
Rubyコマンドプロンプトを起動する。

1.2
以下のコマンドを実行する。
コマンド:gem install haml

1.3
インストール完了後、以下のコマンドでhamlを確認する。
コマンド:gem list または haml -v

1.Ruby側のソースコード作成
以下の通りにソースコード作成する。
以前、以下の記事を見て頂いた方はソースを改造&追加する形で行うと楽です。
erbを使ってみた。

ソース1
「erb Test!!」の記述直し忘れた。
再アップするのが面倒なのでこのままで...

2.Haml側のソースコード作成
以下の通りにソースコード作成する。

ソース2

3.説明&テスト

3.1
Rubyソース側
「require haml」、hamlを使うためにrequireしている。(なくても警告が出るが動作する。)
「haml :view」、でviews/view.hamlを指定。

Hamlソース側
「%タグ名(htmlタグ)」で、タグの記述ができる。(閉じのタグは不要)
「%タグ名= @埋め込み名」でRubyコードで定義した内容を埋め込める。
または「%タグ名 #{@埋め込み名}」でもよい。
「-#」でhaml内だけのコメントとして扱える。

3.2
Rubyコマンドプロンプトから
sinatraTest.rbのディレクトリへ移動し、以下のコマンドを実行する。
コマンド:ruby sinatraTest.rb

3.3
「localhost:4567」へアクセスし、Rubyソース側で記述してある文言が表示されれば問題ない。

3.4
この項目はやらなくてもいいです。

hamlで記述しているファイルから、html記述のファイルを出力する。

Rubyコマンドプロンプトを起動して、viewsのディレクトリから実行する。
以下のコマンドを実行する。

コマンド:haml -q -E UTF-8 view.haml view.html
「-q」は、区切りをダブルクォーテーションにしてくれる。(デフォルトだとシングルになるため)
「-E UTF-8」は、文字コード指定。(ないとエラーが発生する)

今回のファイルでは、@titleや@textの部分はRubyソースに記述されているので、
htmlで出力しても何も記述されていない。

適当な文言を入れて出力すれば出てくる。
試してみて下さい。

erbよりもhamlの方が記述が少なくなりますね。
今回は、基本中の基本レベルなので、大した実感は出ませんが、
これから大きくなっていけば実感できるかと...

他にも色々と記述できることがあるのですが、、、それはその内...

閑話休題...(まったく関係のない話題)
さて今回なのですが、
github(gist)にてソースコードをいつものごとくアップロードしました。
しかし、あまりにも同じ名前を続けていたため、スパム扱いされてしまいました。
エラー(?)、警告(?)のようなものが出ますので、ちょっと焦りました。

対応としては、サポートの方へメールを出せば、対応してくれます。
ちなみにメールは一応英語で書きました。
管理人はまったくもって英語が苦手なのですよ。
なのでネットで調べた結果、固い英語になってしまいましたね...

GitHub Stuffの対応して下さった方、
拙い英語にもかかわらず、迅速な対応ありがとうございます!

みなさんも私と同じことにならないよう、気を付けて下さい。

以上!!

以下、参考にさせて頂いたサイト
Haml - REFERENCE(本家のドキュメント)

2015年5月10日

erbを使ってみた。

タイトル:erbを使ってみた。

目的:htmlにerbを埋め込みテストする

以下の環境にて実施
OS:Windows8.1
Ruby: v2.2.2 x64
Sinatra:v1.4.6
Sinatra-contrib:v1.4.2

前提条件

  • 上記に準ずる環境が構築されていること

以下の流れにて実施
  1. ディレクトリ作成
  2. ruby側のソースコード作成
  3. erb側のソースコード作成
  4. 軽く説明&テスト

さて、Sinatraメインで行くと言っておきながらいきなり公約破り...
まぁいずれerb、は使うことになったであろうから仕方がない。
今後Web系をやっていくのに必要(?)と言うことで納得して欲しい。

1.ディレクトリ作成
以下に示す通りのディレクトリを作成する。
作業ディレクトリ(名称は何でもいい)
|-sinatraTest.rb
|-views(名称は左記の通りにディレクトリを作成)
    |-view.erb

viewsディレクトリはどうにもsinatraのデフォルトのようです。
viewsディレクトリを作成せず、sinatraTest.rbとview.erbを同ディレクトリに置いた場合、
No such a fileと言った感じにエラーが発生します。

その際、「~/views/view.erb」にありませんと言った文言が表示されるので、
viewsがデフォルトであると検討を付けました。

2.ruby側のソースコード作成
以下の通りにソースコード作成する。
以前、以下の記事を見た方はそちらを改造追加する形で行うと楽です。
sinatraを使ってみた。

ソース1

3.erb側のソースコード作成
以下の通りにソースコードを作成する。
ソース2

4.軽く説明&テスト
簡単に説明すると、
sinatraTest.rbにて、erb側で使うものを定義し、view.erbにて利用している。

例)
sinatraTest.rbの「@title」部分が定義部分。
view.erbの「<%= @title %>」部分がhtmlソースへの埋め込み部分。
「erb :view」でview.erbで使うと記述している。

htmlの細かい部分は割愛する。

記事書いてから気づいた...hamlかslim使えばよかった...orz
以上!!

2015年5月8日

今後の予定~

さて、今後の予定なのですが、、、

現状、sinatraさんに心奪われているのですよ!!
(女性にも感じたことがないこの胸の高鳴り!これが...これが恋かwww)
少しは現実でも見た方がいいのでしょうが...しかし気にしない方向でw

というわけで、メインとしてはsinatraを使っていこうかと思います。

でもまぁ、他にも色々とhubotもやりたいし、webhookもwebAPIもやりたいですね。
なので、たまに(?)脱線して他のこともやっていこうと思います。

しかし、Web系の開発知識もすっかり忘れている現状、亀更新になってしまいますね...
一応、sinatraで何か作ってみるのが、直近の目標ですね。(掲示板とか?)

その内ですが、ruby+sinatra+herokuって感じにできれば御の字かと...

それにしてもちょっと離れていた間(約二年)に随分変わった感じがします。
(当時からあったけど、自分が勉強してないだけ?)

一応、備忘録のつもりですが人様が目にすることがあるので、
少しは意識して、皆さんの少しでも役に立つ記事が上げられれば嬉しいですね~。

ちなみに、管理人は割と適当+ある程度ハイテンションが素です。
あまりにもブログ中と口調が違うからと精神的に不安定ではないので、あしからず...
(どうでもいいことですね)

以上、つまらない駄文失礼しました~ノシ

sinatraを使ってみた。

タイトル:sinatraを使ってみた。

目的:sinatraのテストプログラムを書く。

以下の環境により構築
OS:Windows8.1
Ruby: v2.2.2 x64
RubyDevKit:DevKit-mingw64-64-4.7.2-20130224-1432-sfx

前提条件

  • Rubyがインストールされていること
  • RubyのDevKitがインストールされていること

前提条件が満たせていない方は、以下を参考にしてください。

以下の流れにて実施
  1. gemのインストール
  2. sinatraのテストコード
sinatraのサイトの流れに沿って実施した。
一部ソースが異なるため、sinatraのサイトを見て実施した方が確実だと思う。

1.gemのインストール

1.1
Rubyのコマンドプロンプトを立ち上げ、以下のコマンドを実行する。
コマンド1:gem install sinatra
コマンド2:gem install sinatra-contrib

1.2
gemのインストール後、以下のコマンドを実行し、sinatra(バージョン)、sinatra-contrib(バージョン)が確認できれば問題ない。
コマンド:gem list

2.sinatraのテストコード

2.1
以下の内容を作成する。

sinatra-contribを入れた理由としては、自動リロードさせるため。
これがあるとソースを書き換えた後、いちいち再起動しなくて済む。
(ソース中の「require 'sinatra/reloader' if development?」の部分)

しかし途中問題もあった、
sinatraとsinatra-contribをインストールするとtiltと言うgemがインストールされるのだが、
sinatraを入れるとtilt2.0.1、sinatra-contribを入れるとtilt1.4.1が入りsinatra-contribを使うと競合する。

それを避けるため、gemのtiltをバージョン指定で読み込み、requireもしている。
どちらかを消すとかの対処の仕方が調べても出てこないので、
現状こういった方法で対処している。
他、詳しい内容はまだ説明できないので割愛する。

2.2
作成できたら実行し、「localhost:4567」をブラウザから開く。
「Hello World!!」が表示されていれば問題ない。

以上!!しかし、最近Web開発便利になったんだな~(やっぱ一度離れると大変だわw)

参考にさせて頂いたサイト
なし(あえて挙げるならsinatraの本家サイト様)

2015年5月5日

Sublime Text3のRubyプラグインインストール

タイトル:Sublime Text3のRubyプラグインインストール

目的:Sublime Text3にてRubyのプラグラムを作成する際、快適にプログラムできるよう環境を整える。

以下の環境にて構築する。
OS:Windows8.1
Ruby:Ruby 2.2.2 x64
SublimeText3:Sublime Text Build 3083 x64
msysGit:msysGit-netinstall-1.9.5-preview20150319

以下の前提条件を必要とする。

  • SublimeText3がインストールされていること
  • Rubyのインストールがされていること
  • Package Controlがインストールされていること
  • msysGitがインストールされていること


前提条件を満たしていない方は、
以前、記述した記事があるのでそちらを参考にしてください。
Sublime Text3のインストール(Package Control含む)
Rubyのインストール
msysGitのインストール

以下の流れにて実施する。
  1. SublimeCodeIntelプラグインをインストール
  2. SublimeLinterプラグインをインストール
  3. SublimeLinter-Rubyプラグインをインストール

1.SublimeCodeIntelプラグインをインストール

コードの入力を補完してくれるプラグイン。

1.1
SublimeText3を起動する。

1.2
以下の手順を実行する。
「Ctrl+Shift+p」→「install」→「SublimeCodeIntel」

1.3
インストール終了後、初期設定を行う。
以下の順に実施

  1. 上部メニューから、「基本設定」→「Package Settings」→「SublimeCodeIntel」→「Settings - Default」を選択する。
  2. 表示されたテキストを全てコピーする。
  3. 上部メニューから、「基本設定」→「Package Settings」→「SublimeCodeIntel」→「Settings - User」を選択する。
  4. コピーした内容をペーストする。
  5. 以下の内容を最後の行に追加する。(カンマ(,)忘れずに!!)
追加内容
ーーーー
"Ruby": {"ruby": "C:/Rubyインストールフォルダ/bin/ruby", "rubyExtraPaths": ["C:/Rubyインストールフォルダ/lib/ruby/gems/2.2.0"]}
ーーーー


手順1、3の場所

手順5の追加行

1.4
設定のテストを実施する。
任意のディレクトリへrubyファイルを作成する。
作成したファイルは、ドラッグ&ドロップでSublimeへドロップする。

1.5
以下のコードを記述する。
ーーーー
testHash = Hash.new()
testHash.empty?()
ーーーー

記述の際、Hashを新しく作成する時とHashのメソッドを選択する時にコードの保管がされた。

これにてSublimeCodeIntelはインストール完了。

2.SublimeLinterプラグインをインストール

各言語のLinterを使用するために必要なプラグイン。

2.1
上部メニューから、「基本設定」→「Packageフォルダ」を選択する。
もしくは、「C:\Users\ユーザ名\AppData\Roaming\Sublime Text 3\Packages」のフォルダを開く。

2.2
msysGitのプロンプトを起動し、上記ディレクトリへ移動する。

2.3
以下のコマンドを実行する。
コマンド:git clone https://github.com/SublimeLinter/SublimeLinter3.git SublimeLinter

コマンド完了後、Sublimeを再起動する。

3.SublimeLinter-Rubyプラグインをインストール

RubyのLinterプラグイン。

3.1
以下の手順を実行する。
「Ctrl+Shift+p」→「install」→「SublimeLinter-Ruby」

3.2
インストール後、テストを実施する。
任意のディレクトリへrubyファイルを作成する。
作成したファイルは、ドラッグ&ドロップでSublimeへドロップする。

3.3
以下のコードを記述する。
testHashの次にドット(.)ではなく、カンマ(,)を記述する。
ーーーー
testHash = Hash.new()
testHash,
ーーーー

行の左側に赤い点が表示されれば正常にインストールされている。

これにてインストール終了。

また追加したプラグインがあれば、追記するか新しく記事を作成する。
以上!!

以下、参考にさせて頂いたサイト
For myself tomorrow - SublimeText3でRubyをコーディングする際の最低限のインストール&設定(Windows)

人気の投稿