私が歌川です

@utgwkk が書いている

技術

GitHub Actionsで「matrixの全テストが通らないとマージできないようにする」設定を簡単に行う方法

GitHub Actionsで、複数環境でテストしたいのでmatrixに分けて、branch protectionの設定で全環境のテストが通ったらmasterにマージ可能にしましょう、というのをやろうとするとちょっと面倒です。 matrixの数だけ必要なstatus checkに含めないといけない jo…

誰かに使ってもらえているコードを、さらに良くしてもらえるのはありがたい

GitHub Actionsで落ちたテストをアノテーションするpytestプラグインを書いてしばらく経過した。手元のPythonライブラリに追加して様子を見たりしていたのだけれども、まあ動いているからよいかな、という状態だった。 utgwkk.hateblo.jp 最近になって、バグ…

utgw.net をNetlifyで配信

utgw.netをNetlifyで配信するようにしました。見た目はとくに変わってないと思います。 Netlifyには特定のパスをHTTPリダイレクトする機能があり、 /labs/ 以下を https://sugarheart.utgw.net/labs/ にリダイレクトする、という設定ができたのがよかったで…

utgw.net/labs 以下のコンテンツを sugarheart.utgw.net/labs 以下で配信するように変更

utgw.net/labs は、私がJavaScriptで書いた小規模な(1ページで完結する)プログラム置き場でした。 適当にGitHub Pagesでホスティングしていたのですが、現代ならJSFiddleなどを使えばよいようなもので、サイトの大幅リニューアルでもやるかと思ったときの処…

6年前に作ったGoogle App Engineで動くTwitter botを更新した

github.com このブログで言ったことない気がするけど、素数bot (@sosuubot)というTwitter botを管理している。1時間おきにカウントアップした整数が素数かどうかをつぶやくだけのbotである。 6年前に作ったきりで、Python 2.7製で、Google App Engineで動い…

カラー絵文字をモノクロにする

🤔 <div style="text-align: center; filter: grayscale(1); font-size: 50pt;">🤔</div>

GitHub Actionsで、Perlの落ちたテストをアノテーションするTest2プラグインを書いた / GitHub ActionsのProblem matcherについて知った

表題にあるものを書きました。cpanm Test2::Plugin::GitHub::Actions::AnnotateFailedTest して use Test2::Plugin::GitHub::Actions::AnnotateFailedTest することで今すぐにご利用いただけます。 metacpan.org 以前書いたpytestプラグインとだいたい同じよ…

GitHub Actionsでテスト落ちた & 別のstepのoutputがtrue のときだけ走るstepを定義する

GitHub Actionsでテスト落ちた & 別のstepのoutputがtrue のときだけ走るstepを定義しようとしたけどできなかった - 私が歌川です の続きです。表題のようなworkflowを書こうとして結局やり方が分からなかったので、フォーラムに投稿したところ、回答をいた…

GitHub Actionsでテスト落ちた & 別のstepのoutputがtrue のときだけ走るstepを定義しようとしたけどできなかった

特定のテストが落ちたとき、診断情報ファイルをdumpする。後のstepで、そのファイルが存在する場合はoutputにフラグを記録して、フラグが立っているときは最後にupload artifactする。 以下のようなYAMLを書いたらできるかと思ったけどできなかった。最後のu…

GitHub Actionsで落ちたテストをアノテーションするpytestプラグインを書いた

表題のものを書きました。 pypi.org *1 workflow内でおもむろに pip install pytest-github-actions-annotate-failures してから使うとアノテーションされる、という寸法になっています。 pytestは簡単にプラグインを書けるのがいいですね。初めて書いたけど…

GitHub Actionsのworkflow commandでアノテーションするときのmessageで改行したい

GitHub Actionsのworkflow commandという機能を使って、workflowの中からリポジトリのファイルの特定の行に対してアノテーションを付けることができる。CIが落ちたときのスタックトレースやexpected, actualなど表示できて便利。 スタックトレースを出すとき…

クックパッドのスプリングインターンに参加した #cookpad_spring_intern

クックパッドのスプリングインターンに参加した。普段から大規模トラフィックをさばく技術に関心を持っています、と言っていたら選考通過した*1。 techlife.cookpad.com クエリのWHEREやORDER BYをグッと見つめてインデックスを貼るとよい、とか、mapの中で…

時刻を表す要素を強調表示するUserCSS (2)

utgwkk.hateblo.jp 以前このような記事を書いて、時刻を表す要素を強調表示するUserCSSについて紹介した。 しばらく運用してたけど、フォントサイズが大きくなるのでいろいろなサイトのレイアウトが崩れまくるという問題があった。フォントサイズはそのまま…

SlackのスラッシュコマンドをHerokuからCloud Functionsに持っていく

/string_random で、与えられた正規表現にマッチする文字列をランダムに生成するSlackのスラッシュコマンドを作って、サークルのSlack workspaceで動かしている。 これまではHerokuで動かしていたのだけれど、Herokuだと寝ている時間が支配的で、たまに人間…

iframeとkeydownイベント

Mac Chromeでは、iframeの中で発生した keydown イベントは親に伝播しない。 逆に親ウィンドウの keydown イベントもiframe内には伝播しない(それはそうという気がする)。 carnelian-royal-lute.glitch.me このページでconsole開いてからキーボード押すと、…

