The long way through Software Craftsmanship

Self-Study in July 2024

Jul 1, 2024 - 9 minute read - Comments - self-study-aggregation2024july8organicbitsa16zaceraopenadragamazonarchitectural-patternarchitecture-decisional-recordargumentasicspassessmentattackaudioaudio-processingawsazeembab20000backtrackingbarcodebatterybelterbisectblogbloggingblue-fridaybookbounding-boxbrendan-greggbrian-kernighanbrilbugburntsushic-ffic-languagecancellationcareercareer-managementcertificatecertificate-authoritycharles_fchartchris_overseaschumpgptciclangclean-architectureclean-codeclicloudflarecoding-interviewcollisioncomparisoncompilerconcertconcurrencyconsultantcontinuous-integrationcontractual-termscookbookcppcrisiscrowdstrikecryptographydahliadark-patterndarpadata-accessdata-structuredatabasedatedcsdebugdebuggingdeep-cycle-systemsdeepcyclesystems.com.audeepfakedefectdelldemoderivedevicediffdiff-pdfdockerdomaindoom-emacsdrivere2e-testingebpfemacsembeddedemotend-to-end-testingenveulaexecutiveexercisefagnerbrackfanf2ferrarifestivalfilefilesystemfinancefirmfirmwareformal-verificationformelifefpgafsfunctional-coregamegccgdbgerald-jay-sussmangerald-sussmangigabytegitgit-bisectgnu-makegoranmoominhackernewshashhash-collisionhash-tablehasheddanhealeycodeshexagonal-architecturehgyjnbdethigh-frequency-tradinghiringhistoryholeimperative-shellimplementationimportedimprovementin-real-lifeingveinitiativeintelinteractiveinterviewirljandeboevriejuntao-qiukernelkothurotilanguageleaklearninglibrarylicenselocklock-free-data-structureloomlow-level-programminglwnmakemalwaremanagementmappingmartin-fowlermatlabmd5meetupmemorymemory-mappingmiki123211moneymongodbmoreatimutexnumpyobsidianolshanskyopenssloptimizationorg-agendaorg-modeorganizationoskar_dudyczpanicparallelparallellismparserpatternpaulgbpaymentpbwpdfperformancepersonal-knowledge-basepersonal-projectsphil-eatonphishingpkbpointpolysemypopcalcpopcntports-and-adapterspostgresqlpractice-of-programmingpredictabilityprinterprivate-keyprocessproductivityprogrammingprojectpropertyproperty-based-testingptracepwnpyo3pythonrandomrandomnessreactrealtimeregexregistryresearchreturn-policyrewriteripgreprobert-c-martinrscrtrusts3salarysecure-bootsecurityserialshared-secretsicpsigna11signaturesilver-surfersingle-page-applicationskeletonsoftwarespaspeckxspeedupsqlsqlitessfrrstacksteveklabnikstm32sudokusupermicroswizecsynergy20syscallsystem-callsystem-programmingtalktechniciantechniquetempertesttest-doubletestingtesting-reductiontesting-strategythunderbongticketticketmastertiddlywikitodsacerdotitooltractortranspilationtriple-dottroveudev4096udpuiurandomuxvariadicventure-capitalverifexvideovulnerabilitywayback-machinewh33zleworklogwritingyla92youtubezdwzettlrzotero

Managing projects with GNU Make, Third Edition

book about GNU Make, with recipes and going into detail about how to use it

Tags: book, make, gnu-make, project, skeleton, ci, continuous-integration

Id: 028b0e1f-a181-4469-8789-900ce6641d97 Read: Sun, 01 Jul 2024 17:22:52 +0000

Diff-pdf: tool to visually compare two PDFs

a tool to diff pdfs visually

https://news.ycombinator.com/item?id=40854319

Tags: hackernews, imported, olshansky, testing, test, diff-pdf, pdf, diff, git, e2e-testing, end-to-end-testing, tool

Id: 4fc53bae-d81c-45b4-9f6b-995ec5d4df6a Read: Tue, 02 Jul 2024 07:26:08 +0000

The Rust Programming Language: How to Write Tests

Guide on how to write tests

Tags: rust, learning, test, programming

Id: bb25df40-6668-40c7-b540-0218ee271a79 Read: Tue, 02 Jul 2024 16:14:47 +0000

Rust by example: variadics

Variadics in rust

Tags: rust, programming, variadic, argument, triple-dot

