レンタルサーバー引っ越し

このサイトの運営にあたって、レンタルサーバーを今まではfc2のライトプランを使ってやっていたわけだが、今回いろいろな理由でさくらレンタルサーバーに引っ越すことにしました。
最大の理由としては、fc2のライトプランだとphpのバージョンの関係で自分が普段使っているフレームワークであるLaravelが使えないということで、比較的新しいバージョンのphpが使えるレンタルサーバーを調べたところ、さくらが無難かなということで決めました。
他にも、sshでログイン出来ることとかも大きかったです。これによってちょっとしたこと(いらないファイルの削除とか)が出来るようになって、いろいろ便利だと実感しています。
とはいえ、フォルダのリンク先の設定とか結構ややこしかったこともあったりします(この辺を参照)。でも今回の作業で多少はサーバーとかDNSとかインフラ関係の勉強になったし、まあよかったのかなと。
Laravelで作ったブログはこちらで、プログラミングとか技術的なことについては今後は主にそっちに書くと思います。というか会社の関係で、月1回は技術的な内容のブログを書いていて、それにその自作ブログを使うという意味合いもあります。
後はせっかく引っ越したことだし、もっと全体的にコンテンツの充実も図っていこうかと。

何はともあれ、今まで4年7か月ほど、fc2レンタルサーバーにはお世話になりました!さくらレンタルサーバー、これからよろしくお願いします!

行かずに死ねるか!

ここの所ブログの更新が滞っていたので、たまには自分が読んだ本について書いてみることにする。
今回紹介するのは、この本。

行かずに死ねるか-―世界9万5000km自転車ひとり旅-幻冬舎文庫-石田ゆうすけ

買ったのは去年セブ留学が終わって、バンコクに滞在中にビエンチャンに向かう飛行機に乗っている間の暇つぶしに何かいい本ないかと思ってバンコクの紀伊国屋に行って、その時に「世界95000km自転車ひとり旅」というインパクトの強さと著者の名前が自分と同じゆうすけだったこともあって、手に取って買ってみた。
あまりネタバレになりすぎない程度に感想とかを書いてみようと思うが、実際読んでみると想像以上に濃い内容の旅だというのが第一に感じた。笑いあり、サバイバルあり、出会いあり、アクシデントあり、世界各地の美しい風景あり、そして中には悲しい出来事もあり、7年半95000キロが濃密に凝縮されているという印象。
著者の文章力がまた素晴らしく、読んでいて世界各地のいろいろな場所の風景が思い浮かんでくるようだった。ティカル神殿、マチュピチュ、エジプトのピラミッド、・・・自転車ではなくても出てくる場所に行ってみたいと思わせるものがあった。
自分も学生時代はたまに自転車で小旅行をしたことがあったけど、一番遠くに行った時でも5日間かけて京都に行ったのが最長で、しかも5日間自転車をこいだだけで足がいっぱいいっぱいでこれ以上は無理と思って帰りは折り畳み自転車を新幹線に乗せて帰ったというものだった。そう思うと95000キロの自転車の旅なんて想像もつかないのが正直なところ。それでも、学生時代のいい思い出の一つであるのは確か。さすがに世界一周は無理だけど、いつか時間があるときに1泊2日くらいの自転車旅行をしてみたいと少し思ったり。
後は一番痛感させられるのは、著者が最後の方に書いていた「生きて帰るときことはとても大きな意味がある」という事だ。人生いろいろな経験をするのは大事なことだけど、何をするにしても命あっての経験だ、と思う。

5/2-6 GW旅行(伊勢神宮、熊野古道、大阪)後編

旅行からもう2か月近くたってしまったけど、GW旅行3部作最終回。
那智大滝を見てから、バスで那智勝浦に戻り、そこから電車で田辺市まで戻る。
田辺市駅の近くに世界遺産の構成要素である闘鶏神社があるということで、ゲストハウスに戻る前に取りあえず寄っていくことにする。


闘鶏神社

何でも、源平合戦の頃湛増という人が紅白の鶏を戦わせて白の鶏が勝ったということで源氏の味方をすることにしたという逸話があるそうで。
その後食事をしてゲストハウスに戻る。ゲストハウスの1階はちょっとした居酒屋みたいな感じになっていて、そこで飲んでいてゲストハウスの人と別のお客さんと3人で旅の事を話したりする。もう一人のお客さんは日本各地のいろいろなところにある坂道や階段の写真を撮っていて今回こちらに来ていたそうで。

