たれぱんのびぼーろく

わたしの備忘録、生物学とプログラミングが多いかも

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

AppSync/Amplify

GraphQL many backends Resolver with VTL subscription Auth offline (delta sync?) Client ライブラリとしてAmplify | Apollo SDKを用いた開発が可能1. clients AWS AppSync SDK full spec with Apollo client (w/ real-time & offline) detail: AWS AppSy…

キャッシュ戦略・競合

Create, Read, Deleteだけ 競合のリスクが少ない Create時にidが発行され、idの一意性が担保されるなら、CreateとDeleteはぶつからない. DeleteはCreate以外にぶつかるものがないので、競合は存在しない ReadとCreate&Deleteは整合性でぶつかる可能性がある …

設定可能な低水準記法の抽象化

ベストプラクティスをデフォルト設定とし、設定を明示しない限りそこを気にせず高水準に書ける. 最初はベストプラクティスに透過的に乗っかって、必要な段階になったらベストプラクティスの内容と理由を理解つつ設定を書く. 設定をわざとできなくするのは"op…

情報の自動取得・通知

自動取得と通知 情報の自動取得: email むかしのメール: 受信ボタンを押してActiveにサーバーからpullしてた 自動取得: 勝手に受信箱へ落としておいてくれる 情報の通知: email むかしのメールアプリ: 自動取得されたかどうかをメールアプリを開いて見に行く…

satisfaction preview

「こういう風に生きたい」に基づいて生きる 人生の満足 社会でやっていくための方法論 極論、好きなことのんびりやっていれば幸せを感じるタイプの人間 社会でのやっていきと両立するためのsat. 方法 previewで1つ下のノートへ projects -> monthly -> weekl…

終わらせ力

社会で生きていくには「終わらせ力」が必要. はじめてとっちらかしてほっとくのもいいが、社会で死なずに生きていくにはある程度の「結果」があるのが望ましい. 何らかの形で「終わらせ」を発生させ、これを積み重ねて、たまに「終わらせ」の「発展版」を「…

睡眠

睡眠の重要性 寝ないと猛烈に眠くなる。 寝ないと全く頭が回らなくなる。 睡眠が悪くなると起きる問題 その日が終わってしまう(起きてもぼんやりしててその日終わり) 睡眠に関する自己認知 自分の認識より遅寝(ave.AM5時過ぎ)になってる。 ぼやぼや起きて…

事実に基づかない計画は害悪

事実に基づいていない計画、例えば実現不可能な計画、あいまいな計画は害悪である。 なぜなら建てた計画が実施可能な具体的計画だと錯覚してしまうからである。 そもそも計画とは 実行する内容・必要な時間を明示すること. 明示して記録することにより、のち…

アプリをタスク バーにピン留めする

アプリをタスク バーにピン留めする タスクバーは自動でショートカットが振り当てられる(Win+FX, Xはタスクバーの左からの順目) 「ここに入力して検索」や「スタート」からアプリを右クリックして登録. PSのdefault directoryはピン留めしたものを右クリッ…

デプロイ、あるいはその自動化

目的 エンティティの提供 観点 デバッグ 逃したバグの早期発見 機能改善 良い機能をより速く DX 作業の自動化 評価点 時間 バグ発見コスト 顧客価値 デプロイ待ちの認知負荷 労力 リリース先 リリース先によって必要な作業(量)も違う. Webアプリ GitHub Pa…

GitHub Pagesへ継続的デプロイ (CDE) by Github Actions

あるプロジェクトがGitHubにホストされており、またその成果物がGitHub Pagesへホストされているとする。 GitHub Actionsを用いれば、origin master branchへのpushが全自動で成果物へ反映されるようにできる。 概要 ソース: GitHub (Git remote repository)…

減点法・加点法の問題点

加点と減点が可能とする。 加点と減点を違うもののタプルとして扱う. 例: (-2, +5) 減点のみを評価した場合、最善戦略は減点されない行動をすること. 加点のみを評価した場合、最善戦略は減点されてもいいから加点行動をすること. 最善の前者 それっぽくて結…

SpeechToText, S2T

Google STT library: googleapis/nodejs-speech (npm@google-cloud/speech) 認証は環境変数 types 同期認識: content フィールド (base64), ~ 1 min 非同期認識: uri フィールド (Google Cloud Storage URI) ~ 480 min ストリーミング認識, ~ 5 min $env:GOO…

cloudformationの良さ

状態を定義するとプロビジョニング/デプロイ完了してくれる プロビジョニングって実は複雑 まず”待ち”があるのでasync 複数のユニットがasync込みで依存してる (asyncなDAG構造) ユニット立ち上げのAPIが存在しても、asyncをhandleしつつ並列か直列か考えて…

テンプレート処理

