スプレッドシートで範囲内に出現する文字数を数える方法

Googleスプレッドシートで、特定の範囲内に出現する文字数(あるいは文字列数)を数える方法です。

エクセルでは、SUBSTITUTE関数があるのですが、スプレッドシートではSUBSTITUTEは置換関数なので用途として異なります。

スプレッドシートの場合は、COUNTIF関数でワイルドカードを使うことが出来ます。

=COUNTIF(検索範囲,”*検索対象文字列*”)

上記記述で、検索範囲内に出現する検索対象文字列の出現回数をカウントすることができます。

検索対象文字列を、アスタリスク(*)で囲むことがポイントです。
アスタリスクを使わない場合完全一致になるので、*で囲むことで範囲内の出現回数をトータルでカウントできます。

【Hearth Stone】Ranked Match 勝率 2016年4月度

Mech Mage
1-1

相手デッキ
freeze mage 1-0
murloc paladin 0-1

コンボドルイド
1-0

相手デッキ
zoo worloc 1-0

レジェンドウォーリア
2-0

相手デッキ
ウォーリア 1-0
プリースト 1-0

クラロワおすすめカード

クラロワのおすすめカードについて考察を書いてみます。

まず、このクラロワというゲームは勝つつれてカードが増えていき、その組み合わせでデッキの幅が上昇するゲームなので、どのカードが強いかというのは、そのデッキの戦略によって左右されるわけです。

ただ、その中でもよく使われているカードと言うのは存在しています。

メニュー内にクラロワTVというのがあって、そこで強い人のデッキ構成を見ることができるので、そこからよく使われているカードを調べてみました。

カード名 使用割合
矢の雨 7.8
女性ヒーロー 7.3
エリクサーポンプ 6.7
ダークプリンス 5.3
ゴブリン 5.3
プリンス 5
フリーズ 5
ガーゴイルの群れ 4.7
P.E.K.K.A 3.9
ホグライダー 3.9
男ヒーロー 3.6
ベビードラゴン 3.4
槍ゴブリン 3.4
大砲 3.4
スケルトン 3.1
ファイアーボール 3.1
マスケット銃士 2.8
バーバリアン 2.5
ウィザード 2.5
インフェルノタワー 2.5
テスラ 2.2
ゴブリンバレル 2.2
バルキリー 2.2
スケルトン部隊 1.7
ザップ 1.7
巨大スケルトン 1.4
ナイト 1.1
墓石 1.1
巨大クロスボウ 1.1
ボンバー 0.8
ジャイアント 0.8
ロケット 0.8
ミニP.E.K.K.A 0.6
ライトニング 0.6
ゴーレム 0.6
エアバルーン 0.6
クロスボウ 0.3
バーバリアンの小屋 0.3
ネクロマンサー 0.3
ガーゴイル 0.3
ボムタワー 0.3
迫撃砲 0.3
ポイズン 0.3
ゴブリンの小屋 0.3
バーバリアンの小屋 0.3
0.3
アーチャー 0.3

クラロワTVは上位プレイヤーのデッキが多いので、比較的後半で入手できるカードが多いですね。

まだ調査した数がそれほど多くないので、随時追記していきたいと思います。

【hearthstone】ヒーローごとのアリーナ勝率 201603

アリーナでどのヒーローを使うと勝率が高いか、メモをとっていきます。

自分選択
パラディン
2-0

相手
ウォーロック 1-0
ドルイド 1-0

【hearth stone】Ranked Match勝率記録 2016年3月期

hearth stoneの通常のRanked Matchでの勝率について記録していきたいと思います。

Ranked Match

結果

最終的にRank 13でフィニッシュでした。
後半は仕事が忙しくてあまりプレイできませんでした。

自分のデッキのみ

1:meck mage、コンボドルイド 100% (※ 1戦しかしてない)
2:シークレットハンター 75%
3:バーンシャーマン 66%
4:レジェンドウォーリア 60%
5:フリーズメイジ 33%
6:スペルメイジ、レノジャクソンメイジ、レノジャクソンウォーロック 0%

詳細

使用デッキ
・レジェンドウォーリア
6-4

相手デッキ
freeze mage 1-0
コンボウォーリア 1-0
ramp druid 1-1
ブースト10マナドルイド 0-1
レノジャクソンウォーロック 1-0
テンポメイジ 0-1
マーロックパラディン 0-1
メカメイジ 1-0
dethrattle シーフ 1-0

使用デッキ
Mech Mage
1-0

相手デッキ
シークレットパラディン 1-0

使用デッキ
freeze mage 1-2

相手デッキ
ヒーラー priest 1-0
feeze mage 0-1
Paladin 0-1

使用デッキ
レノジャクソンメイジ 2-3

相手デッキ
スペルメイジ 1-1
シークレットパラディン 0-1
コンボウォリアー 1-0
リブアウトドルイド 0-1

使用デッキ
スペルメイジ 0-1

相手デッキ
ハンター 0-1

使用デッキ
シークレットハンター 3-1

相手デッキ
プリースト 1-0
レノジャクソン ウォーロック1-0
レジェンドウォーリア 0-1
トークンドルイド 1-0

使用デッキ
レノジャクソンウォーロック 0-2

相手デッキ
シークレットパラディン 0-1
オイルシーフ 0-1

使用デッキ
コンボドルイド
2-0

相手デッキ
速攻シャーマン 1-0
トークンシャーマン 1-0

使用デッキ
バーンシャーマン 2-1

相手デッキ
コンボドルイド 1-0
プリースト 0-1
フリーズメイジ 1-0

カジュアルマッチ

以下は、カジュアル対戦での戦績
使用デッキ
レノジャクソンドルイド 2-2

相手デッキ
テンポメイジ 1-2
トークンウォーロック 1-0

負けた時
テンポメイジ:序盤のポータルからの猛攻からレジェンドを連打されて負け
・低マナ域で優秀なカードが少なく、場が支配されやすい
・支配された場をひっくり返せるカードが少ない(しいていえばSwipeがあるが)
・レノジャクソンは強いが、それだけでゲームをひっくり返せるわけでもない

使用デッキ
コンボドルイド 3-3

相手デッキ
ウォーロックトークン 0-1
ウォーロック 1-0
fleeze mage 1-0
オイルシーフ 0-1
メカメイジ 0-1
パラディン 1-0

負けた時:
優位を握られそのまま押し返すことができず:
エリッサが無駄気味なので、Sluge bulcherに変える
Ancient of Warはsnapで手札に戻されるいいカモ
1〜3ターン目の動きが弱い。Swipeしか逆転手段がない

勝った時:
やはり野生の咆哮+2/2×3体のコンボは強い

FFBEでFFTイベント後に聖石の欠片(および星6覚醒用アイテム)は入手できるか

FFBEでは現在FFタクティクスとのコラボを開催中ですが、イベント開催期間は3/3の23:59までとなっているため、その期間を過ぎてしまってから聖石の欠片のアイテムそのものや、星6進化素材をはじめとした交換素材を入手可能かどうか、不安に思う人もいると思うので調べてみました。

結論からいうと、星6進化のための素材は、今後も(おそらくイベントなどを通じて)交換または入手できる機会はあるということです。
集めるのはかなり大変な作業ですので、無課金では期間中には、星6進化素材1セットだけでも入手するのが難しい人も多いと思います。

ただし、「聖石の欠片」というアイテム自体が入手できるのかどうかは不明で、今後のイベントでは星6覚醒用のアイテムは、その他の素材との交換になる可能性はあります。

また、星6進化素材以外のアイテムに関しては、期間内でしか交換できないということです。

そのため、残りの期間は僅かですが、星6進化素材より、他の武器や防具、アビリティなどを優先すべきでしょう。

※ 以下、公式サイトの画像のキャプチャです。
FFBEお知らせ

【WordPress】.htaccessでドメインの301リダイレクト

ウェブサイトのドメイン変更時に、.htaccessを使ってドメインごと301リダイレクトする場合の記述についてです。

example.com を
example2.comに移転する場合の記述です。

# BEGIN WordPress

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(example\.com)(:80)?
RewriteRule ^(.*) http://example2.com/$1 [R=301,L]


# END WordPress

以上の記述をリダイレクトする前のサイトのドキュメントルートに設置することで、301リダイレクトできます。

リダイレクトした後に、WordPressのデータベースの投稿内に含まれているドメイン名は置換します。以下のSQLで置換できます。

update wp_posts set post_content = replace(post_content, ‘example.com’, ‘example2.com’);

【星ドラ】おすすめの上級職の考察

  • 2016年2月10日 2:01 PM
  • iPhone

星ドラで、上級職が本日から解放されましたね。

どの上級職にするか迷っている人もいると思うので、おすすめの上級職について考察を書いてみます。

上級職転職の基礎知識

まず、上級職に転職するには、下級職の2つをレベル50以上に上げる必要があることと、「職業神の聖堂」で、それぞれの上級職への転職に必要なさとりを入手する必要があります。

上級職のメリットとして、下級職では得意武器が3つだったのが、上級職では5つから6つの得意武器があるので、装備できる武器の幅も広がります。
また、基本職ボーナスとして、下級職2職の到達レベルに応じたボーナスを受けることができます。

バトルマスター

必要職業:戦士、ぶとうかレベル50

得意武器:剣、オノ、ヤリ、扇、棍、ツメ

アクティブスキル1:怒り LV5時:2ターンの間攻撃力40%、会心率25%アップ、被ダメージが増え、防御できなくなる。 CT33秒
攻撃力が大幅に上昇し、会心率も上がるが、被ダメージが大きくなり、防御できなくなる。

アクティブスキル2:チャージクラッシュ LV5時:261%攻撃、チャージタイム-30% CT28秒
物理攻撃を与えつつ敵CTをカット。会心も確率で発動。

パッシブ:打ち払う
稀に敵の物理攻撃を無効化する。

バトルマスターの考察

