Ruby
Hikiをさくらインターネットにインストール
今年に入ってから運用している子ども英語クラスのレッスンプランやレッスン記録、導入した言語材料等の情報を一括管理するために、Wikiを使おうと思い立つ。
heydays.orgの運用サーバーとして利用しているさくらインターネットレンタルサーバのライトプランはRubyに対応しているので、Rubyで書かれたWikiクローン「Hiki」(参照)を使うことに。
試してみると、あっさりとインストールすることができた。以下、備忘録。
まずはHikiの最新版をダウンロード&解凍
Hiki – ダウンロード
いくつかのファイルを編集
hikiconf.rb
ファイル名を「hikiconf.rb.sample」から「hikiconf.rb」に変更
データを保管するパスを指定。ウェブサーバのルートディレクトリである「/home/(User Name)/www/」より上位のパスを指定する。
@data_path = '/home/(User Name)/hiki_data'
その他、いくつかの設定項目が存在するが、それらはインストール後に管理画面からも設定できるので、ここでは「@data_path」の指定のみでOK。
hiki.cgi
一行目の「#!/usr/bin/env ruby」をRubyのパスに変更する
#!/usr/local/bin/ruby
.htaccess
ファイル名を「dot.htaccess」から「.htaccess」に変更
内容を以下に編集
#Options +ExecCGI
#AddHandler cgi-script .cgi
DirectoryIndex hiki.cgi
<Files "hikiconf.rb">
deny from all
</Files>
ファイルをサーバにアップロード
「hiki-0.8.7」以下のファイルを「data」フォルダを除いて、全てサーバにFTPでアップロード※アップロード先フォルダ例: /home/(User Name)/www/hiki
「hiki-0.8.7\data」以下のファイルを、「@data_path」で指定したディレクトリにアップロード
ファイルの属性を変更
/home/(User Name)/www/hiki/hiki.cgi → 属性「755」に変更
/home/(User Name)/hiki_data → 属性「777」に変更
確認
「http://(Your Domain)/hiki/」にアクセスしてみて、Frontpageが表示されればインストール成功
表示されなければ、上記設定ファイル変更内容や、ファイルの属性を再チェック
管理者パスワード設定
ページ右上の「管理」より管理画面を開いて、パスワードを設定する
その他、サイト名等の環境設定も、管理画面で可能
必要に応じて、プラグインも選択できる
Hikiを外部に公開したくない場合
コントロールパネルのファイルマネージャーから、パスワード認証を設定することができる。詳細は、以下のオンラインマニュアルを参照。http://support.sakura.ad.jp/support/manual/help/cpanel_fileman.html
See also
Hiki – FrontPage
Hiki – インストール
Hiki – Wikipedia
Hikiとは – はてなダイアリー
犬と人間の年齢換算コード
Rubyでプログラミング勉強中(参照)のちょっと息抜きに書いてみた。もうちょっとスッキリ書けないかなと思いつつ、現時点ではこれが精一杯。
today = Time.new
thisYear = today.year
thisMonth = today.month
month = [1, 3, 5, 6, 7, 9, 10, 12, 13, 14, 16]
age_1 = 17
age_2 = 24
dogYear_1 = 7
dogYear = 4
puts ‘あなたのワンちゃんは西暦何年生まれですか?’
birthYear = gets.chomp.to_i
while birthYear > thisYear
puts ‘今年以前の西暦年を入力してください。’
birthYear = gets.chomp.to_i
end
puts ‘あなたのワンちゃんは何月生まれですか?’
birthMonth = gets.chomp.to_i
if (thisYear == birthYear and thisMonth == birthMonth)
puts ‘あなたのワンちゃんは生まれたばかりですね。おめでとう!’
exit
end
age_y = thisYear – birthYear
age_m [...]
A Few Things to Try on 7. Arrays and Iterators
Rubyでプログラミング勉強中(参照)。
Arrays(配列)とIterators(イテレータ)について学ぶ。
A Few Things to Try on 7. Arrays and Iterators
一問目
Write the program we talked about at the very beginning of this chapter.
Hint: There’s a lovely array method which will give you a sorted version of an array: sort. Use it!
7. Arrays and Iterators
『Write the program we talked about at the very beginning of [...]
閏年(Leap Year)判別コード
というわけで(id:heydays:20080508:1210235785)、模範解答を参考に閏年(Leap Year)判別コードを見直してみる。こうして見直してみると、プログラム初心者丸出しで恥ずかしいことこの上ないけど、そこら辺は気にしない気にしない。
Leap Years. Write a program which will ask for a starting year and an ending year, and then puts all of the leap years between them (and including them, if they are also leap years). Leap years are years divisible by four (like 1984 and 2004). However, years divisible by 100 are not leap [...]
模範解答発見!
id:Kiskeさんという方が、僕と同じようにダイアリーに練習問題の解答を記録しているのを見つけました。
「rubyチュートリアルを試してみる」の検索結果一覧 – note-phper
コードがシンプルで素敵です。特に、閏年(Leap Year)判別コードを見たときは、自分の書いたコード(id:heydays:20080508:1210225720)が随分と鼻タレだったということに気付き、泣き笑いしました。自分の頭で悶々と考えるのも大事だけど、ちゃんとしたコードを参考にするっていうのも同じくらい大事なんだなと、思い知る次第です。
僕は今、7. Arrays and Iteratorsに取り掛かっているところ。これからどんどん練習問題が複雑化していくなあと感じていたので、模範解答を見つけることができて、ラッキーです。とはいえ、自分の頭で練習問題コードを書ききってから、模範解答を参考にしていかねば、です。
id:Kiskeさん、勝手に模範解答として参考にさせていただきますので、宜しくお願いします。
See also
「rubyチュートリアルを試してみる」の検索結果一覧 – note-phper
Learn to Program, by Chris Pine
プログラミング入門 - Rubyを使って -
[Learn to Program]記事一覧
A Few Things to Try on 6. Flow Control
Rubyでプログラミング勉強中(参照)。
本当は毎日ちょっとずつでもプログラムを書いて勉強していこうなんて意気込んでいたんだけど、日々のアレコレに紛れて、なかなか・・・。ま、いっか。のんびりいきましょ。
というわけで、今日は、Chapter 6. Flow Control(参照)。BRANCHING(if文)やらLOOPING(while)が登場。これまでのChapterに比べると、ぐっと難しく、そんでもって楽しくなってきた。
A Few Things to Try on 6. Flow Control
一問目
“99 bottles of beer on the wall…” Write a program which prints out the lyrics to that beloved classic, that field-trip favorite: “99 Bottles of Beer on the Wall.”
6. Flow Control
※”99 bottles of beer on the wall”っていうのは、マザーグースの歌らしい。日本語訳(参照)に出力例が出ている。
ちょっと考えたけど、以下な感じで落ち着いた。出力例通りに出力されたので、OKかな。
beer = 99
while beer != 0
puts beer.to_s [...]
A Few Things to Try on 5. More About Methods
Rubyでプログラミング勉強中(参照)。
今日は、Chapter 5. More About Methods(参照)でMethodの基礎を学ぶ。ObjectとMethodについての理解がちょっとだけ深まった。以下のくだりが個人的には非常に分かりやすかったかな。
So far we’ve seen a number of different methods, puts and gets and so on (Pop Quiz: List all of the methods we have seen so far! There are ten of them; the answer is below.), but we haven’t really talked about what methods are. We know what they do, but [...]
A Few Things to Try on 4. Mixing It Up
Rubyでプログラミング勉強中(参照)。
Numbers、Letters、Variables and Assignmentと学び、それらをMix Upした内容が、Chapter 4. Mixing It Up。まだまだ基本中の基本中の基本の段階です。以下、この章の練習問題記録。
A Few Things to Try on 4. Mixing It Up
一問目
Write a program which asks for a person’s first name, then middle, then last. Finally, it should greet the person using their full name.
4. Mixing It Up
小細工せず、素直に書く。
puts ‘What\’s your first name?’
fName = gets.chomp
puts ‘My first name is ‘ [...]
A Few Things to Try on 1. Numbers
30過ぎて始めたプログラムの勉強(参照)の先生&テキストであるLearn to Programには、いくつかのチャプターの最後に『A Few Things to Try』(練習問題)が用意されている。ただチュートリアルを読むだけではなく、実際に頭を使ってコードを書くのは、それが身につくだけではなく、なかなかに楽しい。
ただ、その『A Few Things to Try』(練習問題)には回答が用意されていない。コードを書いて実行した結果を見て、その結果が合っていることは分かるとしても、そのコードがシンプルに正しく、言い換えれば美しく書かれているのか、というのは正直分からない。なので、ここに晒してみることにした。もしかしたら、誰かの突込みをもらえるかもしれないし、後になって自分で見て、恥ずかしくも微笑ましい気持ちになれるかもしれない。
というわけで、Chapter 1. Numbersの『A Few Things to Try』のMy回答。
A Few Things to Try on 1. Numbers
Write a program which tells you:
how many hours are in a year?
how many minutes are in a decade?
how many seconds old are you?
how many chocolates do you hope to eat in [...]
Getting Started
『何事も始めるのに遅すぎるということはない』と誰かが言っている通り、プログラミングを30歳超えて始めるのも遅すぎるなんてことはない、ということだ。
というわけで、Rubyの勉強を始めた。プログラミングは、もう8年近く前にほんのちょっとかじった程度なので、ほとんど素人・初心者である。そんな30過ぎ男に最適なテキストはないか、と検索してみると、Learn to Program, by Chris Pineが見つかった。簡単な英語で書かれているので、原文のままでも十分勉強できるけど、とても良質な日本語訳(参照)もあるので、原文をベースに、ちょっと理解しづらいような部分を日本語訳と照らし合わせながら勉強している。このGW休みは、ちょっとしたハプニングがあり出かけることができないので、家で読書かDVDかプログラム。そんな休日も悪くない。というか、プログラミング、楽しい。
とはいえ、ただ勉強していても続かない。なので、何かアプリを作る、というのを一応ゴールにしている。勉強した先に作りたいアプリのアイデアがいくつかある(プチアプリばかりだけど)ので、それらを作るまでは続けていく。というよりも、そのアイデアのいくつかを思いついたから、プログラムを書きたくなった、という感じ。
ま、いずれにしても、飽きるまでプログラム楽しんでいこうと思う。
See also
Learn to Program, by Chris Pine
プログラミング入門 - Rubyを使って -
[Learn to Program]記事一覧