HN user

oftenwrong

15,022 karma

sfir6i2z@mailer.me

Posts772
Comments1,614
View on HN
www.youtube.com 9d ago

I Built My Own Alaska to Argentina Bike. How Did It Do? [video]

oftenwrong
2pts0
www.youtube.com 12d ago

Pressurizing a Chicken Coop to Clean it [video]

oftenwrong
2pts0
tinytree.dev 1mo ago

Hello TinyTree

oftenwrong
2pts1
www.sightline.org 2mo ago

Apartments Are the Climate Solution Hiding in Plain Sight

oftenwrong
3pts0
www.fastcompany.com 4mo ago

Traffic safety improvements frequently die by popular vote

oftenwrong
5pts1
www.bloomberg.com 4mo ago

Adding Up What Urban Highways Cost

oftenwrong
1pts1
substack.com 5mo ago

The NIMBY Buyout Plan (2025)

oftenwrong
4pts0
ternercenter.berkeley.edu 7mo ago

Modeling Inclusionary Zoning's Impact on Housing Production in LA (2024) [pdf]

oftenwrong
1pts0
www.bostonindicators.org 8mo ago

The Surprising Lack of Good Permitting Data and What to Do about It

oftenwrong
6pts0
medium.com 9mo ago

Four Strategies for Organizing Code (2016)

oftenwrong
2pts0
www.speedhunters.com 9mo ago

The Oddest Car Park in the World? (2015)

oftenwrong
4pts0
blogsystem5.substack.com 10mo ago

Trusting builds with Bazel remote execution

oftenwrong
4pts0
blogsystem5.substack.com 10mo ago

Understanding Bazel Remote Caching

oftenwrong
2pts0
blog.jooq.org 11mo ago

Say No to Venn Diagrams When Explaining JOINs (2016)

oftenwrong
1pts0
whitemountainski.co 11mo ago

White Mountain Direttissima

oftenwrong
49pts36
whatwelost.substack.com 11mo ago

I'm tired of stupid people treating me like I'm an idiot

oftenwrong
8pts3
josnyder.com 11mo ago

Eleven Missing Terraform Features

oftenwrong
3pts0
josnyder.com 11mo ago

The single version rule is good for Google and bad for you (2024)

oftenwrong
2pts0
solar.lowtechmagazine.com 1y ago

How to Dress and Undress Your Home

oftenwrong
4pts1
www.kerfbendwizard.com 1y ago

Kerf Bend Wizard

oftenwrong
3pts0
www.cremieux.xyz 1y ago

"Yes, and " Urbanism

oftenwrong
2pts1
www.theurbanist.org 1y ago

Public Meetings Privilege Housing Opponents

oftenwrong
3pts0
www.brookings.edu 1y ago

Highway shakedown: How local road users subsidize state highway investments

oftenwrong
2pts0
earthly.dev 1y ago

A Message about Earthly

oftenwrong
2pts0
bettercities.substack.com 1y ago

Congestion Pricing Is a Policy Miracle

oftenwrong
175pts328
mccue.dev 1y ago

New Build Tool in Java

oftenwrong
2pts0
ouroboros.rocks 1y ago

What is wrong with the architecture of the Internet? (2022)

oftenwrong
1pts0
www.strongtowns.org 1y ago

Financing Infrastructure with Value Capture: The Good, the Bad and the Ugly

oftenwrong
3pts0
firststreet.org 1y ago

Property Prices in Peril

oftenwrong
1pts0
alchemists.io 1y ago

Git Trailers (2024)

oftenwrong
3pts0

I still have my copy of Learning Perl. Mostly because it represents a milestone in my learning. I have kept and obtained a number of other books simply because they are antiquated, special and/or classics that are interesting to read even if they are not that useful to me, like Codd's relational book, or Calendrical Calculations. I hope the AI is trained on these sorts of books, so that the knowledge can live on in a different way.

