コード日進月歩

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

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

RailsのActiveRecordでは add_column するときに after を指定すると追加するカラム位置がコントロールできる

主にMySQL向け 環境 rails (5.0.2) やり方 カラム追加の記述の場合にafterを指定する。 例 name というカラムのあとに profile_text というカラムを足したい場合 class AddColumnHogeHoge < ActiveRecord::Migration[5.0] def change add_column :users, :pr…

色覚多様性(色覚特性)を鑑みた見え方をチェックするときに便利なスマホアプリ「色のシュミレータ」

便利だったのでメモ的に 公式サイト 色のシミュレータ このアプリでできること 公式サイトに記載のある通り 1型(P型)、2型(D型)、3型(T型)の2色覚の色の見えをリアルタイムに確認し、一般型(C型)の色の見えと比較することができます。 - 色のシミュ…

MySQL5.6にてひらがなとカタカナを同一のものとして検索するためにcollationsを使うのはリスクが多いのでメリット・デメリットを把握する

あいまい検索を実装する際に安易に飛びつくとやけどする気がするのでまとめた。 環境 今回はMySQL5.6のドキュメントをベースにしているためそちらの前提で記載しています。 そもそもMySQLのcollationsとは 日本語で表現すると「照合順序」という言葉になり。…

バッファは基本全部使われてしまうという話と「パーキンソンの法則」の関連性についてまとめる

「バッファなんて作ったら結局全部使い切るんだよ」という話はあるがどういう考え方なのか、パーキンソンの法則というキーワードからのざっくりまとめ 出典 第1法則 仕事の量は、完成のために与えられた時間をすべて満たすまで膨張する 第2法則 支出の額は、…

Rubyにおける ! を二重にした !! の使い所

エクスクラメーションマークの重ねがけ、二重のビックリマークなど、読み方が難しいやつ 環境 $ ruby -v ruby 2.6.6p146 (2020-03-31 revision 67876) [x86_64-linux] 効能 明確に true か false にしたいシーンがあるときに ! をかけてtrueかfalseにしてか…

Rails(ActiveSupport)の blank? は false も trueになる

Railsガイドにも乗ってますが、改めてコードを掘り下げて挙動を見る。 環境 $ bin/rails -v Rails 6.0.3.1 挙動 a = true a.blank? #=> false a = "" a.blank? # => true a = false a.blank? # => true ソースコードから読む かなり明快 def blank? respond_…

2020年8月現在、Slack(フリー版を除く)には「スター付き(Stared)」と同じ欄を作る機能がある

会社で有料版使っているのにみんな意外と知らない section の機能のことを雑に書く 出典 カスタムセクションを使用してサイドバーを整理する | Slack 機能的な説明 Staredのメニューの中にsectionを作る項目があるのでそれを押すと下記のような画面が出てく…

ソフト404とは何なのかざっくりまとめる

ソフト404って結局何がどういうことなんだっけ、というざっくりまとめ 出典 ソフト 404 エラー - Search Console ヘルプ 初出(と思われるもの) HTTP 404 - Wikipedia 曰く ソフト404という用語は Sic Transit Gloria Telae : Towards an understanding of …

URLで//(スラッシュスラッシュ)から記述してschema(プロトコル)を省略すると、現在のページのschemaで動く

いい感じにわかる情報がなかったので 出典 RFC 3986 - Uniform Resource Identifier (URI): Generic Syntax 要約 //example.com などと http の部分(schema/プロトコル)を省略して記述した場合は、開いているページのものをそのまま使う。 内容と考え方 // …

GitHubのカバレッジなどのバッチと同じような画像が作れるサイト shields.io

カバレッジバッジとかの画像と似たようなものが自作できるのでメモ サイト Shields.io: Quality metadata badges for open source projects このサイトの便利ポイント 画像生成サイトは数多があるが、このサイトの便利なところはURLで画像の中身を設定できる…

