←2016-03-03 2016-03-04 2016-03-05→ ↑2016 ↑all
00:00:11 <boily> `relcome grabiel
00:00:33 <HackEgo> grabiel: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
00:00:34 <boily> . o O ( there should be a way to make my IRC client autocomplete `relcomes or something... )
00:01:43 -!- grabiel has left.
00:03:03 <Yurume> http://www.emojicode.org/
00:03:17 <Yurume> oh, well. yet another emoji craze
00:03:35 <boily> Yurumello. have I ever seen you before?
00:03:50 <Yurume> I am an alter ego of lifthrasiir
00:03:57 <boily> oooooh tdh
00:04:13 -!- augur has joined.
00:04:49 <Yurume> just to say.
00:05:55 <shachaf> boily: tdh didn't help htdh
00:06:08 <shachaf> `? htdh
00:06:09 <HackEgo> HtDH is a classic text on How to Design Hotdogs or possibly Hogprams. It is all about functional condiments, and was co-authored by Herence Tao and Don Ho.
00:06:19 <oerjan> boily: that was a canaima, you should have used `bienvenido hth
00:06:40 <shachaf> `culprits wisdom/htdh
00:06:43 <HackEgo> oerjan oerjan elliott Bike FreeFull cpressey cpressey cpressey
00:06:46 <shachaf> oerjan: what should a variant of culprits that looks in wisdom/ be called
00:06:48 <boily> oerjan: tdht.
00:09:41 -!- augur has quit (Remote host closed the connection).
00:10:24 <oerjan> shachaf: pundits hth
00:10:52 <shachaf> @wn pundit
00:10:53 <lambdabot> *** "pundit" wn "WordNet (r) 3.0 (2006)"
00:10:54 <lambdabot> pundit
00:10:54 <lambdabot> n 1: someone who has been admitted to membership in a scholarly
00:10:54 <lambdabot> field [syn: {initiate}, {learned person}, {pundit},
00:10:54 <lambdabot> {savant}]
00:11:06 * boily mapoles oerjan (0.5 shachafs)
00:11:39 <shachaf> `? boily
00:11:41 <HackEgo> ​"Only sane man" boily is monetizing a broterhood scheme with the Guardian of Lachine, apparently involving cookie dealing. He's also a NaniDispenser, a Trigotillectomic Man Eating Chicken and a METARologist. He is seriously lacking in the f-word department.
00:11:43 <hppavilion[1]> zzo38: I found a game called TIS-100 on steam and recently bought it
00:11:49 <oerjan> boily: the "pun" at the beginning wasn't the deciding factor hth
00:12:03 <shachaf> oerjan: and yet you punned it anyway
00:12:13 <boily> it was half a funpuns, so 0.5 shachafs.
00:12:13 <\oren\> @metar cyyz
00:12:14 <lambdabot> CYYZ 040000Z 08006KT 15SM FEW050 BKN160 M05/M10 A3015 RMK SC2AC5 SLP222
00:12:15 <hppavilion[1]> zzo38: It's an ASM programming game for a massively-parallel architecture called the TIS-100 (Tessellated Intelligence System)
00:12:29 <boily> he\\oren\. did you get blizzarded?
00:12:33 <shachaf> @@ @@ (@where weather) cyyz
00:12:36 <lambdabot> CYYZ 040000Z 08006KT 15SM FEW050 BKN160 M05/M10 A3015 RMK SC2AC5 SLP222
00:12:38 <\oren\> a little
00:12:39 <shachaf> much better
00:13:03 <\oren\> um wtf is @@ @@ supposed to do
00:13:39 <\oren\> stupid haskull line noise
00:14:01 <oerjan> the rube goldberg weather forecast
00:15:08 <oerjan> @help @
00:15:08 <lambdabot> @@ [args].
00:15:08 <lambdabot> @@ executes plugin invocations in its arguments, parentheses can be used.
00:15:08 <lambdabot> The commands are right associative.
00:15:08 <lambdabot> For example: @@ @pl @undo code
00:15:08 <lambdabot> is the same as: @@ (@pl (@undo code))
00:16:07 <oerjan> hm is @@ a kind of join
00:16:21 <shachaf> \oren\: it's not haskell syntax hth
00:16:45 <shachaf> haskell more like has kool
00:16:51 <shachaf> gains kool until end of turn
00:18:34 <oerjan> shachaf: extra points for using the original hindi पण्डित hth
00:28:14 -!- lambda-11235 has joined.
00:32:46 <hppavilion[1]> We should make an ASM programming game...
00:32:58 <hppavilion[1]> One that makes grown men cry, of course
00:33:27 <fizzie> We had a TIS-100cussion on the channel at least once.
00:34:01 <fizzie> I liked it.
00:34:23 <fizzie> (The game, not the discussion.)
00:34:35 <hppavilion[1]> fizzie: Yep
00:36:25 <fizzie> It might not quite count as massively parallel, wasn't it at most something like 3x4 nodes?
00:38:11 -!- tromp has joined.
00:39:12 <hppavilion[1]> fizzie: That's a single segment
00:39:22 -!- Alejandro15 has joined.
00:39:27 <hppavilion[1]> fizzie: In theory, it actually has thousands upon thousands of nodes
00:39:38 <hppavilion[1]> `relcome Alejandro15
00:39:39 <hppavilion[1]> ?
00:39:40 <HackEgo> Alejandro15: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
00:40:08 <fizzie> Oh, I didn't parse the backstory like that at all, but I guess that's likely true, since it's always different nodes that are broken.
00:40:24 <hppavilion[1]> fizzie: Yep, I was going to say that, but the message changed xD
00:40:42 <hppavilion[1]> fizzie: What's the high-level equivalent of massively parallel?
00:40:55 <boily> Alejandro15: ¿habla usted español?
00:42:33 <hppavilion[1]> fizzie: I imagine in high-level massively parallel computing, you can create new ports at runtime
00:43:00 -!- Alejandro15 has quit (Quit: Leaving.).
00:43:01 <boily> massively parallel computing is a bitch. but at least there's MPI. I love MPI.
00:43:21 <boily> oerjan: see, I asked something in Spanish and he didn't even answer!
00:43:25 <hppavilion[1]> boily: MPI?
00:43:41 <boily> https://en.wikipedia.org/wiki/Message_Passing_Interface
00:44:01 <hppavilion[1]> boily: How is MPC a bitch?
00:44:08 <hppavilion[1]> What did MPC ever do to you?
00:44:13 <hppavilion[1]> Were- were you dating?
00:44:14 <boily> MPI: simple, easy to grok, useful, documented to hell and back, and pragmatic.
00:44:19 <boily> ha ha ha :D
00:44:43 <boily> no, I did some research stuff with heavily parallelized SVMs a few years ago.
00:44:49 * hppavilion[1] awaits a joke about how MPI was in bed- something about practically being in two places at once or something
00:45:03 <boily> I don't joke, I am sane.
00:45:10 <boily> (well, I don't joke that much.)
00:45:10 <oerjan> boily: i think cantv.net also implies canaima hth
00:45:13 <boily> (ok, reasonably.)
00:45:23 <boily> oerjan: why I Spanished.
00:46:55 <oerjan> "Compañia Anónima Nacional Teléfonos de Venezuela"
00:47:10 <hppavilion[1]> fizzie: It's also interesting that the pattern of broken nodes is consistently the ones that you might want to use
00:48:35 <boily> next Venezuelan to join the chännel, everybody should switch to Spanish. maybe we'll catch one!
00:49:45 <oerjan> ok, canaima and cantv are not quite the same thing, but connected.
00:51:18 -!- lynn has quit (Ping timeout: 246 seconds).
00:51:32 -!- tromp has quit (Remote host closed the connection).
00:52:24 <oerjan> <boily> I don't joke, I am sane. <-- * now imagining a batman villain saying that...
00:53:57 <oerjan> it probably doesn't end well for em.
00:56:30 <hppavilion[1]> fizzie: What would be a good architecture for an ASM game?
00:56:39 <Taneb> Phantom_Hoover, I found out today that one of the people I play D&D with is on the York submarine jousting team
00:59:08 <oerjan> Taneb: are you trying to keep this up until actual submarines are jousted twh
00:59:23 <oerjan> or at least models
00:59:44 <Taneb> oerjan, I started it because I forgot what the sport was called
01:00:00 <Taneb> Keeping it up because somehow "submarine jousting" sounds less silly than the truth
01:02:28 -!- Elronnd has changed nick to ProzacElf.
01:05:56 <Phantom_Hoover> Taneb, did you mention that his team are bastards
01:06:18 <shachaf> fizzie: YOu didn't like the discussion?
01:08:38 -!- ProzacElf has changed nick to Elronnd.
01:08:57 <Taneb> Phantom_Hoover, I didn't feel it polite
01:09:03 <Taneb> He did comment that your team were very good
01:10:29 <hppavilion[1]> oerjan: No, Taneb means jousting underwater- it's sub-marine jousting
01:10:39 <fizzie> hppavilion[1]: If you mean real architectures (games for some reason tend to prefer made-up ones), for some reason my first thought would be the Z80.
01:10:57 <hppavilion[1]> fizzie: Architecture in the abstract I mean
01:11:10 <hppavilion[1]> fizzie: Not a specific architecture; a general architecture paradigm
01:11:47 <fizzie> Oh. I'd just do something that actually exists. I'm not sure how that would turn out to be a "game", though.
01:12:44 <hppavilion[1]> fizzie: I think the point of those games is that the creators enjoy making the architecture
01:14:01 <fizzie> The DCPU-16 had really silly operand encodings.
01:15:26 <Phantom_Hoover> Taneb, this is of course true, was he on their A or B team though
01:15:32 <Phantom_Hoover> (we never played the A team)
01:15:34 <oerjan> hppavilion[1]: shut up and don't crush my dreams
01:16:15 <hppavilion[1]> fizzie: Oooh, perhaps the arch for this game could use those negative-level MOVs?
01:16:29 -!- 7YUAAGGC0 has joined.
01:16:58 <Taneb> Phantom_Hoover, I don't know, although he certainly didn't deny it when I asked if he'd played Warwick recently
01:19:28 <Phantom_Hoover> york A were good last time we played them, they just ended up in a tough group this year
01:19:46 <Phantom_Hoover> they certainly know how to organise a tournament
01:20:28 <fizzie> There's always the time-honoured thing of taking some feature that actually exists (say, pipelines with delay slots) and just going overboard with it.
01:22:23 <Taneb> Anyway, I'm going to bed now
01:22:24 <Taneb> Goodnigh
01:22:29 <boily> bonne tanuitb!
01:25:27 <boily> `wisdom
01:25:30 <HackEgo> alg. ii/Algae II, the successor class to Algae I. Discusses hydroponics and such.
01:26:29 <boily> `` sed -i 'sa\aeaæa' wisdom/alg*
01:26:33 <HackEgo> No output.
01:27:16 <oerjan> wat
01:27:28 <oerjan> `` ls wisdom/alg*
01:27:29 <HackEgo> wisdom/algebraic number theory \ wisdom/alg. ii \ wisdom/algol \ wisdom/algorithm
01:27:43 <oerjan> `` grep æ wisdom/alg*
01:27:45 <HackEgo> wisdom/alg. ii:Algæ II, the successor class to Algae I. Discusses hydroponics and such.
01:28:10 <oerjan> boily: *cough*
01:28:13 <boily> oh.
01:28:15 <boily> hm.
01:28:17 <boily> eh.
01:28:19 <boily> uuuuh.
01:28:21 <boily> `revert
01:28:29 <HackEgo> rm: cannot remove `/home/hackbot/hackbot.hg/multibot_cmds/env/.hg/store/data/canary.orig': Is a directory \ Done.
01:28:39 * boily whistles
01:34:35 <hppavilion[1]> fizzie: One of the interesting things we can do with ASM games is have features that are nigh-impossible on real computers
01:34:38 <hppavilion[1]> e.g. register sets
01:43:21 <mad> register sets?
01:48:15 -!- Phantom_Hoover has quit (Read error: Connection reset by peer).
01:53:15 -!- lleu has quit (Quit: That's what she said).
02:05:37 <hppavilion[1]> mad: Registers that can include multiple values
02:05:44 <hppavilion[1]> mad: I suppose it's a bit quantum, actually
02:05:54 <hppavilion[1]> But without the probabilisticness
02:07:05 <mad> does it have entanglement between multiple registers?
02:09:15 <mad> dang this cpu design idea I'm trying to develop is so hard to get anywhere
02:10:43 <mad> (the thing where you have an accumulator and chains of related operations are issued together on an execution unit and run sequentially on the accumulator)
02:13:44 <mad> I'm trying to find a compromise between too much dynamic scheduling (the problem on out-of-order RISCs) and too much static scheduling (the problem on VLIWs)
02:16:15 <mad> and the complexity spirals out of control
02:19:21 <boily> 'night all!
02:19:40 -!- boily has quit (Quit: BRANCHING CHICKEN).
02:22:59 <mad> yet it's close enough to a solution that I get all obsessed
02:25:24 <mad> 1 instruction is something like
02:25:33 <mad> :
02:27:26 <mad> 4 renames - one for each regfile partition (partition 0 is r0,r4,r8,r12,r16,r20,r24,r28, partition 1 is r1,5,9,13,17,21,25,29, partition 2 is r2,6,10,14,18,22,26,30, partition 3 is r3,7,11,15,19,23,27,31). each of the 4 renames can also be replaced by a nop.
02:29:03 <mad> 8 writebacks. each writeback must use one of the 4 renames. also, you have a flag to indicate the last writeback for each of the 4 regfile partitions (the one that gets written to the regfile for real)
02:33:31 <mad> 8 microthreads. each microthread contains a block of instructions that gets assigned to one execution unit and executed sequentially. each instruction is in the form of [alu op][reg x][reg y/immediate], with the result written to the accumulator and optionally written to a regfile register(corresponding to one of the 8 writebacks). each register operand can be either one of the 32 permanent register, the accumulator, or one of the 8 writebac
02:34:44 -!- oerjan has quit (Quit: Nite).
02:35:47 <mad> 4 or 8 memory operations(not sure of the limit to set yet) (either loads or stores or nops). the order of memory operations is preserved even though the microthread execution is fully reordered.
02:36:28 <mad> offset to the next instruction (probably with some forced alignment - maybe 16bytes)
02:37:34 <mad> the idea of the whole thing is that it can be issued in 1 cycle
02:37:38 <mad> at least in theory
02:39:41 <mad> the register renamer grabs 8 free physical registers, changes up to 4 physical register assignments to architectural registers
02:40:31 <hppavilion[1]> mad: I'm trying to come up with interesting designs for CPUs, implementable or not, if you're curious.
02:40:40 <hppavilion[1]> No, no entanglement; I guess it's not fully quantum
02:41:15 <mad> it does all the renames of every register operand in parallel (which can be done in 1 cycle since the effect of renaming registers within an issued instruction is done beforehand)
02:41:44 <hppavilion[1]> fizzie: The difficulty with TIS-100 is that you have a limit of 15 instructions/node
02:41:45 <mad> I'm obsessed with making it implementable too
02:42:44 <hppavilion[1]> It's logical to have limitations (except that labels count as lines, which is bullshit), but 15 lines is a little too small (also, 15 isn't a power of 2)
02:42:52 <hppavilion[1]> mad: Fair enough
02:49:53 <mad> for instance this sample resampling loop comes down to 2 instructions:
02:50:04 <mad> :loop
02:50:04 <mad> shr ph 16, lds [sb + ac*2] -> d0
02:50:04 <mad> add ph $10000, shr 16, lds [sb + ac*2] -> d1
02:50:04 <mad> and ph $ffff -> d2
02:50:04 <mad> lds [bu] -> d3
02:50:05 <mad> sub d1 d0, mul d2, sar 16, add d0 -> d0, mul vl, sar 16, add d3, st [bu]
02:50:05 <mad> lds [bu+4] -> d3
02:50:06 <mad> mul d0 vr, sar 16, add d3, st [bu+4]
02:50:08 <mad>  
02:50:13 <mad> add vl rl -> vl
02:50:13 <mad> add vr rr -> vr
02:50:13 <mad> add ph fr -> ph
02:50:13 <mad> add bu 4 -> bu, cmp be, jz loop
02:52:54 <mad> the first instruction has 7 microthreads, 6 writebacks (-> d0, -> d1, -> d2, -> d3, -> d0, -> d3), 4 renames (d0 d1 d2 d3), 6 load/store operations (lds [sb + ac*2], lds [sb + ac*2], ld [bu], st [bu], ld [bu+4], st [bu+4])
02:53:46 <mad> second instruction has 4 microthreads, 4 writebacks (-> vl, -> vr, -> ph, -> bu), 4 renames (vl vr ph bu)
02:54:04 <mad> assuming that vl, vr, ph and bu are in different regfile partitions
02:57:41 <mad> assuming that the subinstructions take 2-4 bytes each, the first instruction takes somewhere between 40-80 bytes, second one about 12-24 bytes
02:58:19 <mad> presumably to keep it busy you'd need an instruction cache at least 32 bytes wide
02:59:18 <mad> if stars align in theory it can run the whole loop in 2 cycles per iteration
03:01:14 <mad> a possible design is that the subinstructions go in normal instruction cache, and the renaming info that tells how to run it in parallel is generated on the fly and stored in a trace cache
03:01:45 <mad> so on first iteration it runs at like 1 instruction per cycle and analyzes the instruction sequence for how to parallelize it
03:02:12 <mad> and stores that in a trace cache so that next iteration is super parallelized
03:04:35 <mad> it would probably need a really wide data cache to run that fast too
03:05:03 <mad> like the kind of monstruously complex banked data cache that does 2 loads + 1 store per cycle you find on modern CPUs
03:07:01 <mad> in theory it doesn't need 2 register file ports per execution unit either, but I'm not sure how to ration that intelligently
03:07:19 <mad> because some instructions need 2 ports, some need 1, some need 0
03:08:38 <mad> also it has the weakness that the register renamer needs to know which execution unit will get which writeback (because they actually are separate register files for each execution units, read ports are shared but write ports aren't)
03:10:07 <mad> so yeah the whole thing works in theory but in practice is overly complex and probably needs to be cut down
03:10:23 <mad> and it's probably not well balanced
03:12:30 -!- XorSwap has joined.
03:13:10 <hppavilion[1]> @wiki Game Theory
03:13:10 <lambdabot> http://www.haskell.org/haskellwiki/Game_Theory
03:13:17 <hppavilion[1]> Hm...
03:13:41 <hppavilion[1]> I was hoping that would lead to wikipedia, but in retrospect that seems silly
03:13:51 <mad> in theory you could make a VLIW version of the above but I think it would be very hard to properly static schedule
03:14:00 <hppavilion[1]> mad: OLIW is better than VLIW
03:14:02 <mad> and it would probably stall way too easily
03:14:03 <hppavilion[1]> @wikipedia Game Theory
03:14:03 <lambdabot> Unknown command, try @list
03:14:06 <mad> what's OLIW?
03:14:09 <hppavilion[1]> `wiki Game Theory
03:14:12 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: wiki: not found
03:14:17 <hppavilion[1]> mad: Obscenely Long Instruction Word
03:14:28 <mad> how is it better
03:14:41 <mad> aside from burning through instruction cache faster
03:14:43 <hppavilion[1]> mad: I just like it more
03:14:58 <hppavilion[1]> mad: OLIW has instruction sets within instruction sets
03:15:05 <hppavilion[1]> http://pastebin.com/wz3WwSbF is an example of an OLIW architecture
03:15:06 <mad> also the cpu I described above is a pretty good candidate for OLIW :D
03:15:37 <mad> 64byte instruction words aren't for the faint of hearth
03:17:40 <hppavilion[1]> mad: Mine maxes out at 2752577 bytes per instruction word
03:17:51 <hppavilion[1]> mad: Instruction sets within instruction sets
03:18:07 <hppavilion[1]> (Every instruction word is executed concurrently)
03:18:19 <mad> how is that electrically possible
03:18:25 <hppavilion[1]> ("Instruction word" doesn't really apply at this point though; it's more of an instruction paragraph)
03:18:36 <hppavilion[1]> mad: Electrically possible? No.
03:18:43 <hppavilion[1]> mad: Not on normal machines
03:19:06 <hppavilion[1]> mad: It doesn't /have/ to be 2752577 bytes.
03:20:05 <hppavilion[1]> mad: I mean, it might be implementable on hardware, because it doesn't use all 2752577 bytes at a time
03:20:24 <mad> dunno, does it have latency causing characteristics?
03:20:47 <hppavilion[1]> mad: Probably
03:21:14 <hppavilion[1]> mad: It has properties like instruction words having length headers
03:21:26 <hppavilion[1]> mad: Which probably causes a shitton of latency
03:22:01 <hppavilion[1]> mad: Did you /want/ something with the word "Obscenely" in it to be practical?
03:23:19 <mad> I also have a hard time figuring out what all those fields mean
03:23:43 <hppavilion[1]> mad: Would you like an explanation?
03:23:54 <hppavilion[1]> You'll be stuck here for a while
03:24:06 <mad> not if you can't make it short
03:24:16 <hppavilion[1]> mad: I can try
03:24:33 <mad> it looks like it has 0..65535 conditions
03:24:38 <hppavilion[1]> mad: Yes
03:24:55 <mad> what's the condition group thing
03:24:56 <hppavilion[1]> mad: Instructions are basically a long list of normal ALU instructions (something you might find in a real machine) enclosed in a giant WHILE loop
03:25:21 <hppavilion[1]> mad: The condition is a series of instructions from a separate instruction set within the main one
03:25:49 <hppavilion[1]> mad: The condition is divided into groups, and the while loop- when checked- terminates when /all/ conditions are true in /any/ of the groups
03:25:53 <hppavilion[1]> That was easy
03:27:09 <mad> what are the condition instruction arguments and why are they *8
03:27:42 <hppavilion[1]> mad: Condition instruction arguments are the things the condition checks!
03:28:11 <hppavilion[1]> And they're *8 because I didn't understand ISAs at the time, but each argument is 8 bytes that references a memory location
03:28:42 <mad> is that an absolute address or it's coming from some calculation?
03:29:24 <hppavilion[1]> mad: I'm not a pro with ISAs. I don't even know for certain what that question means.
03:29:30 <hppavilion[1]> However, if my guess as to what it means is correct
03:29:48 <mad> are they like 64bit memory addresses?
03:29:53 <hppavilion[1]> mad: Yes
03:29:59 <hppavilion[1]> It doesn't matter really, it depends on the exact design
03:30:04 <mad> ok
03:30:09 <hppavilion[1]> It's just an outline, not an in-depth spec
03:30:21 <mad> what are the body flags
03:30:27 <hppavilion[1]> mad: I'm still trying to remember
03:30:37 <hppavilion[1]> Same with start and term arguments
03:31:14 <mad> where does it store the results?
03:31:38 -!- augur has joined.
03:31:38 <hppavilion[1]> mad: An accumulator
03:31:41 <hppavilion[1]> mad: IIRC
03:32:08 <hppavilion[1]> I made this a month or two ago (while talking to you, IIRC), and didn't kept detailed notes
03:32:14 -!- augur has quit (Remote host closed the connection).
03:32:20 <hppavilion[1]> If you like, I can make a better one with detailed documentation
03:32:31 <mad> no I guess I've had my fill
03:32:36 <hppavilion[1]> OK
03:32:48 <hppavilion[1]> I might make another one anyway just for fun
03:32:51 <mad> like it does have obscenely large instructions
03:32:54 <mad> but that's about it
03:33:10 <hppavilion[1]> mad: Yep, that's the point ;)
03:33:28 <hppavilion[1]> mad: Also, compiling to it (or even programming in its ASM) is completely different
03:33:54 <hppavilion[1]> mad: It includes nonnesting WHILE loops as a primitive rather than JMPs, which makes it very different
03:34:14 <mad> considering that every instruction loads tons of stuff from memory it's not like compilation can be efficient anyways
03:34:36 <hppavilion[1]> mad: Correct.
03:34:54 <hppavilion[1]> mad: It's an esolang, really, or at least an outline for it
03:35:19 <mad> it's more an esolang than a cpu ues
03:35:20 <mad> yes
03:37:13 <hppavilion[1]> mad: It's an EsoCPU
03:37:35 <hppavilion[1]> It is implementable on hardware conceivably, just not efficiently or in small space
03:38:12 <mad> well
03:38:22 <mad> you can implement a MIPS that runs an emulator :D
03:41:28 <mad> if you can get the emulator to do a memory load per cycle it's not even slower than the real thing
03:44:00 -!- feliks has joined.
03:48:35 -!- augur has joined.
03:49:33 -!- J_Arcane has quit (Ping timeout: 240 seconds).
03:53:04 -!- augur has quit (Ping timeout: 260 seconds).
03:55:06 -!- augur has joined.
03:58:05 <hppavilion[1]> Oh... oh god https://www.youtube.com/watch?v=Mk3qkQROb_k
04:13:46 <mad> hppavilion[1] : that's... wrong
04:14:20 <hppavilion[1]> mad: Agreed
04:14:49 <hppavilion[1]> mad: It must be so hard for people who program in java to make funny comments written in code...
04:23:52 -!- heroux has quit (Ping timeout: 264 seconds).
04:24:28 -!- heroux has joined.
04:27:41 -!- clog has quit (Ping timeout: 250 seconds).
04:33:23 -!- XorSwap has quit (Read error: Connection reset by peer).
04:33:52 -!- XorSwap has joined.
04:36:46 -!- bender| has joined.
04:37:53 -!- FreeFull has quit (Ping timeout: 268 seconds).
04:38:30 -!- idris-bot has quit (Ping timeout: 268 seconds).
04:43:12 <mad> is there a good scripting language with no garbage collector (and possibly no dynamic typing) ?
04:44:34 <pikhq> Tcl?
04:44:41 <mad> I'm asking because at work we do VST plugins at it would be nice to have a scripting language for doing stuff like envelopes and lfos and modulations and custom arpeggiators but the standard options like LUA can't be used because of the really short latency constraints
04:45:02 <pikhq> Tcl's even meant to be embedded.
04:45:16 <deltab> manual memory management in scripting?
04:45:39 <deltab> maybe what you need to *control* over the gc
04:46:03 <mad> GC would need absolutely no "stop the world"
04:46:12 <mad> not even 1ms
04:46:45 -!- fungot has quit (Ping timeout: 250 seconds).
04:46:48 <shachaf> whoa whoa whoa, GC that doesn't need to stop the world?
04:46:50 <mad> basically there generally can't be any memory allocation/freeing on the audio thread generally
04:46:52 <shachaf> Stop the presses!
04:48:10 <mad> like if it allocates memory as part of how it calculates stuff (like writing array values in a lot of script languages) then it can't work
04:48:54 <pikhq> You're gonna have a hard time then.
04:49:20 <hppavilion[1]> mad: You know, x^∞ = ∞*sin(x)
04:49:35 <hppavilion[1]> (anyone want me to go to ##math and say that?)
04:49:36 <zzo38> A small kind of Forth may be done?
04:49:47 <shachaf> pikhq: Have you had fund learning about the intricacies of HotSpot GCs?
04:49:49 <hppavilion[1]> zzo38: Hi! Do you want to make an ASM game?
04:49:56 <hppavilion[1]> zzo38: Or provide input?
04:49:59 <pikhq> shachaf: Not personally.
04:50:11 <shachaf> How about fun?
04:50:11 <mad> zzo38 : guess it could work out in theory
04:50:21 <pikhq> Not really.
04:50:39 <pikhq> ... Though I predict it'll come up.
04:50:56 <zzo38> hppavilion[1]: Well, you could ask me question if you have any, I suppose (but I am not guaranteed to know the answer)
04:51:06 <hppavilion[1]> zzo38: OK
04:51:12 <mad> in tcl feature list: "All data types can be manipulated as strings, including source code. Internally, variables have types like integer and double, but converting is purely automatic."
04:51:29 <hppavilion[1]> mad: So weak typing?
04:51:31 <mad> this is exactly the kind of features that I want it to NOT have
04:51:42 <mad> no freaking dynamic typing
04:51:45 <pikhq> So... You don't want a scripting language.
04:51:50 <pikhq> Might I recommend Forth?
04:51:50 <zzo38> mad: With Forth generally you preallocate so you can avoid these problems.
04:51:54 <hppavilion[1]> mad: No, this's weak typing
04:52:17 <zzo38> pikhq: Yes that is what I would think, too
04:52:17 <hppavilion[1]> Wait, hm...
04:52:41 <hppavilion[1]> mad: Dynamic typing is when you can change the type of a variable (something that was once a string can now be an int) in an unregulated fashion (it isn't just retyping)
04:52:53 <hppavilion[1]> mad: Static typing is what C has, where variables MUST NOT CHANGE TYPE EVER
04:53:06 <hppavilion[1]> mad: Strong typing is where conversions aren't done automatically
04:53:11 <pikhq> zzo38: Yup. It's basically the perfect language for this problem domain: small embeddable language with easily measurable and consistent performance characteristics.
04:53:12 <mad> in C variables simply cannot change type
04:53:58 <hppavilion[1]> mad: And weak typing- what TCL apparently has- is where values change type based on what's needed ("I know you just tried to add an int to a string, which doesn't make sense, but let's just pretend the int is a string too")
04:54:40 <pikhq> hppavilion[1]: Tcl's semantics (it's not an acronym BTW) are more that all values are strings.
04:54:55 <zzo38> In C a variable has a type which is declared and isn't changed; in JavaScript a variable doesn't have a type, a value has a type and any value can be stored in any variable.
04:55:07 <shachaf> TOOL COMMAND LANGUAGE
04:55:23 <deltab> but usually written Tcl
04:55:24 <hppavilion[1]> pikhq: So it's stupid perl typing?
04:55:30 <hppavilion[1]> Also known as BF typing
04:55:52 <mad> isn't perl typing like javascript typing except it doesn't have integers?
04:56:00 <mad> or numbers that aren't strings
04:56:00 <pikhq> Nah, Perl does not have stringly typed semantics, at all.
04:57:15 <pikhq> ... In Tcl, an implementation which literally stored everything as actual char* strings would be perfectly reasonable (if a little inefficient).
04:58:41 <mad> irl I need about 2 variable types
04:58:42 <mad> float
04:58:46 <mad> and array of float
04:59:44 <deltab> maybe you need a shader language
05:00:00 <mad> shader languages share some characteristics yes
05:00:06 <mad> though they don't allow feedback
05:01:09 <mad> the one language of this type in the wild is jesusonic
05:01:19 <mad> but it's kindof rough
05:01:48 <zzo38> I think you can just make a simple Forth implementation and use that.
05:02:01 <pikhq> Agreed.
05:02:44 <mad> yeah if I can convince potential users to live with forth's weird syntax ;)
05:04:14 <zzo38> Although different from other programming languages, I think it is reasonable for what it does.
05:11:59 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
05:18:01 -!- Sgeo_ has joined.
05:20:16 -!- Sgeo has quit (Ping timeout: 252 seconds).
05:27:48 <zzo38> Can you please tell me if this document is good: https://www.npmjs.com/package/remote-xlib
05:28:16 <zzo38> You can plesae complain about what is wrong with it, so that I can fix it please.
05:33:22 -!- adu has joined.
05:36:35 <zzo38> Example program is http://sprunge.us/ZMdg
05:38:31 <zzo38> If you click inside of the window then it makes a pie chart centered at the clicked position.
05:41:11 <zzo38> (Tell me feature request too)
05:52:17 -!- XorSwap has quit (Ping timeout: 244 seconds).
06:01:32 <adu> zzo38!
06:02:36 <zzo38> Hello, what do you want please?
06:03:55 <adu> I don't want anything
06:04:54 <zzo38> OK
06:05:02 <zzo38> But do you know answer of my question?
06:05:46 <zzo38> (I mean my other question before you join)
06:25:02 <adu> zzo38: how am I supposed to know?
06:25:22 <adu> zzo38: what was your question?
06:26:25 <zzo38> You can know by the log, but I can repeat it anyways
06:26:54 <zzo38> Can you please tell me if this document is good: https://www.npmjs.com/package/remote-xlib You can plesae complain about what is wrong with it, so that I can fix it please. Also you can make comment about feature request, and other comment/complaint/question too
06:27:31 -!- clog has joined.
06:29:48 <adu> zzo38: where is the log?
06:30:54 <zzo38> The IRC log is mentioned in the topic message it is http://codu.org/logs/_esoteric/ but anyways I already repeated my question so that you do not have to
06:32:04 -!- hppavilion[1] has joined.
06:32:46 <adu> zzo38: ah, topic, I always forget to look there
06:33:09 <adu> my client requires that I click a few things to get to the topic
06:34:02 <adu> zzo38: are you looking for HTML validation or English grammar?
06:34:55 <zzo38> Neither (I didn't write the HTML of the webpage anyways); I mean about if the document is clear, if it is sensible, etc
06:35:43 <adu> zzo38: ah, so English grammar
06:37:04 <zzo38> And if something is missing, too.
06:37:40 <zzo38> If it doesn't specify correctly how to use the program, or if perhaps some part of the program is wrong or is missing, that is what I mean too.
06:38:09 <adu> zzo38: "documentations assume" => "documentation assumes"
06:38:30 <adu> actually
06:38:42 <adu> zzo38: "These documentations assume" => "This documentation assumes"
06:39:36 -!- FreeFull has joined.
06:40:28 <adu> zzo38: also, the relationship between ASCII and 16-bit characters are unclear,
06:40:31 <zzo38> OK I fixed that, although I wasn't really asking about grammar anyways, but rather about errors such as in case it is not possible to understand the operation of this program for example, or if some function you think is important, but is actually missing, etc
06:40:39 <adu> "Text ... is treated as 16-bit characters" implies Unicode
06:40:50 <zzo38> adu: Do you know JavaScript?
06:40:50 <adu> but you contradict that with ASCII, what exactly do you mean?
06:40:51 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
06:40:55 <adu> zzo38: I do
06:41:42 <zzo38> In JavaScript, a string contains 16-bit characters (which is normally interpreted as UTF-16, and the fromCodePoint and codePointAt do so, although it doesn't have to be)
06:42:09 <zzo38> It says "using the encoding of the font"; doesn't that make it clear though?
06:42:13 <adu> zzo38: right, so is there a bug in your conversion between JS and Xlib?
06:42:28 <zzo38> No there is not a bug, it is correct.
06:42:29 <adu> zzo38: fonts can be unicode, what's the issue?
06:42:51 <adu> zzo38: so it's a bug in font-config?
06:42:53 <zzo38> Yes, if the font is Unicode, then the characters are Unicode. Maybe I should add a sentence to mention that?
06:43:03 <zzo38> adu: No it is not a bug in font-config either.
06:43:08 <adu> zzo38: why can't you use unicode characters?
06:43:17 <adu> zzo38: why are you forcing your users to use ASCII?
06:43:40 <zzo38> You can use Unicode, if you are displaying text of a Unicode font.
06:43:49 <adu> zzo38: that's not what your documentation says
06:44:02 <zzo38> Yes, perhaps I should clarify that.
06:44:49 <zzo38> OK I fixed that. (That webpage won't update with all of my fixes now, since I work the changes on my own computer locally)
06:45:24 <zzo38> At the end of that paragraph, I added a sentence that says "If the font encoding is Unicode, then the string is also interpreted as Unicode." Does that make it clear?
06:45:32 <adu> yes
06:45:58 <zzo38> OK
06:46:45 <adu> the rest seems pretty clear, but then again, I love hierarchies
06:47:21 <adu> my only recommendation would be to group them into tasks/topics
06:48:24 <zzo38> I did it by alphabetical with uppercase first, within each block I put first properties of the constructor, and then properties of the instance, and then events. I can add a index with tasks/topics too I suppose, if I can figure out how it should be grouped as.
06:48:42 <adu> but sometimes that would cross-cut the class-oriented hierarchy, so I'm not sure if it would make sense in this case
06:49:05 <adu> and yes, I know that JS doesn't have classes
06:49:06 <zzo38> I do know that the documentation for X.Drawable.prototype.drawMacro is incomplete. (I will fix this later.)
06:50:52 -!- Sgeo__ has joined.
06:53:13 -!- Sgeo_ has quit (Ping timeout: 252 seconds).
06:58:21 -!- adu has quit (Quit: adu).
07:02:38 -!- bender| has quit (Remote host closed the connection).
07:03:55 -!- bender| has joined.
07:04:51 -!- hppavilion[1] has joined.
07:36:38 -!- mroman has joined.
07:45:24 -!- augur has quit (Remote host closed the connection).
07:56:04 -!- AnotherTest has joined.
08:03:58 -!- infinitymaster has joined.
08:04:50 -!- infinitymaster has quit (Client Quit).
08:08:22 -!- 7YUAAGGC0 has quit (Remote host closed the connection).
08:31:31 -!- lynn has joined.
08:35:33 -!- zzo38 has quit (Read error: Connection reset by peer).
08:40:24 -!- zzo38 has joined.
08:41:18 <zzo38> Sometimes it causes a kernel panic or other problems when trying to print, possibly there is a problem relating to powersave mode of the printer?
08:45:23 -!- lambda-11235 has quit (Quit: Bye).
08:46:10 <zzo38> (Or maybe the kernel need to be upgraded?)
09:09:22 -!- tromp has joined.
09:14:07 -!- tromp has quit (Ping timeout: 260 seconds).
09:20:06 -!- jaboja has joined.
09:30:49 -!- lleu has joined.
09:32:54 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
09:33:43 -!- impomatic_ has joined.
09:49:37 -!- heroux has quit (Remote host closed the connection).
09:59:45 -!- MoALTz has quit (Ping timeout: 244 seconds).
10:02:28 -!- ais523 has joined.
10:16:14 -!- heroux has joined.
10:36:22 -!- jaboja has quit (Ping timeout: 260 seconds).
10:52:00 <mroman> fnurd
11:27:36 -!- boily has joined.
11:44:18 <boily> `wisdom
11:44:33 <HackEgo> arothmorphise/arothmorphise ... antormo... antrohm... ant... oh bugger. This should go in the `misspellings of antrhrop... atnhro...' entry.
12:07:14 <int-e> `? misgivings
12:07:18 <HackEgo> misgivings? ¯\(°​_o)/¯
12:09:48 -!- boily has quit (Quit: ANSWER CHICKEN).
12:10:07 -!- tromp has joined.
12:14:37 -!- tromp has quit (Ping timeout: 244 seconds).
12:38:17 -!- bb010g has joined.
12:42:43 -!- p34k has joined.
13:08:40 -!- oerjan has joined.
13:09:26 -!- Melvar` has joined.
13:11:13 -!- Melvar has quit (Disconnected by services).
13:11:17 -!- Melvar` has changed nick to Melvar.
13:42:49 -!- tromp has joined.
13:43:11 <oerjan> `cat bin/paste
13:43:18 <HackEgo> ​#!/bin/bash \ if [ "$1" ] && url "$1" 2>/dev/null # Save making a file when it already exists. \ then \ true \ else \ PASTENUM="$RANDOM" \ \ mkdir -p $HACKENV/paste \ \ url paste/paste."$PASTENUM" \ cat -- "${1--}" > $HACKENV/paste/paste."$PASTENUM" \ fi
13:43:35 <oerjan> `cat bin/url
13:43:36 <HackEgo> ​#!/usr/bin/env python \ import sys, os.path, re, urllib \ if len(sys.argv) <= 1: \ print "http://codu.org/projects/hackbot/fshg/" \ else: \ f = os.path.abspath(sys.argv[1]) \ f = re.sub(r"^/+hackenv/", "", f) \ if re.match(r"/|\.hg(?:/|$)",f): \ sys.exit("File is outside web-viewable filesystem repository.") \ else: \
13:45:20 <oerjan> `url bin/url
13:45:20 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/bin/url
13:47:36 -!- bender| has changed nick to sid123.
13:47:51 -!- sid123 has changed nick to bender|.
13:48:17 <oerjan> `url test.hg/
13:48:18 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/file/tip/test.hg
13:48:44 <oerjan> guess it only matches at beginning
13:49:20 <oerjan> `culprits bin/url
13:49:23 <HackEgo> tswett tswett oerjan oerjan oerjan oerjan oerjan fizzie fizzie fizzie fizzie oerjan oerjan oerjan oerjan elliott ais523 ais523 oerjan oerjan oerjan shachaf shachaf elliott elliott nitia
13:50:11 <impomatic_> Are people still playing BF Joust? I notice the strategy page hasn't had anything new added for almost a year.
13:50:25 <oerjan> obviously, i was the one who wrote that part.
13:50:41 <oerjan> impomatic_: not very often afair
13:50:58 <oerjan> i guess people haven't had any new ideas to try
13:51:08 <oerjan> at least, none that won.
13:53:51 <ais523> impomatic_: I go back and top the leaderboard every now and again, but it's been deadish for a while
13:54:24 <ais523> impomatic_: if you haven't seen growth2 yet, I'd recommend watching it, I really like the strategy
13:54:49 -!- Mikaos has joined.
13:54:49 <ais523> 19:05, 31 May 2015‎ Ais523 (Talk | contribs | block)‎ . . (97,150 bytes) (+3,004)‎ . . (→‎2015: because we couldn't go a year without a new hill-topper)
13:55:06 -!- Mikaos has left.
13:55:07 <impomatic_> ais523: will do after work :-)
13:55:20 -!- spiette has joined.
13:56:10 <oerjan> ais523: seems like you need to get a new one soon >:)
13:56:17 <ais523> indeed
13:58:42 <oerjan> hm is my tooth actually getting a bit better again
14:03:39 -!- tromp has quit (Remote host closed the connection).
14:09:08 <ais523> in terms of BF Joust hill-topping, I really want to get margins to work
14:09:15 <ais523> but every time I try to change it I break it
14:09:23 <ais523> maybe I should start from scratch using the same strategy
14:15:54 * oerjan has to stop clicking on giant reverts and nitia in the repository browser
14:17:41 -!- MoALTz has joined.
14:21:49 <oerjan> @tell hppavilion[1] <hppavilion[1]> @wikipedia Game Theory <-- tip 1: @google tip 2: wikipedia wouldn't capitalize "theory".
14:21:49 <lambdabot> Consider it noted.
14:22:11 <oerjan> @google Game Theory
14:22:12 <lambdabot> https://en.wikipedia.org/wiki/Game_theory
14:23:06 -!- MoALTz has quit (Ping timeout: 268 seconds).
14:23:15 <oerjan> <lambdabot> Unknown command, try @list <-- . o O ( <HackEgo> Unknown command, try `list )
14:24:25 <ais523> bleh, now I'm working on stealth3 :-)
14:25:57 <oerjan> *MWAHAHAHA*
14:29:29 -!- spiette has quit (Ping timeout: 260 seconds).
14:32:58 -!- spiette has joined.
15:04:13 -!- tromp has joined.
15:08:45 -!- tromp has quit (Ping timeout: 248 seconds).
15:25:09 -!- jaboja has joined.
15:37:15 -!- Alejandro15 has joined.
15:39:32 -!- Alejandro15 has left.
15:48:08 -!- lambda-11235 has joined.
15:49:24 -!- ais523 has quit (Ping timeout: 260 seconds).
15:50:06 -!- XorSwap has joined.
15:51:34 -!- ais523 has joined.
15:52:32 -!- jaboja has quit (Ping timeout: 260 seconds).
15:58:54 -!- XorSwap has quit (Read error: Connection reset by peer).
16:00:02 -!- XorSwap has joined.
16:05:47 -!- J_Arcane_ has joined.
16:10:08 -!- mroman has quit (Quit: Lost terminal).
16:16:52 <Taneb> `? loop
16:17:05 <HackEgo> loop: see loop
16:17:50 <Taneb> I think a loop is an automorphism in the groupoid of paths
16:18:37 -!- Alejandro15 has joined.
16:19:31 -!- XorSwap has quit (Ping timeout: 244 seconds).
16:20:01 <Taneb> Category of paths- it's not always a groupoid
16:20:17 <Taneb> Well, it's almost never a groupoid. It doesn't always have inverses
16:20:22 <HackEgo> [wiki] [[Brainfuck constants]] https://esolangs.org/w/index.php?diff=46492&oldid=45087 * Quintopia * (+25) /* Power Series */ wolfram alpha says so
16:22:43 -!- Alejandro15 has left.
16:23:54 <izabera> quintopia: sounds a bit vague for wolfram alpha
16:24:08 -!- Sprocklem has quit (Ping timeout: 244 seconds).
16:25:04 <HackEgo> [wiki] [[Brainfuck constants]] https://esolangs.org/w/index.php?diff=46494&oldid=46492 * Quintopia * (+60) /* Power Series */ wolfram alpha says so
16:25:13 * Taneb is learning what a homotopy is
16:28:38 <Taneb> The lecturer is being very handwavey
16:28:47 <Taneb> "Continuous functions form a space!"
16:30:21 -!- Alejandro15 has joined.
16:30:47 -!- Alejandro15 has left.
16:32:17 <Taneb> He's also pronouncing homotopy in a different way to what I had assumed
16:32:32 <Taneb> I was putting the stress on the second and forth syllables, with all short os
16:32:46 <Taneb> He's putting the stress on the first and third syllables, and having the first two os long
16:39:05 * oerjan assumed as Taneb.
16:40:26 <oerjan> wiktionary unhelpful
16:40:42 <Taneb> oerjan: looking at the greek roots, they use omicrons rather than omegas
16:40:53 <Taneb> Hence short os
16:41:14 <oerjan> does that actually matter to english
16:41:51 <Taneb> No, but it's at least a point of data
16:42:03 <Taneb> Then again, I pronounce "finite" with short is
16:42:06 <oerjan> hm google translate has them long
16:43:20 <Taneb> OED gives it as /ˈhɒməʊtɒpi/ or /həˈmɒtəpi/
16:43:20 <oerjan> https://www.reddit.com/r/math/comments/lhj6r/how_do_you_pronounce_homotopy/c2svi40 hth
16:43:40 <Taneb> :D
16:45:48 -!- fungot has joined.
16:46:07 <fizzie> fungot: Push the shell. Climb the shell.
16:46:07 <fungot> fizzie: your majesty! and queen. he and a friend left on a journey 10, then magic damage will be reduced by 10%. a star after any characteristic means it's at maximum strength! no matter what the price! it is, you idiot! hey! is that for us! the chef's in a snit, trying to get food to the front lines. heard a spell to energize the sword takes immense evil! indeed! this thing. what you have the masamune!
16:46:35 <oerjan> also https://www.youtube.com/watch?v=jJRyeUDfthk
16:47:13 <fizzie> fungot: I heard it takes immense concentration, not immense evil...
16:47:13 <fungot> fizzie: like, thanks princess. i'll take that under advisement!!
16:47:21 <fizzie> That's such an uppity bot.
16:47:34 <izabera> what style is it?
16:47:38 <izabera> ^style
16:47:39 <fungot> Available: agora alice c64 ct* darwin discworld enron europarl ff7 fisher fungot homestuck ic irc iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
16:47:40 <fizzie> ^style ct
16:47:40 <fungot> Selected style: ct (Chrono Trigger game script)
16:47:53 <oerjan> and a serious one https://www.youtube.com/watch?v=6Nw1uIpZ9io
16:47:57 <izabera> fungot
16:47:57 <fungot> izabera: i'd like to see that mystical sword for myself! geez! well, remember that you can log in anywhere on the world map! need a brief weapons and items seminar?
16:50:27 <fizzie> fungot: Yes, please. Give us a seminar on weapons and items.
16:50:28 <fungot> fizzie: is the gate key okay!! get' em! 200g per night. care, and stay...healthy! my husband...he's...he's...gone... but he left me precious gifts! the seeds...and our child, it's ancient history now...
16:50:41 <fizzie> fungot: Oh, if it costs that much, never mind then.
16:50:41 <fungot> fizzie: the masamune!! stole a tonic! amazing! you found a dreamstone! i'd forgotten how beautiful they are the evildoers? magus's lair! you brave! he's probably up north, to guardia!!! let's toast our land! now we'll have some peace! magus is a tad on the spooky side. our only hope.
16:50:51 <fizzie> It's a very excitable style.
16:51:09 -!- bender| has quit (Disconnected by services).
16:54:07 -!- oerjan has quit (Quit: Later).
17:01:53 -!- nisstyre has quit (Ping timeout: 244 seconds).
17:04:19 -!- tromp has joined.
17:08:50 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:09:09 -!- tromp has quit (Ping timeout: 276 seconds).
17:12:12 -!- jaboja has joined.
17:17:32 -!- ais523 has quit.
17:28:35 -!- XorSwap has joined.
17:29:43 -!- XorSwap has quit (Read error: Connection reset by peer).
17:29:56 -!- XorSwap has joined.
17:37:23 -!- XorSwap has quit (Quit: Leaving).
17:59:47 <b_jonas> Stupid framework tries to be overly general but doesn't actually do the simple things right.
18:00:40 <Taneb> b_jonas, which framework
18:00:59 <b_jonas> stuff at $WORK
18:01:07 <Taneb> Aaaaaah
18:01:16 <b_jonas> has layers of abstractions
18:01:26 <b_jonas> at the bottom it sometimes does the correct thing, sometimes doesn't
18:01:58 <b_jonas> but you can never tell which because you can't follow the source code to the end
18:05:36 -!- tromp has joined.
18:09:45 -!- tromp has quit (Ping timeout: 246 seconds).
18:13:18 -!- earendel has quit (Ping timeout: 248 seconds).
18:13:45 <Taneb> b_jonas, apparently that kind of thing is really common in a lot of industries
18:13:50 <Taneb> Especially banking?
18:15:54 -!- vanila has joined.
18:15:55 <vanila> hello
18:16:00 <vanila> occult wizards of the digital age
18:16:41 <Taneb> Hi
18:24:53 -!- augur has joined.
18:36:11 -!- earendel has joined.
18:37:55 -!- treaki has joined.
18:40:03 -!- MoALTz has joined.
18:40:46 <vanila> so whats new
19:01:52 -!- augur has quit (Remote host closed the connection).
19:04:18 <vanila> `relcome
19:04:20 <vanila> `relcome
19:04:27 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
19:04:28 <HackEgo> Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
19:05:37 -!- Melvar has quit (Ping timeout: 260 seconds).
19:08:33 -!- nikylom has joined.
19:10:41 -!- nikylom has quit (Client Quit).
19:11:08 -!- nikylog has joined.
19:16:16 <Elronnd> `relcome vanila
19:16:17 <HackEgo> vanila: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: <http://esolangs.org/>. (For the other kind of esoterica, try #esoteric on EFnet or DALnet.)
19:18:54 <HackEgo> [wiki] [[Piet++]] https://esolangs.org/w/index.php?diff=46495&oldid=42982 * 202.171.164.185 * (+25)
19:19:34 -!- Melvar has joined.
19:27:51 -!- hppavilion[1] has joined.
19:28:15 -!- ^v has quit (Ping timeout: 276 seconds).
19:32:04 <zzo38> How to make Bezier line with Xlib?
19:44:57 -!- Sprocklem has joined.
19:48:09 <prooftechnique> zzo38: I don't think Xlib can do that
19:48:42 <quintopia> prooftechnique: not builtin, maybe, but you can make it do it
19:49:32 <quintopia> izabera: wolframalpha gave me exact values for several different choices of x. They are ugly irrational numbers.
19:49:37 <prooftechnique> I guess you could look at cairo for inspiration
19:50:26 <zzo38> I found a document that says that by use of X10 codes in X11 it is possible to make spline, but does not describe very well how spline is made
19:53:11 <prooftechnique> Looks like this is a clock that draws the hands with a Bezier curve: ftp://ftp.lip6.fr/pub/linux/sunsite/X11/clocks/bclock-1.0.tar.gz
19:53:16 -!- Reece` has joined.
19:53:26 <prooftechnique> I think the relevant code is in transform.c
19:53:29 -!- Reece` has quit (Remote host closed the connection).
19:53:43 <zzo38> I will look
19:54:35 -!- augur has joined.
19:59:11 -!- heroux has quit (Ping timeout: 268 seconds).
19:59:31 -!- augur has quit (Remote host closed the connection).
19:59:32 <b_jonas> zzo38: if you mean degree 2 spline, then pull in the cairo library, which can draw bezier stuff, and use its X11 backend.
19:59:38 <b_jonas> um
19:59:41 <b_jonas> I mean degree 3 spline
19:59:46 <b_jonas> degree 2 is parabola
19:59:54 <b_jonas> but cairo supports cubic (degree 3) too
20:01:30 <zzo38> Apparently Xlib can also do spline by including <X11/X10.h> but it does not describe very well what spline algorithms are used and how to control it.
20:01:45 -!- heroux has joined.
20:04:50 <b_jonas> zzo38: in that case, check cairo if it uses those functions of Xlib (it might not, if they're not general enough).
20:05:23 -!- jaboja has quit (Ping timeout: 248 seconds).
20:08:36 <zzo38> Why does tar have a large number of worthless options as well as a few useful ones, some of which can only be written as long option and short option won't work?
20:09:12 <b_jonas> zzo38: history.
20:10:20 <b_jonas> zzo38: and yes, --no-recurse should really have a short version
20:10:25 -!- Sprocklem has quit (Ping timeout: 240 seconds).
20:10:49 <vanila> tar is bad
20:11:06 <vanila> sometimes if your file looks like a link it will try to open a network connection
20:11:18 <zzo38> If all of the worthless options were to be removed, then all of the remaining long options could be changed to short options.
20:11:34 <vanila> yeah someone should just clean slate rewrite tar
20:11:39 <vanila> and it shouldn't support compression
20:11:48 <vanila> make it the "unix way"
20:12:08 <b_jonas> zzo38: what I wish for is a program with 7z's backend and capabilities, but a sane front-end with reasonable unixish command-line syntax and output.
20:12:35 <vanila> I made a program that unzips any archive format
20:12:46 <vanila> you just go: un thing.whatever
20:12:57 <b_jonas> vanila: that's exactly what 7z is trying to do, unzips any archive format if you say 7z x somearchive
20:13:01 <vanila> and it has modules that describe each unix program to decompress
20:13:22 <vanila> i made it careful not to splay files everywhere
20:13:29 <zzo38> I agree you should use a separate program for compression instead. For example "zcat < program.tar.gz | tar t" or whatever (that already works though)
20:13:31 <vanila> it always puts them inside a folder (unless the zip itself was a single item)
20:13:34 <vanila> I wrote it in lisp and use it all the time
20:14:04 <vanila> it's abit imperfect though because every program is different and moste are not built to be used programatically(!)
20:14:11 <vanila> despite being command line unix programs
20:14:11 <zzo38> I always list the archive first before extracting it so that I will know what directory structure it needs.
20:14:17 <vanila> its a bit funny
20:14:35 <zzo38> (Or in case I do not need all of the files from the archive)
20:14:53 -!- XorSwap has joined.
20:15:14 <zzo38> I think Hamster archive is a better format. Hamster archive is consist of zero or more lumps, where each lump consists of the null-terminated filename, the 32-bit length in PDP-endian format, and then the data.
20:15:53 -!- XorSwap has quit (Client Quit).
20:16:07 <int-e> . o O ( so how do you deal with messages that are larger than 4GB? )
20:16:44 <int-e> well, or files.
20:17:06 <vanila> 4GB is a problem
20:17:12 -!- nikylog has quit (Quit: Page closed).
20:17:18 <zzo38> I suppose you could just add more than one with the same name if you really need to
20:17:45 <shachaf> Why do you like PDP-endian?
20:18:10 <zzo38> I don't, but that is how it was defined (I don't know why, but I can guess).
20:18:12 <b_jonas> zzo38: separate program for compressing is what I do right now: tar -c "${lots_of_ugly_options[@]}" | 7z a "$outputpath/$basename.t7z" -t7z -mx=3 -si"$basename.tar"
20:18:36 <b_jonas> separate program is also what tar does of course
20:18:57 <b_jonas> it automatically invokes the right separate program for decompressing gzip, bzip, xz, and a few more
20:19:21 <b_jonas> which is definitely the Right Thing for it to do
20:19:35 <vanila> another problem is unrar is not free
20:19:41 <zzo38> 7-Zip will already do both archiving and compression though, due to the 7-Zip file format in use.
20:20:05 <zzo38> b_jonas: I don't, I think you should use pipe to tell to decompress instead
20:20:47 <zzo38> The reason Hamster archive uses PDP-endian is for historical reasons and is not up to me.
20:21:07 <b_jonas> zzo38: 7-zip does archiving, but you can't use that if you want to save unix filesystem attributes (owner, group, and permission bits most importantly), which is important for a system backup
20:21:15 <b_jonas> zzo38: I used tar this way for backups
20:21:26 <b_jonas> for just distributing a tarball of some program, 7z without tar is fine of course
20:22:02 <zzo38> Yes I suppose that can be also a reason
20:23:23 <b_jonas> zzo38: 7z can create or extract tar files (and many other formats), but since its command line utility is even worse to use than tar, I never tried to create tar with it (I did create zip with it though)
20:24:18 <b_jonas> The backend of 7z and how many formats it supports (not all archive formats either) is great, as well as its specific 7z format, and its windows gui. It's only the command-line tool I don't like.
20:24:37 <b_jonas> I might try to nudge its source code a bit some time to make it a bit saner.
20:25:31 <zzo38> It is one advantage of 7z, that you can support many different format; it has successfully opened some files I downloaded that were in unusual formats and it worked fine.
20:25:40 <b_jonas> zzo38: exactly
20:25:56 <b_jonas> I use 7z a lot for this reason
20:26:02 <b_jonas> I also use it a lot to create 7z archives
20:27:18 -!- XorSwap has joined.
20:27:30 <b_jonas> There are lots of other tools that try to support multiple archives of course: bzip2 can decompress gzip; xz can decompress gzip, bzip2, lzma; the rar program can decompress zip and I think it can even compress it; norton commander has a built-in zip decompressor; and there are even a few tools that try to handle any archive by calling other specific programs.
20:27:37 <zzo38> Yes, 7-Zip does compress pretty well
20:28:43 <zzo38> Note that some of the files I have successfully opened with 7-Zip are not even documented in the document of 7-Zip.
20:28:57 <b_jonas> Also, I've never seen 7-zip crash, neither the gui nor the command-line, and that's a big plus.
20:29:04 <zzo38> (Maybe they are now, but at that time they weren't)
20:29:25 <zzo38> b_jonas: Yes that too, although I have not used the GUI of 7-Zip
20:29:50 <b_jonas> zzo38: the gui is quite good, and is designed better than the command line. it's not perfect, but quite good.
20:30:35 <zzo38> It probably is good, although I still prefer to work by command-line
20:30:52 <b_jonas> I use both, depending on the task.
20:31:04 <b_jonas> Obviously the command line can be automated, which I have done at least once.
20:32:16 <zzo38> It won't support Hamster archive, but I have written my own program for Hamster archive anyways (other programs exist, but they aren't very good, and also they require DOS)
20:32:39 <b_jonas> What I don't understand is why some people like the horrible trialware winrar program, when 7-zip has been available for quite a while and does basically anything winrar can do but better, except for compressing rar archives.
20:32:51 <b_jonas> (The full version of 7-zip does decompress rar archives.)
20:33:06 <b_jonas> What's a hamster archive?
20:33:19 <zzo38> I described it above. It is: Hamster archive is consist of zero or more lumps, where each lump consists of the null-terminated filename, the 32-bit length in PDP-endian format, and then the data.
20:33:30 <vanila> in my opinion 7z should handle 7z only
20:33:42 <vanila> and there should be a separate multi-archiver program to 'combine'
20:33:42 <zzo38> That is the entire document, now you can even make your own implementation if you want to
20:33:56 <vanila> zzo38, PDP lol
20:34:32 <b_jonas> zzo38: what are Hamster archives used for?
20:34:45 <zzo38> vanila: I know PDP-endian isn't as good, but that is what it is and I do not quite know why.
20:34:55 <vanila> PDP-endian XB
20:35:01 <vanila> it's the silliest endian
20:35:15 <zzo38> Yes I agree it is the silliest endian
20:35:22 <prooftechnique> I've tried to look up documentation on the format, and most of what I find is codu logs of zzo talking about it :D
20:35:30 <b_jonas> wait, is pdp endian one of those mixed-endian formats, in which the int16 level endian is opposite to the int32 level endianness?
20:35:39 <fizzie> Yes.
20:35:40 <zzo38> Nevertheless it can be implemented easily enough, as can the better formats such as big-endian and small-endian
20:36:02 <b_jonas> sure
20:36:10 <b_jonas> for an archive format like this it's fine
20:36:33 <zzo38> prooftechnique: Other documentation does not name the format anything, which makes it difficult to find, although I wrote the entire document right here anyways; it is one sentence.
20:36:47 <b_jonas> this sounds like some sort of tar format basically
20:38:22 <zzo38> Combine archives simply by "cat" program or by using the >> redirection operator.
20:38:41 <b_jonas> zzo38: right, I think tar formats can do that too
20:38:54 <b_jonas> and so can tar.gz
20:39:21 <zzo38> I know gzip supports that too
20:39:46 -!- jaboja has joined.
20:39:55 <prooftechnique> \oren\: Your font is making me depressingly aware of how often people use nonbreaking spaces for evil :|
20:40:24 <b_jonas> the t in tar stands for tape, as in, you can append new files to a tar file on a magnetic tape without reading it
20:40:46 <zzo38> prooftechnique: Also with s/nonbreaking spaces/Unicode/ too isn't it?
20:41:50 <prooftechnique> A little bit, yeah. Nonbreaking spaces are *everywhere*, though :|
20:43:03 <zzo38> Nonbreaking spaces are certainly not limited to Unicode of course though, other formats have nonbreaking spaces too
20:43:35 -!- katherine has joined.
20:43:38 -!- Phantom_Hoover has joined.
20:43:39 <zzo38> In UTCE all characters are nonbreaking (including the ASCII space)
20:44:33 <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa
20:44:48 <b_jonas> I think part of the reason why nonbreaking space got popular is that HTML traditionally couldn't represent multiple adjacent spaces, so when people wanted to show two adjacent spaces of an ascii string in HTML, they replaced one with a non-breaking space for display.
20:44:51 -!- katherine has left.
20:46:39 <prooftechnique> I mainly see it a lot in mailing list archives and GNU docs :D
20:47:00 <prooftechnique> Then again, I also see lots of tables used for no reason in those places, so :|
20:51:16 <b_jonas> If I understand correctly, these days there's a way around this in HTML, namely specifying the CSS property white-space: pre-wrap; which disables HTML's special whitespace handling.
20:51:42 <vanila> lol
20:51:48 <vanila> HTML merges multiple spaces into one
20:51:54 <vanila> just so people can indent their XML?
20:52:01 <vanila> that's sooooo horribly ugly and funny
20:52:04 <b_jonas> vanila: yes, it's horrible
20:52:10 <vanila> lisp paste website uses a funny XML indentation style
20:52:22 <vanila> view-source:http://paste.lisp.org/
20:52:32 <b_jonas> vanila: it also sometimes removes a whitespace adjacent to a tag
20:52:41 <prooftechnique> A lot of it is texi2html generated stuff, so it's at least kind of understandable
20:52:58 <vanila> I have a great idea: Use s-expressions for web markup
20:53:11 <prooftechnique> top kek, bruv
20:53:20 -!- vanila has left ("Leaving").
21:01:03 -!- heroux has quit (Ping timeout: 264 seconds).
21:03:30 -!- heroux has joined.
21:06:37 -!- hppavilion[1] has quit (Ping timeout: 248 seconds).
21:07:28 -!- hppavilion[1] has joined.
21:22:48 -!- lleu has quit (Quit: That's what she said).
21:24:48 <hppavilion[1]> Loyalty Theory
21:24:54 <hppavilion[1]> @messages-l
21:24:54 <lambdabot> oerjan said 7h 3m 5s ago: <hppavilion[1]> @wikipedia Game Theory <-- tip 1: @google tip 2: wikipedia wouldn't capitalize "theory".
21:25:07 <hppavilion[1]> @google Game theory
21:25:08 <lambdabot> https://en.wikipedia.org/wiki/Game_theory
21:25:43 <hppavilion[1]> @tell oerjan I was hoping `@wikipedia game theory` would return the first sentence of the article, because it was funny IIRC
21:25:43 <lambdabot> Consider it noted.
21:25:43 <prooftechnique> @google Theory
21:25:45 <lambdabot> http://www.theory.com/
21:25:45 <lambdabot> Title: Theory Official Site | Contemporary Clothing for Women and Men
21:25:50 <prooftechnique> @wiki Theory
21:25:50 <lambdabot> http://www.haskell.org/haskellwiki/Theory
21:25:54 <prooftechnique> Checkmate
21:26:27 <prooftechnique> Or, for that wiki: https://en.wikipedia.org/wiki/Theory
21:27:03 <prooftechnique> hppavilion[1]: What's the joke in the first few sentences?
21:27:55 <hppavilion[1]> prooftechnique: I was wrong, it was a joke I was going to make
21:27:58 -!- XorSwap has quit (Ping timeout: 244 seconds).
21:28:11 <hppavilion[1]> "Game theory is \"the study of mathematical models of conflict and cooperation between intelligent rational decision-makers.\""
21:28:30 <hppavilion[1]> What's the study of people just in it for revenge and bitterness?
21:28:32 <hppavilion[1]> Also
21:28:56 <hppavilion[1]> "Game theory is mainly used in ... political science..."
21:29:10 <hppavilion[1]> Where are the intelligent rational decision-makers in politics?
21:30:09 <Phantom_Hoover> all over the place?
21:30:13 <b_jonas> hppavilion[1]: no, but politicians like to use fancy scientific stuff to try to make their decisions seem rational when they aren't
21:30:46 <b_jonas> hppavilion[1]: game theory is a great excuse, it sounds sciency enough that they can refer to game theoretical models with fancy solutions
21:31:16 <hppavilion[1]> b_jonas: So it's quasi-game theory?
21:31:37 <hppavilion[1]> b_jonas: How often do people yell "IS THIS ALL A GAME TO YOU!?" at game theorists do you reckon?
21:32:10 <prooftechnique> hppavilion[1]: I think the latter study is called family law
21:33:02 <prooftechnique> Divorce law, in particular, though arguably custody law, as well
21:37:43 -!- jaboja has quit (Ping timeout: 250 seconds).
21:42:43 <izabera> can you tell if a number is prime in a non turing complete language?
21:43:17 <prooftechnique> izabera: I think you can do it in SQL
21:43:55 <izabera> can you show it?
21:44:42 <prooftechnique> https://tsqltricks.wordpress.com/2008/12/17/udf-isprime/
21:45:13 <izabera> that's turing complete
21:45:17 <prooftechnique> Oh, true
21:47:10 <prooftechnique> Hmm, I guess even vanilla SQL is turing complete with CTEs and windowing
21:47:11 <izabera> ah yes you only need to loop down
21:47:14 <prooftechnique> Disappointing
21:48:39 <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right?
21:50:34 <prooftechnique> Apparently you can do it with regex, but I'm not sure if it's only PCRE (which is TC, IIRC)
21:51:08 <izabera> bre is enough
21:51:17 <izabera> but i don't know if bre is turing complete
21:55:42 <Riviera> izabera: i don't quite get your question
21:56:12 <Riviera> izabera: "something" as in "anything?" Most algorithms for checking whether a number is prime aren't turing complete, yet they can do what they do.
21:56:42 <izabera> a language
21:56:58 <Riviera> that doesn't make it any less vague.
21:57:12 <prooftechnique> Well, Charity is definitely not Turing Complete, but you could reasonably check for primality with it
22:00:03 -!- spiette has quit (Ping timeout: 246 seconds).
22:01:34 -!- augur has joined.
22:05:15 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
22:07:11 -!- tromp has joined.
22:10:53 -!- Sprocklem has joined.
22:11:21 -!- tromp has quit (Ping timeout: 244 seconds).
22:16:24 <zzo38> Even SQLite is capable of solving Sudoku and computing a mandelbrot set with a single query.
22:16:37 <zzo38> (with an empty database)
22:19:46 <myname> just add a prime checker to hq9
22:23:03 <coppro> p: the command p looks at the next available input for the longest consecutive series of digits, and outputs "Prime!" if it is a prime number, or "Not prime!" otherwise (including if it is an empty sequence). Note that the input is not removed from the queue.
22:23:08 <coppro> s/queue/input buffer/
22:23:30 <myname> yeah
22:23:44 <myname> question can now be answered withn yes, there is such a language
22:23:47 <myname> next!
22:40:44 -!- augur has quit (Remote host closed the connection).
22:53:10 -!- oerjan has joined.
22:59:03 <zzo38> SQLite has no regular expression built-in but I made the SQLite extension library to use PCRE with SQLite
23:00:56 -!- idris-bot has joined.
23:02:46 -!- hppavilion[1] has joined.
23:10:20 <hppavilion[1]> Perhaps a set-theoretical proof assistant?
23:10:32 <hppavilion[1]> A bit primitive, but workable
23:11:08 * oerjan recalls metamath
23:11:29 <oerjan> i think "set-theoretical" and "primitive" are about right for that.
23:11:53 <oerjan> @messages-
23:11:53 <lambdabot> hppavilion[1] said 1h 46m 10s ago: I was hoping `@wikipedia game theory` would return the first sentence of the article, because it was funny IIRC
23:12:21 <hppavilion[1]> oerjan: It turned out I just had a joke to make about it
23:12:58 <hppavilion[1]> tswett: Hi?
23:15:54 <oerjan> <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa <-- i'm wondering if it's some kind of semester start in venezuela
23:16:05 <oerjan> all these people showing up at the same time
23:21:14 -!- hppavilion[1] has quit (Read error: Connection reset by peer).
23:28:36 -!- AnotherTest has quit (Ping timeout: 246 seconds).
23:31:03 <oerjan> <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right? <-- right, this is well-known to give you exactly the primitive recursive functions on numbers. see BlooP.
23:31:57 <shachaf> `? weather
23:32:03 <HackEgo> lambdabot: @@ @@ (@where weather) CYUL ENVA ESSB KOAK
23:32:05 <lambdabot> CYUL 042300Z 04002KT 15SM FEW240 M05/M16 A3023 RMK CI1 CI TR SLP241 \ ENVA 042250Z 00000KT 9999 FEW045 BKN090 01/M03 Q1003 RMK WIND 670FT 09008KT \ ESSB 042320Z AUTO 13007KT 9999 BKN008/// OVC009/// 01/00 Q1008 \ KOAK 042256Z 16008KT 10SM SCT013 BKN025 OVC038 17/16 A2994 RMK AO2 RAE56 P0000 T01720156
23:34:08 -!- tromp has joined.
23:34:47 -!- lynn_ has joined.
23:34:50 * oerjan notes graue once deleted BlooP from our wiki, and wonders wtf he was on.
23:35:13 <Phantom_Hoover> <oerjan> <katherine> holaaaaaaaaaaaaaaaaaaaaaaaaaaa <-- i'm wondering if it's some kind of semester start in venezuela
23:35:31 <Phantom_Hoover> this stuff happens because we're inexplicably on the default channel list on some spanish distro's irc client, right?
23:35:39 <oerjan> right, canaima
23:35:56 <oerjan> s/spanish/venezuelan/, at least originally.
23:36:28 -!- lynn has quit (Ping timeout: 264 seconds).
23:37:05 <oerjan> or at least so i assume, i've never literally seen that channel list or what program it is in.
23:37:31 <oerjan> but i once got some kind of half-confirmation out of one of them
23:37:50 <oerjan> only half- because i'm not sure they used compatible terminology.
23:38:41 <oerjan> however, my comment above was because we've had 3 or 4 of them in just a few days.
23:41:12 <oerjan> @tell izabera <izabera> something that only supports a loop with a finite number of iterations is not tc, even if that number is unbounded, right? <-- right, this is well-known to give you exactly the primitive recursive functions on numbers. see BlooP.
23:41:12 <lambdabot> Consider it noted.
23:45:59 -!- tromp has quit (Remote host closed the connection).
23:51:55 -!- p34k has quit.
23:52:31 <zzo38> The instruction for PortAudio says you must terminate it. However if the program won't terminate properly then how to ensure it will stop properly?
←2016-03-03 2016-03-04 2016-03-05→ ↑2016 ↑all