koudenpaのブログ

趣味のブログです。株式会社はてなでWebアプリケーションエンジニアをやっています。職業柄IT関連の記事が多いと思います。

Terraform Cloud + Azure Provider 備忘

terraform import でS3バケットをインポートした時の備忘 - koudenpaのブログ

でTerraform Cloud + AWSは少し試した。今回はAzureを試した。これはその感想記事です。

先日 Azure Static Web Appsの環境毎にE2Eテストしてみる - koudenpaのブログ した時には、IaCせずAzure Portal上でStatic Web Appsを作った。これは、ARMテンプレート書くよりPortalで操作したほうが手っ取り早いだろう、というものぐさな理由のほかに、TerraformはまぁまぁマイブームなのでどうせIaCするならTerraformだろうって感じだったからだ。作業した当時はStatic Web AppsのプロバイダはPR中だったのだけれど、先ごろリリースされたので、Terrraformの大きな魅力の一つであるインポート機能で既存のStatic Web AppsをTerraform管理下に置いてみた。

続きを読む

Azure Static Web Appsの環境毎にE2Eテストしてみる

Azure Static Web AppsがGAしたようで、とてもうれしい。

直近のマイブームがE2Eテストなので、Static Web Appsの中でも特にいいなと思うGitリポジトリのPull Requestごとの動作環境に対してE2Eとビジュアルテストを仕掛けてみた。

E2Eテストは先日試したCypressをそのまま使い、ビジュアルテストはそれにPercyを連携してみた。

  • なんで Percy
  • 構成
  • 感想
続きを読む

Cypress いいね

これ。

www.cypress.io

この記事は Cypress でE2Eテストの入り口やってみた体験レポートです。

それ以上の情報はないです。しいて言うなら、使うのに迷うことはないので使いやすいんじゃないか? というのが分かるくらい。

Cypress がなんなのかは全然調べてなくて、とりあえず使ってみた状態。とにかくE2Eテストをとりあえず(大事なことなので二回書いたんだろう)動かしたかった。

そういう話はちゃんと書いてある。気が向いたら読もう。

追記:大事なことを忘れていた、とりあえずググって、SaaSとしてFree枠があったのが使ってみるポイントだった。

続きを読む

System.Windows.Forms.ScrollBar をキー入力でスクロールしないようにする

Windows Forms には水平、垂直スクロールバーHScrollBar, VScrollBar)コントロールがある。これらはフォーカスが当たっている際にテンキーの上下左右を入力するとスクロールする。この動作をなくしてマウス操作時だけスクロールするようにしたい。

すんなりは行かない。

キー操作を制御するプロパティは存在しないし、派生クラスを作ってキー操作処理自体を無効化してしまうと親コントロールへのキー操作の伝搬も止まってしまって都合が悪い。

仕方ないのでソースコードを眺めてキー入力に伴うスクロールのメッセージだけ処理しないようにした。

かなりいい加減なハックなのでそのうち動かなくなるかもしれないけれど、とりあえず目的は達成されたので満足した。

こんな感じ。

SRC/SrcScrollBar.cs at 29e96eeb18b28837bc9b02790568252fdea1edfb · 7474/SRC · GitHub

水平スクロールバーの例を貼っておく。垂直も同様に処理できる。

public class SrcHScrollBar : HScrollBar
{
    private bool onMouseProc;
    protected override void WndProc(ref Message m)
    {
        onMouseProc |= isMouseDown(m);
        onMouseProc &= !isMouseUp(m);

        // マウスでの操作中でなく、スクロールのメッセージなら無視する
        if (onMouseProc || !isScrollMsg(m))
        {
            base.WndProc(ref m);
        }
    }
    //WM_LBUTTONDOWN = 0x0201,
    //WM_LBUTTONUP = 0x0202,
    private static bool isMouseDown(Message msg)
    {
        return msg.Msg == 0x0201;
    }
    private static bool isMouseUp(Message msg)
    {
        return msg.Msg == 0x0202;
    }
    //    case NativeMethods.WM_REFLECT + NativeMethods.WM_HSCROLL:
    //    case NativeMethods.WM_REFLECT + NativeMethods.WM_VSCROLL:
    //    WM_HSCROLL = 0x0114,
    //    WM_VSCROLL = 0x0115,
    //    WM_USER = 0x0400,
    //    WM_REFLECT = NativeMethods.WM_USER + 0x1C00,
    private static bool isScrollMsg(Message msg)
    {
        return msg.Msg == 0x0400 + 0x1c00 + 0x0114
            || msg.Msg == 0x0400 + 0x1c00 + 0x0115;
    }
}

