HNHacker News
TopNewBestAskShowJobs

bugfix-66

501 karma · joined September 24, 2022

A debugging game for hackers: https://BUGFIX-66.com
submissionscomments
bugfix-66··on SHA-3 Buffer Overflow
All the Go code is safe. No bugs.
bugfix-66··on Why musicians are burning out like never before
When large-scale AI plagiarism starts to impact music (as has already begun for visual art through Dall-E, Stable Diffusion, etc.) that will be another destructive turn of events.

It's very sad to see the road we're on, and to see that these kind of socialist/communist violations of ownership are embraced here on Hacker News. Celebration of the fact that your hard work is now anonymous common property through AI "washing".

The music/art/code you worked hard to build is now "authored" by everyone and their dog.

bugfix-66··on System76 now shipping Intel 13th Gen and AMD Zen 4 on Thelios desktops
Every computer I buy for myself is from System76.

Highly recommended!

bugfix-66··on The simplest and fastest balanced binary search tree: Top-down hash treap in Go
More about the key insertion algorithm:

https://bugfix-66.com/50788214f539d50382528e86242eb3c846b03f...

More about the key removal algorithm:

https://bugfix-66.com/1a9b138bf3fc839703afecc4f64c865bdceb21...

bugfix-66··on Excuse Me Sir, Would You Like to Buy a Kilo of Isopropyl Bromide? [pdf]
Memoir of a man in the industrial chemistry business in the mid-1900's.

Accidental self-poisonings working with minimal safety measures (keeping the window open), etc.

A story from the time before safety mattered.

bugfix-66··on Ask HN: What not-profit-seeking project are you tinkering with this week?
https://BUGFIX-66.com (a puzzle game for hackers, just for fun/education)

Site is intended to be like the book Hacker's Delight, but recast into a game.

Or maybe like professional programming, where you're mostly trying to understand/modify other people's code.

Or maybe like programming in a post-GPT3 world where you're checking/fixing a transformer language model's plagiarized/regurgitated code. Our dystopian future.

Later this week I'll add a Hash Treap puzzle (the fastest and simplest balanced binary tree) following up on the reroot and remove-root puzzles (amazing little algorithms that allow treap insertion and removal, top-down, no rotations).

I'll launch the site properly once I have enough puzzles, maybe early next year.

bugfix-66··on Photoshop for Text
Imagine how your brain is atrophying.

  1. (of body tissue or an organ) waste away, especially as a result of the degeneration of cells, or become vestigial during evolution.

  "without exercise, the muscles will atrophy"
bugfix-66··on Space-filling curve: Mapping 3D space onto 1D space, preserving proximity
More from wikipedia:

https://en.m.wikipedia.org/wiki/Z-order_curve

The Morton space-filling curve allows, for example, linear representations of 3D voxel spaces for efficient GPU rendering.

Do you understand the mechanism well enough to fix the tiny bug in the Go code?

bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
Explicit opt in, period.
bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
Because the scale is different.

You have a mechanism that can regurgitate (digest, remix, emit) without attribution all of the world's code and all of the world's art.

With these systems, you're giving everyone the ability to plagiarize everything, effortlessly and unknowingly. No skill, no effort, no time required. No awareness of the sources of the derivative work.

My work is now your work. Everyone can "write" my code, without ever knowing I wrote it, without ever knowing I existed. Everyone can use my hard work, regurgitated anonymously, stripped of all credit, stripped of all attribution, stripped of all identity and ancestry and citation.

It's a new kind of use not known (or imagined?) when the copyright laws were written.

Training must be opt in, not opt out.

Every artist, every creative individual, must EXPLICITLY OPT IN to having their hard work regurgitated anonymously by Copilot or Dall-E or whatever.

If you want to donate your code or your painting or your music so it can easily be "written" or "painted", in whole or in part, by everyone else, without attribution, then go ahead and opt in.

But if an author or artist does not EXPLICITLY OPT IN, you can't use their creative work to train these systems.

All these code/art washing systems, that absorb and mix and regurgitate the hard work of creative people must be strictly opt in.

That's how the law needs to be.

bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
Yes. The copyright law must change. This is different.
bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
You're absolutely right.

Copilot and Dall-E (and so on) are all bad in the same way.

Many of us agree with you.

bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
You want to use my code, without ever knowing I wrote it? You want to use my hard work, regurgitated anonymously, stripped of all credit, stripped of all attribution, stripped of all identity and ancestry and citation? FUCK YOU!

Training must be opt in, not opt out.

Every artist, every creative individual, must EXPLICITLY OPT IN to having their hard work regurgitated anonymously by Copilot or Dall-E or whatever.

If you want to donate your code or your painting or your music so it can easily be "written" or "painted", in whole or in part, by everyone else, without attribution, then go ahead and opt in.

But if they don't EXPLICITLY OPT IN, you can't use the artist's or author's creative work for training.

All these code/art washing systems, that absorb and mix and regurgitate the hard work of creative people must be strictly opt in.

bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
Training must be opt in, not opt out.

Every artist, every creative individual, must EXPLICITLY OPT IN to having their hard work regurgitated anonymously by Copilot or Dall-E or whatever.

If you want to donate your code or your painting or your music, so it can be used ("written", "painted"), in whole or in part, by everyone else, without attribution, then go ahead and opt in.

Otherwise, you can't use the artist's or author's creative work for training.

All these code/art washing systems, that absorb and mix and regurgitate the hard work of creative people must be strictly opt in.