翌5日。起きてすぐチェックアウトし、特急電車などを乗り継いでエスパルスVSガンバの試合を見るために吹田まで向かう。万博記念公園駅の前の山田駅から万博記念公園に向かう電車に乗ろうとするが、券売機が混んでいたのでタクシーに乗ることにする。
しかしこれが裏目に出て、道がかなり混んでいる。そこで途中で降りて2kmくらい歩いて吹田スタジアムに向かう。かなり疲れた。

吹田スタジアム。サッカー専用だけあってかなりの迫力。

さて試合。前半は一進一退の攻防で0-0で後半に。後半4分期待の新外国人チアゴアウベスのゴールでエスパルスが先制するもそのちょっと後に追いつかれる。その後も攻めようとするも点を奪えず1-1の引き分けに。もちろん勝てれば一番よかったのだが、アウェイで強敵ガンバ相手の勝ち点1は悪くはない結果か。
試合後サポーター仲間と串カツを食べに行く。その後電車の中に忘れ物をしたことに気が付いて忘れ物を取りに行った後、天王寺のゲストハウスに。

旅行最終日の6日は京セラドームにオリックスVS北海道日本ハムの試合を見に行く。試合は初回に中島のタイムリーで先制するも、先発コークがピリッとせず5回3失点で降板。その後も失点して打線もその後は小谷野のタイムリーのみで2-5で負けてしまう。キャッチャー若月のリードがどうも単調な気がした。伊藤にももう少しマスクをかぶる機会を与えてほしいとか思ったり。

負け試合にもやもやとしたものを抱えつつも新幹線で東京に戻る。何だかんだで5日間色々回れて充実した旅行だった。次の旅行はいつになるものか。日本国内ももっといろいろ旅行してみたいけど、海外(ヨーロッパとか中南米とか)も行ってみたい。来年のGWはどうしようか。

5/2-6 GW旅行(伊勢神宮、熊野古道、大阪)中編

2017GW三重・和歌山・大阪旅行記の中編。
3日朝起きてゲストハウスを後にして、JRで多気駅まで行ってそこから特急ワイドビューで新宮まで。電車の中では例によって思いっきり爆睡。
新宮駅について、バスに乗る時間までは駅周辺をフラフラしたり、サンマ寿司を食べたり。
サンマ寿司
徐福公園
なお、熊野三山の1つである熊野速玉神社はバスの時間的に微妙だったのと学生時代に旅行で行ったことがあるので、今回はパス。
バスが来たので、熊野三山の1つ、熊野本宮まで行く。
熊野本宮入口
熊野本宮をお参りしてから湯の峰温泉で一っ風呂。混んでいたこともあって、残念ながら壺湯には入れず。
湯の峰温泉からバスで紀伊田辺駅まで。この日は紀伊田辺駅近くのゲストハウスに宿泊。

翌4日は朝起きてすぐゲストハウスを出て紀伊田辺駅の売店で買い物して軽く食事の後、紀勢本線で紀伊勝浦駅まで行く。例によって電車の中では爆睡。
那智勝浦はマグロで有名な勝浦漁港があるだけあって、駅の近くはマグロ料理屋がいくつかあった。混んでいるお店ばかりだったけど、空いているお店に入って鉄火巻を食べる。うん、なかなか美味しい。
そこからバスに乗って大門坂駐車場前で降りて、そこから那智大滝までの道(大門坂)を歩いていく。



那智大滝に着く頃は、残念ながら雨が降っていた。でも、さすがに那智大滝はものすごい迫力だった。

続きは後編へ。

5/2-6 GW旅行(伊勢神宮、熊野古道、大阪)前編

久々のブログ更新、順番通りならラオス時代の思い出になるはずだけど、ゴールデンウィークに三重・和歌山・大阪に旅行に行ってきたので今回はそれについて書こうかと。
ついでに言うと、こっちのブログはラオス時代の思い出+旅行記+日常のことや自分が考えたことについてのブログ(要するに技術的な事以外)にして、プログラミングとかの技術的な事は別ブログ(Laravelで自作したやつにするのも面白いかも)にする事を考えています。

まずは旅行記前編。
5月1日の仕事を終えてから毎度おなじみ新宿のバスタで夜行バスに乗って、翌2日朝に四日市駅に着く。ちなみに今回は2日に有休をとったので、2日から6日までの旅行になった(7日は家でゆっくりするために空けた)。
今回は四日市での観光は考えていなかったので、軽く朝食をとってから電車で伊勢市まで行く。ちなみに、四日市は学生時代に自転車で東京から京都に行くという今から思えば無茶な事をしたのだが(学生時代の旅行記もブログのネタにしてもいいかも)、その時に工業地帯を通った記憶がある。
伊勢市での最大の目的地は当然伊勢神宮なのだが、その前に赤福かき氷を食べられるお店が目に入ったので、入ってみる。