広告在庫の概念がわかりにくいのであっさり味にまとめる

仕入れてないのに在庫って何やねん。という流通視点で行くとだいぶ混乱するので整理 その前の大前提 Web広告においてはエンドユーザーに表示される数がすべての根底にあり、その表示される数のことをインプレッション(略称:imp)と呼ばれる。 Web広告にお…

広告費におけるネット、グロス、マージンとは

いつもわからなくなるので図で書き留めておく 用語 ネット(Net) ベースとなる費用のこと。意味としては「網」の方ではなく「正味」を表す英単語から。 マージン(Margin) 上乗せする手数料費用などの費用のこと グロス(Gross) ネットとマージンを足した総合計…

HTTPヘッダのX-Forwarded-Forとは何か、そしてForwaredとは何かをざっくりまとめる

そもそもXがつくヘッダはどんなものなのか 別の記事でざっくり書いたのでそちらを参照 shinkufencer.hateblo.jp X-Forwarded-Forとは クライアントからレスポンス戻る際にロードバランサーなどの仲介する某かを通る場合がある。そのような場合は純粋に送信元…

RSpec3でbe_trueとbe_falseはなくなり、be_truthyとbe_falsey(be_falsy)になった

変化の経緯がなるほどなーと思ったのでまとめる。 出典 Notable Changes in RSpec 3 解説 RSpec3のリリースノートいわく RSpec 2 had a pair of matchers (be_true and be_false) that mirror Ruby's conditional semantics: be_true would pass for any val…

RFCのMUST/MUST NOT/SHOULD/SHOULD NOT/ MAYに関しては個別に使い方を説明したRFCがある

