読者です 読者をやめる 読者になる 読者になる

373diary

好きなモノを褒める練習をするつもりです。

「ドットインストール PHP入門」をざっくり一周した

メモ。

他言語と共通している、既に理解している部分は省略

学んだこと

1 PHPを使ってみよう

PHPとは、webアプリケーションを作るためのプログラミング言語

2 はじめてのPHPプログラム

PHPはHTMLに直接埋め込んで書くことができる
<?php ?>と書くと、phpを埋め込める
文字列出力はecho "hoge"
文の区切りはセミコロン

3 ビルトインWebサーバーを使ってみよう

php -S IPアドレス ポート番号 でビルトインwebサーバーが立ち上がる
エラーが発生した場合、コンソールがエラーを吐いているので確認(ビルトインwebサーバーの場合)

4 変数とデータ型について理解しよう

変数定義 $hoge = "hoge"
使うときもそのままecho $hoge
var_dump()で型と値を確認できる

5 定数を使ってみよう

定数定義 define(HOGE_FUGA, "abc")
定数名は大文字スネークケースで
変数と違って$をつけない

自動的に定義される定数

__LINE__  // 行数
__FILE__  // ファイル名
__DIR__   // ディレクトリ

6 数値の演算をしてみよう

PHP5.6以降は**演算子でべき乗

7 文字列を扱ってみよう

""(ダブルクォート) : 特殊文字(\n, \t) 変数が展開される
''(シングルクォート): 展開されない
変数展開の際は、{$name}${name}という形で変数であることを明示できる
文字列連結の基本はドット"hello" . "world"

8 if文で条件分岐をしてみよう

  • elseifはスペースなし(else ifではない)
  • ===で型も含めた比較

9 真偽値について理解しよう

falseになる場合

  • 文字列: 空、"0"
  • 数値: 0, 0.0
  • 配列: 要素の数が0
  • null

10 switch文で条件分岐をしてみよう

11 while文でループ処理をしてみよう

12 for文でループ処理をしてみよう

13 配列を使ってみよう

# 連想配列
$sales = array(
  "taguchi" => 200,
  "fkoji" => 800,
  "dotinstall" => 600,
)

// PHP5.4
$sales = [
  "taguchi" => 200,
  "fkoji" => 800,
  "dotinstall" => 600,
];

# 配列
$colors = ["red", "yellow", "green"]
var_dump($colors[1]); // -> red

14 foreachを使ってみよう

# keyとvalueを取り出す
foreach ($sales as $key => $value) {
  echo "($key) $value";
}

# valueだけ
foreach ($colos as $value) {
  echo "$value";
}

# endforeachを使う
foreach ($colors as $value) :
  echo "$value";
endforeach; //HTMLに埋め込むときにスッキリする書き方

15 関数を使ってみよう

返り値と引数に型宣言が必要ない

16 ローカル変数を理解しよう

17 便利な組み込み関数を使ってみよう

strlen();     // 文字数
mb_strlen();  // マルチバイト文字数
printf()      // 指定したフォーマットで表示

count()       // 配列の要素の数
implode()     // 指定した文字で配列を結合して表示

18 クラスとインスタンスを理解しよう

フィールドへのアクセス

$hoge->name(変数)、$hoge->fuga()(メソッド)

19 クラスを作ってみよう

コンストラクタ

__construct()というメソッドで定義

20 クラスを継承してみよう

21 アクセス権について理解しよう

22 staticキーワードを使ってみよう

staticな変数・メソッドへのアクセス

クラス名::変数・メソッド名

23 抽象クラスを使ってみよう

24 インターフェースを使ってみよう

25 外部ファイルを読み込んでみよう

読み込みの方法

# require → 読み込みに失敗したらエラー
require   

# include → 読み込みに失敗しても処理続行
include       

# ~_once → そのファイルが読み込まれているかをチェックして、読み込まれていた場合スキップ
require_once 
include_once 

# autoload → クラスが未定義だった場合に、自動的に読み込む
autoload

26 名前空間を使ってみよう

名前空間の接続はバックスラッシュで行う
名前空間に別名をつけることができる

27 例外処理をしてみよう

28 フォームからのデータを処理しよう

# 定義済みの変数
$_SERVER['REQUEST_METHOD']  // リクエストメソッドが何か
$_POST['(フォームの属性)']   // フォームからpostされてきた内容が入っている

29 Cookieを使ってみよう

# 定義済みの変数
$_COOKIE['(key)']   // setcookieで設定したvalueを引っ張ってくる

30 セッションを使ってみよう

$_SESSION['(key)']  // sessionに設定したvalueを引っ張ってくる

