AWSでサーバを用意する

さすがAWS、いつの間にかコンソールが変わってる。

・新規でVPCを追加
右側に「プレビュー」で何ができるのか表示されるようになっている。
視覚的に確認しやすくて素晴らしい。
とりあえず無償枠のt2.microを使うための最小構成を目指したいので、
マルチAZとか不要で(VMひとつなんだからAZも1つでOK)
NATゲートウェイも不要。
パブリックサブネットは欲しいけどプライベートサブネットは不要。
S3へのエンドポイントは…お好みで。

うわ、サクッと終わるわ。素晴らしい。
パブリックサブネットを作ると、ついでにインターネットゲートウェイまで作ってくれるのな。

・ALBとかTGの設定
不要。VM1台なのでロードバランシングしない。

・EC2作成
サクっとAmazon Linuxのt2.microを…って、なんと最初から選択されてる。
パブリックIPの自動割り当ては無効になってたけど、ひょっとしてこれを有効にすると
SGの設定まで自動でやってくれる可能性あるか…?
(自分は無効のままEIPとSGの設定を手動で実施したため不明)

・IP設定
Elastic IPでIPアドレスを1つ払い出し、作成したEC2に関連付け。
セキュリティグループでインバウンドルールを設定。
接続に必要なポート(SSH/HTTPSくらいかな?)のソースをマイIPへ。

これでSSH接続できる。はっや!
手数がすごく減ってる。1年前より初期構築が相当楽になってる気がする。
ライトユーザには嬉しいやつだな。

転職をしなかった…?という話

現在、病気療養中。

ということで、7末退職して8月から新天地のつもりが
7月下旬に病気発症してMRI撮ったり。
8月からの会社には事情を説明して辞退とさせてもらって、
実家近くに引っ越して療養中。

傷病手当金の申請もしているが、いろいろと面倒なので
出すのも遅れたし、結局やり直しもしてるし…という感じで
遅々として進まず、といった感じ。

で、ITエンジニアとしてはPC操作というか職務から離れ続けてしまうと
身についているものが鈍ってしまうのではという危惧感もあるので
これを機にこのサイトもAWS移設してしまおうと思い作業中。

現在はさくらのVPSでMem1GBの年間1万ちょい。
AWSのt2.micro単体なら、ほぼお金かからないはず。
AWSアカウント作りなおしたので、最初の1年はたぶん無料範囲内だけで行けるはず。

とりあえず生存報告と現況報告まで。
まぁ誰も見てないのは知っているが、自分の備忘録のつもりです。はい。

転職をするという話

まずは速報で。

7末退職で、8月から次の会社です。
…という、WordPressが生きているかどうかチェックも兼ねて投稿。

ダンまち(スロット)逆押し白7狙いのメリット

今更かもだけどダンまちにくっそハマり中。
しかし、どこを見ても逆押し白7狙いの大きなメリットが1つ書かれておらん。
通常通りの押し方にも関わらず、ボーナス察知が非常に早いという
大きく割に影響するメリットだと思うんだけれどなぁ。
逆押しを誰もやってねーってことなんだろうな。
ホールでも1回も見たことないし、動画のライターさんですら順押ししてるもんな。

最初に:右リール枠上〜上段に白7を狙う。

case A :白7上段停止
可能性:ファミリア系ボーナス、ディバインジャッジ、ベル、リプレイ、ハズレ

逆ハサミで、左リール2連7を枠内狙い。
リプ・ベルが成立していなければ、2連7が中下段停止する。
リプ・ベルの場合は次ゲームでもっかい最初から。

その後、中リールは白7スイカ白7狙い。上の白7を上中段へ。
赤7白7白7と斜めに揃えばリーチ目。
ボーナスが入ってなければ白7は1〜2コマ滑って下段に落ちる。
ディバインジャッジなら赤7が3〜4コマ滑って直接入れれる。

で、リーチ目でたら次ゲームで右上段バービタ。
ビタ止まればファミリアチャンス。4コマ滑ればファミリアボーナス。

case B:白7中段停止
可能性:ファミリア系ボーナス(リプレイ)、ディバインジャッジW、1枚役