物理攻撃にエキスパートの「脳筋」ともいえる職業です。
装備できる武器の種類も6種類と多いのは良い点ですが、ムチやブーメランなどの範囲攻撃できる武器は装備できません。
ステータスとしては、攻撃力は高いですが守備力が低く、スキル「怒り」でさらに捨て身の状態になります。攻撃魔力と回復魔力は低いため、呪文要員には当然不向きです。
強力なコンボとしては、スキルを全てチャージしておき、「怒り」から攻撃スキルを全て解放して連続攻撃を加えるのは非常に強力です。
スキル「チャージクラッシュ」は、強力なチャージブレイクといったかんじで、攻撃力がチャージブレイク、やいばくだきよりも高く、減らせるCTも多くなっています。

パラディン

必要職業:僧侶、武闘家レベル50

得意武器:ヤリ、杖、扇、棍、ツメ

アクティブスキル1:戦友の盾
ダメージを抑えつつ、指定した味方一人のダメージを引き受ける
スキルレベル5で、3ターンの間ダメージ25%カット。 CT23秒

アクティブスキル2:グランドネビュラ
回復魔力値に依存するイオ系の全体ダメージ攻撃 スキルレベル5でCT30秒。

パッシブ;くじけぬ心
致死ダメージを稀にHP1で耐える。

パラディンの考察

HPを守備力が高い、いわゆる「タンク」の職業です。
上級職での回復役として「スーパースター」「賢者」か、パラディンかというところで悩むところです。
攻撃力が激しい敵との戦闘では、回復呪文と「戦友の盾」のスキルでパーティの生存率を高めてくれます。
特に、強力なボス戦を前にして特定の攻撃に対して耐性のある装備の組み合わせと、サポートスキル+戦友の盾のコンボは、パーティの生存率を飛躍的に高めてくれるでしょう。(ただし、対象は味方1体のみなので、他の2人の攻撃はさばききれません)

欠点としては、自身のスキルによる回復系スキルがないので、回復役にするのであれば、回復スキルのスロットのある武器か、杖を装備するなどでサポートが必要となります。

賢者

必要職業:魔法使い、僧侶レベル50

得意武器:ヤリ、短剣、杖、ムチ、棍

アクティブスキル1:ザオラル レベル5でCT:93秒
指定した味方一人を100%蘇生する。蘇生時HPはスキルレベルにより変化。

アクティブスキル2:連続じゅもん レベル5でCT:20秒
じゅもんスキルを2つ選んで発動する。

パッシブスキル:じゅもんのコツ
こうげき、ほじょじゅもんのCTを10%カットする。

賢者の考察

魔法のエキスパートの職業です。
攻撃魔力も回復魔力も高く、連続呪文で呪文を2つ選んで発動可能な他、蘇生効果の「ザオラル」を使える唯一の職業です。(しかもザオラルは100%蘇生なのはありがたいですが、CTは93秒とかなり長めです。)
魔法使いはこれまで使われない職業だったので、賢者の登場によって人気が出ることがあるかどうかは気になる点です。
欠点としては、物理攻撃と身の守りは低いですが、それぞれ全職業中最下位ではありません。
基本的には呪文アタッカー&回復要員のポジションなので、活かすためには強い杖がほしいところです。
最大HPは低いので、防具で補う必要はあるでしょう。

魔法戦士

必要職業:戦士、魔法使いレベル50以上

得意武器:剣、オノ、ヤリ、短剣、杖、ムチ

アクティブスキル1:魔法連斬 レベル5で威力261%+威力と属性を引き継いだ攻撃 CT40秒
指定した攻撃呪文のあと、属性ダメージ付きの物理攻撃で追撃する。

アクティブスキル2:マジックバリア
仲間全体のじゅもん耐性を上げる。レベル5で2ターンの間25%カット。

パッシブスキル:こうげきじゅもんのコツ
こうげきじゅもんのCTを15%カットする。

魔法戦士の考察

魔法と物理攻撃を兼ね備えた職業です。
バトルマスターと並ぶアタッカーといえる職業で、バトルマスターとどちらを選択するかが悩ましいところです。
バトルマスターと比べるとメリットとしては、全体攻撃可能なムチが得意武器なことや、守備力のステータスが高めなことがあります。また、専用スキルの「マジックバリア」は特にボス戦では役に立つスキルです。
バトルマスターが「怒り」のスキルで捨て身で攻撃をしにいけるのに対して、魔法戦士はマジックバリアで守りを固める印象でしょうか。
デメリットとしては、魔法は使えるものの、攻撃魔力はそこまで高くないので、魔法アタッカーとしてはやや中途半端な印象は残ります。
専用スキルの「魔法連斬」は、CTが40秒と溜まるのに時間がかかるのは難点ですが、威力261%+魔法ダメージ上乗せという、かなり強力な攻撃スキルです。

海賊

必要職業:船乗り、踊り子レベル50

得意武器:剣、オノ、ハンマー、短剣、扇、ブーメラン

アクティブスキル1:荒波の舟歌
味方全体の守備力と息耐性を上げる。
レベル5で2ターンの間、守備力20%、息耐性30%アップ。 CT61秒。

アクティブスキル2:ほうげき
無属性の敵ランダム複数回攻撃を行う。
レベル5で、威力85%の5回攻撃。CT58秒。

パッシブスキル:海の絆
味方にかける「ほじょとくぎ」「ほじょじゅもん」の有効ターン数が1ターン延長される。

海賊の考察

船乗りの上級職といった感じの職業で、味方へのサポートと攻撃を得意としています。
専用すきる「荒波の舟歌」「ほうげき」は、CTこそかかりますがいずれも強力なスキルで、ほうげきに関しては、最大レベルの場合、通常攻撃の4回連続攻撃以上の威力があります。
パッシブスキルの効果もあって、味方へのサポートを行いつつ敵への攻撃を行うのに適した職業です。
欠点としては、ステータス上のちからはバトルマスターや魔法戦士より低いです。

まものマスター

必要職業:船乗り、レンジャーレベル50以上

得意武器:剣・オノ・ハンマー・ムチ・ブーメラン、弓

アクティブスキル1:火炎のブレス
敵全体にランダムな炎系のブレスで攻撃する。レベル5でCT38秒。

アクティブスキル2:かみくだき
敵1体を攻撃しつつ攻撃力・守備力をそれぞれ確率で下げる
レベル5で威力222%の攻撃で、37%の確率で攻撃力と守備力をダウンさせる。CT28秒。

パッシブスキル:ほじょとくぎのコツ
ほじょとくぎのCTを15%カットする。

まものマスターの考察

自然を味方にして戦うタイプ?の上級職の職業。
上級職の専用スキル「火炎のブレス」「かみくだき」はそれぞれ便利なスキルです。

スーパースター

必要職業:踊り子、レンジャーレベル50以上

得意武器:短剣、ムチ、扇、ブーメラン、弓

アクティブスキル1:ハッスルダンス
味方全体のHPを中程度回復する。
レベル5でCTは33秒。

アクティブスキル2:オンステージ
味方全体の攻撃力と素早さを上げる。
効果は使用者が攻撃を受けるか行動不能になるまで永続する。
レベル5でCTは38秒。

パッシブスキル:ほじょじゅもんのコツ
ほじょじゅもんのCTを15%カットする。

スーパースターの考察

スーパースターの特徴は、何といっても、味方全体回復を回復できる「ハッスルダンス」を習得できることです。CTも33秒とそこまで長くないので、貴重な全体回復として、ボスバトルでは役に立つことでしょう。
この職業のデメリットとしては、攻撃力が低めなことと、下級職で覚えるスキルがそれぞれ微妙なものが多いので、物理攻撃+ハッスルダンス、いやしの風での回復要員といったかんじになりそうです。
「ベホマラー」が使用できる武器が登場したら価値が低くなる可能性がありそうな職業ですが、それまでの間は回復要員としては重宝しそうです。
パッシブスキルの効果があるので、ほじょじゅもんの運用要員としても向いています。

まとめ、おすすめの職業

特化アタッカー
・バトルマスター
・魔法戦士

補助よりアタッカー
・船乗り
・まものマスター

タンク
・パラディン

回復+補助要員
・賢者
・スーパースター
・パラディン

魔法エキスパート
・賢者

といったところでしょうか。
レベル50まで上げることはなかなか大変な作業なので、基本的にはこれまで自分の育成してきた職業から転職可能な職業や、また自分が持っている強力な武器が得意武器な職業をベースに考えて問題ないと思います。

MacのOSアップデート後にphpで不具合が起こる場合の対処法

MacのOSアップデートを行うと、自身のMac上に構築していたサーバ環境が動かなくなる場合がありましたので、対処法のメモです。

まず、私のケースでいうと、不具合が起きたのが、PHP+MySQLのサイトです。
(EC-CUBEサイトを構築)

アップデート前は動いていたのが、アップデート後には画面が真っ白になるなどのエラーが起きるようになってしまいました。

私の場合、EC-CUBEでのエラーだったので、EC-CUBEのログファイルを確認

/data/logs/error.log

確認すると、以下のようなエラーが起きていました。

Fatal error(E_USER_ERROR): DB処理でエラーが発生しました。
SQL: [SET SESSION storage_engine = InnoDB]
PlaceHolder: [array (
)]
MDB2 Error: connect failed
_doConnect: [Error message: No such file or directory]
[Native code: 2002]
[Native message: No such file or directory]

要は、DB接続に関するエラーです。

ここで、ネットでいろいろと調べてみたのですが、トラブルシューティングのポイントとしては、

MACは、OSアップデート時に各種設定ファイルを初期化するが、バックアップはとっている

ということです。
具体的には、今回のケースでいえば

Apacheの設定ファイルである「httpd.conf」「php.php」を、アップデート前のファイルと比較します。

ターミナルから、以下の方法で差分を確認できます。

httpd.confの場合

diff /etc/apache2/httpd.conf /etc/apache2/httpd.conf.pre-update

差分の部分を、httpd.confに追加してやります。

php.iniの場合

php.iniは、まず、アップデートするとそもそもphp.iniがなくなっているので、作成から入ります。

cp /etc/php.ini.default /etc/php.ini

これでphp.iniが作成されるので、あとは差分を比較します。

diff /etc/php.ini /etc/php.ini-◯.◯-previous

