コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

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

TC39とはなにかをざっくりまとめる

mozaic.fmを聞いていると登場するが、どのような組織か知らないのでざっくり調べる 出典 TC39 - Ecma International 上記の内容曰く「ECMAScriptを標準化するための専門委員会」。なおECMAは様々な技術委員会を持ち、TC39はそのうちのひとつ。 TC39がやって…

プログラミングにおけるバニラという意味をざっくり調べる

雰囲気で使っていたのでTips的な話。 出典 バニラ (ソフトウェア) - Wikipedia) プログラミングとしてのバニラ 英和辞書で引くと形容詞としては「質素で余分なものや装飾品のない」という内容があり、プログラミングでも似た概念で利用され、「普通」の状態…

JSで時刻操作をする場合、moment.jsは公式にプロジェクトの終了がアナウンスされたので別のものを検討する

表題通り。 元ネタ Moment.js | Docs より We now generally consider Moment to be a legacy project in maintenance mode. It is not dead, but it is indeed done. - 現在では、Momentはメンテナンスモードに入ったレガシープロジェクトであると考えてい…

BigQueryで単一のクエリ内で値を定義して定数のように使い回す

いろんなテーブルをまたいで利用するときに似たようなクエリをつくるのでその時のための機能 前提条件 STANDARD SQLです(記載タイミングでレガシーのほうを使っているほうが稀かなと思いますが念の為) やり方 定数定義のような機構はこの記事を書いている…

RubyのURIクラスを使ってハッシュをクエリ文字列にする、URLからクエリ文字列をハッシュ化する

あんまり直球な情報がないのでメモがてら 環境 $ ruby -v ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19] やり方 URLからハッシュ化 target_url_with_query = "https://example.com?equal_string=ZXhhbXBsZXNleG1hcGxlcw%3D%3D&exa…

BigQueryでJOIN時に各々のテーブルに_TABLE_SUFFIXを適用する方法

イマイチすぐに出てこないのでメモがてら 前提条件 STANDARD SQLです(記載タイミングでレガシーのほうを使っているほうが稀かなと思いますが念の為) そもそも _TABLE_SUFFIX とは こちらに関しては別記事で書いたのでそちらを参考のこと 書き方 カラム名に…

BigQueryで_TABLE_SUFFIXを適用して複数のテーブルを取る

別のことを書きたかったが前提の話題としてまずは切り出して書く。 前提条件 STANDARD SQLです(記載タイミングでレガシーのほうを使っているほうが稀かなと思いますが念の為) 使い所とやり方 BigQueryには同じテーブルでもテーブル名の末尾に日付をつけて…

なぜhttpがだめなのかをざっくりまとめる

わりと当たり前の話なんだけど、当たり前すぎて感覚に近いレベルで認識しているので書き留める インターネットはバケツリレー 大前提、クライアントとサーバがデータのやりとりをするインターネットの機構は各データがクライアントから各種ルータなどを経由…

BigQueryで実行時の内容をYYYYMMDDで取得する方法

割とかんたんな部類なんだけど、毎度ググってしまうのでメモ的なもので。 前提条件 STANDARD SQLです(記載タイミングでレガシーのほうを使っているほうが稀かなと思いますが念の為) やり方 FORMAT_TIMESTAMP("%Y%m%d" ,CURRENT_TIMESTAMP()) 動作原理 CURR…

RubyのCSVクラスでheaders:trueにするとき、空白文字列の扱いに気をつける

要因がわかれば自明だけどわかりづらい、自分の引いたバッドノウハウのメモ。 環境 ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin19] どういうことか headerの文字列一致は空白も含めて行われる、そしてheaderの文字列が存在しな…

URIでパーセントエンコーディングが推奨されない文字を整理する

原理を知っていれば納得な話なんですが、仕様に基づいた整理。 出典 RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax どういうことか RFC3986では予約文字(Reserved Character)と非予約文字(Unreserved Character)という表現で利用できる文字…

URIの自由設定部分で使えない予約された文字

エンコードされる文字列はあるが、具体的に何を含むと面倒なのかを調べる。 出典 URIに利用可能な文字列の定義はRFC3986より RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax 定義 RFC3986の中に、予約文字と非予約文字がある。予約文字とし…

海外にはドラマのためなどの架空の電話番号はあるが、日本にはない

example.com の電話番号版のようなものが存在しないのか調べた TL;DR 日本には明示的に案内されているダミー(フィクションなどに使う用途)の電話番号はない。 日本以外の例 日本以外にはある。 Fictitious telephone number - Wikipedia 各国いろいろな形…

EdgeやSafariは電話番号っぽいものに勝手にハイパーリンクをしてしまうが、制御できるタグがある

