←2014-12-10 2014-12-11 2014-12-12→ ↑2014 ↑all
00:08:08 <boily> quintopia: QUINTHELLOPIA!!!!!!!!!!
00:10:11 -!- axelcsep has quit (Ping timeout: 240 seconds).
00:11:22 <oerjan> so, we meet again
00:11:59 * boily motions a time out, pause, PAUSE!
00:12:07 <boily> (hot pepper. ow. oooow.)
00:12:22 <olsner> boily: pause? no.
00:12:38 -!- augur has joined.
00:12:45 <oerjan> (strawberry jam. mm. mmmmm.)
00:13:18 <oerjan> olsner: more of a chilli-ng out
00:14:03 <oren> i just ate a pizza with tabasco and chili flakes. unlike some people, i can handle the heat
00:14:59 <boily> http://en.wikipedia.org/wiki/Bird%27s_eye_chili
00:17:15 <olsner> I grew some piri piri as potted plants this year, looks much the same (but seems to be a different species?)
00:18:18 <boily> it's similar, but not the same.
00:37:13 -!- nycs has quit (Ping timeout: 258 seconds).
00:38:59 -!- mihow has quit (Quit: mihow).
00:52:40 -!- augur has quit (Remote host closed the connection).
01:05:27 <Sgeo> Rust would make me happier if there weren't so many little details that seem to be undocumented
01:05:45 <Sgeo> e.g. the concept of partially moving a value
01:06:37 <oerjan> the concept of partially documenting
01:09:07 <lifthrasiir> deserves a formal semantics
01:10:07 -!- shikhout has joined.
01:13:24 -!- shikhin has quit (Ping timeout: 264 seconds).
01:13:59 -!- oerjan has quit (Quit: Nite).
01:24:03 -!- AndoDaan has quit (Ping timeout: 245 seconds).
01:31:08 -!- AndoDaan has joined.
01:43:21 -!- adu has joined.
01:59:08 -!- glguy has quit (Quit: Part).
02:07:05 -!- axelcsep has joined.
02:07:48 -!- FreeFull has quit (Ping timeout: 245 seconds).
02:11:31 -!- axelcsep has quit (Ping timeout: 258 seconds).
02:25:01 -!- b_jonas has quit (Ping timeout: 255 seconds).
02:25:33 -!- b_jonas has joined.
02:59:49 -!- FreeFull has joined.
03:01:13 -!- axelcsep has joined.
03:06:21 -!- boily has quit (Quit: PROPANOLOL CHICKEN).
03:06:21 <zzo38> How can I wire a TV cable so that channel 95 comes from one cable and I can get lower numbered channels from another cable?
03:07:08 <zzo38> (I have no need to access higher numbered channels at all.)
03:08:14 <Taneb> I don't know
03:10:31 <AndoDaan> Are the channels 1-95 all in the same frequence band?
03:11:13 <zzo38> Actually I only need 3-90 from one cable, not all of them up to 94. I do not know much about exactly what frequency bands and stuff TV cables use
03:11:44 <zzo38> (I don't need channel 2 either because that channel has gone out of business.)
03:12:42 <AndoDaan> 3 - 90 havent made the transition to digital yet?
03:13:18 <zzo38> They probably are available in digital too, but I am not using digital service; digital is too slow and cannot be used with VHS.
03:15:33 <AndoDaan> I'm no expert, I just played with my vcr and tv setting years ago, but I vague remember being able to tune my vcr to a certain bandwith height, and also use it as a splitter.
03:17:25 <AndoDaan> Is your aim to just have your tv ignore any channel above 90?
03:17:47 <zzo38> No, it is to connect a different device to channel 95 specifically.
03:18:03 <zzo38> Other than that I have no use for the other channels above 90.
03:19:25 <zzo38> Channels 3-90 come from the television service provider, and I have another device that broadcasts on channel 95, and I don't want to have to switch the cable manually every time.
03:21:00 <AndoDaan> okay, again, not an expert, but plug from the wall to your tv, tv to the vcr, set your vcr to channel 95, and then output from your vcr to chosen device.
03:22:01 <AndoDaan> In the slim chance that works, you'd have to keep your vcr on channel 95 though.
03:22:33 <zzo38> Yes but I cannot connect two cable inputs to the VCR. It is actually a VCR/DVD combo, and it isn't actually a TV either but a computer monitor, so only the VCR is used as the tuner. Also, I want to be able to change the channel to other channels in order to watch and record other TV shows.
03:24:48 <AndoDaan> That's me spent.
03:31:59 -!- augur has joined.
03:33:26 -!- augur has quit (Remote host closed the connection).
03:34:24 <Taneb> fizzie, ping
03:35:23 -!- augur has joined.
03:36:06 -!- augur has quit (Remote host closed the connection).
03:39:16 -!- adu has quit (Quit: adu).
03:39:30 -!- augur has joined.
03:58:22 -!- augur has quit (Quit: Leaving...).
04:13:28 -!- nys has quit (Quit: quit).
04:22:21 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
04:23:23 -!- AndoDaan_ has joined.
04:23:42 -!- AndoDaan has quit (Read error: Connection reset by peer).
04:27:01 -!- shikhout has quit (Ping timeout: 264 seconds).
04:45:52 -!- CrazyM4n has quit (Quit: Leaving).
04:46:44 -!- AndoDaan_ has quit (Quit: bbl).
04:53:49 -!- Decensum has joined.
04:54:51 -!- Decensum has changed nick to Decensum|Zzz.
04:58:17 <Sgeo> How much danger am I putting myself in if I buy a USB port from eBay?
04:58:33 <Sgeo> I'm kind of desparate
04:59:40 <Taneb> Odds are, I'd guess, not much
05:00:02 <Taneb> Any reason you can't buy one from a store or other reputable retailer
05:00:08 <Taneb> ?
05:00:21 <Sgeo> Tried going on Amazon, would take around a month to come in
05:00:31 <Sgeo> This one on eBay will arrive in days
05:00:58 <Taneb> Are you near a physical store that might sell them?
05:01:27 <Taneb> and able to get to the store
05:01:32 <Sgeo> Would AT&T store be likely to sell such a part?
05:01:47 <Sgeo> They might offer to do the repair, but I don't necessarily want to give my phone out
05:03:33 <Taneb> I don't know, could you ring them and ask?
05:03:45 -!- Sprocklem has joined.
05:04:26 <Sgeo> I could walk over there and ask I guess
05:04:28 <Sgeo> Tomorrow
05:05:08 -!- Farra_000_ has joined.
05:06:44 <Sgeo> THe listing says 3 available (from this seller which seems to be the best not lucrudiously expensive nearby). What if I wait that day and it runs out
05:06:58 <Farra_000_> dude just meditate
05:07:10 <Farra_000_> thats all you need to do
05:07:24 <elliott> `relcome Farra_000_
05:07:32 <Farra_000_> lol thank you
05:07:38 <HackEgo> Farra_000_: 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 irc.dal.net.)
05:07:58 <Farra_000_> oh, this is a promgramming channel
05:09:10 <zzo38> Meditation is certainly not the only thing that is necessary or possible!!!
05:09:16 <zzo38> Learning computer programming is also good.
05:09:22 <Farra_000_> I know java and c++
05:09:41 <Farra_000_> not no damn esoteric
05:09:45 <Farra_000_> lol
05:09:49 <zzo38> That's good, but do you know any esoteric programming (such as INTERCAL)?
05:10:16 <Farra_000_> INTERCAL was designed in 1972 by Donald R Woods
05:10:21 <Farra_000_> and James M Lyon
05:10:28 <Farra_000_> - Wikipedia :)
05:10:45 <Farra_000_> Do I win a prize?
05:11:03 <zzo38> Yes, of course Wikipedia says so; our esolang wiki <http://esolangs.org/> also mentions it.
05:11:23 <zzo38> I am not the one to decide who win the prize or not, but I expect there isn't a prize.
05:11:32 <Farra_000_> :(
05:11:55 <Farra_000_> In that case, i am off in search of other channels where prizes may be awarded.
05:11:57 <Farra_000_> Godspeed
05:12:00 <zzo38> OK
05:12:11 <Farra_000_> I wish you all the best in life
05:12:17 <zzo38> OK
05:12:21 -!- Farra_000_ has left ("Leaving").
05:14:20 <Sgeo> Do stores even -sell- replacement electronic parts?
05:14:26 <Sgeo> I'm trying to replace the USB port...
05:15:20 <zzo38> I have never tried to buy a replacement USB port so I don't know.
05:16:37 <Taneb> I have never lived in the country you are in, so I also don't know
05:18:40 <elliott> i've never peed
05:19:10 <Taneb> elliott, you may want to fix that
05:19:41 <elliott> it's too dangerous
05:20:23 <Taneb> Well, I'm writing a plugin for an IRC bot written in Haskell so it has a BF Joust hill
05:21:04 <elliott> lambdabot?
05:21:07 <Taneb> No
05:21:25 <Taneb> I think BF Joust is somewhat out-of-scope for lambdabot
05:22:02 <Taneb> It's for yukibot, an IRC bot one of my friends is writing
05:22:04 <oren> for a desktop you may be able to buy a usb pci card
05:22:34 <elliott> are you implementing the fancy scoring algorithm
05:22:38 <elliott> did fizzie ever fix that
05:22:51 <Taneb> Right now I'm basically translating fizzie's code
05:22:55 <Taneb> Haven't done much yet
05:24:39 <oren> i buy most ofmy electronics at a store in chinatown where everything is cheap and the cashiers don't speak english.
05:27:35 <oren> so i know you can get a desktop computer with a usb pci pard in it for less than 120 dollars (canadian)
05:29:06 <Sgeo> oren: I'm trying to be able to charge my phone
05:29:42 <oren> you can get a plug-to-usb adaptor for 3 dollars
05:30:41 <oren> unless the problem is with the phone....
05:30:54 <Sgeo> The problem is with the phone.
05:31:17 <oren> then buy a new phone. 20 dollars.
05:33:35 <oren> the problem is these phones have the usb ports and everything soldered to one plastic board.
05:34:36 <Decensum|Zzz> Did python update?
05:34:54 <Sgeo> Which is why I've found exactly 0 replacement parts such as the one I'm considering buying on eBay?
05:35:22 <Decensum|Zzz> Is it your battery
05:35:27 <oren> i was saying the 20 dollar phones are one piece
05:35:29 <Decensum|Zzz> Or did you crack it
05:35:43 <Sgeo> I think the pins in the port are bent
05:36:01 <oren> try using needlenose pliers
05:36:21 <Decensum|Zzz> Oh
05:36:32 <Decensum|Zzz> Micro usb?
05:36:47 <oren> or tweezers
05:36:59 <Decensum|Zzz> Not for a micro oren
05:37:04 <Decensum|Zzz> If thats what it is
05:38:24 <Sgeo> Not sure what the difference between micro and mini is, but probably
05:39:13 <oren> on the off chance: did you try cleaning the port with vodka?
05:40:03 <Sgeo> No
05:41:26 <oren> you should def try cleaning it. use a thin watercolor paintbrush and some strong alcohol such as cheap vodkaor everclear
05:42:35 <Sgeo> The pins look bent I think
05:42:50 * Sgeo just bought the part from eBay. Spent more in shipping than the part itself, to save a few days
05:43:34 <Decensum|Zzz> Have you tried
05:43:50 -!- adu has joined.
05:44:01 <Decensum|Zzz> Putting the chsrger back in and trying to slowly bend them back
06:18:41 <HackEgo> [wiki] [[Scrip7]] M http://esolangs.org/w/index.php?diff=41434&oldid=41406 * Orenwatson * (+37) hollerith encoding
06:27:05 -!- shikhin has joined.
06:28:39 <oren> is there any fast way to convert floating point to a fraction
06:29:52 <zzo38> To what approximation do you want?
06:30:36 <oren> so that if the user entered a simple fraction it would be converted losslessly back
06:31:36 <oren> e.g. if i were to enter 30.0/7 the algorithm would output 30/7
06:34:04 <oren> i realize this requirement isn't defined mathematically...
06:34:06 <Sgeo> My suggestion would be to use a rational type
06:34:13 <Sgeo> Instead of floating point
06:34:29 <oren> the floats are being read out of the memory of a running C program
06:35:08 <Sgeo> Floats are scientific notations. Is there any fast way to simplify fractions?
06:35:12 <Sgeo> *notation
06:35:20 <Sgeo> But it probably won't show original input so closely
06:35:39 <oren> hopefully close enough
06:37:11 <oren> suppose that the integers of the original fraction are under 16 bits...
06:37:21 <oren> and the result of the division is given as a double
06:37:33 <oren> is it possible to reverse the division?
06:41:04 <oren> i am going to try some ieee hackery
07:07:00 <oren> making some progress: 3/4->0.75->1572864/2097152
07:07:37 <Taneb> But 3/4 is represented exactly in floats, isn't it?
07:07:52 <oren> it is... so i am trying to extract it better...
07:07:55 <Taneb> mantissa of 3 and exponent of -2
07:08:00 <oren> exactly
07:08:45 <oren> the mantissa is extracted by: ((*(int64_t*)&f)&0x000fffffffffffffLL|0x0010000000000000LL)
07:09:23 <oren> and then i reduced it to a small nubmer of bits
07:09:58 <elliott> why are you doing this...
07:10:08 <oren> to undivide
07:10:18 <elliott> also, I think that cast violates strict aliasing. not sure though
07:10:35 <oren> whatver the cast works
07:10:46 <elliott> no, it doesn't. not necessarily/
07:10:52 <elliott> it depends on compiler optimisations
07:10:55 <elliott> *neccessarily.
07:11:04 <elliott> (if I'm right)
07:11:39 <oren> it works on gcc -O3.
07:11:56 <elliott> I hate programmers like you.
07:12:19 <oren> because we think in bits and bytes?
07:12:27 <elliott> (and no. not necessarily. undefined behaviour can break depending on billions of other things, like surrounding code, CPU architecture...)
07:12:51 <elliott> no, because you don't care when if write code that explicitly violates the standards and can and will break. compilers have only gotten *more* aggressive at exploiting UB
07:13:30 <elliott> for instance signed overflow always does the obvious thing even though it's UB, right?
07:13:36 <oren> but some unefined behaviour is defined by programmer's conventianl usage
07:13:37 <elliott> except, oops, no, gcc and clang will do optimisations that assume it never happens
07:13:59 <elliott> for instance you can do a signed addition and check if it overflows and raise an error if it does, and return the result if not
07:14:08 <elliott> gcc and clang will happily optimise out the check but then let it wrap at runtime anyway
07:14:11 <elliott> because /it is undefined behaviour/
07:14:29 <elliott> if you don't write code that obeys the rules of the language you will get burnt, whether "it works right now" or not
07:14:32 <oren> because wrapping is the conventional behaviour
07:14:41 <elliott> oren: ...but optimising out the check is not.
07:15:03 <oren> and easiest to implement in a cpu. it is harder to have a check
07:15:11 <elliott> oh my god, would you listen to what I say?
07:15:34 <Sgeo> Maybe UB just should be banished
07:15:57 <b_jonas> he can't
07:16:02 <elliott> oren: { int c = a + b; if ((a >= 0 && c < a) || (a < 0 || c > b)) { puts("overflow!"); abort(); } do_something_with(c); }
07:16:08 <Taneb> One thing that I want to do at some point is to write a C implementation which does the worst thing with undefined behaviour
07:16:14 <elliott> oren: gcc and clang *can and do* optimise code like this to be the same as { do_something_with(a + b) }
07:16:20 <elliott> *even if (a + b) overflows in practice*
07:16:28 <fizzie> Taneb: Boing?
07:16:40 <elliott> relying on undefined behaviour can and will get you burnt, in practice, on programs that have an "obvious conventional meaning" to you.
07:17:04 <Sgeo> What happens when there's no standard, or the standard is ignored half the time?
07:17:08 <Sgeo> Fuck the web
07:17:30 <Taneb> fizzie, I'm trying to use gearlanced for an IRC bot...
07:17:43 <Taneb> Actually, could I talk to you later
07:19:00 <fizzie> Taneb: Oh, poor you. But sure.
07:20:07 <oren> gcc on overflow does not do the opimization you said elliot
07:20:16 <oren> even on -O3
07:20:57 <shachaf> checkmate
07:21:23 <oren> it is defined by convention that 2s complement integers will wrap
07:21:49 <oren> because that is obvious and easy to implement
07:21:53 <elliott> oren: fine, I'll bring up a fucking bug report where it optimises out overflow checks and got closed as WONTFIX
07:22:05 <elliott> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=30475
07:22:24 <elliott> if you say something false that could have been proven wrong by reading that page I'm probably going to be annoyed enough to kick you again
07:23:14 <elliott> (I take no position on whether C *should* be like this but the gcc developers in that bug report are completely correct that this is legal behaviour by the C standard, and this of course suffices as proof that compilers can and do optimisations like this in practice.)
07:23:53 <elliott> here's some more reading material http://blog.regehr.org/archives/213 http://blog.regehr.org/archives/226 http://blog.regehr.org/archives/232 http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_14.html http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html
07:25:08 <elliott> (those do cover strict aliasing)
07:27:06 <Sgeo> It is a bug. C is a bug.
07:27:22 <Sgeo> Rust has UB too I think :(
07:30:07 <fizzie> I had http://sprunge.us/iRcT as an example of GCC optimizing something by assuming no signed integer wraparound recently.
07:30:52 <Sgeo> Rust arithmetic overflow is defined, I think
07:31:04 <Sgeo> Defined as wrapping iirc, but defined
07:31:19 -!- dts|pokeball has quit (Read error: Connection reset by peer).
07:32:00 -!- dts|pokeball has joined.
07:32:33 <Sgeo> "I'm still amazed that for the gcc maintainers, performance seems to be more important than security of the existing code base. "
07:32:46 <Sgeo> It's C! Stop using C for security. Stop using C for security. Stop using C for security.
07:33:37 <oren> people used COBOL, Fortran, and indeed C in the defense industry
07:33:56 <zzo38> I think only the parts that are needed to be secure, need to be made secure; most of it needn't need be secure since that is the job of the individual program being written.
07:34:00 <oren> however they probably have their own compilers
07:34:12 -!- AndoDaan has joined.
07:34:40 <Sgeo> "My issue with gcc is that it removes statement THREE. Your argument about undefinedness is about statement TWO. "
07:34:41 <Sgeo> ahahaha
07:34:56 <oren> i guess many makefiles will include -fwrap soon
07:35:32 <zzo38> You certainly can write secure programs in C if you are careful; that isn't a problem. Making careful isn't too difficult; you can avoid buffer overflows and stack overflows if you don't have a buffer or recursive subroutine calls, for example.
07:35:47 <Sgeo> This was 2007
07:36:08 <fizzie> oren: It's "-fwrapv", and I highly doubt that.
07:36:08 <zzo38> I know in LLVM it is possible for each instruction to specify whether or not signed wrapping, and whether or not unsigned wrapping, is possible.
07:37:12 <elliott> oren: "soon"? gcc has worked this way for an extremely long time. as has clang.
07:37:43 <elliott> I'm pretty sure C compilers have been making assumptions like this since the 90s at the latest, and they've only gotten more aggressive. that bug report is from 2007 and was certainly nothing new at the time.
07:37:45 <oren> fizzie: why? it was the 'standard' behaviour for so long no doubt people relied on it... take the guys complaining for example. are they going to change their code or add the flag that gets the behavious they want?
07:37:52 <elliott> no, you just assumed it was.
07:38:01 <elliott> things don't start existing when you become aware of them.
07:38:23 <elliott> object permanence trumps arrogance
07:38:57 <oren> http://pastebin.com/gnHcc4EX this works. gcc only optimizes when it is obvious
07:39:42 <oren> and most of the time i don't bother checking for overflow at all
07:40:25 <oren> so i just see it wrap and don't care
07:41:17 <fizzie> oren: For the record, that definition for main is also undefined behavior.
07:41:19 <elliott> you're trying to make talking to you as frustrating as possible by ignoring everything said to you until the evidence is overwhelming enough that you have to accept 1% of the truth and continue vociferously denying the remaining 99%, right?
07:42:00 <elliott> it must be nice for everything you know to be the obvious, self-evident truth that you can argue it when someone tries to correct you and not even have your belief shaken next time when you turn out to be wrong
07:42:09 <Sgeo> Just... use a better language already
07:42:46 <elliott> I have no problem with people not knowing things but nothing is more irritating than confidence exceeding that knowledge.
07:43:07 <elliott> (a sin which I've been plenty guilty of over the years, true.)
07:43:10 <oren> anyway elliot, if gcc does not do what i want then i will change my makefiles or use a different compiler. why are you so mad?
07:43:20 -!- Patashu has joined.
07:43:38 <elliott> Sgeo: if you don't care about how the language you're programming in and the compilers you're using work, no language will save you
07:43:50 <elliott> it is true C makes writing correct programs significantly harder.
07:44:05 <elliott> but you have to actually care about things to go from that to deciding you'd be better off using something else.
07:44:09 <Taneb> fizzie, you still about?
07:44:34 <elliott> oren: because you're the second most annoying person in here and I don't like people enroaching on my title
07:44:57 <elliott> (also, I only talk in here when I feel like venting these days, because it's usually boring)
07:45:37 <oren> souns good! i actually like reading your tirades
07:45:37 <Taneb> fizzie, is it possible to use gearlanced as a library?
07:46:10 <elliott> great. it would be nice if you actually listened to them
07:46:36 <elliott> fizzie: I like how argv is mega-super-duper-const but argc isn't.
07:47:34 <oren> perhaps legacy code contains code looping backward thru arguments by --argc?
07:48:09 <fizzie> Legacy could could equally well contain code looping forward via ++argv.
07:48:41 <Sgeo> I suspect that most programmers in the world are more like oren than like elliott :(
07:48:42 <fizzie> Taneb: I'm not sure what you mean by that, but assuming an abritrary interpretation, you'd probably need to change the code a little bit, since it's designed to be used as an external process.
07:49:07 <Taneb> Right. I'm not sure if I'm up to that task.
07:49:16 <Taneb> For now I'll just use it as an external process.
07:49:42 <oren> Sgeo : most programmers are trying to get things done, not achieve mathematical provability and perfect precision
07:50:00 <b_jonas> blasphemy!
07:50:08 <mitchs_> :(
07:50:11 <oren> if it works 99 percent of the time you can do it manuallt he other 1%
07:50:52 <oren> welcome to the real world where COBOL is *still* a thing
07:50:54 <Taneb> fizzie, how well-documented is gearlanced's interface?
07:51:11 <Taneb> Oh I see, in the comments at the top of the file
07:51:26 <fizzie> oren: Yeah, I somehow expect that excuse not to work so well when the resulting bugs ends up costing someone money.
07:51:36 <Sgeo> When a Java method returns null instead of an empty array when there are no items, and the programmer doesn't realize this, is it the programmer's fault for not reading the docs carefully enough, or Java's fault for providing such a backass stupid method?
07:51:52 <elliott> fizzie: can I just kick him again? it's therapeutic.
07:52:02 <oren> go ahead
07:52:35 <fizzie> Taneb: Librarification would probably just entail splitting the three cases of main into separate functions, and fiddling the persistent state into some struct.
07:52:54 <elliott> Sgeo: the latter, but if the programmer argues not that java is badly designed (which is fair), but that actually the code is okay and they'll keep using it because everyone assumes by convention that the method will return an empty list...
07:52:54 <Taneb> I may do that at some point, but not just now
07:53:30 <oren> fizzie:true. but will it cost more money to fix the bugs or to simply learn to deal?
07:53:58 <elliott> "the code works, it's fine" -> "the code is broken, but it's fine"
07:54:28 <oren> it is fine if the cost is less than your salary for the time it will take to fix it
07:54:31 <elliott> I'm going to smirk way more than is reasonable if a type-based alias analysis optimisation breaks your code in this case.
07:54:50 <elliott> I'd pay you to not contribute to any open-source software I might use x_x
07:56:14 <oren> well in the case of OSS the cost can't be less than your salary since the salary is often zero
07:56:44 <Sgeo> elliott: I think e'd fit in with the OpenSSL team
07:56:57 <Sgeo> (Ok, that's mean to the OpenSSL team, I'm sure... they're not that bad?)
07:57:32 <elliott> save me from programmers
07:57:35 <elliott> I wish I was any good at anything else
07:58:33 <Sgeo> Depressing cynicism can be funny!
07:58:40 <oren> the companies that rely on OSS whould pay programmers to work on OSS... or is that already happening?
07:58:45 <Sgeo> That's how I cope. I find humor in how horrible everything is.
07:59:12 <Sgeo> I kind of think of it as a job perk
07:59:17 <zzo38> oren: I don't know how common it is, although it does seem like reasonable.
07:59:21 <elliott> sadly, there's a certain level of horribleness in your life where that doesn't stop you drowning
08:00:09 <fizzie> I think it's relatively common for companies to let their progammers commit code they've made back to the project.
08:00:38 <oren> elliot: i am willing to write standard-conforming code if i am paid to do so.
08:01:52 <elliott> you know, people missing the t from my name hasn't actually annoyed me for years
08:01:54 <oren> however if the requirements are simply that it works, then my boss will not be happy if i expend extra effort to avoid undefined behaviour.
08:02:00 <elliott> lol
08:02:13 <elliott> save me from programmers.
08:02:35 <oren> you mean 'save me from economics' it's the dismal science for a reason
08:02:48 <oren> or is that comp-sci
08:03:07 <elliott> oh my god
08:03:16 <elliott> you keep getting more and more absurd
08:03:26 -!- adu has quit (Quit: adu).
08:03:50 <Sgeo> I would probably fight back against my boss in that situation
08:04:05 <Sgeo> Product never cares about security, but they should
08:04:56 <Sgeo> Actually, that's not really true
08:05:43 <elliott> thankfully, everything sucks and one day each and every nerd will be condemned to the eternal blazing fires of hell, wherein they will maintain a sustained argument that said fires manifestly don't exist and they can't possibly be burning in them
08:06:01 <elliott> I can't wait for them to come for me.
08:07:17 <oren> what is absurd? you have requirements and you are paid to write a program satisfying business objectives. if business objectives do not include "works every single time and is super-secure" then you do not do that it is a waste of time. instead the solution is "when it doesn't work, call Bob to type it into the DB manually" or something
08:08:17 <Sgeo> I actually kind of agree with oren. Security is a trade off.
08:08:47 <elliott> listen. listen. jesus has saved me from talking about undefined behaviour in C with you any more, and He could save you too.
08:08:47 <fizzie> oren: By the way, getting back to your "compilers only optimize when it's obvious" example: http://sprunge.us/TJcW -- "Hey, your code stopped working when we switched compiler vendors!" "Oh? Well, learn to deal."
08:09:10 <oren> Sgeo: and there is a tradeoff between my salary and Bob's.
08:09:13 <fizzie> (I don't think the overflow check was quite right, earlier.)
08:09:18 <elliott> fizzie have you not heard His word
08:09:57 <elliott> I use only the Lord's C Compiler and it never lets me down
08:10:16 <oren> you mean tcc ?
08:10:28 <elliott> I mean the Gospel.
08:10:42 <oren> (because t is the cross on which He was crucified)
08:11:34 <fizzie> If you write "gcc" on an OS X system, it's actually clang.
08:11:39 <Sgeo> Of course, is Product really trustworthy to even comprehend the tradeoff?
08:11:41 <fizzie> (Assuming Apple's Xcode.)
08:12:02 <elliott> fizzie: I wonder what llvm-gcc does. or that dragonegg thing.
08:12:23 <elliott> hey, I wasn't paid to do anything but compile a binary on this exact linux box at 2 pm on a tuesday. if that's the only time it works so be it
08:12:51 <Sgeo> Didn't OpenOffice have a bug that printing wouldn't work on Tuesdays?
08:13:04 <oren> elliot in all seriousness it is possible for that to be the business requirments
08:13:05 <Sgeo> http://mdzlog.alcor.net/2009/08/15/bohrbugs-openoffice-org-wont-print-on-tuesdays/
08:13:08 <elliott> now watch for my next trick as I show you my perfectly acceptable C program that exploits a buffer overflow in one version of gcc on one platform to do a bunch of manual printfs to the outputted assembly file
08:13:45 <elliott> Sgeo: that's great
08:13:56 <fizzie> Also I think these days if you write "as" what you get is 'clang -cc1as' instead.
08:15:21 <elliott> fizzie: I don't think so, they have their own assembler
08:15:27 <elliott> % as --version
08:15:27 <elliott> FATAL:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../libexec/as/x86_64/as: I don't understand '-' flag!
08:15:35 <elliott> % clang -cc1as --version
08:15:36 <elliott> LLVM (http://llvm.org/): LLVM version 3.5svn from Apple Clang 6.0 (build 600.0.54) Optimized build. Default target: x86_64-apple-darwin14.0.0 Host CPU: core-avx2
08:16:01 <elliott> it could be a wrapper, but /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../libexec/as/x86_64/as is a binary, at least
08:16:29 <elliott> as(1) says as - Mac OS X Mach-O GNU-based assemblers
08:17:05 <elliott> maybe it uses LLVM under the hood nowadays, though.
08:17:12 <elliott> it certainly knows about options clang -cc1as doesn't
08:19:01 <fizzie> Possibly not. I don't have any real OS X systems to test on.
08:19:25 <oren> elliott: do you also hate people who use compiler-specific extensions?
08:19:28 <fizzie> I just came across something that said they "will switch /usr/bin/as to call the clang internal assembler soon". Perhaps it never happened.
08:20:23 <oren> because that is also undefined behaviour which may change at any time.
08:20:46 <elliott> oren: The storm had now definitely abated, and what thunder there was now grumbled over more distant hills, like a man saying "And another thing..." twenty minutes after admitting he's lost the argument.
08:21:54 <oren> when did i admit id lost argument? i just accepted you have different objectives from me.
08:22:24 <elliott> yes, nobody's perfect
08:22:32 <elliott> I was being charitable
08:23:41 <oren> but if you like gcc for using undef-behaviour for speed,do you dislike them for creating new constructs that are undefined or even illegal standard c?
08:24:22 <oren> e.g. {label: void q =&&label; ...}
08:24:31 <oren> e.g. {label: void *q =&&label; ...}
08:24:33 <fizzie> oren: I'm not sure how you derived "like" from "I take no position on whether C *should* be like this".
08:24:45 <elliott> you know you can't force me to argue with you even if you keep doing your side of it, right?
08:25:15 <oren> sorry, i thought you hated programmers who do stuff that is undefined?
08:26:20 <zzo38> I use some of the GNU extensions; I like ?: with nothing in between, and I like the ability to create zero-length arrays. I also sometimes use function to count how many bits are set.
08:26:32 <oren> <elliott> I hate programmers like you.
08:26:43 <elliott> fizzie: should I be compensating you for your efforts here
08:27:26 <oren> so do you hate programmers who use gcc extensions too?
08:27:34 <elliott> zzo38: I'm curious, how does (x ?: y) differ from (x || y)?
08:28:29 <Taneb> What does that mean?
08:28:48 <mitchs_> x?:y seems to turn into x?x:y but i would have assumed it was undefined, just happened to see teebee using it once
08:28:48 <shachaf> (x || y) is always 0 or 1.
08:28:56 <elliott> Taneb: it's (x ? x : y) but x is only computed once
08:28:58 <elliott> oh
08:29:09 <elliott> right, C logical operators are pedantic like that
08:29:19 <zzo38> elliott: The (x ?: y) acts similar to how (x || y) functions in JavaScript.
08:29:52 <oren> i don't use ?: very much actually, i prefer full if statements
08:32:32 <oren> fun fact, in php 1?1:0?2:3 gives 2, in C it gives 1.
08:32:34 <shachaf> I wonder when Bike left.
08:43:28 -!- glguy_ has joined.
08:49:03 -!- FreeFull has quit (Ping timeout: 244 seconds).
08:51:01 -!- Decensum|Zzz has quit (Quit: Connection closed for inactivity).
08:54:32 -!- dts|pokeball has quit (Ping timeout: 244 seconds).
09:09:26 <zzo38> Did you know that? In ZZT, picking up a gem while your health is at 32767 (regardless of how many gems you have), will kill you instantly. However, a program that gives you additional gems or health will not do this.
09:14:17 <shachaf> What will it do?
09:18:22 <zzo38> What will what do?
09:18:46 -!- AnotherTest has joined.
09:20:34 <shachaf> A program that gives you additional gems or health.
09:24:40 -!- glguy_ has quit (Quit: Computer has gone to sleep.).
09:25:19 -!- AnotherTest has quit (Ping timeout: 245 seconds).
09:25:36 <zzo38> It simply doesn't adjust the amount of gems/health you have in such a case.
09:41:00 -!- FreeFull has joined.
10:38:58 -!- ais523 has joined.
10:59:52 -!- GeekDude has joined.
11:04:26 -!- cluid has joined.
11:04:31 <cluid> hello
11:04:40 <oren> hell0
11:04:54 <cluid> I've been thinking about this new brainfuck derivative but I can't find anything it's really good for
11:06:00 <oren> any brainfuck derivative is good for annoying people (even though they don't complain about yet another algol derivative...)
11:06:32 <cluid> well it gives you more room to use than brainfuck, so it shoudl be able to write some programs more efficiently or much shorter or something
11:11:52 <cluid> http://lpaste.net/116231
11:11:59 <cluid> This is the language
11:12:30 <cluid> you can embed any brainfuck program into this language by s/\^/</
11:12:35 <elliott> cluid: it's kind of cute how that lets you contain infinite data structures in one cell
11:12:46 <elliott> you mean s/</^/ right?
11:12:51 <cluid> yes thanks!
11:13:06 <cluid> yeah you can have infinite structures next to any cell,
11:13:17 <cluid> so you might represented tree structured data quite easily
11:13:31 <cluid> (without having to flatten it as you would in brainfuck)
11:14:02 <oren> is the tree infinite in all directions?
11:14:06 <cluid> yes
11:14:22 <cluid> http://lpaste.net/116233
11:14:26 <cluid> here's an example program I wrote
11:14:39 <cluid> to swap two numbers using a third cell
11:15:19 <cluid> so but you can binary encode your tmp varibales (<><>>><><>) rather than unary in brainfuck (>>>>>>>>>>>>>>>>>>)
11:15:29 <cluid> this isn't too amazing though
11:15:55 <elliott> cluid: you could run the same language on an arbitrary graph with the condition that every vertex has three edges
11:15:57 <cluid> the next thing I learned about this language is what elliott said
11:16:15 <elliott> sort of like doing bf with a wrapping tape
11:16:29 <b_jonas> cluid: what's the tape like? is it an infinite unrooted 3-regular tree?
11:16:34 <cluid> yes b_
11:16:35 <cluid> yes b_jonas
11:17:30 <b_jonas> have you tried to search the existing bf variants for whether this already exists?
11:17:42 <cluid> no, but I dont think it exists
11:17:49 <cluid> do you think that it might exist? how would I check...
11:17:56 <elliott> most bf derivatives aren't so fancy to mess with the tape
11:17:59 <b_jonas> well, there are already tons of bf variants
11:18:01 <elliott> the closest thing I can think of is dimensifuck
11:18:23 <elliott> sadly https://esolangs.org/wiki/Category:Brainfuck_derivatives is pretty incomplete I think but it probably has most of the more interesting ones
11:18:34 <b_jonas> elliott: what? I think there's a two-tape brainfuck somewhere. or maybe a two-headed brainfuck. I mean, that's sort of an obvious idea.
11:18:36 <elliott> (people often don't bother to categorise crappy text substitution bf derivatives that pop up I think)
11:18:48 <elliott> b_jonas: by closest thing I meant closest to cluid's language
11:18:49 -!- sebbu2 has joined.
11:18:56 <elliott> and yeah (doublefuck)
11:19:26 -!- sebbu2 has quit (Changing host).
11:19:26 -!- sebbu2 has joined.
11:19:29 <elliott> the ultimate will be when someone makes a dual deadfish + brainfuck derivative
11:19:37 <cluid> http://esolangs.org/wiki/Arborealis (similar but not same), http://esolangs.org/wiki/V (close? danger..)
11:19:39 <elliott> then we can permanently feature it and implement it in every language that has ever existed
11:19:41 <b_jonas> I don't have a problem with working on a 3-regular tree tape, but why make it a brainfuck variant? can't you do something else on a tape?
11:19:44 <oren> i am just glad cluid's language is not called ?fuck for any ?
11:20:12 <elliott> whoa, V is cool for a bf derivative
11:20:25 <b_jonas> try to figure out more than one cool ideas, and put them together, rather than just changing one thing in brainfuck.
11:20:36 -!- sebbu has quit (Ping timeout: 264 seconds).
11:21:07 <cluid> Fun fact: I implemented this brainfuck derivative using derivatives
11:22:27 <elliott> cluid: parsing derivatives?
11:22:32 <cluid> data T a = B (T a) a (T a)
11:22:35 <elliott> oh
11:22:36 <b_jonas> cluid: hehe. have you also written any programs in that language that can't be just as easily written in brainfuck?
11:22:39 <elliott> a zipper, of course
11:22:42 <cluid> data Z a = ZL (Z a) a (T a) | M (T a) (T a) | ZR (T a) a (Z a)
11:22:54 <cluid> b_jonas, that's the hard bit, I've been thinking about it all night
11:23:26 <cluid> All I got so far was tmp variables are much shorter and the point elliott raised, about infinte structures held next to one cell
11:23:38 <cluid> I was thinking maybe iyou could implement something like game of life much shorter, but then im not sure if you really could
11:24:17 <cluid> i feel like this language can improve on brainfuck a lot but only in more complex programs?
11:25:18 <ais523> actually, interesting question: out of all the TC esolangs, which are only polynomially slower than, say, C? which are no more than O(n) slower?
11:25:24 <ais523> just being TC doesn't mean you have the same complexity
11:25:39 <cluid> yes ais523 good point
11:25:52 <cluid> I like that you say this becaues when ever I say things like this people try to teach me about the turing machines and it's really frustrating
11:26:26 <ais523> well, almost all languages are TC, but nonetheless, some are better than others
11:26:33 <elliott> ais523 learned about arguing subtleties about tcness the hard way :p
11:27:01 <ais523> even defining "TC" is hard when you reach the edge cases
11:27:49 <shachaf> I'd like to understand the connections between derivatives (of types) and linear types better.
11:29:35 <b_jonas> ais523: as you know, many languages are quadratically slower, specifically all tape-based (even multi-tape or multi-head) languages have a quadratic slowdown.
11:29:53 <ais523> b_jonas: I first noticed with Thutu, which seems O(n) slower than anything else
11:29:59 <ais523> I'm not convinced that BF has to be quadratically slower, though
11:30:02 <cluid> A fun game could be like a 'boy scouts' thing for esoprogramming. You get a badge for writing a quine, for self interpreter, implement certain algorithm in strange language etc..
11:30:14 <ais523> I think that if you use tape elements only as single bits, it can be linearly slower instead
11:30:27 <ais523> cluid: #esoteric achievements?
11:30:59 <shachaf> http://www.cs.nott.ac.uk/~txa/publ/tlca03.pdf talks about it a bit.
11:31:02 * shachaf goes to sleep.
11:31:04 <b_jonas> ais523: by quadratically, I mean that there are programs that take O(n) time in, say, C, but require Omega(n^(2-epsilon)) time on brainfuck or even on a multi-head turing machine
11:31:34 <ais523> b_jonas: right, that's what I took you to mean
11:31:48 <b_jonas> Also, as you know, counter machines (turing machines that can't write the tape) are exponentially slower; counter machines with only two counters are probably doubly exponentially slow.
11:32:05 <ais523> I'm not 100% sure you're wrong, but I think it's quite likely that all programs that are O(n) in C can be done in O(n^2) in BF, unless there's something obvious I'm missing
11:32:23 <ais523> also, C is a bad example
11:32:30 <ais523> maybe we should pick Scheme or something
11:32:43 <ais523> C's only TC due to technicalities involving writing to a file and reading it back, due to the existence of sizeof
11:33:18 <elliott> just pick the obvious subset of Python
11:33:21 <elliott> or whatever
11:33:37 <oren> nah... Fortran
11:33:51 <cluid> how about just measure the complexity of the best algorithm for a given problem
11:34:16 <b_jonas> My favourite reference machine is a pointer machine with only immutable cells. This has any number of registers (given by the program) and any number of algebraic data types.
11:34:41 <cluid> that sounds pretty cool
11:34:52 <cluid> without mutation there is a logarithmetic slowdown though, so that might not be the perfect benchmark
11:36:13 <b_jonas> The program has a number of states and four kinds of instructions: (1) halt; (2) allocate a new cell on the heap of the given constructor, filling its cells from registers, then jump to a state; (3) test whether a register contains a value with particular constructor, if it does, unpack it to registers and jump, else jump to somewhere else.
11:36:57 <cluid> Where can I upload a implementation of my esolang?
11:36:57 <b_jonas> You get the input as a linked list in a register, and put the output as a linked list in another register. You could add a register copy instruction for convenience but it's redundant because it can be simulated in two instructions.
11:37:04 <cluid> i want to link to it from the wiki
11:37:16 <oren> i have been using pastebin
11:37:17 <cluid> or have it as a 'behind' page would be nice.. if that's ok
11:37:25 <cluid> oren, that is likely to 404 after some time, I linke
11:37:26 <cluid> think
11:37:26 <b_jonas> cluid: Does it have a short text source code? If it does, you could just put it to a wiki page.
11:37:28 <cluid> you shuldnt' trust it
11:37:43 -!- oerjan has joined.
11:37:44 <cluid> its 90 lines
11:37:54 <ais523> oh, huh, the esoteric files archive is on github now
11:37:55 <ais523> https://github.com/graue/esofiles
11:38:03 <cluid> yes its just i dont want to use github
11:38:11 <ais523> I don't like github eitehr
11:38:14 <b_jonas> cluid: I say put it on the wiki.
11:38:16 <cluid> if someone else puts it on github that would be fine/kind
11:38:18 <cluid> ok thank you
11:38:28 <ais523> I'm fine with other repo hosting sites, I just dislike github in particular
11:38:32 <b_jonas> (Provided it's 90 not very long lines.)
11:38:55 <b_jonas> ais523: do you like gitorious
11:38:57 <b_jonas> ?
11:39:03 <ais523> b_jonas: it's my favourite git hoster, right now
11:39:31 <oren> bah git is unnecessarily complex to my mind...
11:39:35 <elliott> cluid: you could put it on a subpage of your user page and link to that or such
11:39:38 <elliott> that's quite common
11:39:39 <b_jonas> (is github better than sourceforge?)
11:40:02 <elliott> ais523 got crawl to use gitorious and everyone involved has suffered for years because of it :p
11:41:05 -!- callforjudgement has joined.
11:43:39 -!- ais523 has quit (Ping timeout: 245 seconds).
11:43:43 <oren> im giving up on the undivider for now, can't figure out a good heuristic
11:43:48 -!- callforjudgement has changed nick to ais523.
11:45:34 <cluid> undivider?
11:46:51 -!- ais523 has quit (Read error: Connection reset by peer).
11:46:53 <oren> suppose i have a double f which i know came from dividing two small numbers. reproduce the small numbers again.
11:47:00 -!- ais523 has joined.
11:47:40 <oren> of course it is not necessary to distinguish 3/9 from 1/3...
11:47:45 <b_jonas> oren: use continuous fractions for that
11:48:03 -!- ais523 has quit (Read error: Connection reset by peer).
11:48:17 -!- ais523 has joined.
11:48:19 <oren> nah let's assume the double came from say a core dump...
11:48:23 <b_jonas> wait, I might have code for that
11:48:53 <b_jonas> um
11:48:56 <b_jonas> continued fractions
11:49:05 <b_jonas> I think that's what they're called, not "continuous fractions"
11:49:34 <b_jonas> here: http://www.perlmonks.com/?node_id=424519
11:49:36 <b_jonas> there's the code
11:49:51 <b_jonas> oren: see there
11:49:54 <oren> looks good.
11:50:49 <b_jonas> for reference on the theory of how it works, I recommend the ''Concrete Mathematics'' book
11:51:03 <cluid> How do I upload an image to wiki?
11:51:06 <cluid> http://i.imgur.com/axDhZce.png
11:51:08 <cluid> I want to use this one
11:51:32 <oren> under tools, upload file
11:51:52 <b_jonas> cluid: http://esolangs.org/wiki/Special:Upload (you may have to log in first)
11:52:20 <b_jonas> wait, is the source code 90 lines PLUS and image?
11:52:26 <HackEgo> [wiki] [[Special:Log/upload]] upload * Cluid Zhasulelm * uploaded "[[File:Fulbt.png]]": A picture of a full binary tree
11:53:08 <oren> source code doesn't include an image i don't think, it is not that kind of language
11:54:24 <cluid> A continued fraction would be good
11:54:31 <cluid> you can take the first fwe terms before you see a very large convergent
11:54:45 <b_jonas> zzo38: you might or might not be interested in http://www.madore.org/~david/weblog/d.2014-12-10.2254.html#d.2014-12-10.2254
11:54:57 <cluid> it's very easy to compute a CF
11:55:15 <cluid> take off the integer part and then 1/ in a loop
11:55:30 <b_jonas> cluid: sure, but what I wrote is more numerically stable
11:55:42 <cluid> oh interesting
11:55:43 <b_jonas> it won't give as much nonsense when you run out of precision
11:55:48 <b_jonas> and it's not too complicated either
11:55:51 <cluid> il have to look at this
11:55:53 -!- Patashu has quit (Ping timeout: 244 seconds).
11:57:36 <HackEgo> [wiki] [[Treehugger]] N http://esolangs.org/w/index.php?oldid=41436 * Cluid Zhasulelm * (+1495) created page
11:58:58 <elliott> cluid: btw one disadvantage of putting implementations on the wiki is that they have to be public domain
11:59:26 <cluid> what's bad about that?
11:59:59 <elliott> nothing unless you like the gpl or whatever
12:00:05 <elliott> just letting you know
12:00:06 <cluid> I like GPL a lot but this is fine
12:00:07 <cluid> thank you!
12:00:16 <HackEgo> [wiki] [[Treehugger/Implementation]] N http://esolangs.org/w/index.php?oldid=41437 * Cluid Zhasulelm * (+2989) Implementation
12:00:26 <elliott> I like the GPL in spirit but the implementation isn't great :/
12:00:34 <cluid> If anyone will try writing programs in this I would be interested in what you find
12:00:44 <cluid> also the code is excellent
12:01:47 <b_jonas> elliott: sure. but for an esolang, it can be useful to have a readable (non-obfuscated) reference interpreter which is clearer than your description
12:02:17 <elliott> cluid: I wonder how hard a self-interpreter would be
12:02:23 <elliott> it would be cool to write the tree structure
12:02:31 <elliott> doing fiddly things like parsing makes it unfun though :/
12:03:14 <HackEgo> [wiki] [[User:Cluid Zhasulelm]] M http://esolangs.org/w/index.php?diff=41438&oldid=41295 * Cluid Zhasulelm * (+124)
12:04:49 <ais523> elliott: GPL3 has a much better impl than GPL2; it annoys me a lot when people use GPL2 specifically because they like the bugs, because BSD or Expat or something would probably be a better choice for those people
12:04:57 <ais523> but yes, it could be better still
12:05:08 <elliott> ais523: I just don't like how you get fuzzy definitions of "linking"
12:05:09 <ais523> I guess the GPL looks good once you're working with the NetHack General Public License
12:05:21 <ais523> which is one of the buggiest licenses ever
12:05:23 <elliott> where things like static linking can be relevant and stuff
12:05:27 <elliott> LGPL is much worse in that respect though
12:05:36 <elliott> like when using GHC, LGPL is equivalent to GPL basically
12:05:42 <ais523> I had to invent a comment syntax for NetHack level files purely to comply with the license
12:05:57 <cluid> If anyone looks at my page http://esolangs.org/wiki/Treehugger and http://esolangs.org/wiki/Treehugger/Implementation - would you comment? thanks you
12:06:02 <ais523> also there's hugely widespread disagreement on lawyers about linking wrt the GPL
12:06:11 <cluid> -ss
12:06:13 <ais523> and people just prefer to avoid the issue if they can
12:06:17 <ais523> the whole libedit controversy, for instance
12:06:47 <ais523> (actually, I wonder if the FSF position on that is actually correct, in the wake of Oracle v. Google; I hope it isn't, because it's ridiculous)
12:06:49 <elliott> cluid: I think a "reified" binary tree in this language would look like a 0 or 1 to denote whether it has children
12:07:06 <elliott> cluid: followed below by either two leaf value slots if not, or a left and right pointer if so
12:07:06 <cluid> I dont understand
12:07:06 <oren> lawyers are more expensive than programmers
12:07:14 <elliott> cluid: if you wanted to represent finite binary trees in this language
12:07:19 <elliott> using the binary trees it has
12:07:20 <cluid> oh you mean like implementing it in a non lazy language
12:07:23 <cluid> that's a good idea!
12:07:23 <elliott> no I mean
12:07:28 <elliott> implementing binary trees inside the language
12:07:30 <cluid> ohh
12:07:31 <cluid> I see
12:07:35 <cluid> I agree
12:07:38 <elliott> (since I was thinking about a self-interpreter)
12:08:20 <cluid> a self interpreter would be really stunning
12:08:44 <oren> a structure like ((*,*),(*,t)) could be used to implement each node of the empulated tree
12:08:48 <elliott> so if you have that tree structure you should be able to write something that descends to an index in it coded as binary
12:08:49 <cluid> I was shocked how small the best BF interpreter is
12:08:53 <cluid> self-interpreter
12:09:01 <cluid> I looked up some stuff to get ideas to try out in treehugger
12:09:02 <ais523> the smallest, you mean?
12:09:05 <elliott> by moving it into the 0/1 meta slots, chopping off a bit, and then copying the new index down to the appropriate child
12:09:06 <cluid> yes
12:09:14 <cluid> the best at smallness :P
12:09:19 <ais523> self-interpreting BF is interesting because of the limited access to data that you have
12:09:23 <elliott> [^] will ascend all the way up a tree
12:09:40 <ais523> hmm, BF self-interpretation is obviously eigenratio infinity, right?
12:09:41 <oren> what if there is no top
12:09:47 <elliott> there isn't, but you run into a 0
12:09:53 <oren> ah
12:09:54 <ais523> because you can't keep your place in both the program and data at the same time
12:09:59 <ais523> actually, no, it's O(length of program)
12:10:05 <elliott> cluid: one thing that's a bit weird is that moving around gets you a penalty
12:10:08 <ais523> as you can move the program around as you move the tape pointer around
12:10:14 <ais523> massively slow, but not so bad asymptotically as leaving it in place
12:10:28 <elliott> cluid: like if you're a thousand nodes deep in the reified tape you have to like [^]< down to the program and back again
12:10:51 <b_jonas> ais523: as for me, I prefer non-copyleft licenses these days, like the X11 license. I haven't really thought about gpl2 versus gpl3 yet.
12:11:09 <elliott> ais523: why use GPLv3 when AGPLv3 exists?
12:11:19 <elliott> agpl is also bug-fixing in the same way
12:11:39 <elliott> okay no I don't even want to talk about licenses on IRC ever again
12:11:47 <ais523> OK, let's change the topic then
12:11:58 <b_jonas> ok
12:12:01 -!- ais523 has set topic: arbitrarily changed topic | https://dl.dropboxusercontent.com/u/2023808/wisdom.pdf http://codu.org/logs/_esoteric/ http://tunes.org/~nef/logs/esoteric/.
12:13:32 -!- nyuszika7h has quit (Remote host closed the connection).
12:15:01 <Jafet> In some sense, the eigenratio of brainfuck is constant
12:15:02 -!- nyuszika7h_ has joined.
12:15:36 <Jafet> As you interpret the input program, also take some time to search for a proof that the program state is a brainfuck interpreter applied to a program
12:15:50 <Jafet> When you find such a proof, start interpreting the nested program instead
12:16:47 <oerjan> <ais523> hmm, BF self-interpretation is obviously eigenratio infinity, right? <-- i discussed it with that eigenratio guy previously, the _usual_ implementations have something like a^(n^2) growth but i also thought of that moving the program thing which gives an actual eigenratio.
12:17:47 <ais523> Jafet: doesn't that fail in cases where you have a program that's a BF interp, but not provably so?
12:18:03 <ais523> if you're talking about the alternative case where you just have an interpreter that recognises and optimizes out itself
12:18:09 <ais523> something like that would be pretty handy for Feather
12:18:26 <Jafet> Well, if you write a bf interpreter presumably you know why it is one
12:18:41 <oren> what if some bf instructions take longer than others?
12:18:56 <b_jonas> ais523: that's pretty unlikely. but I wonder if the program would start nested bf interpreters faster than you can prove it's a bf interpreter
12:19:24 <Jafet> The self-recognition case is degenerate, but any attempt to generalize it would require proof search probably
12:19:25 <oren> in particular, a naive interpreter might take O(n) time to do a [ or ]
12:19:32 <ais523> oren: doesn't matter for computational complexity unless some of them are asymptotically slower
12:19:40 <b_jonas> also, a program could start a bf interpreter parallel to some other task, so you may have to recognize that too.
12:19:48 <ais523> not sure if [] matching is asymptotically slower on the right variable
12:20:02 <Jafet> Yes, but the definition of eigenratio presupposes a tower of (arbitrary) interpreters
12:20:03 <b_jonas> like, a bf interpreter and some fancy performance counters.
12:20:06 <oren> program size?
12:22:19 <oren> yes i think a naive interpreter would be O(1) on program size for most instructions but O(n) on program size for [ and ]
12:22:59 <oerjan> oren: as i said, i concluded a naive interpreter's "eigentower" grows as O(a^(n^2+...))
12:23:34 <oerjan> where n is number of generations and ... is something <=linear
12:23:54 <oerjan> ...i guess that's redundant with O()
12:24:07 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
12:24:46 <oerjan> oren: note that you're not going to escape using [ and ] for implementing the others, so things definitely go O(n) from second generation
12:25:55 <oerjan> or well, you can try tricks that delay it for a finite number of generations, clive gifford tried some
12:26:22 <oerjan> iirc
12:26:52 -!- shikhout has joined.
12:30:16 <oerjan> designing an actual moving-program bf self-interpreter that has an eigenratio you can calculate is one of my many vaporware projects.
12:30:24 -!- shikhin has quit (Ping timeout: 265 seconds).
12:30:37 <oerjan> i think its eigenratio would be several thousand, at least
12:33:15 -!- sebbu2 has changed nick to sebbu.
12:33:42 <b_jonas> oerjan: moving program? wouldn't it be rather repeated program?
12:35:08 <oerjan> b_jonas: no, you put the representation of your program between your left and right tape representations, and > and < are implemented by moving the whole program representation
12:35:25 <oerjan> repeating the program would seem overkill in comparison...
12:35:44 <b_jonas> oerjan: ah!
12:36:00 <b_jonas> that could work, yes
12:40:35 <oerjan> another thing that i believe will simplify the actual matrix (by avoiding having a row/column for every possible cell _value_ you operate on) is to let the current cell be either to the left or to the right of the program representation, and not moving across it unnecessarily.
12:40:57 -!- shikhout has quit (Ping timeout: 258 seconds).
12:41:59 -!- shikhin has joined.
12:42:37 <oerjan> but that's just an additional trick, and not necessary to have an eigenratio bound.
12:45:40 <HackEgo> [wiki] [[IDTM]] http://esolangs.org/w/index.php?diff=41439&oldid=41430 * TomPN * (+42)
12:45:50 <elliott> the thing about phi eigenratio got disproved right
12:46:20 -!- nyuszika7h_ has changed nick to nyuszika7h.
12:46:21 <oerjan> as far as i am concerned my unlambda self-interpreter did that
12:47:28 <elliott> howso? I've forgotten
12:47:35 <oerjan> it has eigenratio 1
12:47:48 <oerjan> because it is nearly entirely metacircular
12:48:57 <elliott> well, I mean, so does eval
12:49:07 <elliott> what I mean is "no eigenratios > 1 < phi"
12:49:15 <oerjan> oh well
12:49:16 <elliott> (and then arbitrarily branding eigenratio 1 as cheating)
12:49:25 <cluid> is phi one?
12:49:40 <oerjan> > (sqrt 5 + 1)/2
12:49:41 <lambdabot> 1.618033988749895
12:49:45 <oerjan> it's that
12:49:53 <cluid> has that been attained?
12:50:18 <elliott> no but there's some anecdotal evidence/handwavy argument that it might be a lower bound of some sort
12:50:35 <elliott> http://eigenratios.blogspot.co.uk/2007/11/search-for-phi-holy-golden-ratio.html
12:50:50 <cluid> i thought he just picked it beacuse its a nice looking number
12:51:31 <elliott> there's a bit more argumentation in that post :p
12:51:42 <oerjan> i don't think it really is a lower bound even in that sense because you can lower the number by having a longer chain of operations that are implemented as a single other.
12:51:45 <elliott> (it's more about it "feeling" right than just being pretty, though, I think)
12:52:25 <elliott> oerjan: I guess
12:52:28 <elliott> I want it to be true though :(
12:52:42 <oerjan> OKAY
12:54:08 <oren> it really annoys me that letter size paper isn't a golden ratio
12:54:48 <oerjan> you know A(n) paper is sqrt(2) ratio for rather elegant reasons, right?
12:54:58 <cluid> oren, golden ratio is a myth hth
12:55:30 -!- mr45_ has joined.
12:55:44 <oren> the point is that when you fold the paper in half it has the same proportions
12:56:16 <oren> so you can print 2^n pages on one page without distortion
12:56:19 <oerjan> oren: yes. assuming you're referring to sqrt(2) _not_ golden ratio
12:56:52 <oren> yes.
12:57:02 <oerjan> oren: psst, you can still print 4^n pages
12:57:06 <oren> golden ratio on the other hand just looks good
12:57:18 <oerjan> or n^2 pages
12:57:26 <cluid> can you print phi^n pages?
12:57:38 -!- ais523 has quit (Read error: Connection reset by peer).
12:57:43 <elliott> the golden ratio is literally a myth
12:57:43 <oerjan> cluid: no because that's never an integer hth
12:57:45 <elliott> like the number doesn't exist
12:57:46 -!- callforjudgement has joined.
12:57:48 <elliott> complete hoax
12:57:55 <elliott> (sqrt(5)+1)/2 has no value
12:58:14 <callforjudgement> with golden ratio, you could cut out a square and be left with a piece of paper of the same proportions
12:58:17 <oren> well it has no value in the rationals hth
12:58:17 <callforjudgement> I'm not sure if that's useful or not
12:58:19 <oerjan> elliott: it's used to hide the mathematical errors of the "round globe" fraud hth
12:58:20 <fizzie> oerjan: Origamists would probably like golden ratio paper, because you could cut off a square (and use it for folding), and still be left with...
12:58:27 <cluid> lol
12:58:33 <oerjan> fizzie: true
12:58:36 <elliott> oren: yeah, believing in the golden ratio can only be irrational
12:58:44 <cluid> Origamists prefers squares
12:59:00 <fizzie> callforjudgement: I had painstakingly typed all that with a touchscreen and then you scooped it.
12:59:07 <cluid> the golden ratio: 1 : 1
12:59:20 <oerjan> callforjudgement: fizzie: are you competing with me and int-e for redundancy?
12:59:33 <oren> i have a notebook from mexice which for some reason has square pages
12:59:38 <oren> *mexico
13:00:27 <callforjudgement> oren: not fair, I didn't see your line due to disconnect
13:00:40 <callforjudgement> *oerjan:
13:00:47 <callforjudgement> you two have names that are very easy to mistabcomplete into each others'
13:00:51 <oerjan> callforjudgement: _my_ line?
13:00:56 <oerjan> callforjudgement: *fizzie
13:01:09 <fizzie> I was later.
13:01:22 <callforjudgement> mine came before fizzie's
13:01:34 <callforjudgement> and because I wasn't here for the original, I didn't see who said it
13:01:45 <oerjan> callforjudgement: i ... don't think there was one?
13:01:59 <callforjudgement> oh
13:02:14 <callforjudgement> why are you accusing me of competing with people for redundancy when I was first, then?
13:02:15 -!- callforjudgement has changed nick to ais523.
13:02:26 <oren> all i said was that it annoys me that letter size paper isn't a golden ratio
13:02:45 <HackEgo> [wiki] [[IDTM]] http://esolangs.org/w/index.php?diff=41440&oldid=41439 * TomPN * (-2) /* Syntax */
13:02:47 <oren> it isnt root 2 either... so it is entirely useless
13:03:02 <oerjan> ais523: you and fizzie are stealing our redundancy trademark hth
13:03:26 <cluid> why should it be golden ratio?
13:03:38 <oren> because it look better
13:03:41 <oerjan> it's a myth. a myth!
13:03:41 <cluid> no it wouldn't
13:04:09 <HackEgo> [wiki] [[IDTM]] http://esolangs.org/w/index.php?diff=41441&oldid=41440 * TomPN * (+131)
13:04:29 <int-e> oerjan: the more the merrier, you just have to learn to share.
13:04:40 <oerjan> int-e: NOOOOOOOOOOO sharing
13:04:41 <fizzie> Let's compromise on 1.5, then you can fold one big crane and twi small ones.
13:06:13 <oerjan> fizzie: how rational of you.
13:06:47 <oren> 8.5/11 is just... stupid.
13:07:00 <oren> it is a stupid number
13:09:14 <elliott> the golden ratio is 1/79
13:09:15 * elliott hides
13:09:30 <cluid> Recent reviews of the empirical literature bearing on the claim of special aesthetic significance for this ratio in the context of the perception of simple figures include Green (1995), Hoge (1995), and contributors to a dedicated edition of Empirical Studies of the Arts (Hoge 1997). Some investigators doubt that the golden section has any aesthetic significance, even suggesting that research on it be abandoned
13:09:42 <cluid> Russel (2000) explored the height to width ratio of a large database of famous paintings and did not find any particular support for a preference for the golden-section
13:10:05 <cluid> McManus (1980) felt that existing empirical research was unable to adequately differentiate preference for the golden-section versus other similar ratios such as 1.5, 1.6 or 1.75.
13:10:12 <cluid> Boselie F, 1992. "The golden section has no special aesthetic attractivity!" Empirical Studies of the Arts 10 1-18.
13:10:31 <oren> well 8.5/11 is not even close and i hate it
13:10:38 <ais523> one use I like for the golden ratio is using rotations of (tau/golden ratio) radians around a color wheel to create distinct colors
13:11:04 <ais523> because it's irrational, the colours never exactly repeat; and the golden ratio is also quite good at avoiding approximate clashes
13:11:23 <cluid> ais523, there is rigorous mathematics explaining why that works
13:11:36 <ais523> well, yes, obviously
13:11:47 <oren> damn ais523 that is what i should have done instead of using rand
13:11:49 <int-e> sqrt(2) is so much better
13:12:06 <oren> i will remeber that trick
13:12:12 <ais523> oren: for what, colours?
13:12:15 <oren> yeah
13:12:23 <elliott> ais523: tau, really :p
13:12:25 <ais523> also, the word "damn" looks a little out of place there
13:12:38 <cluid> phi has importance in number theory, not `aesthetics`
13:12:43 <ais523> normally I go into a rant when people use it, but this time I'm just confused because I can't parse the sentence
13:12:49 <ais523> elliott: I wanted "complete circles"
13:12:57 <ais523> what did you want me to say? 400 gradians?
13:13:03 <cluid> use 2 pi
13:13:16 <oren> ais523: it is an exclamation of dismay hth
13:13:27 <elliott> I guess complaining about tau is even more a waste of time than using tau in the first place
13:13:29 <ais523> stop hthing, that's oerjan's gimmick
13:13:43 <ais523> really we just need a "complete cycles" unit of measurement
13:13:44 <oren> it helps to increase confusion dth?
13:13:53 <ais523> hertz-seconds, perhaps
13:14:07 <int-e> "rotations"
13:14:15 <oren> 'cycles'
13:14:37 <ais523> well, hertz = cycles per second, thus hertz-seconds = cycles
13:14:39 <int-e> but "rotations" has precedent in rpm.
13:14:52 <cluid> http://www.shallowsky.com/blog/science/fibonautilus.html
13:15:29 <int-e> (Not a strong argument. But I rarely associate associate Hertz with rotations.)
13:16:11 <ais523> elliott: anyway, tau makes more sense in that context than in most others, because of the actual connotation of "complete rotation" which is its only advantage over pi in the first place
13:17:06 <cluid> tau is bad because of the assholes spamming wikipedia with it
13:17:16 <Jafet> Hertz-seconds, the SI definition of numbers
13:18:56 <oerjan> naughtilus
13:20:21 -!- mr45_ has left.
13:20:38 <oerjan> hm are there any other SI units that can be multiplied to be dimensionless
13:20:58 <int-e> oh. "The cycle per second was a once-common English name for the unit of frequency now known as the hertz."
13:21:57 <fizzie> oerjan: Can't all of them? metres per meter, ...
13:21:58 <ais523> oerjan: or more interestingly, multiplied to be dimensionless and not equal to 1
13:21:58 <oerjan> they should have made more of the units be vaguely relevant german organ names
13:22:37 <oerjan> ais523: well you have to find the first before you can get the latter
13:22:43 <fizzie> The bequerel is the same as the hertz.
13:23:02 <oerjan> wat
13:23:06 <fizzie> It's s^-1, as decays/time.
13:23:23 <ais523> fizzie: in that case bequerel-seconds also work
13:24:04 <fizzie> "A special name was introduced for the reciprocal second (s−1) to represent radioactivity to avoid potentially dangerous mistakes with prefixes. For example, 1 µs−1 could be taken to mean 106 disintegrations per second: 1·(10−6 s)−1 = 106 s−1.[3] Other names considered were hertz (Hz), a special name already in use for the reciprocal second, and fourier (Fr).[3] The hertz is now ...
13:24:06 <oerjan> i suppose radians and steradians...
13:24:10 <fizzie> ... only used for periodic phenomena.[2] Whereas 1 Hz is 1 cycle per second, 1 Bq is 1 aperiodic event per second."
13:24:11 -!- oren has quit (Ping timeout: 256 seconds).
13:24:38 <int-e> oerjan: well there are plenty of secondary units. N = kg m/s^2
13:24:55 <oerjan> fizzie: i mean without using division, obviously
13:25:18 <int-e> oerjan: so you probably need some more rules in the game.
13:26:21 <oerjan> int-e: the rule is to take a list of named units and multiply them, hth
13:26:27 <fizzie> oerjan: Well, arguably second-hertz makes seconds dimensionless just as much as hertz-seconds make hertz.
13:29:26 <oerjan> the list at https://en.wikipedia.org/wiki/International_System_of_Units#Derived_units contains no negative exponents for mol, K or cd
13:30:14 <mroman> !blsq_uptime
13:30:14 <blsqbot> 8d 23h 23m 44s
13:30:28 <fizzie> The farad-ohm-becquerel is dimensionless, but it's just making use of the same 1/s as before.
13:30:55 <fizzie> On the other hand, the farad-ohm makes for a nice name for a second.
13:31:13 -!- callforjudgement has joined.
13:31:33 <callforjudgement> <oerjan> int-e: the rule is to take a list of named units and multiply them, hth ← N = kg m Hz Hz
13:31:35 <fizzie> Oh, the ohm-siemens, of course.
13:31:56 <fizzie> They're exactly complementary.
13:31:57 <callforjudgement> I am annoyed at conductance having units
13:32:00 <oerjan> callforjudgement: um the result is supposed to be dimensionless hth
13:32:26 <oerjan> fizzie: oh right
13:32:38 -!- ais523 has quit (Ping timeout: 252 seconds).
13:32:45 <fizzie> (One is V/A and the other is A/V.)
13:32:55 <oerjan> hertz-farad-ohm would be a good spell invocation
13:33:00 -!- callforjudgement has changed nick to ais523.
13:33:27 <oerjan> and probably very painful for the recipient
13:33:55 <ais523> well, farad+ohm gives you an RC circuit, which is one of the simplest ways to make time-sensitive electronics
13:34:15 <ais523> put appropriate circuitry around that (an amplifier or inverter or similar), you can probably measure the resulting circuit in hertz or in seconds
13:36:54 -!- J_Arcane has quit (Quit: ChatZilla 0.9.91-rdmsoft [XULRunner 32.0.3/20140923175406]).
13:37:00 <int-e> beautiful. https://en.wikipedia.org/wiki/File:Original_Abraham-Bloch_multivibrator_circuit.png
13:38:01 <b_jonas> oerjan: hehe
13:39:14 <int-e> oerjan: are you trying to generate sparks?
13:39:16 <b_jonas> and there's a higher level version, the hertz-farad-henry-ohm
13:40:29 <oerjan> int-e: or obliterating them, only science will tell!
13:41:06 <oerjan> b_jonas: not dimensionless hth
13:41:08 <int-e> oerjan: so do you think the monks have another of those muses around?
13:41:11 <ais523> int-e: there are a ton of ways to make time-dependent circuits
13:41:17 <oerjan> int-e: hm good question
13:41:26 <ais523> hook an RC circuit up to anything vaguely amplifier-like, and you'll most commonly get oscillating behaviour
13:41:39 <ais523> I guess the interesting thing about that circuit is that it was the first to be discovered
13:41:52 <ais523> also there is something somewhat hilarious about the 80 volt battery
13:42:08 <int-e> ais523: also the voltages are way more impressive than what electronics generally deal with today
13:42:14 <int-e> exactly
13:43:39 -!- atslash has quit (Quit: This computer has gone to sleep).
13:43:42 <ais523> the voltages used in modern circuits have gone down and down over time
13:43:57 <ais523> modern electronics is about making it still work at lower voltage, because then you get less energy wasted when you make it go faster
13:44:43 <b_jonas> yeah
13:44:50 <int-e> I knew that.
13:45:06 <int-e> `? smart
13:45:07 <HackEgo> smart? ¯\(°​_o)/¯
13:46:47 <cluid> How about reversible CPUs?
13:46:57 <cluid> since information isnt destroryed, it can work with less energy
13:47:08 <cluid> this might be a big improvement in computing
13:48:11 <ais523> all quantum computations have to be reversible up to the point you measure the
13:48:12 <ais523> *them
13:48:32 <ais523> otherwise they'd require too much energy
13:48:56 <oerjan> cluid: that was the idea of the pendulum architecture. unfortunately the main cpu lines are just too good for reversible ones to compete (yet!)
13:49:08 <cluid> i thought reversible was just a property of quantum computing
13:49:16 <cluid> can you elaborate on that "otherwise"?
13:50:17 <oerjan> i'd imagine if reversibility gets used it would be in a hybrid way.
13:50:41 <ais523> cluid: well the theory is, destroying information needs energy
13:50:49 <oerjan> making as much of the cpu reversible as possible, but preserving overall backwards compatibility
13:50:51 <cluid> oh yeah
13:50:53 <ais523> and you'd need to destroy the information in multiple multiverses at once
13:50:55 <cluid> so this is the same principle as i said
13:51:08 <ais523> and as yet, we don't know how to steal information from other potential universes
13:51:20 <cluid> I have a question about multiple universes?
13:51:32 <oerjan> https://en.wikipedia.org/wiki/Landauer's_principle for anyone following along
13:51:39 <ais523> cluid: I'm not an expert in this stuff
13:51:49 <ais523> I did it as my A-level coursework, but that's about it
13:52:03 <ais523> one nice thing about doing coursework on an obscure subject is that it reduces the chance that the person marking it will know the subject
13:52:11 <ais523> so they'll find it harder to find errors in it
13:52:22 <int-e> https://www.cise.ufl.edu/research/revcomp/ has a funny slide that implies that reversible computing should begin to matter this decade.
13:52:33 <oerjan> ais523: we don't even know if other universes exist, they might just be a mathematical convention and we'll find some other explanation.
13:52:39 <int-e> of course that's there area of research so I take it with a spoonful of salt
13:52:43 <ais523> oerjan: indeed, definitely
13:52:44 <int-e> (yuck!)
13:52:58 <elliott> salt is tasty
13:53:02 <elliott> I'd eat a spoonful of salt
13:53:03 <ais523> however, even if they don't, it seems reasonable that the laws you'd predict from involving multiple universes still work, but for a different reason
13:53:10 <ais523> elliott: I hope it's a very small spoon
13:53:17 <cluid> oerjan, I hope we have a differetn interpretation, the multiple universes thing is really scary to me
13:53:20 <elliott> depends how much you're paying me
13:53:25 <int-e> elliott: nothing!
13:53:33 <int-e> elliott: the salt was expensive enough
13:53:40 <ais523> from my point of view, the issue with salt is a) it's added too soon in the cooking process by most people, b) although it tastes nice in small amounts, almost anywhere which salts things will use too much
13:53:56 <oerjan> int-e: ooh
13:54:04 <ais523> for instance, last I looked, unless I completely messed up the calculations, there's more salt in one slice of bread than there is in a packet of ready salted crisps
13:54:13 <ais523> and yet the salt tastes much nicer in the crisps
13:54:22 <elliott> arguments about cooking in #esoteric > arguments about programming in #esoteric
13:54:40 -!- J_Arcane has joined.
13:54:49 <int-e> oerjan: sorry for the typo, this one was unintentional for once.
13:54:54 <cluid> hwy is there so much salt in bread
13:57:14 <int-e> Hmm the bread I'm currently eating has 1.1g/100g, the chips 2.0g/100g (they're cheese flavoured, not primarily salty.)
13:57:16 <oerjan> int-e: wait what typo
13:57:23 <int-e> oerjan: their.
13:57:26 <oerjan> oh.
13:57:37 <oerjan> 's ok just say 50 hail marys
13:58:00 * oerjan isn't even catholic.
13:58:40 <ais523> int-e: I have a feeling that the salt-as-only-flavouring crisps actually have lower salt content than the other flavours
13:58:58 <int-e> could be. I don't like them very much.
13:59:07 <int-e> So I'll have to go to a shop to check the theory.
13:59:44 <oerjan> int-e: i can't swat you for saying "there" when other people are going around saying "hwy"
14:00:41 <int-e> I hvae more sympathy for "hwy" though ;-)
14:00:43 <oerjan> ais523: so basically they are using more salt when they're not paying attention to it?
14:02:06 <ais523> <spambot> RE: YOU’RE PAYMENT NOTIFICATION
14:02:43 <oerjan> int-e: that slide seems to be more than a decade old though
14:03:28 <oerjan> ais523: you're aware of the "make obvious errors so people to smart to fall for our scame drop out early" theory, i assume
14:03:34 <oerjan> *too
14:03:38 <oerjan> *scam
14:03:41 <ais523> oerjan: yes
14:03:48 <ais523> I might have been the person who introduced #esoteric to it
14:03:52 <oerjan> you prob... right
14:04:00 <cluid> what scam
14:04:06 <ais523> that said, I received an email that looked a huge amount like a Facebook friend request reminder, but I'm not on Facebook and have never heard of the person who sent it
14:04:16 <cluid> oh
14:04:31 <oerjan> cluid: basically nearly all spam scams look hilariously bad to intelligent people
14:04:50 <b_jonas> ais523: I believe sites loke facebook still send email like that asking you to join and friend or whatever, even if you're not joined yet.
14:04:53 <oerjan> and the theory is that this is intentional because they _don't_ want intelligent people
14:05:07 <oerjan> they want really, really gullible ones
14:07:19 <int-e> and desparate, I suppose
14:07:58 <oerjan> *desperate
14:14:10 <oerjan> "Though even the Landauer limit is millions of times below the energy consumption of modern computers."
14:14:25 <oerjan> i'm guessing it might not be this decade, then.
14:15:03 <cluid> we have high level reversible programming languages and efficient compilers to reversible instruction sets
14:15:14 <cluid> hardware has been fabricated too
14:15:43 <oerjan> i mean that they won't see the need for it this decade
14:16:24 <oerjan> because it's still 3 decades of moore's law before we hit that limit
14:16:48 <b_jonas> only millions? are we that close already?
14:17:00 <b_jonas> or is that just one of those riddiculous understatements/
14:17:37 <oerjan> "Theoretically, room‑temperature computer memory operating at the Landauer limit could be changed at a rate of one billion bits per second with only 2.85 trillionths of a watt of power being expended in the memory media. Modern computers use millions of times as much energy."
14:18:59 <oerjan> you do the math (because i'm too lazy)
14:19:42 <cluid> doesnt that just mean we could improve things by a lot?
14:20:20 <cluid> is the implication that the reversible stuff would only improve by such a tiny fraction of whats already wasyed?
14:20:55 <oerjan> cluid: well my implication is that they won't change to an entirely new method of doing things while the methods they are good at still work
14:21:23 <oerjan> because incremental improvement is much cheaper than complete revamping
14:21:27 <cluid> i gues we wont see reversible computers :(
14:21:37 <cluid> but its very interesting technolofy
14:22:38 <int-e> hmm. desperate typography channel.
14:23:17 <oerjan> we should ask fizzie to do some typo graphing
14:26:58 -!- callforjudgement has joined.
14:27:05 -!- ais523 has quit (Disconnected by services).
14:27:08 -!- callforjudgement has changed nick to ais523.
14:32:09 <int-e> I have no clue at all what the trade-offs are for reversible computing implementations. I imagine they have higher circuit complexity, larger circuit area, probably longer critical paths, thus lower possible clock frequencies. This has to be weighed against just taking an irreversible circuit and underclocking it, which often allows one to decrease voltages, which also reduces consumed power? Tricky.
14:32:57 <ais523> int-e: also you have to store all the unused bits somewhere
14:33:10 <ais523> most "TC in reversible computing" constructions use a bitbucket
14:33:31 <int-e> oerjan: I imagine that we don't need new production processes though, "only" different software for the process above up to mask preparation.
14:35:17 <cluid> what do you mean "TC in reversible computing"
14:36:09 <ais523> cluid: you have a reversible language, and want to compile to it from a TC language
14:36:15 <cluid> oh yes
14:36:20 <cluid> I think tromp knows about this,
14:36:28 <cluid> it requires some garbage
14:36:58 <cluid> but there is also a notion of 'reversibly turing complete' which involves simulating reversible turing machines no garbage
14:37:22 <int-e> ais523: The architecture doesn't have to be completely reversible anyway. Reducing the number of destroyed bits from 1/2 per transistor and cycle to a couple of thousands or even millions per cycle should help a lot.
14:38:18 <int-e> Anyway, that's pure speculation on my part.
14:39:31 -!- ais523 has changed nick to scarf.
14:39:52 -!- scarf has changed nick to ais523.
14:42:17 <int-e> oh, nice PCP https://en.wikipedia.org/wiki/File:Dec_SYSTEM_BUILDING_BLOCKS_1103.jpg
14:43:39 -!- Sprocklem has quit (Ping timeout: 245 seconds).
14:43:54 <int-e> aaaah
14:43:55 <int-e> PCB
14:44:29 <elliott> I was wondering.
14:45:00 <int-e> (It's a PCB for the PDP 1)
14:45:33 <paul2520> very cool
14:45:59 <paul2520> I'm glad there are pictures. I like preserving our history.
14:46:29 <ais523> I love the fact that someone decapped a 6502 and scanned it with an electron microscope
14:46:43 <paul2520> source?
14:46:44 <ais523> so we now know for a fact exactly how it works
14:46:52 <ais523> oh bleh, it was a news aggregator and years ago
14:46:56 <ais523> so my chance of finding it now is quite low
14:46:56 <paul2520> okay
14:47:06 <b_jonas> ais523: http://visual6502.org/wiki/ , http://visual6502.org/
14:47:08 <b_jonas> um
14:47:10 <b_jonas> paul2520: ^
14:47:18 <b_jonas> and yes, it's amazing
14:47:20 <ais523> asking in #esoteric can be a decent way, though
14:47:24 <paul2520> well done. I was about to search
14:47:46 <b_jonas> they're also trying other chips. they've done one simliar size chip completely, and have some progress in larger chips
14:48:10 <b_jonas> oh wait, there's further progress
14:48:19 <b_jonas> apparently they've finished with the motorola 6800
14:48:20 <b_jonas> nice
14:48:52 <paul2520> oh this is beautiful. I now have desktop backgrounds for life
14:50:03 <b_jonas> hehe
14:50:35 <b_jonas> I use a photo from my brother's wedding as desktop background, but that's not a sustainable plan for life because he won't have more weddings
14:52:09 <oerjan> i'm sure it could be arranged.
14:53:44 <int-e> also you could just stick to that background image forever
14:54:00 <b_jonas> oerjan: like what? polymorph him to a pudding, split him with an iron weapon, polymorph both of them back, hope the clone gets married?
14:54:17 <b_jonas> that's dangerous because he could polymorph to an exploding monster
14:54:26 <int-e> b_jonas: that would be an option. normal people just get a divorce.
14:54:27 <b_jonas> also very expensive
14:54:32 <oerjan> b_jonas: i think you're suffering from evil imagination deficiency hth
14:54:47 <oerjan> (i guess it might not actually be suffering.)
14:55:09 <Jafet> The legality of splitting one's brother in two with an iron weapon seems dubious
14:55:15 <int-e> (I'm omitting another obvious possibility for obvious reasons.)
14:56:02 <oerjan> int-e: actually it's possible b_jonas's problem is he's living inside Nethack
14:56:08 <b_jonas> Jafet: he's not human while polymorphed so it's less illegal
14:56:36 <ais523> can we post from #esoteric to the #nethack qdb?
14:56:37 <Jafet> If you split too hard, it's still murder.
14:57:07 <b_jonas> Jafet: not unless he is a priest or something like that, no
14:57:12 <ais523> Jafet: use a dull, rusty, iron weapon that's corroded down to -3 then
14:57:21 <int-e> oerjan: It's not a problem as long as nobody gets hurt.
14:57:22 <ais523> and use a stethoscope first to make sure that the brother still has at least two hitpoints
14:57:29 <b_jonas> yeah, stethoscope first
14:57:39 <b_jonas> make sure he's fully healed
14:58:46 <int-e> But if you cut a cube in two, won't you get cuboids?
14:58:54 <oerjan> wait, am i the only one here who _isn't_ living inside nethack
14:59:17 <int-e> oerjan: no?!
14:59:31 <b_jonas> int-e: pudding, not gelatinous cube
14:59:36 <int-e> bash: nethack: command not found
14:59:48 <b_jonas> `nethack
14:59:48 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: nethack: not found
14:59:50 <b_jonas> `? nethack
14:59:51 <HackEgo> nethack? ¯\(°​_o)/¯
14:59:56 <ais523> oerjan: I'm more busy manipulating the laws of NetHack to my whim
15:00:17 <oerjan> int-e: good, good
15:00:22 <int-e> oerjan: I've tried the game, didn't get into it.
15:01:06 <b_jonas> int-e: did you get into other video games instead? other fantasy themed games (possibly not video but tabletop) instead?
15:04:18 <int-e> Yes, there are some video games. Sokoban and Lemmings were early favorites, and Lucas Arts adventures. (The Sierra ones, not so much, I hated dying all the time.)
15:04:42 <int-e> Ah I should really say Lucasfilm adventures.
15:04:46 <ais523> int-e: on the subject of NetHack and Sokoban, NetHack inspired me to start working on a Sokoban generator
15:05:02 <ais523> that was years ago, and I ended up downloading a bunch of Sokoban-related stuff for research, then becoming a level designer for Enigma
15:05:10 <ais523> and recently, the Sokoban generator is actually near-complete
15:05:28 -!- augur has joined.
15:05:33 <b_jonas> "hated dying all the time" -- ah, so that's why you don't like nethack. ok.
15:06:03 <int-e> b_jonas: Yes, that's a big part of it.
15:06:11 <b_jonas> ais523: I'd actually like to try to design levels for a game different from sokoban that can be embedded in nethack sort of like sokoban
15:06:23 <b_jonas> but I'm not sure that will work, and don't hold your breath
15:07:49 <ais523> even the embed of Sokoban into NetHack is awkward
15:08:08 <ais523> however, I also got sokogen to generate puzzles for NetHack boulder physics (i.e. without the restrictions that make it work like Sokoban)
15:08:42 <b_jonas> ais523: yes, what I'm thinking of also needs special code.
15:08:51 <ais523> oh, you're thinking of something in particular?
15:09:00 <ais523> rather than just "what games can we simulate with NetHack physics"?
15:09:05 <b_jonas> Yes, I have a particular idea for a game, but it might not actually work.
15:09:11 <ais523> submit it to /dev/null :-)
15:09:17 <ais523> /dev/null/nethack, that is
15:09:18 <b_jonas> In the sense that, it might not be a game for which it's possible to design interesting levels.
15:09:23 <ais523> not the character special file
15:09:27 <b_jonas> :-) no
15:11:57 <cluid> ais523, i would play your sokoban generated levels
15:12:30 <ais523> the generator isn't quite finished yet
15:12:35 <b_jonas> And even if I can make levels, I'm not sure it's a good fit for nethack still.
15:12:38 <ais523> it can generate /parts/ of levels, but not connect them together yet
15:12:53 <cluid> sounds very interesting!
15:13:00 <cluid> have you seen other generated sokoban levels? I know one set
15:14:07 <ais523> I'm just compiling it now
15:14:15 <ais523> I'll give you a part of a level to solve once it's done
15:14:41 <ais523> suddenly realised that I should probably keep this permanently checked out, rather than in a branch of NH4
15:15:44 <oerjan> `addquote <elliott> listen. listen. jesus has saved me from talking about undefined behaviour in C with you any more, and He could save you too.
15:15:46 <HackEgo> 1225) <elliott> listen. listen. jesus has saved me from talking about undefined behaviour in C with you any more, and He could save you too.
15:15:52 -!- `^_^v has joined.
15:26:11 <Jafet> `` echo "<Jessicatz> you play too much nethack when: you look down both sides of the corridor, start to sweat and then realize you're looking at your email address" >wisdom/nethack
15:26:13 <HackEgo> No output.
15:27:46 <oerjan> `? nethack
15:27:47 <HackEgo> ​<Jessicatz> you play too much nethack when: you look down both sides of the corridor, start to sweat and then realize you're looking at your email address
15:34:27 -!- Sprocklem has joined.
15:46:56 -!- S1 has joined.
15:51:05 -!- GeekDude has joined.
16:00:53 -!- atslash has joined.
16:04:46 -!- AnotherTest has joined.
16:10:04 -!- atslash has quit (Quit: This computer has gone to sleep).
16:14:03 <int-e> Oh, Numeric might actually win for once...
16:15:39 <int-e> But I'll probably be proven wrong.
16:20:41 <oerjan> int-e: if so we'll be two hth
16:23:53 <fizzie> So nasty to make it just one past 36.
16:24:05 <oerjan> heh
16:24:18 <int-e> so nasty to put lower case letters before A
16:24:43 <int-e> > filter isAlphaNum [' '..]
16:24:44 <lambdabot> "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\170\178\179\...
16:25:02 <oerjan> fizzie: well haskell's builtins don't support beyond 16 anyhow
16:25:29 <oerjan> int-e: isAlphaNum requires another import, anyhow
16:25:35 -!- drdanmaku has joined.
16:25:38 <int-e> but Burlesque does support bases up to 36
16:25:45 <fizzie> !blsq 12357 36B!
16:25:45 <blsqbot> | "9j9"
16:25:48 <fizzie> !blsq 12357 37B!
16:25:48 <blsqbot> | That line gave me an error
16:26:06 <fizzie> It supports also higher bases as long as it doesn't encounter any digit above 36. :p
16:26:18 <oerjan> fizzie: fancy
16:26:21 <fizzie> !blsq 12345 37B! {just fine}vv
16:26:21 <blsqbot> | "90o"
16:26:31 <int-e> oerjan: I know, it wouldn't really help. But it's still nasty :P
16:27:17 <oerjan> > 276088010547702691069957
16:27:18 <lambdabot> 276088010547702691069957
16:27:20 <oerjan> oops
16:27:29 <oerjan> > logBase 2 276088010547702691069957
16:27:30 <int-e> oerjan: in the meantime, cojna figured out the identity matrix thing. I have no clue.
16:27:31 <lambdabot> 77.86947442093677
16:27:36 <oerjan> heh
16:27:43 <oerjan> int-e: i haven't really tried that one
16:28:00 <oerjan> also nasty: going too high for Int
16:28:46 <int-e> oerjan: yes. that's the deciding factor for Numeric atm.
16:31:38 -!- mihow has joined.
16:31:57 <oerjan> ...wat
16:32:21 <int-e> what wat?
16:33:14 <oerjan> i tried submitting that anyhow and it gave a stack space error
16:33:43 <int-e> > (-1) `div` 37
16:33:45 <lambdabot> -1
16:34:01 -!- AnotherTest has quit (Ping timeout: 256 seconds).
16:34:29 <int-e> even in Haskell, infinite recursion tends to do that :)
16:34:43 <HackEgo> [wiki] [[Special:Log/newusers]] create * QuackQuack * New user account
16:34:49 <oerjan> > 1201688513203::Int32
16:34:50 <lambdabot> -902329677
16:34:55 <oerjan> ic
16:35:13 <oerjan> it worked in my ghci because that's 64 bits, presumably
16:47:39 <int-e> @hoogle Show a => a -> Doc
16:47:41 <lambdabot> Language.Haskell.TH.Ppr showtextl :: Show a => a -> Doc
16:47:41 <lambdabot> Language.Haskell.TH.Ppr ppr :: Ppr a => a -> Doc
16:47:41 <lambdabot> Language.Haskell.TH ppr :: Ppr a => a -> Doc
16:52:43 -!- atslash has joined.
17:02:39 <zzo38> Is there any common program that would buffer all data it receives (in RAM and/or temporary file) and only open the file specified for writing and dump data there upon EOF of input?
17:03:44 <b_jonas> zzo38: hmm... I wonder if you could abuse a program like that,
17:04:17 <ais523> zzo38: what happens if you connect stdbuf to cat, with a very large buffer size?
17:04:20 <b_jonas> it would be easy if you asked for only _writing_ when it gets eof, but if it has to only _open_ the output file it might be harder
17:04:26 <fizzie> zzo38: Yes, it's called 'sponge'.
17:04:30 <ais523> b_jonas: ah, oh right
17:04:35 <ais523> that breaks the stdbuf method
17:05:10 <fizzie> "sponge reads standard input and writes it out to the specified file. Unlike a shell redirect, sponge soaks up all its input before opening the output file. This allows constricting pipelines that read from and write to the same file."
17:05:14 <b_jonas> as in, tail -n 999 might work for large values of 999
17:05:27 <fizzie> I wonder if "constricting" is a typo, or just some sort of a pun.
17:05:43 <b_jonas> fizzie: probably a pun
17:05:59 <b_jonas> it both constricts the pipe and lets you construct the pipeline
17:06:26 <zzo38> I don't have such a "sponge" program on my computer; is there a Windows version available? (I want Linux version too if it is so that when working on Linux I can use it too)
17:07:32 -!- glguy has joined.
17:07:45 <fizzie> zzo38: Debian has it in a package called "moreutils".
17:08:19 <fizzie> I don't know about a Windows version, and "sponge windows" just finds things related to cleaning windows.
17:08:22 <b_jonas> zzo38: how about something like: perl -e "local$/;binmode STDIN;$d=<STDIN>;open$o,q(>:raw),$ARGV[0]or die qq(error open: $!);print$o$d or die qq(error write: $!);close$o or die qq(error close: $!);" outpufilename
17:09:29 -!- oerjan has quit (Quit: leaving).
17:09:38 -!- zzo38 has quit (Remote host closed the connection).
17:14:40 -!- callforjudgement has joined.
17:15:59 -!- atslash has quit (Quit: This computer has gone to sleep).
17:17:53 -!- ais523 has quit (Ping timeout: 250 seconds).
17:18:11 -!- callforjudgement has changed nick to ais523.
17:19:34 -!- augur has quit (Remote host closed the connection).
17:22:04 -!- bb010g has quit (Quit: Connection closed for inactivity).
17:25:35 -!- augur has joined.
17:27:34 -!- oren has joined.
17:29:58 -!- augur has quit (Remote host closed the connection).
17:33:56 -!- augur has joined.
17:39:47 -!- augur has quit (Remote host closed the connection).
17:43:51 -!- hjulle has quit (Ping timeout: 264 seconds).
17:43:59 -!- ais523 has quit (Read error: Connection reset by peer).
17:44:11 -!- ais523 has joined.
17:45:08 <ais523> o
17:52:28 -!- tswett_ has joined.
17:52:58 -!- tswett_ has quit (Client Quit).
17:59:26 -!- ais523 has quit.
17:59:38 -!- ais523 has joined.
18:05:58 -!- S1 has quit (Quit: S1).
18:08:05 <diginet> this is probably a dumb question, but is there a "technical" name for whatever type of grammar you would need to parse TECO? In TECO, there is no delimitation, everything is one string, white space is not significant except in escaped strings.
18:08:26 <diginet> so to parse it you have to go in order
18:09:09 <diginet> commands can have modifiers which are sometimes special characters like a hyphen, and other times letters
18:09:34 <ais523> "the lexical analysis is context-sensitive" might be what you're looking for?
18:11:00 <diginet> ais523: probably
18:11:37 <ais523> INTERCAL has that problem
18:11:42 <diginet> ais523: I'm trying to play around with writing a TECO interpreter, but the lexical analysis stage is incredibly tedious.
18:12:13 <diginet> ais523: it doesn't look like something like FLEX would really be able to handle TECO (though I could be wrong)
18:12:34 <ais523> there is a restriction to make it LALR(1)-parseable (which is in the original manual): if something could be interpreted either as a close paren or an open paren based on the text so far, it's an close paren even if that leads to a syntax error and an open paren would parse correctly
18:13:01 <ais523> this means that the parser needs to tell the lexer what sort of sparkears could close a group
18:13:37 <diginet> "sparkears" ?
18:13:52 <ais523> diginet: INTERCAL has undirected parentheses
18:13:57 <ais523> ' to ' (spark), or " to " (ears)
18:14:12 <ais523> there are various ways to make this unambiguous, such as always alternating
18:14:20 <ais523> but INTERCAL allows you to be ambiguous so long as you're unambiguous
18:15:27 <diginet> LOL
18:16:07 -!- MoALTz has joined.
18:16:41 <diginet> wow that is awful
18:17:15 <diginet> ais523: when you say parentheses, do you mean this as a generalized term to refer to things that "open and close" like (), {}, '', ""?
18:17:33 <ais523> diginet: this is for precedence override in expressions, just like what parentheses do normally
18:17:44 <diginet> oohhhhhh
18:17:46 <diginet> gotcha
18:18:23 <ais523> `! intercal DO .1 <- #15~'#2~#7' DO READ OUT .1
18:18:24 <HackEgo> ​/hackenv/bin/!: 4: exec: ibin/intercal: not found
18:18:30 <ais523> do we have an INTERCALbot here?
18:18:38 <ais523> `` ls bin/*intercal*
18:18:39 <HackEgo> ls: cannot access bin/*intercal*: No such file or directory
18:18:42 <ais523> `` ls ibin/*intercal*
18:18:43 <HackEgo> ibin/cintercal \ ibin/clcintercal
18:18:45 <diginet> ais523: I hope INTERCALbot is written in intercal lol
18:18:48 <ais523> ooh, we have C-INTERCAL
18:18:55 <ais523> that means I can do a better example
18:19:06 <ais523> (CLC-INTERCAL's harder to type because of all the non-ASCII characters)
18:19:40 <ais523> `! cintercal DO .1 <- #5$'#6$#7' DO .2 <- '#5$#6'$#7 DO READ OUT .1 + .2 PLEASE GIVE UP
18:19:43 <HackEgo> ICL999INO SKELETON IN MY CLOSET, WOE IS ME! \ ON THE WAY TO 1 \ CORRECT SOURCE AND RESUBNIT
18:19:50 <ais523> oh, we have C-INTERCAL but it's broken
18:20:43 <ais523> `` ibin/cintercal -u
18:20:44 <HackEgo> ICL999INO SKELETON IN MY CLOSET, WOE IS ME! \ ON THE WAY TO 1 \ CORRECT SOURCE AND RESUBNIT
18:20:56 <ais523> hmm, how do I pass arguments to that
18:21:02 <ais523> `` file ibin/cintercal
18:21:04 <HackEgo> ibin/cintercal: POSIX shell script, ASCII text executable
18:21:06 <cluid> pleaese can I read the IOCCC entries now
18:21:10 <ais523> `` cat ibin/cintercal
18:21:11 <HackEgo> ​#!/bin/sh \ . lib/interp \ interp_file ./interps/c-intercal/c-intercal
18:21:21 <ais523> `` ./interps/c-intercal/c-intercal -u
18:21:22 <HackEgo> cp: missing destination file operand after `/tmp/290.i' \ Try `cp --help' for more information. \ ICL999INO SKELETON IN MY CLOSET, WOE IS ME! \ ON THE WAY TO 1 \ CORRECT SOURCE AND RESUBNIT
18:21:34 <ais523> `` cat interps/c-intercal/c-intercal
18:21:35 <HackEgo> ​#!/bin/bash \ if [ ! "$1" ] \ then \ exit 1 \ fi \ \ INTERCAL="`dirname $0`/inst" \ \ cp "$1" /tmp/$$.i \ $INTERCAL/bin/ick /tmp/$$.i \ if [ -e /tmp/$$ ] \ then \ /tmp/$$ \ fi \ rm -f /tmp/$$.i /tmp/$$
18:21:54 <ais523> `` interps/c-intercal/inst/bin/ick -u
18:21:55 <HackEgo> Trying to open '/home/gregor/projects/hackbot/multibot_cmds/env/interps/c-intercal/inst/share/ick-0.29/ick-wrap.c'... \ Failed! \ Trying to open 'ick-wrap.c'... \ Failed! \ Trying to open 'interps/c-intercal/inst/bin/ick-wrap.c'... \ Failed! \ Trying to open 'interps/c-intercal/inst/bin/../lib/ick-wrap.c'... \ Failed! \ Trying to open 'interps/c-in
18:22:25 <ais523> `` pwd
18:22:26 <HackEgo> ​/hackenv
18:22:44 <ais523> hmm, I think that first entry indicates what's wrong
18:22:48 <ais523> fixing it may be harder
18:23:19 <ais523> the potential solutions involve recompiling C-INTERCAL, making the HackEgo directory structure match the EgoBot directory structure exacly, or hex-ediing the binary
18:23:22 <ais523> all these seem awkward
18:26:22 -!- augur has joined.
18:26:37 -!- shikhout has joined.
18:27:42 -!- augur has quit (Read error: Connection reset by peer).
18:27:53 -!- augur has joined.
18:29:49 -!- shikhin has quit (Ping timeout: 250 seconds).
18:31:17 <int-e> ln -s /home /
18:31:19 <int-e> `` ln -s /home /
18:31:21 <HackEgo> ln: failed to create symbolic link `/home': File exists
18:31:28 <int-e> `` ls -la /home
18:31:29 <HackEgo> total 0 \ drwxr-xr-x 3 0 0 0 Dec 11 18:30 . \ drwxr-xr-x 15 0 0 0 Dec 11 18:30 .. \ drwxr-xr-x 3 0 0 0 Dec 11 18:30 hackbot
18:31:35 <int-e> `` ln -s / /home
18:31:36 <HackEgo> ln: failed to create symbolic link `/home/': File exists
18:31:54 <int-e> `` ls -lad /home
18:31:55 <HackEgo> drwxr-xr-x 3 0 0 0 Dec 11 18:30 /home
18:34:40 <int-e> `` find -name ick-wrap* interps/c-intercal
18:34:41 <HackEgo> find: paths must precede expression: interps/c-intercal \ Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
18:34:55 <int-e> `` find interps/c-intercal -name ick-wrap*
18:34:56 <HackEgo> interps/c-intercal/inst/share/ick-0.29/ick-wrap.c \ interps/c-intercal/src/ick-wrap.c
18:36:07 <ais523> int-e: the problem is that the binary hardcodes the source and build directories, and looks for the files it needs in those and in the current directory and binary's directory
18:36:16 <ais523> and the binary was copied from a system with a different filesystem layout
18:36:32 <int-e> `` ln -s ../share/ick-0.29/ick-wrap.c interps/c-intercal/inst/bin
18:36:34 <HackEgo> No output.
18:36:49 <ais523> int-e: ooh, clever
18:36:54 <ais523> `` interps/c-intercal/inst/bin/ick -u
18:36:55 <HackEgo> Trying to open '/home/gregor/projects/hackbot/multibot_cmds/env/interps/c-intercal/inst/share/ick-0.29/ick-wrap.c'... \ Failed! \ Trying to open 'ick-wrap.c'... \ Failed! \ Trying to open 'interps/c-intercal/inst/bin/ick-wrap.c'... \ Success!
18:37:05 <ais523> int-e: that's not the only file that needs symlinking
18:37:12 <ais523> but it'll probably work for a simple program
18:37:21 <ais523> `! cintercal DO .1 <- #5$'#6$#7' DO .2 <- '#5$#6'$#7 DO READ OUT .1 + .2 PLEASE GIVE UP
18:37:27 <HackEgo> ​/tmp/299.c:14:20: fatal error: fiddle.h: No such file or directory \ compilation terminated.
18:37:52 <int-e> `` cd interps/c-intercal/inst/bin; echo *
18:37:53 <HackEgo> convickt ick ick-wrap.c
18:37:54 <ais523> ooh, it compiles to C, just the runtime support (libick and its dev headers) is missing
18:38:35 <int-e> (I wasn't sure whether we had write access there)
18:39:18 <int-e> `` cd /tmp; echo *.c
18:39:18 <HackEgo> ​*.c
18:39:30 <int-e> `` find interps/c-intercal -name fiddle.h
18:39:31 <HackEgo> interps/c-intercal/inst/include/ick-0.29/fiddle.h \ interps/c-intercal/src/fiddle.h
18:40:32 <int-e> `` find interps/c-intercal -name *.a
18:40:33 <HackEgo> interps/c-intercal/libyuk.a \ interps/c-intercal/libick.a \ interps/c-intercal/inst/lib/libyuk.a \ interps/c-intercal/inst/lib/libick.a \ interps/c-intercal/inst/lib/libickec.a \ interps/c-intercal/inst/lib/libickmt.a \ interps/c-intercal/libidiot.a \ interps/c-intercal/libickec.a \ interps/c-intercal/libickmt.a
18:41:23 <int-e> `` pwd
18:41:24 <HackEgo> ​/hackenv
18:41:26 <oren> http://pastebin.com/m2MLBGuu
18:41:38 <oren> the only union you'll ever need
18:42:19 <int-e> `` ls -lad /usr/include
18:42:20 <HackEgo> drwxr-xr-x 35 0 0 4096 Jan 29 2014 /usr/include
18:42:45 <int-e> `` ln -s /hackenv/interps/c-intercal/inst/include/ick-0.29 /usr/include # hmm
18:42:45 <HackEgo> ln: failed to create symbolic link `/usr/include/ick-0.29': Read-only file system
18:45:39 -!- dts|pokeball has joined.
18:47:16 <oren> hmm nvm i'm missing some of the types from stdint.h
18:48:41 <int-e> `` sed -i 1a"export CFLAGS=-I/hackenv/interps/c-intercal/inst/include/ick-0.29" interps/c-intercal/c-intercal
18:48:44 <HackEgo> No output.
18:48:56 <int-e> `! cintercal DO .1 <- #5$'#6$#7' DO .2 <- '#5$#6'$#7 DO READ OUT .1 + .2 PLEASE GIVE UP
18:48:57 <HackEgo> ​/tmp/299.c:14:20: fatal error: fiddle.h: No such file or directory \ compilation terminated.
18:49:54 <int-e> `` ls /hackenv/interps/c-intercal/inst/include
18:49:55 <HackEgo> ick-0.29
18:50:25 <ais523> int-e: maybe something isn't respecting CFLAGS?
18:50:32 <ais523> I don't think either ick or gcc parse it
18:50:47 <int-e> true.
18:50:52 <int-e> `revert
18:50:57 <HackEgo> Done.
18:51:16 <int-e> I keep forgetting that this is handled by autoconf and make.
18:52:17 <ais523> perhaps the trick is to place a wrapper around gcc somewhere that ick will find it?
18:55:04 <int-e> `` sed -i 1a"export CPATH=/hackenv/interps/c-intercal/inst/include/ick-0.29" interps/c-intercal/c-intercal
18:55:06 <HackEgo> No output.
18:55:12 <int-e> `! cintercal DO .1 <- #5$'#6$#7' DO .2 <- '#5$#6'$#7 DO READ OUT .1 + .2 PLEASE GIVE UP
18:55:15 <HackEgo> ​ \ MCCCXCV \ \ MMDCXXI
18:55:41 <ais523> oh wow, I think it's working
18:55:45 <ais523> the second number should be larger, at least
18:55:51 <ais523> now all we need to fix is syslib
18:55:59 <cluid> does anone know a place i could ask about and get help on algorithms?
18:56:05 <cluid> from knuth
18:56:08 <ais523> `! cintercal DO .1 <- #1 DO .2 <- #1 DO (1000) NEXT DO READ OUT .3 PLEASE GIVE UP
18:56:09 <HackEgo> ICL127ISAYING 'ABRACADABRA' WITHOUT A MAGIC WAND WON'T DO YOU ANY GOOD \ ON THE WAY TO THE CLOSET \ CORRECT SOURCE AND RESUBNIT
18:56:24 <ais523> and I'm not sure how to get -u to complain about that with this setup
18:56:34 <int-e> ais523: so does the symlink-to-bin-dir work for that, too?
18:56:38 <ais523> int-e: it should
18:56:43 <ais523> file name is syslib.i
18:57:15 <ais523> there are various other wrappers too but I don't think there's any way to get ick to use them without command-line args that `! cintercal never uses
18:58:10 <int-e> `` cd interps/c-intercal/inst/bin; ln -s ../share/ick-0.29/* .
18:58:12 <HackEgo> ln: failed to create symbolic link `./ick-wrap.c': File exists
18:58:41 <int-e> `! cintercal DO .1 <- #1 DO .2 <- #1 DO (1000) NEXT DO READ OUT .3 PLEASE GIVE UP
18:58:43 <HackEgo> ​ \ II
18:58:49 <ais523> that's the correct answer
18:59:07 <ais523> I'm amused at your nuclear solution to doing the symlinks, but it seems to work
19:00:13 <oren> RESUBNIT? NIT???
19:00:23 <ais523> oren: that typo has been preserved for well over a decade
19:00:32 <oren> oic
19:00:33 <ais523> every now and then someone tries to fix it and we have to revert them
19:00:43 <ais523> I'm not quite sure why it caught on, but it did
19:01:54 <oren> anyway i am working on a nuclear solution to elliott's problems with my pointer casting, by using a giant union of every type that exists. this is guaranteed to work according to gcc.
19:02:12 <elliott> I doubt it
19:02:16 <elliott> what is safe is to use memcpy
19:02:27 <elliott> by going through (char *)
19:02:32 <elliott> which is explicitly allowed by the standard
19:02:35 <ais523> gcc gives better guarantees on unions than the C standard does
19:02:39 <ais523> but still
19:02:40 <oren> gcc allows you to use a union -- it's a GNU extension
19:02:50 <elliott> yes but why would you make a big union when memcpy is easier and more portable...
19:03:37 <int-e> hmmmmmm....to avoid the copy?
19:03:43 <ais523> also, what about types which have a comparable size to your address space?
19:03:44 <oren> eaxtcly
19:04:14 <oren> *every non-array, non-struct type that exists
19:04:47 <int-e> ais523: btw I'm surprised that just setting CPATH worked, I expected that I'd have to set the LIBRARY_PATH variable as well.
19:04:53 <elliott> int-e: I think that is one thing I trust compilers with. :p
19:05:18 <int-e> elliott: I wouldn't.
19:05:28 <elliott> clang has special knowledge of memcpy, at least.
19:05:28 <ais523> elliott: my guess is that oren learned about how computers work from ~30 year old books, or books whose authors learned from books that old
19:05:29 <oren> memcpy to the same place will check? i would expect it to screw up the value
19:05:31 <elliott> pretty sure gcc does too
19:06:01 <elliott> oren: double x; uint64_t y; memcpy((char *) &y, (char *) &x, sizeof y);
19:06:02 <oren> in every other instance where the src and dest overlap it does
19:06:11 <elliott> I'm not sure those casts are necessary.
19:06:13 <elliott> I guess they're not.
19:06:23 <elliott> well, as opposed to casting straight to void *
19:06:44 <int-e> cluid: I would probably ask such a question here first, actually, but there must be general programming and algorithm channels somewhere.
19:06:56 <oren> then it is a copy. in asm i can access any place as any type why should i make my c code slower?
19:06:59 <elliott> anyway, I will give you like a billionth of a bitcoin if gcc -O3 and clang -O3 don't optimise that out to essentially y = x
19:07:04 <elliott> oh lord
19:07:26 <elliott> you'll never fix your mental model of things if you keep treating C as something that maps directly and simply to assembly
19:07:31 <elliott> unless you take a time machine back a few decades
19:07:56 <int-e> elliott: naaah, all we need to take back a few decades is the compiler.
19:08:29 <oren> or use a less complex contemporary compiler
19:08:35 <elliott> int-e: but that way we still have to listen to oren
19:08:42 <int-e> elliott: ...
19:09:09 <int-e> I would suggest /ingore but then elliott would demonstrate /kick
19:09:21 <elliott> oh come on, that was a good spur of the moment quip
19:09:22 -!- Sprocklem has quit (Ping timeout: 244 seconds).
19:09:32 <int-e> (ah, typos. you can love them or hate them, but not get rid of them.
19:09:39 <elliott> what to you expect in 39 seconds
19:09:46 <elliott> actually that's kind of a lot of time :/
19:10:31 <int-e> but yeah, C compilers do lots of crazy things.
19:11:45 <elliott> I mean I'm not saying C's annoying edges for systems programming is a good thing, although a lot of the things people assume will work are actually broken for good reasons. a language that maps directly to the hardware wouldn't look like assembly either, though
19:12:43 <ais523> movsd %xmm0, 8(%rsp)
19:12:44 <ais523> movq 8(%rsp), %rdx
19:12:47 <ais523> elliott: I tried it out
19:13:11 <ais523> seems that gcc optimizes out the memcpy, but has to bounce the value off memory to convert it from a double to a uint64_t
19:13:28 <ais523> I don't think any other sort of assignment would work better, though?
19:13:31 <ais523> let me try with the union
19:13:56 <oren> is there a move instruction from %xmm0 to %rdx?
19:14:37 <oren> x86_64's instruction set is far from consistent
19:14:46 <oren> so i don't know
19:14:54 <ais523> I get exactly the same code for the assignment as I did for the memcpy
19:15:11 <oren> the instruction might be missing from the set?
19:15:12 <ais523> actually the output asm are completely identical apart from where the filename appears in the debug info
19:15:26 <cluid> okay thanks int-e
19:15:30 <oren> ok i'll use memcpy thanx for the help
19:15:31 <cluid> I was wondering what the point of dancing links was
19:15:33 <ais523> so, basically, elliott is right
19:15:39 <oren> he is!
19:15:40 <cluid> http://www.ams.org/samplings/feature-column/fcarc-kanoodle
19:15:43 <cluid> i read about it there
19:15:46 <ais523> which is the result I thought I'd get before testing, but best to make sure
19:15:58 <cluid> I think the answr is it lets ou use less memory, but it still seems a bit stupid
19:16:33 <cluid> if youre trying to solve a pentomino problem, why not generate pentominos rather than build a huge big matrix and cross things off?
19:18:19 <oren> #define db2u64(x) ({uint64_t u;memcpy(&u,&x,8);u;})
19:19:30 <int-e> x86 has this historical separation of CPU and FPU, with no direct transfer of values (but with a direct transfer of flags for comparisons). And MMX SSE and so on all happen to extend the FPU.
19:19:45 <elliott> ;u;;
19:19:47 <elliott> s/;$//
19:20:09 <oren> blah int-e i knew it!
19:20:19 <ais523> int-e: which dates back from the time when the x86 and x87 were actually separate chips, IIRC
19:20:24 <int-e> yes
19:21:03 <oren> that is so inconsistent... i like the 6502's instruction set for its consistency
19:21:05 <Deewiant> movq %xmm0, %rax
19:21:54 <cluid> any one know knuth dancing links
19:22:08 <ais523> presumably knuth does
19:22:14 <ais523> and you can find examples elsewhere
19:22:14 <cluid> ok but he isnt here
19:22:25 <ais523> I've received emails from knuth's secretary, it was weird
19:22:39 <ais523> (he doesn't write them himself, which IMO is entirely reasonable)
19:22:42 <int-e> I only got one, asking for my middle name.
19:22:49 <oren> hes a busy guy
19:23:23 <oren> he writes program books and doesnt afraid of anything
19:23:30 <elliott> knuth should be here
19:23:38 <elliott> it'd be horrible
19:24:02 <ais523> I'd prefer it if not
19:24:16 <ais523> actually, better would be if he just turned up, asked a quickly answered INTERCAL question
19:24:18 <ais523> got the answer, and left
19:24:30 <fizzie> Re "copy", when this came up in ##c last (it comes up quite often), GCC generated absolutely identical code to the three common "reinterpret the bits" approaches (the *(x*)&y one, the union { x a; y b; } one and the memcpy one).
19:24:31 -!- oren has quit (Quit: eating a chicken).
19:24:41 <fizzie> I guess ais523 already tested all three, though.
19:24:41 <elliott> ais523: ideally he'd turn up, get `welcomed, and turn out to be looking for the other kind of esoteric
19:24:47 <ais523> fizzie: I didn't test the first one
19:24:48 <elliott> and leave
19:24:56 <elliott> that's the best knuth/#esoteric interaction I can think of
19:25:11 <ais523> gah, I think you broke me
19:25:25 <ais523> I literally am having problems imagining that
19:26:21 <int-e> elliott: http://www-cs-faculty.stanford.edu/~uno/316.html
19:26:37 <ais523> that's a weird subdomain
19:27:11 <shachaf> int-e: Middle name for what?
19:28:11 -!- AndoDaan has quit (Quit: bbl).
19:28:12 <int-e> shachaf: Some list of authors I presumed. I don't even know whether I made it.
19:28:46 -!- AndoDaan has joined.
19:29:30 <shachaf> Ah.
19:29:56 <int-e> "Please send me ALL your names, even if you don't customarily use them! They will appear only in the index, where many of my readers have said they enjoy seeing esoteric information like this."
19:30:31 <shachaf> He lost my name once. :-(
19:31:26 <shachaf> "Needless to say, the employee responsible for this glitch has been sacked."
19:35:54 -!- shikhout has changed nick to shikhin.
19:49:21 <fizzie> ais523: To be fair, "bham.ac.uk" is pretty weird too. And the whole deal with ultra-abbreviated names.
19:50:08 <fizzie> (Admittedly something like www-cs-bham.ac.uk would be weirder.)
19:50:50 <fizzie> I think we had a wwwcs. or www-cs. or cswww. or some other such subdomain at the university.
19:51:47 <fizzie> (But it was just for "strange stuff", not for any high-profile webserver.)
19:52:35 -!- Sprocklem has joined.
19:53:34 <int-e> I don't find www-cs-faculty.stanford.edu strange at all
19:53:50 <Melvar> At my university, www-it.math.… is a thing.
19:55:28 <int-e> but anyway, http://cs.stanford.edu/~uno/316.html works too
19:56:01 <int-e> and www.cs....
19:56:25 <shachaf> I wonder what "uno" is.
19:57:04 <cluid> http://cs.stanford.edu/~uno/programs/dance.w
19:57:44 <cluid> its C with weird @ signs everywhere
19:57:45 <cluid> thanks knuth
19:59:33 <fizzie> CWEB, which makes sense, since it's in the web.
19:59:52 <int-e> to weave, or to tangle...
20:00:24 <cluid> his code seems about 6x shorter than mine
20:01:46 <elliott> cluid: weird @ signs everywhere and it has its own macro system
20:01:51 <elliott> and its own nonlinear text expansion facility
20:01:59 <elliott> `rainbow ~*~literate programming~*~
20:02:23 <cluid> http://arxiv.org/abs/cs/0011047 "The first trick is to implement each assumption of the search with reversible local operations on doubly linked lists. By this trick, every step of the search affects the data incrementally"
20:02:30 <HackEgo> No output.
20:02:37 -!- Patashu has joined.
20:02:44 <elliott> whaat
20:02:47 <elliott> `rainwords ~*~literate programming~*~
20:02:55 <elliott> that will be underwhelming
20:03:09 <cluid> the author reports excellent performance for his algorithm for some familiar puzzles. These include tiling a hexagon by 19 hexiamonds and the N queens problem for N up to 18
20:03:18 <HackEgo> No output.
20:03:29 <fizzie> Uh.
20:03:33 <fizzie> `echo x
20:03:34 <HackEgo> x
20:03:47 <shachaf> `` echo abcde | rainbow
20:03:47 <elliott> cluid: the most simultaneous queens england has ever had at once is 7 so that's a comfortable scalability margin for solving the problem
20:03:48 <HackEgo> abcde
20:03:57 -!- oren_ has joined.
20:03:58 <cluid> lol
20:04:05 <shachaf> ~*~literate programming~*~ hth
20:04:17 <elliott> the algorithm decides which queen to keep and which ones to sacrifice
20:04:24 <elliott> it's like easter calculation
20:04:28 <elliott> goes back centuries
20:04:47 <fizzie> Oh, of course it's a filter kind of a thing.
20:05:08 <fizzie> ^rainbow does this still work?
20:05:08 <fungot> does this still work?
20:05:10 <shachaf> Wasn't there a clever way for commands to be both kinds of things?
20:05:23 <shachaf> That rainbow is kind of gloomy.
20:05:35 <shachaf> I prefer {cheerful} rainbows.
20:05:38 <shachaf> Oops.
20:05:42 <shachaf> I prefer cheerful rainbows.
20:05:46 <shachaf> That didn't work very well.
20:05:47 <olsner> you can check $# and see if you got any arguments
20:05:47 <fizzie> I think it's limited to one-character color codes.
20:06:04 <fizzie> I assumed "clever way" meant something cleverer than DIY.
20:06:16 <oren_> that rainbow look extra cheerful for me
20:06:44 <fizzie> Perl has that <> thing that's either stdin or the *contents* of the files named as command line arguments, but it's not quite the same as taking command-line data instead.
20:07:24 <fizzie> ^show rainbow
20:07:26 <fungot> +3>4+6[->+8<],[<4.>[->+>+<2]>2-[-[-[-[-[-[-[<[-]>[-]]]]]]]]<[-<+>2+<]<+>4.[-<2+>3+<]<2+2.[-]>.>2[-<+>]<2,]
20:08:27 <oren_> is that run-length encoded brainfuck
20:08:32 <shachaf> does this still work?
20:08:35 <shachaf> does this still work?
20:08:38 <cluid> looks liek brainfuck + numeric constants
20:08:45 <shachaf> There you go, much more cheerful and only a one-character difference.
20:08:46 <cluid> i see brainfuck + named variables on the wiki too
20:08:58 <fizzie> It's a run-length encoding thing, yes.
20:09:06 <shachaf> (putting a ^B at the beginning)
20:09:12 <shachaf> ^rainbow does this still work?
20:09:14 <fungot> does this still work?
20:09:30 <cluid> what do you call "languages" like that that are just used to describe a thing?
20:09:35 <singingboyo> I just want befunge with functions. how that'd work... who knows!
20:09:36 <cluid> the aren't supposed to be a real language
20:09:56 <singingboyo> cluid: flowerpots?
20:10:07 <cluid> hi
20:10:34 <oren_> uh... perhaps declarative programming
20:11:27 <fizzie> Technically, it's a lower-level representation of the bytecode fungot's ^bf uses internally.
20:11:29 <fungot> fizzie: they probably know better than to use the lisppaste bot, visit http://paste.lisp.org/ new/ scheme and enter your paste. it is really needed
20:11:43 -!- nycs has joined.
20:12:51 <fizzie> (It has six instructions, each of which has an argument field, two of which ignore their argument.)
20:13:46 <fizzie> (Although that was probably unnecessary to explain, given how literate the fungot sources are.)
20:13:49 <fungot> fizzie: any ideas about how config files and other extensions.) refer to? ( as said, so far three puzzles none of which is being used by these orgs now"...
20:14:43 <int-e> ^style
20:14:47 <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
20:14:53 -!- `^_^v has quit (Ping timeout: 265 seconds).
20:15:11 <shachaf> i got fungot
20:15:13 <fungot> shachaf: care to take a huge detour from fnord to mit to read sicp this semester. the prof is doing every 15 minutes and didn't even bother checking if fnord was declared to return the whole ( loop thing specifically intended for that?
20:15:24 <int-e> shachaf: oh noes, is there a cure?
20:15:35 <shachaf> tried to read a sentence as if it was intended to make sense
20:16:27 <olsner> hmm, fungot put a space on both sides of ( there, but istr the perl scripts had code to put such punctuation at the start/end of the next/last word
20:16:29 <fungot> olsner: as i said, it can
20:16:37 <singingboyo> wait, so fungot gives you a (senseless) sentence every time you mention it? learn something new every day haha
20:16:40 <fungot> singingboyo: 7 greasemonkey: daemon idle_10 bf8. i
20:18:33 -!- AndoDaan has quit (Quit: bbl).
20:18:50 <cluid> coudl anyone turn a .w file into C for me please?
20:18:56 <cluid> http://cs.stanford.edu/~uno/programs/dance.w this one
20:20:25 <int-e> http://manpages.ubuntu.com/manpages/utopic/man1/cweb.1.html
20:21:54 <shachaf> Knuth has such an odd style of writing C.
20:22:01 <cluid> oh so actually pentominos is not best solved by dancing links
20:22:03 <shachaf> Even disregarding the literate programming thing.
20:22:14 <shachaf> Well, maybe I shouldn't be disregarding it. But either way.
20:23:28 <oren_> you can gard it, it doesn't need to be regarded.
20:24:07 -!- oren_ has changed nick to __oren__.
20:24:19 <__oren__> hey look iim a c99 thing
20:24:36 <__oren__> or maybe a gnu extension
20:24:59 * Melvar tugs on __oren__’s proboscis.
20:25:01 <elliott> C99 would be _Oren.
20:25:12 <__oren__> oh right right
20:25:31 -!- Patashu has quit (Ping timeout: 265 seconds).
20:25:38 <cluid> What is the best algoirtmh to pack shapes with pentominos?
20:26:32 -!- sebbu has quit (Ping timeout: 240 seconds).
20:26:40 <__oren__> what sort ofshapes?
20:27:01 <cluid> http://gp.home.xs4all.nl/PolyominoSolver/Polyomino.html like these
20:27:02 <cluid> oren: btw did you see the esolang I invented?
20:27:12 -!- sebbu has joined.
20:27:32 <__oren__> yes, looks original and i like that you didn't name it *fuck
20:27:38 <cluid> oh yeah i remember you said that
20:27:50 -!- sebbu has quit (Changing host).
20:27:51 -!- sebbu has joined.
20:33:46 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
20:36:50 <cluid> http://www.halley.cc/ed/linux/scripts/quine.html
20:39:53 <fizzie> olsner: The Perl scripts, sure, because it was easier to implement in Perl than in Befunge.
20:40:01 <fizzie> olsner: The Perl scripts maintain balanced punctuation, too.
20:40:07 <int-e> I've found that if the set to be covered is small, DLX isn't all that good; it's better to use bitmasks. Then, when selecting a mask from the list of remaining candidates, copy the list of candidates, filtering out those that collide with the selected mask.
20:40:22 <fizzie> olsner: (It's on the TODO list to fix at least the spacing.)
20:40:56 <int-e> The point is that this usually uses less memory and accesses memory in a linear fashion, making it well suited for modern CPUs and their caches.
20:41:42 <int-e> But DLX will be better if each bit is only covered by a few possible masks (rows).
20:44:56 <cluid> int-e, I thought this would be better even without bitmasking - then I noticed it will use more memory (but that is probably okay)
20:45:25 -!- atslash has joined.
20:56:43 -!- AnotherTest has joined.
20:58:52 -!- Sprocklem has quit (Ping timeout: 240 seconds).
21:17:22 -!- dts|pokeball has quit (Quit: Leaving).
21:17:41 -!- dts|pokeball has joined.
21:34:21 -!- axelcsep has quit (Ping timeout: 256 seconds).
21:44:36 -!- nycs has quit (Quit: This computer has gone to sleep).
21:58:00 -!- hjulle has joined.
22:06:32 -!- dts|pokeball has quit (Read error: Connection reset by peer).
22:08:19 -!- dts|pokeball has joined.
22:18:43 <tromp_> nice golfing challenge at http://www.reddit.com/r/tinycode/comments/2o6jqu/ascii_connect_4_in_124_bytes_of_c/
22:19:12 <tromp_> see my latest reply in there
22:23:21 <cluid> W(n){return b[c]&b[c+n]&b[c+n*2]&b[c+n*3];} lol damn
22:23:26 <cluid> that's crazy
22:24:34 <tromp_> that's a straightforward test of 4 in a row:)
22:47:49 <int-e> fizzie: wow how did you get Collatz parity so slow...
22:49:42 -!- AnotherTest has quit (Remote host closed the connection).
22:51:32 <int-e> Using a lookup table, perhaps.
22:53:50 -!- oerjan has joined.
22:55:04 -!- boily has joined.
22:55:26 <oerjan> bonsoily
22:56:03 <int-e> bonsai?
22:56:17 <oerjan> int-evening
22:56:26 <fizzie> int-e: I don't think I did anything special.
22:56:27 <boily> bon sœrjan.
22:56:34 <boily> bont-esoir.
22:56:43 <boily> bon soizzie.
22:57:16 <boily> oerjan: what is today's tldr? I won't be able to stay long tonight hth
22:58:58 -!- CrazyM4n has joined.
22:59:05 <fizzie> int-e: It does involve 512*64 things, that's a big number. Anyway, I'm faster than GolfScript.
23:01:14 <oerjan> boily: i joined 2 minutes before you so it's a bit early to say
23:01:57 <int-e> fizzie: hmm. python is slow, too, perhaps you're right.
23:04:11 <fizzie> int-e: All languages can't be such mean, lean murder-machines like Haskell.
23:04:30 <HackEgo> [wiki] [[User:Darkgamma/SB3]] N http://esolangs.org/w/index.php?oldid=41442 * Darkgamma * (+46) Created page with "Modernised Brainfuck using Unicode and colour?"
23:04:55 <oerjan> haskull
23:05:09 <Taneb> haskill
23:05:14 <boily> oerjan: oh. so it's a vsdr... oh well. be back in a... uhm... future?
23:05:27 -!- boily has quit (Quit: YEARLY CHICKEN).
23:05:44 <oerjan> he left without explaining his acronym. fiendish.
23:06:36 <Taneb> very silly december racoon
23:06:55 <oerjan> Taneb: ah, of course.
23:07:20 <oerjan> verne from over the hedge in christmas mood, i bet
23:07:43 <oerjan> wait
23:07:48 <oerjan> wrong animal
23:07:50 <cluid> Modernised Brainfuck using Unicode and colour?
23:08:06 <oerjan> *RJ
23:08:24 <oerjan> we seem to be approaching the bf derivative singularity.
23:08:48 <int-e> oerjan: how about "very short, did(n't) read."
23:09:28 <oerjan> int-e: but the logs are long and i haven't finished them
23:09:39 <oerjan> so that's crazy talk hth
23:10:23 <int-e> but you didn't mention the logs and boily may have temporarily forgotten that you catch up on those
23:11:03 <oerjan> wikia's article on verne has the word "deuteragonist"
23:11:50 <Taneb> That's the protagonist of a side story, right?
23:11:59 <Taneb> Like Homestuck's Karkat?
23:12:23 <int-e> fizzie: but doing things completely naively, I get 0.05s with python for the collatz parity (according to the performance check on anagol).
23:13:01 <oerjan> Taneb: pretty sure it means "second main character"
23:13:15 <Taneb> I think that is a better definition
23:13:15 <HackEgo> [wiki] [[User:Darkgamma/SB3]] http://esolangs.org/w/index.php?diff=41443&oldid=41442 * Darkgamma * (+152)
23:13:24 <Taneb> Still, like Homestuck's Karkat
23:13:28 <oerjan> proton vs. deuteron
23:13:48 <int-e> fizzie: it's when using 'eval' that python becomes slow.
23:17:13 <fizzie> int-e: I'm guessing it's a stack rotation #r I do to work around the lack of Forth "-rot" (there's x/ aka rot, but not to the other direction), I guess rotating an up-to-64-element linked list isn't all that fast.
23:18:41 <int-e> maybe not.
23:19:31 <fizzie> Well, I don't know. It's 0.65s locally with #r and 0.75s with x/x/.
23:20:36 <fizzie> There is an eval (an EvalMany, actually) in there, but I don't think that's a major thing in Burlesque.
23:20:44 <fizzie> Clearly a profiler is needed.
23:22:05 <fizzie> (An earlier C!-based version was 0.45s locally.)
23:27:36 <int-e> wow. another "loop unrolling" and python takes almost 10 seconds... (time: 9.736676sec)
23:29:42 <fizzie> E! is listed to be defined as .*\[e! (aka "repeat, concatenate, eval") so it's quite unrolly too.
23:31:14 -!- axelcsep has joined.
23:32:48 -!- cluid has quit (Remote host closed the connection).
23:35:28 -!- axelcsep has quit (Ping timeout: 244 seconds).
23:45:24 -!- zzo38 has joined.
←2014-12-10 2014-12-11 2014-12-12→ ↑2014 ↑all