Id: f5b3afaf-86cb-401d-956c-e588879f4ce9 Read: Tue, 02 Jul 2024 16:16:36 +0000

Clap: Command Line Argument Parser for Rust

Command Line Argument Parser for Rust

Tags: rust, programming, argument, parser, derive, git, cookbook

Id: 31c985a0-fbe8-4819-aff7-2ce9fa844f50 Read: Tue, 02 Jul 2024 16:18:11 +0000

Programming is (should be) fun!

Gerald Jay Sussman about history of programming, since he started until now.

Tags: gerald-jay-sussman, gerald-sussman, sicp, youtube, talk, history, programming

Id: 19e3fd3b-dde4-4f2e-bcae-d1b97edd836d Read: Tue, 02 Jul 2024 16:21:38 +0000

Sans-IO: The secret to effective Rust for network services

https://news.ycombinator.com/item?id=40872020

Tags: hackernews, imported, wh33zle, imperative-shell, functional-core, testing, architectural-pattern, ports-and-adapters, hexagonal-architecture

Id: c027f63e-c4d0-46de-8532-867647d9a4c1 Read: Thu, 04 Jul 2024 03:05:36 +0000

The Software Crisis

https://news.ycombinator.com/item?id=40882583

Tags: hackernews, imported, todsacerdoti, software, crisis

Id: 7ea23180-fec2-4b15-8608-d2a3b3a0fa3d Read: Fri, 05 Jul 2024 13:38:11 +0000

Properly testing concurrent data structures

There’s a fascinating Rust library, loom, which can be used to thoroughly test lock-free data structures. I always wanted to learn how it works. I still do! But recently I accidentally implemented a small toy which, I think, contains some of the loom’s ideas, and it seems worthwhile to write about that

https://news.ycombinator.com/item?id=40890035

Tags: hackernews, imported, asicsp, lock-free-data-structure, data-structure, temper, tool, rust, loom, cpp, property-based-testing, concurrency, parallellism

Id: a35b8485-365c-4edf-a542-3dea4a77645e Read: Sat, 06 Jul 2024 12:29:18 +0000

A reawakening of systems programming meetups

https://news.ycombinator.com/item?id=40897506

Tags: hackernews, imported, paulgb, phil-eaton, meetup, system-programming

Id: d60d5051-52f5-486e-91f3-79d0e634e36d Read: Sun, 07 Jul 2024 13:20:37 +0000

Mongo but on Postgres and with strong consistency benefits

https://news.ycombinator.com/item?id=40897518

Tags: hackernews, imported, oskar_dudycz, database, mongodb, postgresql, sql, driver

Id: d3eb5013-3d97-426b-9a44-022830a52b40 Read: Sun, 07 Jul 2024 13:22:12 +0000

Reverse engineering Ticketmaster’s rotating barcodes

https://news.ycombinator.com/item?id=40906148

Tags: hackernews, imported, miki123211, ticketmaster, cryptography, barcode, ticket, concert, festival

Id: 2cd18b74-4bbb-4e0a-baec-6ffcf77959a1 Read: Mon, 08 Jul 2024 15:14:06 +0000

C++ patterns for low-latency applications including high-frequency trading

Fairly trivial base introduction to the subject.

https://news.ycombinator.com/item?id=40908273

Tags: hackernews, imported, chris_overseas, programming, high-frequency-trading, performance, cpp, language

Id: a221ad53-88cd-42d6-bda5-62dbe6f78920 Read: Mon, 08 Jul 2024 18:58:56 +0000

Making Python Less Random

https://news.ycombinator.com/item?id=40909094

Tags: hackernews, imported, healeycodes, python, random, urandom, randomness, ptrace, system-call, syscall, test-double

Id: 414651f1-b88d-4159-9aa7-78f724ec3973 Read: Mon, 08 Jul 2024 20:09:08 +0000

Real-time audio programming 101: time waits for nothing (2011)

a couple of basic facts: (1) You do not want your software’s audio to glitch, and (2) real-time waits for nothing.

https://news.ycombinator.com/item?id=40912271

Tags: hackernews, imported, ssfrr, audio, audio-processing, realtime, programming, mutex, lock, low-level-programming, rt

Id: b1610775-0a9c-4326-9b6b-a461c0ecad52 Read: Tue, 09 Jul 2024 03:24:22 +0000

Radius/UDP. How legacy protocols need to keep up with modern cryptography

https://news.ycombinator.com/item?id=40915112

