🗄️ Programming (uncategorized)

Stuff which I have processed, but not sure where it belongs

Table of Contents

TODO [B] [2019-08-11] alexmojaki/heartrate: Simple real time visualisation of the execution of a Python program. programmingprofilingpythonviz

[C] [2019-10-11] kivy/kivy: Open source UI framework written in Python, running on Windows, Linux, macOS, Android and iOS programmingandroidgui

TODO [D] programmingtui

TODO [D] [2019-09-06] Robot Framework programming

let's start with a real-life example from our web demo project. Here we have a test suite with one test case which tests that login is valid. As you can see, test data syntax is based on keywords.

[2020-03-27] not sure.. looks like cucumber?? programming

[D] [2018-11-18] blitzcode/rust-exp: Software rasterization, N-Body simulation and Game of Life in Rust + Haskell programming

[D] [2018-12-16] Kobzol/hardware-effects: Demonstration of various hardware effects. programming

STRT [D] prepare proper template, choose programming language programminghobbycompetitive

CREATED: [2018-04-29]

make sure you can generate sceleton easily and run from terminal

TODO [C] fuzzing by injecting random sleeps programmingtestingpython

CREATED: [2020-01-06]

develop quick prototype and post in blog?

TODO [C] [2019-12-20] 9 best open-source findings, November 2019 - DEV Community 👩‍💻👨‍💻 programmingpythonjs

And now I will show you something really unusual!
You can write thread-safe HTML/CSS/Python GUI framework. Wait, what? Yes, you heard it write. You can write your frontend in Python. It even supports Vue.js out of the box.
Written in Python.

STRT [C] [2019-12-20] 9 best open-source findings, November 2019 - DEV Community 👩‍💻👨‍💻 programmingpandasdashboard

Linter for pandas. Finds errors and suggests improvements. Very helpful for ones who just start to work with data. Or teach how to work with it.
Written in Python.

[D] Variance programmingplt

The question: what are the conditions for the function A -> B to be a subtype of C -> D?

1. A is subtype of B means there is a special function castAB :: A -> B
2. Two casts compose into another casts, cast compositions are isomorphic (that is, castBC . castAB is essentially the same thing as castAC)
3. We wanna implement castAfB -> castCfD in order to show (A -> B) <: (C -> D)

  - X :: (A -> B) -> (C -> D)
  - we can only use functions applications and cast
  - X (fab :: A -> B) (c :: C) = ? :: D
  - the only thing we can do is to transform c to some another type, that is, we need castCT :: C -> T
  - now, we have (castCT c) :: T, basically, leaves us in the same situation, so, we actually need castCA :: C -> A
  - now, we have (castCA c) :: A, and (fab $ castCA c) :: B. The only way to get D is to use castBD :: B -> D

5. So, we have (A -> B) <: (C -> D), that is, A -> B is subtype of C -> D if C is subtype of A and B is subtype of D.

The return type (B and D) is covariant, since preserves the direction of <:
The argument type (A and C) is contravariant, since it flips the direction of <:

Container reading: covariant:

: S <: T, then ReadonlyCollection<S> <: ReadonlyCollection<T>

Container writing: contravariant:

: S <: T, then Consumer<T> <: Consumer<S>

- C++ poiners: covariant
- Java
  - arrays: covariant
  - Collection<? extends T>: covariant
  - Collection<? super T>: contravariant

TODO [D] [2018-01-06] Web Scraping With Rust /r/rust programmingscrape

I have found no exaggeration when people say that Rust, with the right crates, has an experience similar to Python when it comes to a "scripting experience". :) This is why ALL of my new projects have been in Rust for the last year.

[C] [2020-05-22] novoid/orgformat: Utility library for providing functions to generate and modify Org mode syntax elements like links, time-stamps, or date-stamps. programming

How to Thank Me

TODO [E] Speed up some open source projects via gold? programming

CREATED: [2019-01-23]

CANCEL [D] cleanup empty tags automatically, perhaps with confirmation, release on github programmingpinboard

CREATED: [2018-02-14]

DONE [B] [2020-05-28] talk: Ideology | Lobsters programming

  • [2021-01-10] TLDR: both "I don't need tests" and "I don't need types" people are wrong, often because they haven't seen better alternatives

[2016-10-02] distributed system patterns programmingdistributed

  • Load balancer
  • Scatter and gather
  • Result cache
  • map reduce
  • Bulk requests

[2016-09-15] caching styles programmingcaching

write-through: synchronous writes both to the cache and the backing store
write-back: initially, only in cache, write to backing store postponed until it's about to be modified/replaced

[2016-05-27] Your real job as a software engineer isn’t to write code. It’s to translate hand-wavy business requirements into detailed specs that a computer can programming

[2020-03-31] circle CI's mac plan is paid (40$/month min) programmingcircleci

[C] [2018-12-09] mre/awesome-static-analysis: Static analysis tools for all programming languages programming

TODO [C] [2020-11-17] Ubuntu-latest workflows will use Ubuntu-20.04 · Issue 1816 · actions/virtual-environments programminggithubci

TODO [C] use latest version of act (just download binary from github) programminggithubci

CREATED: [2020-03-31]

act -P ubuntu-latest=ubuntu:bionic
you can docker exec -it /bin/bash into the container and debug there

TODO [D] firefox screenshots – element selection UI potentially useful for my auto rss thing programmingrss

CREATED: [2019-09-13]

STRT [C] [2020-01-11] qawolf/qawolf: 🐺Create browser tests 10x faster programmingtestingpromnesiagrasp

QA Wolf is an open source node library for creating browser tests 10x faster:
    Skip writing boilerplate. Your browser actions are converted to Puppeteer and Jest code.

[2020-03-27] I mean, ok it looks pretty compact programmingtestingpromnesiagrasp

TODO [C] using tabs (tab stops) is a fairly reasonable way of aligning? programmingcodestyle

CREATED: [2020-02-19]

TODO [C] [2020-02-12] Dmitry Zuykov on Twitter: "firefox умеет автоматизацию через Marionette, который просто асинхронный tcp/json, для которого есть HTTP-враппер geckodriver, клиент для этой обёртки есть даже в нашем уютненьком и работает. Можно скрэпить через браузер, у меня… programmingscrape

TODO [B] [2020-04-22] Tools that made you productive or saved you time | Lobsters programming

TODO [D] ML kit android programmingmlandroid

CREATED: [2018-05-08]

STRT [C] Vscode? programmingide

CREATED: [2019-12-13]
I switched to NeoVim a few years ago and I'm not entirely sure whether Vim has caught up in features, diverged, or what ratio of the two.
That said, I'm not switching back. The only editor I'm really interested in is VSCode. Not that I use it much, but I am very impressed.

[C] [2019-11-01] Why TDD Isn't Crap • Hillel Wayne programmingtesting

While the first PBT library was Haskell Quickcheck, arguably the most sophisticated is the Hypothesis Python library.

TODO [D] JSONCrush – Compress JSON into URI Friendly Strings | Hacker News programmingjson

[C] [2020-03-30] karan/Projects: A list of practical projects that anyone can solve in any programming language. programming

[A] [2020-03-31] Debugging with tmate · Actions · GitHub Marketplace programmingdebuggithubci
ok, nice it's like circleci ssh debugging.
less convenient because you have to commit a step, but ok considering you don't need it often

