神代クロ のすべての投稿

スペックとユーザとパッケージ管理(さくらのVPS設定1)

今のサーバを借りてから3年経つので、乗り換えのためにさくらのVPS 2Gを借りました。スペックは以下のように変わっています。

プランさくらのVPS 512さくらのVPS 2G
CPU(仮想)Core2 Duo (2.4GHz) 2コアWestmere (2.4GHz) 3コア
メモリ1GB2GB
HDD20GB200GB
OSCentOS 5.5CentOS 6.5
リージョン大阪石狩

毎回サーバの設定に苦労するので、手順を書き出してみることにしました。いつもはローカルにメモしてるんだけどね。

sshの設定

まずは仮登録後に送られてくるメールからVPSコントロールパネルに入り、サーバを起動させます。次にリモートコンソールからログインしてrootのパスワードを変更します。

# passwd

rootで直接ログインできるのは危険なので、作業用アカウントを作成します。

ユーザーhoge作成
# useradd hoge

hogeのパスワード設定
# passwd hoge

hogeをwheelグループに入れる
# usermod -G wheel hoge

作業用アカウント(wheelグループ)以外ではroot権限を使えないように制限を付けます。

sudoできるユーザ
# visudo

この行を有効化
%wheel ALL=(ALL) ALL
suできるユーザ
# vi /etc/pam.d/su

この行を有効化
auth required /lib/security/$ISA/pam_wheel.so use_uid

rootで直接ログインできないようにします。

# vi /etc/ssh/sshd_config

yesをnoに変更する
PermitRootLogin no

再起動
# service sshd restart

最後にTCP wrapperでsshにログインできるホストを制限します。

拒否リスト
# vi /etc/hosts.deny

以下を追加
sshd : all
許可リスト
# vi /etc/hosts.allow

以下を追加
sshd : localhost
sshd : www????.sakura.ne.jp
sshd : .jp

これでサーバ自身と.jp以外の人はアクセスできなくなりました。ちゃんと自分のプロバイダに合致したホスト名を指定しないと繋がらなくなります。

ほんとは公開鍵を使ったほうが良いんだけどね。

ついでに日本語化。

# vi /etc/sysconfig/i18n

LANG="C"
を
LANG="ja_JP.UTF-8"
に変更

yumでRemiリポジトリを使う

標準のyumだと古いパッケージばかりなので、比較的新しいのがインストールできるRemiリポジトリを使用します。

CentOS6用
# wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
# rpm -Uvh remi-release-6.rpm

Remiを指定してインストールする場合には以下のように記述します。

# yum --enablerepo=remi install (パッケージ名)

アップデートは新旧入り混じると面倒なので、Remiで入れたのは個別でやった方が良いのかな。

通常パッケージ全部アップデート
# yum update

Remiで入れたの個別アップデート
# yum --enablerepo=remi update (パッケージ名)

設定ミスが無いか必死にぐぐりながらいじってます(汗)

WordPressを簡単に高速化させてみる

まあWordPressに限らない方法なんだけどね。

PageSpeed InsightsというGoogle製のサイトの表示速度を調べてくれるサイトを知りました。何年も前からあったみたいだけど。
ともかく、ここにURLを入れたら速度が遅くなってる原因がわかります。便利だね。

このブログのTOPページを試してみたらモバイルが57/100、PCが67/100でした。スコア低いなあ。なので「修正が必要」と書かれている2つの対処法を試してみた。

圧縮を有効にする

これはサーバからブラウザへ転送するデータをGZIPで圧縮しろってことです。Apacheにmod_deflateなるものを入れる必要があるんだけど、うちの環境だと最初から入ってた。なのでネット情報を参考に.htaccessに以下を追加。

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
</IfModule>

GZIPに対応していないブラウザなどを除外してるね。

ブラウザのキャッシュを活用する

画像などに有効期限を付ければブラウザキャッシュが効くよということです。これも同じくApacheにmod_expiresが入っていたので、やはりネット情報を参考に.htaccessに追加。

<ifModule mod_expires.c>
ExpiresActive On
ExpiresDefault A1
ExpiresByType image/gif A604800
ExpiresByType image/jpeg A604800
ExpiresByType image/png A604800
ExpiresByType image/x-icon A604800
ExpiresByType text/css A604800
ExpiresByType text/javascript A604800
ExpiresByType application/x-javascript A604800
ExpiresByType application/x-shockwave-flash A604800
</ifModule>

