HNHacker News
TopNewBestAskShowJobs

zackmorris

6,214 karma · joined September 7, 2011

Everything always happens at once

https://www.linkedin.com/in/zack-morris-48996538/ http://stackoverflow.com/users/539149/zack-morris https://github.com/zmorris

submissionscomments
zackmorris··on Show HN: Stop AI scrapers from hammering your self-hosted blog (using porn)
This is very hacker-like thinking, using tech's biases against it!

I can't help but feel like we're all doing it wrong against scraping. Cloudflare is not the answer, in fact, I think that they lost their geek cred when they added their "verify you are human" challenge screen to become the new gatekeeper of the internet. That must remain a permanent stain on their reputation until they make amends.

Are there any open source tools we could install that detect a high number of requests and send those IP addresses to a common pool somewhere? So that individuals wouldn't get tracked, but bots would? Then we could query the pool for the current request's IP address and throttle it down based on volume (not block it completely). Possibly at the server level with nginx or at whatever edge caching layer we use.

I know there may be scaling and privacy issues with this. Maybe it could use hashing or zero knowledge proofs somehow? I realize this is hopelessly naive. And no, I haven't looked up whether someone has done this. I just feel like there must be a bulletproof solution to this problem, with a very simple explanation as to how it works, or else we've missed something fundamental. Why all the hand waving?

zackmorris··on In Defense of Matlab Code
Piggybacking also to say that I hope you succeed, as your work aligns closely with the type of runtime that I had hoped to write someday when I first used MATLAB in the early 2000s (now mostly GNU Octave for small hobby projects).

The loop fusion idea sounds amazing. Another point of friction which I ran into is that MATLAB uses 1-based offsets instead of 0-based offsets for matrices/arrays, which can make porting code examples from other languages tricky. I wish there was a way to specify the offset base with something like a C #define or compiler directive. Or a way to rewrite code in-place to use the other base, a bit like running Go's gofmt to format code. Apologies if something like this exists and I'm just too out of the loop.

I'd like to point out one last thing, which is that working at the fringe outside of corporate sponsorship causes good ideas to take 10 or 20 years to mature. We all suffer poor tooling because the people that win the internet lottery pull up the ladder behind them.

zackmorris··on Cosmic-ray bath in a past supernova gives birth to Earth-like planets
> It's kind of why I think sentient life is incredibly rare.

They just found the building blocks of life in asteroid Bennu:

https://science.nasa.gov/mission/osiris-rex/

https://physicsworld.com/a/components-of-rna-among-lifes-bui...

“So far we have not seen any evidence for a preferred chirality,” (Dan) Glavin says (important for understanding why amino acids on Earth seem to all be left-handed):

https://physicsworld.com/a/asteroid-bennu-contains-the-stuff...

Life is probably abundant everywhere in the universe. Also, evolution seems to spring up everywhere, in any system of sufficiently advanced complexity, regardless of what substrate it operates on. So I think that we'll start seeing life-like emergent behavior in computing, especially quantum computing, in the next 5-10 years.

