HNHacker News
TopNewBestAskShowJobs

jashmatthews

969 karma · joined January 21, 2018

submissionscomments
jashmatthews··on Show HN: PgQueuer – Transform PostgreSQL into a Job Queue
Putting low throughput queues in the same DB is great both for simplicity and for getting exactly-once-processing.

Putting high throughput queues in Postgres sucks because...

No O(1) guarantee to get latest job. Query planner can go haywire.

High update tables bloat like crazy. Needs a whole new storage engine aka ZHEAP

Write amplification as every update has to update every index

LISTEN/NOTIFY doesn't work through connection pooling

jashmatthews··on GIL Become Optional in Python 3.13
It's the sledgehammer approach but... Docker?
jashmatthews··on Porsche Design System v3
Late 80s early 90s Corollas were very popular first track day cars in Australia and New Zealand. A standard AE92 Corolla FX-GT will happily go on a track day as long as it has fresh brake fluid. I've done it!
jashmatthews··on Porsche Design System v3
There are plenty of older Corollas you can use on a track day. My AE92 did fine for a few laps.
jashmatthews··on Mir: Strongly typed IR to implement fast and lightweight interpreters and JITs
> TRYD (Trace Rewriter Yielding Dynamics): reconstitutes a CFG from traces in order to not only JIT single hot paths but also multiple interlacing warm ones

Do you have more information on that? Googling didn't turn much up. It sounds similar to the Trace Tree or region based compilation approaches?

jashmatthews··on Choose Postgres queue technology
Sidekiq will drop in-progress jobs when a worker crashes. Sidekiq Pro can recover those jobs but with a large delay. Sidekiq is excellent overall but it’s not suitable for processing critical jobs with a low latency guarantee.

https://github.com/sidekiq/sidekiq/wiki/Reliability

jashmatthews··on Nobody ever paid me for code
Engineering output doesn't even scale close to linearly, though. You _might_ grow revenue 1.5x but now you have 3x as much code/system and need 6-9x as the engineering headcount.

We probably just took a nice small/medium profitable business and completely fucked it.

jashmatthews··on People who've received a black bar on Hacker News
Chris Seaton should have got one
jashmatthews··on Ways to shoot yourself in the foot with Postgres
The defaults do suck but common storage options like SSDs or Elastic Block Storage still do sequential IO substantially faster than random.
jashmatthews··on GitHub Copi­lot inves­ti­ga­tion
Doesn't Copilot reproduce the exact expression given the right prompt, though?
jashmatthews··on Faster CPython (2021) [pdf]
Shopify got to huge scale first and then started sponsoring TruffleRuby and YJIT as research projects.
jashmatthews··on Unvaccinated workers who lose jobs ineligible for unemployment benefits (Canada)
> It is an unfortunate misconception that any of the currently-approved intramuscular vaccines reduce transmission to a meaningful degree.

This is another misconception. Our best evidence is that they're extremely effective. The problem is they're not quite effective enough to just go back to life as before since newer variants are extremely virulent.

jashmatthews··on Unvaccinated workers who lose jobs ineligible for unemployment benefits (Canada)
It's dramatically effective in reducing spread. Unvaccinated people are driving 85-90% of the spread in Germany. https://rocs.hu-berlin.de/publication/maier-2021-germany/
jashmatthews··on Locked-out New Zealanders outraged as visa scheme for rich foreigners resumes
In NZ the normal way is Comparative Value which taxes the increase in market value when you sell.

Fair Dividend Rate isn't a wealth tax. It's a frankly bullshit option rich people can use when their investments do really well to cap the tax owed to 5% of the starting market value.

Hatch explain it a bit here: https://www.hatchinvest.nz/learn-articles/tax-50000-fif

jashmatthews··on From Node to Ruby on Rails
The solution you're looking for is Docker. Gitlab distributes as a Docker image.
jashmatthews··on Germany locks down unvaccinated people, as leaders plan to make shots compulsory
In Germany, the majority of the cases are from unvaccinated people getting sick and infecting other people

https://rocs.hu-berlin.de/publication/maier-2021-germany/

jashmatthews··on Germany locks down unvaccinated people, as leaders plan to make shots compulsory
Vaccinated people don’t transmit as much, nor are they as likely to contract the virus. Current estimates are 85-90% of transmission in Germany involves someone unvaccinated

https://rocs.hu-berlin.de/publication/maier-2021-germany/

jashmatthews··on Tech investors can’t get enough of Europe’s fizzing startup scene
Paying private health insurance and pension is, inalmost all cases, better for an internationally mobile founder anyway!
jashmatthews··on Merge YJIT: an in-process JIT compiler
> the actual JIT is only a couple of thousands of lines of C

Even for Ruby, a basic JIT can be implemented in a few hundred lines of C using a "threaded code" approach.

Real JIT compilers got started this way. Safari JavaScriptCore's JIT used a "context threaded code" approach and was just 4k LOC

https://webkit.org/blog/214/introducing-squirrelfish-extreme...

jashmatthews··on Index bloat reduced in PostgreSQL v14
Because the contents of the table is changing the statistics are becoming out of date.
jashmatthews··on Index bloat reduced in PostgreSQL v14
Tune autovacuum analyze to run every 30mins. Seriously. The query planner needs up to date statistics.
jashmatthews··on Fullstaq Ruby: Ruby, optimized for production
jemalloc isn’t a special allocator. It’s basically the FreeBSD default.
jashmatthews··on PostgreSQL, Memory and the Cloud
THP is a net loss for many workloads, including PG https://www.percona.com/blog/2019/03/06/settling-the-myth-of...

For workload using forking and CoW sharing like Redis or CRuby it negates the entire benefit of CoW since flipping a single bit copies the entire huge page.

jashmatthews··on Why Is JRuby Slow?
The Truffle based implementations of dynamic languages get close depending on what you’re benchmarking.

https://stefan-marr.de/papers/dls-marr-et-al-cross-language-...

jashmatthews··on Why Is JRuby Slow?
The Ruby community continues to grow in absolute terms of you’re looking at conference numbers etc. The rest of the industry exploded!
jashmatthews··on Why Is JRuby Slow?
Crystal is little like Ruby now.
jashmatthews··on Cinder: Instagram's performance-oriented fork of CPython
> Sadly not much progress has been made on the RubyVM

Lots of progress has been made on CRuby. The official optcarrot benchmark (realistic-ish interpreter bound) is ~6x faster on Ruby 2.6 than Ruby 1.8.

CRuby performance running Rails improved almost as much. Zendesk got a 2-3x improvement from 1.8 to 1.9 and 1.9 to 2.6 doubles it again.

jashmatthews··on Cinder: Instagram's performance-oriented fork of CPython
Enormously. The latest Railsbench results on TruffleRuby are ~3x CRuby.
jashmatthews··on Parsing Protobuf at 2+GB/S: How I Learned to Love Tail Calls in C
Even more wild is the JavaScriptCore bytecode VM which is written in a Ruby DSL which is either compiled to C or directly to ASM.

I'm jealous we don't have something like this for CRuby!

jashmatthews··on Berlin rent cap overturned by Germany's top court
https://blog.pragmaticengineer.com/software-engineering-sala...
← PreviousPage 2 of 18Next →