感じたこと

  • 文字列連結がドットなせいで、フィールドへのアクセスが面倒だなと感じた
  • 変数にいちいち$をつけるのも若干面倒だなと感じてしまった
  • HTMLとの組み合わせで、見た目上スッキリとforeachなどが表現できるのは良い
  • 型推論なのはいいけど、関数の返り値と引数に型宣言がないのは少し不安
  • 想像していたよりは、自分が身に付けた他言語の知識が使い回せて、そこは安心した

手作り豆腐

前々から作ろうと思っていて、昨日ついににがりを注文し、本日届いたので早速作ってみました。
豆乳200mlとにがりをマグカップに入れ、よくかき混ぜた後にアルミホイルで蓋をし、ヘルシオの手動加熱→蒸しで25分。

何分初めて作るものなので、固まるかどうかすら不安だったのですが、いざ作ってみると、思った以上に豆腐らしいぷるぷるさに感動しました(正直、もっとトロトロのものができると思っていました)。

味見したところ、甘みが強くてとても美味しかったので、よく冷やしてネギやらショウガやらまぶして、醤油を垂らして冷奴でいただこうと思っています。
日本酒飲みながら食べると美味しそうだなぁ。テンション上がってきた。

次はティラミスに挑戦。
とにかく好きなものを手作りすることで人生を豊かにしていくスタイル。

すぐやるって言ったのにやれなかったリスト

今年のスローガンは「変化」です。
関連して、「やるって思ったことはすぐやる」という大きな目標がありました。

一月も下旬に差し掛かろうとしているので、すぐやれなかったリストを作りたいと思います。

  • セーターの洗濯
  • パソコン下取りの、発送用ダンボール探し
  • クレジットカード支払の切り替え
  • ティラミスを作る
  • 仕事を辞める話を社長にする
  • 転職の準備
  • 電池を捨てる
  • 携帯の契約内容変更

並べてみると、総じて「その瞬間やらないと全然問題ないけど、いつかやらないと結構面倒なことになる」ことが揃っています。

こういうことをすぐやらないのが今までの自分であり、変えたい自分であり、そして現在の自分でもあるので、やはり変えていかねば。

日本科学未来館

日本科学未来館 (Miraikan)

11月にぐるっとパスを買っていました。

ぐるっとパスとは

「東京・ミュージアム ぐるっとパス2016」は一冊2,000円で都内79の美術館・博物館等の入場券・割引券が綴られたお得なチケットブック。2ヶ月間利用可。

公益財団法人東京都歴史文化財団

というもので、要は買うとめっちゃ文化的な生活が捗りますよというものです。
対象の施設が思ったよりも多くて、そういう施設をめぐる人が好きな人は是非購入をおすすめします。自分も、妻が買ってきて、そこで初めて知ったクチでした。

その期限が近付いていたのもあって、今日は日本科学未来館へ行ってきました。
まず、お台場が久しぶりでめちゃくちゃテンション上がりましたね。

常設展では、「数理の国の錯視研究所」という錯視の展示が楽しかったです。
よく見る螺旋や色の濃さの平面錯視もそうなのですが、以前動画で見たことのある鏡に映すと全く違う形に見える模型を生で見ることができたのが最高にテンションが上がりました。

youtu.be

ニュートリノの観測」では、スーパーカミオカンデの模型があったのはもちろん、おぼろげだったニュートリノの説明が割とガチめな感じされていて、「ここ子供向けの展示じゃねぇな」と思いました。

「ノーベルQ―ノーベル賞受賞者たちからの問い」では、未来館を訪れたノーベル受賞者からの直筆の問いかけが展示されていました。やはり研究者は共通して「どんな小さなことにも疑問を持つこと、好奇心を持つこと、問い続けること」を忘れないのだな、ということがわかります。大学生あたりに読んでほしい。

講演は時間がなくて最後まで見られなかったのですが、「折りたたみ」に関する科学は聞いてて非常に楽しかったです。

その他の展示も、一つ一つ見ごたえのあるものばかりで、いつの間にか閉館時間が迫ってきてしまい大変でした。

このような博物館や展示系の施設は、おそらく自分が独身のままでは一度も行かなかったであろうということを考えると、色々な場所へ誘ってくれる妻にただただ感謝です。

知的好奇心、忘れずに生きていこうな。

手羽と大根のさっぱり煮

cookpad.com

今日の夕食に作った。

煮るのに時間はかかるけど、作るの自体はとても楽なので、おすすめしたい一品。我が家ではもう結構な回数食卓に並んでいる。
タイトルは手羽先になってるけど、手羽元でも特に問題ないのでお好みで(個人的には手羽元のほうが気に入っている)。
大根は、良い感じの大きさに切って、茹でてから冷凍するといつでも使えてとても便利。ちなみに、茹でずに冷凍すると、そこから茹でた際にふにゃふにゃになって大根特有の食感が薄れてしまう。

