[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip / qa] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: ipv6 canvas.png (55 KB, 1920x768)
55 KB
55 KB PNG
Previous thread: >>100047790

I added compiler optimization flags. Should've done it from the start desu.

Run
ping -c 1 2a01:4f8:1c1e:85cd:XXXX:YYYY:RRGG:BBAA

to draw a pixel on the canvas. View the canvas here:
https://canvas.zipdox.net
>>
>>100081771
I'll arrive my home very soon and tell you if it's better, OP.
>>
>>100081771
Nice to be back.
>>
>zipdox.net
>>
>>100081771
ded link
>>
>join 10 minutes after the server is up
>the "kys pedo" poster already active
lol, so you were him the entire time
kek you're a faggot, OP, I bet now you'll be banning people for rules you haven't even specified because you know you know you can't justify them without appealing to muh feelings.
>>
>>100081934
Maybe that poster is just running a script. At least the http server was down all night, so a script could simply have resumed working as soon as the server goes up.
>>
>>100081950
It's not, it was stopped manually and restarted a very long (for a script) while after it was getting overwritten.
>>
>>100081934
Fags like OP are the most normalfag retards you can find. Doesn't surprise me the least.
>>
badly coded ip farm
>>
>>100081934
I don't like shotas on my screen, but a blocklist is fucked up.
OP didn't made any rules, why there's a blocklist, who will be blocked?
>>
yeah I think I had enough of 502/ddos simulator anyway
>>
>>100081771
>https://canvas.zipdox.net
timeout