nginx の $request_uri と $uri

nginxの $request_uri と $uri は似ているけどちょっと違う。 $request_uri $request_uri full original request URI (with arguments) クエリパラメータ付きのオリジナルのURI $uri $uri current URI in request, normalized The value of $uri may change …

VSCodeの拡張機能を書くときに見るページ

VSCodeの拡張機能を書くことがまあまああるのだけれど、毎回 vscode extension api hogehoge みたいな検索ワードで検索しまくっているので、普段どういうページを見ながら拡張機能を書いているのかまとめることにした。 utgwkk.hateblo.jp utgwkk.hateblo.jp…

oEmbedの規格におけるpadding, marginとは何なのか

oEmbedのspecに "The HTML should have no padding or margins." っていう文言があるけど、ここでのpaddingやmarginは何のことを指しているのだろうかhttps://t.co/8jat9qkaqB— うたがわきき (@utgwkk) 2020年3月2日 2.3.4.4. The rich type (中略) html (re…

VSCodeでPerlのコードのRename Symbol機能を提供する拡張機能を書いた

VSCodeには Rename Symbol っていって、変数やメソッドの名前を一括変更する機能があるのだけれど、これをPerlでも使えるようにしたい。ということで、できたものがこちらになります。 marketplace.visualstudio.com App::PRTとApp::EditorToolsを手元にイン…

Windows Terminalを試す

Windows Terminalは、Microsoftが開発しているオープンソースの新しいターミナルソフトウェアです。 github.com ちょっと調べて様子を眺めると、コマンドプロンプト時代からは信じられないほどにカスタマイズ可能になっているようです。 WindowsからはWSLで…

Perlの定数とfat comma

たぶん世界中のみなさまがハマったことあると思いますが、私も本日ハマりました。 use strict; use warnings; use Data::Dumper; use constant HOGE_KEY => 'hoge'; print Dumper { HOGE_KEY => 'fuga' }; HashRefのキーを定数に切り出してtypoを防ぐ、とい…

時間を表す要素を強調表示するUserCSS

ツイッターを見ていると、たまに何年も前のニュースに怒っている人を見かける。そういう人がいたら無視したり、ミュートしたり、フォローを解除したり、などいろいろな手でスルーできるけど、自分もいつ昔のニュースに怒ってしまうか分からない。せめて、い…

3行で省略される羅生門

ある日の暮方の事である。一人の下人が、羅生門の下で雨やみを待っていた。広い門の下には、この男のほかに誰もいない。ただ、所々丹塗の剥げた、大きな円柱に、蟋蟀が一匹とまっている。羅生門が、朱雀大路にある以上は、この男のほかにも、雨やみをする市…

余白のある画像を自動で余白の少ない長方形にトリミングしたい

適当にキャプチャ・トリミングした画像の余白が多くて気になる、という出来事がよくある。こういう余白の多い画像から、余白を最小化するようにトリミングした長方形の画像を入手したい。 なんかいい方法ないのかって思ったけど、画像の凸包ができたらうまく…

手元のブランチ名リストを出力する

git branch の出力をそのまま使おうとすると、current branchを表すマーカーとpaddingが邪魔になります。 $ git branch ... * master ... sedとか駆使したら消せるんだろうけどgitコマンドだけで完結させられないか、と思ったらformatを指定すればうまくでき…

Kyoto.js 17

4年ぶりぐらいの参加だった。4年前は右も左も分からなくて一生萎縮してた気がする。 utgwkk.hateblo.jp 2020年になったにも関わらず、懇親会ではFlashの話ばかりしていた。昔はみんなおもしろフラッシュ総合サイトを見ていた、Flash職人が現代のゲームのプロ…

全角スペースはHTMLのclass名の一部になるのか

なります <span class="こちらは 全角スペースの クラスです こちらは違うクラスです">なります</span> 根拠 HTML5 W3C Working Draft 25 May 2011 より 2.5.1 Common parser idioms The space characters, for the purposes of this specification, are U+0020 SPACE, U+0009 CHARACTER TABULATION (tab), U+000A LINE FEED (LF), U+000C FOR…

VSCode Live Shareを快適に使うコツ

リモートでもペアプロ・モブプロしたい。VSCodeにはLive Shareという便利グッズがあります。こうするとうまく使えそうという使い方をいくつかシェアーします。 (業務利用の場合) 使ってよいか確認する 後述するように、仕組みを見るとwebサービスであるとい…

野生の勘だけでコードを書いているのではないかという念

自分は体系化された知識を持っておらず、全てを野生の勘だけで実装しているのではないか、という念が払えないまま幾年が過ぎた。 情報系の大学を出てみたところで、手を動かしていない領域については全くベストプラクティスを知らず、野生を生き延びるために…

git alias設定を整理したら1個を残して他はぜんぶ消せることが分かった

before [alias] bl = blame br = branch cm = commit co = checkout diffs = diff --staged dump = cat-file -p hist = log --pretty=format:\"%h %ad | %s%d [%an]\" --graph --date=short ln = log --oneline pfm = push --force origin master pm = push …