Tags: hackernews, imported, emot, cryptography, device, udp, md5, collision, hash-collision, vulnerability, cloudflare

Id: 6532c138-49b0-4410-8bca-d6edfd2d6deb Read: Tue, 09 Jul 2024 12:05:43 +0000

Brian Kernighan on “The Practice of Programming” [video]

https://news.ycombinator.com/item?id=40927481

Tags: hackernews, imported, zdw, youtube, brian-kernighan, practice-of-programming, book

Id: 77b6a63f-fc73-467f-a785-9f9eac74b1f7 Read: Wed, 10 Jul 2024 14:45:19 +0000

Engineering principles for building financial systems

Engineering principles for building financial systems

https://news.ycombinator.com/item?id=40933110

Tags: hackernews, imported, kothuroti, finance, programming, domain, money

Id: d9f2a8e9-fcea-49c0-90e3-78a1189be491 Read: Thu, 11 Jul 2024 01:47:46 +0000

Using S3 as a Container Registry

https://news.ycombinator.com/item?id=40942732

Tags: hackernews, imported, jandeboevrie, docker, registry, amazon, aws, s3

Id: f1d2ad68-ab37-4829-be6d-1e19f357426d Read: Fri, 12 Jul 2024 04:26:23 +0000

Use a work journal

Using a worklog to keep track of work between sessions. Recover the context faster, keep track of what you searched / investigated / tried. And the outcomes. Helps with the documentation, reasoning, ADR.

https://news.ycombinator.com/item?id=40950584

Tags: hackernews, imported, charles_f, adr, worklog, technique, programming, debugging, architecture-decisional-record, writing

Id: 78a078ba-49a6-41af-82d3-1921a63d904a Read: Sat, 13 Jul 2024 00:05:23 +0000

Automated Test-Case Reduction

https://news.ycombinator.com/item?id=40971025

Tags: hackernews, imported, ingve, testing, testing-strategy, bril, testing-reduction

Id: f5d99a7a-9cce-4a21-be66-4db369226f75 Read: Mon, 15 Jul 2024 20:03:53 +0000

Panic at the Job Market

https://news.ycombinator.com/item?id=40986894

Tags: hackernews, imported, speckx, career-management, salary, payment, consultant, career, programming

Id: ed7bb802-b5f4-4e66-8027-17d50202bef1 Read: Wed, 17 Jul 2024 15:25:11 +0000

What are the ways compilers recognize complex patterns?

https://news.ycombinator.com/item?id=40987123

Tags: hackernews, imported, azeemba, compiler, pattern, popcnt, transpilation, gcc, clang

Id: 05f24da5-5783-4cd3-99cd-bf2d302556be Read: Wed, 17 Jul 2024 15:44:25 +0000

Hash-based bisect debugging in compilers and runtimes

An interesting article with techniques for debugging when using tests.

https://news.ycombinator.com/item?id=40995982

Tags: hackernews, imported, rsc, debugging, hash, git, git-bisect, bisect, technique

Id: 92982287-2c40-4b73-80d7-500b128571dd Read: Thu, 18 Jul 2024 14:36:58 +0000

TradingView’s Emotional Subscription Cancellation

https://news.ycombinator.com/item?id=41004113

Tags: hackernews, imported, popcalc, dark-pattern, cancellation, ux, ui

Id: 64f6b5a9-cc43-4bd0-82f6-5dea87498ead Read: Fri, 19 Jul 2024 09:30:20 +0000

How to pwn a billion dollar VC firm using inspect element

https://news.ycombinator.com/item?id=41016768

Tags: hackernews, imported, udev4096, pwn, property, env, a16z, hole, venture-capital, firm, security

Id: 6459b5bf-3129-499e-9c79-a3d88085b738 Read: Sat, 20 Jul 2024 14:33:18 +0000

Zettlr: One-Stop Publication Workbench

markdown-based Obsidian/Logseq zettelkasten with built-in support for

  1. interfacing with reference managers
  2. exporting/publishing with LaTeX/pandoc.

https://docs.zettlr.com/en/core/user-interface/

Supports:

  • inline markdown preview

  • VIM Keybinds (with some issues, as many implementations have)

  • mermaid and LaTeX math support built in

https://news.ycombinator.com/item?id=41023319

Tags: hackernews, imported, hgyjnbdet, zotero, research, tool, personal-knowledge-base, pkb, zettlr, obsidian, tiddlywiki

