HNHacker News
TopNewBestAskShowJobs

jph

5,994 karma · joined June 2, 2010

Joel Parker Henderson

## Email ##

joel@joelparkerhenderson.com

joel.henderson@wales.nhs.uk

## Contacts ##

https://linkedin.com/in/joelparkerhenderson

https://github.com/joelparkerhenderson

https://gitlab.com/joelparkerhenderson

https://codeberg.org/joelparkerhenderson

https://facebook.com/joelparkerhenderson

https://instagram.com/joelparkerhenderson

https://orcid.org/0009-0000-4681-282X

## Open source ##

Architecture Decision Record = https://github.com/architecture-decision-record

GitAlias for git version control = http://gitalias.com

NumCommand for statistics = http://numcommand.com

UpdateCommand for system updates = http://updatecommand.com

ZidPlan for secure random data = http://zidplan.com

## Interests ###

Business e.g. tech strategy, tech tactics, tech startups.

Coding e.g. Rust, Elixir, Ruby, Python, JavaScript, Shell.

Development e.g. Agile, TDD, BDD, XP, SQA, DevOps.

## Projects ###

Software Engineering: Guide + Metrics + Code

- https://software-engineering-guide.github.io

- https://software-engineering-metrics.github.com

- https://crates.io/crates/software-engineering

Public Value: Guide + Metrics + Code

- https://public-value-guide.github.io

- https://public-value-metrics.github.com

- https://crates.io/crates/public-value

Digital Health: Guide + Metrics + Code

- https://digital-health-guide.github.io

- https://digital-health-metrics.github.io

- https://crates.io/crates/digital-health

Health Economics: Guide + Metrics + Code

- https://health-economics-guide.github.io

- https://health-economics-metrics.github.io

- https://crates.io/crates/health-economics

## Medical projects using Rust ##

Fast Healthcare Interoperability Resources (FHIR) = https://fhir-rust.github.io

Open Electronic Patient Record (openEHR) = https://openehr-rust.github.io

Systematised Nomenclature of Medicine (SNOMED) using Rust = https://snomed-rust.github.com

HL7 messages = https://hl7-rust.github.io

ER7 messages = https://er7-rust.github.io

Schematron = https://schematron-rust.github.com

submissionscomments
jph··on Transparent Like Frosted Glass
The article starts with Sherry Turkle, who is a genius IMHO. She discusses transparent versus opaque, in terms of computers, and is quoted in the NY Times about it.

https://www.nytimes.com/1995/12/07/books/books-of-the-times-...

Ms. Turkle adds two computers to the list of test objects: two contrasting machines, the I.B.M. PC and the Macintosh. The former, she explains, was for users who wanted to see into "'the guts' of the machine." It was transparent and invited analysis.

"In contrast the 1984 introduction of the Macintosh's iconic style presented the public with simulations (the icons of file folders, a trash can, a desktop) that did nothing to suggest how their underlying structure could be known." It was opaque, and invited a belief in what William Gibson, in his novel "Neuromancer" (1984), termed "cyberspace." ...

One therefore pays close attention when she explains how the shift to postmodernism has been reflected in a new outlook on artificial intelligence. No longer are designers striving for an overarching theory of mind. More and more they see hope in computers that can learn, or what she terms "emergent A.I.," which, as she writes about it, accords with the fragmented, "decentered" self posited by postmodernism.

