HNHacker News
TopNewBestAskShowJobs

jd3

738 karma · joined January 30, 2015

https://dataswamp.org/~john/
submissionscomments
jd3··on Why is it so hard to buy things that work well? (2022)
Many of the best engineers that I have worked with over the years have a discerning constitution which seems to innately allow them to identify high quality software, which is essentially a matter of taste.

The problem is that this disposition is not the norm for a technician, which is why I tend to prefer hiring and training engineers that are artistic, creative, and obsessive.

jd3··on Constraints in Go
https://github.com/stephenafamo/bob supports both CTEs and JSONB in the psql (postgres) dialect

https://bob.stephenafamo.com/docs/query-builder/psql/example...

https://github.com/stephenafamo/bob/blob/main/gen/bobgen-psq...

jd3··on SQL style guide by Simon Holywell
I was not tech lead on that part of the project and did not contribute to any of its initial research/implementation, sadly; I was brought in post-hoc to help with perf issues/cleanup.

To directly answer your question, though, without going into too much detail, there were pci compliance issues with some tables/columns in the mysql db, so if I had to guess, perhaps DMS had the capability to assuage that concern more elegantly than mysql_fdw[0], though the mysql_fwd EXCEPT parameter seems to also do the same thing, so honestly, I have no idea.

    By default, all views and tables existing in a particular database on the MySQL host are imported. Using this option, you can exclude specified foreign tables from the import.[1]
[0]: https://github.com/EnterpriseDB/mysql_fdw

[1]: https://www.enterprisedb.com/docs/mysql_data_adapter/latest/...

jd3··on SQL style guide by Simon Holywell
A week before being laid off last month, I solved a decade+ old open problem at our company which first occurred since Django doesn't natively support CTE's, leading to years of technical debt from the ersatz sql/query plans produced by our fragile queries.

I ended up manually overloading get_extra_restriction on a custom ForeignKey class (we couldn't use FilteredRelation b/c we were still on django 1.11), which ensured that the JOIN ON ... clause limited the tables being joined to their correct partition/schema while being accessed through a view

The view thing is a long story — it was a legacy PAC codebase from the '90s which used 13+ schemas in a mysql db that was then being synced to our postgres db through Amazon DMS. All of the tables on each view contain identical source_schema/CompanyID columns, hence the

    '%(remote_alias)s. "source_schema" = %(fk_alias)s. "source_schema" AND '
    '%(remote_alias)s. "CompanyID" = %(fk_alias)s. "CompanyID"
etc. approach

before/after query plan in depesz: https://imgur.com/a/HQbNSIL

jd3··on Low Cost Mini PCs
Had the same initial thought; the site design is simple and straightforward, but info dense and easy to navigate, similar to craigslist.
jd3··on Zuckerberg claims regret on caving to White House pressure on content
I didn't notice the twitter decline until after musk bought + interceded in the algorithm.

It used to feel much more curated/tailored to my more esoteric interests, but now I get ai slop, race baiting, "breaking news" which is some fake right wing news account, etc. etc.

jd3··on Spice: Fine-grained parallelism with sub-nanosecond overhead in Zig
Yes, I meant to say dropbox
jd3··on Spice: Fine-grained parallelism with sub-nanosecond overhead in Zig
I meant to say dropbox, not docker
jd3··on Spice: Fine-grained parallelism with sub-nanosecond overhead in Zig
> Spice is primarily a research project. Read along to learn more about it, but if you're considering using it in production you should be aware of its many limitations.

Ah, I missed that upon first read. In that case, that caveat/limitation is definitely justified.

jd3··on Spice: Fine-grained parallelism with sub-nanosecond overhead in Zig
Want to state off the bat this this project is awesome and huge kudos to the author for spending their time, attention, and energy 1) working diligently to get this working at all and 2) sharing it with the broader HN community, who are generally known to by hyper-critical to a pedantic degree and/or overly pessimistic (cough the initial Docker project Show HN thread cough)

I also really appreciate that the author recognizes the limits of their own project, which preemptively addresses most of the usual snark.

> Lack of tests: Spice contains a lot of gnarly concurrent code, but has zero testing coverage. This would have be improved before Spice can be responsibly used for critical tasks.

Testing correctness of execution for critical tasks is one thing, but I would expect a library which implements "gnarly concurrent code" to at least have regression tests — what guarantee is there to an end-user that functionality which exists in a working state today might not break tomorrow due to a subtle yet nefarious regression?

sqlite has 590 times as much test code and test scripts as it does raw c source code [0]; this fact, along with its stability and portability, is one of the numerous reasons why it has proliferated to become the defacto embedded database used across the planet. While we're comparing apples to oranges in this contrived example, the general point still stands — regression tests beget stability and confidence in a project.

In epics where I work, if we _must_ defer baseline regression tests, we usually create a follow-up ticket inside of the same epic to at least write them before feature/epic launch, usually.

[0]: https://www.sqlite.org/testing.html

jd3··on Google loses antitrust suit over search deals on phones
I do deep research for a living and it's the only search engine I've tried that returns superior results over Google Search.
jd3··on Google loses antitrust suit over search deals on phones
While true, it is also notable that ChatGPT is not a search engine, SearchGPT is not live yet, and that AI results have only further diminished the quality of search results in Google Search.

