←2010-07-07 2010-07-08 2010-07-09→ ↑2010 ↑all
00:00:26 <cpressey> aliseiphone: Er, it's a continuous-integration build I'm working on, actually.
00:00:41 <cpressey> Quite racy!
00:01:15 <aliseiphone> Ah.
00:01:41 <aliseiphone> cpressey: Where did you get the idea that I'm a character in a manga, exactly? :P
00:02:47 <aliseiphone> pikhq: Leaden! You should ask me about leaden. That would be great.
00:03:10 <cpressey> aliseiphone: That's a good question. ... But not as good as questions about Leaden!
00:03:28 <pikhq> aliseiphone: DO TELL ME
00:03:35 <aliseiphone> cpressey: IT WILL BUG ME ALL NIGHT IF YOU DO NOT ANSWER
00:03:48 <aliseiphone> pikhq: NOT A QUESTION SORRY YOU LOSE
00:04:28 <cpressey> aliseiphone: "Where" is not the question. I have no idea where any of them come from. I think the more relevant would be "why did I not dismiss the idea immediately." The answer: because it entertained me.
00:04:47 <cpressey> I think it had something to do with choosing to go by the name "alise".
00:04:55 <aliseiphone> Desu. Am I doing it right?
00:05:13 <cpressey> ...
00:05:25 <pikhq> No.
00:05:26 <cpressey> Yes. Yes, I think that will do nicely.
00:05:28 <aliseiphone> pikhq: What, exactly, do you want me to tell you about leaden for the purpose of me then shutting up?
00:06:13 <pikhq> aliseiphone: What, exactly, makes this awesome. Your ideas tend to have awesome properties, and I want to know what those awesome properties are for leaden.
00:06:33 <cpressey> I want to know why it's called "leaden", for one.
00:06:38 <cpressey> Damn, still not a question.
00:06:46 <aliseiphone> pikhq: There is no "save" feature!
00:06:58 <aliseiphone> (Under normal operating conditions!)
00:08:10 <aliseiphone> cpressey: ed[itor] -> lead (l-ed) -> lead seems incomplete -> leaden
00:08:30 <cpressey> Yokay.
00:08:57 <pikhq> aliseiphone: KIAL
00:09:07 <aliseiphone> THESE ARE THE TWO OPTIONS
00:09:13 <aliseiphone> pikhq: WHAT
00:09:30 <pikhq> "KIAL" be ESPERANTO for WHY
00:09:42 <aliseiphone> Kill, Intimately, Attractive Lemurs
00:09:52 <pikhq> (where ESPERANTO is an all-caps variant of Esperanto. :P)
00:10:25 <aliseiphone> pikhq: To cure VERSION CONTROL APATHY: wherein I never actually bother to use it.
00:10:33 <aliseiphone> Solution?
00:10:42 <aliseiphone> Every single change is saved auto
00:10:55 <aliseiphone> matically,
00:11:06 <aliseiphone> and Ctrl+S does a /commit/.
00:11:13 <pikhq> Cool.
00:11:21 <aliseiphone> Voilà, suddenly using a VCS is natural and easy.
00:11:24 <pikhq> On pikhq-coreutils, I've finally ceased with the version control apathy.
00:11:45 <pikhq> Because I realised that I've got DVCS stuff installed.
00:11:58 <pikhq> ... Making setting up a repo trivial.
00:12:14 <aliseiphone> pikhq: Another feature: Barely any features!
00:12:37 <pikhq> Woots.
00:12:50 <aliseiphone> I barely use any fancy-shmancy stuff! So I'm just cutting it out with a chainsaw, for my mind is small and easily confused.
00:13:28 <cheater99> ok
00:13:32 <cheater99> union-find gives you O(4)
00:13:36 <cheater99> did you know that, alise???????????
00:13:43 <aliseiphone> It will have very few ui elements, correspondingly few keyboard shortcuts and nothing else.
00:13:49 <cpressey> Oh, for...
00:14:00 <aliseiphone> cheater99: that's O(1), dipshit
00:14:34 <cheater99> the wikipedia article says O(n) for n proven to be =<4 for most practical cases.
00:14:37 <aliseiphone> moving on
00:14:44 <aliseiphone> cheater99: haha
00:14:49 <aliseiphone> You fail at big O
00:14:51 <aliseiphone> Hard
00:15:39 <cpressey> If that's the algo I think it is, it's O(inverseAckermann(n,n))
00:15:45 <cheater99> you do not understand the fact that O(4) still takes 4 times as much time as O(1).
00:15:53 <cpressey> Where inverseAckermann(n,n) is under 4 for just about any number you care about in practice
00:15:57 <cheater99> :P
00:16:07 <cpressey> Because Ackermann grows, like, quickly, eh?
00:16:23 <aliseiphone> pikhq: Anyway. Leaden will highlight syntax, automatically indent, open multiple files, open files near other files, find strings in files, and tell you the current line number.
00:16:32 <aliseiphone> And... very little else.
00:16:47 <aliseiphone> But /really well/.
00:17:13 <cpressey> Good night, all.
00:17:18 <aliseiphone> cheater99: I assume (hope) you're joking.
00:17:22 -!- cpressey has changed nick to cpressey_awaaaay.
00:17:24 <aliseiphone> cpressey: Night.
00:17:50 <Sgeo> Even I know that O(4) = O(1)
00:18:05 <cheater99> aliseiphone: i'm just teasin' you
00:18:18 <Sgeo> Or.. is equivalent in some other way
00:18:20 * Sgeo confuses
00:18:25 <aliseiphone> pikhq: And I think it'll be... well, better than Emacs. At least for me.
00:18:29 <aliseiphone> Sgeo: =
00:18:36 <cheater99> aliseiphone: you're cute when you get all angsty like that
00:18:51 <cheater99> sgeo: just look here
00:18:55 <cheater99> er
00:19:00 <cheater99> http://upload.wikimedia.org/math/2/4/0/240db6e2d532529d06b69bec85274b95.png
00:19:09 <cheater99> and multiply or divide M by 4.
00:19:10 <coppro> the problem is that big-O is an overloaded notation
00:19:25 <Sgeo> x_0?
00:19:38 <aliseiphone> Sgeo: Hes trolling you.
00:19:39 <cheater99> the equality in big-O actually is an \in sign.
00:19:44 <cheater99> aliseiphone: no.
00:19:55 <cheater99> aliseiphone: i only mess with *your* mind
00:19:58 <aliseiphone> Ah, wait, no.
00:20:11 <coppro> big-O represents asymptotic behavior
00:20:29 <aliseiphone> I must remember to make cheater99 go away sometime.
00:20:43 <aliseiphone> coppro: No, it represents a
00:20:49 <aliseiphone> mount of shock
00:20:49 <cheater99> aliseiphone: well, if you weren't hatin', we could live together peacefully
00:20:51 <Sgeo> .. there's too little context for that link to make sense.
00:21:02 <cheater99> Sgeo: http://en.wikipedia.org/wiki/Big_O_notation#Formal_definition
00:21:04 <aliseiphone> O(0.1) = :o
00:21:15 <aliseiphone> O(100) = :O
00:21:34 <cheater99> i can make my lookup O(0.0001)
00:21:48 <cheater99> yay!
00:22:30 <Sgeo> I'm going to go back to SGA now
00:22:44 <cheater99> i'm gonna try and go to sleep
00:22:46 <cheater99> cya later guys
00:22:52 <cheater99> enjoy your week aliseiphone
00:23:01 <coppro> cheater99: exactly
00:23:05 <coppro> O(1) is equivalent to O(4)
00:23:11 <cheater99> coppro: yes.
00:23:49 <coppro> so why were you arguing that they are different?
00:23:56 <cheater99> i was just messing with alise
00:23:59 <coppro> oh
00:24:01 <coppro> ok
00:24:03 <coppro> good plan
00:24:04 <cheater99> since she gets into silly arguments
00:24:24 * pikhq is now impressed with the Surf web browser
00:24:29 <cheater99> url?
00:24:39 <pikhq> http://surf.suckless.org/
00:24:43 <aliseiphone> Is mentally facepalming really "being messed with".
00:24:50 <pikhq> Or, if you want to read it: http://hg.suckless.org/surf/file/dbb565b8d61c/surf.c
00:24:55 -!- nooga has quit (Ping timeout: 240 seconds).
00:28:38 <aliseiphone> pikhq: Clearly I must write a BETTER one!
00:28:49 <aliseiphone> A
00:28:55 <aliseiphone> *no A
00:29:01 <aliseiphone> Well, night.
00:29:12 <aliseiphone> *goodnight
00:29:14 <aliseiphone> Bye.
00:29:17 -!- aliseiphone has quit (Quit: Get Colloquy for iPhone! http://mobile.colloquy.info).
00:32:56 <cheater99> she's so confused
00:39:24 <cheater99> sleep
00:39:24 <cheater99> bye
00:41:46 -!- BeholdMyGlory has quit (Remote host closed the connection).
00:51:21 -!- Mathnerd314 has quit (Ping timeout: 240 seconds).
00:53:39 -!- cheater99 has quit (Quit: Leaving).
00:54:50 -!- Mathnerd314 has joined.
01:20:21 <AnMaster> pikhq, ugh no tabs
01:20:28 <AnMaster> I used tabless browsers before... horribkle
01:20:31 <AnMaster> horrible*
01:26:06 <pikhq> AnMaster: It's designed to be embedded inside of a program implementing tabs, such as tabbed.
01:26:53 <coppro> or any tabbing WM
01:26:59 <coppro> speaking of which, what tabbing WMs are there?
01:31:23 <AnMaster> pikhq, wouldn't it waste a lot of memory based on not sharing state?
01:31:33 <AnMaster> pikhq, I have some 80 tabs
01:31:45 <AnMaster> 80 firefox instances would be horrible
01:31:49 <AnMaster> sure webkit is better but
01:31:50 <AnMaster> still
01:32:40 <pikhq> AnMaster: You realise that everything that *can* be shared is shared between processes just as well as between different portions of the same process, right?
01:33:27 <AnMaster> pikhq, yes but there will be some mutable state that is no longer shared
01:33:33 <AnMaster> pikhq, such as loaded bookmarks
01:33:40 <AnMaster> unless it mmaps bookmarks
01:33:44 <pikhq> That mutable state is *not sharable anyways*.
01:33:57 <AnMaster> pikhq, like bookmarks? sharable between tabs
01:34:06 <AnMaster> but not easily between processes without a lot of work
01:34:08 <pikhq> Using multiple processes instead of a single one isn't going to help that.
01:34:15 <pikhq> Also: who said anything about bookmarks?
01:34:19 <AnMaster> pikhq, ... the reverse
01:34:21 <pikhq> Surf doesn't have them.
01:34:25 <AnMaster> heh
01:34:34 <pikhq> AnMaster: Erm, right.
01:34:40 <AnMaster> pikhq, I think I prefer a slightly more bloated browser
01:34:56 <pikhq> AnMaster: I'm using Conkeror (XUL based) myself...
01:35:08 <pikhq> I've just got to admit: surf is a nice piece of work.
01:35:13 <AnMaster> pikhq, not vonkeror?
01:35:14 <AnMaster> :P
01:35:22 <pikhq> No. Not Vonkeror.
01:35:28 <AnMaster> you should totally switch to it :D
01:36:00 <AnMaster> pikhq, likre really
01:36:15 <pikhq> Bah.
02:01:38 -!- GreaseMonkey has joined.
02:14:43 -!- Phantom_Hoover has joined.
02:17:30 -!- Azkalar has joined.
02:18:06 -!- Phantom_Hoover has quit (Quit: Page closed).
03:21:44 -!- cheater99 has joined.
03:33:11 -!- SevenInchBread has joined.
03:35:45 -!- CakeProphet has quit (Ping timeout: 260 seconds).
03:39:29 -!- oerjan has quit (Quit: Good night).
03:47:22 -!- Oranjer has left (?).
03:52:03 * Sgeo may very well build a decimal-based computer
03:57:18 -!- SevenInchBread has changed nick to CakeProphet.
04:11:56 <AnMaster> you would end up with strange operators
04:12:03 <AnMaster> you wouldn't have and and or
04:12:10 <AnMaster> because those are binary
04:12:15 <AnMaster> you would have some weird ones
04:12:17 <AnMaster> Sgeo, ^
04:12:28 <Sgeo> ty
04:12:36 <Sgeo> hbm
04:12:39 <Sgeo> *hm
04:12:40 <AnMaster> Sgeo, ty?
04:12:45 <Sgeo> For pinging me
04:12:47 <Sgeo> I was iaw
04:12:47 <AnMaster> ah
04:12:50 <AnMaster> iaw?
04:12:57 <Sgeo> In another window
04:13:00 <AnMaster> ah
04:13:23 <AnMaster> Sgeo, anyway even for ternary you have some weird operators
04:13:27 <AnMaster> I don't remember which ones
04:13:35 <AnMaster> you would have even stranger ones for decimal
04:13:59 <Sgeo> I could do binary for some things, decimal for others, I think
04:14:03 <Sgeo> Maybe decimal memory
04:14:13 <AnMaster> meh, how boring :P
04:14:26 <AnMaster> Sgeo, NBCD?
04:14:34 <AnMaster> if yes BOOORING
04:14:51 <AnMaster> you need 10 logic levels
04:15:09 <AnMaster> otherwise it is just boring
04:15:22 <Sgeo> NBCD?
04:15:45 <AnMaster> N Binary Coded Decimal?
04:15:48 <AnMaster> forgot what N stands for
04:16:03 <Sgeo> Nono
04:16:15 <Sgeo> Just thinking it's as easy to store a digit as a bit
04:16:17 <Sgeo> In AW
04:16:18 <Sgeo> I think
04:16:22 <Sgeo> I may be mistaken
04:16:26 <AnMaster> Sgeo, um in AW
04:16:28 <AnMaster> how boring
04:16:33 <AnMaster> I thought you were using real hardware
04:16:37 <AnMaster> do do a decimal computer
04:16:41 <AnMaster> that would have been interesting
04:16:49 <coppro> AnMaster: Everything Sgeo does is in AW
04:16:52 <AnMaster> with AW, boooooring
04:16:54 <coppro> even the LambdaMoo work
04:17:03 <AnMaster> coppro, what is lambdamoo?
04:17:14 <coppro> another dead game that Sgeo works on
04:17:18 <AnMaster> ah
04:17:37 <coppro> my thoughts on Sgeo:
04:17:42 <coppro> `quote disturbing
04:17:44 <AnMaster> AW is just completely and utterly boring
04:17:55 <AnMaster> `echo foo
04:17:58 <HackEgo> No output.
04:18:08 <AnMaster> ...?
04:18:09 <coppro> oh right, HackEgo is broken
04:18:11 <HackEgo> No output.
04:18:15 <AnMaster> `run echo foo
04:18:15 <cheater99> AnMaster: weren't you rendering skyroads?
04:18:23 <AnMaster> cheater99, not me. Ilari
04:18:27 <coppro> Gregor: HackEgo is broken :(
04:18:27 <cheater99> oh ok
04:18:28 <AnMaster> please try to use your memory
04:18:31 <HackEgo> No output.
04:18:40 <cheater99> Ilari: check out Tasty Static, it's cool
04:18:49 <cheater99> AnMaster: i can't, memory is the new hard disk!
04:18:55 <cheater99> *rimshot*
04:19:01 <Ilari> cheater99: Nah.
04:19:03 <AnMaster> cheater99, ...?
04:19:19 <AnMaster> coppro, so what was the quote?
04:19:22 <cheater99> Ilari: just 'nah'?
04:19:37 <cheater99> you hadn't even looked at it. that's fairly disappointing.
04:20:10 <coppro> AnMaster: something along the lines of "Sgeo, while I'm supportive of your interest in games, the necrophilia is disturbing"
04:20:19 <AnMaster> coppro, wut
04:20:24 <AnMaster> oh wait
04:20:26 <AnMaster> I get it now
04:20:29 <AnMaster> 05:20
04:20:33 <AnMaster> haven't slept in 18 hours
04:20:55 <AnMaster> sorry, make that 19
04:21:11 <AnMaster> wait 21 even
04:21:14 <AnMaster> yeah I need sleep
04:26:53 * Sgeo ponders the implications of making all the opcodes in an 8-bit system be prime numbers
04:27:11 <coppro> a lot of invalid opcodes
04:27:43 <AnMaster> very few valid opcodes
04:28:57 <Ilari> How many valid opcodes? About 50?
04:29:51 <coppro> 54
04:30:03 <coppro> (typed in "prime numbers less than 256" in Alpha
04:31:49 <AnMaster> hah
04:32:09 <AnMaster> coppro, alpha does some nice translating to mathematica syntax
04:36:42 <Sgeo> Yay, 98 and 99 are coprime!
04:43:35 * Sgeo starts muttering 0 1, 0 1 2 under his breaht
04:43:37 <Sgeo> *breath
05:02:08 -!- Mathnerd314 has quit (Ping timeout: 252 seconds).
05:24:33 -!- Azkalar has quit (Quit: Leaving).
06:08:51 -!- pikhq has quit (Read error: Connection reset by peer).
06:10:00 -!- coppro has quit (Read error: Connection reset by peer).
06:10:05 -!- Halph has joined.
06:10:16 -!- Halph has changed nick to coppro.
06:10:28 <fizzie> I do not look "weird". Pshaw.
06:13:34 -!- pikhq has joined.
06:31:46 -!- Warrigal has quit (Ping timeout: 276 seconds).
06:32:59 -!- Warrigal has joined.
06:57:13 -!- choochter has quit (Quit: lang may yer lum reek..).
07:08:25 -!- Gregor-P has joined.
07:08:38 <Gregor-P> Apparently I have a Zune.
07:08:39 <Gregor-P> lawl
07:16:52 <fizzie> Don't worry, I have an N-Gage. (Though not actively in use nowadays.)
07:17:21 <fizzie> (I assume this was some sort of "most ridiculous gadgets" thing?)
07:27:41 <Ilari> Almost 13 hours and currently at frame 18 834 of 48 015...
07:27:55 -!- rodgort` has joined.
07:27:56 -!- rodgort has quit (Read error: Connection reset by peer).
07:30:41 <Ilari> Hmm... I need to design pipeline for esolang. Preferably one that's fairly long and can have important stuff occur in different places depending on the exact instruction... :->
07:57:10 -!- HackEgo has quit (Remote host closed the connection).
07:57:11 -!- EgoBot has quit (Remote host closed the connection).
07:57:14 -!- EgoBot has joined.
07:57:14 -!- HackEgo has joined.
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:12:33 -!- Gregor has quit (Remote host closed the connection).
08:13:30 -!- Gregor has joined.
08:27:46 <CakeProphet> I'm a chemical reaction in your brain.
09:04:57 -!- augur has joined.
09:24:06 -!- augur has quit (Remote host closed the connection).
09:24:13 -!- augur has joined.
09:29:45 -!- nooga has joined.
09:35:13 -!- coppro has quit (Ping timeout: 264 seconds).
09:39:24 -!- tombom has joined.
09:39:25 -!- tombom has quit (Changing host).
09:39:25 -!- tombom has joined.
09:42:07 <nooga> kxokxo
09:50:40 <CakeProphet> hmmm
09:50:49 <CakeProphet> so, I think natural languages have primitive words
09:51:09 -!- MigoMipo has joined.
09:51:23 <CakeProphet> and then words that can be defined by direct substition into a sentence with the meaning unchanged.
10:03:38 -!- CakeProphet has quit (Disconnected by services).
10:03:55 -!- CakeProphet has joined.
10:29:30 -!- Slereah has quit (Ping timeout: 240 seconds).
10:33:52 -!- Slereah has joined.
10:40:20 <Sgeo> What do I get if I just make AND, OR, and XOR?
10:41:57 <CakeProphet> you get.......
10:42:02 <CakeProphet> AND, OR, and XOR....?
10:42:13 <CakeProphet> (I'm probably missing some context.)
10:43:05 <Sgeo> Are there logical gates I can't construct?
10:43:15 <Sgeo> From AND, OR, and XOR?
10:43:24 <Sgeo> Well, I mean, um
10:43:25 <Deewiant> XOR gives you NOT.
10:43:37 <Deewiant> Hence you have NAND and NOR.
10:43:51 <GreaseMonkey> all you need is NAND
10:44:11 <Sgeo> GreaseMonkey, but if I represent a 1 as a pulse and a 0 as no pulse, how would I do NOT or NAND?
10:44:29 <Deewiant> x XOR 1 = NOT x
10:44:37 <GreaseMonkey> x NAND x
10:45:17 <Sgeo> Deewiant, yes. With a 1 being given by.. some other circuit, or something
10:45:23 <Sgeo> When it wants to do a NOT
10:45:29 <Sgeo> No need for a separate "do it" signal
10:45:33 <GreaseMonkey> XOR is: c = a NAND b; output = (a NAND c) NAND (b NAND c)
10:45:43 <GreaseMonkey> and i'm going to bed. gnight
10:46:07 -!- GreaseMonkey has quit (Quit: I'm using NO SCRIPT WHATSOEVER - Download it at file:///dev/null).
10:46:31 <Sgeo> But.. NAND needs to make 1s out of nothing, iiuc
10:46:55 <Deewiant> If you don't have constants, you can't make NOT with just AND/OR/XOR.
10:47:47 <Sgeo> Can I make a computer without constants?
10:48:41 <Sgeo> How do real-world computers do .. oh wait, 1 is a continuous flow
10:48:41 <Deewiant> If you have NOT and XOR, you can do x XOR x = 0 and NOT (x XOR x) = 1 and you have constants.
10:48:49 <Deewiant> Real-world computers have constants, yes. :-P
10:50:32 <Sgeo> I can _do_ constants, but .. I don't see an easy way to do them without either having redundant logic in each logic gate, or using NOT for the simplest gates [and NOT consumes time and may not be reliable due to lag]
10:50:59 <Deewiant> Redundant logic?
10:53:05 <Sgeo> To build an AND gate, I'd AND the 1 part of the inputs for the result's 1, and OR the 0 part of the inputs for the result's 0
11:01:02 <Sgeo> Here's the deal: I can send pulses
11:01:15 <Sgeo> I can also send.. a thing that makes an awsistor store a 1 or 0
11:01:39 <Sgeo> If it stores a 1 and I send a pulse though, a signal happens, as defined by the awsistor, but if it stores a 0... nothing happens
11:01:51 <Sgeo> So, how do I represent a bit in such an environment?
11:01:59 <Sgeo> a pulse for 1 and a different pulse for 0?
11:02:24 <Sgeo> Set one awsistor to 1 and a different one to 0 for 1, and visa versa for 0, and send a pulse when something changes?
11:02:32 <Sgeo> a pulse for 1, no pulse for 0?
11:03:28 <Sgeo> Hm, maybe a mixed environment
11:04:11 <Sgeo> For instance, if I have a circuit doing a lot of ANDs and ORs, pulse for 1 no pulse for 0
11:31:06 <augur> Sgeo: im not much of a fan of pulses. i prefer drupes.
11:36:40 <Sgeo> According to Wiki, drupe is a fruit
11:36:43 <Sgeo> Pulse is not a fruit
11:38:35 -!- pikhq has quit (Read error: Connection reset by peer).
11:46:15 <augur> so?
11:46:18 <augur> i still prefer drupes!
11:48:34 <Ilari> Err... drupe is type of a fruit?
11:50:03 <augur> peaches etc
11:50:17 <augur> no sorry
11:50:18 <augur> plums
11:50:26 <augur> oh no peaches too
11:50:27 <augur> awesome
11:50:45 <augur> coffee is a drupe :D
11:50:56 <augur> a drupe is basically one of those fruits with a pit
11:52:15 <Ilari> Those have mechanical protection of seed itself. So its less likely they have nasty chemical tricks. :-)
11:58:28 <Ilari> As the seed itself is always protected. It may be mechanical (hard shell, digestion-resistant casing) or chemical defenses (toxins and antinutrients) or combination of those. :-)
12:06:23 -!- pikhq has joined.
12:31:07 -!- augur has quit (Remote host closed the connection).
12:31:16 -!- augur has joined.
12:31:17 -!- augur has quit (Remote host closed the connection).
12:31:22 -!- augur has joined.
12:39:47 * Sgeo is stupidly awake right now
12:49:38 * ski nods tiredly
12:52:09 -!- cpressey_awaaaay has quit (Ping timeout: 240 seconds).
13:12:39 -!- ais523 has joined.
13:16:57 -!- Gracenotes has quit (Ping timeout: 260 seconds).
13:31:50 -!- Gracenotes has joined.
13:54:12 -!- oerjan has joined.
14:01:42 <AnMaster> ais523, combine feather an a nomic
14:03:00 <AnMaster> and*
14:03:39 <ais523> anyone here, is this idea plausible or completely insane: when writing a VCS, have a standardised PHP script that's accessible over the Web so you can check in changes over http/https as well as pulling them from there
14:03:47 <ais523> it would have to be in PHP to work on cheap webhosts
14:04:04 <AnMaster> ais523, it could be static html
14:04:14 <AnMaster> ais523, bzr can pull from a static web server
14:04:14 <ais523> AnMaster: how do you commit to static HTML?
14:04:25 <ais523> yes, most VCSes can /pull/ from a static web server
14:04:25 <AnMaster> ais523, commit you can't do that way
14:04:27 <ais523> I'm talking about /pushing/
14:04:30 <AnMaster> ah
14:04:34 <ais523> which would require server-side scripting
14:04:44 <ais523> ideally, with the same URL as the pull
14:04:47 <AnMaster> ais523, you *said* pulling though
14:05:03 <ais523> AnMaster: "as well as pulling"
14:05:09 <ais523> the "check in" was the push
14:05:18 <AnMaster> ah
14:05:20 <AnMaster> right
14:05:22 <ais523> "I want to do A as well as B" "but you can do B anyway!"
14:05:30 <AnMaster> read that as "check for"
14:06:01 <AnMaster> ais523, bzr can push over ssh (without bzr on the other end even), and iirc also over ftp
14:07:00 <AnMaster> ais523, anyway, nice idea
14:07:28 <AnMaster> ais523, anyway what do you like my idea of feathernomic
14:08:10 -!- Gracenotes has quit (Ping timeout: 240 seconds).
14:08:30 <AnMaster> what do you think of*
14:09:18 <ais523> I've had vague ideas myself
14:09:21 <ais523> but it would be too confusing to play
14:09:49 <ais523> AnMaster: darcs can push over ssh too, although I think it needs darcs on the other end in order to speed up the process
14:10:22 <AnMaster> would still be an awesome game
14:10:43 <AnMaster> ais523, bzr can optionally use bzr at the other end for speeding up
14:12:47 <Ilari> ais523: Well, for Git you could have the PHP script understand the RPC protocol and do the repository manipulation itself. :-)
14:12:57 <ais523> Ilari: genius
14:13:09 <ais523> I'm vaguely thinking about writing my own VCS, I have plans for it already
14:13:25 <ais523> because modern VCSes still don't do everything I think a VCS should do
14:13:30 <Ilari> ais523: RPC protocol is the only smart transport protocol that doesn't belong to same family as git://
14:13:32 <AnMaster> ais523, such as?
14:13:59 <ais523> merging changes into blocks which have changed indentation
14:14:07 <ais523> e.g. someone puts if(x) { ... } around a block
14:14:13 <ais523> and someone else edits the inside of the block itself
14:14:18 <ais523> I don't see why that should cause a conflict
14:14:26 -!- FireFly has joined.
14:14:36 <AnMaster> ais523, it needs to know the language
14:14:38 <ais523> also, you should be able to cherrypick anything without problems; darcs is good at that, most common VCSes are rather bad
14:14:42 <ais523> AnMaster: no, it doesn't
14:15:04 <AnMaster> ais523, in erlang it would be quite different for the last line, since the last line in the block will lose the ending ,
14:15:15 <ais523> if the entire context of a diff has changed whitespace consistently, in every language I know, except Whitespace, it would be safe to edit like that
14:15:30 <ais523> in Erlang, the test won't work and you'd have to merge manually, but it wouldn't mess up
14:15:36 <AnMaster> true
14:16:16 <AnMaster> ais523, how do you plan to support Whitespace?
14:16:27 <ais523> option to turn that check offf
14:16:28 <ais523> *off
14:16:31 <AnMaster> right
14:16:43 <AnMaster> ais523, needed for binary files anyway
14:16:54 <Ilari> ais523: Only that currently one needs protocol that supports 'connect' operation to do remote snapshot (git://, ssh://, file://, any remote helper that has 'connect' capability). RPC doesn't support that. :-/
14:16:57 <ais523> chance of it mattering for a binary file is incredibly low
14:17:05 <ais523> but I get your point
14:24:30 <ais523> you should also be able to do the equivalent of "git rebase" arbitrarily without screwing up anyone else's repo when they try to pull from you
14:28:29 <AnMaster> ais523, I think rebasing is modifying the immutable history
14:28:45 <AnMaster> once commited it shouldn't be possible to change
14:28:57 <ais523> well, the solution IMO is to have two layers
14:29:02 <ais523> actual history, and user-readable history
14:29:15 <ais523> the second would be modifiable to make it more readable (which is the reason people rebase), the first wouldn't
14:29:22 <AnMaster> or use merge
14:31:23 -!- agox has joined.
14:31:44 <ais523> meanwhile, SCO have appealed again
14:31:51 <AnMaster> ais523, hahaha
14:31:52 <ais523> it'll be hilarious to see which arguments they use this time
14:32:08 <AnMaster> bbl food
14:52:16 <oerjan> bubbly food
14:52:52 <AnMaster> oerjan, XD
14:53:53 -!- augur has quit (Remote host closed the connection).
14:53:59 -!- augur has joined.
14:59:59 -!- cheater99 has quit (Quit: Leaving).
15:14:29 -!- oerjan has quit (Quit: leaving).
16:13:36 -!- relet has joined.
16:18:51 -!- cpressey has joined.
16:20:07 -!- cheater99 has joined.
16:25:08 -!- agox has quit (Quit: Leaving).
16:28:08 <Ilari> Heh... Although total lunar eclipses seem much more common than total solar eclipses, in reality there's about 10 total solar eclipses for 11 total lunar eclipses. :-)
16:31:33 <Ilari> On average, there's one total solar eclipse in apprroximately 1.58 years. For total lunar eclipse the same time is approximately 1.44 years.
16:33:31 <Ilari> There's one TSE soon: http://eclipse.gsfc.nasa.gov/OH/OH2010.html#SE2010Jul11T
16:39:09 -!- augur has quit (Remote host closed the connection).
16:39:16 -!- augur has joined.
16:40:39 -!- Mathnerd314 has joined.
16:43:23 -!- cpressey has set topic: Exciting new features!!! OK not really | http://tunes.org/~nef/logs/esoteric/?C=M;O=D.
16:45:26 <fizzie> Ilari: The one that's soon isn't very watching-friendly; "makes no landfall except for Mangaia (Cook Islands), Easter Island (Isla de Pascua) and several isolated atolls".
16:47:27 <AnMaster> hah
16:55:04 <fizzie> There was one visible nicely from Finland back in 1990; there's not going to be another any time soon, I think.
16:57:28 <AnMaster> fizzie, I have never seen a total one
16:57:31 <AnMaster> well
16:57:36 <AnMaster> outside tv and youtube
16:58:31 <Gregor> I have NEVER SEEN THE WORLD outside TV and YouTube
17:02:56 -!- MizardX has quit (Ping timeout: 248 seconds).
17:09:48 -!- augur has quit (Remote host closed the connection).
17:09:54 -!- augur has joined.
17:21:24 <Ilari> Next cycle total solar eclipses: 2010-07-11, 2012-11-13, 2015-03-20, 2016-03-09, 2017-08-21, 2019-07-02, 2020-12-14, 2021-12-04, 2024-04-08, 2026-08-12 and 2027-08-02.
17:22:15 <cpressey> Consuming each character of the program source triggers an event. An event changes the state of the consumer and can optionally add a continuation (of a sort) to a collection of continuations to be enacted at some later point. The continuations can be set up to save (and re-enter when activated) previous states, so you can build context-free (at least) consumers.
17:23:00 <cpressey> (Trying to unify scanning, parsing, immediate, and deferred execution.)
17:26:07 <Ilari> Those are from Saros 146, 133, 120, 130, 145, 127, 142, 152, 139, 126 and 136 (in order).
17:30:08 -!- iamcal has quit (Ping timeout: 248 seconds).
17:32:36 -!- oklopol has joined.
17:32:58 <oklopol> where's oerjan
17:33:22 <oklopol> i need to talk to him about metatopology
17:34:49 <cpressey> urgently!
17:34:59 <cpressey> It's a metatopological emergency!
17:35:17 <cpressey> :)
17:35:20 <cpressey> hi oklopol.
17:35:33 -!- MigoMipo has quit (Read error: Connection reset by peer).
17:36:28 -!- MigoMipo has joined.
17:37:42 <Ilari> This century also has total eclipses from Saros 129, 149, 148 and 155.
17:41:13 -!- Mathnerd314 has quit (Ping timeout: 264 seconds).
17:41:27 -!- cheater99 has quit (Quit: Leaving).
17:52:20 -!- kar8nga has joined.
17:56:08 -!- cheater99 has joined.
17:59:34 <Ilari> Next Saros cycle to start is 156 with PSE in 2011. That cycle never produces TSE, but produces TLEs (2565-3034). It ends in 3503 with PLE.
18:03:34 -!- cal153 has joined.
18:03:39 -!- Mathnerd314 has joined.
18:11:43 <cpressey> 'Course, there has to be some kind of self-modifying aspect to the consumer, so that you can define new identifiers -- basically, you alter the events that are triggered when the characters in that identifier is consumed. Hmm...
18:16:19 <AnMaster> cpressey, hm? the context being?
18:16:36 <AnMaster> as in, which language or such
18:17:04 <cpressey> (11:22:35 AM) <cpressey> (Trying to unify scanning, parsing, immediate, and deferred execution.)
18:17:05 <AnMaster> Ilari, when is the next one for south-central Sweden?
18:17:15 <AnMaster> cpressey, ah, not for a specific language then?
18:17:34 <cpressey> Well, it could be a specific language, eventually
18:17:59 <AnMaster> <cpressey> Consuming each character of the program source triggers an event. <-- like befunge you mean?
18:18:01 <cpressey> Something like Mascarpone meets beta-Juliet meets... oh, who knows.
18:18:14 * AnMaster checks for Mascarpone on the esowiki
18:18:22 <cpressey> AnMaster: Except Befunge doesn't really have a grammar. No multi-character identifiers
18:18:26 <AnMaster> There is no page titled "Mascarpone". You can create this page.
18:18:27 <AnMaster> ?
18:18:43 <cpressey> It's one of mine
18:18:46 <AnMaster> cpressey, does brainfuck have a grammar? There are no multi-char identifiers either
18:18:50 <cpressey> I haven't made an esowiki page for it yet I guess
18:18:52 <AnMaster> but [ and ] has to be matched
18:19:18 <cpressey> AnMaster: That's much closer to a grammar than Befunge has, imo.
18:19:34 <Deewiant> Befunge has essentially no syntax
18:19:54 <AnMaster> hm.
18:20:09 <Ilari> AnMaster: That site doesn't allow to search by location.
18:20:15 <AnMaster> I hope fizzie starts working on jitfunge again btw
18:20:24 * AnMaster forgot if cpressey heard about jitfunge before
18:20:35 <AnMaster> Ilari, ah
18:20:47 <cpressey> I remember jitfunge from back when it was Betty :)
18:20:57 <AnMaster> cpressey, betty? doesn't sound familiar at all
18:21:01 <cpressey> That was a Befunge-93 jit compiler
18:21:09 <AnMaster> cpressey, jitfunge is fizzie'z project for a befunge-98 JIT compiling befunge
18:21:10 <cpressey> Probably lost to history
18:21:17 <AnMaster> I don't think it is based on this betty at all
18:21:24 <cpressey> No, I'm sure it's now
18:21:26 <cpressey> *not
18:21:42 <AnMaster> cpressey, iirc fizzie is using LLVM for it now, was doing his own x86 machine code at first but later switched to llvm
18:22:00 <cpressey> llvm is good for that
18:22:44 <pikhq> How's jitfunge going, anyways?
18:22:51 <AnMaster> cpressey, fun thing about jitfunge is that mycology is somewhat useless on it. Since it interprets and remembers first time it encounters a path in the code, then next time it ends up running that same path it JITs it. So things that work once might not work twice. Which mycology kind of assumes.
18:23:33 <cpressey> AnMaster: That makes it sound like jitfunge is incorrect
18:23:47 <AnMaster> cpressey, it makes it sound like it is pre
18:23:47 <AnMaster> rather
18:24:26 <AnMaster> iirc it ends a path when there are several directions to travel. Or maybe it didn't (I seem to remember it optimised the >:#,_ idiom (and variants for other directions), or maybe it was just a discussion about optimising it... not sure)
18:24:56 <Ilari> 33 902 frames of 48 015 done in 23:50...
18:24:56 <pikhq> AnMaster: It ends a path at branches, yes.
18:25:23 <cpressey> The key is that when you execute p and similar, you have to invalidate any compiled code that might have been changed by it.
18:25:31 <AnMaster> pikhq, hm, I guess it didn't turn >:#,_ into "output string" then
18:25:33 <pikhq> Yeah.
18:26:41 <AnMaster> cpressey, for p it had some sort of list for cells with traces using them in some way
18:26:45 <AnMaster> so it could invalidate
18:28:38 * ais523 submits another level for Enigma
18:37:13 <fizzie> cpressey: There's also the fact that I "optimize" fixed-coordinate 'p' to a single memory store, but then I have to keep track of all target cells of such writes, in case someone later goes and executes code there, because the simple write wouldn't of course invalidate the trace.
18:38:12 <fizzie> (And I have to invalidate also traces that have ;-jumped over some space iff the write adds/removes a ; on the route; and potentially worry about all wrapping traces if the code bounding-box changes.
18:39:34 <fizzie> The Mycology problem indeed is that it does its tests only once, so it won't (easily) find bugs in the created JIT code, because those parts are only executed once, and traced while interpreting them; they'd be compiled+executed only when encountered a second time.
18:43:20 -!- kar8nga has quit (Read error: Connection reset by peer).
18:45:05 <cpressey> fizzie: Surely that could be addressed by including a top-level loop in Mycology which makes it run its tests n times? (Although I admit that there are probably logistical problems with modifying Mycology in this way...)
18:45:33 <fizzie> You'd have to undo all self-modification and reset any other state.
18:45:51 <fizzie> Deewiant would probably know how feasible something like that is.
18:46:00 <Deewiant> Somewhat, but not very. :-)
18:47:23 <Deewiant> But it shouldn't be too hard to just reload the file and go again (in the interpreter, if you don't want to write it in Befunge)
18:47:53 <Deewiant> Well, doing it in Befunge is doable pretty much only if you can get to the q at the end
18:48:37 <Deewiant> But anyway, that's not as trivial as using 'i' since that doesn't overwrite things with spaces
18:48:56 <AnMaster> it self-modifies heavily iirc, which means a lot of the jited code would still be ran as if first time
18:49:02 <AnMaster> in case you reset the file I mean
18:49:32 <Deewiant> Some parts, yes, but most test code shouldn't change
18:49:48 <AnMaster> fizzie, for testing I guess you could always trace and jit, then execute? Just make it not actually touch funge space on any p or such while tracing
18:53:17 <fizzie> Sounds also somewhat feasible, but not completely trivial.
18:53:58 <Deewiant> I suggest doing that, since it can be useful for general (non-Mycology) testing
18:55:30 <AnMaster> of course you need to try it the other way too, in case the tracer variant is buggy
18:57:25 <AnMaster> fizzie, hm if you had a trace like >'6 2 2 p and then some other code changed that 6 into a 9 or such, couldn't you in theory avoid rejitting that and just modify the value in the jitted machine code?
18:59:20 <fizzie> Yes. I sort-of "handle" that by marking (one-shot and normal) string-mode-traced cells with a different "type" value, and a pointer to the corresponding intermediate-form opcode.
18:59:44 <AnMaster> nice
18:59:50 <AnMaster> why "handle"?
19:00:03 <AnMaster> why the quotes around it I mean
19:00:07 <fizzie> So I can (I'm not sure if I currently do) just alter the intermediate opcode and run LLVM's codegen, without having to throw out the whole trace.
19:00:33 <fizzie> The quotes where there because even better would be to patch the generated machine code directly, to avoid also the codegen step.
19:00:55 <fizzie> That'd run into problems with constant-folding though, I assume.
19:09:33 -!- Mathnerd314 has quit (Quit: ChatZilla 0.9.86-rdmsoft [XULRunner]).
19:21:54 -!- BeholdMyGlory has joined.
19:28:09 -!- cheater99 has quit (Ping timeout: 240 seconds).
19:28:34 -!- cheater99 has joined.
20:00:56 -!- CakeProphet has quit (Quit: leaving).
20:01:52 -!- coppro has joined.
20:06:34 -!- pikhq has quit (Read error: Connection reset by peer).
20:16:43 -!- pikhq has joined.
20:40:17 -!- cheater99 has quit (Ping timeout: 260 seconds).
20:51:48 -!- CakeProphet has joined.
21:16:13 -!- Warrigal has quit (Ping timeout: 276 seconds).
21:21:17 * pikhq loves how "" is a perfectly complete & valid Makefile
21:38:06 <fizzie> Geh, decoding a Descent 1 demo was a horrible mess. They use a variable-length "object" data structure, and the length depends on things like how many submodels a particular model has, so you have to decode all the polygon model data to know how many bytes to skip even if you're not interested in the event in question. (The demo files are a stream of events telling what to render on-screen.)
21:43:19 -!- pikhq has quit (Read error: Connection reset by peer).
21:46:51 -!- Gracenotes has joined.
21:52:40 -!- pikhq has joined.
22:00:05 -!- pikhq has quit (Read error: Connection reset by peer).
22:01:35 -!- Oranjer has joined.
22:06:37 -!- mtve has quit (Ping timeout: 260 seconds).
22:17:29 -!- MizardX has joined.
22:18:39 -!- pikhq has joined.
22:27:39 -!- Oranjer has left (?).
22:46:54 -!- ais523 has quit (Remote host closed the connection).
22:48:50 -!- aliseiphone has joined.
22:49:05 <aliseiphone> I'm interested in ducks and the exciting properties of ducks.
22:49:21 <cpressey> Yep, it's 4:48PM (CST) again.
22:49:33 <cpressey> Give or take a few minutes.
22:52:23 <cpressey> aliseiphone: I'm trying to unify scanning, parsing, and immediate and deferred execution into a single, coherent, ugly framework.
22:52:36 <cpressey> But right now I need to cancel an appt. bbiab
22:52:39 -!- coppro has quit (Ping timeout: 240 seconds).
22:56:47 -!- oerjan has joined.
22:57:12 <aliseiphone> Hi oerjan.
22:57:16 <aliseiphone> fizzie: ping
22:58:06 <oerjan> yo
23:01:57 <oerjan> <cpressey> aliseiphone: I'm trying to unify scanning, parsing, and immediate and deferred execution into a single, coherent, ugly framework.
23:02:16 * oerjan whispers madly about oleg's iteratees and enumerators
23:03:49 <cpressey> I suspect my crap looks quite different
23:04:22 <oerjan> quite probably. i just suspect oleg's framework supports all the things you mentioned.
23:05:31 <aliseiphone> oerjan: fetch fizzie please
23:05:35 <oerjan> a scanner is an enumerator, a parser is an iteratee. and by embedding it into a monad you can get immediate execution if you want.
23:05:53 <oerjan> deferred execution being the default in haskell, naturally
23:06:09 <cpressey> OK, now I feel like just giving up on that, then.
23:06:12 <aliseiphone> I need to describe just how strange he looks
23:06:52 <oerjan> cpressey: well that's the little i think i understand of it, anyway.
23:07:11 <oerjan> mainly just from browsing the package documentation
23:07:35 <aliseiphone> cpressey: Design a language that is TC and /only/ executable with infinite storage (say, filled with every natural)
23:07:44 <aliseiphone> not sure this is possible
23:08:20 <aliseiphone> cpressey: You ever read Oleg's site? Great way to be humbled.
23:08:33 <oerjan> aliseiphone: wouldn't it by necessity take infinite time to check that you actually have infinite storage
23:08:43 <aliseiphone> http://okmij.org/ftp/. Go on, pick a link
23:08:46 <cpressey> aliseiphone: not sure it makes sense. No difference between infinite storage filled with every natural, and unbounded storage lazily poulated with successive naturals.
23:08:48 <aliseiphone> *link.
23:08:59 <cpressey> aliseiphone: Yes, I've read through it, mostly the scheme stuff.
23:09:03 <aliseiphone> Mm. That's the issue.
23:09:52 <cpressey> Unless you define your operations to work on infinite amounts of storage at a time.
23:09:59 <oerjan> if it can actually be implemented to be practical, then the infinite parts can be faked. well that's almost a tautology.
23:12:18 <pikhq> aliseiphone: I'm pretty sure that there is no such thing.
23:12:54 <pikhq> A Turing machine that will halt does not ever access infinite storage.
23:13:23 <pikhq> Because by merit of halting, it must have executed a finite number of steps, and hence accessed a finite amount of storage.
23:13:36 <aliseiphone> oerjan: Practicality unneccessary.
23:13:58 <aliseiphone> But you are all correct.
23:14:03 <oerjan> well then, it'll probably have to be superturing.
23:14:56 <aliseiphone> OK then, a language where every operation takes an infinite list of values and transforms them into another infinite list
23:15:32 <oerjan> perhaps, although you need the operation to be complicated enough to defy laziness at least...
23:15:57 <pikhq> Make it somehow not be lazy and you're good.
23:16:11 <aliseiphone> e.g. V := MAP(x in V) (SUM(x in V) x)/(SUM(x in V) [x>0])
23:16:39 <aliseiphone> a mean of sorts. Sets all values to 0 if there are an infinite number of nonzeroes though.
23:16:45 <aliseiphone> So kinda pointless.
23:16:52 * cpressey tries desperately to think up a pun on "quantum computing"
23:17:12 <oerjan> and if you're really strict about this, you'd have to make it be impossible to compress the list contents to finite size using any kind of math :D
23:17:24 <oerjan> *computable math
23:17:38 -!- tombom has quit (Quit: Leaving).
23:18:23 <aliseiphone> V := concat MAP(x in V) <x, [x=0]>
23:18:28 <oerjan> cpressey: the problem is that once you've observed the pun, it's not quantum anymore
23:18:31 <aliseiphone> Is an obvious one.
23:19:48 <aliseiphone> V := FOLD(x in V; y=<>) y ++ <last(y) + x>
23:20:06 <pikhq> oerjan: Just requires that the list be uncomputable.
23:20:07 <pikhq> :D
23:23:13 <oerjan> THAT WOULD WORK
23:23:41 <pikhq> Hmm. Make it a list of noncomputable rationals.
23:24:00 <pikhq> (and now you have two problems)
23:24:19 <cpressey> "noncomputable rationals", eh?
23:24:26 <pikhq> Erm.
23:24:28 <pikhq> Reals.
23:24:29 <cpressey> I think we might in fact have three problems.
23:24:30 <pikhq> REALS
23:24:46 -!- relet has quit (Quit: Leaving.).
23:25:40 -!- MigoMipo has quit (Read error: Connection reset by peer).
23:32:03 <aliseiphone> pikhq: Just use a real-computer :P
23:32:24 <pikhq> aliseiphone: XD
23:32:29 <aliseiphone> I want to write an automatic proof system.
23:32:42 <cpressey> So do I, but
23:32:45 <aliseiphone> nqthm did it, Oleg did it...
23:32:54 <cpressey> not automatic
23:32:56 <aliseiphone> *Boyers-Moore did it,
23:33:08 <aliseiphone> cpressey: Well, automatic is the whole fun.
23:33:16 <cpressey> All you need is resolution
23:33:40 <oerjan> and a lot of resolve
23:34:20 <aliseiphone> cpressey: Especially from a type theory perspective: you're writing a program that takes a specification of some types, and for some subset tells you whether one is inhabited or not.
23:34:43 <aliseiphone> (And if so, spits out a term of that type.)
23:34:58 <pikhq> aliseiphone: Another thing I have discovered: most APIs suck.
23:35:05 <aliseiphone> pikhq: Duh.
23:35:22 * cpressey cares not for type systems
23:35:24 <aliseiphone> pikhq: Especially BSD sockets and stdio.
23:35:36 <pikhq> Those are the two worst parts of the C library.
23:35:43 <aliseiphone> cpressey: Dude, Curry-Howard.
23:36:10 <aliseiphone> cpressey: Do you care about propositions and proofs?
23:36:18 <aliseiphone> Then you care about type systems.
23:36:22 <pikhq> Why the heck can't you create a FILE*?
23:36:34 <cpressey> aliseiphone: Fine, whatever.
23:36:43 <aliseiphone> pikhq: I suggest we write unstdio.
23:36:52 <pikhq> aliseiphone: Gets very tempting.
23:37:09 <aliseiphone> pikhq: It will be based on abstract streams and therefore support string streams to boot.
23:37:11 <pikhq> Would probably want a better string.h attached as well.
23:37:19 <pikhq> C strings are a bit annoying.
23:37:25 <aliseiphone> And it'll have a sane printfalike.
23:37:30 <aliseiphone> pikhq: Yeah.
23:37:40 <pikhq> Well, they make certain things very easy and certain things almost certainly done wrong.
23:37:43 <aliseiphone> unstring and unstdio.
23:37:57 -!- coppro has joined.
23:38:00 <aliseiphone> Prefix can be "u" or "un". :P
23:38:52 <pikhq> And there's no, no, *no* reason why you shouldn't be able to, say, wrap zlib around a FILE* and magically have compressed IO.
23:39:26 <pikhq> f = zlibify(f); // BAM! File compression!
23:39:32 <aliseiphone> pikhq: Of course. Define a zlib stream type, write a constrictor.
23:39:40 <aliseiphone> *constructor.
23:39:41 <pikhq> (or something)
23:39:49 <aliseiphone> Dammit, C needs interfaces. Badly.
23:40:05 <pikhq> And namespaces.
23:40:22 <aliseiphone> Let's create UnC while we're at it.
23:41:23 <Sgeo> Nook, Kindle, what are the other options?
23:41:37 * Sgeo got to play with a Nook a little today
23:41:42 <aliseiphone> Sgeo: Buy a Sony reader or an IREX.
23:41:49 <aliseiphone> No other options.
23:42:08 <Sgeo> Why is Nook bad? I mean, besides not so pleasant UI-ness?
23:42:21 <aliseiphone> Sgeo: many reasons
23:44:04 <aliseiphone> pikhq: interf stream { struct S; void blah(S *); } impl stream { typedef struct zlibstream S; blah = zlibblah; }
23:44:20 <aliseiphone> But seriously, unstdio is a good idea.
23:44:32 <aliseiphone> djb wrote it long ago :P
23:44:53 <cpressey> If you build an unstdio I can use, I'll use it.
23:44:58 <cpressey> I can't use djb's.
23:45:01 <cpressey> Obviously.
23:45:07 <aliseiphone> License?
23:45:15 <aliseiphone> There's libowfat... :P
23:45:23 <aliseiphone> That's GPL though iirc.
23:45:30 <cpressey> Isn't that just a clone, too?
23:45:37 <aliseiphone> Yes. And?
23:45:42 <cpressey> It's the interface that's broken, isn't it?
23:45:51 <Sgeo> aliseiphone, such as?
23:45:54 <aliseiphone> libowfat is djb clone
23:46:02 <cpressey> Oh -- my mistake.
23:46:13 <cpressey> Thought it was a C library clone.
23:46:17 <cpressey> Er, stdio.
23:46:29 <aliseiphone> Sgeo: Sorry but I have limited time; I believe I said reasons in past logs?
23:46:34 <aliseiphone> :/
23:46:36 <cpressey> Well I'm three for three today, maybe I should just vamoose.
23:46:55 <Sgeo> I'm not likely to share books with anyone, it is capable of reading PDF, and as for slowness.. um
23:47:00 <pikhq> C's standard library should just die.
23:47:06 <Sgeo> I noticed, but don't have a basis for comparision yet
23:47:15 <aliseiphone> pikhq: Would we need to support encodings?
23:47:16 <Sgeo> I don't remember what else you said
23:47:31 <aliseiphone> Unicode is so complex it needs its own lib.
23:47:32 <pikhq> aliseiphone: If done properly?
23:47:42 <pikhq> At minimum all the UTFs and UCSs.
23:47:47 <aliseiphone> Sgeo: Also, no ADVANTAGES over Sony.
23:47:49 <oerjan> aliseiphone: clearly you should only support uncodings
23:47:54 <aliseiphone> pikhq: But why?
23:48:05 <pikhq> aliseiphone: Non-Unicode should die in a fire.
23:48:09 <aliseiphone> If there's an ununicode (heh)
23:48:10 <pikhq> That's why.
23:48:22 <aliseiphone> pikhq: Yeah, zlib outputs Unicode
23:48:23 <pikhq> Unless someone makes something better...
23:48:25 <aliseiphone> Of course
23:48:33 <pikhq> aliseiphone: Non-Unicode *text* encoding.
23:48:36 <Sgeo> If I buy a Sony eReader, would I be able to buy from the B&N ebookstore or whatever?
23:48:51 <aliseiphone> pikhq: Why does that concern stdio?
23:48:56 <Sgeo> Oh wait, it has its own store?
23:49:03 <aliseiphone> Sgeo: Dunno. Yes.
23:49:20 <pikhq> aliseiphone: Do you want to be able to ask for X characters?
23:49:26 <pikhq> If so, you need Unicode handling.
23:49:26 <aliseiphone> I think the touch is a gimmick, YMMV
23:49:42 <pikhq> Granted, this could be done on *top* of a sane byte-based IO library, but still.
23:49:45 <aliseiphone> pikhq: Yes, but is that codepoints? Graphemes?
23:50:01 <aliseiphone> Should the result be normalised? Which form?
23:50:20 * Sgeo wonders if there's a way to try it hands on
23:50:34 <aliseiphone> Sgeo: Go to a shop.
23:50:52 * Sgeo also wants to try Kindle hands-on
23:51:01 <aliseiphone> You don't.
23:51:08 <aliseiphone> No kindle. Bad kitty.
23:51:11 <pikhq> aliseiphone: A character is a single codepoint plus zero or more codepoints representing combining characters.
23:51:20 <cpressey> Ha ha ha.
23:51:22 <aliseiphone> Kitty shall not poop on that area of morality.
23:51:46 <aliseiphone> pikhq: So, a grapheme?
23:51:52 <cpressey> Combining characters should die.
23:51:59 <aliseiphone> What about languages like Arabic, eh?
23:52:00 <pikhq> cpressey: No.
23:52:03 <pikhq> aliseiphone: Yes.
23:52:12 <aliseiphone> cpressey: No, COMBINED characters should die.
23:52:22 <pikhq> Arabic has very, very well-defined notions of characters.
23:52:24 <coppro> yeah
23:52:29 <coppro> I agree with aliseiphone
23:52:46 <aliseiphone> umlaut + u, not umlaut-u
23:52:50 <cpressey> aliseiphone: And yet, combining characters continue to live? Bizarreness.
23:52:55 <pikhq> They just get calligraphically combined when *rendered*.
23:53:02 <aliseiphone> cpressey: What?
23:53:06 <aliseiphone> Logic.
23:53:22 <pikhq> cpressey: Unless you want to end all languages with diacritics, yes.
23:53:32 <pikhq> (hint: that's almost all of them)
23:53:54 <coppro> English is weird
23:53:55 <cpressey> Well, thank you all for making strlen basically unimplementable.
23:54:05 <aliseiphone> pikhq: coppro: Futhermore, let's undo Han unification.
23:54:10 <aliseiphone> cpressey: lol.
23:54:13 <coppro> (and admittedly we do have diacritics too)
23:54:13 <pikhq> aliseiphone: YES.
23:54:18 <coppro> aliseiphone: no comment
23:54:27 <aliseiphone> check category is combining, if so carry
23:54:31 <aliseiphone> otherwise ++
23:54:38 <aliseiphone> that was HARD.
23:54:41 <pikhq> aliseiphone: Heck, encode all the Chinese characters using their components.
23:55:21 <pikhq> Thereby allowing us to encode several billion characters using a few hundred codepoints.
23:55:40 <coppro> that sounds attractive
23:55:44 <coppro> I'll be in the shower
23:55:53 <aliseiphone> coppro: ...
23:56:01 <aliseiphone> coppro: Bad combination of lines.
23:56:08 <aliseiphone> Bad bad bad
23:56:18 <cpressey> Yet appropriate somehow.
23:56:42 <pikhq> aliseiphone: You see, almost all of the Chinese characters are composed of other components. Making them much simpler than most people think.
23:56:48 <aliseiphone> pikhq: We need to figure out the One True Way of C error handling.
23:57:03 <pikhq> "ZOMG OVER NINE THOUSAND!", they think.
23:57:25 <pikhq> When there's only a small handful of things you need to learn to draw, and the rest is basically just spelling.
23:57:29 <coppro> aliseiphone: setjmp obviously
23:57:36 <aliseiphone> coppro: no.
23:57:46 <aliseiphone> Non local control flow is bad.
23:58:08 <cpressey> You did say "True Way", not "Good Way".
23:58:16 <cpressey> setjmp is True C.
23:58:25 <pikhq> aliseiphone: Definitely not errno.
23:58:40 <coppro> errno = awful
23:59:03 <pikhq> aliseiphone: Perhaps error handling via callbacks?
23:59:24 <pikhq> Hrm. There's room for obnoxious complexity in there though.
23:59:25 <coppro> that sounds like functional code
23:59:41 <aliseiphone> pikhq: { char c; while(ugetb(ustdin, &c)) uputb(ustdout, c); }
23:59:56 <pikhq> coppro: Yeah, uh. Semi-functional C is the easiest way to make it readable.
23:59:58 <aliseiphone> Hmm, that doesn't handle errors.
←2010-07-07 2010-07-08 2010-07-09→ ↑2010 ↑all