中リール上中段に青7狙い。
青7中段停止でディバインジャッジW確定。そのまま青7狙って揃える。
青7下段停止でファミリア系確定のリーチ目リプレイ。
次ゲームで右上段バービタでファミリア系を揃えていく。

青7枠下停止で1枚役。(左リールにブランク狙えば揃うかも。1/4だけど。)
1枚役の場合は次ゲームでもっかい最初から。

case C:それ以外
可能性:チェリー3種、スイカ、強チャンス目、強ベル、リプレイ

左リール上中段バー狙いの、中リール適当押しで全てフォロー可能。
(エイナスイカをフォローするなら中リールは適当じゃなくて白7スイカ白7)
小役を取ったら、次ゲームでもっかい最初から。

「最速手順は右上段バー!」って飽きるほど見たけど
ビタ押しなんて100%決められる人間おらんっしょ(自分も良くて9割)
全リール2コマ余裕で1ゲームでボナ察知できて1枚役もエイナスイカも拾える。
絶対こっちのが割が出せるわ。

ちなみに、1枚役を取ること自体に凄くメリットがある台なので
白7狙い・2連7狙い、どっちでもいいから狙うべきだと思います。
ソロプレイ高確率のRT1、3択高確率のRT2が延命できるのは本当にでかい。
エイナスイカを取るべきな通常時は白7、RT中は2連7とかがいいかも。
そのへんは個人差ありそう。

certbotの備忘録

現状確認
$ certbot certificates

DNSベースでの新規取得
$ certonly –manual -d DOMAIN -m MAIL –preferred-challenges dns

CakePHP3でログをカスタマイズする

CakePHP2向けの情報は結構ネットにあるんだけどね、
なぜかCakePHP3向けがないので。

とりあえず今回はミリ秒までロギングさせたかった。
vender/cakephp/cakephp/Log/Engine/FileLog.phpを元に
app/src/Log/CustomFileLog.phpを作る。

【app/src/Log/CustomFileLog.php】
<?php
namespace App\Log;
use Cake\Log\Engine\FileLog;

class CustomeFileLog extends FileLog
{
public function log($level, $message, array $context = [])
{
$message = $this->_format($message, $context);
$output = date('Y-m-d H:i:s'). '.'
. substr(explode('.', (microtime(true) . ''))[1], 0, 3)
. ' ' . ucfirst($level) . ': ' . $message . "\n";
(以下略)
}
}

で、config/app.phpとかで設定しているロギングの設定で、classNameを書き換えるだけ。

