Enjoy Programming!

本日から、朝はRubyの基礎をやることにしました。
日々学んだことを記録していこうと思います。

最初は「たのしいRuby 第2版」を使います。

Amazon CAPTCHA

まえがき〜はじめに

一部抜粋

 テレビでサッカー選手のプレーを見ていると、さほど難しくないように感じてしまいます。彼らはやすやすとドリブルをこなし、楽々とシュートを決めているように見えるからです。しかし、彼らがそのようにたのしげにプレーする陰には、日々の鍛練と努力があるわけで、そのような背景を持たない一般人である我々が彼らに混じろうものなら、たのしいどころかボールに近づく事さえできないでしょう。

 プログラムを作る人は、それほど多くはいません。ほとんどの人はプログラムを使うだけです。これは、「文章を読む人」と「文章を書く人」の割合に似ています。小説やエッセイ、ノンフィクションなどの本を読まれる方はたくさんいますが、自分で小説を書いたりノンフィクションを書いたりする方は、読者の数に比べると、ずっと少ないものです。
 ほとんど毎日のようにWebサイトを更新している人は、たくさんいます。それは、周りの人をたのしませたり、何かちょっとした役に立つ情報を提供したりしています。ささやかなものではあるかもしれませんが、それをたのしみんしている読者、つまり「ユーザ」がいる、立派な「人に読ませるための文章」といえるでしょう。
 このようなサイトを作る目的はいろいろあるでしょう。けれど、自分でコンテンツを作ること、それ自体が面白い、という人は少なからずいると思います。個人サイトなら、そうしたたのしみを求めて作られているサイトの方が多いくらいかもしれません。
 プログラミングでも、同じようなことがありうるのではないでしょうか。
 つまり、何かの目的の達成のためだけにプログラミングを行うだけでなく、プログラミングそのものをたのしむ、ということが。
 ただし、それはプログラムの内容だけではなく、どのようなプログラミング言語を用いてプログラミングを書くかによっても変わってくるでしょう。このような、プログラミングそのものをたのしむことに向いているプログラミング言語は、はたしてあるのでしょうか?
 ――あります。それが、少なくともその1つが、Rubyです。

 Rubyは、プログラミングをたのしくするためのプログラミング言語です。
 Rubyには、「徹底的なオブジェクト指向」「豊富なクラスライブラリ」「人に優しい直感的な文法」など、いくつかの特徴がありいますが、そういった特徴はRubyの目的ではありません。あくまで、プログラミングをたのしくするための手段です。

 Rubyの世界へ、ようこそ。
 Enjoy Programming!

まぁ、あたりまえですが、何か技術を上手に使いこなそうと思ったら継続した努力が必要です。
ただ、努力努力って努力が目的になってはいけない。

根本は、人生を楽しむことです。その手段でプログラミングを選んでいるだけです。

その楽しんでいることが人のために役に立つなら、言う事はありませんね。
あと、楽しまないと継続ないと思いますで、楽しいことは重要です。
もちろん、いやなこともありますので、そこは楽しめるように工夫すればいいのです。
なんでもゲームにしてしまえば、楽しいです。あとは、プロ意識でカバーしたり?
ただ、なるべくストレスがたまらない方法でこなしていくのがコツだと思います。


プログラミングの世界はたのしいですよ。

Enjoy Programming!

Rubyについて

※これは「たのしいRuby 第2版」をもとにしています。
Amazon CAPTCHA


Rubyスクリプト言語です

一部抜粋

スクリプト言語の場合、書いたスクリプトコンパイルする必要がありません。そのまま実行できます。つまり、スクリプト言語を使えば、

 プログラムを書く → コンパイルする → 実行する

と言う流れが、

 プログラムを書く → 実行する

という流れになるのです。そのため、コンパイルの必要な言語に比べ、プログラミングを手軽に楽しむことができるのです。

まぁ、今は開発環境も整ってきて、javaでも書いたらすぐ実行できるように組んでしまえば、そんなにかわらないような気もしますが、環境設定が大変楽だというのは、スクリプト言語の大きな特徴ですね。
トムキャットだのなんだのを動かすのはとってもめんどいです・・・。


Rubyオブジェクト指向言語です

一部抜粋

 Rubyは、オブジェクト指向プログラミングが大好きなプログラマが、最高のオブジェクト指向言語を作ろうとして設計し、開発した言語です。すべてのデータは一貫してオブジェクトとして表現されているので、考えた事を素直に記述できるようになっています。継承やMix-inといった、オブジェクト指向言語らしい機能はもちろん備わっています。

個人的に、オブジェクト指向系言語は慣れ親しんでいるので好きです。
Lipsなどの関数型言語もまた熱を帯びてきているような気もしますが、Rubyオブジェクト指向の神髄を見ていこうと思います。


Rubyマルチプラットフォームな言語です。

一部抜粋

 Rubyは、MacOS XLinuxFreeBSDSolarisHP-UXなどUnix系のOSや、Windowsなど、さまざまなプラットフォームで動作します。Rubyスクリプトの多くは、まったく書き換えることなく異なるプラットフォームでもそのまま実行させることができます。

どこでもすぐ実行できるというのはとっても魅力ですね。PHPでもコマンドライン版はありますが、どうもいまいちな感じです。やはりWebアプリ用につくられた感じがします。その点Rubyはプログラミングをしているという感じがします。こういう感じ大事だと思います。
あ、べつに、PHPが嫌いなわけではありません。僕も数年前はPHP使ってましたし、すぐ動く部分がすごく好きです。ただ、オブジェクト指向で直感的に書こうとして、書けない場合があったりするので、その辺違和感を感じます。Rubyをはじめてからは、Rubyの書き心地の良さにすっかりはまりました。


Rubyオープンソースソフトウェアです。

一部抜粋

 Rubyは、まつもとひろゆきまつもとゆきひろ氏によるオープンソースソフトウェア(フリーウェア)です。誰もがRubyを入手して、自由に使用することができます。1995年にインターネット上に公開されたRubyは、多くの人に支持され、今では活発な開発が行われています。

まつもとひろゆきまつもとゆきひろさんに感謝(-人-)

Movable Type のAtom.xmlテンプレートの「published」と「updated」の時間のズレについて

環境

Movable Type 3.21-ja

Atom.xmlに表記される時間のズレについて

Movable Type 3.21-jaのAtom.xmlのデフォルトテンプレートを見てみると、

・
・
   <published><$MTEntryDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></published>
   <updated><$MTEntryModifiedDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></updated>
・
・

このようになっています。

この状態だと、協定世界時(utc)が表示されていまいます。
ここは、日本ですので、協定世界時(utc)+9時間が正しい時間です。

utc="1"


この属性が「協定世界時を表示する」という設定になっていますので、カットすれば日本時間になります。

修正後

・
・
   <published><$MTEntryDate format="%Y-%m-%dT%H:%M:%SZ"$></published>
   <updated><$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%SZ"$></updated>
・
・


協定世界時 - Wikipedia

Atom.xmlの時間がutcがデフォルトである背景

ここは、日本なわけですから、日本時間で表示された方が便利だと思うのに、なぜutcが設定されているのでしょうか。
それには、Atomの仕様が背景にあるようです。


Atom 0.2 Spec 日本語 HTML 版

modified
W3DTF です。dcterms:modified にあたります。UTCである*べき*です。


created
0か1回表れます。W3DTF です。dcterms:created にあたります。UTCである*べき*です。もし無い場合、その値は modified と同じとみなされます。

仕様でUTCである"べき"となっているからですね。