00:08:37 -!- tromp has quit (Remote host closed the connection).
00:20:59 -!- hppavilion[1] has joined.
00:32:49 -!- Vorpal has quit (Ping timeout: 248 seconds).
00:35:41 -!- Vorpal has joined.
00:57:21 -!- Bowserinator has quit (Quit: QUIT!!! OH NO!!).
00:59:26 -!- Guest15079 has joined.
00:59:54 -!- Guest15079 has changed nick to Bowserinator.
01:00:00 -!- Bowserinator has quit (Changing host).
01:00:00 -!- Bowserinator has joined.
01:01:49 -!- sebbu2 has changed nick to sebbu.
01:03:38 -!- moony_ has joined.
01:04:23 -!- moony has quit (Quit: Leaving).
01:05:26 -!- moony_ has changed nick to moonythedwarf.
01:05:38 -!- moonythedwarf has quit (Changing host).
01:05:38 -!- moonythedwarf has joined.
01:05:41 -!- moonythedwarf has changed nick to moony.
01:06:45 -!- lucas99897868 has joined.
01:09:13 -!- lucas99897868 has changed nick to lucas998978681.
01:10:02 -!- lucas998978681 has changed nick to gustavo.
01:10:25 -!- oerjan has joined.
01:10:31 -!- gustavo has changed nick to Guest84182.
01:11:44 -!- Guest84182 has quit (Remote host closed the connection).
01:15:08 -!- sleffy has quit (Ping timeout: 240 seconds).
01:19:29 -!- imode has quit (Ping timeout: 246 seconds).
01:22:27 -!- doesthiswork has quit (Quit: Leaving.).
02:06:39 -!- imode has joined.
02:22:16 -!- doesthiswork has joined.
02:23:36 -!- augur_ has joined.
02:27:31 -!- augur has quit (Ping timeout: 258 seconds).
02:29:07 <zzo38> Will any DEFLATE implementation can implement "two-pass LZ77"? You would first do LZ77 normally, and then generate the Huffman tree, and then redo the LZ77 step but using the existing Huffman tree to determine which backreferences to make, and then do the rest of the compression normally (with a new Huffman tree).
02:30:47 <alercah> how would you decompress that?
02:31:11 <zzo38> Usint any normal decompressor; the DEFLATE format isn't altered.
02:31:48 <alercah> but how do you build the huffman tree?
02:32:09 <zzo38> In the ordinary way.
02:32:40 <zzo38> (The first Huffman tree would not be saved; it is used only temporarily.)
02:33:52 <zzo38> Does that resolve your question, or is it something else that is unclear?
02:34:10 <alercah> I will have to consider it later
02:36:49 <zzo38> My implementation of "Psycopathicteen Tile Compressor" does use multiple passes in a somewhat similar way to this in order to achieve better compression (but it doesn't use LZ77; it also uses a fixed Huffman table, but the mapping of Huffman codes to characters is not fixed and is defined in the header).
02:41:02 <oerjan> zzo38: *Psychopathicteen
02:45:36 <zzo38> oerjan: No, it is spelled "psycopathicteen" (I don't know why, but it is)
03:07:03 -!- xkapastel has joined.
03:23:38 -!- sleffy has joined.
03:43:29 <zzo38> The block size in older versions of my PNG encoder (which uses a modified version of LodePNG) has specification of block size in bytes, but now I changed it so that it is also possible to specify the block size is scanlines as well if you want to (you can still specify in bytes too if you want to do).
03:45:23 -!- tromp has joined.
03:50:05 -!- tromp has quit (Ping timeout: 240 seconds).
04:09:00 <hppavilion[1]> I'm thinking about mereology... and if there could be mereological programming...
04:22:07 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
04:32:54 -!- klaha has joined.
04:39:59 -!- tromp has joined.
04:44:35 -!- tromp has quit (Ping timeout: 240 seconds).
04:50:11 -!- lain____ has joined.
04:50:53 <HackEgo> [wiki] [[DGOL]] N https://esolangs.org/w/index.php?oldid=53248 * Qpliu * (+7895) Created page with "DGOL (Directed Graph Oriented Language) is an imperative programming language in which all values are pointers to nodes within directed graphs. ==Lexical Structure== Linear w..."
04:51:04 <HackEgo> [wiki] [[Language list]] https://esolangs.org/w/index.php?diff=53249&oldid=53233 * Qpliu * (+11) /* D */
05:10:01 -!- doesthiswork has quit (Quit: Leaving.).
05:13:54 -!- lain____ has quit (Quit: Leaving).
05:14:27 -!- doesthiswork has joined.
05:14:58 <zzo38> Because PNG uses DEFLATE which uses both LZ77 and Huffman, this makes it more difficult to properly optimize filter selection. With Huffman only, the filters could easily be corrected after the initial guess if there is a shorter way, but with LZ77 then it is possible some later scanlines may depend on this one, and changing the filter selection will mess it up.
05:16:26 <zzo38> I think the better way would be for the filter selection and DEFLATE to not be two separate pieces, but instead to be one piece that does both, in order to improve compression.
05:30:05 -!- sleffy has quit (Ping timeout: 240 seconds).
05:47:21 -!- sleffy has joined.
05:54:53 <zzo38> LodePNG has a "Shannon entropy" filter strategy. I tried implementing a variant which takes into account the previous scanline as well as the current one, and it does seem to work better, at least with one picture (the PNG logo picture).
05:59:30 <zzo38> (It doesn't work better on all pictures though, but for some pictures it does work better.)
06:00:15 -!- klaha has left ("Leaving").
06:18:15 -!- doesthiswork has quit (Quit: Leaving.).
06:28:21 -!- tromp has joined.
06:32:35 -!- tromp has quit (Ping timeout: 240 seconds).
06:43:39 <zzo38> I made this program to list the chunks in a PNG file: http://sprunge.us/VONI Some PNG files have the picture split in many IDAT chunks. If you want the total of all IDAT chunks, you might use a command such as: pnglist | awk '/IDAT/{x+=$2}END{print x}'
06:55:53 -!- augur_ has quit (Remote host closed the connection).
07:00:54 -!- FreeFull has quit.
07:09:35 -!- sleffy has quit (Ping timeout: 248 seconds).
07:42:52 -!- augur has joined.
08:16:24 -!- tromp has joined.
08:20:53 -!- tromp has quit (Ping timeout: 246 seconds).
08:25:53 -!- tromp has joined.
08:26:20 -!- MrBusiness has quit (Quit: https://www.youtube.com/watch?v=xIIqYqtR1lY -- Suicide is Painless - Johnny Mandel).
08:43:02 <HackEgo> [wiki] [[Newbiefuck]] https://esolangs.org/w/index.php?diff=53250&oldid=46200 * Rdebath * (+468) Add an example program.
08:56:35 -!- xkapastel has quit (Quit: Connection closed for inactivity).
08:59:41 -!- MrBismuth has quit (Read error: Connection reset by peer).
09:06:49 -!- MrBusiness has joined.
09:27:59 -!- lmrwcvmial has joined.
09:27:59 -!- lmrwcvmial has left.
09:34:30 -!- augur has quit (Remote host closed the connection).
09:55:48 -!- imode has quit (Ping timeout: 240 seconds).
09:57:46 <oerjan> hey, it wasn't supposed to be raining today :(
09:58:45 * oerjan dislikes when weather forecasters cannot predict the weather right now
10:13:58 -!- oerjan has quit (Quit: Nite).
11:05:14 -!- MrBusiness has quit (Quit: https://www.youtube.com/watch?v=xIIqYqtR1lY -- Suicide is Painless - Johnny Mandel).
11:35:55 -!- boily has joined.
11:48:09 -!- AnotherTest has joined.
12:25:49 -!- boily has quit (Quit: CAPTIVE CHICKEN).
12:48:59 -!- AnotherTest has quit (Ping timeout: 246 seconds).
13:46:28 -!- doesthiswork has joined.
15:06:34 -!- doesthiswork has quit (Quit: Leaving.).
15:37:07 <Taneb> What's up, b_jonas
15:42:59 <b_jonas> I'm trying to understand the NaN rules for floating point arithmetic instructions. If I understand correctly, x87, SSE2 and MMIX use three different rules:
15:44:07 <b_jonas> when the input are two NaNs, 387 instructions write the NaN with the bigger significand (sign is complicated), SSE writes the FIRST input, and MMIX writes the SECOND input,
15:44:29 <b_jonas> where in both cases the second input means the one that's negated in a subtraction or the divisor for a division.
15:45:01 <Taneb> Ugh, sounds painful
15:46:09 <b_jonas> but this "first source" and "second source" is so complicated that I might have just swapped them somewhere
15:57:28 <b_jonas> wtf. who invented the SSE floating point min and max operations? isn't it enough that the add and multiply aren't commutative, do we need a non-commutative max and min too?
15:58:56 <Taneb> I seem to remember that a design goal for MIX was to not be that similar to any other architecture but be sort of similar to all the current ones, does that also apply to MMIX
16:07:24 <b_jonas> in case it matters, one of the ARM extensions have yet another rule for operations on two NaN inputs. I don't know the details, ARM is complicated.
16:16:08 -!- augur has joined.
16:18:00 <HackEgo> Algorithms (derived from the medieval "algorisms") are popular sayings by former president Al Gore, except for God's Algorithm which was invented by a Google computer cluster.
16:20:23 -!- augur has quit (Ping timeout: 246 seconds).
16:51:29 -!- FreeFull has joined.
16:56:53 -!- MDude has quit (Read error: Connection reset by peer).
16:57:13 -!- MDude has joined.
16:58:30 -!- AnotherTest has joined.
17:09:44 -!- sleffy has joined.
17:12:04 <zemhill> david_werecat.atom: points 0.29, score 19.86, rank 19/47 (+6)
17:12:50 <zemhill> david_werecat.atom: points 1.86, score 21.84, rank 16/47 (+3)
17:13:07 <zemhill> david_werecat.atom: points 0.29, score 19.86, rank 19/47 (-3)
17:27:27 <HackEgo> [wiki] [[Symbolic Python]] https://esolangs.org/w/index.php?diff=53251&oldid=50705 * FTcode * (-285) Added full Hello World program.
17:29:41 <HackEgo> [wiki] [[Symbolic Python]] https://esolangs.org/w/index.php?diff=53252&oldid=53251 * FTcode * (+316) /* "Hello, World!" */
17:34:46 <HackEgo> [wiki] [[Symbolic Python]] M https://esolangs.org/w/index.php?diff=53253&oldid=53252 * FTcode * (+7)
17:38:06 <zzo38> b_jonas: In case you have any interest, now I did write a program in Farbfeld Utilities for reading raw true colour pictures (called "rgbff").
17:39:52 <HackEgo> [wiki] [[Special:Log/newusers]] create * JeffryThunderStrike * New user account
17:40:55 <\oren\> I checked soemthing in and the build did not break. hurray
17:41:16 <\oren\> i don't have to revert the revert and then fix it
17:42:21 <b_jonas> zzo38: http://zzo38computer.org/fossil/farbfeld.ui/artifact/b00272245f7f6236 but is there a manual? and why do I want this instead of ImageMagick's or ffmpeg's various convenient raw image input modes?
17:43:29 <zzo38> Of course there is a document: http://zzo38computer.org/fossil/farbfeld.ui/wiki?name=ffrgb
17:43:56 <zzo38> Later I will add the encoder as well, and could also add additional options such as XY format.
17:44:15 <zzo38> (And others, if you think there is something else missing, you can suggest it.)
17:44:28 <b_jonas> zzo38: ah, right, it says "decoder" so it's about rgbff
17:44:46 <\oren\> what i kind of want is a diff editor
17:45:29 <HackEgo> [wiki] [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=53254&oldid=53246 * JeffryThunderStrike * (+237) /* Introductions */
17:45:45 <\oren\> like, that would take a patch file and allow you to edit the resultant seamlessly without affecting the original file
17:45:51 <b_jonas> zzo38: this can work, though the options are easy to mess up
17:46:44 <b_jonas> zzo38: and it would be nice if you supported (1) reading raw images with premultiplied alpha (2) images with multiple separate planes, so eg. all red pixels first, then all green pixels, then all blue pixels
17:47:23 <zzo38> Thank you, yes, I do intend I can add those features too later.
17:49:02 <b_jonas> zzo38: which program was it that can transform colors (pixelwise) with an 5x4 affine transformation matrix (fixed for the image, given as argument)?
17:49:16 <b_jonas> I think there was such a program in ff-utils, and if there isn't, there should be
17:50:04 <zzo38> Not sure what you mean; is it ff-matrix?
17:50:20 <zzo38> But, whatever it is you mean, I suppose, yes, there should be.
17:50:23 <\oren\> there should be a way to apply arbitrary image transformations to an X-window
17:51:07 <b_jonas> zzo38: oh, that one doesn't seem to be documented. let me read it.
17:51:48 <zzo38> Write the documentation yourself if you want to; if not, I may write the document later.
17:52:14 <zzo38> (Although it supports only 4x4 and not 5x4; perhaps I should fix that)
17:53:52 <b_jonas> anyway, that could be useful to decode a raw image where the alpha channel is stored negated (as transparentness rather than opaqueness), or grayscale images with the intensity stored negated, or decoding YUV444 images (but that one only once you support plane-interlaced rather than pixel-interlaced in rgbff)
17:54:15 <b_jonas> zzo38: yes, you should definitely support affine transformation in that rather than just linear
17:55:01 <b_jonas> it has to be done together because pixel values are clamped (to between 0 and (2<<16)-1)
17:56:13 <b_jonas> in general, one thing I don't like in ff-utils is that they usually accept nonsensical command-line arguments without an error message, so it's hard to find such mistakes in usage
17:56:32 <b_jonas> I mean syntactically nonsensical arguments
17:57:00 <b_jonas> like passing a non-numeric string when a number is expected etc
17:57:10 <b_jonas> passing extra arguments for utilities that take a fixed number of arguments
17:57:22 <zzo38> Yes, that is correct. (Although, if you simply want to negate channels, ff-swizzle is already capable of doing that.)
17:57:46 <b_jonas> this isn't a strict requirements, programs are still usable that way, but still
17:58:06 -!- augur has joined.
17:59:47 <HackEgo> [wiki] [[Talk:Switchy]] https://esolangs.org/w/index.php?diff=53255&oldid=37584 * JeffryThunderStrike * (+208)
18:00:22 <zzo38> I think I do not have time to fix anything now because I may have to leave soon, but on Friday I should have time to fix ff-matrix to do that, to fix rgbff, and so on.
18:02:15 <zzo38> Remember the wiki can be written by anyone, and so can the tickets, in case you want to do so (but it isn't mandatory; you don't have to if you don't want to do).
18:10:39 <b_jonas> luckily the coefficients as command-line arguments for ff-matrix are in the right majorness that you can just extend it to an affine matrix by appending four extra arguments to the end
18:10:57 <b_jonas> otherwise it would have been an ugly variable interpretation of the arguments
18:11:34 <zzo38> Yes, that is good.
18:12:44 <b_jonas> so you just have to extend param to size 20 here (you're relying on the rule of global variables getting zero-bit-initialized here, right? you could just add a ={0} to make the initialization explicit)
18:13:09 <b_jonas> and add a term +param[i+16] to the computation formula in process
18:13:35 -!- sebbu has quit (Ping timeout: 258 seconds).
18:14:53 <b_jonas> zzo38: wait, is the outconv function incorrect? I think that can give you strange results (and technically also undefined behavior) if the pixel[i]*65535.0 overflows the domain of int
18:15:23 <b_jonas> you can't rely on how casting double to int works in the overflowing case in a C program
18:16:00 -!- imode has joined.
18:18:01 -!- Phantom_Hoover has joined.
18:20:05 <b_jonas> zzo38: try something like static inline void outconv(void) { double v; int i,r; for (i=0;i<4;i++) { v=pixel[i]*65535.0; r=v<0.0?0:v>65535.0?65535:(int)rint(v); buf[i<<1]=r>>8; buf[(i<<1)+1]=r; } }
18:46:22 <HackEgo> [wiki] [[Symbolic Python]] https://esolangs.org/w/index.php?diff=53256&oldid=53253 * FTcode * (+91) added author
18:49:38 <HackEgo> [wiki] [[Symbolic Python]] https://esolangs.org/w/index.php?diff=53257&oldid=53256 * FTcode * (-2) /* "Hello, World!" */
18:53:52 <imode> there is a deep connection between fractran and linear logic.
18:56:28 -!- fungot has quit (Ping timeout: 240 seconds).
19:22:56 -!- fungot has joined.
20:16:31 -!- augur has quit (Remote host closed the connection).
20:33:51 <HackEgo> [wiki] [[Special:Log/newusers]] create * Andy * New user account
20:34:34 <HackEgo> [wiki] [[Talk:Switchy]] https://esolangs.org/w/index.php?diff=53258&oldid=53255 * JeffryThunderStrike * (+631) /* Interpreter */
20:35:08 <HackEgo> [wiki] [[Talk:Switchy]] https://esolangs.org/w/index.php?diff=53259&oldid=53258 * JeffryThunderStrike * (+90)
20:35:21 <HackEgo> [wiki] [[Talk:Switchy]] https://esolangs.org/w/index.php?diff=53260&oldid=53259 * JeffryThunderStrike * (+1) /* Interpreter */
20:35:41 -!- brandonson has quit (Ping timeout: 240 seconds).
20:36:53 -!- sebbu has joined.
20:38:09 -!- brandonson has joined.
20:51:08 -!- imode has quit (Ping timeout: 240 seconds).
21:38:02 <\oren\> aaaaaa i have meetings all day and can't do any REAL work
21:38:41 <shachaf> Are meetings not real work?
21:38:56 <shachaf> If so you should scrap your meetings.
21:44:24 -!- sdhand has quit (Quit: ZNC 1.6.5 - http://znc.in).
22:01:33 -!- sleffy has quit (Ping timeout: 246 seconds).
22:02:41 -!- augur has joined.
22:37:02 -!- sleffy has joined.
22:40:45 -!- AnotherTest has quit (Ping timeout: 246 seconds).
22:52:00 -!- erkin has joined.
23:52:32 -!- boily has joined.