(If you're curious to know more about Dr. Turkle, this TED talk is good IMHO: https://www.youtube.com/watch?v=MtLVCpZIiNs)

jph··on Pivotal Tracker will shut down
Great idea! If you're reading this and want to connect about a clone, I'm joel@joelparkerhenderson.com.
jph··on Swift 6
Swift 6 is a major leap forward for cross-platform batteries-including development IMHO. Foundation is the big win here, because it provides so much out of the box.

Swift 6 is the first version with enough low-level improvements and cross-platform capabilities to make me curious if the Swift team is trying to aim for long-term replacing C, C++, Rust, Zig, etc.

jph··on Techniques I use to create a great user experience for shell scripts
Good point, you're right. Added. Thank you.
jph··on Techniques I use to create a great user experience for shell scripts
Yes and even better for faster speed and greater shell compatibility for basic colors, you can use this POSIX code:

    if [ -t 1 ] && [ -z "${NO_COLOR:-}" ]; then
      COLOR_RESET=''
      COLOR_RED=''
      COLOR_GREEN=''
      COLOR_BLUE=''
    else
      COLOR_RESET=''
      COLOR_RED=''
      COLOR_GREEN=''
      COLOR_BLUE=''
    fi
For more about this see Unix Shell Script Tactics: https://github.com/SixArm/unix-shell-script-tactics/tree/mai...

Be aware there's an escape character at the start of each of color string, which is the POSIX equivalent of $'\e'; Hacker News seems to cut out that escape character.

jph··on In Theory: Self-Correcting Software
Plang and similar logic languages are compelling when combined with AI large language models plus anti-fragile programming techniques. The article's example shows goal-driven code that knows how to ask the LLM for how to improve the implementations, and also the goal planning.

However, Plang is unusual because it requires up-front payment to try. For example, the main website says " On first build you will be ask to pre-purchase credits" and "Each code line incurs usually between $0.005 - $0.035 fee via LLM". I respect developers who ask for money. At the same time, it would be great to have a lower-quality local-first way to try Plang.

jph··on Launch HN: Fortress (YC S24) – Database platform for multi-tenant SaaS
Am I your target customer?

Here's my two cents: your FTUX has so many steps and so many tour popups, and IMHO these are overwhelm your value prop. You have an opportunity to focus more on your value prop first and foremost. If you like, I can give you my actual use cases.

I use AWS, and I use multi-tenant Postgres such as with a tenant_id row, as well as multi-region setups, and for some projects one database per end organization tenant.

On AWS I use Aurora and also some self-managed Postgres. Some of the Postgres extensions I use are for geofencing, trigramming, etc. and these ideally could/should have tenant-specific instantiations. I code using Go & Rust. I work in regulated industries that use SOX, HIPAA, FERPA, etc.

Can you speak to if/how the Fortress value prop can help me, and if/how/when to get the API in Go and Rust?

jph··on Show HN: Assertables v8.0.0 -- more Rust assert macros for more specific tests
I'm the author of Assertables, a Rust crate that provides many more assert macros for more specific tests such as comparisons, matchers, readers, debug assertions, runtime assertions, etc. Ask me anything about this.

GitHub repo: https://github.com/sixarm/assertables-rust-crate/

What kinds of assert macros could help you and your Rust projects?

jph··on Show HN: We made a tool to help developers improve OpenAPI specs
Can you say some about how Rate My OpenAPI compares to Spectral?

Spectral is a JSON/YAML linter with custom rulesets, with out of the box support of OpenAPI and AsyncAPI.

I use it Spectral for OpenAPI feature analysis, much as described here: https://github.com/stoplightio/spectral-documentation

jph··on Google Pixel 9 Pro
Google Pixel 8a is a great phone IMHO. Refurbished ones are available.
jph··on Google Pixel 9 Pro
Google Support tells me it's a Google company policy, not a U.S. policy. And for comparison, Verizon works fine, just by paying a bit extra for extended roaming.
jph··on Google Pixel 9 Pro
Added link above. The changes took effect last year.
jph··on Google Pixel 9 Pro
I love Google Pixel phones because of Google Fi for traveling; unfortunately Google Fi is facing major service downgrades/outages for travelers (including me) who go on 3+ month trips out of the US. Google Support tells me the Google Pixel 9 Pro has the same limitation. For comparison my iPhone works fine on Verizon.

The issue is now described in the Google Pixel T&C, and I hope Google will eventually offer a way to buy a Google Pixel phone and Google Fi that offers full functionality for longer trips.

Here's a link about it:

https://community.ricksteves.com/travel-forum/tech-tips/goog...

jph··on Architectural Retrospectives: The Key to Getting Better at Architecting
Good question. Yes there are a variety of ways that help.

1. If the team favors lightweight markdown, then add a markdown section for Threat Modeling and markdown links to references. Some teams favor doing this for more kinds of analysis, such as business analysis (e.g. SWOT) and environment analysis (e.g. PESTLE) and risk analysis (e.g. RAID).

2. If the team favors metrics systems, then consider trying a Jupyter notebook. I haven't personally tried this. Teams anecdotally tell me these can be excellent for showing probable effects.

3. If the team is required to use existing tooling such as tracking systems, such as for auditing and compliance, then consider writing the ADR within the tracking system and linking to it internally.

jph··on Architectural Retrospectives: The Key to Getting Better at Architecting
Some large public examples of where software architectural work provides a large benefit:

1. Amazon all-in on API service architecture thus creating Amazon Web Services.

2. Sun all-in on attempting run-anywhere architecture thus creating the Java Virtual Machine.

3. Facebook all-in on PHP single-page rendering architecture thus creating HipHop.

4. Linus all-in on Unix x86 architecture thus creating Linux, then all-in on distributed versioning architecture thus creating Git.

5. Google all-in on horizontal scale architecture thus creating Bigtable, MapReduce, Kubernetes, etc.

6. Apple all-in on vertical device architecture thus creating Apple Silicon, iPod/iPhone, physical stores, etc.

7. Hashicorp all-in on infrastructure as code architecture thus creating Terraform, Vault, etc.

8. 37signals all-in on convention-over-configuration MVC web app architecture thus creating Ruby on Rails.

9. NVIDIA all-in on GPUs thus creating CUDA and enabling matrix math speedups of many programs.

jph··on Architectural Retrospectives: The Key to Getting Better at Architecting
Architecture retrospectives sound like a good idea but don't seem to be "the key" because in practice they fail too often.

Retrospectives look backwards, and most teams aren't wired that way. And unlike sprint retrospectives, architecture retrospectives turn up issues that are unrealistic/impossible to adjust in real time.

Instead, try lightweight architectural decision records, during the selection process, at the start, when things are easiest to change, and can be the most flexible.

When teams try ADRs in practice, teamwork goes up, choices get better, and implementations get more realistic. And if someone later on wants to do a retrospective, then the key predictive information is right there in the ADR.

https://github.com/joelparkerhenderson/architecture-decision...

jph··on Okay, I Like WezTerm
Yes 100%. This is a superb UI/UX feature once you see it in action.
jph··on Argdown, like Markdown for argument mapping
These argdown ligatures are nifty. I also really like Unicode logic symbols because they make annotation and expressions readable.

https://en.wikipedia.org/wiki/List_of_logic_symbols

These can be especially helpful for Causal Analysis based on System Theory (CAST) which is similar to root cause analysis plus uses more logical dependencies.

jph··on Weak Soft Skills: Why you are stuck at the Senior engineer level
> "Do not share a half-assed draft."

It turns out that an important soft skill is knowing how to make these kinds of drafts work in your favor, especially with internal stakeholders, by doing drafts that are annotated with where you want help and input.

As one example, "We want to work on the foobar because [get exact wording from team] to improve throughput [%]. We will request [#] team members for the next [n] months. We're working on decision records for our top 3 options which are [1, 2, 3]." Share these one-on-one with each stakeholder, gather feedback, and hone the draft.

For technical work as described in the post as "write a technical spec for engineers in & outside of my team", I recommend trying an architecture decision record, and sharing drafts early/often with stakeholders.

https://github.com/joelparkerhenderson/architecture-decision...

jph··on Rapidly build efficient sites with Neat, the minimalist CSS framework
Neat lacks a header and navigation; this by design, and may be enough for simple sites. If you want more capability, Pure.css is good to try too https://purecss.io/
jph··on U.S. shelves $300M 'real-world' data platform for Alzheimer's
Yes, I develop BoldContacts, which is a mobile app to help you browse your contacts and connect with them. It features big bold buttons and fonts, and is useful for people who have Alzheimer's, Parkinson's, dementia, and cognitive/vision/motor disabilities.

https://boldcontacts.org

The app is deliberately small: the goal is to provide a free open source way to help people use their contacts more easily, such as to call their friends, family members, medical providers, and caregivers.

The mission is much larger: to enable caregivers and researchers to extend people's quality of life; this is enabled by creating open source building blocks that care providers (e.g. hospitals, social services, assistive homes) can use to mix-and-match their own apps and content that can help people who are in more advanced stages of need.

jph··on U.S. shelves $300M 'real-world' data platform for Alzheimer's
Thank you, I'll email you. Apple's Assistive Access is a good step in the right direction IMHO. Yet as you describe there's a very strange mismatch between the software and actual users.

Disability researchers who are advising me are 100% that accessibility software and hardware really must be be tried much more thoroughly with real world users in real world settings. And the researchers feel strongly that there's no one size fits all. The best approach (currently) that they want is a kit of open source pieces that the researchers can combine and also can tune, to try many more hypotheses quickly. It's a great area for FLOSS.

jph··on U.S. shelves $300M 'real-world' data platform for Alzheimer's
If anyone here is involved in Alzheimer's, Parkinson's, dementia, or similar conditions, then I would love to hear from you. I'm creating open source accessibility software to help people who have these conditions, and their caregivers.

Researchers are asking me about ways to add many kinds of telemetry to the mobile apps (such as Apple HealthKit) as well as alerting (such as "take your meds now") and more. The ending of the Alzheimer's data platform is blow for these researchers, and yet it turns out some of the data is really easy to get, if you can get an app on the person's phone or watch.

jph··on Show HN: The first open-source Infrastructure-as-Code framework
I'm in your target market, and in my opinion you have an opportunity to rephrase your tagline "The first open-source Infrastructure-as-Code framework" because your tagline makes me think you're ancient and retro-- think back twenty years or more to Capistrano, Chef, Puppet, etc. as just a few examples.

Just to double-check, here's what Google shows me for your own tagline:

"Chef is an open source infrastructure as code framework, or set of solutions and approaches that helps you automate your infrastructure and applications."

"Terraform is an open source Infrastructure-as-Code framework originally created by HashiCorp"

"Pulumi is an open source Infrastructure-as-Code framework that provisions resources utilizing common programming languages."

etc.

If you're open to adjusting your marketing, I can also suggest you add OpenTofu to your homepage where you currently list Terraform. OpenTofu is more up to date with the open source community especially for IaC. It's a crowded space so aim to highlight your value proposition instead of writing "first".

Just my two cents. Hope this helps.

jph··on What happens to latency if service time is cut in half (2022)
Queueing theory refresher for software developers:

https://github.com/joelparkerhenderson/queueing-theory

This can help put the article in context. The author writes "wanted to freshen up my queuing theory a bit".

jph··on Code Finder – The ultimate search engine for GitHub repositories
Nice work! It would help me understand each result better if you show more details per repo, such as the star count, or commit count, or similar.

Here's a search for "architecture decision record" that takes 2 seconds and returns the right results that seem to be ranked by stars, yet without displaying star count:

https://codefinder.dev/search?q=architecture+decision+record

jph··on in Rust, methods should be object safe
Just a typo. It's meant to be `c` which is defined on the previous line.
jph··on Show HN: Quadra – organize your tasks and notes beautifully
This Quadra method stems from the "Eisenhower Decision Principle".

Tasks are evaluated using the criteria important/unimportant and urgent/not urgent, and then placed in quadrants in an Eisenhower Matrix.

- Important/Urgent quadrant tasks are done immediately and personally, e.g. crises, deadlines, problems.

- Important/Not Urgent quadrant tasks get an end date and are done personally, e.g. relationships, planning, recreation.

- Unimportant/Urgent quadrant tasks are delegated, e.g. interruptions, meetings, activities.

- Unimportant/Not Urgent quadrant tasks are dropped, e.g. time wasters, pleasant activities, trivia.

(Source: Wikipedia)

jph··on A journey to the medical netherworld (2016)
Great article. PANDAS (Pediatric Autoimmune Neuropsychiatric Disorders Associated with Streptococcal Infections) and similar disorders such as MCAS (Mast Cell Activation Syndrome) are terrifying for parents and children. Too many doctors don't know about them.

Treatment is often an uphill battle, even to get well-understood drugs such as well-known antibiotics (such as cefprozil) and mast cell stabilizers (such as cromolyn). Many doctors refuse to try these, and many insurance companies refuse to cover them for off-book use.

In my opinion, the best solution is called "Test Of Treatment" (TOT). It means try a variety of things, and see what works. Test Of Treatment can happen after the usual treatments are tried and fail. Test Of Treatment can use generally-safe generally-reversible treatments, much like exploratory probes, to discover what's wrong and what can help.

jph··on Oracle dumps Terraform for OpenTofu
Exactly right. You're making my point for me. :-) Oracle can now say it has one solution, whereas with IBM the attention is split between Terraform and OpenTofu.

If you're an enterprise customer, do you want your enterprise deployments on a company that knowingly does two near-identical implementations, and can't seem to decide on which one to favor?

← PreviousPage 5 of 34Next →