←2016-04-15 2016-04-16 2016-04-17→ ↑2016 ↑all
00:00:05 <coppro> https://blogs.msdn.microsoft.com/vcblog/2015/12/04/clang-with-microsoft-codegen-in-vs-2015-update-1/
00:00:45 -!- J_Arcane has joined.
00:00:54 <b_jonas> I mean, I know C++ templates and sfinae are _designed_ at language feature level to make it impossible to give sane diagnostics, but msvc gives horrible error messages even in simple cases, not only in the complicated template stuff.
00:00:58 <tswett> Each notation consists of a list of key-value pairs. Each key and each value is a notation. Every notation has an ordinal number as its value.
00:02:00 <tswett> There can only be finitely many key-value pairs. The keys must be arranged in descending order by ordinal value.
00:02:20 -!- hppavilion[wc] has quit (Ping timeout: 250 seconds).
00:02:50 <tswett> Notations also have an ordering; this ordering is different from the order of the ordinal numbers they describe.
00:02:58 <coppro> shachaf: tbh I'm *super* excited for modules
00:04:36 <b_jonas> Seriously, msvc is so bad that even if the code you write will eventually be compiled only with msvc, it's worth to port some of it to be portable to non-msvc just to get sane error messages when developing it.
00:04:59 <tswett> The ordering of two notations is calculated as follows. If one notation is empty and the other is not, the non-empty one is later. Otherwise, look at their greatest keys (by ordinal value). If one key is greater, then its notation is later.
00:05:02 <b_jonas> I've done that with template code.
00:05:16 <tswett> If the keys are equal, look at the corresponding values (again, by ordinal value). If one value is greater, then that notation is later.
00:05:26 <b_jonas> Of course, then you get cases when your code is correct and gcc and clang both know that, but msvc can't compile it because it doesn't understand the c++ standard.
00:05:27 <tswett> Otherwise, discard the top key-value pair of each notation and compare the results.
00:05:50 <b_jonas> But even then, gcc or clang as tools help you figure out how to fix it.
00:07:07 <tswett> The definition of the function from notations to ordinal numbers is: The ordinal value of a notation is the smallest ordinal number which is greater than all of the values in the key-value pairs, and also greater than the ordinal value of any earlier notation.
00:09:54 <tswett> So, the big question is: are all notations well-defined?
00:10:39 -!- HackEgo has joined.
00:10:49 <b_jonas> fungot, are all notations well-defined?
00:11:20 <b_jonas> fungot: Kengyele, kantárja / a kádár munkája
00:14:05 -!- lleu has joined.
00:14:20 -!- tromp has joined.
00:18:35 <oerjan> tswett: i don't think it's well-defined. it seems like key = 0, value = a must be at least a for any ordinal, so there's nothing left for other notations.
00:18:47 -!- tromp has quit (Ping timeout: 260 seconds).
00:19:00 <tswett> oerjan: you can't get omega using only key = 0.
00:19:10 <coppro> boily: is the topic the most recent wisdom?
00:19:15 <coppro> it still says 2015 on the title page
00:19:26 <tswett> Like, the function f(x) = {0: x} doesn't have omega in its range.
00:19:48 <oerjan> oh that mess.
00:19:52 <oerjan> FINE
00:20:07 <shachaf> `welcome oerjan
00:20:17 <HackEgo> oerjan: 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:20:46 <b_jonas> `wisdom
00:20:47 <boily> coppro: I think so. I haven't updatitled, only contents.
00:20:48 <HackEgo> wisdome/The Wisdome is the place where all of HackBot's wisdom is stored and forced to fight to the death for the freedom of being printed out when you type `wisdom.
00:20:53 <b_jonas> `wisdom
00:20:55 <HackEgo> egobot/EgoBot is my arch-nemesis.
00:20:57 <oerjan> oh you said the ordering was different.
00:22:07 <oerjan> shachaf: WAT, and here i thought this place was about alchemy and stuff
00:25:25 <b_jonas> oerjan: no, this place is about kitten typesetting
00:27:11 <pikhq> Not really alchemy, except as it applies to typesetting.
00:27:28 <pikhq> Which is surprisingly common.
00:27:41 <boily> `? ginorst # wut?
00:27:42 <HackEgo> ginorst # wut?? ¯\(°​_o)/¯
00:27:46 <boily> `? ginorst
00:27:47 <HackEgo> Ginorst is eht aillpr fo dgoo iikw aaeegmmnnt.
00:27:57 <boily> storing is the pillar of goot wiki management???
00:28:15 <boily> st\t wtd wt
00:28:44 <oerjan> boily: almost
00:29:10 * oerjan wanted to give a hint in the last message, but then realized something...
00:29:39 <boily> strigno? goirnst?
00:30:30 <oerjan> rty adeehrr
00:30:38 <boily> kiwi?
00:32:29 <oerjan> no, ahtt asw cceorrt
00:34:14 <oerjan> what is it with fungot today
00:34:29 <int-e> oh oerjan's experimenting with some sort of encryption?
00:34:33 <boily> rosting? trisong? gnosirt? norsigt?
00:34:49 <oerjan> ...
00:34:52 <int-e> snorting!
00:35:07 <boily> thint-e.
00:35:09 <boily> oerjan: snorting!
00:35:15 <int-e> it's wrong
00:35:42 * oerjan astw biloy ###-----
00:35:50 <oerjan> *asstw
00:36:18 <shachaf> dhnt
00:36:50 <boily> oerjan: ehy :P
00:36:54 <oerjan> aacfhhs: aer ouy ersu?
00:36:55 <int-e> apparently there's only Sorting and Storing
00:37:14 <boily> I already suggested storing, therefore it's sorting.
00:37:21 <shachaf> Or Tsing
00:37:29 <shachaf> Or Sting
00:37:30 <boily> also: is Hari a person, or a concept?
00:37:32 <boily> `? hari
00:37:38 <boily> shachaf: probably Sting.
00:37:39 <HackEgo> Hari wears an identical suit every day. Or the same suit? The latter glitch would be a sign of adjustments on the Matrix.
00:39:48 -!- hppavilion[1] has joined.
00:40:09 <hppavilion[1]> So here's a rather interesting idea
00:40:40 <hppavilion[1]> Most type theories (and, by extension, good type systems) are based on Formal Logic and use logical proofs to engineer new functions
00:40:54 <boily> hppavellon[42]! you are wisdomupdated.
00:41:07 <hppavilion[1]> But what happens if we throw logic and functions out the window?
00:41:15 <hppavilion[1]> Instead of logic, we use geometry
00:41:27 <hppavilion[1]> And instead of functions we use, I dunno, constructions?
00:41:53 <int-e> I think you've crossed some line there.
00:42:02 <hppavilion[1]> int-e: I think I have
00:42:03 <oerjan> int-e: in the first line imo
00:42:46 <oerjan> hppavilion[1]: your first error is in assuming that throwing random stuff together is sufficient to be "interesting".
00:42:49 * hppavilion[1] is guilty of four-plus-pi-i-degree linecrossing
00:43:02 <hppavilion[1]> oerjan: I was thinking about it on my walk home and it seemed interesting
00:43:26 <hppavilion[1]> oerjan: I tried to figure it out, but I was walking and thus unable to visualize it concretely
00:43:29 <oerjan> well, geometry is the ancient logical subject
00:43:44 <hppavilion[1]> oerjan: Yes, and?
00:44:02 <int-e> what I was getting at, really, is that geometry is all about crossing lines
00:44:10 <hppavilion[1]> oerjan: Yes, it uses logic, but it's a rather different logic IME
00:44:14 <hppavilion[1]> int-e: Aaaaaaah.
00:45:26 <oerjan> <hppavilion[1]> oerjan: I tried to figure it out, but I was walking and thus unable to visualize it concretely <-- the trick is to find a nearby beach with sand to draw in. and watch out for romans.
00:45:29 <int-e> that said, oerjan has a point
00:45:45 <hppavilion[1]> oerjan: I feel like I should get that reference
00:45:49 <hppavilion[1]> int-e: Yes, he does
00:45:59 <hppavilion[1]> int-e: But I think this actually is interesting
00:46:05 * int-e is going to let this discussion run in circles... and then move on to three dimensions.
00:46:24 <shachaf> 01:11 <@DarwinElf> shachaf, Warrigal, poll: best spiritual site? (mine in the topic, and the two it's influenced by and that are now probably still offline, aren't the easiest for most people, so we could list others like we used to)
00:46:43 <oerjan> hppavilion[1]: well it's pretty old hth
00:46:52 <shachaf> oerjan: do you have any good ones for the other #esoteric
00:46:53 <hppavilion[1]> (Though further thought led me to realize that you need something to take the place of functions. Or just functions)
00:47:01 <shachaf> tswett didn't know any
00:48:01 <int-e> oh perhaps the discussion could also spiral out of control or move off a tangent...
00:48:21 <int-e> why are there so many geometric idioms...
00:48:23 <hppavilion[1]> oerjan: Is there some glaring obvious reason a geometric type theory wouldn't work that I'm missing?
00:48:34 <oerjan> hppavilion[1]: i don't know.
00:48:39 <hppavilion[1]> int-e: I think "tangent" was a thing before geometry and they both use the same thing
00:49:16 <oerjan> wat
00:49:26 <oerjan> tangent is part of geometry
00:50:36 <hppavilion[1]> oerjan: Yes, but it may have predated geometry
00:50:50 <boily> who is Jander?
00:50:55 <hppavilion[1]> oerjan: And the word may have been an already-existing word adopted by geometers (in its english sense)
00:50:57 -!- centrinia has joined.
00:51:26 <int-e> hppavilion[1]: usually you should first have an idea of a mathematical object, then give it a name... you seem to be turning this process upside down, but it doesn't really work: "geometric type theory" has no inherent meaning.
00:51:41 <hppavilion[1]> int-e: True, true
00:51:41 <boily> coppro: ♪ DING ♪ PDF update!
00:52:09 <shachaf> `pbflist
00:52:10 <HackEgo> pbflist: shachaf Sgeo quintopia ion b_jonas
00:52:14 <oerjan> hppavilion[1]: tangent is latin, and geometry is greek, so the latter is older hth
00:52:20 <hppavilion[1]> oerjan: Ah, yes
00:52:38 <shachaf> this channel seems to be unionized
00:52:39 <oerjan> (spot the error in this reasoning)
00:52:53 <oerjan> shachaf: we're very electrically neutral indeed
00:53:16 <int-e> oerjan: are you positive?
00:53:19 * int-e runs
00:53:20 <hppavilion[1]> int-e: My point with it is that you have scalar types Circle and Line
00:53:22 <oerjan> boily: which Jander
00:54:06 <boily> `? jander
00:54:07 <HackEgo> Jander was murdered, or deactivated permanently, depending on which side you ask.
00:54:16 <boily> ↑ this one here Jander.
00:54:40 <hppavilion[1]> Circle, Line, and Point
00:54:56 <oerjan> boily: oh. someone's been adding scifi references to the wisdom. that one is asimov. come to think of it, Hari may be too.
00:55:12 <oerjan> although the Matrix is confusing in that context...
00:55:23 <oerjan> `culprits wisdom/jander
00:55:28 <HackEgo> b_jonas b_jonas
00:55:38 <boily> b_jonasimov.
00:55:42 <hppavilion[1]> int-e: And compound types called a Plot (which is like a labeled list or named tuple; not quite a dictionary because the "labels" are just compile-time macros)
00:56:09 <hppavilion[1]> Maybe something other than a Plot, but you get the point- a way of organizing constructions into nice neat groups
00:56:14 <oerjan> specifically, Jander was a robot. i've only read plot synopses.
00:56:43 <hppavilion[1]> int-e: And... hm... I seem to have done something wrong
00:57:20 <hppavilion[1]> int-e: My point at a high-level is "Type theory can be done with logical proof, so why not other proofs?"
00:57:56 <hppavilion[1]> The naive approach is just to include the primitives as types and have functions matching the postulates, but I feel like there's another, more interesting way to do it
00:59:45 <oerjan> hppavilion[1]: the proofs of geometry include logic, and on top they have mathematical objects that are being talked about. i think that kind of thing may generally lead to dependent types...
01:00:03 <hppavilion[1]> oerjan: Yes, that might be it.
01:00:16 <oerjan> without dependent types, the logic only talk about the propositions themselves
01:00:20 <hppavilion[1]> oerjan: But I'm going for the ruler-and-compass constructive proofs
01:00:21 <oerjan> *logics
01:00:32 <hppavilion[1]> oerjan: Basically, I want to ruler-and-compass type theory
01:01:18 <hppavilion[1]> A type would be a series of circle constructions and line constructions, given an initial set of known points
01:04:49 -!- oerjan has set topic: Quite puzzling | The international hub of esoteric programming language and kitten typesetting | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | http://esolangs.org/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | Note: people with cloaks will be treated as if they're from Oslo (not Christiania).
01:04:50 <hppavilion[1]> Huh. I suppose a type is something you can construct with a static series of steps and some points satisfying certain predicates
01:05:04 <oerjan> i felt nationally obligated hth
01:05:31 <hppavilion[1]> OR it is a predicate type...
01:05:55 <Phantom_Hoover> https://en.wikipedia.org/wiki/Hilbert%27s_axioms sets out a modern axiomatic framework for euclidean geometry
01:05:59 <Phantom_Hoover> it's probably a useful start
01:06:10 <hppavilion[1]> Phantom_Hoover: Thank you
01:06:15 <Phantom_Hoover> hey oerjan
01:06:35 <oerjan> phellover
01:06:42 <Phantom_Hoover> can you prove stuff like the impossibility of the trisection with hilbert's axioms
01:07:26 <oerjan> Phantom_Hoover: probably?
01:07:37 <hppavilion[1]> Phantom_Hoover: Are hilbert's axioms equivalent to euclid's axioms?
01:07:44 <oerjan> it's not like i've looked at the axioms in detail
01:08:12 <Phantom_Hoover> i guess you probably can, i was wondering if maybe you needed extra stuff to get all the necessary galois theory
01:08:12 <oerjan> hppavilion[1]: hilbert's axioms are basically filling in the loopholes because the ancient greeks weren't rigorous _enough_
01:08:25 <oerjan> but otherwise, should be.
01:08:47 <Phantom_Hoover> i still don't really understand what the point of axiom 4 of euclid is
01:08:57 <hppavilion[1]> oerjan: How do you prove whether a triangle is isosceles? Is there some way to reduce it to the intersection or non-intersection of two lines?
01:09:26 <Phantom_Hoover> you can prove that two of its vertices lie on a circle centred on the third
01:09:41 <hppavilion[1]> Phantom_Hoover: That probably works
01:10:00 <Phantom_Hoover> but in euclidean language i think you'd just say "the line segments AB and AC are of equal length"
01:10:04 <oerjan> Phantom_Hoover: well you need to be able to talk about what it means for something to be constructible, i guess that might not fit inside the first order logic of geometry itself.
01:10:19 <Phantom_Hoover> oerjan, hilbert's axioms aren't first-order anyway
01:10:25 <oerjan> Phantom_Hoover: oh.
01:10:29 <hppavilion[1]> Phantom_Hoover: Yes, but I need to know how I can check for equivalent-length lines
01:10:45 <Phantom_Hoover> hppavilion[1], well then, as i said
01:11:18 <hppavilion[1]> Phantom_Hoover: Yes, that's what I'm going to do
01:11:31 <hppavilion[1]> Phantom_Hoover: Though I think I'll need some non-deterministic computing
01:11:37 <Phantom_Hoover> http://euclidthegame.com/Tutorial/ is a game that basically takes you through explicit constructions of a lot of these things
01:14:35 <boily> Phantom_Helloover. AAAAAAAAAURGH!
01:14:43 <boily> don't remind me of that timesink of a website!
01:18:04 <oerjan> boily: relax, have another weird al https://www.youtube.com/watch?v=bwvlbJ0h35A
01:18:43 <Phantom_Hoover> best weird al https://www.youtube.com/watch?v=Ib2Vl7JEjfc
01:20:06 <Phantom_Hoover> boily, i was just saved by its incredibly bad solution detection refusing to identify my perpendicular
01:20:51 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
01:21:52 <oerjan> (btw it needs to be watched until the end hth)
01:23:41 <boily> again with that weird issue. I get sounds, but no picture. it happens on some youtube videos for no apparent reason.
01:24:00 <boily> Phantom's video's fine, tho...
01:24:13 <oerjan> boily: darn :(
01:24:18 <boily> I know :/
01:34:28 -!- tromp has joined.
01:34:52 -!- Phantom_Hoover has quit (Remote host closed the connection).
01:36:37 -!- me4 has quit (Read error: Connection reset by peer).
01:37:14 -!- me4 has joined.
01:40:05 * boily lightly mapoles me4
01:40:10 <oerjan> another one https://www.youtube.com/watch?v=fMCwiL6MZcY
01:42:06 -!- acertain has quit (Ping timeout: 276 seconds).
01:43:36 <boily> it's not a working gramophone :D
02:08:27 -!- earendel has quit (Ping timeout: 260 seconds).
02:17:02 -!- acertain has joined.
02:21:50 -!- mad has joined.
02:23:42 <mad> I think I've figured it out
02:24:10 <mad> How to make a highly parallelizable CPU archi that can also be output from an ordinary C++ compiler
02:24:13 <boily> mellod.
02:24:33 <boily> some kind of Verilog/C++ crossover?
02:25:18 <mad> no, just an instruction set that's easy to run lots of instructions in parallel
02:27:07 <mad> you have an accumulator. every instruction writes its result to the accumulater, and also optionally to a register of the regfile
02:28:04 <mad> the instructions that don't have a dependency on the accumulator are the first instructions of each 'group'
02:29:29 -!- j-bot has joined.
02:29:30 <mad> also, each regfile register name can only be written to once, but you have an instruction to rotate regfile names and generate new ones
02:30:36 <mad> and the regfile is split into a few partitions so that values with different lifespans can be kept longer or shorter
02:31:09 <mad> so the cpu really only has 2 instructions
02:31:26 <mad> "generate N new register names"
02:31:28 <mad> and
02:31:53 <mad> "start executing a bunch of instructions at memory offset X"
02:33:00 <mad> the thing is, you can run another "start executing a bunch of instructions at memory offset Y", and you're guarenteed that it can run in parallel
02:33:35 <mad> because since every register is only written to once, you know that the group X and group Y will never write to the same registers
02:34:04 <picobit> you'll also need seperate memory segments.
02:34:16 <picobit> seperate methods of accessing I/O.
02:34:18 <mad> also if group Y reads from a register written to in group X, the register has a 'valid' flag and can simply wait until it's valid
02:34:30 <picobit> ways of guaranteeing race conditions don't happen.
02:34:38 <picobit> so.. there's a lot more than just a register file.
02:34:42 <mad> picobit : yeah, that's the catch... this solves arithmetic instructions but not really memory instructions
02:34:52 <picobit> mad: look into flow based programming.
02:35:00 <picobit> mad: that's truly a "shared nothing" paradigm.
02:35:25 <mad> actually I do have a plan for memory instructions too tho
02:36:07 <mad> memory instructions can also be instructions groups, with the catch that they can't have an accumulator
02:36:18 <mad> and they are run in-order
02:36:24 <picobit> you're basically re-implementing atomics.
02:36:31 <picobit> and threads.
02:36:49 <mad> yes but this can be output from a C++ compiler
02:37:04 <picobit> it already is.
02:37:05 <mad> there's no way llvm can auto-threadify general purpose code
02:37:19 <picobit> there's no way you can either.
02:37:29 <picobit> because why would you want to "auto-threadify" something.
02:37:37 <mad> easy
02:37:40 <picobit> I don't want my application suddenly barreling off, spawning off four threads.
02:37:49 <picobit> I want to specify those threads and have control over them.
02:37:54 <picobit> mapping them to some useful work.
02:38:05 <mad> if your cpu has N execution units
02:38:19 <mad> you can keep it busy with N "micro-threads"
02:38:41 <picobit> okay, but you're not getting the fact that code is generally meant to be explicit about concurrency and parallelism, not implicit.
02:38:46 <mad> each unit is just an ALU + regfile write port + 2 regfile read ports
02:39:48 <mad> picobit : well, no this is a design to go get the 2/3/4 parallel instructions you can get implicitly
02:39:49 <picobit> again, I don't want my prime number sieve spinning off into different threads, nor do I want any other code of mine to do so unless I explicitly specify it, and I can, and I will.. with existing threading libraries.
02:40:17 <mad> like, it's just a fancy design for an out-of-order cpu
02:40:19 <picobit> your idea isn't really that useful when this exists as a solved problem. what you should focus on is better concurrency primitives.
02:41:50 <mad> my idea only has to be more useful than an out-of-order RISC in the style of the MIPS R10000 or quad-issue Dec Alpha or quad-issue PA-Risc or the x86 equivalents (3-issue amd athlon and so forth)
02:42:29 <picobit> but.. you don't solve anything, you just succeed in the fact that "yeah, we can now, without much regard to what we're writing, spawn off threads for things that may not need them"
02:42:46 <picobit> it's not going to be useful, we have out of order execution and atomic memory accesses already.
02:42:57 -!- tromp has quit (Remote host closed the connection).
02:43:02 <picobit> focus on some interesting methods of organizing concurrent systems.
02:43:12 <mad> if it's easy to build register files with dozens of read and write port and schedule a whole bunch of execution units then my idea is useless, right
02:43:14 <picobit> believe me, you'll find some untrodden grounds.
02:43:28 <picobit> mad: yeah, we call them threads and thread local storage.
02:44:19 <picobit> by all means don't let me stop you, just bear that in mind, you're inventing something that already exists.
02:44:20 <mad> picobit : If I was looking at a highly threadable load, then I'd go for a totally different design
02:44:39 <picobit> it's not even highly threadable. show me one instance where I'd prefer implicit threading.
02:45:07 <picobit> and by implicit, I mean "I don't have control over it and the compiler will automagically do it for me."
02:45:10 <mad> like, if you have tons of explicit threads, you only need a 2-issue in-order cpu with lots of cores and hyper threading
02:45:17 <mad> that's what the SPARC does
02:45:26 <picobit> okay.
02:45:30 <mad> if anything stalls, move on to next thread
02:45:40 <mad> solves a ton of CPU design problems
02:45:41 <picobit> annnnnnnnd your implicit threading model would be akin tooooo...
02:45:59 <mad> it works for SPARC because it runs servers with dozens of concurrent programs
02:46:11 <picobit> yyyup, and we specify explicit threads.
02:46:16 <picobit> saving state, switching, etc.
02:47:02 <mad> my 'implicit threading' model is more like an attempt at doing hardware SSA
02:47:34 <picobit> ..static security analysis?
02:47:42 <picobit> :P
02:47:56 <picobit> joking, but okay.
02:48:27 <mad> it's only a way to reduce the number of regfile reads and writes
02:48:30 -!- tromp has joined.
02:48:31 <mad> like
02:48:36 <mad> if you have a sequence like
02:48:49 <mad> sub r0, r1
02:48:54 <mad> mul r0, r2
02:48:57 <mad> sar r0, 16
02:49:05 <mad> add r0, r1
02:49:08 <picobit> you want to automatically parallelize calculations by duplicating regfiles.
02:49:14 <mad> mul r0, r8
02:49:20 <mad> sar r0, 16
02:49:23 <picobit> and running the same operations over those regfiles with local names.
02:49:49 <picobit> that's all well and good but be explicit in the how and where. we already have this kind of thing.
02:49:55 <mad> well, first step is that I'd use an accumulator
02:50:13 <mad> sub ac, r0, r1
02:50:20 <mad> mul ac, r2
02:50:24 <mad> sar ac, 16
02:50:26 <mad> etc...
02:51:02 <mad> excluding that the accumulator is also a register, it only reads from the regfile once per instruction except the first one
02:51:15 <mad> and it only writes to the regfile once at the end to store the result
02:51:27 <picobit> have fun
02:51:38 <mad> instead of doing 2 reads 1 write per op like on the MIPS
02:52:30 <mad> now, that instruction sequence is serial
02:52:39 <mad> it cannot be parallelized no matter how
02:53:05 -!- XorSwap has joined.
02:53:32 <mad> so that cpu is slower than a pentium or a dual issue ARM as of yet
02:56:17 <mad> picobit : I'm sorry that this doesn't fall into your preferred topic of parallelization primitives
02:56:48 <picobit> mad: don't be offended by my criticism of your idea. any idea worth its salt will be criticised.
02:57:45 <mad> well, it's just a different design area
02:57:49 <mad> and a different fight
02:59:34 <mad> if you add the requirement of specially written c++ code to get the extra performance, then the mainstream approach is probably a combination of SIMD (SSE) and multi-threading
02:59:45 <mad> or giving up on c++ and doing GPU calculation
03:00:22 <mad> or potentially using a DSP architecture if it benefits from low-power/embedded stuff and is math-y
03:00:54 <mad> or using an FPGA
03:01:26 <mad> but that's all lower level than C++
03:04:20 <mad> the challenge I'm interested in is running single threaded C++ fast... does that make sense? :3
03:04:53 <mad> and potentially higher level languages, which all benefit from the same stuff as C++ generally
03:08:44 -!- boily has quit (Quit: NAMED CHICKEN).
03:11:30 <oerjan> Mike, obviously.
03:14:19 <mad> picobit : basically you're criticising the whole idea of having fewer more powerful cores, rather than lots of small slower cores :D
03:15:26 <picobit> mad: no, I'm criticising your idea of what parallelism in terms of both execution and programming is supposed to mean.
03:15:31 <picobit> not interested in discussing it further.
03:15:37 <picobit> so, cheers.
03:19:38 -!- earendel has joined.
03:20:08 <mad> it's like, you throw me off tracks then lose interest... not happy... but anyhow
03:26:16 -!- picobit has quit (Ping timeout: 264 seconds).
03:26:52 -!- j-bot has quit (Ping timeout: 264 seconds).
03:26:52 -!- oerjan has quit (Ping timeout: 264 seconds).
03:27:00 -!- oerjan has joined.
03:27:11 <oerjan> eep
03:27:29 -!- centrinia has quit (Ping timeout: 264 seconds).
03:28:12 -!- picobit has joined.
03:34:12 <coppro> `twilight
03:34:20 <coppro> `doomsday
03:34:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: twilight: not found
03:34:22 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: doomsday: not found
03:36:04 <coppro> `wisdom facebook
03:36:09 <HackEgo> facebook/Facebook is Taneb's face collection.
03:36:27 <coppro> `wisdom twilight
03:36:28 <HackEgo> ​/cat: : No such file or directory
03:38:35 -!- bb010g_ has quit.
03:41:26 -!- FreeFull has quit.
03:43:25 -!- centrinia has joined.
03:46:05 -!- bb010g has joined.
03:54:46 <\oren\> DAMN!
03:55:03 <\oren\> It was flying really well until it exploded
03:57:54 -!- iconmaster has quit (Ping timeout: 260 seconds).
04:00:23 <\oren\> but rather than changing the configuration, I'll just say don't pull more than 12 gees in this
04:03:19 -!- MDude has joined.
04:15:20 <zzo38> One thing I have design is the instruction set where other than reading the instruction opcode, there is up to one additional memory access which may be a read or write depending on the instruction (whether or not such memory access exists at all depends on the addressing mode, which is independent of the instruction code number)
04:20:23 -!- hppavilion[1] has joined.
04:20:33 <hppavilion[1]> /join #totallynormal
04:20:38 -!- hppavilion[1] has left ("Leaving").
04:20:43 -!- hppavilion[1] has joined.
04:20:45 <hppavilion[1]> Whoops
04:23:03 <hppavilion[1]> "Java syntax borrows heavily from C and C++, but object-oriented features are modeled after Smalltalk and Objective-C.[11]"
04:23:13 <hppavilion[1]> Now image s/C and C++/something else/
04:23:37 <hppavilion[1]> "Java syntax borrows heavily from brainfuck and Befunge-98, but object-oriented features are modeled after Smalltalk and Objective-C."
04:29:22 <zzo38> And then also s/Smalltalk and Objective-C/something else/ too
04:29:31 <hppavilion[1]> zzo38: No, we have to keep one part
04:29:37 <hppavilion[1]> zzo38: Or else it becomes less fun
04:29:38 <zzo38> OK
04:29:55 <hppavilion[1]> zzo38: What would be a BFJava Hello World?
04:30:20 <zzo38> It doesn't necessarily have to mean both Smalltalk and Objective-C, or to add a new one to those two
04:30:36 <hppavilion[1]> zzo38: True
04:34:03 <hppavilion[1]> {'HELLO WORLD'($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)(_::^::>)($::~::.)}
04:34:41 <hppavilion[1]> zzo38: Something like that
04:35:03 <hppavilion[1]> $ is sys, $::~ is stdout, $::~::. is sys.stdout.write
04:35:27 <hppavilion[1]> _ is tape, _::^ is current tape cell, _::^::> is... hm..
04:35:40 <hppavilion[1]> s/_::^/_/
04:37:08 -!- centrinia has quit (Quit: Leaving).
04:43:58 -!- centrinia has joined.
04:44:54 -!- j-bot has joined.
04:50:52 <hppavilion[1]> I have now been quieted on ##programming
04:51:50 <mad> :o
04:51:59 <hppavilion[1]> mad: Yep xD
05:01:07 -!- hppavilion[1] has quit (Ping timeout: 244 seconds).
05:04:55 -!- hppavilion[1] has joined.
05:08:26 <\oren\> so far my attempts to program in kOS have mostly resulted in crashes and expolsions
05:10:03 <hppavilion[1]> \oren\: kOS?
05:10:33 <hppavilion[1]> \oren\: The mythical Canadian wrapper?
05:10:37 <hppavilion[1]> *rapper
05:11:13 <hppavilion[1]> \oren\: Kid Operating System?
05:12:20 <hppavilion[1]> \oren\: Oh, looks like that Wikipedia article was deleted because it was someone's personal project, not a noteworthy thing
05:14:53 <hppavilion[1]> \oren\: Oh, is it https://www.reddit.com/r/kos?
05:18:02 -!- tromp has quit (Remote host closed the connection).
05:18:50 <Yurume_> that sounds like chaOS
05:21:03 <hppavilion[1]> Yurume_: Excellent puint.
05:23:13 <Hoolootwo> knightOS?
05:27:46 <hppavilion[1]> ...
05:27:54 <hppavilion[1]> Kerbal arm skin color is #84D455
05:31:10 <hppavilion[1]> Wait, or BADA55
05:33:06 <\oren\> kerbal operation system
05:33:25 <\oren\> and so far, I can't program a launcher
05:37:24 <\oren\> which means all my probes are going to need to have constant radio signal, so I have to launch a ton of relay satellites
05:37:45 <hppavilion[1]> \oren\: Um. What's kerbal operation system?
05:37:57 <hppavilion[1]> \oren\: Please tell me it isn't a Billiard Ball Computer that uses gravity.
05:39:51 -!- picobit has quit (Ping timeout: 244 seconds).
05:40:13 <\oren\> no, it's a mod for the game which allows you to program your spacecraft to function autonomously
05:45:06 -!- oerjan has quit (Quit: Nite).
05:45:48 -!- XorSwap has quit (Quit: Leaving).
05:52:36 -!- lleu has quit (Quit: That's what she said).
06:00:11 <hppavilion[1]> \oren\: Ah, good
06:04:02 <\oren\> hppavilion[1]: do you ksp?
06:04:34 <hppavilion[1]> \oren\: I have it, but I don't use it often
06:05:49 <\oren\> ah. Soon I'm going to release my mod (like, probably tomorrow)
06:08:04 <\oren\> so it will add some parts that I think should have been in stock
06:08:31 <\oren\> It will add RCS thrusters that run on oxidizer
06:09:07 <\oren\> and a fuel cell that uses intake ait
06:09:12 <\oren\> *air
06:10:16 <\oren\> and saceplane parts with only fuel and no oxidizer in them
06:13:09 <\oren\> basically giving more latitude to make cool planes
06:16:23 <\oren\> and a fuel cell that runs on fuel and intake air allows to make cars that run like real cars kind of
06:18:35 -!- tromp has joined.
06:22:10 <\oren\> ooh. maybe I should add a resource called "MechanicalPower", parts that produce it from fuel and parts that use it?
06:22:24 <\oren\> That'll be in the next release I guess
06:22:44 -!- tromp has quit (Ping timeout: 244 seconds).
06:27:01 <hppavilion[1]> Oooh, a programming language that crashes and raises an error when you program badly
06:27:04 <hppavilion[1]> Or at least a warning
06:31:24 <\oren\> don't most programming languages do that to some extent? especially C?
06:31:48 <pikhq> Nah, C doesn't reliably crash when you program badly.
06:32:00 <pikhq> Mostly what it does is behave very weirdly.
06:32:14 <pikhq> And especially bad programmers then rely on the weirdness and are surprised when it breaks.
06:33:02 -!- Alcest has joined.
06:42:10 -!- Alcest has quit (K-Lined).
06:44:59 <mad> "gcc writers examine the C spec under magnifying glass to find a flaw that gets 0.1% extra speed but breaks in a corner case when compiled on non-x86"
06:45:26 <hppavilion[1]> \oren\: Perhaps a punishment is enacted if you don't adhere to the style guide? xD
06:45:45 <hppavilion[1]> Like the compiler won't work for 1.1^count minutes
06:46:25 <hppavilion[1]> Where count is incremented every time you try to compile without adhering to some style guide (described in a .sg file) and reset when you do
06:46:32 <mad> like how they figured that technically the spec allows them to crash if an int wraps
06:47:04 <mad> and of course the whole strict aliasing business
06:47:08 <zzo38> They could add options and attributes and so on in order to adjust such thing
06:47:26 <mad> there ARE options to turn off strict aliasing and the like
06:48:04 <zzo38> You might want to adjust them with more specifics though
06:48:07 <\oren\> -fno-strict-aliasing -fwrapv
06:48:10 <hppavilion[1]> mad: Wait, how does integer overflow result in crashes?
06:48:11 <zzo38> Rather than just on/off general.
06:48:50 <\oren\> hppavilion[1]: the c spec doesn't define what '\x7F'+1 is
06:48:59 <hppavilion[1]> What is the most terrifying-but-slightly-cryptic command name?
06:49:05 <hppavilion[1]> Fictitious or real
06:49:05 <mad> hppavilion[1] : it doesn't
06:49:07 <mad> but
06:49:09 <hppavilion[1]> Reality warping is allowed
06:50:06 <\oren\> Hehehe I would be a TERRIFYING pilot if I worked for an airline
06:50:08 <mad> they pretend that integers never overflow for the optimization of replacing 32bit counter values with 64bit values so that the cpu doesn't have to promote the value to 64bits every time on x64
06:50:36 <mad> as far as I can tell
06:50:53 <hppavilion[1]> Oooh, here's an idea
06:50:58 <mad> so code that works in 32bits might not work anymore if ints wrap
06:51:02 <hppavilion[1]> A language with both `odd' and `even' types
06:51:36 <hppavilion[1]> Also, I think languages with ADTs should have a `complex' keyword/ADT/whatever
06:51:57 <zzo38> At least in LLVM you could control type-based aliasing with more details, as well as doing other stuff that otherwise is messy or whatever in C, although there are some other problems with LLVM
07:10:28 <pikhq> \oren\: Depending on the implementations' other choices, there are two possible meanings of that.
07:10:35 <pikhq> It is either '\x80' or UB.
07:10:55 <pikhq> C doesn't say char is signed, C says char *may* be signed.
07:11:26 <pikhq> Also, char isn't necessarily 8 bits. :)
07:12:57 <pikhq> Also also, it's not just "technically": the spec literally says "signed overflow is undefined behavior".
07:13:14 <pikhq> It's not just a weird edge case, it spells it out for you that it is not defined behavior.
07:13:23 <pikhq> Just like the type aliasing rules.
07:14:09 <zzo38> I don't need signed overflow anyways in my programs generally, as I would use unsigned numbers in the cases where overflow wrapping would be useful anyways it would generally be more useful to use unsigned numbers in such cases.
07:14:38 <pikhq> Yeah. And C defines pretty exactly what unsigned overflow does.
07:15:46 <mad> char is like
07:16:00 <mad> it went signed on some places, unsigned on others, can't be fixed
07:16:08 <mad> everybody loses
07:16:11 <pikhq> Yup. So there's three variants of it.
07:16:19 <pikhq> There's signed char, unsigned char, and char.
07:16:22 <zzo38> You can explicitly set "signed char" and "unsigned char" when it cares
07:16:23 <pikhq> And now we're stuck with it.
07:16:25 <mad> it really should have been unsigned by default
07:17:00 <zzo38> But in some cases it does not matter if no arithmetic is being performed on it
07:17:01 <mad> I can think of one case for signed overflow
07:17:12 <mad> getting 0 when last bit is 0
07:17:20 <pikhq> Eh, for symmetry I would've preferred signed char to be default, but string literals to be unsigned char* (and all the C functions, and also the rule that char* can alias anything).
07:17:25 <mad> and 0xffffffff (-1) when last bit is 1
07:17:45 <mad> val << 31 >> 31
07:18:17 <pikhq> Bit shifting beyond the type's range like that on signed values is *also* UB. :)
07:18:29 <mad> how about decoding snes ADPCM
07:18:33 <mad> (4bit signed)
07:18:33 <pikhq> The reason is, well, frankly quite silly.
07:18:34 -!- centrinia has quit (Ping timeout: 260 seconds).
07:18:43 <mad> with overflow: nibble << 28 >> 28
07:18:51 <pikhq> C does not require implementations to have 2's complement arithmetic.
07:19:07 <zzo38> There are other ways to do sign extend anyways
07:19:09 <mad> ok please tell me what non-2's complement platforms are left
07:19:20 <pikhq> I didn't say it was reasonable.
07:19:26 <pikhq> I in fact said it was quite silly.
07:19:31 <mad> it's like
07:19:37 <mad> well, C supports ebcdic
07:20:07 <pikhq> But that's the reason. C quite specifically wants to support 1's complement and sign-and-magnitude arithmetic.
07:20:22 <pikhq> To be fair, there at least *are* users of C with EBCDIC.
07:20:25 <zzo38> Two's complement is the only mathematically reasonable way anyways
07:20:34 <pikhq> Which is utterly unlike the other sign representations.
07:21:33 <mad> I think char should be unsigned becaucause signed char is fairly rare imho
07:21:37 <pikhq> zzo38: You're correct about that, and I am damned glad that's what we settled on.
07:22:02 <mad> basically small numbers such as 8 bit sound sample data (which is unsigned usually but signed makes more sense)
07:22:17 <mad> I've also used signed 8 bit in like compressed FFT data
07:22:22 <pikhq> Much like how IEEE appears to be the only reasonable floating point representation.
07:22:31 <zzo38> mad: You could write "typedef unsigned char byte;" if you want to abbreviate unsigned char I guess, or else to use #define
07:22:34 <mad> IEEE has its quirks
07:22:38 <pikhq> (mostly due to being the only one with usable semantics)
07:22:45 <pikhq> mad: Sure, but the alternatives are worse.
07:22:50 <mad> zzo38 : uint8_t
07:23:05 <zzo38> mad: Yes or like that too
07:23:06 <mad> zzo38 : it's the one in that standard types header
07:23:12 <pikhq> stdint.h
07:23:23 <mad> yes stdint.h
07:23:24 <\oren\> just use -fwrapv
07:23:41 <pikhq> Which is also nice because if you compile on an utterly unreasonable system, your code just doesn't compile instead of running and failing horribly.
07:23:50 <mad> message to all people who use myLibSInt32 types and the like: use stdint.h
07:24:09 <pikhq> (reportedly there are such unreasonable systems, called "DSPs".)
07:24:12 <pikhq> Yeah, seriously.
07:24:23 <zzo38> pikhq: The case of floating points is different than the case of integers though. In the case of integers, two's complement is more mathematically correct, but in the case of floating point the representation isn't really mathematically correct but rather has certain properties of implementation, so it is different
07:24:27 <pikhq> Now that MSVC even supports it, there's literally no reason not to.
07:24:34 <mad> if you're on an unreasonable system, you're on a DSP and it's not like you're going to compile quake on that :D
07:24:55 <mad> or, like, arduino, which is 16bit C for some reason?
07:25:45 <zzo38> Two's complement is valid even for unbounded numbers
07:26:10 <mad> zzo38 : the real reason why IEEE is hard to beat is that it's what you can actually build in electronics
07:26:29 <mad> alternatives just don't translate into hw multipliers etc
07:26:54 -!- hppavilion[2] has joined.
07:27:05 <mad> although you could say that there's a practical alternative... "IEEE except all the slow values like inf nan denormals are replaced by 0"
07:27:29 <zzo38> mad: Yes, so there is the reason like that. What I have said is just that it isn't quite the same reason as I have described at first, although the reason having to do with electronics does help with both two's complement integers and IEEE floating point.
07:27:43 <zzo38> (The mathematical reason I described at first was only for integers though)
07:28:01 <mad> btw, have you read about unums v2
07:28:03 -!- j-bot has quit (Ping timeout: 264 seconds).
07:28:17 <zzo38> I don't know what that is
07:29:40 <mad> trying to find the paper
07:29:52 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
07:30:05 -!- John420 has joined.
07:30:17 <mad> http://www.johngustafson.net/presentations/Multicore2016-JLG.pdf
07:30:34 <zzo38> My own C programs are design for ASCII systems, although you might be able to run the program on EBCDIC systems by use of ASCII emulator I suppose; also by use of emulator you can even run program that use some feature not supported on the target system too in some cases.
07:30:59 <mad> v2 has fixed size numbers so it's a lot more reasonable... but: I'm pretty sure this doesn't scale to 16bit and 32bit numbers
07:31:20 <mad> ebcdic systems have 8bit bytes
07:31:50 <mad> if you simply ignore the platform's encoding then ebcdic disappears
07:33:45 <pikhq> If you don't rely on characters being particular numeric values, EBCDIC vs. ASCII doesn't really matter for most programs.
07:33:56 <pikhq> The big thing that causes issues is network programs.
07:34:34 <zzo38> TeX has stuff built-in in order to ensure that it will work with ASCII coding regardless of what coding the system it runs on uses
07:34:46 <pikhq> (FWIW, the '0' + x thing to get digits does work on EBCDIC. And *any* compliant C system, in fact. It's one of the few guarantees that C grants regarding the charset.)
07:35:38 <mad> I'm not even at that level of cross platformity
07:35:52 <mad> some of the code I've written has this in it:
07:36:05 <mad> #ifdef __BIG_ENDIAN
07:36:20 <mad> #error Code big endian support
07:36:22 <mad> #endif
07:36:35 <pikhq> Frankly, I just wish that the C spec would stop permitting utterly absurd implementations and require two's complement and UTF-8.
07:37:11 <pikhq> Allow me to grumble by listing the systems that people should care about that also don't do UTF-8: Windows
07:37:13 <mad> utf-8 libc in msvc would be a timesaver
07:37:15 <zzo38> I agree that it should require two's complement but should not require UTF-8 it should require ASCII (of which UTF-8 is a superset, so UTF-8 systems are compatible)
07:37:15 <mad> yes
07:37:23 <mad> like
07:37:32 <mad> the utf-16 stuff in windows is ridiculous
07:37:45 <pikhq> zzo38: I would be happy with only requiring UTF-8 if wchar_t supports anything beyond ASCII.
07:38:13 <mad> because of it we have a type that's typedefed to std::wstring on windows and std::string on osx
07:38:35 <mad> with conversion functions that do the whole utf16<->8 thing but are nops on osx
07:38:52 <zzo38> I don't like wchar_t anyways
07:39:18 <mad> wchar_t is useful in some cases
07:39:46 <mad> mostly string processing on languages that aren't english but don't have characters past utf-16 either
07:40:16 <pikhq> Note also that MSVC's implementation of wchar_t is non-compliant.
07:40:40 <pikhq> wchar_t is specified such that you can't have a code unit composed of two wchar_t's.
07:40:43 <zzo38> Yes, although my own opinion is that it should not be a built-in feature.
07:41:01 <pikhq> i.e. if you insist on having a 16-bit wchar_t, you are required by ISO C to only have UCS-2.
07:41:36 <mad> I wonder how many programs break if you give them >64k unicode chars
07:41:53 <pikhq> Depends. Probably a lot on Windows.
07:42:10 <pikhq> Not that many on Linux or OS X though; both of those have 32-bit wchar_t.
07:42:32 <pikhq> And programmers that mostly just go "eh, char's UTF-8. Whatever." and it all works.
07:42:57 <mad> reminds me of that program that used this library
07:43:11 <zzo38> I will implement my own UTF-8 parsing in programs that need Unicode, which is rare anyways.
07:43:21 <mad> libiconv
07:43:29 <zzo38> (In many cases just being 8-bit clean is good enough)
07:43:49 <zzo38> (And then it works with any kind of extended ASCII code which is compatible with ASCII)
07:43:56 <mad> problem: libiconv is lgpl
07:44:39 <pikhq> ... is only needed on Windows because Windows can't be assed to implement even the subset of POSIX that works reasonably in terms of Win32 semantics.
07:44:49 -!- John420 has quit (Ping timeout: 260 seconds).
07:45:25 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
07:45:35 <mad> the program in question used some obscure japanese encoding
07:45:44 <mad> as in: not sjis
07:45:51 <pikhq> (I mean seriously, not having strdup? Granted that it's a simple function, but WHY?!?)
07:45:55 <pikhq> EUC-JP?
07:45:59 <pikhq> Though that's not that obscure.
07:46:02 <mad> yes euc-jp
07:46:07 <mad> dude
07:46:22 <mad> most programs that support like every crazy encoding
07:46:27 <mad> do not support euc-jp
07:46:43 <pikhq> Weird. It's used pretty heavily on the Japanese web.
07:46:53 <pikhq> Not as much as Shift-JIS, but still.
07:46:57 <mad> to even read the comments in the freaking code I had to import it in, like, open office
07:47:38 <pikhq> *Granted* that you basically won't see it outside of websites and Unix systems with really obstinate admins, but still.
07:48:15 <mad> also like all the string constants
07:48:19 <mad> were in that encoding
07:48:31 <pikhq> It was probably an old Unix program.
07:48:47 <mad> and it did all sorts of weird conversions so I didn't want to touch it
07:48:57 <mad> sorta yeah
07:49:00 <pikhq> Prior to Unicode's popularity, all Japanese Unix systems used EUC-JP.
07:49:04 <mad> well
07:49:09 <mad> it supported 3 encodings
07:49:28 <mad> eucjp, sjis and utf8
07:49:46 <mad> except all the dictionary data had to be in the matching encoding
07:49:52 <mad> and all the input/output
07:50:14 <mad> and basically the win32 version had sjis data instead
07:50:23 <mad> but I didn't have the source to that
07:51:31 <zzo38> There is also my own text character encoding design which is called UTCE and is meant for terminal displays rather than for typesetting anyways.
07:51:44 <mad> also: no way that I'll trust source code encoding
07:52:08 <pikhq> Legacy encodings. Sigh.
07:52:17 <mad> in theory it should be 'as is' but I'm not testing it
07:52:43 <mad> well, usually for C++ code it's really just latin-1
07:52:49 <mad> which is really cp-1252whatever
07:52:56 <zzo38> I always write the source code in ASCII
07:53:27 <zzo38> Therefore avoiding the problem to consider whether it is Latin-1 or UTF-8 or PC or whatever else it might be.
07:53:41 <mad> zzo38 : Obviously you haven't had to encode a list of french words that don't have liaison into c++ code
07:53:55 <pikhq> A reasonable approach if you can get away with it.
07:54:05 <pikhq> Unfortunately, not all is English.
07:55:01 <zzo38> That is true I have not had to do that, although in such a case I may have used escapes and then the code would contain whatever is needed to deal with whatever encoding it uses anyways so can avoid it, or else to use an external file for the list of words in case it will be extended later on too
07:55:12 <mad> it's like... is the svn client going to decide to reencode behind my back or something?
07:55:17 <mad> what about xcode?
07:55:46 <pikhq> Yeah... Everything but UTF-8 can go die in a fire.
07:56:04 <pikhq> Especially things that aren't supersets of ASCII.
07:56:28 <pikhq> But really, all of the legacy charsets should just go away.
07:56:49 <zzo38> There are many problem with Unicode
07:56:55 <mad> I've actually used latin-1 encoding for a good part of the french processing stuff
07:57:01 <mad> so it's not totally useless
07:57:03 <mad> but... yeah
07:57:14 <pikhq> Latin-1, or as I prefer calling it, UCS-1. :P
07:57:23 <mad> windows cp-1252
07:57:30 <mad> is the real name
07:57:48 <zzo38> Windows 1252 though isn't quite ISO-8859-1
07:57:54 <pikhq> zzo38: Yes, but they are vastly outweighed by the problems of having a wide number of other incompatible charsets, some of which have the *exact same problems*.
07:58:06 <mad> yes, windows 1252 has useful chars from 0x80 to 0x9f
07:58:14 <mad> instead of more totally useless control characters
07:58:15 <zzo38> pikhq: That is true, some do have the same problem, and sometimes additional problems
07:58:24 <pikhq> I admit I'd like a nicer charset, but it's hard to say exactly how to get there.
07:58:34 <zzo38> But converting raw 8-bit data to UTF-8 is also same as converting ISO-8859-1 to Unicode.
07:58:47 <pikhq> And at least UTF-8 appears to mostly fit peoples' use cases and actually freaking work.
07:58:48 <zzo38> pikhq: Well I have made UTCE
07:59:01 <mad> zzo38 : except for the windows-1252 specific characters
07:59:09 -!- lambda-11235 has quit (Quit: Bye).
07:59:16 <zzo38> mad: Yes but then it isn't ISO-8859-1
07:59:33 <mad> if it's labeled as latin-1, it's not latin-1
07:59:40 <mad> it's really windows-1252
07:59:49 <pikhq> That's actually in the HTML-5 spec.
07:59:59 <pikhq> Which... matches real-world usage, as much as I hate it.
08:00:03 <mad> nobody actually uses the 'real' latin-1 with the 32 control characters
08:00:24 <zzo38> (You can convert UTCE to/from Unicode, although it is lossy either way, due to each missing characters of the other, some characters being ambiguous, and character widths sometimes differing)
08:00:25 <mad> because who the hell needs control characters
08:00:56 <zzo38> I use ASCII control characters in some applications, although that won't cause a problem with the C1 controls anyways since they aren't really ASCII
08:01:04 <mad> and basically they forgot œ in latin-1
08:01:20 <mad> so they snuck it into cp-1252
08:01:43 <zzo38> mad: That is a good correction yes, but it doesn't make it real ISO-8859-1
08:01:53 <pikhq> zzo38: The ASCII control characters will basically work regardless because, uh, I think everyone agrees on 'em.
08:01:54 <mad> nobody uses the real iso-8859-1
08:01:57 <pikhq> Even if ASCII doesn't.
08:01:58 <pikhq> :)
08:02:00 <mad> it's not a valid encoding
08:02:08 <mad> nobody wants it
08:02:57 <pikhq> Pretty much.
08:03:30 <zzo38> OK, although the command "utftovlq 81" converts raw 8-bit data to UTF-8, which in terms of Unicode text is converting the real ISO-8859-1 into Unicode so that is what it does, whether you want it to or not (you can use an external table to use custom conversion codes though)
08:03:57 <mad> it will break the day some guy writes œ in the text
08:04:28 <zzo38> Unless the program is being used incorrectly, it won't.
08:04:35 <mad> or €
08:04:51 <mad> like, if you have 8-bit data
08:05:05 <mad> from western european languages
08:06:20 <mad> the one situation that it happens is that it's the default 8-bit encoding for these languages since basically forever
08:06:33 <mad> that encoding is cp-1252
08:06:35 <zzo38> The encoding "8" of utftovlq corresponds to raw 8-bit data and does not propose specific meanings to it. If you want specific translations such as CP-1252 then you should use the "T" encoding type instead, in which case you will need to provide the encoding table file.
08:06:58 <pikhq> mad: Well, not "forever"...
08:07:12 <pikhq> Admittedly, the one they had before it is an old DOS codepage that *nobody* uses anymore.
08:07:18 <mad> right
08:07:22 <zzo38> Therefore trying to use "utftovlq 81" to convert Windows-1252 to Unicode is wrong
08:07:50 <zzo38> I use the PC character set though sometimes, such as when I need 8-bit text, though
08:07:54 <mad> zzo38 : so it only encodes stuff that uses the first 256 unicode codepoints
08:08:00 <mad> which is an encoding that nobody uses
08:08:19 <mad> pikhq : right, though that was tailored to different needs :3
08:08:32 <mad> gotta have all those box drawing characters
08:09:21 <zzo38> mad: It does not actually impose that the UTF-8 data is Unicode codepoints either; it just treats the data as a list of 36-bit unsigned integers.
08:10:06 <zzo38> However the code types "u" and "U" are UTF-16 and deal with surrogates properly. The code types "w" and "W" however are raw 16-bit data, not UTF-16.
08:10:36 <mad> anyhow
08:10:44 -!- J_Arcane has quit (Ping timeout: 244 seconds).
08:11:08 <zzo38> Therefore "utftovlq u1" will convert Unicode text from UTF-16 to UTF-8. If you instead write "utftovlq w1" you will get what is called CESU-8.
08:12:43 <zzo38> (Note however that "utftovlq 1u | utftovlq u1" will convert any Unicode text in UTF-8 that happens to be CESU-8 into proper UTF-8, while leaving proper UTF-8 as is, so the input may be mixed.)
08:14:32 -!- J_Arcane has joined.
08:15:10 <mad> I wonder if it would be possible to have a system that draws letters from the general characteristics of the font, rather than having a vectorial contour for each letter
08:15:51 <mad> so that if you had, say, a weird cyrillic letter in the text in chechen or something, it would automatically figure out how to do it in the style of the font
08:16:25 <mad> like you'd say "this is how a vertical stroke with serifs is done" and it would automatically combine strokes
08:16:43 <\oren\> Oh. I think that exists for chinese
08:16:45 <zzo38> Something like METAFONT can do similar things but would require the font to be precompiled anyways
08:17:38 <zzo38> If you modify the "vertical stroke with serifs" subroutine and then recompile it then you can get the version with different styles.
08:18:40 -!- tromp has joined.
08:22:26 <zzo38> So, such things already exists
08:23:19 -!- tromp has quit (Ping timeout: 260 seconds).
08:24:03 <zzo38> (It is sometimes said that METAFONT does not do outlines and only does drawing with pens of specified shapes; actually it can do both.)
08:28:32 -!- hppavilion[2] has joined.
08:41:50 -!- mad has quit (Quit: Pics or it didn't happen).
08:46:30 <zzo38> This sentence contains "this sentence" twice.
08:47:24 -!- j-bot has joined.
08:59:08 -!- bb010g has quit (Quit: Connection closed for inactivity).
09:03:32 <rdococ> This sentence contains "This sentence contains "This sentence contains "This sentence contains "This sentence contains "
09:08:28 <rdococ> This sentence isn't not false.
09:09:16 <rdococ> Bananas dananas.
09:09:54 -!- AnotherTest has joined.
09:19:58 -!- tromp has joined.
09:24:47 -!- tromp has quit (Ping timeout: 260 seconds).
10:38:15 -!- carado has quit (Quit: Leaving).
11:05:33 -!- Reece` has joined.
11:28:04 -!- dos has joined.
11:31:12 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
11:36:31 -!- Reece` has quit (Read error: Connection reset by peer).
12:17:43 -!- Phantom_Hoover has joined.
12:28:45 -!- idris-bot has joined.
12:29:17 -!- hppavilion[2] has joined.
12:32:16 -!- dos has quit (Ping timeout: 264 seconds).
12:32:16 -!- j-bot has quit (Ping timeout: 264 seconds).
12:52:26 -!- dingbat has quit (Quit: Connection closed for inactivity).
12:57:29 -!- J_Arcane has quit (Ping timeout: 244 seconds).
12:59:12 -!- J_Arcane has joined.
13:00:58 -!- j-bot has joined.
13:08:18 -!- FreeFull has joined.
13:08:30 -!- me4 has quit (Ping timeout: 276 seconds).
13:19:14 -!- boily has joined.
13:21:33 -!- tromp has joined.
13:21:38 <int-e> hmm, cleaning up my tmp folder... http://int-e.eu/~bf3/tmp/yesno.png is still brilliantly bad
13:26:42 -!- tromp has quit (Ping timeout: 276 seconds).
13:28:37 <myname> what is the "smallest" logic that differs between "alice likes dogs" and "alice likes every dog"?
13:31:34 <boily> int-ello, mynamello.
13:31:36 <myname> i.e. forall x: dog(x) => likes(alice,x) would be the later, but not the former
13:42:25 <int-e> . o O ( propositional logic... just assign true to "alice likes dogs" and false to "alice likes every dog" )
13:42:39 <int-e> :-P
13:43:02 <int-e> I can't answer the actual question.
13:44:00 <myname> i may need to use something like: forall x: dog(x) => possibly likes(alice,x)
13:48:10 <int-e> or just some kind of class/instance concept. forall x: instance(x, dogs) => likes(alice,x) vs. likes(alice, dogs)
13:48:49 <int-e> (downside: you can't easily intersect classes... say, speak about yellow dogs)
13:49:21 <int-e> but you can circumvent the problem of constructing a "typical" instance... or whatever it is that "alice likes dogs" really talks about.
13:50:58 <myname> dog(x)vis oretry much the same as instance(x,dog)
13:51:24 <myname> currently i translate yellow dog as dog(x)&yellow(x)
13:56:25 <int-e> perhaps one can toy with a Bourbaki style operator... likes(alice, TYPICAL x. dog(x)))
13:57:42 <myname> i thought about something like that, but i guess that is equally bad to proove as is possiblygnecessarily
13:58:55 <int-e> Grrr... "monetizing" URL shorteners are awful.
14:00:02 <int-e> (Most of the link spam I see on IRC these days uses them.)
14:00:44 <myname> don't click on linkspam hth
14:00:54 <boily> monetizing? how can you monetize an URL itself?
14:01:05 <myname> adfly
14:01:35 <myname> khey, you want to open page x, thatjs fine. here is an app before i will put you there"
14:01:40 <int-e> The URL shortener has a trampoline page that displays ads. The person who shortened the link gets a share of the resulting profit.
14:02:05 <int-e> Hmm, installing an App is even better.
14:02:45 <int-e> Anyway, it's one of those business models that only complete assholes would come up with or run... so there's a ton of these sites around.
14:03:15 <boily> yuck!
14:03:32 <myname> it's not as bad as these "want to see more nudes? make 2 million other people click this link"
14:03:51 <int-e> I disagree, it's just as bad as that.
14:04:39 * boily drinks more coffee to cleanse his mind off of these atrocities
14:07:04 <myname> i get mich less spam from these adfly thingies
14:18:13 -!- iconmaster has joined.
14:23:40 <boily> `relcome iconmaster
14:23:43 <Phantom_Hoover> i remember when minecraft modders started trying to monetise adfly
14:24:07 <HackEgo> iconmaster: 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.)
14:24:37 <Phantom_Hoover> and when people started pointing out "this site is known to serve malware, we're not using it" they started massive drama and started making public blacklists and shit
14:26:51 -!- boily has quit (Quit: POCKET CHICKEN).
14:26:56 <iconmaster> huh wha
14:27:36 <iconmaster> Nice new colors, boily
14:28:11 <iconmaster> And yeah, I recall that whole adfly thing, Phantom_Hoover. Hated the site. Glad people use CurseForge more these days.
14:39:35 <int-e> new colors?
14:39:48 <int-e> oh, `relcome
14:40:12 <int-e> (I don't see those)
14:57:05 -!- jaboja has joined.
15:08:37 -!- picobit has joined.
15:16:28 -!- J_Arcane has quit (Ping timeout: 244 seconds).
15:34:27 -!- J_Arcane has joined.
15:35:00 -!- j-bot has quit (Remote host closed the connection).
15:35:10 -!- j-bot has joined.
15:51:02 -!- carado has joined.
15:57:27 -!- lleu has joined.
16:05:23 <coppro> `quote
16:05:24 <coppro> `quote
16:05:25 <coppro> `quote
16:05:26 <coppro> `quote
16:05:27 <coppro> `quote
16:05:50 <int-e> ....lovely spam, oh wonderful spam...
16:06:45 <HackEgo> 1213) <boily> I got my girlfriend through the previous job's intranet IRC channel, so I don't see how the two can conflict...
16:06:46 <HackEgo> 689) <fizzie> fungot: Yeah, "fungott" would [...] remind people of elliott. <fungot> fizzie: now that could be nice for a simple language can be used
16:06:46 <HackEgo> 4) <Warrigal> GKennethR: he should be told that you should always ask someone before killing them.
16:06:46 <HackEgo> 161) <elliott> Vorpal loves the sodomy. <Vorpal> elliott, sure why not
16:06:46 <HackEgo> 1037) <kmc> would not be surprised to find out this tumblr is guerilla marketing by wolfram co to sell mathematica to stoners
16:08:32 <coppro> `addquote <coppro> `quote <coppro> `quote <coppro> `quote <coppro> `quote <int-e> ....lovely spam, oh wonderful spam...
16:08:39 <HackEgo> 1275) <coppro> `quote <coppro> `quote <coppro> `quote <coppro> `quote <int-e> ....lovely spam, oh wonderful spam...
16:09:23 <int-e> I should've said it 5 times.
16:10:36 <int-e> (or better, quote 5 different lines of that skit)
16:10:45 <coppro> 1213 lacks context
16:12:05 <int-e> Does it? My interpretation is that the conflict is between the girlfriend and IRC.
16:16:04 -!- tromp has joined.
16:17:15 -!- Reece` has joined.
16:21:27 -!- jaboja has quit (Ping timeout: 264 seconds).
16:24:25 -!- p34k has joined.
16:29:30 -!- lambda-11235 has joined.
16:31:12 -!- iconmaster has quit (Ping timeout: 260 seconds).
16:39:24 -!- oerjan has joined.
16:49:08 -!- iconmaster has joined.
16:49:15 -!- ineiros_ has quit (Read error: Connection reset by peer).
16:51:35 <int-e> abridged context: <pikhq> Don't worry, all that happens when you hit 20 is you start IRCing less. <elliott> pikhq: what could possibly be a more important use of time, after all? * pikhq looks at girlfriend <boily> I got my girlfriend through the previous job's intranet IRC channel, so I don't see how the two can conflict... <elliott> pikhq: only an amateur lets that interfere with IRC time.
16:52:54 -!- earendel has quit (Quit: earendel).
16:54:09 <int-e> this is nice too... <boily> I'm completely drained, only a hollow shell of my past self.
16:54:42 -!- izabera has quit (Ping timeout: 276 seconds).
16:56:36 -!- gamemanj has joined.
16:56:51 <gamemanj> I really need to get a cloak.
16:57:07 <gamemanj> Then I can go all around the world, every day...
16:57:50 -!- tromp has quit (Remote host closed the connection).
16:58:10 <zzo38> I would expect you would need more than a cloak to do that
16:58:21 * gamemanj points at the channel topic
16:58:58 -!- oerjan has set topic: Quite puzzling | The international hub of esoteric programming language and kitten typesetting | logs: http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/?C=M;O=D | http://esolangs.org/ | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf | Note: people with cloaks will be treated as if they're from Chennai (not Madras).
16:59:02 <gamemanj> ...
17:00:08 <oerjan> PROBLEM?
17:00:45 <gamemanj> No, but I do wonder why on earth a Poetic Rock Orange Belated Linden Entity Master would exist in the first place.
17:00:57 <oerjan> next up, St Petersburg (not Leningrad)
17:02:54 <gamemanj> How far ahead have you planned this?
17:03:07 <oerjan> not very far
17:04:47 <oerjan> is Beijing (not Peking) acceptable, it's just a transcription difference...
17:05:15 <gamemanj> I'm wondering what on earth the general format is...
17:05:46 <gamemanj> Judging by the "just a transcription difference", though, you're selecting a place, then a place that is nearby or something.
17:05:46 <oerjan> well it started when someone else put Istanbul (not Constantinople) there. you might reason from that.
17:06:26 <gamemanj> One google search later...
17:06:32 <gamemanj> So, renamings.
17:07:01 <int-e> Chemnitz (not Karl-Marx-Stadt)
17:07:09 <gamemanj> London (not Londinium)
17:07:09 <oerjan> int-e: ooh, good one
17:07:26 <oerjan> gamemanj: nah a bit close. Paris (not Lutetia), maybe.
17:07:40 * oerjan knows about that because Asterix
17:08:29 <oerjan> i think this could go on for a while.
17:09:01 <gamemanj> Well, after parroting what little I know from history, I checked a wikipedia list. The full mess is: Londinium → Lundenwic → London
17:09:15 <gamemanj> Lundenwic sounds a bit further...
17:09:20 <oerjan> oh Tokyo (not Edo)
17:09:59 <oerjan> gamemanj: well those all are descended from each other, is what i mean.
17:10:06 <gamemanj> Ah, I see.
17:10:19 <gamemanj> Well, since I have the cheat-sheet up anyway...
17:10:58 <oerjan> hm beijing has had other more distinct names
17:11:02 <gamemanj> York (not Eburacum)
17:11:15 <oerjan> "Beijing, as Jicheng, was briefly the capital of the Xianbei Former Yan Kingdom."
17:12:10 <oerjan> _lots_ of distinct names, apparently.
17:18:24 <oerjan> https://en.wikipedia.org/wiki/Names_of_Beijing#Historical_names_of_Beijing
17:21:04 -!- izabera has joined.
17:22:49 <b_jonas> huh what?
17:23:00 <oerjan> b_jonas: what what?
17:23:06 <b_jonas> shachaf: what did you pbflist for? http://pbfcomics.com/ doesn't show a new strip
17:23:56 <b_jonas> helloerjan
17:27:51 <oerjan> b_jhellonas
17:28:21 <int-e> I guess brand names would be too easy. (Audi, not Horch... famous pun...)
17:30:00 <int-e> `quote itidus21
17:30:03 <HackEgo> 630) <itidus21> myndzi\: ok so one of the nastiest puzzles i suppose is... you're on death row.. you don't want to die. \ 678) <itidus21> the possession of diamonds by the bourgeois is more about establishing their bourgeoisness more than wanting a malleable metal <itidus21> oops i forgot i said diamonds instead of gold \ 688) <itidus21> ok in oth
17:30:50 <int-e> `` quote itidus21 | shuf
17:30:53 <HackEgo> 751) <itidus21> you are like the linux torvalds of quiz engines \ 789) <itidus21> and all this time I thought we were talking about postmodern analysis of junk mail delivery methods and simulations of elephant breeding patterns \ 774) <itidus21> world peace is for fascists \ 771) <itidus21> elliott___: we have been calling a book new for 2000 years
17:34:35 <gamemanj> Carbon, now in Metal form!
17:34:42 <gamemanj> Get yours today!
17:37:49 -!- tromp has joined.
17:57:31 -!- osboxes has joined.
17:59:11 <int-e> `` quote itidus21 | wc -l
17:59:13 <HackEgo> 15
17:59:18 <oerjan> today carbon, tomorrow helium
18:00:21 <int-e> hmm all I could find is this rather old news... http://phys.org/news/2013-11-three-dimensional-carbon-metallic.html
18:00:38 <oerjan> int-e: me too
18:02:07 -!- osboxes has quit (Quit: Leaving).
18:02:51 <b_jonas> int-e: um, isn't that just graphite? if I understand correctly, graphite is when each carbon atom uses three of its electrons for covalent bonds to form a planar hexagonal grid of all carbon atoms, and donates one electron for a metallic bond that ties the sheets together. how is this different?
18:04:09 <b_jonas> ah, I see, it's a stronger version with the three covalent bonds already tying together the whole thing, but all theoretical because they don't know how to synthetize.
18:04:46 <b_jonas> like those magical really tiny solid state memory thingies that are impossible to manufacture short of assembling it atom by atom
18:05:06 * oerjan [citation needed]s gamemanj
18:05:42 <int-e> b_jonas: yeah, not in particular that the red C atoms have 4 bonds
18:06:00 <int-e> so it's a really funny structure
18:06:07 <b_jonas> oh!
18:06:16 <b_jonas> but that makes it even worse, doesn't it?
18:06:29 * oerjan currently playing tatham's slant puzzle
18:06:32 <b_jonas> I mean, it would have less metallic electrons, so it would be a worse conductor probably
18:06:58 -!- ^v has quit (Ping timeout: 244 seconds).
18:07:01 <oerjan> it's not very hard any more, so it somehow becomes a speed challenge.
18:07:43 <b_jonas> don't trust me though, I'm not a chemist. ais523 is the channel chemist.
18:08:22 * oerjan once aced the highschool chemistry exam. but that was also the last time he really touched it.
18:09:48 <b_jonas> oh, I aced a few of those too, because they were usually choose-an-answer tests from a single book, so we just cheated by using a key for that book
18:09:58 <b_jonas> but that doesn't make me a chemist
18:10:01 <oerjan> this was an oral exam
18:10:06 <b_jonas> ah
18:10:09 <b_jonas> that's more difficult
18:10:22 <int-e> b_jonas: I couldn't say... there should be enough free electrons around.
18:10:24 <oerjan> my first ever
18:10:33 <oerjan> felt pretty good as i recall
18:10:34 <b_jonas> our chemistry lessons were so random I've got all possible grades
18:10:53 <b_jonas> oerjan: nice
18:11:36 <int-e> so much pressure...
18:12:03 <gamemanj> all possible? including A minus 82.47655 recurring, with potential bias 28.01GU?
18:12:43 <oerjan> gamemanj: that may not be a possible grade hth
18:12:50 <gamemanj> "may"
18:13:18 <gamemanj> that implies it's something which could be called into question, it's definitely not a possible grade
18:14:13 <oerjan> gamemanj: well i'll admit it's probably a possible grade in some hypothetical universe hth
18:14:46 <oerjan> a _very_ pedantic one.
18:26:18 -!- oerjan has quit (Quit: Later).
18:27:00 -!- picobit has quit (Ping timeout: 276 seconds).
18:38:23 -!- dingbat has joined.
18:44:14 -!- tromp has quit (Remote host closed the connection).
18:46:28 -!- atrapado has joined.
18:52:09 -!- Sgeo_ has quit (Ping timeout: 260 seconds).
18:53:32 -!- Reece` has quit (Ping timeout: 260 seconds).
19:08:51 -!- earendel has joined.
19:09:23 <zzo38> Since I have the boom of PC Technical Reference then possibly I can make up a program to emulate the IBM printer of PC.
19:10:07 <zzo38> My calculation is that the DVI units for this program should probably be 1/11880 inch (which is coarser than TeX)
19:11:17 <zzo38> Do you like this?
19:13:37 <b_jonas> zzo38: um, I don't really understand what you're saying
19:14:01 <b_jonas> why are the DVI units 1/11880 inch?
19:14:34 <zzo38> Since that divides all measurements needed to emulate it, as far as I can tell from the documentation of the printer
19:15:31 <b_jonas> I see
19:16:41 <zzo38> Do you know about the IBM printer codes? I have the book of it so hopefully I can implement it.
19:17:23 <b_jonas> zzo38: I know a little bit, because I've had an Epson matrix printer when I was young, and the manual for it, and I think it's a bit similar
19:17:55 <zzo38> Yes; I have also read Epson manual and from the IBM printer document it seems that the Epson is a superset of the IBM codes.
19:20:23 -!- picobit has joined.
19:20:55 <b_jonas> The Epson matrix printer can print formatted text with built-in or uploadable fonts, as well as bitmap graphics. It has nine pins offset iirc about one postscript point from each other, can move the paper vertically with a resolution of half of that, horizontally the points are about one postscript points wide on the paper, but it can use various higher horizontal resolutions for moving the head horizontally, with a max resolution perhaps 1/360 inch.
19:21:21 <b_jonas> zzo38: yes, Epson deliberately put an IBM printer compatibility mode in their printer.
19:21:44 -!- lambda-11235 has quit (Quit: Bye).
19:23:18 <b_jonas> Oh, but where it's the most obvious that it's derived from IBM is that its ROM fonts are cp437 encoded, and it gives a way to access all 256 characters of that encoding, even the control characters.
19:27:02 <b_jonas> I think you mentioned the IBM printer codes earlier on this channel.
19:27:38 <gamemanj> "1/11880 inch"... that's pretty small
19:27:55 <gamemanj> can someone translate into millimet(er|re)s?
19:28:13 <b_jonas> gamemanj: it's not that small, it's only 1/165 postscript points
19:28:33 <int-e> ah the days of "near letter quality"
19:28:38 <b_jonas> oh, millimeters? it's 0.002138 millimeters
19:29:36 <shachaf> b_jonas: I don't think I'd seen the latest one before.
19:30:02 <gamemanj> That's TINY! How am I supposed to use people with pencils to draw out a DVI file if the units are that tiny???
19:30:26 <b_jonas> shachaf: is "Adam 2.0" http://pbfcomics.com/274/ the latest? maybe I'm getting something wrong
19:30:34 <gamemanj> I had a great plan! It involved biscuits! And people! With pencils...
19:30:44 * gamemanj quietly sobs in the corner
19:30:52 <shachaf> b_jonas: Yes, that one.
19:31:04 <int-e> I recall a 9 pin printer that offered up to 240 dpi horizontally and 216 dpi vertically (with pins spaces 1/72in apart)
19:31:47 <int-e> I don't recall any horizontal 360 dpi resolution... but it was a Citizen (cloning some Epson)...
19:31:53 <b_jonas> int-e: that could match what I said about the Epson printer, because I don't quite recall the details
19:32:02 <b_jonas> and I don't have the manual here
19:32:27 <gamemanj> (Seriously, though, 0.002138mm is tiny. Go take out a ruler, and look at the size of a millimet(re|er). Now divide that by 500 or so. Ow.)
19:32:30 <b_jonas> In any case, you'd probably need units smaller than that horizontally to represent a mixture of the various resolutions.
19:33:20 <int-e> sure.
19:33:20 <b_jonas> gamemanj: ^ the printer doesn't have that much resolution, that's just the unit you need for a representation of what it can print in an ideal model
19:33:47 <gamemanj> Yay, so the world is sane!...now why on earth would even an ideal representation need to have that much resolution?
19:34:03 <b_jonas> gamemanj: I don't know, ask zzo
19:44:46 -!- tromp has joined.
19:45:39 <int-e> b_jonas: where did yo get that 11880 number?
19:47:22 <int-e> b_jonas: more to the point, consider this: http://sprunge.us/GYXd (from http://www.ctan.org/pkg/dvitype)
19:49:23 <b_jonas> int-e: “<zzo38> My calculation is that the DVI units for this program should probably be 1/11880 inch (which is coarser than TeX)”
19:49:33 -!- tromp has quit (Ping timeout: 276 seconds).
19:49:39 <int-e> ah, sorry.
19:51:25 <int-e> TeX uses its own internal sp ("scaled point") unit, of course.
19:52:07 <b_jonas> int-e: yes, and that's iirc 2**(-16) real point
19:52:38 <int-e> where a "point" is 1/72.27 inch.
19:52:54 <b_jonas> yes
19:53:39 <b_jonas> and a postscript point (named so beacuse postscript uses it as the unit in the original coordinate system before transforms) is 1/72 inch
20:03:38 <zzo38> gamemanj: It is possible for a DVI file to have larger units; the units used in the file are defined in the header. The reason you need that much resolution of 1/11880 inch for this purpose is because you cannot have separate horizontal and vertical units.
20:04:08 <gamemanj> ...so?
20:04:18 <b_jonas> zzo38: ok, but still, how did you get 1/11880 in particular?
20:04:45 <gamemanj> (b_jonas is wondering on the specifics of the value, it seems - I'm wondering why it's so small.)
20:05:11 <b_jonas> zzo38: you can have different units in DVI? Is that what \magstep does in TeX?
20:05:29 <zzo38> Vertically the IBM printer uses line spacing of 1/72 inch but it uses 1/216 inch for double printing. Horizontally it can have 10 character per inch, 5 per inch, 16.5 per inch, or 8.25 per inch.
20:05:58 <zzo38> b_jonas: No, TeX always uses the "scaled points" units. DVI however supports different units
20:06:17 <b_jonas> zzo38: ok
20:06:26 <zzo38> (Given in the header as a fraction of decimicrons, with 32-bit numerator and 32-bit denominator)
20:06:28 <gamemanj> zzo38: so you found a very large number that fits all of these units?
20:06:50 <zzo38> gamemanj: Yes, that is what I did.
20:06:58 <b_jonas> "decimicrons" -- um, that's 10**-5 meters, right?
20:07:01 <b_jonas> what a strange unit
20:07:08 <b_jonas> strange name I mean
20:07:21 <gamemanj> Strange unit, strange name, both are accurate.
20:08:27 <b_jonas> gamemanj: nah, after computer software apis measuring time in each of 1, 10**-1, 10**-2, 10**-3, 10**-6, 10**-8, 10**-9 seconds, I don't find any power of ten strange.
20:09:24 <gamemanj> And with different epochs, I'm guessing?
20:09:42 <\oren\> Why not measure in 60^-n seconds
20:10:24 <gamemanj> 1460833804 time goes really slowly!
20:12:01 <gamemanj> Huh. I missed a Digit 3 event by 9.6508101851852 days. *sigh* I'm always late to everything...
20:12:46 <b_jonas> \oren\: base 60 was very popular back when the ancient babylonians and arabs made calculations, but these days it's out of fashion and everyone uses powers of 2 and powers of 10
20:13:19 <gamemanj> But what about powers of 3?
20:13:39 -!- rdococ has quit (Quit: I have to go :c).
20:14:34 <zzo38> Z-machine uses deciseconds for timeouts, probably because the terminal control interface for UNIX uses deciseconds for input timeouts too.
20:14:40 <b_jonas> hmm, was this jeans so dark before I put it in the washing machine?
20:16:38 <\oren\> did you put it in the same machine as some black socks?
20:16:41 <gamemanj> b_jonas: I can't tell, your client doesn't support active jeans monitoring.
20:19:39 <gamemanj> (An awkward silence hangs over the room for two minutes.)
20:19:47 <gamemanj> s/two/three/
20:22:27 -!- Reece` has joined.
20:37:13 -!- centrinia has joined.
20:37:19 -!- J_Arcane has quit (Ping timeout: 244 seconds).
20:38:52 -!- J_Arcane has joined.
20:44:06 <picobit> TIS-100 is an interesting game.
20:49:01 <fizzie> "'Tis so."
20:49:46 <gamemanj> TIS-100, or "Semi-esoteric programming, now on Steam!"
20:50:03 <picobit> TIS-100, or "we're wasting processing power just buffering values"
20:50:19 <fizzie> Oh, we're de-fungotted again.
20:50:23 <gamemanj> TIS-100, or "Timing is everything."
20:50:54 -!- fungot has joined.
20:51:03 <gamemanj> Fungot! You're back! :D
20:51:08 <picobit> TIS-100, or "I wish I had a stack."
20:51:14 <gamemanj> ...fungot?
20:51:14 <fungot> gamemanj: or make the x procedure be a parameter to make. instead of applying ep1 later we're going to get
20:51:18 <gamemanj> Yay!
20:51:28 <gamemanj> picobit: A stack? Who uses a stack, nowadays?
20:51:28 <fizzie> picobit: It's a bit case-sensitive.
20:51:41 * gamemanj smiles at fizzie
20:52:04 <fizzie> Uh, wrong person. Anyway.
20:52:13 <picobit> gamemanj: me. the Forth-loving dude. :P
20:52:25 <gamemanj> (Unless TIS-100 is case-sensitive, in which case, nevermind, ignore me)
20:52:46 <fizzie> No, 'tis was about 'got.
20:53:02 <fizzie> Also it has those stack nodes.
20:53:27 <fizzie> And fungot is also big on stacks, I'd guess.
20:53:27 <fungot> fizzie: they generally prefer self evaluating! what a great verb would be a
20:53:41 <picobit> TIS-100 has stack nodes?
20:54:07 <fizzie> Yes. Those separate stacks you send values to.
20:54:14 <picobit> not that far in the game yet.
20:54:17 <fizzie> With a limited size.
20:54:19 <picobit> (just bought it)
20:54:27 <fizzie> Well, you'll meet them.
20:54:31 <picobit> cool.
20:54:44 <fizzie> They're as inconvenient as everything else in that game.
20:54:46 <picobit> I was never much of a fan of "array processors" like this.
20:54:53 <picobit> you spend more time routing values around than anything.
20:56:11 <gamemanj> TODO: give picobit an FPGA
20:56:12 <fizzie> Protip: "JRO LEFT" (or any other direction) is super-handy.
20:56:18 <picobit> gamemanj: already done. :P
20:56:57 <fizzie> It's (again) inconvenient when editing since you can't use labels for the offsets, but often saves a lot of space.
20:57:23 <picobit> really reminds me of the green arrays 144.
20:57:45 <gamemanj> Inconvenience is key.
20:57:49 <fizzie> Yeah, I've wondered whether that was an inspiration.
20:57:51 <gamemanj> Otherwise it wouldn't be hard, would it?
20:58:23 <picobit> still, not much of a fan. I'd rather a sort of "ring" pipeline.
20:58:38 <picobit> where you can pick things off at will. lends itself better to asynchronous logic too.
20:58:52 <gamemanj> The most convenient game is written in one line of shell script, and the line starts with "echo ".
20:58:54 -!- Vorpal has quit (Remote host closed the connection).
20:59:02 -!- XorSwap has joined.
21:05:08 -!- copumpkin has joined.
21:12:35 -!- boily has joined.
21:13:25 -!- gremlins has joined.
21:14:42 -!- Reece` has quit (Ping timeout: 260 seconds).
21:22:15 -!- centrinia has quit (Ping timeout: 244 seconds).
21:28:37 <hppavilion[2]> I should buy prog.io
21:28:44 <hppavilion[2]> And make a codewars-like game
21:28:51 <hppavilion[2]> s/codewars/corewar/
21:31:50 -!- Reece` has joined.
21:32:09 -!- boily has quit (Quit: TABULAR CHICKEN).
21:33:22 -!- gremlins has quit (Ping timeout: 260 seconds).
21:34:17 <Taneb> Idea: programming roguelike
21:34:19 <Taneb> Called Progue
21:34:43 <hppavilion[2]> Taneb: Oooh
21:34:55 <hppavilion[2]> Taneb: We need a computational class called "C-Complete"
21:35:22 <Taneb> That'd... just be a large finite state automaton
21:35:26 <hppavilion[2]> Where it's TC aside from memory limitations, but the memory may be arbitrarily large-but-finite
21:35:32 <hppavilion[2]> Taneb: See ^
21:35:56 <Taneb> That's a fairly useless computation class
21:36:06 <hppavilion[2]> So it's not TC, but it can perform any finite-memory computation given a properly-sized machine
21:36:08 <Taneb> It's "Is at least as powerful as a finite state automaton"
21:36:22 <hppavilion[2]> Taneb: It's not useful for theory, but it's good for discussing languages
21:36:28 <gamemanj> hppavilion[2]: Would BytePusher fall under that?
21:36:32 <hppavilion[2]> Taneb: C is not TC, but its memory has no bounded size
21:36:46 <Taneb> hppavilion[2], yes it does
21:37:06 <hppavilion[2]> Taneb: I mean that the size is bounded for a given implementation
21:37:17 <hppavilion[2]> Taneb: But C in general doesn't have a baked-in memory bound
21:37:23 <hppavilion[2]> gamemanj: No, but an arbitrary WordWordJump machine would
21:37:38 <b_jonas> `wisdom
21:37:39 <hppavilion[2]> gamemanj: WordPusher, which is BytePusher with a CPU other than ByteByteJump
21:37:44 <HackEgo> utumno/Utumno is Morgoth's first dungeon. It is where he was defeated, and the Silmarils temporarily reclaimed from him.
21:37:56 <hppavilion[2]> gamemanj: WordPusher is a class of machines, while BytePusher is a single machine
21:38:07 <b_jonas> `wisdom
21:38:08 <HackEgo> universal property/Universal properties are the best.
21:38:19 <b_jonas> `? free
21:38:20 <HackEgo> free? ¯\(°​_o)/¯
21:38:22 <hppavilion[2]> Is that a joke?
21:38:40 <gamemanj> `wisdom
21:38:42 <HackEgo> thwackamacallit/A thwackamacallit is like a whatchamacallit, but more painful. See mapole.
21:38:45 <gamemanj> ...
21:39:01 <gamemanj> Why did I ask of the pool of wisdom
21:39:16 <b_jonas> `slashlearn free/A free structure is one that has no nontrivial identities, except algebraist phrase that in a much fancier way with morphisms.
21:39:19 <HackEgo> Learned «free»
21:39:20 <hppavilion[2]> gamemanj: Because wisdom is never wrong
21:39:22 <b_jonas> `? free
21:39:23 <HackEgo> A free structure is one that has no nontrivial identities, except algebraist phrase that in a much fancier way with morphisms.
21:39:23 <hppavilion[2]> `? wisdom
21:39:24 <HackEgo> wisdom is always factually accurate, except for this entry, and uh that other one? it started with like, an ø?
21:39:26 <myname> `? mapole
21:39:29 <HackEgo> A mapole is a thwackamacallit built from maple according to Canadian standards. The army version includes a spork, a corkscrew and a moose whistle. A regulatory mapole measures 6' by 12 kg, ±0.5 inHg.
21:39:30 <hppavilion[2]> b_jonas: See
21:39:36 <b_jonas> hppavilion[2]: which one is a joke?
21:39:43 <hppavilion[2]> `` ls wisdom/ø*
21:39:45 <HackEgo> wisdom/ø \ wisdom/øl \ wisdom/ørjan
21:39:56 <hppavilion[2]> b_jonas: Universal Properties
21:40:04 <gamemanj> `? ø
21:40:06 <HackEgo> ​ø is not going anywhere.
21:40:08 <hppavilion[2]> b_jonas: Is its `wisdom itself a universal property?
21:40:10 <b_jonas> ``` find wisdom -iname "*hpp*"
21:40:11 <HackEgo> wisdom/hppavilion[42] \ wisdom/hppavilion1 \ wisdom/hppavilion[1]
21:40:21 <b_jonas> `? hppavilion[1]
21:40:21 <HackEgo> hppavilion[1] se describe en las notas al pie. ¿Porqué no los dos? Nadie lo sabe.
21:40:25 <gamemanj> `? hppavilion[42]
21:40:26 <HackEgo> hppavilion[42] is the awesomest person you will ever meet. Much awesomer than oerjan.
21:42:07 <b_jonas> `? hppavilion1
21:42:08 <HackEgo> higgledy piggledy / hp pavilion / doesn't like jokes that are / written in text; // uncontroversially, / one in a million is / roughly the chance they won't / be left perplexed
21:42:54 <hppavilion[2]> `le/rn hppavilion/hppavilion is the generator including, but not limited to, hppavilion[1], hppavilion[2], and hppavilion[42]. hppavilion is of length 37-42i-28j+4k-28ij+38ik+62jk+20ijk
21:42:57 <HackEgo> Learned «hppavilion»
21:43:31 <hppavilion[2]> For those wondering, '+'.join([str(random.randrange(-42, 69))+suff for suff in ['', 'i', 'j', 'k', 'ij', 'ik', 'jk', 'ijk']]).replace('+-', '-')
21:44:04 <b_jonas> hppavilion[2]: huh... is that python or something?
21:44:07 <hppavilion[2]> b_jonas: Yes.
21:44:40 <hppavilion[2]> A language called Garfield that emphasizes lazy evaluation, generators, iterators, etc.
21:44:50 <hppavilion[2]> (A practical language, that is)
21:44:59 <b_jonas> wait, .replace('+-', '-')? doesn't python just have format('{+d}',n) or something?
21:45:00 -!- gamemanj has quit (Ping timeout: 244 seconds).
21:45:17 <hppavilion[2]> b_jonas: It might, but I don't know the format notation
21:45:32 <b_jonas> ok
21:47:47 <hppavilion[2]> b_jonas: Does garfield sound like a good language?
21:49:07 <myname> does garfield execute on mondays?
21:50:12 <hppavilion[2]> myname: Garfield's time libraries don't even have a concept of mondays
21:50:55 <hppavilion[2]> myname: The metaphor stops at lazy evaluation
21:55:10 <myname> lasagna dhould be a primitive
21:56:10 <hppavilion[2]> myname: It's a serious language to /some/ degree
21:57:04 <myname> :(
21:57:31 <hppavilion[2]> myname: Well /sorry/
22:02:27 -!- dingbat has quit (Quit: Connection closed for inactivity).
22:16:21 <hppavilion[2]> zip(d) := {k:v for k, v in d}
22:18:34 <hppavilion[2]> myname: It appears that Garfield is largely declarative
22:18:35 -!- XorSwap has quit (Ping timeout: 244 seconds).
22:23:16 -!- earendel has quit (Quit: earendel).
22:30:25 <fizzie> I read that at least thrice as "Garfield is largely decorative".
22:31:46 <int-e> I thought that's John
22:35:37 <fizzie> I also thought it was referring to a language called Garfield that had nothing to do with the comic strip.
22:36:05 <fizzie> And this swipey keyboard can't spell strip.
22:36:48 <fizzie> It keeps doing syrup, step, strop, etc.
22:37:08 <int-e> . o O ( classic Garfield... this was as funny as it got... http://www.gocomics.com/garfield/1978/06/19 )
22:37:37 <int-e> (I'm kidding. One or two of the later strips are funnier than that.)
22:37:38 * int-e runs
22:38:22 <b_jonas> I wonder if you could train a Markov generator to try to write Kányádi Sándor poems
22:39:05 <fizzie> I think I used to read Garfield steps... stripe... steps... syrups... steps... whatever in some magazine.
22:39:53 <int-e> what is wrong with that keyboard?
22:40:06 <int-e> are you on some touchy mobile device?
22:40:11 <olsner> fizzie: probably strip is a dirty word
22:40:34 <b_jonas> I think it would be much easier to make the output superficially similar than if you tried to imitate Arany János or Weöres Sándor poems.
22:40:51 <b_jonas> (No, I don't mean to say his poems are bad. Just different.)
22:44:58 <fizzie> int-e: It's an Android phone, right.
22:45:30 <fizzie> I think maybe there was a content filter option in the settings.
22:46:05 -!- tromp has joined.
22:47:03 <fizzie> Also I think the swipe algorithm only looks at the shape and not the timing, so there's no way to indicate the difference between "strip" and "strop", the latter of which it deigns to type.
22:48:43 <zzo38> You should be allowed to type both words and also to be able to type any word you make up by yourself too
22:49:28 <b_jonas> fungot, can you imitate Kányádi's poems?
22:49:29 <fungot> b_jonas: bad joke. i typed " not me. it's obvious he's not a lunatic. ;d
22:49:32 <pikhq> zzo38: It pulls up a selection of words from the dictionary and just defaults to picking what it thinks is the likely one.
22:49:43 <fizzie> I turned off the "block offensive words" option, but it still doesn't want to strip. Wait. It did.
22:49:44 <b_jonas> that was somewhat approperiate
22:49:51 <pikhq> ... Also, IIRC it lets you add words to the dictionary pretty easy.
22:50:41 <zzo38> However using a proper keyboard would be better than using touch-screen anyways.
22:50:51 -!- tromp has quit (Ping timeout: 264 seconds).
22:50:54 <fizzie> pikhq: It was in the dictionary all the time at least according to spellcheck -- at least it wasn't underlined in red.
22:51:02 <pikhq> *shrug*
22:51:05 <pikhq> zzo38: True.
22:51:07 -!- atrapado has quit (Quit: Leaving).
22:51:16 -!- bb010g has joined.
22:51:45 <fizzie> I have a relatively reasonable Bluetooth keyboard for this, but left it at home_2.
22:52:08 -!- Marcela_Gandara has joined.
22:55:03 -!- Reece` has quit (Read error: Connection reset by peer).
23:01:26 -!- dos has joined.
23:02:14 -!- p34k has quit.
23:02:31 -!- lambda-11235 has joined.
23:03:32 -!- hppavilion[2] has quit (Ping timeout: 244 seconds).
23:05:33 <dos> I want to write a compiler. Should the language be LISPy or something Cish?
23:06:27 <zzo38> dos: Either way would work. I can suggest to be like LISP
23:07:16 <dos> zzo38: OK
23:07:19 -!- dos has changed nick to hppavilion[1].
23:10:32 -!- Marcela_Gandara has quit (Read error: Connection reset by peer).
23:11:40 -!- Marcela_Gandara has joined.
23:12:13 -!- AnotherTest has quit (Quit: ZNC - http://znc.in).
23:15:30 -!- oerjan has joined.
23:28:03 -!- hppavilion[1] has quit (Ping timeout: 264 seconds).
23:32:59 -!- Marcela_Gandara has quit (Ping timeout: 244 seconds).
23:38:14 <oerjan> <b_jonas> "decimicrons" -- um, that's 10**-5 meters, right? <-- 10**-7, surely
23:38:14 -!- Marcela_Gandara has joined.
23:38:34 <oerjan> `bienvenido Marcela_Gandara
23:38:38 <b_jonas> oerjan: oh... that's even worse
23:38:39 <b_jonas> ok
23:38:39 <HackEgo> Marcela_Gandara: ¡Bienvenido al centro internacional para el diseño y despliegue de lenguajes de programación esotéricos! Por desgracia, la mayoría de nosotros no hablamos español. Para obtener más información, echa un vistazo a nuestro wiki: http://esolangs.org/. (Para el otro tipo de esoterismo, prueba #esoteric en EFnet o DALnet.)
23:39:48 <b_jonas> `wisdom
23:39:50 <HackEgo> xyzzy/Nothing happens.
23:39:51 -!- jaboja has joined.
23:39:54 <b_jonas> `wisdom
23:39:55 <HackEgo> esoteric/This channel is about programming -- for the other kind of esoterica, try #esoteric on EFnet or DALnet.
23:40:05 <b_jonas> yeah yeah,
23:40:07 <b_jonas> I knoe
23:40:09 <b_jonas> `wisdom
23:40:12 <HackEgo> sbus/SBus is the standard bus in many a Sun SPARC-based system, capable of coping with thirty-two (32) bits in parallel, at rates of around 16.67 to 25 MHz. There is a 96-pin connector, and the cards lay parallel to the motherboard, like toppings on a sandwich.
23:44:26 <oerjan> <fizzie> Oh, we're de-fungotted again. <-- . o O ( how long before fizzie breaks down and implements DNS lookup )
23:44:26 <fungot> oerjan: if fnord p is too much
23:46:12 <oerjan> i guess it'll take a bit more to get completely autonomous reconnection
23:47:17 <oerjan> (you'd also probably need nick collision handling...)
23:48:13 -!- hydraz has changed nick to cnydraz.
23:49:48 -!- me4 has joined.
23:51:02 -!- Phantom_Hoover has quit (Ping timeout: 260 seconds).
23:51:45 <b_jonas> wow
23:52:44 <oerjan> b_jonas: ikr?
23:53:21 <b_jonas> You know how on interent forums people often start a post with something like “I'm surprised nobody mentioned such and such”. I find that somewhat annoyingly superfluous, especially when they do that very quickly before most posters have had a chance to mention anything.
23:53:46 <b_jonas> But this is the first time I saw a post starting with basically “I'm surprised I have never mentioned such and such”
23:54:05 <oerjan> i'm surprised you have never seen that before
23:54:21 -!- Phantom_Hoover has joined.
←2016-04-15 2016-04-16 2016-04-17→ ↑2016 ↑all