サポート範囲がわからなかったのでざっくりまとめる。 TL;DR SafariやEdgeで電話番号と思わしき文字列があると自動でハイパーリンクが設定され、タップすると電話をかけられるようになる。しかしながらそうしてほしくない場面もある。 <meta name="format-detection" content="telephone=no"> を使うとApple系(Safa</meta>…

HTMLのmetaタグのnameに関しては情報がまとまっているページがある

metaのnameに使える文字って何があるのか、というのをざっくりまとめる。 出典 標準メタデータ名 - HTML: HyperText Markup Language | MDN name属性の値の考え方 もともと <meta> のタグ自体はMDNの記載曰く HTML の < meta > 要素は、他のメタ関連要素 (< base ></meta>…

GoogleAnalyticsのセッションとしてCookieの保持期限はデフォルトだと2年で設定される

GoogleAnalyticsは個別のIDなどを降るが、そのIDが同じユーザーとみなす情報の保持期限はどれくらいなのか 出典 Cookie とユーザーの識別 | ウェブ向けアナリティクス(analytics.js) | Google Developers 上記のサイト曰く ヒットが Google アナリティクス…

RFC と Internet Draftの関連性にかんしてざっくりまとめる

どういう流れなのか整理する そもそも RFC(Request For Comment)とInternetDraftとは 直訳すると「コメントを求める」という意味だったが、様々な経緯を経て現在ではIETFの文書シリーズとしての名前として定着している。RFCはインターネットにまつわる様々…

Rubyのpumaのスレッド設定値に関して、妥当な値をドキュメントから整理する

いくつに設定すればいいのかの根拠がわからない方へ 環境 今回参照したGitHubのVersionは 5.2.2 時点のもの。 出典 出典はREADME.md puma/README.md at a99331d32e762c1b9823ab44bed92d622a65b6d3 · puma/puma pumaのスレッド数に関してREADMEには以下のよう…

GoogleTagManager(GTM)を介してGoogleAnalytics(GA)のイベントを直接記述するときは気をつける

GTMを使いながら、GTMを利用せずイベント発火をさせずに手動でGAのイベントを発火させようとするとおかしなことになるので気をつける。 TL;DR GoogleAnalyticsのタグをGTMでセットし、純粋に ga('send') でイベントを送ろうとしてもうまく行かない場合がある…

ActiveRecord::Type::Boolean.new.cast はかなり揺らいだ変換になるので気をつける

昔のPHPを彷彿とさせる変換だったので書き留める 環境 $ bin/rails --version Rails 6.0.3.6 どういうことか ActiveRecord::Type::Boolean.new.cast は引数をtrueあるいはfalseに変換してくれるのだが、変換の基準は以下のものに引っかかるものがfalseになる…

Rubyの生成されたインスタンスのクラスを調べるときはinstance_of?とkind_of?(is_a?)を使い分ける

エイリアスかと思ったら違うのでちゃんと記述する 環境 $ ruby -v ruby 3.0.1p64 (2021-04-05 revision 0fb782ee38) [x86_64-darwin19] 概要 生成されたインスタンスのクラスを調べたいときは instance_of? を使う。継承元のクラスも含めて調べたいときは ki…

ActiveSupportにはモジュール名の一部やクラス名の部分だけを取り出すためのメソッドがある

モジュールの部分はいらないんだけどな…というときに文字列処理をしなくても用意してくれている。 環境 $ bin/rails -v Rails 6.0.3.1 利用例 今回サンプルとして扱うのは以下のようなクラス module Hoge module Piyo class Test def initialize(test: nil) …

テストダブルの種類をざっくりまとめる

自身の記憶整理の文脈でまとめる 出典 テストダブルについては書籍 xUnit Test Patterns にて取り上げられたテストに依存するコンポーネントを置き換えるためのパターンのこと。 Test Double at XUnitPatterns.com なおダブルは2倍のほうの意味ではなく、「…

CSSのロードが遅くてHTMLがちらつくFOUC(Flash of unstyled content)についてざっくりまとめる

日本語情報が無いのでざっくり書いてみる 出典元 Flash of unstyled content - Wikipedia 上記のWikipedia曰く CSS @importルールを使用している一部のページでは、MS Internet ExplorerのWindows版で、スタイル化されていないページのコンテンツが一瞬フラ…

伏せ字表現にはxxxではなく、アスタリスク(*)を使うとよさそう

xxxはスラングとしての意味合いが強いので他の用語を使おうという話 今回考えるケース 個人情報保護の観点で文字列を書き換える場合の話 例えば suzuki.hideo@example.com のようなメアドは個人情報になってしまうので、差し障りのないデータとして扱うとき…