コード日進月歩

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

Rubyのシステム同士でAPI通信するようなアプリを作るときに見たいスライド『Best practices in web API client development』

スライド回顧録です speakerdeck.com マイクロサービシーズが台頭してきた現在、マイクロサービス間での通信をどうするかという話にはなるかなと思うのですがポピュラーなものはHTTPリクエストだと思っています。 その際にRails同士であればある程度gemとし…

大いなるリライトことビッグリライトをざっくりまとめる

用語の意味と背景をざっくりまとめる。 言葉の意味 レガシーソフトウェア改善ガイドに出てくる言葉。この言葉自体に「こういう意味である」というわかりやすい説明は無いが「リライト」という事自体には言及が色々されている。 リライトとは リライトとは、…

Railsでlayoutを使いたくないときは layout false

あ、nilじゃなくてfalseなんだというメモ。 環境 gem 'rails', '= 5.0.2' やり方 Controllerに下記のように書く class HogeController < ApplicationController layout false 利用シーン 考えてみたが全然なく、今回利用した経緯としては 既存のテンプレート…

Railsのcontent_forは別のpartialに記述したものでも動くが、順番や場所によって挙動が変わる

読み込み順番によって変わるやつ。ということで なるべく使わないほうがいい けど動作だけ 環境 rails (5.0.2) 動作概要 通常のviewテンプレートの yield の 記述の前に content_for を 含むpartialを render すれば出てくる。 逆にyield の 記述のあとに co…

Chromeで簡単に全描画部分キャプチャを簡単に撮る方法

JSでガンガンDOM操作するようなページ以外は有効なやり方 やり方 Developer Consoleを開く Run Command (Macだとcommand+shift+P) Capture full size screenshot を選択する 画像が保存される 参考リンク ChromeでWEBページ全体をフルスクリーンショット!見…

ネットの広告の標準仕様を知る際には一度は気にしたいInteractive Advertising Bureau(IAB)に関してざっくりまとめる

標準化団体ではないのですごい雑な感じのタイトルです。 IABとは Wikipedia曰く Interactive Advertising Bureau(IAB)とはオンライン広告における技術的標準規格の策定を始め、動向調査や法整備などを行う組織である。 数多くの企業が加入をしているが、そ…

dockerコンテナからGitHubへセキュアにアクセスするためのやり方

参照サイトのとおりにやればできるんだけど、仕組みの部分を補遺する形のメモ やり方 1. GitHubでaccess_tokenを用意する これはgithubのページから設定とかで取り出してください。 Creating a personal access token for the command line - User Documenta…

Rubyのプログラムでは文字列リテラルはダブルコーテーションで統一したほうがいいのではないかという考え方

かの onkcop には以下のような設定がある # * 式展開したい場合に書き換えるのが面倒 # * 文章ではダブルクォートよりもシングルクォートの方が頻出する # ことから EnforcedStyle: double_quotes 推奨 Style/StringLiterals: EnforcedStyle: double_quotes …

性能テスト、って言いはするけど定義はないのかざっくり調べてみた

無邪気に「性能テスト」って話はでますが、こちらに関しての計測や目標の設定はまちまちなので記載してみた。 性能テストとは 性能テストとは、機器やソフトウェア、システムのテスト(試験)の一種で、要件を満たす性能が出るかどうかを確かめるもの。実際…

『平成Ruby会議』に行ってきたよメモ

平成Ruby会議 01 | 平成.rb に行ってきたのでそのメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 What is expected? speakerdeck.com 感想 Rubyのスクリプトの解析の話 トークナイゼーションとかのプロセス、聞いたことはあったが原理を聞く…

Rubyのモジュールは大文字から始まる必要がある

当たり前の話だが忘れてた マニュアル曰く モジュールを定義します。モジュール名はアルファベットの大文字で始まる識別子です。- クラス/メソッドの定義 - モジュール定義 (Ruby 2.6.0) ありがちな話 Railsにて /tokusyu/201912/special みたいなことを素…

『マスターデータNight #1』に行ってきたよメモ

マスタデータNight #1 - connpass に行ってきたメモ 各発表の感想 ※資料スライドは見つけたら貼ります。 今回のマスターデータの定義 アプリケーションが動くのに必須のデータである 運用中に不特定多数のユーザによって変更されない プログラムとは分離され…

swagger/OpenAPI 3.0で本番と検証用のURLを明示的に示す

ずっと記載分けができないものだと思っていた。 書き方 下記のドキュメントにある。 API Server and Base Path | Swagger serversというセクションがあり、そこは配列指定できるのでそちらを使う。この書き方にすると、SwaggerUIでもアクセス先切り替えがで…

aタグのtargetに使われる_付きの定義に関して、種類をざっくりまとめる

アンダーバー付きの属性に関してtarget="_blank" 以外にもあるんだということを知る。 種類 指定文字列 効能 _self 今の閲覧画面で新しいページを読み込みます。target未指定の場合はコレに相当するので能動的に指定する機会は少ない。 _blank 新しく閲覧画…

swaggere3.0で独自の認証用ヘッダを定義する

例えばカスタムヘッダでそこに認証用のキーを埋め込んでほしい場合などの書き方。OAuthとかBasic認証はあるのだけど、そういうポピュラーなものではなくオリジナルをやりたい場合の例。 書き方 securitySchemes にtypeを apikey にした情報を定義する 利用し…