差分をphp.iniに適用してやります。

これで設定が同じになるので、アップデート前動いていたのであれば動くようになるはずです。

適用した後、

sudo apachectl restart

でapacheを再起動するとOKです。

nginx+hhvm+fastcgiが遅かったのを解消

先日WordPressサイト構築用に、爆速WordPress対応サーバーという「kusanagi(クサナギ)」というサーバを契約してみました。

サーバの設定は

Webサーバがnginxで、PHPがhhvmです。

それで早速使ってみたのですが、WordPressは確かに早くなりました。

ただ、何故か通常のPHPスクリプトの実行に非常に時間がかるどころか、タイムアウトを頻繁に起こす状態に。
特に、軽いPHPの場合は問題なく処理できるのですが、大きいファイルサイズのPHPの場合は頻繁にタイムアウトを起こしてしまう自体に・・・。

それで、nginxの設定とひたすら格闘していたのですが、何とか原因がわかりました。

このkusanagiというサーバ特有の設定で

fastcgi_buffers 8 256k;

という設定が設定ファイルの中に入っていたのですが、よくわからないのですが、この前半の「8」というのが小さい値すぎたみたいで

fastcgi_buffers 800 256k;

とか大きいサイズにしたら問題なく動作するようになりました。

サイズに関しては環境によって適切な値が異なると思うので、一番あった値に調整してみてください。

【Hearthstone】リング・オブ・エクスプローラーレビュー

Hearthstoneで新しいソロアドヴェンチャー「リング・オブ・エクスプローラー」がスタートしました。

現在1週目ですが、順次解放されていくとのことなので、入手できたカードのレビューをしてみたいと思います。

ハンター

探検家の帽子
コスト2でミニオンに+1/+1。つけたミニオンが死亡すると手札に戻ってくるというカード。
コスト1ならまだ使ってみようという気になりますが、コスト2でこの効果はちょっと渋い気がします。
速攻でテンポ重視のハンターのデッキにはあまり居場所はないでしょう。

メイジ

忘れられた松明
3マナで3点のダメージ。使った後デッキに戻って再度引いた場合は6点のダメージを与えることが出来るカードです。
弱くはないですが、正直微妙かもしれません。
メイジのカードには、2マナ3点フリーズ、4マナ6点があるので、それらに加えてデッキに入れるスペースがあるかどうか。
ただ、あまり多きの期待はできないですが弱くはないので試しに使ってみる価値は十分あるでしょう。

パラディン

1マナのシークレットで、場に出た時に相手の場に3体以上の生物がいると、追加で出てきた生物を破壊します。効果が限定されるので微妙だと思いますが、シークレットパラディンに入るかどうかというところでしょうか。

ウォーリア

オブジディアン・デストロイヤー
7マナ7/7で、ターン終了時に1/1Tauntを呼び出します。
弱くなったDr.Doomといったところ。

ウォーロック

闇の売人
2マナ2/2で、場に出た時ランダムに選ばれた1マナのカード3枚から1枚を選びます。
2マナのミニオンとしては悪くはない性能です。

ニュートラル

西風の精
5マナ4/6とサイズがけっこうでかいです。
能力として、他の生物へ自分が使った呪文の効果がこいつにもつくというもの。
はまったら強いかもしれませんが、コンボを狙ってデッキに入るかというと微妙なところ。
アリーナでは普通に5マナ4/6というだけでそこそこ強いのでピックする機会はあるでしょう。

宝飾スカラベ
2マナ1/1で、場に出た時、ランダムに選ばれた3マナのカードから1枚を選びます。
弱くはないですが、1/1というのが場へのインパクトがすくなすぎて何ともというかんじです。
アリーナで使うことはあるでしょう。

アヌビサス・センチネル
5マナ4/4で死んだ時に他の生物に+3/+3の効果があります。
正直5マナ4/4という時点で微妙というかんじです。
他のミニオンを除去されてから倒されると何の効果もないので単体で出したときの弱さも特筆です。

召喚石
5マナ0/6で、スペルを使った時にランダムでそのコストのミニオンを召喚します。
この専用のデッキを組んでみようと思わせるという意味では面白いカードですが、いかんせんパワーもなくコストも高めなので強くで使うというより、何とかこのためにデッキを組んで使ってみようかというかんじかと思います。

轟きのエレメンタル
4マナ2/6で、こいつがいると、場に出た時の効果を持つ生物が場に出た時ランダムの敵に2点のダメージを与えます。
こいつをいかした専用のデッキを組みたいと思うかというと…微妙なところです。

古代のシェード
4コスト7/4にでた時自分のデッキに呪いを仕込み、引くと7点のダメージを受けます。
正直微妙すぎます。タフネスが4なので死にやすく、パワーが7なので「Big Game Hunter」の餌食になってしまいます。デメリットの7点ダメージも馬鹿になりません。

レノ・ジャクソン
6マナ4/6で、自分のデッキ内容が全て1枚ずつだったらライフを全回復できます。
発動できれば強いですが、制限内容にはガチデッキの場合少し無理があるでしょう。

liuxでログファイル肥大化の対策

最近、個人で使っているVPS(仮想専用サーバ)が、頻繁にダウンするという現象が起きていたのですが、原因がサーバのディスク容量がいっぱいになっていたことでした。

どこがサーバの容量を圧迫している原因になっていたかというと、PlESKのログファイルでした。

PLESKのログファイルは、以下の場所に出力されます。

/var/www/vhosts/ドメイン名/statistics/logs

ここに出力される error_log と access_log が、サーバ標準の設定ではログローテーションの設定がされていなかったため肥大化し続け、気がつけばサーバ容量の大半を圧迫していました。

対策として、以下の2つを行いました。

1.PLESKログのローテーションの設定

PLESKのログのローテーションは、PLESKログイン後、以下から変更することができます。

ウェブサイトとドメイン → ログ → 該当ドメインの「表示する」 → ローテーション

2.ディスク容量が少なくなった時アラート設定

PLESKのログのローテーションが設定されたとしても、ログファイルは他のアプリケーションから知らないうちに生成されていることがあり、気がつけば同様のことが再度起こる可能性があります。

そのため、サーバのディスク容量が一定以下となった場合、管理者へメール通知をする設定を行いました。

これには、以下のブログ記事が参考になりました。

>Linux – ディスク使用量監視&メール通知! – mk-mode BLOG

パーティションの容量を確認して閾値以下だった場合管理者へメールを送信するシェルスクリプトを作成し、cronで実行します。

https://gist.github.com/komasaru/9580138

【Hearth Stone】The Grand Tournament個別カード評価

Hearth Stoneで、新シリーズ「The Grand Tournament」のカードの一部がTavern Brawlで遊べるようになっていたので、早速遊び倒してきました。

それぞれのカードの個別の感想と100点でのArenaでの点数を書いてみたいと思います。

全体的に運ゲーっぽい要素が少し増えたかなというかんじがしないでもないですが、新しいカードが多く登場するのはやはり新鮮です。

Neutral

Common

Lowly Sqruire

コスト1 1/2
Inspire:Attack+1を得る

アリーナ点数:65/100

1コスト1/2で、Heroが起動型能力を得るとパワーが+1されます。
このパワーが+1されるというのがターン終了時まででなく永続的というのがポイントです。
1コストのミニオンとしては優秀な部類に入ります。
後半に引いた場合でも、1ターンにヒーローパワーを複数回起動できるカードとの組み合わせで一瞬にしてパワーが5を超えるような場合があるので侮れません。

Tournament Attendee

1コスト2/1 Taunt

アリーナ点数:55/100

1コスト2/1でTauntを持っています。
同じくコモンで1マナ1/2でTauntのミニオンがいましたが、あちらに比べると攻撃的な性質を持っていて、先行で1ターン目に出した場合などにプレッシャーをかけていくことができます。

Lance Carrier

3コスト2/1 Divine Sield, Charge

アリーナ点数:75/100

3コスト2/1で、ChargeとDivine Shieldを持っています。
Health2以下のミニオンを一方的に倒すことができ、ゲーム序盤での優秀さはかなり高いです。
3コスト3/1でDivine SieldのSacret Crusaderがいますが、あちらに劣らず優秀です。

Dragonhawk Rider

3コスト 3/3 Inspire:ターン終了時までWindfuryを得る。
アリーナ点数:50/100

3コスト3/3で、Inspireでターン終了時までWindfuryを得ます。
状況によってはアタッカーとして活躍することもありますが、性能としては至って普通です。

Evil Heckler

4コスト 5/4 Taunt
アリーナ点数:80点

以前の5コスト5/4Tauntのミニオンはなんだったのという、同じ能力で1コスト下がって登場のミニオン。
4コスト5/4のBeastの評価はいまひとつでしたが、Tauntが付くことで、状況によっての場の支配力がアップして当然強力です。

Maiden of the Lake

4コスト 2/6
あなたのHero Powerのコストを1減らす

アリーナ点数:80点

Heroの起動型能力のコストを1下げるユニット。
今回のInspire持ちのミニオンとの相性が抜群です。
Healthが6あるので死ににくいのも高評価のポイントです。複数回Hero Powerを起動できるミニオンとのコンボでゲームを制圧できることがあります。

Refreshment Vendor

4コスト 3/5 Battlecry:両方のHeroのHealthを4回復する。

アリーナ点数:50点

場に出た時の効果は、有利に働くこともあれば不利に働くこともあります。
つまり、普通の4コスト3/5ですが、ただそれだけでもそこそこ使えます。

Kvaldir Raider

5コスト4/4 Inspire:+2/+2を得る
アリーナ点数:75点

5コスト4/4ですが、Inspireで永続的に+2/+2の修正を得ます。
2回もHero Powerを起動することができれば8/8とあっという間にゲームを支配するサイズに成長します。

Captured Jormungar

7コスト 5/9
アリーナ点数:55点

7コスト5/9のビーストです。
場に出るともちろん強いのですが、コストが高いので、普通です。
7コスト7/7のWar Golemと似たような評価になります。

North Sea Kraken

