Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

2025-01-01から1年間の記事一覧

ローカルのgigetテンプレートをテストするためのサーバーを作った

gigetはまだfile:///をサポートしてないので、作ったテンプレートを試したかったらアップロードするしかない。そこで、ローカルにtarballを返すサーバーを立てるようにした。その紹介の記事。 github.com 使い方 サーバーを起動する node server.js {テンプ…

『アジャイルに効く アイデアを組織に広めるための48のパターン』を読んだ

マネージャーからおすすめされた本。でも買ったまま2年くらい積んでしまっていた。マネージャー、すみませんでした… www.maruzen-publishing.co.jp どういう本か? タイトルにある通り、アイデアを組織に広めるための48のパターンについて紹介する本。 構成と…

tmux.confを分割するときはtpmに気をつけよう

ハマって1時間半くらいかかったのでメモ 問題: tpmの設定を行うファイルのパス指定にHOME以外の環境変数が使えない source-fileを使ってtmux.confを分割するのはよくあるパターンだと思います。 source-file "$HOME/dotfiles/tmux/plugins.conf" # ~/dotfile…

テストガイドライン level 1

本ガイドラインの目的、目指すところ テストの基本的な書き方、考え方を習得する 原因調査時などに手動確認を減らせるテストを書けるようになる 本ガイドラインの目的外のこと: リファクタしやすくなるようにテストファイルを整備する。QAの代替を目指す。 (…

next.jsのみで簡易的な多言語対応をする

next.jsのドキュメントには多言語対応のページがあります。 nextjs.org これを参考にすると、LPやホームページ程度であれば十分に多言語対応することができます。 next.jsだけでも出来ること 文字列を翻訳する アクセス時のaccept-languageヘッダーを見て自…

tidy first?を読んだ

in short 内容自体はとても良かったし勉強になった だが、文章がおかしくて読みづらかったし、サンプルも図も不親切 初心者が読んで100%理解できるのかは疑問(読まないよりは読んだほうが良いと思うが) 感想1: 読みづらかった 全体的な感想として、とても読…

rowspanを考慮してtable要素を2次元配列に変換する(第一正規化する)

rowspan、colspanがあるとtd:nth-of-type などがズレてしまう。 td:nth-of-type(2) に背景色をつけた図 html <table> <tr> <td>col1,1</td> <td rowspan="3">col1,2</td> <td>col1,3</td> </tr> <tr> <td>col2,1</td> <td>col2,2</td> </tr> <tr> <td>col3,1</td> <td>col3,2</td> </tr> <tr> <td>col4,1</td> <td>col4,2</td> <td>col4,3</td> </tr></table>

転職活動の結果報告 + 転職の動機とか

ひとまず結果が出揃ったので報告です(※まだ転職先は決定してないです)。 合計12社受けました。 内訳がこちら↓ 1次落ち: 4社 (内訳: エージェント2社、スカウト1社、自己応募1社) 2次落ち: 1社 (スカウト1社) 最終落ち: 2社 (スカウト2社) 内定: 5社 (スカウ…

機能別のECMAバージョン対応表

ある機能がどのECMAバージョンで入ったのかの一覧表。ある程度グルーピングをしてある。 2025年現在のproposalsのfinished-proposals.mdを参照している。 (なお、全部確認はしたはずだが、間違ってる可能性もある。抜け等あったらコメントお願いします) Arra…

propsが変更されたときにすべてのstateをリセットするHOCを作る

react.devの「そのエフェクトは不要かも」のprops が変更されたときにすべての state をリセットするに書かれている解決策が微妙に感じたので、改善案を提案します。 そもそも: 公式の解決策がなぜ微妙に感じるのか? props が変更されたときにすべての state…

転職選考の前半でやらかした失敗7選

1月から転職のために選考を受け始めました。しかし、まさかの 4社連続1次落ち を経験しました。そのタイミングで猛省をした結果、最終的に 4社から内定をいただきました。 (まだ1社選考残ってますが) 今回は特に転職活動の前半で「やらかしたな〜」と思った…

「ここの意図ってなんですか?」を柔らかく聞く

「ここの意図ってなんですか?」とテキストで尋ねると、怒っていると捉えられてしまうことがあります。コレはした側もされた側も多くの人が経験したことがあると思います。 実はこれにはメッチャ簡単な解決策があります。 解決方法: 「なぜ知りたいのか」を書…

素数を判定する正規表現を紹介: /^.?$|^(..+?)\1+$/

先日、正規表現のネタをツイートしたら軽く拡散しました。そこで他にも面白いものあるのかなと調べてみたら素数を判定する正規表現があるという記述を見つけました。 これが実際の正規表現を使った素数判定です↓ const isPrime = (n:number) => !/^.?$|^(..+…

alpha-nvimで表示するロゴをいい感じにしたい

ascii.nvim を使うといい感じになるよ やり方: alpha-nvimのheaderにascii.nvimのAAを設定する lazy.nvim の場合こんな感じ↓ opts = function() local dashboard = require 'alpha.themes.dashboard' dashboard.section.header.val = require 'ascii'.art.te…

useEffectにはコメントをつけよう

「なにをしたいuseEffectか」をコメントしておくと、後で読むときのコストが下がりやすい。 実際にプロダクトコードで書いたことがあるコメント↓ (簡略化してます) // 画面内に入った動画を自動再生する+ほかの動画は停止する (すでに再生済みだったら再生し…

4年使って作った俺的最強 Moonlander レイアウト

ここからダウンロードできます→レイアウトデータ 工夫ポイントたち 日本語入力と英語入力のスイッチがある 役割ごとにキーに色をつけて光らせている レイヤーの切り替えがしやすい 矢印キーの配置が直感的 工夫1: 日本語入力と英語入力のスイッチがある 正直…

デスク環境2025

去年のもの→デスク環境2024 - Panda Noir デスク全景 デスク全景 有孔ボード デスク周辺機器 デスク: FLEXISPOT E8B キーボード: Moonlander マイク: blue Yeti X ウェブカメラ: Elgato Facecam ディスプレイ: (new) ASUS 4Kモニター PA329CV 機器関連は、デ…

Object.keysの型をより正確にしてみる

【TypeScript】Object.keys() の返り値をstring[]型でなくユニオン型の配列にしたい こちらの記事を読んでみて、「テンプレートリテラルを使えばもっと正確にできるのでは?」と思って書いてみました おさらい: なぜObject.keysの返り値は string[] なのか? (…