「プログラミング」に関する日記(8)

プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。

<前 次>

Auth0

ログイン機能として、Auth0を試しています。の続き。
とりあえず設定してプログラム書いたけど、Auth0側でのログインは成功すれど、アプリ(ここではこのサイト自体)ではログインにならず。
なかなか都合よくいかないものです。

GitHub Actions

Update dotnet-desktop.yml ・ mifumi323/GitHubActionsWinFormTest@11fbb2a
自動ビルドできましたよっ!
ただ、アップロードしたアーティファクトが、ログインしていないとダウンロードできないようで。
リリースタグをつけてそれに添付とかできたら、CIビルドを(不安定とわかったうえで)自由にダウンロードしてもらえるようになるのかな、とか考えています。
無理なら無理で、とりあえず自動テストには使えそうです。
CircleCIはWindowsは使えないか、使いにくいですからね、Windows Server 2019 Datacenter&Visual Studio 2019 Enterpriseを簡単に無料で使えるというのは強いです。

GitHub Actions

調べていったら、GitHubからお勧めされるテンプレートが、昨日参考にしたものより新しいバージョンのようで。
まだ不明点があるので、すでに動いているプロジェクトにいきなり適用するのではなく、テスト用のリポジトリを作って試してみようと思います。
.NET Frameworkを使う場合と、.NET Coreを使う場合でも違うし、もちろんC#以外を使う場合も設定項目は違うわけです。

Tweetinvi

TGWSAdminで使っているTweetinviが今バージョン4なんですが、バージョン5が新たに出ていました。
しかもTwitter APIバージョン2にも対応しているようです。
ということで、さっそくバージョンアップを試みたのですが、かなり変わっていて、そのままでは動くどころかビルドすらできませんでした。
結構大掛かりな修正が必要になりそうです。

LocalCrawlerとTwitter APIとドラゴンクエスト10

LocalCrawler

先日から言っていた自分のサイトのテスト環境を全ページ走査する自分用ツール、一応LocalCrawlerって名前があるのでカテゴリを作っておきました。
全ページ保存しようとすると時間的にも容量的にも大変な気がしたので、全ページを通ってエラーのみ記録するようにしてみました。
そして、ページを保存するなどの機能は、コマンドラインオプションで指定できるようにしようかと画策中。

Twitter API

新しく進化したTwitter APIの登場
Twitter APIのバージョン2です。
このバージョンだと、以前は使えなかったアンケート機能も非公式アプリで使えるようです。
これまた自分用ツールのmifumitterあたりで使えそうです。

ドラゴンクエスト10

ハロウィンイベントのクリア後のやつ頑張ってみたけど、500個集めたあたりでだるくなってやめました。
これ、個数以外の条件があるのか、それとも要求数が馬鹿みたいに多いのか?
流石に人が多くて重い場所でひたすらいいね連打は疲れます。

WellKnownUriParserとTravis CIとドラゴンクエスト10

WellKnownUriParser

検索サイトのパターンを一つ捕まえたので手っ取り早くバージョンアップしました。
まあ、自分用の範疇をいまだ全く超えていないので、ずっとアルファ版のまま上げ続けているんですけどね。
でもなぜかそれなりにダウンロード数はあるんですよね。
あれで私以外に役に立っているのだろうか…?

Travis CI

で、そのWellKnownUriParserの自動テストに使っているのが、Travis CI。
正直、こんな小規模かつ突発的なバージョンアップとか、開発自体よりも、リリースにかかる手間の方が大きいんですよね。
アルファ版程度なら、masterブランチにマージorプッシュした時点で自動的にリリースしたいのです。
そもそもCIという言葉自体、デプロイ(リリース)も自動化することを含んだ概念であり、機能としてはTravis CIも当然含んでいるのです。
ちょっとこの辺り、調べてみて自動化を試みたいですね。

ドラゴンクエスト10

しろいコキンもハロウィンイベントクリア。
クリア後のやり込みはともかくとして、季節イベントに追われて義務感でプレイする必要はなくなりました。
次の季節イベントまでのんびりするのも悪くないけど、後でやろうと思っていたレベル上限解放もやっておきたいところです。
3キャラ全員で頑張ると時間がかかることも、1キャラずつだとある程度余裕を感じて進められるので、欲張らず1キャラずつ着実に進めていこう。

Git


ちょっと前に考えていたことだけど、Gitのブランチのマージ戦略について。
全体はTwitterの方を参照してもらうとして、要約すると、ブランチをいっぱい作っても活かし切れないけどブランチを活かす運用はしたいので、masterのほかにdevelopブランチを作って、GitHub Flow程度の頻度でmasterにマージして、リリースはマージとは関係なく都合のいいタイミングで行う、というのを考えています。

で、CharaBox3でdevelopブランチ作ってみました。
今は、課題解決レベルにまで実装が進んでいないので、masterにはマージしていません。
この実装が完了しても、すぐにはリリースせず、他の機能も作るとか、ドキュメントを整備するなどした後に、改めてリリースすることになります。
もちろん、リリースするときにも、ブランチを増やすのは面倒なので、developでドキュメントを作ってmasterにマージするという流れです。
まあ、ドキュメントだけならmasterで直接作業でもいい気はしますが、開発環境をmasterに切り替えると、開発再開したときにdevelopに移動し直すのが面倒ですからね。

