ひびのログ

日々ではないけどログを出力していくブログ

本の読み方

国語の教科書のように最初から最後まで本を読んでいると、一冊読むのに凄まじい時間を消費してしまう。 そんなことをせず、効率的に本を読んで知識を仕入れるための方法を解説する。 忙しい人は「TL; DR」だけ読んだらいいけど、全部読んだほうが時短できる…

「ソフトウェアテストの教科書」内容まとめ&感想

本 【この1冊でよくわかる】 ソフトウェアテストの教科書 [増補改訂 第2版] https://www.amazon.co.jp/dp/481560875X TL; DR ソフトウェアテストの目的 ソフトウェアの欠陥を取り除く ソフトウェアがユーザーの要求を満たせるようにする ソフトウェアが顧客…

シェル芸ロードマップ

シェル芸(シェルコマンド)の使い方を覚えるための課題を作ってみた。 内容は「自分はこんな感じで学んでいったような気がする」という完全なる主観。 課題 ファイル一覧を出す ls とよく使うオプション a, l, t, 1 ls のヘルプを見る ls --help, man ls ls…

mp3 ファイルのメタ情報に入っているタイトルを CLI で一括変更

iTunes で複数の関連する CD を取り込んだのだが、曲のタイトルが統一されていなかった。 具体的には、「[CD 番号]-[トラック番号]」みたいになってほしかったのに、1 つの CD だけ「トラックxx」みたいな形式でインポートされてしまった。 ファイル名を変え…

JavaScript に入るかもしれない「Temporal」とは何なのか、使えるのか?

Temporal とは JavaScript で日付を扱うための新しい API。 github.com ポリフィルが 2 つあって、1 つはブラウザでポリフィルが試せる。 www.npmjs.com 現在のステータスは stage 3 なので、普通はいくつかのランタイムで実装されれば stage 4 になり、晴れ…

ブックマークレット化するスクリプト

FILE_PATH="ファイルパス"; echo 'javascript:(async () => {' "$(deno bundle ${FILE_PATH} | egrep -v '^// ' | tr -d '\n' | gsed -r -e 's/ +/ /g')" '})()' | pbcopy TS をコンパイルするときは // @ts-nocheck をつけてあげれば型チェックを無効にでき…

メッセージを伝えるときのポイント

これまで「伝える」ということについて自分が学んだことをまとめた すべてできているわけではないし、これが 100% あっているというわけではないし、メッセージの種類によってもポイントは違ってくる 不足しているものがあるはずなので追記していきたい ポイ…

「技術者のためのテクニカルライティング入門講座」内容まとめ&感想

読んだ本 技術者のためのテクニカルライティング入門講座 https://www.amazon.co.jp/dp/B07JHZMH9C 以前読んでまとめていたものがあったのでブログに投下。 本の要約 読みやすい文章を書くために 読みづらい文書になる要素 一文が長い 自分視点で書いている …

Next.js で作ったアプリを爆速で公開する(Firebase CLI framework-awareness)

こちらのツールを使用すると、Next.js で作ったアプリを Firebase に公開するのがめちゃめちゃ簡単にできました。 github.com Google 社員が管理しているものの、Firebase 公式ツールではないし現時点では experimental なので、理解した上で利用してくださ…

npm ってなんだ

一言に「npm」って言っても実はいろんな意味があるのでまとめた そもそもなんの略? Node Package Manager Node.js のパッケージを管理するやつ パッケージ? 使い回せるようにしたコード 誰かが作って公開している関数とかクラスとかそういうやつ Node.js …

HTML には自己終了タグがない

自己終了タグとは、<タグ名 /> のように、/> で終わっているタグのこと。 ……だと思っていた。 ふとしたタイミングで「自己終了タグが書けるのはどの HTML タグなんだろう」と疑問に思ったので調べてみた。 仕様を調べてみる HTML のシンタックスはこちらに記…

「ユニコーン企業のひみつ」を読んだ

