2015-10-26

phpで画面が真っ白になる場合のいろいろ


phpでプログラムを開発したり、使ったりしていると、画面が真っ白になることが多々有ります。
その主だった要因を列挙します。

  1. Diskの空き容量が無くなった
  2. DBにアクセスできなくなった
  3. 何かの理由でキャッシュディレクトリが更新できなくなった。主に設定変更やファイルを上書きした場合などに発生する。templates_cディレクトリへの書き込み権限がない。cacheディレクトリへの書き込み権限がない。
  4. XMLのDOCTYPE宣言がPHPとして扱われてエラーになる。php_value short_open_tag "On" など、ショートオープンタグがOnになっていると発生する。<?xml version=”1.0″ encoding=”UTF-8″?><?をphpの開始宣言として処理してしまうため。
  5. <?php ~ ?> の外側に改行や空白文字、BOMがある。Windowsのテキストエディタで編集して保存したときに、文字コードでBOM付きで保存してしまった場合などに発生する。全角スペースなども危ない。
  6. phpで内部エラーが発生している。が、表示されていない。php.iniでエラーを表示しない設定にしている場合、エラーメッセージが表示されずに画面が真っ白になる。php.iniか、.htaccess に1行 php_flag display_errors on を追加してApacheを再起動することでエラーが表示されるようになる。
  7. メモリ不足。phpに割当てられているメモリが不足して処理ができない状態。処理ができないので何も表示されない。php_value memory_limit 128M など、現在設定されているメモリサイズから増やしてApacheを再起動してみる。
  8. 文字コードの設定ミス
それぞれ、デバッグする際に確認してつぶしていくリストとして使っているので、ご参考、デバッグのお供としてどうぞ。

※こんなこともリストアップしておいたほうが良いってのがあったら是非教えて下さい!

見ている画面の環境(開発や本番など)を識別してくれるツール

ウェブの開発をしていると、ローカルの開発環境、本番前にテストするステージング環境、本番環境など数種類の環境をいったりきたりして作業することって多いですよね。
そして作業していると「あっ、この画面違う環境だったー」ってこともよくあります。
そんな時にこのChromeエクステンションを使うと環境の確認を視覚的に助けてくて便利なので紹介します。
https://chrome.google.com/webstore/detail/envflag/gepeheajhmnbljihadnmbdgljaemcdhl
Envflag
使い方は簡単です。
このようにしておけばエクステンションの色でいまどの環境の画面を見ているかを識別させてくれます。
Example
prod www.example.com
stage stag.example.com
dev dev.example.com

# comments...
prod www.foobar.com
stage www.foobar.com/stag
dev www.foobar.com/dev
開発しているのは Craftsman Software, Inc. の開発者 Hidehito Nozawa さんです。これって便利です!ありがとうございます!

2015-09-13

rubyでオブジェクトを整形していい感じにプロンプトに出力してくれるpp

rubyでプログラムを開発している時、オブジェクトの中身を確認したいことが多々ありますよね。中身がXMLでデータが羅列されている場合、特に初心者の場合には読みづらくてどうしようもないと思います。
そんな時に便利なのがppです。
ppは組み込みではないのでrequireが必要です。
以下はcontentsオブジェクトを表示する例です。
get_contents.rb
class Content
  def initialize
    @content = 'content'
    @name = ['name1', 'name2', 'name3']
    @text = {:t1=>'text1', :t2=>'text2'}
  end
end

content = Content.new

p content
実行
$ ruby get_contents.rb
結果
#<Content:0x00000000dc79e0 @content="content", @name=["name1", "name2", "name3"], @text={:t1=>"text1", :t2=>"text2"}>
データが羅列になっていて読みづらいですね。

ではppを使ってみます。
require 'pp'を追加します。
get_contents.rb
require 'pp'

class Content
  def initialize
    @content = 'content'
    @name = ['name1', 'name2', 'name3']
    @text = {:t1=>'text1', :t2=>'text2'}
  end
end

content = Content.new

