├── 2016-august.md ├── 2016-books.md ├── 2016-conferences.md ├── 2016-december.md ├── 2016-november.md ├── 2016-october.md ├── 2016-september.md ├── 2017-august.md ├── 2017-books.md ├── 2017-december.md ├── 2017-february.md ├── 2017-january.md ├── 2017-july.md ├── 2017-june.md ├── 2017-may.md ├── 2017-november.md ├── 2017-october.md ├── 2017-quotes.md ├── 2017-september.md ├── 2018-april.md ├── 2018-august.md ├── 2018-books.md ├── 2018-december.md ├── 2018-february.md ├── 2018-january.md ├── 2018-july.md ├── 2018-june.md ├── 2018-march.md ├── 2018-november.md ├── 2018-october.md ├── 2018-quotes.md ├── 2018-september.md ├── 2019-books.md ├── 2019-december.md ├── 2019-january.md ├── 2019-june.md ├── 2019-may.md ├── 2019-november.md ├── 2019-october.md ├── 2019-september.md ├── 2020-april.md ├── 2020-august.md ├── 2020-books.md ├── 2020-february.md ├── 2020-january.md ├── 2020-july.md ├── 2020-june.md ├── 2020-march.md ├── 2021-january.md └── README.md /2016-august.md: -------------------------------------------------------------------------------- 1 | August 2016 2 | =========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### A Guide to Python's Magic Methods 8 | 9 | [Article](http://www.rafekettler.com/magicmethods.html) 10 | 11 | - `__init__` defines the initialization behaviour of an object, **but** it is not the first thing called (that's `__new__`) 12 | - `__new__` is the class constructor, passing the new class to `__init__` for initialization; mostly useful if subclassing immutable type 13 | - `__del__` is the class destructor, when the object is garbage collected (for objects that require extra cleanup after deletion); **not** reliable if the interpreter exits so good cleanup practices are still required 14 | - `__cmp__` is the basic c comparison (negative result means it's less, etc; only in Python2) 15 | - `__eq__`, `__ne__`, `__lt__`, `__gt__`, `__le__`, `__ge__` define behaviour for their operators 16 | - `functool`'s `@total_ordering` automates defining comparison methods 17 | - Unary operators: `__pos__`, `__neg__`, `__abs__`, `__invert__`, `__round__`, `__floor__`, `__ceil__`, `__trunc__` 18 | - Arithmetic operators: `__add__`, `__sub__`, `__mul__`, `__floordiv__` (`//`), `__div__` (`/`; only in Python2), `__truediv__`, `__mod__`, `__divmod__`, `__pow__` (`**`), `__lshift__`, `__rshift__`, `__and__`, `__or__`, `__xor__` 19 | - Reflective arithmetic operators (object as second argument to operator): just append `r` to the arithmetic operators; usually can just call their normal operator 20 | - Augmented assignment (operator + assignment operation): just append `i` tot he arithmetic operators 21 | - Type conversion: `__int__`, `__long__`, `__float__`, `__complex__`, `__oct__`, `__hex__`, `__index__` (when object is used in a slice operation), `__trunc__`, `__coerce__` (only in Python2) 22 | - Class representations: 23 | - `__str__` (for humans, defaults to `__repr__`) 24 | - `__repr__` (for use in code and interpreters 25 | - `__unicode__` (doesn't work when `str()` is used on class; only in Python2) 26 | - `__format__` (for use in `str.format()`) 27 | - `__hash__` (for use with `hash()`; usually for dicts along with `__eq__`) 28 | - `__nonzero__` (for `bool()`; renamed to `__bool__` in Python3) 29 | - `__dir__` (should return list of attributes for the user; usually unnecessary) 30 | - `__sizeof__` 31 | - Controlling attribute access 32 | - Encapsulation in Python comes through "magic", rather than explicit modifiers 33 | - `__getattr__` is called when a nonexistsent attribute is accessed; can be used for misspellings, deprecated attributes, or raising `AttributeError`s 34 | - `__setattr__` allows you to define custom rules for any changes in the values of attributes 35 | - `__delattr__` is similar to `__setattr__` but for deleting attributes 36 | - `__getattribute__` is similar to `__setattr__` but for getting attributes. Only works with new style classes, but can be tricky to implement 37 | - Implementing these can be tricky and can easily lead to infinite recursion 38 | - Custom sequences 39 | - Immutable containers only need `__len__` and `__getitem__` defined 40 | - Mutable containers require `__setitem__` and `__delitem__` as well 41 | - Iterable containers require `__iter__` 42 | - Others: `__reversed__`, `__contains__`, `__missing__` (only for subclasses of dict) 43 | - Reflection: `__instancecheck__`, `__subclasscheck__` 44 | - Callable objects: `__call__` allows classes to be callable (as if they were functions!) 45 | - Context managers: `__enter__`, `__exit__` 46 | - Descriptors: `__get__`, `__set__`, `__delete__` 47 | - Copying: `__copy__`, `__deepcopy__` 48 | - Pickling: `__getinitargs__` (only for old style classes in Python2), `__getnewargs__`, `__setstate__`, `__reduce__` 49 | 50 | ### Dirty Tricks From the Dark Corners of Front-End 51 | 52 | [Presentation](https://speakerdeck.com/smashingmag/dirty-tricks-from-the-dark-corners-of-front-end) 53 | 54 | - Nesting anchors can require `` tags around the nested anchor (browser short circuits on nested anchors) 55 | - Can use `` for SVGs 56 | - `:before` and `:after` works (sometimes) with `` elements 57 | - CSS `calc()` is amazing 58 | - Calculate font-sizes with vw and vh to create fluid font-sizes based on viewport size 59 | - Also for line heights 60 | - Calculate column widths and then apply `min-width` or `max-width` 61 | - Calculate the necessary overflow padding from a container (e.g. if you want a child element to be full width when nested in a container with margin) 62 | - Make sure your emails are bulletproof (test with images turned off!) 63 | - Use progressive scans of images 64 | - Use `table-layout:fixed` to fix the layout of the table based on the first row 65 | - Transitions don't work on `min-height` 66 | - Can override platform-specific emoji designs by using your own fonts that override the Unicode code points 67 | - With HTTP2, multi-stage CSS loading removes the need for critical CSS 68 | - `` tags can use a `object-fit` CSS property to be similar to `background-size: contain` and etc 69 | - CSS `currentColor` represents the calculated value of the element's `color` property 70 | - CSS `contain` allows you to define priorities for loading and painting CSS 71 | 72 | ### Writing Idiomatic Python 3 73 | 74 | [Book](https://jeffknupp.com/writing-idiomatic-python-ebook/) 75 | 76 | - When checking `if` on a variable multiple times, use an iterable: `if x in (1, 2, 3):` 77 | - Dict comprehensions also exist 78 | - So do set comprehensions 79 | - Sets have overloaded operators: `A | B` == union; `A & B` == intersect; `A - B` == difference; `A ^ B`: symmetric difference 80 | - For longer lists, use a generator expression instead of a list comprehension to save memory 81 | - Use `sys.exit()` in CLI scripts to return error codes; 0 means everything went well 82 | - The code after your `if __name__ == '__main__':` should only ever be `sys.exit(main())` 83 | - Don't use relative imports 84 | - Use the `os.path` module for file system paths 85 | 86 | ### Hitchhiker's Guide to Python 87 | 88 | [Book](http://docs.python-guide.org/en/latest/) 89 | 90 | - Use decorators 91 | - Use context managers 92 | - Most basic types (and tuples) are immutable; this includes strings 93 | - To concat a number of strings, list comprehension into array and then `"".join(list)` 94 | - Pythonic style: 95 | - Use keyword arguments generously to aid meaning 96 | - Don't change how core Python works unless you absolutely need to (e.g. object creation, imports, etc) 97 | - Put error checking returns at the top 98 | - Preferable to keep a single exit point 99 | - Use variable unpacking 100 | - Use `__` as an ignored variable when unpacking (to avoid clashes with `_`) 101 | - Length-N list of the same thing: `val = [None] * 5` 102 | - Length-N list of lists: `val = [[] for __ in range(4)]` (`xrange was renamed to `range` in Python 3) 103 | - Python's `set`s (and `dict`s) are hashtables; lookup using `in` is much more efficient than in a `list` 104 | - Use `in` or a default argument to `dict.get()` instead of `dict.has_key()` 105 | - Use `enumerate` to get the list index while using `for in` 106 | - Use parenthesed around multi-line statements to let the interpreter join the lines until the parentheses are closed 107 | - Numeric zeroes, empty sequences, empty dicts, and objects whose defined `__bool__()` or `__len__()` methods return falsey values 108 | - Use `not` instead of `!` to revert logic 109 | - Documentation 110 | - Use docstrings 111 | - Do not use trip-quote strings for block-level comments 112 | - Logging 113 | - The user should dictate what happens when a logging event occurs, not the library 114 | - Instatiate loggers in a library by only using the `__name__` variable; this ensures no name collisions 115 | - Gotchas 116 | - Default arguments are created once during function definition, **AND CAN BE MUTATED** 117 | - Use a default argument to signal that no argument was provided to create a new object instead 118 | - Can be useful as a way to define static variables (i.e. to cache state between calls) 119 | - Closures are late binding; they only look up enclosed variables when the closure is actually invoked 120 | - Mostly felt when looping to create unique functions 121 | - Instead, bind a local variable or default parameter to the indended enclosed variable 122 | - `.pyc` files are automatically generated and should be ignored from version control 123 | - Use `PYTHONDONTWRITEBYTECODE=1` to disable this behaviour 124 | - Not supplying a license: "In the US, if no license is specified, users have no legal right to download, modify, or distribute." 125 | - Web scraping 126 | - Use `lxml` to parse XML and HTML 127 | - Performance 128 | - CPython is slow 129 | - The GIL (Global Interpreter Lock) prevents multi-threaded Python; necessary as CPython's memory management is not thread-safe 130 | - Maximizing performance requires a strong understanding of the GIL 131 | - Running another Python instance in another process does not run into this limitation (see `ThreadPoolExecutor` and `ProcessPoolExecutor` 132 | 133 | ### Intro to cron 134 | 135 | [Article](http://www.unixgeeks.org/security/newbie/unix/cron-1.html) 136 | 137 | - Format: `min hr dom month dow cmd` 138 | - `crontab -e` loads your crontab file in your `$EDITOR` 139 | 140 | ### Asynchronous Tasks With Django and Celery 141 | 142 | [Article](https://realpython.com/blog/python/asynchronous-tasks-with-django-and-celery/) 143 | 144 | - `pip freeze > requirements.txt` is pretty rad 145 | 146 | ### The Most Diabolical Python Antipattern 147 | 148 | [Article](https://realpython.com/blog/python/the-most-diabolical-python-antipattern/) 149 | 150 | - Never `except Exception` and pass, as it hides all errors 151 | - At the least, log the exception and its stack trace 152 | - Only silently pass specific exception classes that you know about in advance 153 | 154 | ### Beyond PEP 8 -- Best practices for beautiful intelligible code 155 | 156 | [Video](https://www.youtube.com/watch?v=wf-BqAjZb8M) 157 | 158 | - **Make sure your code isn't beautiful but bad!** 159 | - **Don't let PEP8 / etc cloud your vision (look for Pythonic vs Non-Pythonic instead); pay attention to things that really matter!** 160 | - **Use adapter patterns to wrap bad packages with good interfaces!** 161 | - Prefer Python's context managers for setup / cleanup code (e.g. `__enter__`, `__exit__`) 162 | - Use Python's property descriptors rather than getters / setters 163 | - Use iterables when you have iterables 164 | - Avoid unnecessary packaging 165 | - Use magic methods (e.g. `__len__`, `__getitem__`) 166 | - Use `__repr__` 167 | - Wrap bad exceptions with good ones 168 | 169 | ### Transforming Code into Beautiful, Idiomatic Python 170 | 171 | [Video](https://www.youtube.com/watch?v=OSGv2VnC0go) 172 | 173 | - Stop thinking in indicies 174 | - Use `enumerate` to get foreach indicies 175 | - Use `izip` to loop over multiple collections (iterator'd `zip`) and dict creation out of two lists 176 | - Better performance: make sure your code is running in L1 cache! 177 | - Use `key` functions to sort, instead of comparision functions 178 | - `iter`'s second parameter is a sentinel value 179 | - `for-else` exists 180 | - Use `dict.keys()` to iterate over a dict if you'll be mutating it 181 | - Use `dict.iterItems()` for an iterable over the dict 182 | - Use `defaultdict` for dictionaries with defaults (needs to be converted back to a dict sometimes) 183 | - Use `namedtuple`s! 184 | - "Don't break atoms of thought into subatomic particles" 185 | 186 | ### Stop Writing Classes 187 | 188 | [Video](https://www.youtube.com/watch?v=o9pEzgHorH0) 189 | 190 | - Prefer easy things over complicated things 191 | - "I hate code and I want as little of it as possible in our product" 192 | - Ship **features** not code 193 | - If you think you need it later, **do it later** 194 | - Namespaces are not for creating taxonomies; use them to prevent name collisions 195 | 196 | ### Credentials: A Retrospective of Mild Successes and Dramatic Failures 197 | 198 | [Article](http://manu.sporny.org/2015/credentials-retrospective/) 199 | 200 | - Interesting retrospective on current and past identity schemes 201 | - Sets out a number of criteria to judge strength identity schemes 202 | 203 | ### The case for setImmediate() 204 | 205 | [Article](https://www.nczonline.net/blog/2013/07/09/the-case-for-setimmediate/) 206 | 207 | - Modern `setImmediate()`s have a 4ms timer; using 0, 1, 2, 3, or 4 mean the same thing 208 | - `requestAnimationFrame()` is more useful for animations; it requests a new UI update after the current one 209 | - `setImmediate()` inserts the task after the last paint event in the current event loop 210 | - Node has `process.nextTick()` as a similar API 211 | - Polyfills needed for use 212 | 213 | ### Telehash 214 | 215 | [Website](http://telehash.org/) 216 | 217 | - Secure (full end-to-end encryption), mesh networking protocol 218 | - Mesh: encrypted sessions (links) between any two endpoints 219 | 220 | ### Pure UI 221 | 222 | [Article](http://rauchg.com/2015/pure-ui/) 223 | 224 | - **UI as a pure function of application state** 225 | - "When the magnitude of the undertaking is not clear for the developer or designer, let alone for the people removed from the creation process, it’s simply impossible to make any accurate predictions." 226 | - Break designs into their smallest possible variations and implement against those 227 | - **"A distinction of two very distinct (yet frequently interleaved) phases of the creation process: design and discovery"** 228 | - Design, discover all possible variations, design, rediscover, etc. 229 | - **"Applications must handle different states that are difficult to replicate under normal testing conditions."** 230 | 231 | ### Always on top in MacOS Yosemite 232 | 233 | [Article](http://www.perfectlyrandom.org/2015/01/31/always-on-top-in-macos-yosemite/) 234 | 235 | - Keeping random GUI windows afloat (i.e. always on top) on OSX is possible 236 | 237 | ### Hall of api shame: boolean trap 238 | 239 | [Article](https://ariya.io/2011/08/hall-of-api-shame-boolean-trap) 240 | 241 | - Don't add boolean parameters 242 | - Prefer obvious, keyword, or human-readable arguments instead 243 | 244 | ### Fuzz testing 245 | 246 | [Article](https://en.wikipedia.org/wiki/Fuzz_testing) 247 | 248 | - Chaos testing 249 | - Most common for file formats, network protocols 250 | - Most useful when testing input that crosses a trust protocol (i.e. user-generated content) 251 | 252 | ### Falsehoods Programmers Believe About Names 253 | 254 | [Article](https://www.kalzumeus.com/2010/06/17/falsehoods-programmers-believe-about-names/) 255 | 256 | - Long list of wrong myths about people and their names 257 | 258 | 259 | Life 260 | ---- 261 | 262 | ### Warren Buffett’s “2 List” Strategy: How to Maximize Your Focus and Master Your Priorities 263 | 264 | [Article](http://jamesclear.com/buffett-focus) 265 | 266 | 1. Write down your top 25 career goals 267 | 1. Circle the top 5 goals 268 | 1. Eliminate the rest. **"Everything you didn’t circle just became your Avoid-At-All-Cost list. No matter what, these things get no attention from you until you’ve succeeded with your top 5.”** 269 | 270 | ### How to be More Productive and Eliminate Time Wasting Activities by Using the “Eisenhower Box” 271 | 272 | [Article](http://jamesclear.com/eisenhower-box) 273 | 274 | - **Immediately do** urgent and important tasks 275 | - **Schedule for later** important but not urgent tasks 276 | - **Delegate** urgent but not important tasks 277 | - **Eliminate** neither urgent nor important tasks 278 | 279 | ### How to Stop Procrastinating by Using the “2-Minute Rule” 280 | 281 | [Article](http://jamesclear.com/how-to-stop-procrastinating) 282 | 283 | - Do anything that only takes two minutes **immediately** 284 | - Any new habit should be started within two minutes, let **momentum** carry you to do it further 285 | 286 | ### How to Solve Difficult Problems by Using the Inversion Technique 287 | 288 | [Article](http://jamesclear.com/inversion) 289 | 290 | - Look at a problem and think about the exactly opposite of what you want to achieve 291 | - E.g. Instead of how to be a better manager, ask what would a terrible manager do? 292 | - **"It is far easier to avoid stupidity than it is to create genius."** 293 | 294 | ### Mental Models: How Intelligent People Solve Unsolvable Problems 295 | 296 | [Article](http://jamesclear.com/feynman-mental-models) 297 | 298 | - **"Point of View is worth 80 IQ points"** 299 | - Develop multiple perspectives to look at a problem, and select the best for the problem at hand 300 | - Developing perspectives: 301 | - Read and do things outside of the norm 302 | - Link separate, seemingly disparate ideas with others 303 | 304 | ### First Principles: Elon Musk and Bill Thurston on the Power of Thinking for Yourself 305 | 306 | [Article](http://jamesclear.com/first-principles) 307 | 308 | - Think from first principles, not analogies 309 | - Build up from fundamental, hard facts to solve problems 310 | 311 | ### Be Coachable 312 | 313 | [Article](http://sockpuppet.org/blog/2015/08/21/be-coachable/) 314 | 315 | - **“If you don’t fall, you’re not trying hard enough.”** 316 | 317 | ### The Science of Speaking is the Art of Being Heard 318 | 319 | [Article](http://firstround.com/review/the-science-of-speaking-is-the-art-of-being-heard/) 320 | 321 | - Amygdala rewiring === rewiring fight, flight, or freeze instinct 322 | - Goal is to remove differences as much as possible to make the listener feel comfortable to be engaged 323 | - **Goal of management is a high performing team, focused on outputs, which can only be coordinated by communication** 324 | - **Meta models for effective communication** 325 | - *Toward vs. Away*: Optimist vs pessimest 326 | - Toward: motivated to attain goals, **use words like "gain", "obtain", "achieve", ...** 327 | - Away: motivated to solve problems, **use words like "avoid", "exclude", ...** 328 | - **Frame actions as either moving away from something or towards another** 329 | - *Internal-referencing vs External-referencing*: Internal vs external motivators 330 | - Internal: decisions are based on their own self, **use language like "you decide", "what do you think"** 331 | - External: seek external information and feedback from others, **use language like "feedback", "approval", "others..."** 332 | - **How do you know you've done a good job at x** 333 | - *Specific vs General*: Details vs overview 334 | - Specific: operate with details, **use words like "exactly", "precisely"** 335 | - General: focus on overview, **use language like "essentially", "generally"** 336 | - *See, Heard, Read, Do*: Vector of convincing and persuasion 337 | - See: influenced by what they perceive **(55%)** 338 | - Hear: influenced by what they hear **(30%)** 339 | - Do: influenced by past and current action **(12%)** 340 | - Read: influenced by what they read **(3%)** 341 | - **How do you know that someone else is good at their job?** 342 | 343 | ### Interviewing to Hire Trailblazers, Nonconformists and Originals 344 | 345 | [Article](http://firstround.com/review/adam-grant-on-interviewing-to-hire-trailblazers-nonconformists-and-originals/) 346 | 347 | - "You want people who choose to follow because they genuinely believe in ideas, not because they’re afraid to be punished if they don’t." 348 | - Seeds a resilient culture 349 | - Hire as many originals as possible 350 | - Look for: 351 | - Unsung heroes 352 | - Insubordinates 353 | - Inward-facing innovators 354 | - Interviewing: 355 | - Do they default to challenging? Can they challenge the quo? 356 | - **"Why shouldn't I hire you?"** 357 | - **“Originals are constructive contrarians. They're not just pointing out that the emperor has no clothes; they're also tailors.”** 358 | - Look for diversity, curiosity 359 | - Find out what they've tried but given up; "their roads not taken" 360 | - Force references to be candid: make them choose between two seemingly undesirable choices 361 | 362 | ### The ‘Adaptable Leader’ is the New Holy Grail — Become One, Hire One 363 | 364 | [Article](http://firstround.com/review/the-adaptable-leader-is-the-new-holy-grail-become-one-hire-one/) 365 | 366 | - Constant learners can adjust to any new environment or role quickly 367 | - **"When you boil it down, learning is about changing your mind"** 368 | - **Gamer**: Take risks, be optimistic, keep trying 369 | - Clarity of objectives empowers individuals to be resourceful 370 | - **"How would we approach this if it were a game?"** 371 | - "The gameful leader expects adversity, but remains excited about solving the puzzle." 372 | - **Beginner**: Be childlike and curious 373 | - Ask "why not" and "what if" 374 | - Reason from first principles 375 | - Take "yourself out of autopilot to shift into awe, curiosity, and wonder" 376 | - **"What would I think about this if I had no biases, or if I had never seen a situation like this before?"** 377 | - “What do I believe that the rest of the world doesn’t?” 378 | - "Create an inner alarm to sound the moment you have the thought: ‘Of course, this the way to do it!’ Silence it by stepping back and reassessing the situation." 379 | - "The only way to avoid bias and to stay open to the possibilities of learning, is vigilance." 380 | - **"Value asking questions and people who ask questions"** 381 | - "What have you learned in this conversation?" 382 | - **Growth**: Your performance is always a reflection of your current self, which will grow in the future 383 | - Relish in taking on challenges 384 | - Possess a self-motivated passion for learning; always be in self-improvement and self-actualization mode 385 | - "Doing the right thing is more important than doing things right." 386 | - **Premature perfectionism is the root of all evil. Get the feedback you need immediately.** 387 | - Be around constant learners, always look to hire constant learners 388 | - References: ‘Please call me back if this is an outstanding candidate for a job that requires learning.’ 389 | - **"Hire people for the way they approach problems."** 390 | - Make it clear to new team members you believe they'll make a difference and will get to grow a lot 391 | - Help new team members set goals so they can experience wins early on and constantly 392 | - **"We’re not knowledge workers. We’re learning workers."** 393 | 394 | ### This 90-Day Plan Turns Engineers into Remarkable Managers 395 | 396 | [Article](http://firstround.com/review/this-90-day-plan-turns-engineers-into-remarkable-managers/) 397 | 398 | - Put away the pencil to write code 399 | - 0-30: Educate 400 | - 31-60: Find rhythm and style 401 | - 61-90: Assess this is a good fit for you 402 | - Management is in all three directions: above, beside, and below 403 | - **"You no longer ride on the rollercoaster. But you operate it."** 404 | - Manage only if that's what you want, if you can channel empathy, and if you can give trust 405 | - Figure out which are the important meetings, and cancel others 406 | - Build an event loop / pipeline for the current day, week, month, quarter 407 | - If this isn't for you, it's OK to step down after trying it! 408 | 409 | ### Don't Call Yourself A Programmer, And Other Career Advice 410 | 411 | [Article](http://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/) 412 | 413 | - **"Engineers are hired to create business value, not to program things"** 414 | - **"Nobody ever outsources Profit Centers"** 415 | - **Describe your accomplishments by increasing revenues or decreasing costs** 416 | - **Strive to help people** 417 | - **Most important professional skill is communication** 418 | - **"Modesty is not a career-enhancing character trait"** 419 | 420 | ### Salary Negotiation: Make More Money, Be More Valued 421 | 422 | [Article](http://www.kalzumeus.com/2012/01/23/salary-negotiation/) 423 | 424 | - **Salary negotiations are important** 425 | - **"Rich, successful people negotiate** 426 | - Start salary negotiations after all interviews and a fit looks possible 427 | - **Never give up your number first**; use any number of excuses 428 | - Repeat other people's words back to them for convincing; take notes! 429 | - Stress "we" or "you" benefits 430 | - Use things other than the salary to negotiate 431 | - Use some new information to convince others you're valuable 432 | 433 | ### The Hiring Post 434 | 435 | [Article](http://sockpuppet.org/blog/2015/03/06/the-hiring-post/) 436 | 437 | - Interviewing is a terrible medium for hiring 438 | - Interviews are hostile environments for candidates 439 | - Interviews are biased twoards candidates who are good at interviews 440 | - Ideas: 441 | 1. Warm up candidates. Welcome them with an initial call. Send them material to review. 442 | 1. Build a standardized interviewing format for every interviewer to follow. **Interviewers should hate it!** Use a script. 443 | 1. Make sure the standardized format generates data, and is testable. 444 | - Strip existing systems and let the candidate build part of it back up 445 | - Collect objective facts for causation metrics (when looking back) 446 | - Score candiates using the same rubric 447 | - Remove tests that don't predict well 448 | - Avoid pressured situations 449 | 1. Checklist: 450 | - Is it consistent? Does every candidate get the same interview? 451 | - Does it correct for hostility and pressure? Does it factor in “confidence” and “passion”? If so, are you sure you want to do that? 452 | - Does it generate data beyond hire/no-hire? How are you collecting and comparing it? Are you learning both from your successes and failures? 453 | - Does it make candidates demonstrate the work you do? Imagine your candidate is a “natural” who has never done the work, but has a preternatural aptitude for it. Could you hire that person, or would you miss them because they have the wrong kind of Github profile? 454 | - Are candidates prepped fully? Does the onus for showing the candidate in their best light fall on you, or the candidate? 455 | 456 | Random 457 | ------ 458 | 459 | ### The Raspberry Pi Has Revolutionized Emulation 460 | 461 | [Article](https://blog.codinghorror.com/the-raspberry-pi-has-revolutionized-emulation/) 462 | 463 | - RP3 has wifi!!! 464 | - Cool available starter packs 465 | 466 | ### WELCOME TO AIRSPACE 467 | 468 | [Article](http://www.theverge.com/2016/8/3/12325104/airbnb-aesthetic-global-minimalism-startup-gentrification) 469 | 470 | - Design is becoming homogenized across the world, **digital globalization (of taste)** is somewhat of an apt description (or at least, a cause) 471 | - Tasteful, but generic and empty; made to make changing places as frictionless as possible 472 | - An anchoring to a recognizable home in an unfamiliar environment 473 | - **Placelessness** and **digital nomads** are starting to become themes 474 | - **The gentrification of taste**; **depersonalization** and the loss of identity 475 | - **"AESTHETIC HOMOGENEITY IS A PRODUCT THAT USERS ARE COMING TO DEMAND"** 476 | - **URBAN AREAS AROUND THE WORLD MIGHT INCREASINGLY RESEMBLE EACH OTHER AND BECOME INTERCHANGEABLE** 477 | -------------------------------------------------------------------------------- /2016-conferences.md: -------------------------------------------------------------------------------- 1 | Conferences 2 | =========== 3 | 4 | ### Web Summit 5 | 6 | *Collection of random thoughts from talks / conversations* 7 | 8 | - Fintech: Focus on the full stack 9 | - There was a lot of prior focus on the frontend, but the backend is also ripe for innovation (e.g. clearing, etc) and an integrated solution is key 10 | - Joseph Gordon Levitt: **Creators first**, fair commission and attribution 11 | - Union Square Ventures (on blockchains): 12 | - Innovations usually start out as a worse version of something we can relate to, e.g. blockchains are like a crappy database right now 13 | - Have to find the marginal uses for new technology to see their futures 14 | - Try to supplement current infrastructure before disrupting it (e.g. Ripple as an information layer over traditional financial infrastructure) 15 | - Key question: how to incentivize providers of infrastructure? Especially in decentralized settings? 16 | - Focus on protocols, e.g. protocol for moving money around 17 | - UX as an opiate: Everyone and everything competes for attention 18 | - We should define good rules of engagement for attention-sucking experiences 19 | - It's a race to the bottom for attention; we need to redefine our values and goals to make sure that attention is spent usefully 20 | - Ad based models create unbounded hunger for attention 21 | - **Make the right choices easy because that's what people will reach for** 22 | - Perl (Larry Wall): **Focus on the community, and get the culture right** 23 | - Start up advice: 24 | - Talk to, and get advice from, those who have just gone through the same thing (things change fast, and you want recent opinions!) 25 | - Keep investors updated: even if they didn't invest the first time, they might the next time. 26 | - Ask other founders and CEOs to talk about their interactions with their investors so you know who you might be stuck in bed with 27 | - Get warm introductions from **good** founders (they really matter!) 28 | - Empathy in an organization: **Make sure someone is fighting for it** 29 | - E.g. making everyone come out of an interview feel positive 30 | - Daniel Pink: **Drive. Motivation from destination.** 31 | - Don't forget where you're going, and why you're going there. 32 | - Establish feedback loops and measure to make sure you're getting closer 33 | - Only you can make sure you're taking care of yourself 34 | - APIs and Stack Overflow (Jon Skeet): **Trust the other side's intentions, and help them!** 35 | - Don't criticize symptoms from the other side; they're your fault! 36 | - Dig into the root goal of someone and try to understand them 37 | - Help your users if they screw up, and learn from how they screwed up! 38 | -------------------------------------------------------------------------------- /2016-december.md: -------------------------------------------------------------------------------- 1 | December 2016 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### "Scale" FUD and Style Components 8 | 9 | [Article](https://medium.learnreact.com/scale-fud-and-style-components-c0ce87ec9772#.m4n8uphxb) 10 | 11 | - Might be useful to hide and abstract CSS implementation details by encapsulating them within a component 12 | 13 | ### Let Postgres Do The Work 14 | 15 | [Article](http://sorentwo.com/2013/12/30/let-postgres-do-the-work.html) 16 | 17 | - Ordered primary keys (increasing over time) can be a good substitute for time itself in calculations (as an optimization) 18 | 19 | ### Code Review Done Right 20 | 21 | [Article](https://jezenthomas.com/code-review-done-right/) 22 | 23 | - Code reviews should be about sharing your approach to a problem and to ignite a discussion 24 | - Should involve both sharing and learning, on the committer and reviewer 25 | - "If the one thing standing between a commit and a production deploy is human discipline, you have broken software" 26 | - "When giving criticism, nothing is the committer’s fault. If there is a problem in a commit, it’s everyone’s problem in our codebase, and it’s everyone’s responsibility to rectify." 27 | - "When giving encouragement, it is the committer who receives direct praise. If you rose above and beyond the call, then you deserve the kudos." 28 | 29 | ### How Google Cloud Platform is Challenging AWS 30 | 31 | [Article](https://stratechery.com/2016/how-google-cloud-platform-is-challenging-aws/) 32 | 33 | - "[Amazon] shouldn’t try to guess what kind of services they might want; such guesses would be based on patterns of the past. Instead, it should be creating primitives — the building blocks of computing — and then getting out of the way." 34 | - Companies tend to ship their org chart (e.g. AWS is a bunch of primitives, the iPhone is a unitary design) 35 | - "The ideal product... achieves simplicit and a great user experience through tremendous effort in design and engineering that, ideally, is never seen by the end user" 36 | - "Aggregation Theory: as distribution (or switching) costs decrease, the importance of the user experience increases" 37 | - By open sourcing its machine learning tools, Google believes its machine learning infrastructure is a sustainable source of competitive advantage 38 | 39 | ### This AI Boom Will Also Bust 40 | 41 | [Article](http://www.overcomingbias.com/2016/12/this-ai-boom-will-also-bust.html) 42 | 43 | - Most ML/AI techniques being used right now are better suited for large scale problems, but there's not many of these large scale problems that can benefit 44 | - If the hype was real, we would be seeing much larger displacement from ML/AI now 45 | 46 | ### not(AdviceForHackers) 47 | 48 | [Article](http://edw519.posthaven.com/not-adviceforhackers) 49 | 50 | - Emphasize the future, not the past; you can't change the past 51 | - You can't read other's minds 52 | - There are only consequences; in life we have known input but an unknown process (so no predictable results) 53 | - "It's about adjusting the controls to maximize the possibility of desirable consequences." 54 | - Don't expect others to do something you want them to do if they don't want to do it 55 | - Don't be bothered by other's expectations 56 | - "Being different isn't the problem. Forgetting that we are is." 57 | - Nobody is always right; don't be foolish and don't always believe people 58 | - Don't blame external factors, and don't give up 59 | 60 | ### How my High School Job Prepared me for Building Software 61 | 62 | [Article](http://edw519.posthaven.com/how-my-high-school-job-prepared-me-for-building-software) 63 | 64 | - Working at McDonalds in a fast-paced demand environment is like scaling 65 | - In order to be able to scale (and write lots of software), you have to be set up to do so: tools, people, processes, etc. 66 | - If you're not ready to serve by the time a customer comes, you're probably too late 67 | - Have to react quickly to deliver; nobody has the patience for you 68 | - Crunch time can come anytime (for software businesses), it's important to be set up to handle it 69 | - One person: one set of burgers in 5 min. Two people: 3 sets of burgers in 5 min. Thre people: 6 sets. 70 | - **2x people = 3x productivity, 3x people = 6x productivity** 71 | - Anything more, might get too crowded 72 | - Managers should be able to do, and doers should be able to manager 73 | - **The difference between mediocre and good is small. The difference between good and great is large.** 74 | - Get good working habits; you'll keep them and benefit from them! 75 | - "Good workers refused to work in dirty work areas. They refused to release deficient product. They refused to put off what could be done later because they knew it would grow to twice as much work later and screw everything else up in the interim. And most of all, they hated working with those who didn't have the same good habits." 76 | 77 | ### Hitting the High Notes 78 | 79 | [Article](https://web.archive.org/web/20130601125631/http://joelonsoftware.com/articles/HighNotes.html) 80 | 81 | - **The real goal for software companies should be converting capital into software that works** (not a better mousetrap) 82 | - Low cost software doesn't make sense, because duplicating software is free; the cost of programmers spreads out over all the copies of software sold 83 | - **Design adds value faster than it adds cost** 84 | - You can't substitute more people for a productive person 85 | - Brook's Law: "adding manpower to a late software project makes it later"; communication overhead has costs 86 | - Average producers will never produce the best 87 | 88 | 89 | Life 90 | ---- 91 | 92 | ### Before You Grow 93 | 94 | [Article](https://blog.ycombinator.com/before-you-grow/) 95 | 96 | - "If you focus on trying to grow before you make a product people love, you are unlikely to succeed." 97 | - Retaining users is the hard part, aim for organic growth 98 | 99 | ### Why VCs sometimes push compnaies to burn too fast 100 | 101 | [Article](https://blog.ycombinator.com/why-vcs-sometimes-push-companies-to-burn-too-fast/) 102 | 103 | - "It may not be surprising, then, that the more money a founder has in the bank, the stronger their position when fundraising. In fact, we’ve seen a few YC companies raise financing rounds without having spent any of the money from a prior round." 104 | 105 | ### The perils of mixing open source and money 106 | 107 | [Article](http://david.heinemeierhansson.com/2013/the-perils-of-mixing-open-source-and-money.html) 108 | 109 | - Natural boundary of constraints (of OSS) with time and cost means you're probably not going to embellish it 110 | - "Work will expand to fill the amount raised" ;) 111 | - Motivations change if there are external, expected rewards (usually less intrinsic (good) motivation) 112 | 113 | ### The Ethics of Unpaid Labor and the OSS Community 114 | 115 | [Article](https://www.ashedryden.com/blog/the-ethics-of-unpaid-labor-and-the-oss-community) 116 | 117 | Random 118 | ------ 119 | -------------------------------------------------------------------------------- /2016-september.md: -------------------------------------------------------------------------------- 1 | September 2016 2 | ============== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Asynchronous Object Initialization 8 | 9 | [Article](http://as.ynchrono.us/2014/12/asynchronous-object-initialization.html) 10 | 11 | - Avoid creating half-instantiated objects (e.g. part of it is still initializing asynchronously) 12 | - Objects should primarily be about representing state; `__init__` should primarily be about accepting that state and turning it into a complete, internally consistent state 13 | - Use an asychronous factory instead 14 | 15 | ### Node with Docker - continuous integration and delivery 16 | 17 | [Article](http://mherman.org/blog/2015/03/06/node-with-docker-continuous-integration-and-delivery/#.VnmxVpMrLOQ) 18 | 19 | - Some docker set up, CI tests, and deployment automation 20 | 21 | ### License from who 22 | 23 | [Article](https://writing.kemitchell.com/2016/05/13/License-from-Who.html) 24 | 25 | - Provenance: answers "Who owns this IP"? 26 | - Only owners can license others to copy, change, share, and sublicense 27 | - The "author" of software may not own the IP; e.g. if he was working for someone else 28 | - Author can't license without owner's permission 29 | 30 | ### How to get a job in deep learning 31 | 32 | [Article](http://blog.deepgram.com/how-to-get-a-job-in-deep-learning/) 33 | 34 | - Building and training a large neural network with transformations between the input and output 35 | - **See** for links to other material 36 | 37 | ### Pylons Unit Testing Guidelines 38 | 39 | [Article](http://docs.pylonsproject.org/en/latest/community/testing.html) 40 | 41 | - Don't be too clever in your tests! It hides the intent and makes subsequent failure harder to figure out 42 | - Don't try to replace documentation with "doctests" 43 | - Ask: 44 | - Is the intent of the test clearly explained by the name? 45 | - Does it follow the canonical form of a test: set up preconditions, call the unit at test once, make assertions about the return, and **DO ABSOLUTELY NOTHING ELSE**? 46 | - Tests should be as simple as possible, run as quickly as possible, and decoupled from others 47 | - Import the module-under-test in each individual test case; import failures then only cause the individual test cases to fail rather than the test cases to not run 48 | - Use helper functions instead of attributes on ``self`` 49 | 50 | ### API Design for Library Authors 51 | 52 | [Video](https://www.youtube.com/watch?v=Tedt47e9qsQ) 53 | 54 | - Global state (e.g. module state in Python) is precious 55 | - AVOID MUTATING OR DEPENDING ON IT! 56 | - If it's convenient, give the user an escape hatch to not use the convenient API if they don't 57 | want side effects to happen 58 | - Depend on global state only if it's inherent to the OS / system (e.g. Windows vs Linux) 59 | - Don't bootstrap your application before `__name__ == '__main__'` is true 60 | - "Push statefulness to a higher level and let the caller worry about it" 61 | - If you keep doing this, you'll end up with mostly functional code 62 | - You can always add convenience to a library, but you can't take it away 63 | - Focus on the inconvenient version first 64 | - Don't expose things that are not logically global as imports 65 | - Design API so that functions receive instances of these objects 66 | - **Convenience != Cleanliness** 67 | - Clean means maximally convenient and understandable in unexpected cases 68 | - Design with fewer limiting assumptions! 69 | - Composition should usually be favoured over inheritance 70 | - Good choice when the problem and interface is well-defined and understood (should **always** be true when writing a library) 71 | 72 | 73 | ### Using Trust in Open Networks 74 | 75 | [Article](https://ssbc.github.io/docs/articles/using-trust-in-open-networks.html) 76 | 77 | - "Trust-ranking is a key feature of open networks with shared data-structures" 78 | - [Two primary means of managing trust:](http://www.inf.ufsc.br/~gauthier/EGC6006/material/Aula%206/A%20survey%20of%20trust%20in%20computer%20science%20and%20the%20Semantic%20Web.pdf) 79 | - Policy based: managing and exchanging credentials, access policies 80 | - Reputation based: past interactions and performance determines future trust 81 | - Policy-based schemes scale poorly, since you have to make a decision on every other agent 82 | - Reputation allows trust decisions to be automated 83 | 84 | ### Virtualenv Lives 85 | 86 | [Article](https://hynek.me/articles/virtualenv-lives/) 87 | 88 | - Use virtualenv along with Docker / VMs; Docker / VMs don't replace virtualenv since system-wide 89 | packages are still installed 90 | 91 | ### Why Everyone Should Use Attrs 92 | 93 | [Article](https://glyph.twistedmatrix.com/2016/08/attrs.html) 94 | 95 | - [`attrs`](https://attrs.readthedocs.io/en/stable/) is the Python of the future 96 | 97 | ### Better Python Object Serialization 98 | 99 | [Article](https://hynek.me/articles/serialization/) 100 | 101 | - [PEP 443](https://www.python.org/dev/peps/pep-0443/) and `functools.singledispatch` are cool! 102 | - Allows you to register custom function handlers based on the type of the arguments 103 | 104 | ### Python Development Anti-Patterns 105 | 106 | [Article](https://hynek.me/articles/python-deployment-anti-patterns/) 107 | 108 | - "Key infrastructure must not be dictated by third parties." 109 | - Pinpoint your release dependencies with `pip freeze` 110 | - "You have the responsibility to monitor them [security updates] yourself anyway" 111 | - Use [`supervisord`](http://supervisord.org/) to run remote daemons 112 | - Separate app configuration from the actual app (use something like ansible, chef, salt, etc) 113 | 114 | ### Advancing in the Bash Shell 115 | 116 | [Article](http://samrowe.com/wordpress/advancing-in-the-bash-shell/) 117 | 118 | - `!!` runs last command 119 | - `!xyz` runs last command matching `xyz` 120 | - `!` runs last command with number `` 121 | - `!<...>:p` prints what would be executed, and adds it to history so you can do `!!` to run it 122 | - `!$` expands to the last argument ("word") of the previous command, `!*` expands to all arguments 123 | - `^^` runs last command with `` replaced with `` 124 | - Some other word modifiers: 125 | - `:h` (keep dir) 126 | - `:t` (keep file) 127 | - `:r` (keep file name) 128 | - `:e` (keep file extension) 129 | - `:s` (substitute text) 130 | - `:g` (global, usually used with others, like `:s`) 131 | 132 | ### Immutability, MVCC, and Garbage Collection 133 | 134 | [Article](http://www.xaprb.com/blog/2013/12/28/immutability-mvcc-and-garbage-collection/) 135 | 136 | - "Immutability results in a lot of nice, elegant properties" 137 | - Immutability is costly: 138 | - Infinitely increasing space 139 | - Fragmentation (of data), current state of data may be spread out 140 | - Lots of people may fall into an "tiny worst-case scenario" that's not handled well by desiging for immutability 141 | - Opinion: ACID + MVCC solve some of the immutability issues 142 | - Use "short-term immutability" along with optimizations for space and IO 143 | 144 | ### Accountants Don't Use Erasers 145 | 146 | [Article](https://blogs.msdn.microsoft.com/pathelland/2007/06/14/accountants-dont-use-erasers/) 147 | 148 | - "The database is a cache of a subset of the log" 149 | 150 | ### A Guide to 256 Colors 151 | 152 | [Article](http://lucentbeing.com/writing/archives/a-guide-to-256-color-codes/) 153 | 154 | - Terminals are built *serially*; they only have one pass to display text 155 | - Delimiters for terminals are escape characters 156 | 157 | ### The Power of B-trees 158 | 159 | [Article](http://guide.couchdb.org/draft/btree.html) 160 | 161 | - "If you weren’t looking closely, CouchDB would appear to be a B-tree manager with an HTTP interface." 162 | - Data is only kept at the leaf nodes, and the height is small enough that the OS can cache the higher level nodes 163 | - Using `_rev`, MVCC, and keeping around old versions of documents, readers could be reading multiple versions of a document at once (based on when they started reading) 164 | - The database file only grows at the end (an append-only B-tree) 165 | 166 | ### Golang is Trash 167 | 168 | [Article](http://dtrace.org/blogs/wesolows/2014/12/29/golang-is-trash/) 169 | 170 | ### Smart Contracts Make Slow Blockchains 171 | 172 | [Article](http://www.multichain.com/blog/2015/11/smart-contracts-slow-blockchains/) 173 | 174 | - May not make sense to introduce currency to private blockchains, limiting `gas` implementations and instead just enforcing a hard computational limit 175 | - Smart contracts require global locks, hindering concurrency, as they may change any other contract's state 176 | - Transactions cannot be processed until their order in the blockchain is confirmed 177 | - Thought: possibly use the public blockchain to store code, and then execute it yourself 178 | 179 | ### Four Genuine Blockchain Use Cases 180 | 181 | [Article](http://www.multichain.com/blog/2016/05/four-genuine-blockchain-use-cases/) 182 | 183 | - Confidentiality of shared ledgers is a big problem in finance 184 | - "Blockchains represent a trade-off in which disintermediation is gained at the cost of confidentiality." 185 | - Use cases: 186 | - Lightweight financial systems 187 | - Remove the centralized control and concerns involved (e.g. security) 188 | - E.g. crowdfunding, gift cards, etc. 189 | - Provenance tracking 190 | - Remove centralized trust 191 | - Certificate of authenticities 192 | - Interorganizational record keeping 193 | - Jointly manage data, without involving intermediaries 194 | - Audit trails of data, e.g. communication 195 | - Multiparty aggregation 196 | - Avoid combining multiple systems of stored data together, or giving it to an intermediary 197 | 198 | Life 199 | ---- 200 | 201 | ### What's the Most Difficult CEO Skill? Managing Your Own Psychology 202 | 203 | [Article](https://techcrunch.com/2011/03/31/what%E2%80%99s-the-most-difficult-ceo-skill-managing-your-own-psychology/) 204 | 205 | - "If CEOs were graded on a curve, the mean on the test would be 22 out of a 100. This kind of mean can be psychologically challenging for a straight A student." 206 | - It's **impossible** to not make mistakes managing a large number of people; don't take it personally and too harshly 207 | - Be rational; separate out the importance of issues from your emotions 208 | - "Tip to aspiring entrepreneurs: if you don’t like choosing between horrible and cataclysmic, don’t become CE" 209 | - Techniques to help: 210 | - Make friends who have gone through or are going through the same 211 | - Get things on paper, and for second opinions 212 | - Focus on where you are going rather than what can go bad 213 | - Don't quit! 214 | 215 | ### A philosopher’s 350-year-old trick to get people to change their minds is now backed up by psychologists 216 | 217 | [Article](http://qz.com/778767/to-tell-someone-theyre-wrong-first-tell-them-how-theyre-right/) 218 | 219 | - Tell people how they're right to reframe their mind to what they've missed 220 | 221 | ### Investing For Geeks 222 | 223 | [Article](https://training.kalzumeus.com/newsletters/archive/investing-for-geeks?__s=esaiz3kazigwidftsigk) 224 | 225 | - Buy ETFs. The end. 226 | 227 | ### Age of Em 228 | 229 | [Article](http://geoff.greer.fm/2016/07/23/age-of-em/) 230 | 231 | - Economic growth bottlenecked by people with long learning curves and diminishing returns 232 | - Brain emulations may be a precursor to AI 233 | 234 | ### The money in open-source software 235 | 236 | [Article](https://techcrunch.com/2016/02/09/the-money-in-open-source-software/) 237 | 238 | - Think about a business model from day one 239 | - Sell enterprise versions, Saas 240 | - Picking a licensing model aligned with monetization stategy 241 | - Open-source software is always owned by someone 242 | - Don't depend on consulting, but it might be necessary at the start 243 | - Customer satisfaction is more important than sales; ultimately, happy people buy more 244 | 245 | ### The next big thing will start out looking like a toy 246 | 247 | [Article](http://cdixon.org/2010/01/03/the-next-big-thing-will-start-out-looking-like-a-toy/) 248 | 249 | - Technology tends to get better at a faster rate than users' needs increase 250 | - Technology adoption is usually non-linear 251 | - Look at external forces to see how a product could be ramped up the utility curve, **not** the designer's feature set 252 | 253 | ### Come for the tool, stay for the network 254 | 255 | [Article](http://cdixon.org/2015/01/31/come-for-the-tool-stay-for-the-network/) 256 | 257 | - Build a useful single-player tool, but then get people to stay and create a network by adding a social part 258 | 259 | ### Machine learning is really good at partially solving just about any problem 260 | 261 | [Article](http://cdixon.org/2009/08/20/machine-learning-is-really-good-at-partially-solving-just-about-any-problem/) 262 | 263 | - Machine learning can get you 80% of the way to a solution within reasonable amounts of time 264 | - Getting the last 10% to 20% can be very difficult 265 | - Easier to apply machine learning to contexts that are fault tolerant and can have fault tolerant UXs built around them (e.g. human corrections) 266 | - Companies rarely maintain competitive advantage because of their machine learning algorithms; the magic is in the data and how they get it 267 | - ML algorithms are mostly publically available research done by academics 268 | 269 | ### The idea maze for AI startups 270 | 271 | [Article](http://cdixon.org/2015/02/01/the-ai-startup-idea-maze/) 272 | 273 | - Either create fault tolerant UXs on top of the 80% solutions, or find ways to obtain a large amount of data and have that be your advantage 274 | - Public data sets suck 275 | - Narrow your problem set until it's as small as possible while still usable 276 | - Look towards creatively crowdsourcing your data (less capital requirements) 277 | 278 | ### The computing deployment phase 279 | 280 | [Article](http://cdixon.org/2013/02/10/the-computing-deployment-phase/) 281 | 282 | - Two phases of technological revolutions: the installation phase, and the deployment phase 283 | - Financial bubbles propel the initial rapid installation (potentially irrational) 284 | - Crash happens, and then recovery phase 285 | - Finally, long period of productive growth as the technology is matured and deployed 286 | - Entrepreneurial activity moves "up the stack" between the two phases; the initial part is focused on building the technology, the second part is on its applications 287 | - Deployment doesn't just mean creating an app; it's a refactoring of an industry into its "optimal structure" 288 | - Entrepreneurs will increasingly have mutli-disciplinary expertise 289 | 290 | Random 291 | ------ 292 | 293 | ### Zero Knowledge Proofs: An illustrated primer 294 | 295 | [Article](https://blog.cryptographyengineering.com/2014/11/27/zero-knowledge-proofs-illustrated-primer/) 296 | 297 | - Information leakage: what if you don't trust the other party you're giving information to? 298 | - Prove statements without revealing any information aside from the truth of a statement 299 | - Raise your confidence to the point where the other party can only be lying with a negligible probability 300 | - Use constructs that both hides a digital value, but also binds the maker to it, and then test these constructs to the point of neglibible probabilitY 301 | - Digital commitment schemes 302 | - Can be used for any NP-C problem 303 | 304 | ### Surviving a Bad RNG 305 | 306 | [Article](https://blog.cryptographyengineering.com/2012/03/09/surviving-bad-rng/) 307 | -------------------------------------------------------------------------------- /2017-december.md: -------------------------------------------------------------------------------- 1 | December 2017 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### The dawn of trustworthy computing 8 | 9 | [Article](http://unenumerated.blogspot.ca/2014/12/the-dawn-of-trustworthy-computing.html) 10 | 11 | - Fiduciary code: the most important and mission-critical parts of a problem that run on a blockchain 12 | - Use fiduciary code where the costs of human ("wet") problems due to unreliable or unsecure computers is higher than the hardware costs for running blockchain code 13 | 14 | ### Money, blockchains, and social scalability 15 | 16 | [Article](http://unenumerated.blogspot.ca/2017/02/money-blockchains-and-social-scalability.html) 17 | 18 | - Social scalability: ability to overcome shortcomings in human minds to allow for participation between participants 19 | - How does technology constrain or motivation participation? 20 | - How many people can beneficially participant in the institution? 21 | - In the past: Dunbar number (~150 max participants) 22 | - **Improving social scalability: institutional or technological improvements that move function from mind to paper or mind to machine** 23 | - "Civilization advances by extending the number of important operations which we can perform without thinking about them." -- Alfred North Whitehead 24 | - Money increased the opportunities for exchanging a variety of goods, by providing a widely acceptable and reusable form of wealth storage and transfer 25 | - Internet has predominantly helped via efficient matchmaking 26 | - Blockchains will provide **trust minimization** 27 | 28 | ### Hick's Law: Making the choice easier for users 29 | 30 | [Article](https://www.interaction-design.org/literature/article/hick-s-law-making-the-choice-easier-for-users) 31 | 32 | - Hick's law: RT = a + b * log2(n) 33 | - RT = reaction time 34 | - n = number of stimulants 35 | - a, b = constants 36 | - **The more choices you present, the longer it will take for them to make a decision** 37 | - **Simplify the decision making process, not eliminate it altogether** 38 | - Designing good UX: 39 | 1. Find out the functionalities that answer users' needs 40 | 1. Guide users to the functions that they need most 41 | - Recognize there is sometimes no avoiding complexity, e.g. a fighter jet cockpit 42 | - Using Hick's Law: 43 | - Categorizing choice: do a [card sort](https://www.interaction-design.org/literature/book/the-encyclopedia-of-human-computer-interaction-2nd-ed/card-sorting) 44 | - Obscuring complexity: only present specific parts on a screen at a time 45 | 46 | Life 47 | ---- 48 | 49 | ### The 4 Stages of 0->1 Products 50 | 51 | [Article](https://medium.com/the-year-of-the-looking-glass/the-4-stages-of-0-1-products-cdb8236dbf66?ref=hackingui) 52 | 53 | 1. Define your People Outcomes 54 | - A point of view on what should be different about the target's behaviour, understanding, or sentiment 55 | - Identify the People Problem you're trying to solve: what is currently broken or unsatisfying? 56 | - Is it a surface problem, or is it the root problem (I'd like to use my phone to order food vs. I need to eat here and now)? 57 | - Define initial target audience 58 | - What will people do differently if your product is wildly successful 59 | 2. Product-Market Fit 60 | - Keys: define good hypotheses and get conclusive results 61 | - Define bold success metrics (avoid those based on volume), and especially use retention; successes are big step-function changes 62 | - Focus on learning, not shipping! 63 | 3. Reconciliation 64 | - Optimize trade-offs in the broader ecosystem: external contraints are put in 65 | - Make sure your product increases the overall pie (for the company, etc), not just your slice 66 | 4. Growth 67 | - How do you expand into new segments? Consider trade-offs and the value you provide (and how you could make it more valuable) 68 | - How do you increase value for current segments? 69 | 70 | ### The Blockchain Man 71 | 72 | [Article](https://www.ribbonfarm.com/2017/10/10/the-blockchain-man/#more-6111) 73 | 74 | - The Organizational Man's Social Ethic: 75 | 1. The group is the source of creativity 76 | 1. "Belongingness" is the ultimate need of the individual 77 | 1. Applications of science allow us to achieve belongingness 78 | - Becoming an Organizational Man had enormous economic benefits for individuals in the 20th century 79 | - "We shape our tools and thereafter our tools shape us." -- McLuhan 80 | - How do we create **Sovereign Individuals**? 81 | - A new form of money, that allows us to reset the odds of those not forced into centralization? 82 | - As transaction costs are again lowered an order of magnitude, corporations will start to converge to a single person 83 | - **"The Organization gave man access to the benefits of globalization but required conformity. Blockchains give the same access but do not insist on the same conformity."** 84 | - Organizations and centralized authorities are often opaque: they want to look deterministic on the outside, but really, they offer hidden gambles 85 | - Blockchains will be transparent, enabling users to see what aspects of their life is actually *probabilistic* 86 | - "Protocolism is the new nationalism" 87 | - A desire for belonging, and perhaps, one for simplicity 88 | - Protocol Ethic (the new Social Ethic) 89 | 1. The individual is the source of creativity 90 | 1. Serving the needs of the protocol is the ultimate purpose of the individual 91 | 1. Applications of blockchains allow us to achieve our highest potential 92 | - The Organization served as a shield from markets, but the blockchain will impose it 93 | 94 | 95 | ### Ten work skills for the postnormal era 96 | 97 | [Article](https://workfutures.io/10-work-skills-for-the-postnormal-era-2c07a1009a25) 98 | 99 | 1. Boundless Curiosity: The most creative people are insatiably curious. They want to know what works and why. 100 | 1. Freestyling: We have to learn to dance with the robots, not to run away. However, we still need to make sure that AI is limited enough that it will still be dance-withable, and not not-runnable-away-from. 101 | 1. Emergent Leadership: Emergent leadership: the ability to steer things in the right direction without the authority to do so, through social competence. 102 | 1. Constructive Uncertainty: The idea of constructive uncertainty is not predicated on eliminating our biases: they are as built into our minds as deeply as language and lust. 103 | 1. Complex Ethics: All thinking touches on our sense of morality and justice. Knowledge is justified belief, so our perspective of the world and our place in it is rooted in our ethical system, whether examined or not. 104 | 1. Deep Generalists: Deep generalists can ferret out the connections that build the complexity into complex systems, and grasp their interplay. 105 | 1. Design Logic: It’s not only about imagining things we desire, but also undesirable things — cautionary tales that highlight what might happen if we carelessly introduce new technologies into society. 106 | 1. Postnormal Creativity: In postnormal times creativity may paradoxically become normal: an everyone, everyday, everywhere, process. 107 | 1. Posterity, not History, nor the Future: While we need to learn from history, we must not be constrained by it, especially in a time where much of what is going on is unprecedented. 108 | 1. Sense-Making: Skills that help us create unique insights critical to decision making. 109 | 110 | ### How Facebook's VP of Product Finds Focus and Creates Conditions for Intentional Work 111 | 112 | [Article](http://firstround.com/review/how-facebooks-vp-of-product-finds-focus-and-creates-conditions-for-intentional-work/) 113 | 114 | - Focus: doing things with a clear intention and making sure that all your decisions match your intention 115 | - "Focus is really about aligning with your purpose – whether it be your purpose on a specific project or your higher purpose in life. When actions reflect intentions, you’re in alignment with your personal mission. Only then can you truly shine." 116 | - Consider focus to the a force you extert, rather than a quality 117 | - Questions to ask: 118 | - What is the main problem I'm solving? 119 | - Who are the people we're solving this problem for? 120 | - What emotion/feeling do we want to create or evoke? 121 | - Is this implementation aligned with the problem we're solving? 122 | - Is this product the must likely to successfully solve the problem? 123 | - Challenging intentions: 124 | - Are these intentions still the correct ones? 125 | - Are my recent decisions in line with these intentions? 126 | - Being intentional: stating your values and intentions clearly, to you and your team, and then putting your money where your mouth is 127 | - Staffing is one of the greatest ways to express your intentions: 128 | - Do I have enough people on this project? 129 | - Do I have the right people on this project? 130 | - What trade-offs do I need to make to get to a "yes" to the above? 131 | - On building a culture that makes change expected and accepted: put people in charge of a problem, not a product 132 | - Delegating to keep focus: direct questions, issues, and opportunities with forward momentum to people who is or can be focused on addressing them at that time 133 | - Understand the priorities of yourself, team leads, and other colleagues! 134 | - Remove distracting obstacles to allow for focus 135 | 136 | Random 137 | ------ 138 | -------------------------------------------------------------------------------- /2017-february.md: -------------------------------------------------------------------------------- 1 | February 2017 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### RethinkDB: Why We Failed 8 | 9 | [Article](http://www.defstartup.org/2017/01/18/why-rethinkdb-failed.html) 10 | 11 | - **Picked a terrible market and optimized the product for the wrong metrics of goodness** 12 | - "You're in the market *your users* think you're in," and that frames what they think of you (and who you really are) 13 | - Understand how microeconomics works in your market (e.g. developer tools: lots of free competitors; difficult to get anyone to pay for your product) 14 | - "Early distribution challenges almost always doom you to eventual death"; getting a feedback loop for traction from the start is important! 15 | - "It turns out that correctness, simplicity [...], and consistency **are the wrong metrics of goodness** for most users" 16 | - Most users want things fast, usable by them, and solving a specific problem (that they have) 17 | - "MongoDB turned regular developers into heroes *when people needed it*" 18 | - You have all the time in the world to fix your problems, one by one, once you're established 19 | - **Don't be three years behind your competitors!** Pivot your way into something you can control. 20 | - Avoid optimism bias; you are (likely) **NOT** to be different from other people who fall into the same trap 21 | - Advice: 22 | - Pick a large market but build for specific users 23 | - Learn to recognize the talents you're missing, then work like hell to get them on your team 24 | - Read The Economist religiously. It will make you better faster. 25 | 26 | ### The Rise of Worse is Better 27 | 28 | [Article](http://dreamsongs.com/RiseOfWorseIsBetter.html) 29 | 30 | - Worse-is-better 31 | - Favour simplicity; try to maximize correctness, consistency, and completeness, but favour them in that order (rather than trying to sacrifice some attributes to maximize the latter attributes) 32 | - Implementation simplicity is more important than interface simplicity 33 | - Simple means it's easier to port, change, and modify 34 | - Sacrifice safety, convenience, hassle, and magic (to the user) to keep performance good on worse machines 35 | - Favour things that will make distribution easier in the long run (e.g. simplicity!) 36 | - But make sure the simple thing is **good** 37 | - Worse-is-better: gain acceptance, condition users to expect less, and then improve to a point that it's close to the right thing 38 | - **"Often undesirable to go for the right thing first. It is better to get half of the right thing available so that it spreads like a virus."** 39 | - Note that half of the right thing is still basically right! 40 | 41 | ### Measure Anything, Measure Everything 42 | 43 | [Article](https://codeascraft.com/2011/02/15/measure-anything-measure-everything/) 44 | 45 | - Track everything: network, machine, and application 46 | - Application is the hardest, yet most important 47 | - StatsD uses UDP because it's fire-and-forget 48 | - Sampling can be important for very frequent events (sample: only fire an event once in a while) to not overload monitoring 49 | - "As long as a given solution has next to no management overhead, and is trivially easy for engineers to use, you’ve got something useful." 50 | 51 | ### HyperLogLog 52 | 53 | [Article](http://antirez.com/news/75) 54 | 55 | - HyperLogLog approximates the unique size of a set using very little memory (hashes subsets of data, and uses the hash -- a binary value -- to determine how likely the result was; note that in binary, each next result in a row is 50% likely) 56 | 57 | ### Respect My Authority - Hijacking Broken Nameservers to Compromise Your Target 58 | 59 | [Article](https://thehackerblog.com/respect-my-authority-hijacking-broken-nameservers-to-compromise-your-target/) 60 | 61 | - Wow DNS caching can be a *b3h*. 62 | 63 | ### Are we overcomplicating everything? 64 | 65 | [Thread](https://news.ycombinator.com/item?id=13426896) 66 | 67 | - Always ask yourself if the problem is actually complex or if you're just making it complex (for various reasons, e.g. ego, trying to make work interesting, etc) 68 | - **Avoid Complexity-for-the-sake-of-complexity** 69 | - Ask the question "when is practice X useful?" instead of "is practice X a good idea?" 70 | - "Microservices probably reduces the asymptotic cost of scaling but add a huge constant factor." 71 | - "Statefulness is inherently complex" 72 | - There is no silver bullet (a single design will not work best everywhere) 73 | - Favour disposable code over reusable code (YAGNI; don't generalize prematurely) 74 | - "Code means communication" 75 | - "The smartest people in the room are the ones who can speak about complex topics in a simple way" 76 | - Understand when a best practice is best; it may not always apply 77 | - "I think this is down to the sad truth that most developer roles offer very little challenge outside of learning a new stack" 78 | - "Comparative analyses to make objective recommendations between different solution alternatives [including architectures and tools]" should be in interviews 79 | - Think about goals rather than specific solutions first: **your solution should be the best fit for the problem at hand** 80 | - Hand *repeatable* and *repeatable* tasks to computers (and feel free to make those more complicated) 81 | - "You can know what features are in a release or when the release will ship, but not both" -- Rob Gingell 82 | 83 | ### Logs Are Streams, Not Files 84 | 85 | [Article](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) 86 | 87 | - Logs are time-ordered streams 88 | - Streams are more powerful than files; if you want to, you can redirect a stream into a file but you can also redirect to multiple locations or programs 89 | - Use the syslog protocol (`logger`) for logging distributed systems 90 | 91 | 92 | Life 93 | ---- 94 | 95 | ### Why time management is ruining our lives 96 | 97 | [Article](https://www.theguardian.com/technology/2016/dec/22/why-time-management-is-ruining-our-lives) 98 | 99 | - "The pressure of trying to complete an ever-increasing number of tasks, in a finite quantity of time, was becoming impossible to bear" 100 | - Lots of things are happening today because of our "quest for increased personal productivity" (products, rhetoric, etc) 101 | - Being more efficient / productive at something doesn't always bring benefits (e.g. hyper productive on email == more email, whereas neglected email means people stop caring) 102 | - Don't live under the illusion that everything, eventually, will come under control. This is impossible in modern life. 103 | - **"The average lifespan consists of only about 4,000 weeks"** 104 | - There's a momentum towards more work; it often feels impossible to cut down on it 105 | - Current gig-economy dynamics enforce this behaviour; the only person who suffers if you get lazy is you 106 | - Maybe "getting things done" is the wrong focus; what do those things amount to? 107 | - If everything is centered around efficiency (or economic gain), then other activities are judged by their usefulness towards productive activities (e.g. sleeping for work) 108 | - Awareness of limited time degrades performance; stress gets in the way 109 | - The more productive and efficient you are, the less adaptable you will be to new or unexpected events (e.g. unexpected patients) 110 | - "Personal productivity presents itself as an antidote to busyness when it might better be understood as yet another form of busyness" 111 | 112 | ### When You Are Depressed, Make Something 113 | 114 | [Article](https://byrslf.co/when-you-are-depressed-make-something-49467edd1933#.81ttzaq8m) 115 | 116 | - "Sadness is when you feel down because things aren’t going your way. Depression is when you feel down even when all is going well." 117 | - Depression masks itself as circumstantial sadness --> reinforced feedback loop of negativity 118 | - **"No one judges you more than the way you judge yourself"** 119 | - Don't be afraid, you're already your worst critic 120 | - Creativity and making something allow you to focus on the present and enjoy it 121 | - "The ability to create and share is a vessel for your spirit. It is a gift that has been passed down through millennia. Use it when you need it most." 122 | - "Every child is an artist. The problem is how to remain an artist once he grows up." -- Picasso 123 | 124 | ### The Real Reason Your City Has No Money 125 | 126 | [Article](https://www.strongtowns.org/journal/2017/1/9/the-real-reason-your-city-has-no-money) 127 | 128 | - "Humans are predisposed to highly value pleasure today and to deeply discount future pain, especially the more distant it is.” 129 | 130 | ### Poor Neighbourhoods Make the Best Investment 131 | 132 | [Article](https://www.strongtowns.org/journal/2017/1/10/poor-neighborhoods-make-the-best-investment) 133 | 134 | - "Poor neighborhoods subsidize the affluent; it is a ubiquitous condition of the American development pattern." 135 | - Poorer areas have less infrastructure to manage (and may be denser) 136 | 137 | ### The Risk of Discovery 138 | 139 | [Article](http://www.paulgraham.com/disc.html) 140 | 141 | - We often discard failures and embelish successes once we know the results. But until then, everything has a chance and is risky. 142 | 143 | ### The Reality of Developer Burnout 144 | 145 | [Article](https://www.kennethreitz.org/essays/the-reality-of-developer-burnout) 146 | 147 | - "Burnout is sneaky. It doesn’t usually announce itself. It slowly grinds at you until these feelings become the new normal, and at that point it’s not easy to dig yourself out of the hole." -- Zach Holman 148 | - Publish-only: stop paying attention to all outside events and noise 149 | - Have other hobbies than writing code 150 | 151 | ### If Your Boss Could Do Your Job, You're More Likely to Be Happy at Work 152 | 153 | [Article](https://hbr.org/2016/12/if-your-boss-could-do-your-job-youre-more-likely-to-be-happy-at-work) 154 | 155 | - “People don’t quit bad jobs, they quit bad bosses” 156 | - "Bosses matter far more for employee job satisfaction than any other factor we measured" 157 | - "Employees are far happier when they are led by people with deep expertise in the core activity of the business" 158 | 159 | ### How Much Does Employee Turnover Really Cost 160 | 161 | [Article](https://medium.com/latticehq/how-much-does-employee-turnover-really-cost) 162 | 163 | - Most understand turnover is costly, but don't have a way of quantifying it 164 | - People optimize what they can measure (quantitively!) 165 | - Understanding something quantitively is often a first step towards a solution 166 | - Formula: cost = # of regrettable departues x average cost of departures 167 | - # of departues = # of employees x annual turnover percentage 168 | - Average cost includes: 169 | - Cost of hiring 170 | - Cost of onboarding and training 171 | - Cost of learning and development 172 | - Cost of time with unfilled role 173 | - Addressing churn: low pay can contribute, but high pay doesn't make up for bad workplaces 174 | - Focus on (long-term) growth, impact, and care (making them feel valued; surround your company with people who want something for **others**) 175 | 176 | ### The Best Way to Find More Time to Read 177 | 178 | [Article](https://www.farnamstreetblog.com/2013/09/finding-time-to-read/) 179 | 180 | - Reading: "Mastering the best that other people have already figured out" 181 | - "Men who have made these discoveries before us are not our masters, but our guides.” -- Seneca 182 | - “In my whole life, I have known no wise people (over a broad subject matter area) who didn’t read all the time – none, zero.” -- Charlie Munger 183 | 184 | ### The Meaning of Low Interest Rates 185 | 186 | [Article](https://keepingstock.net/the-meaning-of-low-interest-rates-5409de0173e8#.2k77yprhu) 187 | 188 | - "What does it mean to our culture that interest rates are so low, even negative, in many places?" 189 | - "For interest rates to be so low effectively means that there are not a lot of good ideas about how to make life better in the future." 190 | - Cash is sitting idle (albeit safely) because there's nothing obvious left to explore (that will create returns) 191 | - "Europe and Japan keep rates at rock bottom, and indeed negative in places, to placate otherwise-tottering balance sheets of zombie enterprises." 192 | - "The inability to honestly face failure has led to its subsidization." 193 | 194 | ### The Psycohology of Human Misjudgement 195 | 196 | [Video](https://www.youtube.com/watch?time_continue=36&v=pqzcCfUglws) 197 | 198 | - Economics is **always** behavioural 199 | - Economics <==> Psychology 200 | - Don't do sloppy accounting (when it's bad for business, the accounting should show that)! 201 | - Your advisors have **a lot** of bias! 202 | - Either apply some slack to their advice, or 203 | - Learn some of the trade and ask them to explain their advice (and why they're right) 204 | - "I don't think vengence is much good" 205 | - When you want to persuade someone, you **really** should tell them why (and maybe add in one of the below) 206 | - Recognize: 207 | - Power of incentives (i.e. reinforcement) 208 | - Psychology of denial 209 | - Incentivized bias (i.e. agency costs) 210 | - Bias from consistency and commitments to conclusions 211 | - Don't chain your brain by declarations and commitments 212 | - What you do will change what you think 213 | - Medical training: watch one, do one, train one 214 | - Bias from past correlation and association 215 | - Information inefficencies 216 | - Reciprocation tendency 217 | - Ask for a lot, then back off a bit 218 | - Bias from conclusions of others 219 | - Don't cargo cult 220 | - Contrast bias 221 | - If it comes to you in small pieces, you might miss it 222 | - Influence from authority 223 | - Bias from present or threatened scarcity 224 | - Minor depreciations or appreciations 225 | - Envy and jealousy 226 | - "It's not greed that runs the world, it's envy" -- Warren Buffet 227 | - Misgambling compulsion 228 | - Liking distortion (e.g. one's own self, ideas, etc) 229 | - Disliking distortion (e.g. somone disliked) 230 | - "Man with the hammer" syndrome (don't force every problem into the same box) 231 | - Your brain is not (!) mathematical; it is heuristical! 232 | - Don't overweigh the information you have at hand 233 | - Don't jump on available information 234 | - Overinfluence by extra vivid information 235 | - Not properly explaining "why" -- don't kid yourself when you don't do a good job 236 | - Stress-induced mental changes 237 | - "Say something" syndrome 238 | - People might not know how to express something, but just want to say something 239 | - **Combining multiple of the above produces an exponential result** 240 | - Do something painful and then something rewarding to treat yourself 241 | - Revisit your choices, and understand why something did (or did not) work out 242 | 243 | ### How to Read a Book 244 | 245 | [Article](http://www.artofmanliness.com/2013/06/17/how-to-read-a-book/) 246 | 247 | - Stages of reading: 248 | 1. Elementary 249 | 1. Inspectional 250 | 1. Analytical 251 | 1. Syntopical (synthesis of different opinions into another work) 252 | - What does the book tell us about the "six great ideas" (Truth, Beauty, Goodness, Justice, Liberty, and Equality) 253 | - Inspectional reading 254 | - Read title and front and back (what do they try to convey?) 255 | - Pay attention to the first few pages 256 | - (Non-fiction) Read headings and conclusion 257 | - Read reviews 258 | - Analytical reading 259 | - Research the author a bit 260 | - Do a bit of inspectional reading 261 | - Do a first superficial run through first 262 | - Ask questions, highlight important parts (but leave those for later) 263 | - Read it again, more slowly, some time after 264 | - Try to figure things out first on your own (like unknown words), but use aids if necessary 265 | - **Answer:** 266 | - What is the book about? **Write a few sentences yourself to summarize!** 267 | - What is being said in detail? **Write a few sentences about the overall structure and what happens where (e.g. per chapter)** 268 | - Is the book true (in whole or part)? What do you believe is true? 269 | - What's the significance? What's the takeaway? **How does it make you think differently about the world?** 270 | - Critique and share your thoughts with others 271 | 272 | ### How to Mark a Book 273 | 274 | [Article](http://chuma.cas.usf.edu/~pinsky/mark_a_book.htm) 275 | 276 | - To get the most out of anything, "read between the lines" 277 | - "Full ownership comes only when you have made it a part of yourself" 278 | - Marking up a book keeps you awake (more than just consciously) ;) 279 | - **Active reading is thinking** 280 | - Preserve your reactions and sharpen your questions 281 | - **Reading a book should be "a conversation between you and the author"** 282 | - Understanding is a two-way operation 283 | - Marking: 284 | - Underlining: major points, important statements 285 | - Vertical lines at margin: emphasize underlined statement 286 | - Asterisk at margin: most important statements in the book 287 | - Numbers at margin: sequence of points made for developing a single statements 288 | - Page numbers at margin: other areas in the book the author made relevant points 289 | - Writing at margin: questions, answers, reducing thoughts into a single statement 290 | - End papers: index of author's points, and outline of book 291 | - "There is no such thing as the right speed for intelligent reading... The sign of intelligence in reading is the ability to read different things differently according to their worth" 292 | 293 | 294 | Random 295 | ------ 296 | 297 | ### Never Talk to the Police 298 | 299 | [Article](https://www.vice.com/en_us/article/law-professor-police-interrogation-law-constitution-survival) 300 | 301 | - Always ask for a lawyer, and keep on asking 302 | - Anyone may misinterpret or forget what you said 303 | - You never know if what you're saying could implicate you 304 | 305 | ### VR 306 | 307 | [Article](https://blog.ycombinator.com/vr/) 308 | 309 | - "With VR, there isn't already an app for that" 310 | -------------------------------------------------------------------------------- /2017-january.md: -------------------------------------------------------------------------------- 1 | January 2017 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### LLVM for Grad Students 8 | 9 | [Article](https://www.cs.cornell.edu/~asampson/blog/llvm.html) 10 | 11 | - LLVM is much more useful than just for hacking on compilers and other research! 12 | - LLVM's IR (intermediate representation) is awesome because it's actually human readable (similar to RISC machine code) unlike most other compilers 13 | 14 | ### Why Haskell 15 | 16 | [Article](http://blog.ezyang.com/2010/01/why-haskell/) 17 | 18 | ### Socket Programming HOWTO 19 | 20 | [Article](https://docs.python.org/3/howto/sockets.html) 21 | 22 | - Just use `INET` (i.e. IPv4) and `STREAM` (i.e. TCP) sockets 23 | 24 | ### Under the Hood: Building and open-sourcing RocksDB 25 | 26 | [Article](https://www.facebook.com/notes/facebook-engineering/under-the-hood-building-and-open-sourcing-rocksdb/10151822347683920) 27 | 28 | - Embeddable database: skips network overhead (potentially makes queries twice as slow) 29 | - Traditional databases don't have good locking strategies to scale well with multiple cores (making them unable to max out available storage IOPS) 30 | 31 | ### The History of RocksDB 32 | 33 | [Article](http://rocksdb.blogspot.de/2013/11/the-history-of-rocksdb.html) 34 | 35 | - The advent of flash memory meant that network latency became a much higher cost to performance than before (0.5% impact with disk vs. 50% impact with flash) 36 | 37 | ### You Might Not Need a WebSocket 38 | 39 | [Article](http://blog.fanout.io/2014/06/24/you-might-not-need-a-websocket/) 40 | 41 | - Web realtime users usually want to data sync, not actually have bidirectional streams 42 | - Why not build a nicer abstraction for end use case (e.g. pub/sub, data sync) rather than falling back to a stream? 43 | 44 | ### To AMQP or to XMPP, that is the question 45 | 46 | [Article](https://www.opensourcery.co.za/2009/04/19/to-amqp-or-to-xmpp-that-is-the-question/) 47 | 48 | - Don't use XMPP if all you want is a message queue 49 | 50 | ### Disable Your Antivirus Software (Except Microsoft's) 51 | 52 | [Article](http://robert.ocallahan.org/2017/01/disable-your-antivirus-software-except.html) 53 | 54 | - Antivirus software generally sucks, they can kill your product 55 | 56 | 57 | Life 58 | ---- 59 | 60 | 61 | Random 62 | ------ 63 | 64 | ### P vs NP survey article 65 | 66 | [Article](http://www.scottaaronson.com/blog/?p=3095) 67 | 68 | - "On the Internet, it is do or do not. There is no disclaim." 69 | -------------------------------------------------------------------------------- /2017-july.md: -------------------------------------------------------------------------------- 1 | July 2017 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Simple Economics of Machine Intelligence 8 | 9 | [Article](https://hbr.org/2016/11/the-simple-economics-of-machine-intelligence) 10 | 11 | - **"Technological revolutions tend to involve some important activity becoming cheap, like the cost of communication or finding information"** 12 | - Machine learning makes prediction cheap 13 | - This increases the value of tasks that complement prediction and decreases the value of substitutes 14 | - Some problems will be reframed as prediction problems 15 | - E.g. semiconductors made arithmetic cheap, so we started to digitalize everything (e.g. photos) 16 | - E.g. driving: rather than program exact decisions based on environmental factors, we now ask the computer to **predict what a human would do** 17 | - **Humans activities have five high-level components: data, prediction, judgment, action, and outcomes** 18 | - Data was made cheap with computers and communications networks (search) 19 | - Prediction has been made cheap with AI 20 | - **Human judgment** based on data and predictions will be key 21 | 22 | Life 23 | ---- 24 | 25 | ### Master Productivity and Eliminate Noise Using the Eisenhower Matrix 26 | 27 | [Article](https://www.farnamstreetblog.com/2013/04/how-to-work-more-efficiently-the-eisenhower-matrix/) 28 | 29 | - "The most urgent decisions are rarely the most important ones." -- Eisenhower 30 | - "Being busy is a form of laziness — lazy thinking and indiscriminate action." -- Tim Ferris 31 | - Four quadrants: 32 | - **Urgent and important**: do it immediately 33 | - Urgent but not important: delegate 34 | - Important but not urgent: decide when to do it 35 | - Not urgent or important: do it later (or drop it!) 36 | - Distinguish between important and urgent! 37 | - Don't put off important tasks; give them the proper amount of time or you'll likely have to spend even more time on it later 38 | - Don't put yourself in a position where you'll have to fix problems made by past reactive decision making 39 | 40 | ### Five Elements of Effective Thinking 41 | 42 | [Article](https://www.farnamstreetblog.com/2013/07/five-elements-of-effective-thinking/) 43 | 44 | - **"It is remarkable how much long-term advantage people like us have gotten by trying to be consistently not stupid, instead of trying to be very intelligent"** -- Charlie Munger 45 | - Habits: 46 | - Understand deeply: know what you know, and understand the simple deeply 47 | - Make mistakes 48 | - Raise questions: to find connections that are otherwise invisible 49 | - Follow the flow of ideas: see where ideas came from, and where they'll take us 50 | - Change: embrace it and improve 51 | 52 | ### Improving Your Performance 53 | 54 | [Article](https://www.farnamstreetblog.com/2014/05/improving-your-performance/) 55 | 56 | 1. Deliberately practice, and intentionally practice the hardest and most tedious 57 | 1. Measure your skillset visibily 58 | 1. Practice and work in chunks, so much that you can only sustain it for that chunk 59 | 1. Take responsibility for your failures; improve your skills and planning for next time, learn from the failure 60 | 1. Focus on variety, reps, and feedback during improvement 61 | 1. Make routines out of unimportant decisions, save your energy for important tasks 62 | 1. Exercise 63 | 64 | ### Charlie Munger: A Two-Step Process to Improve Your Thinking 65 | 66 | [Article](https://www.farnamstreetblog.com/2013/04/a-two-step-process-for-making-effective-decisions/) 67 | 68 | 1. Understand the forces at play (what's important and who's gaining from them) 69 | - Know what you know and where your competencies lie 70 | 1. Understand how your subconscious might be leading your astray (e.g. psychological factors) 71 | 72 | ### The Power of Full Engagement 73 | 74 | [Article](https://www.farnamstreetblog.com/2015/06/the-power-of-full-engagement/) 75 | 76 | - **"Energy, not time, is the fundamental currency of high performance"** 77 | - New paradigm: 78 | - Manage energy 79 | - Seek stress: push ourselves beyond our limits, systematically 80 | - Life is a series of sprints: fully engage, and then refuel in-between 81 | - Downtime is productive time 82 | - Purpose fuels performance rituals rule: look at what you're effective at and figure out what habits and rituals you follow that make you so 83 | - Power of full engagement 84 | - Sources of energy: 85 | - Physical 86 | - Emotional 87 | - Mental 88 | - Spiritual 89 | - Learn to hold ourselves accountable for how we manage our energy 90 | 91 | ### Solitude and Leadership 92 | 93 | [Article](https://theamericanscholar.org/solitude-and-leadership/) 94 | 95 | - Don't aim to just keep the ship running, to go along for the ride and make it up the ladder; aim to make a difference and be yourself 96 | - People expect (and reward) conformity; ask why and if that's positive 97 | - Ask your own questions, set your own goals and worthwhile desires 98 | - Moral courage: "the courage to stand up for what you believe" 99 | - "Thinking means concentrating on one thing long enough to develop an idea about it" -- not learning someone else's ideas 100 | - Remember to slow down and concentrate -- most of your best thought needs time to be cultivated 101 | - Find our own **reality**; hear your own voice; discover your own path 102 | 103 | ### Are You Solving the Right Problems? 104 | 105 | [Article](https://hbr.org/2017/01/are-you-solving-the-right-problems) 106 | 107 | - The hard part is figuring out *which* problems to solve, not *how* to solve them 108 | - Most people struggle with daily problems, not annual strategic ones 109 | - **Reframe** your problems 110 | - Why is the problem actually happening? What are people complaining about? What are they feeling? Why does it need to be fixed? 111 | - "The point of reframing is not to find the 'real' problem but, rather, to see if there is a better one to solve" 112 | - Practices: 113 | 1. **Establish legitimacy**: get others accustomed to reframing problems 114 | 1. **Bring outsiders into the discussion**: get their unentrenched perspective 115 | - Find a *boundary spanner* who is able to speak their mind 116 | - Ask for inputs, not solutions 117 | 1. **Get people's definitions in writing**: see what people actually think the problem is, and how they frame it 118 | - We can try to imagine different perspectives, but we often get it wrong 119 | 1. **Ask what's missing**: what is missing from our definition of the problem (or why we think it's happening)? 120 | 1. **Consider multiple categories**: what do we think categorizes the problem? Are there any other categories we haven't considered? 121 | - Metacognition: thinking about how we think 122 | 1. **Analyze positive exceptions**: what was different when the problem wasn't a problem? 123 | - This also makes the discussion less threatening and confrontational 124 | 1. **Question the objective**: what do people actually want (their hidden agenda)? Clarify and then challenge. 125 | - "Tools can be the subtlest of traps" -- Neil Gaiman 126 | 127 | ### Platonically irrational 128 | 129 | [Article](https://aeon.co/essays/what-plato-knew-about-behavioural-economics-a-lot) 130 | 131 | - "New catchwords hide from us the thoughts and feelings of our ancestors, even when they differed little from our own" -- Bertrand Russel 132 | - Related to recency bias; we can only affirm and relate to what we know well (more likely recent things) 133 | - Greek philosophers (e.g. Plato) thought about behaviour psychology long before modern science 134 | - Don't mistake relative for absoltue values 135 | - Intellectual humility is both a **moral** and mental trait 136 | 137 | ### Why Your Brain Hates Other People 138 | 139 | [Article](http://nautil.us/issue/49/the-absurd/why-your-brain-hates-other-people) 140 | 141 | - Be careful of the automatic association your brain makes between similar Us people vs. who you think are They people; stop to notice and think about if you've made a correct judgement 142 | - We're always more favored and forgiving towards Us people, and more quick to judge and spiteful toward Thems (confirmation bias) 143 | - Supposed rationality is often just rationalization (to fool ourselves) 144 | - We're most hostile between envy and disgust 145 | - We're most likely to associate between pride and envy 146 | - Lots of tragedies happen when we transform a group from low warmth and high competence into low warmth and low competence 147 | - When a group is low warmth and low competence, it's easy to destroy as Us are trained to think they're disgusting 148 | - **Distrust essentialism**, err on individualism 149 | 150 | ### Periodization: How Cycling Your Goals Helps You Gain New Skills Without Losing the Ones You Have 151 | 152 | [Article](https://gmb.io/periodization/) 153 | 154 | - Focus training on one specific goal at a time, and then transitioning to another in a planned schedule 155 | - At the end of a schedule, cycle back to the first goal 156 | - Two types: 157 | - Linear: Break attributes you want to obtain into 4-6 week (or however long) blocks 158 | - Non-linear: Work on different attributes on different days (i.e. blocks are one day each) 159 | - Attributes are things like agility, endurance, power, etc rather than a specific muscle group 160 | (think generalized end goal vs. specific physical or knowledge domain) 161 | - **Key is to focus on one specfic thing during a single block of time!** 162 | - Distill your general goals (by asking who and where motivation comes from, specific targets) into specific attributes 163 | - Know where you are now and where you'd like to be 164 | - Break your end goal down into building blocks and assess where you need the most improvement 165 | - "Priorities are like arms – if you think you have more than two, you’re crazy." – Merlin Mann 166 | 167 | Random 168 | ------ 169 | -------------------------------------------------------------------------------- /2017-june.md: -------------------------------------------------------------------------------- 1 | June 2017 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | ### Fat Protocols 8 | 9 | [Article](http://www.usv.com/blog/fat-protocols) 10 | 11 | - For the internet (TCP/IP, HTTP, etc), most value was captured by applications 12 | - For blockchains, the value of the protocol encompasses any single application value 13 | - Information isn't siloed, but shared across all parties (assuming not encrypted; original intent was to be shared) 14 | - Forces competition (functionality, reduce costs) on application layer 15 | - Tokens create a feedback loop based on market speculation 16 | - Token value continuously swings up and down based on market speculation; early investors and enterpreneurs are initially attracted by appreciation, they later become stakeholders and build their own products (some funded by their own investment) 17 | - Bubble situations are beneficial to technological innovation (on a holistic sense), based on historical justifications: boom creates interest, bust creates financial affordability for long-term adoption and incentivizes initial stakeholder effort; new applications create boom (hopefully) 18 | - "The market cap of the protocol always grows faster than the combined value of the applications built on top [assuming applications are built around a single chain], since the success of the application layer drives further speculation at the protocol layer" 19 | - Maybe this is just a function of time, as blockchains are still new and valued on potential? 20 | - Higher value-adding apps could cross-function across multiple blockchains? 21 | - How does disrupting traditional "winner-take-all" markets mean to those trying to create monopolies (i.e. Zero to One)? 22 | - What are the new rules regarding businesses built on this model? 23 | 24 | ### Crypto Tokens and the Coming Age of Protocol Innovation 25 | 26 | [Article](http://continuations.com/post/148098927445/crypto-tokens-and-the-coming-age-of-protocol) 27 | 28 | - "Because we didn’t know how to maintain state in a decentralized fashion it was the data layer that was driving the centralization of the web that we have observed." 29 | - Tokens create incentives to work on protocol layer technologies; they allow creators to retain and sell retained tokens at a different price later (to the extent it's adopted and used) 30 | 31 | 32 | Life 33 | ---- 34 | 35 | ### The Noise Bottleneck: When More Information is Harmful 36 | 37 | [Article](https://www.farnamstreetblog.com/2012/05/noise-and-signal-nassim-taleb/) 38 | 39 | - "Noise is what you are supposed to ignore; signal what you need to heed." -- Nassim Taleb 40 | - "The more data you get, the less you know what’s going on" -- Nassim Taleb 41 | - Bottlenecks our thinking; frames our perception 42 | - Be careful with more data; when you intervene because of it (possibly for the sake of intervening), double check your thinking (and ponder potential consequences) 43 | 44 | ### Two Types of Knowledge 45 | 46 | [Article](https://www.farnamstreetblog.com/2015/09/two-types-of-knowledge/) 47 | 48 | - Make a distinction between knowing *something* vs knowing *the name of something* 49 | - Ask why, to get to the bottom of if they're bullshitting 50 | - "True experts recognize the limits of what they know and what they do not know. If they find themselves outside their circle of competence, they keep quiet or simply say, 'I don’t know.'" -- Rolf Dobelli 51 | 52 | ### The Work Required To Have An Opinion 53 | 54 | [Article](https://www.farnamstreetblog.com/2013/04/the-work-required-to-have-an-opinion/) 55 | 56 | - "Rapid destruction of your ideas when the time is right is one of the most valuable qualities you can acquire." -- Charlie Munger 57 | 58 | ### Winning An Argument 59 | 60 | [Article](https://www.farnamstreetblog.com/2014/06/winning-an-argument/) 61 | 62 | - "If you want to win an argument, ask the person trying to convince you of something to explain how it would work." 63 | - "The first principle is that you must not fool yourself, and you are the easiest person to fool." -- Richard Feynman 64 | 65 | ### Seneca on The Shortness Of Time 66 | 67 | [Article](https://www.farnamstreetblog.com/2017/03/seneca-on-the-shortness-of-time/) 68 | 69 | - "The life we receive is not short, but we make it so, nor do we have any lack of it, but are wasteful of it" -- Seneca 70 | 71 | ### The Three Lessons of Biological History 72 | 73 | [Article](https://www.farnamstreetblog.com/2015/08/will-durant-the-three-lessons-of-biological-history/) 74 | 75 | - "Life is competition" 76 | - Although we may cooperate to form groups, groups are still competing 77 | - "Life is selection" 78 | - Inequality is natural, and only increases with the complexity of civilization 79 | - "Only the man who is below the average in economic ability desires equality; those who are conscious of superior ability desire freedom; and in the end superior ability has its way" 80 | - "Life must breed" 81 | - Nature is "more interested in the species than in the individual" 82 | - Despite certain advances in productivity, breeding will always follow to nullify them until curtailed by something drastic (e.g. war or famine) 83 | 84 | ### What Can the Three Buckets of Knowledge Teach Us About History? 85 | 86 | [Article](https://www.farnamstreetblog.com/2016/02/three-buckets-lessons-of-history/) 87 | 88 | - Three major buckets of time: 89 | - Geological (13.7 billion years) for laws of physics, chemistry, math 90 | - Biological (3.5 billion years) for biological nature 91 | - Gradualism; slow changes over time produce large effects (e.g. evolution) 92 | - Everything is changing, albeit perhaps some of it is at a pace we can't detect 93 | - Some things change slow enough we can take them for constants (e.g. biological human nature) 94 | - Laws of competition; long-term sustainability 95 | - Human (20 thousand years) for human nature 96 | - Political and economic systems try to provide order and fairness between humans (resulting from internal competition) 97 | - Human history, stripped down, is simply competition and survival 98 | - Some things in lower (younger) buckets don't follow the laws of higher buckets, e.g. everlasting ideas from notable humans 99 | - Ideas and knowledge compound; having more grows more; spreading more spreads more 100 | - Ideas go through natural selection via competition (for propagation -- the most enduring are those that are best propagated, not those that are best) 101 | 102 | ### How to Think 103 | 104 | [Article](https://www.farnamstreetblog.com/2015/01/how-to-think-2/) 105 | 106 | - Get better at probing other's thinking and understanding 107 | - E.g. Ask what information would cause someone to change their current thinking 108 | - Probe yourself: do you really know? What are your limits? 109 | - Slow down to make sure you've had enough time to think things through 110 | 111 | ### Changing How We Think 112 | 113 | [Article](https://www.farnamstreetblog.com/2014/07/changing-how-we-think/) 114 | 115 | - "The successful thinker is an integrator who can quickly and effectively abstract the best qualities of radically different ways of seeing and representing" -- Roger Martin 116 | - "The test of a first-rate intelligence is the ability to **hold two opposing ideas in mind at the same time and still retain the ability to function**. One should, for example, be able to see that things are hopeless yet be determined to make them otherwise." -- F. Scott Fitzgerald 117 | - Our minds are habitual and pattern-match aggressively; try to notice it and stop to think of other models to apply 118 | - Interesting thought: "In what circumstances should logical depth dominate informational breadth and, vice versa? In what situations is more thinking better than more foraging or more asking, given that one can only think (or forage) more if one forages (or thinks) less?" -- Roger Martin 119 | - Make an effort to **deliberately** think, rather than **intuitively** 120 | - "If you want to think differently, first learn to act differently" -- Heinz von Foerster 121 | 122 | ### How Online Shopping Makes Fools of Us All 123 | 124 | [Article](https://www.theatlantic.com/magazine/archive/2017/05/how-online-shopping-makes-suckers-of-us-all/521448/) 125 | 126 | - Two types of value: 127 | - Acquisitional: value of actually obtaining something 128 | - Transactional: value of winning or losing in negotiating 129 | - Early 2000s: one hour of online bargain hunting was worth $15 130 | - "Online consumers do not comparison shop as zealously for cheaper items as they do for expensive ones" 131 | - "'The madness of doubt': there’s a finite amount of uncertainty we can absorb (and how much we can keep checking it before we stop caring)" 132 | - Idea: prices set by auction (similar to backend deals in advertising auctions) 133 | - Idea: decentralized, crowd-sourced low price marketplace 134 | 135 | Random 136 | ------ 137 | -------------------------------------------------------------------------------- /2017-may.md: -------------------------------------------------------------------------------- 1 | May 2017 2 | ======== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Teach Yourself Programming in Ten Years 8 | 9 | [Article](http://norvig.com/21-days.html) 10 | 11 | - "A little learning is a dangerous thing" -- Alexander Pope 12 | 13 | Life 14 | ---- 15 | 16 | ### Effective learning: Twenty rules of formulating knowledge 17 | 18 | [Article](https://www.supermemo.com/en/articles/20rules#Cloze%20deletion) 19 | 20 | - Formulating knowledge impacts how you learn 21 | - Assume that you'll use SRS 22 | 23 | 1. Do not learn if you do not understand 24 | - Don't be blind when you learn 25 | 1. Learn before you memorize 26 | - Understand the whole picture before memorizing 27 | 1. Build upon the basics 28 | - A simple initial picture is better; you can always improve as needed 29 | - "Usually you spend 50% of your time repeating just 3-5% of the learned material" 30 | 1. Stick to the minimum information principle 31 | - Stick to simple, easily retained information 32 | - Break complex items into more specific and smaller, easier to remember items 33 | - Ask questions that are as specific as possible, so that the answers are also as short as possible 34 | 1. Cloze deletion is easy and effective 35 | - Cloze deletion: blank the part you want to learn from a sentence (e.g. X is the second president) 36 | 1. Use imagery 37 | - Remember to weight the costs and profits between a question/answer pair and a visual image 38 | 1. Use mnemonic techniques 39 | - Usually you only need to use these techniques for 1-5% of what you learn 40 | 1. Graphic deletion is as good as cloze deletion 41 | - Similar to cloze deletion, but remove parts of an image 42 | 1. Avoid sets 43 | - Retaining information in sets is very expensive 44 | - Turn sets into enumerations (e.g. alphabetically sorted or etc) 45 | - "You should always try to make sure your brain works in the exactly same way at each repetition" 46 | - Memorizing a 5+ set is almost impossible (without other mnemonic techniques) 47 | 1. Avoid enumerations 48 | - If you have to memorize them, use cloze deletions (and overlapping ones; different blanks in the same material for different questions) to help 49 | - Memorizing phrases and quotes is also an enumeration! (Learn to recognize them!) 50 | 1. Combat interference 51 | - Sometimes similar information will conflict (e.g. memorizing lots of similar numbers) 52 | - You will get confused as to what is what 53 | - Detect and eliminate 54 | - Make learning items as unambiguous as possible 55 | 1. Optimize wording 56 | - Make items as short as possible (figure out which loses of information are acceptable and inconsequential to your goal, or test them in other questions) 57 | 1. Refer to other memories 58 | - Use prior memories or learnings to help provide more context 59 | 1. Personalize and provide examples 60 | - Add personal information to provide more context 61 | 1. Rely on emotional states 62 | - Illustrate examples with strong emotions to aid recall and avoid interference 63 | 1. Context cues simplify wording 64 | - Use categories and reference labels to more efficiently provide context than in the question 65 | 1. Redundancy does not contradict minimum information principle 66 | - Redundancy: more information than minimum necessary, or duplicate 67 | - You may want different perspectives (e.g. reversed questions or differing views), deviations, or alternative answers to also be included 68 | 1. Provide sources 69 | - Can provide sources when challenged in real life 70 | - Should accompany information, but don't make a point to learn them unless necessary 71 | 1. Provide date stamping 72 | - Useful for volatile information, to easier update items later 73 | - In some cases the date stamp may be an important part of the learned knowledge (usually when looking to compare / trends) 74 | 1. Prioritize 75 | - Stages of prioritizing 76 | 1. Prioritize sources 77 | 1. Extracting knowledge 78 | 1. Formulate items and learn via SRS 79 | 80 | ### The Roots of Creativity and Genius 81 | 82 | [Article](https://www.supermemo.com/articles/genius.htm) 83 | 84 | - Nice long read on using knowledge with intuition (definition of wisdom?) to achieve creative genius 85 | - Try to learn and apply abstract rules to life (the more abstract the rule, the more you'll be able to apply it) 86 | - In most creative aspirations, quality is more important than speed 87 | - "Creativity and cold meticulousness are often at odds" 88 | - Sometimes speed, or sureness of implementation are more important than perfection of an idea 89 | - "A typical characteristic of a creative mind: craving for creative opportunities away from the spotlight" 90 | - Personality is key for genius: emotional control allows you to optimally channel creativity; personality is much larger influencer than pure specs of the brain 91 | - Conditions of creativity: 92 | - Suitable state of mind, suitable environment, time, motivation, curiosity, knowledge 93 | - "Creative balance is the key! There is an optimum level of creativity for any given task." 94 | - Creating genius: rage to master, self-discipline and will power 95 | - Be able to handle delayed gratification 96 | - Be domineering to a child (for pursuit of mastery) until that child develops his own views on life 97 | - Study developmental psychology 98 | - Using systems theory to represent reality (as a means of simplification) may be a useful perspective 99 | - "It is better to get a poorly paid job that will let you grow than to enslave your mental potential in an environment that will pull you into the proverbial rate race." 100 | - "Human emotion is often rationalized, i.e. it may lay at the root of an endeavor that is otherwise covered up with rational excuses" 101 | - **"Learn to capitalize on positive emotions and circumvent negative emotions"** 102 | - "Look for people who will have positive influence on you... positive emotions beget positive emotions" 103 | - "Instead of living to be happy, you should rather happily live up to your highest ideals" 104 | - "Pick something you love and make it your life's work. Do what is important and not what is easy" -- Dean Kamen 105 | - Goal setting: "Instead of optimizing for your goal, maximize the results of your day using the criteria determined by the goal" 106 | - Most satisfying factors: self-esteem, relatedness, autonomy, and competence 107 | - "Genius is 1% inspiration and 99% perspiration" -- Thomas Edison 108 | - Don't tunnel vision towards something; e.g. education: some things are better memorized (or absolutely required) whereas others may be learned more easily by doing or by reasoning 109 | - "There is no limit to what a man can accomplish if he does not mind who gets the credit" -- Robert Woodruff 110 | - Have self-confidence and an unshakeable belief that problems are solvable 111 | 112 | ### Memorizing a programming language using spaced repetition software 113 | 114 | [Article](https://sivers.org/srs) 115 | 116 | - Remember, flash cards are for what **you** learned; make new ones as you go (rather than just taking someone else's and sticking with it) 117 | - Making cards (for programming): 118 | - Turn prose into (short tidbits of) code 119 | - Try to trick your future self (highlight gotchas) 120 | - Save cool tricks 121 | - Require more than one answer (if there's alternative ways that are just as good, or better in other situations) 122 | - Turn broad concepts into succinct examples 123 | 124 | ### Janki Method 125 | 126 | Articles: [1](http://www.jackkinsella.ie/articles/janki-method), [2](https://www.oxbridgenotes.com/articles/janki_method_refined), [3](https://www.oxbridgenotes.com/articles/autodidactism/note_taking) 127 | 128 | - Problems with learning: 129 | - We forget too quickly 130 | - We give up too quickly 131 | - We learn out of context (lack mental context to apply learnings to practical problems you face) 132 | - We think we can learn without doing 133 | - We make more mistakes than we need to --> **Turn real life mistakes (in all aspects: technology, people, etc) into reviewable material** 134 | - We do not reflect on the big picture --> **Reflect and create abstract rules you can apply later** 135 | - We let our knowledge representations grow messy 136 | - We do not reference primary sources 137 | - Rules: 138 | - “Every time you learn something new create a question and answer flashcard and add this card to Anki.” 139 | - “You must use Anki every single day - including weekends and holidays - and commit to doing so indefinitely.” 140 | - “Learn in context. Pick a project, and learn only what you need to get it done.” 141 | - “Only add a card to your deck after having tried to use the item of knowledge therein.” 142 | - “Every time you make a mistake carry out a post-mortem and try to figure out the lessons in the experience. Think about what you would need to know to prevent that mistake from occurring again, and turn this insight into new flashcards.” 143 | - “At the end of every project ask yourself what lessons you learned and what you would do differently if you were to repeat the project with the benefit of hindsight.” 144 | - “Delete or modify any incorrect, outdated, difficult to remember, incomplete or unnecessary cards. Update existing cards as improved understanding dawns.” 145 | - “Read code regularly. If you come across something interesting – be that an algorithm, a hack, or an architectural decision - create a card detailing the technique and showing the code.” 146 | - "Skill in a technical field is the product of your intelligence and your knowledge." 147 | - Keep adding increasingly abstract rules and concepts 148 | - Only add cards if: 149 | - It's a general concept applicable to many areas 150 | - It relates to a major technology you'll likely keep using for a long time 151 | - It's something I use everyday and likely will be for a while 152 | - Tips: 153 | - Cards with screenshots may be useful 154 | - Don't try to make concepts too detailed if they can be generalized across an area (e.g. programming languages); it's more important to understand the concept than detailed usage 155 | - Ordered information is difficult (see 20 rules above) 156 | - Suspend cards on topics you may not need to use anymore 157 | - Lower the intensity if it's too burdensome (better to commit to practicing than be too scared to) 158 | - After repeated review failures, try out / do what the card asks (e.g. a commands) 159 | - Fail a card if you haven't used it recently (and could have) rather than if you "know" it / have memorized it 160 | - Add explanations as to how to get an answer in quiz cards 161 | - Have a fresh thought / challenge every time you review a card (e.g. create a new example) 162 | - Challenge yourself early on potential confusions 163 | - Resolve inconsistencies: research descrepancies and either eliminate, generalize, or learn exceptions 164 | - Assign names, mental images, or locations to ideas and techniques (i.e. mnemonics) 165 | 166 | ### Autodidactism 167 | 168 | [Article](https://www.oxbridgenotes.com/articles/autodidactism/oxbridge_notes_guide_to_autodidactism) 169 | 170 | - Useful guide for learning *strategies*, including malgorithms, note taking, social reinforcement, etc 171 | - Probe experts about their intuition and what they were thinking while doing something 172 | - **"Where prepackaged knowledge runs out, observation and analysis begins."** 173 | - To obtain skills, ask yourself "How can I do that?" 174 | - Practice doing work that mirrors your end-goal output 175 | - "Mindless practice can lift you to a local maximum, only experimentation can take you to a global maximum" 176 | - **Maximize mistakes made per minute** 177 | - "Knowledge, even if sound, can become degraded through transmission; it’s your responsibility to ensure the signal reaches its destination intact." 178 | 179 | ### How to Love What You Do 180 | 181 | [Article](http://www.paulgraham.com/love.html) 182 | 183 | - "If you think something's supposed to hurt, you're less likely to notice if you're doing it wrong." 184 | - Doing what you love depends on the timespan; think about the long term (rather than *this instant*) 185 | - "Just do what you like, and let prestige take care of itself." 186 | - If the task didn't suck, it wouldn't be prestigious 187 | - If two things are equally admirable, but one has more prestige, pick the other --> similar to going against dogma; one side is usually clouded by emotional attachment rather than real value 188 | - Notice when connected parties share the risk, but not the rewards (e.g. parents: share the risk of their child doing risky things, but not the inherent fun) 189 | - Test for work you love: **always produce** 190 | - "You should prevent your beliefs about how things are from being contaminated by how you wish they were" 191 | 192 | ### Mental Models 193 | 194 | [Article](https://www.farnamstreetblog.com/mental-models/) 195 | 196 | - "You can get in way more trouble with a good idea than a bad idea, because you forget that the good idea has limits." -- Benjamin Graham 197 | - Add more models to see the limits 198 | 199 | ### Welcome to the Hyper Meritocracy 200 | 201 | [Article](https://themission.co/welcome-to-the-hyper-meritocracy-c3621fc62936) 202 | 203 | - "It is not the most intellectual of the species that survives; it is not the strongest that survives; but the species that survives is the one that is able best to adapt and adjust to the changing environment in which it finds itself." -- Charles Darwin 204 | 205 | ### How to Live on 24 Hours a Day 206 | 207 | [Article](https://www.farnamstreetblog.com/2017/05/arnold-bennett-living-meaningful-life/) 208 | 209 | - "We shall never have more time. We have, and have always had, all the time there is." -- Arnold Bennett 210 | - Don't mindlessly spend your time; invest it in things that will be useful into the future 211 | 212 | Random 213 | ------ 214 | -------------------------------------------------------------------------------- /2017-quotes.md: -------------------------------------------------------------------------------- 1 | Quotes 2 | ====== 3 | 4 | - **"What's not going to change in the next 10 years? ... You can build a business strategy around the things that are stable in time"** -- Jeff Bezos 5 | - "Inspiration exists but it has to find you working." -- Picasso 6 | - "Every mathematician believes that he is ahead of the others. The reason none state this belief in public is because they are intelligent people." -- Kolmogorov 7 | - "Everything should be made as simple as possible, but not simpler." -- Einstein 8 | - "We become, neurologically, what we think." -- Nicholas Carr 9 | - "If you want to be a clever person, you have to learn how to ask cleverly, how to listen attentively, how to respond quietly, and how to stop talking when there is nothing more to say." — Leo Tolstoy 10 | - "Wherever there is a human being, there is an opportunity for a kindness." -- Seneca 11 | - "We are more often frightened than hurt; and we suffer more from imagination than from reality." -- Seneca 12 | - "He suffers more than necessary, who suffers before it is necessary." -- Seneca 13 | - "The whole future lies in uncertainty: live immediately." -- Seneca 14 | - "Those who are not aware they are walking in darkness will never seek the light" -- Bruce Lee 15 | - "If you want to feel good, brainstorm it. If you want to appear good, test it. If you want to know if you’re any good, ship it." -- Jason Fried 16 | -------------------------------------------------------------------------------- /2018-april.md: -------------------------------------------------------------------------------- 1 | April 2018 2 | ========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Against Economic Abstraction 8 | 9 | [Article](https://medium.com/@Vlad_Zamfir/against-economic-abstraction-e27f4cbba5a7) 10 | 11 | - Economic abstraction: blockchain architecture can be modified to remove the existence of a single native blockchain token; potentially any number could be used 12 | - Proof of stake: 13 | - Economic abstraction makes calculating economic security more difficult, and increases attack surface on the calculation 14 | - Transaction fees: 15 | - Validators would have to calculate which fees offered are adequate 16 | 17 | 18 | Life 19 | ---- 20 | 21 | ### What Makes A Good Engineering Culture 22 | 23 | [Article](http://www.effectiveengineer.com/blog/what-makes-a-good-engineering-culture) 24 | 25 | - Optimize for iteration speed 26 | - Barriers to deploying code and features is super frustrating! 27 | - Leaders need to "commit, explode, recover": commit to a plan, execute, and react to results 28 | - Automate 29 | - Automation must be driven by data and monitoring 30 | - Build the right abstractions 31 | - Build the right underlying framework and use the crap out of it 32 | - Do code reviews right. Period. 33 | - Foster a respectful environment 34 | - People should be comfortable challenging each other 35 | - Shared ownership of code 36 | - Don't build walls between teams; incentivize going across those walls 37 | - 20% time 38 | - You can also use it to incentivize people to learn about other parts of the tech stack, by working on it or documenting it 39 | 40 | ### A quick guide to Stripe's culture 41 | 42 | [Article](https://stripe.com/us/jobs/candidate-info?a=1#culture) 43 | 44 | - There a still a lot of hard problems with significant impact left. That being said, success is not assured; are you ok with a substantial amount of risk and ambiguity? 45 | - Responsibilities are serious. People are motivated; if you set a high bar, someone will try to push it higher. 46 | - Give high performers the room to work on the most interesting and high-impact problems 47 | - Seek truth, rather than follow. Follow the facts, from first principles, and allow your mind to be changed. 48 | - The "no asshole" rule is far too low. Overtrust your colleagues. 49 | - Recognize, award, and admire people who contribute to everyone's success (global vs. local); ownership over the whole vs. your share 50 | - Opinionated on what to build, neutral in who gets access to the results. 51 | - Micro pessimists but macro optimists: problems are everywhere, but things will be better in the future, and we will make positive impact 52 | 53 | ### Engineering culture at Airbnb 54 | 55 | [Article](https://medium.com/airbnb-engineering/engineering-culture-at-airbnb-345797c17cbe) 56 | 57 | - Engineers own their impact: everyone is responsible for creating as much value for users and the company as possible 58 | - Hire problem solvers, and leave decision making up to the individuals (but also help them get the most and best quality information to make decisions with via tools and processes) 59 | - Engineers define and prioritize impactful work with the rest of their teams 60 | - Default to information sharing 61 | - Helping others takes priority 62 | - Help your colleagues find leveraged problems to solve 63 | - Goals 64 | - Create a numeric target, to measure effectiveness against 65 | - Teams define their own subgoals and projects on a quarterly basis, guided by overall company strategy 66 | - "**We believe in shaping good judgment in individuals instead of imposing rules across the team"** 67 | - Empower the individual, align them with your overall strategy 68 | - On new processes or tools: 69 | - Facilitate awareness of the idea or tool, and then let it stand on its own merit. If it .doesn't catch on, it'll organically die 70 | - Values: 71 | - **Leave it better than you found it** 72 | - Managers are facilitators; get obstacles out of the way (career obstacles, prioritizations, technical help, etc) 73 | 74 | ### Palantir's Engineering Culture 75 | 76 | [Article](https://www.palantir.com/engineering-culture/) 77 | 78 | - "You just have to speak up when things aren't right, evaluate ideas on their merits, and build things that fix what's broken" 79 | - "We hire people to have an opinion and be creative" 80 | - "Inventing the future requires detaching yourself from the past"; celebrate your work getting replaced 81 | 82 | ### Objectives and Key Results 83 | 84 | [Article](https://medium.com/startup-tools/okrs-5afdc298bc28) 85 | 86 | - Objectives: write out what you hope to accomplish such that later you can easily tell if you have reached, or have a clear path to reaching, that objective 87 | - Key results: numerically-based expressions of success towards an objective 88 | - Its up to individual contributors to figure out how to get to these metrics 89 | - Make these flexible enough to allow for a number of creative solutions 90 | - **OKRs are a communication framework!** 91 | 92 | ### Reimagining work/life balance — Jason Fried 93 | 94 | [Podcast](https://soundcloud.com/the-journal/jason-fried) 95 | 96 | ### Embracing Both Sides of Yourself (Amir Salihefendic) 97 | 98 | [Podcast](https://www.reboot.io/episode/47-embracing-both-sides-of-yourself-with-amir-salihefendic/) 99 | 100 | ### The Two Biggest Drags On Productivity: Meetings And Managers (Or, As We Call Them, M&Ms) 101 | 102 | [Article](https://www.inc.com/jason-fried/excerpt-easy-on-the-mms.html) 103 | 104 | - Meetings and managers are the greatest causes of work not getting done at an office 105 | - Don't default to meetings to communicate; save it for when you absolutely need them! 106 | - "Too many meetings destroy morale and motivation" 107 | 108 | ### How We Work #4: "Knowns vs. Unknowns" 109 | 110 | [Video](https://www.youtube.com/watch?v=JwrI6rxELFw) 111 | 112 | - Hill charts are **genius** 113 | 114 | Random 115 | ------ 116 | 117 | -------------------------------------------------------------------------------- /2018-august.md: -------------------------------------------------------------------------------- 1 | August 2018 2 | =========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Augur hijack via dormant service workers 8 | 9 | [Article](https://medium.com/@peter_szilagyi/augur-hijack-via-dormant-service-workers-bea254258f98) 10 | 11 | - "From a technical perspective, the reason the exploit can be considered of a significant impact is because it **doesn’t require elevated permissions** to run, after running a single time it **remains dormant forever** in the user’s system and it’s a **fully legitimate browser functionality**, so no exploit detection software can ever catch it." 12 | - Avoid running apps from `localhost`, due to `origin` clashes (`localhost` is typically treated special to make it easier for development) 13 | 14 | ### How to Hire World Class Engineers 15 | 16 | [Article](https://angel.co/talent-hacks/how-to-hire-world-class-engineers) 17 | 18 | - What engineers are looking for (beyond compensation): 19 | - Opportunity 20 | - Challenge 21 | - Community 22 | - Steps: 23 | 1. Build brand 24 | - Make your org more desirable 25 | - Document and promote your org's mission, culture, and philosophy so that others can rally behind it 26 | - Easiest is to start with what you're specializing in, and why that's interesting 27 | - Don't be sloppy 28 | 1. Always be sourcing 29 | 1. Screen at scale 30 | - Screen after spending some time with the candidate 31 | - Questions: 32 | - "Why are you taking the time for me today?" 33 | - "What's your proudest achievement?" 34 | - "What's a recent find (blog post, github repo, etc) you recommend we check out?" 35 | 1. Interview effectively 36 | - Pair program with an actual engineer on real problems 37 | - Use a recent problem you've had to solve, and re-solve it with them 38 | 1. Close quickly 39 | - Discuss and negotiate compensation openly 40 | - Stay responsive in your communication 41 | - Showcase your own passion 42 | 43 | ### Real Work vs. Imaginary Work 44 | 45 | [Article](https://m.signalvnoise.com/real-work-vs-imaginary-work-8bdb84a7d1da) 46 | 47 | - "Thinking about how you’re going to do something is not the same as rolling up your sleeves and trying." 48 | - Test out ideas by writing real code, to hit the unknowns before declaring something as "downhill" 49 | 50 | ### How To Write Fast, Memory-Efficient JavaScript 51 | 52 | [Article](https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/) 53 | 54 | - V8 55 | - **Base compiler**: parses JS and generates machine code 56 | - V8 represents code in an internal type system optimized for lookups 57 | - **Runtime profiler** identifies "hot" functions that then gets optimized by the **optimizing compiler** 58 | - **Deoptimization**: backs out of optimizing code that the optimizer realizes it made bad assumptions about 59 | - Avoid using `delete` to dereference: it changes an object's hidden class 60 | - Especially hot objects that get used a lot! 61 | - Be careful when using timers; they're kept alive (to continue executing) and may leak state 62 | - Use `DocumentFragment`s to avoid page reflows 63 | 64 | 65 | Life 66 | ---- 67 | 68 | 69 | Random 70 | ------ 71 | -------------------------------------------------------------------------------- /2018-books.md: -------------------------------------------------------------------------------- 1 | Books 2018 2 | ========== 3 | 4 | ### Freakonomics 5 | 6 | Author: Stephen J. Dubner, Steven Levitt 7 | 8 | - Chaos theory applied to economics; hunt for data rather than "logical" / "rational" / emotional explanations to phenomenon 9 | 10 | ### Think Like a Freak 11 | 12 | Author: Stephen J. Dubner, Steven Levitt 13 | 14 | - Rethink your solution, restate your problems :) 15 | 16 | ### The Cathedral and the Bazaar 17 | 18 | [Book](http://www.catb.org/esr/writings/cathedral-bazaar/) 19 | 20 | - Cathedral: "carefully crafted by individual wizards or small bands of mages working in splendid isolation" 21 | - Bazaar: "release early and often, delegate everything you can, be open to the point of promiscuity" 22 | - Key lessons: 23 | - "Every good work of software starts by scratching a developer's personal itch" 24 | - **"Good programmers know what to write. Great ones know what to rewrite (and reuse)"** 25 | - Constructive laziness 26 | - "Plan to throw one away; you will, anyhow" -- Fred Brooks 27 | - You probably don't understand the problem until after the first implementation 28 | - Be ready to start over, at least once 29 | - "When you lose interest in a program, your last duty to it is to hand it off to a competent successor" 30 | - "Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging" 31 | - "Release early. Release often. And listen to your customers" 32 | - Optimize for the minimum-effort path from point A to point B 33 | - Linus's Law: "Given enough eyeballs, all bugs are shallow" 34 | - Finding and solving a problem is necessarily done by the same person 35 | - The **Delphi effect** (the crowd is smarter than the individual) applied to debugging 36 | - "Debugging is parallelizable"; debugging doesn't require that much coordination between people and thus has less fall off in Brook's Law 37 | - Non-developer sourced bugs usually lack a lot of context that make debugging easier 38 | - Open source makes it easier for tester (/ user) and developers to share context 39 | - Brook's Law is based on development groups communicating in complete-graph patterns, but open-source projects separate the work of external contributors to parallelizable subtasks 40 | - "Smart data structures and dumb code works a lot better than the other way around" 41 | - "If you treat your beta-testers as if they're your most valuable resource, they will respond by becoming your most valuable resource" 42 | - "The next best thing to having good ideas is recognizing good ideas from your users. Sometimes the latter is better" 43 | - "Often, the most striking and innovative solutions come from realizing that your concept of the problem was wrong" 44 | - Reframe the problem! Your users will tell you :) 45 | - Open source parallelizes exploration of the design space 46 | - "When your code is getting both better and simpler, that is when you know it's right" 47 | - **Any tool should be useful in the expected way, but a truly great tool lends itself to uses you never expected"** 48 | - "When writing gateway software of any kind, take pains to disturb the data stream as little as possible—and never throw away information unless the recipient forces you to!" 49 | - "When your language is nowhere near Turing-complete, syntactic sugar can be your friend" 50 | - **"A security system is only as secure as its secret. Beware of pseudo-secrets."** 51 | - "To solve an interesting problem, start by finding a problem that is interesting to you" 52 | - "Provided the development coordinator has a communications medium at least as good as the Internet, and knows how to lead without coercion, many heads are inevitably better than one" 53 | - Necessary preconditions for bootstrapping a community: 54 | - Runnable 55 | - Convince others it has potential to grow into something really useful 56 | - **"While coding remains an essentially solitary activity, the really great hacks come from harnessing the attention and brainpower of entire communities"** 57 | - **[Open source acts like a free-market, aligning a community of individuals' free wills with collective "principles of understanding"](http://www.catb.org/esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s11.html)** 58 | - "Feeling comforted by having somebody to sue would be missing the point. You didn't want to be in a lawsuit; you wanted working software." 59 | - Utility function for hackers is ego satisfaction and reputation 60 | - Altruism is a form of ego satisfaction for the altruist 61 | - Boring tasks / problems in open software: 62 | - **You don't need "motivation" (by whip and cash) to get people incentivized to solve these problems; somebody will choose to solve it because they have a fascination with the problem itself** 63 | - **"Play is the most economically efficient mode of creative work"** 64 | - Open source ownership is similar to Lockean, common-law theory of land tenure 65 | - Gift vs exchange economy 66 | - Exchange: social status primarily determined by what you have to use or trade 67 | - Gift: social status primarily determined by what you give away 68 | - Is open source more of a gift economy; the only measure of competitive success is the reputation among one's peers 69 | - Optimizing reputation incentives? 70 | - Is this the globally optimal way to cooperate for generating high-quality creative work? 71 | - Creative work may be demotivated by scarcity rewards (assuming nobody is worried of dying from scarcity); better to recognize and value output than to expect 72 | - For most, the exchange game has lost its appeal but not ability to constrain 73 | - "Authority follows responsibility" 74 | - Conflict resolution 75 | 1. Territorial rule 76 | 1. Seniority / Most invested wins 77 | - Against tragedy of the commons in open source (inverse commons): 78 | - Using software does not decrease its value; widespread use tends to increase its value 79 | - People need solutions _on time_, so they if they derive value from fixing it, they'd rather fix it than be a free rider and wait 80 | - Also, they're incentivized to publish any patch to alleviate further maintainence themselves 81 | - Free-rider problems are exhibited mainly in friction costs of submitting patches 82 | - **Make submission easy and simple!** 83 | - Use-value funding models 84 | - Cost-sharing (e.g. Apache web server) 85 | - Risk-spreading (e.g. software that might outlive someone's employment) 86 | - The right to fork software is like the right to sue: nobody wants to employ them, but it's a signal of danger if they're taken away 87 | - "When your key business processes are executed by opaque blocks of bits that you can't even see inside (let alone modify) you have lost control of your business" 88 | - Rebranding free software to open source: 89 | - Free Software Foundation was damaging: "free" is really confusing because it can denote both "free speech" and "free beer" 90 | - Top-down > bottom-up: furthering the OS movement required evangelizing to CEO/CTO/CIO types 91 | - Focus on Fortune 500: lots of concentrated money that's relatively accessible 92 | - Capture the media that serves the Fortune 500 93 | - Make sure the hacker community was aligned in speaking the same language 94 | - Mitigate serious abuse of the language by corporates 95 | - "Open source is [great, but it's] not magic pixie dust" -- JAmie Zawinski 96 | - **"Computers are tools for human beings. Ultimately, therefore, the challenges of designing hardware and software must come back to designing for human beings"** 97 | 98 | ### Skin in the Game 99 | 100 | Author: Nassim Nicholas Taleb 101 | 102 | - Find the asymmetries, where someone's risk doesn't match their gain 103 | 104 | *See notes in book* 105 | 106 | ### Lords of Finance 107 | 108 | Author: Liaquat ahamed 109 | 110 | - Even the best can go bankrupt 111 | - Gold standard ties world economic growth to how much of a mineral we can mine 112 | - Stubbornish towards dogma --> catastrophe 113 | 114 | *See notes in book* 115 | 116 | ### The Definitive Book of Body Languange 117 | 118 | Author: Allan & Barbara Pease 119 | 120 | - Keep practicing! 121 | 122 | ### The Decision Book 123 | 124 | Authors: Mikael Krogerus, Roman Tschappeler 125 | 126 | - Handbook for making decisions and mental models 127 | 128 | ### Faraday, Maxwell, and the Electromagnetic Field 129 | 130 | Authors: Nancy Forbes, Basil Mahon 131 | 132 | - Laws to live by: 133 | - "One should be not too hasty to erect general theories from a few particular observations" 134 | - "Take imagination to its limits but draw no conlusions without solid experimental proof" 135 | - "Explore; observe; experiment; eliminate sources of error" 136 | - "Don't become a prisoner of your own ideas" 137 | - "Nothing can be proved, except in mathematics, and much of what we take to be fact is merely conjecture (or opinion)" 138 | - Don't heed to everyone's wishes to be a slave to their lives; **live your own life** 139 | - Learn the **principles** on which laws and formulas stand 140 | - **Work, Finish, Publish** -- Michael Faraday 141 | - Inventions (e.g. electricial appliances) often need infrastructure to be laid before they're feasible for mass consumption 142 | - See "Techhnological Revolutions and Financial Capital" (Carlota Perez) on phases (irruption and frenzy lay infrastructure) 143 | - Often also need "scaffolding" to build them up pto a point where they can stand by themselves (and the scaffolds are realized as false or unnecessary) 144 | - Faraday: the experienting dreamer 145 | - Maxwell: a combination of "boldness, imagination, ingenuity, and sheer ppersistence" 146 | - Built a "bridge" from physical Newtonian physics to abstract (but present) electromagnetic fields 147 | - **Visionaries change our concept of reality and what we perceive to be real** 148 | - Paradigm shift 149 | - Determination: what is your _duty_? 150 | - Science: the ideal of the human intellect trying to understand nature; seekers of truth 151 | - No theory can stand unless it's tested by experiments (adverse environments) 152 | -------------------------------------------------------------------------------- /2018-december.md: -------------------------------------------------------------------------------- 1 | December 2018 2 | ============== 3 | 4 | Tech 5 | ---- 6 | 7 | 8 | Life 9 | ---- 10 | 11 | ### Scaling Engineering Organizations 12 | 13 | [Article](https://stripe.com/atlas/guides/scaling-eng) 14 | 15 | - Continuously iterate and evolve processes to your needs, **not** your users' needs 16 | - Recruiting and hiring: 17 | - Recruit consistently 18 | - Make sure to leave a good impression and have examples for different levels of proficiency 19 | - Test only a single critical skill in each interview 20 | - Culture: 21 | - Psychological safety to take risks and share beliefs 22 | - Engagement: 23 | - Employee happiness often rests on knowing impact of work and autonomy in decisions 24 | - Keep tabs on engagement; people often don't manifest concerns about their engagement externally 25 | - Help employees discover new opportunities within the organization 26 | - Ask for feedback quarterly about what could be improved in the organization and their scope of work 27 | 28 | 29 | Random 30 | ------ 31 | -------------------------------------------------------------------------------- /2018-february.md: -------------------------------------------------------------------------------- 1 | February 2018 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### Premises, Promises, and Reality 8 | 9 | [Article](http://blog.ycombinator.com/the-decentralized-future-series/) 10 | 11 | - Technological breakthroughs: what did they unlock that wasn't previously possible? 12 | - Distributed databases: without an incentive, who would maintain it? Cryptoeconomics to the rescue. 13 | 14 | ### You Could Have Invented Monads 15 | 16 | [Article](http://blog.sigfpe.com/2006/08/you-could-have-invented-monads-and.html) 17 | 18 | - Monads: mostly related to solving side effects 19 | - Bind: mostly for plumbing 20 | - Set of `(m, unit, bind)` is a monad (where `m` is the "other" dimension of return, e.g. a debug string) 21 | 22 | ### Placeholder Investment Thesis 23 | 24 | [Thesis](https://ipfs.io/ipfs/QmZL4eT1gxnE168Pmw3KyejW6fUfMNzMgeKMgcWJUfYGRj/Placeholder%20Thesis%20Summary.pdf) 25 | 26 | - IT cycles: expansion, conslidation, decentralization 27 | - Value creation shifts upwards as old platforms become commoditized and standardized 28 | - Current web distribution incumbents (e.g. Google, FB, Amazon, Apple) are too entrenched and too expensive to overcome 29 | - Conslidating market; best to invest heavily into them and then progressively invest in new platforms that may grow to commoditize the incumbent business models 30 | - Cryptonetworks: collapses the cost of building and scaling information networks by replacing centralized coordination with universal financial incentives 31 | - Cryptoeconomic incentives incentivize independent 3rd parties to scale the network (leveraging the community) 32 | - Diminishing capex of scale 33 | - ==> Native business model of any network 34 | - **Traditional valuation: price of stock reflects ability to monetize user base, rather than actual network value** 35 | - Key developer-side infrastructure (cryptocommodities) are still under-developed 36 | - Networks don't die like businesses die; decentralized is inherently more robust 37 | - **Cryptoeconomic model is to a network what a business model is to a company** 38 | - Token valuations are more like national currencies: they track the overall activity within a network / economy 39 | 40 | ### How to Make Bonding Curves for continuous Token Models 41 | 42 | [Article](https://hackernoon.com/how-to-make-bonding-curves-for-continuous-token-models-3784653f8b17) 43 | 44 | - Bonding curve: defines token price as a function of supply 45 | - Allows us to have instant liquidity 46 | - Dynamic inflation rates according to demand 47 | - Difficulty in computing: every small adjustment of supply will change the price 48 | - Sounds like a task for integration 49 | - Child tokens have compounded risk, and are likely to be extremely volatile 50 | - Power functions allow us to define our bonding curve in terms of a reserve ratio: 51 | - ratio = poolBalance / (currentPrice * tokenSupply) 52 | - poolBalance is the integral of the pricing function (e.g. 1/3*x^3 if pricing function is x^2) 53 | - Often simplifies down to a constant value, e.g. 1/3 for quadratic curves 54 | 55 | 56 | Life 57 | ---- 58 | 59 | ### 36 Ways To Hire, Develop, and Retain Great People 60 | 61 | [Article](https://medium.com/@barmstrong/35-ways-coinbase-hires-develops-and-retains-great-people-cbfdf93b1c5c) 62 | 63 | 1. Don't let managers make unilateral decision (Ray Dalio: believability weighted decision making) 64 | 1. Give people freedom (Montessori method) 65 | 1. Default to open 66 | 1. Have an ambitious mission 67 | 1. Create internal competition 68 | 1. Create "bureaucracy busters" (aka fix what's annoying with your ops / processes) 69 | 1. Culture isn't static; keep your values consistent 70 | 1. Have a Chief Culture Officer (consistency over constancy) 71 | 1. Invest more in hiring than in training 72 | 1. Don't rely on inbound applications; seek out superstars 73 | 1. When you find someone great, pursue them for years 74 | 1. Only hire people who are better than you 75 | 1. The CEO should review every hire 76 | 1. If you're not a hell yes, you're a no 77 | 1. Referrals can be a high quality source of hires: jog people's memories and go through their network 78 | 1. Increasing hte referral bonus does not increase the referral rate 79 | 1. Pay unfairly for top talent: human performance follows a power law distribution 80 | 1. Be more like an all-star team than a family 81 | 1. Most people aren't good interviewers 82 | 1. Interview based on sample work and structured interview questions 83 | 1. Find and develop your best interviewers 84 | 1. Have at least two interviewers assess each value or key competency 85 | 1. Create a safe space for employees to speak up: encourage revealing pain instead of concealing blame 86 | 1. Encourage acting like an owner, rather than an employee 87 | 1. People Ops should be transparent on the process and statistics, but private on individual details 88 | 1. Constantly A/B test People Ops 89 | 1. Remind people about bias, right before the performance review 90 | 1. Identify and transition low performers 91 | 1. Manager quality is the single best predictor of whether an employee will stay or leave 92 | 1. Remind/nudge people frequently about how to be good managers 93 | - Be a good coach 94 | - Empower the team and don't micromanage 95 | - Express interest/concern for team members' success and personal well being 96 | - Be very productive/results oriented 97 | - Help the team with career development 98 | - Have a clear vision/strategy for the team 99 | - Have important skills that help advise the team 100 | 1. Survey employees about how well managers are doing on the above 101 | 1. In training, spend more time on practice/repetition, and less on content 102 | 1. Have the best employees in each area run trainings 103 | 1. Give experiential awards, not monetary awards (non cash rewards trigger emotional responses) 104 | 1. Reward thoughtful culture 105 | 1. Hire only one-third "traditional HR" people in People Ops 106 | 107 | ### Netflix Culture Deck 108 | 109 | [Article](https://www.slideshare.net/BarbaraGill3/netflix-culture-deck) 110 | 111 | - "The **real** company values, as opposed to the nice-sounding values, are shown by who gets rewarded, promoted, or let go" 112 | - Behavious and skills we value in colleagues 113 | - The best workplaces are those where you have stunning colleagues: direct all your processes towards attracting them 114 | - "Adequate performance gets a generous severance package" 115 | - If you're not going to fight hard to keep an employee, give them a severance package now 116 | - Don't curtail freedom to avoid errors; relying too much on processes makes you fragile and lose out on talent 117 | - Find responsible, self-disciplined people to avoid chaos when growing 118 | - Increase talent density faster than complexity grows! 119 | - Make mistakes, recover rapidly 120 | - Processes: 121 | - Good: help good people get more done 122 | - Bad: attempt to prevent recoverable mistakes 123 | - Avoid rule creep! 124 | - Get outcomes through context, rather than control 125 | - Inspire through goals, vision, strategy 126 | - Highly aligned, loosely coupled teams 127 | - Interactions are about strategy and goals, not tactics 128 | - Compensation reviews should be adjusted to their market: "rehire" each year 129 | - Individuals should manage their own career paths, rather than relying on their corporation for planning their careers 130 | 131 | Random 132 | ------ 133 | 134 | ### Why I am an Austrian Economist 135 | 136 | [Take 1](http://bytemaster.github.io/article/2015/01/04/Why-I-am-an-Austrian-Economist/) 137 | [Take 2](http://bytemaster.github.io/article/2015/01/06/Why-I-am-an-Austrian-Economist-Take-2/) 138 | 139 | - Using complex math / logic to describe humans is often a mistake: using complicated measures for complex systems is systemically hiding risks / simplifications 140 | - If you can't follow it, most will assume it's right (pose smart; appeal to authority) 141 | - Principles: 142 | 1. All value is perceived value (wealth is the cumulative perceived value of all parties); subjective value (vs. objective value) 143 | - Controlled by each individual and can only be changed by that individual 144 | 1. There is no unit of value 145 | 1. An individual can only rank how they value things 146 | 1. You cannot compare value judgements among mulitple people 147 | 1. A price is only valid the instant it happened and only for the parties involved 148 | 1. You cannot perform mathematical operations on prices to draw conclusions 149 | 1. Only voluntary trade can reveal relative value of items 150 | - Heuristic: when you get results that justify violating "do not do unto others what you do not want done to you", there was probably a mistake somewhere 151 | - Challenge: a voluntary trade between two people may result in a loss of value to a third party 152 | - However, the change in value of property due to 3rd party transactions is controlled by the owner, and only when a transaction is made with the property 153 | 154 | ### Why I am Not an Austrian Economist 155 | 156 | [Article](http://econfaculty.gmu.edu/bcaplan/whyaust.htm) 157 | 158 | - Modern neoclassical economics draws from microeconomic blocks: 159 | - Utility functions 160 | - Indifference analysis 161 | - Kaldor-Hicks (cost-benefit) 162 | - Austrian: reject all of these elements 163 | - Utility functions vs. value scales 164 | - Utility functions model individual preferences 165 | - Value scales: ordered set of preferences 166 | - Both are used to approximate utility maximization, either to maximize the function or finding the highest ranked feasible preferences in the set 167 | - Austrians: scales are better because you can't measure the distance between preferences; utilities are not quantities and cannot be measured / have mathematical operations done to them 168 | - Neoclassical: utility functions are not meant to be cardinal; they only signal preference; you can only monotonically scale (re-scale however you scaled it) 169 | - Argues that Austrians got this part wrong: the math does not bound the thereoms to cardinal utility 170 | - Indifference curves 171 | - Utility of two choices are the same 172 | - Austrian: however, action demonstrates preference; no preference can exist which cannot be revealed in action 173 | - Neoclassical: there are more to actions than just the manifestation (what happened and what you can observe) 174 | - Continuity 175 | - Utility functions, supply and demand curves are continuous 176 | - Austrian: human beings' perceptions are not continuous 177 | - Neoclassical: without continuous functions, supply and demand will rarely be equal 178 | - Welfare 179 | - Austrian: every market transaction benefits all participants, every government intervention benefits some people at the cost of others 180 | - Changes in social utility from intervention are ambiguous 181 | - Neoclassical: using utility values allows you to make hard judgments about which choices are more or less efficient than others 182 | - Socialism 183 | - Austrian: socialism is impossible because it lacks any method of economic calculation 184 | - However, Austrian economics is all about qualitative judgments rather than quantiative judgments... 185 | - The economic calculation problem is overstated as an argument against socialism; hardly empirical science backing it up 186 | - Monopoly Theory 187 | - Neoclassical: free-market structures are "second-best" efficient; there is no feasible real-world way to improve them 188 | - Austrian Business Cycle 189 | - Widely accepted: 190 | 1. Unemployment increases during downturns; caused by excessive wages and inflation as a unreliable means of reducing wages 191 | 192 | ### Decentralized Governance in Sovrin 193 | 194 | [Article](http://www.windley.com/archives/2018/02/decentralized_governance_in_sovrin.shtml) 195 | 196 | - Governance is in everything we do, the question is whether this governance is ad-hoc and implicit or formal and explicit 197 | - Explicit governance is a *protocol* 198 | - Both code and operators are governance questions in blockchains 199 | - "Rules and regulations, laws and contracts, can never replace clarity of shared purpose and clear, deeply held principles about conduct in pursuit of that purpose." -- Dee Hock 200 | - Can this clarity be encoded into a consitution? 201 | - Argument for permissioned / known set of validator nodes: protecting decentralization and trust-minimization by using a binding constitution (that minimizes ability for parties to force actions from one another / control others) 202 | -------------------------------------------------------------------------------- /2018-january.md: -------------------------------------------------------------------------------- 1 | January 2018 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### Confidential Transaction, the Initial Investigation 8 | 9 | [Article](https://www.elementsproject.org/elements/confidential-transactions/investigation.html) 10 | 11 | - Pseudoanonymity breaks down when transaction amounts are known 12 | - Confidential Transactions: makes the transaction amounts private, while preserving the ability of the public network to verify that the ledger entries still add up 13 | - Possible due to homomorphic commitments (Pedersen commitment): commitments that can be added (the sum of a set of commitments is the same as a commitment of the sum of the data) 14 | 15 | ### Ethereum Casper 101 16 | 17 | [Article](https://medium.com/@jonchoi/ethereum-casper-101-7a851a4f1eb0) 18 | 19 | - Proof of Stake offers: 20 | - Explicit Economic Security: has flexibility to design explicit penalties for Byzantine behaviour (rather than just energy or hardware costs); cost of damage is a proxy for security 21 | - Repeated attacks in PoS are much more costly: as if "your ASIC farm burned down" with each round 22 | - Mitigation of Centralization: mitigates economies of scale that exist in PoW consensus 23 | - Lower energy costs: substitutes realized costs (non-reversible, e.g. power and depreciation) with potential economic value-at-loss (risk of slashing) 24 | - Issuance costs: 25 | - Internalized costs: PoW miners pass them on to holders 26 | - Externalized costs: environmental and governmental costs 27 | - PoS has much lower issuance costs (and may even reach negative if there are enough tx fees and penalties) 28 | - Casper establishes explicit finality (as opposed to probablistic) 29 | - Explicit finality enables maintaining network security when sharding is introduced 30 | - Design principles: 31 | 1. Economics to design behaviour 32 | 1. Maximize cost of attack 33 | 1. Public (social) cost-benefit, not just private 34 | 1. Prevent economies of scale 35 | 1. network security is derived from "skin in the game" 36 | 1. Design for oligopolies 37 | 1. Accountable safety (attribute faults to bad actors) 38 | 1. Plausible liveness (avoid "blocks") 39 | 1. Minimal synchronicity assumptions (validators can deliberately go offline) 40 | 1. Decentralized things should be able to regenerate (recoverable from last node standing) 41 | 1. Disincentivize censorship 42 | - Challenges: 43 | - Nothing-at-stake: during forks, optimal strategy for validators is to validate every chain 44 | - Long range attack: rewrite the entire chain's history; problematic because PoS isn't secured by time-intensive operations 45 | - Criticisms: 46 | - Adverse selection: potentially large risk to participate, so participants will likely be ones with more to gain via some advantage or attack 47 | - Rich get richer: PoS is actually more egalitarian than PoW due to economies of scale in PoS 48 | - 3 Es of Sybil resistence: 49 | 1. Entry Cost 50 | 1. Existence Cost 51 | 1. Exit Penalty 52 | 53 | ### The History of Casper 4 54 | 55 | [Article](https://medium.com/@Vlad_Zamfir/the-history-of-casper-chapter-4-3855638b5f0e) 56 | 57 | - **"Blockchain architecture is mechanism design for oligopolistic markets"** -- Vlad Zamfir 58 | 59 | ### Money, blockchains, and social scalability 60 | 61 | [Article](http://unenumerated.blogspot.ca/2017/02/money-blockchains-and-social-scalability.html) 62 | 63 | - Social scalability: ability of an institution (relationship or shared endeavor) to overcome shortcomings in human minds in determining who or how many can successfully participate 64 | - All about human limitations! 65 | - How does technology constrain or motivate participation in an institution? 66 | - Extra benefits of new person joining - expected costs and harms to other participants 67 | - Technology: moving function from mind to paper or mind to machine, lowering cognitive costs while increasing the value of information flowing between minds, lowering the cost of discovering new participants 68 | - "Civilization advances by extending the number of important operations which we can perform without thinking about them" -- Alfred North Whitehead 69 | - Trust-minimized: reducing the vulnerability of participants to each other's and to outsiders' and intermediaries' potential for harmful behaviour 70 | - Nothing can completely remove all vulnerabilities: trustless is a misnomer (easy to use though) 71 | - Internet: all about matchmaking, baby 72 | - Markets: removing trust in other's altruism but incentivising them to work on our behalf 73 | - Pricing: monopolizing collective intelligence for costs and demands 74 | - Blockchains: trust minimization 75 | - Bitcoin: computationally expensive, but institutionally (socially) cheap 76 | - Scalable markets and prices require scalable money, and scalable money comes from scalable security 77 | - **"Lawyers are costly. Regulation is to the moon."** 78 | - "Typical computers are computational etch-a-sketch, while blockchains are computational amber" 79 | - "Public blockchains are automated, secure, and global, but identity is labor-intensive, insecure, and local." 80 | - We are limited by our minds; we require redesigned institutions that take advantage of social technological advances 81 | 82 | ### Notes on Blockchain Governance 83 | 84 | [Article](http://vitalik.ca/general/2017/12/17/voting.html) 85 | 86 | - On chain governance has a number of upsides, e.g. evolves rapidly inside the protocol, not informal and has due process, can impose arbitrary performance requirements for nodes without economic centralization 87 | - Blockchain governance: 88 | - Decision function: inputs are a bunch of decisions / opinions from people; output is decision 89 | - Coordination: governance in layers, where bottom-most is truth, but it can be influenced from above (i.e. coordination institutions that create focal points around how and when individuals should act to coordinate) 90 | - Coordination flags (in coordination games): everyone's watching a signal to do the same things as others; incentivized into mob behaviour because most beneficial (e.g. charging into battle) 91 | - Key questions concerning governance: 92 | 1. What should the bottom layer be, e.g. what is the "truth" layer, and what parameters / levers can we manipulate in it? 93 | 1. What should layer 2, i.e. coordination institutions, be? 94 | - Where should voting occur? Layer 1? Layer 2? 95 | - Voting has a lot of bribing vulnerabilities, and so to have things committed automatically via threshold voting may be dangerous 96 | - Think about multifactor systems; e.g. using voting and dev team voice as signals 97 | 98 | ### The Problem with Voting 99 | 100 | [Article](https://medium.com/@nayafia/the-problem-with-voting-8cff39f771e8) 101 | 102 | - Voting is a competitive game 103 | - What would cooperative governance look like? 104 | - Work with others to achieve a shared outcome 105 | - Default mode is failure, so bias is towards action 106 | 107 | ### Non-Interactive Proofs of Proof of Work 108 | 109 | [Paper / Video](https://iohk.io/research/papers/#67CHCNP8) 110 | 111 | - Using NiPoPoW / NiPoPoS to prove transactions across chains (to transfer funds across sidechains) 112 | - Gist of PoPoW: only 1/(2^n) blocks will exist in the chain given _n_ and total number of blocks _N_ such that there are 2^_n_ partitions in the blockhashes in _N_ 113 | - If we choose _n_ large enough, there will only be a small amount number of blocks that should exist within N that maintain the property of existing within a certain partition 114 | - For ~400k blocks, if we choose _n_ = 15, there should only be about 10 blocks with this property 115 | 116 | ### Mechanism Design Security in Smart Contracts 117 | 118 | [Article](https://medium.com/@matthewdif/mechanism-design-security-in-smart-contracts-87f08555b38b) 119 | 120 | - Frontrunning 121 | - Transactions can be front-runned! Any secrets getting exposed in a transaction (e.g. to solve a puzzle) can be detected and mined earlier by someone else (or a miner) 122 | - Solution: use blind commitments (e.g. ENS: first give hash bids, then later reveal) 123 | - Malicious Wrappers 124 | - Contracts can be constructed to "wrap" existing contracts, potentially avoiding conditions set out in the original contracts (e.g. lock-in periods for tokens) 125 | - Solution: case-by-case, but can be difficult. For some use cases, simply ensuring that users are not smart contracts can be enough (done by asking for a signature that can be checked via `ecrecover`: contracts can never own private keys, and hence they cannot create signatures) 126 | - `EXTCODESIZE` will not work if a call happens from a constructor: be aware (it returns 0)! 127 | -------------------------------------------------------------------------------- /2018-july.md: -------------------------------------------------------------------------------- 1 | July 2018 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | ### Nature 2.0 8 | 9 | [Article](https://medium.com/@trentmc0/nature-2-0-27bdf8238071) 10 | 11 | - How to move from scarcity to abundance? 12 | - "Network technology provides a disintermediating layer where you may not know what’s on the other side" 13 | - Decentralized networks that enable social scalability are also **public utility networks** 14 | - Software's anti-fragileness: if a piece of software is attacked (and survives), it'll be patched later and be stronger than before 15 | - Blockchains as a new life form: it survives because it can pay people to keep it alive, and performs a useful service to incentivize that 16 | - AI DAOs **live** and **evolve** rather than being simulations 17 | 18 | ### Thinking in Solidity 19 | 20 | [Article](https://blog.cotten.io/thinking-in-solidity-6670c06390a9) 21 | 22 | - XOR swap can be incredibly efficient (way more than `(arr[uint(i)], arr[uint(j)]) = (arr[uint(j)], arr[uint(i)])`) 23 | 24 | ### Fat protocols aren't new: What blockchain can learn from p2p file sharing 25 | 26 | [Article](https://medium.com/@jbackus/fat-protocols-arent-new-42d2c538db41) 27 | 28 | - Fat protocols: 29 | - Enable more experimentation; network effects don't lie inside the client itself so more are built 30 | - Better UX comes in varieties: interfaces, supporting more networks, additional features, etc. 31 | - **These differentiating clients have sovereignty**; they are able to do anything the underlying protocol supports, and the protocol owners can't censor them 32 | - Live by themselves, outside of their original creators 33 | - **Protocols split product / market fit into two:** 34 | - Protocol / market fit: is the protocol powerful and general enough? 35 | - Evolve democratically in civil communities 36 | - Fork when relationships feel adversarial 37 | - Application / consumer fit: does the application optimize how the user wants to use the protocol? 38 | - Finding this fit may be embarrassingly parallel 39 | - These applications can find their fit by narrowing the use case of a protocol (e.g. video instead of all media) 40 | 41 | ### Worse is Better 42 | 43 | [Article](https://www.jwz.org/doc/worse-is-better.html) 44 | 45 | - The "right way" maximizes on all fronts: 46 | - Simplicity 47 | - Correctness 48 | - Consistency 49 | - Completeness 50 | - The "worse-is-better" approach: 51 | - Simplicity: most important 52 | - Correctness: in all observable aspects; better to be simple than correct 53 | - Consistency: not overly inconsistent, best to drop parts that deal with less common parts that introduce complexity or inconsistency 54 | - Completeness: as much as practical; never sacrifice for simplicity, can sacrifice consistency for completeness (especially for interface consistency) 55 | - Simplicity means it's easier to spread to areas that are below the median (e.g. simpler implementation means it's easier to port to slow machines) 56 | - Condition users to accept worse than the right thing, **if the initial product is good** 57 | - **It is better to get half of the right thing available so that it spreads like a virus.** 58 | - Afterwards, the community will improve upon it naturally 59 | 60 | 61 | Life 62 | ---- 63 | 64 | 65 | Random 66 | ------ 67 | -------------------------------------------------------------------------------- /2018-june.md: -------------------------------------------------------------------------------- 1 | June 2018 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | ### What Every Engineer Should Know About Open Source Software Licenses and IP 8 | 9 | [Article](https://eng.uber.com/oss-ip/) 10 | 11 | - Patent: underlying idea 12 | - Copyright: instance of the idea (e.g. written code) 13 | - MIT: permissive for use, except it does not expressly permit patent use 14 | - Apache 2.0: similar to MIT, but with permissions for patent use 15 | 16 | ### The pyramid of clarity 17 | 18 | [Article](https://wavelength.asana.com/pyramid-clarity-strategic-alignment/) 19 | 20 | - Remember to not optimize for the wrong goal 21 | - Pyramid of clarity: shows how the longer-term aspirations are built on top of shorter-term goals 22 | - Mission -> Strategy -> Company-Wide Objective -> Group Objectives -> Key Results (over a time period) -> Individual Projects 23 | 24 | ### Clarity in the design process: how to create a process map for your team 25 | 26 | [Article](https://wavelength.asana.com/clarity-design-process-create-process-map/) 27 | 28 | - "A template that everyone can refer to as they bring a product from idea to ship" 29 | - There can be execptions, but it's the process everyone's expected to follow 30 | - "What’s your ideal design process?" 31 | - Elements: 32 | 1. Ideation: understanding customer issues and product strategy 33 | 1. Definition: defining strategy and requirements 34 | 1. Iteration: prototyping and testing 35 | 1. Implementation: refining 36 | 37 | ### How we build our Product Roadmap at Asana 38 | 39 | [Article](https://medium.com/@jackiebo/how-we-build-our-product-roadmap-at-asana-56953b1e25ad) 40 | 41 | - Balance autonomy and individual contribution with strategic goals 42 | - How to get input for goals? 43 | - Objectives and product roadmap are built from each other: consider what work is required to achieve an objective, and what objective a product improvement fulfills 44 | - What will the company / product look like in a year? 45 | - At the end, each piece of work should be directly relatable to a KR, Objective, and Mission 46 | 47 | Life 48 | ---- 49 | 50 | ### How to lead with clarity of purpose, plan, and responsibility 51 | 52 | [Article](https://wavelength.asana.com/types-clarity-high-performing-teams/) 53 | 54 | - Moving teams from chaos / confusion to clarity is one of the most vital functions of leadership 55 | - Rule of thumb: underestimate how much clarity the team has 56 | - Three types of clarity: 57 | 1. Clarity of purpose: why 58 | - Link the team's mission with the larger organization 59 | - **The work to maintain clarity continues indefinitely!** 60 | - Answer: "If we’re wildly successful, how will the world be different?", "How is the work you’re doing now directly contributing to that success?" 61 | 1. Clarity of plan: how to get there 62 | - Everyone should have easy access to an accurate source of truth of the current plan 63 | 1. Clarity of responsibility: role in execution 64 | - Each part of the plan has an owner (best one) 65 | - Best way to unearth lack of clarity: proactively ask questions, and solicit questions 66 | 67 | Random 68 | ------ 69 | -------------------------------------------------------------------------------- /2018-march.md: -------------------------------------------------------------------------------- 1 | March 2018 2 | ========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Juristopia 8 | 9 | [Article](http://unenumerated.blogspot.de/2007/05/juritopia.html) 10 | 11 | ### Microkernel government 12 | 13 | [Article](http://unenumerated.blogspot.de/2007/05/microkernel-government.html?m=1) 14 | 15 | - "An efficient market is an outcome, not a cause, of good law" 16 | - Juristopia: replacing delegation with property and peer contract relationships 17 | - Unbundling of power 18 | - Keep government minimized (microkernel) and spin off all other functionality into franchises that deal with more substantive law 19 | 20 | ### Today's Crypto Asset Valuation Frameworks 21 | 22 | [Article](https://blockchainatberkeley.blog/todays-crypto-asset-valuation-frameworks-573a38eda27e) 23 | 24 | - Currency features: store of value, medium of exchange, unit of account 25 | - Store of Value 26 | - Ecosystem's acceptance / collective belief is foundational to a currency's position as a store of value 27 | - Token Velocity 28 | - Basically MV=PQ 29 | - Hodling => higher price 30 | - Asset design could incentivize hodling, e.g. staking 31 | - Hard to measure all variables, when velocity changes, hard to determine which of M, P, or Q to record corresponding change 32 | - INET, Crypto J-curve 33 | - Current utility value + discounted expected utility value, using MV=PQ to calculate price 34 | - M calculated as value of on-chain transaction value (PQ/V), aka network GDP 35 | - Network Value-to-Transaction Ratio (NVT) 36 | - NVT = network value / daily tx volume 37 | - Similar to P/E 38 | - Volume represents utility users derive from network 39 | - Daily active addresses/users 40 | - Similar to daily active users 41 | 42 | ### A Declaration of the Independence of Cyberspace 43 | 44 | [Article](https://www.eff.org/cyberspace-independence) 45 | 46 | - "In our world, whatever the human mind may create can be reproduced and distributed infinitely at no cost. The global conveyance of thought no longer requires your factories to accomplish." 47 | 48 | ### A Cypherpunk's Manifesto 49 | 50 | [Article](https://w2.eff.org/Privacy/Crypto/Crypto_misc/cypherpunk.manifesto) 51 | 52 | - **"Privacy is not secrecy"** -> "privacy is the power to selectively reveal oneself to the world" 53 | - Anonymity empowers us to reveal ourselves as desired and only when desired 54 | - To encrypt is to indicate the desire for privacy 55 | - **"We know that software can't be destroyed and that a widely dispersed system can't be shut down"** 56 | 57 | ### Deep-copying in Javascript 58 | 59 | [Article](https://dassur.ma/things/deep-copy/) 60 | 61 | - `JSON.parse(JSON.stringify(...))` is the fastest (lol) 62 | - `MessageChannel` is best right now for structured cloning 63 | 64 | ### 30-seconds of CSS 65 | 66 | [Article](https://atomiks.github.io/30-seconds-of-css/) 67 | 68 | ### 10 cheat codes for designing User Interfaces 69 | 70 | [Article](https://medium.com/sketch-app-sources/design-cheatsheet-274384775da9) 71 | 72 | - This is awesome! 73 | 74 | ### Lesser known CSS quirks & advanced tips 75 | 76 | [Article](https://medium.com/@peedutuisk/lesser-known-css-quirks-oddities-and-advanced-tips-css-is-awesome-8ee3d16295bb) 77 | 78 | - Vertical padding is relative to element’s width not height (for e.g. `padding-top: 50%`), lolwat 79 | 80 | ### Axiomatic CSS and Lobotomized Owls 81 | 82 | [Article](https://alistapart.com/article/axiomatic-css-and-lobotomized-owls) 83 | 84 | - `* + *` is a pretty good sibling selector (ie. no more `*:last-of-type` queries)! 85 | 86 | ### HEAD 87 | 88 | [HEAD](https://gethead.info/) 89 | 90 | Life 91 | ---- 92 | 93 | ### How Light Holacracy Transformed Our Startup 94 | 95 | [Article](https://www.blinkist.com/magazine/posts/light-holacracy-transformed-startup) 96 | 97 | - Holacracy: "eliminate all hierarchies and job titles in organizations, and replace them with a formal structure that is fully focused on getting the job done" 98 | - Not about decentralized chaos, but about adopting a ruleset that allows everyone to make smart and effective decisions 99 | - No departments, just overlapping circles that are flexible in design and function, easy to spin up and stop 100 | - Focus on people and _their_ abilities, rather than their _role_ or _title_ 101 | 102 | ### The The Whole Story of Holacracy at Blinkist 103 | 104 | [Article](https://www.blinkist.com/magazine/posts/whole-story-holacracy-blinkist) 105 | 106 | - Holacracy has a lot of misconceptions, causing clarity chaos 107 | - Are the best organizational systems invisible and in the aether? 108 | - People > process 109 | 110 | ### Tribe of Mentors (Quick Lessons) 111 | 112 | [Article](https://addicted2success.com/success-advice/after-weeks-of-reading-tribe-of-mentors-heres-the-quick-lessons-you-can-learn/) 113 | 114 | - Have a question for everything 115 | - Everyone (including your superheroes) are flawed, but they stayed focused and executed 116 | - Success still comes with a side of weakness; you will always have some so focus on the strengths 117 | - Heuristic: increase the number of uncomfortable moments in your life; they will make you stronger and more courageous 118 | - Always make the hard choice 119 | - Let kindness guide you in difficult times 120 | - Commit to decisions by avoiding ranking anything a seven 121 | - Criticism means you are doing something meaningful; push the boundaries (but listen to the feedback) 122 | - Being vulnerable is uncommon, and draws people closer 123 | - Knowing nothing is an advantage: new ideas and strategies comes from being naive 124 | - Plateaus before gains: "when you think there’s no progress, it’s in fact, invisible progress that you can’t see" 125 | 126 | ### The Artist and the Innovator 127 | 128 | [Article](https://blog.leanstack.com/the-artist-and-the-innovator-e6b4888c5869) 129 | 130 | - Traction is evidence of a business model, and today, **business models are the product** (rather than the solution) 131 | - Customers don't care about your solution, they care about their problems 132 | - Build something you **know** customers will buy (rather than something you **hope** they will buy) 133 | - Remove the biggest risks first by confronting them! 134 | - "Innovators turn inventions into working business models" 135 | 136 | Random 137 | ------ 138 | -------------------------------------------------------------------------------- /2018-november.md: -------------------------------------------------------------------------------- 1 | November 2018 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### Trust Minimized Governance Tokens 8 | 9 | [Article](http://blog.aragon.one/trust-minimized-governance-tokens/) 10 | 11 | - Governance tokens need at least these mechanisms: 12 | 13 | 1. Only proposals which align with the stated intent of the organization are executed 14 | - Traditional stakeholders in organizations are protected by the legal system that enforces an organization's charter and bylaws 15 | - A way to protect decentralized organizations, whose execution is irreversible, is to prevent malicious intentions from reaching a stage where they could be considered (e.g. a challenge response system for intents) 16 | 2. Ability for participants to safely exit en masse in response to contentious policies 17 | - Rather than mass selling, allow "rage quitting" individuals a equal share to the pie 18 | - The organization may be forced to hold fully liquid assets 19 | - The organization could fund the "rage quitting" by taking on debt and then liquidating its other assets 20 | 21 | ### How Contract Migration Works 22 | 23 | [Article](https://blog.trailofbits.com/2018/10/29/how-contract-migration-works/) 24 | 25 | - Rather than use proxies to upgrade, full data migration could be used to _migrate_ a contract 26 | - Really depends on the use case 27 | 28 | ### Building Ethereum’s public smart contract infrastructure 29 | 30 | [Article](https://medium.com/authio/building-ethereums-public-smart-contract-infrastructure-part-2-of-2-74e32f52c9fe) 31 | 32 | - Runtime utility: global public good, sometimes acting as a forwarder 33 | - E.g. account registrar: only allow an action if it's been forwarded through the registar 34 | - _Public_ aspect can leverage network effects 35 | - Gateway contracts: "frontend" gateway holding runtime utilities 36 | - Interesting: the gateway would hold both _code_ and _state_; the utilities provide code, and all their state is shared 37 | - Delegatecalls into the runtime utility, and expects a `revert` to ensure that no state changes happened; the return data is parsed and set 38 | 39 | 40 | Life 41 | ---- 42 | 43 | ### The Premium Mediocre Life of Maya Millennial 44 | 45 | [Article](https://www.ribbonfarm.com/2017/08/17/the-premium-mediocre-life-of-maya-millennial/) 46 | 47 | - **Premium Mediocre** 48 | - "Mediocre with just an irrelevant touch of premium, not enough to ruin the delicious essential mediocrity." 49 | - "Creating an aura of exclusivity without actually excluding anyone." 50 | - "Dressing for the lifestyle you’re supposed to want, in order to hold on to the lifestyle you can actually afford — for now — while trying to engineer a stroke of luck" 51 | - Social mobility options: illusion of upward potential, anxiety about downwards possibility 52 | - People pay for premium mediocracy for: 53 | - Reassuring their parents 54 | - Reassuring / cheerleading their heros 55 | 56 | 57 | Random 58 | ------ 59 | -------------------------------------------------------------------------------- /2018-october.md: -------------------------------------------------------------------------------- 1 | October 2018 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### Diving into C++ internals of node 8 | 9 | [Article](https://darksi.de/c.cpp-in-node/) 10 | 11 | - History and layout of node.js source 12 | 13 | Life 14 | ---- 15 | 16 | 17 | Random 18 | ------ 19 | -------------------------------------------------------------------------------- /2018-quotes.md: -------------------------------------------------------------------------------- 1 | Quotes 2 | ====== 3 | 4 | - "Successful software always gets changed" -- Frederick Brooks 5 | - **Work, Finish, Publish** -- Michael Faraday 6 | -------------------------------------------------------------------------------- /2018-september.md: -------------------------------------------------------------------------------- 1 | September 2018 2 | ============== 3 | 4 | Tech 5 | ---- 6 | 7 | ### A Peek Inside the Moonshot Factory Operating Manual 8 | 9 | [Article](https://blog.x.company/a-peek-inside-the-moonshot-factory-operating-manual-f5c33c9ab4d7) 10 | 11 | - An X project must: 12 | - Solve a problem that affects millions or billions of people 13 | - Have an audacious, sci-fi sounding technology 14 | - There has to be at least a glimmer of hope that it’s actually achievable in the next 5–10 years 15 | - **Responsibly irresponsible** 16 | - Identify risks early, learn cheaply, and be brutally honest what's working and what's not 17 | - **Fall in love with the problem, not the solution** (e.g. a technology) 18 | - Find "T-shaped" people who are intellectually flexible but have deep domain expertise 19 | - Centralized "design kitchen" of flexible staff that help independent teams on specific areas (e.g. hardware prototyping) 20 | - **Moving through the factory** 21 | 1. Rapid evaluation: find the breakthroughs that might offer the core ingredients needed 22 | - Understand the biggest risks 23 | - Build prototypes around the hardest and riskiest areas to understand the problem (while also satisfying economic requirements) 24 | - Find out with more certainty if an idea can survive comfortably (and make money) in the real world 25 | - **Actively killing ideas** 26 | - Kill fast, make it psychologically safe to walk away when something's not working 27 | - Assume failure is the norm 28 | - Progress based on risk factor (progress only counts if it's towards the riskiest aspects) 29 | - Have planned kill switches 30 | 31 | 32 | Life 33 | ---- 34 | 35 | ### What Most Remote Companies Don’t Tell You About Remote Work 36 | 37 | [Article](https://blog.doist.com/mental-health-and-remote-work-1b77616f6945) 38 | 39 | - "The beauty of remote work lies in the ability to optimize your location for your well-being." 40 | - On mental health: when you don’t see your coworkers in person every day, it’s easy to assume that 41 | everything is ok when it’s not 42 | 43 | ### Anatomy of a JavaScript Error 44 | 45 | [Article](https://blog.bugsnag.com/anatomy-of-a-javascript-error/) 46 | 47 | - You can use `window.addEventListener('unhandledrejection', handler)` to handle all unhandled promise rejections 48 | - Make use of `Error.captureStackTrace(this, )` when defining your own custom error classes 49 | 50 | 51 | Random 52 | ------ 53 | -------------------------------------------------------------------------------- /2019-books.md: -------------------------------------------------------------------------------- 1 | Books 2019 2 | ========== 3 | 4 | ### High Output Management 5 | 6 | Author: Andy Grove 7 | 8 | ### The Finance Curse 9 | 10 | Author: Nicholas Shaxson 11 | 12 | ### What You Do Is Who You Are 13 | 14 | Author: Ben Horowitz 15 | 16 | ### The Silk Roads 17 | 18 | Author: Peter Frankopan 19 | -------------------------------------------------------------------------------- /2019-december.md: -------------------------------------------------------------------------------- 1 | December 2019 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | Life 8 | ---- 9 | 10 | ### The Article I Should’ve Read Before Forming My Delaware LLC 11 | 12 | [Article](https://gusto.com/blog/start-business/delaware-llc-advantages-disadvantages) 13 | 14 | ### What's a C corp 15 | 16 | [Article](https://gusto.com/blog/start-business/c-corporation) 17 | 18 | ### What is an LLC 19 | 20 | [Article](https://gusto.com/blog/start-business/what-is-an-llc) 21 | -------------------------------------------------------------------------------- /2019-january.md: -------------------------------------------------------------------------------- 1 | January 2019 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### Secure Interaction Design and the Principle of Least Authority 8 | 9 | [Paper](http://zesty.ca/pubs/yee-sid-chi2003-workshop.pdf) 10 | 11 | - Design principles: 12 | 1. *Path of Least Resistance*: The most natural way to do any task should also be the most secure way. 13 | 2. *Appropriate Boundaries*: The interface should expose, and the system should enforce, distinctions between objects and between actions along boundaries that matter to the user. 14 | 3. *Explicit Authorization*: A user’s authorities must only be provided to other actors as a result of an explicit user action that is understood to imply granting. 15 | 4. *Visibility*: The interface should allow the user to easily review any active actors and authority relationships that would affect security-relevant decisions. 16 | 5. *Revocability*: The interface should allow the user to easily revoke authorities that the user has granted, wherever revocation is possible. 17 | 6. *Expected Ability*: The interface must not give the user the impression that it is possible to do something that cannot actually be done. 18 | 7. *Trusted Path*: The interface must provide an unspoofable and faithful communication channel between the user and any entity trusted to manipulate authorities on the user’s behalf. 19 | 8. *Identifiability*: The interface should enforce that distinct objects and distinct actions have unspoofably identifiable and distinguishable representations. 20 | 9. *Expressiveness*: The interface should provide enough expressive power (a) to describe a safe security policy without undue difficulty; and (b) to allow users to express security policies in terms that fit their goals. 21 | 10. *Clarity*: The effect of any security-relevant action must be clearly apparent to the user before the action is taken. 22 | 23 | ### Enter the Crypto Idea Maze 24 | 25 | [Article](https://jonchoi.com/cryptoideamaze/) 26 | 27 | - Theses: 28 | - *Sound money*: “Trustless money” that cannot be inflated by any trusted authority such as a central bank. 29 | - *Web3*: “Trustless internet” where Internet architecture is free of trusted centralized data & service monopolies. Users have more control over their data and Internet usage. These networks also compensate participants for economic value generated in the network. 30 | - *Open finance*: “Trustless financial systems” that extend cryptocurrency to provide open software primitives for equities, debt, derivatives, checking accounts, remittances, work contracts, retirement accounts, property etc. 31 | - Features are not inherently valuable; they're only useful in the context of a user need 32 | - Each of the theses have their own, diverging users 33 | - What does success for a product / feature mean? 34 | - What is its next best alternative? And how much worse is this alternative? 35 | - If critical mass is necessary, is there any value before reaching that point? 36 | - Ethos-requiring products will only get so far without a compelling case for ethos-neutral people (i.e. most people) 37 | 38 | 39 | Life 40 | ---- 41 | 42 | 43 | Random 44 | ------ 45 | -------------------------------------------------------------------------------- /2019-june.md: -------------------------------------------------------------------------------- 1 | June 2019 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | ### No Kings: How Do You Make Good Decisions Efficiently in a Flat Organization? 8 | 9 | [Article](https://doist.com/blog/decision-making-flat-organization/) 10 | 11 | - Too much input results in being overwhelmed; work towards rough consensus instead 12 | - "Engineering always involves a set of tradeoffs. It is almost certain that any time engineering choices need to be made, there will be options that appeal to some people, but are not appealing to some others." 13 | - Take temperature of the room by humming instead of explicitly voting 14 | - Make the distinction between "not the best choice" (loose disagreement) vs. fundamental flaws (disqualifying disagreement) 15 | - Don't slow down the process due to loose disagreement 16 | - Have a shared understanding of what "fundamentally flawed" looks like for a particular decision 17 | - Conceding is not compromise 18 | - Rule of thumb: if it's not worth committing to over-communicate a point, it's probably unnecessary feedback 19 | - Ask people if "can you live with this?" rather than "do you agree with this?" 20 | -------------------------------------------------------------------------------- /2019-may.md: -------------------------------------------------------------------------------- 1 | May 2019 2 | ======== 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Year in Ethereum (2019) 8 | 9 | [Article](https://medium.com/@jjmstark/the-year-in-ethereum-87a17d6f8276) 10 | 11 | ### Creating Animations and Interactions with Physical Models 12 | 13 | [Article](https://iamralpht.github.io/physics/) 14 | 15 | - Maintain the sense of physics via momentum and "virtual" friction 16 | - Makes interactions feel more natural (we intuitively understand the conservation of momentum) 17 | - Spring values: 18 | - Spring constant: affects the speed of the feedback (tension?) 19 | - Damping: affects the size of the feedback (force?) 20 | - You can slow things down with constant deceleration, or friction 21 | - Humans are great at tracking linear motion, but terrible at tracking zoom 22 | - Avoid linear translations if the performance is bad! 23 | 24 | ### Kubernetes monitoring with Prometheus in 15 minutes 25 | 26 | [Article](https://itnext.io/kubernetes-monitoring-with-prometheus-in-15-minutes-8e54d1de2e13) 27 | 28 | - Kubernetes Operator: an application-specific controller that extends the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user 29 | - Prometheus Operator provides easy monitoring for k8s services and deployments besides managing Prometheus, Alertmanager and Grafana configuration. 30 | - ServiceMonitor 31 | - A [Custom Resource Definition](https://kubernetes.io/docs/concepts/api-extension/custom-resources/) 32 | - Abstract how services are targetted by Prometheus, by defining custom rules (e.g. matching a label) 33 | - AlertManager 34 | - Handle incoming alerts (dedupe, group, etc.) and send them to receivers 35 | 36 | ### React Design Principles 37 | 38 | [Article](https://reactjs.org/docs/design-principles.html) 39 | 40 | 41 | Life 42 | ---- 43 | 44 | ### A Big Little Idea Called Legibility 45 | 46 | [Article](https://www.ribbonfarm.com/2010/07/26/a-big-little-idea-called-legibility/) 47 | 48 | - A repeated pattern of failure by being fooled by your subjective lack of comprehension (of a complex system) into making false simplifications, attempting to maximize "legibility" 49 | - Maximizing "organization" 50 | - E.g. applied to states trying to simplify taxation, control, identity, etc. 51 | - What gets measured gets maximized 52 | - Real societies look random, but are actually pseudorandom (e.g. random number vs. digits in pi) 53 | - Sometimes replacing locally optimal solutions with globally optimal ones (e.g. standardization of time) 54 | - Engineering a shift in optima and power 55 | 56 | ### Eight Metaphors of Organization 57 | 58 | [Article](https://www.ribbonfarm.com/2010/07/13/the-eight-metaphors-of-organization/) 59 | 60 | - The organization as: 61 | - Machine 62 | - Organism 63 | - Brain 64 | - Culture 65 | - Political system 66 | - Psychic prison 67 | - System of change and flux 68 | - Instrument of domination 69 | 70 | ### Aggregation Theory 71 | 72 | [Article](https://stratechery.com/2015/aggregation-theory/) 73 | 74 | - Aggregation Theory: describes how platforms (i.e. aggregators) come to dominate the industries in which they compete in a systematic and predictable way 75 | - Value chain: supplier, distributor, consumer/user 76 | - Outsized profits: 77 | - Horizontally integrate in one segment 78 | - Vertically integrate between two to gain UX advantage 79 | - Before internet, control depended on controlling the distributor 80 | - Most integrated backwards into supply rather than forward into consumers: costly individual transactions means that controlling the smaller (and less chaotic) segment provides more leverage 81 | - With internet, distribution is free, supply has grown, transaction costs minimized 82 | - Allows companies to focus on the consumers with UX, and the supply will be attracted to those who have the most scale 83 | 84 | ### Defining Aggregators 85 | 86 | [Article](https://stratechery.com/2017/defining-aggregators/) 87 | 88 | - Must have three characteristics: 89 | - Direct relationship with customers 90 | - Zero marginal costs for additional customer 91 | - Demand driven networks with decreasing acquisition costs (e.g. network effects) 92 | - Abundance in supply; most value comes at discovery and curation 93 | - Suppliers are drawn by more users; users are draw by more suppliers 94 | 95 | ### How to build a successful movement in 4 steps 96 | 97 | [Article](https://ideas.ted.com/how-to-build-a-successful-movement-in-4-steps/) 98 | 99 | - "New power operates like a current. It is made by many. It is open, participatory and peer-driven. Like water or electricity, it’s more forceful when it surges. **The goal with new power is not to hoard it but to channel it**." 100 | - Find connected connectors 101 | - Be frictionless; everyone else is also veying for attention and resource commitment 102 | - Move people up the participation scale; keep them engaged 103 | - Complying 104 | - Consuming 105 | - Sharing 106 | - Affliating 107 | - Adapting 108 | - Funding 109 | - Producing 110 | - Shaping 111 | 112 | 113 | Random 114 | ------ 115 | -------------------------------------------------------------------------------- /2019-november.md: -------------------------------------------------------------------------------- 1 | November 2019 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | Life 8 | ---- 9 | 10 | ### Q&A With AngelList Co-founder Naval Ravikant 11 | 12 | [Article](https://angel.co/blog/q-and-a-with-angellist-co-founder-naval-ravikant) 13 | 14 | - "The best ones [deals] come through your network. The big advantage in Silicon Valley is access." 15 | - More investors driven to private deals because government bonds, equity, and hedge assets (art, wine, gold, etc) are not performing well anymore 16 | - "Behind most great tech companies there’s a great angel: This is the insight that led Paul Graham to start Y Combinator." 17 | 18 | ### Tracking OKR Results with the Weekly Check-in 19 | 20 | [Article](https://felipecastro.com/en/okr/tracking-okr-results/) 21 | 22 | - Mindset during check ups: improve OKRs, not putting out fires or providing excuses 23 | - During check in: 24 | - Progress update: what has changed? 25 | - Confidence: are we feeling good about achieving it? 26 | - Impediments: what's slowing us down? What's not working? 27 | - Initiatives: what are we going to do to get there? 28 | 29 | ### CEO Coaches 30 | 31 | [Article](https://blog.alexmaccaw.com/ceo-coaches) 32 | 33 | - 1:1 feedback cycle and radical candor 34 | - Create a safe space for critical feedback and enforcing feedback cycles 35 | - Collectively agree on commitments and direction; make the commitments accountable 36 | - [Conscious leadership](https://conscious.is/)? 37 | - Lead from vulnerability 38 | - Trust your team and share your deepest fears; they'll handle the truth and can respect it 39 | - Conflict resolution 40 | - Make sure both sides have been heard and understood; have their interests at heart 41 | - Weekly OKRs tracking with traffic lights 42 | 43 | ### Feedback is not a evil word 44 | 45 | [Article](https://blog.alexmaccaw.com/feedback-is-not-a-dirty-word) 46 | 47 | - "You are not objective enough about yourself to grow effectively without external feedback" 48 | - **Effective criticism** 49 | - Given in private 50 | - Given when the receiver expects it 51 | - Comes from a genuine place 52 | - Is specific and avoids sweeping statements 53 | - Is in a nonviolet communication format 54 | - Feedback triggers anger and fear; the art is to avoid provoking these emotions 55 | - Phrasing: “When you do *specific action*, I feel *emotion* because the story in my head is *your fear*” 56 | - Specific action should be observable and recordable 57 | - Emotion is a core emotion, like anger, sadness, disappointment, fear 58 | - Example: " When you didn’t write any tests for that pull-request you submitted last week, I feel fear because the story in my head is that you don’t place enough value on testing, and that without tests we will introduce bugs that will upset customers, affect revenue, and ultimately destroy our chances of creating a successful company." 59 | - Receiving feedback 60 | - Avoid fight-or-flight responses; your ego is not being destroyed! 61 | - View feedback as a gift 62 | - Repeat given feedback to make sure you've gotten it right, and that the other person knows you've heard them 63 | - Make sure to track feedback and commit to improving it! 64 | - Be vulnerable; if you can, make the feedback public 65 | 66 | ### Zone of Genius 67 | 68 | [Article](https://blog.alexmaccaw.com/zone-of-genius) 69 | 70 | - You are "in the flow" (zone of genius) if you're working in your 71 | - Strengths (gives you energy) 72 | - Talents (something you inexplicably love or are good at) 73 | - Skills (something you were trained in) 74 | - Some people may fall in the "zone of excellence" if they're working with talents and skills, but not in a strength. Identify these people before they burn out! 75 | 76 | Random 77 | ------ 78 | -------------------------------------------------------------------------------- /2019-october.md: -------------------------------------------------------------------------------- 1 | October 2019 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Power User Curve 8 | 9 | [Article](https://a16z.com/2018/08/06/power-user-curve-l30-l7/) 10 | 11 | - L30 curve for understanding engagement 12 | - Not every product is a daily use product; if they don't they need to make those engagements count (monetization, etc) 13 | 14 | ### Loomio Handbook 15 | 16 | [Book](https://loomio.coop/) 17 | 18 | - Strategy: a story we tell from 3 years into the future 19 | - Working groups: can be spun up for a single purpose and then dissolve 20 | - They can also split, merge, or reorganize 21 | - Avoid the ["tyranny of structureless"](https://www.jofreeman.com/joreen/tyranny.htm) 22 | 23 | ### Replication is bad for decentralized storage 24 | 25 | - [Part 1](https://storj.io/blog/2018/11/replication-is-bad-for-decentralized-storage-part-1-erasure-codes-for-fun-and-profit/) 26 | - [Part 2](https://storj.io/blog/2019/01/why-proof-of-replication-is-bad-for-decentralized-storage-part-2-churn-and-burn/) 27 | 28 | - Erasure codes provide dramatically better durability for the same replication factor against replication 29 | - However, the CPU cost of repairing erasure codes is fair higher (you have to reconstruct the full file, find which pieces are missing, and propagate them again) 30 | - "Increasing node churn dramatically decreases file availability and durability. Strategies like erasure coding and replication are means of insulating against the impact of node churn, but without a mechanism to replace the data, file loss is simply a factor of the rate of churn." 31 | 32 | ### How Superhuman Built an Engine to Find Product/Market Fit 33 | 34 | [Article](https://firstround.com/review/how-superhuman-built-an-engine-to-find-product-market-fit/) 35 | 36 | - Approach to getting to PMF 37 | - Sean Ellis is a boss 38 | - “How would you feel if you could no longer use the product?” and measure the percent who answer “very disappointed.” 39 | - The magic number to this question is 40% 40 | - You start to get directionally correct results around 40 respondents 41 | - "If you only double down on what users love, your product/market fit score won’t increase. If you only address what holds users back, your competition will likely overtake you" 42 | 43 | Life 44 | ---- 45 | 46 | ### Talk Fast, Talk Smart 47 | 48 | [Video](https://www.youtube.com/watch?v=HAnw168huqA) 49 | 50 | - Frame conversations as questions rather than speaking points; answer them with your knowledge 51 | - Manage anxiety 52 | - Be in the present, not the unknown (made up) future 53 | - Reframe to be an opportunity or a gift 54 | - It is not a performance! There is no perfection or mistakes! 55 | - Focus on listening! Be spontaneous! Don't overanalyze and get out of your own way! 56 | - **"Dare to be dull"** 57 | - Add structure to your communication 58 | - Problem / opportunity, solution, benefits 59 | - What, so what, now what 60 | 61 | ### How to make stress your friend 62 | 63 | [Video](https://www.youtube.com/watch?v=RcGyVTAoXEU) 64 | 65 | - How you think about stress matters! 66 | - Be better at handling stress; don't believe it's always bad for you 67 | - Your body is rising to a challenge, helping you grow 68 | - Stress helps make you social; part of the stress response is oxytocin 69 | 70 | ### Tyranny of Structurelessness 71 | 72 | [Article](https://www.jofreeman.com/joreen/tyranny.htm) 73 | 74 | - There is no such thing as a fully structureless group 75 | - Structurelessness becomes a way of masking power 76 | - Implicit structure becomes a way of hiding power; explicit means others know what's going on and how to contribute 77 | - Elites organically form in groups, based on shared beliefs and activities, and create their own tightly-bounded, informal communication channel 78 | - "Once one knows with whom it is important to check before a decision is made, and whose approval is the stamp of acceptance, one knows who is running things" 79 | - **For an organization to be effective, these "friendship" traits that commonly form elites have to give in to traits of competence and merit** 80 | - Formation of elites is not bad; merely inevitable 81 | - The informal group cannot be compelled to be responsible; it is left to the interests of the individuals 82 | - Tasks can implicitly structure groups 83 | - If there is no task at hand, people resort to controlling others out of a lack of something better to do 84 | 85 | Random 86 | ------ 87 | -------------------------------------------------------------------------------- /2019-september.md: -------------------------------------------------------------------------------- 1 | September 2019 2 | ============== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Status as a Service 8 | 9 | [Article](https://www.eugenewei.com/blog/2019/2/19/status-as-a-service) 10 | 11 | - Most social networks are games of status, and younger people are better at understanding motivations and navigating the "game" to acquire status inside the social network 12 | - Artificial barrier that some are uniquely able to "mine" for status (continued effort, talent, etc.) 13 | 14 | ### Quantitative Approach to Product Market Fit 15 | 16 | [Article](https://tribecap.co/a-quantitative-approach-to-product-market-fit/) 17 | 18 | A number of interesting metrics to quantify product/market fit 19 | 20 | 1. Growth accounting 21 | - Navigating revenue/engagement changes from various sources, and understanding the state of the business 22 | - New 23 | - Churned 24 | - Resurrected 25 | - Expansion 26 | - Contraction 27 | - Retained 28 | 2. Cohorts 29 | - Segment customers via 30 | - Lifetime value 31 | - Revenue retention 32 | - Customer (logo) retention: % of customers retained from a batch 33 | 3. Distribution of Product/Market Fit 34 | - Distribution of revenue/engagement 35 | - Don't just use the average, but plot the cumulative distribution function to see if there are concentrated activity from a smaller group of heavy users 36 | - May also be good to check the L28 distribution of users 37 | - Given N monthly active users, we plot the fraction that were active only 1 day in the month, then 2 days, and so on 38 | 39 | Life 40 | ---- 41 | 42 | ### Lencioni's Five Disorders of a Team 43 | 44 | [Article](https://medium.com/taskworld-blog/lencionis-5-dysfunctions-of-a-team-330d58b2cd81) 45 | 46 | 1. Absence of trust 47 | - Be vulnerable 48 | 1. Fear of conflict 49 | - Encourage healthy conflict, and praise it 50 | 1. Lack of commitment 51 | - Be clear and expect clarity 52 | 1. Avoidance of accountability 53 | - Call out each other and be accountable 54 | 1. Inattention to results 55 | - Put the needs of the team ahead of individuals, and organize status rewards based on this 56 | -------------------------------------------------------------------------------- /2020-april.md: -------------------------------------------------------------------------------- 1 | April 2020 2 | ========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Forgotten History of OOP 8 | 9 | [Article](https://medium.com/javascript-scene/the-forgotten-history-of-oop-88d71b9b2d9f) 10 | 11 | - Alan Kay invented OOP 12 | - “I made up the term ‘object-oriented’, and I can tell you I didn’t have C++ in mind.” 13 | - The essential ingredients: 14 | - Message passing (decoupling) 15 | - Encapsulation (avoiding shared mutable state) 16 | - Dynamic binding 17 | - Non-essential: 18 | - Classes, inheritance, polymorphism 19 | - Typing 20 | 21 | ### Why Development Teams are Slow 22 | 23 | [Article](https://medium.com/javascript-scene/why-development-teams-are-slow-89107985c75c) 24 | 25 | - **"If a prediction tells you you can do something by some date, don’t believe it. If a prediction tells you that you can’t do something by some date, believe it."** 26 | Life 27 | ---- 28 | 29 | ### The Product Management Triangle 30 | 31 | [Article](https://productlogic.org/2014/06/22/the-product-management-triangle/) 32 | 33 | - Product managers "fill in the whitespace" 34 | - Rest of article explains the whitespace between the developers <> users <> business triangle 35 | 36 | ### On Non-Violent Communication 37 | 38 | [Article](https://medium.com/@eriktorenberg_/on-nonviolent-communication-33ca8c7ebfcb) 39 | 40 | - Language framework for taking responsibility for our own thoughts, actions, and feelings: 41 | - Observation: specific facts/data, no evaluation/judgment 42 | - Feeling: state how we feel 43 | - Need: the need underlying this feeling 44 | - Request: must be specific action to address need 45 | - Example: “When , I feel , because I am needing . Therefore, I would now like .” 46 | - Others may not use this framework, but observe it in them! They all express needs hidden in a judgement or demand. 47 | - Don't focus on being right, focus on the others' unmet needs 48 | - Clarify between needs and strategies (actions) 49 | - Anger is an alarm clock for unmet needs 50 | - "The basis of violence is when people are in pain and don’t know how to say that clearly" 51 | - Avoid motivating by guilt (confuses needs and feelings) or "should" (gives you a way out) 52 | - Apologizing vs. mourning: apologize is "should feel bad", mourn is to recognize an internal unmet need out of our own actions 53 | -------------------------------------------------------------------------------- /2020-august.md: -------------------------------------------------------------------------------- 1 | August 2020 2 | =========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### Exploring Bayesian Optimization 8 | 9 | [Article](https://distill.pub/2020/bayesian-optimization/) 10 | 11 | - Active learning: estimate an accurate model 12 | 1. Start with prior function (can assume uniform) 13 | 2. Evaluate point with greatest uncertainty (usually highest variance and furthest away from last evaluated point) 14 | 3. Go back to 1 until model is accurate enough or budget runs out 15 | - Bayesian optimization: find global optimization 16 | 1. Start with prior function (can assume uniform) 17 | 2. Evaluate next point by optimizing an _acquisition function_ around our current knowledge 18 | - Probability of improvement 19 | - Expected improvement 20 | - Based on prior knowledge, where should we evaluate next? 21 | - Active: most uncertain 22 | - Bayesian: balance between uncertain and current optimums 23 | -------------------------------------------------------------------------------- /2020-books.md: -------------------------------------------------------------------------------- 1 | Books 2020 2 | ========== 3 | 4 | ### Radical Candor 5 | 6 | Author: Kim Scott 7 | 8 | ### The Changing World Order 9 | 10 | [Book](https://www.principles.com/the-changing-world-order) 11 | 12 | Author: Ray Dalio 13 | 14 | - Measures of archetypical empire's rise and decline: education, innovation and technology, competitiveness, military, trade, output, financial center, reserve status 15 | - Education is the most leading indicator, reserve status is the most lagging indicator 16 | - Each aspect compounds the other, either upwards or downwards (e.g. education leads to competitiveness, which ultimately leads to financial center and reserve status, but it also means eventual uncompetitiveness and demise) 17 | - Empires are defined by forces of economic (production), political (governance), and military (protection) 18 | - "Debt eats equity, money feeds the hunger of debt, and central banks can produce money" 19 | - Also read as: "central banks produce money [in bad times] to whet the appetite of debt, which would otherwise eat equity [to politically dangerous degrees]" 20 | - Having a reserve currency allows the country exceptional power to borrow, but this borrowing sets the currency's eventual demise due to natural over-extension 21 | - Eventual credit collapse as the reserve currency spirals through devaluation and undesirability as debt instrument 22 | - Both the real and financial economies can cause inflation: 23 | - Real: not enough goods produced relative to demand, price go up 24 | - Financial: too much credit, price go up 25 | - Important to note that you can experience financial inflation (lots of credit) while experiencing real deflation (little demand) 26 | - Central banks can only influence the financial economy, not the real economy. At one point they will run out of the ability to stimulate the real economy through the financial economy. 27 | - Currency devaluation can be either systematically beneficial and destructive 28 | - Beneficial if it raises real productivity by relaxing burdens on production 29 | - Destructive if it stimulates the migration to inflation-hedged assets 30 | - Currency devaluation usually happens in episodic periods of stability followed by a large devaluation 31 | - Three types of monetary policy (in progressing desperation): 32 | - MP1: change interest rates 33 | - MP2: print money to buoy and buy financial assets (e.g. QE) 34 | - QE is meant to be temporary, but usually becomes mandatory to continue 35 | - May not result in inflation; depends on where QE is injected (e.g. 2009-2014 QE was directed at re-capitalizing banks with base money rather than Main street with broad money, so little inflation) 36 | - MP3: central government and central bank working together to distribute targeted money (e.g. helicopter money and debt monetization) 37 | - In debt monetization the central bank just prints away the government's debt 38 | - Usually results in broad money going up, as fiscal policies can directly inject broad money 39 | - Note that monetary policy can only affect base money (banks control broad money via loans), and so only in MP3 is broad money directly injected 40 | - Triffin dilemma: the country with the reserve currency has difficulty balancing domestic vs. international currency needs as the currency's value is propped up by international demand (e.g. petrodollars for oil purchases) 41 | - Affected both Bretton Woods (not enough gold for guns and butter) as well as Petrodollar (unbalanced trade, large external demand propping dollar) 42 | - Wars 43 | - Trade/economic 44 | - Most dangerous part of trade/economic war is when countries cut others off from essential imports 45 | - Technology 46 | - Whoever wins the technology war will likely win the economic and military wars 47 | - Geopolitical 48 | - Dominant power eventually retreats from being geopolitcally overstretched, with emerging powers filling the gap created 49 | - Capital 50 | - Cutting off from capital and its movements (i.e. sanctions); no money = no power 51 | - Holder of reserve currency has the strongest ability to sanction to control capital flows 52 | - However, abusing the ability to sanction causes loss in confidence and usefulness of the reserve currency 53 | - USD currently testing the limits of: 54 | - Enormous amounts of dollar-denominated money and debt 55 | - Falling and negative real returns 56 | - Dollar being used as a weapon 57 | - Fiat monetary system 58 | - Whenever currencies are not desired, they are sold off and devalued with capital moving to other areas. There is no need to have an alternative reserve currency to go into. 59 | - Military 60 | - Culture 61 | - Failing to understand and empathize with the other's values and not allowing others to do what they think is best 62 | - Worst thing is to have a leader be untruthful and emotional in dealing with their populations; this becomes blinding and leads to stupidly excessive wars 63 | - **Only rule in international relations is that there is no rule.** Show up and fight with power. 64 | - Internal disputes and order 65 | - Human nature and the inevitable struggles to make, take, and distribute wealth lead to instability and re-establishment of prosperity 66 | - When the struggles are in healthy competition, productivity rises and prosperity ensues. When it becomes destructive, internal disorder and difficult times ensue. 67 | - Because the big swings happen once in a lifetime, what we know to be true is unlikely to be true next. It is more likely going to be the opposite of what we know. 68 | - Forces shaping internal order: 69 | - Wealth and power class struggle 70 | - Eventually the lower classes reform and then revolt 71 | - Instead of establishing a just or popular government in victory, political supremacy is regarded as the prize 72 | - Peace and prosperity leads to large wealth inequality, who then become overextended, and bad times hit worst for those with little 73 | - Those who have wealth are those who own the means of wealth production, and to maintain it, they work with those who have the power to set and enforce the rules 74 | - Balance of power 75 | - The odds of peace rather than war depend on the willingness to abide by the rules, be mutually agreeable in adapting when necessary to avoid war, and threat of mutually assured destruction 76 | - Cycle of power: 77 | - Formation of alliances, creating factions of roughly equal power 78 | - Without balanced power, little or no fights occur because destruction is assured 79 | - Struggle to determine winner and losers 80 | - Fights among winners and losers (the "purge"), to decide who will lead each side 81 | - Peace and prosperity leading to future power and wealth imbalances 82 | - Increasing conflict as sides are picked 83 | - Favoring short term over long term 84 | - Failure to learn from history 85 | - To have an accurate picture, we have to keep in mind the existing system as well as the changes of the people in the system. If the people change, we should expect outcomes to be different than the past. 86 | - Internal stability cycles: 87 | 1. New order begins, leadership consolidates power 88 | - Revolutions usually come in two parts: first deposing the old, and then firmly establishing the new via purges of everyone else 89 | - Best leaders are "consolidators of power" 90 | 2. Resource allocation systems and government bureaucracies are built and refined 91 | - Creating and managing systems that effectively allocate resources to improve productivity 92 | - To be successful, the system has to produce prosperity for the middle class 93 | - Best leaders are "civil engineers" 94 | 3. Peace and prosperity 95 | - Opportunity and prosperity are abundant and everyone is excited and optimistic 96 | - Wide, equal opportunity for education, resources allocated on merit, debt fuels productive growth 97 | - Best leaders are "inspirational visionary" who can imagine and convey and exciting future, go build that future, and broaden inclusiveness of the prosperity and invest it into the future 98 | 4. Period of excesses 99 | - Entered via widening gaps of opportunity, wealth, and values, along with unfair conditions entrenching the poor and elites, and declining productivity financed by excessive debts 100 | - Finances of country continue to deteriorate, supporting luxury and overstretched militaries rather than productive assets 101 | - Best leader is "well-grounded, disciplined" who creates restraints on excesses and promotes sound fundamental behaviours and finances 102 | 5. Bad financial conditions and intense conflict 103 | - Interclass tensions along with worsening financial conditions come to a head 104 | - Classic toxic mix: 105 | - Bad financial shape; bad debts and fiscal obligations 106 | - Large income, wealth, and values gaps 107 | - Severe negative economic shock 108 | - Financial problems occur typically first with the private sector and then into the public sector 109 | - Collapse happens when the government runs out of buying power (e.g. no more currency or devalued currency) 110 | - Government produces more debt than buyers other than the central bank are willing to buy 111 | - If the country can't print more, it has to increase taxes and lower spending 112 | - If it can print, it'll devalue its currency 113 | - In either way, capital flight occurs and then rules are placed on capital movement 114 | - **Raising taxes and cutting spending when there are large wealth gaps and bad economic conditions is greatest leading indicator of civil wars or revolutions** 115 | - **Debt and money that is created at this period can only improve the situation if they are used to produce productivity gains rather than just given away** 116 | - What matters most is what the system puts the credit and money into; ideally it is an investment that will raise productivity and real incomes for the whole 117 | - Other rising conditions: 118 | - Decadence 119 | - Bureaucracy 120 | - May make sensible and needed decisions difficult; hiding behind the established law to maintain entrenchment 121 | - Legal and police systems may be used as political weapons 122 | - Populism and extremism 123 | - They are typically more confrontational and likely to lead into conflict 124 | - Class warfare 125 | - Increasing demonization of particular classes 126 | - Loss of truth in the public domain 127 | - Media distorts truth to manipulate people for the benefit of the powers that be 128 | - Fear of speaking truth or standing out 129 | - Rule following fades and raw fighting begins 130 | - Reason is abandoned for passion; winning is the only thing that matters and all ethics are thrown out 131 | - Private police systems form 132 | - Question is how much the existing system will bend before it breaks? 133 | - Best leader is a "strong peacemaker" who can bring together moderates to reshape the existing order in a way that's more fair to everyone 134 | - Alternatively, a "strong revolutionary" who is capable of going through the hell of a civil war and then rebuild 135 | 6. Civil wars 136 | - All systems will encounter civil wars eventually because all systems benefit some classes at the expense of other classes 137 | - Best leaders are "inspirational generals" who are brutal enough to do whatever is necessary to win 138 | 139 | ### Creative Selection 140 | 141 | Author: Ken Kocienda 142 | 143 | ### The Infinite Machine 144 | 145 | Author: Camila Russo 146 | 147 | ### The Bezos Letters 148 | 149 | Author: Steve Anderson 150 | 151 | Lessons: 152 | 153 | - Master of risk; take thoughtful risk and learn 154 | - Four parts of the growth cycle: 155 | - Test 156 | - Encourage successful failure 157 | - Bet on big ideas 158 | - Practice dynamic invention and innovation 159 | - Build 160 | - Obsess over customers 161 | - Apply long-term thinking 162 | - Understand your flywheel 163 | - See Jim Collins 164 | - Accelerate 165 | - Generate high-velocity decisions 166 | - 6 pagers 167 | - Two types of decisions; categorize decisions you can walk back from and optimize for speed 168 | - Make complexity simple 169 | - Accelerate time with technology 170 | - Promote ownership 171 | - Scale 172 | - Maintain your culture 173 | - Focus on high standards 174 | - Measure what matters, question what's measured, and trust your gut 175 | - 2004 on free cash flow as most important metric 176 | - Believe it's always day 1 177 | - 2016 on staving off from day 2 178 | - A risk and growth mindset 179 | - Leadership principles (everyone is a leader) 180 | - Customer obsession 181 | - Ownership 182 | - Invent and simplify 183 | - Are right, a lot 184 | - Learn and be curious 185 | - Hire and develop the best 186 | - Insist on the highest standards 187 | - Think big 188 | - Bias for action 189 | - Frugality 190 | - Earn trust 191 | - Dive deep 192 | - Have backbone; disagree and commit 193 | - Deliver results 194 | -------------------------------------------------------------------------------- /2020-february.md: -------------------------------------------------------------------------------- 1 | February 2020 2 | ============= 3 | 4 | Tech 5 | ---- 6 | 7 | ### React 16: A look inside an API-compatible rewrite of our frontend UI library 8 | 9 | [Article](https://engineering.fb.com/web/react-16-a-look-inside-an-api-compatible-rewrite-of-our-frontend-ui-library/) 10 | 11 | - Talks about the operations of a fairly large library rewrite, aim to be backwards API-compatible 12 | - Running old vs. new via a feature flag is pretty useful ehre 13 | - TDD against old test cases (really, this safety net is the best bit of adding tests) 14 | 15 | Life 16 | ---- 17 | 18 | ### Dan Abramov's Decade in Review 19 | 20 | [Article](https://overreacted.io/my-decade-in-review/) 21 | 22 | ### The Unending Chasm, and How to Survive It 23 | 24 | [Article](https://a16z.com/2018/12/27/endless-chasm-enterprise-startups/) 25 | 26 | - Companies can be still successful if theyr'e stuck in the chasm (primarily relying on push-based sales) 27 | - Some markets will never be "pull" based 28 | - Learn into providing services / integration work 29 | - Some buyer groups can be very hard to sell to, causing lower contract values and higher acquisition costs 30 | - **Premium on survival** 31 | 32 | ### Good Product Manager/Bad Product Manager 33 | 34 | [Article](https://a16z.com/2012/06/15/good-product-managerbad-product-manager/) 35 | 36 | - Various good / bad skills and behaviours of product managers 37 | - Dictate your product story, manage it, deliver it, and **own it** 38 | 39 | ### Hire a VP of Engineering 40 | 41 | [Article](https://a16z.com/2017/05/26/hiring-vp-engineering-why-what/) 42 | 43 | - "Head of engineering or VP of engineering is the executive that grows and manages the engineering team, is responsible for assessing the time it will take to deliver features (or products), and delivering quality releases on that schedule." 44 | - Brings sanity into the engineering process; has mental accounting of when development, tech debt, etc. make sense 45 | - Builds, maintains, and evolves the engineering culture and processes as it scales 46 | -------------------------------------------------------------------------------- /2020-january.md: -------------------------------------------------------------------------------- 1 | January 2020 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### Rauchg: 2019 in review 8 | 9 | [Article](https://rauchg.com/2020/2019-in-review) 10 | 11 | - Some interesting thoughts about JAMstack, how web apps are transforming 12 | - "The flakiness of your integration tests is a lower bound for the flakiness of your user experience." 13 | - "Settings are for successful products. For MVP, just get the defaults right." 14 | 15 | ### Web security specifications you should know about 16 | 17 | [Article](https://taravancil.com/blog/web-security-specifications/) 18 | 19 | Life 20 | ---- 21 | 22 | ### Product Zeitgeist Fit: A Cheat Code for Spotting and Building the Next Big Thing 23 | 24 | [Article](https://a16z.com/2019/12/09/product-zeitgeist-fit/) 25 | 26 | - People try new things out because it connects with them emotionally rather than functionally 27 | - "When you have PZF, the product resonates with users not because it’s better, but because it feels extremely culturally relevant at that particular moment in time for a particular group of people" 28 | - "The death of most startups is indifference" 29 | - "Most companies fail to launch because no one cares: not users, not employees, not investors, and certainly not the media" 30 | - How to spot PZF: 31 | - "Nerd heat": the best are working on it or excited by it 32 | - "Despite test": people are using it despite (it sucks | its not as good | its frustrating) 33 | - "T-shirt test": people with no connection are shilling it 34 | - "Eyebrow test": idea is misunderstood or controversial 35 | - Zeitgeist tends to be generational, reactionary, and usually towards a villian 36 | - Note how this plays with building fame through what adults hate vs. kids like 37 | - Be polarizing! 38 | 39 | ### “Need More Time” or Lack of Product-Market Fit? 40 | 41 | [Article](https://a16z.com/2018/01/24/mixed-signals-going-to-market-pre-chasm/) 42 | 43 | - How do you know if you just need more time to wait for a bigger market / more willing market or if you just don't have product/market fit? 44 | - Don't get stuck in the "innovation-friend zone" 45 | - Get real deals, not exploratory ones that dry up or are just leading you 46 | - Customers want it, but can't buy 47 | - Focus on product marketing, cultivate leads rather than focusing on lead generation 48 | - Your biggest competitor is probably the status quo 49 | - Educate customers on the problem, not the solution 50 | - Why should they care or be worried about it? How do you solve it? 51 | - Pricing 52 | - "No matter what, matching existing prices [of comparables] automatically underprices your product from the get-go" 53 | - Convince, then discuss pricing 54 | - Sales partners 55 | - "Pre-chasm companies have to create a pull-based market — not a push based one — before they can truly engage the benefits of such partners" 56 | 57 | ### Digital Ocean: Culture 58 | 59 | [Video](https://www.youtube.com/watch?v=w5u3zHd5-tI&feature=youtu.be&t=2118) 60 | 61 | - Distinct cultures from bunch.ai (pick one, max 2): 62 | - Adaptability 63 | - Principles 64 | - Results-oriented 65 | - Detail-oriented 66 | - Customer-oriented 67 | - Collaboration 68 | -------------------------------------------------------------------------------- /2020-july.md: -------------------------------------------------------------------------------- 1 | July 2020 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | Life 8 | ---- 9 | 10 | ### A Brief History of the Corporation: 1600 to 2100 11 | 12 | [Article](https://www.ribbonfarm.com/2011/06/08/a-brief-history-of-the-corporation-1600-to-2100/) 13 | 14 | - Forces of human world: 15 | - Culture (least legible, but most powerful) 16 | - Politics 17 | - War 18 | - Business (most legible, but least powerful) 19 | - "There is no meaningful way for a businessman from (say) 2000 BC to comprehend what Mark Zuckerberg does, let alone take over for him" 20 | - Corporate form existed from 1600 to 1800 in the backdrop of mercantilism (organized around *space*, e.g. land and trade routes) 21 | - East India Company (EIC) balanced trade between West and East (trade history up to then had always been West importing more than East) 22 | - Successful in marketing but not innovation 23 | - Only after 1800 did technology play a large part (industrial revolution) (organized around *time*) 24 | - Productive growth: not zero sum! 25 | - "The Schumpeterian corporation was about colonizing individual minds" 26 | - Sailing was a craft; railroads were an engineering discipline (reliable and efficient) 27 | - "Move humans at the speed of technology instead of moving technology at the speed of humans" 28 | -------------------------------------------------------------------------------- /2020-june.md: -------------------------------------------------------------------------------- 1 | June 2020 2 | ========= 3 | 4 | Tech 5 | ---- 6 | 7 | 8 | Life 9 | ---- 10 | 11 | ### How to Succeed in Business by Bundling – and Unbundling 12 | 13 | [Article](https://hbr.org/2014/06/how-to-succeed-in-business-by-bundling-and-unbundling) 14 | 15 | - "There are only two ways to make money in business: One is to bundle; the other is unbundle" 16 | 17 | ### Progressive Decentralization: A Playbook for Building Crypto Applications 18 | 19 | [Article](https://a16z.com/2020/01/09/progressive-decentralization-crypto-product-management/) 20 | -------------------------------------------------------------------------------- /2020-march.md: -------------------------------------------------------------------------------- 1 | March 2020 2 | ========== 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Monitoring Death Spiral 8 | 9 | [Article](https://grafana.com/blog/2016/01/11/the-monitoring-death-spiral/) 10 | 11 | - Rather than blindingly trusting instinct, intuition, or a single instrument, get the full picture 12 | - Observability practically means we bring telemetry data together under a seamless experience to help people troubleshoot, understand, and explore the data that is coming out at an increasingly rapid rate from all systems and application 13 | 14 | ### Monitoring for Everybody 15 | 16 | [Video](https://grafana.com/blog/2018/05/23/monitoring-for-everyone/) 17 | 18 | - Good introduction to logging, metrics, and tracing, and when each should be applied 19 | 20 | ### An Inside Look at the Life of a Technical Writer at Grafana Labs 21 | 22 | [Article](https://grafana.com/blog/2020/02/20/an-inside-look-at-the-life-of-a-technical-writer-at-grafana-labs/) 23 | 24 | - Technical content should be separated into: 25 | - Concept 26 | - Task 27 | - Reference 28 | 29 | ### Shitty First Software Drafts 30 | 31 | [Article](https://sirupsen.com/drafts/) 32 | 33 | - Simplify, simplify, and then simplify 34 | - "If you can't rewrite what you did in an hour, it wasn't simple enough" 35 | 36 | ### Research Debt 37 | 38 | [Article](https://distill.pub/2017/research-debt/) 39 | 40 | - Research can have debt similar to technical or institutional debt 41 | - Research debt is the accumulation of missing interpretive labor 42 | 43 | ### Up and Down the Ladder of Abstraction 44 | 45 | [Article](http://worrydream.com/LadderOfAbstraction/) 46 | 47 | - Ladder of abstraction: technique for explicitly defining and navigating the different levels of abstraction available 48 | - As an engineer, you should not be doing something if you don't know what you're supposed to do 49 | - "The most exciting engineering challenges lie on the boundary of theory and the unknown" 50 | - Emergent behaviour: "high-level effects that arise indirectly from low-level interactions" 51 | - Challenge lies not in constructing the system, but understanding it 52 | - Design which parameters should be controllable 53 | - Do not be a slave to real time! Design tools that will allow you to skip forward, backward, or play in loops and reverse! 54 | - Abstract over a parameter (e.g. time) to visualize it against other parameters: first layer up 55 | - It will be useful to view these abstraction as "layers" that we can also apply as we go down the ladder (e.g. visualizing path over time, but still seeing position at a specific moment in time) 56 | - As you abstract over more parameters, you step higher up the ladder. Once you do this, it's useful to take these into mind and "layer" over previous steps to examine and compare specific cases 57 | - At some point, you will have to abstract over the data that the system works over (e.g. all possible input variations) 58 | 59 | ### The Best Advice We Overheard at First Round's CTO Unconference 60 | 61 | [Article](https://firstround.com/review/the-best-advice-we-overheard-at-first-rounds-cto-unconference/) 62 | 63 | - "Debate, decide and persuade" 64 | - Every pending decision will be in one of in one of these modes (early, middle, or late); be clear with the team on where a particular decision is in this cycle 65 | 66 | ### Track and Facilitate Your Engineers’ Flow States In This Simple Way 67 | 68 | [Article](https://firstround.com/review/track-and-facilitate-your-engineers-flow-states-in-this-simple-way/) 69 | 70 | - Interesting article on managing flow states of managees 71 | 72 | Life 73 | ---- 74 | 75 | ### User and player types in gamified systems 76 | 77 | [Article](https://yukaichou.com/gamification-study/user-types-gamified-systems/) 78 | 79 | - Bartle's four player archetypes in games: 80 | - Achievers (diamonds): obtain success or rewards, even if they don't translate to gameplay advantages 81 | - Explorers (spades): focus on discovery; want to dig and uncover new pathways or treasure 82 | - Socializers (hearts): social elements and building relationships are most interesting 83 | - Killers (clubs): compete and beat others 84 | - Gamified systems do not have as much freedom to explore or play 85 | - Andrzej's archetypes in gamified systems: 86 | - Player (only one "willing" to play): reacts to extrinsic rewards 87 | - Socializer: social and relatedness 88 | - Free Spirit: autonomy, self expression 89 | - Achiever: mastery 90 | - Philanthropist: purpose, selfless dedication for a "cause" 91 | - Quadrants according to acting (vs. interacting) and system (vs. user) (all intrinsically motivated): 92 | - Achievers: acting, system 93 | - Free spirits: interacting, system 94 | - Philanthropist: acting, user 95 | - Socializer: interacting, user 96 | - Quadrants according to material desires and amount of structure (all extrinsically motivated): 97 | - Consumer: acting, system 98 | - Exploiter: interacting, user 99 | - Self seeker: acting, user 100 | - Networker: interacting, user 101 | - **Design around the four intrinsic motivations, and then build rewards on top; it be self-sustainable even without the rewards** 102 | 103 | ### Gamifying Corporate Politics: Chou’s Corporate Player Types 104 | 105 | [Article](https://yukaichou.com/workplace-gamification/gamifying-company-politics-chous-corporate-matrix/) 106 | 107 | - Quadrants according to performance and political ability: 108 | - Survivors: lowest effort to stay alive ("NPC"s, "losers" in Gervais Principle) 109 | - Performers: passionate, don't care about politics ("clueless" in Gervais Principle) 110 | - Politicians: just want to get ahead via politics (wannabe "sociopaths" in Gervais Principle) 111 | - Stars: sociopaths 112 | - Motivational design moves survivors into performers 113 | - Epic meaning, development and creativity, coaching 114 | - Leadership training moves performers into stars 115 | - Rewarding politicians, while easy, destroys the company ("the dark side"); others will see that as the path and lose motivation / increase scheming 116 | 117 | ### Warning: This Is Not Your Grandfather’s Talent Planning 118 | 119 | [Article](https://firstround.com/review/warning-this-is-not-your-grandfathers-talent-planning/) 120 | 121 | - **Superstar mode**: the people on your team who are going to change everything; responsible for Schumpeterian change; a force — and source — of growth on a team. 122 | - Continue offering them challenges 123 | - **Rock star mode**: the people on your team who don’t want their boss’ job; very talented at their role and will keep doing and digging into it for years if a boss doesn’t screw it up; a force — and source — of excellence and stability on a team. 124 | - "People in superstar mode want a world they can change. Those in rock star mode seek a world they can stabilize. You’ll need both." 125 | - Be care with overvaluing _potential_--your rock stars are not going to be directing their energy for upwards mobility 126 | - Look instead for _growth trajectory_ 127 | -------------------------------------------------------------------------------- /2021-january.md: -------------------------------------------------------------------------------- 1 | January 2021 2 | ============ 3 | 4 | Tech 5 | ---- 6 | 7 | ### The Open Society and its Media 8 | 9 | [Article](http://www.caplet.com/papers/open-media.html) 10 | 11 | - Succeed by not doing worse: don't ask how things could be better, demonstrate how things could be worse 12 | - "In closed societies, when arguments cannot be spoken, hard truths cannot be figured out. When people cannot openly criticize, cannot openly defend against criticism, or cannot openly propose ideas that conflict with the official truths, then they are left with mistrust and cynicism as their only defense." 13 | - "In looking at the dangers, I saw that none of us individually is clever enough to figure out how to solve those problems. The only hope that I saw in 1988--1 no longer believe it is the only hope--is that by creating better media for the process of societal discourse and societal decision-making, we stand a much better chance of surviving the dangers posed by new technologies, so that we may live to enjoy their benefits." 14 | 15 | ### Graphics 16 | 17 | [Video (physics of lighting)](https://www.youtube.com/watch?v=P6UKhR0T6cs&loop=0) 18 | 19 | [Playlist (ray tracing)](https://www.youtube.com/playlist?list=PL5B692fm6--sgm8Uiava0IIvUojjFOCSR) 20 | 21 | [Playlist (computer graphics)](https://www.youtube.com/playlist?list=PLzH6n4zXuckrPkEUK5iMQrQyvj9Z6WCrm) 22 | 23 | - Everything is a triangle: simplest bi-planar (flat) representation 24 | - 3d object files are just a collection of vertices (e.g. `v 101`) and faces (e.g. `f abc`) 25 | - Scale, translation, and rotations can be applied via a single matrix operation to vertices to transform them 26 | - Viewport changes are also just a matrix transform to adjust the vertex representations "on-screen" 27 | - Rasterization "paints" the 3d object into a 2d presentation, checking which pixels should be coloured with which colour given the 3d scene 28 | - Visibility problem is now generally brute-forced via large memory buffers (z-buffers), where each vertex has an encoded depth value 29 | - Lighting can be approximated via the z-buffer as well, checking for what the light source can see (and repeating for each light source) 30 | - Ray tracing is the "ideal" 1:1 representation of how real physics for lighting work, but only at the limit 31 | - Denoising "blends" a sampled approximation (e.g. 5 ray samples per pixel) into a complete image 32 | - Ray tracing has advanced extremely quickly in recent years due to enhancements in special purpose hardware (extreme memory and optimized integrated circuits for BVH traversal) but also large improvements in denoising from deep learning 33 | 34 | 35 | Life 36 | ---- 37 | 38 | ### 100 Tips For A Better Life 39 | 40 | [Article](https://ideopunk.com/2020/12/22/100-tips-for-a-better-life/) 41 | 42 | ### 100 Ways To Live Better 43 | 44 | [Article](https://www.lesswrong.com/posts/HJeD6XbMGEfcrx3mD/100-ways-to-live-better) 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Reading 2 | 3 | Random notes and summaries of things I've ever ~~read~~ bothered to take digital notes of, starting 4 | summer 2016. [Cue music.](https://www.youtube.com/watch?v=ebXbLfLACGM) 5 | --------------------------------------------------------------------------------