zzz
world map code up as a draft MR at git.idk.i2p/i2p-hackers/i2p.i2p/-/merge_requests/206 for review/comment/testing/brickbats
zzz
I summarized most of the previous comments up there for people to think about
dr|z3d
I might post some comments on the MR later, but here's what I'm currently thinking..
dr|z3d
1) forget java / jfreesvg entirely. do the entire thing as js /svg.
dr|z3d
re blobs, with a tagged svg map, we can probably do a heatmap style representation of router density per country, with an overlaid key that maps color to count.
dr|z3d
3) inserting the count data and other datapoints that are represented on /netdb might be as simple as extracting them from tables and inserting into the svg via ajax.
zzz
all is possible, but it's straying pretty far away from our core competencies
zzz
(or at least mine)
dr|z3d
someone's put an I2P+ image up on docker if anyone's into docker. hub.docker.com/r/justinhimself/i2pplus
dr|z3d
downloaded 8.3K times, apparently, no idea what that means, but it's more than most of his other images. hub.docker.com/u/justinhimself
snex
8000 of those 8300 are just him testing it
dr|z3d
yeah, probably haha.
zzz
I got batik working
zzz
and I got it down to 8 of their 35 jars req'd, totalling 1MB, or "only" 20 bigger than jfreesvg
dr|z3d
well that's something, well done. it is a bit of a monster though, eh?
zzz
you may find the svg output more pleasing, at least they put in newlines and it looks a little smarter
dr|z3d
you mean the source?
dr|z3d
the svg file structure?
dr|z3d
and when you say working, presumably that's with rrd4j?
zzz
yes yes yes
zzz
the API is huge and a lot more flexible than jfree, you can put css in the svg for example
dr|z3d
I've got css in my svg graphs. :)
zzz
I mean without hacking the source
zzz
I'll check it into my github rrd4j-jfreesvg project shortly
dr|z3d
the only thing I'd be interested in by way of comparison is the visual output, and I doubt there's any difference?
T3s|4
dr|z3d: if only to confirm the expected, no snark stalls on 19+ on 3 different rigs, given the 9999 down limit. On my ISP connection, fairly certain the 'upper limit' of snark's 'down' value lies between 16,000 and 25,000 KB/s (and probably closer to 25,000) before torrents stall, if interested in further testing
zzz
nothing obvious
dr|z3d
formatted source? I purposely remove all redundant newlines, spaces etc from the graph svgs.
dr|z3d
T3s|4: as zzz said, possibly a buffer overrun issue. if it's not an issue for him, I'm not going to pursue it.
zzz
at one point you were greatly concerned with all excesses and cruft in the jfreesvg generated svg; if all you care about now is visual output, then not much to see here
dr|z3d
yeah, the cruft I wasn't a fan of. that's why it's all been removed. all of it :)
dr|z3d
you'd be hard pressed to get the graph svgs any smaller than they are, filesize-wise.
T3s|4
dr|z3d: I must have missed it, when / where was the buffer overrun issue mentioned?
dr|z3d
<zzz> oh this is megabytes. 28000KBps = 28 MBps = 224 Mbps
dr|z3d
<zzz> smells like an integer overflow somewhere
dr|z3d
<zzz> T3s|4, please give me the three SREDQ lines from the debug bandwidth limiter section on /i2psnark/?p=2
dr|z3d
integer overflow, sorry.
T3s|4
ah, thanks, I do recall that
zzz
batik flavor up on github.com/zzzi2p/rrd4j-jfreesvg
dr|z3d
are you any more persuaded to include this in mainline i2p?
dr|z3d
aka canon?
dr|z3d
for graphs, I mean, though it sounds like you're mulling using it elsewhere, like the netdb map..
T3s|4
dr|z3d: if your remove snark's 4 'nines' down limit in your next build, I'm sure I will be able to find snark's 'upper' down limit prior to stalls on my ISP's 400 Mbps Up/Down connection
T3s|4
*you remove
dr|z3d
I'm sure I will, T3s|4, but I'm not going to. :)
dr|z3d
too much distraction for not enough payback.
T3s|4
*** reverts to observer mode ***
zzz
I'm sure you don't need a .0 at the end of every x/y coord in svg, batik doesn't do it, have you yoinked thouse out yet?
dr|z3d
yeah, gone.
dr|z3d
eg <line x1="1" y1="1" x2="384" y2="1" .../>
dr|z3d
you also don't need a leading 0 for 0.x values, either.
zzz
put up some MRs for them then. Although in general nobody seems to care about svg size since it's all usually gzipped
dr|z3d
not much point, I'm working on the 4.x version when 5.x is current wrt jfreesvg.
dr|z3d
and you're probably right about gzip, most people probably don't care about an extra couple of kilobytes pre-gzip.
dr|z3d
side note, don't use xlink-href in your svgs, I think you vaguely mentioned something about those on your netdb map MR.
dr|z3d
deprecated, just use href
zzz
that's down in the lib, not under my control
dr|z3d
ok, just bringing that to your attention.
zzz
but with or without, you can't right-click-save the image and get happy results if the background map is separate
dr|z3d
separate from?
zzz
the alice's restaurant overlay image
dr|z3d
really depends how you're rendering that, but you should be able to get javascript to give you something useful.
zzz
I split them up because if it's in one png it was about 700KB uncacheable
zzz
so the MR is two pngs on top of each other
dr|z3d
as a concept it works, but I'm not a fan of multi-layered huge bitmaps.
dr|z3d
not in the console, anyways. gimp, sure. :)
zzz
sure but it could also be SVG on top of PNG
dr|z3d
svg on svg is best. then you can modify the countries, tooltips and everything else without having to worry about pixel-precise alignment.
dr|z3d
and of course you can provide a resolution-independent, zoomable map and all the rest of it.
dr|z3d
and when I say svg on svg, what I really mean is a self-contained svg with all the data, layers, tooltips etc.
zzz
I don't know why svg+svg is better than just one svg
dr|z3d
right, it's not. a single svg is what I'm driving at.
zzz
yup
dr|z3d
for the heatmap, if you can target individual countries in your svg map, you can do something like a fill with variable opacity (or different colors) to denote router density.
dr|z3d
that way you don't have to deal with overlapping blobs.
dr|z3d
then you've got more visual space to do something with the tunnel lines and width without the the presentation becoming too messy.
zzz
maybe, although that may be too subtle for small countries with lots of users. tradeoffs abound
dr|z3d
no reason why click to zoom links can't be presented in the table, that brings the clicked country into view, zoomed appropriately.
zzz
complexity is the reason...
dr|z3d
sure, you don't do it all at once, but once you've got a javascript framework, it's easily extended.
zzz
it's a tricky line to draw, but all the flags w/ stats is a little problematic with all the hate everybody has on each other and what countries are real or not...
zzz
I feel like the topo map I have tends to soften that a little, while a svg country map would emphasize the political divisions even more
dr|z3d
that sounds like you're referring to Taiwan. :)
zzz
thats a good example, sure, but far from the only
dr|z3d
minor issue in the scheme of things. if we need a non-boundary map to keep everyone happy, I'm sure we can make one.
zzz
thats what I have now ))
dr|z3d
you do, all 700K of it :)
zzz
lol
zzz
sure it would shrink a lot if we just made all the oceans the same color ))
zzz
that would also make it a lot less busy
dr|z3d
did you have a play with cartosvg.com/app ?
dr|z3d
aside from the different projection modes, zoom/rotate features, it can also not display borders (country divisions).
dr|z3d
it's all got a feature to color countries based on data points built in. check the layers tab.
dr|z3d
(with associated legend)
dr|z3d
anyways, let's have a look at your map, see if we can do anything with it for you.
zzz
yeah it's all fun stuff, if we wanted to get serious it would be the usual slog of looking at size, licenses, dependencies, blah blah blah
zzz
here's the size requirements for any replacement base map: 1200x1200 85 degree Web Mercator (WGS-84), crop 215 px off the top and 349 px off the bottom, for a 1200x636 image
dr|z3d
I was just looking at what you uploaded.
zzz
the crops are at about 72 degrees on the top and 60 degrees on the bottom
zzz
you can choose different crop points but then you'd have to change the hardcoded offsets/sizes in the code
zzz
I played with it and decided to do it so basically all of canada and russia were shown and none of antarctica was
dr|z3d
I'm not endorsing png usage, but how does a png 50% of the size of your offering sound?
zzz
good
dr|z3d
see what you think: cake.i2p/file/LqCdsTs6V4_Oz2kG10e6eVvg6bZjizYjWLhJBsspE_RnhDxRFmc7/mapbase.png
dr|z3d
ai upscaled x4, then downscaled to initial resolution and processed via tinypng.com a couple of times.
dr|z3d
counterintuitively, upscaling was intended to remove some of the sea detailing to make the image more compressible.
zzz
in some ways it's better but it makes the continental shelves even more distracting
dr|z3d
so you want all the light blue gone, ideally?
zzz
i don't know what i want
zzz
but flattening all the water (aka blue) to a single color is worth a try, maybe inkscape or gimp knows how to do that
zzz
but the result may just look stupid
dr|z3d
yeah, you can do something with that, I could do something with that too if my gimp install was completely fucked right not.
dr|z3d
*npw
dr|z3d
*now
dr|z3d
some "phased" update appears to have broken just about everything useful. it serves as an image viewer and not much else right now :|
zzz
the result would look something like google maps, which should be pretty familiar to most people
dr|z3d
presumably the map came with the gridlines and you don't have anything without?
zzz
correct
zzz
all these mapping services serve up tiles, it's hard to find the whole thing in one image
zzz
google maps is what kickstarted web mercator, that's why it's everywhere now
zzz
that cartosvg site, btw, is powered by an open source country boundary dataset that's 400 MB
snex
thats gotta be the uncompressed size
zzz
there was another one that you gave me that was a lot more promising except for the janky non-open-source pay us $200 license
snex
the one i suggested was openlayers which im pretty sure is free
dr|z3d
400MB?
zzz
openlayers doesn't have any data, you need a tile server
zzz
this is the janky license one simplemaps.com/world
dr|z3d
json file for country data: cake.i2p/view/KldgdFlDIO_PS8tsv1JNe1gHmB7ut0djjW70RhzVJ_2AnwKR943a/KldgdFlDIO.txt
dr|z3d
that's not quite 400MB. try 24K.
zzz
it also doesn't contain any coordinates (((
dr|z3d
yeah, shouldn't need those, just the individual countries tagged.
zzz
I still need an open-source base map and simplemaps.com isn't it
zzz
i wonder if i should move russia about 3000 miles west because I'm pretty sure nobody lives where it is now ))
zzz
whats that called? centroid?
zzz
population centroid vs. land mass centroid
dr|z3d
haha
dr|z3d
I think that's called "the Putin effect".
zzz
right now the circle is over eastbumfuckistan
dr|z3d
for tagged countries, have a look at cartosvg.com/mercator
dr|z3d
just ctrl+u on the page and you'll see the inline svg.
dr|z3d
careful, you'll get orignal excited, you're talking his language :)
cumlord
very low effort in 2 color mode
dr|z3d
yeah, cumlord, you said it. low effort. haha.
dr|z3d
without the gridlines it would be a lot easier to optimize.