pp content
実行
$ ruby get_contents.rb
結果
#<Content:0x00000000dc79e0
 @content="content",
 @name=["name1", "name2", "name3"],
 @text={:t1=>"text1", :t2=>"text2"}>
整形されていて見やすくなっています。

データを見やすくして開発を楽にしましょう!

2015-08-14

合気道の昇級試験に合格しました!



2015/08/9、やっと合気道の昇級試験に合格しました! 

2014年の4月に41歳で合気道を始めて、ようやく5級を取得しました。本来であればもっと早く級を取得している予定でしたが、海外出張など主に仕事のスケジュールとの兼ね合いで受験のタイミングに合わず、ここまで引っ張りました。

で、せっかく合格したので、ここまでの経緯をお話したいと思います。

なぜ合気道を始めたのか

元々アジアでビジネスをやっていこうと思っていたので、海外で行動するにあたり護身術として何か武道を身につけておきたいと思っていたことと、日本人としても海外の人と交流するための術として日本の武道をやりたいと思っていました。あ、ちなみに私、10代〜25歳くらいまでダンスをやっていて、社会人になってからもサーフィンやフットサルなどの運動は続けているので身体能力はある程度保っています。^^

若いころであれば、私の行く先の主要国がラオス、タイなのでムエタイが候補になっていたかもしれません。しかし、もう40代ですし、後年「長く続けていけるもの」を選びたかったのです。

高校生の時、麗澤高校という当時全寮制の学校に居て、私はサッカー部とESS部をやっていましたが、同じ高校の空手部が県大会の常連だったので、寮で夜に同級生から教えてもらい、平安初段という型を覚えたりしていました。小学校の頃に少年剣道をやっていたこともあり元々武道が好きだったんですね。(でも寒稽古は好きじゃなかった・笑)

武道って良いですよね。礼儀を重んじ、己に厳しくし、道着(合気道では道衣)を着て、神聖な気持ちで道場に上がるってことをするので、心がシンプルになってちょっと瞑想に近いものがあるような気もします。

ちなみにこれが平安初段です。大学の時にダンスの振付に取り入れたりもしていました。懐かしい。


それと、合気道の精神には「合気道は他人と優劣を競うことをしないため、試合や競技を行いません。」というのがあり、攻撃的なことをあまり好まない私に合っているなというのもありました。心技体を鍛錬し、己を磨くことが目的です。

そして、私が合気道を選んだもう1つの理由は、合気道本部道場の工藤師範がラオスでJICAのシニア海外ボランティアとして合気道を教えているということを、合気道をやっている友人の@tohokuaikiさんから聞き、知ったからです。


ちなみに工藤師範は2002年から2005年まで合気道コーチとしてカンボジアに赴任し、カンボジア合気道クラブを立ち上げ合気道を広める活動をされてきています。著書もあります。その後、ラオスで合気道クラブを立ち上げてラオスの首都ビエンチャンで教えておられます。ラオス地方都市のサヴァンナケートにも合気道クラブが発足するという噂も。





通常はどれくらいで昇級できるのか

これは合気道会で規定されていて、下記の様になっています。


  • 五級 入会後30日以上稽古した者
  • 四級 五級取得後40日以上稽古した者
  • 参級 四級取得後50日以上稽古した者