If anything, OpenAI has only served to further exacerbate and accelerate the inevitable decline of Google Search.

jd3··on Google loses antitrust suit over search deals on phones
I'm surprised Kagi Search wasn't mentioned once in the ruling given that it's the most compelling Google competitor on the market.
jd3··on Google loses antitrust suit over search deals on phones
A couple passages of note:

> 112. The integration of generative AI is perhaps the clearest example of competition advancing search quality. Google accelerated and launched its public piloting of Bard one day before Microsoft announced BingChat, the integration of ChatGPT’s generative AI technology into Bing to deliver answers to queries. Id. at 8272:4-7 (Reid); id. at 2670:10–2671:9 (Parakhin). (describing BingChat).

Perhaps a normative assertion on my part, but AI results have not "advanc[ed] search quality" by any metric that I am familiar with; in fact, AI results in Google mark the first time I have ever encountered incorrect or patently untrue information at the top of a Google query.

> This quality-reduction experiment correlated with only a 0.66– 0.99% decline in global search revenue. UPX1082 at 294. In short, this study demonstrates that a significant quality depreciation by Google would not result in a significant loss of revenues.

jd3··on Troubleshooting: Terminal Lag
Since vscode is an electron app, have you tried opening it with

$ open -a open -a Visual\ Studio\ Code --args --disable-gpu-vsync --disable-smooth-scrolling --disable-frame-rate-limit

jd3··on Troubleshooting: Terminal Lag
Yep, have been planning to upgrade to a 240hz+ OLED for awhile! I find the typing input latency on my M1 MacBook Pro to be pretty abysmal when using the built-in retina display and no external monitor — I almost feel like I can only get work done when I have it plugged into my external monitor in clamshell mode and disable vsync.
jd3··on Troubleshooting: Terminal Lag
I use a cheap 75hz IPS from my office, though, ideally, I'd like to upgrade to a 240hz+ OLED w/ VRR since macOS now supports adaptive sync[0]; i've been waiting because I'm not satisfied w/ any of the OLED monitors currently on the market and my monitor upgrade request was denied by my employer.

Though I've used the Apple Magic Keyboard w/ Touch ID exclusively for awhile, I'm also thinking about upgrading to the new Wooting 80HE keyboard this fall since it has a 8kHz polling rate, analog hall effect switches, and is designed to be ultra low latency w/ tachyon mode enabled.

[0]: https://support.apple.com/guide/mac-help/use-adaptive-sync-w...

jd3··on Troubleshooting: Terminal Lag
I'm so distracted by latency that I run my macOS with vsync disabled 24/7 (through Quartz Debug).

When I used to use Windows 10+ years ago, I had decent luck using xming + cygwin + Cygwin/X + bblean to run xterm in a minimal latency/lag environment.

I also launch Chrome/Spotify/Slack desktop using:

$ open -a open -a Google\ Chrome --args --disable-gpu-vsync --disable-smooth-scrolling

jd3··on LG and Samsung are making TV screens disappear
I must be missing something, because the use case for transparent TV is completely different than an ordinary TV due to the lack of black contrast, no?
jd3··on Xpra: Persistent Remote Applications for X11
It's been awhile since I've touched the config, but I think I ignore arch-specific executables using https://docs.syncthing.net/users/ignoring.html.

I also haven't checked my Windows machine that it syncs with recently, so there might be issues on the latest ff etc etc. I started doing this with SeaMonkey, whose profile is simpler conceptually since it's still built on top of an old firefox legacy esr.

jd3··on Xpra: Persistent Remote Applications for X11
I sync my entire firefox profile to multiple machines using syncthing

https://tonsky.me/blog/syncthing/

https://syncthing.net/

jd3··on Google Arts and Culture site I didn't know existed
I've mostly used Google's arts and culture site to download hi-res images of famous pieces of art for a side project of mine.
jd3··on Atkinson Dithering (2021)
I remember creating an X-Face[0] using Atkinson Dithering for my SeaMonkey add-on MessageFaces[1]!

You can create one online here[2], but it doesn't seem to support Atkinson for whatever reason.

[0]: https://en.wikipedia.org/wiki/X-Face

[1]: https://github.com/JohnDDuncanIII/messagefaces

[2]: https://www.dairiki.org/xface/

jd3··on Dmv.org
Why we never developed a vacant land/land value tax on parked domain names has always been a mystery to me — speculation through domain name squatting (and, to a more extreme degree, cyber-squatting) has always left a bad taste in my mouth.
jd3··on Ask HN: I have many PDFs – what is the best local way to leverage AI for search?
basically, still the same answer(s) from

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

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

jd3··on ICC prosecutor seeks arrest warrants against Sinwar and Netanyahu for war crimes
The US states:

> The ICC was established by its state parties as a court of limited jurisdiction. Those limits are rooted in principles of complementarity, which do not appear to have been applied here amid the Prosecutor’s rush to seek these arrest warrants rather than allowing the Israeli legal system a full and timely opportunity to proceed.[0]

---