Id: 75bc0452-a720-4329-bc77-0d2e0c962b56 Read: Sun, 21 Jul 2024 07:53:25 +0000

Data Fetching for Single-Page Apps

An interesting article in Martin Fowler’s site about loading data in a Single Page Application (SPA).

By Juntao QIU.

https://news.ycombinator.com/item?id=41030073

Tags: hackernews, imported, fagnerbrack, juntao-qiu, martin-fowler, spa, single-page-application, react, serial, parallel, pattern

Id: 3b05ca32-cbf4-4ac8-950e-f2e0cee5aedf Read: Mon, 22 Jul 2024 01:31:15 +0000

Jiff: Datetime library for Rust

https://news.ycombinator.com/item?id=41031037

Tags: hackernews, imported, goranmoomin, rust, programming, library, date, burntsushi, ripgrep, regex, silver-surfer, ag

Id: c72c2944-fbec-4268-96b9-c35d51714c0d Read: Mon, 22 Jul 2024 04:57:46 +0000

No More Blue Fridays

https://news.ycombinator.com/item?id=41033579

Tags: hackernews, imported, moreati, brendan-gregg, security, kernel, driver, ebpf, panic, crowdstrike, formal-verification, blue-friday

Id: 52b24cd8-de0d-4a88-a352-4b146f66f76f Read: Mon, 22 Jul 2024 12:21:06 +0000

Re: Do people IRL know you have a blog?

No one else has anything invested in this. No one cares if you do it, or don’t do it. To the world this pursuit is just your cute little hobby.

There’s a constant tug of war between wanting to be professional and wanting to be cool online. Sometimes those things overlap and sometimes they don’t. And sometimes the folks who have the opportunities to make a weirdo website are doing so because they’re not financially dependent on their website selling a service or landing a new gig. Their economic livelihood isn’t at risk if someone is turned off by the strange fonts or experimental navigation on their website.

A discussion he had with his wife about having a blog prompts the question of what is the purpose of the personal blogs.

The author does not mind if they are useful to other people or not; it’s not a source of income.

Another comment: My blog is primarily a way for me to clarify my thoughts on a topic by writing about it. Once that is done, the amount of effort required to post those thoughts is small, so why not do it?.

https://news.ycombinator.com/item?id=41041537

Tags: hackernews, imported, 8organicbits, blogging, blog, personal-projects, irl, in-real-life

Id: 5a3192f7-e396-47b9-a022-683dce3618f0 Read: Tue, 23 Jul 2024 01:08:49 +0000

Software engineers are not (and should not be) technicians

creating a process that incentivices predictability is worse for the business, as we don’t introduce process improvements

https://news.ycombinator.com/item?id=41055481

Tags: hackernews, imported, dahlia, process, project, tool, technician, improvement, organization, management, predictability

Id: c40df639-3df8-40ce-a960-764e9ca23f95 Read: Wed, 24 Jul 2024 10:25:03 +0000

Generating sudokus for fun and no profit

https://news.ycombinator.com/item?id=41062072

Tags: hackernews, imported, todsacerdoti, sudoku, performance, optimization, game, interactive, demo, backtracking, chart

Id: 88c55cad-a9b2-4c78-a51b-9d9e1b487129 Read: Wed, 24 Jul 2024 21:02:09 +0000

Memory Mapping an FPGA from an STM32

https://news.ycombinator.com/item?id=41068995

Tags: hackernews, imported, hasheddan, fpga, mapping, memory, memory-mapping, stm32, device, embedded

Id: 1b9bcf0e-dd27-441a-bea2-ccbb1bc19b49 Read: Thu, 25 Jul 2024 14:21:36 +0000

Secure Boot is broken on 200 models from 5 big device makers

https://news.ycombinator.com/item?id=41071708

Tags: hackernews, imported, verifex, secure-boot, signature, firmware, acer aopen, dell, formelife, gigabyte, intel, supermicro, private-key, certificate, certificate-authority, leak

Id: d085ee7f-4ca2-47ef-83c9-a63f265c54a4 Read: Thu, 25 Jul 2024 18:21:47 +0000

How to build highly-debuggable C++ binaries

how to use python to create printers for gdb

https://news.ycombinator.com/item?id=41074703

Tags: hackernews, imported, synergy20, printer, gdb, debug, debugging, python, c-language

Id: d911bd80-555e-44be-a9ee-44611db59119 Read: Fri, 26 Jul 2024 00:00:52 +0000