A604800は有効期限をアクセスした時から604800秒(1週間)後にするって意味です。

結果

.htaccessに上の2つを記述しただけでモバイルが73/100、PCが86/100になりました。結構良いスコアになったね。

「修正を考慮」という所に他の対処法も載っていて、その中で「サーバーの応答時間を短縮する」というのが気になりました。サーバが古いので遅いのは仕方ないとして、多分これはWordPressが重いせいだな。

実はWordPressのプラグインでキャッシュ系を幾つか試してみたんだけど、うちの環境ではうまく動かなかった。そんな訳でWordPress以外でも使える手法のみになっちゃいました。

絵師100人展04に行く

eshi100-04毎年恒例の絵師100人展に行ってきました。昼くらいに入ったけど、そんなに混んでなかったよ。

今回のテーマは「かわいい」です。正直ネタ切れしたのかって心配になるテーマだけど、逆に縛りがない分、多種多様な絵を見ることができました。展示してあるのは大きいサイズなので、情報量の多い絵や景色が広がってる絵とか見応えがあって素晴らしいね。

ちなみに、ネットで「みんな同じに見える」的なコメントを見かけたけど、確かに俺も絵師の区別つかない絵が幾つかあったな(汗)

今回も図録を買ったので、のんびり見比べてみよう。

横浜で飲む

今日は横浜へ飲みに行きました。九州沖縄へ旅行に行った話を聞かせてもらったり、ビジネスの話をしたり。

途中で料理の皿が割れてびしゃーってなってしまったので、別の席に案内してもらいました。俺は見てただけなんだけど、持っただけで皿がパキッと真っ二つに割れたのはびっくりした。

意外と周りにコンサルティングビジネスやってる人が多いみたい。ちょっと興味はあるけど、大変そうだね。

ゴーストトリック クリア(ネタバレ)

ghosttrickゴースト トリッククリアしました。3年くらい前に買ったけど、ずっと積んでたんだよね。

前知識なしで始めたけど、幽霊になって物に乗り移ったり動かしたりして謎を解き明かしていくゲームなんだね。タイトルまんまだ。

システム

死者のタマシイになって、ピタゴラスイッチみたいに物の動きを連動させていくパズルは斬新だね。しかも「死の4分前」は時間制限とさらにタイミングがシビアになったりして、アクションゲームっぽくなるし。

何度も失敗してて何故だと思ってたら、かなり初期で動かし忘れがあったりと、なかなか大変でした。ヒントがたくさん出るから何とか解けたけどね。

ストーリー

最初は自分の事と自分を殺した犯人を一晩で調べる、というお話だったのに、5年前の殺人事件、10年前の人質事件、特捜が追う外国人のトリヒキ、脱獄の手伝い、潜水艦への潜入、宇宙から飛来した隕石の謎という、たった一晩でどんだけ事件が大きくなるんだよって感じで、先が気になりまくりでした。

ちょっと納得いかなかったのは、終盤で潜水艦が沈みだして絶体絶命、何とかジョード刑事と合流して潜水艦からリンネ刑事カノンを助けようというシーン。ここからどんな逆転劇が行われるんだと期待してたら、「過去にモドル」で10年前に行き、この事件の発端そのものを消し去ってしまったところ。その後10年に渡る全ての事件が消えちゃったよ……ええー

改変後の世界も人間関係はおおむね変わってなかったから良いけどね。

キャラクタ

ドット絵なのにアニメーションがスムーズで驚いた。3Dモデリングしたのをドットに落としてるらしい。手間かかってるなあ。カバネラ警部のマイケル・ジャクソンさながらのモーションが面白かった。

リンネ刑事死にすぎ。ちょっと目を離すとすぐ死ぬw ほとんどの主要キャラは一度は死んで生き返ってるとはいえ、ねえ。

ポメラニアンのミサイルが主人を守ろうと頑張る姿が可愛い。要所要所で出てくるネズミ、特にミサイル(魚雷?)の中で安全装置に抗うネズミが面白かった。そして終盤、主人公のシセルの正体が黒ネコだったことが判明。なんだここは動物パラダイスだったのか。

まとめ

逆転裁判のスタッフが関わっているだけあって、システムといいアニメーションといい、他にはない意欲的なゲームでした。

シナリオも全然先がわからず夢中でプレイしたね。楽しかったです。