赤福かき氷。外観はただの抹茶かき氷なのだが、食べていくうちに赤福が出てきて、それがなんとも言えない面白さ。
そして、伊勢神宮。

ゴールデンウィーク中ということもあり、参拝客はさすがに多かったとはいえ、流石に日本を代表する神社だけあって何ともいえない雰囲気。自分もしっかりとお参りしてきました。
神宮内にあるせんぐう館にも入って、伊勢神宮の歴史や神道などについて見分を深めることも出来、行ってよかったと思えた。
伊勢神宮の参拝を終えた後は、伊勢市駅と伊勢神宮の間にあるお店で伊勢うどんを食べて腹ごしらえ。

鰹節の出汁が効いて、なかなかイケる味だった。

その後は電車で鳥羽に行って、ミキモト真珠島の真珠博物館に行く。真珠がどうやってできるのかとか、色々勉強になった。海女さんが海に潜って真珠を獲るのも見ることができた。

その後、水族館にも行きたかったが、残念ながら閉館時間には間に合わなかった。
海産物が食べられるお店がいくつかあったので、せっかくだし伊勢エビを食べてみた。お値段は3000円と、さすがに高かったが、プリプリとした触感と濃厚な味が素晴らしかった。

その後は伊勢市に戻って、ゲストハウスに宿泊。

翌日からは熊野古道だが、それについてはまた次回。

JavaScriptのオブジェクト指向 その1

ここのところいろいろバタバタしたり体調崩したりで久々の更新になってしまった(>_<)

前回こちらでPHPのオブジェクト指向について取り扱ったので、今回はJavaScriptのオブジェクト指向について簡単に説明してみます。
JavaScriptのオブジェクト指向で、最も特徴的なのはプロトタイプベースということでしょう。C++やJava、PHPやRubyなどのほとんどのオブジェクト指向言語はクラスベースなので、その辺の違いに戸惑う人は結構多いと思います(僕もそうでした)。
クラスベースのオブジェクト指向言語では最初にクラスを定義して、その中にプロパティやメソッドを定義していくのですが、JavaScriptではオブジェクトはプロパティと値の組み合わせで表現されます。値には数値(Number)、文字列(String)、論理値(Boolean)といった基本型(プリミティブ型ともいう)もしくは別のオブジェクトが入ることになります。
例えば、こんな感じです。

プロトタイプベースと聞くと「何だそりゃ?」と思うかもしれないですが、基本的にはハッシュテーブルみたいなものと考えておけばそんなに間違いはないかなと思います。
プロパティの値を確認したいときは、

とすればいいことになります。
これを見ると気がつくかもしれませんが、JavaScriptの標準で用意されているconsoleも実はオブジェクトです。これ以外にも、よく見るdocumentとかwindowなんかもオブジェクトです。なので、JavaScriptでは基本的にほとんどのものはオブジェクトとして扱うことができるのです。
オブジェクトの中身は簡単に書き換えることができます。例えば、

とすればpersonオブジェクトのageプロパティの値が37から25に変更されます。
また、新しいプロパティを追加することも同様にすぐできます。

とすれば、personオブジェクトに新たにoccupationというプロパティが定義されます。
オブジェクトのプロパティを削除するときは、deleteを使います。

とすると、homeプロパティが削除されます。削除した後にアクセスしようとすると、undefinedになります。

後、一つ重要なのは「JavaScriptでは関数もオブジェクト」ということです。
例えば、toDouble(n)という2倍の値を返す関数があったとします。
普通はこう書きます。

しかし、これをオブジェクトのように書くと、こうなります。

まだまだ説明が不十分だったり書き足りなかったりするところも多々あるけど、基本的にブログ更新はあまり時間をかけすぎないようにしているので、どこかでJavaScriptのオブジェクト指向 その2をやろうと思います。

ラオスの思い出その2 ラオスのクリスマス

ここの所どうしても平日は疲れがたまって、更新が土日のみになってしまうけど、まあ仕方ないか。
というわけで(だから何がというわけでなんだよ)、今回はラオスの思い出シリーズその2、ラオスのクリスマスについてです(何で3月にクリスマスの話題なんだというのはこの際置いておく)。
ラオスはご存知の通り(?)仏教国ですが、仏教以外は受け入れないわけでは決してなく、クリスマスの時期は普通にみんなお祝いしていました。