9コスト9/7 Battlecry:4ダメージを与える
アリーナ点数:55点

9コスト9/7のビーストで場に出た時の4ダメージを与えます。
シャーマンの6コスト6/5+3点の強化版なので場に出るともちろん強いのですが、コストが重いのが難点です。

Rare

Armored Warhorse

4コスト5/3 Battlecry:ランダムMinionカードでのコスト勝負に勝つと、チャージを得る
アリーナ点数:40/100

4コスト5/3で、場に出た時のカードコスト勝負に勝つとチャージを得ます。
チャージを得ることが前提で普通の性能といったところです。
もし失敗すると標準以下のカードの性能です。

Master Jouster

6コスト 5/6 Battlecry:ランダムカードコスト勝負に勝つと、TauntとDivine Shiledを得る。
アリーナ点数:75点

6コスト5/6で、場に出た時のカード勝負に勝つとTauntとDivine Shiledを得ます。
勝負に勝つことが前提の場合、以前からあった4/5のTaunt+Divineシールドの生物よりも強いので当然優秀です。
ただし、勝負に負けると標準以下のミニオンの性能となります。

Epic

Garrison Commander

2コスト 2/3
1ターンの間にHero Powerを2回使えるようになる。

アリーナ点数:75/100

2コスト2/3で、1ターンの間にHero Powerを2回使えるようになります。
2コスト2/3という時点で普通に使えるミニオンですが、状況によってはゲームの流れを変えることもあります。
特に、メイジやハンターのような複数回ヒーローパワーを起動すると強いヒーローと相性が良いです。
ただし、ゲーム序盤のマナが十分にない状況では思うように活躍もできません。

Kodorider

6コスト 3/5 Inspire:3/5のWar Kodoを召喚する。

アリーナ点数:75点

6コスト3/5というサイズ自体はかなりいまひとつですが、Inspireで自身と同じサイズを持ったkodoを召喚できます。複数回起動することができれば、あっという間にゲームを制圧できます。

Frost Giant

10コスト 8/8 Heropowerを使用した数だけコストが減る

アリーナ点数:80点

10コスト8/8ですが、Heropowerを使用した回数だけコストが減少します。
中盤以降になるとコストパフォーマンスに優れたミニオンで、後半になると0コストで出る場合もありますが、序盤にプレイすることは難しいです。

Hunter

Common

Bear Trap

コスト2 Secret:あなたのHeroが攻撃された後にTauntを持つ3/3のBearを召喚する。

アリーナ点数:50点

攻撃されたときに出るのではなく、攻撃された後に出るのが惜しいSecret。
2コストで3/3Tauntが出るのはコストパフォーマンスに優れているが、防御的なカードで攻撃的な使い方ができないのが惜しい。

King’s Elekk

コスト2 3/2 Battecry:カード勝負に勝つとそのカードを手札に加える。

アリーナ点数:75点

2コスト3/2という時点で既に合格ラインで、およそ1/2の確率でカードを1枚引くことが出来る。2コストで召喚できる生物としては優秀な性能。

Rare

Ram Wrangler

コスト5 3/3 Battlecry:自軍にBeast Minionがいると、ランダムのBeast Minionを召喚する。

アリーナ点数:60点

場に他のビーストがいると、ランダムでビーストを1体召喚する。
運が良ければ9/9チャージのビーストが出ることもあり、運ゲーを痛感できるが、1/1のBeastが出たりするとがっかりする。
強いときは強いが、強さが安定しないカード。

Epic

Lock and Load

コスト2 このターンにSpellをプレイするたびに、ランダムのハンターカードを手札に加える。
アリーナ点数:30点

これまでになかった面白いタイプのスペルカード。
状況に応じては多くのカードを引くことができるが、入手できるカードがランダムなのと、多くカードを引くにはマナが多く必要になるので、安定して大きな効果を得ることが難しい。

Legendary

Acidmaw

コスト7 4/2 他のミニオンがダメージを受けるたびにそのMinionを破壊する。
アリーナ点数:30点

7コスト4/2というのはかなり弱いが、場に存在していると、何でもダメージを与えるたびに他のミニオンが破壊されるようになる。
3コストで敵ミニオンの数だけ1/1ハウンドを出すカードとのコンボが強力で、敵ミニオンを全て破壊することができる。
状況によっては場の形成を変えることができるが、コストが高い上に安定して高い効果を発揮するのは難しい。

Mage

Common

Spellslinger

3コスト 3/4 Battlecry:ランダムのSpellカードを両方のプレイヤーの手札に入れる

アリーナ点数:80点

場に出た時に両方のプレイヤーの手札にランダムのスペルカードを入れる。
追加効果は完全に運ゲーで、たいていは微妙なカードが入手されるが、状況に応じて強力なカードがてにはいり、状況を有利にすることがあれば不利になる場合もある。
とはいえ、基本的に3コスト3/4というだけで強いのでそれだけでデッキに入る。
盤面が有利で押しているときに出すかどうかは判断が難し場合もある。

Flame Lance

5コスト 対象のミニオンに8ダメージを与える
アリーナ点数:60点

ミニオンに8ダメージを与えるカード。
実質的にほとんどのミニオンを除去することが可能だが、5コストと重いのと、本体を対象にできないので4コスト6点に比べると評価は落ちる。

Rare

Fallen Hero

2コスト 3/2 あなたのHero Powerが与えるダメージを1増やす

アリーナ点数:80/100

2コスト3/2という時点で普通のミニオンで、追加性能がメイジのHeroダメージが1増えるということでかなり強力。序盤でも活躍でき、2コストのミニオンとしてはトップクラスの性能といえるだろう。

Polymorph: Boar

3コスト 対象のミニオンを、チャージを持つ4/2のBoarに変身させる。

アリーナ点数:70点

4コストで1/1の羊に変えるのと似た性能を持ちつつ、攻撃的にも使えるようになったカード。
相手の高コストの強い生物を除去するのに基本的には使用するが、相手のライフの状況によっては、自軍の生物を猪に変えて特攻させることでとどめの4点ダメージを入れることもできる。

Epic

Coldarra Drake

6コスト 6/6 Hero Powerが何回でも使用できるようになる。

アリーナ点数:80点

6コスト6/6というのは普通だが、HeroPowerが何回でも使用できるようになる。
コモンのHeroPowerのコストが1になるミニオンとのコンボが決まれば、1ターン生き残ればゲームを終了させるこもできる。

Legendary

Rhonin

8コスト 7/7 Deathrattle:3枚のArcane Missilesをあなたの手札に加える。

アリーナ点数:40点

8コスト7/7というのはとにかく重いが、Deathrattleの能力が発動すれば強力。
ただし、Battlecryでなく、Deathrattleなのが残念で、効果を発揮するには自身が死亡しなければならない。
Dr.Doomと比較すると使いにくさが目立つミニオン。

EC-CUBE3.0のカスタマイズについて調べてみた

EC-CUBE3.0のインストールまでについては前回の記事でやってみました。

今回はカスタマイズについてどう変わったのか検証してみたいと思います。

テンプレートの修正

まず、テンプレートの修正については、EC-CUBEの管理画面から行うことができます。

EC-CUBE3.0管理画面

旧バージョンと比べてナビゲーションが左側になっていますが、ここから編集したいページやブロックを選択するのは同じです。

レイアウト編集かページ編集を選択します。

レイアウト管理

レイアウト管理の画面です。
ここは、EC-CUBEの旧バージョンとほぼ同じです。

ページ編集画面

次にページ編集画面を見てみます。

ページ編集画面

テンプレートの記述方式が、以前のSmartyからTwigに変更になっているため、記述が少し変わっています。
ただ、基本的にはHTML部分+変数部分という意味では同じなので、記述方法が変わっているだけで大きく変わったという印象はありません。

また、author、description、keyword、robotsなど、ページごとにmeta設定を書くことができるようになっています。

以前のEC-CUBEを触ったことがある人であればそれほど難しくはないでしょう。

プログラムのカスタマイズ

さて、続いてはプログラマの人に関しては重要なプログラムのカスタマイズ方法について見ていきます。

まず、テンプレートエンジンがTwigに変更されているので、プログラムの構成がかなり変わっています。

以前は、カスタマイズをする場合は
/data/class/ 以下、または /cata/class_extends/ 以下のフォルダを修正していましたが、フォルダ構成が大幅に変わっています。

プログラムの動作部分のファイルは「src/Eccube」以下にあります。

言語がPHPと、オブジェクト指向で、またテンプレート部分とロジック部分を切り分けて作られているというのは旧バージョンと同様です。

どうやってカスタマイズするかは、カスタマイズの内容によって異なるので何ともいえませんが、ファイル名でおおよそのあたりは付くようになっています。

問い合わせ=ContactController.php
購入=ShoppingController.php

など…。

データベースの構成に関しては、基本的に変わっていない印象を受けました。

データベース構成はほぼそのままに、プログラムのロジックの部分はほぼ丸ごと作り変えられたかんじになっています。

この部分に関しては、Twigのほうがカスタマイズをしにくいというのではなく、古いバージョンに慣れた人であれば、はじめはTwigのプログラムを理解するのにある程度苦労するものと思われます。

カスタマイズにプラグインを使用する

EC-CUBE3.0は、カスタマイズするのにプラグインを使用できます。
しかし、公式サイトを見ても、今のところプラグインは2系に対応したものしかないようです。
そのため、プラグインに関しては、今後3系に対応したプラグインが開発されるのを待つしかなさそうです。

総括

テンプレートとデータベースに関しては、あまり旧バージョンとの違いはありませんが、プログラムのロジックの部分が旧バージョンからTwig用にほぼ作りなおされているので、プログラマの人は旧バージョンに慣れていると、おそらくはじめはカスタマイズに苦労するのではないかと思います。
また、カスタマイズできるプラグインも3系に対応したものがまだでていないので、今作るのであれば2系で作ったほうが簡単かもしれません。
ただし、2系に関してはいずれサポートされなくなり、今後の開発も当面は3系で進んでいくと思われますので、どこかのタイミングでは、新規でサイトを作るのにEC-CUBEを使用する場合は3系を使うようになっていくことが予想されます。

