日記とドラゴンクエスト10とTcpListener
日記
管理用の活動記録画面に雑記の最新情報を出せるように。
…まあ、ここんとこ全然更新してないんですけどね。
ドラゴンクエスト10
モーグリチケットはぼちぼち集まっています。
装備品を狙うだけなら今のペースでも何とか間に合いそう。
TcpListener(Today I Learned)
C#でWebサーバー(サーバーで動くWebアプリではなくサーバーそのもの)を作ろうと思ったらTcpListenerとTcpClientが便利。
「Today I Learned」今日学んだこと。
管理用の活動記録画面に雑記の最新情報を出せるように。
…まあ、ここんとこ全然更新してないんですけどね。
モーグリチケットはぼちぼち集まっています。
装備品を狙うだけなら今のペースでも何とか間に合いそう。
C#でWebサーバー(サーバーで動くWebアプリではなくサーバーそのもの)を作ろうと思ったらTcpListenerとTcpClientが便利。
岩を後一回で壊れる状態にして右側に籠城する作戦だったが、支えになるはずだった赤ブロックが早々に壊れてしまった。 #ミスタードリラー #NintendoSwitch pic.twitter.com/7qScz5Ea5o
— 📛松田美文 (@matsuda323) July 8, 2020
管理用の活動記録画面に、ゲーム記の一部のページにある進行状況と、Qiitaの投稿情報と、最近コミットしたGitHubの情報を出せるようにしました。
APIは便利ですね。
日記の賑やかし用と言えば、これもあったんでした。
PHPのComposerに、fundというのがあったんですよ。
「composer fund」というコマンドで、支援を求めているパッケージを調べることができるというものです。
Composerを使っている人が直接的に得をする機能ではないので日本語情報は少ないですが、ライブラリ開発者だって金がないと暮らしていけないし、優秀なライブラリを作れないわけですからね。
無料の物にあえて金を払うというのも、様々なものが無料で手に入る今、考えるべきことなのかもしれません。
ゲーム記に公開しました。
ゲーム内での表記は大文字のFORMA.8だけど公式サイトでは小文字のforma.8なのね。
ずいぶん昔に体験版をやったのでちょっと覚え違いしていた部分もありました。
<form> - HTML: HyperText Markup Language | MDN
form要素の中にform要素を入れることはできない。
form要素の中に直接テキストを入れても構わない。
HTML4.01のころとここも変わっていたんですなー。
Google に外部リンクの関係性を伝える - Search Console ヘルプ
aタグに付けるrel=nofollowは知っていたけど、新たにugcとsponsoredが加わっていた模様。
ugc:コメント欄のように、ユーザーが投稿して、ページ管理者には内容を制御できないもの
sponsored:広告
機能的にはどちらもnofollowと同等とのこと。
変更しないと不都合があるわけでもないけど、適切に使い分けた方が望ましいようです。
ゲーム記にページを作りました。
何か解説でもしようかと思ったけど、解説できるような写真が全然撮れなかったので、ほぼ自分の進捗を書くだけのページになりました。
で、その進捗はと言うと、ストーリークリア済みで、後はジェムリンゴ集めてクリア後要素に挑むだけなので、書くことがあまりないという…。
時期を外した感があります。
Chrome 80が密かに呼び寄せる地獄 ~ SameSite属性のデフォルト変更を調べてみた - Qiita
クッキーのデフォルト値が変わって、ドメインをまたいだクッキーの利用が難しくなるということです。
もろに影響を受けるのは、主にWeb広告で、うちだと、Amazonのアフィリエイトが当てはまります。
対応しなければいけないのはクッキーの発行側なので、私の方では何もできることはないのではありますが。
Headless Chromeでファイルをダウンロードする - sambaiz-net
Seleniumとかで使うHeadless Chromeのダウンロード自動化。
以前調べていて方法が見つからなかったんだけど、Page.setDownloadBehaviorを使えば良さそうね。
まあ、今は自動ダウンロードしたいものはなくなってしまったんだけど。
いつか必要になったら思い出そう。