MySQLの予約語が乗っている一覧のページがある

どっかにあるのかな…と思ったらあった 出典 MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語 知ってると何が嬉しいのか たまに予約語というのは増える、のでそれをカラム名などでつかっているとそこらへんが結構大変なことになる。 参考リンク MyS…

『すえなみチャンス忘年会2019 』に行ってきたよメモ

すえなみチャンス忘年会2019 本編 - connpassにいってきたのメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 美しさでシステムを導く 数理的システム設計 -アレグザンダーと15の幾何学的特性- speakerdeck.com 感想 重力など物理法則レベルで…

RESTの成り立ちに関してざっくり説明するときに使いたいスライド&動画『RESTの力』

RailsやっているとRESTとは…となるのでそのときにみたいスライド speakerdeck.com www.youtube.com RESTがどういう思想で生まれたか、またいまのRESTとどうやってずれていってしまったのかを歴史的敬意含めてしるためにとてもいい資料なので、PHPの人のみな…

OGPのURLタグには計測用のタグは入れないほうがいい

OGPのタグの考え方問題。 TL;DR ページごとにユニークになるようなURLとする。そのため、計測の用途や固有のユーザ別パラメータのようなものは省く。canonical のような感覚。 OpehGraphの仕様曰く The canonical URL of your object that will be used as i…

障害対応の緊急時には定時連絡をしよう

要素として忘れがちなので雑記的な 緊急時対応 緊急時には色々バタバタする トラブルの要因を調べる 一時的な防護柵をはるか、根治かの判断 利用側への周知 社内周知 この中でも「社内周知」がかなり大味になる瞬間がある。 社内周知 実際にトラブルシューテ…

ブルートフォースアタック(総当り攻撃)とは何かざっくりまとめる

プルートフォースではなく、ブルートフォース。さらっとまとめる。 プルートフォースアタック(Brute-force attack)とは 日本語では総当り攻撃と言われ、主にセキュリティの文脈で使われ、有限桁数のパスワードに対して、すべてのパターンをぶつけて虱潰しに…

nginxを使っているサーバのリクエストに関してレンダリング中など表示される前に接続を切ると499となる

いつもyuukiさんの文章に支えられてしまっているのでちゃんと調べる nginxのコード曰く /* * HTTP does not define the code for the case when a client closed * the connection while we are processing its request so we introduce * own code to log s…

MySQLのtimestamp型は2038年問題があるが、datetime型は9999年まで可能。

「MySQLってどれぐらい先まで設定できるんだっけ?」という議論が起こるのでメモ ドキュメント曰く DATETIME または TIMESTAMP 値には、マイクロ秒 (6 桁) までの精度で後続の小数秒部分を含めることができます。特に、MySQL 5.6.4 以降では、DATETIME また…

レインボーテーブルの出典と意味ざっくりまとめる

語源含め 意味 平文とあるハッシュ値の組わせを用意し、そのリストと総当りでもとの平文を見つけ出すという手法のことを指す。 出典 レインボーテーブルに関する論文にて以下のような記述がある The main limitation of the original scheme is the fact tha…

『BPStudy#147〜いまどきのアプリケーションアーキテクチャはどうあるべきか』に行ってきたよメモ

BPStudy#147〜いまどきのアプリケーションアーキテクチャはどうあるべきか に行ってきたのでそのメモです。 各発表の感想 ※資料スライドは見つけたら貼ります。 アプリケーションアーキテクチャの現在・過去・未来 アプリケーションアーキテクチャの現在、過…

Railsコンソールでの実行をシェルからワンライナーで行うときに使える runner

よく忘れるのでメモ 環境 $ bin/rails -v Rails 5.2.2 使う機能 runnerコマンドを使うと、非対話的にRailsの文脈でRubyのコードを実行することができます。 - Rails のコマンドラインツール - Rails ガイド - 1.6 rails runner 使い方 $ bin/rails r "p User…

『Classi Rails Night #1』に行ってきたよメモ

Classi Rails Night #1 に行ってきたのでそのメモ 各発表の感想 ※資料スライドは見つけたら貼ります。 『初めてのプログラミングがRails』なジュニアエンジニアに伝えていること スライドリンクはなさそう 感想 Railsアプリから入ったひとへのアドバイス的な…

swaggerのJSONからyamlの形式に作り直す

swaggerのJSONからyamlへの変換方法を考えたが、これが一番楽だということに気づく やり方 YAMLに置き換えたいJSONを用意する Swagger Editorにアクセス File から Import file する YAMLができあがる 注意点 バージョン違いのswaggerで作られたJSON出力を読…

『決定回避の法則』に関してざっくりまとめてみる

「選択回避の法則」とか書かれていたり、「決定回避の法則」と書かれていたり、表記ブレが激しすぎたのでまとめてみる (広く知れ渡った)元ネタ もともとはプリンストン大学心理学部のエルダー・シャフィール教授が大和証券のCMで出てきて語ったのが元ネタの…

品質と実装速度がトレードオフではないことを説明するときに使いたいスライド「質とスピード」

また名作スライドがでてきたな、という感じ speakerdeck.com この資料ではよく語られる「急ぐのでコードは適当です」という一見トレードオフのように見える要素は実はそうではないというのをいろいろなところの情報を集約したもの。 質を犠牲にすればスピー…