これは続編もしくは同じシステムの別ゲームでも良いからやってみたいです。

温泉に入ってたら湯あたりした

「タダ券あるよ」と誘われたので、都内にある温泉に行ってきました。

郊外にある川沿いの温泉で、露天から外を見ると空しか見えない素晴らしい温泉でした。今回は見れなかったけど、天気が良ければ富士山も見えるんだとか。

ただ長く入りすぎてしまい、湯あたり(湯疲れ?)でダウン。頭ガンガン体フラフラでヤバかったです。1時間くらいグッタリしてたよ。

水分とりながら頭を冷やしてたら復活できました。でもこれ1人で来てたらヤバかっただろうな。平日で人も少なかったし。温泉なんて年に数回しか入らないから、まだ限界がわからんね。温泉内には時計も無いし。

その後は普通にご飯食べるくらいには回復したので良かったです。

気をつけないとね。

スマホアプリ開発の勉強中(Monaca&PhoneGapとenchant.js)

enchant01やろうやろうと思いつつ全然やれてなかったスマホアプリ開発。そろそろ本格的に始めようかと思います。

AndroidはJava、iPhoneはObjective-Cが標準の開発言語だけど、両方やるのは学習コストが高い。なのでハイブリッド開発が出来るHTML5+JavaScriptの組み合わせでやることにしました。

選んだフレームワークはPhoneGap。今はAdobe製品になってるし、いちばん有名っぽいので。ただそのまま使うのもちょっと敷居が高かったので、PhoneGapを利用できるMonacaを開発環境に決めました。

この結論に辿り着くまで時間かかった……

Monaca(PhoneGap)

Monacaはブラウザ上で開発します。WebDAV経由でも出来そうだけど、無料版だと重すぎてダメだった。まあブラウザのエディタちゃんとしてるから、そっちで問題なく使えます。

これのいちばんのウリは実機テストが簡単にできること。AndroidとiPhoneそれぞれに専用のデバッガーアプリを入れると、エディタで保存するたびに作成中のアプリが自動インストールされ、即テスト出来ます。これは便利すぎる。

ただ、やってみてわかったのは、やっぱりAndroidとiPhoneで挙動が結構違うなあと。あと重い。これは仕方ないか。UI用にJQuery Mobileを使ってますが、Onsen UIの方が良いのかなぁ。

JavaScript久しぶりに触ったから、やり方わからず調べまくりで結構大変です。JSONでサーバとデータのやり取りする方法がわかったので、難しい処理はサーバに投げちゃおうかな。電波届かないと動かないアプリになっちゃうけど。

ビルドまでして、一通りアプリ開発の流れはつかめました。

enchant.js

フレームワークにenchant.jsが組み込めることを知り、こちらも触ってみることに。ブラウザ上で2Dアクションゲームが作れるということて、何年か前から存在は知ってたんだけどね。

とりあえずPC上のブラウザで試したんだけど、結構簡単に作れるね。ゲームに必要な機能は最初から入ってるし、スマホ用のタッチ動作なんかはプラグインで対応できるっぽい。

サンプルだと1つのjsファイルに全部突っ込んでてどうなんだろうと思ってたけど、別ファイルに分けられる事がわかったので、ある程度複雑な処理も混乱せずに使えそう。

冒頭の画像は巫女さんを十字キーで操作、アリは自動で歩き続けるだけのものです。アニメーションも簡単に導入できて素晴らしい。

ぶっちゃけ

通常のアプリはMonacaで開発しようと思います。ただ無料版だとアプリ数やプラグインの制限等があるんだよね。有料版は結構なお値段するので、いつかはMonaca止めて自前で環境構築することになるかも。

enchant.jsの方はとりあえずやってみたものの、Unity使ったほうが良いかなぁなんて思ったりw 簡単なものはenchant.js、規模の大きいのはUnityって分けていけばいいかな。

ゲーム開発しようと考えると、プログラムより絵や音楽の用意が大変なんだよね。冒頭の画像は5年以上前に描いたドット絵で、とても今使えるものじゃないから描き換えが必要だし。

先は長い……

アサシンクリードI+IIウェルカムパッククリア(ネタバレ)

assassin1-2アサシン クリード I+II ウェルカムパックという詰め合わせソフトをクリアしました。

クリア時間は1が15~20時間くらい、2が30~40時間くらいです。もっとかかってるかも。