EC-CUBE3.0の旧バージョンとの違いとインストール手順

先日国内の、オープンソースのECソフト構築システムとして最も使われている「EC-CUBE」のバージョン3.0がリリースされていたので、早速インストールしてどのようなかんじか試してみました。

EC-CUBE3.0の2系との違い

公式サイトの説明文を読む限りでは、以下のような違いがあり、かなり大幅なバージョンアップといえます。

スマホ対応、デフォルトテンプレートのショップ側、管理画面のレスポンシブデザイン対応

まず、全面的にシステムがスマートフォンに対応しています。
デフォルトのテンプレートがレスポンシブデザインに対応し、また、管理画面もスマホに対応しています。
これは、昨今のご時世を考えれば必然的な流れともいえそうですが、レスポンシブデザインを使わずに、従来のようにPCとスマホをユーザーエージェントで振り分けたい場合は対応に困るとも言えそうです。
実際に、Amazonや楽天などの大手ショッピングモールはレスポンシブデザインを使わずにユーザーエージェントで振り分けています。

テンプレートエンジンがSmartyからTwigに

EC-CUBEは、もともとプログラマ側の作業とデザイナー側の作業を分離するため、Smartyのテンプレートエンジンが使用されていましたが、EC-CUBE3.0ではTwigと呼ばれるテンプレートエンジンが使われています。

基本機能と追加機能の分離

EC-CUBE3.0では、受注管理、商品管理、顧客管理の3つをコア機能としてデフォルトで搭載され、追加機能はプラグインで対応するということで切り分けているようです。
これは、WordPress的な考え方ですね。

自動アップデート、移行ツールを搭載

EC-CUBE3.0では自動アップデート機能と、移行ツールが搭載されているということです。
これにより、例えば脆弱性が発見されたとして、旧来のようにカスタマイズ箇所を洗い出してソースコードを適用するなど専門的な作業が必要とならないそうです。

全体的にWordPressっぽくなった?

EC-CUBE3.0は上記のような特徴があり、全体的にWordPressっぽくなっているといえそうです。
WordPressはブログシステムや一般的なウェブサイトの構築に使われることが多いですが、EC-CUBEは若干用途が異なっているので、例えば管理画面をスマホから使えるニーズがどれだけあるのかとか、レスポンシブデザインはどうなのとか、意見が分かれる部分もありそうです。
ただ、システムはだんだんバージョンアップしていく必要があるということを考えると、結局のところWordPressっぽくならざるをえないのかなという気はします…。

実際にインストールして使ってみた

実際にEC-CUBE3.0.1をダウンロードして使ってみました。
ダウンロードは公式サイトから会員登録することで行うことができます。

EC-CUBE3.0のシステム要件は以下のページから確認できます。

システム要件 / ECサイト構築・リニューアルは「ECオープンプラットフォームEC-CUBE」

システム要件としては、大きく2系から変わっていることはありません。
基本的にはWebサーバとしてのApache or IIS + PHP + MySQLかPostgreSQL の構成となっています。
これは2系と同じです。
ただし、必須となるPHPやデータベースのバージョンは上がっているので、念のため使用するサーバで問題ないかどうか確認しておきましょう。

今回私の場合は、MacのApacheを使ってローカル環境で構築してみました。

まずは、ウェブサーバ上に、ダウンロードして解凍したEC-CUBEのファイルを一式アップロードします。
※ 設置するサイトのドキュメントルートが「html」フォルダになるようにアップロードを行います。

そして、アップロードしたファイルの/html/フォルダにブラウザでアクセスします。

すると、自動で/html/install.php にリダイレクトされてインストールがはじまるのですが

エラー1

何やらエラーが。「Fatal Error:UnexpectedValueException」というエラーがでました。
ごちゃごちゃかいているエラーコードを読み込んでいくと、/app/log/というフォルダに書き込みができないのでログファイルが作成できないということ。なので、フォルダにApacheからの書き込み権限を与えてやります。

もう一度アクセスすると今度は問題なくインストール画面が表示されました。

eccube2

しかし、上の方に何やら警告がでています。
これは単なる個人的なサーバ設定の問題で、テスト環境のphp.iniにtimezoneが設定されていなかったということだったので、設定しておきました。

すると今度は問題なくインストール画面が表示されました。

インストール画面
↑問題なく表示!

権限チェック

権限チェック

まずはディレクトリの権限チェックがあります。
書いてあるディレクトリの権限を変更します。変更して更新を押すと今度は問題無いと表示されました。
以前のEC-CUBEはファイルごとに細かいパーミッション設定が必要でしたが、EC-CUBE3では基本的にディレクトリのみのパーミッションで良いようです。
ただし、権限を追加してくださいとあるだけで、具体的なパーミッション値についての説明がないので、ここで素人の人は少し戸惑うかもしれません…。

サイトの設定

サイトの設定

サイトの名前やメールアドレス、SSL化するか、管理画面にIP制限を加えるかなどを決めることが出来ます。
ここは特に難しい点はありません。
管理画面のフォルダ名も決めることができますが、WordPressと同じ理由で/admin/は避けておいたほうが良いでしょう。
管理者のID、パスワードも変更できますが、同じく管理者IDに「admin」は避けておきましょう。

サイト設定オプション

オプションを表示にすると、メール送信設定もここで設定することができます。

データベースの設定

データベースの設定

次にデータベースの設定です。
こちらもWordPressや旧EC-CUBEと同じで特に難しい点はありませんが、DBサーバのIPアドレスは旧バージョンではなかった箇所ですが、必須となっています。

データベースの種類の選択肢が、デフォルトで「PostgreSQL」になっていたのは、そちらが推奨という意味かもしれません。
(※ 旧EC-CUBEがMySQLよりPostgreSQLのほうが安定していたり速度が出るのは有名な話)

データベースの初期化

問題なくデータベースに接続できたら、データベースを初期化するかどうか確認画面が出るので、初回のインストールは初期化します。

インストールが完了

無事インストールが完了しました。
管理画面に早速アクセスしてみると・・・

Not Foundに・・・

Not Foundになりました。
ApacheのMod_Rewriteが有効になっていなかったのが原因なので、http.confを編集してMod_rewriteを有効にしました。

EC-CUBE3ログイン画面

無事ログインすることができました。
インストール前に、Mod_Rewriteが有効になっているかのエラーチェックが入って欲しいですね。

管理画面
EC-CUBE3.0管理画面

管理画面については、レスポンシブデザインに対応してWordPressっぽい画面になっています。

サイト画面
サイト画面

サイトのほうも、デフォルトのテンプレートはレスポンシブデザインに対応しています。

さて、次はテンプレートや管理画面のカスタマイズ方法ということで調べてみたいと思います。

とりあえず今回はインストールまでをやってみましたが、旧バージョンと比べて難しくなったてということはありませんでした。
むしろ、インストールまでの手順に関しては旧バージョンよりもパーミッション設定の簡単さから簡単になったかなという印象です。

Xcode7で実機でiOSアプリのテストをする

iOSのアプリを開発するには、これまではAppleのDeveloper登録を行う必要がありました。

これには、年間1万円近くの会費をAppleに支払う必要があります。

しかし、実際にアプリを申請せずともXcodeで実機での動作確認をするだけでもDeveloper登録をする必要がありました。
(シミュレーターでのテストだけなら登録は不要です。)

しかし、現在ベータ版のみ配布されているXcode7では、実機テストだけならDeveloper登録が不要になるということです。
※ ただし、アプリの申請を行う場合には、これまで通りDeveloper登録が必要となります。

これは、アプリ開発の勉強をしていて実機テストしたい人にとってはありがたいですね。

かくいう私も早速Xcode7のBeta版をダウンロードしてみました。

それで、手持ちのiPhoneをMacにUSB接続すると、Xcode上のシミュレーターのOSを指定する箇所に、接続したiPhoneが表示されるようになります。

画面キャプチャ1

しかし、私の場合iPhoneのiOSが8.4で、Xcode7ベータ版ではiOS8.3までしか対象にならないため「No provisioning profiles found」とデバイス上に表示がでてしまい最初は実行できませんでした。

iOS8.4を対象にする方法としては、Xcode6を最新版にアップデート後、入っているリソースをXcode7ベータ版にまるっとコピーしてやる必要があります。

以下の記事などが参考になります。

Xcode7.0betaでiOS8.4の実機にインストールしようとしたら「No provisioning profiles found」になるときは – Cretan Blog

コマンドラインから行ってもMac上でコピー&ペーストしても問題ありません。

これで、iOS8.4がXcode7でもテスト可能になりました。

Xcode7設定画面
↑プロジェクトの設定画面からOSのDeployment Targetを8.4にします。

Xcode+Swiftでじゃんけんアプリを作ってみた

最近勉強もかねて、簡単なiOSアプリを作ってみています。

今日は、練習も兼ねて簡単なじゃんけんアプリを作ってみました。

言語はSwiftでOSはiOS8.4、Xcodeのバージョンは7のベータ版です。

じゃんけんアプリの仕様

・相手のジャンケンの画像が表示されている
・相手が何の手を出した、勝ったか負けたか説明のテキストが表示される。
・こちらがジャンケンでどの手を出すかのボタンが3つ置いてあり、ボタンを押すとジャンケンが実行
・相手のジャンケンの画像が表示され、勝ったか負けたか、あいこかが表示される

アプリ作成の手順

1・Xcodeで新しいプロジェクトを作成して「Single View」で作成をする。

2・Storyboardへの配置

Storyboardに、こちらが出すグー、チョキ、パーに対応するボタンをそれぞれ画面に配置する。
相手の手を表す画像を設置するため、「UIImageview」を画面に配置する。
説明のテキストを表示するため「Label」を中央に設置する。
これらのオブジェクトをauto layoutを使って表示位置を調整する。

3・画像のアップロードと設置

グー、チョキ、パーを表す画像を表示するため、画像をそれぞれ準備してプロジェクトフォルダにアップロードする。
アップロードはドラッグ&ドロップでも行えるが、画面左下の「+」ボタンから「Add files to ~~」からアップロードしてもよい。