【before】
Log::config('debug'), [
'className' => 'Cake¥Log¥Engine¥FileLog',
(以下略)

【after】
Log::config('debug'), [
'className' => 'App¥Log¥CustomFileLog'
(以下略)

vender/cakephpの中身をスーパークラスにしてサブクラスを実装するのは
なんとなく難しそうかなーとか思ってたけど、
とりあえずロギングに関してはものすごく簡単な話でした、というお話。

VirtualCast触ってみた(仕事で)

VirtualCastさわってみた。仕事です。遊びじゃないです。

・表情変更
VIVEコントローラ(右手限定)のトラックパッドで表情変更可能。
無操作+上下左右の計5パターンの表情が可能。
ちなみに特定状態を除き、「まばたき」は勝手に行う模様。
ついでに口は音声を認識して勝手に動く。たぶんOculus Lipsync Unity的な。
※音楽再生すると勝手に口パクで歌ってくれるのかしら。VIVEのマイクだけなのかしら。
※これってシステム側に入ってるのかアセット側に入ってるのかどっちなんだろ。

通常の状態。

トラックパッド左入力(ムっとした感じ?)

トラックパッド上入力(困った感じ?)

トラックパッド下入力(じと目?)

トラックパッド右入力(笑顔?この時だけ目はずっと閉じてる)

・手の形変更
基本手の形はパー。
VIVEコントローラのトリガーを入力すると手がグーになる。

・オフラインモードでの使用
「不具合です」っつって潰されると嫌だからあんま書きたくないんだけど、
下記手順で狙ってオフラインモードを作れる。再現率100%。
1.ブラウザでニコ生の配信開始する
2.VirtualCastでニコ生ログインして、スタジオに入る
3.VIVEコントローラのシステムボタンかメニューボタンを操作して、
Steamメニューなどを開いて1分程度放置する
4.Steamメニューなどを閉じてVirtualCastに戻ってくるとオフラインになる

※とはいえ、上記手順でもhttps://virtualcast.jpには表示されてしまうので
完全ダマでオフラインモードを使うのは無理かも。

もっと簡単にオフライン行けたわ。。。
VirtualCast起動時に「自分で配信しない」を選択してニックネーム入力すれば
それだけでオフラインモードのスタジオに入れる。
動作確認には最近この方法使ってます。
※こういうのも公式がサクッとまとめていただきたい。。。

・私的に欲しいなーと思う機能
カンペ
3D空間で見えるが、アウトプットした映像では見えないオブジェで、外部ファイルを引っ張ってこれるのが理想

プレゼンボード
あいえるらいぶで使ってるボードみたいなの

次元の壁を超える凸
スカイプ凸(ビデオチャット)で相手の映像が3D空間上で見れるようになる

まぁ、後は早くアセットのインポート仕様を公開していただけると…といった感じ
インフィニットループさんすげぇっす。これからも頑張ってください。

 

Raspberry Piに手を出してみた

眠れないのでブログでも。

いたってフツーのLAMP環境での開発ばかりしてきた自分ですが、
最近は仕事の関係でIoTに染まっております。

ということで、Raspberry Piに手を出してみました。
まずはラズパイ3。
公式の7インチタッチディスプレイを使ってPiPadを作ってみました。

プログラム書いたりハード追加したり、色々やりたいことはあるんですが
まずはPiPad動いたので、ラズパイ3は一旦放置。

まぁ、普通にRaspbian入れたりセットアップしたり、なんてものは
検索してくれば文献腐る程出てくるので、ここでは割愛。

で、次のステップとして、ラズパイゼロとIoT pHATを買ってみました。
(とはいえ船便なので着くのは多分11月末)

IoT用のルータってくっそ高いんすよね。
ラズパイゼロとIoT pHATなら、3000円ちょいで購入できたし
サイズも超ちっちゃいし、ある程度の稼働が見込めるなら
全然アリだと思うわけですよ。

100均とかで売ってる小さな缶ケース?薬入れ?みたいのに入れれば
放熱も考慮したものが作れそうかもと思うし、
WiFi+BluetoothだけのIoTモバイルルータ、OSもCLIで動かせば負荷低いだろうし。
悪くはないアイディアだと思うんだけどなぁ。

…とはいえRAM512MBなんで、そこが若干不安。
本当はRAM DISKに全部プログラム書き込んで動かしたいんだよね、破損の心配も減るし。
MicroSDだと多分数年で破損しちゃうからね。

ラズパイ3ならRAM1GBあるし、最悪そっちでもアリかなーとは思ってます。
国内で簡単に手に入るしね。
まぁこのへんは、ラズパイゼロが来るまでプログラム書いてみて考えればいいかな。

ラズパイ3に関しては、某社の某機械とスペック似てるんで、
某機械用のノウハウが流用できる気もしてるんだよね。

まぁ近況報告も兼ねて。こんな感じです。

さくらのVPSをCentOS7にしようとしてくっそハマった件

CentOS6と7、やっぱり結構違うなあ、と。

もともとCentOS6で動いていたこのlaboサーバ。
時代に追いつくために思い切ってCentOS7にしてみた。

【バックアップ】
せっかくOSを上げるので、最低限必要なものだけ持っていくことに。
qmail(vpopmail)
→ postfixにして最初から設定しなおすので必要なし。
apache
→ 2.2系から2.4系になるのでこれも設定仕直し、基本必要ないのだが
2.4系で断念したら2.2系に戻すために念のために各種コンフィグバックアップ。
そして各サイトの公開ディレクトリをtar czvfで固める。
別にgzipでもいいけど、tarコマンドを手が覚えてるうちはtarでいいかな、と。w
bind
→セキュリティ追いかけるの面倒だし、さくらのDNS機能を使うように切り替えたいので破棄。
mysql
→MariaDBに変えるので、各DBだけdump。privilegesはgrant文を再発行するので不必要。
いずれはmysql5.7系とMariaDB10系をサーバ内で共存させたいなー、程度で。
php
→5系から7系に上げるのでこちらも再度php.ini検討。バックアップせず。
svn
→制作物のソースはローカルにあるので破棄、いずれ必要ならgithubで作り直す

【インストール】
カスタムインストールでCentOS7。
マニュアルにもあるので詳細は省略。
最小構成で入れたらwgetも入ってなくて序盤苦しみまくったのは内緒。

【設定】
◇SELinuxを切る
今はまだわからないので、いずれ習得したら使いたいな、と。

$ set enforce 0
$ vi etc/sysconfig/selinux

#SELINUX=enforcing
SELINUX=disabled

◇firewalldを設定
こいつで超絶ハマった。これが書いてある参考サイトがどこにもなかったからな!w
iptablesじゃなくてfirewalldなのね、もうこれは絶対に忘れないと思うwww
22番ポートは開いてるのに80番開いてないから本当に1週間苦しんだわ。

# どこのポートが開いてるか確認
$ firewall-cmd –list-all
# http(80/TCP)を開ける
$ firewall-cmd –add-service=http –permanent
# 8080/TCPを開ける(いずれapacheとnginxを80と8080で共用したい)
$ firewall-cmd –add-port=8080/tcp –permanent
# firewalld再起動
$ systemctl restart firewalld

◇apache2.4、PHP7.0.6、MariaDB10、nginx1.10を入れる
ここはどんな文献でも出てくるのでサラっと。

# apache2.4
$ yum install httpd
$ systemctl start httpd
$ systemctl enable httpd

# PHP7.0.6
# nginxでphp-fpmを使いたいので、そちらもついでに。
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum –enablerepo=remi-php70 install php php-fpm php-devel php-mysql php-mbstring
$ systemctl start php-fpm
$ systemctl enable php-fpm

# MariaDB
$ yum install mariadb-devel mariadb-client mariadb-server
$ systemctl start mariadb
$ systemctl enable mariadb
# rootのパス設定したり不要なものを消したりetc…
$ mysql_secure_installation

# nginx
$ yum install nginx
$ systemctl start nginx
$ systemctl enable nginx

◇リストア
DBはバックアップから復元。
各サイトのデータは適当にディレクトリを用意してtar xzvfで解凍。
apacheはVirtualhostの設定、PHPはphp.iniにdate.timezone=”Asia/tokyo”だけ記述。

とりあえずこれでapache、PHP、mariaDB側は問題なし。
php-fpmとnginxについては、動いたらまた記述しようかと。
UNIXドメインソケットというのがよくわからぬので、まだ進んでないので。

あ、あとpostfixもね。まだそこまで手が追いつかないんで。w

MacにMariaDB入れようと思ってくっそハマった件

そもそもMariaDBだろうがMySQLだろうがbrewで簡単にいくでしょ、と思ったら
とんでもなくめんどくさかった。

$ brew update

この時点でまずくっそめんどくさかった。
エラー出まくり。
たぶんOSのメジャーアップデートをしたのが原因っぽかった。
この時点で発狂して、brew自体を入れ直す。

$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)”
$ /usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
$ brew update

これでとりあえず進める。

$ brew remove mysql
$ brew install mariadb
$ unset TMPDIR
$ mysql_install_db

はいここでまたエラー。
mysqlを消した時に残っているdataディレクトリやらmy.cnfやらが邪魔をする。

$ sudo rm -rf /usr/local/var/mysql
$ rm -f /etc/my.cnf
$ unset TMPDIR
$ mysql_install_db

これでやっとできた。

$ mysql.server start

無事に起動。
ついでにセキュリティ対策も。

$ mysql_secure_installation

最後に起動時に自動起動するように設定。

$ cp /usr/local/Cellar/mariadb/10.1.11/homebrew.mxcl.mariadb.plist ~/Library/LaunchAgents/

ここまでくるのに数時間…いやぁつらかった。
PHP7を入れるのは明日にしようorz