以前にこの本を読んで感想を簡単にまとめていたのを発掘したので、ここにも載せておこうかなと思います 「自立したチームに権限を与えて信頼する」文化 これが「ユニコーン企業のひみつ」 プロジェクトよりミッション プロジェクトは意味がないこと(納期や…

git rebase でファイル内容が同じなのにコンフリクトする時。そしてそれをコマンドで解消する方法

git rebase をした時、ファイル内容が同じなのにコンフリクトしてしまうことがある。その現象の理由を説明し、コマンドで簡単に解消する方法を解説。

Vue.js 3.0 で追加される Composition API をさっと舐めてみた

Vue.js 3.0 で最も大きい変更である Composition API を使えるので使ってみたので、その感想をまとめてみた。

@vue/test-utils で「<Component name> has been modified to ensure it has the correct instance properties」と言われた時

前置き Vue.js + JavaScript 環境に TypeScript を導入しようとしたときの話です。 コンポーネントを TypeScript 化してコンパイルはでき、テスト(Jest)が通るか確かめたときの話です。 前置き やったこと バージョン エラー内容 なぜこのメッセージが表示…

ライブラリの中で定義しているインターフェースを拡張したかったんですよ

タイトルのとおりで、TypeScript をある程度やっている人なら当然のことかと思いますが。 interface の拡張 TS の interface って拡張できるじゃないですか。 interface Foo { bar: string } interface Foo { baz: number } /* // 結果 Foo: { bar: string b…

「実践 TypeScript ―BFF と Next.js & Nuxt.js の型定義―」を読みました

はじめに 「JavaScript ではなく TypeScript で書け」と、去年くらいからかなり言われています。 私も JavaScript と TypeScript を使っているので、それにすごい共感します。 しかし、実際に型付けするときには結構困ることがあると思います。 そこで、つい…

【資料公開】TypeScript の社内勉強会を開催しました!

タイトルどおりなのですが、TypeScript の社内勉強会を開催しました! 勉強会で使用した資料 https://gitpitch.com/tee-talog/try-typescript 今回は GitPitch を利用してスライドを作成しました。 簡単にスライドが作れるので、それほどデザインにこだわら…

既存プロジェクトに Prettier を導入したけど、コードレビューが辛すぎる件(ラノベタイトル風)

お気持ち表明(いわゆるポエム)です。 前置き 現在関わっている JavaScript プロジェクトには Prettier が入っていません。 また、ESLint は入っていますが(Standard)、--fix をしていない状況です。 そして、Vue.js を利用してしますが、eslint-plugin-v…

ヘッダーを固定するならとりあえずこの 1 行を入れとけっていう CSS

CSS

TL;DR body { scroll-padding-top: <ヘッダーの高さ + α>; } 前置き 下の記事では、ヘッダー・フッターは position: fixed; より Flexbox とか CSS Grid とかで作ったほうがいいのでは、的な話をしました(個人の感想です)。 www.tee-talog.com そうはいっ…

ESLint が一部設定されている JS + Vue.js プロジェクトに Prettier を導入しようとしてハマった

TL;DR eslint-plugin-vue を導入してから Prettier を入れないと、変な風にフォーマットされることがあるよ。 TL;DR 背景 Prettier を導入したい! 導入方法 1. Prettier を実行してから ESLint を実行 2. ESLint と同時に Prettier を実行 地獄 どうしてこ…

勇なま:マップを作った

現時点のソースはこちら github.com 進捗どうですか マップを表示して、カーソル移動をできるようにした。押しっぱなしも OK。 アローキーと WASD でカーソル移動。G で初期位置に戻る。 今後負荷がかかりそうなので、軽減のためにマップは表示されていると…

勇者のくせになまいきだ。を再現してみたかった

記事リンク まだないよ。 リポジトリ github.com 導入 皆様は「勇者のくせになまいきだ。(略して勇なま)」をご存じでしょうか? 一言で表すと、神ゲー です。 思い出補正がかかっている可能性は否めないですが、モンスターを増やして勇者を倒すという、簡…

Vue.js でアクセシビリティを考慮したダイアログのフォーカス移動を考えてみた

UI フレームワーク等ではすでに対応しているかもしれませんが、自分でも作ってみました。 リポジトリ github.com src/App.vue : 親コンポーネント src/components/MyDialog.vue : ダイアログ本体 サンプル https://tee-talog.github.io/vue-dialog-focus/ 背…

Mac で npm の canvas をインストールするときにハマった話

古いバージョンの canvas モジュールのインストール時に node-gyp もインストールされるが、エラーが発生してインストールできなかった。 環境 macOS Hight Sierra ( version 10.13.6 ) やりたかったこと npm install canvas@1.x.x TL;DR brew install pkg-c…

Git のチェックアウト履歴を確認する&そこから選択してチェックアウト

履歴がー……見たい! Git で直前にいたブランチに戻るのは git checkout - で出来ますが、それ以前って見ることが出来ないですよね。 でも、見たい。 そこでシェル芸ですよ シェル芸の定義以下略。 ほぼ参考 URL からのパクリですが、Mac で動かなかったりし…

YouTube でモデレーターや指定ユーザー名のチャットを強調する Chrome 拡張機能作りました

YouTube でモデレーターや指定ユーザー名のチャットを強調する Chrome 拡張機能作りました

【未解決】Nuxt.js を 2 にアップグレードしたかったけど断念した話

だめだったやり方 前準備 参考:Release v2.0.0 · nuxt/nuxt.js · GitHub まずは .nuxt node_modules yarn.lock package.lock.json を削除 node >= 10、npm >= 5 が推奨なので、それぞれアップデート。 nodist を利用しているので、 $ nodist 10.15.1 10.15.…

Cypress で立ち上がるブラウザの設定をリセットする

テストが起動しなくなった! Cypress のテストを実行しようとしたところ、下記の画面が出てテストが実行できなくなりました。 理由は明確で、Cypress で起動するブラウザの設定をリセットしたからです。 エラー画面 Whoops, we can't run your tests. This b…

転職しました

※こちらの記事は転職ドラフト体験談投稿キャンペーンに参加しています。 https://job-draft.jp/articles/251 Amazon ギフトカード 10,000 円分がほしいです! 先日転職活動をして無事に決まったので、キャンペーンに参加がてらまとめていこうと思います。 会…