NHacker Next
  • new
  • past
  • show
  • ask
  • show
  • jobs
  • submit
Can you build a recognizable World Map in under 500 bytes? (experimentlog.com)
chriscjcj 54 minutes ago [-]
I know this doesn't meet the spirit of the challenge, but...

          _,--',   _._.--._____
   .--.--';_'-.', ";_      _.,-'
  .'--'.  _.'    {`'-;_ .-.>.'
        '-:_      )  / `' '=.
          ) >     {_/,     /~)
  snd     |/               `^ .'
TacticalCoder 7 minutes ago [-]
One could probably map this in JavaScript in 3D on a rotating sphere and it'd be a "recognizable world map" of sorts.
BretonForearm 3 hours ago [-]
Going from "SVG/Canvas is wasteful" to a tile based approach is a giant leap. Wouldn't AI suggest delta encoding of polyline coordinates and discretization of deltas as small, maybe just 2-4 bit integers? Storing the X and Y delta vectors separately, rather than interleaved, could lead to a further increase to the compression ratio.

What was asked of Claude? The article is very sparse on this.

simonw 3 hours ago [-]
I didn't know you could do this with fetch() and a data: URI:

  fetch('data:;base64,1ZpLsgIxCEXnrM...==').then(
    r => r.body.pipeThrough(new DecompressionStream('deflate-raw'))
  ).then(
    s => new Response(s).text()
  ).then(
    t => b.innerHTML = '<pre style=font-size:.65vw>' + t
  )
1e1a 2 hours ago [-]
I feel like this challenge would be a lot more interesting if the size of complete code needed to output the map were counted.
AaronAPU 4 hours ago [-]
Is there a good known algorithm which performs general purpose compression where the target is a given turing complete instruction set? Rather than relying on a fixed general purpose decoder and the associated compressed data.

I’m asking here instead of asking an LLM because that’s what humans used to do and it was pleasant.

wizzwizz4 4 hours ago [-]
A perfect implementation would be a Kolmogorov oracle. https://en.wikipedia.org/wiki/Kolmogorov_complexity#Halting_... suggests this is equivalent to a halting oracle. So, it depends what you mean by "good".
convolvatron 4 hours ago [-]
that sounds pretty related to Kolgomorov complexity, which is uncomputable in general. https://en.wikipedia.org/wiki/Kolmogorov_complexity

I too would be interested in approximations or heuristics if anyone has any

gus_massa 2 days ago [-]
Why is there a lake in Africa near Congo/Gabon istead of one near Uganda?

Also, can this be done with png? Most consecutive lines are very similar, so I'd expect the algebraic pass to be very useful.

TacticalCoder 6 minutes ago [-]
> Why is there a lake in Africa near Congo/Gabon istead of one near Uganda?

Africa and Europe are connected through Spain.

There's no Suez channel.

There are plenty of approximation: it's the whole point of the thing... You only get 1013 bytes (or, well, 500 bytes in the question asked).

cwmoore 2 hours ago [-]
I like that yours is 45 rows of asterisks.

Makes me think a project-and-rasterize pipeline, sampling a simplified world water boundary map under a variety of projection parameters should give you a range of bitmaps, and then it is up to whoever to decide if the detail lost in all of this renders it incompatible with the world as they know it.

The site below takes detailed map files and removes significant detail for practical purposes:

https://mapshaper.org/

54 minutes ago [-]
56 minutes ago [-]
userbinator 3 hours ago [-]
32x32 4bpp 16-color icon is 512 bytes. There definitely were programs that had a recognisable world map for an icon in those days, so the answer is yes.
ksymph 4 hours ago [-]
Since the map just has two states - land or water - I wonder if there's a way to represent the same information more efficiently bits rather than bytes.
H8crilA 3 hours ago [-]
Any decent compressor will take care of this - and much more.
hnuser123456 2 hours ago [-]
Here's a map in one bit, where 0 is water and 1 is land: 0
27183 1 hours ago [-]
Yes. Here's a map of the entire world in 1 byte. Both hemispheres. The northern hemisphere is depicted above, the southern hemisphere is depicted below:

  :
You're welcome.
FireBeyond 1 hours ago [-]
How is that "recognizable"?
27183 1 hours ago [-]
I claim it's obviously recognizable as the entire surface of a 3-sphere projected onto 2 dimensions, and therefore is clearly an acceptable answer to the original question posed. I added some helpful and clarifying prose expounding upon which hemisphere is what, but could have left that as an exercise to the reader without loss of generality.
Analemma_ 4 hours ago [-]
Presumably you could precompute some parametric function (probably a Fourier sum) which draws a reasonably close map of the world, and get that into 500 bytes with a math-focused programming environment (R, Julia, etc.)? I might try throwing Fable at this and seeing what I can get.
Analemma_ 3 hours ago [-]
Well, here's what Fable came up with in 499 bytes of R in about half an hour: https://pastebin.com/sBsiGD9t, result: https://imgur.com/a/W3eDdIC. Probably with sitting down and tweaking you could do even better, but I think this is a decent first start.
gus_massa 56 minutes ago [-]
Did you or Fable decide to split North and South America?

Can the it also split Africa/Arabia/Eurasia?

Who/how decided which islands to keep and which to erase?

If you want to save a few characters, you can replace `length(v)` with the actual number.

cwmoore 2 hours ago [-]
I can see leas than half of it. Imgur?
throwrioawfo 3 hours ago [-]
What's the point in doing things like this if you just get Claude to do it?
netsharc 1 minutes ago [-]
I wonder how many people hallucinated the word "can" in your comment and downvoted because of it..
StilesCrisis 48 minutes ago [-]
What's the point of any of it to begin with? Why paint a painting? Why learn to play guitar?
hmry 44 minutes ago [-]
Why make Claude play the guitar?
iweczek 3 days ago [-]
Experimenting with drawing a world map and micro-optimization.
im3w1l 2 hours ago [-]
Representation for this I came up with: Allocate one magic number for "start line with space" another for "start line with asterisk" then any other number means this many of the current character and then swap character.

Then it's a matter of picking a suitable way to encode numbers into bits.

I came up with groups of four bits. If the high bit is not set that is the number, if it is set then read an additional group of four bits, and interpret as a biased 7 bit number. This came out to 400 bytes not including decompressor.

urbnspacecowboy 35 minutes ago [-]
> Allocate one magic number for "start line with space" another for "start line with asterisk" then any other number means this many of the current character and then swap character.

The galaxy brain move would be to always arbitrarily start with one character, replace the two special numbers with a single "don't output any characters, just swap" number, and then... congratulations, you just reinvented CompuServe RLE!

http://fileformats.archiveteam.org/index.php?title=CompuServ...

effnorwood 4 hours ago [-]
heck yea! 499 tera. no problem.
Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact
Rendered at 02:28:13 GMT+0000 (Coordinated Universal Time) with Vercel.