メモ(2017-2019)

インターネットで見つけた言葉、街中で出会った言葉、調べてメモした言葉、寝る前・仕事中に思いついた言葉。忘れたくなくてメモをした結果、積ゲーならぬ積メモ状態に。多分、2年前のものもありました。断捨離するためにメモを写経して公開することにしました。闇の文書です(でもきちんと検閲しています)

私は今ソフトウェアの仕事(仕事ってよりも雑用じゃないかな?)をしているので、メモの内容と仕事はいくらかは関連しますが、業務から得たノウハウ等、守秘義務に違反する内容はここに掲載していません。主な出典はTwitterのTLに流れてきたツイートやRT、ウェブページなどです。

出典を明記すべきなのでしょうが、分からないのでごめんなさい。文中に何かいい言葉を見つけたら、きっとそれは私の言葉ではないでしょう。

メモを振り返って見てみると、書いたときの記憶がよみがえります。メモの中身は、Yamavolの興味の対象を反映しています。でも、好きな話だけとは限りません。何かに苦しんだからメモをすることも多いのです。

いつ書いたか、なぜ書いたのか今となっては思い出せないものもあります。忘れないうちに思考を整理すべきでした。これらのキーワードをうまく文章にできる日本語力を会得したいです。


  • ビュフォンの針

    • 円周率の近似
  • スタックプロテクタ カナリア

  • 工数見積もりスキル

  • ゲームシナリオの教科書

  • https://dmitryfrank.com

    • embedded software
  • 1+1=2にならないなら、1+1=2を確認するまでループする。アプリケーションのロジックじゃない。

  • 考えているうちに妄想・想像していることと混ざってしまう。そのうちはっと気づく。今のは想像だったのだと。

  • テストのコストと引き継ぎ

    • 全てのテストをメンテし、信頼できるユニットを作ることは大変だ。
    • 引継ぎのとき、相手は何を信用していいのか途方に暮れるだろう
  • bitfieldはbitの順序を規定しない

    • struct { unsigned a:2; unsigned b:2; unsigned c:2; unsigned d:2; } でaがLSB
  • c言語の引数はvoidを書いた方が良い

  • タイマーモジュールによる時間計測

  • 32bitなのに、16bitx2で読まないといけないレジスタがある

  • 分解能を上げると、測定可能上限が下がる。不確定性原理。

  • タイマが正しい時間を返すことを保証したい。

  • 動作モードの定義と切替機構(?)

  • B2BにイノベーティブなIT企業経営は可能か

    • そういう記事が面白かった
  • かっこの英語と日本語

    • 箱かっこ
    • カギかっこ
    • 角かっこ
  • class:
        a = 1,
             ^tuple
    

    https://stackoverflow.com/questions/4455076/how-to-access-the-ith-column-of-a-numpy-multidimensional-array

    • 要求: 要求仕様の修正
    • リクエスト: 要求仕様書に落とし込む作業
    • 設計: 新しい要求仕様の実現方法を考えたもの
    • 要求仕様と設計の同時開催: 要求はぶれない、要求仕様は正しいことが前提

  • てすと
    • ダミーデータをstaticな領域に書き込む。無理じゃないか
    • 密な結合: 関数が必要とされているデータがモジュールの中に閉じ込められていて外部からデータを変更できない。すなわち、テストが難しい
  • TDD
    • baremetal TDD
    • embedded clang
    • RTOS TDD
    • global var
    • 通信, I/F, 計算, DB, Filesys
    • Makefile
    • モジュール化とTDD
  • 相互参照
  • テストコードと前提条件
  • パラメータ100個
  • ソースをinclude
    • static テストできる
    • 二重定義になる、分割できない
  • FFF
    • stubとかmockとかspyとか作れる
  • TDD Embedded Wingsman Kent Beck
    • XPの人。-1999
    • SUnit -> JUnit -> XUnit
  • google mock
  • elf spy
    • global offset table
    • posistion independent code
  • fakeit
  • unity
  • catch
  • cunit for Mr.ando
  • レガシーコード改善ガイド
  • 本来あるべき姿・状態とは異なっていても進めなければならないとき。(?)
  • enumは長くて衝突を防ぐ vs 短くてスッキリ
  • Get()はHWアクセスするのか、しないのか
  • HALレイヤとロジックレイヤ
  • 冗長な表現
    • 詳しくはありません
    • 詳しくありません

  • CI/CD service
    SaaS LAN VM
    Usability 365d 24h at home anywhere
    Performance low high mid-high
    Management low high fair
    Price paid initial cheapest
    Comm.Speed slow fair fast
    Sharing ok ok na
  • ビルド鯖は24h使うわけではない、使うときに契約して初期化する
  • スペックがいらないならSaaSでよい

  • hazama-yuinyan/book second edition
    • Rustの翻訳第2版があることを知った時のメモ
    • pandoc latex travisci
  • topics of interest
    • llvm
    • qemu
    • baremetal
    • rust
    • zephyr
  • 赤字を赤字(変更点)とみなさない
    • プロジェクトを統一するむずかしさ
    • ドキュメンテーションとプロジェクトマネジメントのことかと。
  • マクシーシルバストン曲線
  • sscanfがEOFを返す
  • heapless rust
  • statement vs expression
  • kabosusoba
    • DI container
  • 英語
    • それがいいと思うよ
    • そうしたらいいと思う
    • そうだね
    • 多分動くと思う
      • hope it works
    • ~だよね?
      • xxx ~ right?
    • どう思う?
  • cygwin
    • unix tool > posix (cygwin1.dll) = newlib > WinAPI
  • GNU clibrary
    • glibc 辛い
    • newlib マシ
    • ucilibc マシ
  • glibc very large, lacks support or MMU-less systems
  • posix 1003.1, 1003.16
    • open
    • accept
    • chown
    • chmod
    • mmap
    • sbrk
    • bind
  • C言語のライブラリはこれらを呼び出す(glibc)
    • ansi-c-1989
    • posix.1-1990
  • ansi-c (thread.h)よりも posix (pthread.h) spcket, file descriptor, shared memoryのほうが大きい(ピラミッドでいう下の段)
  • kernelはposixに準拠して作られる。つまり、posix-kernelといえる。
  • kerneがglibcに依存している
  • glibcはWindows向けにコンパイルできる : glibc for windows (msvcrt.dll)
    • mingwとかはこれ。ただ、mingwはposix関数を提供しない
  • kernel自体は何でビルドするの?/したんだろ? => gccじゃないかな
  • シーケンス
    1. unixで動くcc
    2. gcc誕生
    3. glibビルド
    4. glibc誕生
    5. linux kernelビルド
    6. カーネル誕生
  • int 0x80 システムコール
    • eax = no
    • ebx, ecx, edx = args
  • xterm.js つなぐ
  • pty.js サーバに入れる
    • node-ptyが最新
  • kmckk
  • ttyd
  • css skew
  • 2/17 フランスと日本は似ている。
  • 2/19 人を信用してはいけない
  • 2/20 過信
  • 2/21 リンカを読もう
  • 2/23 協会 教会
  • c3.js, brightchartをSSRするのは先の話
  • 数学力
    • フーリエ変換
    • ラプラス変換
    • 制御
    • 機械学習や推定
    • 力学
    • 量子力学
    • セキュリティ・暗号理論
  • 数学力の基本
    • 線形代数 代数学
    • 微分積分 解析学
    • 統計・確率
    • 集合論、論理学 = 数学基礎
  • mizchi プロジェクトオイラー全部やる
    • 実力が付くと脳の負担が下がる
  • vega
  • d3
  • グラフ表示したいのは何かをきれいに見せたいからであって、必ずしも遊んでもらうこと意図しない(?)
    Dynamic Data Static Data
    Dynamic Disp Ajax + React some js lib
    Static Disp Ajax / import js, image
    何の表か忘れたが、右下を目指す!と書いてある
  • ソフトウェアとしてのふるまい、データの入出力
  • 製品としてのふるまい、オプション

  • JTAG -> IEEE1149.7 -> SWD(ARM,32bitRWonly)
  • CMSIS-DAP
    • cortex microcontroller software interface standard debug access port
    • USB --CMSIS-DAP---> JTAG/SWD
  • CMSIS-X
    • core
    • dsp
    • rtos
    • dap
  • stlink + openocd / j-link + jlink gdb server
  • black magic probe
  • lauterbach
  • stbee
  • miqn.net
  • BTE067B

  • yaml json comparator
  • ui pattern
    • large view
    • vertical single pane
    • side (L+R) vertical pane
    • A/B comparison ui
    • top horizontal pane/ribbon ui
    • bottom horizontal pane/vscode terminal
    • multi-display (quad-split)
    • wireshark (2 + 1)

  • ds logic plus
    • max 400mhz
    • 16G stream, 256M buffer
    • 16ch
    • 3yr warranty
  • Kei Nakazawa (Klab)

  • 認知行動療法
  • 側坐核(そくざかく)
  • 大きな目標
    • 習字がうまくなりたい
  • 小さな目標
    • 一文字一文字丁寧に
  • 努力をほめる、能力をほめる
    • 失敗したときに○○が足りない体と考える

  • やるといいこと
  • したいこと
  • すべきこと
  • いつもやることは明文化できるはず
  • SPI, I2C, I/O 通信は手段です
    • 目的を達成するための手段に失敗したら、達成できません
    • 手段を使う場合の要求

  • affinity designer

  • SIC
    • Short Interval Control
  • 心理効果 bufferを使う 100%で派は知れない
  • 積み上げ方式(各工程に〇日使う)、割式←納期がある場合
  • 破綻しない計画は緩い
  • 100%の完成度では進まない
    • ○○までに〇%で合意をとる
    • 2,3日span 2wkは長い
    • 大計画、中計画、小計画を作る。
      • この3つのサイクルを回す
  • sessamian 人財と人罪
  • visual state manager

  • 物理層でonPushed

  • 正しい日本語練習帳
  • アナログの出力
  • life of men and women
  • 英文法帳 men? mens?
  • 大目標と小目標
  • 筋トレ

  • 機能
    • あるものが本来備えている働き。全体を構成する個々の部分が果たしている固有の役割。
    • システムに対して設定されうる「目的」への貢献という観点から見たシステムおよびその部分を指す。
    • あるHWは複数の機能に使われる(例:モータを動かす)
    • 1つのHWが複数のTaskに仕様されうる状況
  • UARTではタスクキューを1つにするのが定石
  • LowPowerMCU
  • シャント抵抗
  • EEMBC/ULPMARK
    • MSP430
  • Monoist IoT ENgine
    • RSL-10
    • STM32L552(562=AES,PKA,OTFDEC) CortexM33
  • がた老AVR2011-06 freeRTOS mgo-tec, elm-ch, nemui
  • interface 2009-05
  • トラ技 112, 101

  • controlled component
    • input, textarea, select
    • javascriptの状態とForm要素を一体化する
  • uncontrolled component
    • domの中の状態を参照として取り出し使用する
    • you need to write an event handler for every way your data can change and pipe all of the input state
  1. componentがStateを持つ。this.state = {}
  2. inputはstateのvalueを表示して、onChangeでsetStateを呼ぶ
    handleChange(event) {
        this.setState({value: event.target.value})
    }
    <input value={this.state.value} onChange={this.handleChange}>
    
  • イベントは野良でDOMのOnChangeイベントを処理する
    • DOMのonChangeはfocusをlostしないと発火されないが、React/JSXで描いたonChangeはkeyStrokeごとに発火する
    • StackOverflow 38256332
      • React attaches listeners for Component.onChange to the DOM element.onInput
    • 似たようなDSLとして、<select value={}>がある。selectはDOMではselectedを使う。

  • ソフトウェア工学・開発方法論 xmldtp
    • アジャイル@2007年頃
  • 要求仕様は完全なものではない
    • agileで開発する→品質が高い?
  • スパイラル開発
  • 仕様を詰めていく
  • 仕様がまとまっていない段階でもアジャイルでは開発に入れる。度重なる仕様変更に遭っても対応できるが、プログラムは壊れていきデスマ化する
  • 仕様がまとまらないのに開発に入る理由は要求仕様がまとめられないから
  • 要求仕様がまとめられないのは
      1. ヒアリングできていない
      1. 無茶な要求
      2. SEが情報取集できない
      3. 会社が業務を表現できない
      4. 会社が本当は業務をちゃんと行っていない
  • ヒアリングができていれば、述語をどうする、名詞をどうする、レベルでER,DFD,UML、クラス図に展開できる
  • ユーザは業務を言語化できない状態に陥っている。SEもまとめる力がないと要件はまとまらない。SEも業務知識を軽視し、UMLなどの技術論に向かう傾向
  • 業務を標準化して明確化する
  • 技術中心から業界知識中心に方向転換する

  • ドメイン駆動設計
  • cgworld
  • 2dnet
  • ETSS
  • 1986 ミリオネア問題:自分たちの財産を明かさずにどちらが金持ちかを知る
  • Garbled Circuit
  • ID3 data mining algorithm
  • 完全準同型暗号
  • 中央値 t検定 Kaplan-Meier 実際医療統計
  • χ^2 Cochran-Armitage検定 TDT
  • A fast learning algorithm for deep belief nets

  • 昭和化している
    • 右に行ったり左に行ったり
    • 研究も時代もそんなもん
    • 揺れながらすすむ。らせん。
    • 先に進んでいないのなら、それはその問題

  • エラー
    • Lv1: エラーがあったことを知る。 return -1まはたthrow
    • Lv2: エラーの原因を知る。return -1, -2, -3
    • Lv3: エラーの原因を基に処理・対応する。 throw/catch
  • やってはいけない
    • エラーがあるのに報告しない return 0;
    • エラーが起きて報告しているのに握りつぶす catch(){}

  • Why do you want to open a service while you can create it anytime using a pen and a paper?

  • ソフトウェアで価値を生み出す。ものを動かすだけでは、ソフトで価値を生み出すとはいえない。
  • 誤差逆伝搬法
  • Joel on Software
  • グローバル変数
    • 新しく定義するのを許さないから禁止
    • グローバルに定義していいとき、してはいけないのときの線引きができないから禁止している
    • グローバル変数を定義する場合のルールがあれば定義できるのでは?



  • 辞書
  • ログ
  • マルコフ
  • 空気の読めるAI

  • 日々のTask
    • 掃除
    • 買い物
  • LongTerm
    • 要求仕様書の書き方
    • WBS
    • Gantt
    • セキュリティ
  • Private Project
    • ブログ作る
    • NCounter作る
    • アプリ開発
    • ゲーム作る
    • 分析基盤
    • HomeIoT
    • 元素集め、ホルダー
  • デザイン
    • Inkscape, Illustrator
    • GIMP, Photoshop
  • ゲーム
    • C, C++
    • アルゴリズム
    • OpenGL, Vulkan
    • Unity, UE4
  • Web
    • HTML5
    • CSS3
    • javascript(client)
    • Markdown
  • Hardware
    • asm
    • circuit
    • LTSpice
    • RPi
  • backend
    • javascript
    • golang
    • scala
    • ci
    • python
    • virtualization (docker, kvm)

  • mongonta.com
  • 組込み系
    • MCU
    • CPU
    • Flash
    • SRAM
    • FPGA
    • ASIC
  • 業界
    • 組込
    • Web
    • SI
    • ゲーム
    • etc

  • 不満を解消するために
    • 要求仕様ガイドライン@個人@要求工学
    • テスト自動化、テストガイドライン@品質工学
    • 社内プロセスの学習
    • 計画・時間管理
    • 伝える力、日本語力、正しい文章を素早く書く
    • ソフトウェアを早く書き上げる
  • 将来のためのスキル
    • ブラウザで動くクライアントアプリ政策
    • イラスト、3Dモデル、メロディ、エフェクトなどのデザイン方面のスキル
    • 分析・決定のための数学・解析・理論
    • ハードウェアを実現するためのスキル
    • 品質の高いソフトウェアを書くための知識と経験と実践

  • 機能の役割分担
    • 誰が何の担当するのかはっきりしない
  • 方式設計、機能設計
    • アーキテクチャを決めないまま基本設計してはいけない
    • グランドデザインできてない
  • ソフトウェアの設計
    1. ソースコードの設計
    2. ソフトウェアの振る舞いの設計
  • 客先に見せないドキュメント
    • 仕様と設計が混在したもの

  • microcorruption
  • context diagram
    • システム
    • ターミネータ
    • スティミュラス
    • レスポンス
  • hackster.io

  • quartanion
    • p' = qpq-1 = qpq*
    • q-1 = q* (∵単位四元数)
    • はpをuqを中心に2Φ回転する。
    • 回転操作を積で表すことができる。いつもの。

まとめてみて

メモの傾向はこんな感じ

  • 為になると思ったウェブサイト
  • 為になった情報を発信している人
  • 為になると思ったツール
  • ソフトウェアの開発に関する話
  • 自分のスキル不足を感じたところ

本当の闇のメモは公開できません。