The browser extension doesn’t work half the time. In addition to being frustrating, that makes it a less secure system, as one of the benefits is that it only fills the password on the specified domain. A lack of reliability of the extension leaves people more vulnerable to phishing, since they have to copy/paste passwords out of the app.

This is my main frustration with it as well. It is one of the main features in my mind, and it often does not work. It seems to work for many sites I use on desktop (Firefox on Linux, Mac), but doesn't work well at all on Android (Android app and Firefox). I can understand if this issue is outside of 1password's control because it possibly is due to specifics of Android's APIs, but I would prefer transparency in the matter.

I have used savevers.vim for many years as a way to recover old versions of files.

https://www.vim.org/scripts/script.php?script_id=89

It is comparatively unsophisticated, but I need it so infrequently that it has been good enough.

I do like the idea of maintaining a complete snapshot of all history.

This is a good application for virtual filesystems. The virtual fs would capture every write in order to maintain a complete edit history. As I understand it, Google's CitC system and Meta's EdenFS work this way.

https://cacm.acm.org/research/why-google-stores-billions-of-...

https://github.com/facebook/sapling/blob/main/eden/fs/docs/O...

Seems that the Google-style approach would be a good fit: mostly one codebase with a well-defined dependency graph, and build/test infrastructure that supports fast and comprehensive validation. This would seem to obviate the need for the catalog system described, but probably requires more investment in the build system.

This is one of the main problems I have banging my head on for the past decade, and many of the things mentioned, like Buf, Unison, and more, I only stumbled upon randomly on my own. It's refreshing to read an article on this subject simply because it's so under-discussed. I also wonder to what degree these problems have been solved within the high walls of the tech giants like Google and Amazon.

Company as Code 6 months ago

This is perhaps a bit different, but Fossil supports storing more types of written company artifacts in the repo:

One notable feature of Fossil is that it bundles bug tracking, wiki, forum, chat, and technotes with distributed version control to give you an all-in-one software project management system.

https://fossil-scm.org/home/doc/trunk/www/whyallinone.md

I don't think it's meant to be a point against abstraction or a point against complexity. I think it's widely understood that abstraction is part of how advancement is made in our practice, as well as in other disciplines. I have taken this saying to be an observation that there is almost always possible failure beneath the façade provided by the abstraction. Therefore, yes, you avoid having to let that complexity enter your brain, but only when the abstraction is holding. Beyond that point, often after pages are sent, you will still have to engage with the underlying complexity. A proactive measure following from this idea would be to provide support in or alongside your abstractions for situations where one must look under the bonnet.

What if I want to do something on my land that will poison the ground water for the area? What if I want to raise an invasive species on my land that will likely escape and devastate local wildlife? Should society be permissive and wait for the damage to be done before stopping me, instead of being proactive and stopping me from doing so before the fact?

There is something to be said for having some basic data access libraries already in place, even if they are not ideal, so that developers can bang out functionality more quickly. That is the typical selling point of ORMs, isn't it? While there are well-known downsides, you can skip the ORM when it's not a good fit, or later when you realise that it is causing a problem.

Generally, I prefer to create functions for specific queries, rather than for specific "entity" types, and the return type of each query matching the result of the query. This fits with the reality that queries often involve multiple entity types.

My favourite application-later database tool so far is https://www.jooq.org/ because it allows for code generation from the database schema, allowing for type-safe construction of queries. I find this makes it easier to create and maintain queries. It is a relatively unopinionated power tool, with minimal attempts at "automagic" behaviour. I find myself missing jOOQ now that I am not working much with Java.

It's less complicated than you might think. A Java Development Kit (JDK) is a filesystem directory, and includes everything necessary to run a Java program. Most of the mysterious installers and version managers are managing a collection of these JDK directories in some fixed location on disk. You can download a JDK directory (tarball), and use the `java` binary within it directly.

There is also a convention of using the `JAVA_HOME` environment variable to allow tools to locate the correct JDK directory. For example, in a unix shell, add `$JAVA_HOME/bin` to your `PATH`.