舞台は現代。うっかり拉致されたデズモンド君がアニムスという機械でDNAの記憶を吸いだされるというお話です。で、その記憶を追体験していく事でストーリーが進んでいきます。

アサシンクリード1

12世紀末、十字軍時代のエルサレム。アサシン教団アルタイルが主人公です。優秀だけど慢心から仲間を失ってしまい、下っ端からやり直していきます。

プレイして驚いたのはマップが滅茶苦茶広い! 景色は石造りの粗末な建物ばかりだけど、ゲームでこんなに広い街の中を走り回るのは初めてですよ。結構簡単に壁によじ登れるので、屋根を伝って行くのも楽しい。

ただ広い割にやることは単調だね。新しい街に入ったら高い所に上ってマップを作成。街中で敵の噂調査。それで証拠が集まったら暗殺です。

敵は9人のテンプル騎士団です。倒すとアルタイルの腕の中で遺言残して死んじゃうんだけど、何だろうあの2人の世界はw

そしてラスボスは途中から何となくわかっていたアサシン教団長。味方のトップが実は、ってやつだね。倒して宝の地図が表示されたら、現実世界に戻ってきて終わりです。ここで終わり?! ってびっくりしたよ。続編前提とはいえ尻切れトンボすぎる……

アサシンクリード2

デズモンド君が捕まっていた所はアサシンの敵、テンプル騎士団の施設です。そこからルーシーの手引で脱出できました。まあ場所は変わっても、またアニムスでダイブするんだけどね。

15世紀、ルネッサンス期のフィレンツェ。貴族の次男エツィオが主人公です。最初はケンカしたりおつかいしたりで何だこりゃって思ったけど、父と兄弟が冤罪で殺された事でアサシンになります。実際はテンプル騎士団によって秘宝を手に入れるために殺されたんだけどね。

ルネッサンスなだけあってだいぶ街並みがカラフルになってます。そして相変わらずだだっ広い。お宝やらイベントやらが地図上に大量にあって、全部こなしてたらあと何十時間かかることやら。アサシンの墓所などはシビアなアクションと時間制限がキツくて全部はクリア出来なかったよ。

実在の建物があったり、史実通りのイベントがあったり、レオナルド・ダ・ヴィンチみたいに歴史上の人物も出てきたりで、なかなか興味深いです。ただこの時代の事は全然知らないので、そのうち調べてみようかな。どこまでが事実なのかわかってないしw

2はアクションが増えてるから戦闘や移動がより面白くなってるね。敵に見つかったらやり直しなイベントもあるので、考えながら進める必要があったり。

ラストのヴァチカンの地下にいた神らしき者は何者だったんだろうか。あとエツィオが預言者ってのはDNAの記憶をデズモンド君が見ることで預言を達成してるんだね。面白い。

2のラストも隠れ家からの脱出で終わりという尻切れトンボだったけど、もうそういうものだと理解したよw

そういえばシークエンス12と13がDLCだったらしいんだけど、知らずにクリアしてたよ。確かに急にお城を攻めたり、洗脳された人達を暗殺しに行ったりと、考えてみれば外伝っぽかったね。

まとめ

確かにゲームシステムは単調だったし、そのくせ2は20年もの時間の流れがあるから人多すぎてよくわかんない状態だったけど、街並みの綺麗さや色んな暗殺パターンがあって面白かったです。

続編が幾つか出ていて俺も既に何本か買ってあるけど、しばらくは別のゲームをプレイしようかな。かなり長時間プレイしてたからね。

榊原ゆい2014春ライブに行く

誘われたので、榊原ゆい2014春ライブ「Coupling With★LOVE × Live2014」の東京公演に行ってきました。

カップリング曲をメインに据えるという、ちょっと異色なライブです。俺は後ろの方で見てたけど、かなり盛り上がってたね。

スペシャルゲストとしてKOTOKOさんと佐藤ひろ美さんが共演しましたが、
148cm 佐藤ひろ美さん
150cm KOTOKOさん
163cm 榊原ゆいさん

という身長差のため、一緒に並ぶと親子レベルでしたw トークでもそれをネタに「小学4年生の平均身長です」なんて言ってたよ。

しかしライブは3時間あり、立ってただけの俺でさえかなり疲れたのに、その3時間を歌って踊っていた体力は凄まじいね。

良かったです。