HTML5

そうだ、うちのサイトはブラウザ判定やSPAなんてこじゃれたことはしてないんだから、単にページのソースが欲しいだけならcurl系統の、HTTPリクエストを送るだけの機能を使えばいいんだ。
実に単純なことであった。

Selenium

HTML5のページだけバリデーションかけたいんなら<!DOCTYPE html>で判別すればいいじゃないかと思ったら!
DOCTYPE宣言はPageSourceから省かれている!!!

DOCTYPEに頼らずHTML5を判別する方法はないものか。
DOCTYPE宣言だけHTML5で、中身がHTML4.01なのは問題だから、それはエラーとして検出したい。
つまり、タグを見てHTML4.01じゃないからHTML5っていう判定はできない。

それはそうとして、「--blink-settings=imagesEnabled=false」のオプションを付けたら速くなった。
見たいのはHTMLだけなので、画像を読み込む必要はない。

W3C Markup Validator

ローカル環境で無作為にクロールしてバリデーションかけたら大変なことに!
古いHTML4.01やShift_JISのコンテンツは軒並みアウト!
古いCMS(主にPukiWiki)使ってる場所もすごい勢いでエラー!
これはさすがに直し切れるものではない!

HTML4.01自体は正当なHTMLなので、HTML5のバリデータにとってはそもそも対象外。
CMSはこちらで手出ししにくい部分なのと、そもそも古くて直す価値も低いことから、放置…というか、古かったらやっぱりHTML4.01なので、やはり対象外。
HTML5で書いたページに絞って仕切り直しかな。

CircleCI

なにやらDockerHubで11月から制限がきつくなる模様。
それで、CircleCIで使うときにその制限を回避する方法が、メールで送られてきました。
内容としては、この記事です。
ユーザー登録してIDとパスワードで認証しろってことですね。

アンパンマンDBとTGWSAdminとCircleCI

アンパンマンDB

一時保存の挙動を改善。
これまでは、プレビューしただけでも一時保存が消えてしまって、途中まで書いたやつの続き書こうかな→やっぱやーめた、で、書きかけのが消し飛んでいたのですが、編集を確定するか別の一時保存を作るまでは消えないようになりました。

TGWSAdmin

リファラチェックの結果がたまり過ぎていたので自動整理の仕組みを作成。
一年前にチェックした結果とか残してても仕方ないですからね。

CircleCI

作業領域にRAMディスク使えるらしいので試してみました。
確かに普通のディスクを使うよりは速くなるけど…一番のボトルネックがライブラリのダウンロードなので、期待したほど劇的な高速化はしませんでしたね。
テスト項目が増えてテスト自体に時間がかかるようになってきたら、特にファイル読み書き系のテストが増えてきたら、効果が上がってくることになるかな。

ミスタードリラーアンコールと日記とComposer

ミスタードリラーアンコール


もう少しだったのに…無念。
アクション面に不安があるからなるべく動かさずに確殺する方向で進めているのですが、真っ向勝負不可避になると厳しいですね。
ここも、動き出すのを防げないからせめて動いた次の瞬間に壊れるように仕向けて、自分は安全地帯に逃げ込む算段だったのですが、予想より早く壊されて安全地帯の確保が間に合わなかった形です。

日記

管理用の活動記録画面に、ゲーム記の一部のページにある進行状況と、Qiitaの投稿情報と、最近コミットしたGitHubの情報を出せるようにしました。
APIは便利ですね。

Today I Learned

日記の賑やかし用と言えば、これもあったんでした。
PHPのComposerに、fundというのがあったんですよ。
「composer fund」というコマンドで、支援を求めているパッケージを調べることができるというものです。
Composerを使っている人が直接的に得をする機能ではないので日本語情報は少ないですが、ライブラリ開発者だって金がないと暮らしていけないし、優秀なライブラリを作れないわけですからね。
無料の物にあえて金を払うというのも、様々なものが無料で手に入る今、考えるべきことなのかもしれません。

.editorconfig

いつの間にかさらに細かい指定もできるようになっていたので、現在アクティブ(なつもり)のプロジェクトに適用してみました。

Node.js

めちゃくちゃ久しぶりにアップデート。
5→13に上がりました。
そして、各種モジュールもアップデートして、Node.jsでトランスパイルしているAnpanatorのコードもリビルドしました。
アップデートによる仕様変更に伴うエラーもありましたが、そこはちゃんと直して、最終的にAnpanatorのコードがほんのちょっと小さくなりました。

爆ボンバーマンとCSS

爆ボンバーマン

ブラックシティ3面の攻略情報リニューアル中。
量が多いのでマップ1だけで力尽きました…。

CSS

HTMLのtableの列幅をドラッグで変えられるようにする雑な方法 - Qiita
投稿しました。
雑な方法だけあって、Chrome以外じゃ動かないとか、問題ありありですが、個人的には、これでも困らないので、これ以上ちゃんとしたものを作るつもりはありません。

<前 次>