[D] [2020-01-19] Home - Mozilla Hacks - the Web developer blog programming

[2018-03-01] danluu: latency matters programminguxperformance

try typing in terminal with 30ms ping

[D] [2015-11-04] inversion of control programming

Inversion of Control principle, which basically states that the flow of your application depends on the object graph that is built up during program execution, and such a dynamic flow is made possible by object interactions being defined through abstractions.
This run-time binding is achieved by mechanisms such as dependency injection or a service locator.

[D] [2018-06-16] Tweet from Gary Bernhardt (@garybernhardt), at Jun 16, 13:54 programmingperformance

In 2008, I was extremely frustrated by Ruby imposing a constant ~100 ms startup penalty on hello world. In 2018, computers are ~3.5 times faster (4479 vs. 1266 Geekbench for 2007 vs. 2017 MBP). TypeScript imposes a 1600 ms startup penalty on hello world.

[2017-05-29] gdb tips programminggdb

Debugging multiple threads/processes

set follow-fork-mode [parent|child]
set detach-on-fork [on|off]

Attaching to a process in ubuntu: programminggdb

echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

CNCL [D] use 'commands' 'end' programminggdboldhabit

TODO [C] Tweet from Awesome (@awesome_re), at Nov 19, 16:36 awesome fuzzing programmingtesting

CREATED: [2019-11-19]
Awesome Fuzzing
Automated software testing technique that involves feeding pseudo-randomly generated input data.

[C] [2019-08-08] Web Colors programmingdesign

TODO [C] [2019-08-18] cpuu/awesome-fuzzing: A curated list of awesome Fuzzing(or Fuzz Testing) for software security programming

[C] [2020-02-28] - EmbellishedWanConcentrate programming

[2017-05-08] gdb notes programminggdb


Get the python viewers from SVN

Add the following to your ~/.gdbinit
import sys
sys.path.insert(0, '/path/to/pretty-printers/dir')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)

You have to make sure that you have the package with the libstdc++ library compiled with the debugging flags.

For clang: -fno-limit-debug-info do not limit debug information produced to reduce size of debug binary

TODO [B] [2020-05-21] datalib/libextract: Extract data from websites using basic statistical magic programmingscrape

Libextract is a statistics-enabled data extraction library that works on HTML and XML documents and written in Python.
Originating from eatiht, the extraction algorithm works by making one simple assumption: data appear as collections of repetitive elements. You can read about the reasoning here.

huh, this is niiice!

TODO [C] open source infromation extraction tools programming

CREATED: [2018-01-28] programming

hasn't updated for 2 years programming

lots of interesing links…

TODO [A] it's way better to start generalising after implementing at least two almost identical/copypasted things programmingthinking

CREATED: [2019-09-19]

[C] [2020-04-22] Will GitHub Actions support pullrequest events fr… - Page 3 - GitHub Community Forum programminggithubci

TODO [B] Tweet from @EvMill programmingjulia

CREATED: [2020-10-09]

@EvMill: "The combination of virtues that Julia offers to the computational scientist expands the universe of things that can be accomplished in a finite time by a normal human. It allows the scientist to imagine things that might not be imagined without it."

[C] [2020-06-02] Where can you use SQLite? Embedded Systems: Yes Raspberry Pi : Yes Mobile … | Hacker News programming

Browsers: yes

[D] [2018-11-18] mythmon/rust-nbodies: N-Bodies gravity simulation in Rust programmingsim

TODO [D] [2019-12-18] Software Tools for Hobby-Scale Projects programmingvps

Vultr - Dirt Cheap VPS Hosting
Since hobby projects rarely see high-volumes of traffic, the main concern is often cost rather than performance.

Vultr is my go-to solution for cheap hosting. As of this writing, the cheapest plan they offer is $2.50 a month. Although their cheapest plan defintely won’t be able to fuel your next high-powered computing project, it is a great solution when you need to host small scale tasks such as cron jobs.

[2020-04-15] (λ. borkdude) on Twitter: "Cool idea! Alternative: $ alias bbjq='bb "(json/parse-stream in true)" | bb' $ curl -s '' | bbjq '(-&gt;&gt; input (map (comp :login :author)))' ;;=&gt; ("jr0cket" "borkdude" "rymndhng" "borkdude" "OscarMarshall") babashka" / Twitter programming

[2020-04-25] Continuous Integration and Deployment programming

    def get_extension_page_firefox(driver):
        moz_profile = Path(driver.capabilities['moz:profile'])
        prefs_file = moz_profile / 'prefs.js'

        # doesn't appear immediately after installing somehow, so need to wait for a bit..
        for _ in range(10):
            if prefs_file.exists():

        addon_name = 'temporary_addon'
        # TODO ok, apparently I should add it to tips on using or something..
        addon_name = ''

        addon_id = None
        for line in prefs_file.read_text().splitlines():
            # temporary-addon\":\"53104c22-acd0-4d44-904c-22d11d31559a\"}")
            m = + r'.....([0-9a-z-]+)."', line)
            if m is None:
            addon_id =
>       assert addon_id is not None

TODO [B] [2019-12-18] Software Tools for Hobby-Scale Projects programmingjson

[B] [2018-06-19] programmingnetworktesting

[C] [2020-02-24] doom-emacs/ at develop · hlissner/doom-emacs programmingopensource

Don’t be that guy who PRs 99 whitespace adjustments around his one-line contribution.

[C] [2020-05-19] Solved: is there expression syntax to do pattern matching … - GitHub Community Forum programminggithubci

Regex cannot be used in expression for now,

for fucks sake, can't use regexes in github acitons pipelines?

[C] [2019-12-13] Show HN: Happy Hues – Curated colors in context programmingdesign

[C] [2019-12-20] Bugjail, a completely new way of debugging programmingdebug

[2020-01-31] basically, debugging database? e.g. you can trace all arguments, callers etc programmingdebug

TODO [C] use instead of ideone? programmingide

CREATED: [2019-09-21]

[B] [2020-06-10] Ask HN: Which tools have made you a much better programmer? | Hacker News programming

TODO [D] [2019-12-26] awesome-selfhosted/awesome-selfhosted: A list of Free Software network services and web applications which can be hosted locally. Selfhosting is the process of hosting and managing applications instead of renting from Software-as-a-Service providers programming

[2013-02-11] Seems like uniqueness encoded not by type system, but by 'attributes', programminglineartypes

TODO [2018-06-10] hackers guide to NN programmingnn

[2020-10-13] Prefer Fakes Over Mocks | Alexey Golub programmingtesting

[2020-09-27] . programming

Something that I’m surprised a lot of devs don’t know; there are official domains you’re supposed to use for documentation, testing, etc. They are specifically reserved by IANA for these purposes. Originally I think it was just, but they now have a list of all them:

[C] [2020-04-07] Show HN: A curated set of colour combinations programmingdesign

[C] [2020-05-17] Fragile narrow laggy asynchronous mismatched pipes kill productivity - Tristan Hume programmingdistributed

[C] [2020-05-22] Scrapism - Scrapism scraping tutorial programmingscrape

[C] [2020-01-25] fpereiro/backendlore: How I write backends programming