配属先のラオス国立大工学部IT学科ではプレゼント交換をやって、その後ケーキを食べたりみんなで盛り上がっていた思い出があります。
ラオスには2年間いたからクリスマスのプレゼント交換は2回やっていて、1回目は日本から持ってきていたもの(確か扇子だっけ?)を持って行って、2回目は確かコップを持って言った記憶があります。当たった方は、1回目がUSBで、2回目は写真立てでした。

その他にも、住んでいた場所から自転車で7分くらいのところにあった僕が夕食でたまに行っていたお店でもクリスマスパーティーをやっていました。
その時はお店に行ったらいつもと雰囲気が違うからどうしたのかと思ったら、「今日はクリスマスのパーティーだ、食べていけ」と言われて自分もパーティーに参加させてもらいました。
ブタの丸焼きとかビーフシチューとかワインとか豪華なごちそうを楽しみつつワイワイ盛り上がっていました。
ところでそのお店、普段はカオパット(チャーハン)とかのラオス料理屋でそこそこ美味しくたまに通っていたんですが、ある日潰れちゃったんですよねえ・・・ラオスにいた2年間の間に何度かそういうことはあったんですが、自分がよく行くお店が潰れると何ともやりきれない残念な気持ちになりました。

他にもビエンチャン市内では色々なところでクリスマスの装飾が飾ってあって、ラオスの人たちもクリスマスを楽しんでいるんだなあと思いました。1月下旬くらいまでクリスマスの飾りが残ってあったりして、そこがまたラオスらしいところでもありました。
ブタの丸焼き
クリスマスケーキ
クリスマスツリー

PHPのオブジェクト指向

うわー、2週間も更新が止まってしまったorz
というわけで、久々の更新はPHPのオブジェクト指向について。

PHPはオブジェクト指向のプログラミング言語です・・・って、今時使われる言語でオブジェクト指向じゃない言語って、C(C++じゃないC)の他に思い浮かばなかったり。Cでも構造体とか使ってオブジェクト指向っぽくできないこともないし。

なので、PHPのオブジェクト指向で他の言語と違うところを中心に簡単にまとめてみようかと。
例としてお客さんを表すCustomerというクラスを考えてみることにする。

メンバー変数、メソッドをpublic(どこからでもアクセス可能), protected(そのクラスと子クラスからのみアクセス可能), private(そのクラスからのみアクセス可能)の修飾子を付けて定義するというのは他の言語と変わらないかと。
上の例ではCustomerクラスの変数$customerを最初に宣言して、$customerの年齢ageに25を入れています。
気を付けるのは、コンストラクタを__construct()で定義すること。C++やJavaから来た人だと、慣れないうちはついpublic Customer()と書こうとしちゃうかもしれないですね(自分の事です)。
後はクラス内のメンバーやメソッドを呼び出すときでも$this->を忘れないようにしましょう(結構これでエラーになることは多いです)。

後は、通常のメンバー変数やメソッドの他に静的(static)なプロパティやメソッドというものもあります。

staticなプロパティやメソッドはクラス名::を付けることでオブジェクトを生成しなくても呼び出すことができます。
なお、クラス内でstaticなプロパティやメソッドを呼び出すときはself::を頭につけます。

次は、継承についてです。

見てのとおり、extendsを付けて継承します。Javaもそうでしたね。オーバーライトなんかも他の言語と同様にできます。
ちなみに、PHPでは多重継承は不可です。が、トレイトというものを使うことで多重継承のようなことができるようです。自分は使ったことはないので、こちらあたりを見てみてください。

後はabstractをつけて抽象クラスを定義できたり、interfaceをつけてインタフェースを定義できたりします。

フレームワークなんかはバリバリにオブジェクト指向を使っているので、フレームワークのソースを見てみると、オブジェクト指向の有用性を実感できると思います。

Javascriptのオブジェクト指向は普通のクラスベースではなくプロトタイプベースという独特なものなので、どこかでそれについても紹介しようと思います。

ラオスの思い出その1 メコン川沿いの屋台

昨日予告した通り(?)、今日はラオス隊員時代の思い出話で更新しようと思います。
今日の話は、メコン川沿いにあった僕がよく通っていたラオス料理屋台のお話。