トリビアの泉みたいな見出し 出典 RFC 2119 - Key words for use in RFCs to Indicate Requirement Levels こちらはIPAの和訳がある Key words for use in RFCs to Indicate Requirement Levels どのようなRFCなのか 特定の大文字英単語(MUST / MUST NOT / …

HTTPヘッダのXから始まるものについての歴史と2020年現在での使い方をざっくりまとめる

もともとX-Forwarded-Forを調べていたが前段としてX-hogehoge(以下X接頭辞)についてまとめる。なお和訳はほとんど powered by Google翻訳 出典 このX接頭辞非推奨についてまとめられているRFC6648にそもそもX接頭辞はどう始まったかも含めてまとまっている…

フラッグシップモデルという言葉をざっくりまとめる

ハイエンドモデルと何が違うんだっけ?ってなるので 語源 語源は海軍用語の旗艦(フラッグシップ)から また、他の多くの海軍用語と同様、「旗艦」「フラグシップ」もほかの用途に転用されて、日常的な用語として使われる。この場合、集団やグループの最も重…

Railsのmigrationでカラムコメントをつけたいときは comment で記述できる

Railsだとmigrateファイルあるからいらんって言われがちだけどつけたいよね、っていうメモ 環境 rails (5.0.2) やり方 カラム指定時に comment: "書きたいコメント" をつければOK 例 class AddColumnHogeHoge < ActiveRecord::Migration[5.0] def change add…

rubyタグは文字以外の要素の上にもふれる

青空文庫を読んでいたら出てきたので「こういうのもあるのか…」というメモ 記述例 例えば以下のように記述する <ruby> <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="5 5 10 10" width="20" height="20"> <circle cx="10" cy="10" r="5" fill="#000" /> </svg> <rp>(</rp><rt>黒円</rt><rp>)</rp> </ruby> そうするとこのように円のsvgの上にルビ…

RubyのArrayなどでfirstは空ならnilを返すことがあるので、気をつけて使おう

Railsだけど、自分の体験した辛さを言語化するシリーズ 要約 messages.first.title とかやるとコケるので、ちゃんとこういうことを考慮した作りにして欲しい。 遭遇した事象 Railsのview上に以下のようなコードがあった <div class="title"> <div id="notifce_message">『<%= @messages.first.title %>』が</div></div>…

AWSのインスタンスにおける バースト / クレジットの考え方をざっくりまとめる

AWS

クレジットを食いつぶす展開、とは何か。 出典 バーストパフォーマンスインスタンスの CPU クレジットとベースライン使用率 - Amazon Elastic Compute Cloud バーストパフォーマンスとは バーストパフォーマンスインスタンスに関して以下のように説明がある …

MacにてWindowsでも文字化けしないzipファイルづくりをGoogleドライブで解決する

フリーソフトだと無駄に変なファイル埋め込まれてないよね…?とか気になってしまうので、Googleがよしなに頑張ったであろう実装を利用する、というソリューション。GSuiteを使っている会社向け。 化ける例 たとえばMacの圧縮機能を使って圧縮したものをメー…

Rubyのsrtftimeにて月や日をゼロパディングしたくない場合はマイナスを使う

ゼロ埋め、いわゆるゼロパディングに関してこういう書きかたがあるとはあんまり知らなかったのでメモ 環境 $ ruby -v ruby 2.3.7p456 (2018-03-28 revision 63024) [universal.x86_64-darwin17] 使い方 以下のように時間を設定する t = Time.new(2001,2,3,4,…

Gitのcheckoutを使って特定のファイルを前の指定されたコミット状態にもどす

Git

よく忘れるのでメモ 環境 $ git --version git version 2.21.1 (Apple Git-122.3) 原理 git checkout [-f|--ours|--theirs|-m|--conflict=< style> ] [< tree-ish >] [--] < pathspec > Overwrite the contents of the files that match the pathspec. When …

PhotoShopにてjsxを使ってpngファイルを保存する

前回の記事 の延長線として、jsxを使ってpngで保存する方法 環境 このスクリプトを試したPhotoShopは以下のバージョン Adobe Photoshop バージョン : 20.0.4 20190227.r.76 2019/02/27: 1205725 x64 書き方 いくつかやり方はあるが、今回紹介するのは export…

Adobe製品におけるのjsxとはなにかをざっくりまとめる

jsxってReactの…ではない。 JSXとは JavaScriptExtendScriptのことで主にPhotoShopで実行できるスクリプトを記載できるJavascript的に記述できる自動スクリプト。 スクリプトはAdobeのドキュメントいわく以下のようなものである。 A script is a series of c…

Dockerを使って手元の環境にRubyやRailsを入れずにrails newした結果を手に入れる

パーフェクトRails読んでたら「まずはDockerイメージを作成する前に、サンプル用のRails アプリケーションを作成しましょう」と出てきたので、それすらも俺はDocker出やりたいんだ!と思ったので頑張ってみた 前提 dockerは使えるが、ローカルのrubyのバージ…

CSSにてスタイルシート内だけで値を数式で割り当てるcalcの使い方

CSS

逆引きのことばを言い換えて記事として残そうシリーズ 出典元 calc() - CSS: カスケーディングスタイルシート | MDN MDNには詳細な記述はないが、InternetExplorer9も部分対応している 記述例 全体の幅よりも20px小さくしたい場合 width: calc(100% - 20px);…

RubyのテンプレートエンジンSlim内でJavaScriptを直接記述し、scriptタグに属性をつける場合の書き方

たまに広告用のタグとかもらったときに書き方忘れているのでメモ。PHPの軽量フレームワークではないです。 環境 slim-template/slimの下記バージョン slim (3.0.9) やり方 属性がいらない場合 javascript: のショートカットが使える javascript: alert('Slim…

日本の地域区分の種類についてざっくり調べる

お店の一覧検索、みたいのを見ていたときにベースラインの区分ってどんなんだっけと調べてみたら、意外と取り決めがなかったのでそのメモ サマリ コード体系化されているのは「都道府県」が一番広い範囲で、それ以上の範囲については一元化されたコードのよ…