以前から作ろうとしていたけど期間限定イベントの都合で完成できなかった、アンパンマンのバニラ姫コスプレ装備が完成しました。
デザートスプーンがバトルロード限定で、不定期開催だったんですよね。
写真置き場にもっと楽にたくさん写真を置けるように、アップロード・重複判定周りを賢くしていました。
その副産物で、写真置き場の検索結果を拡張子「.json」を付けることでJSON表示できるようになりました。
私以外、使う人はいないと思われます。
ファイルのアップロード数の上限は設定項目max_file_uploadsで変更できるけど、プログラム内のini_setやディレクトリの.htaccessでは変更できない。
これを爆増させることができれば、写真置き場に全部の写真をまとめてぶち込めるようになるはずだったんですけどね。
レンタルサーバーの悲しい宿命です。
まあ、この件に限っていえば、もしかしたらもしかするかもだけど、原則はアップロード作業を楽にしてこまめにアップできるようにする方が運用としては良さそう。
GitHubにはプルリクエストをSquash and Rebaseで取り込むこともできるのね。
いつもマージコミットを作りたいわけでもないからこういうのも時には便利。
ちまちま挙動を見て少しずつアップ中。
いちいち更新通知なんてしませんよ。機能は何も変わっていないんですから。
パーミッションはpermission。
permittionでは断じてない!
サイト内にあった誤字なので探して滅ぼしていかねば。
TILが案の定三日坊主になってしまっていたので久々に。
https://qiita.com/rana_kualu/items/50f9f5735321fe995ff5
PHP7.4の新機能。うちはまだしばらくは7.3にとどまるけど。
??=あたりはPHP3あたりで入っていればもっと喜ばれただろうなという印象。今時なら初期値はフレームワークがどうにかしてくれるしイミュータブルを好む風潮もある。
プリローディングはauto_prepend_fileの親玉みたいなやつかな。auto_prepend_fileはPHPだけで完結できないのが嫌でやめたんだけど、VPSでPHP使うときは利用を検討したい。
引数アンパックは便利そう。
日記のにぎやかしにもなるし、一度見てなるほどと思った情報をすぐ忘れてしまわないようにもできるし、習慣化したいね。
またPHPUnitの話題だけれども、CRAPインデックス。
コードの複雑性を評価したもので、でかいほどヤバい(悪い意味で)。
で、これの大きいメソッドをコードカバレッジのダッシュボードから見ることができるんだけれども、実際見てみたら、触れたくないカオスなコードが…。
気合いのあるときになんとかしよう。
無名関数のアロー表記が将来のバージョンで出るとか何とか…。
うちは今PHP7.3への移行途中なんでまだ関係はないのですが、微妙に長ったらしくて面倒だった部分が改善しそうです。
$f = function($x) { return $x * $x; } // 古い表記
$f = fn($x) => $x * $x; // 新しい表記
$y = $f(10); // 関数が実行されて100という結果が得られる
不正な質問文で停止する問題を再発しないよう根本的に解決。
trim処理が間違えていたせいで、普通に書いた質問文の末尾の文字が破壊されたのが原因だったので、trim処理を置き換えました。
直すときは以下の記事を参考にしました。
https://qiita.com/fallout/items/a13cebb07015d421fde3
いい感じのtrim処理です。
.NET Frameworkでクリップボードにコピーされたファイルを得るのにはClipboard.GetFileDropList()を使うといいのを知った。
System.Windows名前空間とSystem.Windows.Forms名前空間にあるが、効果は同じ模様。WPFかFormsかという違いだろうか。
実際にファイルがコピーされているかどうかはClipboard.ContainsFileDropList()で知ることができる。
コピーされていなくても、Clipboard.GetFileDropList()は長さ0のコレクションを返す。
Contractという概念を知った。
契約プログラミング自体は聞いたことがあったが、将来のバージョンで言語機能として追加されるらしい。
関数の引数や戻り値の条件を明示し、自動的にチェックされるというもの。
C#にも欲しい。PHPにはもっと欲しい。
rel="me"という属性の指定を知った。
クロスドメインで著者を指定する目的のようだ。
履歴カテゴリ機能がほぼできた。
これで移行予定のないもの以外は一応置き換えられるようにはなった。
まだ細々とした修正は必要になりそう。
throw null;は実際にはNullReferenceExceptionを投げるらしい。
自分で使うことが多いのはArgumentNullExceptionだけど、拡張メソッドとかでは使えそう。
??=演算子が新設らしいことを知った。
あれば便利だけどなくても全然困らない系。
無料で使える?何ができる?
履歴ページのリニューアル中。
旧RSSを置き換えて、管理しやすくするのが目的。
$argv:コマンドライン引数。実際の引数は[1]から。実際に使う場合はスーパーグローバルの$_SERVER['argc']が便利。
PHP_SAPI:コマンドライン実行なら"cli"。
ブラウザでの閲覧とコマンドライン実行で切り分けたいときに使えそうなのだぞ。
便利(で、邪悪)なテクニックを知った。
実運用はしていないので私にとっては雑学にすぎないが、文字列に対する乗算は便利だと思った。
Today I Learnedという概念を知った。
では今日私が学んだのは…Today I Learnedか。