00:10:37 -!- drdanmaku has quit.
00:15:27 -!- Bike_ has changed nick to Bike.
00:20:21 -!- Phantom_Hoover has quit (Remote host closed the connection).
00:26:03 -!- brrr has quit (Ping timeout: 240 seconds).
00:43:07 -!- aretecode has quit (Ping timeout: 245 seconds).
00:46:58 -!- yorick has quit (Remote host closed the connection).
00:58:51 -!- FreeFull has quit (Quit: Lightning storm).
01:00:57 -!- brrr has joined.
01:44:11 -!- madbr has joined.
01:44:15 <madbr> most numbers are really weird
01:47:37 -!- conehead has quit (Quit: Computer has gone to sleep).
01:48:32 <shachaf> Taneb: most numbers are unnameable hth
01:48:55 <shachaf> now i feel like that was the joke :'(
01:51:02 <madbr> taneb : http://en.wikipedia.org/wiki/Specker_sequence
01:53:15 <Taneb> I think 3 is quite a weird number
01:53:19 <Taneb> It's the first odd prime
01:53:41 <madbr> most numbers are way weirder than that
01:55:07 <madbr> like, a reasonable number is something like a computable number - you can ask a program to give you the value within a certain precision (like, say, a pi calculator where you ask for N digits) and it runs in a finite amount of time
01:56:19 <madbr> since there are countably infinitely many programs, there are countably many computable numbers. which means that they are infinitely more un-computable numbers (since the real numbers are countably infinite)
01:56:28 <Taneb> But I'd say all numbers are weird
01:57:17 <madbr> what about numbers in a ring, are those less weird?
01:57:22 <Bike> what about 1148? i think 1148 is pretty average
01:57:37 <Bike> works hard, drinks with his mates
01:58:54 <Taneb> madbr, natural numbers in a group, what's a group to a ring, what's a ring to a field?
01:59:04 <Taneb> What's a field to an art historian?
02:01:01 <madbr> something to encrypt his data and error-correct his CDs?
02:14:57 <zzo38> I try to think of what more questions to add into the "Quiz of Many zzo38's Questions"? I have actually added some already, but it doesn't have enough questions yet.
02:27:36 <zzo38> If you say about numbers, you should say if you mean natural numbers, real numbers, complex numbers, etc
02:28:40 -!- Sorella has quit (Quit: It is tiem!).
02:32:13 <Taneb> The world is a scary place right now :(
02:33:03 <Bike> most of it is minerals.
02:35:08 <madbr> at least communism isn't really a thing anymore
02:35:53 <madbr> taneb: https://twitter.com/Plane_Talking/status/489843455192227840
02:36:23 <Taneb> madbr, I was more referring to the shit going down in Gaza
02:36:41 <madbr> that's the other one
02:37:03 <madbr> and the third one is the white house suspect package shutdown thing
02:37:28 <Taneb> Haven't heard that
02:39:14 <Bike> they found something weird on a white house lawn, did usual security things in response
02:39:37 <elliott> it was probably communists
02:52:03 <Taneb> Ugh, it's suddenly almost 5 am
02:52:06 <Taneb> Bed is a mile away
02:53:03 <newsham_> luckily tomorrow is a week long so you have time to get there
02:54:31 <Taneb> newsham_, I have essentially no commitments until the end of September so I could in theory just stay here
02:55:27 <Taneb> WHICH IS ONLY AN HOUR AWAY FROM FIVE AM
02:55:41 <Taneb> Hmm, if I wait an hour I can catch the sunrise
02:56:19 <newsham_> the way the morning broke was quite unusual...
03:01:45 <Taneb> That feels like the first half of a quote
03:05:17 <newsham_> hmm.. odd.. android apps will be able to run in chromeos soon
03:06:17 <zzo38> I now have eighteen questions in this quiz file. See if you can answer them or at least to guess.
03:06:54 <shachaf> zzo38: I guess "Yes" on all of them.
03:07:14 <zzo38> shachaf: Sorry, you got all of the questions wrong.
03:07:50 <shachaf> whoa, whoa, whoa, we were supposed to get them right too?
03:08:10 <zzo38> You should try to read the questions at first. And then, yes, to try to get them right too.
03:08:25 <shachaf> How can I read the questions?
03:08:31 <shachaf> I don't want to use gopher.
03:10:21 <zzo38> Then wait a minute
03:17:16 <zzo38> http://sprunge.us/TeXX
03:17:22 <zzo38> There are the questions!
03:17:43 <Taneb> Oh no, I've reached morning twilight
03:17:58 <Taneb> And I'm still sat here in a university computer lab doing a whole lot of nothing
03:21:48 <zzo38> shachaf: Do you like these kind of questions? "Yes" isn't even one of the choices!!!
03:22:02 <zzo38> ("No" also isn't even one of the choices!!!)
03:22:08 <shachaf> zzo38: Can I use a reference to answer them?
03:22:35 <zzo38> shachaf: That is kind of like cheating, so try first to do it without a reference.
03:22:55 <shachaf> Too late, I already looked up the answer to one of the questions.
03:23:03 <shachaf> But let me simulate a version of myself that didn't look it up.
03:23:08 <zzo38> And then revise it with a reference afterward if you prefer, but I would like to see your first guesses too.
03:23:34 <shachaf> What, I can't even refer to earlier questions in the same quiz?
03:24:16 <zzo38> The computer is supposed to ask you one at a time, but since it is like this, you can print out and refer to the same quiz if you want to, even though it isn't designed that way at first.
03:25:27 <zzo38> If you want, send me your answers in the private; I can tell you how many is correct. Make it public too if you want to, but perhaps you shouldn't in case other people want to try it independently instead.
03:27:01 <zzo38> But I would like to see your initial decisions and opinions too!
03:30:43 <zzo38> For the questions that you don't know, try to make a good guess, I suppose.
03:32:11 <shachaf> please add "How do you make a slow horse fast?"
03:32:15 * Taneb --> watching the sunrise
03:32:19 <shachaf> i'd like to see the options for that question
03:32:48 <zzo38> Well, I don't know!
03:34:02 <zzo38> I think it is, if they won't eat then it is fasting
03:34:50 <zzo38> What are your answers in this quiz so far though?
03:45:28 <Taneb> This campus seems to have been designed specifically to prevent people watching the sunlight
03:53:38 <zzo38> If I have a Commodore 64 program which consists of 256 bytes to load starting at $500 and the rest to load starting at $D00, how to convert that into a disk image?
03:54:28 <Vorpal> <fizzie> The whole concept of "read a different member of a union than the one that was last written to" is only (barely) legal due to a footnote, and that in a late (C99?) standard. And even with the footnote, some people argue against it from the perspective of the strict-aliasing rules.
03:54:48 <Vorpal> fizzie, The issue is that it can be very useful, and I don't really know a good alternative in C
03:54:55 <Vorpal> C++ has reinterpret_cast of course
03:54:59 <zzo38> Vorpal: I think the GNU C compiler documentation says that it is specifically allowed.
03:55:38 <Vorpal> zzo38, oh yes, GCC allows it. So does Clang. But from a standard perspective it is definitely a murky area
04:02:53 -!- Lorenzo64 has joined.
04:03:13 <elliott> Vorpal: memcpy through char* is allowed, right?
04:04:38 <Bike> having to call out to the library just to look at some bytes in a new light seems like kind of a bummer
04:04:41 <elliott> T x = ...; U y; char c[sizeof x]; memcpy(c, (char *) &x, sizeof x); memcpy((char *) &y, c, sizeof x); or something at least
04:04:48 <elliott> Bike: well, you can implement memcpy yourself
04:04:58 <elliott> I suppose memcpy((char *) &y, (char *) &x, sizeof x) should be okay too
04:05:29 <elliott> for (int i = 0; i < sizeof x; i++) ((char *)&y)[i] = ((char *)&x)[i]; if you want to avoid memcpy I guess
04:05:57 <Bike> and that works for whatever types x and y are?
04:06:58 <Bike> well, i don't care really, i shouldn't talk about these things so far outside my future experience
04:12:02 <elliott> you're allowed to view any object through (char *)
04:12:19 <elliott> otherwise how would you write memcpy?
04:12:27 <elliott> it takes two pointers to anything (void *) and copies
04:12:36 <elliott> it does this by casting the pointers to (char *) internally
04:12:42 <elliott> so that it can copy the objects byte-by-byte, whatever they are
04:37:53 <^v> <CTCP>VERSION<CTCP>
04:37:53 <idris-bot> <CTCP>VERSION SimpleIRC v0.3<CTCP>
04:38:03 <^v> +C this channel or i kill everyone
04:38:20 <^v> so many irssi users :o
04:38:49 <^v> shachaf, ;-; sowee
04:40:13 -!- Shubshub has joined.
04:40:44 <^v> Shubshub, i can read your mind
04:40:48 <^v> you are using.....
04:41:24 <zzo38> Yes it is in the username too
04:41:31 -!- Shubshub has quit (Client Quit).
04:42:02 <^v> zzo38, wtf?
04:42:03 <^v> * Ping reply from zzo38: 1405608507.670 second(s)
04:43:06 <shachaf> ^v: what are you doing here
04:43:29 <^v> shachaf, typing
04:44:00 -!- shachaf has left.
04:44:58 <zzo38> Can you type fast?
04:46:52 <^v> define fast because i type faster than everyone i know
04:57:00 <quintopia> take one of those typing speed tests
05:06:01 <Vorpal> <elliott> Vorpal: memcpy through char* is allowed, right? <-- Hm true
05:06:52 -!- shachaf has joined.
05:06:58 <Vorpal> elliott, I guess it could be less optimised than a simple union conversion though. GCC probably would optimise it, but still, for some implementations it might involve a function call
05:07:06 <shachaf> Taneb: are you the person that i talked to about categories in here a while ago or was it someone else
05:07:17 <zzo38> Are you allowed to read object as a different type if both types are volatile?
05:07:19 <madbr> oh man the strict aliasing stuff
05:07:20 <Taneb> It may have been me
05:07:24 <Taneb> In fact, I think it was
05:07:42 <madbr> volatile I'm not sure guarantees much safety at all
05:07:57 <Vorpal> zzo38, I don't think volatile changes that stuff at all
05:08:10 <madbr> it's almost a comment by now
05:08:32 <shachaf> Taneb: i don't remember what you do and don't know so it's hard to figure out what to recommend
05:08:36 <madbr> how does gcc deal with pointer aliasing anyways?
05:08:41 <Vorpal> madbr, well, I used it for stuff aliasing hardware registers when programming on bare metal
05:08:53 <madbr> yeah that's the one place I've seen it
05:09:16 <Taneb> shachaf, I'm between 1st and 2nd year at university doing maths and computer science
05:09:18 <madbr> though doing that probably takes a memory barrier on x86 by now
05:09:23 <Vorpal> madbr, I have also seen it in multi-threading context, for use with stuff like compare and exchange and so on
05:09:40 <madbr> Vorpal : for multithreading you shouldn't use volatile I think
05:09:46 <madbr> you should use mutexes
05:09:59 <Vorpal> madbr, I said for compare and exchange, locked such
05:10:10 <Taneb> Anyway I ought to get some sleep just in case anyone comes round.
05:10:39 <Vorpal> madbr, you know LOCK CMPXCHG16 and similar instructions on x86
05:10:48 <madbr> msvc lets you interpret volatile in multiple ways o_O
05:11:29 <shachaf> Taneb: that doesn't help much
05:11:44 <madbr> "The volatile keyword in C++11 ISO Standard code is to be used only for hardware access; do not use it for inter-thread communication."
05:11:56 <Taneb> shachaf, I don't get much in the way of options until third year
05:12:15 <madbr> I'm pretty sure there's no guarantee that volatile compares into a cmpxchg
05:12:21 <Taneb> I have a vague interest in functional programming, mostly because of this channel
05:12:36 <madbr> tbh applications where mutex isn't the solution are rare
05:12:40 <Vorpal> madbr, hm. The location I saw it used for threading stuff was in legacy Windows C++ code iirc
05:12:40 <Taneb> And I like group theory?
05:13:05 <Vorpal> madbr, as in years and years of old stuff in the massive code base
05:13:20 <zzo38> I think volatile read/writes should be used to mean that volatile reads/writes can be neither reordered nor optimized out, so it is then considered similar to like an external subroutine call.
05:13:41 <Taneb> And I'm also pretty terrible at, like, life and stuff
05:13:41 <Vorpal> madbr, Anyway I used non-mutex syncronization, but then I work on real-time control systems
05:14:07 <Vorpal> Sometimes just notifying a thread about something using a mutex is too much overhead
05:14:09 <zzo38> I have never used multithreading except for audio with SDL
05:14:26 <Taneb> And I also am not here any more
05:14:38 <zzo38> In the case of SDL there are function calls for the case of locking and unlocking the audio thread.
05:14:42 <madbr> I do audio code so it's about the same thing, multithreading for audio
05:15:35 <madbr> some people avoid all memory allocation and mutexes when dealing with audio threads
05:15:46 <madbr> because they have to work at low latencies
05:16:56 <Vorpal> madbr, oh yeah memory allocations can be quite annoying, at least I'm not working on a low-power real-time system. We are basically using Pentiums.
05:17:15 <Vorpal> Why should we need to?
05:17:15 <Vorpal> Power is not an issue when you have a 1000 V three-phase AC connection driving the equipment anyway
05:17:56 <madbr> was just assuming ARM since they're the popular embedded arch of the day
05:18:11 <Vorpal> madbr, I believe there are some plans on using ARM in the future though
05:18:53 <Vorpal> But for now it is all x86, about 1 GHz, 512 MB RAM. Really rugged industrial PCs basically. With CAN and all that jazz.
05:20:19 <madbr> audio is like all floating point and sorta number-crunchy, but also real-time and kinda video game-like
05:20:21 <Vorpal> madbr, Someone told me that the only way to get more rugged is to get hardware intended for space. I mean we have to deal with some really bad environments... Humid +50 C with salt water running over the stuff. As well as -50 C in Siberia above ground
05:21:10 <madbr> what's the latency that it has to respond at?
05:22:00 <Vorpal> We have IO read/write cycles times of 40 ms to 80 ms depending on the product. That is what drives most stuff in the system.
05:22:11 <madbr> pro audio often uses 96 sample buffers. at 44.1khz, that's 2ms
05:22:23 <Vorpal> Yeah, you don't have to do quite so many things though
05:22:30 <zzo38> I don't like ARM though
05:23:00 <zzo38> I think past the first version is too complicated, like x86 also is past the first few versions
05:23:06 <Vorpal> madbr, we have to (depending on product again) calculate how to move an articulated robot arm, drive around obstacles and so on.
05:23:16 <madbr> zzo38 : that's like every cpu
05:24:07 <madbr> zzo38 : once you add an MMU and an FPU (ie make it actually useful) they all turn into sprawling architectures
05:25:21 <madbr> not to mention a 64bit version
05:25:36 <madbr> or a simd instruction set or two
05:25:42 <Vorpal> madbr, also: fuck hydraulics. It is just annoying
05:26:06 <madbr> can you kill someone if your code explodes?
05:26:18 -!- MoALTz__ has quit (Quit: Leaving).
05:27:01 <Vorpal> madbr, well, we do have heartbeats that will close down all IO if it is skipped and so on. But yes in theory a bug could have some really bad consequences.
05:27:13 <zzo38> It can be done without MMU and FPU
05:27:42 <madbr> zzo38 : without an MMU you're ok if you're doing, like, a nintendo DS or something like that
05:28:05 <Vorpal> madbr, There are of course physical emergency stop circuits and so on that won't fail, but still, there could be some danger yes.
05:28:13 <madbr> once you have multitasking, that is over and you need an MMU
05:28:48 <madbr> Vorpal : still kinda cool
05:29:10 <madbr> like everything that isn't java enterprise servers and the like :o
05:29:14 <Vorpal> madbr, I think there is probably more safety features than on a car. I never seen an emergency stop button for all the computers in a car!
05:29:39 <Vorpal> madbr, Well it is C++. And boost to some extent. Fuck boost.
05:29:56 <madbr> yeah vaguely heard about boost
05:30:23 <madbr> "oh shit once you add once small piece you have the whole shebang and it compiles super slow"
05:30:52 <Vorpal> madbr, it is the link times that kill it. We are switching platforms to Linux currently. The old RTOS only supported static linking.
05:30:58 <madbr> Vorpal : does QT do the job ok?
05:31:31 <madbr> the one I've used was java's swing and it's kindof horrible
05:31:42 <madbr> like, it's superficially okay
05:32:06 <madbr> and I'm sure for enterprise software that nobody cares if it works sorta wonky, it's fine
05:32:30 <madbr> but like none of its gui components are the real thing and they all work subtly wrong
05:33:17 <zzo38> You can make task switching in other ways too which are done by software; depending on the system it might be workable, although this is only for saving tasks rather than having multiples at once in an easy way, unless you run them on separate CPUs.
05:33:39 <Vorpal> madbr, anyway compile and link times on Linux are so much better than the old RTOS. We had Windows CE for some modules, that really unknown RTOS for some other. All built using MSVC 2005. That was slow to compile, even when distributed over the network.
05:33:39 <madbr> if you're trying to do a tight productivity app it's not going to work out ok if you use swing and will probably end up overriding everything
05:33:39 <zzo38> I think is good idea to have separate processors for separate tasks.
05:34:39 <madbr> zzo38 : MMUs give you virtual memory basically
05:34:46 <Vorpal> zzo38, what, you mean running one thread per CPU?
05:35:00 <madbr> and also they generally prevent memory fragmentation
05:35:21 <Vorpal> ps aux indicates my system is running 316 processes. And god knows how many thread.
05:35:26 <zzo38> Vorpal: Yes it is what I mean
05:35:29 <Vorpal> I would love having 316 cores...
05:35:59 <zzo38> madbr: Yes, but I am meaning you would do it without virtual memory, so you don't use MMU
05:36:24 <madbr> and then when you run out of ram, instead of just going slow, everything crashes?
05:36:32 <Vorpal> zzo38, that seems stupid. Virtual memory helps isolate processes, limiting the scope of errors
05:36:37 <zzo38> Then your system is too complicated; Windows and Linux system get too complicated.
05:36:44 <zzo38> madbr: Any new programs won't start!
05:36:58 <madbr> zzo38 : what about allready running programs
05:37:11 <madbr> malloc will fail and they will explode
05:38:03 <Vorpal> Hm, virtual memory does not imply swap though.
05:38:21 <Vorpal> Swap requires it yes, at least as commonly implemented
05:39:00 <Vorpal> But I think we are mixing up "virtual memory", "swap" and "over committing" here.
05:39:06 <madbr> it's like, if you're doing a non-multithreading platform
05:39:12 <madbr> like an embedded ap
05:39:21 <madbr> or a Gameboy advance
05:39:27 <Vorpal> madbr, embedded systems are probably multi-threaded
05:39:45 <madbr> well, some really low level kind of system probably without an OS
05:39:54 <madbr> then you don't need an MMU
05:40:05 <Vorpal> Yeah I guess all the controllers for dish-washers and so on
05:40:29 <zzo38> I would want to do it without OS; just the BIOS is used.
05:40:51 <Vorpal> zzo38, BIOS? You are kidding me. An embedded SOC doesn't have a BIOS
05:41:11 <madbr> yeah I'm not sure BIOSes make that much sense anymore
05:41:16 <zzo38> It is then up to an individual program if it supports other programs it can call in the same memory.
05:41:27 <zzo38> madbr: I think it does and is important.
05:41:33 <Vorpal> You don't have anything on a SOC except the instruction set and some special addresses or such that will control the GPIO states
05:41:41 <madbr> like, it needs to get the system to boot, yes
05:41:59 <Vorpal> madbr, a SOC doesn't have a BIOS to boot it...
05:42:25 <Vorpal> It just has an entry point into the executable NOR flash. And it is probably a Harvard architecture
05:42:26 <madbr> Vorpal : true but it doesn't have to read the program off some mechanical drive :D
05:42:36 -!- SchrodingersCat has joined.
05:42:51 <SchrodingersCat> 2 STRSTART 'H' 'E' 'L' 'L' 'O' ' ' 'W' 'O' 'R' 'L' 'D' '!' STREND 1 BEGIN 2 READCHAR OUTVAL 1 DROP END START !1 @ISINPUT WHILE END
05:43:02 <Vorpal> madbr, Btw, have I ever mentioned how boring Harvard architectures are?
05:43:19 <zzo38> madbr: The BIOS would be used for some hardware access too, and you don't need to use operating system, just BIOS.
05:43:26 <Vorpal> madbr, They pretty much prevent self-modifying code
05:43:55 <madbr> Vorpal : but to do a fast cpu you need a separate instruction and data cache
05:44:07 <zzo38> Vorpal: Yes, although a Restricted Harvard can be useful if you want to be able to convert into other instruction sets; a plain Harvard won't, though, so it isn't so useful.
05:44:38 <zzo38> SchrodingersCat: Can you explain it better then?
05:45:02 <Vorpal> madbr, true, but at least it still supports self-modification to some extent. And loading new code into memory
05:45:15 <madbr> Vorpal : oh, right
05:45:21 <Vorpal> SchrodingersCat, what language is it?
05:45:47 <Vorpal> SchrodingersCat, some sort of stack based language?
05:46:09 <Vorpal> Reminds me a bit of Forth
05:46:29 <SchrodingersCat> a stack-oriented language that exists only in a few sheets of a small notebook
05:46:53 <madbr> zzo38 : anyhow, does it have multitasking?
05:48:33 <madbr> if it doesn't have multitasking, you can live without an MMU. if it has multitasking... you probably need an MMU or else you will cry
05:49:20 <madbr> like, windows 3.0 does it without (it runs on a 286 after all) but it's also well known for being a buggy POS
05:49:27 <zzo38> Restricted Harvard = a harvard architecture with the following restrictions: * You cannot set the program counter to arbitrary data; it has to be read from "program address registers" which are read from "program address memory" (or immediate operands) and no arithmetic is possible. * You cannot read/write program data; only execution is possible. Loading is only possible atomically to program code.
05:50:37 <zzo38> madbr: It doesn't have multitasking, although it has task saving (which is slower though). The software will have to implement its own multitasking if it requires it.
05:51:48 <madbr> you can live without an FPU
05:51:55 <madbr> after all ARM did it for years
05:52:28 <madbr> they are just incredibly nice to have
05:54:29 <madbr> take an architecture, add an MMU and a FPU
05:54:46 <madbr> what's the nicest you can make such an architecture?
05:55:13 <madbr> something like a MIPS
05:55:32 <madbr> that's not very much less complex than ARM
05:56:16 <zzo38> For task saving, well, it mean the BIOS can save the entire state of the system to disk, and then it is turned off, the file is copied to a new hard disk, placed in a new system with the same or more RAM/speed/etc, ensure its permissions are set to the same level as before, attach all the same peripherals and turn it on and load the system image and the program will just continue where it left off as if nothing unusual has ever happened.
05:56:52 <madbr> plus, once you start going out of order, all the architectures sorta become the same
05:57:34 <zzo38> I don't like out of order execution; it is a terrible idea. The compiler should make up the order, or the programmer if in assembly language.
05:58:24 <zzo38> I would have a supervisor and user mode; the user mode means that the top half of the address space is a mirror of the lower one instead of the actual top area, therefore the BIOS is protected in such a way. Any hardware accessible directly by user code is mapped in the low half.
05:59:12 <madbr> does it really need that if it's not multitasking?
05:59:25 <madbr> you're only running one program at the time
05:59:32 <madbr> it's not like you need to protect the OS
06:00:53 <madbr> out of order execution I'm not sure exactly how much speed difference it makes
06:01:22 <madbr> but I think it essentially exists because you don't know which memory accesses are going to be fast and fall in ca
06:01:41 <madbr> and which ones are going to miss and end up in slow RAM
06:01:59 <zzo38> Actually it does need to be protected. Therefore newer versions can emulate older versions precisely because the program cannot check. Also, the user with physical access can then program the BIOS to lie about whatever you want.
06:02:09 <madbr> and all the art of the pentium2 and its zillion descendents is to keep the processor going once you have a cache miss
06:02:17 <madbr> like hyperthreading
06:02:43 <madbr> which on paper is a stupid idea
06:02:47 <zzo38> madbr: It is why you should instead make programming the cache explicitly. Such thing also ensures the same timing and everything with newer versions of the system.
06:03:09 <madbr> and exists solely because if you have 2 threads on once core, you can swap in the other thread once you have a cache miss
06:04:33 <zzo38> Why can't you just use interrupts to time them instead?
06:05:09 <Vorpal> <madbr> like, windows 3.0 does it without (it runs on a 286 after all) but it's also well known for being a buggy POS
06:05:18 <Vorpal> Don't forget the classic Mac OS
06:05:43 <Vorpal> It was buggy too, and it did multi-tasking without using the MMU
06:05:56 <madbr> I'm not too familiar with that one
06:06:04 <madbr> didn't it have like... memory compacting :O
06:06:25 <Vorpal> You had handles and what not
06:06:43 <Vorpal> Cooperative multi-tasking too
06:07:50 <madbr> also no 320x200 and no hardware scrolling
06:07:57 <madbr> good luck making a game :(
06:08:09 <Vorpal> madbr, Anyway each program had a contiguous memory block. If they were awkwardly spaced, you could sometimes not start a program even if enough free memory existed
06:08:27 <Vorpal> My old iBook running classic MacOS used 800x600 for resolution
06:08:46 <Vorpal> And had an early ATI GPU
06:09:05 <madbr> that's much later no?
06:09:06 <Vorpal> 32 MB RAM (upgraded to a massive 64 MB!)
06:09:17 <madbr> like, the windows 95 of MACs :D
06:09:20 <Vorpal> madbr, that is about 2000. Remember those brightly coloured iMacs and such?
06:09:49 <Vorpal> madbr, this was the brightly coloured iBook
06:10:58 <Vorpal> madbr, it still didn't use the MMU that actually existed
06:11:18 <Vorpal> Backwards compatibility
06:11:41 <Vorpal> That thing can still run 68k programs through some sort of emulation layer built into the system
06:11:50 <Vorpal> That is programs from the Motorola age
06:12:14 <madbr> but then it can leave that in crazy land and use the mmu for actual ppc programs no?
06:12:26 <Vorpal> Well it could, but it doesn't
06:12:27 <madbr> kindof like how windows 9x handles DOS programs
06:24:07 <zzo38> I happen to like the 6502 so I still write programs for it. A lot of people still write programs for 6502, I expect.
06:26:17 <madbr> 6502 doesn't try to do multithreading
06:26:32 <madbr> except the 65816 on appleIIgs
06:26:40 <madbr> which is kinda scary tbh :D
06:26:49 <madbr> it looks like a low resolution version of mac os
06:29:23 <zzo38> I have used a Apple IIgs computer once, although without any GUI functions.
06:32:40 -!- ^v has changed nick to ^0.
06:41:34 <Vorpal> bbl, going out of town for a few days
06:41:48 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
06:44:55 -!- SchrodingersCat has left.
06:48:36 -!- Tritonio has joined.
06:58:27 -!- madbr has quit (Quit: Rouringu de hajikunda!).
07:16:00 -!- MindlessDrone has joined.
07:24:32 -!- Phantom_Hoover has joined.
07:27:32 -!- conehead has joined.
07:34:45 -!- vravn has quit (Ping timeout: 272 seconds).
07:53:31 -!- brrr has quit (Quit: Cya!).
07:56:59 <zzo38> Is there a musical notation for the 1 to 32 undertone scale?
07:57:44 <b_jonas> the Magic 2015 rules update bulletin is out: http://magic.wizards.com/en/articles/archive/magic-2015-update-bulletin-2014-07-17
07:57:54 <b_jonas> it says conspire comes with a rules change too, not just a reminder text change
08:02:21 <shachaf> b_jonas: How did Angel of Fury work previously?
08:02:49 <shachaf> If you were the controller but not the owner, and it died, nothing would happen?
08:03:21 <b_jonas> shachaf: that card is strange, how can a Portal card have such an ability in first place?
08:03:30 <shachaf> A card can't ever go into a graveyard or library of someone other than its owner, right?
08:09:15 <shachaf> This game is too complicated.
08:15:01 <zzo38> shachaf: Yes, and the rules are too klugy too and not very mathematically elegant.
08:15:44 <shachaf> How would you make a game with the same general benefits but with rules that are mathematically elegant?
08:16:23 <zzo38> I do have several ideas about such a variant of Magic: the Gathering actually.
08:19:05 <zzo38> One thing I would do is to remove the rules about auras that are also creatures being discarded. I would add back mana burn for strategic reasons. Card types would share subtypes, and none of them having special effects by default. The rule where tokens cease to exist out of play would be replaced with one dealing with initial state of objects. Rules for how different card types are played would differ. Many other things too.
08:21:00 <shachaf> That seems awfully specific.
08:22:04 <zzo38> I also don't like the rule where +1/+1 counters and -1/-1 counters remove each other, so that would also be removed.
08:22:29 <shachaf> Yes, that rule seems like a scow.
08:23:41 <shachaf> Especially with e.g. +0/+1 counters and -0/-1 counters not behaving the same way.
08:23:47 -!- Patashu has joined.
08:24:01 <b_jonas> zzo38: that rule with +1/+1 and -1/-1 counters is very practical even if not nice
08:24:25 <b_jonas> if there's one rule I'd like to drop, it's the lost all targets spell fizzle rule.
08:24:36 <zzo38> b_jonas: Yes I know, but you should just use two different colors
08:24:59 <shachaf> b_jonas: It's particularly annoying when that rule applies even for a spell that says "up to one target".
08:26:06 <b_jonas> and some rules, specifically the land type change rule, could be helped a great deal with reminder text: in particular I think it was a mistake to print Spreading Seas without a reminder text, as they should have known this from previous cards
08:26:39 -!- Patashu_ has joined.
08:26:39 -!- Patashu has quit (Disconnected by services).
08:26:56 <b_jonas> notice 9th edition Sea's Claim that has two lines of reminder text for "Enchant land" but nothing about the "is and Island" magic
08:27:13 <b_jonas> at least it has a great piece of flavor text
08:30:49 <zzo38> I would instead use the following rules for playing a card from your hand: One rule simply gives all instants flash. One says how any card with a mana cost can be played onto the stack. One rule says how lands can also be played at particular types directly into play without paying their mana cost. Furthermore, when the top object of the stack resolves, it goes into play when it finishes resolving; if it didn't go anywhere, it is discarded.
08:32:28 <b_jonas> "gives all instants flash" is like that joke for giving all creatures without first strike the new ability "strike" so they can deal combat damage
08:32:29 -!- conehead has quit (Quit: Computer has gone to sleep).
08:33:49 <shachaf> if a creature with first strike didn't deal combat damage in the first strike combat damage step, it deals damage in the main combat damage step
08:35:02 <shachaf> wait, maybe that wording isn't precisely true
08:36:18 -!- impomatic_ has quit (Quit: ChatZilla 0.9.90.1 [Firefox 30.0/20140605174243]).
08:36:20 <b_jonas> shachaf: no, I think that's only the old rule
08:36:23 <b_jonas> haven't they changed that?
08:37:07 <b_jonas> is this about the case when the creature gains first strike after the first strike step, or when it gains nonzero power but always had first strike?
08:37:29 <shachaf> I thought about the second one after writing that.
08:37:59 <shachaf> The second one doesn't work, I think. I.e. if it gains nonzero power it still doesn't deal damage.
08:38:02 <b_jonas> that one hasn't changed, and I think it's correct, the creature should try to deal damage then
08:38:03 <zzo38> I also don't like the implementation of planeswalkers, or the name. The idea is OK, though.
08:38:25 <b_jonas> the first one used to be broken, in that case the creature did try to deal damage again, but I think this was fixed and doesn't anymore
08:38:53 <b_jonas> why? not because of "plainswalk" right?
08:39:31 <zzo38> It is because of confusion with "plainswalk".
08:41:47 <shachaf> b_jonas: You mean it used to be that if a creature gained nonzero power after the first combat damage step, it would deal damage in the second one?
08:42:07 <b_jonas> shachaf: I think so, but I'm not completely sure
09:01:12 -!- TieSoul has quit (Read error: Connection reset by peer).
09:06:57 -!- AnotherTest has joined.
09:13:17 -!- mihow has quit (Read error: Connection reset by peer).
09:16:39 -!- mihow has joined.
09:20:14 -!- conehead has joined.
09:29:41 -!- conehead has quit (Quit: Computer has gone to sleep).
09:43:17 -!- oerjan has joined.
09:45:31 -!- Tritonio has quit (Ping timeout: 256 seconds).
09:58:01 -!- Tritonio has joined.
09:59:50 <oerjan> so we're basically waiting for Gregor to wake up and get things fixed?
10:01:24 <fizzie> It's also possible he's already complained to the cloud and they haven't fixed it.
10:01:25 <oerjan> his 4 day sleep-ins are a bit unnerving.
10:02:38 <oerjan> or he has complained, they've fixed it, and he just needs to reboot?
10:05:29 <fizzie> That's also a possibility.
10:06:45 <fizzie> Just think of all the lost esolangs.org revenue this downtime is causing. It is a shying crame.
10:09:02 <lambdabot> http://en.wikipedia.org/wiki/Camp_Crame
10:09:02 <lambdabot> Title: Camp Crame - Wikipedia, the free encyclopedia
10:12:37 -!- boily has joined.
10:28:04 <oerjan> <Phantom_Hoover> and clog i guess <-- yes.
10:37:53 <oerjan> (it was from this channel hth)
10:41:53 <oerjan> <Taneb> And I'm still sat here in a university computer lab doing a whole lot of nothing <-- ah i remember those times.
10:42:26 <oerjan> warning: you may get a permanently damaged sleeping schedule.
10:46:02 <fizzie> Must've been during a split or something.
10:49:18 -!- impomatic_ has joined.
10:52:52 * boily pokes Taneb in the sleep schedule
11:04:23 -!- edwardk has quit (Quit: Computer has gone to sleep.).
11:09:23 -!- boily has quit (Quit: CARTHAGENOUS CHICKEN).
11:42:18 -!- yorick has joined.
11:44:03 -!- Tritonio has quit (Ping timeout: 240 seconds).
11:45:30 -!- Tritonio has joined.
12:01:05 -!- Sgeo has quit (Read error: Connection reset by peer).
12:05:31 -!- fcrawl has joined.
12:24:06 -!- oerjan has quit (Ping timeout: 245 seconds).
12:24:45 -!- oerjan has joined.
12:54:18 -!- oerjan has quit (Ping timeout: 240 seconds).
12:57:11 -!- oerjan has joined.
13:18:05 -!- Patashu_ has quit (Ping timeout: 240 seconds).
13:31:13 -!- FreeFull has joined.
13:47:04 -!- Lorenzo64 has quit (Read error: Connection reset by peer).
14:09:23 <fizzie> Bah. The exported citation is saying "pages 1-4", and I can't be sure if it's for reals (sounds unlikely), or just some sort of a dummy entry.
14:09:57 <fizzie> PDF has no page numbers, and the ToC of the e-proceedings in ieeexplore doesn't have them either.
14:14:03 -!- Tritonio has quit (Ping timeout: 240 seconds).
14:17:34 <elliott> is cloudatcost still fucked?
14:18:17 <elliott> fizzie: can I, like, pay you to prepare a DigitalOcean server to be ready for it once you get the data off? :p
14:24:55 -!- mhi^ has joined.
14:28:23 <oerjan> elliott: it is _possible_ it's only still fucked because Gregor isn't around to reboot it.
14:28:55 <oerjan> (trying to keep some remaining belief in humanity here.)
14:29:05 <elliott> oerjan: yes, I am willing to throw some money at not having esolangs.org down for days because of an incompetent undercharging provider and an oversleeper again :P
14:37:02 -!- nys has joined.
14:46:02 <fizzie> That's assuming quite a lot of my response times.
14:46:14 <b_jonas> maybe he's on a two week long vacatoin
14:46:20 <oerjan> elliott: you know your only real solution is to take it back hth
14:46:23 <b_jonas> (or a six week long one. I hear myths about such things.)
14:46:43 <elliott> fizzie: well, DO probably won't require the manual rebooting so much.
14:48:42 <oerjan> elliott: i know, but i also know you'll never be satisfied with anyone else's work >:)
14:49:01 <elliott> my secret is I no longer care that much :P
14:49:21 <elliott> well, one of my secrets. that would be a pretty lame only secret to have
14:49:45 <fizzie> One of my secrets is 1.
14:49:49 <fizzie> (It's a 1-bit secret.)
14:50:10 <oerjan> stop giving me `addquote withdrawals
14:52:03 <oerjan> also why am i not eating
14:55:45 <elliott> I ask myself that a lot too :/
14:56:57 <oerjan> the trick is, whenever you ask that, go get some food.
14:57:34 <fizzie> I don't know if an email to Erg Gor would help; maybe it's just a vacayshun from IRC.
15:00:03 * oerjan is reminded of the norwegian saying "å sulte ihjel ved brødboksen"
15:02:25 <oerjan> (stereotypically this happens to traditional men when their wives are away)
15:03:18 <oerjan> fizzie: just search at the nearest MLP convention hth
15:03:47 <fizzie> I still associate that to a multilayer perceptron first and foremost.
15:04:11 <oerjan> that's just a sign that you need to combine them somehow.
15:04:54 -!- edwardk has joined.
15:06:15 <oerjan> i suppose it actually happened to kurt gödel.
15:16:23 -!- Tritonio has joined.
15:25:47 <oerjan> coppro: sorry, but HackEgo won't be back until Gregor finishes his 6 week (estimated) vacation.
15:27:00 <oerjan> (the estimate is murphy's law powered.)
15:28:55 <oerjan> despair, sackcloth and ashes, that sort of thing.
15:31:17 -!- hkt has joined.
15:40:33 -!- oerjan has quit (Quit: Etc. etc.).
15:40:50 <zzo38> I have a file on my computer which claims to be a Playstation emulator for GameBoy.
15:42:22 <zzo38> I am not sure that it is actually capable of anything other than saying it is loading the BIOS and then displaying an unknown opcode error.
15:45:17 -!- Sorella has joined.
15:45:35 <fizzie> Is it for the original GameBoy?
15:47:20 <fizzie> Then it sounds very suspicious.
15:59:36 <zzo38> Possibly appending it to the stub, although I do not really expect that to work; for one thing it probably won't fit.
16:13:06 <FireFly> You should disassemble the 'emulator'
16:13:47 -!- edwardk has quit (Quit: Computer has gone to sleep.).
16:14:03 -!- MoALTz has joined.
16:22:11 -!- AnotherTest has quit (Ping timeout: 256 seconds).
16:28:45 -!- ^0 has changed nick to ^v.
16:30:31 -!- ^v has changed nick to ^8.
16:48:06 -!- Tritonio has quit (Ping timeout: 240 seconds).
16:55:53 -!- ^8 has changed nick to ^v.
17:07:41 -!- TodPunk has quit (Read error: Connection reset by peer).
17:26:04 -!- Lorenzo64 has joined.
17:38:07 -!- subleq has quit (Ping timeout: 245 seconds).
17:40:01 -!- subleq has joined.
17:43:42 -!- Exio has joined.
17:51:41 <zzo38> Well, another thing I would do to improve Magic: the Gathering is, to make it to have first-class "entities". Entities include objects, players, units of mana (because of possible restrictions on their use), "disembodied" effects, and the state of the system as a whole. They also are given timestamps: the whole state is given the earliest timestamp, followed by the players in turn order.
17:54:15 -!- edwardk has joined.
17:55:58 -!- tromp has quit (Read error: Connection reset by peer).
18:01:12 -!- TieSoul has joined.
18:03:10 -!- nycs has joined.
18:05:19 -!- Exio has left ("Leaving").
18:05:59 -!- `^_^ has quit (Ping timeout: 264 seconds).
18:06:57 <zzo38> Can you tell a C program to include itself regardless of filename?
18:06:58 -!- tromp has joined.
18:13:56 -!- hkt has quit (Quit: Page closed).
18:20:28 -!- SchrodingersCat has joined.
18:21:16 <SchrodingersCat> 3 STRSTART 'H' 'E' 'L''L' 'O' ' ' 'W' 'O' 'R' 'L' 'D' STREND 2 SUBSTART 3 READCHAR OUTCHAR SUBEND 1 SUBSTART 3 ISCHAR SUBEND 0 SUBSTART 2 BRUN DROP 1 BRUN SUBEND START 1 RUN 0 BRWHILE DROP END
18:33:35 -!- edwardk has quit (Ping timeout: 264 seconds).
18:35:54 -!- Zuu has quit (*.net *.split).
18:35:55 -!- fizzie has quit (*.net *.split).
18:36:08 -!- Zuu has joined.
18:36:32 -!- Zuu has changed nick to Guest10474.
18:36:56 -!- AnotherTest has joined.
18:38:04 -!- fizzie has joined.
18:57:56 -!- edwardk has joined.
19:05:06 <zzo38> SchrodingersCat: Not quite exactly yet
19:07:44 -!- Lorenzo64 has quit (Remote host closed the connection).
19:09:16 -!- TodPunk has joined.
19:09:24 <zzo38> Maybe you can explain a bit?
19:13:13 <SchrodingersCat> so far, there is a setup with a primary stack, multiple substacks, and multiple streams
19:17:17 <zzo38> Yes, I know that kind of stuff
19:17:45 <SchrodingersCat> some of those commands listed in the example are undefined variants of commands i have written down
19:21:35 <SchrodingersCat> lets say that variable 3, written as 3*, has value 6. 3*& would therefore be equal to 6
19:26:28 <SchrodingersCat> "if(3* == 4*) then run substack 5 else run substack 4" i think becomes: 3*& 4*& TEST 5! IF INVERT 6! IF DROP
19:27:00 -!- Lorenzo64 has joined.
19:30:26 <^v> 𝕴 𝖘𝖍𝖔𝖚𝖑𝖉 𝖒𝖆𝖐𝖊 𝖆𝖓 𝖊𝖘𝖔𝖑𝖆𝖓𝖌 𝖜𝖍𝖊𝖗𝖊 𝖆𝖑𝖑 𝖛𝖆𝖗𝖎𝖆𝖇𝖑𝖊𝖘 𝖒𝖚𝖘𝖙 𝖇𝖊 𝖑𝖎𝖐𝖊 𝖙𝖍𝖎𝖘
19:30:59 <^v> http://i.imgur.com/sZkWXyF.png
19:32:58 <SchrodingersCat> can i paste the hello world program here in multi-line form?
19:35:58 <SchrodingersCat> 3 STRSTART 'H' 'E' 'L' 'L' 'O' ' ' 'W' 'O' 'R' 'L' 'D' STREND
19:37:30 <zzo38> OK now perhaps I can see.
19:37:49 <SchrodingersCat> The ISCHAR should be named something more like ISTHERE_CHAR
19:39:54 <SchrodingersCat> ERUN returns the next of the substack it just ran as it's return value, while RUN doesn't
19:41:19 -!- nys has quit (Quit: quit).
19:42:37 <SchrodingersCat> all whitespace is same. that's why i originally typed it in 1-line form
19:46:14 <SchrodingersCat> I can't have a language where the first word is "untitled"
19:49:22 <quintopia> just make the U stand for something else
19:49:36 <zzo38> SchrodingersCat: OK
19:51:26 <SchrodingersCat> and it's arduino version (the original intended target platform) would be A/USPL ?
19:52:40 <SchrodingersCat> i wanted to design a language that could be interpreted on an arduino uno
19:55:07 <SchrodingersCat> what do i develop on then: my linux shell server or my arduino?
19:55:09 -!- mihow has quit (*.net *.split).
19:55:09 -!- jix has quit (*.net *.split).
19:55:09 -!- ^v has quit (*.net *.split).
19:55:16 -!- jix has joined.
19:55:19 -!- mhi^ has quit (*.net *.split).
19:55:19 -!- yorick has quit (*.net *.split).
19:55:34 -!- yorick has joined.
19:55:36 -!- mhi^ has joined.
19:56:02 -!- mihow has joined.
19:56:26 -!- ^v has joined.
19:56:31 -!- edwardk has quit (Quit: Computer has gone to sleep.).
19:58:42 <SchrodingersCat> my arduino micro (technically a miniturized leonardo) has similar memory size to the uno but is a lot smaller
20:00:53 * SchrodingersCat should start by writing a rpn calculator onto the arduino micro
20:04:42 -!- mhi^ has quit (Quit: Lost terminal).
20:10:59 <SchrodingersCat> the arduino uses a simplified version of c/c++ called wiring
20:11:33 -!- Guest10474 has changed nick to Zuu.
20:11:47 -!- Zuu has quit (Changing host).
20:11:47 -!- Zuu has joined.
20:16:59 -!- MindlessDrone has quit (Quit: MindlessDrone).
20:20:07 <zzo38> Do you like a tsume shogi?
20:21:21 <zzo38> Japanese chess problem
20:31:17 -!- edwardk has joined.
20:32:24 <fizzie> I was under the impression that Wiring is pretty much regular C++ except with a different standard library and a fixed main function that calls the setup/loop functions.
21:04:23 -!- AnotherTest has quit (Ping timeout: 256 seconds).
21:06:43 <elliott> fizzie: incidentally I think some people mirror the XML dumps, though those don't have account information
21:06:49 <elliott> (but they do have files and stuff)
21:07:59 -!- edwardk has quit (Quit: Computer has gone to sleep.).
21:13:11 -!- conehead has joined.
21:20:41 -!- ^v has changed nick to troll_detector.
21:20:55 -!- troll_detector has changed nick to ^v.
21:40:05 -!- impomatic_ has left.
21:52:42 -!- SchrodingersCat has changed nick to SCat|Away.
21:55:05 -!- Lorenzo64 has quit (Remote host closed the connection).
21:59:42 -!- not^v has joined.
22:01:03 -!- not^v has changed nick to Dogar.
22:04:59 -!- brrr has joined.
22:05:44 -!- Sgeo has joined.
22:08:27 <Sgeo> help I'm looking at Python again
22:08:29 <Sgeo> Getting back into the old Python rut
22:10:01 <elliott> are you just doing this as performance art by now
22:14:34 -!- Dogar has quit (Quit: Leaving).
22:16:35 <fcrawl> Sgeo: what is your quest!!
22:23:33 -!- MoALTz__ has joined.
22:25:46 -!- edwardk has joined.
22:25:47 -!- MoALTz has quit (Ping timeout: 264 seconds).
22:30:17 -!- edwardk has quit (Ping timeout: 245 seconds).
22:32:55 <fizzie> elliott: Do you know names?
22:33:26 <elliott> fizzie: I... used to? everyone is kind of blending together in my head.
22:33:29 <elliott> some german person was mirroring I think.
22:33:36 <elliott> oh, I can just look at my webserver logs.
22:35:19 <elliott> 209.116.191.130 is someone who is downloading both the zsync file and the gzipped file, but with a Java user agent?!
22:35:37 <elliott> looks like a dynamic IP though
22:35:47 <elliott> or, maybe zsync pretends to be Java...
22:36:05 <elliott> http://xmedeko.blogspot.be/2011/05/java-zsync.html okay...
22:36:38 <ion> What zsync file?
22:37:21 <elliott> what are you talking about
22:37:30 <elliott> fizzie: http://eso.mroman.ch/log2.txt http://eso.mroman.ch/wikidump/
22:37:52 <ion> “is downloading both the zsync file and the gzipped file” – what file is that?
22:38:13 <elliott> ion: esolang.xml.gz and esolang.xml.zsync
22:38:13 <ion> “svn” – just amazed at someone still using svn in 2011.
22:38:20 <ion> elliott: Ok, thanks
22:38:28 <elliott> nobody actually used zsync I think
22:38:52 <elliott> except these weird java user agents actually requested it so maybe someone used some random java implementation of zsync from 2011 for... whatever reason
22:38:55 -!- ^v has quit (Quit: Leaving).
22:39:06 -!- ^v has joined.
22:42:10 <Taneb> Sgeo, help so am I
22:42:18 -!- SCat|Away has changed nick to SchrodingersCat.
22:42:30 <Taneb> Worst thing is I'm not even any good at Python
22:43:14 -!- SchrodingersCat has left.
22:43:20 <elliott> fizzie: anyways it's not much of a solution, but it's at least easy to make a read-only view of the site with it for now
22:44:39 <elliott> come to think of it, in the worst case you could also restore the users table from the original database dump I sent you, but probably the old server is not actually lost forever.
22:57:49 -!- drdanmaku has joined.
22:59:38 -!- Patashu has joined.
23:01:27 -!- oerjan has joined.
23:15:55 -!- Patashu_ has joined.
23:15:55 -!- Patashu has quit (Disconnected by services).
23:23:47 -!- fcrawl has quit (Ping timeout: 256 seconds).
23:24:41 -!- Patashu_ has changed nick to Patashu.
23:26:24 -!- edwardk has joined.
23:31:02 -!- edwardk has quit (Ping timeout: 250 seconds).
23:46:09 -!- yorick has quit (Remote host closed the connection).