[C] [2020-03-31] nektos/act: Run your GitHub Actions locally programminggithubci

ok it works with CI now…

[B] [2019-11-17] Top 50 matplotlib Visualizations - The Master Plots (w/ Full Python Code) | ML+ programmingviz

[B] [2019-10-18] About GitHub Actions - GitHub Help programminggithubci

[C] [2020-05-20] Lukas Eder on Twitter: "Still one of the best explanations of covariance vs contravariance, or consumers vs producers" / Twitter programming

Still one of the best explanations of covariance vs contravariance, or consumers vs producers

[2020-05-28] javascript - Is localStorage under The Cookie Law? - Software Engineering Stack Exchange programmingprivacy

The cookie law is not actually about cookies (and its not actually called the cookie law). Its about tracking users, storing and sharing the information with third parties. Cookies are just the most popular method to track users.
If you don't want to show the "cookie warning" then just don't track the users beyond the session and don't share traffic data with third parties.
The actual directive.

[2020-09-29] on windows programmingcicircleci

  • bash works odd, powershell as well
  • had to disable setuprequires=['setuptoolsscm'] in, some ssl errors
  • how to edit stuff? vim doesn't really work the quickes was git push/git pull
  • shell history (with arrows) doesn't work

[2020-11-08] I want to know how to block IP addresses via Digitalocean? | DigitalOcean programminghosting

The simplest way to block specific IP address or ranges of them would be to set up a basic firewall using UFW. It is included with Ubuntu by default.
You can then block a specific IP address by running:
    sudo ufw deny from XXX.XXX.XX.XX

[2016-06-12] mutation testing programmingtesting

[C] [2020-05-05] Robert O'Callahan on Twitter: "Prolific rr contributor Keno Fischer has a great writeup of how the Julia project is integrating rr to capture user bugs." / Twitter programmingjuliadebug

Prolific rr contributor Keno Fischer has a great writeup of how the Julia project is integrating rr to capture user bugs.

[C] [2019-12-08] Coroutines, exceptions, time-traveling search, generators and threads: Continuations by example programming

TODO [C] Tweet from @yoshikischmitz filtering data accept/reject programmingml

CREATED: [2020-07-05]

@yoshikischmitz: Are there any apps out there for quickly filtering arbitrary lists of data w/ a simple "reject" and "accept" gesture? Thinking of something like Tinder but I make the cards, and can get a list of the accepted ones.

TODO [D] [2020-01-01] pavelfatin/toyide: Modern IDE plus custom programming languages with interpreters and compilers programming

[C] [2020-02-16] Elastic tabstops - a better way to indent and align code programmingcodestyle

[C] [2020-02-19] Open Source Design programming

TODO [D] [2019-11-05] Web Scraping With Rust - codeburst programmingscrapescrapyroo

[2019-11-18] A great tool for this is the Chrome extension Selector Gadget programmingscrapescrapyroo

[2020-07-07] against testing | Lobsters programmingtesting

I don’t write tests to avoid bugs. I write tests to avoid regressions.

TODO [C] Guide to Web Automation - By programming

[2019-05-06] A Guide to Rust Graphics Libraries as of 2019 /r/rust programming

[2019-12-19] Discovering Hard Disk Physical Geometry through Microbenchmarking « Blog programminghardwareperformance
very impressive and thorough analysis
lots of detailed plots and pretty clear explanations

[2018-12-15] Tweet from Steve Canon (@stephentyrone), at Dec 15, 16:56 programmingtesting

I bring this up every time someone thinks “full code coverage” means anything at all, but:

double sin(double x) {
  return x;

void testSin() {
  assert( sin(0) == 0 );

[C] [2018-03-19] CIERRORTAG in comment, and then grep it programmingtesting

[C] [2020-02-05] Working example of sub · Issue 694 · stedolan/jq programmingjq

You have fallen in the main trap in jq: the comma IS NOT an arguments separator in function calls.
Allways use the semi-colon!

TODO [B] [2019-12-29] Web scraping in 2018 — forget HTML, use XHRs, metadata or JavaScript variables programmingscrape

This approach can be used for scraping data from Airbnb. You don’t even need to open the page in a headless browser, you just need to get the token first and then use their API:

DONE [B] [2019-09-01] scrapinghub/portia: Visual scraping for Scrapy programmingscrapy

Portia is a tool that allows you to visually scrape websites without any programming knowledge required. With Portia you can annotate a web page to identify the data you wish to extract, and Portia will understand based on these annotations how to scrape data from similar pages.

[2019-02-14] splash couldn't handle deliveroo main page. maybe should have waited longer though?? programmingscrapescrapy

[2019-02-13] Self-contained minimum example script to run scrapy programmingscrapy

[D] [2018-12-09] spaCy · Industrial-strength Natural Language Processing in Python programmingnlpparsing

[2019-02-21] ok, pretty interesting, but suitable for proper natural language, not my kind of logging… programmingnlpparsing

[D] [2019-08-17] public-apis/public-apis: A collective list of free APIs for use in software and web development. programming

[2019-04-08] Syntactor programmingjsonide

[2019-03-06] Mobile-Friendly Test - Google Search Console programmingweb

[2019-06-13] C++Now 2019: Kris Jusiak “Dependency Injection - a 25-dollar term for a 5-cent concept” /r/cpp programming

  • DI is just a fancy term for using constructors (25 dollar concept…)
  • DI can be easily misused
  • DI doesn't require a library/framework
  • DI library/framework helps with the wiring mess

[D] [2019-04-27] Rust cheat sheet programmingrust

[2019-08-11] dariusk/corpora: A collection of small corpuses of interesting data for the creation of bots and similar stuff. programming

This project is a collection of static corpora (plural of "corpus") that are potentially useful in the creation of weird internet stuff. I've found that, as a creator, sometimes I am making something that needs access to a lot of adjectives, but not necessarily every adjective in the English language. So for the last year I've been copy/pasting an adjs.json file from project to project. This is kind of awful, so I'm hoping that this project will at least help me keep everything in one place.

Nullable strings Vs unset column in databade programmingdb

CREATED: [2020-04-08]
Most of this advice is stuff they tell you in school that doesn’t matter at all in reality.
Real advice:
- Normalize until it hurts, denormalize until it works. (I.e. prefer normal forms but denormal will have better performance.)
- You need nullable dates and nullable numbers. You never need a nullable string. If you must distinguish blank string from unset, add a column called “unset”. Using null for this will just result in bad data entry.
- Names should be stored as display_name, first_name, and last_name. A display name is not the same as just first plus last. They have different purposes, so don’t shove them together.
- When in doubt, just have a column full of JSON and figure it out later.
- Offset pagination is bad for performance. Avoid it at all costs unless you want some spider indexing page 10,432 of your archives to eat all your CPU.

[C] [2019-12-11] A guide to Web Scraping without getting blocked programmingscrape

[2020-03-09] sqldiff can generate diff programmingsqlite

[B] [2018-08-27] A Road to Common Lisp / Steve Losh /r/lisp programming

I've always liked this example, from _Practical Common Lisp_ (2007).
> `DOLIST` is similar to Perl's `foreach` or Python's `for`. Java added a similar kind of loop construct with the "enhanced" `for` loop in Java 1.5, as part of JSR-201. Notice what a difference macros make. A Lisp programmer who notices a common pattern in their code can write a macro to give themselves a source-level abstraction of that pattern. A Java programmer who notices the same pattern has to convince Sun that this particular abstraction is worth adding to the language. Then Sun has to publish a JSR and convene an industry-wide "expert group" to hash everything out. That process--according to Sun--takes an average of 18 months. After that, the compiler writers all have to go upgrade their compilers to support the new feature. And even once the Java programmer's favorite compiler supports the new version of Java, they probably still can't use the new feature until they're allowed to break source compatibility with older versions of Java. So an annoyance that Common Lisp programmers can resolve for themselves within five minutes plagues Java programmers for years.

DONE [C] Good summary on ML inerpretability programmingml

CREATED: [2019-07-10]

[C] [2020-12-11] Monads and GATs in Nightly Rust | Hacker News programming

We don't need new languages without features: it has already been proven that you only need exactly one feature in your programming language to write any program possible. Look up single instruction languages for proof that it is possible and such single features languages exist.
What we need are languages with many features that are easy to use to create complex programs that are still easy to understand.

[C] [2018-12-23] solveset is pretty useful!! programmingsympy

[2019-06-23] Automate the Boring Stuff with Python programmingautomation
I guess it's good for other people who are not that good in programming, but I know all of it already

TODO [C] [2019-01-27] Give me 15 minutes & I'll change your view of GDB programminggdb

Sure, the thing that first showed me that gdb is more than just a console debugger you can use over ssh was this video few years ago:
CppCon 2015: Greg Law " Give me 15 minutes & I'll change your view of GDB"

[2019-02-01] meh seriously?? people on cppcon don't know that gdb has got tui mode? that's pretty mad. programminggdb

TODO [B] [2020-07-27] Apache Arrow 1.0 | Hacker News programmingfficachew

Apache Arrow is a nice in-memory data structure finding its usage in wide variety of projects; especially in data science due to its feather format which can be used to save data frame from memory to the disk.

[C] [2020-05-16] JS Snippets — MacroPy3 1.1.0 documentation programmingffi

[2021-01-19] IPFS Support in Brave | Hacker News programming

TODO [B] [2020-12-07] Command Line Interface Guidelines programmingcli

TODO [C] [2020-10-13] Kate (but spooky) on Twitter: "💡FAQ about displaying stuff in a terminal" / Twitter programmingcli

FAQ about displaying stuff in a terminal

[2020-12-27] tinysearch/tinysearch: 🔍 Tiny, full-text search engine for static websites built with Rust and Wasm programmingsearch

TODO [C] [2020-11-02] Tim Yao on Twitter: "@karlicoss I messed around with awk and came up with this script: ``` NR &gt; 1 { printf (DEBUG &amp;&amp; hiding) ? "\r" : "\n" } { printf "%s", $0; hiding=/DEBUG/ } END { printf "\n" } ``` It advances to a new line only if the current and previous lines didn't have DEBUG." / Twitter programminglogging

 messed around with awk and came up with this script:

NR > 1 { printf (/DEBUG/ && hiding) ? "\r" : "\n" }
{ printf "%s", $0; hiding=/DEBUG/ }
END { printf "\n" }

It advances to a new line only if the current and previous lines didn't have DEBUG.

TODO [2020-12-29] Top 10 Python libraries of 2020 you should know about | Tryolabs Blog programminghpi

PrettyErrors does only one thing and does it well. In terminals that support colored output, it transforms the cryptic stack traces into something that is much better suited for parsing with our puny human eyes. No more scanning the entire screen to find the culprit of your exception… You can now find it at a glance!

[A] [2020-06-10] Create diagrams with code using Graphviz | Hacker News programminggraphvizviz

1. For manual editing, dot -Tx11 displays the graph in a window and updates it automatically whenever you save. So you can have an editor window open and the dot window and see the results of every tweak.

[2021-02-09] eh, I mean ok, but it's not very interactive. although probably works better than entr for dot -> png? programminggraphvizviz

STRT [C] [2020-01-20] A Totally Polished and not-at-all half-baked Take on Static vs Dynamic Typing • Buttondown programmingmypy

STRT [C] [2020-01-20] A Totally Polished and not-at-all half-baked Take on Static vs Dynamic Typing • Buttondown programming

No, dynamic type systems are not inherently more open, by Alexis King. King is a PLT (programming language theory) researcher and an expert in both static and dynamic languages,

TODO [C] [2020-12-05] Launch HN: Deepnote (YC S19) – A better data science notebook | Hacker News programmingnotebook

Quick summary: - real time collaboration - integrations (databases, S3 buckets, environment variables) - persistent (and much much faster) filesystem - hardware doesn't shut off - many more features like variable explorer or automatic visualizations - much nicer interface so you can share with non-technical people - paid plan so you can build your data science team around it - no GPU/TPU machines yet, but that's coming

deepnote vs google colab

TODO [C] [2020-12-10] Implementing Rust's dbg! in Python programmingpythonrust

Implementing Rust's dbg! in Python

TODO [C] [2020-10-30] Manually running a workflow - GitHub Docs programming

In this article
    Running a workflow on GitHub
    Running a workflow using the REST API
To run a workflow manually, the workflow must be configured to run on the workflow_dispatch event. For more information, see "Events that trigger workflows."

[C] [2020-11-13] The Shape of Code » Evidence-based software engineering: book released programming

[2019-05-27] Tweet from Виталий Брагилевский (@bravit) programmingfun

Виталий Брагилевский (@_bravit) Tweeted:
@SrgGrch У программистов одна проблема — они тупые. Цель разработчиков языков программирования в том, чтобы этот факт не сильно мешал.

[2019-10-19] Empathy and subjective experience in programming languages /r/haskell programmingempathy

[D] [2019-01-27] Daibhi O Domhnaill on Twitter: "Лайфхак: если во время собеседования на вопрос "какова сложность этого алгоритма?" ответить "а что, тормозит что ли? да перенесите на SSD и все дела", то сразу возьмут техническим директором" / Twitter programming

TODO [C] add favoriting with javascript? programminghackernews

CREATED: [2020-02-15]

TODO [D] crudini whitespace around option programming

TODO [D] [2019-08-31] circleci SSH debugging programmingcircleci

[D] rant: fucking hell, github actions are impossible to configure programmingwebextgithubci

CREATED: [2020-05-19]

there is no easy way to self distribute extensions

  • CWR reviews take ages, also tedious to figure out, especially in the early dev stage

users have to do it manually

  • users that are not logged in are not allowed to see the artifacts
    both github actions/circle ci
  • alternative
    imagine if instead of that crap, APIs etc, I could simply copy a file to a shared filesystem or something.

TODO [D] write a blog post of all the different kinds of testing I was ever doing? programmingtestingtoblog

CREATED: [2019-06-29]

TODO [D] steps are isolated so I can't use pipenv properly… programminggithubciconfigs

CREATED: [2020-04-18]

TODO [D] actions/setup-python@v1 – didn't work with act, failed at finding python versions programminggithubciconfigs

CREATED: [2020-04-18]

debugging is impossible, it's some typescript shit that's unclear how to debug

TODO can anyone explain why does it have to be this declarative bullshit and not a DSK or a subset of a real language like skylark? programmingtoblogcigithubci

CREATED: [2021-01-24]

I'm sure I'm missing out some imortant context, so please point me

TODO [D] [2019-10-13] Similar Subreddits To r/fossdroid By User Overlap programmingreddit
build a tool that collects all your subreddits (bookmarklet??) oe just ask to copy list, queries them and shows new ones

TODO [D] update about 'ci' is tedious, but maybe deserves a separate post programmingtoblogcigrasp

CREATED: [2019-07-03]

TODO [D] usecase I can't do programminggithubci

CREATED: [2020-04-18]

run build on matrix, then deploy artifacts.

I want for all builds to succeed, then deploy

TODO [D] adding directory to path to have effect for the rest of pipeline programminggithubcitoblog

CREATED: [2020-04-18]
# fuck me.
- run:
    echo "::add-path::$HOME/.local/bin"

at least now I can use pip install –user!

[2019-09-04] shell - Usage of dash (-) in place of a filename - Unix & Linux Stack Exchange programmingcli

Using - as a filename to mean stdin/stdout is a convention that a lot of programs use. It is not a special property of the filename. The kernel does not recognise - as special so any system calls referring to - as a filename will use - literally as the filename.

TODO hmm. observable notebooks are reactive? wonder if jupyter can be too programmingjypyterobservablenotebooks

CREATED: [2021-01-14]

TODO can embed calculations directly in MD programmingobservable

CREATED: [2021-01-14]

TODO [C] Bridge setup with Docker · tulir/mautrix-facebook Wiki · GitHub programming

TODO [C] community maintained scrapers? programmingwildcardpromnesia

CREATED: [2020-12-23]
@Glench: @karlicoss Don't forget that this already exists in Gmail.js!

TODO [B] Tweet from @tryolabs programmingdashboardhpiviz

CREATED: [2020-12-22]

This library helps discover correlations and patterns in high-dimensional data using parallel plots and other graphical ways to represent information.

TODO [C] programmingscraping

CREATED: [2020-12-22]
A Smart, Automatic, Fast and Lightweight Web Scraper for Python

TODO [B] programmingemacsjs

CREATED: [2021-01-07]

TODO [C] Tweet from @rsnous programming

CREATED: [2021-01-07]

@rsnous: i think people overrate the difficulty of doing a FUSE filesystem because it's exotic; it might not actually be that much harder than making a usable CLI or a reliable file-tree-watching thing. when you make a filesystem, you don't have to design a frontend, for instance

TODO [B] programmingpythoncaching

CREATED: [2021-01-13]
Extensible memoizing collections and decorators

TODO [D] programming

CREATED: [2020-12-29]
A scraping command line tool for the modern web 

(seems that not updated)

TODO [D] [2018-11-09] about syntactically sharing code with JS programmingtoblog

TODO [C] [2021-01-15] A tour of Self | Lobsters programmingsmalltalk

TODO [C] [2021-01-26] - programming is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet, on web pages, in email messages, and beyond.

TODO [C] [2020-12-22] Kaitai Struct: declarative binary format parsing language programming

A new way to develop parsers for binary structures.
Declarative: describe the very structure of the data, not how you read or write it
Language-neutral: write once, use in all supported languages:

TODO [C] [2021-01-18] Firemoon777/tgfs: telegram attachments in FUSE filesystem programming

TODO [C] [2021-01-01] Dashboard - Build Integrations 10x-100x Faster programminggraphql

graphql api explorer?

TODO [D] [2020-07-11] CRDTs: The Hard Parts [video] | Hacker News programming

[D] [2020-04-06] Ask HN: What are your favorite low-coding apps / tools as a developer? | Hacker News programming

[D] [2020-06-21] Development with Nix: Python - Thomaz Leite programmingpythonnix

[D] [2020-03-07] gitsec — gitsec documentation programming

[C] [2019-12-30] tiangolo/fastapi: FastAPI framework, high performance, easy to learn, fast to code, ready for production programminghpi

Interactive API docs
Now go to

You will see the automatic interactive API documentation (provided by Swagger UI):

[2019-12-30] tiangolo/fastapi: FastAPI framework, high performance, easy to learn, fast to code, ready for production programminghpi

Conversion of output data: converting from Python data and types to network data (as JSON):
Convert Python types (str, int, float, bool, list, etc).
datetime objects.
UUID objects.
Database models.
...and many more.

[D] [2019-10-05] Siderus - decentralized storage programming

[2019-11-21] eh, not very popular anywhere, unclear what are they doing programming

[D] [2020-01-16] Hypermodeling Hyperproperties • Hillel Wayne programming

[D] [2020-01-08] Write less code programming

Write less code
The most important metric you're not paying attention to

[D] [2020-02-12] codelucas/newspaper: News, full-text, and article metadata extraction in Python 3. Advanced docs: programming

News, full-text, and article metadata extraction in Python 3

TODO [D] [2019-12-29] danistefanovic/build-your-own-x: 🤓 Build your own (insert technology here) programming

TODO [D] [2019-02-04] stanfordnlp/stanfordnlp: Official Stanford NLP Python Library for Many Human Languages programmingnlp

TODO [D] [2019-02-11] FunctionalPlus/ at master · Dobiasd/FunctionalPlus programming

[D] [2019-05-30] Roman Elizarov on Twitter: "I really wish all languages move to suspend instead of async/await. The advantage is clear. It is disturbing to see that some languages are still adding async/await even as a better way was already obviously discovered.…" programming

[D] [2019-06-20] PyCharm 2019.1 EAP 5 | PyCharm Blog programming

All-new Jupyter Notebooks

[D] [2019-06-20] The Mypy Blog: Mypy 0.710 Released: New Semantic Analyzer programming

[D] [2019-07-03] Color Selector - Random and Unique Colors programmingdesign

[D] [2019-07-07] Pull requests not triggering build - Build Environment - CircleCI Discuss programmingcircleci

[D] [2019-07-07] Show test results for prospective merge of a Github | CircleCI Ideas programmingcircleci

[D] [2019-10-06] Host Your Site Under Your Domain on IPFS programming

Set up DNS

TODO [D] [2019-09-20] Modern C programming

TODO [D] [2019-10-09] Railway Oriented Programming | F# for fun and profit programming

TODO [D] [2019-07-30] mahmoud/boltons: 🔩 Like builtins, but boltons. 230+ constructs, recipes, and snippets which extend (and rely on nothing but) the Python standard library. Nothing like Michael Bolton. programming


[D] [2019-09-10] Is this project dead? · Issue 883 · scrapinghub/portia programmingscraping

Provided Portia is no longer been offered by Scrapinghub, I think the company is no longer funding the maintenance of this project.

TODO [D] [2019-08-27] Should small Rust structs be passed by-copy or by-borrow? programming

Next I decided to crack open VTune. Here the difference was revealed plain as day!

[D] [2020-02-11] Event-Driven Architecture | Hacker News programming

snovv_crash 4 minutes ago [-]
Event driven architecture is like GOTOs but with data instead of execution flow. Throw your data to the wind, someone somewhere will handle it (I hope).

[D] [2019-08-17] JSON Blob | create, edit, view, format, and share JSON programming

[D] [2019-05-26] The whole web at maximum FPS: How WebRender gets rid of jank - Mozilla Hacks - the Web developer blog programming

[D] [2018-11-27] StackExchange/blackbox: Safely store secrets in Git/Mercurial/Subversion programming

[D] [2018-11-26] thma/LtuPatternFactory at 1be9521591f8a7f06b35a7ae5929e7beaf0b8e43 programming

[D] [2019-12-02] avinassh/haxor: Unofficial Python wrapper for official Hacker News API programminghackernews

[D] [2019-12-02] mvanveen/hncrawl: A scrapy-based Hacker News crawler. programminghackernews

[D] [2019-12-02] donnemartin/haxor-news: Browse Hacker News like a haxor: A Hacker News command line interface (CLI). programminghackernews

[D] [2019-11-23] optimization - Step-by-step example of reverse-mode automatic differentiation - Cross Validated programming

Step-by-step example of reverse-mode automatic differentiation

good explanation of automatic differentiation

[D] [2020-01-06] crev-dev/cargo-crev: A cryptographically verifiable code review system for the cargo (Rust) package manager. programming

[D] [2020-02-12] The First Time SICP Blew My Mind | Lobsters programming

"When will you learn? Closures are a poor man's object."

[D] [2019-09-21] vasanthv/jsonbox: A Free HTTP based JSON storage. programmingjson

[D] [2019-11-22] CppCon/CppCon2018: Slides and other materials from CppCon 2018 programming

[D] [2019-12-07] W3C Recommends WebAssembly to push the limits for speed, efficiency and responsiveness | Lobsters programming

TODO [D] [2019-12-20] Other examples of “standing-on-the-shoulders-of-giants” tools? | Lobsters programming

This was a tool written by three of the smartest people in the field at the time (Aho, Weinberger, Kernighan) to solve a problem they had often.
awk is still an excellent tool for exploring unstructured, semi-structured, and record-based data, and can be abused for lots of other use cases. Despite it’s age, it still includes many features that people expect from modern languages (hash tables, not having to pre-declare variables, easy use of regexes). If you know awk, you can throw out a lot of other shell tools, such as grep, cut, head, tail, and many more. Where I might have reached for a dozen or two line Python script, I often just write a dozen or two characters of awk.
“The AWK Programming Language” is one of the clearest and most concise technical books I’ve ever read, and definitely the best ROI I’ve gotten from reading any book.

TODO [D] [2019-12-21] elasticsearch-formal-models/ZenWithTerms.tla at master · elastic/elasticsearch-formal-models programming

[C] [2021-01-01] Omar Rizwan programming

[D] [2020-04-06] Old CSS, new CSS / fuzzy notepad programming

[D] [2019-07-29] aqLists: unobtrusive DHTML and the power of unordered lists programming

TODO [D] [2019-09-06] Node-RED programming

[D] [2019-09-21] Explanations - Introduction & Table of Contents (about X server) programming

TODO [D] [2019-09-10] Hugo and IPFS: how this blog works (and scales to serve 5,000% spikes instantly!) | With Blue Ink programmingipfs

Fun fact: if you’re reading this article, you’re using the distributed web. Since mid-February 2019, this blog, With Blue Ink, has been served through IPFS and the Cloudflare Distributed Web Gateway.

[D] [2020-01-19] Kieran McHugh on Twitter: "Things I did but don’t do any more… - Say “guys” - Call things “crazy” or “mad” - Call myself “OCD” - Use “master/slave” technical terminology - Use “whitelist/blacklist” I don’t miss any of them and it actually feels good. Words matter!" / Twitter programming

Not a native speaker here. What’s an alternative for whitelist/blacklist?
Allow list and block list
Which is also more descriptive than white/black list. It tells you what it does!

[D] [2020-01-19] Kieran McHugh on Twitter: "Things I did but don’t do any more… - Say “guys” - Call things “crazy” or “mad” - Call myself “OCD” - Use “master/slave” technical terminology - Use “whitelist/blacklist” I don’t miss any of them and it actually feels good. Words matter!" / Twitter programming

Interested to know what you use rather than master/slave and black/white list
Kieran McHugh
Depends on context, but Primary/Replica is an example. Instead of saying “merchant whitelist” I would say “allowed merchant list”.

[D] [2020-01-14] CC2650STK SimpleLink™ Bluetooth low energy/Multi-standard SensorTag | programming

[C] [2020-01-07] ignore - Rust programming

The ignore crate provides a fast recursive directory iterator that respects various filters such as globs, file types and .gitignore files. The precise matching rules and precedence is explained in the documentation for WalkBuilder.

[D] [2020-04-07] linux - Moving a directory atomically - Stack Overflow programming

Since Linux 3.15, the new renameat2 system call can atomically exchange two paths on the same file system. However, there’s not even a glibc wrapper for it yet, let alone a coreutils way to access it.

[D] [2020-04-08] Molecular Flipbook programming

Molecular FLipbook is a free and open-source molecular animation program. The animation toolkit is based on the GPL-license Blender Game Engine.

[D] [2020-04-12] start [the libarynth] programming

The ever-growing Libarynth is almost exactly what its name implies – a hybrid between a library and a labyrinth, a maze of pages in various stages of completion.

[D] [2020-05-12] Writing Python inside your Rust code — Part 3 - Mara's Blog programming

Writing Python inside your Rust code

[D] [2020-05-19] Test coverage only matters if it's at 100% | programming

[D] [2020-05-28] Tab Completion programming

Strings Shouldn't Be Iterable By Default

[D] [2020-07-06] arrays - Merging Yaml arrarys nested - Stack Overflow programmingconfigs

fucking yaml..

TODO [D] [2020-12-14] moreutils programming

ts: timestamp standard input

[C] [2020-11-30] I am an 80 column purist | Lobsters programming

The solution is to use tabs for indentation but spaces for alignment. So for the second line of your code example, tabs would be used up to the indentation level of int, and spaces would be used from that point on to align float.

[D] [2019-11-23] 1/(1 - 1/(1 - 1/(1 - Dan Piponi))) on Twitter: "@RAnachro There is a sense in which automatic integration has been completely solved. There's a program J s.t. if you write a program F that computes your f to any specified number of digits, J(F) can compute ∫f(x)dx (over [0,1] say) to as many digits as you like." / Twitter programming

There is a sense in which automatic integration has been completely solved.

[D] [2019-11-20] 🔎Julia Evans🔍 on Twitter: "thinking about what makes programming exercises good. So far I have: * I can easily see how it relates to my life * I learn something new * I can do the exercise in less than 3 hours * No complicated setup required" / Twitter programming

hinking about what makes programming exercises good. So far I have:
** I can easily see how it relates to my life
** I learn something new
** I can do the exercise in less than 3 hours
** No complicated setup required

[D] [2020-06-01] Testing CSS3 pseudo-classes on SVG elements programmingsvg

[D] [2020-06-08] Interactive map of Linux kernel programming

[D] [2020-06-14] Performance/Avoid SQLite In Your Next Firefox Feature - MozillaWiki programming

[D] [2020-04-07] Hillel on Twitter: "@JYCabello All of them" / Twitter programming

What testing/checking strategy SQLite follows?
All of them

[D] [2020-04-16] Guix: A most advanced operating system programmingconfigs

“Rolling out one’s own programming language” is a very common fallacy in software development. It struck hard many projects where the configuration or programming language was:

    limited in expressiveness and features;
    yet another language to learn (but not something very useful and reusable) which requires some effort on the user end and thus creates an entry barrier;
    harder to read (at least at the beginning);
    and often with poor performance.

relevant to configs-suck

[D] [2019-12-24] Operators – Liquid template language programminghuginn

[D] [2020-09-12] From Rust to TypeScript | Hacker News programmingerrors

The fundamental difference between Rust's approach and Java-style checked exceptions arises when those three functions have different error types. In Java, you would annotate the function with every possible exception that the function can throw. In Rust, a library (or module with a library) would normally design its own Result type to encompass every error that the library/module can throw, and use that type on every error-producing function (you could reproduce the Java approach by defining a new Result type for each function, but I've never seen anyone bother with that).

[D] [2020-06-18] Why is there a “V” in SIGSEGV Segmentation Fault? | Hacker News programming

And by using LD_PRELOAD magic, this can even be retrofitted onto existing applications without changing or recompiling them.

[D] [2020-06-17] 👩‍💻 DynamicWebPaige @ 🏠 on Twitter: ""We announce the release of a @ProjectJupyter kernel for SQLite, which supports the complete SQLite syntax as well as some extra operations such as opening or closing database files, or visualizing the data in different ways using Jupyter magics."" / Twitter programming

"We announce the release of a @ProjectJupyter
 kernel for SQLite, which supports the complete SQLite syntax as well as some extra operations such as opening or closing database files, or visualizing the data in different ways using Jupyter magics."

[D] [2020-05-21] (2) Jared Forsyth on Twitter: "Here's a visual comparison of the data structures underlying three different "collaborative text editing" algorithms. - yjs uses a doubly-linked list of nodes - mine uses a tree - automerge uses a transaction log (and has in-memory caches for perf)" / Twitter programming

Here's a visual comparison of the data structures underlying three different "collaborative text editing" algorithms.
- yjs uses a doubly-linked list of nodes
- mine uses a tree
- automerge uses a transaction log (and has in-memory caches for perf)

TODO [D] [2021-01-07] PixiJS programming

TODO [B] [2021-01-03] REPL-Based Development Demo on Vimeo programmingtowatchrepl

TODO [C] good examples of vertical alignment in myinfra programmingcodestyle

CREATED: [2021-02-04]
  • demonstrate how black messes it up
  • suggest the rule to disable it

TODO [C] join pharo discord (later) programmingsmalltalk

CREATED: [2021-02-07]

TODO [B] arranging code in grid would be very convenient at times (e.g. typeclass/data type axis) programming

CREATED: [2021-02-03]

TODO [C] programming

CREATED: [2021-01-30] - Subtyping is good, state is fine when used with care, inheritance is a Bad Plan, composition is a Good Plan, algebraic datatypes are objectively morally correct. I can't think of any more takes

TODO [B] developing under windows… programmingwindows

CREATED: [2021-02-16]
  • chocolatey
  • vs code
  • git + can use bash inside git

[B] [2021-02-16] always use TEXT; STRING does implicit type conversions programmingsqlite

[C] [2021-01-31] jamalex/notion-py: Unofficial Python API client for programming

TODO [B] [2021-02-03] Apache Arrow 3.0 | Hacker News programmingffi

[B] [2021-02-16] #🧠-learning programmingopensource

Not an Athens developer, but hopefully can give some general advice..
Generally open source projects welcome contributions, especially if the contribution complies with project guidelines, covered with tests, doesn't contain unrelated changes, etc.. However there are some things to consider:

One of the biggest factors is maintainer's time, and often guiding a person to improve their code takes more time & energy than implementing the same from scratch.
I guess for this the only advice is to read guides carefully, search stuff & ask elsewhere if possible, so you would ideally only ask the maintainers for things specific for the project.
Basically whatever you would do in general when you're doing independent learning. Although of course the author might be happy to guide you for small things -- which is great too. But good to keep this in mind.

Another factor to keep in mind is that the developers might want to keep the project compact and minimal in terms of features.
The reason is that generally the more features you have, the more code you have ===> the more likely it would break which is a burden on the maintainer.
Plus depending on the project features that maintainer isn't using themselves would end up poorly tested (yet another reason to make sure you have tests with your contribution if possible).
To avoid this it's best to ask the maintainers whether the feature would be welcome in advance. It's very sad to work on something for a week to find out they don't want to merge it. In some cases you can work off a fork, but not always.

Apart from this, I can't imagine the cases when bugfixes or extra test coverage won't be welcome. Which could also be a great way to get familiar with a new project (or even programming language!).

TODO [B] [2021-02-16] LambdaP/opensource-challenges: A list of resources to think about free software and open source challenges programmingopensource

TODO [C] [2021-02-11] Observable’s not JavaScript / Observable / Observable programming

TODO [C] [2021-02-11] Introduction to require / Observable / Observable programming

TODO [C] hmm, not clear how sliding average works for influx… I guess it sort of 'smoothens' stuff a bit programminginfluxdb

CREATED: [2021-02-13]

TODO [C] Cambria adversarial interop programming

CREATED: [2020-10-24]

E.g. integrate with guthub, but use custom software for it

TODO [C] [2021-02-06] Show HN: LibreTranslate – Open-source neural machine translation API | Hacker News programming

TODO [C] [2021-02-22] Cross-Database Queries in SQLite | Hacker News programming

TODO [C] [2021-02-19] Glamorous Toolkit programmingsmalltalk

TODO [C] [2021-02-17] Events that trigger workflows - GitHub Docs programmingcipromnesiahpi

[C] [2021-02-11] KDAB/hotspot: The Linux perf GUI for performance analysis. programmingperformance

[C] [2020-09-09] lets-plot/ at master · JetBrains/lets-plot programmingdatavizpython

  • [2021-03-15] so the idea that it's similar to R's ggplot2 which uses 'grammar of graphics', apparently very declarative and compositional?

[D] [2020-11-14] Write once. Deploy everywhere.— BeeWare programmingpythonandroid

Write your apps in Python and release them on iOS, Android, Windows, MacOS, Linux, Web, and tvOS using rich, native user interfaces

[D] [2020-06-11] sourcehut hub programming

[C] [2020-07-23] Inside a Collaborative Text Editor — Caolan McMahon programmingcrdt

some nice CRDT illustrations

[C] [2020-07-22] Write code that is easy to delete, not easy to… — programming is terrible programming

TODO [C] [2020-12-10] CI for performance: Reliable benchmarking in noisy environments programmingperformance

TODO [C] [2020-06-19] Conor White-Sullivan on Twitter: "Accidentally stayed up until 7am on a videocall with @girba learning about Pharoah Smalltalk and #gtoolkit Have not been this excited about a new programming paradigm since I learned Clojure. Amazing amazing tool they have, with almost no on-boarding yet. Just how I like it!!" / Twitter programmingsmalltalk

Accidentally stayed up until 7am on a videocall with @girba
 learning about Pharoah Smalltalk and #gtoolkit
Have not been this excited about a new programming paradigm since I learned Clojure.
Amazing amazing tool they have, with almost no on-boarding yet.

[2016-08-11] volatile memory? programmingjava

acquire/release синхронизированные доступы, частичные гарантии на ordering, без sequential consistency, средне тяжелые на железе
volatile сигхронизированные доступы, полные гарантии ordering, sequential consistency, очень тяжелые на железе

[2016-10-02] Bridge: composition + pointer to the implementation passed in the constructor programming

class Car {
  public Car(Engine *engine) {

class SportCar extends Car {
  public SportCar() {
    super(new SuperSportEngine());

essentially Pimpl, but implementations might be different

[2016-05-14] Annotations vs marker interfaces programmingjava

Annotations can be allowed to only live in compile time
Annotations are not inherited (e.g. if A is Serializable and B extends A, B is automatically Serializable, which might not be the case)
Annotations have to be checked with reflection, whereas marker interfaces can be checked by compiler

[2015-11-09] kill -QUIT <pid> to dump threads state programmingdebuggingjavajvm

[D] [2016-08-07] java 9 features programmingjava

Jigsaw: modules
Immutable collections
new HTTP module (+websockets?)
process control

[C] [2016-09-22] Getters can be used in method references (whereas fields can't) programming

[C] [2015-11-28] wildcard generics programmingjava

B extends A
C extends B

List<? extends A> could be a List<A> or List<B> or List<C>

void consumer(List<A> list);

if we want to pass List<B> to consumer, we have to create a new list since lists are not covariant on the argument type

solution: void consumer(List<? extends A> List)

[B] [2016-04-01] static constructor vs regular constructor programmingoop

  • can be named
  • you can cache objects
  • extra validation:
    no simple way to validate input before delegating this call
DeleteMessagesTask(@NonNull AccountComponent accountComponent, @NonNull Bundle bundle) {
  final SolidList<Message> messages = bundle.getParcelable(KEY_MESSAGES);
  // TODO throw if null? maybe something specific, not just NPE?
  assert messages != null;
  this(accountComponent, messages);

[C] [2016-10-30] Java: good and bad programmingjava

good programmingjava

  • JVM
    • interop with other JVM languages
    • portable
  • well defined standard:
    • safe semantics
    • concurrency
  • community
  • libraries

Bad programmingjava

  • super call goes first
    • use static method which takes the parameters? Problem with two arguments, although we could make a private constructor for that…
  • no real notion of immutability
  • no nullable types
  • no generics declaration site variance (producers/consumers)
    • example: immutable Stream<T>, method which returns Stream<R>. If we override it as List in java, there is no way to return List<R>
  • no sum tupes/closed classes (enums are the closest alternative but have no states)
    • if we make interface private, it is hidden from outside
    • alternative: factory methods, enum methods take 'state' as argument
  • no type synonims
  • no 'const' keyword

? programmingjava

  • lack of operators overloading (but sometimes it makes sense)
  • GC: both good and bad

[C] [2021-03-06] actions on forked repository: programminggithubci

[2021-03-06] right programminggithubci

Pull request events for forked repositories
Note: Workflows do not run on private base repositories when you open a pull request from a forked repository.
When you create a pull request from a forked repository to the base repository, GitHub sends the pull_request event to the base repository and no pull request events occur on the forked repository.
Workflows don't run on forked repositories by default. You must enable GitHub Actions in the Actions tab of the forked repository.

TODO [B] would be nice to have a tool to explore someone's pinboard bookmarks… maybe in gephi or something programmingpinboard

CREATED: [2021-03-25]

or lightweight promnesia marks?

[D] [2021-03-06] X programming

In my opinion, one killer feature of VSCode is the ability to connect to WSL, remote server and Docker container.
As someone mainly developing on WSL2, I use this feature everyday. I only use Idea when I need to use Java or Kotlin, because its language support is really good.

[B] [2021-03-06] echo '' | fzf –print-query –preview 'jq {q} input.json' This was posted t… | Hacker News programmingjqjson

    echo '' | fzf --print-query --preview 'jq {q} input.json'
This was posted the last time this came up.

[C] [2021-04-08] text processing - Can grep output only specified groupings that match? - Unix & Linux Stack Exchange programminggrep

grep -oP 'foobar \K\w+' test.txt

extract match only with grep

[C] [2021-04-04] Write-Ahead Logging programmingsqlite

Beginning with version 3.22.0 (2018-01-22), a read-only WAL-mode database file can be opened if the -shm and -wal files already exists or those files can be created or the database is immutable.

[C] [2021-02-16] Building Rich Terminal Dashboards | Hacker News programmingcli

[C] [2020-08-01] jamiebuilds/tinykeys: A tiny (~400 B) & modern library for keybindings. programming

TODO [C] programming

CREATED: [2020-09-07]

TODO [B] [2020-05-18] cookiengineer/stealth: Stealth - Secure, Peer-to-Peer, Private and Automateable Web Browser/Scraper/Proxy programming

TODO [C] [2021-04-30] Introduction to Computational Thinking programmingjulia

TODO [C] using Heroku for deploying and demos? programming

CREATED: [2020-02-02]
Approaching version 1.0 of Meetable, my open source events ... • Aaron Parecki
Today I worked on streamlining the installation process for Heroku, and it’s now installable in under 5 minutes, no command line required! Try it out!

[D] [2020-02-19] Questions you can ask about compensation - Julia Evans programmingjob

TODO [C] [2021-05-04] Simon Willison on Twitter: ""Hosting SQLite databases on Github Pages" is absolutely brilliant: it adds a virtual filesystem to SQLite-compiled-to-WebAssembly in order to fetch pages from the database using HTTP range requests" / Twitter programmingsqlite

"Hosting SQLite databases on Github Pages" is absolutely brilliant: it adds a virtual filesystem to SQLite-compiled-to-WebAssembly in order to fetch pages from the database using HTTP range requests

[D] [2020-05-09] Hundred Rabbits — tools ecosystem programming

[C] [2021-04-15] Ask HN: Would issue “bounties” make contributing to open source more appealing? programmingopensource

[C] [2019-11-05] Whats your favorite implementation of Exception handling? /r/ProgrammingLanguages programming

A [condition system]( **built atop** [**multi prompt delimited continuations**](
These two ingredients (*condition system* and *multi prompt delimited continuations*) first emerged (separately) in the 1980s or thereabouts.
I foresee them re-emerging in new programming languages in the 2020s, kicked off by the incorporation of multi prompt delimited continuations into the Java run-time. (A Java condition system will then naturally emerge.)
Note the formal correspondence between multi prompt delimited continuations and algebraic effects.
You might be interested in a thread from this sub a few months back titled [Is there any interesting work on how to handle errors in code?]( which covered roughly the same territory as this thread but with quite different commentary.
From my perspective this isn't really about errors. I wrote [a long comment]( in the above linked thread that explained my perspective. (NB. The recently released new language mentioned in that comment was renamed a couple weeks ago to *Raku* to try stop people incorrectly jumping to conclusions about it based on its name rather than its technology. Here's [its new blog](

TODO [C] [2019-11-26] 🌃 the design reference for the developers who care about good design. /r/coolgithubprojects programming

[D] [2019-07-29] Tweet from Eric Lengyel (@EricLengyel) Foundations of Game Engine Development programminggamedev

Foundations of Game Engine Development, Volume 2: Rendering (FGED2) is now available on most Amazon websites worldwide!
Jump to search, settings & sitemap