The long way through Software Craftsmanship

Self-Study in August 2019

Aug 1, 2019 - 10 minute read - Comments - self-study-aggregationaugust2019alan-kayanswerapiapproval-testassemblerbackupbookbundlebusinessbytecodecachecareercareer-managementcdncompensationconnectionconsidered-harmfulcontroldelta-encodingdelta-requestdependencydevelopment-environmentdiffyencryptionengineering-manageretagevan-noonexternal-influencefrontendglobal-dependencygolanggolden-masterhttp-delta-requestinformationintroductionintuitionjavajavascriptjvmkatakitchenknowledgelake-wobegon-strategylinklocal-datalocal-dependencymakemanagementmanagermathematicsmeasuremeetupmichael-mccunemicro-frontendmixpanelmodulemodule-dependencymutationmutation-testingnodenpmnpm-linkpaperparallel-changepeer-reviewperformancepeter-millerpitpitestpresentationprofessionprogramming-pearlpythonquorareading-listrecursiverecursive-makerefactoringreporepositoryresourcereturn-on-investmentrevealreveal-jsrewriteroisalaryservice-workersetupshared-dictionary-compression-for-httpslideslide-deckslidesharesoftonicsoftware-crafterstesttestingtoolugly-triviaunixunix-toolvendorwebpack

npm ls -g –depth=0 –link=true

Tags: npm, npm-link, node, link, global-dependency

Id: c01a0efa-b832-11e9-87be-0242ac110003 Read: Tue, 06 Aug 2019 10:12:52 +0000

Mutation testing tool for java / jvm

This is a mutation testing tool for the JVM / java

Tags: pitest, pit, mutation-testing, testing, test, tool, jvm, java, mutation

Id: 02d29d3e-b833-11e9-b785-0242ac110003 Read: Tue, 06 Aug 2019 10:14:44 +0000

Ugly trivia kata, using mutation testing

This is a kata I’ve practiced, then shown at the Software Crafters meetup (at Softonic).

I’ve explained mutation testing, then refactoring according to domain boundaries (Questions, Players)

Tags: softonic, software-crafters, meetup, mutation-testing, pit, kata, ugly-trivia, approval-test, golden-master, testing, java, refactoring, repository, repo, kitchen

Id: 531ffcdc-b833-11e9-9ce0-0242ac110003 Read: Tue, 06 Aug 2019 10:16:58 +0000

