UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

2020-01-01から1ヶ月間の記事一覧

【Chrome】ユーザーエージェント文字列が固定化されるはなし

Blinkの開発者用メーリングリストでユーザーエージェント文字列を固定化する計画がアナウンスされたらしい Intent to Deprecate and Freeze: The User-Agent string 上の記事を読んで固定化とはどういうことか、なぜするのか、どうすればよいかをまとめてみ…

【Storybook】vuexを導入する

Storybook for Vue を利用している https://storybook.js.org/docs/guides/guide-vue/ このstorybookにvuexを導入したい 導入方法 ドキュメントより preview.js import { configure } from '@storybook/vue'; import Vue from 'vue'; // Import Vue plugins …

【HTTP】Etag 304

Etag 304 というワードを使っている人がいてEtagは知っていた気になっていたが、304?となったので調査 ETag(エンティティタグ)は、HTTPにおけるレスポンスヘッダの1つで、RFC2068のHTTP/1.1で追加された シーケンシャルな更新日時と違って、ファイルに関…

【Cloud Build】zipファイル取得してGCSにアップロードする

定期的に業務提携先のサイトからzip圧縮されたcsvファイルをローカルにダウンロードし、解凍した上でそれをGCSにアップロードしている ダウンロードしたzipファイルは150MBほどあり、解凍後のアップロードもつらいのでCloud Buildでこれを行うようにする 手…

【Chrome DevTools】 Device Mode によるモバイル端末のシミュレートの幅の考え方

Chrome DevTools での Device Mode によるモバイル端末のシミュレートにおける幅の考え方について調べる というのも、Chrome DevTools のDevice Mode で選べるモバイル端末には現在、Galaxy S5から、iPhone6、iPad Proなどがあるが、Google Pixel3 がないの…

【vim】正規表現の$1を使った部分置換

vim

vimで正規表現の$1を使った部分置換をしようとしてもできない vim用の書き方をしないといけないのは知ってるけど毎回調べてるのでメモ やりたいのは 12345 こういった文字列を "12345", のように置換したい やり方 やり方は以下 s/\(.*\)/"\1",/ vim以外の正…

【I18N】タイ語の年表記を仏暦から西暦にする

Date#toLocaleDateStringを使うと日付のローカライズができる developer.mozilla.org ほとんどのロケールでは問題ないが、一部のロケールで気になることがある 例えば、タイ語の場合 何も考えず使用すると以下のような結果になる console.log(new Date().toL…

【JavaScript】moment.jsの日付フォーマット内にテキストを含める

ベトナム語のローカライズを行う場合、2020年1月は下のようになる Tháng 1 2020 馴染みがまったくないがThángが「月」にあたるらしい これをmoment.jsのフォーマットを使って表現すると下のようになる Tháng M YYYY と思っていたがこれではダメだった

【I18N】moment.jsを使わないで「年月」のローカライズ

前回の記事の続きで、以下のように日付の年月だけをローカライズさせる方法を調べている 2020年 1月 January 2020 uga-box.hatenablog.com 前回の記事で、moment.jsでは表現が簡単にはできないことがわかり困っていたところ、 twitterで@kawasimaさんよりDat…

moment.jsで「年月」のローカライズ

普段システム開発をしているせいか、toC向けのWebサービスの年月の表現にYYYY-MMとかYYYY/MMというフォーマットを使ってしまっていたが、その表現はエンドユーザによっては違和感があるということを指摘された 日本人ならまだ2020/01という表現に馴染みがあ…

【UI開発】コンポーネント言えるかな? - コンポーネントをポケモンと例えてみる

既に作ったUIコンポーネントと似たようなコンポーネントを新たに作ってしまうという問題を解決するためのジャストアイデアをチームメンバーに話したら、割と反応がよかったので整理してみる ただ、これがいいのか悪いのかのはまだわからない 問題 ReactやVue…

Excelが嫌いなんじゃない

あるときエンジニアでない方から「エンジニアはExcelが嫌いなんでしょ?」と言われたことがあった 「設計書をExcelで書くのは古い文化で、最新技術を追うエンジニアはそういうことをしたがらないんでしょ?」とかそういうニュアンスだった しかし、そういう…

あなたのお金、あなたの人生 - YMYLページとは?

SEO

とあるSEO対策エンジニアの方が「YMYL」とつぶやいていてYMYLのことを知らなかったので調べてみた YMYLとは 「Your Money or Your Life」の頭文字を取った略語 「あなたのお金、あなたの人生」という意味 Google検索品質評価ガイドライン(2019.12.5)では以下…

【Vavr】Javaの関数型ライブラリVavrのOption

現在、VavrというJavaの関数型ライブラリを使っているので、このVavrの使い方メモ 今回はOptionだけ www.vavr.io io.vavr.control.Option Optionはオブジェクトの参照がnullかもしれないことを明示的に表せるようにしたクラス オブジェクトをOptionでラップ…

【Elasticsearch】Field Collapsingについて

トリバゴのように一つのホテルの価格を複数のサービスで比較をすることを考えるとき 検索結果はホテルをあるソート順(おすすめ順)で並べた上で、さらに各ホテルの中で比較したいサービスがあるソート順(価格低い順)に並んでいるようにしたい これを実現…

IndexedDBとは

Firebase Auth を使って認証を行った後、そのユーザがログイン中かどうかを判断するのに Firebase SDK は何を使って判断しているのかを探してみると、 どうやらブラウザ内のIndexedDB内に保存されている情報を利用していることがわかった ところで、このInde…

APIのエラー情報をどう表現すべきか - Problem Details for HTTP APIs

APIを設計していて、APIのエラー情報には何を含めるべきか悩んでいたところ、 エラー情報の標準的な形式は、RFC 7807 - Problem Details for HTTP APIsで定められていることを知った このRFC7807について整理する RFC7807について エラー応答形式を定義した…

CNAME Cloaking とは

medium.com この記事を読んでCNAME Cloakingというものを知ったので整理 CNAMEレコード 正規ホスト名に対する別名を定義するレコード 特定のホスト名を別のドメイン名に転送する時などに利用する CNAME Cloaking インターネット広告会社などがユーザをトラッ…

新しい Cookie 設定 SameSiteの準備を始める

Google Developers Japan: 新しい Cookie 設定 SameSite=None; Secure の準備を始めましょう 上の記事によると、2020年2月リリース予定の Chrome 80 からクッキーのデフォルト挙動が変わるようなので、新しい Cookie 設定 SameSiteの準備を始める そもそも何…

GCPの別プロジェクトにIAM権限をコピーする

GCPにすでにある検証環境プロジェクトをクローンして開発環境プロジェクトをつくる際にIAM権限のコピーを行ったときのメモ 1. コピー元プロジェクトのIAMのエクスポート $ gcloud projects get-iam-policy <プロジェクトID> --format json > IAM.json 2. サ…