bugfix-66··on GitHub Copi­lot inves­ti­ga­tion
Microsoft Copilot is easily the greatest theft of intellectual property in the history of man.

You want to use my code, without ever knowing I wrote it? You want to use my hard work, regurgitated anonymously, stripped of all credit, stripped of all attribution, stripped of all identity and ancestry and citation? FUCK YOU

There's no need to defend something so obviously harmful, so why do you do it?

The law should be amended to make this kind of theft illegal.

It's not ambiguous.

bugfix-66··on GitHub Copilot, with “public code” blocked, emits my copyrighted code
Good. Where do I sign up?
bugfix-66··on Ask HN: Military Applications of High-Performance Computing
Correct, unfortunately.
bugfix-66··on Ask HN: Military Applications of High-Performance Computing
Are those companies the best options?
bugfix-66··on Fenwick Trees: The Most Useful Data-Structure You've Never Heard Of
I want the hint to be available easily.

  i += i & -i
adds the least-significant bit of i to i. This is not specific to Fenwick trees, it's a very common idiom.

Essentially, it doubles the size of the fragment to find the containing fragment. The addition can carry, for example 12+4 = 16 so the next larger fragment can be more than twice as large as the fragment we modified.

The idea is that these puzzles are very simple to fix. But you have to ponder the code (or research it elsewhere) to understand it enough to pinpoint the problem.

To fix the bug, simply change

  sum := 0
to

  sum := f.tree[0]
I think BUGFIX-66 may be too difficult for most people here on Hacker News. Even problem #1, which is almost trivial, is only solved by 2% of people who attempt it!
bugfix-66··on The number of comparisons needed to sort a shuffled array: qsort vs. std:sort
Radix sorting with no key comparisons:

https://bugfix-66.com/834f0677c85b23c0bf1047d3654ab7c27ff054...

bugfix-66··on Avoiding the Garbage Collector: A Sparse Bit Vector in Go
Change

  at := b.dat[at]
to

  at = b.dat[at]
to solve the puzzle.
bugfix-66··on Ask HN: What cloud provider are you using for new projects?
For my current side project (see my posting history) I run a Go executable on a $5 Linode. I have other projects that have been running on similar Linode VPSes for more than 5 years.

Vultr is cheap but flaky. It's good for experiments.

bugfix-66··on The Burrows-Wheeler Transform (and Its Inverse) in Go
The inverse transform:

https://bugfix-66.com/7f0f425d3eee8def16e1102d054fd45394d027...

A video explaining how it works:

https://youtu.be/4n7NPk5lwbI

bugfix-66··on Connected Components
Use disjoint-set/union-find for connected components, instead of breadth-first search:

https://bugfix-66.com/5c92ae4bfe4b19be55b1f8136d7f844b630fa8...

Above is the most efficient known disjoint-set algorithm: Martin Rem's union-find.

bugfix-66··on Show HN: State-of-the-Art Arithmetic/Range Entropy Coder/Decoder in Go
Change

  if is1 {
to

  if !is1 {
to fix the bug.

And the decoder:

https://bugfix-66.com/618a1b3b0c80f1439a36cd83cd79f3a5e0b34d...

See if you can make the simple fix yourself.

From wikipedia:

Arithmetic coding (AC) is a form of entropy encoding used in data compression. Normally, a string of characters is represented using a fixed number of bits per character, as in the ASCII code. When a string is converted to arithmetic encoding, frequently used characters will be stored with fewer bits and not-so-frequently occurring characters will be stored with more bits, resulting in fewer bits used in total. Arithmetic coding differs from other forms of entropy encoding, such as Huffman coding, in that rather than separating the input into component symbols and replacing each with a code, arithmetic coding encodes the entire message into a single number, an arbitrary-precision fraction q, where 0.0 ≤ q < 1.0. It represents the current information as a range, defined by two numbers.

https://en.m.wikipedia.org/wiki/Arithmetic_coding

bugfix-66··on Thriller but every lyric is an animated AI generated image
I watched the video and it's an incoherent, meaningless waste of time (sorry).

It's also hard to care about art when you know no human was trying to communicate something.

It's cheap, disposable, and purely derivative.

bugfix-66··on The approximate grep (agrep) bitwise string search algorithm in Go
This is the Bitap (or Shift-And) algorithm described here:

https://en.m.wikipedia.org/wiki/Bitap_algorithm

Change

  maybe := prefixes << 1
to

  maybe := prefixes<<1 + 1
to fix the bug.
bugfix-66··on Ask HN: Was it worth it for Go to add generics
Generics are useful for some purposes. But mostly they can be avoided in favor of simpler language constructs. Most Go developers understand the importance of using simple code constructs.

There are many experienced developers who (through long experience fighting C++) have come to understand that using a simple language (like Go or C) allows you focus on the algorithms and complexity of the problem you're trying to solve. This is part of the Go culture.

A junior developer might not understand this yet. He's still having fun finding obscure and convoluted contortions of the language that allow him to save little or no effort... not yet realizing that nobody gives a shit and he's wasting his time and the time of his coworkers.

bugfix-66··on Ask HN: Which math/CS books follow a top-down approach for pedagogy?
Numerical Recipes in C: The Art of Scientific Computing

https://www.cec.uchile.cl/cinetica/pcordero/MC_libros/Numeri...

bugfix-66··on C++20 coroutines: “The bug is in the C++ standard, not GCC.” (2020)
I used C++ full-time for more than a decade before finally abandoning it in disgust.

Now I use Go for most purposes, and C or CUDA when appropriate.

Good riddance.

← PreviousPage 6 of 7Next →