About Cosense
Help
Log in
らぎメモ
g
R
P
C
G
o
o
g
l
e
が
開
発
し
た
R
P
C
フ
レ
ー
ム
ワ
ー
ク
.
P
r
o
t
o
c
o
l
B
u
f
f
e
r
s
に
対
応
し
て
い
る
.
H
T
T
P
/
2
で
動
作
す
る
.
呼
び
出
す
関
数
を
パ
ス
で
指
定
引
数
を
リ
ク
エ
ス
ト
ボ
デ
ィ
で
指
定
返
り
値
は
レ
ス
ポ
ン
ス
ボ
デ
ィ
と
し
て
受
け
取
る
や
り
取
り
す
る
値
は
P
r
o
t
o
c
o
l
B
u
f
f
e
r
s
で
シ
リ
ア
ラ
イ
ズ
し
た
も
の
を
用
い
る
4
種
類
あ
る
U
n
a
r
y
R
P
C
1
つ
リ
ク
エ
ス
ト
し
た
ら
1
つ
レ
ス
ポ
ン
ス
が
返
っ
て
く
る
R
P
C
S
e
r
v
e
r
s
t
r
e
a
m
i
n
g
R
P
C
1
つ
リ
ク
エ
ス
ト
を
し
た
ら
た
く
さ
ん
レ
ス
ポ
ン
ス
が
返
っ
て
く
る
.
C
l
i
e
n
t
s
t
r
e
a
m
i
n
g
R
P
C
た
く
さ
ん
リ
ク
エ
ス
ト
し
た
ら
1
つ
レ
ス
ポ
ン
ス
が
返
っ
て
く
る
.
B
i
d
i
r
e
c
t
i
o
n
a
l
s
t
r
e
a
m
i
n
g
R
P
C
た
く
さ
ん
リ
ク
エ
ス
ト
し
た
ら
た
く
さ
ん
レ
ス
ポ
ン
ス
が
返
っ
て
く
る
.
Related
Sort by
Related
Modified
Created
Last visited
Most linked
Page rank
Title
Links
Protocol Buffers
[Google]が[オープンソース]で開発している,[XML]より軽量でシンプルな[インタフェース記述言語].[Cookpad]では[Protocol Buffers]の定義を1つの[リポジトリ]にまとめている.[サービス]ごとに[ディレクトリ]を切っている.[アプリケーション]が使用する時には,[git submodule]で持ってきて[コード]を生成する.[Protocol Buffers]に対して[Linter]が入っている.
RPC
Remote Procedure Call別の場所・別の[プログラム]に存在する[関数]を[コール]するぞという仕組み
HTTP/2
[Google]が考案した[SPDY]という[プロトコル]をもとに[2015年]に[RFC_7540]として[標準化]された.[HTTP/1.1]との[互換性]のもと[通信]の[高速化]や[ネットワーク帯域]の[効率化]が達成されている.[TCPコネクション]の上で[並列処理]することで[Head-of-Line-Blocking問題]に対応した.各[スレッド]を[ストリーム]として管理する.実際に[並列]に送信しているわけではない.
サーバリフレクション
[シリアライズ]のために必要な[情報]を[リクエスト]先の[サーバ]から取得すること.主に[gRPC]で[grpcurl]などの際に,[シリアライズ]のために用いられる.
k6
[Grafana Labs]が公開している[負荷試験]のための[OSS].[開発者]が使いやすい[API]を備えた[CLI]を提供[JavaScript]で[シナリオ]を記述可能[実行エンジン]は[Go][Cookie]を利用できるため,[セッション]情報の利用なども含め自然に[シナリオ]を記述できる.
HTTP
Hypertext Transfer Protocol[1996年]: [HTTP_1.0][1997年]: [HTTP/1.1][2015年]: [HTTP/2][ハイパーテキスト]を転送するための[プロトコル].
xDS API
x Discovery Service[プロキシ]に設定を動的に配信するための[API].設定の変更のたびに[プロキシ]の[コンテナ]を[ビルド]したり[再起動]したりする必要がなくなる.設定を配信する[サーバ]を[コントロールプレーン]と呼ぶ.[Protocol Buffers]を用いて[gRPC]の[サービス]として定義されている.
Ringo反省点
[マスタデータ]は[マスタデータ]のみで[配信]して[クライアント]に[キャッシュ]してもらう仕組みがよかったかも.[設計]がもっと[シンプル]になってたはず.結局最大量とかの[検証]で[マスタデータ]を見る必要があるから大して変わらんかもプロジェクト名を[kebab-case]にするべき[プロジェクト名]にも[命名規則]の気を払う
Ringoやること
[フロントエンド]どうせ[Unity]でやるんだから諦めて作業着手する[バックエンド][ランキング]の記録[gRPC]対応
インタセプタ
[gRPC]において、[ミドルウェア]を指す.
gRPCのエラー表現
[メソッド]の呼び出しが成功した時点で[レスポンスコード]としては[200(OK)]を返す.[gRPC]が[HTTP]上に実装されていることを意識する必要がないように,[HTTP]の[ステータスコード]や[メソッド]には依存しない[設計]になっている.
Google
達人が教えるWebパフォーマンスチューニング
[[1 [チューニング]の基礎知識]][Webサイト]の[パフォーマンス]の低下は[ユーザ]の離脱につながる.[Google]は[Core Web Vitals]を[検索順位]に考慮している.[SEO]の観点からも[Core Web Vitals]が重要.[RTT]を短くすることが目標と[定義]できる.
Well Known Types
[Google]が[Protocol Buffers]向けに提供している,[ビルドイン]でないがよく使われると考えられる[型]をまとめた[パッケージ].[時刻]や[empty]などを提供している
QUIC
Quick [UDP] Internet Connections[Google]によって考案された[UDP]上で動作する[プロトコル].[TCP]のような[信頼性]と[TLS]のような安全性を持ちながら[HTTP]で通信できる.[TLS_1.3]が採用されている.[UDP]を採用していながら,[TCP]と同様に[信頼性]がある.[TCP]と同様に[ACK]を行う.
Material UI
[Google]の[Material Design]をベースに開発された[UIコンポーネントライブラリ].変化や更新が激しいという難しさがある[2025年]として若干トレンドでない[拡張性]が低い
utmパラメータ
Urchin Tracking Module[Google Analytics]などで用いられている[クエリパラメータ][utm_source]: 具体的な流入元を示す[facebook]・[twitter]・[blog]など[utm_medium]: [メディア]の種類を示す
AI兵器
[Google]は[AI兵器]に関わらないという[声明]を発表している[Microsoft]および[Amazon]は[防災]などの観点から価値があるとして積極的な姿勢である.
Transformer
[2017年]に[Google]を中心に発表された[論文]で提案された手法.[単語]と[単語]の関係性を,[単語]の位置を考慮して広範囲にわたって[学習]することで[文脈]や[ニュアンス]を考慮した[単語]の意味を取り扱うことができ,また[学習]の効率も向上した.[Transformer]に基づいた[LLM]の性能は[リソース]や[データ]量の制約さえなければ[パラメータ]の個数を多くするほど性能向上するとしている.
DeepLab
[セマンティックセグメンテーション]の手法.[Atrous convolution]( [Dilation Convolution] )も特徴の一つである.[Depthwise Separable Convolution]も採用している.[Google]が[開発]した.
PaLM
[Google]が開発した[言語生成モデル].[GPT]と同様に高度な[自然言語処理]を実現している.
BERT
Bidirectional Encoder Representations from Transformers[Google]が[開発]した[事前学習モデル].[Transformer]の[エンコーダ]を利用している.[MLM]と[NSP]を用いて[事前学習]を行う.[MLM]では[文]全体構造は見えているため,[時系列]的な[学習]を行う[言語モデル]より強力であると期待される.さまざまな応用がある
TPU
[Google]が開発した[GPGPU].Tensor Processing Unit[テンソル計算]に[最適化]されている.
Google翻訳
[2016年]に[Google]が発表した[ニューラル機械翻訳]を用いた[機械翻訳].
google/wire
[Google]が[開発]する[Go]向けの[DIライブラリ].[静的解析]の恩恵が得られる点が他の[Go向けDIライブラリ]に優位な点[メンテナンスフェーズ]のため今後の[Go]の[バージョン]にどれだけ追従するかは不明
ページエクスペリエンス
[Google]が[検索順位]を考慮する際に算出するスコア.[Core Web Vitals]も考慮されている.
Amazon Cognito
ESLintのスタイル選択
出典: https://delicateprogrammer.com/airbnb-vs-standard/[ESLint]が従う[コーディング規約]は[Airbnb]と[Standard]と[Google]から一般に選択となるが,[Google]は採用率が低いので実質的に2択.[asRagi.icon][Airbnb]が好み[[[Airbnb]]][セミコロン]が必要.
Material Design
[Google]が自社の[サービス]を提供するために用いている[デザインシステム].各社が[Material Design]に沿って[デザイン]することで[スマートフォン]単位での一貫した[UI]体験が可能になる.
PageSpeed Insights
[Google]が提供する,[パフォーマンス]を計測してくれる[サービス].
Colaboratory
[Google]が提供している,[ブラウザ]から[Python]を記述し実行できる[Webサービス].
Google Summer of Code
[Google]が[スポンサー]として提供する,開発を拡大したい[OSS][プロジェクト]と[学生]を[マッチング]し,[メンター]の元で[学生]が[開発]を行うことで報酬を得る仕組み.
google-web-oauth
[Google API]を利用して[Google]の[アカウント]で[OAuth]を行う[PAM].
集合天才
collective genius[Google]によって提唱される概念.[デザインスプリント]: [集合天才]を[プロセス]によって生み出す試み.[ブレインストーミング]の利用など[アイデア]をとにかく出す.
RPC
MLAPI
[オブジェクト]を[同期]する仕組みを提供する[Unity]の機能[Transform][変数][RPC][マッチング]機能はない.
フレームワーク
.NETのクラスライブラリ設計 改訂新版
[2021年]に発売された[.NET]の[クラスライブラリ]の[設計]に関する[書籍].[[第1章]]よく設計された[フレームワーク]は単純である.[クライアントファーストプログラミング][ミーティング]の[コスト]を見積もることができる.
ドメイン駆動設計
別名: [ドメイン駆動開発][GoFデザインパターン]など様々な知見の集積.[テスト駆動開発]を用いる.[ヘキサゴナルアーキテクチャ]が特徴的.かつては[階層化アーキテクチャ]が推奨されていた.
@testing-library/dom
[DOM]に特化した低レベルAPI群を提供する[ライブラリ][React]や[Vue.js]などに依存せず,純粋な[DOM]を対象としたユーティリティを提供する.[@testing-library/react]や[@testing-library/vue]などの上位[ラッパ]はこれを内部で利用している.[DOM要素]の検索や検証のための関数群(例:[getByRole],[queryByText])を提供する.
Express
[Node.js]による[サーバ]構築をよりスムーズに行う[フレームワーク].
yasoba技術検討
[yasoba]で使いたい[技術]のリストとその検討[[全体]][asRagi.icon]そもそも何の[言語]で書こう..............[フレームワーク][要件]
gomock
[uber-go/mock]でもある.[モック]を作成する[フレームワーク].[mockgen]によって[gomock]を用いた[interface]の[モック]実装を生成できる
Gravitonへの移行ステップ
[アプリケーション]の周辺の情報の整理[フレームワーク]や[ライブラリ]それぞれが[ARM]に対応しているか[コンパイラ]や[テストツール]はどうか[コンテナ]の[OS]が[ARM]を[サポート]しているか[Porting Advisor for Graviton]を用いると推奨[バージョン]などを提案してくれる
ゲームのフロントエンド開発フレームワーク検討
[Unity][C#]が楽しく書けなそう[Unity]が占める割合が大きくて[フレームワーク]依存度が高い[3Dゲーム]を前提としているそれはそれとして[Unity]の知見は欲しい
Hugo
[HTML]や[RSS]を自動で生成してくれる[Webサイト構築フレームワーク].[Go]で実装されている.[テーマ]が豊富ただし[メンテナンス]の手が回っておらず,使っている[テーマ]が[メンテナンス]対象から外れる場合がある.[プルリクエスト]を送ってもあんまり読まれない
MAUIと他のフレームワークの比較
[マルチプラットフォーム]の[フレームワーク]としては[Flutter]や[React Native]がある.[.NET MAUI]自体は[Xamarin.Forms]の後継にあたる.[C#]または[F#],[Visual Basic]で[クラスライブラリ]を記述できる.[Flutter]と[React Native]は[MVU]が採用されている.[Flutter]
Comet
[MVU]を実現する[フレームワーク].
Prism
[MVVM]を実現する[フレームワーク].各[プラットフォーム]に対応した[ライブラリ]が存在する.[.NET MAUI]では[Prism.Core]を用いる.
gin
Revel
[Go]で[Webアプリケーション]を開発するための[フレームワーク].[Ruby_on_Rails]のようにすべてが搭載されている.#Goライブラリ
Unity 2021アップデートまとめ
[CEDEC 2021]での[講演][Scene View]が刷新されスッキリした.[Unity Editor]の[QoL]が向上した.[Visual Scripting]が完全に統合された.[Device Simulator]が完全に統合された.
Next.js
Blazor
[JavaScript]で通常記述する[Webブラウザ]での[フロントエンド]を,[C#]で記述できる[フレームワーク].[Blazor Server]: [サーバサイド]で[DOM]を置き換える.[サーバ]と[ブラウザ]間は[ASP.NET Core SignalR]が用いられる.[Blazor WebAssemply]: [ブラウザ]で動作する.
ASP.NET
[.NET Framework]環境で動作する[C#]の[Webアプリケーション][フレームワーク].[マルチプラットフォーム]対応のため[ASP.NET Core]が生まれた.
Ionic
プログレッシブフレームワーク
[ライブラリ]を部分的に取り入れられる[フレームワーク]であること.段階的な[スケール]を可能にする.
ナレッジマネジメント
個人の[暗黙知]を[形式知]に変換し[ナレッジ]の共有を測ること.[フレームワーク]として[SECIモデル]がある.[共同化]: Socialization[表出化]: Externalization[結合化]: Combination
内部統制
[組織]の体制を[企業]が自ら[構築]し[運用]する仕組み.[内部監査]と密接な関係がある.[内部統制]の世界標準の[フレームワーク]として[COSO]がある.[日本]における[内部統制]の枠組みでは次の4つの目的の達成を意義としている.[業務]の[有効性]及び[効率性]の向上
Protocol Buffers
gob
[Go]が[Go標準パッケージ]で提供している独自の[エンコーディング][バイナリ]のため効率に優れる[自己言及的]である[Go]から特別な宣言なしに利用できる[Protocol Buffers]の学びを取り込んでいる
HTTP/2
Webを加速するQUICとHTTP/3
[CEDEC 2021]での[fastly]による[講演].[[[HTTP/3]とは]]従来の[HTTP/2]までが[TCP]や[TLS]上で動作していたものを[QUIC]上で動くようにしたもの.[暗号化]の機能も取り込んでいる.発表時点で[Edge],[FireFox],[Chrome]が対応済み.
フレーム
[HTTP/2]などで用いられている[データ]の分割[単位].
HTTPSレコード
[Aレコード]のように[IPアドレス]を返しつつ,[HTTP/2]や[HTTP/3]などの[プロトコル]も指定できる.[サーバ]に接続する際に[クライアント]が[HTTP]で接続を試行する場合に[脆弱性]があるが,[HTTPSレコード]によって[名前解決]の時点で[クライアント]が適切な[プロトコル]を知ることができる.[2020年]に定義された新しい[リソースレコード].
Go 1.21
[2023年]に[リリース]された[Go]の[バージョン].[ビルトイン関数]として[max],[min]が追加された.[ビルトイン関数]として[clear]が追加される.[PGO]の導入[panic]時に[recover]が[nil]を返さないようになった
WEB+DB PRESS vol.123
[縁の下のUIデザイン_25][漫画から学ぶマネジメント_2][AIのこれまでとこれから Last][[[HTTP/3]入門]][HTTP/1.1]の仕様では[セマンティクス]と[フォーマット]が合わせて定義されていたが,現在分離する作業が行われている.
関数
Goの好きなとこと嫌いなとこ
[asRagi.icon]好きなとこ[静的型付け]を採用しており[静的解析]に強い[型推論]も簡潔な[構文]で[ストレスフリー][type alias]も簡潔で良い[プリミティブ型]を用いた[ValueObject]とかも`type UserId string`くらい書いておけば良い
アロー関数
[ES2015]で導入された[関数]を短く書ける[構文].[[[JavaScript]]]明示的に[返り値]の[型]を[void]と宣言することで[返り値]をなくすことができる.[引数]が1つの場合は`()`を省略できる.`const reducer = (state, action) => void state.push(action.payload);`
Goroutines
[関数]を[並行処理]で走らせる[Go]の機能.[バグ]を避けるためのがんばり[Goroutines]より広い[スコープ]の[変数]を参照しない[引数]に[値]を[代入]して渡す.[データ]をやりとりする際は[チャネル]の利用と[sync.Mutex]などの[メモリロック]によって[メモリ共有]を行ってやりとりする手段とが考えられる.
関数型言語
[オブジェクト指向]の次の技術として注目されている.[関数]で[プログラム]を組み上げる.全ての[式]は[値]を返す.[戻り値]は最後に評価した[式]になるため,[return文]を持たない.[関数]は[値]である.
高階関数
[関数]を[引数]として受ける[関数],または[関数]を[返り値]とする[関数].
第一級関数
[関数]を[変数]に格納したり,他の[関数]の[引数]にしたり,[返り値]にできる[プログラミング言語]の性質あるいは[関数]のことを指す[言葉].
Go
JavaScriptの関数を極める
[SoftwareDesign2022-2]の特集.[式]として[関数]を表現する[関数式]がある.[関数式]に与える命名は[再帰関数]を描く際に活用される.[アロー関数]は[引数]が1つの場合は`()`を省略できる.処理内容の[return文]を省略する書き方を[簡潔文体]と呼ぶ.
第一級オブジェクト
[式]の中に現れたり[変数]に[代入]したり[関数]の[引数]にできたりするもの.
React.memo
[Reactコンポーネント]を[メモ化]して不必要な[レンダリング]を回避する機能.[props]が同一なら[レンダリング]されないようになる.[関数]は[レンダリング]のたびに生成され,同一ではないため,[useCallback]を利用して[関数]も[メモ化]する必要がある.第二[引数]に比較[関数]を入れることで[ShallowCopy]でない場合でも[等価性]を[定義]できる.ただし[保守性]が低下するため,存在は忘れて良い.
契約プログラミング
[設計パターン]のひとつ.[事前条件][関数]の開始時に,呼び出し側が保証するべき[条件].[コンストラクタ]による[バリデーション].[事後条件]
SQLパフォーマンス詳解
https://use-the-index-luke.com/ja[[前書き]][SQL]では「何が欲しいか」だけ書き,「どう機能するか」を見ないで済むので嬉しい.[パフォーマンス]が問題になる場合にむしろ逆効果になっている.[インデックス]を正しく貼ることがとにかく大事.
自動ベクトル化
Auto Vectorization[ループ展開]などによって[最適化]する仕組み.条件を満たすことで[コンパイラ]が自動的に[最適化]してくれる.実際に[SIMD]化されるか[逆アセンブル]によって確認しながら行うとよい.[[条件]]
ループベクタライザ
[関数]の[ループ展開]を自動で行う[ベクトル最適化]意図的に利用したい場合,[コンパイラ]の[ベクタライザ]に検知してもらいやすい記法を用いる必要がある.[値]の[for文],[while文],[do-while文][ループ]内に[switch文]がある場合は対象とならない.[ループ]回数は2の乗数回であると[ループ展開]の効率が良い.
ReturnType
[関数]の[戻り値]の[型]を抽出する機能を持つ[TypeScript]の[組み込み型]の1つ[ジェネリック型]として使用され[型パラメータ]として[関数型]を受け取る`type user = ReturnType<typeof findUser>`
アスペクト指向プログラミング
別名: [AOP][オブジェクト指向]の次の[トレンド]として注目されていた技術.[ロギング]や[トランザクション]など[アプリケーション]の様々な部分に作用する共通な処理を[横断的関心]と呼び,[アスペクト]として独立して記述することで[ソフトウェア]の柔軟性を向上させることを目的とする.[オブジェクト指向]では[横断的関心]は[プログラム]のあちこちに分散してしまう.[横断的関心]を[コード]の外部に独立して管理し,外部から与える.
useCallback
[メモ化]した[コールバック][関数]を返す[Hooks API].[useCallback]を利用しない[コールバック]は[FunctionalComponent]が再描画されるたびに[関数インスタンス]を生成して[イベント]として[バインド]されてしまう.[useCallback]を用いると[関数インスタンス]を生成せずに再描画後も再利用する.[useMemo]も同様だが,[メモ化]のコストが[再生成]のコストを下回るかどうかは検討する必要がある.
Optional Call
[TypeScript]の機能で,[関数]が[undefined]でなければ実行し,[undefined]であれば何もしないもの.`// do が undefined かどうかを見ている``something.do?.(args)`[オプショナルコール]
TypeScript/voidは戻り値を無視するということ
[TypeScript]の[void]型は「[戻り値]を無視する[型]」であり、[関数]が何も返さないことを保証するものではない。[void] の関数内で `return funcB();` のように書いてもエラーにならない`funcB` の戻り値が [void] 以外でも、呼び出し元では無視される実質的に `return undefined;` と同じ扱いになる`noImplicitReturns: true` を設定すると、不要な `return` に警告が出せる
RequestHandler
[Express]で用いられている[ハンドラ]`(req, res, next) =>`のような形になっている.`next`については[ルータ]に複数登録されたアクションのうち,次のアクションを開始する[関数]となっている.
サポートベクターマシン
[SVM]とも言われる.異なる[クラス]の各[データ]点との距離が最大になる境界線を求めることで[パターン分類]を行うもの.この境界線を求めることを[マージン最大化]という.境界線と最も近い[データ]を[サポートベクトル]と呼ぶ.扱うデータが[高次元]である場合や,[線形分類]できない場合も想定する必要がある.
過学習
[過剰適合]・[オーバーフィッティング]ともいう[過学習]の原因[特徴量]が[データ]数に対して多い本質でない[データ]まで合うように[学習]しようとすること[モデル]の[関数]が複雑である
パス
gobuster
特定の[ドメイン]で有効な[パス]を洗い出す[ツール].`gobuster -u http://fakebank.com -w wordlist.txt dir`
攻撃の手順メモ
[nmap]を用いて[ポートスキャン]を行う[gobuster]などで有効な[パス]を見つける
MAUIにおけるファイル操作
[.NET MAUI]の[マルチプラットフォーム]性を活かすため,例えば[ドキュメントフォルダ]の[参照]には`Environment.SpecialFolder.MyDocuments`の[変数]を用いることであらゆる[環境]での[パス]の違いを吸収できる.`SpecialFolder.CommonDocuments`は[Android][環境]では[空文字列]が返ってくるなど,一部存在しない.
ディレクトリトラバーサル
[管理者]の意図しない[パス]で[サーバ]内の[ファイル]を指定することで[ファイル]を不正に閲覧する[攻撃].[アクセス権限]の指定などで対応する.
リクエストライン
[リクエスト]に含まれる情報.`GET / HTTP/1.1``GET`[HTTPメソッド]`/`
引数
アサーション
特定の[行]において必ず成立しなくてはならない[条件]を示したもの.[バリデーション]では[引数]が正しいかどうかは[アサーション]によって[エラー]を起こして[終了]させるのではなく,適切に[エラー]を返して[呼び出し元]に伝える必要がある.[正当性]が確認されたはずの[値]について[テスト]として書かれるものである.「ここで[値]はこうなっているはずである」という[表現]のため,[コメント]として有効である.
スタブ
切り株,半券,残りなどの意味を持つ単語.ある[モジュール]の動作を[テスト]する際に呼び出し先の下位[モジュール]の代わりとなる空の[モジュール]を指す.[スタブ]の実装例として,[引数]や[返り値]の[型]は本物と同様であるが,内部で処理を行わず,想定される[返り値]を定数として返すものがある.反対に,空の上位[モジュール]を用意する場合,[ドライバ]と呼ばれる.
Node 20
[Node.js]の[バージョン][Permission Model][ファイルシステムアクセス],[子プロセス起動],[ワーカースレッド]などを制限する実験的な[パーミッションモデル]が導入された.有効化には慎重な設定が必要使用例:[--experimental-permission],[--allow-fs-read]
dotenv-cli
[リポジトリ]の[.env]を[環境変数]として与えつつ[引数]の[コマンド]を実行する[ツール]
Goにおけるcontext
[Go]における[context]の取り扱い.[チャネル]だけでは実現が困難な[Goroutines]間での情報のやり取りを,「[キャンセル]」「[タイムアウト]」「[リクエストスコープ値]」に絞って実現する仕組み.`context.Background()`で空の[context]を生成する.これは生成する場合.多くの場合は[引数]などから[context]が降ってくる.
Goで正規表現を扱う
[Go]で提供されている[Goパッケージ]の[regexp]を利用する.`Compile()``で[文字列]から[正規表現]の[クラス]とする`MustCompile()`を利用することで[引数]の[文字列]が[正規表現]として不適な場合に[panic]としてくれる.`import (``"fmt"`
MAUIにおけるルーティング
[.NET MAUI]においては[NavigationPage]の利用と[ShellContent]の利用の2パターンの[ルーティング]がある.2種を混在させることもある.[ViewModel]の[データ]を遷移先の[画面]に渡す方法は以下の2通りが主流.次の[画面]の[ViewModel]の[コンストラクタ]に[引数]として渡す.[BindingContext]に対して[ViewModel]を渡す.
副作用フック
[FunctionalComponent]中で[副作用]を実行するための[React Hooks].https://ja.reactjs.org/docs/hooks-effect.html[Reactコンポーネント]の内部から[外部データ]の取得や[購読],手動による[DOM]更新などの際に,他の[コンポーネント]に影響したりする.また[レンダリング]中に実行することができないことを[React]は[副作用]と呼んでいる.
React.FC
[引数]の[型]を指定できる.#React
C#9.0
デメテルの法則
別名: [最小知識の原則][オブジェクト指向]における[設計]の[ガイドライン]のひとつ.[オブジェクト]自身[引数]として渡された[オブジェクト][インスタンス][変数]
DTO
Data Transfar Object[データ]の受け渡しに用いられる[オブジェクト].[POSO]も同じ概念?[DTO]は[プリミティブ型]のみを用いて構成する.[完全コンストラクタパターン]を用いる.
progress
[プロセス]の進捗状況を表示する[UNIX/Linuxコマンド].[引数]などで渡さないでも後から実行できる利便性がある.[mv], [dd], [rsync]など様々な[コマンド]に対応している.[watch]と組み合わせることで[サーバ]を[監視]できる.`$ watch -n1 progress -p`
Stream API
[Java 8]から導入された機能で,[ストリーム]に対して[ラムダ式]で処理を行うもの.[list]や[配列]から[Streamオブジェクト]を生成する.中間処理には次のようなものがある.[filter][map]
モジュール結合度
[モジュール]間の関連性の強さを表すもの.[結合度]が強いものから下に列挙する.[内容結合][絶対番地]を用いて直接相手[モジュール]を参照する.[共通結合]
モジュール強度
別名: [結束性][モジュール]内を構成する要素の関連性の強さを表すもの.強度の低いものから,[暗号的強度][プログラム]を単純に分割したもの.
Dockerfile
[Docker]の[コンテナ]の設計図.[コマンド]と[引数]を順番に並べ,`docker image build`から実行すると[Dockerイメージ]が生成される.`FROM`ベース[イメージ]の指定`RUN`
リクエストボディ
PUT
主に[リソース]に[置換]に利用されている.[UPSERT]な振る舞いを期待する.このため[冪等性]がある.[リクエストボディ]によって[パラメータ]を指定する`PUT /articles/12 HTTP/1.1`
APIでパラメータを受ける
選択肢は主に以下の3つ[クエリパラメータ][GET][ソート],[ページング]などでも他には[認証]系など
返り値
createSlice
内部で[createReducer]を利用している.`const todosSlice = createSlice({``name: 'todos',``initialState: [],``// 外部で宣言されたReducerを追加しても良い`
アプリケーションサービス
[ドメインオブジェクト]を協調させて[ユースケース]を実現する.[CRUD]など.取得処理において,[返り値]を[ドメインオブジェクト]にすると,[クライアント]が[ドメインオブジェクト]の[メソッド]を呼び出せてしまい,意図しない利用をされる危険性がある.[ドメインオブジェクト]への[依存]が大きくなる.[DTO]を用いて[クライアント]に返却するのがおすすめ.
Named Return Value
[Go]では[返り値]に名前を指定することで[return]に[変数]を与えずに返せるが,[可読性]の問題がある.
std::find()
std::find( first, last, value ) は[イテレータ]のfirstからlastまでを精査し,valueと等しいものがあればその[イテレータ]を返し,なければlastの[イテレータ]を返す.探したい要素があるかどうかを調べたければ,[返り値]がlastと等しいかどうかを見ればよい.#C++ #std
値
サーバーコードレス!?クライアント中心のモバイルゲーム開発
[CEDEC_2020]での発表.一般的には[クライアント][ゲーム]内資産を直接改変できない[サーバ]の[API]を叩いて資産を変更する.
CFG
Classifier-Free Guidance[Stable Diffusion]において[プロンプト]にどれだけ忠実に従うかを示す[値]
グローバルオブジェクトの既定値に対して型だけを与える
`declare var`は、[グローバルオブジェクト](=[window])にすでにある[値]に対して[型]だけを与えたいときに使う.[JavaScript]において[declare]は[型定義]だけを提供するための[キーワード]で実際の[実装]は存在しないものとみなされる.[let]や[const]は実際に[値]を持つ[変数]として扱われるため`declare let`や`declare const`では[グローバルスコープ]の[型定義]として機能しない.
全結合層
[層]に[入力]された[特徴]に[重み]をかけて[総和]した[値]を[ユニット]の[値]とする[ニューラルネットワーク]の手法.[重み]の数が固定されるため,[入力]の数を固定する必要がある.[畳み込み層]や[プーリング層]は[入力]が[可変][FCN]のような[全結合層]を持たない[モデル]は[入力]が[可変]になる.
Unpooling
[最大値プーリング]の際に[最大値]の一を保持しておき,[アップサンプリング]の際にその[値]だけをその位置に復元する手法.
SMOTE
Synthetic Minority Oversampling Technique[オーバーサンプリング]の手法.少ない[クラス]を,[値]が近い[データ]から予測することで[データ]を増やす.
畳み込み層
[畳み込みニューラルネットワーク]において[フィルタ]を用いて[畳み込み]を行う[層].[フィルタ]の[値]も[誤差逆伝播法]を用いて[学習]される.[特徴マップ]は[畳み込み]によって小さくなるが,小さくなった分外側に[ゼロ埋め]する処理を[パディング処理]という.[フィルタ]を重ねる位置のずらし幅を[ストライド]という.
誤差逆伝播法
[ニューラルネットワーク]の各層の[値]にはそれより前の層の[値]が含まれていることを利用して計算を再利用することで[誤差関数]の最小化を効率よく達成するもの.[連鎖律]を利用する[ニューラルネットワーク]の[学習]において,[勾配降下法]などでは[計算コスト]が課題だった部分を解決した.[副作用]として計算過程で[ニューロン]ごとの[勾配値]が求められるため,[信用割当問題]を解決した.[誤差逆伝播法]によって新たに[勾配消失問題]や[勾配爆発問題]が現れてきた.
ハイパーパラメータチューニング
[ハイパーパラメータ]を調整すること.[グリッドサーチ]複数の[値]の候補を指定してすべて試して検討する方法[ランダムサーチ]特定の範囲の[値]を[ランダム]に選択して検討する方法
ハイパーパラメータ
[機械学習]において,[モデル]の振る舞いを決定づけるものの[学習]によって得ることができない[値].
単純パーセプトロン
複数の[入力]から1つの[出力]を行うという[ニューラルネットワーク]の[モデル].[入力層]と[出力層]のつながりを[重み]として表現する層の間を伝播させる調整を[活性化関数]という[出力]は0から1の[値]とするため,[シグモイド関数]を用いて表現される.[ロジスティック回帰]と[数式]で同一になる.
F値
[適合率]と[再現率]の[調和平均]によって得られる[値]
aliasing problem
ある[値]に対して[可変参照]が2つ以上発生する問題.`int main() {``int x = 5;``f(&x, &x)``}`
Stack Smash Protection
[スタック]での[バッファオーバーフロー]を防ぐ[セキュリティ機構].[Canary]と呼ばれる[値]を[ローカル変数領域]と[Saved EBP]の間に用意し、この[値]が書き変わった場合は[強制終了]するという仕組みになっている.[SSP]とも
Typed-nil
[Go]の[nil]は[型]を持つため,[値]が[nil]の[変数]に対して`v == nil`のようにチェックしてもチェックできない場合がある.
Set(Redis)
[Redis]で[集合]を表す[データ構造].1つの[キー]に対して順序なしで複数の[値]を保存できる.同じ[値]は1つの[値]になる[ユースケース][タグ]
ValueObject
[ビジネスロジック]において用いられるさまざまな[値]を表現するもの.「金額=単価*数量」であれば,「金額」「単価」「数量」が[ValueObject]である.[[[設計モデル]]]的な話[プリミティブ型]は[システム]に最適な[値]の表現ではないため,[クラス]によって[ラップ]して[ValueObject]とすることで利用する.[値]の性質とは
GoとMySQLでの日時の運用メモ
[値]は[UTC]を前提に運用する[MySQL]で[TIMESTAMP]とした場合,[UTC]と[タイムゾーン]との変換が[MySQL]側で行われる.[MySQL]で[DATETIME]とした場合,こういった変換処理が行われない.[DATE]や[DATETIME]を[time.Time]に持たせる場合,[parseTime]の設定が必要.https://github.com/go-sql-driver/mysql#parsetime
Goの配列とスライス
[Go]では[配列]は[値]である.[値渡し]が発生する.これに対して,[Slice]は[配列]を[ラップ]した[interface]である.[Slice]は[参照渡し]である.
ボックスミュラー法
[一様分布]から取り出した独立な2つの[値]を用いることで[近似]的に[正規分布]に従う[乱数]を生成することができる手法.
Adobe XDでハートを作る
[多角形ツール]で[三角形]を作り,[アピアランスパネル]の[コーナーカウント]の[値]を`<3`とすると[ハート]を作ることができる.#Adobe_XDの機能
Adobe XD
リクエスト
ミドルウェア
[OS]と[アプリケーション]の間を処理するもの.[基本ソフトウェア]と[応用ソフトウェア]の間に位置する[ソフトウェア].[応用ソフトウェア]が共通して利用する機能の[interface]を提供する.[サーバ]において、[リクエスト]と[レスポンス]の前に[ロギング]や[認証]などを行う[ツール]を指す場合もある.
AWS Lambda
OAuth
[認可]に関する[標準化仕様].[API]を悪意のある[クライアント][アプリケーション]から保護する仕組み.[アクセストークン]に関する[認可サーバ]と[クライアント]の間で行われる[リクエスト]と[レスポンス]を標準化したもの.[[資料]]https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be
Head-of-Line-Blocking問題
[HTTP/1.1]に見られた問題.[HTTP/1.1]では1回の接続で複数の[リクエスト]を送信した際,[Keep-Alive]という機能で1度に送信できるが,このとき,[リクエスト]された順番で[レスポンス]を返す必要があり,途中の[レスポンス]の生成に時間がかかると後続の[レスポンス]の生成が待たされてしまう.
HTTPメッセージ
「[ヘッダセクション]」「[コンテンツ]」「[トレーラセクション]」から成る.[ヘッダセクション]従来は[ヘッダ]と呼ばれていた.[コンテンツ]従来は[ボディ]や[ペイロード]と呼ばれていた.
Cache-Control
[HTTP]のヘッダーで,[リクエスト]と[レスポンス]の両方で[キャッシュ]のための情報が記載されている.
Cloudflare Workers
[Cloudflare]の[エッジネットワーク]上で動作する[サーバレス]な[JavaScriptランタイム][Lambda@Edge]に近い[リクエスト]に応じて[軽量な処理]を分散実行し,[API],[リバースプロキシ],[HTML操作],[認証]などの用途に活用される.[Node.js]とは異なる[V8]ベースの[独自ランタイム]を使用するため,[互換性]に注意が必要.[KV],[D1],[Durable Objects]などの[ストレージオプション]と組み合わせることで,[状態管理]も可能となる.
ECSサービス
[ECS]において[タスク]を維持する[AWS]の[サービス].[タスク]が意図せず終了した場合にも新規に[タスク]を立ててくれるなど便利機能がある[ALB]から[リクエスト]を受け取ることもできる
Conditional GET
[ブラウザ]が[サーバ]に対して[リクエスト]を送る際,当該の[リソース]に[更新]があるかどうかを確認し,[更新]がない場合は[ブラウザ]の[キャッシュ]を利用することで[パフォーマンス]を向上させる仕組み.
DNS
Domain Name System別名: [名前解決][ドメイン名]から[IPアドレス]を特定する仕組み.[分散データベース]で[ルートサーバ]から[階層]的に[データ]を管理している.[ゾーン情報]を持つ[プライマリサーバ]と,そのコピーを提供する[セカンダリサーバ]との間で[ゾーン転送]を行い[データ]を同期する.
context
[リクエスト]が中断された場合などに[データベース]の[アクセス]なども一貫して[キャンセル]するためなどに用いられる.[Goにおけるcontext]
達人が教えるWebパフォーマンスチューニング 3 基礎的な負荷試験
[達人が教えるWebパフォーマンスチューニング]https://github.com/catatsuy/private-isu[nginx]のデフォルトの[アクセスログ]の[フォーマット]は[combined]と呼ばれる形式.[Apache Bench]を用いて[負荷試験]を簡易的に行うことができる.[ログ]の[ローテート]を行うべきである.
モニタリングツール
大きく分けてpull型とpush型の2つの[アーキテクチャ]が存在する.pull型[モニタリングツール]が[エージェント]に[HTTP]などで[リクエスト]することで[メトリクス]を収集する.[モニタリングツール]側で取得のタイミングなどを管理できる.[エージェント]の動作がシンプルになる.
レートリミット
[単位時間]に受け付ける[リクエスト]を一定数に絞る手法.
AWS認定クラウドプラクティショナー
リソース指向アーキテクチャ
[リソース]を中心に考える[アーキテクチャ].[リソース]という[概念].[リソース]が[URI]を持つ.[リソース]に対する[統一インターフェース]による操作.[リソース]の表現形式
getStaticProps
[Next.js]の機能.[サーバサイド]で実行される.[SSG]で利用される.実行される[JavaScript]も[ブラウザ]には送信されないので[クエリ]を書いてもよい.[ビルド]時にしか実行されないため,[クエリパラメータ]や[HTTPヘッダ]などの内容は利用できない.`/pages`以下でしか利用できない.[React]が[レンダリング]時に全ての[データ]を知っている必要があるため.
ServiceWorker
[Webアプリケーション],[ブラウザ],[ネットワーク]の間で[プロキシサーバ]のように振る舞うもの.[ネットワーク]への[リクエスト]に対して[ネットワーク]接続の可否に応じて対応を変えるなどを実現できる.
パフォーマンスチューニング
[計測][処理時間][アプリケーション][リクエスト]単位処理ブロック単位
listenディレクティブ
[リクエスト]を受け付ける[IPアドレス]や[ポート番号],[UNIXドメインソケット]を設定する.[IPアドレス]を指定する時は`listen {IPaddr}` あるいは`listen {IPaddr}:{port}`の形式で記述する.`listen 192.0.2.1:80`[IPアドレス]の80番[ポート]で[リクエスト]を受ける.`listen 192.0.2.1`
default.conf
[serverディレクティブ][listenディレクティブ][リクエスト]を受け付ける[IPアドレス]や[ポート番号],[UNIXドメインソケット]を設定する.[server_nameディレクティブ]
APサーバ
別名: [アプリケーションサーバ][リクエスト]に対して[Ruby]や[PHP]などを実行して動的な処理をした結果を静的な要素に変換して[Webサーバ]に返す.
レスポンス
Cosenseの不満
ロードバランサの作り方
[ALB]を作成する`resource "aws_lb" "example" {``name = "example"``load_balancer_type = "application"``internal = false`
C#でJSONを自動でクラスに変換する
[Visual_Studio]の機能で[JSON]を[クラス]として貼り付ける機能がある.通常の[ペースト]と同様に利用できる.[レスポンス]を受ける際などに便利.
node_exporter
[Prometheus]に対して機能する[exporter]で,[Linux]における[メトリクス]を収集する[エージェント].[HTTPレスポンス]として[レスポンス]を返す.`$ curl localhost:9100/metrics`のような形で[メトリクス]を確認できる.[OpenMetrics]に則った形で[レスポンス]が返される.
外形監視
稼働する[アプリケーション]を[クライアント]の視点から[監視]する方法.[応答速度][API]の[レスポンス]の[テスト][ヘルスチェック][SaaS]として[外形監視]を提供する[企業]もある.
Mock Service Worker
[レスポンス]を[モック]するための[ライブラリ].
サーバプッシュ
[クライアント]が使うであろう[レスポンス]を,[サーバ]側が[クライアント]に先立って投げつける仕組み.以下の原因でない方が一般に早いとされている.[キャッシュ]済の[アセット]を[プッシュ]してしまって[パフォーマンス]が低下する.[アセット]の[プッシュ]中に[HTML]生成が完了すると[HTML]の返却が遅れる.[103 Early Hints]が代替機能として期待されている.
Rows examine
[pt-query-digest]において,[クエリ]に対して[クライアント]に[レスポンス]を返すまでに走査した行数.[Rows sent]と[Rows examine]の比を見ることで,効率よく処理ができているかを確認できる.これが1から遠いほど,余分な[レコード]を見に行っている.[インデックス]の追加が有効である可能性が高い.>[Rows examine]と[Rows sent]を見てみると、examineしまくっている割にsentは非常に少ない。(countだから) そのため、countをなんとかしてなくす(専用のカラムを作っちゃうとか)ことで、パフォーマンスを向上できる可能性が高い。
Rows sent
発行された[クエリ]が実際に[クライアント]に[レスポンス]した行数
アンプ攻撃
[攻撃]対象者の[IPアドレス]を偽装して[サーバ]に[パケット]を大量に送信することで,[攻撃]対象者に[サーバ]から大量の[レスポンス]を送らせる[攻撃].
AirtestとPocoとOpenSTFによるUnity製スマートフォン向けゲームの実機自動テスト環境構築とその利用方法
[株式会社サムザップ]による[CEDEC_2020]での[講演].[F5]の連打に対する[テスト]など[CSV]の利用により[ノンプログラマ]でも[テスト]を作れる仕組み.[Airtest][Poco]
ping
[ネットワーク]が通じているか,または対象の[計算機]が稼働しているかを確認するために[IPパケット]を送信し[レスポンス]を期待する[コマンド].[ネットワーク層]の[ICMP]の機能を用いている.
sendfileディレクティブ
`sendfile on;`ファイルの読み込みと[クライアント]への[レスポンス]の送信に[sendfile]を使うかを設定する.[sendfile]を利用すると[カーネル空間]内でファイルの読み込みや送信が完了でき,効率が良い.[プラットフォーム]や[ファイルシステム]によっては問題が起きることもあるのでその時は無効にする.デフォルトはoff
C10K問題
[Apache]など[Webサーバ]と[クライアント]の[通信]において,[クライアント]が10k台ほどになると[Webサーバ]の[ハードウェア]性能に関わらず[レスポンス]性能が大きく下がる問題のこと.[Apache]の方式に原因がある.[Nginx]はうまく回避している.
シンセティック監視
-> [リアルユーザ監視][システム]の稼働状況を[ユーザ]や[クライアント]側から[監視]することで[応答速度]などの実際の利用状況に関する[情報]が得られる.人工的に[クライアント]を[シミュレート]して[レスポンス]を確認する方法([シンセティック監視])と,実際の[ユーザ]の[クライアント]の[データ]収集[モジュール]を組み込む方法([リアルユーザ監視])とがある.[ヘルスチェック]とまとめて[外形監視]と呼ばれることもある.
ヘルスチェック
[死活監視][サーバ]の状態を把握するための仕組み.単純な[レスポンス]を得るなどの方法で対象が生きているかどうかという基本的な情報を得るための[監視].短いサイクルで行われる.[ブラックボックス監視]の[メトリック]で代替可能なケースもある.[ELB]や[AutoScaling]などのトリガーとして用いられることも多い.[ロードバランサ]が持つ機能で,ダウンした[サーバ]などに処理を振り分けないようにするために必須である.
New Links
Unary RPC
Server streaming RPC
Client streaming RPC
Bidirectional streaming RPC
Created
5 years ago
by
Ragi
Updated
a year ago
by
Ragi
Views: 24
Page rank: 18.39
Copy link
Copy readable link
Start presentation
Hide dots
gRPC
Google
が開発した
RPC
フレームワーク
.
Protocol Buffers
に対応している.
HTTP/2
で動作する.
呼び出す
関数
を
パス
で指定
引数
を
リクエストボディ
で指定
返り値
は
レスポンスボディ
として受け取る
やり取りする
値
は
Protocol Buffers
で
シリアライズ
したものを用いる
4種類ある
Unary RPC
1つ
リクエスト
したら1つ
レスポンス
が返ってくる
RPC
Server streaming RPC
1つ
リクエスト
をしたらたくさん
レスポンス
が返ってくる.
Client streaming RPC
たくさん
リクエスト
したら1つ
レスポンス
が返ってくる.
Bidirectional streaming RPC
たくさん
リクエスト
したらたくさん
レスポンス
が返ってくる.