(以降の詳細はこちらをクリック

私が稽古に行っている武蔵小杉合気道会では毎週日曜日の夕方に稽古が有ります。また、月の最終日曜日は休みです。つまり月に3回〜4回の稽古があるということになります。仮に月に3回(=3日)として、コンスタントに稽古に参加していれば早くて10ヶ月という計算になります。しかし、師範によって試験のタイミングは道場それぞれらしく、武蔵小杉では毎年6月が昇級・昇段試験となっているようです。ちなみに昇級試験は場合によっては年2回あるようです。

これまで受験できなかった経緯

1度目のチャンスは2014年6月でしたが、私はラオス・タイへ10日程出張していたので試験のタイミングに合わず、受験できませんでした。

2度目のチャンスは2014年9月に1ヶ月半ラオスへ滞在中でした。
ラオスの武道館で合気道の稽古に参加させてもらっていた時、工藤師範が次回稽古で試験をします、と。私は日本の道場の所属だけど受験したい、できますか?と訪ねました。すると「良いです。」と承諾を頂きまして私は喜びました!でも、その後の会話で「で、日本では誰に師事していますか?」と聞かれたので「鳥海師範です」と答えたらなんと、受験を断られました、、。理由は鳥海師範は大先輩だから、そのお弟子さんに最初の級を私が筆おろしするわけにはいかない、ということでした。なるほど納得です。しかし鳥海師範がそんなに偉い方だったとは、、。恐れ多い。

指導者一覧はこちら

ということでラオスでの受験は残念ながら叶いませんでしたが、ラオスでの稽古は多国籍の方との交流ができ、ラオスで活動している日本人の人たちとの交流もできたから楽しかったです。多国籍というのは、合気道は世界に広まっている日本の武道であり(2014年時点で世界95ヶ国)、アメリカやヨーロッパの人もたくさんやっています。で、観光、出張、赴任などでラオスへ来ている人たちも稽古に参加しているので一緒に稽古をして汗を流しました。

ラオスでの合気道稽古
3度目のチャンスは2015年6月の試験。しかしこれも仕事の都合で参加できず、、。
ウェブシステムのセキュリティ検査を金融機関向けに行っているのですが、6月から7月中旬までは日曜夜からの作業が毎週の様に入っていたのでスケジュール的に無理でした。師範に「仕事の都合でこん難しいです、、」と話したら、2週続けて来られる時を教えて下さい、その2周目にやりましょうと言ってくださいました。それでこの度受験が叶った次第です。

無級だけど武道館での演武会へ参加できた!

話は少し戻りますが、合気道を始めてすぐ、来月5月に武道館の演武会があると聞かされました。私は始めて間もないから参加できないだろうなぁと思ったのですが、聞いてみると、演武会は試合はなく(そもそも合気道には試合が無いというのはこの時知りました)全国の合気道道場が参加し演武する大会だそうです。全国から約8,000人が参加するというこの大会は観客より参加者の方が圧倒的に多く、武道やスポーツでは珍しいんじゃないかと思います。師範の「あなたは動きが良いから参加したら良いよ」の一言で参加させて頂けることになり、これまで2014年、2015年と2回参加させて頂きました!

第52回全日本合気道演武大会





鳥海師範の演武

合気道は試合は無いけれど、こういう演武会に参加できるとモチベーションがぐっと上がりますね♪

試験前週と当日

5級の試験はこれらの項目で審査されます。

  • 正面打ち入り身投げ
  • 正面打ち第一教
  • 座技呼吸法
  • 方手取り四方投げ

試験の前の週にこれらの技を審査に近い形で行い、その時に指導を受けて当日の試験に備えます。
それで、いよいよ当日です。稽古に行く前に技のイメージを再確認するため、YouTubeで動画を探して技を再確認し、イメージトレーニングしました^^

どういう技かという参考にYouTubeを載せておきます。



試験は稽古の最後にやるものと思っていたのですが、なんと最初にやるようで、準備運動が終わったらいきなり試験になりちょっと焦りました(笑)しかし、ちゃんとイメトレして準備してきていたので技はちゃんとできました!

試験後、指導ポイントの解説をしていただき、その上で「合格です」と。
やったー!とうとう正式なライセンス(級)を頂きました!
素直に嬉しいです!(笑)
やったー!

なお、指導頂いたポイントはこれ。
  • 正面打ち第一教(表裏)で、相半身に構える際、左右が違っていたのと、他の技でも共通で、相手が構えてから左右を合わせて構えるのではなく、こちらが先に右か左か決めて相半身に構え、それに相手を合わせさせること。
  • 方手取り四方投げ(表裏)で足より先に手で掴みに行っている点。踏み込む足についてくる形で手を添えて相手の手首をつかむようにすること。でないと上体が先行してしまうので。
自分の感覚だと、合気道での構え方が左右逆のものが多く、よく混乱します。他の兄弟子にも以前聞いたのですが、他の武道(やボクシング等)と違っているようで、例えば右利きの人が左前に構えたら右で打つと思うのですが、その感覚で構えると合気道では逆のことがあったりするのと、1つの技で4パターン(左右と裏表)やるので、一度混乱するとあれれ〜?となったりもします。

以前よりも向きは慣れてきたので、もう少ししっかりと稽古をしたいこともあり、晴れて級持ちにもなったので、本部道場や近くの富士通合気道会の稽古にも可能な日は参加したりして、もっとレベルアップしたいと思います!

2015-08-06

レクサスがついにホバーボードを発表したそう!

トヨタの高級自動車ブランド<レクサス>がホバーボードを開発し、発表しました!
バック・トゥ・ザ・フューチャーで想像していた世界(に近いもの)がいよいよ実現するのかと思うと、これは興奮せずにはいられません!次はホバーボードの次はタイムトリップできる車を開発するのでしょうか?
The Lexus Hoverboard: It’s here



こちらは開発過程のムービー
The Lexus Hoverboard: Evolution



ホバーボードがデザインされた過程が語られています。
The Lexus Hoverboard: Motivation



開発当初からのストーリー。始まりはテキサスから。
The Lexus Hoverboard: The Story



ホバーボード体験ムービー

参考URL: http://gigazine.net/news/20150805-lexus-hoverboard-unveil/

2015-08-05

東池袋の公園には水が流れている♪

いま、仕事で東池袋へ行くことが多いのですが
行き先のビルの斜向いには公園があります。

いまどき珍しくなってきた、遊具あり、
大きめの手入れの行き届いた公衆トイレ、
区画分けされた喫煙所などがある公園です。

この公園で一番特徴的なのは、水が流れていて
子供の遊び場になっています。

今日も暑かったので
この水の流れを見て癒やされました♪

さて、明日も頑張ろう。^^


2015-08-02

合気道の稽古へ行ってきました

毎週日曜日の18:30から、合気道の稽古へ行っています。

道場 Dojo

さすがにこの季節、道場に入ると日中の熱が残っていて
足を踏み入れただけで汗がかなり出てきます。

ですが、不断の稽古が大事です。
継続して頑張っていきます。

それと、これまでは仕事の都合で昇級試験を受けられる機会を逃してきましたが
来週はやっと昇級試験を受けられることになりました☆(やった!)
頑張ります!

横浜駅でプチ水族館が楽しめた!

まずは炎天下でフットサルの話から

今日はフットサルへ行ってきました。

場所はいつも行っている横浜ベイフットサルクラブです。
さすがに日中は暑いので、夕方近くの16時スタート。
2時間で、最初の1時間は暑くてキツかったですが
後半は日が落ちかけてきたので少し楽になりました。

下記は今日のフットサルの様子を2枚の写真で現してみました。

開始から1時間経過(まだ生きている)

2時間経過後、、、(返事がない、、ただの屍のようだ)

大量の汗をかいたのでさすがにバテました、、(笑)

帰りの横浜駅でミニ水族館を体験!

そして本題のミニ水族館の話。

帰りの横浜駅での乗り換えの時に
なんとこんな素敵な水槽が駅に設置されていました!
「駅の中にミニ水族館!」




小さな子供も大喜び!(通りがかりのインド系の親子も大喜び!)

何の展示なのかと思ったら、「JR横浜駅に『横浜・八景島シーパラダイス』の特別水槽が、期間限定で出現!!7月27日(月)~8月9日(日) JR横浜駅構内 中央通路」という記事が出ていて、このようなコンセプトで行っているようです。

日に40万人が行き交うJR横浜駅に初めて出現する、癒しの空間。 
JR横浜駅。そこは日に40万人もの人々が行き交う空間です。シーパラダイスでは、同じ横浜の地で皆様にお楽しみいただいている水族館として、暑さが厳しいこの期間に、皆さまに夏のひとときの憩いや涼をお楽しみいただける企画として、特別水槽を展示することにしました。さらに、展示に合わせて、水槽の両サイドにある柱にシーパラダイスの生きものたちが登場し、中央通路がシーパラダイス一色となる空間演出をしました。
素敵な演出ですね〜。癒やされました。

そんな八景島シーパラダイス。近いけれど、1泊旅行を計画してゆっくり楽しんでみるのも良さそうですね。宿泊の予約は「ホテル・旅館予約【一休.com】」でお得に探せそうです。


2015-06-19

CentOS7.0 に yum で php5.6 をインストールする手順


コンパイルしてインストールするのは手間暇かかるし、後で入れ替えたいときに大変なので、CentOS 7.0 に yum でPHP 5.6 をインストールしました。その手順を説明します。





1. yumにepelとremiのリポジトリを追加

# CentOS7は標準のyumリポジトリにepel-releaseがあるので、yumコマンドで簡単に追加できる
yum install epel-release

# remiは従来同様にrpmで追加
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

2. PHPをインストール

日本語環境でphpを使うためのmbstring等を含めて、PHP56をインストール。
yum install --enablerepo=remi,remi-php56 php php-opcache php-devel php-mysqlnd php-mbstring php-mcrypt php-gd php-xml php-xmlrpc
DrupalなどSymfonyなどでpearやODBC接続が必要な場合は下記のパッケージも必要なので例として書いておきます。
yum install --enablerepo=remi,remi-php56 php-pear php-odbc

3.インストール後の確認

php -v
PHP 5.6.10 (cli) (built: Jun 11 2015 07:45:02)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
これでPHP5.6が使えるようになります。

付録

下記のコマンドを1ファイルにまとめて実行するとお手軽に実行できます。
yum install epel-release
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install --enablerepo=remi,remi-php56 php php-opcache php-devel php-mysqlnd php-mbstring php-mcrypt php-gd php-xml php-xmlrpc
php -v

phpやCentOS7を学ぶには下記の様な書籍が良さそうです。

2015-06-03

AndroidスマホでDay Oneと同期可能な日記アプリを使う方法

NarrateとDay Oneのデータが同期した!


やっとDay Oneと同期した!

[Journal with Narrate]
素直に同期されなくて苦労したので、きっと同じことで悩んでいる人もいるだろうと思い、ブログに記録しておく。

私はMacとiPod TouchでDay Oneを使っているのだけど、最近メインのスマホはAndroid(Galaxy S6 Edge)なのでデータ同期可能な互換アプリを探したらNarrateというアプリを見つけた。Day One(Dropbox)と同期可能なのは有料版だが420円なのでさくっと購入。で、早速同期を設定してみたけど同期されない。

Mac側のDropboxの同期設定と見比べてみると、Narrate側で同期させるDropboxフォルダが /apps/day one/journal.dayone だったが、Day One側で同期しているDropboxフォルダは /アプリ/day one/journal.dayone だった。Narrate(Android側)の同期フォルダをこれに修正したら同期した!

enter image description here  enter image description here

これでOK!



2015-05-05

Aipo(7.0.2)のインストール方法

Aipo(7.0.2)のインストール方法

環境

OS: CentOS 6.5 64bit版 (Minimal)
Aipo Version: 7.0.2

必要パッケージのインストール

yum install make gcc readline-devel zlib-devel nmap wget

Aipoのダウンロードと解凍

cd /usr/local/src

wget https://aipo.googlecode.com/files/aipo7020ja_linux64.tar.gz

tar -zxvf aipo7020ja_linux64.tar.gz
tar -zxvf aipo7020ja_linux/aipo7020.tar.gz

インストールスクリプトを実行

cd /usr/local/src/aipo/bin
sh installer.sh

起動

cd /usr/local/src/aipo/bin
./startup.sh

停止

cd /usr/local/src/aipo/bin
./shutdown.sh

Aipoへのアクセス

ブラウザで「http://172.16.97.130/aipo/」へアクセスします。

172.16.97.130 の部分はご自身の環境に読み替えて下さい。
また、DNSでドメインに割り当てている場合はドメイン名でアクセスしてください。
例)http://sample.com/aipo/

ログイン

管理者ID: admin (デフォルト)
管理者パスワード: admin (デフォルト)

でログインします。