it's over
learn 2 code fag & all fields
>>
>>100081771
gayflare
and still managed to self dos just by posting to /d/
what a fag lol
>>
>>100082455
>posting to /d/
wut? where?
>>
>>100082038
>deciding who you allow on your server is "fucked up"
entitled faggot
>>
>504
are you at max cpu or max bandwidth?
>>
>>100082895
it is fucked up when *you don't say who you allow*
just say it, nigger, so I can know before wasting my time.
>>
>>100082925
>muh compelled speech
YOU ARE NOT ENTITLED TO ANYTHING YOU MASSIVE FUCKING ZOOMER FAGGOT
>>
>>100082961
lol you're mentally ill
>>
>>100082455
I use Cloudflare to provide TLS and compression. I'll get it back up soon.
>>
>>100082977
>conveniently ignores questions
gee i wonder how mentally ill is this tripfag
respond to >>100082038
>>
>>100081934
it was me not OP lmao
>>
>>100082038
desu, I don't think OP is actually going to block anybody.
Maybe he made the blocklist just in case of somebody forks his code to create their own website.
who knows
>>
>>100083185
he would have clarified by now if that was the case
>>
>>100083200
that's true, OP is a faggot
>>
>>100083185
>y-you forked my code? that's it, i'm blocking you
What would this accomplish?
>>
>>100083282
I meant he added this 'feature' for whoever wanted to fork his code, not that he would block the forker.
>>
>>100083185
Rule 9: There are no real rules about moderation either — enjoy your ban.
>>
I'm gonna shut it down to upgrade the VPS.
>>
>>100083344
Kys faggot. No one cares about your five minutes of fame on /g/
>>
>>100083344
>OP finally stopped hosting his servers in Haiti
Finally, got way better now
>>
>>100082961
>Rule 1: You will not post what I don't want to be posted
>"ok, what do you not want to be posted"
>"I do not want to see succulent and delicate shota cocks that beg to be suc- *takes trip off* I MEAN - YOU'RE NOT ENTITLED TO COMPEL A RESPONSE FROM ME ZOOMER FAGGOT I'M NORMAL AND WELL ADJUSTED PLEASE HELP I'M BEING SPEECH-RAPED"
>>
>>100083462
fucking KEK
>>
server actually runs reasonably well now
have you multithreaded it yet?
>>
where did the cute loli cock go?
>>
>>100083628
blocked behind a wall of 504
>>
How hard could this be?
http://canvas.senko-san.com/
2a01:4f8:a0:312c:xxxx:yyyy:RRGG:BBAA
>>
>>100084940
>http
nice try, fed, i'm not giving you my cunny
>>
bump
at this point I think I'm packets/s limited, code is probably optimal since I'm under 100% cpu, loss % is low and up/down is about even
>>
>>100084940
your server is not responding to ping
>>
>>100084940
that hard huh
>>
>jeet antipedo destroy the server
amazing
>>
>>100083344
You should work on the renderer, possibly sending compressed tiles like people were suggesting. If I stay in one spot it's fine but panning sucks, stuff takes forever to load. But if you're CPU limited you probably need multithreading first, since calculating compressed tiles, even if you cache them, is going to eat up CPU.
>>
>>100086468
I implemented multithreading for the tiles but it doesn't help much.
>>
>>100085928
turning off pings and some other sysctl toggles sped it up to the point of crashing my browser with pixel updates. A quick look at the code makes me think the slowness is from updating websockets after every pixel drawn and doing it in the same thread updating the canvas. The server code should be plenty fast maybe batching pixels every second or so would lessen browser and network load
>>
>>100086744
Were you CPU bound for serving tiles or handling ICMP packets? I feel like the for serving tiles you're more likely to be network bound, but for ICMP you're more likely to be CPU bound (or bound to the rate in packets/s the NIC/OS/CPU can handle). One thing that might help is updating tiles less frequently for clients, e.g. only send the tile every N seconds if the tile was modified since last transmit. For more ICMP data you can't really multithread it very well since it's all coming in on a single socket (although maybe you can? if you open multiple raw sockets and call recvmsg from multiple threads do they each get separate packets?) and the dispatch handling should be cheap (I still recommend doing alpha compositing with floats, not point in using doubles). You could get better performance by bypassing most of the network stack using eBPF or io_uring (I'm not sure which makes more sense in this case, probably io_uring?). Batching is probably a good idea >>100086844 just throw all the pixel updates into a ring buffer and let a separate thread handle them async to the main thread.
Here's a good post on fast ring buffers using the MMU:
https://lo.calho.st/posts/black-magic-buffer/
>>
the tiles are completely broken
only new pixels show
>>
>>100086903
That's something I have to figure out.
>>
>>100086844
b-but my bot relies on replies to not flood my local network...
>>
I have disabled drawing for now. It turns out that handling pings was consuming the majority of the CPU resources. I'll put it on a different thread and see how I'm gonna do signaling.
>>
>>100087252
hard FAIL
kek what a pajeet
>>
>>100087272
I just noticed that the entire canvas has white dots over it. I feel like maybe this was a DOS attack by forcing mmap to read/write to/from disk.
>>
>>100087304
>I just noticed that the entire canvas has white dots over it. I feel like maybe this was a DOS attack by forcing mmap to read/write to/from disk.
could be.
or you are a street shitting shit coder.
I guess we should consider the occam's razor on this one.
>>
>>100087304
at least it solves the issue of not being able to tell if a tile hasn't loaded or was just black, you should thank him for doing your job
>>
>>100087304
I did the dots 15 or 20 minutes ago.
>>
>>100087304
can you post the part of your code that receives and processes packets?
>>
>>100087542
https://gitlab.com/zipdox/ipv6-canvas
>>
>>100087568
compiler flags? what CPU are you running this on?
>>
>>100087591
aarch64
>>
File: avatar.png (100 KB, 200x200)
100 KB
100 KB PNG
>>100087598
I dunno man, I don't really know, maybe try optimizing as much as possible for the target SoC you are using.
>>
>>100087252
>that handling pings was consuming the majority of the CPU resources
you mean signaling through websocket was the issue?
>>
>>100087568
>>100087598
Maybe try using recvmmsg to reduce the CPU overhead per packet?
>>
>>100087694
We'll see. I re-enabled drawing, but no websocket messages.
>>
>>100087598
im running '-O3 --march=native' on a 4th gen i5 and its the first time fast updates have lagged my browser. Also I modified it to only update the websocket if the pixel is different than whats there already
>>
>>100087748
Then that requires disclosing the source code as per the license
>>
so what are people using to send images to this?
>inb4 make it yourself
I would if I wasn't a nocoder
>>
File: 1706114868846040.jpg (292 KB, 1447x1437)
292 KB
292 KB JPG
>>100087784
>>
>>100087807
>inb4 make it yourself
Yes, that's the fun.
>>
>>100087875
it's not too fun if you have no idea how to make it kek
>>
lol he really blacklisted me because he's upset about shota cock
>>
>>100087889
start here: https://bugs.python.org/file47781/Tutorial_EDIT.pdf
or here: https://go.dev/tour/welcome/1
>>
>>100087807
This works but is shit for many reasons:
from PIL import Image, ImageFont, ImageDraw, ImageChops
import argparse
from icmplib import multiping

def main(filename: str, x: int, y: int) -> None:
img = Image.open(filename)

addresses = []
for dy in range(img.height):
for dx in range(img.width):
r, g, b = img.getpixel((dx, dy))
addresses.append(f'2a01:4f8:1c1e:85cd:{x + dx:04x}:{y + dy:04x}:{r:02x}{g:02x}:{b:02x}ff')

multiping(addresses, count=1, timeout=1, concurrent_tasks=128, family=6, payload=b'\xff')

if __name__ == '__main__':
parser = argparse.ArgumentParser(
prog='Draw Image',
)
parser.add_argument('filename')
parser.add_argument('-x', '--xcoord', type=int, default=0)
parser.add_argument('-y', '--ycoord', type=int, default=0)
args = parser.parse_args()
main(args.filename, args.xcoord, args.ycoord)

You need pillow and icmplib from pip
>>
>>100087923
I'll give that a read when I have some time, thanks
>>100087939
thanks for spoonfeeding my retard ass, anon. I don't really care if it's shit, can't really complain if I can't make anything better myself kek
>>
>>100087939
idk what I'm doing wrong here, I have the dependencies installed, unless I'm missing another one?
>>
>>100088160
she only accounted for RGB
the pixel is an int instead of a rgb/rgba tuple...
>>
>>100088160
Is it a monochrome image? PIL probably returns a different length tuple depending on how many color channels there are. Also you probably have to run with sudo otherwise it won't be able to create the ICMP socket
>>
File: xubuntu.png (4 KB, 360x360)
4 KB
4 KB PNG
>>100088206
it's not monochrome, no. it's picrel if you want to check, I just picked that pic at random to test it
Also you probably have to run with sudo otherwise it won't be able to create the ICMP socket
I'll do that if it fails without
>>100088199
right, I'll try with a pic without transparency
>>
>>100088233
Ah, yeah it's palletized
put this on the line after
 img = Image.open(...) 

img = img.convert('RGB')
>>
>>100088277
shit's drunk lmao, I already have it installed
>>
>>100088378
It's in your user's local packages, but you're running it as root. add
privileged=False
to your ping arguments. Will remove the need for root.
>>
>>100088725
>multiping(addresses, count=1, timeout=1, concurrent_tasks=128, family=6, payload=b'\xff', privileged=False)
like that, right?
at least I'm not getting any error anymore, it does its thing for a few seconds then closes, doesn't seem to be sending anything though (or none that I can see on OP's link at least)
I ended up reinstalling the 2 python modules needed with sudo pip rather than just pip and that seems to work kek
thanks for the help anon, much appreciated
>>
>>100088886
No problem! Though I'm not actually the original python anon. Just another one that happened to be using the same library for icmp.
>>
and sorry for the anon whose duck I vandalized at 0,0. you can add him back there, I'll place stuff somewhere else
>>
Here's a script I made from my original script for use on the command line. You can shrink images, set delays between pings (-w) etc.
import time, argparse
from PIL import Image
from icmplib import ping
import numpy as np

p = argparse.ArgumentParser(description = 'Draws image to IPv6 canvas.')
p.add_argument('filename', type = str)
p.add_argument('pos', type = int, default = (0, 0), nargs = 2)
p.add_argument('--scale', type = int, default = 1)
p.add_argument('--prefix', type = str, default = "senko")
p.add_argument('-w', type = float, default = 0.0003)
p.add_argument('-t', type = int, default = 0)
p.add_argument('--mask', type = int, nargs = 3, default = None)
p.add_argument('--mask_t', type = int, nargs = 2, default = [10, 50])
args = p.parse_args()

named_nets = {"zipdox": "2a01:4f8:1c1e:85cd", "senko": "2a01:4f8:a0:312c"}
prefix = named_nets[args.prefix] if args.prefix in named_nets else args.prefix
wait = args.w
timeout = args.t

mask = args.mask
mask_t, mask_T = args.mask_t

img = np.asarray(Image.open(args.filename))
size = img.shape
s = args.scale

def alpha(rgba):
a = rgba[3] if len(rgba) == 4 else 255
if mask is None:
return a
dist = np.linalg.norm(rgba[0:3] - mask)
a = int(((dist - mask_t) * a) // (mask_T - mask_t))
return max(0, min(a, 255))

for x in range(size[0] // s):
for y in range(size[1] // s):
pixel = np.average(img[x*s:(x+1)*s,y*s:(y+1)*s],axis=(0,1)).astype(np.uint8)
r,g,b = pixel[0:3]
a = alpha(pixel)
host = f"{prefix}:{args.pos[0] + y:04x}:{args.pos[1] + x:04x}:{r:02x}{g:02x}:{b:02x}{a:02x}"
while a:
response = ping(host, count = 1, privileged = False, timeout = timeout)
if timeout == 0 or response.packets_received > 0:
break
time.sleep(wait)
>>
Did anyone try to download the whole canvas and downsample it to a manageable size?
You need a lot of bandwidth.
>>
RIP 0,0 duck
>>
>>100089117
#!/bin/bash
mkdir -p tiles
for y in {0..255}
do
for x in {0..255};
do
curl "$1/tile/$x/$y" -o tiles/$x,$y
done
done
>>
File deleted.
>>100081771
I amazed that OPs server is still up. My own machines connection is being slowed down due to the sheer amount of ICMP packets being sent.
>>
do you pay your janny?
>>
I implemented WS message buffering and it seems stable right now.
>>
What's the point in it being 65536x65536 if it's impossible to see beyond like 5000x5000
Maybe add the ability to zoom out further than 100% while downsampling the pixels? I.e. 50% zoom with 2x2 pixels downsampled to 1
>>
Seems actually usable now even with a few people spamming non-stop.
>>
>>100089882
Check this out:
>>100066563
>>
>>100089882
What's the point of a Minecraft map being 60x60 mil of you can only see like 192 blocks out?
>>
Oh no, the Satania guy lost against the Indian head guy.
>>
starting to slow now with 4 or 5 ongoing fights
>>
Cool thread OP, i really like this!
It's like r/place but for actual intelectuals, really cool.
>>
Maybe add some shortcuts to the renderer navigation?
jump to coordinate, jump to random coordinate, arrow key navigation, etc.
>>
File: 1713171205124137.png (236 KB, 665x965)
236 KB
236 KB PNG
I've tried writing something in rust but I've got no idea if it actually works or not since I ISPjews won't bring v6 to my shithole.
https://pastebin.com/yEixhdmZ
>>
india superpowar
>>
>>100087568
https://gitlab.com/zipdox/ipv6-canvas/-/blob/master/blocklist.c?ref_type=heads#L91
>for(gsize i = 0; i < blocklist->blocklist_len; i++)
lmao
>>
pajeetgod has forsaken us and now the loliniggers are taking over again
>>
Linux has retarded api deficiencies
>>
It's strange that the ping responses are unreliable acks. I'm definitely receiving them for pixels that aren't being written. I guess it's possible for Linux to reply to ICMP packets without handing them to the application under high load?
>>
File: file.png (51 KB, 1160x339)
51 KB
51 KB PNG
>>100087889
I have one for myself.
>>
>>100094515
add simple download of entire map scaled down to 2000x2000
and 8000x8000
>>
otherwise now it's elders scroll [down]
>>
>>100091804
>I've tried writing something in rust
remember to tongue their CoC, cuck

>I like giving up my freedom
>>
File: 000.png (7 KB, 364x336)
7 KB
7 KB PNG
>>
>>100095600
#cringe
>>
File: 1688657213041148.jpg (144 KB, 850x1069)
144 KB
144 KB JPG
satania has won
>>
Who is the faggot drawing neco arc all over the entire canvas?
>>
>>100096890
ban him
>>
>>100096907
I don't log the draws, and doing so would be very expensive, so I don't know who did it.
>>
>>100097437
In before someone spams CP. Do ISPs even log ICMP requests or is it untraceable? It's sounding dangerous now.
>>
>>100097474
Do you honestly think an ISP would like hundreds of gigabytes of ICMP packets?
>>
>>100097437
Actually storing the source address for each pixel would take only ~60GB, which are write-only most times and which you can store on a hdd.

>>100097500
Interesting hidden channel.
>>
>>100097474
You can spoof the source address on IP packets, though certain routers have egress filters that prevent sending packets from a subnet that they don't personally handle, I don't know if they do it on ipv6, and you can still spoof to any IP within that subnet to bypass the filter anyway, which can be quite large depending on the prefix you manage to get your hands on.
>>
>>100095856
sandy cock vore will always be the true winner
>>
>>100097537
Bold words for someone who appears to have lost.
>>
>>100097563
sandy cock vore has returned
>>
File: 1704002497167895.gif (660 KB, 498x488)
660 KB
660 KB GIF
>>100097537
>>100097590
Sandy cock vore can't even hold a small area where satania is. How can you claim that as a victory?
>>
>>100097616
you were saying? sandy cock vore will always remain undefeated...
>>
Someone post the pic of Satania eating so I can help.
>>
>>100097758
this the image I am using in PPM6 format
https://0x0.st/Xo4W.ppm
>>
how the fuck are you guys doing this shit without killing your net? I can't do anything without my router telling me to go fuck myself and cutting off my net
>>
>>100097865
my router is shitting itself. I have to stop running my bots just so that I can visit certain websites.
>>
sandy cock vore does not suffer from such issues
>>
you vill not ban evade
you vill have the doxxable ip address
>>
not clickikng your botnet link but i saw this at the CCC years ago
>>
Looks like the cock spammer stopped.
>>
sandy cock vore has seemingly been banned by op.......... it is the ultimate winner
>>
>>100087419
the dots are a nice touch! makes it easier to find stuff and decide on coordinate placement etc. + indeed makes it easier to tell actual black from "not working".

can't ping the thing, trying to read up on this thread at a blazingly fast pace so I'll probably miss something, but seems like stuff is broke and down for repairs? (under construction).

If this ever comes back online I i'll draw a single pixel later! cool project!
>>
File: 1691552886057361.png (163 KB, 361x426)
163 KB
163 KB PNG
>>100097691
>>100097959
>>100097590
>he gave up again in less than a hour
satania has won yet again
>>
>>100098566
not my fault op banned my ip from placing pixels
>>
>>100094851
shut up nocoder
>>
op actually blocked the entire european digitalocean ipv6 range what a faggot
>>
>>100099086
>OP is a retarded cuck
every single tie
>>
>>100086929
>>100086744
Wait, are you sending the updates to each client every time a pixel changes?
>>
>>100098714
>shut up nocoder
i'm working as devel since 15+ years
massive sellout spineless ultra-troon
>>
>>100097500
>Do you honestly think an ISP would like hundreds of gigabytes of ICMP packets?

>>100097474
>Do ISPs even log ICMP requests
they do it, it's required by law.
>>
>>100097437
>i don't log the draws
then how do you know who to block
fucking liar piece of shit
why don't you just say the rules instead of making us play this guessing game, powertripping faggot
>>
>>100099269
That must be a lot of data.
>>
>>100099269
>they do it, it's required by law.
>hundreds of exabytes
>per month
>80% is encrypted
>kept forever
kek
I think financing this would cost more than some countries military budgets
>>
>>100099086
There was someone with a /16 block spamming, don't know if that's what you're talking about.
>>100099226
No I'm buffering now, sending every 500ms.
>>100099272
Manually run tshark to catch the offender. The pcap files get massive very quickly.
>>
>>100099513
>i don't log
>i just manually log
that's called logging
>>
>>100099357
>kek
>I think financing this would cost more than some countries military budgets
cool.
They are usually required to log CONNECTIONS.
Not all data insite.
Which IP connected to which IP, what port.

In fact I guess ICMP might be excluded from this logging.
>>
>>100099575
when I was working on such system, in Europe, around decade or half ego, we logged:

src ip:port, dest ip:port

and the IP proto.

Probably we logged only TCP. Maybe UDP but not each individual datagram.
So, just the stream probably. Almost certainly not ICMP.
>>
>>100099575
>might be excluded from this logging.
as well as any other connectionless protocol, probably because you can fake source ips
at least with TCP, you have to give a proper address else you can't syn/ack and send actual data
>>
>>100099607
>as well as any other connectionless protocol, probably because you can fake source ips
>at least with TCP, you have to give a proper address else you can't syn/ack and send actual data
which other connectionles IP protocos?

Other than TCP/UDP/icmp are probably very rare, oh maybe also some of the more classical VPNs (GRE?)

https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml
>>
>>100099237
sure you do
>>
>>100099513
>OP actually banned me for drawing neco
super gay
what are the rules OP, clearly there are some and I'd rather not have to guess what they are
>>
>>100099746
were you also using digitalocean?
>>
>>100099850
No
>>
>make program with a certain purpose
>ban people who use that purpose too optimally
>always dodge when asked to elaborate on what was the offense, because it's physically impossible to articulate such an arbitrarily enforced "rule"
what a fucking faggot, worse than your average tranny
>>
redditoid behavior
>>
lel this is hilarious
>>
how is every square inch of the board covered in neco-arc spam? lol
>>
>neco spammer
Yeah I don't mind him getting banned.
>>
>>100100571
put your trip back on, zip
>>
>>100100644
t. neco spammer
>>
>>100097865
You have to throttle it if you're doing it from your home network. There are a few ways to achieve this, but just putting a usleep() with sufficient time between packets will work. You should tune it so your upload/download should be roughly equal (implies low loss).
>>
>>100101007
You might need a spinsleep if the usleep value is too small and nanosleep is too slow
static inline void spinsleep(size_t cycles) {
size_t end = __builtin_readcyclecounter() + cycles;
while (__builtin_readcyclecounter() < end) continue;
}

replace __builtin_readcyclecounter with __rdtsc/_rdtsc for msvc/gcc
>>
>>100101007
>if you're doing it from your home network
what are you using if you're not doing from your home network? would probably help because it's horribly slow for me on my home connection, and I don't even have bad speeds usually
>>
>>100101560
VPS instance (Hetzner, Linode, etc.)
>>
that image at 1900,0, kek
>>
>red rectangle
>cares about gpl
gee i wonder who this is
>>
who's interested in a collective drawer
i'll decide what we draw since i will be the c&c server
>>
>>100101597
thanks for the info. too poor for that so I'll just watch the canvas and what others put on it kek
>>
someone draw over pajeet
>>
>>100099922
>worse than your average tranny
kek!
fucking BASED.

op is a fag, please kys since you can't post your "rules" you massive flaming french faggot
>>
>>100103028
he's german albeit
>>
File: 1713652216696.png (654 KB, 2171x1233)
654 KB
654 KB PNG
>>100103028
> da rulez
>>
>>100104314
>lolicon is based
>shotacon is degenerate
based heterosexual pedophile
>>
>>100104314
Rule 1 is pretty dumb, the canvas looking like a giant collage of crap is sovl
>>
>>100081934
>>100082038
>>100083462
>>100099272
>>100099746
>>100099922
>>100103028
>>100104314
>>100104362
We have rules, now happy?
>>
>>100104314
>do not overwrite others' drawing near 0,0
why don't you just code this rule by making non-black pixels not overwritable past what YOU consider "far enough", dumb nigger, why is it up to us to figure out what is "near"?
>>
File: 1984.png (368 KB, 503x325)
368 KB
368 KB PNG
>>100104314
>>
>>100104362
Technically he never said loli isn't degenerate.

>>100104406
That rule says overwriting is allowed unless OP wants to arbitrarily stop it for some reason (his fetish is losing I'd bet).

>>100104398
Your rules say shota/trap so I'm assuming 3dpd tranny shit is also banned, but what about futa?
>>
>>100104674
>futa
Good catch, I'll add it to the list.
>>
>>100104726
Can we have clarification on loli? Need to know if it's ok to overwrite
>>
>>100104807
I'll allow it
>>
>>100104881
Allow overwriting it? Or allow loli?
>>
>>100104347
what if it's a loli with a dick though?
>>
>>100104902
Allow loli
>>
File: .png (167 KB, 600x600)
167 KB
167 KB PNG
my vps can only do 90k pps
>>
>>100104398
>We have rules, now happy?
where?
0/10 UI design
>>
>>100104398
>muh rules
>Germany
so then...
we can draw *Him*, right?
>>
>>100105897
KEK
>>
File: IMG_0732.png (706 KB, 547x684)
706 KB
706 KB PNG
Senko just keeps losing, huh?
>>
>>100105897
isn't it *His* birthday today? would be fun to honor His memory
>>
>>100105883
Clear browser cache. Bottom left.
>>100105897
The Austrian painter? Sure.
>>
>>100106251
Will you ban the tranny porn spammer? Really tired of seeing naked troons on the canvas
>>
>>100106289
Where are they spamming?
>>
File: file.png (876 KB, 735x947)
876 KB
876 KB PNG
>>100106327
A lot of it has been covered up by people repairing their art/people censoring it, but just look around in the area relatively close to 0,0. They come back occasionally and destroy everything covering it. See picrel for an example.
>>
>>100106356
Unless I catch them drawing I can't do much.
>>
>>100106367
Check your MRs on GitLab
>>
>>100106356
that dude has been butthurt covering up everything he doesn't like with ugly dogshit shit
and there wasn't anything there to begin with, other than the huge shota porn
>>
File: canvas.png (3.94 MB, 1780x1780)
3.94 MB
3.94 MB PNG
>>
>hash
thank god
and I instantly found someone who put an entire hentai somewhere far away
>>100107095
I tried to pull the entire map but it gave too many errors. :(
>>
File: 1703505966515773.png (102 KB, 510x816)
102 KB
102 KB PNG
Which lang are you using?
>>
>>100106367
That seems risky. I know you said you can't really keep track of every request per pixel but what about breaking it up so you only track the last request in every 32x32 square? That way you massively reduce the amount you need to track while still being able to get a good idea of which images are belong to which IP.
>>
>>100107318
Yeah I was thinking about making some kind of tracking system. I doesn't even need to run in the same program.
>>
I like the URL hash for links, but I still find panning around and jumping with G more convenient for exploring.
JavaScript code for anyone who wants to paste this in the JS console to get keyboard navigation:
https://pastebin.com/q9NQLHPk
>>
It's interesting how pseudo-factions seem to have formed on the canvas. Despite these people (presumably) not having any contact with each other.
>>
>>100107826
I miss my alliance with the indian king

I'll forever miss you - Fox
>>
>>100081771
nice website, hans.

would be a shame if someone reported it for not having an impressum
>>
>>100107306
C, but I want to write a Python wrapper to do more interesting things that would be tedious to implement in C comparatively
>>
>>100088378
Brother. Why are you not running this in a virtual environment.
>>
>IP
>very
>6ay
lmao
>>
>>100108505
Would be a shame if the lawyer gets ignored and written a letter himself - he's got a website himself as well after all!
>>
>>100108505
Oh and by the way: Are you seriously trying to flex with cops? Like, with law, jail, cops?
You're a sad loser, kid :-\ At least pose with your own gun.
>>
>>100108505
>Germany is even more of a bureaucratic nightmare than I realized
Nice
>>
>>100108505
>nice website, hans.
>would be a shame if someone reported it for not having an impressum
Jesus Christ, you are the biggest dumb FAGGOT TROON on 4chin today, please unironically and speedily hang yourself on the nearest tree.

Impressum: >100108505 is a gay fag faggot, names anon anon, bank account balance -5$, contact information: PMs on 4chan
>>
>>100108505
>Do I need an impressum page if my website is non-commercial?
>
>No, if your website is non-commercial, you do not need an impressum.
https://docs.hetzner.com/general/others/impressum-faq/
>>
>>100110764
>>No, if your website is non-commercial, you do not need an impressum.
>https://docs.hetzner.com/general/others/impressum-faq/
the glower FAGGOT >>100108873 completely and UTTERLY BTFO.
imagine failing even at being a scummy rat.
>>
File: hijack02.jpg (67 KB, 774x600)
67 KB
67 KB JPG
Thanks OP I learned raw sockets thanks to you.
>>
>>100108505
germanfag here. you don't need one for such a site
>>
>>100089660
Why was this post deleted? Also who covered up Noa with a shitty fractal?
>>
File: its_all_touhou.jpg (172 KB, 969x674)
172 KB
172 KB JPG
It's all Touhou now
>>
>got reported for upping this thread (I guess) and temporarily blocked from posting
why is this board such shit? why do people insist on making it worse by reporting people who post in fun threads like this while the low quality consumer crap stays afloat and is far more active than this one?
>>
File: yeeeeeeeeee.png (361 KB, 800x900)
361 KB
361 KB PNG
Touhou for the win!
>>
>>100114831
>complain about arbitrarily enforced moderation ...on a thread about a site that arbitrarily enforces moderation
>>
can the touhoufag share the code code they are using for the animation? k thx
>>
Server's really not coping with the tile uploads
>>
>>100118107
I still think some sysctl tweaks would speed up his server or at least not running on arm
>>
Hey OP, is furry shit under your "do not draw degenerate crap" clause? Someone keeps trying to put horse furfaggot material at 0,0.
>>
>>100117984
Imagine if everyone started blasting OP's poor server with fucking video over icmp ping. It wont end well for any of us.

But it's written with C using raw linux sockets.
>>
>>100118531
Yeah I'm not trying to use it myself, just wanted to look at the code, but I understand why you wouldn't want to share it lol
Thanks for the info
>>
>>100118351
Horse is winning
>>
>>100118723
Not like you have to do everything in one program
>write painter with preferred language
>extract all frames with ffmpeg
>glue all together with bash
>>
>>100119178
That's my approach. I wrote a C program that takes an image and some parameters and blasts it out as fast as possible, then I have a Python wrapper that invokes ffmpeg, PIL, etc. to generate/modify images/frames, write that to temp file(s), and invoke the C program on the file(s).
>>
>>100118981
He's also lagging the fuck out of the server
>>
I wonder if it would be worth trying a rate limit. Would encourage more efficient painter programming, and wouldn't give those with just shitloads of bandwidth an advantage
>>
>>100119302
Horse is throttled, its been lagging about the same weather im running it or not
>>
>>100081771
"hijack lol" poster should be castrated
(can't) change my mind
>>
File: hijack01.jpg (77 KB, 589x600)
77 KB
77 KB JPG
>>100119178
>>100119279
I convert gifs with imagemagick to an array of PNM P6 files, because they're super easy to read with C. The C program loads them all, and starts scanning the image extents in a randomized pattern, trying to send only changed pixels.
Though it's really a priority because of packet loss. The more times the unchanged pixel has been re-sent, the less likely it is to be sent again.

I'm blasting this off my 100bpms home internet, maybe I should try this on some gigabit VPS ..

>>100119438
That's me lol. I'm blasting bad apple at 0,0 now :3
>>
>>100119597
You know you can read any image file super easily with gdkpixbuf or cairo?
>>
>>100119623
Didn't know that, since I try not use or rely on linux DE libraries. This pnm loader I had laying around.
>>
Holy fuck just running tshark for a few seconds captures over a million packets and makes a >100 MiB file.
>>
>>100119837
Who would have thought that 1 ICMP packet per pixel would be horribly inefficient?
>>
>>100119597
I haven't bothered to determine diffs between frames, mostly because other people are spamming the fuck out of the same area so if I only send pixels that changed the ones I didn't send are probably overwritten with some other crap.
>>
File: howtocomputer.jpg (37 KB, 633x474)
37 KB
37 KB JPG
could this be done with port knocking + ipv6 to get ~65000x more canvas?
>>
File: drfh5u-min.png (2.07 MB, 2599x2599)
2.07 MB
2.07 MB PNG
>>100119933
Sorry, it's a needed
>>
>>100119623
or stb_image
>>
Bad gateway ): pls fix
>>
>>100120088
Trying some optimizations.
>>
File: screenshot.png (145 KB, 404x226)
145 KB
145 KB PNG
Spammer dance club:3
>>
>>100120112
do this

vm.swappiness=20
vm.vfs_cache_pressure = 50
fs.file-max = 65535
net.core.netdev_max_backlog = 16384
net.core.somaxconn = 8192

net.core.rmem_default = 1048576
net.core.rmem_max = 10485760
net.core.wmem_default = 1048576
net.core.wmem_max = 10485760
net.core.optmem_max = 10485760
net.ipv4.tcp_rmem = 4096 1048576 10485760
net.ipv4.tcp_wmem = 4096 1048576 10485760
net.ipv4.udp_rmem_min = 8192
net.ipv4.udp_wmem_min = 8192

net.ipv4.tcp_max_syn_backlog = 8192
net.ipv4.tcp_max_tw_buckets = 2000000

net.ipv4.tcp_fin_timeout = 10
net.ipv4.tcp_keepalive_time = 30
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 4

net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_reordering = 3
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fastopen = 3
net.ipv4.tcp_slow_start_after_idle = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_mtu_probing = 1
net.core.default_qdisc = cake
net.ipv4.tcp_congestion_control = bbr

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_rfc1337 = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
net.ipv6.conf.all.accept_redirects = 0
net.ipv6.conf.default.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
>>
>>100119623
>gdkpixbuf
comfy lib, helps that practically all distros have it installed due to gtk being as common as it is
>>
it's impossible to draw without lost pixels
>:(((
impossible to get tiles for bigger images to prevent re-sending
>:((((
>>
>>100120112
"Optimizations" = ban one of my servers, YOU WILL NEVER CENSOR ME FAGGOT
>>
>>100120226
TCP is not really the problem. The problem is the sheer amount of ICMP packets that need to be processed. In the range of hundreds of thousands per second.
>>
>>100120326
I literally didn't block anyone today.
>>
File: file.png (25 KB, 1055x154)
25 KB
25 KB PNG
>>100120343
my server alone is sending pic related (yellow), though half of them seem to be dropped based on the receive (red).
>>
>>100120391
why not add delay until those are roughly equal, would save bandwith and cpu time
>>
>>100120343
The main one is the bottom ones that stop linux from sending ICMP replies.

also add this
if(pixel[0] == new_colors[0] && pixel[1] == new_colors[1] && pixel[2] == new_colors[2]) return;
above line 153
if(new_colors[3] == 255){
Avoids calling "update_users()" if the pixel didnt change.

>>100120391
I can hit 600k pps from a single vps if I un-throttle it
>>
>>100120356
>>100120112
Make the websocket protocol not just broadcast updates every second, have the client send acknowledge for each tile before sending more, so you wont clog the TCP pipe.
>>
>>100120519
It doesn't send anything if there's nothing to update.
>>
>>100120499
Some drawing bots rely on ICMP replies or WebSocket messages to determine drawing success, so I'm not willing to do that.
>>
>>100120554
Yes but we're spamming video so there's always shit to send, but the websocket keeps getting backlogged because you don't have any update dropping / throttle mechanism. Websocket is TCP, every update you send MUST be received. Something somewhere can't keep up.
>Some drawing bots rely on ICMP replies
I tried, terribly unreliable, pointless.
>>
>>100120582
>I tried, terribly unreliable, pointless.
I know, but normies will ping and be like "the server is down"
>>
>>100120487
I'm gonna try tweaking it again, I came to that conclusion when testing on my home network but testing on a VPS was different. I think it depends on whether the packets are being dropped on your end or his server's end. If they're being dropped on your end then it makes sense to throttle it, if they're being dropped at his server there isn't much you can do because whether they're dropped or not is random (I think, I'm not sure how Linux decides to drop packets or not). Right now I compute the loss % per image pass and assume that loss is fixed for that pass, then I basically send out (1.0 + loss) * number of packets received each iteration.

>>100120499
Are you on a dedicated server or something? I have 2 dedicated vCPUs and I'm capped (Hetzner).

>>100120582
>>100120562
I agree, OP should disable ICMP replies and if he wants to keep them then implement the reply mechanism in the server so it's actually reliable.
>>
>>100120562
Your server doesnt even send ICMP responses half the time and websockets batching means you cant reliably tell if your pixel gets overwritten
>>
>>100119597
>"hijack lol" poster should be castrated
>I'm blasting bad apple at 0,0 now :3
come here boy
>That's me lol.
on the right
>>
File: django_transitioning.png (841 KB, 990x520)
841 KB
841 KB PNG
pic

>>100119597
>"hijack lol" poster should be castrated
>I'm blasting bad apple at 0,0 now :3
come here boy
>That's me lol.
on the right
>>
>>100120619
Hetzner, cheapest 4th gen intel from server auction and my 2 core from buyvm but with a heavy throttle since I dont want a complaint on it
>>
>>100120519
Might be better to use WebRTC or something using UDP then. TCP for what is essentially streaming video is not ideal.
>>
File: file.png (1.26 MB, 1510x884)
1.26 MB
1.26 MB PNG
>Can't join in on spam because no IPv6
>tunnelbroker wont give proxy because behind 5 layers of NAT and they can't verify me
no fair...
>>
>>100120978
Spin up a cheap VPS
>>
File: Untitled.png (328 KB, 405x384)
328 KB
328 KB PNG
someone forgot to install counter strike source
>>
Congrats /g/, you DDoS'd it so hard with ICMP packets that I can't even SSH in anymore. I might have to add a donation link to fund a better server.
>>
>Ping request could not find host canvas.zipdox.net. Please check the name and try again.

what happened
>>
>>100121273
Setting up cloudflared
>>
>>100121255
skill issue?
>>
>You've requested a page on a website (canvas.zipdox.net) that is on the Cloudflare network. Cloudflare is currently unable to resolve your requested domain (canvas.zipdox.net).
now
>canvas.zipdox.net’s DNS address could not be found. Diagnosing the problem.
did u killed it
>>
>>100121255
>paying
Lol you're fucking stupid
And your site is amateur as fuck
>>
>>100121255
You problem
http://canvas.senko-san.com
2a01:4f8:a0:312c:xxxx:yyyy:RRGG:BBAA
>>
File: file.png (36 KB, 589x399)
36 KB
36 KB PNG
>>100120997
They are all rejecting me
>>
>>100121400
>not even https
Amateur
>>
>>100121255
>I might have to add a donation link to fund a better server.
oy vey
>>
>>100121442
Skill issue
>>
>>100121442
Try vultr. If that doesn't work, try https://bitlaunch.io/
>>
>>100121400
Doesn't even work.
>>
>>100121516
trying to fix ops latest commit
>>
>>100121496
bithost has hetzner (host OP is using, meaning you can get in the same DC) https://bithost.io/
>>
>>100121255
>I might have to add a donation link to fund a better server.
fucking BASED!
commies get the roperino.
>>
>>100121255
Can't you just use traffic shaping to reserve some BW for ssh? Of course it's too late now.
>>
>>100121545
No, he's fucking retarded
You can literally get a 8 core VPS for free
>>
>>100121554
>for free
Where?
>>
>>100121554
>You can literally get a 8 core VPS for free
give it back Jamal.

OK I will bite: where? (he will not reply)
>>
>>100121565
>>100121576
Vultr/gcloud/digital ocean free trial
I shouldn't be sharing this but I'm a generous god
>>
>>100121565
>>100121576
The only provider that can give you that is Oracle cloud but them fucking cunts deleteD BOTH OF MY ACCOUNTS unexpectedly after 2 years. a Minecraft server gone
>>
File: 1713744594777.jpg (243 KB, 606x650)
243 KB
243 KB JPG
>mfw can't even print averi at 0,0 like the last canvas
it's over
>>
File: 1626924420325.jpg (44 KB, 393x406)
44 KB
44 KB JPG
tfw deskop pc is a linux system, directly connected to WAN with 200/100mbps connection acting as a router. Can saturate upload bandwidth with 100-150k pings a second.

I tried to run my Bad Apple blaster on my Herzner VPS but it performed way worse due to "sendto no buffer space available". Does anyone know how to fix that when using raw sockets with C? I tried setting SO_SNDBUF via setsockopt to all sorts of values including INTMAX but it did nothing.
Or do I just create more sockets??
>>
>>100121739
so_sndbufforce
>>
File: 1706892349297734.png (376 KB, 408x613)
376 KB
376 KB PNG
>>100081771
can you upload a full screenshot of the last canvas?

>>100105948
>>100119962
based fox enjoyer

>>100121739
where you the bad apple anon from the last thread?
>>
File: fumocirno3d.gif (973 KB, 200x200)
973 KB
973 KB GIF
>>100121819
Ah. Right. I should have just read the manpage :DD I read the part just above this info :D
>>
>>100121860
No, I'm newfag, my first post here >>100113889
>>
>>100121699
>both
Were you banned for having multiple accounts?
>>
File: screenshot.png (219 KB, 590x507)
219 KB
219 KB PNG
The player UI :DDD who did this
>>
>>100121878
last canvas there were two anons trying bad apple and one even got it playing at a good framerate but the resolution was extremely low, good luck ;3
>>
>>100121953
was it the bad apple at 0,0? that was me. cant really do it now that browser only updates at 2fps
>>
>>100121860
The foxes WILL take over 0,0
>>
>>100121976
then play it really slowly and fix it in post
>>
File: screenshot.png (640 KB, 1070x941)
640 KB
640 KB PNG
>>100121953
I mean I've been playing it throughout the day, optimizing and tuning it. But about this is the best I can do with 100mbps upload.
Though I guess I'm running rather high resolution. 360x270. Offsets the low update rate I guess.

I kinda like that it looks like garbage, when other people spam and you can see the update optimizations.
>>
>>100121976
yeah sorry for constantly covering it with averi, forgot I had the script running in the background

>>100121982
facts my brother

>>100122069
yeah it was no where near that resolution, can't do it anymore since >>100121976 said the site update too slowly now
>>
File: horse.png (622 KB, 599x595)
622 KB
622 KB PNG
kino
>>
>>100121293
Did you do something to the updates? It's running way better now. Yet to backlog once.
Or is the server just not in as much load?
>>
>>100122166
youre welcome
>>
File: screenshot.png (3.11 MB, 1430x1358)
3.11 MB
3.11 MB PNG
>>
File: ezgif-3-5c7845ecee.webm (2.13 MB, 1920x1080)
2.13 MB
2.13 MB WEBM
This website triggered a bug that ive been randomly experiencing while playing cs2. Anybody have any ideas whats going on?
>>
>>100122654
Fucked graphics card most likely.
>>
>>100122715
its a brandnew 4070ti and it only happens when the monitor is set to 240hz.
i was really hoping its the monitor bc it would be cheaper to replace that.
>>
File: based.jpg (9 KB, 190x268)
9 KB
9 KB JPG
>>100122101

We shall celebrate this glorious victory.
>>
Fox dude jesus fuck how? How many VPS's did you spin up to do this?
>>
File: image.png (798 KB, 555x680)
798 KB
798 KB PNG
>>100122907
2 in OPs DC @ 0.168/ho
>>
File: 1698448591544792.jpg (41 KB, 500x500)
41 KB
41 KB JPG
>>100122955
.. Pay to win game ...
Though I tempted to do that myself .. full canvas bad aaple
>>
File: screenshot.png (634 KB, 562x719)
634 KB
634 KB PNG
btw i need this picture
>>
>>100123025
Send contact info (Matrix/Discord) to
lekhiw@uaques.com (some shitty tempmail) and I'll donate them, my only goal is to keep senko off the board
>>
>>100123071
em
>>
>>100123102
rent free
>>
>>100123102
Rent free
>>
File: QXPqYEt.png (243 KB, 431x350)
243 KB
243 KB PNG
>>100123207
>>
The fact that you can't just fire up proxies and spam images with your discord friends using the browser makes this a much more high level spam game.
Good show.
>>
File: 1610387123454.png (60 KB, 450x302)
60 KB
60 KB PNG
>>100123102
Eeh, not sure if i want to take sides in pixel wars
can't tinker with this now anyway gotta sleep

>>100123105
thank you very much
>>
>>100123102
what if I just want to add stuff to the canvas?
>>
File: screenshot.png (46 KB, 141x161)
46 KB
46 KB PNG
Segmentation fault (core dumped)
>>
why is the fox sperg so upset over senko posting lol? he seems very thin skinned
>>
>>100123102
Rent free
>>
>>100123264
kek'd
>>
Make a new thread
>>
>>100123930
They were having a turf war for a while, just ignore the spergs
>>
>>100121293
Here are my suggestions OP
>Use WebRTC (UDP-like) instead of WebSockets (TCP-like) for streaming tile pixel deltas, should improve things a lot
>Multithread/multiprocess ICMP receives and image writes to the mmap'd buffer, pin each of these to their own core
>Use a separate thread/process to handle web clients (maybe multi-threaded, not sure how that would work exactly, SO_REUSEPORT can do this apparently), pin this to its own core
>Don't do alpha blending
>Disable ICMP replies in the kernel, reply to ICMP packets manually and buffer replies during ping_cb
>Remove the blocklist, if you want to block people do it in iptables with the PREROUTING table, much more efficient
>Make tiles client driven for re-fetch and re-fetch periodically (required due to UDP loss): clients request tiles with a timestamp, the server compares said timestamp to the timestamp stored for that tile (separate mmap'd file, uint32 per tile to store last modified timestamp), if older than current send the tile, otherwise send nothing
>Use ICMP packet data payload for less overhead: e.g. IP just specifies where to start drawing from and first pixel color, then the bytes in the ICMP packet are interpreted as RGB values for adjacent pixels (e.g. x+1, x+2, x+3, etc.), can still allow the simple ping API by using the code field in the ICMP packet (should always be 0 for ping, but can be changed for people generating custom ICMP packets) since some ping programs fill the data payload with random data



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.