ひびのログ

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

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% あっているというわけではないし、メッセージの種類によってもポイントは違ってくる 不足しているものがあるはずなので追記していきたい ポイ…

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

読んだ本 技術者のためのテクニカルライティング入門講座 Kindle版 - Amazon アフィリエイトリンク 以前読んでまとめていたものがあったのでブログに投下。 本の要約 読みやすい文章を書くために 読みづらい文書になる要素 一文が長い 自分視点で書いている …

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 のシンタックスはこちらに記…

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

以前にこの本を読んで感想を簡単にまとめていたのを発掘したので、ここにも載せておこうかなと思います ユニコーン企業のひみつ ―Spotifyで学んだソフトウェアづくりと働き方 単行本(ソフトカバー) - Amazon アフィリエイトリンク 「自立したチームに権限…

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 円分がほしいです! 先日転職活動をして無事に決まったので、キャンペーンに参加がてらまとめていこうと思います。 会…

ヘッダー・フッターの固定とスクロールバー

ヘッダー・フッターを固定するとき、position: fixedはやめたほうがいいんじゃないかという話。 どゆこと? どうやってんの? なにがいいの? そのいち そのに やりかた Flexbox 編 CSS Grid 編 おすすめ ソースコード おまけ どゆこと? 赤部分がヘッダー、…

is-a 関係は「イズ-ア」であって「イズ-エー」ではない!

オブジェクト指向を学ぶ上で、絶対とは言い切れないけどそこそこの確率で出てくる「is-a 関係」という単語。 これの読み方はタイトルの通り「イズ-ア」ですよ、というお話。 弊社の新人研修でも勘違いして教えている人がいたので、しっかりと正していきたい…

Bash で OS の種類を判定する

もし動作しなければ教えていただけると嬉しいです。 現状、以下のOSが判定できます。 * Mac * CentOS * Amazon Linux * Ubuntu * Cygwin (Windows) ソースコード declare OS="unsupported os" if [ "$(uname)" == 'Darwin' ]; then OS='Mac' elif [ "$(expr …

Java9 で追加されたList.of()と、以前から存在する Arrays.asList()の違い

検証PCのスペック OS: Windows 7 64bit Professional CPU: Intel Core i5-3470 3.20GHz メモリ: 8.00GB Javadocの定義 まずは Javadoc を確認。 Arrays.asList() Java9 Arrays Javadoc 修飾子と型 メソッド 説明 static <T> List<T> asList(T... a) 指定された配列</t></t>…