最近VBからC# .NETに移植しているSRCというゲームは、上下左右キーでマップをスクロールできるようになっていて、そのスクロール状態が水平、垂直スクロールバーと同期している。

この上下左右キーのスクロールと、スクロールバーが持っているキー入力でのスクロール処理が競合してフォーカスの状態に応じて変なスクロールをする状態だった。

これになんか非常にイラついていた。

そもそもイリーガルなスクロールバーの使い方だろうから、スクロールバーを使わないようにするとか、ScrollableControlを使うようにするとかした方がいいのだろうとは思う。

けれどなんとなくこの素朴なスクロールバーの使い方が気に入っていたり、キー操作だけ無効化できない作りにイラついていたりしたので、そのイラつきを燃料にしてハックした形。

おかげで今はとてもスッキリした気分だ。

スクロール処理が競合している様子

f:id:koudenpa:20210507192216g:plain
上下左右同時にスクロールしたり、1操作で2操作分スクロールしたりしている

競合しなくなった様子

f:id:koudenpa:20210507192308g:plain
上下左右に1操作分ずつスクロールする

隙間時間の使い方で調子が測れる

仕事をしているとしばしばちょっとした隙間時間が生まれる。

打ち合わせと打ち合わせの隙間とか、大きなソフトのインストールや更新とか、もっと小さな隙間ならコードのビルド時間とか。~15分くらいの時間。

気力が充実しているときにはそうした隙間時間でちょっとしたタスクを消化できる。

イマイチ気が乗っていないときにはぼーっとしていたりネットサーフィンをしていたり、無為に時間を過ごしてしまいがちになる。

別にぼーっとしてる時間が完全に無駄とは思わないけれど、隙間時間を活用できているとちょっとしたタスクの消化量が全然違う。なので、そうしたタスクの消化量を見ることで自分の調子が測れるな。って思った。

ここしばらく自覚的にイマイチなのだけれど、実際おやつタスクの消化量が壊滅している。

この記事は単に測れるね、って思ったことを書いているだけなので、どうやったら調子が良くなるのかは分からんけれど、おやつをたくさんつまめる調子に戻して行きたいなと思った。

そんな感じ。


『おやつ』とは?

僕の所属しているチームで『別にやらなくても大きな問題はないがやると嬉しいタスク』につけてあるラベル。気分転換や手が空いたときにいつでも消化していいやつ。

やれば5分で終わるものから、ウェディングケーキか? のような巨大なものまでバリエーション豊かに揃っている。

『おやつをつまむ』とか『おやつを消化する』とかちょっとおしゃれな表現になるのが気に入っている。

今再びセスタスのためにZEROを購読する

もう幾日かするとセスタスのアニメが放映される。

cestvs-anime.com

事前情報はあまり見ていない。PVを見ると暗黒伝時代と死闘伝時代のビジュアルが混在していてどういう構成になっているのかすら分からない。正直アニメ化の嬉しさよりもどのような作品になるのか分からない怖さのほうが勝っている。

20年来好きな漫画がアニメになって、多くの人の目に触れることは素直に喜ばしい。

でも怖い。

複雑な気持ちだ。

数年前にもセスタスについて触れていた。

koudenpa.hatenablog.com

その時はただ静かに、確実に連載が続いて、完結への道を進んでくれることを願っていたように思える。

その後、連載はアプリになって、ZEROになって、アニメ化して、激動だ。

その間ずっとセスタスがアドニスに勝利するイメージは全く沸かない。

ルスカとの決着がどのように展開するのかはことさら分からない。

でもセスタスとザファル先生なら何とかやってくれると信じている。

史実を鑑みると難しいとは思うけれど、どの登場人物にも何かしらの幸せをつかんで欲しいものだ。


アニメ化を前にして新刊が出てるぞ!

そしてヤングアニマルZEROで好評連載中だ!! セスタスを読むために買い始めた!!! 

インタビュー記事もいいぞ!!!! 貴重だ!!!!!

mantan-web.jp