実行時割り当ての値がどうしてもある = 実行時に環境から与えられる値・実行時に環境が解決する値 全文を静的生成物にするとそれらが解けなくなる placeholder (変数、params、refなど) の仕組みはどうしても必要. 一方、テンプレート生成 (template自体の生…

効率化の費用対効果

砂場遊びを徹底した分業により効率化する 遊びなら好きにしていい. 商売なら、砂場遊びが生む価値が充分でないと成立しない(費用対効果の議論) 価値には2つある. 近い未来にほぼ確定して生まれる価値 将来生まれるかもしれない価値 後者の例はPoC. PoCして…

GitHub Actions

Workflow file on A (event) B (event) ... jobs jobA steps stepA (uses | run) stepB (uses | run) ... jobB ... Stepsでの実行 jobs.<job_id>.steps.uses Local ./path/to/dir ./.github/actions/my-action GitHub {owner}/{repo}[/{path}]@{ref} actions/aws@v2.</job_id>…

継続的デプロイメント

commitへの未検出バグ混入率を10%とする。 1 commit/dayで開発が行われ、戦略Bでは四半期に一回のデプロイを、戦略Cでは毎日デプロイをおこなう。 戦略Bの場合、バグは四半期に1回、一度に9個発生する。 戦略Cの場合、バグは10日に1回、一度に1個発見する。 …

あり続けるweb技術

アクセス制御 (認証N/認可Z) データソース 計算資源 (サブルーチン) APIGateway/AppSync ~ API Endpoint (Server) の仕事は? API Endpointの提供 ソースから独立したAPI Endpoint 文字通りinterface (変わらない型) なのでバックエンド変更が可能 単一防御…

宣言的・宣言型・冪等性・状態

宣言的/declarative 「ライトはONになる」 命令的/Imperative 「ライトのスイッチを押しなさい」 宣言型だと状態を指定する感じになるので、現在の状態に依存しずらい. 現在ライトがONだろうとOFFだろうと、「ライトはONになる」と宣言されているのでライト…

ウィジェット

ユーザーが利用する自立可能な機能単位. 単機能が望ましい(full applicationじゃない) 特にUIの見た目に関しては設定可能だと嬉しいこともあるだろうから、interfaceの提示は重要. ShadowDOMとかを使って外部からの干渉をシステム上で防止するのは良い.

データバインディング

明示的・操作的UI更新 // 元データ: data = "black"; // データ更新 const newData = "red"; // 対象UI要素の取得 & 属性更新 const target = Document.querySelector("#target"); target.setAttribute("style", `color: ${newData}`); // ブラウザによるUI…

softmaxをはじめとする確率化関数

何かの出力を確率として扱いたい。さてどうするべきか 前提: 確率に求められるもの 事象の確率の総和が1 各事象の確率は0~1 方法: いろいろある 事象が2つだけ ON/OFFを判定したいとき。 0 <= f(x) <= 1 として、f(x)を事象Aの確率、1-f(x)を事象Aの確率とす…

逐次計算 (sequential) と並列計算 (parallel)

並列計算 逐次計算 ニューラルネットワーク CNNは同一層内では独立した計算をおこない、前の層の結果に基づいて次層の計算をおこなう. 層方向に逐次計算なので、最低計算ステップ数は層数に等しい. とてもつよい 並列計算機、例えば理想的なGPUがあれば、CNN…

0より0.1

たとえ小さく、弱く、欠点が見え見えでも、0.1は厳然たる進歩である. 草野球チームすらない国からは、絶対にメジャーリーガーは出てこない。米国だって20〜10年前とか宇宙開発の状況は良くなかったしSpeceXだってなんども倒産の危機にあった。日本の民間宇宙…

エラーと人とプログラミング

We Want to Write Logics, NOT to Fix Bugs. But Human make mistakes. 人は間違う、ゆえに動作確認がいる 人はエラーを起こす 人はプログラムを書く ゆえに、プログラムはエラーを起こす 人のおこなった処理はエラーを含む。 エラーを避ける/直すの仕組みが…

プロパティ初期化に関わる私の指針

TypeScriptでいうstrictPropertyInitialization 基本的な考え方 classのpropertyが存在するがconstructorで初期化されていない => のちのち必要になると代入される. coustructor以降は何がどういう順序で実行されるか保証できないので、undefinedなproperty…

Null安全にかかわる私の指針

Null安全とは 実行時にNullを想定しない場所にNullが表れ問題を起こす、ことが起きないと保証された状態. 安全性という意味では、Nullに対する不正演算には例外を投げると言語仕様にある限り、いちおう安全ではあるはず. 基本的な考え NullとNumber, NullとS…

プログラムの正当性を保証する方式

安全性に関する指針みたいなもの Null安全: Non-Nullable型/Nullable型の明示によるNull安全の保証 プロパティ未初期化

冴えた思考をするには

プレッシャーをかけられても思考は速くならない => 圧には意味がない。むしろ恐怖の類は思考を遅くする => 圧をかけない。伸び伸びと思考できる環境を整える. 時点tにおける思考能力には上限がある => 限界突破を任意時点で行うことは不可能. もし上がったの…