←2010-07-28 2010-07-29 2010-07-30→ ↑2010 ↑all
00:00:11 <Phantom_Hoover> AnMaster, I've got a good chunk of the conversation, although from around halfway in.
00:02:48 <oerjan> <cpressey> Does Co-NP = NP?
00:03:02 <Phantom_Hoover> http://sprunge.us/OgDa has some stuff
00:03:09 <oerjan> that's an unsolved problem, it's believed to be false.
00:03:24 <Gregor-W> Lawl, Madk marked Schrodilang while on his Madkap adventures of finding pages to delete :P
00:03:39 <cpressey> oerjan: Indeed, and seems somewhat more interesting than P?=NP, at least to me right now
00:04:00 <oerjan> cpressey: well P=NP would imply NP=co-NP
00:04:16 -!- MizardX has joined.
00:04:30 <Gregor-W> Sure, but everybody knows that P!=NP. The argument there is simple: A lot of very smart people have been trying to prove that P=NP and have gotten nowhere ;)
00:04:33 <oerjan> also if NP=co-NP then NP is so called _low_ for itself (you can answer NP questions freely inside an NP computation)
00:04:48 -!- augur has joined.
00:05:29 <oerjan> and then all that oracle hierarchy stuff NP^NP^NP^... collapses
00:05:38 <cpressey> Yes.
00:06:00 <oerjan> just like it did for NL when NL = co-NL was proved
00:06:35 <AnMaster> NL being?
00:06:45 <oerjan> nondeterministic logarithmic space
00:06:48 <AnMaster> ah
00:06:55 <Phantom_Hoover> Wait, I have just realised that checkShips() doesn't do what I thought it did.
00:08:14 <oerjan> L \subset NL \subset P \subset NP \subset PSPACE is a famous sequence of inequalities. with the exception of L, NL != PSPACE none of those are proved to be different
00:08:21 <cpressey> oerjan: I have some ideas about co-NP, but they involve algorithmic information theory, which is somewhere I should probably not be treading.
00:10:09 <cpressey> oerjan: If we could prove P < Co-NP, we prove P < NP, don't we?
00:10:16 <oerjan> sure
00:10:43 <oerjan> P = Co-P and Co- respects inclusion
00:13:55 <cpressey> I don't stand a icecube's chance in hell of actually proving this, but I might as well give it a go, just to understand more about it. It's enlightening to see a conjecture crash on the rocks sometimes.
00:14:27 <CakeProphet> you know I don't think an icecube could prove much of anything..
00:14:34 <CakeProphet> except maybe some physics
00:14:45 <CakeProphet> if we accept a very vague notion of prove
00:14:48 -!- genjix has joined.
00:14:55 <cpressey> It ... proved itself useful in keeping my drink cool?
00:15:15 <CakeProphet> ...that gets both a "ha" and a facepalm.
00:16:45 <oerjan> icecube proves second law of thermodynamics
00:17:23 <oerjan> in a tragic heroic manner
00:19:46 <oerjan> <cpressey> Complete guess: SAT with monotonic sentences (no NOT) is in P. Maybe even a greedy algorithm
00:20:11 <cpressey> You know,
00:20:14 <oerjan> if you set all variables to true, then it has to be true iff there is any satisfying answer at all
00:20:19 <cpressey> Exactly.
00:20:40 <Sgeo> I still don't know why the bug manifested itself worse given some code and not as bad other code, but it seems to be completely squashed
00:20:58 <oerjan> also, monotonic circuit evaluation is P-complete
00:21:28 <cpressey> What about monotonic TAUT?
00:21:44 <oerjan> set all variables to false
00:21:46 -!- genjix has left (?).
00:22:26 <cpressey> oerjan: then it's just false
00:22:44 <cpressey> x AND y is not a tautology, but x AND x is
00:22:54 <oerjan> assuming you actually _have_ any variables
00:22:56 <oerjan> um no
00:23:04 <oerjan> it most certainly is not :D
00:23:06 <cpressey> wait yeh
00:23:41 <oerjan> the constant true is the only monotonic tautology
00:24:08 <cpressey> yes.
00:24:21 <cpressey> I was getting there, slowly :)
00:24:47 <oerjan> i recall a theorem related to the clones of post's lattice: basically satisfiability is in P unless the clone includes the implication function, in which case it's NP-complete
00:24:50 <Phantom_Hoover> OK, I'm compiling Battleships. If I die, tell someone.
00:24:56 <cpressey> Clearly, its paucity of tautologies means that monotonic logic is superior.
00:25:39 <oerjan> oh not implication, but non-implication
00:26:06 <oerjan> http://en.wikipedia.org/wiki/Post's_lattice#Applications
00:27:29 <oerjan> presumably tautology is co-NP-complete iff it contains the dual of that function
00:27:38 <Slereah> Good old Post.
00:27:42 <Slereah> FUN FACT
00:27:48 <Slereah> He invented the Turing machine :o
00:28:09 <cpressey> And then went on to found his cold cereal empire
00:28:11 <oerjan> O_o
00:28:44 <oerjan> cpressey: i assume that's an american-only pun
00:30:06 <oerjan> non-implication is A and (not B), so the dual is A or (not B), hm that's just implication reversed
00:30:08 <Gregor-W> Phantom_Hoover: HELLO? HELLO? ARE YOU STILL THERE?
00:30:11 <Gregor-W> OH GOD NOOOOOOO
00:30:16 <Gregor-W> He shouldn't have done it
00:30:22 <Phantom_Hoover> THE FIRST DAY OF ETERNITY I CAN SEE IT NOW
00:30:47 <cpressey> Some days I love this channel.
00:31:03 <cpressey> Anyway, g'night folks :)
00:31:06 -!- cpressey has quit (Quit: Leaving.).
00:31:07 <oerjan> bye
00:31:15 <Phantom_Hoover> http://pastebin.com/8EmX5cpS is my first game.
00:31:44 <Phantom_Hoover> Note that all ships are on (1,1) and player 1's first hit takes out all of player 2's ships. Yet player 2 wins.
00:31:57 <Gregor-W> Phantom_Hoover: AWESOME
00:31:58 <Gregor-W> X-D
00:32:12 <Phantom_Hoover> Gregor-W, omygodlet'smicrocosmit
00:32:20 <Gregor-W> omygodyes
00:32:24 <Phantom_Hoover> It can be our flagship game!
00:32:35 <oerjan> a famous theorem is that _intuitionistic_ implication has PSPACE-complete satisfiability
00:32:43 <Gregor-W> Phantom_Hoover: Excuse me, I have to go sodomize myself with a rake first.
00:32:50 <Phantom_Hoover> OK, you need to s/conio.h/termios.h/ and s/getche/getchar/
00:33:12 <Phantom_Hoover> OK, need to sleep.
00:35:59 <oerjan> <oklopol> maybe every set of boolean functions is either trivial or np-complete
00:36:07 <oerjan> I'M WAY BEHIND YOU
00:36:34 -!- Mathnerd314 has quit (Ping timeout: 260 seconds).
00:36:37 -!- Mathnerd314_ has joined.
00:36:48 -!- Mathnerd314_ has changed nick to Mathnerd314.
00:37:57 -!- Phantom_Hoover has quit (Ping timeout: 245 seconds).
00:48:08 <Gregor-W> typeof(document.createElement("object")) == "function"; typeof(document.createElement("function")) == "object";
00:55:09 <oerjan> fancy.
01:01:00 -!- augur has quit (Remote host closed the connection).
01:18:22 <Gregor-W> Attention anyone who hasn't yet: Vote in the poll in the /topic. kthx :P
01:20:51 -!- ski has quit (Ping timeout: 264 seconds).
01:24:02 -!- dbc has quit (Ping timeout: 246 seconds).
01:24:31 -!- dbc has joined.
01:26:37 -!- Gregor-W has quit (Quit: Page closed).
01:27:35 -!- ski has joined.
01:37:49 <Sgeo> Gameplay now differs between DEBUG and RELEASE
01:48:54 <coppro> lol
01:48:57 <coppro> what changelog is this?
01:49:28 <coppro> hmm... more people should vote for the last option, then we should do it anyways
01:50:52 <Sgeo> coppro, it's my project
01:51:05 <Sgeo> There is a reason for it, though
01:51:19 <Sgeo> The change made to Release makes it difficult to repeatedly play the same puzzle
01:51:28 <Sgeo> So I decided that it made sense to omit it from Debug
01:53:23 <coppro> ah
01:53:32 <coppro> I guess that makes sense
01:53:39 <coppro> although you might provide another means
01:53:51 * coppro knows a game where -DCHEATS does all sorts of fun stuff
01:54:27 <Sgeo> DEBUG partially means cheats at this point
01:54:39 <Sgeo> Mostly, actually
01:54:52 <coppro> things like the ability to edit any puzzle, warp, etc.
01:54:55 <Sgeo> Oh, and occasional verbose output into chat
02:52:10 -!- CakeProphet has quit (Ping timeout: 258 seconds).
02:58:13 -!- sshc has quit (Read error: error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version number).
03:00:29 -!- sshc has joined.
03:18:49 -!- BeholdMyGlory has quit (Remote host closed the connection).
03:36:13 -!- coppro has quit (Ping timeout: 276 seconds).
03:37:28 -!- coppro has joined.
03:39:48 -!- derdon has quit (Remote host closed the connection).
03:44:42 * Sgeo learns the value of naming conventions the hard way
03:49:52 * pikhq points, mocks
03:49:55 -!- Wamanuz has quit (Read error: Operation timed out).
03:52:30 <Sgeo> Well, that's headache inducing
03:53:21 <Sgeo> http://pastie.org/1064906
03:56:54 <Sgeo> Woops
03:57:00 * Sgeo makes it a decimal parse
04:03:29 -!- jcp has quit (Quit: Later).
04:32:33 -!- GreaseMonkey has joined.
04:54:37 -!- augur has joined.
04:55:55 -!- jcp has joined.
05:02:09 -!- sftp_ has quit (Read error: Operation timed out).
05:11:40 -!- cheater99 has joined.
05:12:02 -!- SevenInchBread has quit (Ping timeout: 240 seconds).
05:16:27 -!- CakeProphet has joined.
05:17:53 <CakeProphet> howdy
05:17:58 <CakeProphet> !simpleacro
05:18:01 <EgoBot> XBFOJMHXD
05:24:57 <oerjan> !show simpleacro
05:24:57 <EgoBot> haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len \$ pick ['A'..'Z'])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
05:26:35 <pikhq> Xanthine Boards For Only Jocular Machinists Have Xenocided Dogs
05:28:00 <Sgeo> Ok, it's been too long since I've read Station V3
05:28:05 <Sgeo> There's an entire new arc
05:30:17 <oerjan> !haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len \$ pick =<< pick ["AEIOU","BCDFGHIJKLMNPQRSTVWXZ"])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
05:30:20 <EgoBot> OEAGWN
05:31:28 <oerjan> !haskell import System.Random; import Control.Monad; main = do {len <- pick [2..10]; putStrLn =<< (replicateM len \$ pick =<< pick ["AEIOU","BCDFGHIJKLMNPQRSTVWXZ"])} where pick a = randomRIO (0, length a - 1) >>= return . (a !!)
05:31:30 <EgoBot> UWOEIAU
05:34:35 <Sgeo> Two arcs
05:58:38 -!- CakeProphet has quit (Ping timeout: 240 seconds).
06:02:51 -!- CakeProphet has joined.
06:02:59 <CakeProphet> no see...
06:03:05 <CakeProphet> vowels don't really contribute to easier acronyms.
06:03:08 <CakeProphet> or better suited ones
06:05:25 -!- augur has quit (Remote host closed the connection).
06:05:30 -!- augur has joined.
06:05:33 <oerjan> grmbl
06:08:58 -!- CakeProphet has quit (Ping timeout: 276 seconds).
06:09:50 -!- sftp_ has joined.
06:10:05 -!- myndzi has joined.
06:10:31 -!- CakeProphet has joined.
06:15:26 -!- oerjan has quit (Quit: Good night).
06:20:04 -!- cheater99 has quit (Remote host closed the connection).
06:30:17 -!- sftp has joined.
06:30:39 -!- sftp_ has quit (Ping timeout: 240 seconds).
06:39:40 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
06:53:56 <CakeProphet> sftp = simple fart transfer protocol
06:53:58 <CakeProphet> hurr hurr hurr
06:56:28 <Gregor> Yeah ... that's "humor"
07:00:29 <CakeProphet> you guys just don't know what humor is
07:01:12 <CakeProphet> here's an example of good humor:
07:01:33 <CakeProphet> you die. I kill you. the last sound you make is the release of your bowels.
07:01:34 <sftp> sftp == secure file transfer protocol
07:30:45 -!- Sgeo_ has joined.
07:33:32 -!- Sgeo has quit (Ping timeout: 240 seconds).
07:43:59 -!- coppro has quit (Remote host closed the connection).
07:52:44 -!- relet has quit (Quit: Leaving.).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:32 -!- tombom has joined.
08:14:35 -!- SevenInchBread has quit (Client Quit).
08:16:23 -!- CakeProphet has quit (Ping timeout: 248 seconds).
08:21:26 -!- CakeProphet has joined.
08:48:23 -!- CakeProphet has quit (Ping timeout: 248 seconds).
08:55:22 -!- CakeProphet has joined.
08:58:00 -!- tombom has quit (Quit: Leaving).
09:02:48 -!- Phantom_Hoover has joined.
09:15:27 -!- sftp has quit (Ping timeout: 240 seconds).
09:15:28 -!- sftp_ has joined.
09:18:13 <Phantom_Hoover> I think if you type "lemon" as a target into that battleships game it counts as a hit.
09:18:38 <Phantom_Hoover> Of course, this is all moot, since Player 2 must always win.
09:26:49 -!- CakeProphet has quit (Ping timeout: 265 seconds).
09:28:25 -!- CakeProphet has joined.
09:28:55 <fizzie> Hm. If you type "lemon" into scanf("%d", &target), it'll leave the whole lemon in the input stream (and not modify target at all); I guess it depends on getche whether it'll remove those characters from the stream later or not. If not, all future scanf's in the loop will do nothing much, since the lemon will still be there.
09:31:12 <fizzie> In any case target won't get modified unless you put some digits in, so I don't see why it'd necessarily count as a hit. Not that I've looked at the madness very closely.
09:32:04 <Phantom_Hoover> Well, I think that it would bomb the same square as you did previously.
09:33:03 <fizzie> Yes, but is that a hit? Anyway, if you start with lemon, target'll be 0.
09:33:24 <Phantom_Hoover> So I assume that the reason for the lemon thing was that the lemon blocks up stdin, meaning that you repeatedly bomb the same square, and he didn't check if you had hit a square before
09:33:37 <Phantom_Hoover> And I had hit a square before
09:33:46 <Phantom_Hoover> s/\$/./
09:34:11 <fizzie> Oh, okay.
09:34:21 <Phantom_Hoover> Wait, this takes the cake.
09:34:34 <fizzie> Yes, I guess you can easily keep getting hits if you just bomb the same place over and over again.
09:34:50 <Phantom_Hoover> It doesn't partition the two boards *at all*, so player 1 can hit their own ships.
09:35:53 <Phantom_Hoover> Wait, maybe not...
09:37:14 <Phantom_Hoover> It is melting my brain...
09:37:27 <fizzie> I think they're separate; player one's positions are in [shipname]p[idx], player two's (which the hit-test is against) are [shipname]p[idx]two always? Though it seems to only ask and initialize player one's ships.
09:38:02 -!- CakeProphet has quit (Ping timeout: 240 seconds).
09:38:06 <Phantom_Hoover> No, it does read for player 2's ships, though their initialisation is questionable.
09:38:41 <fizzie> Oh, okay, in checkShips.
09:38:48 <fizzie> It was there in the middle, I had missed it.
09:39:34 <Phantom_Hoover> That is a very easy mistake to make.
09:40:36 -!- atroo has joined.
09:42:45 -!- CakeProphet has joined.
09:58:00 -!- sftp has joined.
09:58:30 -!- sftp_ has quit (Ping timeout: 276 seconds).
10:06:18 -!- cal153 has quit (Ping timeout: 276 seconds).
10:08:23 -!- Quadrescence has quit (Ping timeout: 245 seconds).
10:08:58 -!- Leonidas has quit (Quit: Reconnecting).
10:09:01 -!- Leonidas has joined.
10:09:54 -!- cal153 has joined.
10:11:35 -!- Leonidas_ has joined.
10:11:54 -!- Leonidas_ has quit (Client Quit).
10:13:13 -!- Leonidas has quit (Client Quit).
10:13:19 -!- Leonidas_ has joined.
10:15:10 -!- Leonidas_ has changed nick to Leonidas.
10:19:02 -!- GreaseMonkey has joined.
10:31:35 -!- Slereah has quit (Ping timeout: 265 seconds).
10:32:43 -!- Leonidas has quit (Quit: An ideal world is left as an exercise to the reader).
10:33:33 -!- Leonidas_ has joined.
10:33:48 -!- Leonidas_ has changed nick to Leonidas.
10:37:25 -!- Slereah has joined.
10:56:16 -!- augur has quit (Remote host closed the connection).
11:10:52 -!- sftp has quit (Remote host closed the connection).
11:30:22 -!- GreaseMonkey has quit (Quit: New quit message. Entering 2006 in style.).
11:32:27 <Phantom_Hoover> Why does Flash MOCK me?
11:32:56 <Phantom_Hoover> "Oh, look, here's a clip on the iPlayer. BUT I'M NOT GOING TO LET YOU PRESS THE PLAY BUTTON!"
11:34:55 <fizzie> I've had some Flash clicking problems lately; the weirdest thing is that clicking seems to work if I right-click the Flash player context menu open, keep the right button down, and then left-click whatever it was I actually wanted to click.
11:35:13 <fizzie> Or just plain old attack the left button with ferocity, that also sometimes helps.
11:36:13 <fizzie> Sorry, I think the left-right-workaround more accurately was "open context menu; keep right button pressed; left-click once outside the context menu to dismiss it; left-click the original target; release right mouse button".
11:36:21 <fizzie> It makes no sense, but sense is not what it makes.
11:38:24 <Phantom_Hoover> I'll try that...
11:39:58 <Phantom_Hoover> Thanks, fizzie. Thizzie.
11:40:37 <fizzie> What, it actually did something? I was half-certain it was something unique to my somehow messed-up Flash.
11:41:28 <Phantom_Hoover> 64-bit Ubuntu, Flash from APT. You?
11:42:04 <fizzie> Well, the same. But actually I think my wife's PPC OS X laptop's Flash has had the same thing, albeit not at constantly.
11:42:21 <fizzie> Also the 64-bit Ubuntu, Flash supposedly from APT here at work has no problems clicking anything.
11:42:50 <fizzie> This is karmic instead of the lucid I have at home, though.
11:45:01 <Phantom_Hoover> fizzie, it is a mystery, then.
11:46:37 <fizzie> On the other hand, left-clicking, that's not such a critical feature; only those hackery sort of power users do that. It's understandable that it might not work completely right everywhere.
11:47:28 <Phantom_Hoover> grep sarcasm
11:50:02 * Phantom_Hoover wishes he'd taken that BBC Micro his friend offered him.
11:50:21 <Phantom_Hoover> I could break into his house while he's out of the country...
11:52:40 <fizzie> Yes, and set fire to it! To, uh.. I'unno. To make him pay for you not taking it earlier?
11:52:53 <fizzie> The first "it" referring to the house, of course.
11:53:14 <Phantom_Hoover> Regrettably, I don't know where he lives.
11:54:00 <Phantom_Hoover> Well, I know which bit of Edinburgh he lives in and that he lives above a Chinese restaurant, which narrows it down a bit.
11:54:07 <fizzie> You need to just start breaking into houses; you'll hit the right one eventually.
11:54:21 <fizzie> Most probably won't have a BBC Micro in them, that'll also help.
11:59:13 -!- Wamanuz has joined.
12:05:19 <fizzie> That's such an age-old problem, is nice that people still keep doing it.
12:08:32 <Phantom_Hoover> Nice to know that Glenn Beck can afford competent web staff.
12:11:36 * Phantom_Hoover notes that the BBC nearly made a programme called "syntax era".
12:11:47 <Phantom_Hoover> That one's worthy of oerjan.
12:20:21 -!- derdon has joined.
12:22:43 <Phantom_Hoover> That's programme in the sense of "TV", in case that isn't clear.
12:34:56 <AnMaster> Quadrescence, except that one doesn't work
12:35:04 <AnMaster> "<b>Warning</b>: fclose(): supplied argument is not a valid stream resource in <b>/var/www/glennbeck/htdocs/app/getfile.php</b> on line <b>75</b><br />" is all you get
12:36:17 <Phantom_Hoover> AnMaster, worked for me.
12:36:22 <AnMaster> hm
12:37:03 <AnMaster> Phantom_Hoover, maybe someone found putfile.php and broke it? ;)
12:37:16 <Quadrescence> still works for me
12:37:32 <Phantom_Hoover> Same.
12:37:47 <Phantom_Hoover> Evidently Glenn Beck doesn't trust you Swedes.
12:37:49 <AnMaster> how strange
12:38:07 <AnMaster> oh that %00 didn't copy properly
12:38:48 <AnMaster> who is that glenn beck btw?
12:39:02 <Phantom_Hoover> Weird right-wing commentator.
12:39:15 <Phantom_Hoover> He probably doesn't trust the Swedish in any case.
12:39:37 <AnMaster> anyway, adding %00 at the end of course solved it
12:39:54 <AnMaster> Phantom_Hoover, right wing, I doubt he trusts open source then either?
12:40:04 <AnMaster> yet he uses mysql and php
12:40:23 <Phantom_Hoover> AnMaster, yeah, but they aren't by FOREIGNERS.
12:40:37 <AnMaster> Phantom_Hoover, mysql used to be developed by a Swedish company iirc
12:40:48 <AnMaster> before Sun bought them
12:40:54 <AnMaster> (and then Oracle bought Sun)
12:42:44 <Phantom_Hoover> AnMaster, yeah, so it's a triumphant example of American businesses conquering the Swedish ones.
12:42:47 <AnMaster> I assume someone already checked if one of those database passwords work for ssh login as well. I'm not going to do that. Might be going a bit too far.
12:45:04 <AnMaster> btw it seems to be RHEL4
12:45:35 <Quadrescence> everyone has said the same thing as you
12:45:40 <Quadrescence> "IT'S GOING TOO FAR"
12:46:21 <AnMaster> Quadrescence, only if trying to hack ssh with it. I don't think just looking at various files readable by the web server is going too far :P
12:47:18 <Phantom_Hoover> Yeah, now we know Glenn Beck's favourite colour of jello.
12:47:51 <AnMaster> sshd_config seems to be either in some unusual location, not installed, or not readable to the web server. ssh_config however is interesting, unless it is the default RHEL4 one, I don't have any red hat distro handy so can't compare
12:48:17 <AnMaster> hm /usr/sbin/sshd is definitely there
12:49:05 <Phantom_Hoover> /etc/shadow was inaccessible, at which point I gave up.
12:49:28 <AnMaster> Phantom_Hoover, well you can still get /etc/passwd
12:49:35 <AnMaster> that gives you the accounts
12:49:46 <Phantom_Hoover> Indeed.
12:50:32 <AnMaster> what does the php function trim() do?
12:51:21 <fizzie> Removes whitespace from both ends of a string.
12:51:27 <AnMaster> ah
12:51:48 <AnMaster> a pity there seems to be no way to get a directory listing
12:51:48 <fizzie> Okay, so not necessarily just whitespace; you can give it the character set to remove.
12:51:57 <AnMaster> well this is called with just a string it seems
12:52:24 <Quadrescence> AnMaster: you are getting me excited
12:52:27 <AnMaster> so I guess he only likes jello on his development box. There is one good thing here at least: He isn't developing directly on the production system
12:52:32 <Quadrescence> i want to see something cool happen
12:52:33 <fizzie> Okay, then it's the default set, which is whitespacey. (Apparently -- looked it up -- spaces, tabs, newlines, carriage returns, nul bytes and vertical tabs.)
12:53:52 <AnMaster> vertical tab, my favourite control character
13:24:05 -!- BeholdMyGlory has joined.
13:26:22 <Phantom_Hoover> What does the vertical tab even do?
13:28:16 <fizzie> Not much.
13:30:39 <fizzie> Technically speaking it should have approximately the same effect on the cursor as enough line feeds to get to next vertical tab stop, cf. horizontal tab and an amount of spaces.
13:32:33 <fizzie> Or in other words: "A format effector which advances the active position to the same character position on the next pre-determined line." (Whereas newline has the same description sans the word "pre-determined".)
13:32:39 <Phantom_Hoover> What a waste of a code point
13:32:57 <fizzie> In this xterm it seems to advance to next line without moving to the beginning of the line, while a linefeed would nowadays.
13:33:12 <fizzie> htkallas@pc112:~\$ echo -e 'foo\nbar\vbaz'
13:33:12 <fizzie> foo
13:33:12 <fizzie> bar
13:33:12 <fizzie> baz
13:34:47 <fizzie> Many of the ASCII control codes are not so very useful nowadays. When did you last use the "negative acknowledge" control code, for example?
13:35:22 <fizzie> (There's a nice listing in http://www.cs.tut.fi/~jkorpela/chars/c0.html of them.)
13:38:10 <Phantom_Hoover> Yes, half the ASCII is useless
13:39:46 <Ilari> Pretty much only used ones are NUL, HT, LF, CR and ESC.
13:44:16 <fizzie> There's DC3/DC1 for flow-control purposes, and they've co-opted some for shell job control, like end-of-text (ctrl-c) that is still sort-of related in-theory a-bit. Oh, and end-of-transmission to send an EOF in.
13:45:25 <fizzie> In fortuitous circumstances you can also sometimes use BEL to annoy people.-
13:48:26 <Phantom_Hoover> ^L is used in sources sometimes.
13:48:32 <Phantom_Hoover> I have no idea why.
13:49:05 <fizzie> It's also used in usenet for spoiler-protection.
13:49:39 <fizzie> I've seen even graphical newsreaders handle it properly on that context.
13:50:19 <fizzie> In sources I guess the author just wants all functions to start on a separate page.
14:00:55 -!- Mathnerd314 has quit (Ping timeout: 248 seconds).
14:21:39 <AnMaster> hm fun
14:22:06 <AnMaster> the OpenGenera docs uses IP-TCP instead of the (nowdays?) more common TCP/IP in several places. However it does use TCP/IP in a few places as well..
14:26:28 -!- Phantom_Hoover has quit (Ping timeout: 265 seconds).
14:37:16 <derdon> I'm just reading http://en.wikipedia.org/wiki/Befunge#Befunge-93_instruction_list
14:37:49 <derdon> is there an official way to escape double quotes in string mode? what if I want to push one or more double quotes to the stack?
14:45:14 <fizzie> If you want 'foo"""bar' on the stack, you could do something like: "foo#"1-::"bar" -- double quote character being '#'-1, after all.
14:45:51 <fizzie> If you're doing Funge-98, you could "foo"'""bar" instead. Some people have done ' in supposedly Befunge-93 interpreters as an extension, too.
15:09:17 <AnMaster> stuff not following either standard is really annoying since it is impossible to know if any program expecting either of the versions will work
15:11:06 <fizzie> Since 93 doesn't really say what to do with undefined ops, it's reasonably safe to add new ones and still expect 93-compliant programs to work.
15:11:29 <fizzie> Can't safely use those in intended-to-be-portable code, of course, but that's another thing.
15:18:45 -!- cpressey has joined.
15:20:49 -!- derdon has quit (Read error: Connection reset by peer).
15:21:42 -!- derdon has joined.
15:27:19 -!- sshc has quit (Quit: leaving).
15:37:26 -!- Mathnerd314 has joined.
15:45:39 -!- MigoMipo has joined.
16:00:51 -!- oerjan has joined.
16:02:13 -!- Wamanuz has quit (Read error: Connection reset by peer).
16:04:03 -!- BeholdMyGlory has quit (Ping timeout: 264 seconds).
16:06:22 -!- relet has joined.
16:06:34 <oerjan> * Phantom_Hoover notes that the BBC nearly made a programme called "syntax era".
16:06:42 <oerjan> looks more like a spelling era to me.
16:07:34 <oklopol> party, oerjan!
16:07:45 <oerjan> fascist!
16:08:32 <oerjan> you and your contorted yoga positions
16:08:41 <oklopol> did i mention i think i solved my first open problem
16:08:47 <oerjan> ooo
16:09:12 <oerjan> *+n
16:09:14 <oklopol> it was sort of trivial so i sent the prof email so he can point out my error :D
16:09:20 <oerjan> ah.
16:10:12 <oklopol> "if a 2-directional AFA can go outside the string, to north and south, to a blank space, do we still get the regular languages"
16:10:54 <oklopol> my answer is "trivially not"
16:10:55 <oerjan> um does this mean if it cannot, you _do_ get regular ones?
16:11:02 <oklopol> yes
16:11:05 <oklopol> i proved it yesterday
16:11:12 <oklopol> i *think*.
16:11:29 <oerjan> um north and south? is this some weird 2-dimensional motion?
16:11:39 <oklopol> yes
16:11:51 <oklopol> the original question is about picture languages
16:12:04 <oklopol> "does it help to be able to go outside the pic"
16:13:04 <oerjan> that does sound weird that it should make a difference
16:13:25 <oerjan> can you go as far from the string as you want, or just one space?
16:13:26 <oklopol> just hover on top of the string and you can simulate a two-headed NFA
16:13:41 <oerjan> O_o
16:13:46 <oerjan> um, how?
16:14:05 <oklopol> guess what the cells to your bottomright and bottomleft have, check this, and move accordingly
16:14:30 <oklopol> if head on the right goes left, you go bottom-left etc
16:14:40 <oklopol> have to have some bookkeeping for even distances between heads
16:15:20 <oerjan> i still don't see this. how do you keep track of two heads simultaneously?
16:20:46 <derdon> befunge is funny: "Integer division: Pop a and b, then push b/a, rounded down. If a is zero, ask the user what result they want."
16:21:11 -!- BeholdMyGlory has joined.
16:21:12 <oklopol> lol
16:25:54 -!- MigoMipo has quit (Ping timeout: 276 seconds).
16:29:00 <oklopol> what's the name of the game?
16:29:15 <cpressey> oklopol: Are you listening to ABBA again? Bad oklopol!
16:29:26 <oklopol> is that an abba song? :D
16:29:38 <oklopol> abba is the perfect band for formal language theorists tho
16:29:48 <oklopol> or theoreticians
16:29:49 <cpressey> And it's like the first thing that popped into my head when I read that
16:29:57 <cpressey> Because my parents are ABBA fans
16:29:59 * cpressey shudders
16:30:01 <oerjan> well for game theorists too. the winner takes it all.
16:30:06 <oklopol> :D
16:58:17 -!- MigoMipo has joined.
16:59:58 <cpressey> "most strings are complex in the sense that they cannot be significantly compressed: K(s) is not much smaller than | s | , the length of s in bits" -- wikipedia
17:00:17 <cpressey> K(s) being the Kolmogorov complexity function
17:00:43 <cpressey> anyone know: Is this true, and if so, where I can find a reference?
17:01:21 <pikhq> I'm certain it's true, I don't have a citation handy.
17:01:24 <cpressey> And if there is a precise notion of "most"
17:03:05 <oerjan> cpressey: it's a trivial application of the pigeonhole principle
17:03:31 <oerjan> you cannot compress most strings because there aren't enough smaller strings to compress them into
17:03:50 <cpressey> oerjan: OK -- I can easily see that for "there exists an uncompressible string" -- I guess it extends to a collection of string
17:03:54 <cpressey> *strings
17:04:23 <oerjan> well you know there are 2^n strings of length n, at _most_ half of them can be compressed at all
17:04:30 <oerjan> er
17:04:42 <oerjan> *length <= n
17:04:56 <oerjan> let me fix that
17:05:05 <oerjan> 2^n-1 strings of length < n
17:05:27 <oerjan> and 2^(n-1)-1 strings of length < n-1
17:05:38 <oerjan> that gives about half, maximum, i think
17:06:03 <oerjan> if you compress by at least k bits, you can only do about 1/2^k of the strings
17:06:07 <cpressey> Everything you are saying makes sense. Actually, I'm sure I've seen it before, now, in another context.
17:08:47 <cpressey> So, define sumK(L) to be the sum of K(s) for every string s in the language L. Then sumK((0|1)^n) = O(2^n)?
17:09:25 <cpressey> Er, wait
17:10:15 <cpressey> Describing the language in English: L = {all strings of 0's and 1's of any length up to and including n} Then sumK(L) = O(2^n)?
17:12:01 <cpressey> I think so, but it would take me a while to draw it all out
17:18:24 -!- Phantom_Hoover has joined.
17:18:41 <cpressey> P******_H*****!
17:19:43 <oerjan> O(2^n * log n), perhaps
17:21:49 <cpressey> OK. Well,
17:21:59 * cpressey hits head against wall
17:22:21 <oerjan> (you need to actually store the strings, not just count them :D)
17:22:57 <oerjan> er wait duh
17:22:57 <cpressey> I was actually hoping for >= O(2^n), and that works. But now I think I see why it doesn't even matter.
17:23:05 <oerjan> O(2^n * n)
17:23:29 <cpressey> I know, abuse of O() there. I believe it's o() for lower bound?
17:23:36 -!- Gregor-P has joined.
17:23:44 <oerjan> no, that's Omega
17:24:26 <cpressey> oh right, i was confusing omega with theta
17:24:31 <oerjan> o() is like O() but stricter, ratio must approach 0 rather than being bounded by a constant
17:24:59 <oerjan> anyway, later
17:25:00 <oklopol> haha
17:25:02 <oklopol> small theta
17:25:05 <oklopol> :D
17:25:21 -!- oerjan has quit (Quit: Bye).
17:25:29 * oklopol is funny
17:25:41 -!- jcp has quit (Ping timeout: 265 seconds).
17:27:54 <Phantom_Hoover> What algorithm are we talking about?
17:29:08 <cpressey> Phantom_Hoover: Compress all possible strings of length n or less, basically.
17:29:28 <Phantom_Hoover> cpressey, can that even work?
17:29:46 <Phantom_Hoover> Pigeonholing would make it impossible.
17:30:59 -!- jcp has joined.
17:31:36 <cpressey> Phantom_Hoover: Er, I mean "compress them all as far as possible, even if that means 0% compression for some of them, which it does".
17:32:21 <Phantom_Hoover> It means -% compression if anything is compressed at all
17:32:59 <cpressey> Well, I was looking for a lower bound, so I was happy to ignore expansion
17:35:51 <Phantom_Hoover> By expansion do you mean making a few strings much larger?
17:36:32 <cpressey> Phantom_Hoover: Well, somewhat larger, yes. You should never need to make a string much larger.
17:37:10 <cpressey> I assumed you meant expansion by "-% compression".
17:37:16 <Phantom_Hoover> Yes.
17:37:33 <Phantom_Hoover> But you would need some kind of definition of "useful" for that.
17:37:42 -!- Wamanuz has joined.
17:43:00 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
17:43:01 -!- Mathnerd314_ has joined.
17:43:16 -!- Mathnerd314_ has changed nick to Mathnerd314.
17:43:38 <cpressey> Phantom_Hoover: This is all pretty pure theory -- no usefulness express or implied :)
17:44:01 <Phantom_Hoover> cpressey, but then how do you decide which strings to expand or compress?
17:44:28 <cpressey> Phantom_Hoover: Try compressing them all. Any ones you can't compress, leave be.
17:44:44 <Phantom_Hoover> cpressey, pigeonholing, though.
17:44:57 <cpressey> Phantom_Hoover: ?
17:45:04 <Phantom_Hoover> You'll have to embiggen some of them.
17:45:31 <cpressey> Phantom_Hoover: By a constant amount, only, which could be ignored even if I wasn't looking for a lower bound.
17:45:48 <cpressey> I'm not sure what your concern is
17:45:52 -!- cheater99 has joined.
17:46:14 <Phantom_Hoover> cpressey, are you trying for the biggest average compression?
17:48:10 <cpressey> No. I have a set of all possible strings of length n or less. I want to compress them all and stick them on a disk (say), and I want to know the order of how much space that'll take. According to oerjan, it's omega(2^n * n). I'm happy just knowing it's omega(2^n).
17:48:43 <cpressey> Well, I'm not happy, exactly, but yeah.
17:50:02 -!- cheater99 has quit (Ping timeout: 240 seconds).
17:53:13 <cpressey> It's kind of a rabbit hole, because "set of all possible strings of length <= n" is sort of a theoretical worst case. Hey, actually, if you knew the set contains all possible strings, you could compress the whole thing very well -- just write a program to generate them!
17:58:57 -!- Gregor-W has joined.
17:59:15 -!- Gregor-P has quit (Quit: Bye).
18:00:01 -!- Mathnerd314_ has joined.
18:01:01 -!- atroo has quit (Quit: Abandonando).
18:02:00 -!- Mathnerd314 has quit (Disconnected by services).
18:02:08 -!- Mathnerd314_ has changed nick to Mathnerd314.
18:04:14 -!- cheater99 has joined.
18:05:07 * Phantom_Hoover has a strange desire to write a processor emulator
18:05:45 <cpressey> I get those sometimes...
18:09:35 <Phantom_Hoover> It was weirdly directed at the 6502...
18:09:57 <cpressey> http://www.devtopics.com/category/languages-obscure/
18:10:03 <cpressey> Apparently Haskell is "obscure".
18:10:03 <Phantom_Hoover> I don't think that's realistic, though, since I have no idea how a 6502 works.
18:10:17 <Phantom_Hoover> cpressey, they deserve what's coming to them
18:11:16 <Phantom_Hoover> I think by "obscure" he means "script kiddies haven't heard of them".
18:11:24 <cpressey> I guess so.
18:12:33 -!- cheater99 has quit (Ping timeout: 245 seconds).
18:13:07 <cpressey> 6502 is not a particularly complex processor, so it's a reasonable project.
18:14:02 <Phantom_Hoover> "The Cyclone programming language is a safe dialect of C."
18:14:10 <Phantom_Hoover> How can that possibly work?
18:14:22 <cpressey> Er -- I used to know
18:14:30 <Gregor-W> Phantom_Hoover: How about instead of writing a processor emulator, you make an existing processor-emulator (JSMIPS) better? :P
18:14:53 <Phantom_Hoover> Gregor-W, does that stand for JS?
18:15:01 <Phantom_Hoover> s/JS/JavaScript/
18:15:08 <Gregor-W> Yes, JS does stand for JS :P
18:15:21 <Gregor-W> It even stands for JavaScript
18:15:32 <pikhq> Phantom_Hoover: It works by adding semantics to C to allow for static and runtime memory safety.
18:15:49 <cpressey> Phantom_Hoover: the wikipedia page gives an overview. Pointer arith is restricted, importantly.
18:15:56 <pikhq> Most obviously, it adds multiple types of pointers
18:17:28 <Gregor-W> I'll bet it would be really difficult to write an interpreter with a garbage collector in Cyclone :P
18:17:50 -!- cheater99 has joined.
18:18:10 <Phantom_Hoover> Gregor-W, I have JS trauma.
18:18:15 <cpressey> Cyclone appears to provide GC itself
18:18:53 <Gregor-W> cpressey: Ahhhhh well that makes sense then, I guess the real question should have been how it could be safe without GC, but I guess the answer is it has GC :P
18:19:10 <Gregor-W> Phantom_Hoover: But JS is lurrrrrrvely!
18:19:28 <cpressey> Hmh? It could be safe without GC
18:19:33 <Phantom_Hoover> Gregor-W, I believe I mentioned the cause of the trauma yesterday.
18:19:54 <Gregor-W> Phantom_Hoover: JSMIPS probably doesn't work on IE5 :P
18:20:25 <Phantom_Hoover> Gregor-W, I, being sane, used Safari or Firefox.
18:21:12 <Phantom_Hoover> It was more being asked to write the same program about 5 times. And then test it thoroughly.
18:22:01 <Phantom_Hoover> The point was to check that an integer was within certain bounds, and sometimes whether you were in jail.
18:22:05 <pikhq> cpressey: Yes, that'd require static checking of all allocations.
18:22:28 <Phantom_Hoover> When I pointed out that if you were in jail you'd be unlikely to answer honestly, no-one listened.
18:22:52 <cpressey> pikhq: It makes no claims of being *statically* safe
18:23:21 <pikhq> cpressey: Yes; hence the GC.
18:23:25 <pikhq> :)
18:23:48 <cpressey> OK, I give up then
18:24:11 * Phantom_Hoover really needs to stop bitching about that
18:28:07 <cpressey> How does GC make it safe while lack of GC would make it not safe?
18:29:28 <Gregor-W> cpressey: I pass a pointer into a complex maze of functions, one of which frees it. Now I use that pointer.
18:29:48 <cpressey> How does GC make that safe?
18:30:03 <Gregor-W> I can't free it. If I have references to it, it won't screw up.
18:30:14 <cpressey> But Cyclone has a free().
18:30:19 <pikhq> It also does region analysis.
18:30:21 <Gregor-W> It does? Well that's just stupid.
18:32:28 <cpressey> I guess how I see it is, it's not GC that makes that safe, it's lack-of-dangerous-free. Whether you reclaim the memory or not is moot. (Useful in practice, sure, but moot for safety, because you will *always* be able to run out of memory at some point.)
18:32:59 -!- cheater99 has quit (Ping timeout: 240 seconds).
18:37:01 -!- cal153 has quit.
18:39:19 <Phantom_Hoover> Gregor-W, moreover, I don't actually know what MIPS is.
18:41:17 <fizzie> It's a nice, clean, simple RISC.
18:41:33 <fizzie> Many SGI boxes run on MIPSy things.
18:41:47 <fizzie> (Also many other things do.)
18:42:09 <Phantom_Hoover> Is there no better language to do this than JS?
18:42:24 <fizzie> Possibly (maybe even probably), but then it wouldn't run in your browser.
18:42:37 <fizzie> Having Vim in a browser is something I wholeheartedly support.
18:43:20 <fizzie> Also there are existing MIPS emulators in non-JavaScripty scenarios, so it wouldn't have such novelty value.
18:44:10 <fizzie> (At least SPIM, which was used on our MIPS assembly programming course, but I'd hope there's something more serious too.)
18:45:08 <Phantom_Hoover> What kind of clock speeds does it get?
18:45:45 <fizzie> Oh, right, qemu does MIPS too.
18:46:05 <fizzie> Which, the architecture or the emulators?
18:46:30 <fizzie> I don't think SPIM is very fast at all, it's designed for educational purposes.
18:49:19 <Phantom_Hoover> fizzie, JSMIPS/
18:49:56 <fizzie> Ohhh. Well, I'll let Gregor-W answer that one; I haven't really played with it.
18:49:57 -!- nooga has joined.
18:50:43 <Phantom_Hoover> Gregor-W, what clock speed does JSMIPS run at, on modern hardware?
18:51:26 <fizzie> It might depend on what you're doing, anyway.
18:55:29 <fizzie> Heh, nice 6502 trivia bit in Wikipedia: "The 6502 was introduced at \$25 at the Wescon show in September 1975. The company had an off-floor suite with a big jar full of the chips. However with this early run they only had a handful of working ones. To give the appearance of larger quantities, the bottom of the jar was stuffed with defective chips, and only the ones at the top of the jar worked.[3] At the same show the 6800 and Intel 8080 were selling for \$179.[4
18:55:30 <fizzie> ] At first many people thought the new chip's price was a hoax or a mistake, but while the show was still ongoing both Motorola and Intel had dropped their chips to \$79.[5] These price reductions legitimized the 6502, which started selling by the hundreds.[3]"
18:59:56 <Phantom_Hoover> Baah, where's oerjan?
19:01:13 <pikhq> He's busy being Norwegian.
19:01:30 <pikhq> The nerve.
19:02:12 <fizzie> The norwe.
19:03:20 -!- Gregor-W has quit (Ping timeout: 252 seconds).
19:04:23 <Phantom_Hoover> pikhq, that does it! I am definitely buying "Conquering Norway for Dummies".
19:05:19 -!- MizardX has quit (Read error: Connection reset by peer).
19:05:39 -!- MizardX has joined.
19:10:03 <pikhq> Phantom_Hoover: Better than "Conquering Russia".
19:10:39 <Phantom_Hoover> pikhq, CNfD has the approval of the King of Sweden.
19:15:01 <pikhq> Of course it does.
19:15:01 -!- Sgeo_ has quit (Ping timeout: 265 seconds).
19:17:12 -!- cal153 has joined.
19:22:58 <nooga> so the JSMIPS actually reads ELF compiled for some MIPS unit and runs them in a browser?
19:24:05 -!- augur has joined.
19:25:37 <Phantom_Hoover> nooga, premusably.
19:26:21 <fizzie> I don't think it *quite* does; there are some (very small) GCC patches you need to apply before you have a cross-compiler that can produce JSMIPS binaries.
19:27:15 <nooga> a friend of mine, quite good hardware hacker btw, said 'WTFIDONTEVENWTFWTF' when he saw our wiki and Greg's creations
19:28:12 <fizzie> I think it's still an ELF system, there was just a tiny bit of trickery.
19:28:46 <fizzie> At least the binutils patches seem to mostly just add mips*-*-jsmips* into the mips*-*-elf* line of the config script.
19:28:50 -!- Sgeo has joined.
19:29:04 <nooga> sick
19:29:38 * Sgeo coughs on nooga
19:34:18 <oklopol> fizzie: copypaste the following on the channel w/o quotes please ":d:D:D:D:Dd:Ddddd:-D:DDDDD"
19:34:27 <oklopol> preferably not right away
19:34:51 <oklopol> i wanna see you smile
19:35:06 <fizzie> Is ":d" a smile?
19:35:13 <cpressey> Here I thought it was something that would make EgoBot freak out
19:35:42 <fizzie> It looks as if you surprised me during a tooth-brush experience.
19:35:47 <cpressey> My client certainly thinks :D is a smile, it translated it into a little yellow head smiling its face off
19:36:20 <oklopol> :d is a smileY
19:36:34 <Phantom_Hoover> nooga, Gregor is very good at cross-compilers.
19:40:42 <nooga> btw. i'm implementing modified SADOL as an OS for plain 8088 computer that we've build from spare ICs and some wires
19:41:20 <nooga> since it can talk via xmodem with the internet... it's getting more and more interesting
19:43:49 * Phantom_Hoover has just noticed that Eminem seems to have an ego to rival Wolfram's.
19:48:06 <cpressey> A New Kind of Hip-Hop
19:52:29 <nooga> "yo yo check out my homie wolfram calculating the mic, while i'm stealing your bike"
19:53:04 <nooga> ah, massive
19:58:35 <Phantom_Hoover> The mic?
19:59:06 <Phantom_Hoover> Why would one calculate a microphone?
20:00:31 <nooga> i don't know
20:00:43 <nooga> but wolfra is calculating
20:00:48 <Phantom_Hoover> Perhaps it could be Turing complete.
20:00:55 <Phantom_Hoover> Thought that's more our territory.
20:01:31 -!- Gregor-W has joined.
20:01:44 <Gregor-W> Phantom_Hoover: I don't have a canonical "clock speed"
20:02:03 <Gregor-W> It's fast enough to run vim on Chrome at full-speed and pretty OK on Firefox.
20:02:34 <Gregor-W> Also it doesn't have every instruction take the same amount of time, it's not that accurate an emulator (it's just an ISA emulator)
20:03:02 <Gregor-W> And some instructions are slow for really stupid reasons, e.g. addition is slower than bitwise math because I don't have integers in JavaScript.
20:03:40 <pikhq> And so... You *implemented* integer arithmetic. Wows.
20:04:25 <Gregor-W> http://codu.org/projects/jsmips/hg/index.cgi/file/e87fc75afcb6/nomath.js <-- in the best-named file EVER.
20:05:24 <Phantom_Hoover> Gregor-W, so that's why it's slow, presumably.
20:05:43 <Phantom_Hoover> You're doing tonnes of JS for multiplication.
20:06:20 -!- Gregor-P has joined.
20:06:52 <nooga> while i'm making the world Turing complete, my CAs are boxing the beat yo
20:07:02 <nooga> prepare for your bitter defeat
20:07:04 <nooga> huh
20:07:11 <nooga> i suck at freestyle
20:07:30 <Phantom_Hoover> Not as much as I would.
20:13:01 -!- coppro has joined.
20:13:53 <nooga> also I suck at English
20:13:59 <Phantom_Hoover> Gregor-P, how often are the nomath functions used?
20:16:53 -!- tombom has joined.
20:27:20 -!- coppro has quit (Remote host closed the connection).
20:29:01 <Phantom_Hoover> Is it a bad idea to have an emulator that emulates the processor to the pin level?
20:33:12 <cpressey> Phantom_Hoover: For some applications you'd want that, I think
20:33:21 <Phantom_Hoover> I think so too.
20:33:44 <Phantom_Hoover> I decided that it's the closest thing I'm going to get to a home-made computer, given my laziness.
20:37:34 -!- Gregor-W has quit (Ping timeout: 252 seconds).
20:43:06 <nooga> no
20:43:22 <nooga> making own computer is suprisingly easy
20:43:42 <nooga> just read proc's datasheet, assemble and enjoy
20:44:15 <cpressey> I've done it
20:44:21 <Phantom_Hoover> It requires getting up!
20:44:40 <cpressey> It requires stripping wire
20:45:00 <nooga> even i've done it
20:45:02 <cpressey> Unless you like etching PCBs or doing something else creative
20:46:16 <Phantom_Hoover> It also needs a soldering iron, which I haven't got.
20:46:25 <nooga> no it does not
20:46:28 <nooga> watch the vid
20:47:02 <Phantom_Hoover> Stop discombobulating my arguments!
20:51:08 <nooga> sorry :{
20:53:43 <Phantom_Hoover> Look at them!
20:53:55 <Phantom_Hoover> They have no combobles!
20:55:22 <Gregor-P> Phantom_Hoover: Everywhere, they're the fundamental math primitives.
20:55:50 <Phantom_Hoover> Gregor-P, surely that accounts for a lot of slowdown?
20:57:09 <Gregor-P> Phantom_Hoover: Yup
20:57:40 <Phantom_Hoover> So is there a feasible way to get rid of it?
20:57:58 <Gregor-P> Nope.
20:58:12 <Phantom_Hoover> Well, that sucks.
20:58:40 <cpressey> Define a MIPSIJ machine
20:59:15 <Gregor-P> It handles all integer math, you need it for the whole thing.
21:00:10 <Phantom_Hoover> What's wrong with the built-in integer maths?
21:00:17 <cpressey> Define a MIPSIJ machine whose instructions are like MIPS but which supports arithmetic identical to what JS natively supports. Then tweak the MIPS compiler backend to produce MIPSIJ.
21:00:45 <nooga> does gcc still support 16 bit archs ?
21:01:03 <fizzie> JS doesn't have any built-in integer maths, is probably the problem. All the numbers are double-precision floats.
21:01:25 <Phantom_Hoover> What
21:02:13 <Phantom_Hoover> But why does that stop you from using the built-in stuff for integer operations?
21:02:32 <fizzie> A 32*32 bit multiply doesn't fit in a double, it needs to be faked, I assume.
21:02:49 <fizzie> As for addition and such, you'll have to wrap it around manually.
21:04:38 <Gregor-P> It's overflows that are the issue.
21:04:39 <fizzie> As for GCC, I don't think at least the stock one supports any 16-bit archs.
21:05:05 <Gregor-P> MAX_INT+1 should wrap.
21:06:24 -!- ais523 has joined.
21:07:25 <cpressey> Gregor-P: I wonder how often C programs rely on that. You could turn it into a processor trap
21:07:35 <cpressey> Or whatever MIPS has for that sort of thing
21:08:07 <cpressey> Specifically, I wonder if VIM relies on that
21:08:15 <fizzie> You'd still need to test for it every time, though.
21:08:40 <cpressey> A test would be faster than this mul32... thing
21:08:44 <Gregor-P> cpressey: EVERYTHING relies on that
21:09:01 <fizzie> Subtraction relies on it, I guess.
21:09:23 <fizzie> Or adding negative numbers, anyway.
21:09:43 -!- Gregor-W has joined.
21:09:55 <cpressey> Wait, just because C specifies the bits appear in a certain way does not mean every C program relies on it.
21:10:08 <Gregor-W> cpressey: And yet, they do.
21:10:12 <Gregor-W> cpressey: Believe me :P
21:10:14 <Gregor-W> They really, really do.
21:10:20 <Phantom_Hoover> cpressey, OK. C programs without subtraction might not.
21:10:33 <Gregor-W> After having munged that nomath.js a billion times and broken it in horrible ways and fixed it and broken it again, oy.
21:10:35 <Gregor-W> They so, so do.
21:10:52 <cpressey> OK.
21:11:03 <cpressey> Was just wondering.
21:11:43 <fizzie> The multiplication sounds worse, though. If you just blindly multiply two 32-bit numbers, I guess the default double maths will cheerfully perform the multiplication but lose precision in the result, since the significand has just 52 bits.
21:11:59 <Gregor-W> Yup
21:12:34 <cpressey> OK -- communicate with a Java app running on the same page, have it do the integer arith for you.
21:12:35 <cpressey> Har.
21:12:53 <Gregor-W> BRILLIANT
21:13:07 <Gregor-W> The thing is, you guys, it's really not that slow :P
21:13:16 <fizzie> Or maybe a SOAP web service that you can post XML "multiplication requests" to?
21:13:23 <cpressey> The overhead of talking to a Java applet is probably much higher ;)
21:13:45 <Gregor-W> Also, compilers avoid MUL like the plague. It's not super-common. More common than DIV of course, but not super-common.
21:13:54 <fizzie> The array construction in mul32 would make me nervous, but of course I know very little about the cleverness of JavaScript implementations.
21:13:55 <ais523> ok, this is ridiculous: I was just emailed by ESR
21:14:12 <Gregor-W> ais523: That's already ridiculous, but go on.
21:14:29 <cpressey> Gregor-W: wtf I just realized mul32 is *recursive*. Good job!
21:14:31 <ais523> basically, he was looking to ask me to cooperate on the next INTERCAL release
21:14:35 <Gregor-W> cpressey: Yup!
21:14:46 <Gregor-W> cpressey: The scariest part is it works.
21:14:59 <ais523> Gregor-W: is that gcc's mul32, or someone else's?
21:15:15 <Gregor-W> I forget where I got it from, I wrote that years ago :P
21:15:24 <cpressey> ais523: Thank you for bringing today's "scary quotient" up to quota.
21:15:38 <ais523> I know, I'm pretty scared too
21:15:40 <fizzie> Gregor-W: it certainly is better than my "// TODO: implement DMULS.L" that I had in a JavaScript SuperH-3 core.
21:15:49 <Gregor-W> ais523: I think it's of vital importance that you do this >: )
21:15:51 <ais523> I'm not sure whether to expect a huge collaboration or a trademark infringement lawsuit
21:16:04 <nooga> ghee
21:16:23 <Gregor-W> BTW, feel free to go to http://codu.org/jsmips/system.html and see that JSMIPS does in fact work.
21:16:24 <nooga> i need C compiler that targets 8086/88
21:16:32 <Gregor-W> nooga: OpenWatcom
21:16:41 <fizzie> Open... ah, I'm so slow.
21:16:42 <AnMaster> I just used the rexec protocol
21:16:44 <AnMaster> guess why
21:16:58 <Gregor-W> AnMaster: Because you were out of rakes?
21:17:15 <AnMaster> Gregor-W, joke detected but not identified
21:17:24 <Gregor-W> Unidentifiable :P
21:17:34 <cpressey> # cd bin
21:17:34 <cpressey> # ls
21:17:34 <cpressey> out of memory
21:18:14 <Gregor-W> cpressey: What terrible browser is this? :P
21:18:23 <cpressey> Gregor-W: FF 3.6.6
21:18:31 <AnMaster> other things about the system I used it against: nmap could only identify these services: ftp, smtp. However other open ports include: 59, 79, 80, 111, 259, 261, 262, 512, 514, 517
21:18:38 <fizzie> Heh, this seems like it'll take a moment.
21:18:42 <cpressey> ./bin/vim loaded. \ \ E418: Illegal value: %s
21:18:46 <Gregor-W> fizzie: Yeah, that's bad.
21:18:54 <Gregor-W> fizzie: Haven't fixed it yet.
21:18:58 <Gregor-W> Anyway, just run vim :P
21:19:00 <Gregor-W> Stop listing stuff.
21:19:09 <Gregor-W> AnMaster: Nope!
21:19:11 <cpressey> Oh, OK, it's working now
21:19:13 <AnMaster> Gregor-W, OpenGenera!
21:19:27 <Gregor-W> vim is missing a few syscalls, but runs *shrugs*
21:19:44 <Gregor-W> AnMaster: ... ow.
21:19:46 <AnMaster> Gregor-W, I think both OpenGenera and nmap went spare from trying to nmap it.
21:19:47 -!- Mathnerd314_ has joined.
21:19:50 <ais523> jsmips vim?
21:19:57 <Gregor-W> ais523: Yuh
21:20:02 <fizzie> For the record, my FF 3.6.7 was capable of listing bin (and running vim), though a bit slowly.
21:20:05 <ais523> go for it!
21:20:07 <AnMaster> Gregor-W, you need to make jsOpenGenera
21:20:20 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
21:20:34 <cpressey> Oh I'm sorry. I'm a FF 3.6.8 now
21:20:45 -!- Mathnerd314_ has changed nick to Mathnerd314.
21:20:57 <AnMaster> echo -e '\0Lisp-Machine\0\0Help Commands\0' | netcat 10.0.0.2 514
21:20:59 <AnMaster> that works
21:21:08 <AnMaster> assuming you are not logged in on the lisp machine at the same time
21:21:28 <AnMaster> if you are, it returns an error stating "This machine is in use by <user name>"
21:21:50 <AnMaster> Lisp-Machine there is my user name
21:22:29 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
21:22:51 <Gregor-W> AnMaster: NO U
21:22:53 -!- Mathnerd314_ has joined.
21:22:59 <AnMaster> Gregor-W, XD
21:23:03 <AnMaster> Gregor-W, then go work on microcosm
21:23:08 -!- Mathnerd314_ has changed nick to Mathnerd314.
21:23:14 <Gregor-W> AnMaster: NO U
21:23:22 <Phantom_Hoover> ais523, ESR has called upon you to help him make an INTERCAL release for Knuth?
21:23:32 <AnMaster> Gregor-W, YES YOU
21:23:33 <Phantom_Hoover> That could easily become awesome.
21:23:45 <Phantom_Hoover> Did he ask you to come to his volcano base?
21:23:48 <ais523> Phantom_Hoover: that statement, while correct, is too ridiculous for me to verify without bursting out into laughter
21:23:49 <AnMaster> Phantom_Hoover, wait what? Where did ais523 state that?
21:23:57 <ais523> AnMaster: earlier when you weren't paying attention
21:24:08 <AnMaster> ais523, oh when I was nmaping opengenera then I guess
21:24:20 <AnMaster> intercal release for knuth?
21:24:27 <AnMaster> how would it differ from normal releases?
21:24:33 <AnMaster> now I'm all confused
21:24:34 <ais523> no idea; probably it wouldn't
21:24:39 <fizzie> In addition to OpenWatcom, I think I did run across bcc -- http://dir.filewatcher.com/d/NetBSD/1.5/i386/bcc-95.3.12.tgz.83488.html -- earlier; it's very small and limited and early ("K&R1 syntax"), but I guess you can still call it a C compiler, and it targets 8086.
21:24:46 <AnMaster> ais523, Or maybe like this:
21:24:54 <AnMaster> write gcc backend for MMIX
21:24:59 <fizzie> ais523: It'd be just like any other INTERCAL release, except with better typography.
21:25:00 <AnMaster> use that to compile ick
21:25:08 <ais523> fizzie: I've used bcc, it was one of the build dependencies of virtualbox
21:25:13 <fizzie> AnMaster: GCC already *has* a MMIX backend, I think.
21:25:19 <cpressey> INTERCWEBAL
21:25:25 <AnMaster> cpressey, or that
21:25:33 <ais523> fizzie: well, INTERCAL's main manual has moved from nroff to Texinfo
21:25:39 <ais523> so it is being TeX-typeset nowadays, indirectly
21:25:40 -!- Gregor-W has quit (Quit: Page closed).
21:25:42 <AnMaster> literate programming in intercal would be kind of weird-awesome
21:25:56 <AnMaster> fizzie, I guess the world is more awesome than I thought
21:26:05 <ais523> it's actually relatively easy in CLC-INTERCAL
21:26:10 <ais523> DO ABSTAIN FROM COMMENTS
21:26:14 <fizzie> At least the 4.5.0 manual has a chapter on MMIX, http://gcc.gnu.org/onlinedocs/gcc-4.5.0/gcc/MMIX-Options.html
21:26:17 <ais523> then write anything you like, so long as it doesn't look like code
21:26:35 <fizzie> There's a funnily named "-mknuthdiv" flag.
21:26:49 <ais523> good point
21:26:50 <ais523> but then, you only need 1/5
21:27:01 <ais523> and as each comment would count as one statement, you'd have plenty of actual commands to put pleases on
21:27:06 <Phantom_Hoover> ais523, are you willing to give quotes?
21:27:22 <AnMaster> fizzie, heh
21:27:36 <ais523> Phantom_Hoover: as in, quotations, or as in hypothetical bills for work I haven't agreed to do yet?
21:27:48 <Phantom_Hoover> Quotations from ESR's mission for you?
21:28:02 <fizzie> "Your mission, should you choose to accept it, ..."
21:28:02 <ais523> not yet, there's not much to say yet
21:28:07 <ais523> maybe at some point
21:28:23 * Phantom_Hoover has an amazing revelation
21:28:30 <Phantom_Hoover> Valinor is Australia!
21:30:00 <Phantom_Hoover> ais523, does he actually say why Knuth wants him to do this?
21:30:11 <ais523> no, basically no info yet
21:30:21 <ais523> also, you're asking a load of questions I don't know the answer to, that's AnMaster's job
21:30:56 <fizzie> Yes, you'd better not be barging on his "turf".
21:31:00 <Phantom_Hoover> OK. I'll stick to easy ones.
21:31:14 <Phantom_Hoover> Is Wolfram's 3-state Turing machine universal?
21:31:59 <cpressey> I wonder if my sed understands UTF-8 or whatever the heck this is
21:33:53 <fizzie> My 'sed' at least seems to treat input as bytes: "echo ä | sed -e 's/\xc3/Q/' | iconv -f iso-8859-1" => "HAH¤"; so it picked the 0xc3 first-byte of ä without interpreting it as a single unit.
21:34:09 <cpressey> I'm trying: find . -type f -exec sed -i 's/ú/&uacute;/g' {} \;
21:34:27 <cpressey> Guess we'll see, huh
21:34:30 <fizzie> That sounds like it should work even when interpreting as bytes.
21:35:29 <cpressey> I assume modern INTERCALs support Unicode?
21:35:42 <ais523> cpressey: depends on what you mean by "support"
21:35:46 <cpressey> In some idiomatically INTERCAL-esque fashion?
21:35:47 <ais523> they are capable of reading Unicode, yes
21:36:00 -!- cheater99 has joined.
21:36:15 <cheater99> DUDES
21:36:22 <fizzie> UTF-8 is even pleasant enough that you can't have two >= U+0080 UTF-8-encoded characters next to each other so that some substring that contains parts of both would be valid UTF-8 too, so a "s/ú/.../" shouldn't match anything else than real characters.
21:36:31 <cheater99> i've temporarily taken over a project that manages uranium storage and transport
21:36:35 <cheater99> and! it's written in php
21:36:51 <Phantom_Hoover> I suppose this means we're all going to die.
21:37:02 <cpressey> So, the "scary quotient" just kind of skyrocketed
21:37:03 <cheater99> is that fantabulous or what ^_^
21:37:22 <fizzie> So... radiation: it's what's for dinner?
21:37:50 <cheater99> yes
21:37:50 <cheater99> we are
21:37:54 <ais523> cpressey: let's just say, some characters have encoding-specific meanings
21:37:59 <cheater99> AND
21:38:08 <Sgeo> Vala natively uses UTF-8
21:38:15 <ais523> as in, what various operators do depend on the encoding which they were written with in the source code
21:38:19 <cheater99> this is one of the biggest companies in europe
21:38:21 <cheater99> for that shit
21:38:28 <cpressey> ais523: Sounds about right!
21:38:33 <Sgeo> Which is refreshing, after Python's implenentation dependent "Do we do it correctly, or not?"
21:39:31 <Phantom_Hoover> cheater99, why does PHP → we're all going to die?
21:39:51 <AnMaster> <ais523> also, you're asking a load of questions I don't know the answer to, that's AnMaster's job <-- Does that mean I have a "license to ask such questions" kind of thingy?
21:39:56 <cheater99> BECAUSE TURQUOISE.
21:40:03 <ais523> AnMaster: well, it annoys me whoever does it
21:40:11 <ais523> but at least from you it's expected
21:40:33 <Sgeo> <Flonk> Is there anyone that could help me with my little BitBlt problem?
21:40:36 <cpressey> Phantom_Hoover: I've worked at large corporations which won't even use PHP to sell books.
21:40:45 <Sgeo> Sgeo> Flonk, ask on #esoteric?
21:40:45 <Sgeo> <Flonk> Sgeo: yeah well its C++, so not that esoteric :P
21:40:56 <Phantom_Hoover> cpressey, Wikipedia trusts it...
21:41:06 -!- Flonk has joined.
21:41:23 <cpressey> Phantom_Hoover: To perpetrate questionable information -- sure, it's good at that
21:41:30 <Phantom_Hoover> cpressey, ha.
21:41:31 <cpressey> Wait, perpetrate?
21:41:42 <Phantom_Hoover> Flonk, what is your esoteric question?
21:41:44 <ais523> `addquote (in #irp) <Sgeo> Flonk, ask on #esoteric? <Flonk> Sgeo: yeah well its C++, so not that esoteric :P
21:41:56 <HackEgo> 200|(in #irp) <Sgeo> Flonk, ask on #esoteric? <Flonk> Sgeo: yeah well its C++, so not that esoteric :P
21:42:20 <ais523> cpressey: I thought "perpetrate" was the usual verb for creating an INTERCAL compiler
21:42:36 <Flonk> Phantom_Hoover: nothing :) But If someone in here could help me with C++, thatd be awesome
21:43:04 <Sgeo> C++ is an esolang of unprecidented complexity, so it does seem appropriate here
21:43:12 <Phantom_Hoover> Has your compiler attacked you with a fork or other piece of cutlery
21:43:13 <Phantom_Hoover> ?
21:43:31 <Flonk> not yet
21:44:02 <Sgeo> In full seriousness, there is a ##C++
21:44:07 <Phantom_Hoover> What seems to be the problem?
21:44:12 <Flonk> well, so my question:
21:44:17 <Phantom_Hoover> Sgeo, STOP RUINING THINGS
21:44:36 <Sgeo> We won't mind if you ask here
21:44:43 <ais523> yep, this channel's off topic half the time
21:44:57 <ais523> and enough of us fail to know C++ less than average that we might be able to help
21:45:37 <Flonk> case WM_PAINT:
21:45:38 <Flonk> hdc = BeginPaint(hWnd, &ps);
21:45:40 <Flonk> bitDC = CreateCompatibleDC(hdc);
21:45:42 <Flonk> paint_frac(bitDC);
21:45:43 <Flonk> BitBlt(hdc, 0, 0, width, height, bitDC, 0, 0, SRCCOPY);
21:45:45 <Flonk> DeleteDC(bitDC);
21:45:47 <Flonk> EndPaint(hWnd, &ps);
21:45:48 <Flonk> the problem is, it doesnt do anything.
21:45:49 <Flonk> paint_frac basically just draws lots of lines, and works fine if i use it on the window dc (hdc)
21:45:51 <Flonk> But I have my problems with memory DC's, so it seems
21:46:05 <Phantom_Hoover> AAAAAAAAGH GUIs
21:46:17 <Flonk> I'm sorry.
21:46:37 * Phantom_Hoover sobs
21:47:10 * Sgeo is GUI-disabled after having learned VB5 as a first language
21:47:21 <Sgeo> Or at least, that's what I claim
21:47:22 <cpressey> "Before an application can use a memory device context for drawing operations, it must select a bitmap of the correct width and height into the device context. This may be done by using CreateCompatibleBitmap to specify the height, width, and color organization required in the function call. "
21:47:39 <ais523> hmm, is that Win32 API?
21:47:45 <ais523> I used to use that a lot
21:47:51 <Flonk> ais523: it is
21:47:54 <Phantom_Hoover> Sgeo, VB5?
21:48:02 <fizzie> It is unmistakably it.
21:48:05 <Phantom_Hoover> I will never again bemoan my first use of Pascal.
21:48:11 <Flonk> cpressey: alright! thanks :)
21:48:15 <ais523> anyway, I'm not convinced that bitDC is the right sort of DC at all
21:48:29 <ais523> at least, I'd expect there to be memory backing it somewhere
21:48:34 <Flonk> its just aa variable name
21:48:45 <ais523> I know, but normally I used MemoryDCs for that sort of thing
21:48:49 <cpressey> Flonk: Note that I am running about 90% on intuition here. I googled CreateCompatibleDC, skimmed the first page that came up, picked a paragraph, and copied it here.
21:48:53 <ais523> hmm, let me try to find some code I wrote to remind me about how it works
21:49:07 <fizzie> Also, BitBlt returns a bool; check it first. If it's zero, do GetLastError once.
21:49:33 <Flonk> yeah well, if it doesnt work I'll notice it :P
21:49:49 <ais523> sometimes it's useful to know whether the computer thought it worked
21:49:53 <ais523> regardless of whether it actually worked
21:50:35 <ais523> hmm, it seems I never /did/ make my DCs by hand, I always used a third-party library
21:50:42 <ais523> so I can't really help, as my memory of how this works is all wrong
21:50:47 <Flonk> yeah, but thats basically the whole program
21:50:58 <Flonk> ais523: okay :) thanks anyway
21:51:48 <fizzie> And if the computer thought it didn't work, it's usually useful to know why it thinks so.
21:52:22 * cpressey wonders why so many are GUI-adverse in this channel
21:52:51 <ais523> cpressey: my guess is that it's because we're used to doing the sort of horrendously complex things that command lines can do but GUIs generally can't
21:53:07 <ais523> I imagine half this channel could write a nontrivial shell script
21:53:14 <ais523> and the only real reason the other have couldn't is that they use Windows
21:53:22 <ais523> and thus don't have a decent shell-script interpreter
21:53:43 <cpressey> ais523: perhaps, perhaps...
21:54:12 <fizzie> Okay, yes.
21:54:27 <fizzie> MSDN on CreateCompatibleDC: "When the memory DC is created, its display surface is exactly one monochrome pixel wide and one monochrome pixel high. Before an application can use a memory DC for drawing operations, it must select a bitmap of the correct width and height into the DC. To select a bitmap into a DC, use the CreateCompatibleBitmap function, specifying the height, width, and color organization required."
21:54:44 <fizzie> So it's not enough just to create a DC like that.
21:54:52 <Phantom_Hoover> DC?
21:54:56 <ais523> that pretty much matches my memory of the general way you do things, even if I don't know any of the function names as I wasn't using them
21:55:01 <ais523> Phantom_Hoover: basic Windows unit of graphics
21:55:06 <ais523> in the sense of "one window, one bitmap, etc"
21:55:09 <ais523> rather than in the sense of "one pixel"
21:55:15 <Phantom_Hoover> Ah.
21:55:22 <cpressey> fizzie: Ha! My intuitive leap is justified by actual research.
21:55:30 <fizzie> Device Context; it has pen attributes and things like that in it.
21:55:34 <ais523> well, used to be
21:55:35 -!- nooga has quit (Ping timeout: 260 seconds).
21:55:51 <ais523> it's a GDI32 concept, and that whole toolkit's deprecated nowadays
21:56:00 <ais523> because Microsoft keep changing their mind about how best to do graphics
21:57:44 <cpressey> Gregor: ^C ^V ^X do some interesting things to the JSMIPS term
21:58:18 <fizzie> In other news, I tried recently to do a custom-draw widget with Gtk#'s Gtk and Pango bindings, and text-layouting was hellishly slow; but they included a CairoHelper that let you create a Cairo.Context on a Gdk.Drawable (GDK's built on Cairo nowadays, I think), and drawing directly with it was a couple of magnitudes faster.
21:58:36 <cpressey> Gregor: Oh and hey, cd bin; echo * doesn't run out of memory
21:59:05 <cpressey> whoami makes the whole page flash red. nice
21:59:06 <cheater99> DC is Drawing Canvas, isn't it?
21:59:11 <ais523> Device Context
21:59:23 <Flonk> cheater99: no, Device Context
21:59:30 <cheater99> OK!
21:59:34 <cheater99> just guessing :D
21:59:36 <Flonk> cheater99: some sort of canvas you can use for everything
21:59:56 <ais523> note, Microsoft: discussing your graphics toolsets in #esoteric isn't even really offtopic. You should fix that!
22:00:16 <fizzie> Flonk: Noticed the bit about CreateCompatibleDC being 1x1 monochrome pixel unless you create a bitmap on it?
22:00:55 <Flonk> fizzie: i did, thanks :) googling a bit about that atm
22:01:11 <fizzie> (It's noisier here than what I'm accustomed to, so felt like checking.)
22:03:04 <fizzie> The official example, also:
22:03:06 <Gregor-P> cpressey: The flash is \a
22:03:07 <fizzie> HDC memDC = CreateCompatibleDC ( hDC );
22:03:07 <fizzie> HBITMAP memBM = CreateCompatibleBitmap ( hDC, nWidth, nHeight );
22:03:07 <fizzie> SelectObject ( memDC, memBM );
22:03:16 -!- cheater99 has quit (Quit: Leaving).
22:03:26 <fizzie> (And then a DeleteObject() on memBM when done.)
22:04:19 <Flonk> cpressey, fizzie: kinda works now, thanks guys :)
22:06:07 <fizzie> You're welcome, though I did get some nasty flashbacks to five years back when I actually did work on a win32 app that was a lot of GDI drawing; and 2D DirectDraw, and a third-party sprite thing on top of that, bhrrrrrr.
22:07:41 <Flonk> :D
22:08:05 <ais523> why is Windows programming so dominated by third-party libraries?
22:09:26 -!- Mathnerd314 has quit (Disconnected by services).
22:09:46 -!- Mathnerd314_ has joined.
22:10:01 -!- Mathnerd314_ has changed nick to Mathnerd314.
22:10:50 <Flonk> I try to use as little third party code as possible, just doesnt feel like I did it myself otherwise :D
22:11:18 <Phantom_Hoover> Flonk, write your own OS!
22:11:29 <Phantom_Hoover> We'll have your soul yet!
22:11:30 <Flonk> Thatd be awesome
22:11:38 <Flonk> like, in Brainfuck or something
22:11:47 <Phantom_Hoover> Naw, that wouldn't work.
22:11:54 <Sgeo> With PSOX!
22:11:56 <Flonk> well, its touring complete
22:12:05 <Phantom_Hoover> TC != OSable.
22:12:12 <Sgeo> turing complete does not mean can do anything, just can compute anything
22:12:18 <Sgeo> That's what PSOX was meant to help address
22:12:19 <Phantom_Hoover> You can't control outputs or anything.
22:12:26 <Phantom_Hoover> Without PSOX or kwrap.
22:12:31 <Flonk> true.
22:12:47 <fizzie> MS deprecated the 2D DirectDraw completely in favour of Direct3D, the graphics people kept wanting to do translucency tricks but we just had color-key transparency, no alpha channels, the sprite engine wasn't ours to bugfix... gah.
22:13:00 -!- augur has quit (Ping timeout: 276 seconds).
22:13:27 <fizzie> You should've seen the "sprites with frames that match tinted versions of different parts of the background" workarounds.
22:14:00 <ais523> why not just dither?
22:14:06 <ais523> or would that be even worse?
22:14:14 <fizzie> It's not pretty enough, I guess.
22:14:17 <Phantom_Hoover> ais523, Microsoft are kindred spirits?
22:14:27 <AnMaster> yay I have a working http server under open-genera
22:14:39 <AnMaster> now to figure out how to make it load anything but the documentation
22:14:50 <Gregor-P> AnMaster: Scary.......
22:14:56 <ais523> Phantom_Hoover: not really
22:15:00 <Phantom_Hoover> AnMaster, how did you get a Lisp machine?
22:15:00 <AnMaster> Gregor-P, how so?
22:15:05 <Phantom_Hoover> You lucky bastard.
22:15:08 <AnMaster> Phantom_Hoover, note: opengenera
22:15:27 <AnMaster> Phantom_Hoover, that is a virtual lisp machine
22:15:32 <Phantom_Hoover> Ohh.
22:15:35 <AnMaster> probably way faster than a real one would be
22:15:38 <ais523> I do sympathise with Microsoft's programmers to some extent, though; I blame most of Microsoft's misdeeds on a huge corporate hivemind that somehow manages to take over despite the desires of any of the individual employees
22:15:47 <Phantom_Hoover> I still think we should write our own Lisp OS, BtW.
22:16:08 <fizzie> Oh, there was also a dirty hack on the sprite engine to make it possible to set a "y cut" value to hide the lower half of a sprite starting from specific pixel line; then you could put two sprites on top with different background-translucencies, and alter the y-cut as the sprite moved from bottom part of screen to top.
22:16:10 <cpressey> ais523: They eventually learn to stop having those desires
22:16:28 <Sgeo> Clucky is an MS.. oh, you don't know him
22:16:40 <AnMaster> Phantom_Hoover, I don't think you could pull off installing it. Mainly because of stuff like "if you don't read every single line of the guides found on the web, and every single message that the system throws at you, you likely will end up having to start over from the beginning"
22:16:47 <AnMaster> and well, that isn't your forte :P
22:16:48 <Gregor-P> cpressey: Except in MSR!
22:16:59 <ais523> cpressey: I don't feel that evil is any more highly concentrated in Microsoft than elsewhere in the general population
22:17:09 <fizzie> Microsoft Res... gah! Stop pre-empting my sentences, Gregor.
22:17:26 <fizzie> I was about to say that they seem like a froody bunch.
22:17:30 <AnMaster> also setting up NIS was a real pain
22:17:40 <Gregor-P> fizzie: On a phone, from within MSR :P
22:17:40 <cpressey> ais523: I think what I said applies to the corporate world in general
22:17:44 <Sgeo> Allegiance is from MSR
22:17:48 <ais523> cpressey: yes, probably
22:18:02 <cpressey> Research units are not as badly effected
22:18:07 <cpressey> *affected
22:18:12 <fizzie> Gregor-P: On a phone, from within my bathroom, trying to get to a shower; so there!
22:18:36 <AnMaster> Gregor-P, I think this is the most unsecure linux system ever (in virtualbox). It is an old unsupported ubuntu version (because opengenera breaks with modern X servers it seems), running without shadow passwords, nis wide open, telnet too.
22:18:53 <Gregor-P> AnMaster: Sweet
22:18:58 <AnMaster> Gregor-P, at least I installed all patches, otherwise it would have had the openssl bug _as well_
22:19:15 <fizzie> But is it worse than the "Damn Vulnerable Linux" distro?
22:19:16 <AnMaster> Gregor-P, oh and nfs is there too, but not quite as wide open
22:19:26 <cpressey> As a replacement for those desires, they bikeshed about the content of 404 pages and details of their "agile method" procedures
22:20:00 <fizzie> AnMaster: http://www.damnvulnerablelinux.org/
22:20:11 <ais523> AnMaster: is it online?
22:20:46 <AnMaster> ais523, that vm? no
22:21:00 <ais523> good
22:21:10 <ais523> not being connected to the Internet does wonders for a system's security
22:21:14 <AnMaster> ais523, for a start, I can't get virtualbox NAT forwarding to work
22:21:27 <AnMaster> but yeah behind multiple firewalls
22:22:09 <AnMaster> first my router, then virtualbox's NAT, then "not yet properly setup NAT between eth0 and tun0" in the guest
22:22:46 <AnMaster> besides I have no clue how to make dns lookup work
22:23:12 <AnMaster> I'm supposed to enter the root servers in one place I know. And also there is this checkbox if root servers do recursive resolving or not
22:23:16 <AnMaster> which is somewhat strange
22:25:00 <AnMaster> ais523, anyway, lisp machines allow rsh and rexec as long as no local user is logged in
22:25:13 <AnMaster> oh and there is no such thing as passwords for logging in on a lisp machines
22:25:19 <AnMaster> lisp machine*
22:25:38 <AnMaster> oh and you can get a list of valid accounts without logging in
22:25:47 <AnMaster> oh and you can even create a new one without logging in
22:26:18 <AnMaster> ais523, however it does seem to not crash on nmap version scan, just complains loudly
22:29:00 <AnMaster> http://sprunge.us/EajT
22:29:07 <AnMaster> Gregor-P, ^
22:29:39 <Gregor-P> Scary
22:29:45 <Phantom_Hoover> I assume that most 64-bit systems don't use all 64 bits of an address,
22:30:36 <AnMaster> Phantom_Hoover, hm? x86-64 uses 48 bits, sign extended
22:30:57 <AnMaster> kernel lives in the negative half of the address space, user space in the positive
22:31:04 <Phantom_Hoover> Indeed.
22:31:28 <AnMaster> if you check /proc/cpuinfo it will probably tell you that your actual cpu is even more limited
22:31:31 <Phantom_Hoover> So can those 3 wasted bytes be used for anything?
22:31:32 <AnMaster> like 40 bits
22:31:33 <AnMaster> or such
22:31:41 <AnMaster> address sizes: 40 bits physical, 48 bits virtual
22:31:46 <AnMaster> for my sempron 3300+
22:31:55 <AnMaster> address sizes : 36 bits physical, 48 bits virtual
22:31:58 <AnMaster> on my core 2 duo
22:32:14 * Phantom_Hoover has 36 bits
22:32:37 <AnMaster> Phantom_Hoover, iirc the cpu checks that addresses are properly sign extended
22:32:55 <AnMaster> so probably not
22:33:01 <Phantom_Hoover> Damn them!
22:33:11 <AnMaster> unless you fix it up before dereferencing
22:33:57 -!- ais523 has quit (Remote host closed the connection).
22:34:14 <AnMaster> Phantom_Hoover, besides, afaik x86-64 specs says it might be extended to the full 64 bits in the future
22:34:20 <fizzie> I used the 8 bits for type-tagging in that x86-64 Scheme implementation.
22:34:27 <Phantom_Hoover> May they rot in something.
22:35:00 <Phantom_Hoover> fizzie, I was thinking of using that for the aforementioned Lisp OS.
22:35:44 * Phantom_Hoover checks how SBCL does things.
22:35:51 <pikhq> AnMaster: Yeah; the omitted bits are merely for the sake of reducing the work in the CPU, IIRC.
22:35:52 <fizzie> Though technically I had the type tag as the least significant byte (since that's independently usable in a x86 reg) and then just shifted by 8 to get raw pointers.
22:39:08 -!- oerjan has joined.
22:40:09 <cpressey> oerjan! No, wait
22:40:15 -!- ais523 has joined.
22:40:30 <oerjan> and a good evening to you too
22:40:47 <cpressey> oerjan, ais523: remind me to ask you to review my proof that P != NP when I finish writing it
22:40:58 <cpressey> and then to call up the asylum, of course
22:41:07 <ais523> cpressey: I'll happily review it for you
22:41:18 <ais523> and try to find the bug
22:41:25 <AnMaster> <pikhq> AnMaster: Yeah; the omitted bits are merely for the sake of reducing the work in the CPU, IIRC. <-- indeed
22:41:35 <ais523> I'm pretty curious as to how you prove the != there, given that diagonalisation doesn't work
22:41:42 <ais523> you can compare it with augur's proof that P=NP to see which of you is wrong
22:41:47 <AnMaster> fizzie, wait, which 8 bits
22:41:51 <oerjan> XD
22:41:52 <AnMaster> the ones between 40 and 48?
22:42:00 <AnMaster> or the ones above 48?
22:42:05 <pikhq> ais523: Clearly you assume P=NP and then prove that 1=1 from that.
22:42:33 <AnMaster> <ais523> you can compare it with augur's proof that P=NP to see which of you is wrong <-- a flawed proof I assume?
22:42:35 <ais523> pikhq: unforunately, converses are not always correct
22:42:43 <ais523> AnMaster: I don't know, he hasn't shown anyone for fear they'll steal it
22:42:48 <AnMaster> ais523, -_-
22:42:56 <pikhq> ais523: Erm. 1=100
22:43:03 <ais523> that's better
22:43:04 <pikhq> ais523: Thinkotastic.
22:43:21 <AnMaster> pikhq, but maybe 1 *is* equal to 100
22:43:23 <pikhq> That's... Actually a valid proof strategy, rather than nonsense. :P
22:43:23 <AnMaster> ;P
22:43:43 * Phantom_Hoover decides to murder whoever wrote SBCL's docs.
22:43:49 <pikhq> AnMaster: Maybe in the retard axiomatic system.
22:43:54 <pikhq> Good thing that's not what we use.
22:43:58 <AnMaster> pikhq, touche
22:44:23 <fizzie> AnMaster: The least significant. You know, 0..7. Then you do an arithmetical right-shift of 8 to get a raw pointer, so there's 56-bit pointers with the usual low/high half thing.
22:44:37 <oerjan> <ais523> AnMaster: I don't know, he hasn't shown anyone for fear they'll steal it
22:44:38 <AnMaster> wtf
22:44:48 <AnMaster> I just found out that this web server CL-HTTP is still developed
22:44:48 <oerjan> ok _that_ is surely one of the crank signs :D
22:44:55 <AnMaster> and lisp machines is still a supported target
22:45:00 <AnMaster> that's... extreme
22:45:12 <oerjan> (paranoia. in fact i read a list of crank signs yesterday, so...)
22:45:24 <ais523> oerjan: how many apply to Feather?
22:45:30 <oerjan> hm...
22:46:00 <cpressey> AnMaster: Obviously it's flawed, as I have proved P != NP. No, you can't steal it either!!!
22:46:02 <AnMaster> fizzie, hm that only works for user space pointers
22:46:08 <AnMaster> cpressey, XD
22:46:10 <oerjan> ais523: i don't think feather makes any _claims_ yet, does it? so possibly none.
22:46:21 <ais523> well, no
22:46:28 <ais523> I'd be mad to make claims about Feather without being able to verify them myself
22:46:34 <oerjan> hm i think it was on reddit
22:46:43 <Phantom_Hoover> oerjan!
22:46:52 -!- aliseiphone has joined.
22:47:06 <aliseiphone> Hi.
22:47:13 <Phantom_Hoover> oerjan, have you been fiddling with the BBC lately?
22:47:15 <AnMaster> aliseiphone, http://sprunge.us/EajT
22:47:31 <Phantom_Hoover> They very nearly made a show called "syntax era", and it smacks of you.
22:47:35 <pikhq> Haldo, enohpiesila
22:47:40 <ais523> hi alise
22:47:40 <AnMaster> aliseiphone, and I just found out that web server is still developed, and lisp machines is still a supported target
22:47:42 <fizzie> AnMaster: No, it works just fine for kernel-space pointers; that was the whole point of "arithmetical right-shift -- with the usual low/high half thing".
22:47:44 <AnMaster> should get the new version
22:47:48 <aliseiphone> AnMaster: /orgasm
22:47:55 <aliseiphone> I know of cl-http.
22:48:01 <aliseiphone> But AWESOME.
22:48:05 <ais523> (and it says something about me that I decided what to say, then tabcompleted aliseiphone's nick, then deleted the iphone bit
22:48:05 <AnMaster> aliseiphone, rather than using the old one included with opengenera
22:48:07 <ais523> )
22:48:16 <Phantom_Hoover> aliseiphone, there are established server frameworks for CL.
22:48:17 <AnMaster> aliseiphone, this is the most insecure ubuntu vm ever
22:48:20 <oerjan> hm possibly it was just in a comment
22:48:25 <aliseiphone> AnMaster: Whitehouse archive site used to run on lisp machines.
22:48:33 <aliseiphone> Phantom_Hoover: I know. And?
22:48:51 <Phantom_Hoover> I don't know.
22:48:53 <AnMaster> aliseiphone, non-shadow passwords. Wide open NIS. wide open telnet. Somewhat open nfs
22:49:10 <AnMaster> aliseiphone, and if I hadn't updated it, it would have had the infamous openssl bug
22:49:22 <AnMaster> so yes, outdated version
22:49:22 <oerjan> AnMaster: http://skepticblog.org/2010/07/08/martin-gardners-signs-of-a-crank/
22:49:24 <AnMaster> 7.10 I think
22:49:40 <ais523> AnMaster: the openssl bug doesn't make the computer it's on particularly insecure, though
22:49:41 <fizzie> (Oh, and there was the usual 63-bit immediate integer thing, leaving 7 bits for other types
22:49:45 <ais523> it makes /other/ computers more insecure
22:49:49 <oerjan> ais523: i guess you hit the first, at least :D
22:50:05 <ais523> which one is that?
22:50:25 <aliseiphone> <oerjan> ...skeptic...
22:50:30 <AnMaster> aliseiphone, well, it is due to NIS. opengenera doesn't support NIS with shadow
22:50:32 <oerjan> ais523: i suggest you check the logs for the URL i just pasted
22:50:54 * oerjan whistles stubbornly
22:50:57 <ais523> anyway, can anyone suggest what I should do if my computer smells like a soldering iron?
22:51:03 <ais523> that's it! it's not burning, it's desoldering itself
22:51:10 <ais523> umm, I should probably turn it off again
22:51:23 -!- ais523 has quit (Remote host closed the connection).
22:51:27 <AnMaster> whaaat
22:51:36 <AnMaster> that's some serious issues
22:52:41 <oerjan> AnMaster: there's also the crackpot index: http://math.ucr.edu/home/baez/crackpot.html
22:53:57 <oerjan> that one seems to require more work, though :D
22:54:46 <oklopol> "<ais523> I'm pretty curious as to how you prove the != there, given that diagonalisation doesn't work" <<< if no other way to separate classes is invented at some point, god must seriously hate computer scientists
22:55:11 <oklopol> and in the finite state world, the only technique is pigeonholing, which is just as boring
22:55:22 -!- MigoMipo has quit (Remote host closed the connection).
22:56:07 <oklopol> you can use reductions and closure properties to make using them less bothersome ofc
22:56:09 <oerjan> Phantom_Hoover: if you checked the logs for your nick you'd know i already commented on your syntax era. to be more precise, i said it looked more like a spelling era to me
22:56:20 <Phantom_Hoover> GRRR
22:58:21 -!- ais523 has joined.
22:58:34 <oerjan> <aliseiphone> <oerjan> ...skeptic... <-- it might behoove you to note that that link also mentions that some annoying _skeptics_ display many of the crank signs. *whistles innocently*
22:58:52 <ais523> well, different computer, running Windows (ugh), using a webclient...
22:59:24 <Phantom_Hoover> ais523, computer conflagrated yet?
22:59:32 <oerjan> "I find that a few skeptics are little different methodologically from the pseudoscientists they so fervently argue against, and so I believe it.s of great value to everyone to familiarize himself with Gardner's list."
22:59:34 <oklopol> maybe there's an invariant we could compute for P and NP to check they're different?!?
22:59:55 -!- MigoMipo has joined.
22:59:59 <ais523> Phantom_Hoover: I turned it off, and am using a different one
23:00:06 <ais523> and it doesn't smell of burnt silicon, but burning solder
23:00:32 <Phantom_Hoover> It is evidently possessed by Satan.
23:00:35 <aliseiphone> oerjan: Well I don't consider myself a "skeptic" and dislike e.g. RationalWiki and the Dawkins forums.
23:00:47 <aliseiphone> oerjan: So THERE. :P
23:00:47 <ais523> aliseiphone: any idea of what I should do? it's the same model as yours IIRC
23:00:56 -!- Mathnerd314 has quit (Disconnected by services).
23:01:02 <oerjan> aliseiphone: LALALALA I CAN'T HEAR YOU
23:01:02 <aliseiphone> ais523: turn up the fan
23:01:11 <oklopol> (the reason that won't work is invariants are usually only useful when the isomorphisms are too complex to find, so we just find something that a theoretical isomorphism would keep invariant, here we know exactly what the isomorphism will be, because it's simply the isomorphism of Set)
23:01:15 -!- Mathnerd314_ has joined.
23:01:16 <AnMaster> ais523, so was that your netbook?
23:01:19 <ais523> aliseiphone: there's a fan control?
23:01:20 <ais523> AnMaster: yes
23:01:21 <AnMaster> that desoldered itself?
23:01:27 <aliseiphone> Not netbook.
23:01:30 -!- Mathnerd314_ has changed nick to Mathnerd314.
23:01:39 <aliseiphone> It's a high power machine with an 11" screen.
23:01:40 <ais523> it's a sort of pseudonetbook
23:01:45 <aliseiphone> Subnotebook
23:01:49 <aliseiphone> is the term
23:01:49 <ais523> think "netbook except it's meant to run windows 7"
23:01:50 <AnMaster> hm
23:01:55 <AnMaster> ais523, right :P
23:02:08 <aliseiphone> ais523: Must be a fan control
23:02:11 <aliseiphone> It's dynamic
23:02:13 <AnMaster> anyway, doesn't the computer control the fan itself?
23:02:17 <cpressey> Skeptic: I shall beat you over the head with conventional wisdom! CONVENTIONAL!!!
23:02:19 <ais523> yes, normally
23:02:25 <Phantom_Hoover> Blow on it!
23:02:31 <ais523> sometimes the fan gets stuck and I have to hit it hard in the top-left corner to get it starting again
23:02:35 <ais523> but the fan was running fine this time
23:02:43 <ais523> besides, it turns itself off when it overheats
23:02:44 <aliseiphone> there usually - always - is a way to control it.
23:02:59 <aliseiphone> ais523: it's probably just heat
23:03:13 <ais523> what would the BIOS section do? set the fan to run constantly?
23:03:19 <cpressey> so, my wunnderful sed UTF-8 attempt didn't actually replace the UTF-8 character -- just inserted the replacement after it, apparently.
23:03:24 <ais523> also, what do you mean by "just heat" here?
23:03:31 <aliseiphone> ais523: Most likely. It's a temp solution
23:03:36 <AnMaster> <ais523> sometimes the fan gets stuck and I have to hit it hard in the top-left corner to get it starting again <-- aaaaaaaargh
23:03:40 <aliseiphone> Smell just due to heated components
23:03:43 <aliseiphone> cpresseySkeptic: I shall beat you over the head with conventional wisdom! CONVENTIONAL!!!
23:03:55 <ais523> well, there needs to be an actual chemical to make the smell
23:04:01 <Sgeo> It's an alise!
23:04:05 <ais523> oerjan: I've actually seen that list before, but had just forgotten it
23:04:12 <aliseiphone> cpressey: Why is evolution true? ATTENBOROUGH SAYS IT'S TRUE, THAT'S WHY.
23:04:26 <AnMaster> <aliseiphone> there usually - always - is a way to control it. <-- yes, but the computer and it's software tend to go out of it's way to protect you. I need to pass a special module parameter to some kernel module to allow manual fan control
23:04:43 <oerjan> cpressey: dick lipton over at the Godel's Lost Letter blog uses "Conventional Wisdom" as a slightly derogatory term.
23:04:49 <Sgeo> The computer and it is software?
23:04:55 <AnMaster> Sgeo, yes?
23:04:55 <aliseiphone> oerjan: as are we
23:05:05 <AnMaster> Sgeo, OS in this case
23:05:18 <AnMaster> I don't think it is possible to control it manually at all from under windows
23:05:27 <aliseiphone> Yes it is.
23:05:32 <aliseiphone> Very common program.
23:05:35 <AnMaster> aliseiphone, on my thinkpad I meant
23:05:40 <aliseiphone> PowerFan... Or something.
23:05:41 <Sgeo> <AnMaster> <aliseiphone> there usually - always - is a way to control it. <-- yes, but the computer and it is software tend to go out of it is way to protect you. I need to pass a special module parameter to some kernel module to allow manual fan control
23:05:43 <ais523> oerjan: Feather quite possibly hits number 26
23:05:49 <ais523> but seems to dodge most of the others
23:05:52 <AnMaster> hm
23:06:07 <AnMaster> Sgeo, yes I know what I said
23:06:12 <AnMaster> Sgeo, I fail to see the issue with it
23:06:12 <aliseiphone> ais523: I will pay you to work on Feather.
23:06:15 <oerjan> ais523: wait you're actually looking at the crackpot index? that's not the first link i gave, anyway.
23:06:32 <ais523> Sgeo: what's with the literal backspaces around AnMaster's nick in those quotes?
23:06:47 <aliseiphone> ais523: How does 1p a year sound?
23:06:57 <Sgeo> ais523, I think XChat tried to copy color codes when I copied that part
23:07:02 <aliseiphone> ais523: Xchat formatting goop often copies
23:07:03 <AnMaster> yes something is strange there. I see the highlight stops right after the first > in my client
23:07:25 <Phantom_Hoover> When someone gives me a brief outline of Feather I will be happy.
23:07:31 <AnMaster> Phantom_Hoover, XD
23:07:36 <ais523> Phantom_Hoover: same
23:07:40 <AnMaster> hahah
23:07:43 <Sgeo> The color code ends after that >
23:07:52 <aliseiphone> ais523: ha
23:07:52 <AnMaster> this channel blocks colour codes
23:07:57 <aliseiphone> ais523: Can you tell me what cpp yields for this?
23:08:08 <ais523> aliseiphone: this isn't my computer
23:08:11 <aliseiphone> #define f(x,y) x
23:08:13 <ais523> and it doesn't have a C compiler as a result
23:08:22 <aliseiphone> #define a foo,bar
23:08:25 <Phantom_Hoover> aliseiphone, I'll do it.
23:08:26 <aliseiphone> f(a)
23:08:28 <ais523> so I can try to do it in my head, but might not be accurate
23:08:28 <Sgeo> Well, whether it has a C compiler or not is irrevant >.>
23:08:34 <aliseiphone> Phantom_Hoover: that ^
23:08:37 <ais523> I think it just gives you f(a), but I'm not completely sure
23:09:05 <Phantom_Hoover> I get <stdin>:3:4: error: macro "f" requires 2 arguments, but only 1 given
23:09:05 <Phantom_Hoover> f
23:09:08 <aliseiphone> Phantom_Hoover: Just the last line
23:09:10 <aliseiphone> hmm
23:09:14 <aliseiphone> ok try this
23:09:25 <aliseiphone> #define f(x,y) x
23:09:43 <aliseiphone> #define g(x) f(##x##)
23:09:51 <ais523> aliseiphone: undefined behaviour
23:09:53 <Flonk> well, see you guys. bye!
23:09:55 -!- Flonk has quit (Quit: ChatZilla 0.9.86 [Firefox 3.6.8/20100722155716]).
23:09:56 <aliseiphone> #define a foo,bar
23:10:00 <aliseiphone> g(a)
23:10:04 <aliseiphone> Phantom_Hoover: ^
23:10:07 <ais523> you're trying to token-paste a punctuation mark to an identifier, I know that one
23:10:10 <aliseiphone> ais523: what is?
23:10:13 <aliseiphone> erm
23:10:15 <ais523> what happens in practice could be interesting, though
23:10:28 <aliseiphone> ais523: Mm
23:10:34 <aliseiphone> Phantom_Hoover: Well, try it.
23:10:41 <Phantom_Hoover> Lots of error.
23:10:54 <Phantom_Hoover> I like using "error" as an uncountable noun.
23:10:56 <aliseiphone> ais523: I suspect if this yielded "foo" cpp would be TC.
23:11:03 <Phantom_Hoover> I shall do it more often.
23:11:05 <aliseiphone> (with self includes)
23:11:16 <Phantom_Hoover> <stdin>:4:1: error: pasting "(" and "a" does not give a valid preprocessing token
23:11:17 <Phantom_Hoover> <stdin>:4:1: error: pasting "a" and ")" does not give a valid preprocessing token
23:11:17 <Phantom_Hoover> <stdin>:4:1: error: macro "f" requires 2 arguments, but only 1 given
23:11:17 <Phantom_Hoover> f
23:11:32 <Gregor-P> Just use f( x ) instead of f(##x##)
23:11:39 * Sgeo likes Vala's distinction between runtime errors and assert things
23:11:39 <Gregor-P> Silly
23:11:57 <aliseiphone> Phantom_Hoover: Do what Gregor-P said in g
23:12:09 <Phantom_Hoover> foo
23:12:11 <Phantom_Hoover> YAY!
23:12:15 <aliseiphone> Omg
23:12:24 <aliseiphone> Cpp is TC prolly!
23:12:35 <Gregor-P> WANT PROOF
23:12:36 <aliseiphone> Gregor-P: Proof on Friday. Promise.
23:12:38 <Phantom_Hoover> I thought self-includes didn't tail recurse.
23:12:45 <aliseiphone> Can't on iPhone
23:13:03 <aliseiphone> Phantom_Hoover: We assume an implementation unrestrained so.
23:13:15 <oerjan> <pikhq> Phantom_Hoover: Better than "Conquering Russia".
23:13:24 <aliseiphone> Like we assume interpreters have infinite memory.
23:13:39 <oerjan> Conquering Poland > Conquering Norway > Conquering Russia > Conquering Afghanistan
23:13:48 <aliseiphone> ais523: So we have lists!
23:13:50 <Gregor-P> Yeah, the fact that our interpreters suck is irrelevant.
23:14:03 <aliseiphone> We can store them, pack them, unpack them.
23:14:17 <aliseiphone> __VA_ARGS__ helps too.
23:14:20 <aliseiphone> Sweeet
23:14:21 * Phantom_Hoover wants to go off and do that.
23:14:22 <oerjan> (everybody and their dog has conquered poland)
23:14:29 <aliseiphone> Phantom_Hoover: :(
23:14:33 <aliseiphone> Phantom_Hoover: MY JOB
23:14:36 <Phantom_Hoover> No, just the lists!
23:14:37 <ais523> so cpp fails to be TC just because it's allowed to put arbitrary limits on recursion?
23:14:42 <aliseiphone> My research. :(
23:14:45 <Sgeo> How do you configure a function to accept varargs in C++?
23:14:55 <aliseiphone> Phantom_Hoover: Aww please don't.
23:15:00 <aliseiphone> I wannaaaaa
23:15:00 <ais523> Sgeo: you run away screaming
23:15:06 <Phantom_Hoover> I'll keep it to myself!
23:15:10 <ais523> saves time in the long run
23:15:24 <Sgeo> I mean, in C, if you don't have (void) in the arglist, it's vararg
23:15:26 <Sgeo> What of C++?
23:15:28 <aliseiphone> Phantom_Hoover: this is why I don't discuss things publicly >_>
23:15:39 <aliseiphone> Sgeo: false
23:15:55 <Phantom_Hoover> aliseiphone, lists are pretty trivial after what you just did.
23:16:00 <Sgeo> (or other argument list)
23:16:10 <aliseiphone> Phantom_Hoover: Aww c'mon
23:16:22 <Phantom_Hoover> OK. I'm definitely not doing it.
23:16:26 <aliseiphone> I hate repeating work but I have NIH >.>
23:16:42 <aliseiphone> And i'm almost as immature as Sgeo!
23:16:48 <Sgeo> lol
23:16:58 <aliseiphone> Phantom_Hoover: :|
23:17:03 <aliseiphone> Phantom_Hoover: I can see you
23:17:10 <aliseiphone> s/ \$//
23:17:16 <Phantom_Hoover> How many fingers am I holding up?
23:17:37 <aliseiphone> None. You got tired and put them down.
23:17:45 <Phantom_Hoover> Nope.
23:18:01 <aliseiphone> /That/ doesn't count.
23:18:07 <Sgeo> 10 in some base
23:18:13 <Phantom_Hoover> Can you see what's in my terminal?
23:18:13 <cpressey> I'm going to go into psychology, specializing in treating NIH
23:18:25 <aliseiphone> cpressey: NO I LIKE IT
23:18:47 <aliseiphone> Phantom_Hoover: list.h
23:18:53 <Sgeo> Also, what was false about what I said, alise?
23:18:59 <Phantom_Hoover> aliseiphone, no.
23:19:08 <aliseiphone> Sgeo: Need ... In c for varargs
23:19:13 <Sgeo> Ah
23:19:16 <oerjan> the programmers who say NIH
23:19:28 <Sgeo> So what's the point of (void)?
23:19:44 <aliseiphone> Sgeo: hysterical raisins
23:19:48 <aliseiphone> you did like
23:19:55 <cpressey> oerjan: LOW BLOW
23:19:59 <aliseiphone> void weirdosthing();
23:20:03 <aliseiphone> I think
23:20:11 <aliseiphone> Then weirdosthing(x,34);
23:20:24 <aliseiphone> weird os thing
23:20:31 <aliseiphone> Not weirdo's thing
23:20:38 <Phantom_Hoover> Sgeo, () means it takes anything.
23:20:44 <Sgeo> Now I'm confused. You don't need ... for varargs? Or just in the special case of an OS li... AAAAAA
23:20:47 <Phantom_Hoover> (void) means it takes nothing.
23:20:52 <Sgeo> When you do need ...?
23:21:01 <aliseiphone> Sgeo: All the time.
23:21:08 <Phantom_Hoover> Sgeo, when you're doing it properly.
23:21:14 -!- tombom has quit (Quit: Leaving).
23:21:27 <aliseiphone> () means "this thing takes anything". It is hopelessly vague.
23:21:32 <aliseiphone> You use it SM
23:21:38 <aliseiphone> *it never.
23:21:48 <Sgeo> Wouldn't (...) also mean the same thing? Except I guess it's clearer to do (...)
23:21:55 <aliseiphone> Anything as in unspecified
23:22:01 <aliseiphone> Sgeo: INVALID
23:22:11 <Sgeo> ?
23:22:17 <aliseiphone> Variadic funxtins must have one normal arg
23:22:22 <Phantom_Hoover> Sgeo, you *cannot* have a varargs function that can take 0 args.
23:22:24 <aliseiphone> *functions
23:22:32 <Sgeo> ...why?
23:22:35 <Phantom_Hoover> It follows from the calling convention.
23:22:43 <aliseiphone> Sgeo: Calling conventions.
23:22:48 <Phantom_Hoover> Arguments are pushed onto the stack, so you need to know how many there are.
23:22:57 <aliseiphone> Phantom_Hoover: No
23:23:09 <aliseiphone> Phantom_Hoover: That is NOT the only convention
23:23:16 <Sgeo> I think Vala poisoned my mind
23:23:18 <Phantom_Hoover> aliseiphone, it's probably the most common one.
23:23:24 <Sgeo> What Vala does is have the last thing be null
23:23:28 <oerjan> <Phantom_Hoover> Valinor is Australia!
23:23:33 <Phantom_Hoover> aliseiphone, OK, I needed to clarify.
23:23:34 <aliseiphone> Phantom_Hoover: Yes. But this is standards.
23:23:39 <oerjan> the elves went a _bit_ downhill, don't you think?
23:23:44 <aliseiphone> Phantom_Hoover: We're anally retentive.
23:25:02 <Phantom_Hoover> Sgeo, example: printf("%p") will print the address of the calling function with my CC.
23:25:23 -!- cheater99 has joined.
23:25:28 <Sgeo> So printf is printf()?
23:25:36 <Sgeo> And not printf(string, ...)?
23:25:52 <aliseiphone> Sgeo: #define foo(...) if (!*#__VA_ARGS__) foo0(); else fooN(__VA_ARGS__)
23:26:01 <aliseiphone> NEVER USE THIS.
23:26:04 <aliseiphone> Sgeo: No.
23:26:20 <aliseiphone> int printf(char *, ...);
23:26:26 <Sgeo> Oh, right
23:26:27 <Sgeo> >.>
23:26:36 <Phantom_Hoover> Sgeo, the format tells printf what to do with the rest of the args.
23:26:49 <aliseiphone> Sgeo: Also, that foo hack only works for void returns
23:27:04 <aliseiphone> Can work for returns with gcc statement expressions.
23:27:10 <aliseiphone> NEVER EVER USE IT.
23:27:37 <Sgeo> I won't even remember it
23:28:11 <Phantom_Hoover> Sgeo, just remember: don't use () for variadic functions.
23:28:40 <Sgeo> Unless valac produces code that uses it
23:28:46 <Sgeo> *valac
23:29:06 <Sgeo> Bleh, that l looked like an I for some reason. There was, in fact, no typo
23:29:51 <Sgeo> I feel giggly
23:30:10 <aliseiphone> #define hd_(x,...) x / #define hd(x) hd_( x ) / #define tl_(x,...) __VA_ARGS__ / #define tl(x) tl_( x ) / #define foo a,b,c,d / hd(tl(foo))
23:30:14 <aliseiphone> Phantom_Hoover: ^
23:30:22 <aliseiphone> Phantom_Hoover: / is newline
23:30:25 <Phantom_Hoover> OK.
23:30:31 <aliseiphone> What does it output?
23:30:39 <Phantom_Hoover> I cannot type that fast!
23:30:48 <aliseiphone> :-)
23:30:50 <Sgeo> What would happen if you did something like #define test #define y 5
23:30:50 <aliseiphone> I eas a
23:30:51 <Sgeo> ?
23:31:01 <aliseiphone> *I was asking for when you did
23:31:11 <aliseiphone> Sgeo: it would expand to literally that
23:31:20 <aliseiphone> Sgeo: see iterated cpp
23:31:37 <Phantom_Hoover> In file included from <stdin>:1:
23:31:38 <Phantom_Hoover> list.h:6:1: error: unterminated argument list invoking macro "hd"
23:31:38 <Phantom_Hoover> hd
23:31:38 <Phantom_Hoover> # 1 "<stdin>" 2
23:31:56 -!- CakeProphet has quit (Ping timeout: 246 seconds).
23:31:59 <aliseiphone> ais523: ^ what
23:32:09 <AnMaster> aliseiphone, I'm "restoring" the last CL-HTTP from a tape image
23:32:09 <Phantom_Hoover> My fault...
23:32:11 <Phantom_Hoover> Typo.
23:32:22 <aliseiphone> Phantom_Hoover: Wait, line 6?
23:32:24 <ais523> brb, updating Firefox
23:32:29 <AnMaster> aliseiphone, argh that I forgot to disable the automatic | more equiv
23:32:30 <Phantom_Hoover> aliseiphone, it's b.
23:32:33 -!- ais523 has quit (Quit: Page closed).
23:32:36 <Phantom_Hoover> I forgot the last bracket.
23:32:41 <aliseiphone> Phantom_Hoover: !!!!
23:32:46 <aliseiphone> Phantom_Hoover: It works.
23:32:55 <aliseiphone> I wrote that on an iPhone.
23:32:59 <aliseiphone> Damn I'm awesome.
23:33:20 <Sgeo> Wiat
23:33:22 <Sgeo> *Wait
23:33:27 <Sgeo> Cpp == C preprocessor?
23:33:30 <Sgeo> And not C++?
23:33:31 <Phantom_Hoover> Yes.
23:33:36 <aliseiphone> Ok, I can definitely prove it's TC. Probably. Tomorrow.
23:33:42 <cpressey> now do cons
23:33:43 <aliseiphone> Sgeo: Yes. *cpp
23:33:52 <Phantom_Hoover> cpressey, unnecessary.
23:33:57 <Phantom_Hoover> , is cons.
23:33:59 -!- CakeProphet has joined.
23:34:03 <aliseiphone> cpressey: what Phantom_Hoover said
23:34:07 <aliseiphone> x,lst
23:34:11 <aliseiphone> although
23:34:12 <Phantom_Hoover> CakeProphet, we have lists in the C preprocessor.
23:34:13 <Sgeo> No wonder I was confused. I was wondering why you were working with C++ for this
23:34:18 <aliseiphone> F(x,lst£
23:34:23 <aliseiphone> Won't work
23:34:28 <aliseiphone> Phantom_Hoover: Okay wait
23:34:36 <Sgeo> Does this mean that C is turing-complete now?
23:34:38 <Phantom_Hoover> "We" as in humanity.
23:34:42 <aliseiphone> Replace the foo define line with
23:34:45 -!- ais523 has joined.
23:34:46 <Phantom_Hoover> I TYPED THINGS.
23:35:00 <aliseiphone> #define cons(x,y) x,y
23:35:02 <Sgeo> Erm
23:35:03 <aliseiphone> then
23:35:24 <aliseiphone> #define foo cons(a,cons(b,cons(c,d)))
23:35:26 <Sgeo> Can the non-cpp C code take advantage of the turing-completeness of the preprocessor to itself be turing-complete?
23:35:30 <aliseiphone> Phantom_Hoover: Then try. Thx.
23:35:33 <aliseiphone> Sgeo: No.
23:35:45 <Phantom_Hoover> b
23:35:47 <aliseiphone> I haven't proved it's tc yet. Stay calm :P
23:35:50 <Sgeo> aww
23:35:51 -!- poiuy_qwert has quit (Quit: Leaving).
23:35:54 <ais523> because it can't re-invoke the preprocessor while running
23:35:56 <aliseiphone> Phantom_Hoover: There we go.
23:36:05 <aliseiphone> ais523: I just did lists in cpp
23:36:10 <ais523> I know
23:36:11 <aliseiphone> Proper ones.
23:36:27 <Phantom_Hoover> aliseiphone, wait, you need to be careful with the last element.
23:36:32 <aliseiphone> ais523: is the f( x ) trick standards compliant?
23:36:36 <aliseiphone> Phantom_Hoover: I know.
23:37:13 <Phantom_Hoover> Hmm, it seems to behave correctly.
23:37:30 <aliseiphone> *f(x,lst) (from before)
23:37:39 <Phantom_Hoover> This is just doing basic pattern-matching, isn't it?
23:37:41 <aliseiphone> Phantom_Hoover: it should do
23:37:45 <aliseiphone> yes
23:38:07 <aliseiphone> Phantom_Hoover: Im not sure you can do map
23:38:15 <aliseiphone> How would you detect nil?
23:38:26 <aliseiphone> Ok. You could do it will self includes.
23:38:28 <Phantom_Hoover> I don't think you could.
23:38:32 <aliseiphone> I see how.
23:38:36 <Phantom_Hoover> Well, fair enough.
23:38:37 <aliseiphone> *with
23:38:47 <aliseiphone> Maybe.
23:38:59 <ais523> aliseiphone: I don't know
23:39:04 <ais523> the spaces are likely irrelevant
23:39:08 <aliseiphone> Yeah. Make nil 0
23:39:10 <ais523> it's the indirection that does it
23:39:14 <aliseiphone> *0.
23:39:22 <aliseiphone> #if lst == 0
23:39:36 <aliseiphone> ais523: mm.
23:40:24 <Phantom_Hoover> We tryed that, didn't we?
23:40:31 <Phantom_Hoover> s/tryed/tried/
23:40:37 <Phantom_Hoover> Uck
23:41:04 <ais523> the issue is that it has to be an arithmetic expression both ways round
23:41:11 <ais523> what you should do is define true and false unlambda-style
23:41:22 <ais523> say, use head and tail as true and false
23:41:30 <Phantom_Hoover> f(x) works, BtW.
23:41:39 <ais523> and apply them to a cons cell in order to extract their values
23:42:51 <Phantom_Hoover> Wait, cpp has first-class macros?
23:43:35 <ais523> no
23:43:45 <ais523> it has first-class tokens, which can be macro names, though
23:43:59 <Phantom_Hoover> It doesn't do recursive expansion, though.
23:44:00 -!- ais523 has quit (Quit: Page closed).
23:44:26 <cpressey> Nice quit message
23:44:40 <aliseiphone> Just webirc
23:44:47 <cpressey> yeah
23:45:38 * Sgeo saw someone once type a URL into chat so they could click it
23:45:46 <Sgeo> On eir iPod
23:46:06 <Phantom_Hoover> Sgeo, aah, lumerelapse.
23:46:22 <Sgeo> ?
23:46:45 <cpressey> Can't I devise an offline adversary that pessimizes the solution to TAUT?
23:47:22 <Sgeo> Oh, that guy
23:47:46 <Phantom_Hoover> I have an article!
23:48:07 <aliseiphone> Phantom_Hoover: Why lumerelapse?
23:48:13 <aliseiphone> eir?
23:48:18 <Phantom_Hoover> Yep.
23:48:32 <aliseiphone> standard spivak pronoun ;)
23:48:53 <aliseiphone> Sgeo: Thats why I typed it
23:48:58 <aliseiphone> For iPhone
23:49:06 * Sgeo vaguely happies at his Nexus One
23:49:14 <Phantom_Hoover> aliseiphone, I know that. I still get involuntary spasms.
23:50:30 <Sgeo> I don't shudder in fear every time I see the word... you know what, now that I think of it, it may be offensive
23:50:47 <AnMaster> aliseiphone, the last CL-HTTP version doesn't work... It complains about not finding the host "wilson.ai.mit.edu"
23:50:57 <AnMaster> aliseiphone, I know where it comes from, considering how to fix it atm
23:52:34 <Phantom_Hoover> Sgeo, I shudder in fear of Lumenos.
23:53:55 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:54:23 <Sgeo> "Sometimes I think you no longer love me. I know that is just my low self esteem talking but, you know, it would be nice to hear you say it every now and then."
23:55:21 <Sgeo> Why is an ineffectual egomaniac anyone to be afraid of?
23:55:54 <Phantom_Hoover> Because no-one can be *that* weird without being out to hunt me.
23:56:49 <Phantom_Hoover> I still wish I knew where that picture on my article came from.
23:57:38 <Sgeo> Lumenos talks to himself?
23:58:25 <cpressey> Oh.
23:58:27 <Phantom_Hoover> I assume so,
23:59:21 <Phantom_Hoover> http://podictionary.com/wp-content/uploads/2009/05/dude.jpg seems to be a source.
←2010-07-28 2010-07-29 2010-07-30→ ↑2010 ↑all