https://sourcegraph.com/blog/a-simpler-way-to-understand-legacy-code
https://www.memorymanagement.org/
https://habr.com/ru/articles/755252/ How DNS works
https://habr.com/ru/articles/755638/ Как работает компьютер: глубокое погружение (на примере Linux)
https://sre.google/books/. Google site reliability books
https://software-engineering-books.com/
https://free-for.dev/#/ Free tools for devs
https://habr.com/ru/company/jugru/blog/586376/. Chrome extensions
https://vak.dreamwidth.org/891889.html PlantUML - generate sequence diagrams SVG from text
https://memo.barrucadu.co.uk/scheduling-problems.html . Solving Scheduling Problems with Integer Linear Programming with Python
https://addons.mozilla.org/en-US/firefox/addon/markdown-viewer-chrome/
https://casual-effects.com/markdeep/
https://ndossougbe.github.io/strapdown/
https://wren.io/ Wren Programming language
https://habr.com/ru/company/otus/blog/675668/ list of interesting repos
https://github.com/sindresorhus/awesome
https://github.com/ashton314/muKanren_reading
https://www.metalevel.at/prolog Power of Prolog
https://www.youtube.com/channel/UCFFeNyzCEQDS4KCecugmotg Power of Prolog
Quantum prolog https://quantumprolog.sgml.io/bioinformatics-demo/part1.html
https://quantumprolog.sgml.io/
Quinn Wilton - Deriving Knowledge from Data https://www.youtube.com/watch?v=lYLkaOq7WbU
Differences between miniKanren and Prolog http://minikanren.org/minikanren-and-prolog.html
https://habr.com/ru/company/skillfactory/blog/678400/ How browser work
https://github.com/leandromoreira/digital_video_introduction
https://sidbala.com/h-264-is-magic/ H.264 algo
https://browserflow.app/ https://chrome.google.com/webstore/detail/automa/infppggnoaenmfagbfknfkancpbljcca
https://habr.com/ru/post/587750/ sync/locks/
[] Square brackets are often simply called brackets,
{} Curly brackets are often called braces
() Parentheses
https://boris-marinov.github.io/category-theory-illustrated/05_logic/
https://arxiv.org/abs/1803.05316
http://eugeniacheng.com/wp-content/uploads/2017/02/cheng-lauda-guidebook.pdf
https://news.ycombinator.com/item?id=28660157
leshenko.net
https://noahan.me/posts/effective-code-browsing-part1/
https://noahan.me/posts/effective-code-browsing-part2/
Func programming https://www.cl.cam.ac.uk/teaching/Lectures/funprog-jrh-1996/
https://lukesmith.xyz/blog/a-guide-to-using-rss-to-replace-social-media
https://fraidyc.at/ Fraidycat is a desktop app or browser extension for Firefox or Chrome. I use it to follow people (hundreds) on whatever platform they choose - Twitter, a blog, YouTube
RSS BLOG Twitter content aggregator https://sumi.news/
https://news.ycombinator.com/item?id=27171970 . Some tools
Free services: https://habr.com/ru/company/macloud/blog/549966/
https://pages.cloudflare.com/#pricing
https://dathorn.com/
Digital Ocean
Vultr
Linode
Heroku https://medium.com/@henson.casper/how-to-publish-your-first-python-app-on-heroku-6af91c5bb138\
https://stackoverflow.com/questions/61998739/heroku-or-digital-ocean-deployment
https://www.inference.org.uk/itprnn/book.pdf
https://aquadzn.github.io/learn-x-by-doing-y/
https://www.samueltaylor.org/articles/index.html
https://josephg.com/blog/crdts-are-the-future/
https://news.ycombinator.com/item?id=24617542
https://www.youtube.com/watch?v=fgp0tKWYQWY implementing regex from scratch
https://github.com/dbohdan/structured-text-tools
Software Alchemy: Turning Complex Statistical Computations into Embarrassingly-Parallel Ones
https://arxiv.org/pdf/1409.5827.pdf
https://junglecoder.com/blog/my-janet-story
https://news.ycombinator.com/item?id=22975225
https://marcobambini.github.io/gravity/#/README
https://luminousmen.com/post/asynchronous-programming-await-the-future
https://github.com/jbranchaud/til/blob/master/README.md tips
https://news.ycombinator.com/item?id=22908044 tips
https://news.ycombinator.com/item?id=23118940. tips
I'll use tmux to split my terminal into an editor window on the right, and on the left,
I'll have a tool like watchman or entr watching for changes to my code, and running those tools e.g.
find . -name "*py" | entr make continuous
how TLS works: https://habr.com/ru/company/plesk/blog/507094/
https://academy.lightbend.com/courses mostly scala and reactive programming
https://habr.com/ru/company/JetBrains-education/blog/495014/ educational links
https://stackexchange.com/sites
https://leanpub.com/bookstore/book
https://compsciclub.ru/ online classes
https://leiradel.github.io/2011/10/24/Auto-Vectorization-5.html
https://distributedsystems.substack.com/
https://www.onlinegdb.com/ . это браузерный компилятор, интерпретатор и отладчик. Он поддерживает 20 языков программирования, включая C, C++, Python, Ruby, C#, Swift и JavaScript.
https://habr.com/ru/post/476790/ code streaming from cool programmers!
https://news.ycombinator.com/item?id=21928170 programmers blogs
https://www.codetriage.com/ contribute to open source
https://www.sicara.ai/blog/ articles on AI and Big Data, by Sicara https://medium.com/sicara articles on AI and Big Data, by Sicara
https://gist.github.com/clarkb7/3e7e43ab85717e81925656f70f5bae8d character encoding
https://standuply.com/how-to-use-slack . how to use Slack
http://harelba.github.io/q/index.html direct execution of SQL-like queries on CSVs/TSVs
https://medium.com/@copyconstruct/best-of-2018-in-tech-talks-2970eb3097af
https://news.ycombinator.com/item?id=21772610
https://dataschool.com/data-governance/ . Book
https://news.ycombinator.com/item?id=21411893
https://docs.prefect.io/core/welcome/what_is_prefect.html
https://news.ycombinator.com/item?id=21405519
https://github.com/lucianmarin/logparser
https://d3.ru/zametka-podborka-o-funktsionalnom-programmirovanii-2022041/
https://habr.com/ru/post/505928/
https://habr.com/ru/post/506782/
https://habr.com/ru/post/492460/
https://jrsinclair.com/articles/2019/what-i-wish-someone-had-explained-about-functional-programming/
https://mostly-adequate.gitbooks.io/mostly-adequate-guide/
https://egghead.io/courses/professor-frisby-introduces-composable-functional-javascript
http://www.tomharding.me/fantasy-land/
https://www.jerf.org/iri/post/2958/
https://byorgey.wordpress.com/2009/01/12/abstraction-intuition-and-the-monad-tutorial-fallacy/
Monads embody the concept of "chaining" functions. Every monad implements the chaining in a different way,
but the user of the monad doesn't have to know how it's done. It's just "call this function on foo,
take the result and pass it to the next" and so on.
Plain old functions do it with plain old function composition (functions are monads!),
but something like Maybe will return None if it gets a None,
and only otherwise pass the data on.
The Future monad will await completion then pass it on (async/await is a monad!),
the List monad will merge together zero or more list results from mapping over each of its items, and so on.
Again, the cool thing is that it's the same syntax no matter what kind of Monad you're in,
so you can totally change the behavior of a monadic function
by just using it with a more specific return type (at least in Haskell,
other languages might make you pass around an implementation) Monads are a neat tool of composition,
but composing monads themselves is fiddly and cumbersome, involving monad transformer "stacks" of deeply nested generic types.
Monad transformers are really just not fun.
I'd give specific examples, but I'm kind of lethargic from the burrito I had for lunch.
If you're familiar with flatMap(), a Monad is anything that's "flatmappable"
(which in JS is just arrays, but languages like Scala take it much further).
In C#, it's IQueryable (LINQ is a monad!)
``
https://news.ycombinator.com/item?id=40553551
<https://habr.com/ru/post/490112/> monads
<https://medium.com/@lettier/your-easy-guide-to-monads-applicatives-functors-862048d61610>
<https://bytes.yingw787.com/posts/2019/12/06/monads/>
<https://www.freecodecamp.org/news/functional-programming-patterns-cookbook-3a0dfe2d7e0a/>
<https://medium.com/@cscalfani/why-is-learning-functional-programming-so-damned-hard-bfd00202a7d1>
<https://news.ycombinator.com/item?id=21879368>
<https://harrylaou.com/slides/AlgebrasInProgramming.pdf>
https://github.com/Hirrolot/poica
Product types allow you to have more than one value in a single structure, at the same time.
We call them ``product types`` because we can calculate the number of possible values using multiplication.
Example: struct ( x boolean, y boolean } has 4 possible combinations
Sum types are types where your value must be one of a fixed set of options. You may have seen enum types in languages like C# or Java. Sum types are similar, but more flexible.
But why are they called sum types? Well, if the value can only be one of a fixed set of options, then we count the possible values using addition. For example, booleans are a sum type. They cam be either true or false. Not both at the same time. And we count the values by addition 1 + 1 = 2.
<http://fprog.ru/>
<https://www.youtube.com/watch?v=gHiyzctYqZ0&t=4s&index=19&list=PLbgaMIhjbmEnaH_LTkxLI7FMa2HsnawM_>
<https://www.edx.org/course/introduction-to-functional-programming>
<https://www.youtube.com/watch?v=QyJZzq0v7Z4>
<https://news.ycombinator.com/item?id=21280429>
<https://github.com/rikace/Presentations/tree/master/FunctionalDSL>
## Comp science
<http://raganwald.com/2019/02/14/i-love-programming-and-programmers.html>
<https://www.quickcode.co/engineer-blogs> dev blogs of big companies
<https://compsciclub.ru/courses/> Comp science lectures
<https://habr.com/company/globalsign/blog/348988/> Mozilla IoT Things
<https://lobste.rs/s/mrjnp5/type_systems_covariance_contravariance> . Covariance/Contrvariance
## Clojure
<https://habr.com/ru/post/508630/> Russian Book
<https://github.com/anan44/it-starts-with-clojure>
<http://blog.klipse.tech/clojure/2018/12/18/welcome-clojure-10.html>
<https://lambdaisland.com/>
<https://github.com/darkleaf/app-from-scratch/> Clojure Rus
<https://news.ycombinator.com/item?id=20857887>
<https://news.ycombinator.com/item?id=21090288>
<http://app-from-scratch.darkleaf.ru/> . Clojure
<http://blog.cleancoder.com/uncle-bob/2019/08/22/WhyClojure.html>
## Browser extension for JSON: JsonDiscovery
<https://habr.com/ru/post/461185/>
<https://github.com/discoveryjs/browser-extension-json-discovery>
<https://news.ycombinator.com/item?id=20645843>
<http://zaa.ch/jsonlint/>
<https://jsoneditoronline.org/>
<https://github.com/carlmjohnson/json-tidy>
json_pp on MacOS
pbpaste | jq
pbpaste | jq . | pbcopy
cat foo.json | python3 -m json.tool
<https://www.jvt.me/posts/2017/06/05/pretty-printing-json-cli/>
<https://prettier.io/playground/>
jp is better jq <https://github.com/jmespath/jp>
## Tools
<https://github.com/repeats/Repeat> Repeat It- like AutoKey
<https://kroki.io/> convert plain text diagram to images Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag),
C4 (with PlantUML), Ditaa, Erd, GraphViz, Mermaid, Nomnoml, PlantUML, SvgBob and UMLet... and more to come!
## Geospatial Software Tools
<https://medium.com/swlh/tools-i-recommend-for-building-geospatial-web-applications-274d6939536c>
<https://news.ycombinator.com/item?id=21169851>