それぞれのジャンケンのボタンを画像化するため、ボタンのプロパティから画像を選択する。
※ 画像を選ぶと右側のプロパティ画面に画像を選ぶところがある。

相手の手を表すUIImageViewに画像を設定する。
※ 同様に右側のプロパティ画面から設置する。

4・じゃんけん処理コードの記述

Story Boadに設置したそれぞれのオブジェクトをViewControllerのコードにCtrlを押しながらドラッグしてOutlet接続を行います。

また、3種類のジャンケンボタンを右クリックすると表示されるメニューの「Touch Down」の右側にある◯をView Controllerにそれぞれドラッグしてボタンを押したときの関数を作成します。関数名は適当につけたらOKです。

以下は、私が作成した関数のサンプルです。

これで問題なければ実行できるはずです。

以下は、今回作成したアプリの画面キャプチャです。

ジャンケン画像1

ジャンケン画像2

ジャンケン画像3

6歳の女の子がデザイン、ストーリーを考えたiOSアプリ「みんなクエスト」の発想が面白い

みんなクエスト

6歳の女の子がデザインしたゲーム。発想が新鮮で面白い!

本日、Appbankのサイトの以下の記事が面白かったです。

みんな、いい子になれ! 6歳の女の子が作ったRPGがぶっ飛んでいて面白い | 毎日17時更新!アプリをおすすめするAppBank

このアプリ、初期のドラクエのようなiOSのRPGのゲームなのですが、街や敵、武器などのアイテムなどのデザイン(というか、イラスト)、更にはストーリーまでを、6歳の女の子が担当しているということです。

そして、プログラムの部分は父親が担当しているそうです。

どうも、子供がゲームを作りたいということで、父親がゲーム開発者だったので、強力して作り上げたということ。

ゲーム内の絵が、子供の手書きのイラストで、見ていてほぼのぼします。
また、ゲームシステムも、街にある建物には全てトイレがついていてここでトイレができるのですが、時間経過でトイレにいきたくなると戦闘で不利になったりと、いかにも子供的な発想が随所にちりばめられています。

みんなクエスト

全て小さい女の子の手書きイラスト。なんだかほっこりする。


みんなクエスト

ドラクエっぽいかんじ?(笑)

ゲーム内の世界も動物達の世界で、通貨もお金でなくどんぐりで、戦闘でも敵を倒すと「いいこになる」など、大人では考えつかないようなほんわかした(ときに残酷な)ものになっています。

プレイしていたら、大人でも「こんな子供のころあったな〜」と懐かしい気持ちにさせられることがうけあいです。

ゲームとしてもクソゲーということもなく、意外とちゃんと遊べて楽しいです。

そして、この「みんなクエスト」、どうやら2もでたらしく、1は期間限定で無料でダウンロードできるそうなので、この機会に是非プレイしてみてはどうでしょうか。

私も序盤を少しプレイしてみたかんじでは、スマホなので操作性がいまひとつなのと、テンポの悪さに少しいらつくところもありましたが、初期のファミコンのゲームのようなかんじで、けっこうゲーム自体も楽しめるものでした。

みんなクエストのダウンロードはこちらから

みんなクエスト2のダウンロードはこちらから

MySQLのデータベースのテーブルの型の付け方

プログラミングで、データベースのテーブル作成時に考える必要があることが、項目への型の付け方です。

項目に入るのに適した型を付けることでデータベースのデータ量も変わってくるので、なるべく適切な型をつけたいところです。

型の付け方に関しては、以下のサイトの説明が参考になりました。

MySQLのカラム型(有効範囲と必要記憶容量)|MySQL|PHP & JavaScript Room

項目でINT型にするか、SAMALLINT型にするか、TINYINT型にするかなど、それぞれの型でどの大きさの値まで格納出来るかの説明が分かりやすく掲載されています。

例えば数値であってもTEXT型で格納することは可能ですが、型指定ができていにあとソートするときに正しく比較できないこともあるので、正しい型指定をしておくことが推奨されます。

また、MYSQLでは型を指定するときにint(11)などと長さを指定しますが、この意味は、「格納された値が指定した桁数に満たない時に、左側を空白で埋める」という意味だそうで、その意味ではint(100)だろうが特に問題はないようです。
また、オプション属性の ZEROFILL を使用した際に、スペースに代わってゼロが埋め込まれる際の幅だそうです。

基本的には、例えばINTであれば以下の指定で問題ないと思います。

TINYINT(4) -128~127
SMALLINT(6) -32,768~32,767
MEDIUMINT(8) -8,388,608~8,388,607
INT(11) -2,147,483,648~2,147,483,647
BIGINT(20) -9,223,372,036,854,775,808~9,223,372,036,854,775,807

小さい型指定であればそのぶん使用するデータ領域も少なく済みますので、適切な指定が理想的です。

MTGのiOSアプリ「マジック・デュエルズ」がクソゲーだった

マジック・デュエルズ

ストレスしか溜まらないゲームでした。

先日、iOS版「Magic the Gathering」のiOSアプリ「マジック・デュエルズ – Wizards of the Coast」がリリースされました。

昔MTGをやっていた人には、懐かしくてついインストールしてしまった人も多かったのではないでしょうか。

かくいう私もその1人で、ワクワクしながらインストールして早速プレイしてみました。


↑ダウンロードはこちらから。

しかし、チュートリアルも終え、少しプレイした結果、あまりのアプリの残念な出来にがっかりしてしまいました。

以下、残念だと思った点についてです。

全体的にアプリの操作が使いにくい、分かりにくい

まず、全体的にアプリの操作が使いにくいです。
例えば墓地からカードを戻したり、ライブラリーからカードを探したりするときに、カードを選択したのかどうか分からないときがあります。
例えば「グレイブディガー」をプレイして、墓地のクリーチャー・カードを選択したつもりだったのができてなく、何も手札に戻せないといったことがあります。
また、デュエルが終わった後、右下の「進む」のようなボタンを連打しているとすぐ次のデュエルに突入してしまったりといったことがあります。

日本語訳が間違っている

もちろん「マジック・デュエルズ」は日本語訳がされているのですが、ところどころ日本語訳が間違っています。

あるカードをプレイしたときに、カードの選択肢が2つ表示されるのですが、2つの選択肢に同じ意味の日本語が書いてあることがあり、面食らいました。どちらを選択したら望む結果が得られるのか、1/2の状態です。もはや何のゲームをプレイしているのか分かりません。

デイリーボーナスの条件がおかしい

このアプリは、基本無料の課金型のゲームなのですが、他の同じタイプのゲームにあるように、デイリーボーナスが存在しています。
例えば、「白黒のアーキタイプで勝利する」というボーナスがあり、これを達成するとボーナスのコインが貰える仕組みです。
しかし、この「白黒のアーキタイプ」というのが、手持ちのカードから白黒の2色で構築したデッキでなく、構築済みデッキのようなあらかじめカードが決まったデッキを使って勝利しないとボーナスが貰えません。また、この構築済みデッキが弱いので、難易度の一番簡単なゲームでもぼこぼこにやられます。

せっかく自由にカードが集められるゲームなのに、毎日ログインしてボーナスをもらうために構築済みデッキをプレイしないといけないという、マゾ向けの仕様としか思えません。

また、今のところデイリーボーナスの条件が、この「〜のアーキタイプで勝利する」しかありません。

AIの難易度もおかしい

マジック・デュエルズでは、他人だけでなくAIと対戦することもでき、AIの難易度が簡単から難しいまで3段階から選ぶことができます。
しかし、この「簡単」の難易度ですらけっこう難しく、上記の弱いアーキタイプのデッキではぼこぼこにやられてしまいます。

結論・改善待ち

結論として、今の状態ではプレイしていてストレスしか溜まりません。
恐るべき完成度の低い状態でリリースされたアプリだと思います。
今後のアップデートで改善されることを待つしかないでしょう。
MTGをオンラインでプレイしたい人は、Windowsでプレイできる「Magic Online」をおすすめします。

また、iOSでMTGに近いカードゲームをプレイしたいという人には「Hearthstone」がおすすめです。
こちらはかなり面白いので、MTGが好きな人であればはまることはうけ合いです。



Hearth Stoneのダウンロードはこちらから

Xcodeでタブ画面と画面ごとの処理を実装する

Xcodeでのアプリ開発について、まだまだ初心者ですが、勉強中です。

本日は、勉強したタブ画面の実装と、タブ画面ごとの処理の実装について書いてみます。

まず、タブ画面の作成については、下記のサイトの説明が分かりやすかったです。

第16回 タブコントローラーを表示させる|ドットインストールでiPhoneアプリ作成を勉強 | 経験知

詳しくは上記サイトを見てもらうとして、大まかな流れとしては

1・Story BoardへのTab Controllerへの埋め込み
2・追加したい画面の数だけView Controllerを追加
3・Tab ControllerとView Controllerを繋ぐ

といったところです。
これだけで、タブで画面表示が切り替わるアプリが完成します。

ただ、ここまでは簡単に出来たのですが、問題に突き当たりました。

それは、追加したView Controllerの画面への処理(ロジック)を記述できないということです。

追加したView Controllerから、もともとあったView Controllerへ定義しようと思っても…できません。

しかし、結果として、新しいViewConrllerのClassを定義してやる必要があるということが分かりました。

Xcodeの画面の左のプロジェクトのファイルが表示されているところの左下に「+」というボタンがあるので、そこをクリックすることで、新しいViewControllerのClassをプロジェクトに追加できます。

あとは、そのClassファイルと、追加したView Contorollerを紐付けてやることで、追加したClassファイルに処理を追加できることができるようになりました。

XcodeでWebviewを画面ピッタリに表示する

Xcodeで、とりあえず簡単にWebviewを使ってシンプルにウェブページを表示するだけのアプリを作ってみました。

手順
1・Single Veiwのプロジェクト作成
2・storyboadに、右下からWebviewのパーツをドラッグ&ドロップ
3・Webviewを選択し、大きさを画面ちょうどに調整
4・Webviewを選択し、右下にある四角い図形を選択し、Add Constrantsで、上が20、左右下は0に変更。Add 4 constrantsで適用