Ask HN: Reasonable reasons to refuse coding assessments

Discussion about whether you should agree to doing coding interviews, on the blackboard, remote, coding assignments.

https://news.ycombinator.com/item?id=41075594

Tags: hackernews, imported, b20000, interview, hiring, coding-interview, assessment, exercise

Id: b5cbb0a7-1d41-4c71-ab21-5e013bbc4672 Read: Fri, 26 Jul 2024 03:41:09 +0000

A hash table by any other name

https://news.ycombinator.com/item?id=41076375

Tags: hackernews, imported, signa11, hash-table, implementation, lwn

Id: 9a13bdaa-2577-42d0-9a07-33fbb6d404b0 Read: Fri, 26 Jul 2024 06:53:50 +0000

Using Rust to corrode insane Python run-times (2021)

Using rust as the underlying library behind python modules. This is about points, bounding boxes; numpy, matlab

https://news.ycombinator.com/item?id=41076905

Tags: hackernews, imported, fanf2, rust, pyo3, python, c-ffi, point, bounding-box, numpy, matlab, speedup, performance, optimization

Id: 3cb3a865-8c21-41c0-905d-2042d4fed1c4 Read: Fri, 26 Jul 2024 08:42:04 +0000

DCS sues Small YouTuber for accurate product review [video]

Louis Rossmann discusses the change in the license, retroactively, for a manufacturer of batteries.

https://news.ycombinator.com/item?id=41079801

Tags: hackernews, imported, chumpgpt, battery, dcs, eula, license, contractual-terms, deep-cycle-systems, deepcyclesystems.com.au, return-policy, wayback-machine, trove, youtube, video

Id: 91380c0b-fb0e-4399-9be3-81ee06a9e4c5 Read: Fri, 26 Jul 2024 16:12:51 +0000

90% of performance is data access patterns

How accessing the data affects performance

https://news.ycombinator.com/item?id=41080537

Tags: hackernews, imported, ingve, data-access, performance, swizec

Id: 837e3974-5680-4b82-af04-dccce52fc200 Read: Fri, 26 Jul 2024 17:37:03 +0000

Beyond Clean Code

A discussion in detail of what is clean code; the new meaning it acquired with time and why reject it.

https://news.ycombinator.com/item?id=41081237

Tags: hackernews, imported, pbw, clean-code, clean-architecture, robert-c-martin, book, performance, polysemy

Id: 4fb9318a-ea18-4c58-af3e-681bbaa7a902 Read: Fri, 26 Jul 2024 18:55:16 +0000

SQLite: 35% Faster Than the Filesystem

Comparing the performance of the file system and of SQLite

https://news.ycombinator.com/item?id=41085376

Tags: hackernews, imported, yla92, sqlite, performance, comparison, filesystem, fs, file

Id: caadfd40-c907-4e60-8d50-e038fe69be4d Read: Sat, 27 Jul 2024 09:10:29 +0000

Boost Productivity With Emacs, Org Mode and Org Agenda

Introductory video to Emacs, Org Mode and Org Agenda

Tags: org-mode, org-agenda, emacs, doom-emacs, productivity, cli, tool

Id: a5d51415-4969-4917-a1ee-a5e8119b1677 Read: Sun, 28 Jul 2024 10:53:23 +0000

Ferrari exec foils deepfake attempt by asking a question only CEO could answer

A deepfake phishing attack has been foiled by using a shared secret in real life

https://news.ycombinator.com/item?id=41100551

Tags: hackernews, imported, thunderbong, shared-secret, cryptography, deepfake, phishing, attack, malware, ferrari, book, executive

Id: 3bf72306-9b03-4623-8783-bc30bc0ee5ca Read: Mon, 29 Jul 2024 14:05:24 +0000

OpenSSL bug exposed up to 255 bytes of client heap and existed since 2011

https://news.ycombinator.com/item?id=41108465

Tags: hackernews, imported, belter, openssl, bug, defect, stack, cryptography

Id: 0069cf0e-e50f-4313-8a61-65c6196e1349 Read: Tue, 30 Jul 2024 12:29:27 +0000

Translating All C to Rust (TRACTOR)

https://news.ycombinator.com/item?id=41110269

Tags: hackernews, imported, steveklabnik, programming, rust, c-language, tractor, darpa, project, initiative, rewrite

Id: a6cee030-24de-4832-92e1-25886bd7eb3d Read: Tue, 30 Jul 2024 15:42:06 +0000