Experienced programmers and computer scientists, what are some really old (or even nearly forgotten) books you think every new programmer should read?

  • I’m still a big fan of the “Lisp 1.5 Programmers Manual” (MIT Press — still in print). This version of the language is no longer with us, but the book — first written ca 1962 — by John McCarthy, who invented, and his colleagues, who implemented, is a perfect classic.
  • It starts with a version of John’s first papers about Lisp, and develops the ideas in a few pages of examples to culminate on page 13 with Lisp eval and apply defined in itself. There are many other thought provoking ideas and examples throughout the rest of the book.
  • The way to grow from this book is to deeply learn what they did and how they did it, and then try to rewrite page 13 in a number of ways. How nicely can this be written in “a lisp” using recursion. How nicely can this be written without recursion? (In both cases, look ahead in the book to see that Lisp 1.5 had gotten to the idea of EXPRs and FEXPRs (functions which don’t eval their arguments before the call — thus they can be used to replace all the “special forms” — do a Lisp made from FEXPRs and get the rest by definition, etc.).
  • What is a neat bootstrapping path? How could you combine this with Val Shorre’s “Meta II” programmatic parser to make a really extensible language? What does it take to get to “objects”? What are three or four really interesting (and different ways) to think about objects here? (Hints: how many different ways can you define “closures” in a language that executes? What about using Lisp atoms as a model for objects? Etc.)
  • The idea is that Lisp is not just a language but a really deep “building material” that is tidy enough to “think with” not just make things (it’s a “building material” for thoughts as well as computer processes).
  • Dani Richard reminded me to mention: “Computation: Finite and Infinite Machines” by Marvin Minsky (Prentice-Hall, 1967), which — since it is one of my favorite books of all time — I’m surprised I didn’t include in the original list. Marvin could really write, and in this book he is at his best. It is actually a “math book” — with lots of ideas, theorems, proofs, etc., — but presented in the friendliest way imaginable by a great mind who treated everyone — including children — as equal to him, and as fellow appreciators of great ideas. There are lots of interesting things to ponder in this book, but perhaps it is the approach that beckons to the reader to start thinking “like this” that is the most rewarding.
  • “Advances in Programming and Non-Numerical Computation” (Ed. L. Fox) mid-60s. The papers presented at a 1963 summer workshop in the UK. The most provocative ones were by Christopher Strachey and several by Peter Landin. This was one of the books that Bob Barton had us read in his famous advanced systems design class in 1967.
  • Try “The Mythical Man-Month” by Fred Brooks, for an early look and experience with timeless truths (and gotchas) from systems building with teams …
  • Try “The Sciences of the Artificial” by Herb Simon. A much stronger way to think about computing — and what “Computer Science” might mean — by a much stronger thinker than most today.
  • “A Programming Language” by Ken Iverson (ca 1962). This has the same thought expanding properties of Lisp. And, like Lisp, the way to learn from these really old ideas is to concentrate on what is unique and powerful in the approach (we know how to better improve both Lisp and APL today, but the deep essence is perhaps easier to grasp in the original manifestations of the ideas). Another book that Barton had us read.
  • I like Dave Fisher’s 1970 CMU Thesis — “Control Structures for Programming Languages” — most especially the first 100 pages. Still a real gem for helping to think about design and implementations.
  • More recent: (80s) “The Meta-Object Protocol” by Kiczales, et al. The first section and example is a must to read and understand.
  • Joe Armstrong’s PhD thesis — after many years of valuable experience with Erlang — was published as a book ca 2003 …
  • Lots more out there for curious minds ….
  • Mind Storms, by Seymour Pappert.
  • The Elements of Programming Style, by Kernighan and Plaguer.
  • Classics is Software Engineering, edited by Edward Yourdon, 1979 (While this book was published in 1979, it contains articles published by giants in Software Engineering from the ’60s and ‘70s).
  • Programming on Purpose: Essays on Software Design, by PJ Plaguer.
  • Byte Magazine, Volume 6, Number 8, August 1981, Editor in Chief Christopher Morgan.
  • Programming Pearls, by Jon Bentley.
  • Data Structures, This was a truly wonderful book. It was part of a computer science series. I read in the ‘70s, but I can’t find it now and I don’t remember the name of the author.
  • Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein (known as CLRS).
  • The Art of Computer Programming, Volumes 1…4, by Donald Knuth.
  • Compilers: Principles, Techniques, and Tools, by Aho, Lam, Sethi, and Ullman, 1986 (known as The Dragon Book).
  • I would mention Where Wizards Stay Up Late: The Origins of the InterNET, by Katie Hafner, but, it’s only from 1998 so I’m not sure it’s old enough.
  • The Elements of Programming Style by Kernighan and Plauger
  • Controlling Software Projects by Tom DeMarco
  • The Mythical Man-Month by Fred Brooks
  • Peopleware by DeMarco and Lister
  • The Secrets of Consulting by Gerry Weinberg
  • The Psychology of Computer Programming by Gerry Weinberg
  • The Practical Guide to Structured Systems Design by Meilir Page-Jones
  • The Design of Everyday Things by Don Norman
  • Programming Pearls by Jon Bentley
  • A Rational Design Process - How and Why to Fake it http://users.ece.utexas.edu/~per...
  • A Spiral Model of Software Development and Enhancement http://csse.usc.edu/TECHRPTS/198...
  • Clean Code
  • I also really like Thinking in Java by a wonderful author called Bruce Eckel. As the title says, it teaches you to think OOP and really understand the design behind the language and the lessons it was designed after. The book is from 2006, so it is dated. But it is worth your time and is free to download!
  • My favorite programming book to date is still Structure and Interpretation of Computer Programs, more popularly known as SICP. It’s old, but not forgotten for good reason. I hear many colleges are dropping this book, which is a crying shame.
  • Mathematics for Computer Science is another unsung book. I don’t know of many who has read through this one, but it’s truly mind-expanding and mind-blowing.
  • A book that’s often dismissed and forgotten in this day of “flavor of the week” JavaScript frameworks is JavaScript, the Good Parts. While it’s newer (10-ish years old), I wish more people would take a look at this one. Even if you never write JS in your life, you will walk away a better thinker.
  • Extreme Programming Explained by Kent Beck (2000) — how taking everything to the extreme makes everything easier. Hugely influential for me at a time when most projects were waterfall-style change management exercises. This explains how to be agile.
  • Smalltalk, Objects, and Design by Chamond Liu (1996) — a nice introduction to the elegant mother of all object oriented languages, but also covers design patterns, MVC, UI design and use of metaphors. A smorgasbord of developer insights that are still relevant today.
  • Principles of Interactive Computer Graphics by Newman and Sproull (1979) — this book inspired me to get into programming. It explains the science of recreating the real world on a computer screen. Not so much about writing code, but about the mathematics, algorithms, and hardware.
  • The C Programming Language
  • The Unix Programming Environment
  • SICP
  • Tom Gilb’s - Principles of Software Engineering Management.
  • His principles are classic:
  • The invisible target principle All critical system attributes must be specified clearly. Invisible targets are usually hard to hit (except by chance).
  • The all-the-holes-in-the-boat principle Your design solutions must satisfy all critical attributes simultaneously.
  • The clear-the-fog-from-the-target principle All critical attributes can be specified in measurable testable terms, and the worst-acceptable level can be identified.
  • The learn-before-your-budget-is-used-up principle Never attempt to deliver large and complex systems all at once; try to deliver them in many smaller increments, so that you can discover the problems and correct them early.
  • The keep-pinching-yourself-to-see-if-you-are-dreaming principle Don’t believe blindly in any one method; use your methods and common sense to measure the reality against your needs.
  • The fail-safe minimization principle If you don’t know what you’re doing, don’t do it on a large scale.
  • Object-Oriented Software Construction - Wikipedia (by Betrand Meyer)
  • Smalltalk-80 (http://stephane.ducasse.free.fr/...)
  • You might want to take a look at DoradoList where it has lists of great computer engineering and science books suggested by some world-renowned professors from MIT, Stanford, UC Berkeley and more. Interestingly there is a section in that website that is called Gems and per website it is compiled as: “There are many books that are perhaps somewhat out of date in a broad sense but that have wonderful insights that have perhaps been overlooked. In this section, we have asked the top experts if they know of any of this type of hidden/forgotten gems. You can see their responses that we have categorized”. It looks there is a section for Computer Programming there as well.
  • Everything by Robert Glass
  • Mindstorms
  • Turtles, Termites, and Traffic Jams
  • Computer Science, Logo Style by Brian Harvey (3 volumes)
  • Mirror Worlds
  • Starting Forth / Thinking Forth
  • The C Programming Language
  • The AWK Programming Language
  • There are many other good books, some mentioned in other answers. My list touches on some different types of languages, which are small and tractable, but offer a broad sampling of ideas. The Harvey series shows that a language used to teach children has deceived many into thinking it wasn’t powerful.
  • I love Per Brinch Hansen’s Programming a Personal Computer. It focusses on the Edison programming language, which is an incredibly small and simple language. Edison resembles Pascal to some extent.
  • The book shows how to use Edison to write a complete operating system for a “personal computer.” It even provides the complete source code listing!
  • Edison was designed for multi-processor computing, sort of like the Golang of the day. This book was the first to convince me that small and simple was a very good thing.
  • And that’s why Smalltalk is my favourite programming language today. See Richard Kenneth Eng’s answer to What programming language was for you an absolute pleasure to work with and why?

Tags: reading-list, alan-kay, programming-pearl, quora, answer

Id: a87e9686-babb-11e9-a55d-0242ac110004 Read: Fri, 09 Aug 2019 15:37:55 +0000

Delta requests for frequently-updated application bundles: from 2002 to service workers

Explains how to bundle frontends (in javascript), to split it up for performance reasons.

How to split the vendor bundle from our own bundle. How to delta (incremental) send the new parts to clients

Tags: service-worker, delta-request, vendor, javascript, frontend, bundle, cdn, http-delta-request, etag, cache, delta-encoding, shared-dictionary-compression-for-http, micro-frontend, webpack

Id: fa331bd6-c89f-11e9-894d-0242ac110005 Read: Tue, 27 Aug 2019 04:55:03 +0000

Recursive Make Considered Harmful

Explains why recursive make (calling make inside make) is harmful. Offers alternatives

Tags: make, paper, peter-miller, recursive, recursive-make, module, module-dependency, unix, unix-tool, tool, return-on-investment, roi, considered-harmful

Id: f62a204c-c8a0-11e9-b7a1-0242ac110005 Read: Tue, 27 Aug 2019 05:02:06 +0000

Why You Should Have (at Least) Two Careers

having two professions will: first will subsidise the seconone , you will intermingle ideas (creating knowledge, not information), make connections outside of your business area

Tags: career, career-management, knowledge, information, profession, connection, business, external-influence

Id: 2f230fda-c8a1-11e9-8f4f-0242ac110006 Read: Tue, 27 Aug 2019 05:03:41 +0000

Ask HN: Best resources to gain math intuition?

Tags: intuition, book, resource, mathematics, introduction

Id: a5ddf530-c8a2-11e9-8709-0242ac110006 Read: Tue, 27 Aug 2019 08:14:10 +0000

Self-Study in July 2019

Jul 1, 2019 - 1 minute read - Comments - self-study-aggregationjuly2019apiassemblerbackupbytecodecareer-managementcompensationcontroldiffyencryptionengineering-managerevan-noongolangjavajvmlake-wobegon-strategylocal-datamanagementmanagermeasuremichael-mccunemixpanelparallel-changepeer-reviewperformancepresentationpythonrevealreveal-jsrewritesalaryslideslide-deckslidesharetool

How I use reveal.js

This author explains how they use reveal.js.

The online editor (slides.com).

The author uses plain html for storing the slides.

Tags: slide, slideshare, reveal-js, reveal, presentation, slide-deck, michael-mccune

Id: 41e287b4-ae15-11e9-9e8a-0242ac110003 Read: Wed, 24 Jul 2019 07:16:33 +0000

All your digital life on a single timeline, stored locally

Keep your digital life under your control

Tags: backup, local-data, encryption, control

Id: 4d115f64-ae17-11e9-bf0e-0242ac110003 Read: Wed, 24 Jul 2019 13:31:11 +0000

Safely Rewriting Mixpanel’s Highest Throughput Service in Golang

This article explains how they rewrote a (high-throughput + critical path) service, in part using a tool called Diffy.

Tags: diffy, tool, golang, python, mixpanel, evan-noon, api, rewrite, parallel-change

Id: 263f2b8c-afca-11e9-ad3d-0242ac110002 Read: Fri, 26 Jul 2019 17:23:57 +0000

A software engineering manager guide to measuring a software engineers performance

Explains how to measure performance

Tags: measure, performance, engineering-manager, manager, management, career-management, lake-wobegon-strategy, peer-review, compensation, salary

Id: 5f2a6e8e-afca-11e9-97d5-0242ac110002 Read: Fri, 26 Jul 2019 17:25:32 +0000

jssembly

JVM tool to include assembler code in java

Tags: assembler, java, jvm, bytecode

Id: dfc8a150-afca-11e9-9fcb-0242ac110002 Read: Fri, 26 Jul 2019 17:29:08 +0000

Books read in 2019Q2

Jun 30, 2019 - 13 minute read - Comments - bookreading2019Q2self-studyreading-club

Read this quarter:

  • 4 pillars of investment, the; Bernstein; own-it, finance, non-technical
  • Candide; Voltaire; own-it, non-technical, philosophy
  • Simple path to wealth, the; Collins; own-it, non-technical, finance
  • Lagom; Brantmark; own-it, non-technical, philosophy
  • Comment revivre par le jeune; Lützner; own-it, non-technical
  • Educación financiera avanzada desde cero; Hernández; own-it, non-technical, finance
  • Pensiones públicas, la esclavitud de nuestra época; Hernández; non-technical, own-it, finance
  • On the shortness of life; Séneca; own-it, non-technical, philosophy
  • Código del dinero, el; Samsó; own-it, non-technical, finance
  • Más cosas sobre la bolsa; Hernández; own-it, non-technical, finance

4 pillars of investment, the; Bernstein

Candide; Voltaire

Came across this book as the source for the term ‘Panglossian’ or extreme optimist.

Simple path to wealth, the; Collins

This book explains the “simple path to wealth”.

The recommended asset allocation is a single stock + a single bond index fund, that captures the full global market (VTSAX + VBTLX). If you want to expand it or make it more complicated, searching for extra risk and return, you can overweight other regions/indices.

Makes explicit the importance of F-you money (fuck you money): giving personal freedom to explore whatever you’re feeling like, not depending on a job.

The market always goes up in the long term, but the ride is rocky.

Explains the importance of low fees. The author is a big proponent of bogleheads investing, directly with Vanguard.

Lagom; Brantmark

Explains the simplicity system embedded in the Swedish/Scandinavian culture: the right amount, of relationships, friendships, food, work, relax.

In a way, it reminds me of minimalism, applied to all levels in your life.

Lagom is a Swedish word meaning “just the right amount”.

Comment revivre par le jeune; Lützner

This book explains the process of fasting, everything included: how to start it, how to endure it, how to end it.

Suggests techniques for complete fasting, away from work, interactions. Explains how to do it for up to a week, then following medical advice for longer periods.

Fasting is definitely not feeling hungry.

Educación financiera avanzada desde cero; Hernández

Pensiones públicas, la esclavitud de nuestra época; Hernández

In this book, the author explains several reasons why having a public pension fund is counterproductive for the general society:

  • They are not inherited, they end with your life
  • They are not well managed
  • They are decreasing over time
  • They are not sustainable for the long term

The book has definitely a liberal cut.

On the shortness of life; Séneca

Código del dinero, el; Samsó

Más cosas sobre la bolsa; Hernández

This book explains more topics about the stock market and how to invest in it.

There is a good review of general markets (e.g., energy, petroleum, television, finance); of strategies (i.e., short-term, mid-term, long-term)

There are many interesting insights.

Export from my backlog

Note: re+read means I’m re-reading this book. The (+) stands for one-or-more times, as in the regexes.

backlog (partially sorted):

  • unsorted V
  • The Machine That Changed the World: The Story of Lean Production
  • Haskell Programming
  • Software Architecture in Practice
  • lucha por la desigualdad, la; Pontón; non-technical
  • psicología del dinero, la; Hammond; non-technical
  • Invirtiendo a largo plazo; García Paramés; non-technical, finance
  • Well-Grounded Java Developer, the; own-it
  • Learn You a Haskell for Great Good!; own-it
  • camino al 18J, el; Payne; non-technical
  • Cartas desde la revolución bolchevique; Sadoul; non-technical
  • Java Performance: The Definitive Guide
  • Why programmers work at night
  • Shogun: The Life of Tokugawa Ieyasu; Sadler; non-technical
  • Scrum and XP from the trenches, 2nd edition;
  • Els jueus i Catalunya; Villatoro; non-technical
  • El problema de los tres cuerpos; Liu; non-technical
  • Amazon Web Services in Action; own-it
  • Clojure Programming - Practical Lisp for the Java World
  • Mature optimization
  • XUnit Test Patterns
  • Let Over Lambda
  • The Haskell Road to Logic, Math and Programming
  • Types and Programming Languages
  • Fundamentals of Object-oriented Design in UML
  • Clojure for the brave and true
  • How to Solve It: A New Aspect of Mathematical Method
  • Conceptual Mathematics: A First Introduction to Categories
  • Understanding Computation: From Simple Machines to Impossible Programs
  • Programming in Haskell
  • Programming Languages: Application and Interpretation
  • Doing Math with Python
  • Perfect Software: And Other Illusions about Testing
  • Computability and Complexity - From a Programming Perspective
  • Thinking Forth: a language and philosophy for solving problems
  • Concepts, Techniques, and Models of Computer Programming
  • Bridging the Communication Gap; Adzic
  • Specification by Example; Adzic
  • Cucumber book, the; Adzic
  • Software Architecture for Developers; Brown
  • Object Design: Roles, Responsibilities, and Collaborations
  • RESTful Web APIs
  • RESTful Web Services Cookbook
  • Building Maintainable Software
  • Serverless - Patterns of Modern Application Design Using Microservices (Amazon Web Services Edition)
  • A Pattern Language; Alexander
  • Types and Programming Languages, TAPL; Pierce; own-it
  • Speed Reading Book: Read More, Learn More, Achieve More, the; Buzan
  • Cómo crear mapas mentales (Crecimiento personal); Buzan
  • First things first; Covey
  • What’s best next; Perman
  • problems of philosophy, the; Russell; philosophy
  • Requiem for the American dream; Chomsky
  • sun also rises, the; Hemingway
  • travels, the; Polo; non-technical
  • Homo Deus: A Brief History of Tomorrow; Harari; non-technical
  • Books by Aristotle; non-technical
  • Books by Plato; non-technical
  • Books by Descartes; non-technical
  • The idea of culture; Eagleton; non-technical
  • Hereditary Intelligence; Galton; non-technical
  • Lean Software Development: An Agile Toolkit; Poppendieck (+); own-it
  • Chaos Monkeys: Obscene Fortune and Random Failure; Garcia Martinez
  • Implementing Lean Software Development: From Concept to Cash; Poppendieck
  • Joel on Software; Spolsky
  • Death March; Yourdon
  • Psychology of Computer Programming, The; Weinberg
  • Introduction to General Systems Thinking; Weinberg
  • Lao Tzu : Tao Te Ching : A Book About the Way and the Power of the Way; Tzu, Le Guin; non-technical, own-it, philosophy
  • Gay Science, the; Nietzsche; non-technical
  • Being Geek; Lopp
  • Finance for Freelancers; Retallick; non-technical, finance
  • Object-oriented software engineering: a use case driven approach; Jacobson
  • Patterns of Enterprise Application Architecture; Fowler; own-it
  • Romeo y Julieta; Shakespeare; non-technical
  • Computer Systems: A Programmer’s Perspective; Bryant, O’Hallaron
  • My Journey to Lhasa: The Classic Story of the Only Western Woman Who Succeeded in Entering the Forbidden City; David-Néel; non-technical
  • Cathedral and the bazaar, the ; Raymond
  • Coding dojo handbook, the; Bache; own-it
  • Making software; Oram and Wilson; own-it
  • Code complete; McConnell; own-it
  • Soft skills; Sonmez; own-it
  • DSLs in action; Ghosh; own-it
  • Purely functional data structures; Okasaki; own-it
  • Working effectively with unit tests; Fields (+); own-it
  • First Nazi, the; Ludendorff; non-technical
  • Greatest story ever told … so far; Krauss; non-technical
  • Master algorithm, the; Domingos; non-technical
  • Invention of Science, the; Wootton; non-technical
  • Tesla: Inventor of the electrical age; Bernard Carlson; non-technical
  • Psychology in minutes; Weeks; non-technical
  • Alan Turing: The Enigma; Hodges; non-technical
  • How to think more about sex; de Botton; non-technical
  • Piccolo manuale di persuasione; Taylor; non-technical
  • arte de la guerra, el; Sun Tzu; non-technical, own-it
  • Piccolo manuale di leadership Confuciana; Adair; non-technical
  • How to Stop Worrying and Start Living; Carnegie; non-technical
  • Uomo - Guida allo stile; Roetzel; non-technical
  • Unwritten Laws of Engineering: Revised and Updated Edition; King
  • Test-Driven JavaScript Development (Developer’s Library); Johansen
  • Test Driven Development: By Example; Beck
  • Arquitectura Java JPA Domain Driven Design; Alvárez, Peláez
  • End of loyalty, the; Wartzman; non-technical
  • Basic Economics; Sowell; non-technical
  • Introduction to Economic Analysis; McAfee; non-technical
  • Patterns of Software; Gabriel
  • Coders at work; Seibel
  • Clean architecture; Martin
  • How to be a stoic - Pugliucci; non-technical
  • Introduction to Object-Oriented Programming, an; Budd
  • Gafas de la felicidad, las; Santandreu; non-technical
  • Ser feliz en Alaska; Santandreu; own-it, non-technical, philosophy
  • Mochila para el universo, una; Punset; non-technical
  • Gods themselves, the; Asimov; non-technical
  • Panamá papers, the; Obermayer, Obermaier; non-technical
  • Originals; Grant; non-technical
  • Optimism over despair; Chomsky; non-technical
  • SCIENCE OF BREATH: A Practical Guide; Ballentine, Hymes; non-technical
  • Yoga Explained: A New Step-by-step Approach to Understanding and Practising Yoga; Mehta,‎ Arjunwadkar; non-technical
  • Wanderlust: A Modern Yogi’s Guide to Discovering Your Best Self; Krasno; non-technical
  • How to Think About Money; Clements; non-technical, finance
  • By Way of Deception; Ostrovsky; non-technical
  • Printemps des sayanim, le; Cohen; own-it, non-technical
  • Deep work; Newport; non-technical, own-it
  • Hooked: How to Build Habit-Forming Products; Eyal, Hoover; non-technical
  • Irresistible: The Rise of Addictive Technology and the Business of Keeping Us Hooked; Alter; non-technical
  • The Attention Merchants: The Epic Scramble to Get Inside Our Heads; Wu; non-technical
  • Willpower: Why Self-Control is The Secret to Success; Baumeister, Tierney; non-technical
  • Principles of Psychology, the; James; own-it, non-technical
  • Our mutual friend; Dickens; non-technical
  • Crucial Conversations: Tools for Talking When Stakes Are High, Second Edition; Patterson, Grenny, McMillan, Switzler; non-technical
  • Amusing Ourselves to Death - Public Discourse in the Age of Show Business; Postman; non-technical
  • Mastery; Greene; non-technical, own-it
  • Silence in the age of noise; Kagge; non-technical
  • Functional programming simplified; Alexander; own-it
  • Batalla del Ebro, la; Reverte; non-technical
  • Historia de la guerra civil española; Rojo; non-technical
  • Lucha por el poder, la; Evans; non-technical
  • Revolución rusa, la; Pipes; non-technical
  • Holocausto, el; Rees; non-technical
  • Martín Lutero, renegado y Profeta; Roper; non-technical
  • Siglo de la revolución, el ; Fontana; non-technical
  • Historia de la revolución rusa; Trotsky; non-technical
  • Dispossessed, the; Le Guin; non-technical
  • Left hand of darkness; Le Guin; non-technical
  • Lathe of heaven; Le Guin; non-technical
  • https://www.amazon.com/Schopenhauer-Cure-Novel-Irvin-Yalom/dp/0060938102/
  • https://www.amazon.com/How-Schopenhauer-Through-Mid-Life-Crisis-ebook/dp/B00QXNB5PC/
  • Books in general – Epstein
  • Affluent society, the; Galbraith; non-technical, finance
  • Philosophy of the Buddha; Bahm; non-technical, philosophy
  • Tribe of mentors; non-technical, own-it
  • 5 dysfunctions of a team; non-technical
  • Ziglar’s Top Performance; non-technical
  • Pragmatic Programmer (+)
  • High Output Management; Grove; non-technical
  • First Break All the Rules; non-technical
  • Managing for happiness; Appelo; non-technical
  • Meditations; Marcus Aurelius; non-technical, own-it, philosophy
  • Why budism is true; Wright; non-technical, own-it
  • 7 hábitos de la gente altamente productiva
  • art of readable code
  • Domain modeling made functional
  • Sketchbook handbook; own-it
  • Agile samurai, the
  • Miracle of Mindfulness, the; Hanh; non-technical, own-it, philosophy
  • No mud, no lotus: The Art of Transforming Suffering; Hahn; non-technical
  • Lean Architecture: for Agile Software Development; Coplien, Bjørnvig
  • Agile IT Organization Design: For Digital Transformation and Continuous Delivery; Sriram Narayan
  • Philosophy of Software Design, a; Ousterhout
  • Hope in the Dark; Solnit
  • Agile!: The Good, the Hype and the Ugly; Meyer
  • Common Stocks and Uncommon Profits and Other Writings; Fisher, Fisher; non-technical, finance
  • Prize: The Epic Quest for Oil, Money & Power, the; Yergin; non-technical
  • So good they can’t ignore you; Newport
  • Creating a Software Engineering Culture; Wiegers
  • Managing Humans: Biting and Humorous Tales of a Software Engineering Manager; Lopp
  • Don’t make me think; Krug
  • Leaders eat last; Sinek; own-it
  • art of the start, 2, the; Kawasaki; own-it
  • Unlimited memory; own-it
  • Selfish gene, the; Dawkins; own-it
  • Public speaking skills for dummies; own-it
  • 365 days with discipline; own-it
  • How to fight; Hahn; own-it
  • 33 strategies of war; own-it
  • Leader who had no title, the; own-it
  • greatness guide, the; own-it
  • Year of happy living, the; own-it
  • 4 hour chef, the; Ferriss; own-it
  • Finish what you start; own-it
  • Personal MBA, the; Kaufmann; own-it
  • Richest man in Babylon, the; own-it, finance
  • Think and grow rich; Hill; own-it
  • Why Buddhism is true; own-it
  • Wisdom of Hypatia: Ancient Spiritual Practices for a More Meaningful Life, the; MacLennan; non-technical, philosophy
  • Just enough software architecture; own-it
  • Elastic leadership; Osherove; own-it, non-technical
  • Taking smart notes; own-it, non-technical
  • Secure by design; own-it
  • Reset; Sawyer; non-technical, finance
  • Investor’s manifesto, the; Bernstein; own-it, non-technical, finance
  • Splendid exchange, a; Bernstein; own-it, non-technical, finance
  • Birth of plenty, the; Bernstein; own-it, non-technical, finance
  • Feeling Good: The New Mood Therapy; David Burns; non-technical
  • We (novel); non-technical
  • Secret, the; Byrne; non-technical
  • Developer hegemony
  • Give and Take; Grant; non-technical
  • Tao of Seneca, The; Loeb; own-it, non-technical, philosophy
  • Liquid Modernity; Bauman; non-technical, philosophy

unfinished (unsorted):

  • Working Effectively with Legacy Code (+); Feathers; own-it
  • Nonviolent communication (+); Rosenberg; own-it, non-technical
  • Introduction to Buddhism: Teachings, History and Practices, an; Harvey; non-technical, own-it, philosophy
  • Effective Java; Bloch; own-it
  • Functional Programming Patterns in Scala and Clojure; own-it
  • Release It! - Design and Deploy Production-Ready Software; own-it
  • Refactoring (+); Fowler; own-it
  • Leprechauns of Software Engineering (+), the; Bossavit; own-it
  • Domain-Driven Design: Tackling Complexity in the Heart of Software; Vernon (+); own-it
  • Pragmatic Thinking and Learning: Refactor Your Wetware; own-it
  • Readings in Database Systems, 5th Edition; own-it
  • Structure and Interpretation of Computer Programs (SICP); Abelson, Sussmann, Sussmann; own-it
  • La Sociedad De Coste Marginal Cero (Estado y Sociedad); Rifkin; non-technical
  • Odisea; Homero; non-technical
  • Switch: How to Change Things When Change Is Hard; Heath, Heath; own-it, non-technical
  • Cómo leer un libro; Adler, van Doren; non-technical, own-it
  • Object-Oriented Design Heuristics; Riel

next:

  • Mundo nuevo, ahora, un; Tolle; own-it, non-technical
  • Continuous Delivery; Humble, Farley; own-it
  • Java Concurrency in Practice (JCIP); Goetz
  • Thinking fast and slow; Kahneman; non-technical
  • Your money or your life (+); Dominguez, Robin; finance, non-technical, own-it
  • five dysfunctions of a team: a leadership fable, the; Lencioni; non-technical
  • Who rules the world?; Chomsky; non-technical, own-it
  • Random walk down wall street a; Malkiel [Part IV]; own-it
  • Essence of yoga, the; Feuerstein, Miller; own-it, non-technical
  • Inner Engineering; Sadhguru; own-it, non-technical, philosophy

wip (3):

  • Daily Stoic, the; Holiday, Hanselman; own-it, non-technical, philosophy
  • Hombre multiorgásmico, el; Chía, Arava; own-it, non-technical

done:

  • 4 pillars of investment, the; Bernstein; own-it, finance, non-technical
  • Candide; Voltaire; own-it, non-technical, philosophy
  • Simple path to wealth, the; Collins; own-it, non-technical, finance
  • Lagom; Brantmark; own-it, non-technical, philosophy
  • Comment revivre par le jeune; Lützner; own-it, non-technical
  • Educación financiera avanzada desde cero; Hernández; own-it, non-technical, finance
  • Pensiones públicas, la esclavitud de nuestra época; Hernández; non-technical, own-it, finance
  • On the shortness of life; Séneca; own-it, non-technical, philosophy
  • Código del dinero, el; Samsó; own-it, non-technical, finance
  • Más cosas sobre la bolsa; Hernández; own-it, non-technical, finance

rejected:

  • Stanger in a strange land; Heinlein; own-it, non-technical

lists:

past-done:

  • Prince, the; Macchiavello; non-technical, own-it
  • Nuevo kama-sutra ilustrado, el; Gallotti; non-technical
  • Quien se ha llevado mi queso; Johnson; own-it
  • One minute manager, the; Blanchard; own-it, non-technical
  • En defensa de los ociosos; Stevenson; non-technical, own-it, philosophy
  • Ladybird Book of Mindfulness, the (Ladybirds for Grown-Ups); Hazeley, Morris; non-technical
  • Art of the start, the; Kawasaki; own-it, non-technical
  • Getting started with NoFap; non-technical
  • Emotional intelligence; Goleman; non-technical
  • Old man’s war; Scalzi; non-technical, own-it
  • Nightfall; Asimov, Silverberg; own-it, non-technical
  • Interface; Stephenson, George; non-technical, own-it
  • Man who sold the moon, the; Heinlein; own-it, non-technical
  • Agents of innocence; Ignatius; own-it, non-technical
  • Fist of god, the; Forsyth; own-it, non-technical
  • Avaro, el; Molière; own-it, non-technical
  • Bogleheads’ Guide to Investing, the; Larimore, Lindauer, LeBoeuf; own-it, non-technical, finance
  • Lazyperson’s guide to investment; Farrell; own-it, non-technical, finance
  • Millionaire next door, the; Stanley, Danko; own-it, non-technical, finance
  • Little Book of Common Sense Investing; Bogle; own-it, non-technical, finance
  • Monje que vendió su Ferrari, el; Sharma; own-it, non-technical
  • Siddhartha; Hesse; non-technical, own-it, philosophy
  • If you can: how millenials can get rich slowly; Bernstein; own-it, non-technical, finance
  • Odessa; Forsyth; non-technical, own-it
  • Bogle on mutual funds: new perspectives for the intelligent investor; Bogle; own-it, non-technical, finance
  • Perros de la guerra, los; Forsyth; own-it, non-technical
  • avaro y el oro, el; Esopo; non-technical
  • Aulularia; Plauto; own-it, non-technical
  • Alternativa del Diablo, la; Forsyth; own-it, non-technical
  • Guía, el; Forsyth; own-it, non-technical
  • Pied piper; Forsyth; own-it, non-technical
  • Hunt for the Red October, the; Clancy; own-it, non-technical
  • Time to kill, a; Grisham; own-it, non-technical
  • Ética promiscua; Easton, Hardy; own-it, non-technical
  • Checklist manifesto, the; Gawande; own-it, non-technical
  • Team geek (+); own-it
  • Kata de la voluntad; non-technical
  • Obstacle is the way, the; non-technical, philosophy
  • Guide to stoicism, a; Stock; own-it, non-technical, philosophy
  • Senior software developer, the; Copeland; own-it
  • Scandal in Bohemia, a; Doyle; own-it
  • Getting things done, …; Allen (+); own-it, non-technical
  • Nature of Software Development, the; Jeffries; own-it
  • Team Geek; Fitzpatrick, Collins-Sussman; own-it
  • Aprendo Yoga; Van Lysebeth; non-technical, own-it
  • Clean Coder: A Code of Conduct for Professional Programmers, the; Martin; own-it
  • ML for the working programmer, 2nd edition [5th chapter only]; Paulson; own-it
  • Lazarillo de Tormes, el; anónimo; non-technical
  • Tom Clancy’s power plays - Politika; Preisler; own-it, non-technical
  • Moon is a harsh mistress, the; Heinlein; own-it, non-technical
  • Tus zonas erróneas; Dyer; non-technical, own-it
  • Peopleware; DeMarco, Lister (+); own-it
  • Phoenix project, the ; Kim, Behr, Spafford; own-it
  • Ética a Nicómaco; Aristotle; own-it, non-technical, philosophy
  • Book of transformation; Dalai Lama; non-technical, philosophy
  • Como ganar amigos e influir sobre las personas; Carnegie (+); own-it
  • Oliver Twist; Dickens; own-it, non-technical
  • Building evolutionary architecture; Ford, Parsons; own-it
  • Selfie: How We Became So Self-Obsessed and What It’s Doing To Us; Storr. Just chapter 1: The dying self; own-it, non-technical
  • Sota la cistella; Gasol; own-it, non-technical
  • Hombre en busca del sentido, el; Frankl; own-it, non-technical, philosophy
  • Metamorfosis; Kafka; own-it, non-technical
  • Your money or your life; Dominguez, Robin; non-technical, finance, own-it
  • Traction; Wickman; own-it, non-technical
  • How to Be a Stoic: Using Ancient Philosophy to Live a Modern Life; Pigliucci; own-it, non-technical, philosophy
  • Guide to the Good Life, The Ancient Art of Stoic Joy, a; Irvine; non-technical, own-it, philosophy
  • goal, the; Goldratt (+); own-it
  • Random walk down wall street a; Malkiel [Parts I, II, III]; own-it

Self-Study in June 2019

Jun 1, 2019 - 2 minute read - Comments - self-study-aggregationjune2019bashborrowing-rulesccomparisoncompilerconcurrencyconsensuscorrectnesscovariancedebugdistributed-consensusdistributed-lockdistributed-programmingefficiencyfencing-mechanismfunction-pointergarbage-collectiongenerich0p3helplanguagelanguage-featurelifetimelifetime-parameterlockmaksym-zavershynskyimartin-kleppmannmonotonic-clockparallellismpersonal-knowledge-basepeter-hoseypointerpointer-arithmeticprogramming-languageredlockredlock-algorithmrustrustonomiconscriptstop-the-worldstringstructtrapvariancewiki

(h0p3’s Wiki)

This is a highly customized tiddlyWiki, from h0p3.

Tags: wiki, personal-knowledge-base, h0p3

Id: b8b3d973-9611-4180-854a-0242ac110003 Read: Fri, 7 Jun 2019 13:20:26 +0000

Debug bash scripts

This article explains how to debug bash scripts using the DEBUG trap.

Declares several log levels for the commands

Tags: debug, bash, trap, help, script

Id: 39f76af4-99ce-48b6-adc1-0242ac110003 Read: Fri, 7 Jun 2019 13:20:26 +0000

Understanding Rust Lifetimes

Describes rust lifetimes, lifetime parameters.

Compares them to C++ pointers (in the sense they are difficult to learn, but make things explicit).

Tags: rust, borrowing-rules, pointer, language, comparison, generic, lifetime, lifetime-parameter, maksym-zavershynskyi, compiler, language-feature, variance, covariance, struct, rustonomicon

Id: 2e14ae3e-8ec0-11e9-be23-0242ac110003 Read: Fri, 14 Jun 2019 16:19:26 +0000

Everything you need to know about pointers in C

Explains pointers in C

Tags: c, programming-language, pointer, peter-hosey, language-feature, string, pointer-arithmetic, function-pointer

Id: ddc39078-8ed6-11e9-85bc-0242ac110003 Read: Fri, 14 Jun 2019 19:01:50 +0000

How to do distributed locking

This article explains the usage of locks (for efficiency - optimization / for correctness).

Explains the usage of the “Redlock” algorithm, to perform distributed locks. Explains a fencing mechanism (using tokens).

References monotonic clocks, stop-the-world garbage collection, consensus mechanisms.

Uses good diagrams for parallelism and concurrency.

Tags: lock, efficiency, correctness, redlock, redlock-algorithm, consensus, distributed-consensus, distributed-programming, distributed-lock, martin-kleppmann, parallellism, concurrency, fencing-mechanism, monotonic-clock, stop-the-world, garbage-collection

Id: a1165c1e-9719-11e9-bf0b-0242ac110003 Read: Tue, 25 Jun 2019 07:19:54 +0000

In Defense of Tooling

May 30, 2019 - 2 minute read - Comments - tooltoolingdave-dunfieldquotecurriculum

A quote (on a curriculum vitae) that I’ve enjoyed:

I am a firm believer in the value of tools, and often spend significant time at the beginning of a project developing tools specific to the needs of the project. This always pays off in the long run. I use tools to:

  • Perform tasks not otherwise achievable
  • Automate tedious/repetative processes
  • Simplify steps in the build/debug cycle
  • Eliminate “human error” in scanning, translation etc.
  • Access internal information easily and efficiently
  • more … the tools used in a project depend greatly on the project.
  • I am also a big fan of automation. When you automate a process, you not only make it easier and faster to perform, but you also remove variability in the execution of that process. This means fewer procedural errors, a faster development process, and a more stable and reliable product.

My reliance on tools and automation means that you will see me sitting in front of a command line interface (easy to automate) more frequently than graphical one (difficult to automate).

Dave Dunfield

In a way, it reminds me of how Steve Freeman and Nat Pryce try to remove as much uncertainty from a software project in the beginning of the project, not at the end.

Tooling is very important for everyday efficiency.

Self-Study in May 2019

May 1, 2019 - 1 minute read - Comments - self-study-aggregationmay2019archiveashley-madisonbarry-mazurbruce-schneiercompany-valuationdatadata-archivaldata-breachdecisiondecision-makingessayinformationinformation-managementliabilitymemexpersi-diaconispersonal-knowledge-basesecurityspillspin-a-pennystanfordstated-meeting-reporttoxictoxic-assetweb-archive

The Problem of Thinking Too Much

An example of what happens when you think too much. The paralysis that comes from it

Tags: persi-diaconis, stanford, stated-meeting-report, barry-mazur, spin-a-penny, decision-making, decision

Id: e14aba08-7add-11e9-9e23-0242ac110003 Read: Mon, 20 May 2019 09:01:39 +0000

Personal web archives; a report

Creating a personal web archive, based on the tools they created.

a browser extension for storing web pages, a web archive server hosting such snapshots, a(nother) browser extension to query such archives.

Tags: web-archive, memex, personal-knowledge-base, archive, information, information-management, data-archival

Id: 3a681acc-7ade-11e9-a0d7-0242ac110003 Read: Mon, 20 May 2019 09:04:09 +0000

Internet Data Is Rotting

How the internet data is rotting. How it is even important that this rots.

Tags: personal-knowledge-base, archive, data-archival

Id: 61b02a52-7ade-11e9-82fd-0242ac110003 Read: Mon, 20 May 2019 09:05:15 +0000

Data Is a Toxic Asset, So Why Not Throw It Out?

In this essay, Bruce Schneier discusses why having data is a liability. Should only be kept when strictly needed. Also, to keep in mind the cost of keeping the data secure

Tags: security, bruce-schneier, essay, liability, ashley-madison, toxic, data, data-breach, spill, toxic-asset, company-valuation

Id: 16e89556-8220-11e9-8887-0242ac110002 Read: Wed, 29 May 2019 14:43:14 +0000