その屋台はメコン川沿いの、ドミトリー(いわゆる隊員連絡所。ラオスに来たばかりの隊員は任地に配属されるまでの最初1か月はそこで生活する。)の近くにあったので、ラオスに来たばかりの頃よく通っていた。
そのお店はラープ(ひき肉と香草のスパイシーサラダ)やタムマークフン(半熟パパイヤの辛いサラダ)といったラオス料理の王道といえるものからカイルーク(ふ化しかけの卵)といった変わったものまで幅広く揃えていて味もなかなかおいしく、それでいて値段もそんなに高くなく、ビエンチャンの中でも手軽にラオス料理を楽しめるお店の1つとして重宝していました。もちろんビアラオもありました。
でも最大のお店はお店の人の人柄でしたね。とにかく陽気なおっちゃんで、僕の顔も覚えてくれて通りがかると「今日はビアラオ飲んでいかないのか?」と声をかけてくれて、僕がラオス生活の序盤においてラオスという国になじむのにここのお店の存在も大きかったと思っています。
そんなこんなでドミトリーを離れて任地(と言ってもドミトリーから自転車で40分くらいだけど)に配属されてからも比較的よく通っていました。

でも何故か、僕が来てから1年半くらいの頃にそこのお店がなくなったと思ったらちょっと奥のほうの場所でラーメン屋に衣替えしてたんだよなあ。ラーメンも悪くなかったけど、やっぱりラオス料理のほうがよかったなあ。

一番左(半分くらいしか映ってないけど)が言わずと知れたビアラオ、真ん中がフー(ベトナムのフォーとほとんど同じです)、一番右がタムマークフン

そんなこんなで2日に1回くらいのペースでラオスの思い出話を紹介していこうと思います。
明日(更新できれば)は技術ネタで。お題はまだ未定。

HTML5になって変わったこと

せっかく1週間続けて更新できたのに、またしても滞ってしまった・・・(´・ω・`)
原因としてはここのところ納期前で忙しくなって帰るのがかなり遅い時間だったということなんだけど、まあこればかりは仕方ないか。基本は余裕があるときには更新するということで。更新がないときは忙しいかどっか出かけてるか飲みに行ってるかと思っていただければと。
後、毎日技術ネタだと飽きてくる可能性もあるので、日替わりで技術ネタとラオスでの思い出話(旧ブログで書きそびれたネタをか)を交互に書いていこうかなと。
今日は技術ネタで、明日はラオスの思い出話(何にするかは未定)でいきます。

今日のテーマはHTML5についてです。HTML5がW3Cより勧告されたのが2014年なので、もうすでに大分普及してはいるけど、Chromeが56が正式版になって、完全にデフォルト化したことだし、この機会に簡単にまとめてみるのもいいかなということで。

とりあえず箇条書きでいくつか。
・HTML構文とXHTML(XML)構文の2通りの文書形式が規定されることになった
HTML構文の方はHTML4までの普通のHTMLで、XHTML構文はXHTMLの文法で記述するもので、その2つのどちらを使うかを選べるようになった。うまく説明できないけど、こちらが詳しいかと。

・コンテンツの埋め込みが簡単になった
動画ならvideoタグで、音声ならaudioタグで、グラフィックならcanvasタグでそれぞれ埋め込むことができるようになった。
canvasタグに表示するグラフィックは実際にはJavaScriptを使って描画することになるけど、WebGLとかもどっかで勉強してみたいな。

・より明確に文書構造を示すことができるようになった
文章のヘッダー部分ならheaderタグを、フッター部分ならfooterタグを入れるなどで、文章のどの部分に当たるかを表すことができるようになった。

・様々なAPIを使えるようになった
例えばドラッグアンドドロップなら

こんな風にdraggable属性を用いてドラッグアンドドロップができるかどうかを指定できるようになった。他にも位置情報の取得なんかもできるようになった。

・いくつかのタグが使えなくなった
例えば古いサイトだと文字サイズを大きくするのに

みたいにやっているものもありましたが、HTML5ではfontタグは使えなくなって、文字サイズはstyleで指定するようになった。
新しく使えるようになったタグと使えなくなったタグの一覧はこちらに出てます。使えなくなっているタグを使っている人は書き換えましょう。

他にもフォームの入力補助やチェック機能が充実したり結構いろいろ変わったことはあるけど、もっと色々勉強して新しいHTMlの書き方をマスターしなくては。

2016年11月になってHTML5.1が勧告されていますが、それについてもどっかでまとめてみようと思います。