テクノロジー

技術について書きます

小ネタ: DevToolsのネットワークタブでCache-ControlやX-Cacheレスポンスヘッダの値を一覧表示できるようにしてCDN関連の調査を快適にする

タイトルと ↓ のスクショで出落ちという感じ……。 https://aws.amazon.com を開いたときの様子 CDNだったり、Varnishのようなキャッシュ系のミドルウェアの調査やデバッグをしているときは、ブラウザのDevToolsを使って、Cache-Control レスポンスヘッダだっ…

Perl でいい感じに構造化ログを書く旅 #湘南pm

(このエントリは 2023/08/26 の 湘南.pm #1 LT 発表資料です) こんにちは〜 polamjag という者です それっぽいやつが現状 (あんまり) ない Perl のコードベースで構造化ログを書き始めたい とりあえずのゴール: ECS 上で動かしたときにいい感じに Amazon Clo…

令和最新版! 新たなる激安 HDMI キャプチャ MS2130 で激安 1080p60 を体感せよ

今北産業 今すぐ AliExpress で MS2130 で検索して出てくるやつを買え USB3.0, YUV422 1080p60, ステレオ音声 ちょうど3年前くらい (!) にこういうのを書いて、 polamjag.hatenablog.jp そこそこ反響があったわけですが、このとき紹介した MacroSilicon MS2…

Dockerfile の RUN instruction で heredoc 記法をそのまま使うとコマンドが non-zero exit status で死んでも docker build が成功してしまう

tl; dr Dockerfile の heredoc 機能の中で凝ったことをやるときはコマンド群の最初に set -e とか書くのが無難そう 近年 Dockerfile 内で heredoc 記法が使えるようになったことが知られていて、 www.docker.com 割と凝ったことができる機能で、シンプルには…

RouterOS + 楽天ひかり クロスパス で DS-Lite だけを設定する (ひかり電話なし)

前提 RouterOS 6.49.3 楽天ひかりの IPv6 オプションが有効化済み HGW の 下りポートは Routerboard の ether1 に接続 DS-Lite 越しの IPv4 の通信だけが可能な状態を目指す。IPoE 越しの IPv6 通信とのデュアルスタックや PPPoE との併用はターゲットにしな…

DevTools の Web 技術でできている部分を覗き見る

この記事ははてなエンジニア Advent Calendar 2021 の 22 日目の記事です。 昨日の記事は id:shimobayashi さんの アジャイル推進活動にここ1年で吉兆がみえてきた要因について - 下林明正のブログ でした。 Chrome の DevTools の UI 部分は Web 技術ででき…

Safari 13.1 以降では San Francisco の Mono や Rounded な variant とかを CSS で指定できるようになっている

WWDC20 の "The details of UI typography" という動画をなんとなく見ていたところ偶然気がついた。 developer.apple.com Transcript 的にはこの辺: Now the -apple prefixed version has a standard name: system-ui. And earlier this year, we're bringin…

ありものの BigQuery プロジェクトで定義されているビュー群を素朴に Dataform の sqlx ファイル化する

(Dataform とは https://dataform.co/ のことです) 要件 ref() を使ったテーブル間参照についてはとりあえず考えないことにする BigQuery の dataset 名と、Dataform の definitions/ 内のディレクトリ構成をなんとなく一致させたい ってことで、Ruby でこう…

ISUCON 10 本戦で 28,628 点を獲得して 7 位だったふりかえり

チーム「ヌルポインターマリアユニバース」として id:wtatsuru id:Pasta-K と出てきました。最終スコアは 28,628 点で、fail してない中では 7 位。ISUCON にちゃんと出場したのは前回が初めてで、そのときは予選でボコボコにされて終わってしまったんだけど…

#isucon #isucon10 予選参加記: 決勝行けましたの巻

最終スコア 2335 で本戦出場です。スコアそのものは不完全燃焼感が否めないけどクッソ嬉しい。 isucon.net github.com レポジトリはこれ。チーム名は「ヌルポインターマリアユニバース」*1、メンバーは漏れと id:wtatsuru id:Pasta-K。やったことはこの repo…

ffmpeg でオーディオ入力のラウドネスをリアルタイムに計測する

ffmpeg のオーディオフィルタには、EBU R 128 で採用されているアルゴリズム (ITU-R BS.1770) を用いて音声のラウドネスを計測できるものがある*1。 EBU R 128 - Wikipedia https://ffmpeg.org/ffmpeg-filters.html#ebur128-1 これと、ffmpeg のオーディオ入…

Certbot を使って Let's Encrypt の staging 環境用アカウントの取得だけをやる方法

Certbot を使うと、証明書の発行などは実行せずに、Let's Encrypt など ACME プロトコルに対応しているサービスのアカウントの発行だけする、というのが簡単にできる。証明書の自動更新システムで使いたい練習用のアカウント情報だけを作りたい、というよう…

GitHub からやってくる通知メールを文脈ごとに Gmail のフィルタでさばく

GitHub からメールでやってくる通知には、通知の種別によって CC: なメールアドレスが設定されている。 GitHub will Cc you if you're subscribed to a conversation. The second Cc email address matches the notification reason. The suffix for these n…

JPEG には大きく分けて 2 種類ある

JPEG は Joint Photographics Expert Group の略で (パソコンの大先生的知識) (以下略) ファイル形式としての JPEG は、中身の雰囲気でだいたい 2 つに分けられるっぽい JPEG2000 とかはまったく関係なく、我々がふだん JPEG と呼んでいる物体に関する話題で…

Next.js で Google Analytics を使う・2019年冬

これは はてなエンジニア Advent Calendar 2019 14日目の記事です。 昨日は id:takuji31 さんの Kotlin Coroutinesをテストする - Takuji->find; でした。 最近は仕事で Next.js を使っているのですが、その中で Google Analytics による計測をどうするかと…

YouTube でテックカンファレンスの動画を見ながら Scrapbox にメモを取るのが結構よい

ので年末年始にそういうのをやっていた。アニメを半クール分 or 映画を 1 本見る、GCP の動画を 2 本くらい見る、酒を飲む、ウーバーイーツで飯が届く、みたいな黄金サイクル。 scrapbox.io 最近はいろいろあり BigQuery を使おうとしているものの、これまで…

既存サービスでグロースハック的なことをやっていくとき、アプリケーションエンジニアとしてのとっかかり

最近は、はてなブログでグロースハック的なことをやっている id:polamjag です。このエントリははてなエンジニア Advent Calendar 2018 の 20 日目のために書かれました。昨日のエントリは SRE の id:hokkai7go さんによる re:Invent2018に行ってきました - …

Atom で各種フォントサイズを Retina ディスプレイかどうかによって変える

Atom とかだと CSS のメディアクエリ使えばモニタの DPI ごとにフォントサイズ変えられるじゃん— ■ (@polamjag) 2017年1月11日 macOS だと基本的には devicePixelRatio は 1 か 2 のはずだけど、なんとなくこんな感じで書いたやつを使ってる: // Retina でな…

HTML の kbd 要素

キーボードインプット要素(<kbd>)はコンピューターへのユーザーの入力コードを表します。要素名はキーボードの略語ですが、音声入力や手書き入力などの他の入力方法も含みます。多くのデフォルトスタイルは、等幅フォントのインラインで表示するものとなってい</kbd>…

はてなサマーインターン 2016 で バリバリがんばり!大・開・発!!! してきたレポ

hatenacorp.jp はてなサマーインターン2016 の "スイスイSwift! バリバリがんばり! 大・開・発!!!" でおなじみ iOS 実践開発コース に参加してきましたので、以下はその報告ということになります。 慣例にならって適当に自己紹介をすると、 Swift でまともに…

Internet Sampler のご紹介, そして理論と実践

この記事は クソアプリ Advent Calendar 2015 3 日目の記事です。 今最もアツい SaaS (Sampler as a Service) こと Internet Sampler について紹介します。 Internet Sampler は、インターネット越しに皆でワイワイ使えるサンプラーの実装です。ここでいうサ…

クラサバ両方 Linux な環境においてリモートで録画中の TS ファイルを追っかけストリーミング再生することについて

録画サーバも視聴クライアントも両方 Linux なので、Windows 環境でよく使われるツールが使えないという状況下での思考です。ちなみに録画サーバは Chinachu on Ubuntu 14.04, クライアントは Arch Linux です。 TS over HTTP ではなく over CIFS で行けばよ…

FreeNAS とか NAS4Free なマシンに刺さっている WD Green の IntelliPark を止める最も簡単な方法

FreeNAS や NAS4Free 内で新たにパッケージをインストールしたりするのは、結構面倒な上に筋があまり良くない感がある *1 ので、Arch Linux のインストール用起動ディスクを使ってやっていくことにします。 大抵のそういう起動ディスクでは、その環境内でパ…

変態ウィンドウマネージャ情報などが集まる Reddit の /r/unixporn について

Reddit というインターネット掲示板みたいなやつがあって、それについての説明は省きますが、そこの subreddit (2ch で言う板みたいなやつ) に /r/unixporn というやつがあります。 www.reddit.com そこでは、*NIX 上で最強のデスクトップ環境を実現せんとす…

インターネットサンプラー作った

作りました: Internet Sampler (注意: 音が出る可能性があります) polamjag/internet-samplergithub.com どういうやつかというと、ただ単にボタンをクリックすると音が鳴るウェブサイトです。自分がクリックすると当然音が鳴るわけですが、このサイトを同時…

Traktor と iTunes のプレイリストを共有するウェブアプリ (Traxlist) 作った

http://traxlist.polamjag.info/ です。Twitter でログインするとアップロードボタンが現れます。アップロードしたやつはこういう感じになります: soundfloor. 2014 のやつ by polamjag - Traxlist // Share playlist with listeners なぜこういうのを作った…

ブラウザで一面にドカッと表示される svg の作り方 (ただし IE は除く)

1. svg を用意する 2. svg をテキストエディタで開く おそらく存在するであろう svg タグの width 要素と height 要素を消す 3. 出来上がり 4. お好みでデプロイする ・ิω・ิ.ヒモ.jp *1 *2 *1:Apache とか Nginx で、Index ディレクティブ的な奴をいい感じ…

Linux とかで PDF を結合とか n-up とかするコマンドたち

我々大学生にとっては、授業資料持ち込み可とされた試験に持ち込む資料をいかに効率的に印刷するかということは死活問題であります。先日も、ある試験に Linux の man ページを厚さ 1cm ぶんほど持ち込もうとしていた人を見ました。 それはさておき、一見プ…

Linux でスクリーンを動画としてキャプチャ (screencast) & アニメ gif 化

要は Gyazo GIF (gifzo) みたいなことをするぞという話です。 まず、スクリーンのキャプチャですが、自分の環境 (Antergos/Arch Linux + Xfce) だと SimpleScreenRecorder というアプリケーションを使うと一番いい感じに撮影できます。 なお、Istanbul が次…

Launch Control XL のノブのとこの LED を制御する

備忘録です。 Launch Control XL のノブのとこの LED を制御するには、System Exclusive Message を発射する必要があります。 詳細はググると出てくる公式の Developer Guide (PDF注意) を読んでいただきたいのですが、一応。 下のような MIDI メッセージを…