add 4 constraints

5・Webviewを選択し、右上の「Scales Page To Fit」にチェックを入れる

「Scales Page To Fit」にチェックを入れる

6・ViewControllerに必要なコードを追記

これでコンパイルして実行。

すると、ウェブページは表示されたのですが、右に謎のマージンが開いた状態に。

ここは、左メニューの「Constraints」で、設定されているConstraintsをチェックしていき、項目の中にある「Second item」を調整していくことで画面ピッタリに表示されるようになりました。


↓Story boardのConstraintsが余白に関係しているので、この中から関係ある余白の設定を調整する。


↑Relative to marginのチェックを外す

ポイントとしては、「Scale to Page To Fit」にチェックを入れることと、Constaraints追加後、左メニューに表示される各「Constraints」の設定が余白を表しているので、変な余白が入っている場合は、大抵このどこかにおかしいところがあるということです。
ここを調整していくことで画面ピッタリに表示されるようになりました。

怪しいConstraintsの設定のSecond Itemを「Superview.Leading Margin」にして、Relative Marginのチェックを外してみてください。

WordPressで投稿本文中にソースコードを綺麗に表示する方法

WordPressで、デフォルトの設定だと、本文作成中に、入力エリアにHTMLなどのソースコードを記述すると、そのままタグが解釈されていまい、本文中に入力したコードとして表示されません。

コードとして表示したい場合は、<を&ltと書いたり、コードを整形しないといけないので色々と手間です。

この場合、プラグインを使用すると簡単です。

Crayon Syntax Highlighter

このプラグインが便利でした。

このプラグインをインストールすると、本文中に投稿したソースコードを選択して、エディタ上部に表示された「crayon」ボタンを押すと、詳細設定画面が表示され、「Insert」ボタンを押すと整形されたソースコードに変更されます。

こんなかんじ。

xcode7のApp Transport Securtyエラーの対処

現在ベータで利用できるXcode7で、Web Viewのアプリを作ってテストしていたら、Xcode6では問題なかったHTTPのウェブページ読み込みの動作で「App Transport Securty」のエラーが起きるようになっていました。
これは、HTTPのサイトの読み込みでエラーになるというもののようで、HTTPSのサイトに関しては問題ないようです。

調べてみると、info.plistに以下の記述を追加することで問題なく動作するようになりました。

下記は、全てのサイトの通信を許可するという記述です。
特定のドメインのみ許可するようにしたい場合は、別の記述を追加する必要があります。

info.plistはXcodeで開いてもどこを編集するかわかりにくいですが、テキストエディタで開いてやると下記コードのコピー&ペーストで追加できます。

XcodeとSwiftでアプリ開発1 – ボタン押すとラベルのテキストが切り替わるアプリ

XcodeとSwiftでアプリ開発をする場合のメモについてです。

実際にXcodeで簡単なアプリを作るところからの勉強です。

ボタンを押してラベルを切り替えるアプリ

画面の中央にテキストがあって、ボタンを押すことでラベルの表示内容を切り替えるアプリです。

Xcodeで新規プロジェクト作成

Xcodeで新規プロジェクトを作成します。
「Single View Application」で作成します。

左側のファイルの中から「Main.storyboard」を選択します。

表示される正方形の画面が、実際に表示される画面のモデルです。
ここに色々なパーツを追加していきます。

まずは右下にあるパーツの中から「Label」を選択して画面にドラッグ&ドロップします。

同様に「button」を選択して画面にドラッグ&ドロップします。
表示位置を調整する機能もあります。

次に、「View Controller.swift」を開きます。

これが、コードの部分です。
ここに、プログラムを実行するときに必要なクラスやメソッドを追加していきます。

Xcodeでは、ここに直接ガリガリコードを書かなくても、このソースコードナイに先ほどのstoryboardからパーツをドラッグすることで必要なコードを追記できます。

まずは、先ほど作成したボタンとラベルとView Controllerのソードコード内にドラッグします。名前は適当に決めればOKです。

これで、先ほどのボタンとラベルを表す変数を定義できました。

次に、ボタンを押したときにラベルの表示を切り替えるメソッドを追加します。

storyboardで、ボタンを右クリックし、「Touch Down」の右側にある◯を先ほどのコードにドラッグします。
関数名は適当につけます。

あとは、ボタンを押した(Touch Down)時の処理をこの関数内に書くだけです。

例えば以下のように書きます。

label.text = “Hello World”

これでボタンを押したときに、ラベルを「Hello World」に変更するアプリが完成しました。

実行するとシミュレーターが立ち上がりますので、ボタンをクリックすると、ラベルが「Hello World」に切り替われば問題なく動作しています。

今日のポイント

Xcodeでのアプリ開発は、パーツの画面への設置にStoryboardを使う。
実行処理の記述にView Controllerを使う。
Storyboardからパーツをドラッグすることでコードの記述が最低限で済む。

MacでAVIファイルをmp4に変換する方法

  • 2015年7月10日 7:53 PM
  • Mac

使用しているPCがMacなのですが、AVIファイルだとiMovieで編集できないので困り、他の形式に変換出来る方法を探していました。

以下のMac用のアプリで簡単に変換できました。
値段も無料です。

FREE WMV AVI Converter

簡単にmp4に変換することができ、iMovieにて編集することができました。

Swiftについての勉強メモ

iOSアプリ開発言語「Swift」についての勉強メモ場所です。

Swiftの特徴

高速

Swiftは「速い」という意味。最速の言語というわけではないですが、Object-CやPytonより速いらしいです。

<3>モダン

様々な言語の新しい機能が搭載されているということ
例:複数の戻り値、クロージャ、ジェネリクス、タイプインターフェース、名前空間など

安全

メモリ管理やオーバーフローが自動的にチェックされるなど

開発しやすい

モダンな要素を取り入れることにより、多言語を使っているプログラマからするとObject-Cに比べて開発がしやすいという話です。
playgroundという機能を使えば、コンパイル前に、リアルタイムに実行結果を直ぐに確認することもできます。

Object-Cと共存できる

Object-Cと共存することができるので、アプリの作成で場合によって使い分けすることができます。

var

変数を格納する場所の意味

var x = 2

変数の値は後から変更できる

let

定数を格納する場所の意味

let y = 3

定数の値は一旦格納すると変更不可能

文字列

“” ダブルクオテーションで囲むと文字列として扱われる

let x = “aaaaa”
let y = “bbbbb”
let z = x + y

for文

for i in 1…50 {
 処理
}

iが1〜50までインクリメントさせて処理をループさせる

画面出力

println で画面に情報を出力できます。

println(“Hello World”);

明示的に型を指定

型はコンパイル時に

日本の借金ってどういうこと?

  • 2015年7月1日 9:15 AM
  • 政治

日本の政治の話になるときに、「日本は借金大国だ」とよく言われます。

この「借金が多くある」とはいったいどういうことなのか?
どのくらいあるのか?
また、どうしてそんなに多く借金があるのか?
返せないとどうなるのかなど調べてみました。

1・借金があるとはどういうことか

「日本が借金をしている」ということはどういうことでしょうか。

これは、簡単に言うと「国民に借金をしている」ということです。

そんなことを言っても、私は国にお金なんて貸していないと思うかもしれません。

しかし、皆さんはだれでもどこかにお金を預けていると思います。
どこでしょうか。そう、銀行です。

銀行が国家が必要な予算や事業のためにお金を国に貸していると考えるとよいです。

そのため、間接的に皆さんが銀行にお金を預け、そのお金を銀行が国に貸していると考えると、つまりはみなさんが国にお金を貸しているということができるわけです。

国の収入とは何でしょうか。

それは、税金や社会保険料です。

基本的には国は、支出を国民から徴収した税金や社会保険料で行うことが原則なのですが、たりない分は銀行や会社、個人などから借り入れを行います。
この借入を行うための仕組みを「国債」といいます。

国が国債を発行するという言葉は耳にすることがあると思いますが、それは、つまり国がお金が足りないのでお金を借りているということです。

日本の場合、支出が多いのに対して、それを税金や社会保険料の徴収でまかないきれず、国の銀行や会社などからの借り入れがどんどん増えていっている。このことを「借金がある」という表現をするのです。

皆さんは銀行にお金を預けていて、必要なときに引き出していると思いますが、もし日本国民全員が銀行に預けているお金を引き出そうと思うと、「皆さんから預かったお金は、実はありません。会社や国に貸しているので。」ということになるわけです。

どのくらいの借金があるの?

今の日本の借金はどのくらいあるのでしょうか?
それは、この記事を書いている2015年7月の時点で1015兆円と言われています。

これは、現在の日本人の人口が1億2千万人だして、国民一人あたりの借金が約800万円だと言われています。

また、この借金はどんどん増え続けています。

日本の1年間での予算は、支出、収入とも約100兆円です。

しかし、その内訳を見てみると、収入のうち、税収で賄いきれているのが約半分で、足りない半分を、「国債」を発行して賄っています。
つまり、お金が足りないので、更に借金をしていっているわけです。

また、支出のうち1/4を、国債の返済にあてています。
つまり、借りたお金を返しているのです。
つまり、国は銀行に過去に借りたお金を返しつつ、それ以上に借りているという不健全な状態になっているといえます。

この話を一般家庭に置き換えてみます。

ある会社経営者のAさんの家庭は、実際にお金がないのに、過去に借金をして銀行にお金を借りて、家を購入したり車を購入したり、パソコンを購入したりしました。
なんだかんだで、お金がないと銀行に借りるというライフスタイルで長年生活をしてきたおかげで、ちょっとどんびきするかもしれませんが、借金が6000万円もあります。

また、毎月生活費や、子供の教育、年をとった親の介護をしたり、病院に通院したりとお金がとにかくさくさんいります。

Aさんは毎月50万円の収入があるのですが、毎月25万円は過去に借りた借金を返さないとならず、さらに年をとって仕事をやめた親の生活費を月15万仕送りしたり、病院の通院費10万円を払わないといけません。
なんだかんだで100万円毎月お金がかかります。