The ICC defines:

> 1. Complementarity: The principle of complementarity governs the exercise of the Court’s jurisdiction. This distinguishes the Court in several significant ways from other known institutions, including the international criminal tribunals for the former Yugoslavia and Rwanda (the ICTY and the ICTR). The Statute recognizes that States have the first responsibility and right to prosecute international crimes. The ICC may only exercise jurisdiction where national legal systems fail to do so, including where they purport to act but in reality are unwilling or unable to genuinely carry out proceedings. The principle of complementarity is based both on respect for the primary jurisdiction of States and on considerations of efficiency and effectiveness, since States will generally have the best access to evidence and witnesses and the resources to carry out proceedings. Moreover, there are limits on the number of prosecutions the ICC, a single institution, can feasibly conduct.[1]

namely,

> The ICC may only exercise jurisdiction where national legal systems fail to do so, including where they purport to act but in reality are unwilling or unable to genuinely carry out proceedings.

The US argues that the ICC has not adequately allowed this process to play out through the courts in Israel.

---

The Jerusalem Center for Public Affairs states:

> The criteria of unwillingness or inability to carry out proceedings would involve some indication of purposely shielding the accused from criminal responsibility or a lack of intent to bring the person to justice. This may be inferred from political interference or deliberate obstruction and delay, from institutional deficiencies due to political subordination of the legal system, or procedural irregularities indicating a lack of willingness and inability to investigate or prosecute genuinely.[2]

---

Imo the hermeneutics are clear, though it will be up to the lawyers from either side to make arguments in favor of/against.

[0]: https://www.state.gov/warrant-applications-by-the-internatio...

[1]: https://www.icc-cpi.int/sites/default/files/NR/rdonlyres/20B...

[2]: https://jcpa.org/article/would-judicial-reforms-in-israel-op....

jd3··on D3 in Depth
I built a rather complex visualization system for our dashboards project before covid and I would argue that 90% of it was copy/pasting from d3 examples and then making necessary modifications visually for our codebase + abstracting common elements for the sake of readability, glanceability, and structure.

Then, I just had to write the necessary aggregation/group_by sql to give it the data it expects in the correct shape. Tedious, but it was the path of least resistance.

jd3··on Replacing Complicated Hashmaps with SQLite
We are modernizing and migrating a codebase from the 90s that was used for fec filing at the federal + state level and a majority of their business logic was expressed and written as stored procedures in mySQL.
jd3··on Online Encyclopedia of Integer Sequences
Russ Cox (who recently did a deep dive into the xz attack shell script[0][1]) of Bell Labs Plan9 and Google golang fame re-wrote the OEIS in golang in the summer of 2009[2][3] and now serves as the foundation's president[4]

> "Here, however, we ran into a very serious problem. In the summer of 2009, when we tried to get the OEIS working as a wiki, we discovered that the Mediawiki software was not capable of handling the kind of queries that arise in looking up sequences. This was a disaster."

> "It took us over a year to resolve this problem. In the end, Russ Cox completely rewrote all the programs needed to maintain the database and answer queries - a huge task! NJAS's colleague David Applegate has also been of enormous help in getting the new system working. As a result of their work, the new OEIS was finally launched on November 11, 2010. It is now possible for anyone in the world to propose a new sequence or an update to an existing sequence. To do this, users must first register. A group of about 130 editors has been formed, whose job it is to review submissions before they become a permanent part of the OEIS."

> "So, after nearly two years of struggle, the OEIS was finally able to operate without NJAS having to approve every change. After 46 years of running the database, this came as a great relief to him."[2]

> "It's true. The original software was an email auto-reply implemented in shell. The first web version of the software was CGI invoking roughly the same shell script. I didn't have anything to do with those. The next web version (which I wrote in ~2006) was CGI invoking C with an mmap'ed index file. The third web version (which I wrote in ~2010 and is the one running today) is a Go HTTP server, fronted by Apache."

> "Note that I'm only talking about the software for the "interactive" UI, not the database itself. The database itself goes back to punched cards and the original interactive UI was a pair of published books (first A Handbook of Integer Sequences, and then the Encyclopedia of Integer Sequences)."[5]

[0]: https://news.ycombinator.com/item?id=39902241

[1]: https://news.ycombinator.com/item?id=39903685

[2]: https://oeis.org/wiki/Welcome#OEIS:_Brief_History

[3]: https://news.ycombinator.com/item?id=9920020

[4]: https://oeisf.org/board/

[5]: https://news.ycombinator.com/item?id=9927038

https://news.ycombinator.com/user?id=rsc

jd3··on The window for great-grandmothers is closing
I'm in my late 20s, but my mom had me when she was 42. My Dad's father died 32 years before I was born and my Mom's father died 22 years before I was born, so I've always wondered what it must have been like to grow up with grandfathers, let alone great grandfathers or grandmothers.

On the plus side, in the early 60s, my recently windowed grandmother put herself through night school while raising 4 teenage kids, one of whom eventually worked on the national security council and traveled the world; all these years later, I still wonder how she managed it all without having a nervous breakdown. Life is strange like that, sometimes.

← PreviousPage 2 of 11Next →