タグ

ブックマーク / blog.utgw.net (30)

  • 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 during request processing, e.g. when doing internal redirects, or when using index files. 正規化されたURI リクエストの処理過程で $uri の値は変わりうる クエリパラメータは付いてない どのように正規化されるのか locationディレクティブに書いてある。 The matching is

    nginx の $request_uri と $uri - 私が歌川です
    mizdra
    mizdra 2021/08/05
  • 【追記あり】echoでNew Relicのエージェントを使えるようにするミドルウェアを書いた - 私が歌川です

    追記 nrechoというライブラリが公式から提供されているのでこっちを使ったほうがよいと思います。わざわざ自前実装をしてから見つけてしまったけど見つけられたのはよかったということでここはひとつ……。 そういうわけなので、以下の文章は読まなくてもよいことになりましたが、記録のために残しておきます。 (追記ここまで) あらすじ 練習でISUCON9予選のコードにNew Relicエージェントを導入したときは、gojiを使っていて、 mux.HandleFunc でhandlerを登録する形式だったのでちょっと書き換えればすぐ導入できたのですが、echoだとひと工夫必要でした。 そもそも公式のGoエージェントではどうやっているのか、gojiの場合は newrelic.WrapHandleFuncといった関数を使うことでGoエージェントを有効にできます(使用例のコードを引用)。 http.Hand

    【追記あり】echoでNew Relicのエージェントを使えるようにするミドルウェアを書いた - 私が歌川です
    mizdra
    mizdra 2021/07/22
    助かる
  • 入力フォームに対してIMEの確定を待ってからEnterでなんかするやつ - 私が歌川です

    入力フォームがあって、Enterを押して入力したテキストをリストに追加したいとしましょう。↓こちらでお試しできます。 ここに追加されるよ こういう感じで実装できます。簡単ですね。 (() => { const list = document.querySelector("#list_1"); const input = document.querySelector("#input_1"); input.addEventListener("keydown", (e) => { if (e.key !== "Enter") { return; } e.preventDefault(); const text = e.target.value; const li = document.createElement("li"); li.textContent = text; list.appendC

    入力フォームに対してIMEの確定を待ってからEnterでなんかするやつ - 私が歌川です
    mizdra
    mizdra 2021/07/03
    isComposing で十分だと思ってたけど Safari 駄目なのかー
  • Relay + TypeScriptでnodeクエリを使うときは__typenameフィールドを明示的に取得すると便利 - 私が歌川です

    タイトルが全てです。 作品詳細ページで、id をもとに作品 (Artwork) を取得したいとする。 Artwork が Node インタフェースを実装しているなら、以下のように node クエリを使って取得できる。 query ArtworkDetailQuery($id: ID!) { artwork: node(id: $id) { ... on Artwork { id title caption } } } が、このクエリをもとにrelay-compilerでTypeScriptのコードを生成すると、以下のように artwork のフィールドが全てoptionalになった型定義が生成されてしまい、不便である。 export type ArtworkDetailQueryResponse = { readonly artwork: { readonly id?: string; r

    Relay + TypeScriptでnodeクエリを使うときは__typenameフィールドを明示的に取得すると便利 - 私が歌川です
  • WEB+DB PRESS Vol.123『Perl Hackers Hub』に寄稿した #wdpress - 私が歌川です

    WEB+DB PRESS Vol.123 (2021/6/24 (明日!) 発売) のPerl Hackers Hubに「他言語のライブラリをPerlに移植する」というテーマで寄稿しました。twitter-textをPerlに移植した際に得られた知見をもとに、他言語で実装されたライブラリをPerlに移植する際のコツについて執筆しました。 Perlに限らず他言語であっても、使いたいライブラリやSDKが使いたい言語で実装されていない、ということはしばしばあると思います。そういった際にどのようにライブラリを移植するのか、気をつけるべきことは何か、について6ページにまとめています。特にPerlに移植する際に気をつけることを重点的に書いていますが、Perl以外への移植を目標とする際にも参考にできることが書けたと思います。 見誌をいただいたのですが、すごく読みごたえのある記事ばかりでした。ぜひお買い

    WEB+DB PRESS Vol.123『Perl Hackers Hub』に寄稿した #wdpress - 私が歌川です
    mizdra
    mizdra 2021/06/23
  • ペアプロ活動パターン - 私が歌川です

    仕事でよくペアプロでコードを書くのですが、気をつけていることがいくつかあるので共有します。みなさまは何に気をつけていますか? 考えていることを声に出す やりたいことが実現できずに詰まっていると黙りがち どうやったらいいか分からず困っている・違う結果になる、みたいなのを口に出す ペアの人が解決方法を知っているかもしれない クマさんデバッグみたいな効果もありそう ところで「クマさんデバッグ」って一般に通じる言葉なんですか? 書いているコードの自己評価を行う 最高のアルゴリズムになった、とか、これは一時しのぎです、みたいな 認識がずれていないかの確認をする 「こう思っているけどそれで合ってますか?」 こまめにcommitする こまめにセーブするイメージ git diffを確認したら、どこまでできているのかを見れる いざとなったらgit resetで戻れる ひと通りできあがってからちょっとずつco

    ペアプロ活動パターン - 私が歌川です
  • 大学院を退学 - 私が歌川です

    2021/3/31付で、大学院を退学することにした。この記事を投稿するよりもちょっと前に、退学願を提出した。退学願を出すにあたって、教員の方々と面談をしたけど、じゃあ頑張ってねーみたいな感じで淡々と終わった。 春からキラキラ社会人、になれるかは分からないけど、生活は続いていく。 とりあえず欲しいのウィッシュリストを貼っておきます。ほかにもオススメのがありましたらウィッシュリスト外から送ってください。 読書カテゴリやScrapboxにあるは、読んだことがあるか、もしくは持っています。

    大学院を退学 - 私が歌川です
    mizdra
    mizdra 2021/03/28
  • GitHub Actionsを使ったDDoSに巻き込まれた - 私が歌川です

    事例集です。 きのう、GitHubの通知を見たら、個人のリポジトリに My First PR というタイトルのPRが来ているのに気づいた。PR出すところを間違えたのかな、と思って見てみたがどうも様子がおかしい。 prog という名前のバイナリファイルを置いている .github/workflows/ci.yml*1の中身をガッと書き換えている on: [pull_request] でworkflowを起動している 20並列でjobが走るようにmatrixを設定している fail-fast: false なので、どれか1つのmatrixが失敗しても他のジョブは続行される base64 encodeした文字列をdecodeしてevalしている ドメインの名前解決を行ったあと ./prog を実行するコマンドにdecodeされた PRをめちゃくちゃな回数closeしてreopenしている PRを

    GitHub Actionsを使ったDDoSに巻き込まれた - 私が歌川です
  • 時間を表す要素を強調表示するUserCSS - 私が歌川です

    ツイッターを見ていると、たまに何年も前のニュースに怒っている人を見かける。そういう人がいたら無視したり、ミュートしたり、フォローを解除したり、などいろいろな手でスルーできるけど、自分もいつ昔のニュースに怒ってしまうか分からない。せめて、いつのニュースなのかがすぐに分かれば、少しはそういう事故を防げるのではないか。 基的に time 要素を強調すれば多くのサイトで通用するけど、日時を表すのに time 要素を用いていないサイトもあるので、個別対応している。 普段使いのChromeにはStylusを入れて、以下のようなUserCSSを適用している。 time { font-size: 500% !important; color: red !important; } /* Yahoo! ニュース */ .hdLogoWrap .source { font-size: 500% !import

    時間を表す要素を強調表示するUserCSS - 私が歌川です
    mizdra
    mizdra 2020/02/21
    便利 / N年前の記事だったら七色に光らせるとかもやりたい
  • VSCodeでPerlのpackage宣言を挿入してくれるperl-insert-packageっていう拡張機能を出した - 私が歌川です

    Perlでモジュールを書くとたいてい先頭に package Hoge::Fuga::Piyo::Payo; のような宣言を書くことになると思います*1。 最初のうちはいいけど、名前空間がだんだん複雑になっていくと、これは単に写してるだけでは?? となってきます。 ところで、ファイルパスからパッケージ名への変換は、たいていの場合すごく素朴に行えるのではないでしょうか。 先頭の lib/ を消す 拡張子の .pm を消す / を :: に変換する ということでそれをコマンド1つで実行してカーソルの位置に挿入してくれる拡張機能を作って出しました。ご活用お待ちしております。 marketplace.visualstudio.com 利用方法は以下の動画が全てを物語っています。 2019/10/29追記: このたび、コマンドだけでなく補完にも対応しました。よりストレスフリーにパッケージ宣言ができるよ

    VSCodeでPerlのpackage宣言を挿入してくれるperl-insert-packageっていう拡張機能を出した - 私が歌川です