また、Aさんは銀行と仲がよく、お金を借りることができるので足りないお金40万円を銀行やお金持ちの友達から借りています。
借りたお金は将来返すのですが、毎月25万円返していますが40万円借りていて、15万円借金が増え続けています。
もうすでに6000万円も借金をしているのに、さらに毎月15万円も借金を増やし続けているという状態です。
当然銀行からは、借金を返済する事業計画書を提出してくださいと言われるのですが、非常に厳しいというのが現状です。

この関係が逆転する見通しが立っていません。
銀行は、いつまでもこのままお金を貸し続けてくれるのでしょうか?

借金が増え続けるとどうなるのか

さて、天文学的な数字になっているという日本の借金ですが、このまま増え続けると何が問題で、具体的に私達の生活に何が困ったことが起きるのでしょうか?
今、私達は生活をしていますが、借金があるからといって、別段影響があるようには思えません。
考えられうる最悪のケースを考えてみました。

銀行の倒産

まず、最悪のケースは、国にお金を貸している銀行が倒産をするということです。
しかし、日本では銀行が倒産をした場合でも「ペイオフ」という制度があるため、預金していたお金がなくなることはなく、きちんと払い戻しはされます。
しかし、結局は税金として銀行に払われることになるため、その金額は税金から徴収されます。

税金、社会保険料の増額と、社会保障の低減

まず、国の収入である税収を増やすために国は税金をいろいろなところから取ろうとします。
最近でいえば消費税の5%→8%アップがありました。
相続税も厳しくなったりと、要するに税金が高くなります。
海外では20%なんてところもざらなので、同程度まで増える可能性はあります。
また、社会保険料(年金、健康保険料)の額が上がります。
また、支出を減らさないといけないので、国も支出から無駄な部分をどんどんカットしていかざるを得なくなります。
例えば年金の受給年齢引き上げは記憶に新しいところですが、国家公務員のリストラや賃金カットということも起こりえます。
また、税金で運営されている様々な公共のサービスが閉鎖されたり、予算が少なくなってできることが少なくなります。

生活保護者の増加

その結果、国民は自由に使えるお金が少なくなるので、切り詰めた生活を送らざるを得なくなります。
娯楽や余暇に使える時間やお金が減り、労働時間を増やして仕事のみの生活をおくる人が増えます。
また、収入だけでは生活(住居、光熱費、食費を支払えない)できず、資産を全て手放して生活保護を受けないと生活できないという人が増加します。
生活保護は税金から捻出されているので、生活保護を受けずに働いて生活している人の稼ぎから差し引かれます。

デフレーションが起こる

安倍政権の目標が「デフレ脱却」であるとはよく言われています。
デフレーションんというのが、言ってみれば「国民が自由に使えるお金が減って消費が落ち込む」→「製品やサービスの価格が下がる」→「会社員の給与も減る」→「さらにお金が減って消費が減る」というサイクルのことです。
戦後の日本で起きていたことは、このことと逆のインフレーションでした。
お金が増えて消費が活発になる→製品やサービスの価格が上がる→会社員の給与も増える→さらにお金が増えて消費が増えるというサイクルです。今では、そういう時代があったということが考えられませんね。。

人口減少が日本に与える打撃

今の日本は人口が減少していることが問題になっているとたびたびいわれていますが、これが日本経済に与える影響はあるのでしょうか。
これは多大にあると考えられます。
まず、人口が減少するということは、労働人口が減少するということを意味していて、すなわち国の税収が減ることを意味しています。
この記事の最初に、日本は支出が多すぎて収入がまかないきれず、銀行(国民)にお金を借りることでカバーしているということを書きました。
人口が減少して税収が減ると、そのぶん支出も減らさざるをえません。
そのため、現在の税金で行っていることの多くを削減する必要があるわけです。
今の日本の社会インフラや制度が、現在の日本の人口(1億二千万人程度)を対象にしたものである以上、人口が減少すると、縮小しないといけないのは当たり前のことともいえます。

日本という国が破綻することはあるのか?

最後に、日本とう国が経済破綻することはあるのかということを考えてみます。
ギリシャという国はデフォルト(経済破綻)を起こすのではないかということで、話題になっています。
プエルトリコも最近経済破綻を起こしました。
ギリシャの場合は、IMF(国際通貨基金)からお金を借りていて、それを返せなくなり実質上の経営破綻ということになっています。
しかし、現在の段階では、各付け会社による日本国債の評価は「A」となっています。

これは、世界で見ると14位となっています。日本はGDP世界3位という国ですが、財務状況の健全度はそのあたりの順位ということです。

この「A」という評価は「信用リスクが低い(信用力あり)」ということのようで、一応まで市場からは信用されている状況のようです。

ギリシャの財政破綻は何故起こったか?

巷では、ギリシャの財政破綻がニュースになっています。

ニュースになりつつも、「何でギリシャは財政破綻になってるの?何が問題なの?対岸の火事のようにいっているけど、日本は大丈夫なの?」といったことは考える人が多いのではないでしょうか。

かくいう私も全く知らなかったので、調べてみました。

粉飾決算による信用失墜

過去に、財政赤字がどのくらいあるかということを公表していたのですが、これが事実とは異なる「粉飾決算」をしていたので、市場から信用をなくしたということがギリシャの価値暴落のきっかけとなっているようです。(2010年1月)
また、上記の粉飾決算は、ギリシャだけでなく他のEU加盟国の信用までも引き下げることとなったようです。

ギリシャの赤字財政の原因

ギリシャの赤字財政には、以下の様なことが原因ではと言われています。

社会保障の財政圧迫

年金支給金額の水準が高く、支給開始年齢が55歳。

公務員が多すぎる

公務員の数が、全労働人口の1/4であったと言われています。
また、給与水準も財政状況を考えるとかなり良い給与をもらっていたようです。

ちなみに日本の公務員は全体の5%程度と、他の国と比較するとかなり少ないです。

脱税が多い

きちんと所得の申告をせずに、脱税をする人が多いようです。
このことが税収の低下につながっているといわれています。

ギリシャで起こっている暴動の原因

ギリシャでは、金融不安に陥ってから、近年デモや暴動があいついでいます。
それは、借金を返済するためにIMF(国際通貨基金)から資金の借り入れを行ったのですが、その見返りとしてIMFに沿った財政再建策をうちだしました。
この内容が

・ 消費税21%→23%
・ 年金の3割カット
・ 公務員給与削減

などがあります。

考えてみれば、財政の悪い国であれば仕方の内容のようにも思えますが、これらが国民の反発を買い、多くの暴動やデモが起こりました。

財政破綻の影響

EUの離脱の可能性

ギリシャの財政上の問題は、当然他のEU諸国との軋轢をうんでいるために、このままギリシャがEUで存続をするためには、他の国との協調をしっかりととらなければいけません。

Node.jsとは何か

最近技術界隈で「Node.js」という言葉を耳にしたことがある人は多いと思います。

しかし、私も聞いたことはあるものの使ったことがないので、どういったものか調べてみました。

Node.jsとは

Javascriptとは、通常クライアントサイトのマシン上のウェブブラウザで動作するプログラムですが、Node.jsとはクライアントサイドではなくサーバサイドで動作するjacascriptのプラットフォームです。

Google Chrome用に開発されたV8エンジンがサーバ上で動作するように、様々な機能が追加されています。

Node.jsの特徴として、無駄のない実行をするために、「ノンブロッキングI/O」という仕様になっています。
これは、Javascriptの特徴であるシングルスレッドで動作をしつつも、待ち時間には別の処理を行う仕組みです。

何に使うか

それは分かったとして、「サーバ側で動くというのは分かったけど、何に使うの?」というところが疑問に思うと思います。

基本的には、サーバを構築するために使います。
つまり、「サーバ実装のためのプラットフォーム」なのです。

ApacheがWebサーバを構築するためによく使われるように、Node.jsもApacheのようなサーバを構築するためのプラットフォームの1つです。

Node.jsが解決する問題

Node.jsは、「スケーラブルなネットワーク・プログラムを作成するための簡単な方法を提供すること」が目的とされています。

従来のWebサーバでは、同時接続数が多く増えた時に、様々な問題が発生します。
まずはサーバの容量の問題やデータのサーバごとの同期の問題など、様々な問題があります。

Node.jsを使用することで、これらの問題に、より効率的に対処することができます。

例えば、アプリケーションサーバに対して同時に多くの接続が発生するゲームなどでは、サーバ構築の手段としてNode.jsは非常に有用となります。

何故Node.jsはこれらの問題の解決に有用であるかというと、まずGoogle Chromeに内蔵されているJavascript解釈のためのエンジン「V8」をベースとしているため、非常に高速です。

また、上記で説明したような非同期で動作する仕組みを持っています。

Apacheの抱えている問題

Webサーバの構築に最もよく使われている「Apache」ですが、接続のたびにスレッドが作成され、それにサーバのメモリが使われるため、同時に多くの接続が発生すると、ある段階からメモリ不足などの問題により、極端にパフォーマンスが悪くなります。
これを「C10K問題(クライアント1万台問題)」とも呼ばれています。
Node.jsとはこういったたぐいの問題を解決するためのアプローチとして非常に有効です。

使い方

まずは、利用するサーバなどのマシンにNode.jsをインストールする必要があります。
Linuxはソースコードからコンパイルし、WindowsやMacではインストーラーがそれぞれ用意されています。

Node.jsの特徴

記述はjavascript

当たり前といえば当たり前ですが、Node.jsはJavascriptで記述されています。
このため、業務でjavascriptを使用した経験のあるプログラマにとって扱いやすい要素であるといえます。

イベント駆動型プログラム

通常のJavascriptでは、ユーザ側の動作(クリックなど)によって発生する処理があります。
これをイベント駆動といいます。
Node.jsも、同様にイベントに応じて駆動する処理を記述します。
イベントの種類に、例えば、サーバに接続が発生した、などがあります。

ホーム

フィード
リンク集

ページの上部に戻る