About
[NOTE: OUTDATED. These notes have not been updated since 2023 since I migrated away from EverNote to DEVONthink. A hacky tool used to cleanup the notes during migration: https://github.com/ynishiza/EvernoteToDEVONthinkMigration]
These are personal notes which I create when trying to learn something new i.e. as a method to determine the most natural place for a new thing among the existing things in my consciousness, in order that it may eventually merged with the rest. Typically, this involves identifying a structure in itself, so that it may be naturally related to and thus find an optimal fit among other existing structures in my consciousness. In short, it is like trying to determine the right place for a new puzzle piece (albeit the piece itself may be malleable).
As a result, it can also be said conversely, that these notes in turn directly represent how knowledge is organized and appear to me in my consciousness. i.e. that these notes are a direct reflection of my mind.
Hence, while it would of course be a pleasure if another being also discovers some utility in it, please note that these notes were not intended for that purpose. In particular, it does not necessarily correspond to the structuring of the same knowledge in another’s mind, or that it is in an optimal form for another nor another usage.
Contents
Concepts
Database
Distributed Systems
HTTP
- General
- Authentication
- Basic Authentication
- HTTP Cache
- Cookie
- Security - Same Origin Policy (SOP)
- Security - Cross Origin Resource Sharing (CORS)
- Security - Content Security Policy (CSP)
- Security - HTTP Strict Transport Security (HSTS)
- Websockets
Machine
Network
- URI
- Network layers
- IP - routing
- IPv4
- IPv4 - address
- IPv4 - CIDR
- IPv4 - NAT
- IPv6
- IPv6 - address
- IPv6 - Neighborhood Discovery Protocol (NDP)
- TCP
- UDP
- DNS
- DNS - domain name space
- DNS - DNSSEC
- DNS - servers
- ARP
- DHCP
- ICMP
- SOCK
- Packet Analysis
- …
Programming concepts
- Algebraic effects
- Concurrent programming
- Continuation
- Paradigms
- Principles and patterns
- Program execution
- Programming language theory
- Programming languages - grammar
- Programming languages - parsing
- Type system
Security
- Basics
- Public-Key Cryptography Standards (PKCS)
- Diffie-Hellman
- X.509 + PKIX
- RSA
- DSA
- Elgamal
- ASN1 (X.680,X.690)
- Message Authenticaion Code (MAC, HMAC)
- OpenPGP
- …
Web
Notes/thoughts
…
Vim
- Basics
- Basics - buffers
- Basics - commands
- Basics - file type and syntax
- Basics - functions
- Basics - options
- Basics - ranges
- Basics - search & replace
- Basics - special characters
- mode - insert
- mode - commandline
- mode - visual
- feature - basics
- feature - completion
- feature - fold
- feature - map
- feature - marks
- feature - registers
- feature - repeats (macros)
- vimscript
- tricks - editing
- tricks - editor + settings
- tricks - vimscript
Neovim
Tools
Ansible
- Notes
- Basics
- Basics - roles
- Basics - hosts
- Basics - variables
- Basics - special variables + facts
- Basics - Jinja
- Modules
- Tricks
Docker
Elasticsearch
git
gpg
Jenkins
TeX/LaTeX
macOS
Make
MongoDB
- Notes
- Basics
- Basics - cursors
- Basics - bulkWrite
- Basics - operators
- Basics - operators - aggregation
- Basics - operators - update
- Basics - index
- profiler
- queryPlanner, executionStats
- tricks
MySQL
RabbitMQ
redis
snort
Sumologic
Terraform
Wireshark
Misc
Unix-based system
- Notes - general
- Notes -
/proc - Notes - file system
- Notes - ANSI escape code
- Basics - file permission + ownership
- Basics - named pipes
- Basics - resolv.conf
- Basics - sysklogd format
- …more
Bash
- Basics
- commands and expressions
- expansion (glob, pattern matching)
- history
- quoting
- redirection + pipes
- values (PARAMETERS)
- variables (EXPANSION)
- Tricks
- Tricks - values, variables
- Tricks - conditions
- Tricks - script
- Tricks - text and file processing
- Builtins
- Builtins - getopts
- Builtins - directory stack
- Builtins - job/process control
- Builtins - printf
- Builtins - read
- Builtins - set
- Builtins - test
- Builtins - ulimit
- …
Commands
- General
- General - file system
- General - user user administration
- General - text processing
- arp
- at, batch, atq, atr
- awk
- curl
- date
- diff, patch
- dig
- dmesg
- dtrace, dtruss
- find
- grep
- host
- hostname
- ifup, ifdown, ifquery
- iptables
- less
- ls
- lsof
- lsof - tricks
- man
- mount
- netstat
- openssl
- openssl - LibreSSL
- ping
- ps,pgrep,pkill
- rsync
- rsync - tricks
- screen
- sed
- sort
- ssh,scp,sftp
- ssh,scp,sftp - usage
- ssh-agent, ssh-add
- ssh config
- ssh tricks + troubleshooting
- strace
- sudo
- tar
- tcpdump
- w
- whois
- write, mesg, wall
- xargs
- xxd
Linux
macos
Third-party
Programming
C
- Notes
- Basics
- Basics - printf format
- Basics - scanf format
- Basics - standard library
- CLI - gcc/nm/objdump
- CLI - gdb
- Tricks
Haskell
- Notes
- Notes - Functor, Applicative, Monads
- Notes - monad Transform
- Notes - type,kind
- Notes - primitives
- Notes - dependent types
- Basics
- Basics - Builtins (Prelude)
- Basics - Char,String,Show/Read
- Basics - List,Tuple
- Basics - functions
- Basics - function fixity
- Basics - recursive declarations
- Basics - module
- Basics - exceptions
- Basics - strictness
- Basics - primitives
- Basics - generics
- Basics - templates
- class - Semigroup, Monoid
- class - Category, Arrow
- class - Contravariant, Profunctor
- class - Foldable, Traversable
- class - Functor, Applicative, Monads
- class - wrapper types
- type system - type system
- type system - declaration, bindings
- type system - coerce
- type system - kind system
- type system - typeclass
- type system - dependent types
- monad -continuation
- concept - continuation
- monad - transformers
- monad - state
- monad - free
- tool - GHC
- tool - Stack
- modules
- modules - ST
- modules - System, IO
- modules - mtl
- modules - optparse-applicative
- modules - text,fmt
- modules - testing
- modules - network
- modules - type level (singletons, fin, dec)
- examples
- external modules
HTML/CSS
CSS
- Notes
- Notes - BEM
- Basics
- Basics - @media
- Basics - flex box
- Basics - modules
- Basics - selectors
- Tricks
HTML
JavaScript
- Notes
- Basics
- Basics - builtins
- Basics - class
- Basics - ES6
- Basics - ES6 modules
- Basics - exception handling
- Basics - Promise API
- Basics - RegExp
- lib - codemirror
- lib - D3
- lib - D3 Notes
- lib - Handlebars
- lib - immutable
- lib - Joi
- lib - jQuery
- lib - PEG.js
- lib - .require.js
- test libs
- test lib - Chai
- test lib - Karma
- test lib - dom-testing-library
- test lib - sinon
- Tricks
DOM, WebAPI
Node.js
- Notes
- Basics
- Basics - fs
- Basics - net,http,https
- Basics - os
- CLI - debugger
- libs
- lib - Express
- lib - Gulp
- lib - Koa
- lib - Koa middleware
- lib - Sails
- lib - socket.io
- lib - superagent/superagent test
- lib - winston
- tool - nvm
- Tricks
TypeScript
- Basics
- Basics -
///<reference> - Basics - builtin types
- Basics - declarations
- Basics - generics
- Basics - modules
- CLI
- tsconfig
- Tricks
- Tricks - CLI, config
React
Cypress
- Basics
- Basics - commands
- Basics - API
- Basics - plugin
- CLI
- TypeScript
- Idioms + tricks
- Troubleshooting
Markdown
PHP
Python
- Notes
- Notes - Package development
- Basics
- Basics - Python 2/3
- Basics - debugger
- Basics - builtin functions
- Basics - format string
- Basics - class
- Basics - module
- Basics - iterators, generators
- Basics - IO
- Basics - metaclass
- Basics - docstring
- Modules
- Module - logger
- Module - process, thread
- Module - sockets
- Module - struct
- Module - unittest
- Module - weakref, gc
- Packages
- Package - networkx
- Tool - pip
- Tool - virtualenv
- Tricks
R
Regular Expressions
x86
Misc
Studies
Books
- DevOps Handbook
- Concepts, Techniques, and Models of computer programming
- Distributed Systems Principles and Paradigms
- Mythical Man Month
- Site Reliability Workbook
- Structure and Interpretation of Computer Programs (SICP)
- …etc
Papers
- A critique of the remote procedure call paradigm
- A note on distributed computing
- Actors - a model of computing
- Architectural style and design of network-based software architectures (REST)
- First version of a dataflow procedure language
- Role based access controls
- What is an ontology
- …etc
Documentation
- RFC 6455: Websocket protocol
- RFC 7230: Hypertext Transfer Protocol (HTTP/1.1) Message syntax and routing
- RFC 7230: Hypertext Transfer Protocol (HTTP/1.1) Semantics and content
- …etc
etc..