元々、今日は妻がこの料理を作ってくれる予定だったのだが、人身事故で帰りの電車のダイヤが乱れまくりだったので、自分が作ることに。
こういうときに在宅勤務である現状は、やはり強いなと感じた。

妻はやたらとお酢が好きなので、レシピよりも多めにお酢を入れた。
味を変えたいときは、多分だけど醤油とみりんを少し多めにするのが良いと思う。

自炊自体は慣れてきたけれども、自分が作った料理を「美味しい」と言ってもらえるのはとても嬉しいことだ。
まだまだ妻に料理の腕(特に手際の面)で勝てる気はしないけど、自分なりに自炊の腕を楽しんで上げていけたらなと思う。

カレンダー問題その2

カレンダー問題 - 373diary

以前取り上げたカレンダー問題について、この問題の条件を満たす数列をプログラムでどうやって生成するかを少し考えてみたい。

基本的には0から9までの数字を1つずつ使う組み合わせで、そこに日付と時刻が成立する条件を入れていけば生成できそう。
その日時が訪れる順はそのまま出来上がる数字の大小なので、小さい順に生成して、条件を満たすものだけ新しい配列にボコボコつっこんでいけばできるとは思う。

0から9までの数字を1つずつ使った整数を小さい順に生成するのは簡単なので、あとは如何にスマートにふるいにかけられるか、に集約されることになるのかな。

実際にプログラム組んでみたら、また記事を書こう。

【シャドバ】ソウルコレクターさんについて

f:id:r4k9:20170110233627p:plain

7/4/3→進化時6/5

ファンファーレ 詠唱:死の宣告1つを出す。

今日はRoBで追加されたビショップのフォロワー、ソウルコレクターさんについて考察しようと思う。

4PPアミュレットの「死の宣告」をポンと置いてくれるなかなかイカした効果を持っており、その効果からもコントロール色が強めなことがわかり、セラフと相性がなかなかいいフォロワーだ。

というわけで、セラフデッキで使う場合のメリットデメリットを考えていきたい。

 強い点

・先行での6Tテミス→7Tソウルコレクター→8Tセラフ置きの流れが強力

盤面にもよるのだが、セラフデッキの場合有利不利に関わらず6PPでフォロワーを全て破壊できるスペルがあり、後攻側の相手が6PP分をフルに活用してもソウルコレクターのスタッツでは盤面を返しやすい(進化権があるのが若干前提気味になってしまうが、6点で殴りつつ、自分は場に残らなくても仕事が果たせる)。

次のターンの開始時に死の宣告が起動し、相手のフォロワーを確実に2体まで始末できるため、防御面に不安が残る8Tセラフ置きを強力に補強してくれる。

弱い点

・後攻時は7Tの動きとしては弱い

これは強い点のそのままの裏返しというよりは、相手の7PP分の動きを受けるフォロワーとしては力不足に感じる、という内容。

経験則だけど、6PPと7PPにはだいたいどのリーダーでも結構動きが変わる分岐点だと思っていて、後攻の場合は7PPを受けないといけないのは怖い。

後攻の場合はセラフを置いた次のターン、相手にどれだけ好き放題されるかをよく考えて、7T目にソウルコレクターのみという動きが厳しい場合、他のフォロワーやスペルによるコントロールでの対応や、9T目にソウルコレクター→教理みたいな対応を考えていきたい。

これはソウルコレクターさんがどうのこうのというより、後攻8T目セラフ置きはどうやっても怖いっていう部分が大きい。

・4PP相当のフォロワー+4PPのアミュレット?

7PPでこれが出てくるんだから特なんじゃないかという考え方もあるけど、結局のところタイムラグがあるので、苦しい場面での逆転には使いにくいなという感覚はあった。

要は「ソウルコレクターを置きやすい」→「ソウルコレクターがなくても勝ちやすい状況」という考えだ。

正直、否定はしにくいし、自分も単純に「なんかかっけぇし好きだから」というのが使ってる理由として大きい。デメリットとか言ったけど、もうそこは愛でなんとかするべきだと思う。

 

というわけで、個人的にはセラフを置く直前のターンで新しい動きができるようになった、というところを推していきたい。

セラフを抜きにして考えると、4Tに神魔裁判所を置いた場合7T目に割れて1体葬ってくれるので、そのままソウルコレクターを出すのが相当楽になる。なんかテクいことやってる気分にも浸れてとても楽しい。オススメ。

というわけで、皆さんもソウルコレクターで更に楽しいコントロールライフを。