00:23:42 <ehird> 23:19 <oerjan> <Ilari> Actually, that language would be more powerful than BlooP, as BlooP expresses functions that are primitive-recursive, but that language could express A(m,n), which is not primitive recursive.
00:23:43 <ehird> 23:19 <oerjan> sort of BlooP with oracle...
00:23:45 <ehird> 23:50 <Ilari> Even one that could be implemented on Turing machine to run in "finite" time... :-)
01:35:00 -!- GreaseMonkey has joined.
04:18:49 -!- ehird has quit (kornbluth.freenode.net irc.freenode.net).
04:18:49 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net).
04:19:10 -!- ehird has joined.
04:19:10 -!- GregorR has joined.
04:23:45 -!- ehird has quit (kornbluth.freenode.net irc.freenode.net).
04:23:45 -!- GregorR has quit (kornbluth.freenode.net irc.freenode.net).
04:25:44 -!- ehird has joined.
04:25:44 -!- GregorR has joined.
04:42:48 <fungot> *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *BUZZ* *B ...too much output!
04:56:24 <oerjan> ^ul (KH)(A)(:*)(:*)::**^^(N)**S
04:56:24 <fungot> KHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN
04:57:27 <oerjan> http://www.khaaan.com/
05:22:49 -!- Corun has joined.
05:29:23 -!- oerjan has quit ("Bus").
05:38:43 <Slereah> It's not the speed of your dick that matters, bsmnt_bot
05:39:31 <Slereah> I don't know what that is.
05:40:40 <bsmntbombdood> http://www.openbsd.org/cgi-bin/man.cgi?query=dc&apropos=0&sektion=0&manpath=OpenBSD%20Current&arch=i386&format=html
07:13:14 -!- olsner has joined.
07:50:37 -!- GregorR has quit (Read error: 110 (Connection timed out)).
07:59:59 -!- clog has quit (ended).
08:00:00 -!- clog has joined.
08:06:21 -!- olsner has quit ("Leaving").
08:31:37 <AnMaster> <ehird> crazy sedes. <ehird> *swedes <-- no Finns. Not Swedes.
08:34:13 <AnMaster> <bsmntbombdood> 1.5 × 10**-9 seconds at 2 ghz <-- not sure about that, some CPUs execute more than one instruction per cycle iirc. Though I'm not sure if x86 does that.
08:35:16 -!- GreaseMonkey has quit ("Client Excited").
08:36:35 <AnMaster> <bsmntbombdood> hey guys i just wrote a goto <bsmntbombdood> is this bad y/n <-- well depends a lot on language, how it is used and so on.
08:36:53 <AnMaster> like, C doesn't have break; for more than one level at a time
08:37:08 <AnMaster> using goto to break two levels is the cleanest solution there
08:38:02 <AnMaster> also sometimes in functions that can error out at several points and need to do common cleanup for all the error paths, goto error; and putting an error: block at the end may be the cleanest code.
08:38:20 <AnMaster> some file reading functions or such would fit into that category
08:38:38 <AnMaster> also I think it is often ok in _generated_ C code
08:44:34 <psygnisfive> do you know anything about the properties of rewriting systems?
08:49:19 <psygnisfive> no no i mean the formal properties of such systems in general
09:38:54 -!- Corun has quit ("This computer has gone to sleep").
10:12:14 -!- Slereah_ has joined.
10:24:15 -!- Slereah has quit (Read error: 110 (Connection timed out)).
10:24:32 -!- Slereah has joined.
10:32:47 -!- Slereah_ has quit (Read error: 110 (Connection timed out)).
13:06:57 -!- oerjan has joined.
13:08:36 -!- Hiato has joined.
13:10:22 <oerjan> <psygnisfive> do you know anything about the properties of rewriting systems?
13:10:45 <oerjan> if it's string rewriting then you have the Chomsky hierarchy at least
13:30:26 -!- Hiato has quit (Read error: 104 (Connection reset by peer)).
13:31:35 -!- Hiato has joined.
13:59:14 <oklopol> oerjan: YOU'RE NOT FOOLING ANYONE :DDDDDDDDDDD
14:00:42 <oklopol> i misread "eurocreme" was on the clipboard and not the topic (shown next to each other), thought i had sleep googled for gay porn again
14:01:08 <oklopol> well that was actually complete bullshit, i just wanted to use the term sleep googling in some context.
14:01:25 <oerjan> fooling anyone about what?
14:01:32 <oklopol> oerjan: nothing in general
14:02:04 <oerjan> you regularly sleep google for gay porn?
14:02:43 * oerjan realizes responding to comments before reading the next line is more fun
14:03:09 <oklopol> well yeah i'm not sure why i said that bullshit comment
14:03:24 <oklopol> i mean it's all about choice, i honestly don't know whether i actually did think it was on the clipboard.
14:03:59 <oerjan> yeah i often don't know what i'm thinking either
14:04:18 <oklopol> i do know i don't sleep google for gay porn (afaik), but that is fun as a joke, so there's no need to be honest; then again if i say i misraed something, and i'm lying, there's no excuse.
14:04:47 <oklopol> oooooooooooooooooooooooooooo
14:04:48 <oerjan> i misread that as misraped
14:04:50 <oklopol> oooooooooooooooooooooooooo
14:05:15 <oerjan> let's try to never find out
14:05:17 <oklopol> like, to accidentally someone?
14:05:19 <fizzie> I think it's just like rape, except you're doing it wrong.
14:05:33 <oklopol> there's probably like a comic about that
14:06:14 <oerjan> you misrape what you sow
14:07:04 <fizzie> One of the only three google hits of "misrape" (quoted) sounds like it's just a case of applying the procedure to the wrong person: "... bust into someone’s house and terrorize them, i suggest you keep detailed records of your victims so you don’t misrape any innocent bystanders. ..."
14:07:29 <oerjan> i think i should stop now, i just noticed it anagrams to "spermia"
14:08:32 <oklopol> so cummon down south park and meet some frendsa mineeeee
14:09:45 <oklopol> simrape would probably need sperm ai.
14:09:55 <oklopol> but i hope there wouldn't be any ram pies
14:10:32 <oklopol> almost prime ass, like that bear has
14:12:29 <fizzie> Also maybe related: seam rip.
14:13:00 <oklopol> this is kinda getting outta hand ppl.
14:14:58 <Ilari> g66 = 3 !g65-1! (3 !g65-1! 3) > 3 !g65-1! (g64 + 3) = 3 -> (g64 + 3) -> (g65 - 1) > (2 -> (g64 + 3) -> (g64 - 2)) - 3 = A(g64,g64)... :->
14:17:27 <Ilari> => g66 > A(g64,g64)...
14:27:57 <Ilari> Heh: 'g64 -> g64 -> g64 -> g64'. That should be fairly BIG.
14:28:10 <Slereah> A million is already fairly big.
14:29:21 -!- Hiato has quit ("Leaving.").
14:34:11 <Ilari> g1 is already really really HUGE number. 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 iterated base-10 logarithms would barely do a minor dent to it. g2 is MUCH bigger than g1, etc...
14:36:31 <Ilari> g1 is 3 !!!! 3 = 3 !!! (3 !!! 3) = 3 !!! (3 !! (3 !! 3)) = 3 !!! (3 !! (3 ^ 3 ^ 3)) = 3 !!! (3 !! 7625597484987) = ...
14:37:52 <Ilari> = 3 !!! (3 ^ 3 ^ 3 ^ ... ^ 3) [7625597484986 '^'s]...
14:38:59 <fizzie> Your definition of "minor dent" is interesting, if you look at how large a fraction of the original number is left after that many logarithms. I'm not saying it wouldn't still be a rather large number, but if you consider a chunk of rock, take a similarly proportioned amount of it away, it doesn't really look like a "minor dent" at that point.
14:40:54 <Ilari> These numbers are so huge you can't even use power tower scale... And iterated logarithm operates in that scale...
14:44:00 <oklopol> i agree, minor dent is a weird term
14:48:43 <Ilari> "Power tower scale" essentially measures how many times you (approximately) have to apply logarithm to get into small numbers..
14:50:47 <oerjan> which is just the fourth step of the ackermann function
14:51:18 <oerjan> A(4,n) = 2^2^...n times - 3 or something like that
14:53:13 <oklopol> Ilari: k right. still i agree with fizzie
14:56:11 <fizzie> Yes, well, in my viewpoint it's just a matter of what the word "dent" means; it doesn't seem right to me to call something a "dent" if over, say, half of the original thing is gone, no matter how large the dented thing is.
15:07:03 -!- Slereah_ has joined.
15:15:40 -!- Slereah has quit (Read error: 110 (Connection timed out)).
15:37:36 -!- ehird has left (?).
15:37:39 -!- ehird has joined.
15:37:54 -!- ehird has left (?).
15:37:57 -!- ehird has joined.
15:38:44 <ehird> 08:31 <AnMaster> <ehird> crazy sedes. <ehird> *swedes <-- no Finns. Not Swedes.
15:39:31 <oerjan> ehird: you show a complete misunderstanding of nordic stereotypes
15:51:14 <AnMaster> ehird, you were talking about that iki.fi thing then
15:51:29 <ehird> meh, iki.fi makes some sense
15:51:36 <ehird> it's just odd that finns are the only ones who use such a thing
15:57:29 <oerjan> i assume the japanese do to, it's just that we never know because they are speaking in japanese.
15:58:21 <oerjan> oh and the north koreans with internet access also do so. both of them.
16:00:33 <ehird> to be honest I don't exist
16:01:22 <oerjan> but then i thought: figments of imagination are people too!
16:01:37 <oerjan> in fact they're the only people
16:09:37 -!- dbc has quit (Read error: 110 (Connection timed out)).
16:36:36 <ehird> http://lost-theory.org/realultimatepower/ The Official Jeff Atwood Homepage
16:37:36 <ehird> I guess you also have to hate jeff atwood to find it funny :P
16:38:00 <ehird> Idiot extraordinaire.
16:38:18 <ehird> So idiotic that _Joel Spolsky_ teaches him something on a weekly basis. http://www.codinghorror.com/blog/
16:38:33 <ehird> jeffatwoodhorror.com
16:40:49 <ehird> http://www.reddit.com/r/WTF/comments/7q2rj/google_search_results_for_khaxn_for_x1_to_100/c072mvj
16:41:12 <ehird> eliezer's reply is so. perfectly. timed.
16:41:47 <ehird> shut up. it's humour.
16:41:54 <psygnisfive> you can find two dimensional graphs of ARGH
16:42:03 <ehird> im not talking about that
16:42:07 <ehird> im talking about the specific comment thread linked
16:42:15 <ehird> psygnisfive: clicking links since 2009
16:42:55 <oerjan> Don't joke about this. He's dead, Jim.
16:42:56 <ehird> the link I posted selects one comment thread in the comments for that link.
16:43:13 <psygnisfive> ah well, it doesnt do anything special for me, ehird. dunno why.
16:43:28 <ehird> http://www.reddit.com/r/WTF/comments/7q2rj/google_search_results_for_khaxn_for_x1_to_100/c072mvj
16:43:37 <ehird> The yellow-backgrounded comment.
16:43:42 <ehird> And Eliezer Yudkowsky's reply.
16:44:18 <psygnisfive> i didnt realize that it was only showing one thread
16:44:55 <psygnisfive> i wonder if he just stumbled across that thread or if he has An Algo
16:45:42 <oerjan> hm he really _must_ have come by google, it's a month since his last post :D
16:46:18 <ehird> (Context: qgyh2 is the person on reddit with the most submission & comments points, over 100,000 or sth)
16:50:15 <oklopol> did you know the turku university specializes in discrete math, and there's a lot of research in mathematical esolangs?
16:50:29 <oklopol> you didn't. my point is i think i know what i'm gonna be when i grow up.
16:53:31 <oklopol> WHORE LOGIC YOU SAY :DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
16:53:51 <oklopol> psygnisfive: reductions from all kindsa constructs into turing machines.
16:54:06 <oklopol> talked to this prof who does cellular automata stuff today
16:54:31 <oklopol> i was instructed to meet him after mentioning i was thinking switching university.
16:54:50 <ehird> "im leaving, you guys are too practical"
16:54:54 <ehird> "HERE IS A CRAZY-ASS GUY"
16:55:50 <ehird> yeah I was just doing that to shut up the fucking xkcd fans
16:57:03 <oerjan> fucking-xkcd fans are scary.
16:57:43 <psygnisfive> i dont know many people who are fans of fucking xkcd
16:58:19 <ehird> 16:57 <niukas> HEJ PEOPLES HELP -TELL AROUND THE WORLD WHAT WE DIEING STOP MAKE DEATH STOP KILL ANIMALS PLANTS WATER METALL ANOTHER PEOPLES BAD PEOPLES MAKE THIS WORLD WE CAN LIVE FOREVER WIT NATURE WITH GOD WITH UNIVERSE PIECE
16:58:20 <ehird> 16:57 <niukas> STOP KILL STOP DEATH
16:58:22 <Slereah_> Is this fucking xkcd? http://d.furaffinity.net/art/seaweedprincess/1232091972.seaweedprincess_xkcd34.jpg
16:58:35 <ehird> Slereah_: I did not need to see that.
16:58:54 <ehird> No, I... really didn't
17:00:24 <oerjan> ehird: see, it's the swedes that are crazy
17:00:30 <psygnisfive> thats a totally inappropriate fake xkcd, slereah_
17:01:05 <ehird> finns and norway-yians are cool
17:01:08 <Slereah_> It's "Raptors on Hoverboards are Offscreen"
17:01:23 <Slereah_> Since you butts don't have FA accounts
17:01:51 <oerjan> what the heck is an FA account.
17:02:06 <ehird> the picture is on furaffinity.net, which is a shithole full of retarded furries.
17:02:11 <ehird> and the associated porn.
17:02:41 <oerjan> Slereah_: yes iirc. not me though.
17:02:59 <Slereah_> Ever since DA was created, furries have migrated from sites to sites
17:03:05 <ehird> wait, how can you know if someone is a closet furry
17:03:08 -!- kar8nga has joined.
17:03:16 <ehird> that doesn't make sense
17:03:27 -!- ehird has set topic: No furries allowed.
17:04:14 <ehird> Furries don't deserve logs
17:04:22 <oerjan> he must have thought they looked furry
17:04:30 <oerjan> ehird: it's just moss!
17:06:31 -!- oerjan has set topic: No smurfing.
17:07:07 -!- ehird has set topic: No furries allowed.
17:07:32 -!- oerjan has set topic: No smurfing furries allowed.
17:11:08 <oklopol> TOO MUCH REQUESTING INFORMATION
17:15:18 <oklopol> blah, i don't feel like reading, i feel like running around naked and eating doors.
17:15:32 <oklopol> but, i guess i have little choice.
17:16:27 -!- FireFly has joined.
17:17:30 <ehird> AnMaster: bookmarks
17:17:33 <ehird> do you know how to use them?
17:17:46 <oklopol> why use bookmarks when the topic has the logs
17:17:59 -!- Slereah_ has set topic: butt | http://tunes.org/~nef/logs/esoteric.
17:18:20 <AnMaster> ehird, yes you place them in books to remember where you should continue reading.
17:19:07 * ehird writes cat(1) program in Python because why not.
17:19:12 <ehird> #!/usr/bin/env python
17:19:12 <oerjan> i bet if i had said it ehird wouldn't have laughed. oh wait.
17:19:13 <ehird> for filename in sys.argv:
17:19:16 <ehird> file = sys.stdin if filename == '-' else open(filename)
17:19:18 <ehird> while not file.closed:
17:19:20 <ehird> sys.stdout.write(file.read(1))
17:19:29 <ehird> oerjan: no, I wouldn't have :P
17:19:44 <AnMaster> oerjan, yes, but not in such a sarcastic manner
17:20:58 <oerjan> ehird: you are missing _several_ POSIX options.
17:21:06 <ehird> isn't there just -u?
17:21:21 <ehird> Write bytes from the input file to the standard output without delay as each is read.
17:21:22 <ehird> which I already do
17:21:25 <ehird> and nobody uses that anyway
17:21:38 <ehird> mine misses stdin on no args through
17:21:44 <ehird> s/sys.argv/sys.argv or ['-']/
17:21:44 <oerjan> ok how many GNU options are there...
17:21:49 <ehird> oerjan: 5 bajillion
17:21:56 <ehird> i don't believe in gnu tools
17:22:16 <oklopol> so, you know how i like stuff right?
17:22:59 <oklopol> oerjan: i bet if i had said it ehird wouldn't have laughed. oh wait. <<< you would never say that
17:23:34 <oerjan> i could have made a similar joke. in fact i must have done so.
17:23:48 <oklopol> oerjan: you would've made a joke based on the same thing, yes
17:23:55 <oklopol> the point is you would've made it less direct
17:24:19 <oerjan> you mean like remote library loan?
17:24:47 <oklopol> see that's what you would've said. something so complicated i don't get it
17:24:57 <oklopol> plz explain i want to laugh.
17:25:16 <oerjan> less direct + books = remote library loan
17:26:28 <oerjan> NEITHER IS YOUR MOTHER.
17:26:55 <oklopol> FUCK YOU, MY MOTHER IS OUTRIGHT RIDICULOUS!!
17:27:11 <oerjan> also, i was obviously trying to make the joke even less direct than usual, it's a meta thing
17:27:20 -!- ais523 has joined.
17:27:23 <oerjan> and you know i never *hit by anvil*
17:28:05 <ehird> http://pastie.org/362562.txt?key=r1mvwcrozo1c5mcrklic8w
17:28:09 <oklopol> oerjan: trying to balance it out... or is that your new swatter replacement?
17:28:09 <ehird> Now it does rot13 too.
17:28:19 <ehird> because cat is _exactly_ the place for it
17:28:34 <oklopol> balance directness out that is
17:28:37 <oerjan> i don't think i can make a 1-line anvil. hm.
17:28:46 <ais523> ehird: I was thinking about the UNIX philosophy
17:28:53 <ehird> ais523: heh, nice timing
17:29:01 * ehird breaks oerjan's anvil with lines
17:29:06 <ais523> and actually, I decided find | grep is more unixy than either find -name blah or ls -R | grep
17:29:14 <oklopol> i think that was it, ehird.
17:29:19 <ais523> you can tell you're being properly UNIXy if you don't need command-line options
17:29:25 <oerjan> ehird: those were two anvils
17:29:31 <ehird> ais523: that makes sense to a degree
17:29:39 <ehird> some command line options just change how it operates, not fundamentally what it does
17:29:45 <ehird> ls -R changes fundamentally what it does, however
17:29:51 <ehird> so you're right in that case
17:30:19 <ehird> uh oh, my cat has a bug
17:30:26 <ais523> the fact that so many commands have recursion options implies that find is definitely a unixy command, when you don't use its options yourself
17:30:33 <ehird> ais523: http://pastie.org/362562.txt?key=r1mvwcrozo1c5mcrklic8w
17:30:34 <ais523> buggy cats normally imply some pretty difficult lang
17:30:39 <ehird> I wrote cat in python for no reason, but then added rot13
17:30:49 <ehird> ais523: no, just buggy logic for detecting EOF
17:31:00 <oerjan> ehird: use a flea collar
17:31:05 <ehird> btw, one instruction that more languages need
17:31:34 <ehird> pipe(lambda: file.read(1), lambda a: sys.stdout.write(transformer(a)))
17:31:46 <ehird> (pseudo-python, you can't assign in whiles in reality):
17:31:54 <ehird> while a = file.read(1): sys.stdout.write(transformer(a))
17:31:57 <ehird> it's such a common idiom
17:32:17 <ehird> pipe file.read(1) as a: sys.stdout.write(transformer(a))
17:32:23 <ais523> incidentally, I read somewhere that Python lambdas were syntactic sugar
17:32:28 <ais523> what do they expand to?
17:32:44 <ehird> def bar(x): return x
17:32:58 <ais523> oh, you can declare named functions in inner scopes in Python?
17:33:37 <ehird> python is a bit verbose, unfortunately
17:33:43 <ehird> so using it for scripting is a bit annoying
17:33:51 <ehird> but it's nicer than writing shell script...
17:34:04 <ais523> it depends on how long the scripts are
17:34:14 <ehird> even trivial things in shell can be a pain
17:34:32 <ehird> if I get beyond one for loop over something like * in a shell, it instantly goes to hell
17:34:36 <ehird> and I switch to a real language :P
17:36:43 <ehird> but it'd be nice if python was, you know, shorter
17:36:57 <ehird> I'm pretty sure that cat is the not much shorter than it would be in C
17:37:00 * ehird writes it in C to find out
17:38:39 <ehird> uppercase = code >= ord('A') and code <= ord('Z')
17:38:41 <ehird> lowercase = code >= ord('a') and code <= ord('z')
17:38:45 <ehird> uppercase = char.islower()
17:38:54 <ehird> lowercase = char.islower()
17:43:13 <ehird> c version: 55 lines
17:43:18 <ehird> so, python is quite a bit shorter
17:43:24 <ehird> the programs essentially look the same, though.
17:43:40 <ehird> http://pastie.org/362584.txt?key=bm06tagczdoiybatmth9q
17:44:24 <ehird> err, that transformer assignment needs to be lower
17:47:00 <ehird> amusingly, this python
17:47:00 <ehird> shifted = (((ord(char.lower()) - ord('a')) + 13) % 26) + ord('a')
17:47:05 <ehird> is more verbose than this c
17:47:05 <ehird> shifted = (((tolower(c) - 'a') + 13) % 26) + 'a';
17:48:03 <ehird> incidentally, C only does so well at this program because it involves no dynamic allocation whatsoever.
17:48:15 -!- kar8nga has left (?).
17:49:39 <ehird> also, my stdin check fails
17:49:42 <ehird> as I forgot to use strcmp.
17:49:50 <ais523> heh, comparing pointers?
17:49:55 <ehird> conclusion: python is better but sometimes uglier.
17:52:07 <ehird> I should now write some code that actually does anything.
17:52:12 * ais523 looks at the Wiki recent changes
17:52:19 <ais523> oh no, not yet /another/ BF derivative
17:53:25 <ehird> proposal: bf derivatives are banned
17:53:38 <oklopol> but what about continuous brainfuck
17:53:54 <ehird> ais523: I like the syntax, though
17:54:23 <ais523> also, the notion of BF derivatives isn't bad as a whole
17:54:27 <ais523> just, they ought to be interesting
17:54:35 <ais523> and most of the ones that people come up with aren't
17:55:17 <ehird> I wonder if I will ever use 25GB of mail storage.
17:55:48 <ehird> (My current gmail account, which I made in 2006 and only started using heavily in around 2008, is using "744MB (10%) of your 7285MB.")
17:55:57 <ehird> (Which is a lot for such a little time I've used it heavily.)
17:57:11 <ehird> I don't think I'm connected.
17:59:09 <ehird> "Why buy a dedicated fart app AND a flashlight, when you can have BOTH, and get a TWITTER CLIENT along with it!"
17:59:20 <ehird> This person has got the iPhone appstore 100% figured out.
17:59:51 <ais523> is that one of the adverts?
18:00:06 <ehird> http://www.atebits.com/pee/
18:00:25 <ehird> they actually sell it :D
18:01:56 -!- puzzlet has quit (Remote closed the connection).
18:02:00 <psygnisfive> but it's odd. i wonder what the photographers were thinking when they planned/took this photo.
18:02:01 -!- puzzlet has joined.
18:02:28 <ehird> psygnisfive: it's from a recent advert bought on reddit
18:02:31 <ehird> advertising viagra or something
18:02:46 <ehird> the ad is now gone due to complaints and there are tons of ads on reddit using the same image but advertising things like subreddits.
18:02:53 <psygnisfive> so they were thinking "we should make her look like she'
18:03:04 <ehird> yes, I don't think you have to elaborate psygnisfive.
18:03:05 <psygnisfive> s amazed at the size of the adviewer's engorged penis"
18:03:27 <ehird> The Bush Boom: How a Misunderestimated President Fixed a Broken Economy
18:03:31 <ehird> http://www.amazon.com/Bush-Boom-Misunderestimated-President-Economy/dp/1594670870?ie=UTF8&s=books&qid=1232115413&sr=8-1
18:03:49 <psygnisfive> if i wasnt, you might've thought i meant, "she's amazed at the low low prices of viagra that we're selling"
18:04:05 <psygnisfive> and i wouldnt want you to have wrong assumptions about my perspective on advertisements for viagra
18:07:51 <ehird> you know what would be cool?
18:07:58 <ehird> an irc server specifically designed for things like bitlbee
18:08:03 <ehird> clients can do things like
18:08:07 <ehird> MAKEDUMMY foobarbaz
18:08:11 <ehird> ASDUMMY foobarbaz JOIN #mychannel
18:08:17 <ehird> ASDUMMY foobarbaz PRIVMSG #mychannel :I am totally a real person
18:10:55 <ehird> bitlbee is a gateway that lets you use MSN/AIM/Jabber/etc through irc
18:11:03 <ehird> you connect to a special server and your contacts become irc users in a room
18:11:06 <ehird> you can just /msg them and stuff
18:11:29 <ehird> there's plenty of good things that could do with an "IRC interface" with that, I'm just thinking about a server that would make it as easy as writing an irc bot
18:11:34 <ehird> with some special commands to control fake users
18:18:46 -!- MigoMipo has joined.
18:21:23 -!- ais523 has quit (Read error: 104 (Connection reset by peer)).
18:22:26 -!- ais523 has joined.
18:31:24 -!- ais523 has quit (Client Quit).
18:34:17 <ehird> http://www.noteflight.com/scores/view/2177201ae448ab894682b16d557f5544fb678e7b
18:34:21 -!- puzzlet has quit (Remote closed the connection).
18:34:28 -!- puzzlet has joined.
18:36:00 -!- ais523 has joined.
18:36:26 <ehird> 18:34 puzzlet has joined (n=puzzlet@147.46.241.231)
18:36:26 <ehird> 18:36 ais523 has joined (n=ais523@147.188.254.127)
18:36:49 <ais523> 147.188 is Birmingham University
18:36:59 <ais523> therefore my guess is that puzzlet's on the UK academic network or something connected to it
18:37:53 <ehird> umm, puzzlet is chinese I'm prety sure
18:38:18 <ehird> (Puzzlet Chung lives in the Republic of Korea. He is one of the administrators of the Korean Wikipedia and the Korean Wikiquote.
18:38:18 <ehird> --http://en.wikipedia.org/wiki/User:PuzzletChung
18:38:21 <ais523> in that case, 147 stretches a long way
18:38:33 <ais523> there are only 256 /8s, and they aren't all used
18:38:43 <ais523> so it's not surprising that some of them go all over the world, I suppose
18:39:19 <ehird> also,http://kiwi.cabal.fi/home/aki/misc/cons-ceremony.txt
18:44:25 <ehird> Hmm. Oh dear. I think I have my editor committed to muscle memory.
18:45:07 <ais523> both vi and emacs are pretty quick to type
18:45:14 <ehird> I mean, the editor commands.
18:45:18 <ais523> and I have most common words committed to muscle memory, not just editors
18:45:25 <ehird> As in, switching to another editor for daily use would involve a lot of unlearning.
18:45:30 <ais523> and yes, editor commands seems reasonable
18:45:51 <ehird> (it's textmate, FWIW)
18:45:59 -!- BeholdMyGlory has joined.
18:47:40 <lament> i use a 7-string vi in drop-D tuning
18:49:29 -!- Hiato has joined.
19:08:32 <AnMaster> mysql docs doesn't even say when some sql syntax is non-standard
19:08:39 <ais523> AnMaster: that's easy enough
19:08:43 <AnMaster> postgresql manuals documents it all the time
19:08:46 <ais523> /all/ sql syntax is nonstandard
19:08:59 <AnMaster> ais523, for example it seems using LIMIT with UPDATE is non-standard
19:09:08 <AnMaster> I'm porting a program from mysql to postgresql btw
19:09:16 <ais523> AnMaster: LIMIT isn't standard at all
19:09:21 <ais523> although it's certainly useful
19:09:36 <AnMaster> ais523, well, postgresql supports it with SELECT, but nothing else
19:09:54 <ais523> the SQL standard doesn't even have LIMIT as a keyword
19:10:46 <AnMaster> ais523, interestingly, the worst problems so far has been 1) postgresql has bytea, but no blob 2) postgresql wants "" around column names that happens to be keywords, mysql wants ``
19:11:10 <ais523> AnMaster: yep, quoting is really inconsistent between the DB engines
19:11:12 <oerjan> hey, even i wasn't laughing
19:11:15 <ais523> surely they must have standardised that
19:11:33 <ais523> so why aren't DB engines staying consistent about it?
19:11:48 <AnMaster> ais523, well since I need to support both (eww) I wrote a small wrapper quote_for_stupid_db
19:11:55 <AnMaster> that quotes one word as a column name
19:12:34 <AnMaster> apart from column names and table names the code uses prepared statements everywhere
19:13:36 -!- sebbu has quit (Read error: 104 (Connection reset by peer)).
19:14:01 -!- sebbu has joined.
19:14:57 <AnMaster> ais523, anyway what is worse in this case (which is horrible php code), is that while pdo is supposed to be an abstraction layer, it is kind of useless when it returns mysql blobs as strings and postgresql bytea as streams
19:19:00 -!- KingOfKarlsruhe has joined.
19:20:27 <ehird> ooh, a syntax highlighting program that actually parses textmate theme files to work.
19:21:19 * Hiato hates to interrupt but is concerned that his NASM OS compiles with FASM, yet causes kernel panics randomly
19:21:35 * Hiato and is wondering what the compiler differences are
19:21:52 <ehird> Hiato: you have an os?
19:22:43 <Hiato> was in NASM, then I started porting it to FASM today so that I could port FASM to it. It's 16bit, real-time mono-tasking (for now)
19:23:01 <ehird> http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7,475,086.PN.&OS=PN/7,475,086&RS=PN/7,475,086
19:24:08 <ehird> Lol! You think the US patent system cares?
19:24:11 <ehird> Oh, what a comedian
19:24:55 <AnMaster> ehird, this sounds like the definition of the CHAR(n) type...
19:25:06 <ehird> no, it's the definition of TRIM()
19:25:29 <AnMaster> well, using TRIM() in a trigger rather?
19:29:32 -!- Zetro has joined.
19:30:41 -!- Mony has joined.
19:45:14 <AnMaster> argh, mysql auto increment NEEDS a NULL in INSERT, it must be listed. PostgreSQL's equivalent requires the column to not be listed
19:49:46 <ais523> AnMaster: autoincrement is different between all sorts of db engines
19:50:31 <AnMaster> ais523, do you know any sort of true DB abstraction layer? A "anti-quirk middleware"
19:50:39 <ais523> they must exist, though
19:50:55 <ais523> ehird: that isn't a true abstraction layer
19:51:03 <ais523> it requires you to write the SQL yourself
19:51:12 <ehird> AnMaster: that was not specified. ais523: It translates the SQL to the correct dialect, I believe.
19:51:12 <ais523> in a syntax that the target DB engine understands
19:51:17 <ais523> ehird: no it doesn't, IIRC
19:51:22 <ehird> yes it does, IIRC>
19:52:12 <AnMaster> but I'm not using perl, no way I'm rewriting an existing software in perl
19:52:29 <AnMaster> at least this php program has all the DB calls in a single file
19:53:05 <AnMaster> ehird, ais523: also does DBI rewrite or not?
19:53:13 <ais523> Dates and times are returned as character strings in the current
19:53:15 <ais523> default format of the corresponding database engine. Time zone effects
19:53:15 <ehird> 19:51 <ais523> ehird: no it doesn't, IIRC
19:53:16 <ehird> 19:51 <ehird> yes it does, IIRC>
19:53:16 <ais523> are database/driver dependent.
19:53:25 <ais523> I haven't found a definitive answer to the original question yet
19:53:25 <ehird> I am talking about SQL syntax, ais523.
19:53:58 <AnMaster> ehird, and I'm waiting for you two to make up your mind
19:54:01 <ais523> The DBI itself does not mandate or require any particular language to
19:54:03 <ais523> be used; it is language independent. In ODBC terms, the DBI is in
19:54:04 <ais523> "pass-thru" mode, although individual drivers might not be. The only
19:54:06 <ais523> requirement is that queries and other statements must be expressed as a
19:54:07 <ais523> single string of characters passed as the first argument to the
19:54:09 <ais523> "prepare" or "do" methods.
19:54:12 <ais523> it doesn't even require SQL!
19:54:16 -!- MigoMipo has changed nick to PrepareForMigol0.
19:54:35 <AnMaster> ais523, what is ODBC btw? I have seen the term a lot, but never understood what it was
19:54:43 -!- PrepareForMigol0 has changed nick to Migol09.
19:54:44 <ais523> I think it's a DB driver, not sure though
19:54:48 <ehird> letmegooglethatforyou.com/?q=ODBC
19:54:51 <ais523> it's probably something DB-related, anyway
19:54:57 <ais523> ehird: does that site need JavaScript?
19:55:06 <ehird> enable it, it's worth it
19:55:08 <ais523> then it's considerably worse than just linking to Google
19:55:16 <ais523> <ehird> enable it, it's worth it <--- no it isn't
19:55:22 <ehird> ais523: it's a sarcastic insult.
19:55:32 <ehird> if I wanted to be helpful I wouldn't link to it.
19:56:14 <AnMaster> ehird, I have javascript off too
19:56:48 <AnMaster> "In computing, Open Database Connectivity (ODBC) provides a standard software API method for using database management systems (DBMS). The designers of ODBC aimed to make it independent of programming languages, database systems, and operating systems."
19:58:00 * AnMaster forces ehird to use MS Query with the Microsoft Excel backend for his databases
20:04:40 -!- oerjan has quit ("Good night").
20:14:29 -!- Zetro has quit (Read error: 104 (Connection reset by peer)).
20:14:49 -!- Zetro has joined.
20:18:16 -!- Migol09 has changed nick to JohnWins.
20:23:06 -!- Judofyr has joined.
20:26:47 -!- BeholdMyGlory has changed nick to ThisIsAReallyLon.
20:27:08 -!- ThisIsAReallyLon has changed nick to BeholdMyGlory.
20:28:15 <ehird> cool, the IRC interface I was thinking about exists
20:29:17 -!- Zetro has left (?).
20:34:05 <AnMaster> ehird, and what is that interface?
20:34:16 <ehird> you have 3 guesses
20:34:55 <AnMaster> not file system based since we talked about that before, not integrated in to zsh since we also talked about that before
20:35:15 <AnMaster> ehird, are you talking about a client or some server side feature?
20:35:26 <AnMaster> like say, a jabber<->irc proxy
20:35:36 <ehird> IRC interface: an IRC server that provides an interface to another service.
20:35:44 <ehird> For example, bitlbee is an IRC interface for IM services.
20:36:37 <AnMaster> related to web browser? (like, say cgi::irc but in server)
20:37:54 <AnMaster> ehird, is it for translating between different IRCD procotols?
20:38:04 <ehird> brb, feel free to guess while I'm brbing
20:38:18 <AnMaster> ehird, well if it isn't bitlbee I'm out of ideas.
20:44:22 -!- Corun has joined.
20:48:33 -!- Mony has quit ("Quit").
20:52:32 -!- Hiato has quit ("Leaving.").
20:54:08 <lament> bass fretboard showing the c major scale:
20:54:08 <lament> O O O O O O O O O O O O O O O
20:54:08 <lament> O O O O O O O O O O O O O O O
20:54:08 <lament> O O O O O O O O O O O O O O O
20:54:08 <lament> O O O O O O O O O O O O O O O
20:55:39 <lament> it looks like a punch tape
20:55:43 <AnMaster> lament, apart from the mirrored N
20:56:00 <AnMaster> hm have you seen that javascript punch card library?
20:56:26 <AnMaster> ah yes lament: http://www.outstandingelephant.com/jcquard/
21:00:33 <ais523> yay, this VHDL synthesizer actually seems half-decent
21:00:40 <ais523> it gave me several screenfuls of optimiser warnings
21:00:54 <ais523> Synplify Pro, it seems
21:00:55 <lament> AnMaster: that mirror N, could it be a lambda?
21:01:02 <ais523> must be a for-pay expensive one
21:01:06 <ais523> because there are no free ones
21:01:17 <ais523> which are at all good, and even the rubbish ones are closed-source
21:01:20 <ais523> AnMaster: no, at University
21:01:45 <AnMaster> lament, hm upper case or lower case?
21:01:56 <ais523> pretty much only companies and universities can afford good VHDL synthesizers
21:02:05 <ais523> I'm amused at the way that anything optimisable is considered a warning, though
21:02:12 <ais523> in VHDL, you're supposed to write optimal code yourself
21:02:26 <ais523> anything suboptimal is bad style
21:02:33 <ais523> good thing the compiler's catching it for me
21:02:53 <ais523> in my case, I'm doing all sorts of suboptimal things like not using all the codepaths in a function every time I use it
21:03:07 <AnMaster> ais523, eh, how do you then branch?
21:03:08 <ais523> or not running all the commands in a loop every iteration
21:03:18 <ais523> AnMaster: via loop unrolling and constant folding
21:03:33 <ais523> in VHDL, all functions are inlined and all loops are unrolled by the compiler anyway
21:03:46 <ais523> luckily, I trust it to do that job a lot more reliably than I trust me to do it
21:03:48 <lament> so it isn't turing-complete?
21:04:08 <ais523> although there are non-loop ways to get infinite repitition
21:04:27 <ais523> lament: a <= not b; b <= a
21:04:36 <ais523> causes infinite repetition in VHDL
21:04:38 <ais523> despite not being a loop
21:05:49 <ais523> if you don't want the loop to be a tight loop and block your program
21:05:57 <ais523> you can write a <= not a after 10 ns;
21:06:08 <ais523> then the loop only changes once every 10 nanoseconds, and you're fine
21:06:44 * AnMaster waits for lament comments on that
21:07:05 <AnMaster> lament, VHDL compiles to hardware
21:07:15 <lament> but what does a <= not a do?
21:07:57 <AnMaster> ais523, VHDL is event driven right?
21:08:07 <ais523> lament: delayed action assignment
21:08:25 <ais523> writing a <= b; b <= c; is equivalent to b <= c; a <= b;
21:08:40 <ais523> the assignments all happen at the end of the program/process
21:08:54 <ais523> immediate assignment is := but you aren't allowed to use it, except as local shorthand
21:09:16 <ais523> VHDL has lots of features that can't be synthesized into hardware
21:09:23 <ais523> they're fine on simulators, but you have to avoid them for synthesis
21:09:32 <ais523> this is why I think a VHDL->VHDL compiler would actually be highly useful
21:10:48 <ais523> the compiler warned me that it generated 6 copies of one of my variables
21:10:56 <AnMaster> ais523, I checked their website, it seems to be "contact for price"
21:10:56 <ais523> if you use a variable too much in VHDL, it overheats
21:11:07 <ais523> AnMaster: yep, if you have to ask, you can't afford it
21:11:07 <AnMaster> ais523, wow, sounds like an esolang
21:11:24 <ais523> so the compiler generated extra copies to spread the load around
21:11:27 <ehird> yeah, ask for price = this is too expensive for you
21:13:43 <AnMaster> ais523, and there seems to be an even more advanced product "Synplify Premier", which can handle ASIC too
21:14:05 <ais523> AnMaster: if you have any reason to be doing ASIC synthesis, then you can afford it
21:14:10 <ehird> I like the idea of using a variable too much overheating the "executable" :-)
21:15:04 <ais523> now let's see if this insane design fits on the processor
21:15:10 <ehird> see, I think vhdl synthesizers costing a lot makes sense
21:15:23 <ehird> it's a niche product and making it is extremely difficult
21:15:31 <AnMaster> "ESL synthesis" <-- don't know what that is, seems related to DSPs though
21:15:39 <ehird> and despite being niche, the people who need it really do need it
21:15:45 <ais523> you should try to implement mergesort using nothing but nested FOR loops sometime
21:15:52 <ais523> and no array indexes that can't be hard-coded
21:15:58 <ais523> after the loop's unrolled
21:16:14 <AnMaster> ais523, can't you use a sorting network if it is hardware?
21:16:28 <ais523> AnMaster: that's what it is
21:16:34 <ais523> this is the code for generating one
21:16:42 <ais523> and ugh, it seems my design is too complex to fit on the chip
21:17:14 <ais523> looks like I'll just have to cut down on some of the PRNGs
21:17:29 <ais523> I have sixteen 32-bit multipliers in there to provide test case data
21:17:35 <ais523> they must be taking up most of the chip, I reckon
21:17:35 <ehird> what are you doing
21:17:44 <ais523> ehird: project for University
21:17:50 <AnMaster> ehird, what irc gateway was it btw?
21:18:01 <ehird> ais523: what is it?
21:18:05 <ehird> AnMaster: I /msg'd the answer
21:18:12 <ehird> don't want to spoil anyone else's guessing :P
21:26:00 <ehird> ais523: would Verilog be easier?
21:26:02 <ais523> yay, Total Number 4 input LUTs: 2600 out of 3840
21:26:09 <ais523> and that was just deleting half the multipliers
21:26:20 <ais523> nowadays, VHDL and Verilog are the same lang with different syntax
21:26:24 <ais523> they started out very different
21:26:30 <ais523> but all features in one got added to the other, and vice versa
21:32:05 <ais523> Verilog wasn't even intended for synthesis, in the first place
21:32:11 <ais523> but for the construction of verifier testbenches
21:33:38 <ais523> and yay, the design wasn't too difficult to place in the end
21:33:45 <ais523> it only took the compiler 1 minute 47 seconds
21:33:52 <ais523> I've heard cases of it taking days
21:34:51 <ehird> ais523: does this like, actually print to hardware?
21:35:02 <ais523> although I don't have a JTAG cable on me atm
21:35:09 <ais523> nor a reprogrammable logic chip
21:35:14 <ais523> we can only book those out in working hours
21:35:23 <ehird> ais523: oh, so it just reprograms a generic thing?
21:35:31 <ehird> i want a CHIP PRINTER :|
21:35:39 <ais523> ehird: that's the ASIC stuff that AnMaster suggested
21:35:51 <ais523> but the typical price is about a million dollars setup cost
21:35:57 <ais523> plus 10 cents for each identical chip you make
21:36:07 <ais523> or up to maybe about 50 cents for complex ones
21:36:14 <ais523> if you make even a single change, that's another million dollars
21:36:40 <ehird> I want it, cheaper <_<
21:36:56 <ehird> a million dollars? Whaat
21:37:01 <ais523> there is some progress towards being able to generate arbitrary electronic components
21:37:05 <ehird> Do they do cold fusion or something?
21:37:06 <ais523> ehird: that's how much it costs to retool the factory
21:37:28 <ais523> I've heard there's progress towards printers which you fill with plastic n-type and p-type ink
21:37:33 <ais523> that can print transistors
21:37:40 <ais523> so maybe your wish will be fulfilled in the end
21:37:47 <ais523> at a rather higher unit price, but rather lower setup cost
21:38:26 <ehird> One day it shall be free :<
21:40:17 -!- Corun has quit ("This computer has gone to sleep").
21:42:44 <ais523> next problem: trying to figure out why a program for showing where everything was placed would trigger the firewall on the Windows computers here
21:47:01 <ais523> or some sort of automatic updates
21:48:49 <AnMaster> <ais523> ehird: that's how much it costs to retool the factory <-- what does a retool include?
21:48:59 <ehird> also, how big is this factory?
21:49:25 <ais523> I think they have massive foundries, but they produce more than one product at a time
21:49:36 <ais523> because you need a big assembly-line-type process
21:53:40 <AnMaster> ais523, but why does it cost 1 million, I mean...
21:53:56 <ehird> AnMaster: because you're making an actual chip.
21:53:58 <ehird> i mean, carbon and shit.
21:54:24 <AnMaster> but is it making some sort of "master" copies or something that cost?
21:54:34 -!- Judofyr has quit (Remote closed the connection).
21:55:07 <AnMaster> I mean, a lot of the actual tools wouldn't differ would they?
21:55:17 <ais523> AnMaster: yes, I think so
21:55:24 <ais523> the problem is trying to get all the photomasks into place
21:55:57 <AnMaster> ais523, how was it done back in the 1980s or so, because you wouldn't have as large batches back then
21:56:33 <ais523> AnMaster: my guess is much the same way, and the chips ended up more expensive as a result
21:56:44 <AnMaster> ais523, yet they were able to produce C64 and such?
21:56:53 <AnMaster> even though market was smaller
21:57:38 <AnMaster> just consider the sound chipset for it, to a modern sound chipset, surely the modern one has been produced in lot more copies
22:01:44 <ais523> I get a massively big circuit diagram I can look at
22:02:03 <ais523> and I can double click on a component, and it highlights a single instance of the word "if" in the source code, for instance
22:12:20 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
22:12:48 -!- puzzlet has joined.
22:13:45 -!- JohnWins has changed nick to MigoMipo.
22:20:04 -!- ais523_ has joined.
22:21:12 -!- olsner has joined.
22:22:08 -!- MigoMipo has left (?).
22:24:02 <ais523_> ehird: that's an interesting Unicode-art graph
22:24:07 <ehird> it's a unicode sparkline
22:24:12 <ais523_> btw, ohw do people here think Unicode art compares to ASCII art?
22:24:30 <ehird> http://en.wikipedia.org/wiki/Sparkline
22:24:39 <ehird> in this case, essentially a mini graph
22:25:19 <ehird> the unicode blocks are a bit ugly, but there you go
22:25:22 <ehird> i wrote a program to do it
22:26:59 <ais523_> heh, I just decompiled the resulting circuit into VHDL
22:27:13 <ais523_> with variable names like un75_prng_1_s_8_n_XORG
22:27:56 <ehird> whee, now it accepts input from stdin too
22:28:03 <ehird> lovely little 40-line hack.
22:28:33 <ehird> of course, unicode sparklines were someone elses idea and my script is almost identical to their(mozilla ubiquity)'s but there's not that many ways to implement this :P
22:28:50 <ehird> % seq 1 10 | sparkline
22:29:00 <ehird> now to make it scale M values into N values
22:29:05 <ehird> i.e., you can compress 1000 data points into 10
22:29:21 <ehird> just split the list every M values, and mean it up
22:29:27 <ehird> hmm, maybe that should go into another program
22:29:41 <ehird> % seq 1 1000 | squish 10 | sparkline
22:30:25 <ais523_> ah, skips every nth element?
22:30:34 <ais523_> oh, averages blocks of n elements
22:30:46 <ehird> hrmph, squish requires me to duplicate this code
22:30:48 <ehird> input = sys.argv[1:]
22:30:52 <ehird> input = re.split(r'\s+', sys.stdin.read().strip())
22:30:54 <ehird> numbers = map(float, input)
22:31:07 <ehird> since first arg is number to squish too
22:33:56 <ais523_> we should so make an esolang based on VHDL
22:34:01 <ais523_> even though it's arguably an esolang itself
22:34:58 -!- ais523 has quit (Read error: 110 (Connection timed out)).
22:39:31 -!- ais523_ has changed nick to ais523.
22:41:00 -!- puzzlet has quit (Read error: 60 (Operation timed out)).
22:41:04 -!- puzzlet has joined.
22:42:23 <ais523> hmm... since when did <i> become a block element on Slashdot?
22:42:30 <ais523> OK, I get that it's unsemantic
22:42:41 <lament> my gtalk status line: Azure a Flatus volant Or
22:42:57 <ais523> lament: looks like a coat of arms description
22:47:06 <ehird> ais523: do you think squish(1) should expand values too?
22:48:19 <ais523> also, wouldn't the 1 2 be on stdin
22:48:21 <ehird> that's harder though :-)
22:48:24 <ais523> or can it take from stdin or arguments?
22:48:27 <ehird> if you omit the arguments, it reads from stdin
22:48:32 <ehird> same with sparkline(1)
22:48:39 * ehird tries to figure out how to do expansion easily
22:50:37 <ehird> % squish 3 1 2 3 4 | xargs echo
22:50:40 <ehird> I hate off by one errors
22:52:41 <ehird> ok, who has a bunchload of numbers they want turned into a sparkline?
22:52:51 -!- BeholdMyGlory has quit ("bye").
22:55:08 <Deewiant> ehird: http://www.eveandersson.com/pi/digits/1000000
22:55:33 <AnMaster> no idea how to implement it :(
22:55:53 <ehird> Deewiant: hee, sure
22:56:14 <Deewiant> and then http://antwrp.gsfc.nasa.gov/htmltest/gifcity/e.1mil
22:59:17 <AnMaster> http://filebin.ca/nastsa/pi_data.txt (16 million)
23:00:26 <AnMaster> http://ja0hxv.calico.jp/pai/epivalue.html <-- 100 billion... split over multiple files
23:00:36 <ehird> % curl http://www.eveandersson.com/pi/digits/1000000 2>/dev/null | python -c 'from BeautifulSoup import BeautifulSoup; import sys; print " ".join(list(BeautifulSoup(sys.stdin).pre.renderContents().replace("\n", "").replace("3.", "")))' | wc -w
23:00:45 <ehird> ok, now to | squish 100 | sparkline
23:01:05 <ehird> % curl http://www.eveandersson.com/pi/digits/1000000 2>/dev/null | python -c 'from BeautifulSoup import BeautifulSoup; import sys; print " ".join(list(BeautifulSoup(sys.stdin).pre.renderContents().replace("\n", "").replace("3.", "")))' | squish 100 | sparkline
23:01:07 <ehird> ▄▆▄▆▄▃▄▃▂▅▄▅▁▅▄▅▅▅▆▅▂▄▄▄▆▅▇▅▅▅▅▅▄▇▆▅▂▁▄▂▄▆▄▇▄▅▇▇▆▅▂▆▇▆▆▂▆▆▂▅▅▃▄▂▃▅▆▃▃▇▃▄█▅▄▂▆▆▄▇▃▅▄▇▅▆▂▆▆▄▄▃▂▆▆▆▅▃▁▄
23:01:11 <AnMaster> http://ja0hxv.calico.jp/pai/ee1value.html <-- e to 100 billion digits, again multiple files
23:01:11 <ehird> Deewiant: you're welcome.
23:01:15 <ehird> that python invocation is really ugly though.
23:01:26 <ehird> AnMaster: that's the first million digits of pi, graphed as a sparkline
23:01:30 <ehird> you know, what we've been discussing.
23:01:46 <ehird> Deewiant: conclusion: pi is random :P
23:01:46 <Deewiant> ehird: so how does that come out to less than a million characters
23:01:56 <ehird> Deewiant: | squish 100 |
23:01:56 <Deewiant> i.e. what does the squishing do
23:02:10 <Deewiant> ehird: yeah, but what's the transformation
23:02:11 <ehird> Deewiant: basically, it divides the input into the right amount of segments
23:02:16 <ehird> and runs mean on them
23:02:30 <ehird> % squish 5 1 2 3 4 5 6 7 8 9 10 | xargs echo
23:02:30 <ehird> 1.5 3.5 5.5 7.5 9.5
23:02:43 <ehird> (first arg is result length)
23:03:01 <AnMaster> ehird, links for these programs?
23:03:12 <Deewiant> right, so you preserve the arithmetic mean
23:03:13 <ehird> AnMaster: ~ehird/bin/{squish,sparkline}
23:03:28 <ehird> AnMaster: sure, after I've processed e
23:04:34 <ehird> the python invocation is ugly, but html scraping is ugly.
23:04:43 <AnMaster> <ehird> % squish 3 1 2 3 4 | xargs echo
23:04:43 <AnMaster> <ehird> 1 2 3 4 <-- why the xargs echo?
23:04:48 <ehird> AnMaster: because it outputs one per line
23:04:54 <ehird> since that's the unixy standard
23:05:23 <AnMaster> ehird, would you say sendmail is unixy?
23:05:41 <ehird> it doesn't exactly do one thing, and it doesn't exactly do it well.
23:05:54 <AnMaster> ehird, it is however traditional unix software
23:06:25 <ehird> plan 9 is the first system applying the unix philosophy to a reasonable degree
23:06:34 <ehird> AnMaster: it's a swiss army knife, and it's inconsistent with hte rest of the system
23:06:44 <ehird> Deewiant: here comes yer e sparkline
23:06:46 <AnMaster> ehird, indeed, command line argument format is weird
23:06:52 <ehird> % curl http://antwrp.gsfc.nasa.gov/htmltest/gifcity/e.1mil 2>/dev/null | python -c 'from BeautifulSoup import BeautifulSoup; import sys; print " ".join(list(BeautifulSoup(sys.stdin).hr.nextSibling.replace("e =", "").replace(" ", "").replace("\n", "").replace("2.", "")))' | squish 100 | sparkline
23:06:53 <ehird> ▄▂▃▄▄▁▁▄▄▄▄▂▃▄▄▁▂▃▂▆▂▃▅▄▇▄▂▅▅▅▃▄▃▂▅▃▂▃▄▅▄▁█▅▃▂▄▅▁▄▄▄▄▄▃▃▁▄▄▅▃▃▅▆▄▃▄▄▅▄▂▂▃▄▄▄▃▄▂▅▂▄▄▇▅▅▄▅▄▆▃▄▆▄▄▃▃▃▅▅
23:06:57 <ehird> conclusion: e is also random.
23:07:27 <ehird> squish gives _all_ 4s
23:07:32 <ehird> 4.5119 4.4689 4.481 4.5036 4.5132 4.4527 4.4554 4.5137 4.5147 (...)
23:07:39 <ehird> I wonder why? that's very odd.
23:07:46 <AnMaster> ehird, did it do so for pi too?
23:08:26 <AnMaster> anyway please pastebin sparkline?
23:08:32 <ehird> I don't think it's a bug, % seq 1 1000 | squish 100 works fine
23:08:37 <ehird> I guess it's just an odd numerical property o_O
23:08:42 <ehird> AnMaster: yes, I will in a bit
23:08:46 <ehird> Deewiant: is it? elaborate :P
23:09:03 <Deewiant> and we've got stuff in the range 0-9 randomly distributed
23:09:21 <ehird> one thing that saddens me about squish/sparkline
23:09:29 <ehird> is that there's one piece of almost identical code in them :P
23:09:37 <ehird> input = sys.argv[1:]
23:09:38 <Deewiant> ehird: make a library out of it
23:09:41 <ehird> input = filter(None, re.split(r'\s+', sys.stdin.read().strip())) or [0]
23:09:43 <ehird> numbers = map(float, input)
23:09:49 <ehird> input = sys.argv[2:]
23:09:50 <AnMaster> ehird, command line parsing you mean
23:09:53 <ehird> input = filter(None, re.split(r'\s+', sys.stdin.read().strip()))
23:09:55 <ehird> numbers = map(float, input)
23:09:57 <ehird> Deewiant: surely too small for that
23:09:59 <ehird> I don't want to tell people "Also, download this lib."
23:10:01 <ehird> AnMaster: not really
23:10:03 <ehird> just "give me inputs from arguments or stdin"
23:10:22 <Deewiant> ehird: doesn't python have some kind of magical library installation tool
23:10:23 <ehird> Deewiant: % curl http://blahblah -O blah; blah
23:10:50 <MizardX> re.split(r'\s+', sys.stdin.read().strip()) == sys.stdin.read().strip().split()
23:10:54 <Deewiant> 5 SLOC times 100 projects is 500 SLOC
23:11:13 <ehird> MizardX: does that split on all whitespace?
23:11:33 <ehird> MizardX: what about the filter(None, ) ugliness?
23:11:39 <ehird> it's to stop empty inputs giving ['']
23:13:13 <MizardX> (w for w in sys.stdin.read().strip().split() if w) ... maybe better with filter
23:13:31 <ehird> yeah, I'll just put it in a library if I ever expand it
23:13:51 <ehird> I should probably run slocc or something on them instead.
23:14:11 <MizardX> [ float(w) for w in sys.stdin.read().strip().split() if w ]
23:14:30 <ehird> nah, the float mapping is after to not duplicate it per input source
23:14:54 <AnMaster> ehird, download link? going brb in a sec
23:15:08 <ehird> AnMaster: sheesh, be patient
23:16:18 <MizardX> strip().split() does not leave any empty elements
23:16:43 <ehird> there, that's better
23:17:00 <ehird> Fewer numbers (1) than the target amount (3)!
23:17:13 <ehird> I probably need a squap or something to expand.
23:17:21 -!- puzzlet has quit (Read error: 104 (Connection reset by peer)).
23:18:12 -!- puzzlet has joined.
23:18:35 <MizardX> What's the first argument for?
23:19:02 <ehird> MizardX: target numbers
23:19:12 <ehird> squish N means "squish the values I give you into N values"
23:19:22 <ehird> % seq 1 100 | squish 10 | xargs echo
23:19:22 <ehird> 5.5 15.5 25.5 35.5 45.5 55.5 65.5 75.5 85.5 95.5
23:20:29 <MizardX> oh, {ehird} (first arg is result length)
23:21:03 <MizardX> I was confused by % squish 5 1 2 3 4 5 6 7 8 9 10 | xargs echo -> 1.5 3.5 5.5 7.5 9.5
23:21:17 <ehird> mostly you'll give it stuff via stdin
23:21:37 <ais523> ehird: xargs echo? that's clever
23:21:42 <ais523> normally I do that using tr
23:22:10 <ais523> seems like an utter abuse of xargs
23:22:25 <ehird> % seq 1 100 | squish 10 | xargs
23:22:25 <ehird> 5.5 15.5 25.5 35.5 45.5 55.5 65.5 75.5 85.5 95.5
23:23:21 <MizardX> xargs = print sys.stdin.read().strip().split() :)
23:23:35 <ais523> on DJGPP, xargs does weird stuff to avoid ever passing the arguments directly
23:23:40 <ais523> due to the command-line length limit
23:23:43 <ehird> xargs = print ' '.join(sys.stdin.read().strip().split('\n'))
23:23:50 <ehird> or rather, xargs echo
23:23:53 <ehird> ais523: it's not an abuse
23:24:03 <ehird> we have values on multiple lines, and we want to give them as arguments to one command - echo
23:24:07 <ehird> that is what xargs is for
23:24:12 <ehird> xargs defaulting to echo is just even more convenient
23:24:19 <ehird> MizardX: and splitting on '\n'
23:24:21 <ais523> I see xargs as passing file lists to things, specifically
23:24:33 <ehird> ais523: then you see wrong
23:24:37 <ehird> xargs -- construct argument list(s) and execute utility
23:24:39 <AnMaster> ais523, nah, you use -exec to find
23:24:44 <ehird> MizardX: hmm actually xargs splits on all whitespace
23:24:50 <AnMaster> considering newlines in filenames
23:25:00 <ehird> yeah I put newlines in my filenames all the time.
23:25:13 <ais523> ehird: does `printf "ab cd\nef gh" | xargs ls` list the files "ab cd" and "ef gh"
23:25:17 <AnMaster> ehird, if I want to run a script as root to clean out /tmp
23:25:19 <ais523> or the 4 files ab cd ef gh?
23:25:35 <ais523> ehird: something's wrong, then
23:25:43 <ehird> it splits on all whitespace
23:25:50 <AnMaster> since I often need to work on files with spaces in them
23:26:05 <ais523> ehird: so why are you explicitly splitting on \n in your program above
23:26:15 <ais523> AnMaster: so do I, mostly trying to deal with Windows program URLs via Wine
23:26:16 <ehird> ais523: 23:24 <ehird> MizardX: hmm actually xargs splits on all whitespace
23:26:26 <ais523> anyway, I have to go now
23:26:32 <ais523> or I'll miss the last bus
23:26:39 -!- ais523 has quit.
23:27:59 <ehird> Deewiant: any other numbers you want graphed?
23:28:13 <ehird> ooh, I should graph the size of the IRC logs in #esoteric
23:31:26 <ehird> from 03.01.17 to 08.10.31:
23:31:27 <ehird> % wc -c *.*.* | head -n -1 | perl -pe's/\s+(\d+).*/$1/' | squish 100 | sparkline
23:31:28 <ehird> ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▂▃▁▂▂▂▂▂▃▁▁▁▂▂▁▁▁▁▂▁▁▃▃▂▂▂▁▁▄▃▂▂▃▂▁▂▂▄▅▄▃▂▃▃▂▃▄▄▃▆▅▄▃▄▆▇▇▆▆█
23:31:39 <ehird> conclusion: this place only gets more active over time.
23:32:16 <ehird> tl;dr 10-length version: ▁▁▁▁▂▂▃▄▄█
23:33:23 <ehird> tl;dr 2-length comedy version: ▁█
23:38:31 <MizardX> def chunked(iterable,size): return itertools.izip(*[iter(iterable)]*size) ... print ' '.join(str(1.0 * sum(chk) / len(chk)) for chk in chunked((float(x) for x in sys.argv[2:] or sys.stdin.read().strip().split()),int(sys.argv[1])))
23:38:32 <ehird> whoaaaa ,this looks awesome: http://pastie.org/362943.txt
23:38:39 <ehird> MizardX: ok, and ? :
23:38:48 <ehird> your chunking fails
23:38:53 <ehird> as it doesn'taccount non-divisible lengths
23:39:14 <ehird> so... mine is more elegant, works better, and is probably faster :-P
23:41:17 <ehird> p.s. i generated that arrow like this
23:41:17 <ehird> for i in `seq 20`; do (seq $i; seq $i | tac) | sparkline; done; for i in `seq 20 | tac`; do (seq $i; seq $i | tac) | sparkline; done
23:51:40 <ehird> Deewiant: i just read one of your reddit comments!
23:51:43 <ehird> everyone should stop internet-stalking me
23:52:19 <ehird> i'd tell you, but it'd be annoyingly tedious and you wouldn't understand.
23:53:41 <psygnisfive> i get that you're graphing channel activity
23:53:47 <psygnisfive> i was more nterested in what you're using to do it
23:54:00 <ehird> wc(1), squish(1) and sparkline(1)
23:54:15 <ehird> the latter two I wrote myself
23:54:28 <ehird> also, the pastie link I gave is just to some random arty thing I made with it
23:54:30 <ehird> not channel activity
23:55:42 <ehird> http://www.noteflight.com/scores/view/2177201ae448ab894682b16d557f5544fb678e7b
23:58:55 <psygnisfive> and i presume wc, squish, and sparkline are run in the shell?
23:59:22 <AnMaster> if not I'm going to bed in a second