diff options
author | Cody Hiar <cody@hiar.ca> | 2023-03-13 10:44:49 -0600 |
---|---|---|
committer | Cody Hiar <cody@hiar.ca> | 2023-03-13 10:44:49 -0600 |
commit | f69fe236e09bd3d34975335b091142804001b4ab (patch) | |
tree | 389271d4cc1f6ac169a6a53a5924c4c1c8fc4fc5 |
Initial commit
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | README.md | 2217 | ||||
-rw-r--r-- | check_links.py | 41 | ||||
-rw-r--r-- | flake.lock | 25 | ||||
-rw-r--r-- | flake.nix | 19 |
5 files changed, 2308 insertions, 0 deletions
diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..3f84548 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ + +help: + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' + +check_dups: ## Check for bad bookmarks + perl -wln -e '/\[\d+\]/ and print $$&;' README.md | sort | uniq -c | sort -n diff --git a/README.md b/README.md new file mode 100644 index 0000000..8bffab0 --- /dev/null +++ b/README.md @@ -0,0 +1,2217 @@ +Many moons ago, I used Xmarks for all my bookmarking. Then they shut down. I +thought about maybe migrating to a new service but thought, naw. Now I keep all +my links in this repo and call it a day. I do have some small scripts to help +with maintenance so things should be up to date. + +### Tech Articles/Reading + +- [Hacker News][405] +- [Lobste.rs][404] +- [Discover Dev][406] + +### Interviews + +- [Technical Interview Questions Julia Evans][1] +- [Lessons from a year's worth of hiring data][3] +- [Google Interview, lessons learned][4] +- [50+ Interviews With Facebook, Twitter, Amazon & Others][5] +- [Coding Interview University][9] +- [Exactly what to say when recruiters ask you to name the first number][484] +- [Google Interview Problems: Ratio Finder][660] +- [The Interview Study Guide For Software Engineers][677] +- [What I Learned from Doing 60+ Technical Interviews in 30 Days][771] +- [Facebook senior software engineer interview: the only post you'll need to read][805] + +### Job Boards + +- [Awesome Remote job: A curated list of awesome remote jobs and resources][8] +- [RemoteMore: Remote jobs][664] + +### Career + +- [Four Steps to Google][6] +- [Hiring and the market for lemons][7] +- [The Software Engineering Job Ladder][10] +- [How engineers can stand out from applicant pool][11] +- [Basecamp Employee Handbook][12] +- [On Being A Senior Engineer][395] +- [How to pretend you have social skills][470] +- [How to Become a Better Software Developer: A Handbook on Personal Performance][520] +- [Don't Call Yourself A Programmer, And Other Career Advice][638] +- [Education of a Programmer][640] +- [5 Things I've Learned in 20 Years of Programming][680] +- [What skills do founders find most crucial for running their businesses?][681] +- [You don't need to work on hard problems][696] +- [The Death of a Craftsman][728] +- [How to be a Successful Software Engineer][574] +- [Lessons from Six Years as a Solo Consultant][701] +- [What distinguishes great software engineers][800] +- [What Silicon Valley "Gets" about Software Engineers that Traditional Companies Do Not][808] +- [Making is Show Business now][823] +- [The Engineer's Guide to Career Growth][840] +- [Awesome CTO: Collection of CTO resources][844] +- [On Writing Tech Specs][848] +- [Salary Negotiotion][858] +- [An incomplete list of skills senior engineers need, beyond coding][870] +- [10 Rules For Negotiating a Job Offer][874] +- [How to tactfully negotiate your salary][885] +- [The SaaS Org Chart][894] +- [Evil tip: avoid "easy" things][908] +- [H1B Salary Database][917] +- [Equity in your tech job offer][1026] +- [Staff Engineering at Carta][1032] +- [Job Seekers: Aggregated Links Notion Board][1047] +- [Reading a Profit & Loss statement][1056] +- [Downturn Career Decisions][1057] + +### Productivity + +- [Productivity - Sam Altman][13] +- [10,000 Hours With Claude Shannon: How A Genius Thinks, Works, and Lives][15] +- [The importance of Deep Work][417] +- [9 tips for eliminating distractions and getting things done][422] +- [In Pursuit of Production Minimalism][451] +- [Be Nice and write Stable Code][463] +- [Slack as a Hive mind][464] +- [TED talks for life long learners][468] +- [Manifesto for Minimalist Software Engineers][474] +- [How-to-make-a-big-decision][478] +- [Reading with a Pencil][490] +- [Run Less Software][492] +- [How to be an open source gardener][513] +- [How to get things done when you don't feel like it][522] +- [Stop Learning Frameworks][554] +- [Against Librarization][571] +- [Programmer as wizard, programmer as engineer][576] +- [Write tests. Not too many. Mostly integration.][583] +- [Everyone watching this is fired][603] +- [The Duct Tape Programmer][625] +- [Advice on Getting Better from and Accomplished Piano Player][636] +- [How to Be Great? Just Be Good, Repeatably][639] +- [All the best engineering advice I stole from non-technical people][644] +- [Rabbit Holes: The Secret to Technical Expertise][653] +- [Just Build the Product][691] +- [Old Code Gets Younger Every Year][739] +- [How Understanding the Marginal Utility of Money Will Make you Happier][740] +- [On Coding, Ego and Attention][758] +- [How Developers Stop Learning: Rise of the Expert Beginner][761] +- [What is Mind-Wandering and How To Use it To Your Advantage?][833] +- [If Your Boss Could Do Your Job, You're More Likely to Be Happy at Work][851] +- [Don't Feed The Thought Leaders][879] +- [How to do less][962] +- [Why Tacit Knowledge is More Important Than Deliberate Practice][965] +- [Optimal quitting][974] +- [When Everything is Important But Nothing is Getting Done][985] +- [Stepping Stones not Milestones][1004] +- [Delivering on an architecture strategy][1005] +- [Developers spend most of their time figuring the system out][1006] +- [Talk Like A Systems Engineer: Yaks All The Way Down][1010] +- [How finishing what you start makes teams more productive and predictable][1048] +- [Why We Estimate][1050] +- [How To Write Awesome Tech Specs][1051] +- [Rich Hickey: Simple Made Easy][1054] +- [Rich Hickey: Hammock Driven Development][1055] + +### Management/Culture + +- [Old School Project Management Techniques That Still Matter][14] +- [Rework: Google Managers][16] +- [12 Manager READMEs][407] +- [Building and Inclusive Code Review Culture][448] +- [You don't need a standup][450] +- [Post Agile: Embracing Asynchronous Processes][487] +- [Why Software Development Requires servant Leaders][483] +- [What Nobody tell you about Documentation][531] +- [More Speed, lower volecity][540] +- [7 reasons not to skip the tests][545] +- [Antifragility and Software Development][547] +- [The Broken Window to the Developers Soul][582] +- [Classic Mistakes][614] +- [The Friendship That Made Google Huge][631] +- [The computer is a machine, but a codebase is an organism.][655] +- [Stevey's Google Platforms Rant][662] +- [Software developers should avoid traumatic changes][674] +- [The Single Most Important Internal Email in the History of Amazon][678] +- [Work is Work][692] +- [Resources for Staff-plus engineers][700] +- [Spotify's failed squad goals][723] +- [They write the right stuff][757] +- [Essays on programming I think about a lot][772] +- [Why is This Idiot Running My Engineering Org?][778] +- [The Architecture Playbook][792] +- [How management by metrics leads us astray][813] +- [How to hire senior developers: Give them more autonomy][816] +- [Maximizing Developer Effectiveness][827] +- [The 25 Micro-Habits of High-Impact Managers][869] +- [The Four Levels of Product Managers ][881] +- [How Big Tech Runs Tech Projects and the Curious Absence of Scrum][901] +- [What's Your Shape? A Product Manager's Guide to Growing Yourself and Your Team][980] +- [The Curse of Systems Thinkers (Part 1)][982] +- [Staying on the path to high performing teams][992] +- [What TPMs Do and What Software Engineers Can Learn From Them][993] +- [The collapse of complex software][994] +- [The Wetware Crisis: the Dead Sea effect][997] +- [From the Archives: Xerox Parc's Engineers on How They Invented the Future][998] +- [Founding Uber SRE][1009] +- [Companies Using RFCs or Design Docs (Tech Specs) and Examples of These][1016] +- [Small Actions Make Great Leaders][1017] +- [What we learned in studying the most effective founders][1019] +- [Spotify doesn't use "the Spotify model" and neither should you][1035] +- [Scaling Developer Effectiveness at Twitter][1049] +- [Why your IT organization should prioritize developer experience][1053] + +### Psycology/Philosophy + +- [Mental Models I Find Repeatedly Useful][566] +- [How to Remember Anything Forever-ish][573] +- [The three-page paper that shook philosophy: Gettiers in software engineering][586] +- [Rage Against the Codebase: Programmers and Negativity][600] +- [Why being bored is good][628] +- [Clause Shannon and the Art of Choosing a Problem][730] +- [How will you measure your life][759] +- ['Success Addicts' Choose Being Special Over Being Happy][764] +- [Derek Sivers & The Art of Enough][765] +- [50 Ideas That Changed My Life][773] +- [The High Price of Mistrust][824] +- [Tools for better thinking][903] +- [First Principles][956] +- [Peter Bevelin on Seeking Wisdom, Mental Models, Learning, and a Lot More][1013] + +### Dev/Tools + +- [ngrok - secure introspectable tunnels to localhost][17] +- [wagoodman/bridgy: cloud inventory + ssh + tmux + sshfs][18] +- [The Homely Mutt / Steve Losh][19] +- [Boilerplate Projects][20] +- [Cheat Sheets for Everything][21] +- [Cookie cutter - Using Pre/Post-Generate Hooks][22] +- [Use a Linode for Web Development on Remote Devices][415] +- [Certificates for localhost][434] +- [Extended Validation Certificates are Dead][502] +- [Online Character Map Viewer][552] +- [Hexyl: Simple hex viewer][578] +- [Hacker Tools: Lectures][587] +- [Build your own X][597] +- [SOPS: Secrets OPerationS encrypted files][760] +- [Charles Web Debugging Proxy • HTTP Monitor / HTTP Proxy / HTTPS & SSL Proxy / Reverse Proxy][199] +- [Official user guide · ranger/ranger Wiki][200] +- [Gnu Guix][542] +- [gitea-release Tool Changelog][743] +- [Pants Build: Build System For Monorepos][871] +- [Termpair: Remote Terminal Sharing][875] +- [Teller: Secrets Management Tool][877] +- [Building for the 99% Developers][978] + +### Python + +- [Repository Structure and Python][23] +- [Idiomatic Python][25] +- [Python Method Resolution Order][26] +- [Dreamhost install custom Python][27] +- [The Django Book][28] +- [Getting Started with Django][29] +- [Learn Python The Hard Way][30] +- [Automate the Boring Stuff with Python][31] +- [Python Class Attributes: Examples of Namespace, Variables, Properties & More][32] +- [Optimize Python with Closures][33] +- [Let’s Build A Web Server. Part 2. - Ruslan's Blog][34] +- [Looking up words in a Dictionary using Python][35] +- [Flask - Full Stack Python][36] +- [Kickstarting Flask on Ubuntu - setup and deployment][37] +- [How We Deploy Python Code][38] +- [Intermediate Python — Python Tips 0.1 documentation][39] +- [Understanding Python Decorators in 12 Easy Steps!][40] +- [Working with Binary Data in Python | DevDungeon][41] +- [amontalenti/elements-of-python-style · GitHub][42] +- [Comprehensions in Python the Jedi way · GitHub][43] +- [Python Virtual Environments - a primer][44] +- [My Transition to Python 3 and Pyenv, goodbye Virtualenvwrapper][45] +- [Building Large Flask Apps In The Real World][47] +- [Python and Elixir][48] +- [Scientific Python ][50] +- [gdb Debugging Full Example][51] +- [Python command line programs][52] +- [Machine Learning Exercises In Python, Part 1][53] +- [Good logging practices][54] +- [Generators in Python 3][55] +- [Easy CLI Apps][56] +- [Decorator Uses][57] +- [Python Cheatsheet][58] +- [Regex Multiple languages][59] +- [You Should Be Using Nginx + UWSGI][60] +- [Pynd - Search Python source code.][61] +- [Awesome Wagtail: A curated list of awesome packages, articles, and other cool resources from the Wagtail community.][62] +- [Getting Started with Mocking in Python][63] +- [Python Data Structure and Algorithms][64] +- [Django Packages : Grids][65] +- [Classy Django Rest Framework Documentation][66] +- [Django in depth video][67] +- [CCBV - Classy Class based views.][68] +- [UWSGI Docs Fork][69] +- [Packaging Python][70] +- [Deni Bertovic :: Celery - Best Practices][71] +- [Django Python Styleguide Octoenergy][72] +- [Django project optimization guide (part 1)][73] +- [Text to speech – Python][74] +- [Run Django Python 2 and Python 3 apps with uWSGI and nginx on same server?][75] +- [Dockerizing Django, uWSGI and Postgres the serious way][76] +- [Abstract Base Classes in Python – Technology@Nineleaps – Medium][77] +- [Pandas in a nutshell – Kanoki][78] +- [How the heck does async/await work in Python 3.5?][79] +- [Django vs Flask][80] +- [Python coding challenges][81] +- [Porting an historic Python2 module into Python3 · lucasg.github.io][82] +- [Python Entry Points Explained][83] +- [Python Recipes][84] +- [Understanding Python's logging module][85] +- [Python decorators, the right way: the 4 audiences of programming languages][86] +- [The tragic tale of the deadlocking Python queue][87] +- [Python Data Science Handbook | Python Data Science Handbook][88] +- [metachris/logzero: Robust and effective logging for Python 2 and 3.][89] +- [Python strftime date print][90] +- [How to Generate FiveThirtyEight Graphs in Python Matplotlib][91] +- [Python Format Printing][92] +- [Python for Finance, Part 3: A Moving Average Trading Strategy][93] +- [Python Programming Tutorials Zipline Quantopian][94] +- [Django 1.11 -- Classy Django Forms][95] +- [kennethreitz/setup.py: 📦 A Human's Ultimate Guide to setup.py.][96] +- [Django Service Objects][97] +- [Python Exercises][98] +- [Python Test and Code][99] +- [Wrapping Subprocesses in Asyncio][100] +- [Learn Blockchains by Building One – Hacker Noon][101] +- [Django Middlewares and the Request/Response Cycle][102] +- [Python Google SpreadSheet API][103] +- [Python Design Patterns][104] +- [Design Patterns - Python Pattern References][105] +- [Problem Solving with Algorithms and Data Structures using Python][106] +- [Pipenv: Holy Grail For Python Environments][107] +- [A tutorial on packaging up your Python code for PyPI][108] +- [Learning Concurrency in Python - YouTube - YouTube][109] +- [norvig/pytudes: Python programs to practice or demonstrate skills.][110] +- [Using Python’s Pathlib Module][111] +- [Implementing a Neural Network from Scratch in Python][112] +- [Flake8 Rules][113] +- [Python Application Deployment with Native Packages][114] +- [git-based fabric deploys are awesome][115] +- [Python Bytecode: Fun with dis - Allison Kaptur][116] +- [Full-Text Search in Django with PostgreSQL][117] +- [The Perils of Packaging in Python][118] +- [Write your own miniature Redis with Python][119] +- [How does pickle work in Python?][120] +- [Python Patterns][121] +- [9 Django Tips for Working with Databases][122] +- [How to Implement Dependent/Chained Dropdown List with Django][123] +- [Django Admin Cookbook 2.0 documentation][124] +- [Django, ELB health checks and continuous delivery][125] +- [Sharing Your Labor of Love: PyPI Quick and Dirty][126] +- [Asyncio basics in python][127] +- [When pypi goes down][128] +- [Attrs: The library you should use everywhere][129] +- [Lessons learned migrating to python 3][130] +- [Python Modules and Packages - An Introduction][131] +- [Let's talk about packages][132] +- [Visualizin Panda's Pivoting and Reshaping Functions][133] +- [Developing an Asynchronous Task Queue in Python][134] +- [Python Exceptions: An Introduction][135] +- [Apache Libcloud: Python Library for cloud providers][136] +- [Announcing glom: Restructured Data for Python][402] +- [Python Performance Tips][409] +- [Parallel tasks in Python: concurrent.futures][411] +- [How to build your own AlphaZero AI using Python and Keras][413] +- [The Ultimate Guide to Data Classes in Python 3.7][419] +- [Python's NotImplemented Type][421] +- [Clean Architectures in Python][423] +- [Getting Started with Apache Kafka in Python][429] +- [Idiomatic Python: EAFP vs LBYL][430] +- [10 common security gotchas in Python][431] +- [State of type hints in Python][432] +- [Python Youtube Channels Guide][433] +- [The Art of Avoiding Nested Code][440] +- [How to Structure Django Projects][442] +- [How virtual environments libraries work][443] +- [Django ORM Cookbook][444] +- [Building High Quality Django Apps at Scale][449] +- [Django Newbie Mistakes][453] +- [Making a low level debugger][455] +- [Working with Asynchronous Celery Tasks: lessons learned][469] +- [Setting up Django with S3][472] +- [Stab yourself witha fork in multiprocessing.Pool][481] +- [Standalone Django Scripts][493] +- [Running a standalone Django Python script][494] +- [Console Logging to STDOUT in Django][495] +- [Django Logging, The Right Way][496] +- [Django Deferred logging file handler][497] +- [18 Python programming books for beginners and veterans][500] +- [Pythons New Package Landscapr][505] +- [Mocking Cookbook Article][506] +- [Python Multithreading and Multiprocessing Tutorial][508] +- [Paralellism in One Line][509] +- [Python Algorithms][515] +- [Python 3 Patterns, Recipes and Idioms][517] +- [PyQt5 Tutorial: Build a python gui in 2018][519] +- [Guide to Date Mining][523] +- [How to Deploy Django Channels][524] +- [Various Python Module's imports visualized][525] +- [Python and QT: 3000 Hours of Developer Insight][527] +- [A quick dive into Python's slots][535] +- [Test Django with Pytest and Selenium][537] +- [wemake Django Template for Projects][538] +- [A multi-value syntax tree filtering in Python][546] +- [Writing Perfect Python Command Line Interfaces][553] +- [Free Hotel Wifi with Python and Selenium][557] +- [Incrementally improving the performance of a python script, until nothing makes sense anymore][560] +- [Awesome Python Applications][562] +- [Linux Containers, what even are they?][563] +- [Notes on how systemd's Job engine is structured][564] +- [My one-liner Linux Dropbox client][565] +- [Learn Python for Data Science from Scratch for Beginners][572] +- [Creating an Undetectable Custom SSH Backdoor in Python][577] +- [Comprehensive Python Cheatsheet][588] +- [Ports and Adapters with Command Handler Pattern][589] +- [Write yourself a git in Python][591] +- [Python for Reverse Engineering][592] +- [Endlessh: An SSH Tarpit (asyncio example)][593] +- [Hands-on Python 3 Concurrency With the asyncio Module][605] +- [How to Work With a PDF in Python][606] +- [from dynaconf import settings][607] +- [Django: An Unofficial Opinionated FAQ][608] +- [What Is Dynamic Programming With Python Examples][618] +- [pytz: The Fastest Footgun in the West][619] +- [Interfaces are Forever][624] +- [Refactoring a Python codebase using the Single Responsibility Principle][632] +- [Typchecking Django and DRF][648] +- [Multithreading VS Multiprocessing in Python][673] +- [When your data doesn't fit in memory: the basic techniques][683] +- [Easy Concurrency in Python][684] +- [Framework Patterns][689] +- [I'm not feeling the async pressure][690] +- [Python Type Hints Intro][707] +- [We have to talk about this Python, Gunicorn, Gevent thing][710] +- [Hypermodern Python][717] +- [Against service layers in Django][721] +- [Structuring large/complex Django projects][722] +- [Filling in PDF forms with Python][732] +- [The many ways to pass code to Python from the terminal][744] +- [Guide to Concurrency in Python with Asyncio][749] +- [Python for Finance: Algorithmic Trading][753] +- [Async Python is not faster][756] +- [Surviving Django (If you care about database)][776] +- [Django Views - The Right Way][777] +- [Options for packaging your Python code: Wheels, Conda, Docker, and more][780] +- [The Composition Over Inheritance Principle][790] +- [How to Combine Two Python Decorators][791] +- [Django Migrations without downtimes][809] +- [Django database constraints][815] +- [Moving to Django 3.0 Field.choices Enumeration Types][836] +- [Five Common Django Mistakes][838] +- [Abstract Syntax Tree for Patching Code and Assessing Code Quality][872] +- [70+ Python Projects for all levels][873] +- [3 Uses For Functools Partial in Django][876] +- [Understanding all of Python, through its builtins][912] +- [Python behind the scenes #11: how the Python import system works][913] +- [Python Project Setup: Virtual Environments and Package Management][975] +- [Threading in Python][981] +- [Running Python in WebAssembly][1001] +- [Logging in Python like a PRO][1023] +- [Multiprocessing Pool in Python: The Complete Guide][1046] + +### Ops + +- [Proper Server Naming DNS][388] +- [Gitlab: Clone / Pull all projects in a group][137] +- [Automate pushing of ssh-copy-id to multiple servers][138] +- [Jenkins Job Builder][139] +- [JobConfigHistory Plugin][140] +- [Linux server monitoring tools][141] +- [Linux System Administration PDF Course][142] +- [Ops School Curriculum][143] +- [Why we use Terraform and not Chef, Puppet, Ansible, SaltStack, or CloudFormation][144] +- [AWS in Plain English][145] +- [A workshop on Linux containers: Rebuild Docker from Scratch][146] +- [Comprehensive guide to terraform][147] +- [Blue Green Deployment][408] +- [SystemD Services Are Easy][435] +- [Archlinux Guide to Writing Unit Files][436] +- [You don't need that bastion host][459] +- [Security Training for Engineers][462] +- [Open Guide to AWS][471] +- [Test yout Sysadmin Skills][488] +- [5 Lessons Learned From Writing Over 300,000 Lines of Infrastructure Code][536] +- [Ops School][594] +- [Free for dev: SaaS, PaaS, and IaaS free tiers][695] +- [(A few) Ops Lessons We All Learn The Hard Way][703] +- [Monitoring your own infrastructure using Grafana, InfluxDB, and CollectD][770] +- [The Architecture Behind A One-Person Tech Startup][866] +- [Screw it, I'll host it myself][839] +- [Parler's epic fail: A crash course on running your own servers on a shoestring budget][841] +- [Running Nomad for home Server][843] +- [Why you should take a look at Nomad before jumping on Kubernetes][845] +- [Talk write-up: "How to build a PaaS for 1500 engineers"][850] +- [Linux Hypervisor Setup (libvirt/qemu/kvm)][853] +- [Trunk Based Development][930] +- [Continuous Integration On a Dollar a Day][932] +- [Khuedoan: My Devops Homelab][934] +- [Thoughts on systems management methods][945] +- [Outsourcing Everyday Jobs to Thousands of Transient Functional Containers][946] +- [Lyft: Optimizing for fast local development][947] +- [How a Brilliant Platform Engineer Saved Twilio From Absolute Disaster][964] +- [The Three Pillars of Reproducible Builds][969] +- [The End of Localhost][996] +- [Using Ansible & Nomad for a homelab (part 2)][999] +- [Metrics For Your Web Application's Dashboards][1000] +- [How to run end-to-end tests 10x faster with firecracker][1007] +- [Save by using Anything Other than a NAT Gateway][1022] +- [The practical guide to incident management][1024] +- [Monorepo Tools][1028] +- [Say hello to Devboxes][1030] +- [Notes on an Observability Team][1031] +- [Practical Observability][1061] + +### C + +- [Implementing a Virtual Machine in C][148] +- [Write Good C code][149] +- [How to C (as of 2016)][150] +- [Write a Shell in C][151] +- [Write a simple memory allocator][152] +- [Write a (toy) strace and gdb][153] +- [Beej's Guide to C Programming][154] +- [Essential C][155] +- [OCLint C Linting][156] +- [Explain C code][157] +- [C Primer][158] +- [Frequently Asked C questions][159] +- [Minimalist C Libraries][424] +- [Build your own Lisp][457] +- [Teaching C (2016)][514] +- [Spawn() of Satan][518] +- [How I ended up writing opensnoop in pure C using eBPF][521] +- [How to write a bootloader from scratch][645] +- [The Ten Commandments for C Programmers (Annotated Edition)][657] +- [cdecl: Explain C code][658] +- [An Introduction to Modern CMake][708] +- [Parsing command line arguments from C][709] +- [Linux Kernel Development and Writing a Simple Kernel Module][715] +- [Concurrent programming, with examples][725] +- [Static Analysis in GCC 10][726] +- [Sol - a sunny little virtual machine][741] +- [Beginner's Guide to Linkers][971] + +### CMPE/CS + +- [8-bit computer from scratch - Ben Eater][389] +- [Always Be Coding Blurb][160] +- [Software Carpentry Tutorials][161] +- [Big-O Algorithm Complexity Cheat Sheet][162] +- [Falsehoods about Addresses for Programmers][163] +- [Recommended Reading | The Homepage of @attrc][165] +- [What every computer science major should know][166] +- [Code Review Best Practices][167] +- [Algorithmist][169] +- [ferd.ca -> The Little Printf][170] +- [Build Technical Wealth][171] +- [Systems We Love][172] +- [Why Messaging Queues Suck | ProgrammableWeb][174] +- [kdeldycke/awesome-falsehood: Curated list of falsehoods programmers believe in.][175] +- [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets][176] +- [Learn how to design large-scale systems. Prep for the system design interview.][177] +- [The Twelve-Factor App][178] +- [Effective Engineer][179] +- [VisuAlgo - visualising data structures and algorithms through animation][187] +- [Design Patterns for Humans][390] +- [Modern Microprocessors][396] +- [zeeshanu/learn-regex: Learn regex the easy way][387] +- [Determining if Two Date Ranges Overlap][412] +- [Startup School Course Library][447] +- [Choose Boring Technology][485] +- [An Intensive Introduction to Cryptography][489] +- [Introduction to Networking: How the Internet Works][516] +- [Integrated Tests are a Scam][528] +- [Unit Testing? Do as I say, Don't do as I do][529] +- [Systems, not Programs][534] +- [The faster you unlearn OOP, the better for you and your software][550] +- [Network Protocols for anyone who knows a programming language][579] +- [Professional Software Development][581] +- [The philosophies of software languages, from Go to Elixir][599] +- [Classes vs. Data Structures][611] +- [Hacker Laws: Laws, Theories, Principles and Patterns that developers will find useful.][616] +- [Object-Oriented Programming: The Trillion Dollar Disaster][633] +- [CS360 Lecture notes -- Memory][661] +- [Understanding Parser Combinators][712] +- [CP-SAT Solver: Google Nurse Scheduling][713] +- [Crash course in Compilers][727] +- [Distill: Why do we need Flask, Celery, and Redis? (McDonalds inbetween)][735] +- [Should I use threads][751] +- [What every developer should know about TCP][752] +- [What's the deal with message passing, anway][783] +- [How NAT Traversal Works][787] +- [I was wrong. CRDTs are the future][802] +- [What event sourcing is not about][849] +- [Out of this world lessons from the Apollo Lunar landings][878] +- [The pedantic checklist for changing your data model in a web application][882] +- [SerenityOS Videos][888] +- [Direct I/O writes: the best way to improve your credit score][889] +- [Scalability is Quantifiable: The Universal Scalability Law][954] +- [Video: A Philosophy of Software Design | John Ousterhout][955] +- [On the criteria to be used in decomposing systems into modules][957] +- [Bottlenecks of Scaleups: How did you get into the bottleneck?][961] +- [So you want to scrape like the big boys][963] +- [The Code Review Pyramid][966] +- [What is Software Engineering][972] +- [Design: #noFramework][973] +- [Pay attention to WebAssembly][976] +- [At the boundaries, applications aren't functional][1029] +- [Superficial Simplicity][1038] +- [The Grug Brained Developer][1039] +- [Shapp Sharp Tools][1045] +- [12 Factor App Revisited][1059] + +### Books/Reading + +- [Free Programming Books][164] +- [The Hacker Shelf | Community-curated collection of free books for the intellectually curious.][168] +- [My top 100 programming books][182] +- [OS concepts book][173] +- [Game Programming Patterns][185] +- [DevOps README.md Recommended Books Readings][211] +- [Obey the Testing Goat][452] +- [Really Friendly Command Line Intro Book][458] +- [Goal Kicker Free Programming Books][501] +- [Jordan Peterson Book List][533] +- [Language-oriented software engineering (sort of) a book review of Clean Architecture][567] +- [An Elegant Puzzle Book Review: an Overdue Read for Software Engineering Leads][637] +- [The First Non-Bullshit Book About Culture I've Read][687] +- [EbookFoundation Github: Free Programming Books][694] +- [The 25 most recommended programming books of all time][697] +- [Six Totally Worthwhile Personal Finance Books][698] +- [The Psychology Of Computer Programming][729] +- [Google SRE Books][731] +- [Practical Python Repo][738] +- [Papers we Love][746] +- [Into the Tar Pit][747] +- [The Mediocre Programmer][748] +- [The OS Classics][762] +- [Paul Graham: Recommended Books][779] +- [Machine Learning from Scratch][781] +- [Goalkicker: Free Programming Books][806] +- [My Staff Software Engineering Reading List][821] +- [10 Papers Every Developer Should Read][914] +- [Software Architecture Books List][925] +- [PragmaticEngineer: Holiday Tech Book Recommendations][948] +- [Charlie Munger: 19 More Book Recommendations][1014] +- [Papers for Software Engineers][1034] + +### Databases + +- [How does a relational database work - Coding Geek][186] +- [NoSQL Databases: a Survey and Decision Guidance][188] +- [The Internals of PostgreSQL : Introduction][189] +- [Tuning PostgreSQL with pgbench Benchmarks][190] +- [Postgresql Examples][398] +- [PostgreSQL Exercises][399] +- [Postgres Replication Cheat-Sheet][401] +- [How to Fake a database design][503] +- [Death by Database][504] +- [Modeling a Universe by Curtis Poe][532] +- [Mastery with SQL Course][617] +- [pg_insights: scripts for postrgres health][620] +- [There's a Relational Database in Your Unix CLI][621] +- [A Simple Guide to Five Normal Forms in Relational Database Theory][622] +- [Postgres Is Underrated - It Handles More than You Think][668] +- [Postgres when it's not your job][669] +- [Drawsql: Database schemas of opensource projects][745] +- [PostgreSQL Explain][768] +- [Some SQL Tricks of an Application DBA][775] +- [The Art of PostgreSQL][785] +- [Postgres advisory locks for python developers][788] +- [Make Invalid States Unrepresentable][803] +- [Postgres Permissions: Read only user][807] +- [Simple Anomaly Detection Using Plain SQL][829] +- [Minimal Modeling Series][837] +- [Sqlite is not a toy database][856] +- [Prisma Data Guid: Choosing and Using the right Database][857] +- [Using Postgresql as a Data Warehouse][865] +- [Do You Really Need Redis? How to Get Away with Just PostgreSQL][868] +- [Indexes and Multicolumn Indexes Visualized][893] +- [Mitigating Risk While Transitioning Databases][958] +- [Essential elements of high performance applications: SQL indexes][995] +- [Things You Should Know About Databases][1015] + +### Machine Learning + +- [A Course in Machine Learning][191] + +### Distributed Systems + +- [Notes on Distributed Systems for Beginners][192] +- [Distributed Transactions: The Icebergs of Microservices][193] +- [4 reads for distributed systems][183] +- [Class materials for a distributed systems lecture series][194] +- [Distributed systems theory for the distributed systems engineer ][195] +- [Distributed Architecture Concepts][196] +- [Considering Strategies For Idempotency Without Distributed Locking With Ben Darfler ][654] +- [A list for Distributed Systems Reading][656] +- [Distributed systems learnings in 2019][706] +- [Raft Is So Fetch: The Raft Consensus Algorithm Explained Through Mean Girls][711] +- [How do you reason about a probabilistic distributed system?][794] +- [Patterns of Distributed Systems][835] +- [Foundational Distributed Systems Papers][846] +- [Building Distributed Systems With Stateright][883] +- [Testing Distributed Systems][935] +- [Distributed Tracing: The Why, What, and How?][986] +- [Principles of Distributed Computing Lectures][988] + +### Security + +- [Cipherli.st - Strong Ciphers for Apache, nginx and Lighttpd][197] +- [Shared thoughts after 6+ years in Pentesting][198] +- [Hacking with Python: 6 best online courses for ethical hackers][671] +- [Manage passwords with openssl(1) and oathtool(1)][716] + + +### Docker/Containers + +- [Docker orchestration | chrisbarra.me][201] +- [Docker for Beginners][202] +- [Docker for your users - Introducing user namespace][203] +- [GitHub - hobby-kube/guide: Kubernetes clusters for the hobbyist.][204] +- [Teaching Kubernetes - Slashdeploy Blog][205] +- [Kubernetes Playground][206] +- [Kubernetes By Example][207] +- [Docker and Node][208] +- [Docker ARG, ENV and .env - a Complete Guide][209] +- [Bootstrap Kubernetes the hard way on Google Cloud Platform. No scripts.][210] +- [Kubernetes: Getting Started][400] +- [Docker for Python Apps][414] +- [Revisting using Docker][420] +- [Docker Containers on Desktop - Jessie Frazelle][477] +- [One-shot Containers on Docker Swarm][479] +- [Getting Started with Docker Secrets][480] +- [My Love Hate Relationship with Docker and Container Orchestration Systems][491] +- [Log Management for Docker Swarm with ELK Stack][498] +- [Monitoring Docker Swarm with cAdvisor, InfluxDB and Grafana][499] +- [Multi-Stage Dockerfiles and Python Virtualenvs][595] +- [A review of the official Dockerfile best practices: good, bad, and insecure][627] +- [From 30 to 230 Docker containers per host][643] +- [Kubernetes Academy][650] +- [How to deploy on remote Docker hosts with docker-compose][699] +- [Building containers without Docker][705] +- [You don't need an image to run a container][755] +- [Learning K8S: Keep it simple][767] +- ["Cloud-like" Infrastructure at Home - Part 1: LoadBalancers on the Metal][784] +- [Container networking is simple][810] +- [How are docker images built? A look into the Linux overlay file-systems and the OCI specification ][814] +- [Use Node.js with Docker and Docker Compose to improve DX][828] +- [Best Practices Around Production Ready Web Apps with Docker Compose][884] +- [File Permissions: the painful side of Docker][886] +- [Katacontainers: The Speed of Containers, the Security of VMs][887] +- [Run multiple services in a container][899] +- [Podman in Linux][900] +- [Migrating from Docker to Podman][905] +- [Everything useful I know about kubectl][916] +- [Docker Mastery for Node.js][931] +- [Skopeo: CLI for image operations and image repositories][940] +- [How to mount Docker volume along with subfolders on the host?][951] +- [LXC vs Docker: Which Container Platform Is Right for You?][977] + +### Elixir/Erlang + +- [How Supervisors Work][212] +- [Stuff Goes Bad: Erlang in Anger][213] +- [How Discord Scaled Elixir to 5,000,000 Concurrent Users][214] +- [Learn You Some Erlang for Great Good!][215] +- [Elixir School][216] +- [Joy of Elixir][217] +- [ElixirCasts - Elixir and Phoenix Screencasts][218] + +### Git + +- [Learn Git Branching Interactive][219] +- [Build Git Learn Git][220] +- [Multiple SSH for Git][221] + +### Javascript + +- [A re-introduction to JavaScript (JS tutorial)][222] +- [Prototypes are Objects (and why that matters)][223] +- [plainJS - The Vanilla JavaScript Repository][224] +- [Javascript The Right Way][225] +- [Siema - Lightweight and simple carousel with no dependencies][226] +- [You might not need jQuery][227] +- [Modern Javascript: Everything you missed over the last 10 years][890] + +### Raspberry Pi + +- [Raspberry Pi WiFi Configuration][231] +- [Raspberry Pi Wifi Configure WPA1 with wpa_supplicant][232] +- [Raspberry Pi Pinouts][233] +- [Mmm... Pi-hole...][623] + +### Linux + +- [.htaccess Tutorial][234] +- [Filesystem Hierarchy Standard][235] +- [Linux Filesystem Tour][236] +- [DNS Tools and Bind Tricks][237] +- [USE Method: Linux Performance Checklist][238] +- [NGINX Tutorial: Developing Modules][239] +- [The TTY demystified][240] +- [htaccess snippets][241] +- [Basics of the Unix Philosophy][242] +- [Linux Insides][243] +- [Unix Toolbox][244] +- [MIT PGP Key Server][245] +- [Makefile Tutorial by Example][246] +- [Operating Systems: Three Easy Pieces][247] +- [Unix as IDE Archives - Arabesque][248] +- [HAproxy in the era of Microservices][249] +- [Multimedia on Linux Command Line][250] +- [Linux Performance Analysis Netflix][251] +- [Top 10 DTrace scripts for Mac OS X][252] +- [Linux Performance][253] +- [Linux Journey (Linux Fu)][254] +- [Writing my first shellcode][255] +- [Reverse Engineering for beginners][256] +- [Understanding Consensus and Paxos][257] +- [Nginx Caching][258] +- [Understanding Nginx HTTP Proxying, Load Balancing, Buffering, and Caching][259] +- [Things to learn about Linux][260] +- [Learn from your attackers][261] +- [htop explained][262] +- [systemd Sucks, Long Live systemd][263] +- [How to build your own CDN for $25 in 1 Hour on DigitalOcean][264] +- [Make files not war: makefiles on my own terms][265] +- [The Collapse of the UNIX Philosophy][266] +- [SSL on nginx][267] +- [SSL Nginx/apache Generator][268] +- [SSL Server Test (Powered by Qualys SSL Labs)][269] +- [SPDYCheck: Testing Websites for SPDY Support][270] +- [Linux tracing systems & how they fit together - Julia Evans][271] +- [Give me 15 minutes and I'll change your view of Linux tracing][272] +- [Command Line Fu. Best linux commands][273] +- [GPG/PGP Basics][274] +- [Jessie Frazelle's Blog: Home Lab is the Dopest Lab][275] +- [Search the RPM repository on rpmfind.net][276] +- [RPM Fusion - RPM Fusion][277] +- [Package Manager CheatSheet][278] +- [Pacman comands vs apt and DNF][279] +- [How to Install Arch Linux complete steps][280] +- [Configuring GRUB to boot the right kernel after an upgrade update][281] +- [unixorn/awesome-zsh-plugins: A collection of ZSH frameworks, plugins & themes inspired by the various awesome list collections out there.][282] +- [Kernel newbies][283] +- [FreeBSD Handbook][394] +- [packetlife.net/media/library/13/Wireshark_Display_Filters.pdf][228] +- [Squid Transparent Proxy][229] +- [How to install Kali Linux 1 0 7 on Virtual Box properly][230] +- [Hints for writing unix tools][441] +- [More hints for writing unix tools][437] +- [Daemonizing a Process in Linux][438] +- [Process Groups and Sessions][439] +- [Linux Server Hardening][445] +- [Lynis: Server Hardening Audit Tool][446] +- [Reverse Engineering for Beginners][454] +- [Anatomy of Linux DNS lookup Part III][456] +- [Idiots guide to installing Arch on Lenovo Carbon][461] +- [Where vim came from][466] +- [The pfSense Book][467] +- [Ripping audio cds to flac and mp3 with abcde][475] +- [TCP Dump 101][476] +- [Systemd: Rethinking PID 1][482] +- [Video: Launchd: One Program to Rule them all][486] +- [How Linux Creates Sockets][507] +- [Moving from Gnome Desktop to i3 window manager on Arch Linux][530] +- [Making the best of MacBook Air touchpad on Ubuntu][548] +- [Operating Systems Development for Dummies][555] +- [Everyday Use of GNU GUIX][556] +- [Write your own Virtual Machine][559] +- [RE guide for beginners: Methodology and tools][568] +- [Adding Glue to a Desktop Environment][575] +- [Learn Linux performance by reading nmon code][580] +- [Makefiles, Best Practices ][584] +- [Dotfile Madness][585] +- [Linux Performance: Why You Should Almost Always Add Swap Space][604] +- [The 101 of ELF files on Linux: Understanding and Analysis][610] +- [Killing a process and all of its descendants][641] +- [Sampler. Visualization for any shell command.][642] +- [Syslog : The Complete System Administrator Guide][646] +- [A deep dive into Linux Namespaces][647] +- [My i3 Window Manager Setup][649] +- [Linux Pressure Stall Information (PSI) by Example][659] +- [Xplain: Explanations for the X11 window system][665] +- [Varnish Authentication Telnet][667] +- [Remapping mouse buttons to keyboard keys][670] +- [A Surprisingly Underappreciated Unix Automation Tool][679] +- [How Unix Works: Become a Better Software Engineer][685] +- [Creating Sockets on Linux][688] +- [PulseAudio under the hood][704] +- [Nightmare: Intro to binary exploitation / reverse engineering course][714] +- [Manage Contacts the Unix Way][718] +- [Linux Kernel Teaching][719] +- [Automating the Creation of QEMU Archlinux Images from Scratch][742] +- [Crontab Guru][804] +- [Introduction to Linux Control Groups (cgroups) (Video)][811] +- [Getting Better at Linux with 10 mini-projects][817] +- [Making Sense of The Audio Stack on Unix][818] +- [Software Distrobutions And Their Roles Today][825] +- [My Homelab Build][880] +- [Unix Syscalls][906] +- [Avoiding complexity with systemd][918] +- [I introduced my 5-year-old and 2-year-old to startx and xmonad. They're DELIGHTED!][921] +- [How X Window Managers Work, And How To Write One (Part I)][922] +- [Auto-restart a crashed service in systemd][928] +- [Systemd Playground][929] +- [2022: My High End Linux PC][939] +- [Make Systemd Spawn N number of processes][941] +- [Implementing Serverless with rootless Podman and Systemd][942] +- [Systemd for Developers: Socket Activation][943] +- [Systemd: 10 Years Later][944] +- [Nested KVM / QEMU / libvirt Virtualization on Ubuntu][952] +- [Configuring default applications for xdg-open][970] +- [Encrypted Cloud Backup: BorgBackup, Rclone, and Backblaze B2][979] +- [An opinionated guide on how to reverse engineer software, part 1][920] + +### Shell + +- [Explainshell][284] +- [Shell Programming Example][285] +- [Shell Command Examples][286] +- [Bash Styling][287] +- [Defensive BASH programming][288] +- [Awk in 20 Minutes][289] +- [Correctly using Filenames and Pathnames][290] +- [The Bash Academy][291] +- [Command Line Styles][292] +- [Software for a command line world][293] +- [sshuttle: VPN meets SSH][294] +- [TCPDump Tutorial][295] +- [Writing systemd Units][296] +- [Terminals Quirks][297] +- [Advancing in the Bash Shell][298] +- [UnixTextProcessing.pdf][299] +- [Named pipes, process substitution and tee][300] +- [Use the Unofficial Bash Strict Mode][301] +- [Testing Bash applications][302] +- [Bash scripting quirks & safety tips][303] +- [How "Exit Traps" Can Make Your Bash Scripts Way More Robust And Reliable][304] +- [30 interesting commands for the Linux shell – Víctor López Ferrando][305] +- [OfflineIMAP for MUTT][306] +- [Zsh Configuration From the Ground Up][307] +- [Bash scripting cheatsheet][308] +- [Art of the Command Line][309] +- [GitHub - sharkdp/shell-functools: Functional programming tools for the shell][392] +- [Convert values between RGB hex codes and xterm-256 color codes.][393] +- [Google Style Guide][418] +- [Advanced Bash-Scripting Guide][425] +- [Bash One Lines][426] +- [SSH Agent Forwarding considered Harmful][460] +- [Save Scripts with set -euxo pipefail][526] +- [Six ways to level up your nmap game][539] +- [Comparing two 5GB JSON with JQ][544] +- [Simple, Fast, Easy Parallelism in Shell Pipelines][549] +- [Your terminal is not a terminal: An Introduction to Streams][601] +- [Seven Surprising Bash Variables][613] +- [The Tar Pipe][615] +- [How to write idempotent Bash scripts][626] +- [DIY ncurses: everything you ever wanted to know about terminals][652] +- [Pure Bash Bible][663] +- [A quick primer on dig][672] +- [Testing Dolt using Bats][724] +- [Mastering ZSH][766] +- [Bash Pitfalls][793] +- [How To User Bash Paramete Substition Like A Pro][796] +- [Sockets in your shell][797] +- [Command Line Interface Guidelines][798] +- [Shell Startup Scripts][801] +- [How to Set Environment Variables in Linux and Mac][826] +- [fzf - the basics part 1 - layout][834] +- [Better BASHing Through Technology][842] +- [An Opinionated Guide to xargs][907] +- [Useful sed][910] +- [Anatomy of a Terminal Emulator][923] +- [Shell Script Mistakes][927] +- [Data Science At The Command Line][933] +- [Bash Guide][936] +- [Modern Bash (Zsh) Scripting][937] +- [BASH Programming for Workflow Management][949] +- [Bash Best Practices: Cheatsheet][950] +- [ANSI Escape Sequences][990] +- [Write a TUI in Bash][991] +- [Introduction to the Taskfile format][1002] +- [How fast are Linux pipes anyway?][1011] +- [Plumber: CLI tool for Kafka, RabbitMQ and others][1058] + +### Go + +- [How to use interfaces in Go][635] +- [Clean Go Code][666] +- [Go Tools][675] +- [The value in Go's Simplicity][682] +- [Building a BitTorrent client from the ground up][702] +- [Writing a SQL database form scratch in Go][737] +- [Learn Go with Tests][1036] + +### SSH + +- [SSH Tricks | Servers for Hackers][310] +- [Practical Tmux][311] +- [Read The Tao of tmux | Leanpub][312] +- [SSH Examples, Tips & Tunnels][570] + +### Architecture + +- [Nginx HTTP server boilerplate configs][313] +- [High Scalability][314] +- [eduCBA | System Admin Courses][315] +- [Reading List For Designing High Scalability, High Availability, High Stability Back-End Systems Distributed Systems][386] +- [What's in a production web application][473] +- [Thundering Herds and Promises][598] +- [How is software developed at Amazon? ][602] +- [The Architecture of Open Source Applications][634] +- [Organizing architectural katas][789] +- [Segment: Introducing Centrifuge][859] +- [What is Grafana? Why Use It?][860] +- [How production engineers support global events on Facebook][861] +- [Istio as an Example of When Not to Do Microservices][862] +- [A step-by-step guide to single-spa][863] +- [A Sketch of the Biggest Idea in Software Architecture: Narrow Waists][959] +- [An In-Depth Introduction To Idempotency][960] +- [Some benefits of simple software architectures][967] +- [The Four Innovation Phases of Netflix's Trillions Scale Real-time Data Infrastructure][968] +- [Why billing systems are a nightmare for engineers][983] +- [Twelve-factor app anno 2022][987] +- [That time we unplugged a data center to test our disaster readiness][989] +- [From the Monolith to Microservices - Lessons from Google and eBay][1003] +- [Building Self-driving Kafka clusters using open source components][1021] +- [System Design Course on Github][1037] +- [Webhooks.fyi][1040] +- [Redis Explained - An Indepth Tutorial][1052] + +### NixOS/Nix + +- [Using Nixos as a router][812] +- [Site to Site WireGuard Series][819] +- [My Automagic NixOS WireGuard setup][820] +- [Nix Flakes Series][822] +- [nix.dev Opinionated guide for developers using Nix][830] +- [A Gentle Introduction to the Nix Family][831] +- [So, tell me about Nix][832] +- [nix-script][847] +- [Using Morph for deploying to Nixos][852] +- [Practical Nix Flakes][854] +- [Flakes are an obviously good thing][855] +- [Understanding Nix's String Context][891] +- [Ditch your version manager][898] +- [Migrating to Nix Flakes][902] +- [Paranoid NixOS Setup][904] +- [Python on Nix][909] +- [Devos: NixOS Template][915] +- [How to learn Nix series][919] +- [NixOS in the Cloud][924] +- [NixOS: Headless Home Assistant][926] +- [NixOS: The Ultimate Dev Environment][938] +- [Lightning-fast CI with nixbuild.net][984] +- [Nixos: Confederation][1020] +- [Converting to Flakes][1027] +- [Nix build No Chroot hack][1033] +- [How do Nix Builds Work?][1060] + +### OSX/Mac + +- [Prompt Color/Customization][316] +- [Eight Terminal Utilities Every OS X Command Line User Should Know][317] +- [Install OS X 10.10 Yosemite in VirtualBox][318] + +### PHP + +- [tpunt/PHP7-Reference · GitHub][319] +- [The 2018 Guide to Building Secure PHP Software - Paragon Initiative Enterprises Blog][320] +- [PHP was never meant to die: PHP and Golang][541] + +### Vim + +- [Learn Vimscript the Hard Way][321] +- [Vim Revisited][322] +- [Productive Vim Shortcuts][323] +- [Vim Croquet][324] +- [Vim as PHP IDE][325] +- [install macvim with lua support in homebrew][326] +- [A Simpler Vim Statusline - Blaenk Denum][327] +- [jez/vim-as-an-ide][328] +- [Vim screencasts - YouTube][329] +- [How to Do 90% of What Plugins Do (With Just Vim) - YouTube][330] +- [Bugsnag Blog - Tmux and Vim - even better together][331] +- [Tips and tricks][332] +- [Literate Vimrc - Tyler Cipriani][333] +- [12 Vim Tips][334] +- [Vim-Galore: Everything you need to know about vim][335] +- [Vim After 15 Years | Ian Langworth’s Things of Variable Interest][336] +- [Using Vim as C/C++ IDE][416] +- [How I revamped my Vim setup][596] +- [History and effective use of Vim][651] +- [Vim as a Go IDE][676] + +### Website Testing + +- [W3C Link Checker][337] +- [W3C CSS Validation][338] +- [W3C HTML Validation][339] +- [MX Lookup Tool][340] +- [intoDNS][341] + +### Frontend/Website Design + +- [Butterick’s Practical Typography][342] +- [Frontend Development Huge List Resources][343] +- [Become a Designer without school][344] +- [Scalable and Modular Architecture for CSS][345] +- [Frontend Development Performance Tips][346] +- [Advanced HTML & CSS][347] +- [Can I use (Browser Support)][348] +- [HTML5, CSS3, Javascript Tutorials][349] +- [20 Browser Apps For Designers][350] +- [Breezi - Web Design Remixer][351] +- [Subtle Patterns][352] +- [Bento - Web Development Tutorials][353] +- [Flat UI - Free User Interface Kit][354] +- [UI Patterns][355] +- [HTTP and Rest Tutorial][356] +- [Web Excel Example][357] +- [Free Bootstrap Themes][358] +- [Learning Resources For Web Designers][359] +- [Stock Photos that don't suck][360] +- [Expert JavaScript and Front-End Web Development Training Videos][361] +- [Flexbox Froggy - A game for learning CSS flexbox][362] +- [CSS Ruler][363] +- [Free Learn Grid Layout video series][364] +- [A Complete Guide to Grid | CSS-Tricks][365] +- [SassMeister | The Sass Playground!][366] +- [Foundation for Emails][367] +- [webpack-contrib/awesome-webpack: A curated list of awesome Webpack resources, libraries and tools][368] +- [A Detailed Introduction To Webpack – Smashing Magazine][369] +- [Master JavaScript Programming with 18 Open-Source Books - OSS Blog][370] +- [GRID LAYOUT - a Collection by Gabi on CodePen][371] +- [Practical Color Theory for People Who Code][372] +- [ECMAScript 6 compatibility table ES6][373] +- [JavaScripting.com - The Database of JavaScript Libraries][374] +- [JavaScript End to End Testing Framework | Cypress.io alternative to Selenium][391] +- [To www or not to www][551] + +### Windows + +- [Developer Tool List for Windows][375] +- [Ninite - Install Multiple Applications][376] + +### Cryptocurrency + +- [How Blockchain Works][397] +- [Unconfirmed Bitcoin Transactions][377] +- [Coin Market Capitalizations][378] +- [24 Hour Volume Rankings (Exchange)][379] +- [Creating Safe Smart Contracts][427] +- [Build Your First Ethereum Smart Contract][428] +- [Build Ethereum DApps by Building Zombie Game][465] +- [Everything you should know about certificates and PKI but are too afraid to ask][558] +- [Crypto 101, introductory course on cryptography][569] +- [Complete Guide to Fullstack Ethereum Development][897] + +### Privacy + +- [Prism Break: List of Secure apps][510] +- [Panopticlick: Browser Privacy Test][511] +- [Privacy Analyzer][763] +- [Browser Fingerprinting: What Is It and What Should You Do About It?][693] +- [DNS Leak Test][512] +- [Alternatives to Google Products: the Complete List][612] + +### Writing + +- [A blogging style guide][543] +- [Why does writing matter in remote work?][736] +- [Writing a Book with Pandoc, Make, and Vim][733] +- [How to write a programming book][750] +- [Writing for Software Developers][754] +- [How to write in plain English][782] +- [Writing for Engineers][1008] +- [How to Write Better with The Why, What, How Framework][1012] +- [Short stories: How much do you make? How do you sell one? How long does it take to write?][1025] +- [Good Managers Write Good][1041] + +### Finance + +- [Saving Money on International Payments as a Freelancer][734] + +### Misc + +- [PC Buying Guide][380] +- [littleBits][381] +- [Mathigon][382] +- [NSA Proofed Email | 27 months][383] +- [MTA, SPF, DKIM, PTR, WTF: a quick checklist on how to send e-mail from your self hosted domain][385] +- [Everything I've learned in 10 years of Blogging][561] +- [How to earn your Macroeconomics and Finance white belt (as a software developer)][590] +- [Advanced Investing: The Barbell Strategy for Bastards][609] +- [Per-project Postgres][630] +- [How to run live coding stream on twitch][774] +- [Massive List of 65+ Open Source Music Production Tools][769] +- [Taking my home work setup seriously][786] +- [Hopkins Poker Course][795] +- [Post-Retirement Calculator: Will My Money Survive Early Retirement?][799] +- [Up for Grabs: Explore Open Source Projects][867] +- [How To Use Your DSLR As A Webcam In Linux][892] +- [Math Problems for children from 5 ro 15][895] +- [What I Know About Cleaning and Seasoning Cast-Iron Skillets][896] +- [12ft.io Paywall remover][911] +- [Learn Accounting for Free][953] +- [WebAssembly Everywhere][1018] +- [Blue Zones: Areas where people reach age 100 at 10 times greater rates than in the United States][1042] +- [Shannon's Demon & How Returns Can Be Created Out Of Thin Air][1043] +- [Inflation Adjusted Total Returns][1044] + +[1]: http://jvns.ca/blog/2013/12/30/questions-im-asking-in-interviews/ +[3]: http://blog.alinelerner.com/lessons-from-a-years-worth-of-hiring-data/ +[4]: https://medium.com/@tomgoldenberg/my-google-interview-and-lessons-learned-43109881c521#.i0fwgdldh +[5]: http://blog.robertelder.org/50-interviews-with-facebook-twitter-amazon-others/ +[6]: https://medium.com/this-happened-to-me/8f381aa6bd5e +[7]: http://danluu.com/hiring-lemons/ +[8]: https://github.com/lukasz-madon/awesome-remote-job/ +[9]: https://github.com/jwasham/coding-interview-university +[10]: https://blog.usejournal.com/the-software-engineering-job-ladder-4bf70b4c24f3 +[11]: https://www.keyvalues.com/blog/how-engineers-can-stand-out-from-the-applicant-pool +[12]: https://github.com/basecamp/handbook +[13]: https://blog.samaltman.com/productivity +[14]: https://archive.ph/Bbqne +[15]: https://medium.com/the-mission/10-000-hours-with-claude-shannon-12-lessons-on-life-and-learning-from-a-genius-e8b9297bee8f +[16]: https://rework.withgoogle.com/subjects/managers/ +[17]: https://ngrok.com/ +[18]: https://github.com/wagoodman/bridgy +[19]: https://archive.ph/PeHAw +[20]: http://www.boilrplate.com/ +[21]: http://overapi.com/ +[22]: https://cookiecutter.readthedocs.io/en/latest/advanced/hooks.html +[23]: https://www.kennethreitz.org/essays/repository-structure-and-python +[25]: http://samyzaf.com/braude/PYTHON/tutorials/Python_coding_style.pdf +[26]: http://python-history.blogspot.ca/2010/06/method-resolution-order.html +[27]: https://help.dreamhost.com/hc/en-us/articles/115000702772-Installing-a-custom-version-of-Python-3 +[28]: http://www.djangobook.com +[29]: http://www.gettingstartedwithdjango.com/ +[30]: http://learnpythonthehardway.org/ +[31]: http://automatetheboringstuff.com/ +[32]: http://www.toptal.com/python/python-class-attributes-an-overly-thorough-guide +[33]: http://tech.magnetic.com/2015/05/optimize-python-with-closures.html +[34]: http://ruslanspivak.com/lsbaws-part2/ +[35]: http://www.velvetcache.org/2010/03/01/looking-up-words-in-a-dictionary-using-python +[36]: http://www.fullstackpython.com/flask.html +[37]: https://realpython.com/blog/python/kickstarting-flask-on-ubuntu-setup-and-deployment/ +[38]: https://nylas.com/blog/packaging-deploying-python +[39]: http://book.pythontips.com/en/latest/ +[40]: http://simeonfranklin.com/blog/2012/jul/1/python-decorators-in-12-steps/ +[41]: http://www.devdungeon.com/content/working-binary-data-python +[42]: https://github.com/amontalenti/elements-of-python-style +[43]: https://gist.github.com/bearfrieze/a746c6f12d8bada03589 +[44]: https://realpython.com/blog/python/python-virtual-environments-a-primer/#.Vvk_XbD-AWw.hackernews +[45]: http://blog.froehlichundfrei.de/2014/11/30/my-transition-to-python3-and-pyenv-goodby-virtualenvwrapper.html +[47]: https://etscrivner.github.io/posts/2014/10/building-large-flask-apps-in-the-real-world/ +[48]: https://klibert.pl/statics/python-and-elixir/#/ +[50]: http://www.scipy-lectures.org/ +[51]: http://www.brendangregg.com/blog/2016-08-09/gdb-example-ncurses.html +[52]: https://github.com/jonathanslenders/python-prompt-toolkit +[53]: http://www.johnwittenauer.net/machine-learning-exercises-in-python-part-1/ +[54]: https://fangpenlin.com/posts/2012/08/26/good-logging-practice-in-python/ +[55]: http://www.discoversdk.com/blog/generators-in-python-3 +[56]: https://medium.com/@trstringer/the-easy-and-nice-way-to-do-cli-apps-in-python-5d9964dc950d#.ljorjv3ku +[57]: https://wiki.python.org/moin/PythonDecoratorLibrary#Logging_decorator_with_specified_logger_.28or_default.29 +[58]: https://www.pythonsheets.com/ +[59]: https://regex101.com/ +[60]: http://cramer.io/2013/06/27/serving-python-web-applications +[61]: https://d0ugal.github.io/pynd/ +[62]: https://github.com/springload/awesome-wagtail +[63]: https://semaphoreci.com/community/tutorials/getting-started-with-mocking-in-python +[64]: https://github.com/keon/algorithms +[65]: https://djangopackages.org/grids/ +[66]: http://www.cdrf.co/ +[67]: https://www.youtube.com/watch?v=tkwZ1jG3XgA +[68]: https://ccbv.co.uk/ +[69]: http://uwsgi-docs-additions.readthedocs.io/en/latest/ +[70]: http://sedimental.org/the_packaging_gradient.html +[71]: https://denibertovic.com/posts/celery-best-practices/ +[72]: https://github.com/octoenergy/styleguide/blob/master/python.md +[73]: http://dizballanze.com/django-project-optimization-part-1/ +[74]: https://pythonprogramminglanguage.com/text-to-speech/ +[75]: https://www.digitalocean.com/community/questions/run-django-python-2-and-python-3-apps-with-uwsgi-and-nginx-on-same-server +[76]: http://www.eidel.io/2017/07/10/dockerizing-django-uwsgi-postgres/ +[77]: https://medium.com/technology-nineleaps/abstract-base-classes-in-python-2f8366c140a2 +[78]: http://kanoki.org/2017/07/16/pandas-in-a-nutshell/ +[79]: https://snarky.ca/how-the-heck-does-async-await-work-in-python-3-5/ +[80]: https://www.git-pull.com/code_explorer/django-vs-flask.html +[81]: https://github.com/donnemartin/interactive-coding-challenges +[82]: http://lucasg.github.io/2017/07/21/Porting-an-historic-Python2-module-into-Python3/ +[83]: http://amir.rachum.com/blog/2017/07/28/python-entry-points/ +[84]: https://github.com/ActiveState/code/tree/master/recipes/Python +[85]: https://www.electricmonk.nl/log/2017/08/06/understanding-pythons-logging-module/ +[86]: https://codewithoutrules.com/2017/08/10/python-decorators/ +[87]: https://codewithoutrules.com/2017/08/16/concurrency-python/ +[88]: https://jakevdp.github.io/PythonDataScienceHandbook/ +[89]: https://github.com/metachris/logzero +[90]: http://strftime.org/ +[91]: https://www.dataquest.io/blog/making-538-plots/ +[92]: https://pyformat.info/ +[93]: http://www.learndatasci.com/python-finance-part-3-moving-average-trading-strategy/ +[94]: https://pythonprogramming.net/finance-programming-python-zipline-quantopian-intro/ +[95]: http://cdf.9vo.lt/ +[96]: https://github.com/kennethreitz/setup.py +[97]: http://mitchel.me/2017/django-service-objects/ +[98]: https://www.ynonperek.com/2017/09/21/python-exercises/ +[99]: http://testandcode.com/ +[100]: http://journalpanic.com/post/wrapping-subprocesses-in-asyncio/ +[101]: https://hackernoon.com/learn-blockchains-by-building-one-117428612f46 +[102]: https://medium.com/zeitcode/django-middlewares-and-the-request-response-cycle-fcbf8efb903f +[103]: http://tinaja.computer/2017/10/27/gspread.html +[104]: https://github.com/faif/python-patterns +[105]: https://fkromer.github.io/python-pattern-references/design/ +[106]: https://archive.ph/BnW9I +[107]: https://devel.tech/tips/n/pIpEnvNh/pipenv/ +[108]: https://snarky.ca/a-tutorial-on-python-package-building/ +[109]: https://www.youtube.com/playlist?list=PLzUGFf4GhXBLEQsoOfLzhH6JKybt8I5Ec +[110]: https://github.com/norvig/pytudes +[111]: http://pbpython.com/pathlib-intro.html +[112]: https://www.datasciencecentral.com/profiles/blogs/implementing-a-neural-network-from-scratch-in-python-an +[113]: https://lintlyci.github.io/Flake8Rules/ +[114]: https://hynek.me/articles/python-app-deployment-with-native-packages/ +[115]: http://dan.bravender.net/2012/5/11/git-based_fabric_deploys_are_awesome.html +[116]: http://akaptur.com/blog/2013/08/14/python-bytecode-fun-with-dis/ +[117]: http://www.paulox.net/2017/12/22/full-text-search-in-django-with-postgresql/ +[118]: https://malramsay.com/post/perils-of-packaging/ +[119]: http://charlesleifer.com/blog/building-a-simple-redis-server-with-python/ +[120]: https://rushter.com/blog/pickle-serialization-internals/ +[121]: http://python-patterns.guide/ +[122]: https://medium.com/@hakibenita/9-django-tips-for-working-with-databases-beba787ed7d3 +[123]: https://simpleisbetterthancomplex.com/tutorial/2018/01/29/how-to-implement-dependent-or-chained-dropdown-list-with-django.html +[124]: https://books.agiliq.com/projects/django-admin-cookbook/en/latest/ +[125]: http://tech.octopus.energy/news/2016/05/05/django-elb-health-checks.html +[126]: https://hynek.me/articles/sharing-your-labor-of-love-pypi-quick-and-dirty/ +[127]: https://medium.com/@alairock/asyncio-basics-in-python-29bf30cf254f +[128]: https://jacobian.org/writing/when-pypi-goes-down/ +[129]: https://glyph.twistedmatrix.com/2016/08/attrs.html +[130]: https://able.bio/rhett/lessons-learned-from-migrating-to-python-3--27jsj82 +[131]: https://realpython.com/python-modules-packages/ +[132]: https://www.b-list.org/weblog/2018/apr/25/lets-talk-about-packages/ +[133]: https://jalammar.github.io/visualizing-pandas-pivoting-and-reshaping/ +[134]: https://testdriven.io/developing-an-asynchronous-task-queue-in-python +[135]: https://realpython.com/python-exceptions/ +[136]: https://libcloud.apache.org/ +[137]: https://gist.github.com/JonasGroeger/1b5155e461036b557d0fb4b3307e1e75 +[138]: https://linuxcluster.wordpress.com/2012/06/11/automate-pushing-of-ssh-copy-id-to-multiple-servers/ +[139]: http://docs.openstack.org/infra/system-config/jjb.html +[140]: https://wiki.jenkins-ci.org/display/JENKINS/JobConfigHistory+Plugin +[141]: http://aarvik.dk/linux-monitoring-tools-suggestions-from-hacker-news/ +[142]: http://www.linuxtraining.co.uk/download/new_linux_course_modules.pdf +[143]: http://www.opsschool.org/en/latest/ +[144]: https://blog.gruntwork.io/why-we-use-terraform-and-not-chef-puppet-ansible-saltstack-or-cloudformation-7989dad2865c +[145]: https://www.expeditedssl.com/aws-in-plain-english +[146]: https://github.com/Fewbytes/rubber-docker +[147]: https://blog.gruntwork.io/a-comprehensive-guide-to-terraform-b3d32832baca +[148]: https://felixangell.com/blog/virtual-machine-in-c +[149]: https://github.com/btrask/stronglink/blob/master/SUBSTANCE.md +[150]: https://matt.sh/howto-c +[151]: http://brennan.io/2015/01/16/write-a-shell-in-c/ +[152]: http://arjunsreedharan.org/post/148675821737/write-a-simple-memory-allocator +[153]: http://hondu.co/blog/write-a-strace-and-gdb +[154]: https://beej.us/guide/bgc/ +[155]: http://cslibrary.stanford.edu/101/ +[156]: http://oclint.org/ +[157]: https://cdecl.org/ +[158]: https://www.enlightenment.org/docs/c/start +[159]: http://www.c-faq.com/ +[160]: https://medium.com/tech-talk/d5f8051afce2 +[161]: http://software-carpentry.org/ +[162]: http://bigocheatsheet.com/ +[163]: http://www.mjt.me.uk/posts/falsehoods-programmers-believe-about-addresses/ +[164]: https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md +[165]: http://dfir.org/?q=node/8/ +[166]: http://matt.might.net/articles/what-cs-majors-should-know/ +[167]: http://kevinlondon.com/2015/05/05/code-review-best-practices.html +[168]: http://hackershelf.com/browse/?popular=1 +[169]: http://www.algorithmist.com/index.php/Main_Page +[170]: http://ferd.ca/the-little-printf.html +[171]: http://firstround.com/review/forget-technical-debt-heres-how-to-build-technical-wealth/?_hsenc=p2ANqtz--kPw8wFvKVfV1GLca96jgrr2yWHIGRoFkCjsYzB1eY_6CWIsHTOIZp_ion68LPMGyONheMaUCanW0tA7FmqK5LF1XT6A&_hsmi=32846075 +[172]: https://systemswe.love/videos +[173]: https://tuhdo.github.io/os01/ +[174]: https://www.programmableweb.com/news/why-messaging-queues-suck/analysis/2017/02/13 +[175]: https://github.com/kdeldycke/awesome-falsehood +[176]: https://www.joelonsoftware.com/2003/10/08/the-absolute-minimum-every-software-developer-absolutely-positively-must-know-about-unicode-and-character-sets-no-excuses/ +[177]: https://github.com/donnemartin/system-design-primer +[178]: https://12factor.net/ +[179]: https://gist.github.com/rondy/af1dee1d28c02e9a225ae55da2674a6f +[182]: http://www.catonmat.net/series/my-top-100-science-programming-computer-books +[183]: https://blog.separateconcerns.com/2015-07-07-four-easy-reads-distsys.html +[185]: http://gameprogrammingpatterns.com/contents.html +[186]: http://coding-geek.com/how-databases-work/ +[187]: http://visualgo.net/ +[188]: https://medium.baqend.com/nosql-databases-a-survey-and-decision-guidance-ea7823a822d#.cxgl1igl1 +[189]: http://www.interdb.jp/pg/index.html +[190]: https://blog.codeship.com/tuning-postgresql-with-pgbench/ +[191]: http://ciml.info/ +[192]: https://www.somethingsimilar.com/2013/01/14/notes-on-distributed-systems-for-young-bloods/ +[193]: http://www.grahamlea.com/2016/08/distributed-transactions-microservices-icebergs/ +[194]: https://github.com/aphyr/distsys-class +[195]: http://the-paper-trail.org/blog/distributed-systems-theory-for-the-distributed-systems-engineer/ +[196]: http://blog.pragmaticengineer.com/distributed-architecture-concepts-i-have-learned-while-building-payments-systems/ +[197]: https://cipherli.st/ +[198]: https://0x00sec.org/t/shared-thoughts-after-6-years-in-pentesting/2492 +[199]: https://www.charlesproxy.com/ +[200]: https://github.com/ranger/ranger/wiki/Official-user-guide +[201]: https://chrisbarra.xyz/posts/docker-orchestration/ +[202]: http://prakhar.me/docker-curriculum/ +[203]: https://blog.yadutaf.fr/2016/04/14/docker-for-your-users-introducing-user-namespace/ +[204]: https://github.com/hobby-kube/guide +[205]: http://blog.slashdeploy.com/2017/02/19/teaching-kubernetes/ +[206]: http://play-with-k8s.com/ +[207]: http://kubernetesbyexample.com/ +[208]: https://derickbailey.com/2017/06/07/docker-javascript-developers-site-training/ +[209]: https://vsupalov.com/docker-arg-env-variable-guide/ +[210]: https://github.com/kelseyhightower/kubernetes-the-hard-way +[211]: https://chrisshort.net/devops-readme.md/ +[212]: https://jbodah.github.io/blog/2016/11/18/supervisors-work/ +[213]: https://www.erlang-in-anger.com/ +[214]: https://blog.discordapp.com/scaling-elixir-f9b8e1e7c29b +[215]: http://learnyousomeerlang.com/content +[216]: https://elixirschool.com/en/ +[217]: https://joyofelixir.com/ +[218]: https://elixircasts.io/ +[219]: http://pcottle.github.io/learnGitBranching/ +[220]: http://kushagragour.in/blog/2014/01/build-git-learn-git/ +[221]: https://confluence.atlassian.com/pages/viewpage.action?pageId=271943168 +[222]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript +[223]: http://raganwald.com/2015/06/10/mixins.html +[224]: https://plainjs.com/ +[225]: http://jstherightway.org/ +[226]: https://pawelgrzybek.com/siema/ +[227]: http://youmightnotneedjquery.com/?hn +[228]: http://packetlife.net/media/library/13/Wireshark_Display_Filters.pdf +[229]: http://www.cyberciti.biz/tips/linux-setup-transparent-proxy-squid-howto.html +[230]: https://www.youtube.com/watch?v=2Lpz91EkgnA +[231]: http://raspberry-at-home.com/wifi-configuration/ +[232]: http://kerneldriver.wordpress.com/2012/10/21/configuring-wpa2-using-wpa_supplicant-on-the-raspberry-pi/ +[233]: https://pinout.xyz/ +[234]: http://net.tutsplus.com/tutorials/other/the-ultimate-guide-to-htaccess-files/ +[235]: http://www.pathname.com/fhs/ +[236]: http://tuxradar.com/content/take-linux-filesystem-tour/ +[237]: http://strotmann.de/~cas/bind-tricks-talk/ +[238]: http://www.brendangregg.com/USEmethod/use-linux.html +[239]: http://www.airpair.com/nginx/extending-nginx-tutorial +[240]: http://www.linusakesson.net/programming/tty/index.php +[241]: https://github.com/phanan/htaccess +[242]: http://www.catb.org/esr/writings/taoup/html/ch01s06.html +[243]: https://github.com/0xAX/linux-insides +[244]: http://cb.vu/unixtoolbox.xhtml +[245]: http://pgp.mit.edu/ +[246]: http://makefiletutorial.com/ +[247]: http://pages.cs.wisc.edu/~remzi/OSTEP/ +[248]: http://blog.sanctum.geek.nz/series/unix-as-ide/ +[249]: http://47ron.in/blog/2015/10/23/haproxy-in-the-era-of-microservices.html +[250]: https://sandilands.info/sgordon/multimedia-on-linux-command-line +[251]: http://techblog.netflix.com/2015/11/linux-performance-analysis-in-60s.html +[252]: http://dtrace.org/blogs/brendan/2011/10/10/top-10-dtrace-scripts-for-mac-os-x/ +[253]: http://www.brendangregg.com/linuxperf.html +[254]: https://linuxjourney.com/ +[255]: https://0day.work/writing-my-first-shellcode-iptables-p-input-accept/ +[256]: https://github.com/dennis714/RE-for-beginners/blob/master/README.md +[257]: http://ifeanyi.co/posts/understanding-consensus/ +[258]: https://serversforhackers.com/nginx-caching +[259]: https://www.digitalocean.com/community/tutorials/understanding-nginx-http-proxying-load-balancing-buffering-and-caching +[260]: https://jvns.ca/blog/2016/11/21/things-to-learn-about-linux/ +[261]: https://www.robertputt.co.uk/learn-from-your-attackers-ssh-honeypot.html +[262]: https://peteris.rocks/blog/htop/ +[263]: https://naftuli.wtf/2017/01/12/systemd-is-awful/ +[264]: https://www.scalescale.com/rolling-your-own-cdn-build-a-3-continent-cdn-for-25-in-1-hour/ +[265]: https://fabianstumpf.de/articles/makefiles.htm +[266]: https://kukuruku.co/post/the-collapse-of-the-unix-philosophy/ +[267]: https://gauntface.com/blog/2014/09/09/your-guide-to-ssl-on-nginx +[268]: https://mozilla.github.io/server-side-tls/ssl-config-generator/ +[269]: https://www.ssllabs.com/ssltest/index.html +[270]: https://spdycheck.org/ +[271]: https://jvns.ca/blog/2017/07/05/linux-tracing-systems/ +[272]: http://www.brendangregg.com/blog/2016-12-27/linux-tracing-in-15-minutes.html +[273]: http://www.commandlinefu.com/commands/browse/sort-by-votes +[274]: http://aplawrence.com/Basics/gpg.html +[275]: https://blog.jessfraz.com/post/home-lab-is-the-dopest-lab/ +[276]: http://rpmfind.net/linux/rpm2html/search.php +[277]: https://rpmfusion.org/ +[278]: https://distrowatch.com/dwres.php?resource=package-management +[279]: https://wiki.archlinux.org/index.php/Pacman/Rosetta +[280]: https://computingforgeeks.com/install-arch-linux/ +[281]: https://statusq.org/archives/2012/10/24/4584/ +[282]: https://github.com/unixorn/awesome-zsh-plugins +[283]: https://kernelnewbies.org +[284]: http://explainshell.com/ +[285]: http://matt.might.net/articles/bash-by-example/ +[286]: http://linux-commands-examples.com/ +[287]: http://misc.flogisoft.com/bash/tip_colors_and_formatting +[288]: http://www.kfirlavi.com/blog/2012/11/14/defensive-bash-programming/ +[289]: http://ferd.ca/awk-in-20-minutes.html +[290]: http://www.dwheeler.com/essays/filenames-in-shell.html +[291]: http://www.bash.academy/ +[292]: http://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html +[293]: http://tim.thechases.com/posts/cli/software-for-a-command-line-world/ +[294]: https://github.com/apenwarr/sshuttle +[295]: http://jvns.ca/blog/2016/03/17/tcpdump-is-amazing/ +[296]: http://hokstadconsulting.com/devops/writing-systemd-units +[297]: https://catern.com/posts/terminal_quirks.html +[298]: http://samrowe.com/wordpress/advancing-in-the-bash-shell/ +[299]: http://www.oreilly.com/openbook/utp/UnixTextProcessing.pdf +[300]: https://kaushikghose.wordpress.com/2016/10/27/named-pipes-process-substitution-and-tee/ +[301]: http://redsymbol.net/articles/unofficial-bash-strict-mode/ +[302]: https://medium.com/wemake-services/testing-bash-applications-85512e7fe2de +[303]: https://jvns.ca/blog/2017/03/26/bash-quirks/ +[304]: http://redsymbol.net/articles/bash-exit-traps/ +[305]: https://www.lopezferrando.com/30-interesting-shell-commands/ +[306]: https://wiki.archlinux.org/index.php/OfflineIMAP +[307]: https://zanshin.net/2013/02/02/zsh-configuration-from-the-ground-up/ +[308]: https://devhints.io/bash +[309]: https://github.com/jlevy/the-art-of-command-line +[310]: https://serversforhackers.com/c/ssh-tricks +[311]: https://mutelight.org/practical-tmux +[312]: https://leanpub.com/the-tao-of-tmux/read +[313]: https://github.com/h5bp/server-configs-nginx +[314]: http://highscalability.com/;jsessionid=743E840B2729E0A372DE4C9E044B9280.v5-web018 +[315]: https://www.educba.com/my-courses/index-bundle.php# +[316]: http://blog.taylormcgann.com/tag/prompt-color/ +[317]: http://www.mitchchn.me/2014/os-x-terminal/ +[318]: http://blog.frd.mn/install-os-x-10-10-yosemite-in-virtualbox/ +[319]: https://github.com/tpunt/PHP7-Reference#fixes-to-foreachs-behaviour +[320]: https://paragonie.com/blog/2017/12/2018-guide-building-secure-php-software +[321]: http://learnvimscriptthehardway.stevelosh.com/?published +[322]: http://mislav.uniqpath.com/2011/12/vim-revisited/ +[323]: http://stackoverflow.com/questions/1218390/what-is-your-most-productive-shortcut-with-vim/ +[324]: http://www.drbunsen.org/vim-croquet/ +[325]: http://blog.joncairns.com/2012/05/using-vim-as-a-php-ide/ +[326]: http://www.codeography.com/2013/06/11/install-macvim-with-lua-support.html +[327]: http://www.blaenkdenum.com/posts/a-simpler-vim-statusline/ +[328]: https://github.com/jez/vim-as-an-ide +[329]: https://www.youtube.com/playlist?list=PLwJS-G75vM7kFO-yUkyNphxSIdbi_1NKX +[330]: https://www.youtube.com/watch?v=XA2WjJbmmoM +[331]: https://blog.bugsnag.com/tmux-and-vim/ +[332]: https://bluz71.github.io/2017/05/15/vim-tips-tricks.html +[333]: https://tylercipriani.com/blog/2017/06/14/literate-vimrc/ +[334]: https://dalibornasevic.com/posts/43-12-vim-tips +[335]: https://github.com/mhinz/vim-galore +[336]: https://statico.github.io/vim3.html +[337]: http://validator.w3.org/checklink +[338]: http://jigsaw.w3.org/css-validator/ +[339]: http://validator.w3.org/ +[340]: http://mxtoolbox.com/ +[341]: http://www.intodns.com/ +[342]: http://practicaltypography.com/ +[343]: https://gist.github.com/dypsilon/5819504 +[344]: http://karenx.com/blog/how-to-become-a-designer-without-going-to-design-school/ +[345]: http://smacss.com/ +[346]: http://csswizardry.com/2013/01/front-end-performance-for-web-designers-and-front-end-developers/ +[347]: http://learn.shayhowe.com/advanced-html-css/ +[348]: http://caniuse.com/ +[349]: http://thecodeplayer.com/ +[350]: http://designwoop.com/2012/07/20-super-useful-browser-apps-for-designers/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+designwoop+%28Design+Woop%29 +[351]: http://breezi.com/ +[352]: http://subtlepatterns.com/ +[353]: http://www.bentobox.io/ +[354]: http://designmodo.github.io/Flat-UI/ +[355]: http://ui-patterns.com/ +[356]: http://net.tutsplus.com/tutorials/other/a-beginners-introduction-to-http-and-rest/ +[357]: http://jsfiddle.net/ondras/hYfN3/ +[358]: http://www.blacktie.co/ +[359]: http://www.smashingmagazine.com/2014/02/14/learning-resources-roundup/ +[360]: https://medium.com/design-ux/62ae4bcbe01b +[361]: https://frontendmasters.com/#samples +[362]: http://flexboxfroggy.com/ +[363]: http://katydecorah.com/css-ruler/ +[364]: http://gridbyexample.com/video/ +[365]: https://css-tricks.com/snippets/css/complete-guide-grid/ +[366]: http://www.sassmeister.com/gist/5bbe8480c48e2fc10ab5 +[367]: http://foundation.zurb.com/emails/docs/ +[368]: https://github.com/webpack-contrib/awesome-webpack +[369]: https://www.smashingmagazine.com/2017/02/a-detailed-introduction-to-webpack/ +[370]: https://www.ossblog.org/master-javascript-programming-with-open-source-books/ +[371]: https://codepen.io/collection/DgwjNL/ +[372]: https://tallys.github.io/color-theory/ +[373]: https://kangax.github.io/compat-table/es6/ +[374]: https://www.javascripting.com/ +[375]: http://www.hanselman.com/blog/ScottHanselmans2014UltimateDeveloperAndPowerUsersToolListForWindows.aspx +[376]: http://ninite.com/ +[377]: https://blockchain.info/unconfirmed-transactions +[378]: https://coinmarketcap.com/coins/ +[379]: https://coinmarketcap.com/exchanges/volume/24-hour/ +[380]: http://www.logicalincrements.com/ +[381]: http://littlebits.cc/ +[382]: http://world.mathigon.org/ +[383]: http://www.27months.com/2013/10/its-always-sunny-in-iceland-or-how-i-nsa-proofed-my-email/ +[385]: https://kimonote.com/@mildbyte/mta-spf-dkim-ptr-wtf-a-quick-checklist-on-how-to-send-e-mail-from-your-domain-3020/ +[386]: https://github.com/binhnguyennus/awesome-scalability +[387]: https://github.com/zeeshanu/learn-regex +[388]: http://mnx.io/blog/a-proper-server-naming-scheme/ +[389]: https://www.youtube.com/watch?v=HyznrdDSSGM&feature=youtu.be +[390]: https://github.com/kamranahmedse/design-patterns-for-humans/blob/master/README.md +[391]: https://www.cypress.io/ +[392]: https://github.com/sharkdp/shell-functools +[393]: https://gist.github.com/MicahElliott/719710 +[394]: https://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/ +[395]: https://www.kitchensoap.com/2012/10/25/on-being-a-senior-engineer/ +[396]: http://www.lighterra.com/papers/modernmicroprocessors/ +[397]: https://anders.com/blockchain/ +[398]: http://www.postgresqltutorial.com/ +[399]: https://www.pgexercises.com/ +[400]: https://chrisshort.net/kubernetes-getting-started/ +[401]: http://thebuild.com/blog/2018/01/02/a-replication-cheat-sheat/ +[402]: https://sedimental.org/glom_restructured_data.html +[404]: https://lobste.rs/ +[405]: https://news.ycombinator.com/ +[406]: https://www.discoverdev.io/ +[407]: https://hackernoon.com/12-manager-readmes-from-silicon-valleys-top-tech-companies-26588a660afe +[408]: https://www.martinfowler.com/bliki/BlueGreenDeployment.html +[409]: https://wiki.python.org/moin/PythonSpeed/PerformanceTips +[411]: https://vinta.ws/code/parallel-tasks-in-python-concurrent-futures.html +[412]: https://www.soliantconsulting.com/blog/determining-if-two-date-ranges-overlap +[413]: https://medium.com/applied-data-science/how-to-build-your-own-alphazero-ai-using-python-and-keras-7f664945c188 +[414]: https://blog.hasura.io/how-to-write-dockerfiles-for-python-web-apps-6d173842ae1d +[415]: https://linode.com/docs/development/use-a-linode-for-web-development-on-remote-devices/ +[416]: http://www.alexeyshmalko.com/2014/using-vim-as-c-cpp-ide/ +[417]: https://azeria-labs.com/the-importance-of-deep-work-the-30-hour-method-for-learning-a-new-skill/ +[418]: https://google.github.io/styleguide/shell.xml +[419]: https://realpython.com/python-data-classes/ +[420]: https://gregoryszorc.com/blog/2018/05/16/revisiting-using-docker/ +[421]: https://medium.com/@s16h/pythons-notimplemented-type-2d720137bf41 +[422]: https://about.gitlab.com/2018/05/17/eliminating-distractions-and-getting-things-done/ +[423]: http://blog.thedigitalcatonline.com/blog/2016/11/14/clean-architectures-in-python-a-step-by-step-example/ +[424]: http://nullprogram.com/blog/2018/06/10/ +[425]: http://tldp.org/LDP/abs/html/ +[426]: http://www.bashoneliners.com/ +[427]: https://muratbuffalo.blogspot.com/2018/04/paper-summary-step-by-step-towards.html +[428]: https://codeburst.io/build-your-first-ethereum-smart-contract-with-solidity-tutorial-94171d6b1c4b +[429]: http://blog.adnansiddiqi.me/getting-started-with-apache-kafka-in-python/ +[430]: https://blogs.msdn.microsoft.com/pythonengineering/2016/06/29/idiomatic-python-eafp-versus-lbyl/ +[431]: https://hackernoon.com/10-common-security-gotchas-in-python-and-how-to-avoid-them-e19fbe265e03 +[432]: https://www.bernat.tech/the-state-of-type-hints-in-python/ +[433]: https://realpython.com/python-youtube-channels/ +[434]: https://letsencrypt.org/docs/certificates-for-localhost/ +[435]: https://blog.akerl.org/2016/05/26/systemd-services-are-easy/ +[436]: https://wiki.archlinux.org/index.php/Systemd#Writing_unit_files +[437]: https://www.mariocampos.io/blog/more-unix-tools-hints/ +[438]: https://codingfreak.blogspot.com/2012/03/daemon-izing-process-in-linux.html +[439]: http://www.andy-pearce.com/blog/posts/2013/Aug/process-groups-and-sessions/ +[440]: https://medium.com/the-python-corner/the-art-of-avoiding-nested-code-ec8a780089b7 +[441]: https://monkey.org/~marius/unix-tools-hints.html +[442]: https://www.jamesbeith.co.uk/blog/how-to-structure-django-projects/ +[443]: https://rushter.com/blog/python-virtualenv/ +[444]: https://books.agiliq.com/projects/django-orm-cookbook/en/latest/introduction.html +[445]: https://www.digitalocean.com/community/questions/best-practices-for-hardening-new-sever-in-2017 +[446]: https://github.com/CISOfy/Lynis +[447]: https://www.startupschool.org/library +[448]: https://blog.plaid.com/building-an-inclusive-code-review-culture/ +[449]: https://blog.doordash.com/tips-for-building-high-quality-django-apps-at-scale-a5a25917b2b5 +[450]: https://medium.com/@jsonpify/you-dont-need-standup-9a74782517c1 +[451]: https://brandur.org/minimalism +[452]: http://www.obeythetestinggoat.com/pages/book.html +[453]: https://code.djangoproject.com/wiki/NewbieMistakes +[454]: https://www.begin.re/ +[455]: https://blog.asrpo.com/making_a_low_level_debugger +[456]: https://zwischenzugs.com/2018/07/06/anatomy-of-a-linux-dns-lookup-part-iii/ +[457]: http://buildyourownlisp.com/contents +[458]: https://leanpub.com/really-friendly-command-line-intro +[459]: https://medium.com/@henriksylvesterpedersen/you-dont-need-that-bastion-host-cd1b1717a9e7 +[460]: https://heipei.github.io/2015/02/26/SSH-Agent-Forwarding-considered-harmful/ +[461]: https://github.com/ejmg/an-idiots-guide-to-installing-arch-on-a-lenovo-carbon-x1-gen-6 +[462]: https://sudo.pagerduty.com/for_engineers/ +[463]: http://technosophos.com/2018/07/04/be-nice-and-write-stable-code.html +[464]: https://abe-winter.github.io/2018/07/31/group-mind.html +[465]: https://cryptozombies.io/ +[466]: https://twobithistory.org/2018/08/05/where-vim-came-from.html +[467]: https://www.netgate.com/docs/pfsense/book/ +[468]: https://daringtolivefully.com/ted-talks-for-lifelong-learners +[469]: https://blog.daftcode.pl/working-with-asynchronous-celery-tasks-lessons-learned-32bb7495586b +[470]: https://notamonadtutorial.com/how-to-pretend-you-have-social-skills-963ced9d8642 +[471]: https://github.com/open-guides/og-aws +[472]: https://simpleisbetterthancomplex.com/tutorial/2017/08/01/how-to-setup-amazon-s3-in-a-django-project.html +[473]: https://stephenmann.io/post/whats-in-a-production-web-application/ +[474]: http://minifesto.org/ +[475]: https://pricklytech.wordpress.com/2013/02/15/ubuntu-ripping-audio-cds-to-flac-and-mp3-with-abcde/ +[476]: https://tcpdump101.com/ +[477]: https://blog.jessfraz.com/post/docker-containers-on-the-desktop/ +[478]: https://www.nytimes.com/2018/09/01/opinion/sunday/how-make-big-decision.html +[479]: https://blog.alexellis.io/containers-on-swarm/ +[480]: https://howchoo.com/g/zwzkzduwmjy/getting-started-with-docker-secrets +[481]: https://codewithoutrules.com/2018/09/04/python-multiprocessing/ +[482]: http://0pointer.de/blog/projects/systemd.html +[483]: https://adl.io/essays/why-software-development-requires-servant-leaders/ +[484]: http://blog.interviewing.io/exactly-what-to-say-when-recruiters-ask-you-to-name-the-first-number/ +[485]: http://mcfunley.com/choose-boring-technology +[486]: https://www.youtube.com/watch?v=SjrtySM9Dns +[487]: https://dev.to/jillesvangurp/post-agile-embracing-asynchronous-processes-ifa +[488]: https://github.com/trimstray/test-your-sysadmin-skills +[489]: https://intensecrypto.org/public/ +[490]: https://austinkleon.com/2018/08/30/reading-with-a-pencil/ +[491]: https://penguindreams.org/blog/my-love-hate-relationship-with-docker-and-container-orchestration-systems/ +[492]: https://www.intercom.com/blog/run-less-software/ +[493]: https://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/ +[494]: https://www.tiptapcode.com/running-standalone-django-python-script/ +[495]: https://codeinthehole.com/tips/console-logging-to-stdout-in-django/ +[496]: https://lincolnloop.com/blog/django-logging-right-way/ +[497]: https://codeinthehole.com/tips/a-deferred-logging-file-handler-for-django/ +[498]: https://botleg.com/stories/log-management-of-docker-swarm-with-elk-stack/ +[499]: https://botleg.com/stories/monitoring-docker-swarm-with-cadvisor-influxdb-and-grafana/ +[500]: https://opensource.com/article/18/9/python-programming-book-list +[501]: https://books.goalkicker.com/ +[502]: https://www.troyhunt.com/extended-validation-certificates-are-dead/ +[503]: https://www.youtube.com/watch?v=y1tcbhWLiUM&t=2624s +[504]: https://ovid.github.io/articles/death-by-database.html +[505]: http://andrewsforge.com/article/python-new-package-landscape/ +[506]: https://chase-seibert.github.io/blog/2015/06/25/python-mocking-cookbook.html +[507]: https://ops.tips/blog/how-linux-creates-sockets/ +[508]: https://www.toptal.com/python/beginners-guide-to-concurrency-and-parallelism-in-python +[509]: http://chriskiehl.com/article/parallelism-in-one-line/ +[510]: https://prism-break.org/en/all +[511]: https://panopticlick.eff.org/ +[512]: https://www.dnsleaktest.com +[513]: https://words.steveklabnik.com/how-to-be-an-open-source-gardener +[514]: https://blog.regehr.org/archives/1393 +[515]: https://github.com/TheAlgorithms/Python/blob/master/README.md +[516]: http://www.net-intro.com +[517]: https://python-3-patterns-idioms-test.readthedocs.io/en/latest/index.html +[518]: https://tavianator.com/spawn-of-satan/ +[519]: https://build-system.fman.io/pyqt5-tutorial +[520]: https://www.7pace.com/blog/become-a-better-programmer-skills-development +[521]: https://bolinfest.github.io/opensnoop-native/#part-2-initial-foray-into-ebpf +[522]: https://queue.acm.org/detail.cfm?id=3280677 +[523]: http://guidetodatamining.com/ +[524]: https://avilpage.com/2018/05/deploying-scaling-django-channels.html +[525]: https://chezsoi.org/lucas/blog/python-modules-imports-visualization.html +[526]: https://vaneyckt.io/posts/safer_bash_scripts_with_set_euxo_pipefail/ +[527]: https://blog.qt.io/blog/2018/11/15/python-qt-3000-hours-developer-insight/ +[528]: https://blog.thecodewhisperer.com/permalink/integrated-tests-are-a-scam +[529]: https://atilanevesoncode.wordpress.com/2018/11/20/unit-testing-do-as-i-say-dont-do-as-i-do/ +[530]: https://briancaffey.github.io/2017/10/17/moving-from-gnome-to-i3-on-arch-linux.html +[531]: https://documentation.divio.com/ +[532]: https://www.youtube.com/watch?v=UmLwYLSmTSs +[533]: https://jordanbpeterson.com/books/book-list/ +[534]: https://shalabh.com/programmable-systems/systems-not-programs.html +[535]: https://blog.usejournal.com/a-quick-dive-into-pythons-slots-72cdc2d334e +[536]: https://blog.gruntwork.io/5-lessons-learned-from-writing-over-300-000-lines-of-infrastructure-code-36ba7fadeac1 +[537]: https://pybit.es/selenium-pytest-and-django.html +[538]: https://github.com/wemake-services/wemake-django-template +[539]: https://zwischenzugs.com/2018/11/25/six-ways-to-level-up-your-nmap-game/ +[540]: https://www.sicpers.info/2018/12/more-speed-lower-velocity/ +[541]: https://blog.spiralscout.com/php-was-never-meant-to-die-830de87915ee +[542]: https://www.gnu.org/software/guix/ +[543]: https://robertheaton.com/2018/12/06/a-blogging-style-guide/ +[544]: https://genius.engineering/faster-and-simpler-with-the-command-line-deep-comparing-two-5gb-json-files-3x-faster-by-ditching-the-code/ +[545]: https://piet.me/blog/x-reasons-not-to-skip-the-tests/ +[546]: https://julien.danjou.info/multi-value-syntax-tree-filtering-in-python/ +[547]: https://henrikwarne.com/2014/06/08/antifragility-and-software-development/ +[548]: https://int3ractive.com/2018/09/make-the-best-of-MacBook-touchpad-on-Ubuntu.html +[549]: https://catern.com/posts/pipes.html +[550]: https://dpc.pw/the-faster-you-unlearn-oop-the-better-for-you-and-your-software +[551]: https://bjornjohansen.no/www-or-not +[552]: https://bluejamesbond.github.io/CharacterMap/ +[553]: https://blog.sicara.com/perfect-python-command-line-interfaces-7d5d4efad6a2 +[554]: https://sizovs.net/2018/12/17/stop-learning-frameworks/ +[555]: https://medium.com/@lduck11007/operating-systems-development-for-dummies-3d4d786e8ac +[556]: https://www.gnu.org/software/guix/blog/2018/back-from-seagl-2018/ +[557]: https://gkbrk.com/2018/12/free-hotel-wifi-with-python-and-selenium/ +[558]: https://smallstep.com/blog/everything-pki.html +[559]: https://justinmeiners.github.io/lc3-vm/ +[560]: http://mycode.doesnot.run/2018/04/11/pivot/ +[561]: http://mycode.doesnot.run/2018/04/11/pivot/ +[562]: https://sedimental.org/awesome_python_applications.html +[563]: https://medium.com/@cpuguy83/linux-containers-what-even-are-they-5cf4e8db38c6 +[564]: https://bl33pbl0p.github.io/systemd.html +[565]: http://lpan.io/one-liner-dropbox-client/ +[566]: https://medium.com/@yegg/mental-models-i-find-repeatedly-useful-936f1cc405d +[567]: http://parametri.city/blog/2018-12-23-language-oriented-software-engineering/index.html +[568]: https://0x00sec.org/t/re-guide-for-beginners-methodology-and-tools/2242 +[569]: https://www.crypto101.io/ +[570]: https://hackertarget.com/ssh-examples-tunnels/ +[571]: https://write.as/p3csqbmkyno8pb99.md +[572]: https://kanoki.org/2017/05/14/first-blog-post/ +[573]: https://ncase.me/remember/ +[574]: https://medium.freecodecamp.org/how-to-be-a-successful-software-engineer-6f82a5b1a82e +[575]: https://venam.nixers.net/blog/unix/2019/01/07/win-automation.html +[576]: https://www.tedinski.com/2018/03/20/wizarding-vs-engineering.html +[577]: https://resources.infosecinstitute.com/creating-undetectable-custom-ssh-backdoor-python-z/ +[578]: https://github.com/sharkdp/hexyl/blob/master/README.md +[579]: https://www.destroyallsoftware.com/compendium/network-protocols?share_key=97d3ba4c24d21147 +[580]: https://github.com/NanXiao/read-nmon-code-to-learn-analyzing-linux-performance +[581]: https://mixmastamyk.bitbucket.io/pro_soft_dev/index.html +[582]: https://www.imaginarycloud.com/blog/broken-window-to-developers-soul/ +[583]: https://blog.kentcdodds.com/write-tests-not-too-many-mostly-integration-5e8c7fff591c +[584]: https://danyspin97.org/blog/makefiles-best-practices/ +[585]: https://0x46.net/thoughts/2019/02/01/dotfile-madness/ +[586]: http://jsomers.net/blog/gettiers +[587]: https://hacker-tools.github.io/ +[588]: https://gto76.github.io/python-cheatsheet/ +[589]: https://io.made.com/introducing-command-handler/ +[590]: https://notamonadtutorial.com/how-to-earn-your-macroeconomics-and-finance-white-belt-as-a-software-developer-136e7454866f +[591]: https://wyag.thb.lt/ +[592]: https://icyphox.sh/blog/python-for-re-1/ +[593]: https://nullprogram.com/blog/2019/03/22/ +[594]: http://www.opsschool.org/introduction.html +[595]: https://pmac.io/2019/02/multi-stage-dockerfile-and-python-virtualenv/ +[596]: https://alex.dzyoba.com/blog/vim-revamp/ +[597]: https://github.com/danistefanovic/build-your-own-x +[598]: https://instagram-engineering.com/thundering-herds-promises-82191c8af57d +[599]: https://www.welcometothejungle.co/fr/articles/languages-software-go-elixir +[600]: https://medium.com/@way/rage-against-the-codebase-programmers-and-negativity-d7d6b968e5f3 +[601]: https://lucasfcosta.com/2019/04/07/streams-introduction.html +[602]: http://highscalability.com/blog/2019/3/4/how-is-software-developed-at-amazon.html +[603]: https://gdcvault.com/play/1025778/Everyone-Watching-This-Is +[604]: https://haydenjames.io/linux-performance-almost-always-add-swap-space/ +[605]: https://realpython.com/courses/python-3-concurrency-asyncio-module/ +[606]: https://realpython.com/pdf-python/ +[607]: http://brunorocha.org/python/from-dynaconf-import-settings.html +[608]: https://blog.doismellburning.co.uk/django-an-unofficial-opinionated-faq/ +[609]: https://thedeepdish.org/advanced-investing-barbell-strategy/ +[610]: https://linux-audit.com/elf-binaries-on-linux-understanding-and-analysis/ +[611]: https://blog.cleancoder.com/uncle-bob/2019/06/16/ObjectsAndDataStructures.html +[612]: https://restoreprivacy.com/google-alternatives/ +[613]: https://zwischenzugs.com/2019/05/11/seven-surprising-bash-variables/ +[614]: https://stevemcconnell.com/articles/classic-mistakes/ +[615]: https://blog.extracheese.org/2010/05/the-tar-pipe.html +[616]: https://github.com/dwmkerr/hacker-laws +[617]: https://www.masterywithsql.com/ +[618]: https://skerritt.blog/dynamic-programming/ +[619]: https://blog.ganssle.io/articles/2018/03/pytz-fastest-footgun.html +[620]: https://github.com/lob/pg_insights/blob/master/README.md +[621]: https://spin.atomicobject.com/2019/06/16/unix-cli-relational-database/ +[622]: http://bkent.net/Doc/simple5.htm +[623]: https://www.troyhunt.com/mmm-pi-hole/ +[624]: http://orbifold.xyz/interfaces-are-forever.html +[625]: https://www.joelonsoftware.com/2009/09/23/the-duct-tape-programmer/ +[626]: https://arslan.io/2019/07/03/how-to-write-idempotent-bash-scripts/ +[627]: https://pythonspeed.com/articles/official-docker-best-practices/ +[628]: https://thewalrus.ca/why-being-bored-is-good/ +[630]: https://jamey.thesharps.us/2019/05/29/per-project-postgres/ +[631]: https://www.newyorker.com/magazine/2018/12/10/the-friendship-that-made-google-huge +[632]: https://medium.com/unbabel/refactoring-a-python-codebase-using-the-single-responsibility-principle-ed1367baefd6 +[633]: https://medium.com/codeiq/object-oriented-programming-the-trillion-dollar-disaster-%EF%B8%8F-92a4b666c7c7 +[634]: http://aosabook.org/en/index.html +[635]: https://jordanorelli.com/post/32665860244/how-to-use-interfaces-in-go +[636]: http://www.calnewport.com/blog/2011/12/23/flow-is-the-opiate-of-the-medicore-advice-on-getting-better-from-an-accomplished-piano-player/ +[637]: https://blog.pragmaticengineer.com/an-elegant-puzzle-book-review/ +[638]: https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/ +[639]: https://blog.stephsmith.io/how-to-be-great/ +[640]: https://hackernoon.com/education-of-a-programmer-aaecf2d35312 +[641]: http://morningcoffee.io/killing-a-process-and-all-of-its-descendants.html +[642]: https://github.com/sqshq/sampler +[643]: https://sven.stormbind.net/blog/posts/docker_from_30_to_230/ +[644]: https://medium.com/@bellmar/all-the-best-engineering-advice-i-stole-from-non-technical-people-eb7f90ca2f5f +[645]: https://interrupt.memfault.com/blog/how-to-write-a-bootloader-from-scratch +[646]: https://devconnected.com/syslog-the-complete-system-administrator-guide/ +[647]: http://ifeanyi.co/posts/linux-namespaces-part-1/ +[648]: https://sobolevn.me/2019/08/typechecking-django-and-drf +[649]: https://samsaffron.com/archive/2019/04/09/my-i3-window-manager-setup +[650]: https://kubernetes.academy/ +[651]: https://begriffs.com/posts/2019-07-19-history-use-vim.html +[652]: http://xn--rpa.cc/irl/term.html +[653]: http://blog.bityard.net/articles/2019/August/rabbit-holes-the-secret-to-technical-expertise.html +[654]: https://www.bennadel.com/blog/3390-considering-strategies-for-idempotency-without-distributed-locking-with-ben-darfler.htm +[655]: https://meltingasphalt.com/a-codebase-is-an-organism/ +[656]: https://gist.github.com/rusrushal13/4e66c5733bfdc46e96ee0a2dc20fe9fe +[657]: https://www.lysator.liu.se/c/ten-commandments.html +[658]: https://cdecl.org/ +[659]: https://unixism.net/2019/08/linux-pressure-stall-information-psi-by-example/ +[660]: https://medium.com/@alexgolec/google-interview-problems-ratio-finder-d7aa8bf201e3 +[661]: http://web.eecs.utk.edu/~huangj/cs360/360/notes/Memory/lecture.html +[662]: https://gist.github.com/chitchcock/1281611 +[663]: https://github.com/dylanaraps/pure-bash-bible +[664]: https://remotemore.com/candidates +[665]: https://magcius.github.io/xplain/article/index.html +[666]: https://github.com/Pungyeon/clean-go-article/blob/master/README.md +[667]: https://varnish-cache.org/docs/5.1/reference/varnish-cli.html#authentication-with-s +[668]: https://dev.to/heroku/postgres-is-underrated-it-handles-more-than-you-think-4ff3 +[669]: https://thebuild.com/presentations/not-your-job-pgconf-us-2017.pdf +[670]: https://askubuntu.com/questions/1145057/remapping-mouse-buttons-to-keyboard-keys +[671]: https://comparite.ch/python-courses +[672]: https://mrkaran.dev/posts/dig-overview/ +[673]: https://medium.com/contentsquare-engineering-blog/multithreading-vs-multiprocessing-in-python-ece023ad55a +[674]: https://drewdevault.com/2019/11/26/Avoid-traumatic-changes.html +[675]: https://github.com/dominikh/go-tools +[676]: https://octetz.com/posts/vim-as-go-ide +[677]: https://dev.to/seattledataguy/the-interview-study-guide-for-software-engineers-764 +[678]: https://www.sametab.com/blog/frameworks-for-remote-working +[679]: https://blog.robertelder.org/don-libes-expect-unix-automation-tool/ +[680]: https://daedtech.com/5-things-ive-learned-in-20-years-of-programming/ +[681]: https://www.indiehackers.com/post/what-skills-do-founders-find-most-crucial-for-running-their-businesses-e95d99d9ff +[682]: https://benjamincongdon.me/blog/2019/11/11/The-Value-in-Gos-Simplicity/ +[683]: https://pythonspeed.com/articles/data-doesnt-fit-in-memory/ +[684]: http://pljung.de/posts/easy-concurrency-in-python/ +[685]: https://neilkakkar.com/unix.html +[687]: https://zwischenzugs.com/2019/11/27/the-first-non-bullshit-book-about-culture-ive-read/ +[688]: https://idea.popcount.org/2019-11-06-creating-sockets/ +[689]: https://blog.startifact.com/posts/framework-patterns.html +[690]: https://lucumr.pocoo.org/2020/1/1/async-pressure/ +[691]: https://davnicwil.com/just-build-the-product/ +[692]: https://codahale.com/work-is-work/ +[693]: https://pixelprivacy.com/resources/browser-fingerprinting/ +[694]: https://github.com/EbookFoundation/free-programming-books +[695]: https://github.com/ripienaar/free-for-dev +[696]: https://www.benkuhn.net/hard +[697]: https://www.daolf.com/posts/best-programming-books/ +[698]: https://www.wealthsimple.com/en-ca/magazine/how-to-best-personal-finance-books +[699]: https://www.docker.com/blog/how-to-deploy-on-remote-docker-hosts-with-docker-compose/ +[700]: https://lethain.com/staff-plus-eng-resources/ +[701]: https://www.embeddeduse.com/2019/06/26/lessons-from-six-years-as-a-solo-consultant/ +[702]: https://blog.jse.li/posts/torrent/ +[703]: https://www.netmeister.org/blog/ops-lessons.html +[704]: https://gavv.github.io/articles/pulseaudio-under-the-hood/ +[705]: https://blog.alexellis.io/building-containers-without-docker/ +[706]: https://blog.pragmaticengineer.com/distributed-systems-learnings-in-2019/ +[707]: https://kunigami.blog/2019/12/26/python-type-hints/ +[708]: https://cliutils.gitlab.io/modern-cmake/ +[709]: https://yakking.branchable.com/posts/parsing-command-line-arguments-from-c/ +[710]: https://rachelbythebay.com/w/2020/03/07/costly/ +[711]: https://www.cockroachlabs.com/blog/raft-is-so-fetch/ +[712]: https://fsharpforfunandprofit.com/posts/understanding-parser-combinators/ +[713]: https://developers.google.com/optimization/scheduling/employee_scheduling +[714]: https://guyinatuxedo.github.io/ +[715]: https://devarea.com/linux-kernel-development-and-writing-a-simple-kernel-module/ +[716]: https://www.romanzolotarev.com/pass.html +[717]: https://medium.com/@cjolowicz/hypermodern-python-d44485d9d769 +[718]: https://vermaden.wordpress.com/2019/12/13/manage-contacts-the-unix-way/ +[719]: https://linux-kernel-labs.github.io/refs/heads/master/index.html +[721]: https://www.b-list.org/weblog/2020/mar/16/no-service/ +[722]: https://forum.djangoproject.com/t/structuring-large-complex-django-projects-and-using-a-services-layer-in-django-projects/1487/8 +[723]: https://www.jeremiahlee.com/posts/failed-squad-goals/ +[724]: https://www.dolthub.com/blog/2020-03-23-testing-dolt-bats/ +[725]: https://begriffs.com/posts/2020-03-23-concurrent-programming.html +[726]: https://developers.redhat.com/blog/2020/03/26/static-analysis-in-gcc-10/ +[727]: https://increment.com/programming-languages/crash-course-in-compilers/ +[728]: https://einarwh.wordpress.com/2020/04/05/death-of-a-craftsman/ +[729]: https://wiki.c2.com/?ThePsychologyOfComputerProgramming +[730]: https://thecomputation.com/2020/04/06/claude-shannon-and-choosing-a-problem.html +[731]: https://landing.google.com/sre/books/ +[732]: https://yoongkang.com/blog/pdf-forms-with-python/ +[733]: https://keleshev.com/my-book-writing-setup/ +[734]: https://blog.jurn.io/international-payments-freelancers/ +[735]: https://ljvmiranda921.github.io/notebook/2019/11/08/flask-redis-celery-mcdo/ +[736]: http://www.timcasasola.com/blog/writing +[737]: https://notes.eatonphil.com/database-basics.html +[738]: https://github.com/dabeaz-course/practical-python +[739]: https://medium.com/@bellmar/old-code-gets-younger-every-year-3bd24c7f2262 +[740]: https://thehappyphilosopher.com/how-understanding-the-marginal-utility-of-money-will-make-you-happier/ +[741]: https://rsms.me/sol-a-sunny-little-virtual-machine +[742]: https://eliteinformatiker.de/2020/05/31/automation-archlinux-qemu-installation +[743]: https://christine.website/blog/gitea-release-tool-2020-05-31 +[744]: https://snarky.ca/the-many-ways-to-pass-code-to-python-from-the-terminal/ +[745]: https://drawsql.app/templates +[746]: https://github.com/papers-we-love/papers-we-love/blob/master/README.md +[747]: https://einarwh.wordpress.com/2020/05/19/into-the-tar-pit/ +[748]: http://themediocreprogrammer.com/ +[749]: https://www.integralist.co.uk/posts/python-asyncio/ +[750]: https://www.aquicarattino.com/blog/how-write-programming-book/ +[751]: https://shouldiusethreads.com/ +[752]: https://robertovitillo.com/what-every-developer-should-know-about-tcp/ +[753]: https://medium.com/datacamp/python-for-finance-algorithmic-trading-60fdfb9bb20d +[754]: https://philipkiely.com/wfsd/ +[755]: https://iximiuz.com/en/posts/you-dont-need-an-image-to-run-a-container/ +[756]: http://calpaterson.com/async-python-is-not-faster.html +[757]: https://www.fastcompany.com/28121/they-write-right-stuff +[758]: https://josebrowne.com/on-coding-ego-and-attention/ +[759]: https://hbr.org/2010/07/how-will-you-measure-your-life +[760]: https://github.com/mozilla/sops +[761]: https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/ +[762]: https://www.allthingsdistributed.com/2020/07/the-os-classics.html +[763]: https://privacy.net/analyzer/ +[764]: https://www.theatlantic.com/family/archive/2020/07/why-success-wont-make-you-happy/614731/ +[765]: https://brendancahill.io/brensblog/dereksivers +[766]: https://github.com/rothgar/mastering-zsh +[767]: https://github.com/knrt10/kubernetes-basicLearning +[768]: https://www.pgmustard.com/docs/explain +[769]: https://midination.com/free-music-production-software/ +[770]: https://serhack.me/articles/monitoring-infrastructure-grafana-influxdb-connectd/ +[771]: https://meekg33k.dev/what-i-learned-from-doing-60-technical-interviews-in-30-days-ckda9sn7s00iftss13b0wd0ky +[772]: https://www.benkuhn.net/progessays/ +[773]: https://www.perell.com/blog/50-ideas-that-changed-my-life +[774]: https://jordanlewis.org/posts/twitch-live-coding/ +[775]: https://hakibenita.com/sql-tricks-application-dba +[776]: https://www.varrazzo.com/blog/2020/07/25/surviving-django/ +[777]: https://spookylukey.github.io/django-views-the-right-way/index.html +[778]: https://medium.com/@bellmar/why-is-this-idiot-running-my-engineering-org-c6e815790cdb +[779]: https://www.readthistwice.com/person/paul-graham +[780]: https://pythonspeed.com/articles/distributing-software/ +[781]: https://dafriedman97.github.io/mlbook/content/introduction.html +[782]: http://www.plainenglish.co.uk/how-to-write-in-plain-english.html +[783]: https://buttondown.email/hillelwayne/archive/whats-the-deal-with-message-passing-anyway/ +[784]: https://cmacr.ae/post/2020-08-10-cloud-like-infra-at-home-part-1/ +[785]: https://theartofpostgresql.com/ +[786]: https://ahelwer.ca/post/2020-08-09-home-ergonomics/ +[787]: https://tailscale.com/blog/how-nat-traversal-works/ +[788]: https://leontrolski.github.io/postgres-advisory-locks.html +[789]: https://nelis.boucke.be/post/architectural-katas/ +[790]: https://python-patterns.guide/gang-of-four/composition-over-inheritance/ +[791]: https://adamj.eu/tech/2020/04/01/how-to-combine-two-python-decorators/ +[792]: https://nocomplexity.com/documents/arplaybook/index.html +[793]: https://mywiki.wooledge.org/BashPitfalls +[794]: https://ahelwer.ca/post/2020-04-15-probabilistic-distsys/ +[795]: https://hopkinspokercourse.com/ +[796]: https://www.cyberciti.biz/tips/bash-shell-parameter-substitution-2.html +[797]: https://who23.github.io/2020/12/03/sockets-in-your-shell.html +[798]: https://clig.dev/ +[799]: https://engaging-data.com/will-money-last-retire-early/ +[800]: https://faculty.washington.edu/ajko/papers/Li2019WhatDistinguishesEngineers.pdf +[801]: https://blog.flowblok.id.au/2013-02/shell-startup-scripts.html +[802]: https://josephg.com/blog/crdts-are-the-future/ +[803]: https://kevinmahoney.co.uk/articles/applying-misu/ +[804]: https://crontab.guru +[805]: https://daqo.medium.com/facebook-senior-software-engineer-interview-the-only-post-youll-need-to-read-e4604ff2336d +[806]: https://downloads.goalkicker.com/ +[807]: https://marcyes.com/2016/0922-messing-with-postgresql-users-and-permissions/ +[808]: https://blog.pragmaticengineer.com/what-silicon-valley-gets-right-on-software-engineers/ +[809]: https://pankrat.github.io/2015/django-migrations-without-downtimes/ +[810]: https://iximiuz.com/en/posts/container-networking-is-simple/ +[811]: https://sysadmincasts.com/episodes/14-introduction-to-linux-control-groups-cgroups +[812]: https://francis.begyn.be/blog/nixos-home-router +[813]: https://jakobgreenfeld.com/metrics +[814]: https://dev.to/napicella/how-are-docker-images-built-a-look-into-the-linux-overlay-file-systems-and-the-oci-specification-175n +[815]: https://www.laac.dev/blog/database-constraints-in-django/ +[816]: https://hiringengineersbook.com/post/autonomy/ +[817]: https://carltheperson.com/posts/10-things-linux +[818]: https://venam.nixers.net/blog/unix/2021/02/07/audio-stack.html +[819]: https://christine.website/blog/site-to-site-wireguard-part-1-2019-04-02 +[820]: https://christine.website/blog/my-wireguard-setup-2021-02-06 +[821]: https://huth.me/blog/my-staff-software-engineering-reading-list/ +[822]: https://www.tweag.io/blog/2020-05-25-flakes/ +[823]: https://alexdanco.com/2020/10/08/making-is-show-business-now/ +[824]: https://fs.blog/2021/01/mistrust/ +[825]: https://venam.nixers.net/blog/unix/2020/03/29/distro-pkgs.html +[826]: https://doppler.com/blog/how-to-set-environment-variables-in-linux-and-mac +[827]: https://martinfowler.com/articles/developer-effectiveness.html +[828]: https://blog.logrocket.com/node-js-docker-improve-dx/ +[829]: https://hakibenita.com/sql-anomaly-detection +[830]: https://nix.dev/index.html +[831]: https://ebzzry.io/en/nix/ +[832]: https://ghedam.at/15490/so-tell-me-about-nix +[833]: https://durmonski.com/productivity/what-is-mind-wandering/ +[834]: https://qmacro.org/autodidactics/2021/02/02/fzf-the-basics-1-layout/ +[835]: https://martinfowler.com/articles/patterns-of-distributed-systems/ +[836]: https://minimalmodeling.substack.com/archive +[837]: https://adamj.eu/tech/2020/01/27/moving-to-django-3-field-choices-enumeration-types/ +[838]: https://www.laac.dev/blog/five-common-django-mistakes/ +[839]: https://www.markozivanovic.com/screw-it-ill-host-it-myself/ +[840]: https://review.firstround.com/the-engineers-guide-to-career-growth-advice-from-my-time-at-stripe-and-facebook +[841]: https://blog.alexgleason.me/run-your-own-server/ +[842]: https://andydote.co.uk/2020/08/28/better-bashing-through-technology/ +[843]: https://mrkaran.dev/posts/home-server-nomad/ +[844]: https://github.com/kuchin/awesome-cto +[845]: https://atodorov.me/2021/02/27/why-you-should-take-a-look-at-nomad-before-jumping-on-kubernetes/ +[846]: https://muratbuffalo.blogspot.com/2021/02/foundational-distributed-systems-papers.html?m=1 +[847]: https://bytes.zone/posts/nix-script/ +[848]: https://codeburst.io/on-writing-tech-specs-6404c9791159 +[849]: https://stitcher.io/blog/what-event-sourcing-is-not-about +[850]: https://srvaroa.github.io/paas/infrastructure/platform/kubernetes/cloud/2020/01/02/talk-how-to-build-a-paas-for-1500-engineers.html +[851]: https://hbr.org/2016/12/if-your-boss-could-do-your-job-youre-more-likely-to-be-happy-at-work +[852]: https://christine.website/blog/morph-setup-2021-04-25 +[853]: https://archive.ph/kDwXg +[854]: https://serokell.io/blog/practical-nix-flakes +[855]: https://grahamc.com/blog/flakes-are-an-obviously-good-thing +[856]: https://antonz.org/sqlite-is-not-a-toy-database/ +[857]: https://www.prisma.io/dataguide/ +[858]: https://www.kalzumeus.com/2012/01/23/salary-negotiation/ +[859]: https://segment.com/blog/introducing-centrifuge/ +[860]: https://www.8bitmen.com/what-is-grafana-why-use-it-everything-you-should-know-about-it/ +[861]: https://engineering.fb.com/2018/02/12/production-engineering/how-production-engineers-support-global-events-on-facebook/ +[862]: https://blog.christianposta.com/microservices/istio-as-an-example-of-when-not-to-do-microservices/ +[863]: https://medium.com/canopy-tax/a-step-by-step-guide-to-single-spa-abbbcb1bedc6 +[865]: https://www.narrator.ai/blog/using-postgresql-as-a-data-warehouse/ +[866]: https://anthonynsimon.com/blog/one-man-saas-architecture/ +[867]: https://up-for-grabs.net/ +[868]: https://spin.atomicobject.com/2021/02/04/redis-postgresql/ +[869]: https://review.firstround.com/the-25-micro-habits-of-high-impact-managers +[870]: https://skamille.medium.com/an-incomplete-list-of-skills-senior-engineers-need-beyond-coding-8ed4a521b29f +[871]: https://semaphoreci.com/blog/building-python-projects-with-pants +[872]: https://engineering.soroco.com/abstract-syntax-tree-for-patching-code-and-assessing-code-quality/ +[873]: https://www.theinsaneapp.com/2021/06/list-of-python-projects-with-source-code-and-tutorials.html +[874]: https://haseebq.com/my-ten-rules-for-negotiating-a-job-offer/ +[875]: https://github.com/cs01/termpair +[876]: https://adamj.eu/tech/2021/05/05/3-uses-for-functools-partial-in-django/ +[877]: https://github.com/spectralops/teller +[878]: https://medium.com/ibm-garage/out-of-this-world-lessons-from-the-apollo-lunar-landings-part-i-703ff4f872ce +[879]: https://earthly.dev/blog/thought-leaders/ +[880]: https://christine.website/blog/my-homelab-2021-06-08 +[881]: https://www.heavybit.com/library/blog/kwans-hierarchy-of-product-needs-the-four-levels-of-product-managers/ +[882]: https://rtpg.co/2021/06/07/changes-checklist.html +[883]: https://www.stateright.rs/ +[884]: https://nickjanetakis.com/blog/best-practices-around-production-ready-web-apps-with-docker-compose +[885]: https://fearlesssalarynegotiation.com/salary-negotiation-guide/ +[886]: https://blog.gougousis.net/file-permissions-the-painful-side-of-docker/ +[887]: https://katacontainers.io/ +[888]: https://www.youtube.com/c/AndreasKling/videos +[889]: https://itnext.io/direct-i-o-writes-the-best-way-to-improve-your-credit-score-bd6c19cdfe46 +[890]: https://turriate.com/articles/modern-javascript-everything-you-missed-over-10-years +[891]: https://shealevy.com/blog/2018/08/05/understanding-nixs-string-context/ +[892]: https://www.crackedthecode.co/how-to-use-your-dslr-as-a-webcam-in-linux/ +[893]: https://dataschool.com/sql-optimization/multicolumn-indexes/ +[894]: https://sacks.substack.com/p/the-saas-org-chart +[895]: https://www.imaginary.org/sites/default/files/taskbook_arnold_en_0.pdf +[896]: https://www.americastestkitchen.com/articles/3615-how-to-clean-and-season-cast-iron-skillets +[897]: https://dev.to/dabit3/the-complete-guide-to-full-stack-ethereum-development-3j13 +[898]: https://juliu.is/ditch-your-version-manager/ +[899]: https://docs.docker.com/config/containers/multi-service_container/ +[900]: https://diego-pacheco.blogspot.com/2021/09/podmain-in-linux.html +[901]: https://blog.pragmaticengineer.com/project-management-at-big-tech/ +[902]: https://blog.ysndr.de/posts/internals/2021-01-01-flake-ification/ +[903]: https://untools.co/ +[904]: https://christine.website/blog/paranoid-nixos-2021-07-18 +[905]: https://marcusnoble.co.uk/2021-09-01-migrating-from-docker-to-podman/ +[906]: https://john-millikin.com/unix-syscalls +[907]: https://www.oilshell.org/blog/2021/08/xargs.html +[908]: http://yosefk.com/blog/evil-tip-avoid-easy-things.html +[909]: https://github.com/on-nix/python +[910]: https://github.com/adrianscheff/useful-sed +[911]: https://12ft.io/ +[912]: https://sadh.life/post/builtins/ +[913]: https://tenthousandmeters.com/blog/python-behind-the-scenes-11-how-the-python-import-system-works/ +[914]: https://michaelfeathers.silvrback.com/10-papers-every-developer-should-read-at-least-twice +[915]: https://github.com/divnix/devos +[916]: https://www.atomiccommits.io/everything-useful-i-know-about-kubectl +[917]: https://h1bdata.info/index.php +[918]: https://mgdm.net/weblog/systemd/ +[919]: https://ianthehenry.com/posts/how-to-learn-nix/ +[920]: https://margin.re/media/an-opinionated-guide-on-how-to-reverse-engineer-software-part-1.aspx +[921]: https://changelog.complete.org/archives/7562-i-introduced-my-5-year-old-and-2-year-old-to-startx-and-xmonad-theyre-delighted +[922]: https://jichu4n.com/posts/how-x-window-managers-work-and-how-to-write-one-part-i/ +[923]: https://www.poor.dev/blog/terminal-anatomy/ +[924]: https://justinas.org/nixos-in-the-cloud-step-by-step-part-1 +[925]: https://github.com/mhadidg/software-architecture-books +[926]: https://myme.no/posts/2021-11-25-nixos-home-assistant.html +[927]: https://www.pixelbeat.org/programming/shell_script_mistakes.html +[928]: https://ma.ttias.be/auto-restart-crashed-service-systemd/ +[929]: https://systemd-by-example.com/ +[930]: https://trunkbaseddevelopment.com/ +[931]: https://www.bretfisher.com/docker-mastery-for-nodejs/ +[932]: https://www.jamesshore.com/v2/blog/2006/continuous-integration-on-a-dollar-a-day +[933]: https://datascienceatthecommandline.com/2e/chapter-4-creating-command-line-tools.html +[934]: https://github.com/khuedoan/homelab +[935]: https://asatarin.github.io/testing-distributed-systems/ +[936]: https://mywiki.wooledge.org/BashGuide +[937]: https://www.mulle-kybernetik.com/modern-bash-scripting/intro.html +[938]: https://myme.no/posts/2022-01-16-nixos-the-ultimate-dev-environment.html +[939]: https://michael.stapelberg.ch/posts/2022-01-15-high-end-linux-pc/ +[940]: https://github.com/containers/skopeo +[941]: https://unix.stackexchange.com/questions/288236/have-systemd-spawn-n-processes#288310 +[942]: https://www.redhat.com/en/blog/painless-services-implementing-serverless-rootless-podman-and-systemd +[943]: http://0pointer.de/blog/projects/socket-activation.html +[944]: https://blog.darknedgy.net/technology/2020/05/02/0/index.html +[945]: https://blog.flyingcircus.io/2016/05/06/thoughts-on-systems-management-methods/ +[946]: https://www.usenix.org/system/files/atc19-fouladi.pdf +[947]: https://eng.lyft.com/scaling-productivity-on-microservices-at-lyft-part-2-optimizing-for-fast-local-development-9f27a98b47ee +[948]: https://blog.pragmaticengineer.com/holiday-tech-book-recommendations/ +[949]: https://uomresearchit.github.io/shell-programming-course/ +[950]: https://bertvv.github.io/cheat-sheets/Bash.html +[951]: https://forums.docker.com/t/how-to-mount-docker-volume-along-with-subfolders-on-the-host/120482 +[952]: https://tips.graphica.com.au/nested-kvm/ +[953]: https://www.accountingcoach.com/ +[954]: https://www.youtube.com/watch?v=EfOXY5XY9s8 +[955]: https://www.youtube.com/watch?v=bmSAYlu0NcY +[956]: https://fs.blog/first-principles/ +[957]: https://blog.acolyer.org/2016/09/05/on-the-criteria-to-be-used-in-decomposing-systems-into-modules/ +[958]: https://blog.sentry.io/2019/07/25/field-guide-mitigating-risk-transitioning-databases +[959]: http://www.oilshell.org/blog/2022/03/backlog-arch.html +[960]: https://www.lpalmieri.com/posts/idempotency/ +[961]: https://martinfowler.com/articles/bottlenecks-of-scaleups/01-tech-debt.html +[962]: https://alexturek.com/2022-03-07-How-to-do-less/ +[963]: https://incolumitas.com/2021/11/03/so-you-want-to-scrape-like-the-big-boys/ +[964]: https://builtin.com/software-engineering-perspectives/platform-engineer-twilio-ask-your-developer-excerpt +[965]: https://commoncog.com/blog/tacit-knowledge-is-a-real-thing/ +[966]: https://www.morling.dev/blog/the-code-review-pyramid/ +[967]: https://www.wave.com/en/blog/simple-architecture/ +[968]: https://zhenzhongxu.com/the-four-innovation-phases-of-netflixs-trillions-scale-real-time-data-infrastructure-2370938d7f01 +[969]: https://fossa.com/blog/three-pillars-reproducible-builds/ +[970]: https://200ok.ch/posts/2022-01-12_configuring_default_applications_for_xdg_open.html +[971]: https://www.lurklurk.org/linkers/linkers.html +[972]: https://www.sicpers.info/2022/02/what-is-software-engineering/ +[973]: https://javarome.medium.com/design-noframework-bbc00a02d9b3 +[974]: https://mag.uchicago.edu/economics-business/optimal-quitting# +[975]: https://bas.codes/posts/python-virtualenv-venv-pip-pyenv-poetry +[976]: https://harshal.sheth.io/2022/01/31/webassembly.html +[977]: https://earthly.dev/blog/lxc-vs-docker/ +[978]: https://future.a16z.com/software-development-building-for-99-developers/ +[979]: https://medium.com/@mormesher/building-your-own-linux-cloud-backup-system-75750f47d550 +[980]: https://www.ravi-mehta.com/product-manager-roles/ +[981]: https://superfastpython.com/threading-in-python/ +[982]: https://blog.relyabilit.ie/the-curse-of-systems-thinkers/ +[983]: https://www.getlago.com/blog/why-billing-systems-are-a-nightmare-for-engineers +[984]: https://blog.nixbuild.net/posts/2022-03-16-lightning-fast-ci-with-nixbuild-net.html +[985]: https://sharedphysics.com/everything-is-important/ +[986]: https://blog.techlanika.com/distributed-tracing-the-why-what-and-how-ab9ca9e40081 +[987]: https://xenitab.github.io/blog/2022/02/23/12factor/ +[988]: https://disco.ethz.ch/courses/podc_allstars/ +[989]: https://dropbox.tech/infrastructure/disaster-readiness-test-failover-blackhole-sjc +[990]: https://gist.github.com/fnky/458719343aabd01cfb17a3a4f7296797 +[991]: https://github.com/dylanaraps/writing-a-tui-in-bash +[992]: https://lethain.com/durably-excellent-teams/ +[993]: https://blog.pragmaticengineer.com/what-do-tpms-do/ +[994]: https://nolanlawson.com/2022/06/09/the-collapse-of-complex-software/ +[995]: https://www.foxhound.systems/blog/essential-elements-of-high-performance-sql-indexes/ +[996]: https://dx.tips/the-end-of-localhost#heading-further-reading +[997]: http://brucefwebster.com/2008/04/11/the-wetware-crisis-the-dead-sea-effect/ +[998]: https://spectrum.ieee.org/xerox-parc +[999]: https://blog.aleksic.dev/using-ansible-and-nomad-for-a-homelab-part-2#heading-bad-sides-of-nomad +[1000]: https://sirupsen.com/metrics +[1001]: https://www.fermyon.com/blog/python-wagi +[1002]: https://medium.com/@adrian_cooney/introducing-the-taskfile-5ddfe7ed83bd +[1003]: https://www.slideshare.net/RandyShoup/from-monolith-to-microservices-craftconf-2015 +[1004]: https://medium.com/@jamesacowling/stepping-stones-not-milestones-e6be0073563f +[1005]: https://blog.thepete.net/blog/2019/12/09/delivering-on-an-architecture-strategy/ +[1006]: https://lepiter.io/feenk/developers-spend-most-of-their-time-figuri-9q25taswlbzjc5rsufndeu0py/ +[1007]: https://webapp.io/blog/github-actions-10x-faster-with-firecracker/ +[1008]: https://www.heinrichhartmann.com/posts/writing/ +[1009]: https://lethain.com/founding-uber-sre/ +[1010]: https://flameeyes.blog/2022/04/26/engineering-jargon-yaks/ +[1011]: https://mazzo.li/posts/fast-pipes.html +[1012]: https://eugeneyan.com/writing/writing-docs-why-what-how/ +[1013]: https://fs.blog/peter-bevelin-seeking-wisdom/ +[1014]: https://fs.blog/book-recommendations-from-billionaire-charlie-munger/ +[1015]: https://architecturenotes.co/things-you-should-know-about-databases/ +[1016]: https://blog.pragmaticengineer.com/rfcs-and-design-docs/ +[1017]: https://hbr.org/2022/06/small-actions-make-great-leaders +[1018]: https://byrnemluke.com/posts/webassembly +[1019]: https://blog.google/outreach-initiatives/entrepreneurs/effective-founders-project/ +[1020]: https://myme.no/posts/2022-06-14-nixos-confederation.html +[1021]: https://slack.engineering/building-self-driving-kafka-clusters-using-open-source-components/ +[1022]: https://www.vantage.sh/blog/nat-gateway-vpc-endpoint-savings +[1023]: https://guicommits.com/how-to-log-in-python-like-a-pro/ +[1024]: https://incident.io/guide/ +[1025]: https://superamit.substack.com/p/short-stories-how-much-do-you-make +[1026]: https://www.levels.fyi/blog/equity-tech-job-offer.html +[1027]: https://garnix.io/blog/converting-to-flakes +[1028]: https://monorepo.tools/ +[1029]: https://blog.ploeh.dk/2022/05/02/at-the-boundaries-applications-arent-functional/ +[1030]: https://medium.com/pipedrive-engineering/say-hello-to-devboxes-fab125cd793a +[1031]: https://ericmustin.substack.com/p/notes-on-an-observability-team +[1032]: https://medium.com/building-carta/staff-engineering-at-carta-526b154fd317 +[1033]: https://zimbatm.com/notes/nix-packaging-the-heretic-way +[1034]: https://github.com/facundoolano/software-papers/ +[1035]: https://www.jeremiahlee.com/posts/failed-squad-goals/ +[1036]: https://quii.gitbook.io/learn-go-with-tests/ +[1037]: https://github.com/karanpratapsingh/system-design +[1038]: https://arrdem.com/2022/07/04/superficial_simplicity/ +[1039]: https://grugbrain.dev/ +[1040]: https://webhooks.fyi +[1041]: https://staysaasy.com/management/2022/07/10/Writing-Management.html +[1042]: https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6125071/ +[1043]: https://www.richmondquant.com/news/2021/9/21/shannons-demon-amp-how-portfolio-returns-can-be-created-out-of-thin-air +[1044]: https://totalrealreturns.com/ +[1045]: https://brandur.org/small-sharp-tools +[1046]: https://superfastpython.com/multiprocessing-pool-python/ +[1047]: https://blush-pixie-9dd.notion.site/For-Job-Seekers-675ba42e81504839877d027384679fa1 +[1048]: https://lucasfcosta.com/2022/07/19/finish-what-you-start.html +[1049]: https://gigamonkeys.com/flowers/ +[1050]: https://embeddedartistry.com/blog/2020/03/02/why-we-estimate/ +[1051]: https://eng.lyft.com/awesome-tech-specs-86eea8e45bb9 +[1052]: https://architecturenotes.co/redis/ +[1053]: https://www.mckinsey.com/capabilities/mckinsey-digital/our-insights/tech-forward/why-your-it-organization-should-prioritize-developer-experience +[1054]: https://www.youtube.com/watch?v=LKtk3HCgTa8 +[1055]: https://www.youtube.com/watch?v=f84n5oFoZBc +[1056]: https://lethain.com/profit-and-loss-statement/ +[1057]: https://lethain.com/downturn-career-decisions/ +[1058]: https://github.com/batchcorp/plumber +[1059]: https://architecturenotes.co/12-factor-app-revisited/ +[1060]: https://jvns.ca/blog/2023/03/03/how-do-nix-builds-work-/ +[1061]: https://academy.o11y.io/courses/practical-observability diff --git a/check_links.py b/check_links.py new file mode 100644 index 0000000..46feb0f --- /dev/null +++ b/check_links.py @@ -0,0 +1,41 @@ +import asyncio + +import aiohttp +import markdown +from bs4 import BeautifulSoup + +with open("README.md") as f: + body_markdown = f.read() +html_page = markdown.markdown(body_markdown) + + +print("Gathering links...") +urls = [] +soup = BeautifulSoup(html_page, features="lxml") +for link in soup.findAll("a"): + urls.append(link.get("href")) + + +async def get_url_response(session, url): + try: + async with session.get(url) as resp: + return (resp.status, url) + except Exception: + return (000, url) + + +async def main(): + timeout = aiohttp.ClientTimeout(total=20) + async with aiohttp.ClientSession(timeout=timeout) as session: + tasks = [] + for url in urls: + tasks.append(asyncio.ensure_future(get_url_response(session, url))) + + print("Checking links...") + responses = await asyncio.gather(*tasks) + for _, (resp, url) in enumerate(responses): + if resp != 200: + print(resp, url) + +loop = asyncio.get_event_loop() +loop.run_until_complete(main()) diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..7338af7 --- /dev/null +++ b/flake.lock @@ -0,0 +1,25 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1678693419, + "narHash": "sha256-bbSv5yqZAW6dz+3f3f3pOUZbxpPN+3OgCljgn7P+nnQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "8e3fad82be64c06fbfb9fd43993aec9ef4623936", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "type": "indirect" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..c65d19c --- /dev/null +++ b/flake.nix @@ -0,0 +1,19 @@ +{ + description = "A very basic flake"; + + outputs = { self, nixpkgs }: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { inherit system; }; + in { + + devShells.x86_64-linux.default = pkgs.mkShell { + nativeBuildInputs = with pkgs; + let + mypython = pkgs.python3.withPackages + (packages: with packages; [ markdown beautifulsoup4 aiohttp ]); + in [ mypython ]; + }; + + }; +} |