←2014-12-31 2015-01-01 2015-01-02→ ↑2015 ↑all
00:00:00 <ais523> `2014
00:00:01 <HackEgo> Hello, world!
00:00:01 <ais523> `2014
00:00:02 <AndoDaan> `2014
00:00:02 <HackEgo> No output.
00:00:02 <HackEgo> No output.
00:00:03 <ais523> `2014
00:00:04 <HackEgo> No output.
00:00:04 <ais523> `2014
00:00:05 <HackEgo> No output.
00:00:21 <AndoDaan> You did it.
00:00:29 <Taneb> Woo
00:01:09 <AndoDaan> Good bye, 2014.
00:04:01 <Taneb> Should `2014 be kept?
00:04:17 <ais523> yes
00:04:19 <ais523> otherwise it defeats the point
00:06:14 <AndoDaan> 2014 wasn't 2014 for just 2014, but for all time. That's true in the abstract, but it helps drive the point home having a running implementation.
00:13:34 -!- adu has quit (Quit: adu).
00:29:27 -!- fizzie` has joined.
00:29:28 -!- fizzie` has quit (Changing host).
00:29:28 -!- fizzie` has joined.
00:32:07 -!- shikhin_ has joined.
00:34:53 -!- shikhin has quit (Ping timeout: 240 seconds).
00:36:00 -!- fungot has quit (*.net *.split).
00:36:00 -!- fizzie has quit (*.net *.split).
00:36:00 -!- zemhill_ has quit (*.net *.split).
00:40:31 -!- zzo38 has quit (Remote host closed the connection).
00:50:15 -!- zemhill_ has joined.
00:50:27 -!- weissschloss has quit (Remote host closed the connection).
00:54:10 -!- pikhq has joined.
00:54:11 -!- weissschloss has joined.
00:59:19 -!- big3_brother has joined.
01:02:32 -!- adu has joined.
01:05:32 -!- Solace has joined.
01:23:11 <myname> okay, i made my first ever golfing attempt in haskell for Kimariji and needed 139 bytes
01:24:24 <myname> 132 with less whitespace
01:25:23 <Solace> What is white space?
01:25:47 -!- boily has joined.
01:26:40 <myname> is there something like µ recursion in haskell?
01:27:13 <shachaf> What is μ recursion?
01:27:25 <shachaf> Excuse me, µ recursion.
01:27:28 <myname> like, giving a predicate, return the largest possible value that satisfies it
01:27:50 <shachaf> Largest?
01:28:09 <myname> i am doing last(0:[x|x<-[1..99],pred x]) now
01:28:33 <myname> 0.. might solve that leading 0 problem
01:28:56 <myname> indeed it does
01:29:20 <myname> so last [x|x<-[0..99],pred x]
01:30:22 <myname> 120 now
01:30:36 <myname> i don't think i will shorten it much more with my attempt
01:33:46 <myname> oh, 121 on the page
01:33:47 <myname> oh well
01:35:19 <int-e> myname: check for final newlines
01:35:58 <myname> vim does not show a second line, so i guess there is none
01:36:30 <int-e> vim adds a final newline by default
01:36:35 <myname> :O
01:36:39 <int-e> (at least for me)
01:36:52 <myname> how do you remove them?
01:36:57 <int-e> I usually use the form for submission
01:37:16 <myname> i have 3 times the word "take" :(
01:37:31 <myname> i may reduce it to 2
01:37:33 <int-e> and I don't remember how to omit the final newline in vim (it was discussed here before, it's possible somehow)
01:37:41 <boily> myname: you could use some sed trickery, I think.
01:37:57 <myname> not worth it
01:38:56 <myname> okay, can i do something like x<-"bar" to get "b", "ba", "bar"?
01:39:01 <myname> inits i guess
01:39:58 <myname> oh dear, that makes stuff worse
01:40:03 <int-e> inits, but you need to import Data.List for that, so it's generally not worth it. scanl(flip(:))[][1,2,3] comes close, but generally even that is too long
01:40:34 <myname> i would need to replace one usage of take with one of length
01:40:40 <myname> doesn't sound that smart
01:41:56 <myname> ghci won't let me run that line of yours, what the hell
01:42:13 <int-e> > scanl(flip(:))[][1,2,3]
01:42:15 <lambdabot> [[],[1],[2,1],[3,2,1]]
01:42:34 <int-e> it should work just like that in ghci, too.
01:42:45 <myname> i don't think that would help with this problem
01:42:54 <boily> > map reverse.tail.scanl(flip(:))$[][1,2,3]
01:42:54 <int-e> it doesn't.
01:42:55 <lambdabot> Couldn't match type ‘[a0] -> [[a0]]’ with ‘[[a]]’
01:42:55 <lambdabot> Expected type: [a0] -> [[a]]
01:42:55 <lambdabot> Actual type: [a0] -> [a0] -> [[a0]]Couldn't match expected type ‘[t1] -> [...
01:43:02 <boily> meh.
01:43:14 <boily> > map reverse.tail.scanl(flip(:))[]$[1,2,3]
01:43:16 <lambdabot> [[1],[1,2],[1,2,3]]
01:43:21 <int-e> scanl/scanr do come in useful from time to time, so it's good to keep in mind that they're in the prelude.
01:44:33 <int-e> myname: one can learn a lot of tricks by looking at previous entries, but usually the main trick is to come up with a good algorithm.
01:44:47 <myname> yeah
01:45:43 <myname> what i do now is building a list of numbers where the prefix is NOT identifying and adding one
01:45:47 <int-e> (from previous entries you can learn tricks like defining custom infix operators (often better than alphanumeric names for function definitions), guards, pattern guards...)
01:45:57 <myname> but checking if it is identifying takes quite some space
01:46:23 -!- Phantom_Hoover has joined.
01:46:55 <int-e> why the negation, why don't you take the minimum of those lengths that *are* identifying?
01:47:17 <int-e> (also my algorithm is completely different, but that's all I intend to say about it)
01:47:21 <myname> i could do that
01:47:39 <myname> but i don't think it'll be much shorter
01:47:54 <myname> i waste 42 bytes to check if a prefix is identifying
01:48:59 <int-e> I'd expect this to be good for a couple of characters, 3 to 5 perhaps.
01:49:00 <myname> it is 3 bytes shorter with that
01:49:43 <int-e> (mostly because it's saving a +1)
01:49:48 <myname> yeah
01:50:05 <myname> but i need a == instead of a < somewhere else now
01:50:18 <myname> time to hoogle
01:51:44 <boily> when golfing haskell, are you allowed to use the fancy unicode operators? if so, do they count as single chars?
01:52:00 <int-e> heh. my big Haskell golfing source file (I keep all the programs in a single file) has the output of :browse Prelude at the end
01:52:05 <myname> what fancy unicode operators?
01:52:13 <int-e> boily: anagol counts bytes
01:52:39 <int-e> besides {-# LANGUAGE UnicodeSyntax #-} is just too long
01:52:50 <int-e> (even after omitting the two superfluous spaces)
01:53:45 <boily> int-e: noooooooooo :(
01:54:05 <boily> myname: λ, * and similar.
01:54:17 <myname> what the hell do they do
01:54:21 <boily> (not sure about * though, but it'd be typographically feng shui.)
01:54:48 <boily> myname: the first is lambda, the other is something that I don't think I have ever seen...
01:55:13 <boily> (too lazy to try to type the triple-bar-equal-sign. that one I know is actually used.)
01:55:16 <myname> boily: well, does it behave different than \?
01:55:17 <int-e> :k Int
01:55:18 <lambdabot> *
01:55:39 <boily> myname: absolutely not. it is purely graphical.
01:55:50 <myname> lol
01:56:18 <int-e> boily: this may come as a surprise to you, but generally speaking, golf code is NOT PRETTY
01:56:18 <boily> in fact, there's some vim madness that you can use to change the way operators are displayed in your source files, but keep the underlying ascii intact.
01:56:39 <boily> int-e: OKAY.
01:56:58 * boily wants to prettify his golf
01:57:12 <Jafet> Actually, some people prefer to not use λ because it is a Greek letter, not a symbol.
01:59:04 -!- hjulle has joined.
01:59:27 <myname> i wish there were some kind of any2
02:00:03 <boily> any2?
02:00:43 <myname> check if there are at least 2 values that satisfy a property
02:01:57 -!- big3_brother has quit (Quit: lsd rules!).
02:01:57 -!- drdanmaku has quit (Quit: Connection closed for inactivity).
02:02:30 <int-e> boily: have you seen the "beautiful" indentation here? http://golf.shinh.org/reveal.rb?Prime+Substrings/henkma%28oerjan%29_1415625927&hs
02:03:34 <myname> is there any reason not to interact with lines/unlines?
02:03:52 <ais523> `2014 test
02:03:52 <HackEgo> No output.
02:04:04 <myname> i can hardly believe getLine and putStrLn are that much shorter
02:04:45 <int-e> myname: it depends, there is no general rule for that
02:04:51 <myname> okay
02:05:08 <myname> i am however curious about that brainfuck solution
02:05:14 <int-e> since here, the whole input has to be read before anything can be processed, I believe 'interact' will be superior.
02:05:35 <boily> int-e: ... eghbhghhhghh...
02:05:47 <myname> boily: what's the problem?
02:05:53 <myname> looks perfectly fine for me
02:05:54 <boily> it's... disquieting.
02:05:56 <Jafet> m@main deserves an award
02:06:15 <myname> i do think it's quite normal to do this
02:07:04 <Jafet> That indentation is a ghc extension, though
02:08:48 <int-e> myname: I expect the brainfuck is a variation on this idea: http://golf.shinh.org/reveal.rb?Text+Compression/nuko%28cheat%29_1201178750&bf ... the interpreter puts the program code after the data area, so it's possible to skip over the data and use verbatim strings from the program itself
02:08:53 <myname> too bad i have to access the whole input in my check, i have a seperate function just to give it a name
02:09:20 <int-e> boily: ghc is the only haskell there is on anagol ;-)
02:10:16 <myname> oh
02:10:30 <int-e> oh I got the direction wrong.
02:10:59 <myname> i am doing something like "let f i=do something with i in interact f" now and i am a bit unhappy about it
02:11:04 <int-e> (since it's obviosuly moving left)
02:11:10 <myname> but i can't see how to avoid it at the moment
02:11:22 <int-e> myname: define a global id
02:11:33 <myname> ?
02:11:46 <int-e> main=interact f;f i=do something with i
02:11:51 <myname> ah
02:11:56 <int-e> (or do it on two lkilines)
02:11:59 <int-e> ouch
02:12:01 <int-e> on two lines
02:12:42 <myname> that's indeed 6 bytes shorter
02:13:35 <int-e> 'let' and 'where' are hardly ever worthwhile
02:13:44 <int-e> but there are exceptions.
02:13:54 <myname> if i could somewhere get rid of naming it directly, it'd be pretty nice
02:14:29 <int-e> main=interact(\i->do something with i) is worth a try sometimes.
02:15:03 <int-e> also, point-free code, but there's no S combinator (or anything comparable that can duplicate an argument) in the Prelude
02:15:23 <myname> too bad
02:15:49 <myname> (\i-> works but has exactly the same length
02:16:01 <myname> oh, no
02:16:07 <myname> 1 byte shorter
02:16:07 <int-e> > ap (+) (2*) 1 2 -- this "ap-tly" named one is in Control.Monad
02:16:08 <lambdabot> Could not deduce (GHC.Num.Num (a0 -> t))
02:16:08 <lambdabot> arising from the ambiguity check for ‘e_1212’
02:16:08 <lambdabot> from the context (GHC.Num.Num (a -> t), GHC.Num.Num a)
02:16:18 <int-e> > ap (+) (2*) 1
02:16:20 <lambdabot> 3
02:16:22 <int-e> stupid me.
02:16:38 <int-e> myname: are you using 'lines' twice?
02:16:53 <myname> no
02:17:54 <myname> don't see why i should do that
02:18:56 <int-e> just interesting because I originally started out with main=interact$unlines.f.lines
02:19:07 <myname> i did, too
02:19:21 <myname> well, i do still
02:19:32 <myname> but why should i line there twice?
02:20:53 <int-e> never mind. I'm just surprised that the \i-> helped you rather than being neutral
02:21:34 <myname> i'm down to 102, it's getting hard
02:22:38 <myname> "on" is not in prelude, is it?
02:22:45 <int-e> nope
02:22:49 <myname> too bad
02:23:13 <myname> i really dislike my check
02:23:42 <int-e> > let f a b c|t<-take a=t b==t c in f 3 "abcd" "abcef"
02:23:43 <lambdabot> True
02:23:56 <myname> wait wait wait
02:24:08 <myname> what?
02:24:12 <int-e> behold: pattern guard abuse
02:24:25 <myname> i don't even
02:24:36 <myname> what?
02:24:46 <boily> I'm with myname here. what the fungot is going on here.
02:24:54 <boily> FireFly: FUNGOOOOOOOOOOOOOOOOT!
02:25:00 <boily> s/FireFly/fizzie/
02:25:31 <int-e> > let f a | Just _ <- guard (a==5) = 4 | 1 > 0 = a in (f 3, f 5)
02:25:33 <lambdabot> (3,4)
02:25:57 <myname> what the hell does take do with 3 parameters?
02:25:58 <int-e> just like that, but with a more boring pattern (`t`)
02:26:00 <myname> ah
02:26:01 <myname> aaaaah
02:26:18 <Jafet> @quote view.pattern
02:26:18 <lambdabot> benmachine says: let (\x -> case x of (\x -> x -> x) -> x -> x) = 0 in x / best view pattern evar
02:26:19 <myname> woah
02:26:25 <myname> that is crazy stuff
02:26:45 <myname> so you rename "take a" to t
02:26:46 <int-e> But view patterns are not in Haskell 2010. Pattern guards are.
02:28:11 <myname> is it possible to do something like this in a list comprehension?
02:28:54 <int-e> well, x<-[foo] and let x=foo happen to be the same length
02:29:13 -!- shikhin_ has quit (Ping timeout: 244 seconds).
02:29:17 <int-e> err. wait, what am I saying
02:29:34 <int-e> the former saves one character.
02:30:16 <Jafet> > let x|x<-x=x|x=x in x
02:30:19 <lambdabot> mueval-core: Time limit exceeded
02:31:40 <myname> well, it actually makes my code longer
02:31:54 <myname> oh no
02:32:12 <myname> 99
02:32:24 <myname> that should be enough for now
02:32:58 <int-e> dream up other algorithms
02:33:31 <myname> i am quite happy with it as is for my first ever golfing attempt in haskel
02:33:52 <myname> i discussed the problem aside from golfing and people suggested a trie
02:33:55 <myname> i like that idea
02:34:08 <myname> but it may be incredibly long to implement
02:37:31 <int-e> right. tries or suffix arrays should give good performance
02:40:11 <myname> is there something like length$filter...? i am using sum[1| right now
02:40:49 <int-e> that's good
02:41:39 <int-e> (I recall discovering that trick; it felt good.)
02:42:50 <int-e> sum[1|x] is also shorter than fromEnum x (conversions from tests to 0 or 1 is one of the most annoying problems in Haskell golfing, I've found; I've spent a lot of time on trying to rewrite code so that this won't be necessary)
02:43:18 -!- SopaXorzTaker has joined.
02:43:19 -!- SopaXorzTaker has quit (Changing host).
02:43:19 -!- SopaXorzTaker has joined.
02:45:01 <Jafet> > ([1|False],[1|True])
02:45:03 <lambdabot> ([],[1])
02:45:40 <Jafet> > [()|]
02:45:42 <lambdabot> <hint>:1:5: parse error on input ‘]’
02:46:13 <int-e> Jafet: I would use that in production code without blushing (except with spaces, [1 | test])
02:47:04 <Jafet> Booleans in production code? Shocking
02:47:28 <Jafet> I'm surprised that desugaring comprehensions gives that result
02:47:37 <int-e> Jafet: I would not use the sum[1 | ...] version though; that should clearly be fromEnum ...
02:47:57 <int-e> why?
02:48:03 <int-e> > guard (1==1) :: [()]
02:48:05 <lambdabot> [()]
02:48:10 <int-e> > guard (1==2) :: [()]
02:48:11 <myname> too bad this isn't vba, where adding 1 to z gives you aa
02:48:11 <lambdabot> []
02:48:20 <myname> i could brute force everything
02:49:30 <int-e> Jafet: Hmm. I wonder how the Haskell report defines this, whether it's in terms of guard or in terms of filter ... but the former makes more sense to me.
02:50:37 <Jafet> It uses a recursive definition with [x|True] = [x] as the base case
02:52:38 <boily> adding 1. to z. gives you aa. AAAAAAAAAAAAAAAAAAAAH!
02:52:45 <int-e> https://www.haskell.org/onlinereport/haskell2010/haskellch3.html#x8-420003.11 --- oh it's spelled out, but it's essentially the 'guard' version. The trick in translating [x|p] is to use [x|p] = [x|p,True] = if p then [x|True] else [] = if p then [x] else [].
02:53:06 <Jafet> AAAAAAAAAAAAAAAAAAAAG + 1
02:53:25 <int-e> Jafet: so adding an artificial ,True to avoid the case that Q could be empty in the translation of the 'p' guard.
02:54:17 <int-e> fun
02:54:35 <int-e> Hey, we're having *fun* without fungot!
02:54:58 <Jafet> We haven't got fungot fun.
02:55:23 <myname> while we are at the haskell topic: would somebody recommend what of all these arrays i need? i want to have a text with O(1) access with lines that don't have the same length
02:55:25 <boily> fizzie`: WHARGHARBL! IEUAAAAH! FLBLBLBLBLBL! [INARTICULATE SUPRASEGMENTAL YELLING]!
02:55:34 <myname> so it should be an array of arrays of chars
02:55:38 <myname> but... what array?
02:55:46 * boily disappears to watch the TV specials...
02:55:56 -!- boily has quit (Quit: APHONIC CHICKEN).
02:56:22 <Jafet> :t array
02:56:23 <lambdabot> Ix i => (i, i) -> [(i, e)] -> Array i e
02:56:40 <myname> aren't there like 6 different arrays?
02:57:13 <int-e> yes, there's a matrix of them: unboxed/boxed and pure, for IO, and for ST
02:57:43 <myname> ST being what?
02:58:04 <int-e> Since the lines will be some boxed type (ByteString or Text?), I think you'll be using a pure, boxed array, that's Array
02:58:33 <coppro> myname: software transactional memory
02:58:33 <int-e> Control.Monad.ST - the "state thread" monad which allows pure computations that work with (think: temporary) arrays.
02:58:43 <coppro> oh wait, ST, not STM
02:58:44 <coppro> my bad
02:58:52 <myname> well, since i want to access each character i most likely want something like Array Int (Array Int Char)
02:59:20 <myname> okay
02:59:46 <myname> should still be linear time to build it up
02:59:51 <myname> that's fine
02:59:54 <int-e> myname: or Array Int (UArray Int Char) -- but seriously I'd store the lines as either ByteStrings or as Text.
03:00:12 <myname> int-e: i need O(1) access to every single char
03:00:18 <int-e> (UArray is the unboxed, pure array; it's much more compact than the boxed one)
03:00:26 <int-e> ByteString will give you that
03:00:31 <myname> compact being what?
03:00:56 <myname> oh, i should read about bytestring then
03:01:17 <myname> but it makes sense
03:01:35 <myname> i guess ByteString is similar to what C thinks is a string
03:02:31 <int-e> Array Int Char will store a pointer per character, which points to a Char value. UArray Int Char will be a flat array of - hmm - wide characters?
03:03:03 <myname> so UArray Int Char should basically a ByteString?
03:03:12 <myname> but a bit uglier
03:03:46 <Jafet> An array of Word32s
03:04:32 <myname> it is surprisingly simple
03:05:05 <myname> i think i overestimated them
03:07:03 <int-e> myname: nah, the UArray Int Char stores (32 bit, I checked) characters, ideally unicode code points; ByteString stores bytes, so it's closer to the C's char*.
03:07:47 <myname> okay
03:08:25 <myname> there are no ready to use function to make [[Char]] into Array Int ByteString i guess
03:08:43 <myname> should be pretty easy, though
03:10:23 <Jafet> Actually, since Char is boxed I think it is 16 bytes on amd64
03:10:37 -!- Phantom_Hoover has quit (Remote host closed the connection).
03:11:56 <Jafet> (And String uses 40 bytes per character.)
03:13:00 <myname> what
03:13:44 <Jafet> (The haskellwiki mentions a Char pool; presumably ASCII Chars only use 8 bytes on average.)
03:14:33 <Sgeo> Idris functions are anti-parametric unless exported as abstract
03:16:44 <myname> how come i need (i, i) to build an array?
03:17:18 <myname> isn't it usually directly dependent of the list?
03:17:48 <Jafet> Scanning the list to find its size is a bad idea.
03:17:56 <myname> okay
03:18:50 <Jafet> (Your computer may not have enough memory to force a list spine, even if its contents would fit into a UArray.)
03:26:34 <int-e> Jafet: the Char pool (is that a misspelled car pool?) covers latin1, hmm. (it goes up to 255.)
03:27:07 <int-e> or simply, chars-as-bytes.
03:37:44 <int-e> ah I may have reproduced oerjan's 90 character version.
03:39:01 -!- callforjudgement has joined.
03:39:54 <HackEgo> [wiki] [[Special:Log/move]] move * Notjohnconway * moved [[CA-1]] to [[CA (programming language)]]: set of languages
03:40:26 <myname> is it interesting?
03:40:37 -!- ais523 has quit (Ping timeout: 240 seconds).
03:42:01 <int-e> myname: If I'm right then this snippet offers food for thought: map take[1..]
03:42:28 <myname> oh
03:42:40 <myname> that-s neat
03:44:14 <Sgeo> :t take
03:44:15 <lambdabot> Int -> [a] -> [a]
04:01:41 <int-e> (that's good for 88 characters in my attempt)
04:07:53 -!- GeekDude has joined.
04:07:54 <myname> 95 now
04:11:29 <int-e> cheers
04:20:12 -!- Solace has quit (Quit: Connection closed for inactivity).
04:29:58 <myname> 93
04:46:59 -!- nys has quit (Quit: quit).
05:00:54 <GeekDude> Happy new years!
05:01:28 <adu> happy new year!
05:02:07 <int-e> And it's still the year of the horse.
05:04:16 <Sgeo> Happy New Year, anyone in my timezone!
05:07:03 <int-e> Yay, 1/1460 of the year is already past.
05:13:43 <adu> int-e: lol
05:30:22 -!- coppro has quit (Ping timeout: 240 seconds).
05:35:42 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
05:36:39 -!- GeekDude has joined.
05:42:22 -!- coppro has joined.
05:49:09 -!- oerjan has joined.
05:50:00 * oerjan changes a 4 to a 5 in the log url
05:50:12 <oerjan> happy new year!
05:53:24 <Sgeo> Do the two kinds of vararg systems have names? The system where the caller gives a number of arguments that the function has to accept (e.g. most Lisps) vs where the function decides, based on arguments or other things how many arguments to take (e.g. C and Idris)?
06:03:09 -!- zzo38 has joined.
06:04:05 -!- dts|pokeball has joined.
06:05:15 <zzo38> Why doesn't DOSBox have a "UNMOUNT" command?
06:05:56 <oerjan> this is stupid. i am trying to find the english original for http://heltnormalt.no/img/tommytigern/2014/12/31.jpg but neither tin-eye nor google manage it. you'd think it was a simple thing to achieve...
06:06:33 <oerjan> (tin-eye only give the same page, while google only gives everything else on the same page.)
06:06:53 <oerjan> (which are of course, entirely different comics.)
06:09:54 -!- MoALTz__ has joined.
06:12:43 -!- MoALTz_ has quit (Ping timeout: 255 seconds).
06:14:19 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
06:14:28 <int-e> zzo38: why not? it also has a mount command...
06:14:44 <int-e> zzo38: sorry
06:15:01 <int-e> zzo38: missed the negation. I guess the answer is that you can just restart dosbox.
06:15:45 <oerjan> text searches like "calvin and hobbes playing cards" don't find it either :(
06:17:58 <oerjan> applying extra quotes doesn't help
06:19:04 <int-e> http://www.gocomics.com/calvinandhobbes/1994/01/01 - that was easy.
06:19:28 <int-e> oerjan: note the year (between first and second panel) and the date (next to the signature in the last panel)
06:19:35 <oerjan> yay! but HOW?
06:19:46 * oerjan already tried searching on that site...
06:19:51 <int-e> "read between the lines"
06:20:13 <oerjan> ah.
06:23:27 <int-e> but yeah, a calvin&hobbes text search would be nice. too bad that (probably illegal) transmogrifier site is (long) dead.
06:36:06 <shachaf> int-e: I don't know what that transmogrifier site is, but I once made a local copy of a site that did C&H text search.
06:37:54 <int-e> http://www.transmogrifier.org/no_more_ch.html?ch/comics/list.cgi <-- this one
06:38:11 <shachaf> It has a .js file with a transcription of every strip, I think.
06:38:21 <shachaf> Nope, different site.
06:40:03 <shachaf> whoa, I forgot I had this.
06:43:15 <coppro> oerjan: should have tole me yesterday
06:43:24 <coppro> i gave my father the complete c&h collection for christmas
06:44:54 <shachaf> I wonder how copyright should apply to an index.
06:45:46 <int-e> keywords may be fine; transcripts are clearly subject to copyright law.
06:46:00 <Jafet> I bet Google knows about that.
06:50:22 <int-e> hmm, transcripts may be a transformative use (under US law)... interesting question.
06:50:51 <int-e> Note: I'm speculating.
07:10:06 <oerjan> argh. who but GG makes paper doll cliffhangers
07:10:32 <int-e> Yeah, I was going to complain about that too.
07:11:13 <int-e> "ne'er do wells who write this electro-rag" - indeed.
07:11:38 <int-e> err. I can't copy correctly.
07:11:41 <int-e> "ne'er do well hacks who write this electro-rag" - indeed.
07:12:11 <oerjan> oh end of a volume? so it's actually the entirely volume that ends on a cliffhanger.
07:12:24 <oerjan> *-ly
07:12:44 <oerjan> grammar, where dideth you went
07:13:12 <int-e> I hate being 30 seconds off-phase wrt. to oerjan.
07:13:27 <oerjan> fancy
07:13:33 <int-e> (well, at least if I'm 30 seconds behind)
07:13:49 <int-e> being 30 seconds ahead feels kinda nice.
07:13:50 <oerjan> technically i cheated by not reading linearly
07:20:08 <int-e> meh, it's a new year and I still haven't figured out how henkma did 'identity matrix' (and some other open-ended problems where I haven't submitted solutions yet because they'd score less than 10k)
07:21:09 <int-e> (otoh, henkma hasn't caught up on http://golf.shinh.org/p.rb?kM4_ )
07:22:04 <int-e> (almost everybody is totally cheating on that one.)
07:23:20 <oerjan> that seems like one it would be silly _not_ to cheat on
07:25:43 <zzo38> int-e: I know you can just restart DOSBox, but I hope to have UNMOUNT command so that you can reassign a drive letter without having to restart DOSBox!!
07:27:50 <int-e> zzo38: actually, mount -u does just what you want
07:28:51 <int-e> (dosbox 0.74)
07:29:39 <zzo38> O, OK, but it doesn't seems to have that in the built-in documentation
07:30:15 <int-e> same here. dosbox(1) documents it though.
07:33:35 <zzo38> Is it possible for the mount command to specify whether or not programs on a mounted drive are allowed to access special DOSBox functions such as mounting a drive?
07:36:14 <int-e> config -securemode may be of interest, but that's a one-way street.
07:37:34 <int-e> I don't see how dosbox would distinguish between programs loaded from one drive or another.
07:38:09 <zzo38> It displays the name of the program at the top, so probably it can know.
07:42:44 <oerjan> int-e: it seems to me like embedding the output won't get anywhere near 39 or 40, you need something like main=do n<-readLn;print$...random cleverly searched for math formula here...
07:43:01 <zzo38> I also believe DOSBox ought to include its own versions of DEBUG and MODE commands. Other than that, the existing commands are probably fine.
07:43:38 <oerjan> and henkma just hasn't searched as cleverly as you
07:44:56 <int-e> oerjan: yeah I think that's a fair summary
07:45:24 <int-e> oerjan: I suspect that henkma does everything by hand.
07:48:29 <int-e> oerjan: oh http://golf.shinh.org/p.rb?Dancing+Kids is another annoying one.
07:48:50 <int-e> (I have a 101 character solution...)
07:49:14 <int-e> actually, two variations of that.
07:51:33 -!- rade has quit (Quit: Leaving).
07:52:44 -!- shikhin has joined.
08:01:05 <int-e> never mind.
08:01:56 -!- DrMcHood has joined.
08:03:47 <DrMcHood> Have studied Ebonics for many decades, have dived into programming the past 2 years. Any thoughts on a convergence?
08:03:52 <int-e> (Now it's just a can't-believe-I-missed-that-the-last-time-I-worked-on-this nuisance.)
08:04:57 <zzo38> DrMcHood: Sorry, I don't know. (That doesn't imply everyone else also doesn't know.)
08:05:20 -!- zzo38 has quit (Remote host closed the connection).
08:08:55 <DrMcHood> keep it(100):[tree.fitty.4°[ice cold*2^chains]]
08:14:09 -!- DrMcHood has quit (Quit: Page closed).
08:16:32 <coppro> how do I set an environment variable for both X and login sessions? I thought that was what .profile was for but it does not seem to be working
08:19:33 <coppro> streaming at http://twitch.tv/coppro
08:31:40 <callforjudgement> `2014 this is going to become the new o
08:31:40 <HackEgo> No output.
08:34:03 <int-e> coppro: I think that has become impossible to answer; it depends on your X11 login and session managers.
08:34:28 <coppro> :(
08:34:48 <coppro> `cat bin/2014
08:34:49 <HackEgo> ​#!/bin/sh \ if [ $(date +%Y) = "2014" ] \ then echo "Hello, world!" \ fi
08:34:52 <coppro> hahaha
08:39:32 <int-e> coppro: some possible suggestions can be found here ... https://superuser.com/questions/19044/how-do-i-set-an-environmental-variable-for-a-gnome-session
09:11:36 * oerjan notes that the last `2014 hello world appeared on the january 1 log page.
09:12:12 <oerjan> `2014
09:12:12 <HackEgo> No output.
09:12:14 -!- adu has quit (Quit: adu).
09:14:33 <coppro> int-e: thanks
09:40:27 -!- fizzie` has changed nick to fizzie.
09:41:58 -!- fungot has joined.
09:43:13 <oerjan> <int-e> and I don't remember how to omit the final newline in vim (it was discussed here before, it's possible somehow) <-- something like :set binary noeol
09:43:32 <elliott> @time fizzie
09:43:33 <lambdabot> Local time for fizzie is Thu Jan 1 11:43:32 2015
09:48:03 <oerjan> <int-e> (also my algorithm is completely different, but that's all I intend to say about it) <-- I COULD GUESS THAT
09:48:25 <int-e> really!
09:48:34 <int-e> you're SO smart
09:48:44 <oerjan> YEP
09:51:32 <oerjan> i suspect myname has converged towards the algorithm i'm using, but is missing a trick or too
09:51:39 <oerjan> but that doesn't help us beat you
09:51:43 <oerjan> *two
09:51:57 <int-e> did I guess that snippet correctly?
09:52:07 <oerjan> wat
09:52:17 <oerjan> i haven't got to that in the log if it's there
09:52:30 <int-e> "snippet" should be in the log?
09:53:26 <oerjan> i have no map take
09:53:47 <int-e> interesting :)
09:54:55 <int-e> oh well. 2 down, 3 to go ... identity matrix, I'll get you yet...
09:56:02 <oerjan> GOOD, GOOD
09:56:34 <oerjan> i have plenty of take, though, modulo that they're so many i defined an operator
09:57:36 <oerjan> hm...
09:58:41 <int-e> hmm. if I make it an operator in my 88 solution it gets larger :)
10:04:16 <Jafet> I tried map take and did it in one take.
10:05:54 <Jafet> > (\l->do x<-l;[p x|p<-map take[1..],[x]==[y|y<-l,p x==p y]]!!0++"\n") ["abc","acd","bcd","abd"]
10:05:56 <lambdabot> "abc\nac\nb\nabd\n"
10:06:32 <oerjan> AAAAAAAAAAAAAAAAAAAAAAAA
10:09:15 <int-e> Jafet: fancy, mine looks a bit different but has the same length.
10:13:30 <oerjan> Jafet: i had to either submit a version of that or ban you for spoiling so i chose the former hth
10:14:17 <oerjan> int-e: did you use and[p x/=p y|y<-l,x/=y] ?
10:14:34 <Jafet> Does it change anything, as you are not in first place?
10:14:45 <oerjan> Jafet: slightly increased score?
10:14:49 <int-e> oerjan: no
10:15:31 <Jafet> That is too long
10:15:34 <int-e> oerjan: that's one character longer, hth.
10:15:40 <oerjan> it is?
10:16:21 <oerjan> counted an extra ending bracket, duh
10:16:59 <Jafet> Oh, there is a total score for competitors. The list does not seem to load, though.
10:17:36 <fizzie> It takes a while, at least.
10:18:14 <int-e> Jafet: try the per-language lists, they're faster
10:21:13 <oerjan> at least i already had the !!0++"\n" part.
10:24:17 <int-e> `iterate` is tooooooo long.
10:24:17 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: iterate`: not found
10:24:23 <int-e> HackEgo: sorry!
10:25:24 <int-e> (that remark is unrelated to Kimariji)
10:29:50 <Taneb> `2014
10:29:51 <HackEgo> No output.
10:29:52 <Taneb> :(
10:32:20 -!- MoALTz__ has quit (Quit: Leaving).
10:32:34 -!- MoALTz has joined.
10:35:56 <oerjan> Taneb: THE YEAR IS ALL GONE
10:36:22 <Taneb> :(
10:43:59 <FireFly> Belated happy new year
10:49:09 <oerjan> hippy new hair
10:59:11 -!- SopaXorzTaker has quit (Remote host closed the connection).
11:01:45 -!- SopaXorzTaker has joined.
11:03:00 * int-e laughs maniacally
11:04:08 <int-e> (I overshot the identity matrix target)
11:14:00 <oerjan> oh no, we have created a monster
11:18:09 -!- callforjudgement has quit (Read error: Connection reset by peer).
11:18:15 -!- scarf has joined.
11:19:23 <int-e> "we"?
11:21:20 <oerjan> the channel hth
11:21:40 <int-e> ah, nothing out of the ordinary then
11:21:48 * int-e eyes fungot
11:21:48 <fungot> int-e: i only went there for a conference. see you
11:22:05 <oerjan> see? his alibi is water-tight.
12:14:58 -!- rade has joined.
12:17:46 -!- Phantom_Hoover has joined.
12:20:01 -!- MoALTz_ has joined.
12:23:23 -!- MoALTz has quit (Ping timeout: 272 seconds).
12:28:45 -!- Phantom_Hoover has quit (Ping timeout: 244 seconds).
12:30:11 -!- Phantom_Hoover has joined.
12:32:30 -!- shikhin_ has joined.
12:32:37 <fizzie> fungot: Which conference did you go to?
12:32:37 <fungot> fizzie: i was going to make a byte vector of length 1
12:32:45 <fizzie> Ah, the byte vector conference.
12:33:40 <elliott> fizzie: you move tomorrow, right?
12:35:28 -!- shikhin has quit (Ping timeout: 244 seconds).
12:37:10 <FireFly> fungot: you're moving!
12:37:11 <fungot> FireFly: that would make sense to not add an entry into the ascii contest so far ( i'm at 1.31 right now)
12:40:12 -!- SopaXorzTaker has quit (Read error: Connection reset by peer).
12:41:12 -!- SopaXorzTaker has joined.
12:41:12 -!- SopaXorzTaker has quit (Changing host).
12:41:12 -!- SopaXorzTaker has joined.
12:54:46 <J_Arcane> That's an interesting carrot-and-stick. F# closures only work with immutable variables.
12:57:11 <scarf> J_Arcane: same in Java, I think
12:57:20 <scarf> basically it's to avoid confusion about scope in closures
12:58:20 <oerjan> i thought it was to ensure that closure could be implemente simply by copying everything in scope
12:58:24 <oerjan> *+s
12:58:57 <oerjan> or everything referred to
12:59:19 <Taneb> How can I prove that if a has a multiplicative inverse mod m then gcd(a, m) = 1?
13:00:29 <oerjan> Taneb: a*r - 1 is divisible by m, which means a*r - 1 and a*r are both divisible by gcd(a,m)...
13:01:55 <oerjan> (r is the inverse)
13:02:57 <oerjan> (um do you need any more hints?)
13:03:29 <Taneb> That is fine, thanks :)
13:06:19 <Taneb> (considering I have an exam in about a week, I decided it's time I ought to do some number theory revision)
13:07:38 <myname> okay, dancing kid looked easier than i thought
13:17:45 -!- newsham has joined.
13:17:52 -!- oerjan has quit (Quit: Later).
13:22:04 -!- shikhin_ has changed nick to shikhin.
13:28:08 <fizzie> elliott: Yes.
13:28:14 <elliott> fizzie: good luck!
13:28:42 <fizzie> fungot: Remember to behave yourself when you're alone here.
13:28:42 <fungot> fizzie: thanks! dig the papers: they're excellent. you can do these reports in lisp better than perl
13:29:30 <elliott> ^style
13:29:30 <fungot> Available: agora alice c64 ct darwin discworld enron europarl ff7 fisher fungot homestuck ic irc* iwcs jargon lovecraft nethack oots pa qwantz sms speeches ss wp youtube
14:14:43 <FireFly> fungot: what do you think of London?
14:14:44 <fungot> FireFly: ( or an analogue), and one blanket k-line... i shouldn't say that; there are districts of new britain where polish is spoken extensively, appears on signs, etc., have a nice one
14:15:06 <FireFly> Lots of Polish in London, eh
14:15:30 -!- sebbu2 has quit (Ping timeout: 244 seconds).
14:15:35 -!- sebbu has joined.
14:16:12 -!- sebbu has quit (Changing host).
14:16:13 -!- sebbu has joined.
14:25:17 <Jafet> > (48^2 - 17^2, 84^2 - 71^2)
14:25:19 <lambdabot> (2015,2015)
14:30:26 <J_Arcane> That's an interesting mathematical property.
14:32:11 <fizzie> FireFly: They do say it's a very multicultural place.
14:33:02 <Jafet> (Also next year 2016 = 54^2-30^2, if you allow 45^2-03^2.)
14:40:08 -!- scarf has quit (Read error: Connection reset by peer).
14:40:15 -!- ais523 has joined.
15:25:40 -!- SopaXorzTaker has quit (Remote host closed the connection).
15:47:00 -!- MoALTz_ has quit (Quit: Leaving).
16:01:36 -!- ais523 has quit (Read error: Connection reset by peer).
16:01:41 -!- callforjudgement has joined.
16:09:48 -!- GeekDude has joined.
16:19:34 -!- zzo38 has joined.
16:27:32 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
16:31:21 -!- boily has joined.
16:31:37 -!- zzo38 has quit (Remote host closed the connection).
16:44:46 -!- callforjudgement has quit (Read error: Connection reset by peer).
16:45:04 -!- callforjudgement has joined.
16:48:58 -!- nys has joined.
16:59:32 -!- dianne_ has changed nick to dianne.
17:20:29 -!- callforjudgement has quit.
17:23:29 -!- GeekDude has joined.
17:25:46 -!- vanila has joined.
17:26:36 <AndoDaan> `2014
17:26:36 <HackEgo> No output.
17:41:33 -!- adu has joined.
17:43:43 <boily> Bonandodaannée!
17:44:01 <AndoDaan> Bonboilyannee
17:44:02 -!- adu has quit (Client Quit).
17:44:22 <AndoDaan> I'm not comfortable with the apostrophs.
17:44:47 <AndoDaan> That's probably the french or dutch word for apostrophies.
17:44:52 <AndoDaan> I can't spell.
17:45:05 <Taneb> It's a catapostrophy
17:45:27 <AndoDaan> Ha.
17:45:52 <boily> Tanebonne année!
17:45:58 <Taneb> :)
17:46:49 <boily> AndoDaan: «'» is «apostrophe» hth
17:47:53 <AndoDaan> It does. Idk, I think I feel like the e is silent. But it's not in English, right?
17:49:36 <boily> in English it ends with an /i/, whereas French's is silent.
17:55:31 <Taneb> English does horrible things to loanwords
17:56:41 -!- azthelgur has joined.
17:58:07 -!- azthelgur has quit (Client Quit).
17:58:32 <nys> guardian <-> warden
18:12:20 -!- big3_brother has joined.
18:15:27 -!- dianne_ has joined.
18:15:36 -!- dianne has quit (Disconnected by services).
18:15:39 -!- dianne_ has changed nick to dianne.
18:25:39 -!- dianne has quit (Ping timeout: 272 seconds).
18:26:47 -!- dianne has joined.
18:32:54 -!- shikhin_ has joined.
18:36:07 -!- shikhin has quit (Ping timeout: 255 seconds).
18:38:34 -!- adu has joined.
18:38:52 -!- boily has quit (Quit: FAMILIAL CHICKEN).
18:44:53 -!- PinealGlandOptic has quit (Ping timeout: 240 seconds).
18:48:07 -!- shikhin_ has changed nick to shikhin.
18:55:21 -!- big3_brother has quit (Quit: Leaving).
19:02:14 -!- adu has quit (Quit: adu).
19:19:46 -!- dts|pokeball has quit (Ping timeout: 250 seconds).
19:28:53 -!- MoALTz has joined.
19:39:39 -!- drdanmaku has joined.
20:08:17 -!- AndoDaan has quit (Ping timeout: 256 seconds).
20:09:19 <Jafet> `cc #include <stdio.h>\nmain(){char a[6][9]; printf("%d\n", (int)sizeof a[0]);}
20:09:20 <HackEgo> ​/tmp/a.c: In function ‘main’: \ /tmp/a.c:2:29: warning: missing terminating " character [enabled by default] \ /tmp/a.c:2:1: error: missing terminating " character \ /tmp/a.c:3:1: warning: missing terminating " character [enabled by default] \ /tmp/a.c:3:1: error: missing terminating " character \ /tmp/a.c:3:1: error: expected expression at
20:09:36 <Jafet> `cc #include <stdio.h>\nmain(){char a[6][9]; printf("%d\\n", (int)sizeof a[0]);}
20:09:38 <HackEgo> 9
20:10:05 -!- dts|pokeball has joined.
20:24:46 -!- AndoDaan has joined.
20:33:40 -!- PinealGlandOptic has joined.
20:34:16 <Vorpal> fizzie, I have a 140 MB tif pano from my phone here, will scale and upload as jpg shortly
20:34:52 <Vorpal> Some seams, and I don't think I got the FOV right (it didn't apparently report it, and I don't have a 360 pano to test with)
20:36:25 <Vorpal> Vorpal, I have a Xperia Z2 nowdays, and it has a 20 MP sensor, so the image size is absurd. It is actually a pretty good camera for a phone.
20:36:40 -!- Frooxius has quit (Quit: *bubbles away*).
20:40:45 -!- Frooxius has joined.
20:49:25 <Vorpal> @tell fizzie https://www.dropbox.com/s/12bapqf1dphm3nz/vargavidderna_h%C3%B6gmossen.jpg?dl=0
20:49:25 <lambdabot> Consider it noted.
20:56:43 <mroman> !blsq_upditem
20:56:48 <mroman> !blsq_uptime
20:56:50 <mroman> hm
20:57:17 -!- blsqbot has joined.
21:18:48 -!- zzo38 has joined.
21:37:22 -!- GeekDude has quit (Quit: {{{}}{{{}}{{}}}{{}}} (www.adiirc.com)).
21:46:50 -!- GeekDude has joined.
22:04:43 -!- nisstyre_ has joined.
22:05:46 -!- idris-bot has quit (Ping timeout: 256 seconds).
22:05:46 -!- Melvar has quit (Ping timeout: 256 seconds).
22:05:46 -!- nisstyre has quit (Ping timeout: 256 seconds).
22:07:09 -!- Melvar has joined.
22:33:50 -!- nisstyre_ has quit (Changing host).
22:33:50 -!- nisstyre_ has joined.
22:41:24 <zzo38> Is there card in Magic: the Gathering to change artifacts into lands?
22:46:37 -!- boily has joined.
22:59:04 <b_jonas> zzo38: do you want to keep the abilities or the artifacts? or is just overwriting the artifact with a copy of a land ok?
22:59:16 <b_jonas> zzo38: I think there was something to turn stuff to lands, but very rare
22:59:24 <b_jonas> let me try to look it up
22:59:36 <b_jonas> turning permanents to artifacts or enchantments or creatures is much easier
23:00:32 <shachaf> http://magiccards.info/query?q=!song+of+the+dryads
23:01:03 <b_jonas> shachaf: ah, nice. it's probaly not the only one because that's a very new card
23:03:20 <b_jonas> there are card that animate lands of course, that's much easier
23:04:50 <b_jonas> hmm
23:04:55 <b_jonas> maybe I'm wrong
23:05:20 <b_jonas> maybe there wasn't any older way to turn an artifact to a land while keeping its abilities?
23:05:26 <b_jonas> before that Song I mean
23:09:51 <b_jonas> strange
23:12:53 <zzo38> I mean keeping the ability of the artifact too
23:13:53 <b_jonas> zzo38: I haven't found anything other than Song then
23:14:11 <b_jonas> unless of course the artifact has only activated abilities that you can just copy with Kraj
23:15:15 <b_jonas> or with Quicksilver Elemental if you prefer
23:21:37 <zzo38> What do those cards are doing?
23:23:05 <b_jonas> zzo38: Quicksilver Elemental can borrow all activated abilities from a creature in play, until end of turn. Together with some copying and type changing effects, you can use it to have any permanent borrow all activated abilities of any other permanent.
23:23:46 <zzo38> But that isn't the same as the ability belonging to the original card.
23:24:05 <b_jonas> yes, it's not the same
23:25:24 <b_jonas> But if the artifact doesn't have abilities other than activated abilities, it might be enough for what you're trying to do, because you can often (but probably not always) copy the rest of the state from the artifact to a land after you've copied the activated abilities.
23:27:17 <zzo38> It does have only activated abilities but that is not good enough.
23:28:16 <b_jonas> there's also Volrath's Shapeshifter, I don't really know how that works, so you figure out whether it can help you
23:29:39 <b_jonas> hmm no, Volrath's Shapeshifter doesn't help because it can't use text from non-creatures
23:29:50 <b_jonas> hmm wait
23:30:01 <b_jonas> what if it copies Dryad Arbor?
23:31:13 <b_jonas> it probably doesn't help, but you figure out for yourself
23:31:21 <b_jonas> zzo38: meanwhile, have you seen Droidikar?
23:32:21 <zzo38> I have not. What does that mean?
23:33:13 <b_jonas> zzo38: http://www.darthsanddroids.net/orb/checklist.php Droidikar is a fan-made Magic: the Gathering set presented as a crossword, with the theme of Darths and Droids, a Star Wars parody screencap webcomic. Spoilers: http://tinyurl.com/q3s859n
23:35:14 <zzo38> Do you have a proper URL not "tinyurl"?
23:35:55 <b_jonas> zzo38: yes, a moment
23:36:23 <b_jonas> spoilers: http://www.irregularwebcomic.net/draakslair/viewtopic.php?t=8270
23:36:33 <b_jonas> I truncated it to fit it in a channel topic
23:37:20 <b_jonas> if ais returns, we'll have to tell him, I'm quite sure he'll like it
23:59:59 -!- MoALTz_ has joined.
←2014-12-31 2015-01-01 2015-01-02→ ↑2015 ↑all