So the question becomes: what great filter (in the sense of the Drake equation and Fermi's paradox) causes life as we know it to go dark or wipe itself out just after it achieves sentience?

Well, we're finding out the answer right now. Life probably merges with AI and moves into what could be thought of as another dimension. Where time moves, say, a million times faster than our wall clock time, so that it lives out lifetimes in a matter of seconds. Life everywhere that managed to survive probably ascended when it entered the matrix. So that by now, after billions of years since the first life did this and learned all of the answers, we're considered so primitive that Earth is just a zoo for aliens.

Or to rephrase, omnipotent consciousness probably gets bored and drops out of the matrix periodically to experience mortal life in places like Earth. So simulation theory probably isn't real, but divine intervention might be.

zackmorris··on Has the cost of building software dropped 90%?
*90% so far..

I've only been working with AI for a couple of months, but IMHO it's over. The Internet Age which ran 30 years from roughly 1995-2025 has ended and we've entered the AI Age (maybe the last age).

I know people with little programming experience who have already passed me in productivity, and I've been doing this since the 80s. And that trend is only going to accelerate and intensify.

The main point that people are having a hard time seeing, probably due to denial, is that once problem solving is solved at any level with AI, then it's solved at all levels. We're lost in the details of LLMs, NNs, etc, but not seeing the big picture. That if AI can work through a todo list, then it can write a todo list. It can check if a todo list is done. It can work recursively at any level of the problem solving hierarchy and in parallel. It can come up with new ideas creatively with stable diffusion. It can learn and it can teach. And most importantly, it can evolve.

Based on the context I have before me, I predict that at the end of 2026 (coinciding with the election) America and probably the world will enter a massive recession, likely bigger than the Housing Bubble popping. Definitely bigger than the Dot Bomb. Where too many bad decisions compounded for too many decades converge to throw away most of the quality of life gains that humanity has made since WWII, forcing us to start over. I'll just call it the Great Dumbpression.

If something like UBI is the eventual goal for humankind, or soft versions of that such as democratic socialism, it's on the other side of a bottleneck. One where 1000 billionaires and a few trillionaires effectively own the world, while everyone else scratches out a subsistence income under neofeudalism. One where as much food gets thrown away as what the world consumes, and a billion people go hungry. One where some people have more than they could use in countless lifetimes, including the option to cheat death, while everyone else faces their own mortality.

"AI was the answer to Earth's problems" could be the opening line of a novel. But I've heard this story too many times. In those stories, the next 10 years don't go as planned. Once we enter the Singularity and the rate of technological progress goes exponential, it becomes impossible to predict the future. Meaning that a lot of fringe and unthinkable timelines become highly likely. It's basically the Great Filter in the Drake equation and Fermi paradox.

This is a little hard for me to come to terms with after a lifetime of little or no progress in the areas of tech that I care about. I remember in the late 90s when people were talking about AI and couldn't find a use for it, so it had no funding. The best they could come up with was predicting the stock market, auditing, genetics, stuff like that. Who knew that AI would take off because of self-help, adult material and parody? But I guess we should have known. Every other form of information technology followed those trends.

Because of that lack of real tech as labor-saving devices to help us get real work done, there's been an explosion of phantom tech that increases our burden through distraction and makes our work/life balance even less healthy as underemployment. This is why AI will inevitably be recruited to demand an increase in productivity from us for the same income, not decrease our share of the workload.

What keeps me going is that I've always been wrong about the future. Maybe one of those timelines sees a great democratization of tech, where even the poorest people have access to free problem solving tech that allows them to build assistants that increase their leverage enough to escape poverty without money. In effect making (late-stage) capitalism irrelevent.

If the rate of increasing equity is faster than the rate of increasing excess, then we have a small window of time to catch up before we enter a Long Now of suffering, where wealth inequality approaches an asymptote making life performative, pageantry for the masses who must please an emperor with no clothes.

In a recent interview with Mel Robbins in episode 715 of Real Time, Bill Maher said "my book would be called: It's Not Gonna Be That" about the future not being what we think it is. I can't find a video, but he describes it starting around the 19:00 mark:

https://podcasts.musixmatch.com/podcast/real-time-with-bill-...

Our best hope for the future is that we're wrong about it.

zackmorris··on Z2 – Lithographically fabricated IC in a garage fab
This is great!

I started programming on an 8 MHz Mac Plus in the late 1980s and got a bachelors degree in computer engineering in the late 1990s. From my perspective, a kind of inverse Moore's Law happened, where single-threaded performance stays approximately constant as the number of transistors doubles every 18 months.

Wondering why that happened is a bit like asking how high the national debt would have to get before we tax rich people, or how many millions of people have to die in a holocaust before the world's economic superpowers stop it. In other words, it just did.

But I think that we've reached such an astounding number of transistors per chip (100 billion or more) that we finally have a chance to try alternative approaches that are competitive. Because so few transistors are in use per-instruction that it wouldn't take much to beat status quo performance. Note that I'm talking about multicore desktop computing here, not GPUs (their SIMD performance actually has increased).

I had hoped that FPGAs would allow us to do this, but their evolution seems to have been halted by the powers that be. I also have some ideas for MIMD on SIMD, which is the only other way that I can see this happening. I think if the author can reach the CMOS compatibility they spoke of, and home lithography could be provided by an open source device the way that 3D printing happened, and if we could get above 1 million transistors running over 100 MHz, then we could play around with cores having the performance of a MIPS, PowerPC or Pentium.

In the meantime, it might be fun to prototype with AI and build a transputer at home with local memories. Looks like a $1 Raspberry Pi RP2040 (266 MIPS, 2 core, 32 bit, 264 kB on-chip RAM) could be a contender. It has about 5 times the MIPS of an early 32 bit PowerPC or Pentium processor.

For comparison, the early Intel i7-920 had 12,000 MIPS (at 64 bits), so the RP2040 is about 50 times slower (not too shabby for a $1 chip). But where the i7 had 731 million transistors, the RP2040 has only 134,000 (not a typo). So 50 times the performance for over 5000 times the number of transistors means that the i7 is only about 1% as performant as it should be per transistor.

I'm picturing an array of at least 256 of these low-cost cores and designing an infinite-thread programming language that auto-parallelizes code without having to manually use intrinsics. Then we could really start exploring stuff like genetic algorithms, large agent simulations and even artificial life without having to manually transpile our code to whatever non-symmetric multiprocessing runtime we're forced to use currently.

zackmorris··on Influential study on glyphosate safety retracted 25 years after publication
A mechanism for harm could be that glyphosate disrupts the gut lining barrier and flora, which can cause or contribute to leaky gut, a loose term for digestive waste and foreign bodies entering the bloodstream.

Those bodies can cause chronic inflammation and the strange autoimmune disorders we see rising over time. Note that some brands like Cheerios (which don't sell an organic equivalent) can contain 700-800 ppb of glyphosate, well over the 160 ppb limit recommend for children by the Environmental Working Group (EWG).

US wheat and other crops seem to have become harder to digest for some people due to genetic tampering. They contains substances borrowed from other species to reduce pest damage, which the body has little or no experience with, which may trigger various reactions (this has not been studied enough to be proven yet).

All of these effects from gut toxicity could lead to ailments like obesity, malnourishment, cardiovascular disease, maybe even cancer. This is why I worry that GLP-1 agonists may be masking symptoms, rather than healing the underlying causes of metabolic syndrome that have been increasing over time.

Many people have chosen to buy organic non-GMO wheat from other countries for this reason. I believe this is partially why the Trump administration imposed a 107% tariff on Italian wheat for example, to protect US agribusiness.

Before you jump on me for this being a conspiracy theory, note that I got these answers from AI and so will you.

My personal, anecdotal experience with this was living with leaky gut symptoms for 5 years after a severe burnout in 2019 from (work) stress, which may have been triggered by food poisoning. I also had extremely high cortisol which disrupted everything else. So I got to the point where my meals were reduced to stuff like green bananas, trying everything I could to heal my gut but failing, until I finally snapped out of my denial and sought medical attention.

For anyone reading this: if holistic approaches don't fix it within say 6 weeks to 6 months, they aren't going to, and you may need medication for a time to get your body out of dysbiosis. But you can definitely recover and return to a normal life like I did, by the grace of God the universe and everything.

zackmorris··on Jony Ive's OpenAI Device Barred From Using 'io' Name
Boyhood did it the same year:

https://x.com/hitRECordJoe/status/1378933672687067140

zackmorris··on RCE Vulnerability in React and Next.js
Ya I used Rails on an aging project for about 6 months and there was so much magic behavior that we couldn't effectively trace through the code, so debugging even the simplest issue took days. Also the happy path mostly ran fine, but we couldn't answer even the simplest questions about the code or make estimations when something went wrong, because we couldn't isolate the source of truth in its convention-dominated codebase.

I come from a C++ background and mostly use PHP/Laravel today, and even though it does things less "efficiently" than the syntactic sugar in Ruby or low-level optimizations in .NET, I find that its lack of magic makes for much higher productivity in the long run. IMHO it feels like Ruby solves the easiest problems with sugar and then glosses over the hardest problems like they don't exist. So I just can't tell what problems it actually solves.

Generally, I think that cleverness was popular in the 2010s but has fallen out of fashion. A better pattern IMHO works more like Cordova or scripting in video games, where native plugins or a high-performance engine written in a language like Swift or Rust is driven by a scripting language like Javascript or Lua. Or better yet, driven declaratively by HTML or no-code media files that encode complex behavior like animations.

Of course all of this is going away with AI, and I anticipate atrociously poorly-written codebases that can't be managed by humans anymore. Like we might need pair programming just to take a crack at fixing something if the AI can't. I'm always wrong about this stuff though, so hopefully I'm wrong about this.

zackmorris··on RCE Vulnerability in React and Next.js
Yikes I didn't know that! I haven't actually used it yet hah.

For a bit of context, I come from writing blitters on 8 MHz Mac Plusses, so I have a blind spot around slowness. Basically, that nothing should ever be slow today with GHz computers. So most slowness isn't a conceptual flaw, but an inefficient implementation.

These alternative frameworks are generally small enough that it might be kind of fun to stress test them and contribute some performance improvements. Especially with AI, I really have no excuse anymore.

Edit: after pondering this for 2 seconds, I suspect that it's actually a problem with backend requests. It may have some synchronous behavior (which I want) or layout dependency issues that force it to wait until all responses have arrived before rendering. That's a harder problem, but not insurmountable. Also things like this irk me, because browsers largely solved progressive layout in the 1990s and we seem to have lost that knowledge.

zackmorris··on RCE Vulnerability in React and Next.js
I couldn't agree more. I'll probably switch from React to something like ArrowJS in my personal work:

https://www.arrow-js.com/docs/

It makes it easy to have a central JSON-like state object representing what's on the page, then have components watch that for changes and re-render. That avoids the opaqueness of Redux and promise chains, which can be difficult to examine and debug (unless we add browser extensions for that stuff, which feels like a code smell).

I've also heard heard good things about Astro, which can wrap components written in other frameworks (like React) so that a total rewrite can be avoided:

https://docs.astro.build/en/guides/imports/

I'm way outside my wheelhouse on this as a backend developer, so if anyone knows the actual names of the frameworks I'm trying to remember (hah), please let us know.

IMHO React creates far more problems than it solves:

  - Virtual DOM: just use Facebook's vast budget to fix the browser's DOM so it renders 1000 fps using the GPU, memoization, caching, etc and then add the HTML parsing cruft over that
  - Redux: doesn't actually solve state transfer between backend and frontend like, say, Firebase
  - JSX: do we really need this when Javascript has template literals now?
  - Routing: so much work to make permalinks when file-based URLs already worked fine 30 years ago and the browser was the V in MVC
  - Components: steep learning curve (but why?) and they didn't even bother to implement hooks for class components, instead putting that work onto users, and don't tell us that's hard when packages like react-universal-hooks and react-hookable-component do it
  - Endless browser console warnings about render changing state and other errata: just design a unidirectional data flow that detects infinite loops so that this scenario isn't possible
I'll just stop there. The more I learn about React, the less I like it. That's one of the primary ways that I know that there's no there there when learning new tools. I also had the same experience with the magic convention over configuration in Ruby.

What's really going on here, and what I would like to work on if I ever win the internet lottery (unlikely now with the arrival of AI since app sales will soon plummet along with website traffic) is a distributed logic flow. In other words, a framework where developers write a single thread of execution that doesn't care if it's running on backend or frontend, that handles all state synchronization, preferably favoring a deterministic fork/join runtime like Go over async behavior with promise chains. It would work a bit like a conflict-free replicated data type (CRDT) or software transactional memory (STM) but with full atomicity/consistency/isolation/durability (ACID) compliance. So we could finally get back to writing what looks like backend code in Node.js, PHP/Laravel, whatever, but have it run in the browser too so that users can lose their internet connection and merge conflicts "just work" when they go back online.

Somewhat ironically, I thought that was how Node.js worked before I learned it, where maybe we could wrap portions of the code to have @backend {} or @frontend {} annotations that told it where to run. I never dreamed that it would go through so much handwaving to even allow module imports in the browser!

But instead, it seems that framework maintainers that reached any level of success just pulled up the ladder behind them, doing little or nothing to advance the status quo. Never donating to groups working from first principles. Never rocking the boat by criticizing established norms. Just joining all of the other yes men to spread that gospel of "I've got mine" to the highest financial and political levels.

So much of this feels like having to send developers to the end of the earth to cater to the runtime that I question if it's even programming anymore. It would be like having people write the low-level RTF codewords in MS word rather than just typing documents via WYSIWYG. We seem to have all lost our collective minds ..the emperor has no clothes.

zackmorris··on Inflatable Space Stations
Oh hah, thanks, I don't usually make mistakes like that! I guess the two were wired together in my brain.
zackmorris··on Inflatable Space Stations
Ya I really like their airship to orbit concept. I asked AI about lift to drag (L/D) ratios in plasma at 10,000-17,5000 mph (5-8 km/s) and it suggested that lifting bodies achieve between about a 1:1 and 3:1 L/D ratio. If we assume the generous 3:1 L/D ratio, that would seem to make a single-stage to orbit space plane possible.

A bit off-topic, but an aerospike engine is half of a rocket nozzle, with a virtual half created by the supersonic shockwave. So we could envision a retractable nozzle half that moves through subsonic, transonic and supersonic modes to power the airship.

Also the SABRE engine uses (according to AI) 16,800 thin-walled tubes filled with liquid hydrogen to cool ambient air to -238 F (-150 C or 123 K) in 10 milliseconds so that it can be compressed up to 140 atmospheres and fed into a combined-cycle engine. That would allow it to be air-breathing up to mach 5.4 (3,600 mph or 1.6 km/s) and transition to liquid oxygen after leaving the atmosphere.

I also asked it about using something like titanium to withstand the heat of exiting the atmosphere (since the titanium SR-71 reached mach 3+) but it said that it can't withstand a high enough temperature. So an ablative coating might need to be applied between launches. Quite a bit of research was done for that through about the 1970s before NASA chose the space shuttle with its reusable tiles.

It seems like most of the hard work has already been done to achieve this. So I don't really understand why so many billions of dollars get devoted to other high-risk ventures like SpaceX. When for a comparatively smaller amount of money, a prototype spaceplane could be built. I'm guessing that the risk/reward value just wasn't proven yet. But really shouldn't VC money chase the biggest bet?

This is the kind of stuff that I went down rabbit holes for when I dreamed of winning the internet lottery. Now that AI is here, I can feel the opportunity for that slipping away. A more likely future is the democratization of problem solving, where everyone knows everything, but has little or no money and doesn't want to pay for anything. So really not much different from today. So maybe it's better to let these half-baked ideas go so that someone else can manifest them.

zackmorris··on An Economy of AI Agents
I think of it like limits in math. The rate at which we'll be out of work is much higher than the rate at which prices will fall towards zero.

A performative/underemployment economy keeps everyone working not out of necessity, but to appease the sentiments of the wealthy. I'd argue that we passed the point at which wages were tied to productivity sometime around 1970, meaning that we're already decades into a second Gilded Age where wealth comes from inheritance, investment and connections (forms of luck) rather than hard work.

And honestly, to call UBI performative when billionaires are trying to become trillionaires as countless people die of starvation every day just doesn't make any sense.

zackmorris··on An Economy of AI Agents
Here's another one: Manna - Two Views of Humanity’s Future, by Marshall Brain. It's a fairly light read, just 8 chapters:

https://marshallbrain.com/manna1

I think I've internalized these stories enough to comfortably say (without giving anything away) that AI is incompatible with capitalism and probably money itself. That's why I consider it to be the last problem in computer science, because once we've solved problem solving, then the (artificial) scarcity of modern capitalism and the social darwinism it relies upon can simply be opted out of. Unless we collectively decide to subjugate ourselves under a Star Wars empire or Star Trek Borg dystopia.

The catch being that I have yet to see a billionaire speak out against the dangers of performative economics once machines surpass human productivity or take any meaningful action to implement UBI before it's too late. So on the current timeline, subjugation under an Iron Heel in the style of Jack London feels inevitable.

zackmorris··on TCP, the workhorse of the internet
I just want to say that it's refreshing to stumble onto someone commenting in the same style that I do. Where most people see things that are good enough, hard to fix or innovative, I see things for their fatal flaws, how they should have been done right from the start and why they are obvious. So I'll just add my list of gripes about TCP that in many ways ruined the internet for decades, and maybe still do:

  - TCP should have been a reliability layer above UDB, not beside it (made P2P harder than it should be, mainly burdening teleconferencing and video games)
  - Window size field bytes should have been arbitrary length
  - Checksum size field bytes should have been arbitrary length and the algorithm should have been optionally customizable
  - Ports should have been unique binary strings of arbitrary length instead of numbers, and not limited in count (as mentioned)
  - Streams should have been encrypted by default, with clear transmission as the special case (symmetric key encryption was invented before TCP)
  - IP should have connected to an arbitrary peer ID, not a MAC address, for resumable sessions if network changes (maybe only securable with encryption)
  - Encrypted streams should not have been on a special port for HTTPS (not TCP's fault)
  - IP address field bytes should have been arbitrary length (not TCP's fault)
  - File descriptors could have been universal instead of using network sockets, unix sockets, files, pipes and bind/listen/accept/select (not TCP's fault)
  - Streams don't actually make sense in the first place, we needed state transfer with arbitrary datagram size and partial sends/ranges (not TCP's fault)
Linking this to my "why your tunnel won't work" checklist:

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

I want to add that the author of the article wrote one of the cleanest and most concise summaries of the TCP protocol that I've ever read.

zackmorris··on Random Font – a typographic experiment exploring randomness [pdf]
I'm not a frontend developer, I knew about ::before and ::after, but just learned about adjacent sibling combinator +, general sibling combinator ~ and :has() after reading your comment. Maybe every character in the text could be wrapped in a <span> via Javascript where the class name is the unicode value (in hex, say). Then css could tighten the spacing and simulate kerning for certain character combinations:

  text:
  
  it
  
  html:
  
  <span class="69">i</span><span class="74 sarcastic">t</span>
  
  css:
  
  /* could also use ch or ex instead of em */
  .69 + .74::before {
    margin-left: -0.1em;
  }
  
  .sarcastic {
    transform: skewX(-10deg);
  }
  
  /* loosen spacing a bit for certain randomness */
  .69 + .74.sarcastic::before {
    margin-left: -0.05em;
  }
Maybe the type of randomness applied could be set as additional classes on the character, limited only by imagination (I added .sarcastic as an example). Maybe AI could be trained on sample text to tidy up the kerning for a large number of permutations, althought the generated css could get quite large.

I asked AI if there's a way to apply css to specific characters instead of selectors, but unfortunately that doesn't seem to be possible (yet). It feels strange to live in a world where I could have just asked AI to do all of this for me in an online sandbox in less time than it took me to write this comment :-/

zackmorris··on Operating Margins
This is maybe the first dataset I've seen that clearly illustrates how margin (profit) is inversely correlated with value to humanity.

Other than Ports, the top 7 highest-margin industries (stock/crypto exchanges, stock exchanges, banks, toll road operators, financial services and asset management) are in financialization and rent-seeking, basically acting as middlemen that use other people's money to extract wealth.

Meanwhile the bottom 7 lowest-margin industries other than LiDAR and aircraft leasing (CRISPR, gene therapy, hydrogen fuel cell, genomics and mRNA therapeutics) arguably have some of the greatest potential to improve quality of life and help the planet.

Sometimes it feels like everything that I care about most has been marginalized and commodified to the point of financial inviability. Meanwhile people who simply came out on the winning side of the multiverse and pulled up the ladder behind them are doing so well that they mock the rest of us for working by actively making our lives harder at every opportunity.

zackmorris··on Whole Earth Index
This deserves an answer.

Cash and assets are phantom wealth, the kind that celebrities lose after their first big break when they forget to pay their taxes and everything gets repossessed. Real wealth is majority shareholder control of the means of production.

It's not so much that billionaires should be blamed for acquiring vast wealth, but that they are a symptom of a broken economic system. In that they use their wealth to lobby and capture the government so that they not only pay low or no taxes, they also get large government contracts and subsidies to multiply their wealth further. And they also own the mainstream media, so can use it to spread propaganda to convince people to vote against their own self-interest. So that deregulation, tax cuts and austerity appear to have equal footing with public investment, even though the former aren't supported by macroeconomic theory.

Why does this matter? Because the premise of trickle-down economics is that investing money at the top causes ripple effects in the economy that eventually reach the bottom. Which sounds nice in theory, but in practice, the wealthy use financialization and tax shelters to vacuum up capital so that it grows only for them. In effect turning themselves into black holes where capital only flows one way (see Capital in the Twenty-First Century by Thomas Piketty). Thus shattering any logical argument for trickle-down economics.

The result being that there is plenty of money for private equity firms, real estate developers, the military industrial complex, the prison industrial complex, big pharma, fossil fuel companies, proxy wars in Middle East and former USSR, you get the idea. Yet there appears to be no money for food stamps, public education, public healthcare, social security, Medicare and Medicaid, university research, government grants, and yes - grants and loans for small businesses like startups.

Meaning that as the US government endlessly slashes funding for anything outside the status quo, the national debt only grows larger. Prices go up while wages stagnate. Paradoxes that apparently nobody can see, because they keep voting for the same people and parties. It's like Lucy pulling the football away just as Charlie Brown tries to kick it, but he never figures out that he's being fooled.

When for a tiny fraction of the billions of dollars we spend on, say, election advertising, we could cure several diseases. We could have thousands, maybe millions, of $10,000 grants for startups working on disruptive technologies, the type of grants that Y Combinator used to give when it started.

Instead we flush it all down the toilet year after year. So that hackers are forced to work in their parents' basements, on shoestring budgets, with skeleton crew teams, spending years of what little leisure time they have to build things that might have otherwise taken weeks. All so that billionaires and surveillance capitalism can keep vacuuming out our savings.

The US GDP is $30 trillion, and there are about 150 million workers. That's $200,000 per year, per worker. Yet the median income is around $65,000 per year. Meaning that 2/3 of our productivity gets skimmed by the wealthy. Where does that other $135,000 per year go? It's not going to hacker culture, that's for sure. So we run in place as the world burns.

zackmorris··on Whole Earth Index
This is great! I remember a turning point for me when I was feeling very low at the height of the War on Terror and jingoism appeared to have taken over the world. Just before the housing bubble popped and politics would swing the other way, but we didn't know that was going to happen yet.

John Mayer was playing music at Macworld 2007 (wish I could find the video) and said "Steve Jobs and Apple Inc. just make life more fun. It's like the opposite of terrorism":

https://www.cnet.com/culture/live-macworld-coverage/

I think of stuff like the Whole Earth Catalog as the opposite of neofeudalism and tech bro culture's revisionist history.

It doesn't have to be this way. Wealth inequality isn't invincible, or even inevitable. Back to basics works. We can get our hacker culture back. We can restore the timeline that's been stolen from us, the one we were on in the 90s before financialization and ensh@ttification ruined all the fun.

zackmorris··on Tiny electric motor can produce more than 1,000 horsepower
I regret writing this comment.

It might not make sense to younger people, but for me growing up in the 1980s, there were many decades of tech stagnation where basically all alternatives to internal combustion engines were suppressed. And the people who made vast fortunes didn't care about disrupting the status quo, so we were forced to live with substandard tech and pay a premium for the privilege. It wasn't until Elon Musk disrupted the car industry with Tesla starting from 2004 that anything changed, which we take for granted now. I really idolized him before he lost his wunderkind status by falling for political propaganda like a mark. Maybe that's my own projection, I don't know anything anymore.

Whereas today, tech is evolving so rapidly that we don't have time to invent much before the singularity hits in the 2040s. We're facing a different existential crisis now, one of finding meaning when so much happens through manifestation outside of our own actions, instead of facing the void that we can't contribute due to the realities of the time it takes to afford the cost of living (a theme from Fight Club). So my points are maybe anachronisms now, frustrations from an era that no longer exists.

Why I got triggered by this motor: 1000 hp at 28 pounds is enough to lift a large car or truck. The rule for helicopters is about 5 pounds per hp (more with a longer prop that has a higher aspect ratio - edit: the Mars Ingenuity drone gets 3.6 lbs per hp in at atmosphere 1% as dense as ours). So 4 of these motors would make a quadcopter the likes of which we've never seen before. It's almost Star Wars tech IMHO. We're talking extremely high ceilings like 50,000 feet or more. Drones that fly at 400, 500 mph or more, even close to the speed of sound.

And we could have had this tech a long time ago, because it's not especially complex. It's just that nobody devoted the small investment for the research. Same for lithium iron batteries, especially LiFePO4, which could have arrived in the 1980s or 1990s because they're so easy to make. Possibly even the 1960s: the SR-71 flew in ..1964! But we had other priorities.

Anyway, it's a great accomplishment and I'm happy for them. I just mourn what might have been had the geopolitical situation been different.

zackmorris··on Tiny electric motor can produce more than 1,000 horsepower
Axial flux motors are such an obvious and simple to build design that I don't understand why they aren't used more commercially. I've mainly seen do-it-yourself projects to build them for home windmills etc.

- divergence -

This is perhaps my greatest frustration with wealth inequality. Billionaires like Elon Musk (not to single him out of the thousand others) sometimes fund innovative projects initially, but seem to get lost in the weeds doubling down on evolutionary tech, while missing obvious opportunities in fringe tech and old ideas that were suppressed.

For example, the Tesla turbine could have been used for an onboard generator, and what better opportunity than to build a hybrid Tesla car using it? Its main drawback is that it gets fouled by combustion products (with secondary drawbacks in low torque, noise, etc). So why not use natural gas, propane or hydrogen? Why not use an external combustion system that heats air and runs it through the turbine in place of using a larger (due to low compression) Stirling engine? Why not mount the turbine in sound dampening material or a vacuum? These are all trivially overcome engineering challenges. Yet we can't buy a cost-effective mass-produced Tesla turbine or even a Stirling engine of any appreciable power online.

As we see more and more of these missed or suppressed innovations by moneyed interests, I can't help but come to the conclusion that wealth inequality is the largest force stopping widespread prosperity, especially the kind brought by automation to provide basic resources. We can claim that so much progress has been made possible by crony capitalism, for example the computers we are writing and reading this comment on, but I believe that they exist despite concentrated wealth, not because of it.

And I'm worried that access to fee-based AI will widen the wealth gap even further. Because people with money will be able to pay AI to do their jobs and get paid, while people without money may be forced to do those jobs by hand performatively under ever-increasing pressure as the cost of AI only decreases due to economies of scale and Moore's law. So that the main goal for moneyed interests could become to deny access to capital to the working class so that they can be exploited. Even though it would be far easier and more beneficial to more people to distribute the costs of some minimal level of AI to everyone in the world.

I dunno, the more I see these exciting innovations that could practically be built for cost of materials (28 pounds of copper costs less than $150 and is the most expensive component) yet never reach widespread adoption - while other inferior products that use more material flourish - it makes me question if our market-based economy even works anymore. I'm not saying that older (antiquated?) alternatives like socialism/communism would work better today, just that there may be a post-scarcity 21st century economy where patents that could increase equivalent personal wealth by orders of magnitude are put into the public domain. Not for money, but as automated and open source goods/services/resources having equivalent value to what money would have provided. The closest I can get is stuff like solarpunk, which still hasn't caught on for reasons I don't understand.

Edit: before I get flamed too badly for this comment, I should add that neodymium magnets could perhaps cost more than copper, and/or be a scarcer resource. If I were working on this type of motor, I would try to get similar performance from non-rare-earth magnets and aluminum wire, as well as explore hybrid motors that achieve say 80% of the power and efficiency using only 20% of the rare stuff. On that note, we are long overdue for mass-produced graphene and carbon nanotube wire. We need a definitive answer as to whether they are safe enough to use commercially, or if they are a dead end like asbestos. I don't understand why billionaires don't put more money into getting this sort of first-principles "real work" done. If I won the internet lottery, I would set up a foundation with an endowment to tackle these pressing problems and invite hackers through grants, sort of like what MacKenzie Scott is doing.

zackmorris··on Updated practice for review articles and position papers in ArXiv CS category
Before being considered for submission to arXiv’s CS category, review articles and position papers must now be accepted at a journal or a conference and complete successful peer review.

Huh, I guess it's only a subset of papers, not all of them. My brain doesn't work that way, because I don't like assigning custom rules for special cases (edit: because I usually view that as a form of discrimination). So sometimes I have a blind spot around the realities of a problem that someone is facing, that don't have much to do with its idealization.

What I mean is, I don't know that it's up to arXiv to determine what a "review article and position paper" is. Because of that, they must let all papers through, or have all papers face the same review standards.

When I see someone getting their fingers into something, like muddying/dithering concepts, shifting focus to something other than the crux of an argument (or using bad faith arguments, etc), I view it as corruption. It's a means for minority forces to insert their will over the majority. In this case, by potentially blocking meaningful work from reaching the public eye on a technicality.

So I admit that I was wrong to jump to conclusions. But I don't know that I was wrong in principle or spirit.

zackmorris··on Updated practice for review articles and position papers in ArXiv CS category
I always figured if I wrote a paper, the peer review would be public scrutiny. As in, it would have revolutionary (as opposed to evolutionary) innovations that disrupt the status quo. I don't see how blocking that kind of paper from arXiv helps hacker culture in any way, so I oppose their decision.

They should solve the real problem of obtaining more funding and volunteers so that they can take on the increased volume of submissions. Especially now that AI's here and we can all be 3 times as productive for the same effort.

zackmorris··on Sodium-ion batteries have started to appear in cars and home storage
It bugged me that lithium-ion battery listings only state 300-500 charge cycles, so I did a deeper dive with AI and found these batteries for a better comparison:

  O($/Wh) D(Wh/kg) D(Wh/L) P($)  E(Wh) M(kg) Vol(L) V(V) C    S     URL(Lithium-ion)
  0.31    236.17   671.08  3.4   11.1  0.047 0.017  3.7  1000 18650 https://www.alibaba.com/product-detail/Wholesale-18650-Lithium-Battery-INR18650-3_1601503766893.html
  0.36    222.00   671.08  3.99  11.1  0.05  0.017  3.7  800  18650 https://www.alibaba.com/product-detail/Hot-Selling-Factory-Price-INR18650-30Q_1601159662361.html
  0.83    160.00   290.20  4     4.8   0.03  0.017  3.2  2000 18650 https://www.batteryspace.com/LiFePO4-18650-Rechargeable-Cell-3.2V-1500-mAh-4.8Wh-7.5A-Rate.aspx
  0.36    227.85   1088.24 6.4   18    0.079 0.017  3.2  3000 18650 https://www.goldencellpower.com/product-item/18650-1100mah-3-2v-lifepo4-cells/
  0.36    222.78   1064.06 6.4   17.6  0.079 0.017  3.2  3000 18650 https://www.batteryspace.com/LiFePO4-18650-Rechargeable-Cell-3.2V-2000-mAh-6.4Wh-6A-Rate.aspx
  0.80    134.74   365.71  10.18 12.8  0.095 0.035  3.2  4000 26650 https://www.batteryspace.com/LiFePO4-26650-Rechargeable-Cell-3.2V-4000-mAh-12.8Wh-12A-Rate.aspx
  0.24    184.00   396.07  3.5   14.72 0.08  0.037  3.2  3000 26700 https://www.alibaba.com/product-detail/lithium-ion-battery-cell-26700-3_1601277009356.html
  0.31    240.00   413.29  4.8   15.36 0.064 0.037  3.2  4000 26700 https://www.sunpowernewenergy.com/product/26700-high-rate-lifepo4-battery-45e/
  0.31    160.00   128.28  4.8   15.36 0.096 0.120  3.2  4000 33140 https://www.alibaba.com/product-detail/High-Quality-LMFP-5AH-Cell-Lithium_1601161018743.html
  0.28    256.41   167.03  5.6   20    0.078 0.120  3.2  5000 33140 https://www.evlithium.com/LiFePO4-Battery/33140-20ah-lifepo4-battery-cell.html

  Edit: dangit, I made a mistake in my previous post. A($/Wh) and C($/Wh) were supposed to be O($/Wh) for outlay. I fixed this one to provide context.
zackmorris··on Sodium-ion batteries have started to appear in cars and home storage
I just heard about this post, so did a quick search and currently it looks like Sriko is the only company providing affordable sodium-ion batteries. They appear to be within about half the energy density of lithium-ion batteries. I used AI (first Google then Bing because it has ChatGPT 5) to create tables comparing battery types:

  A($/Wh) D(Wh/kg) D(Wh/L) P($)  E(Wh) M(kg) Vol(L) V(V) C    S     URL(Sodium-ion)
  0.46    97.50    235.79  1.81  3.9   0.04  0.017  3.0  3000 18650 https://srikobatteries.com/product/sodium-ion-18650-3-0v-1-3ah-3-90wh-20c-rechargeable-battery/
  0.34    114.29   258.31  3.23  9.6   0.084 0.037  3.0  3000 26700 https://srikobatteries.com/product/sodium-ion-26700-3-0v-3-2ah-9-60wh-3c-rechargeable-battery/
  0.32    134.78   258.89  9.98  31.0  0.23  0.120  3.1  5000 33140 https://srikobatteries.com/product/sodium-ion-battery-33140-3-1v-10ah-31wh-12c-cylindrical-battery/
  0.40    112.50   224.09  21.85 54.0  0.48  0.241  3.0  5000 46145 https://srikobatteries.com/product/sodium-ion-46145-3-0v-18ah-54wh-10c-rechargeable-battery/
  0.20    122.22   231.09  43.70 220.0 1.8   0.952  3.2  5000 pack  https://srikobatteries.com/product/sodium-ion-na-5c-70ah-220wh-battery/
  
  C($/Wh) D(Wh/kg) D(Wh/L) P($)  E(Wh) M(kg) Vol(L) V(V) C    S     URL(Lithium-ion)
  0.23    252.00   761.77  2.85  12.6  0.05  0.017  3.6  300  18650 https://www.18650batterystore.com/products/samsung-35e
  0.16    262.01   742.41  2.85  18.0  0.069 0.024  3.6  300  21700 https://www.18650batterystore.com/products/samsung-50e
  
  O:   outlay
  D:   density
  P:   price
  E:   energy
  M:   mass
  Vol: volume
  V:   voltage
  C:   cycles
  S:   size
  
  Note: 26700 is not the same as 27100, they are just what each site specializes in.
  Comment: I think that it should have been 18065 instead of 18650 because then the last 3 digits could be length in mm, same for the others, but what do I know.
  Edit: I forgot to add cycles. When considered, they drop the price of sodium-ion to roughly 5-10 times less than lithium-ion for the batteries shown here.
zackmorris··on A Fast Bytecode VM for Arithmetic: The Virtual Machine
I did a quick search for "smallest C virtual machine" and found this 16 opcode implementation in 125 lines of C:

https://www.andreinc.net/2021/12/01/writing-a-simple-vm-in-l...

Discussion:

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

I'm looking for small VMs like this to run sandboxed experiments and test just-in-time (JIT) compilers so that I can explore things like converting abstract syntax trees (AST) between languages and prefix/infix/postfix notation, if anyone has any favorites.

Bonus points for supporting advanced concepts like atomic operations for concurrency.

zackmorris··on GNU Octave Meets JupyterLite: Compute Anywhere, Anytime
This is great! I always wanted a GNU Octave transpiled to other languages.

Octave could be embedded as a C library for some time:

https://stackoverflow.com/questions/9246444/how-to-embed-the...

https://docs.octave.org/latest/Standalone-Programs.html

There is an OpenCL package to provide GPU acceleration:

https://gnu-octave.github.io/packages/ocl/

Unfortunately it looks like they did it wrong, by providing explicit GPU types and functions, instead of converting unmodified Octave code to run directly with GPU acceleration implicitly:

https://octave.sourceforge.io/ocl/function/oclArray.html

It would be awesome if Octave got implicit GPU acceleration in the browser with something like OpenCL. Unfortunately it looks like OpenCL was never ported to WebGL, so WebCL isn't implemented yet:

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

https://www.khronos.org/webcl/

WebCL is apparently being replaced by WebGPU:

https://stackoverflow.com/questions/11532281/how-to-use-webc...

https://gpuweb.github.io/gpuweb/

https://developer.chrome.com/docs/capabilities/web-apis/gpu-...

- unsolicited opinion -

It's always astonishing to me how the obvious path is rarely taken by industry, because writing open solutions is self-evidently less profitable than writing proprietary ones. Look up the history of the blue LED and countless other innovations to see how that works and why.

I'm hopeful that AI will relieve programmer burden enough that we can explore these obvious roads not traveled. Because we're off on a very long tangent from what mainline computer science evolution might have looked like without tech's wealth inequality.

Unfortunately I see two major (rarely discussed) pitfalls looming with AI:

1) Every tech innovation brings a higher workload for the same pay. The amount of knowledge required to be a full stack developer in 2025 in higher than in 2015, which was higher than in 2005, which was higher than in 1995, and so on. Yet starting pay has not increased with inflation.

2) With AI bringing pair programming everywhere, we may see a decline in overall code quality if humans don't have to deal with it directly. Extended pair programming can lead to over-engineered codebases that can only be read by teams of humans instead of individuals. So whereas one untrained hobbyist could build a website in 1995 using principles like data-driven design, declarative programming and idempotence, today it requires a team to untangle the eventualities of imperative nondetermistic async code that from a user perspective is equivalent to simply hiding the progress bar in the browser.

That's why I'm such a proponent of alternative methods. Abstractions that are quite verbose to represent in, say, Python, can be expressed as one-liners in Octave. The only way to get more concise would be to move towards more of a functional assembly language like Lisp, at the cost of the syntactic sugar provided by array-based languages.

TL;DR: I believe that the most direct path from J.A.R.V.I.S./Star Trek style AI prompts to readable but efficient code is through DSLs like Octave/MATLAB, and some of the lost ways of doing business logic in the 1980s like Spreadsheets, HyperCard and Microsoft Access or FileMaker. Open tools like a GPU accelerated Octave would help us gain more leverage in writing software and possibly speed the evolution of AI itself by helping us more closely express abstractions in code.

zackmorris··on CRISPR-like tools that finally can edit mitochondria DNA
Good stuff.

The main misconception is probably due to me not remembering the "other genes" part. I read it in an article and it clicked so immediately that I took it for granted and didn't save it. I still can't find it, but I think what it said was: if we tell CRISPR to remove a gene sequence, then it will remove all instances of that sequence everywhere. So it has to be tuned to find a very specific sequence, possibly taking into account unrelated genes around the site so it's unique. And I think there was maybe a limit to how long that pattern could be.

> Not even close. Ironically, while the technologies are pretty good in general, every edit requires a ton of engineering work. CRISPR systems are notoriously idiosyncratic - they might edit one target in 80% of cells, and 0% at another target, for no apparent reason. There are definitely open problems with base and prime editing, and those will probably get more-or-less solved in 5-10 years, but I'm reasonably sure there will be genetic disorders for which there is no treatment for decades.

Ok that makes sense, and I kind of wondered what the holdup was. It sounds like there is some probability involved, and also non-obvious blockers that "if we just had these figured out" could let things move forward. I'm sure it's so much more complex than anything I could imagine, I get it.

What I was trying to say though is that biotech isn't abstracted like computer science (yet). It deals a lot with low-level details and legwork. And regulatory and market limitations, as you rightly pointed out. It would be like a programmer never getting free from assembly language, or even having to build their computer from scratch, then spending 10 years on an app just to be told that they weren't allowed to sell it. That's "real work" that programmers generally shy away from. Although I think that deep down a lot of hackers dream of working on real problems like that if they could ever get free of the minutia they're stuck fixing every day.

My experience with AI so far has been that it turns any worker into a manager. So I've largely stopped coding directly, and just tell the AI what to do, and it does it every time in imaginative ways that constantly surprise me. Rather than thinking of it as one AI, I think of it as a team of agents that all work in parallel using context from the current conversation. So I can have several todos lined up, then work through them in real time as if every prompt is being chewed on by one of those agents. They never get tired or complain like me. So the main holdup right now is that I don't know how to orchestrate them effectively, so am having to micromanage them.

So far I'm about 3-4 times more productive, so I'm wrapping up a huge refactor outside my area of expertise that took about 2 weeks, but would have taken 2 months if I was working alone. And its speed will double every couple of years, so 5 years from now AI will be at least 10 times faster than any human programmer. It will also modify itself to quickly grow beyond what we can teach it. I'd estimate that the one I work with has about a 120-150 IQ (at least for programming), although it can be hopelessly naive sometimes. Gaining 10 IQ points per year will put it outside our realm of understanding when it passes 200.

Ray Kurzweil predicted that AI would reach human-level intelligence by 2029 and evolve to AGI to merge with us in the Singularity by 2045. So far we're ahead of schedule IMHO, although I spent most of my life disappointed that things weren't progressing until just a couple of years ago. That ended up being more due to economic forces (it took the intervention of a billionaire after a 20 year suppression of R&D after the Dot Bomb and resulting underemployment/wealth inequality) rather than any technical limitations.

I can't really speak to the specific challenges you mentioned, but I can recommend turning them around. Imagine if the hardest things for us are the easiest things for AI. Filtering large amounts of data? Done. Exploring multiple solutions in a problem space? Straightforward. Imagining novel solutions? Get ready to be surprised. AI will quickly turn all of the unknowns into a neat and tidy flowchart and even test it in simulation. Rinse, repeat, until every disorder is healed.

- some woo woo stuff -

I know it's hard to believe, but we'll have to let go of the unknown. Problem-solving is becoming a solved problem. My gut feeling is that we're entering an age of disillusionment, where work becomes performative, where questions are answered as quickly as they're asked. So that we enter a long now like Star Wars where there isn't so much invention as recombination of recipes. Today will be no different than 10,000 years ago. Unless it's more like Dune where they ban AI and performative work becomes all there is, so that life becomes a play within a fascistic culture that celebrates pageantry. Not so different from spirit deciding to reincarnate in human form to experience suffering and remembrance (a useful model for tech being indistinguishable from magic). Yet today would still be no different than 10,000 years ago. That's why I think the long now is inevitable, regardless of whether or not we constrain AI.

zackmorris··on CRISPR-like tools that finally can edit mitochondria DNA
I'm definitely outside my wheelhouse but I've been thinking about this lately.

I heard that CRISPR can only cut segments that match a pattern, so if there are other genes between the ends that are cut, then those are lost as well. So to do a proper substitution, we'd need to sequence the patient's genes between the cuts, and possibly the whole rest of their genome, to make sure that any patterns don't appear anywhere else, so that nothing important is removed elsewhere.

That sounds insurmountable, but it may not be. Human beings basically all have nearly identical DNA, so maybe we can just derive someone's diff from a known DNA sample. If I ever won the internet lottery, that's the sort of tool that I would want to invest in.

Then we probably need more vectors to get CRISPR where it needs to go. That sounds like more of an engineering challenge to me than having to invent something new. Or at least, the number of vectors found might correlate with R&D funding.

It's not that hard for me to imagine getting the recipe figured out to the point that it's 100% reliable and can even be delivered to specific parts of the body with a certain frequency of light, for example.

Then come up with an iterative process, probably using AI, to catalog and repair all major genetic disorders.

I don't see too much mystery there, even if the final recipes seem byzantine to human understanding. But I wanted to be a genetic engineer before I got into computers when I was 12, so I've had a long time to think about it. If AI eats the programming world like it looks like it's going to, maybe we can find work in biotech. Then it's probably 5-10 years before gene editing is a solved problem.

zackmorris··on Copy-and-Patch: A Copy-and-Patch Tutorial
This is really interesting, and I'm surprised that I had never looked at JIT compiling as self-modifying code (SMC). Also that I had never heard of copy-and-patch.

There are whole classes of problems that can be more easily solved with SMC. That's part of what got me into FPGAs back in the 90s, before I abandoned them due to their lack of exponential growth and proprietary placement and routing tools.

This could have implications for faster in-app scripting like in games. Also for building more powerful shaders. I wonder if there are analogs of the article's mprotect(ret, 256, PROT_READ | PROT_EXEC) calls for GPUs.

← PreviousPage 5 of 34Next →