00:04:44 <zzo38> I am not very good at Perl
00:07:43 -!- sebbu has joined.
00:07:43 -!- sebbu has quit (Changing host).
00:07:43 -!- sebbu has joined.
00:09:02 <zzo38> Lymia: If you can do it Perl, then *you* do it Perl.
00:10:19 -!- augur has quit (Remote host closed the connection).
00:10:58 -!- sebbu2 has quit (Ping timeout: 260 seconds).
00:33:24 <Vorpal> pikhq, arguably there are a few medicines that taste kind of nice. Generally I found people widely disagree on which ones taste nice
00:34:29 <Vorpal> personally I hate anything flavoured with mint. Because I hate mint. Really hate that flavour. Which makes it a bit of a problem to find usable toothpaste.
00:40:02 -!- h[a]gb4rd has changed nick to hagb4rd.
01:01:54 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
01:08:42 -!- augur has joined.
01:08:45 -!- augur has quit (Remote host closed the connection).
01:14:37 -!- Maxdamantus has quit (Ping timeout: 276 seconds).
01:21:58 -!- augur has joined.
01:37:41 <Vorpal> <zzo38> Lymia: If you can do it Perl, then *you* do it Perl. <-- why not do it in TeX?
01:42:10 -!- copumpkin has joined.
01:44:25 -!- Vorpal has quit (Ping timeout: 248 seconds).
01:50:00 -!- sebbu2 has joined.
01:50:00 -!- sebbu2 has quit (Changing host).
01:50:00 -!- sebbu2 has joined.
01:53:37 -!- sebbu has quit (Ping timeout: 244 seconds).
01:53:46 -!- pikhq_ has joined.
01:55:34 -!- pikhq has quit (Ping timeout: 276 seconds).
02:14:59 -!- elliott_ has joined.
02:15:08 <elliott_> <oerjan> Vorpal: hm i recall seeing Terminated before, although i don't recall if there's a difference with that mueval-core thing
02:15:14 <elliott_> i suspect that terminated is every command
02:15:19 <elliott_> and mueval has its own timeout
02:15:22 <elliott_> but every command can get Terminated
02:15:48 -!- hagb4rd has quit (Ping timeout: 246 seconds).
02:29:21 * Sgeo_ seeks out a Homestuck IRC channel
02:29:38 -!- Lymia has quit (Ping timeout: 255 seconds).
02:31:16 -!- lament has joined.
02:44:28 -!- hagb4rd has joined.
02:50:06 -!- pikhq_ has quit (Ping timeout: 246 seconds).
02:50:06 -!- pikhq has joined.
02:50:48 -!- hagb4rd has quit (Ping timeout: 246 seconds).
02:56:23 -!- hagb4rd has joined.
03:05:42 -!- augur has quit (Remote host closed the connection).
03:08:55 <pikhq> Hrm. I did not realise the Harry Potter audiobooks were narrated by Stephen Fry.
03:09:39 -!- wareya has quit (Read error: Connection reset by peer).
03:10:46 -!- wareya has joined.
03:15:16 -!- hagb4rd has quit (Quit: hagb4rd).
03:21:18 -!- sebbu2 has quit (Read error: Connection reset by peer).
03:21:45 -!- sebbu has joined.
03:21:46 -!- sebbu has quit (Changing host).
03:21:46 -!- sebbu has joined.
03:28:06 -!- variable has joined.
03:28:33 -!- variable has left.
03:36:12 <pikhq> Hrm. So, MusicBrainz seems to have changed how it handles multi-disc releases.
03:36:26 <pikhq> I'm not entirely sure how to get it to act in a manner I'd call "sane"...
03:36:26 -!- pingveno has quit (Read error: Operation timed out).
03:37:34 <pikhq> Now, instead of the *slightly* hackish scheme of storing each disc as a seperate but related release, it stores them as a single release. Problem is, it then shares the track numbers over the whole thing.
03:37:41 <Sgeo_> MSPA fans have made their own IM network
03:37:52 <pikhq> At least to me, having per-disc track numbers makes sense.
03:38:25 <pikhq> I *could* just tag shit myself, but I'd really rather not have to do that.
03:39:14 -!- pingveno has joined.
03:46:36 -!- wareya has quit (Read error: Operation timed out).
03:49:55 <elliott_> pikhq: You could make a script to retag them given the track number of the start of each disc.
03:53:01 <pikhq> If Picard didn't suck as much...
03:53:21 <Sgeo_> Huh. It just runs over IRC.
03:53:32 <Sgeo_> irc.mindfang.org #pesterchm
03:57:34 <elliott_> pikhq: well try ex falso for the script thing
03:57:40 <elliott_> it's quod libet's python tagging library
04:00:58 <elliott_> oerjan: how was my divisibility thing broken again? I forget
04:01:30 <oerjan> it failed to handle when the recursion never passed 0 or 1
04:01:39 <pikhq> elliott_: Yeah, but dammit I SHOULDN'T HAVE TO.
04:01:55 <oerjan> also when the second argument was 1, it gave the wrong result
04:02:41 <elliott_> oerjan: never passed 0 or one? you mean when it went negative?
04:03:19 <elliott_> oerjan: right, i'm doing peano numbers here so this is a pain
04:03:28 -!- augur has joined.
04:04:06 <elliott_> no, my Sub will just fail I think
04:04:08 <elliott_> instance (Sub n d n', Divisible n' d r) => Divisible n d r
04:04:12 <elliott_> but actually I guess I need it anyway
04:04:29 <oerjan> yeah you want a subtraction that tells you when the result is negative
04:04:33 <pikhq> Y THERE NO VIDEO TAGGER
04:04:59 <elliott_> class Divisible a d r | a d -> r
04:04:59 <elliott_> instance Divisible (S Z) d False
04:04:59 <elliott_> instance (Sub n d n', Divisible n' d r) => Divisible n d r
04:04:59 <elliott_> instance (LT n d) => Divisible n d False
04:05:09 <elliott_> I need to make sure n in the last one is at least two
04:05:16 <elliott_> otherwise it'll be overlapping
04:06:09 <oerjan> oh right you were doing it with type classes as well
04:06:13 <elliott_> instance (LT (S (S n)) d) => Divisible (S (S n)) d False
04:06:20 <elliott_> oerjan: yeah, type families are too easy
04:07:06 <oerjan> anyway there is no point in having special case for Divisible (S Z) ...
04:07:57 <pikhq> Y'know what the worst thing about the traditional filesystem model?
04:08:05 <pikhq> *No room for fucking metadata*.
04:09:15 <pikhq> Which has gotten to be absolutely essential now that 1TB is cheap.
04:10:11 <oerjan> i think you can derive LT from Sub
04:10:50 <oerjan> hm or that would give overlapping would it
04:11:45 <oerjan> elliott_: the case of hitting 1 is not more special than hitting 2, only 0 is different. and both fail for some divisors.
04:16:41 <elliott_> Overlapping instances for Divisible
04:16:41 <elliott_> (S (S Z)) (S (S (S (S Z)))) False
04:16:41 <elliott_> arising from an expression type signature
04:16:41 <elliott_> instance (Sub n d n', Divisible n' d r) => Divisible n d r
04:16:41 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:33:10-58
04:16:43 <elliott_> instance LT (S n) d => Divisible (S n) d False
04:16:47 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:34:10-48
04:16:51 <elliott_> yeah i guess i do need to modify sub
04:17:29 <elliott_> do I need type-level Maybe? :)
04:19:26 <elliott_> Overlapping instances for Divisible
04:19:26 <elliott_> (S (S Z)) (S (S (S (S Z)))) False
04:31:03 -!- wareya has joined.
04:35:04 <oerjan> elliott_: you _are_ aware of the rule that ghc doesn't look at the context, only the part after => when deciding which instance to use and whether there is overlap, right?
04:35:13 <elliott_> oerjan: but i have functional dependencies...
04:36:40 <elliott_> so i guess i have to use type families
04:37:23 <coppro> elliott_: go learn real category theory obv
04:38:19 <elliott_> coppro: what has this got to do with category theory
04:39:51 <oerjan> an answer which is obviously false
04:40:04 <oerjan> (_everything_ has got something to do with category theory)
04:40:29 <oerjan> (not necessarily something you want to think about, though)
04:41:20 <elliott_> oerjan: but talking about everything is the same thing as talking about nothing
04:45:07 -!- hagb4rd has joined.
04:45:47 <elliott_> oerjan: seems like i might have to bite the bullet and use type families
04:50:55 <elliott_> oerjan: i am sad because of this
04:51:46 <oerjan> well multiparameter typeclasses _are_ supposed to be TC
04:52:28 <elliott_> i know theres that interpreter
04:52:30 <elliott_> but i don't want to /greenspun/ this
04:52:42 <elliott_> oerjan: I guess if I can write a directly recursive Divisible algorithm
04:53:27 <oerjan> what about that type maybe btw
04:53:48 <elliott_> http://esolangs.org/w/index.php?title=Turning_tarpit&curid=3781&diff=23114&oldid=23070
04:54:23 <elliott_> oerjan: http://sprunge.us/YBbd
04:54:27 <elliott_> {-# LANGUAGE MultiParamTypeClasses,
04:54:27 <elliott_> FlexibleInstances, UndecidableInstances #-}
04:54:37 <elliott_> *Main> undefined :: (Divisible (S (S Z)) (S (S (S (S Z)))) r) => r
04:57:45 <oerjan> hm yeah that won't work, the parts after => are still overlapping
04:58:27 <oerjan> oh hm that's easy to fix
04:59:00 <oerjan> just change the second one to have => Divisible (S n) d True
04:59:42 <oerjan> (with the context changed appropriately
05:01:03 <oerjan> except i don't recall if you can actually use MPTCs to _calculate_ the types...
05:01:35 <oerjan> oh wait that won't work will it
05:01:48 <oerjan> you _need_ the False case
05:02:24 <oerjan> i don't know enough about how this is supposed to work
05:03:32 <elliott_> oh wait i forgot to see what you said
05:03:38 <elliott_> <oerjan> just change the second one to have => Divisible (S n) d True
05:03:38 <elliott_> <oerjan> (with the context changed appropriately
05:03:47 <elliott_> i could do the false case separately
05:03:52 <elliott_> but it says it violates the fundeps anyway
05:03:54 <oerjan> but i suppose you can only branch based on known information
05:03:55 -!- lifthrasiir has quit (Ping timeout: 240 seconds).
05:04:03 <elliott_> instance (Sub n d (Just n'), Divisible n' d True) => Divisible n d True
05:04:07 <elliott_> Functional dependencies conflict between instance declarations:
05:04:08 <elliott_> instance (Sub n d (Just n'), Divisible n' d True) =>
05:04:08 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:33:10-71
05:04:08 <elliott_> instance Sub (S n) d Nothing => Divisible (S n) d False
05:04:08 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:34:10-57
05:04:46 <oerjan> ah it probably doesn't look at contexts to decide whether fundeps are satisfied either
05:05:17 <oerjan> so it thinks those two can overlap
05:05:30 -!- lifthrasiir has joined.
05:05:45 <oerjan> since it can substitute n -> S n in the first one to get a violation in the latter
05:07:07 <oerjan> i have a hunch trying to get it to use type classes to infer the last type argument is not how you actually do type level programming with them
05:07:30 <oerjan> i could be wrong about that, but...
05:07:51 <elliott_> I'm going based on http://www.haskell.org/haskellwiki/Type_arithmetic
05:07:56 <oerjan> it's essentially type inference, and i don't think that works at this level
05:08:11 <elliott_> it seems to mostly be raw recursive functions
05:08:14 <elliott_> and (complicated) compositions
05:09:06 <oerjan> heh oleg has done decimals
05:09:32 <elliott_> oerjan: I am considering just doing modulo myself
05:10:54 <oerjan> hm i suppose it has to able to deduce result types then
05:11:26 <elliott_> Overlapping instances for Mod (S (S Z)) (S (S (S (S Z)))) (S (S Z))
05:11:26 <elliott_> arising from an expression type signature
05:11:34 <elliott_> instance (Sub a b (Just a'), Mod a' b r) => Mod a b r
05:11:34 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:30:10-53
05:11:34 <elliott_> instance Sub a b Nothing => Mod a b a
05:11:34 <elliott_> -- Defined at /home/elliott/Code/fizzbuzz/fizzbuzz.hs:31:10-39
05:13:33 <elliott_> oerjan: i don't know how to make this work at all...
05:13:37 <elliott_> instance (Sub a b a', Mod a' b r) => Mod a b r
05:13:37 <elliott_> instance (LT a b) => Mod a b a
05:13:58 <oerjan> of course that overlaps
05:14:24 <elliott_> instance (Sub a b a', Mod a' b r x) => Mod a b r True
05:14:24 <elliott_> instance (LT a b) => Mod a b a False
05:14:29 <elliott_> the whole thing actually works
05:14:33 <elliott_> i... dunno if that will help though
05:15:34 <oerjan> i think you cannot put True and False there, they have to be introduced by some deduction in the context
05:16:00 <oerjan> basically you can only branch on input, not output, i think
05:18:08 <oerjan> so the instance Divs Z n False is fine, because it is determined entirely by input
05:19:38 <oerjan> but for Divs (S n) d r you need to calculate the result entirely in the context
05:21:08 <oerjan> instance (Sub (S n) d mb, DivHelper mb d r) => Divs (S n) d r
05:21:33 <oerjan> where mb is a type level maybe
05:22:01 <elliott_> oerjan: what would DivHelper be?
05:22:19 <oerjan> something that branches on the maybe which Sub has calculated
05:22:45 <elliott_> what would mb actually be, though?
05:22:49 <oerjan> instance DivHelper Nothing d False
05:23:41 <elliott_> oerjan: hm and then divhelper recurses into divisible?
05:23:43 <oerjan> instance DivHelper (Just Z) d True
05:23:58 <oerjan> and one more for Just (S n)
05:24:09 <elliott_> instance (Divisible a d r) => DivHelper (Just a) d r
05:24:15 <elliott_> because Divisible has the Z/d/True case
05:24:31 <oerjan> otherwise you get overlap
05:24:42 <elliott_> class DivHelper m d r | m d -> r
05:24:42 <elliott_> instance DivHelper Nothing d False
05:24:43 <elliott_> instance (Divisible a d r) => DivHelper (Just a) d r
05:24:55 <elliott_> undefined :: (Divisible (S (S Z)) (S (S (S (S Z)))) r) => r
05:25:02 <elliott_> two is divisible by four right
05:25:20 <oerjan> ...you have an unusual argument order
05:25:26 <elliott_> class Divisible a d r | a d -> r
05:25:27 <elliott_> instance (Sub (S n) d m, DivHelper m d r) => Divisible (S n) d r
05:25:27 <elliott_> class DivHelper m d r | m d -> r
05:25:27 <elliott_> instance DivHelper Nothing d False
05:25:27 <elliott_> instance (Divisible a d r) => DivHelper (Just a) d r
05:25:56 <elliott_> undefined :: (Divisible (S (S (S (S Z)))) (S (S Z)) r) => r :: True
05:30:21 * elliott_ wonders if oerjan has guessed what he's writing yet...
05:31:06 <elliott_> it would be easy with type families but they would make it too easy :)
05:32:35 <oerjan> so the lesson of this i guess is that you cannot program MPTCs like prolog even though it looks like it
05:34:56 <zzo38> One essay in describing TECO coined the acronym "YAFIYGI", meaning "You Asked For It You Got It" and thus being the antitheses of WYSIWYG ("What You See Is What You Get"). (According to Wikipedia)
05:38:26 <elliott_> Functional dependencies conflict between instance declarations:
05:38:47 <elliott_> instance (Divisible n Five True, Divisible n Eight True) => FB n FizzBuzz
05:38:48 <elliott_> instance (Divisible n Five True, Divisible n Eight False) => FB n Fizz
05:38:48 <elliott_> instance (Divisible n Five False, Divisible n Eight True) => FB n Buzz
05:40:55 <oerjan> (Divisible n Five d5, FB1 n d5 r) => FB n r
05:42:29 <oerjan> in the part to the right of =>, any fixed part of the output needs to be determined by the fixed parts of the input, is my hunch
05:42:32 <elliott_> *Main> :t undefined :: (Loop Z (S (S (S (S Z)))) r) => r
05:42:32 <elliott_> undefined :: (Loop Z (S (S (S (S Z)))) r) => r
05:42:32 <elliott_> :: LoopHelper (Just FizzBuzz) Z (S (S (S (S Z)))) (Cons fb r) =>
05:45:22 <oerjan> oh, it didn't actually try to calculate it?
05:45:32 <elliott_> class LoopHelper m n c r | n c -> r
05:45:33 <elliott_> instance (Loop (S n) c r) => LoopHelper Nothing n (S c) r
05:45:33 <elliott_> instance (Loop (S n) c r) => LoopHelper (Just fb) n (S c) (Cons fb r)
05:45:36 <elliott_> I probably just have a mistake here
05:45:54 <elliott_> (Just FizzBuzz) Z (S (S (S (S Z)))) (Cons fb r))
05:46:17 <elliott_> instance (FB n m, LoopHelper m n (S c) r) => Loop n (S c) r
05:46:35 -!- Rugxulo has joined.
05:47:57 <oerjan> elliott_: um shouldn't it be | m n c -> r ?
05:48:22 <elliott_> *Main> undefined :: (Loop Z (S (S (S (S Z)))) r) => r
05:48:23 <elliott_> No instance for (Show (Cons FizzBuzz Nil))
05:48:46 <elliott_> *Main> :t undefined :: (Loop Z Eight r) => r
05:48:47 <elliott_> Context reduction stack overflow; size = 21
05:48:47 <elliott_> Use -fcontext-stack=N to increase stack size to N
05:49:01 <elliott_> Type families would solve that, right? :P
05:49:11 <elliott_> oerjan: it was followed by a gigantic list of loop helper things
05:49:16 <elliott_> but this is failing on /eight/ :-O
05:49:29 <elliott_> *Main> :t undefined :: (Loop Z Eight r) => r
05:49:29 <elliott_> undefined :: (Loop Z Eight r) => r :: Cons FizzBuzz (Cons Fizz Nil)
05:51:30 <elliott_> I did five and eight rather than three and five
05:51:43 <oerjan> Cons (S Z) (Cons (S (S Z)) (Cons Fizz (Cons (S (S (S (S Z)))) (Cons Buzz ... is what i'd expect
05:52:58 <elliott_> *Main> :t undefined :: (Loop Z (S (S (S (S (S Five))))) r) => r
05:52:58 <elliott_> undefined :: (Loop Z (S (S (S (S (S Five))))) r) => r
05:52:58 <elliott_> FizzBuzz (Cons Fizz (Cons Buzz (Cons Fizz (Cons Fizz Nil))))
05:53:03 <oerjan> elliott_: i guess if it is not using the optimal evaluation order, it might build up a huge amount of unfinished work
05:53:25 <elliott_> oerjan: just increasing the limit works fine though
05:53:30 <elliott_> *Main> :t undefined :: (Loop (S Z) (S (S (S (S (S Five))))) r) => r
05:53:30 <elliott_> undefined :: (Loop (S Z) (S (S (S (S (S Five))))) r) => r
05:53:30 <elliott_> :: Cons Fizz (Cons Buzz (Cons Fizz (Cons Fizz (Cons Buzz Nil))))
05:53:41 <elliott_> Now I just need to build up one hundred :)
05:53:49 <elliott_> maybe I can use my Sub as an Add
05:54:04 <oerjan> elliott_: you are not going to include the numbers not divisible by 3 or 5?
05:55:38 <elliott_> Occurs check: cannot construct the infinite type:
05:57:08 <elliott_> class FBHelper n dt df fb | n dt df -> fb
05:57:08 <elliott_> instance FBHelper n True False Fizz
05:57:08 <elliott_> instance FBHelper n False True Buzz
05:57:08 <elliott_> instance FBHelper n True True FizzBuzz
05:57:08 <elliott_> instance FBHelper n False False (Number n)
05:58:23 <elliott_> hmm now how can I use my Sub to do addition
05:58:44 <elliott_> Illegal polymorphic or qualified type:
05:58:44 <elliott_> forall r. Sub Five r (Just Five) => r
05:58:44 <elliott_> Perhaps you intended to use -XRankNTypes or -XRank2Types
05:59:18 <elliott_> Illegal polymorphic or qualified type: Ten
05:59:19 <elliott_> In an expression type signature: Loop (S Z) Ten r => r
05:59:19 <elliott_> In the expression: undefined :: Loop (S Z) Ten r => r
05:59:22 <elliott_> guess ten has to be a typeclass :D
06:00:01 <elliott_> instance (Sub Five r (Just Five)) => Ten () r
06:00:04 <elliott_> oerjan: observe the lovely grossness
06:01:15 <elliott_> class Twenty x r | x -> r; instance (Sub Ten r (Just Ten)) => Twenty () r
06:02:47 <elliott_> *Main> :t undefined :: (Hundred () n, Loop (S Z) n r) => r
06:02:47 <elliott_> undefined :: (Hundred () n, Loop (S Z) n r) => r
06:02:52 <elliott_> Sub eighty n2 (Just twenty)) =>
06:05:23 -!- Rugxulo has left.
06:05:41 <elliott_> *Main> :t undefined :: (Hundred () n, Loop (S Z) n r) => r
06:05:41 <elliott_> undefined :: (Hundred () n, Loop (S Z) n r) => r
06:05:46 <elliott_> (Cons Fizz (Cons (Number (S (S (S (S Z))))) (Cons Buzz Nil))))
06:06:15 <oerjan> it seems to think 100 = 5
06:06:46 <elliott_> ok now to wait for it to do all the fizzbuzzing
06:06:54 <elliott_> starting to think that type families would be preferable at this point
06:07:59 <elliott_> oerjan: my computer fans are currently spinning as it tries to work out the difficult combinatorial problem known only as "FizzBuzz"
06:08:56 <elliott_> i think it's building up EVERY SINGLE THUNK
06:08:59 <elliott_> and then evaluating them all at once
06:09:05 <elliott_> because there's no lazy evaluation really
06:09:16 <elliott_> since the head has to execute first
06:10:09 <elliott_> oerjan: really tempted to go into #haskell and say "does anyone have any tips for optimising typeclass computation?"
06:10:25 <elliott_> 9351 elliott 20 0 1689m 1.6g 15m R 98 44.1 3:39.59 ghc
06:12:45 -!- elliott has joined.
06:12:46 -!- elliott_ has quit (Read error: Connection reset by peer).
06:12:59 <elliott> oerjan: I have made a great achievement today.
06:13:09 <elliott> I am the first person to ever successfully freeze their computer trying to produce FizzBuzz.
06:13:50 <oerjan> your haskell XP is now 35 millioleg
06:14:25 <pikhq> Anyone ever hit a decioleg?
06:14:48 <pikhq> *Aside from Oleg*.
06:14:52 <hagb4rd> omg i love morrisey! ..i know it's absolutely out of topic but i have to throw you this curveball now
06:14:58 <hagb4rd> http://www.youtube.com/watch?v=_NcOm1enVFo&feature=BFp&list=WL4A8A5CE20F5AF139&index=17
06:15:00 <hagb4rd> (wouldn't know where to paste it else either :/ )
06:15:17 * oerjan swats hagb4rd -----###
06:15:26 <pikhq> Clearly, in order to obtain 1 oleg of Haskell XP, you must hit all the rationals between that and 0 oleg first.
06:15:51 <oerjan> no, that's 1 zeno, i think
06:16:55 <pikhq> Anyways, point is, are there any mortals who have achieved a tenth of Oleghood?
06:17:47 <elliott> i need to do decimal conversion :(
06:19:01 <oerjan> um it's not like you're going to achieve correct output format anyhow...
06:19:58 <elliott> i'll construct a list of (peano) bytes at the type level
06:20:02 <elliott> just like the C++ deadfish
06:20:17 <elliott> im in this for the long haul oerjan
06:23:02 <elliott> ps oerjan i want you to know that you have a guaranteed ticket to the martian colony
06:27:02 <elliott> and then oerjan went on with his life without even asking what he meant
06:28:25 <elliott> Is there a really easy way to do Peano division :P
06:28:53 <oerjan> easier than using subtraction? not that i know of.
06:29:09 <elliott> i'm not sure what you mean
06:30:09 <oerjan> it should be pretty similar to that Divs
06:30:17 <elliott> mm mm oerjan can ih ave some bread
06:37:00 * oerjan throws hardtack at elliott
06:38:18 <elliott> no no wait i thought of the best thing to do with bread
06:45:28 <monqy> someone on #haskell found fizzbuzz
06:48:02 <elliott> i just put it up there so i could see it better :D
06:48:06 <elliott> it was too big for my emacs window
06:48:36 -!- elliott has quit (Quit: Leaving).
06:49:05 <zzo38> You mentioned the cheat in the anagol Deadfish and I figured out how to do that cheat in JavaScript code (I put (cheat) after my name). Maybe there is other cheats? I didn't find any.
06:49:54 <oerjan> i don't know any other big cheats
06:50:39 <oerjan> oh i recall those interpreters i saw didn't bother to handle h, just erroring out on it
06:51:12 <oerjan> which might help a bit
06:51:27 <zzo38> OK. Not bothering to handle h, I don't consider that cheat, since all valid inputs only contain i,d,s,o,h and h is only at the end.
06:51:39 <oerjan> > unwords . catMaybes . map (flip lookup . zip [1,3,5,15] . (id:) . map (show.) ["Fizz","Buzz","FizzBuzz"]) [1..]
06:51:41 <zzo38> So, I have already dealt with that in my submissions.
06:51:49 <oerjan> > unwords . catMaybes $ map (flip lookup . zip [1,3,5,15] . (id:) . map (show.) ["Fizz","Buzz","FizzBuzz"]) [1..]
06:51:49 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe
06:52:08 <lambdabot> forall a b. (Eq a) => a -> [(a, b)] -> Maybe b
06:52:42 <zzo38> (Also, immediately after "h" will always be end of file in all valid inputs. It is not considered cheating, in my opinion, if your program fails to work properly with invalid inputs; it doesn't matter what happen in that case.)
06:52:54 <oerjan> > unwords . catMaybes $ map (flip lookup . zip [1,3,5,15] . (id:) . map (const.show) ["Fizz","Buzz","FizzBuzz"]) [1..]
06:52:55 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe
06:53:23 <oerjan> > unwords . catMaybes $ map (flip lookup . zip [1,3,5,15] . (show:) . map const ["Fizz","Buzz","FizzBuzz"]) [1..]
06:53:24 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe
06:55:07 <oerjan> > unwords . catMaybes $ map (join $ flip lookup . zip [1,3,5,15] . (show:) . map const ["Fizz","Buzz","FizzBuzz"]) [1..]
06:55:07 <lambdabot> Couldn't match expected type `a -> [a1 -> GHC.Base.String]'
06:55:16 <oerjan> this is not going very well...
06:55:25 <zzo38> My Javascript code exits on "h" due to error, my C code treats "h" the same as "d" and exits at EOF (which is OK since that won't affect output if the input is valid), and my AWK code just ignores "h" (and exits at EOF).
06:56:36 <oerjan> > unwords $ map (join $ fromJust . flip lookup . zip [1,3,5,15] . (show:) . map const ["Fizz","Buzz","FizzBuzz"]) [1..]
06:56:37 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe (a1 -> m a)'
06:56:41 <zzo38> So, it doesn't matter what your program does with "h" as long as not causing extra output, due to range of valid input (I think the rules of Perl golf specify a rule similar to this one).
06:59:12 <oerjan> > unwords $ map (join $ fromJust . flip lookup zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"]) [1..]
06:59:13 <lambdabot> Couldn't match expected type `a1 -> Data.Maybe.Maybe a'
06:59:45 <zzo38> I wonder if the C codes (there are four shorter than mine) use the cheat checking 256 or any other cheats? I suppose, I can learn that in 16 hours.
06:59:57 <oerjan> > unwords $ map (join $ fromJust . flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"]) [1..]
06:59:58 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe (a1 -> a)'
07:00:45 <zzo38> My AWK code for Deadfish uses exponentiation, but not ^2 did you know that?!
07:03:09 <oerjan> > unwords $ map (fromJust . join $ flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"]) [1..]
07:03:09 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe
07:04:04 <oerjan> > unwords $ map (fromJust . join . (flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"])) [1..]
07:04:05 <lambdabot> Couldn't match expected type `Data.Maybe.Maybe GHC.Base.String'
07:05:35 <oerjan> > unwords $ map (join $ fromJust . (flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"])) [1..]
07:05:43 -!- pikhq has quit (Ping timeout: 260 seconds).
07:05:44 -!- pikhq_ has joined.
07:06:14 <zzo38> I wrote a 147 bytes TeX program that typesets the FizzBuzz output
07:06:23 -!- hagb4rd has changed nick to h[a]gbard.
07:06:29 <oerjan> > unwords $ map (join $ fromJust . (flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"])) [1..]
07:06:31 <lambdabot> "1 *Exception: Maybe.fromJust: Nothing
07:07:13 <zzo38> (Using the Plain TeX format)
07:07:57 <oerjan> > unwords $ map (join $ fromJust . (flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"]) . gcd 15) [1..]
07:07:58 <lambdabot> "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Bu...
07:08:35 <zzo38> It looks like you make it work now
07:08:54 <zzo38> But do you know how to make it work shorter?
07:09:19 <oerjan> > unwords . (`map`[1..]) . join $ fromJust . (flip lookup . zip [1,3,5,15] . (show:) $ map const ["Fizz","Buzz","FizzBuzz"]) . gcd 15
07:09:20 <lambdabot> "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Bu...
07:11:18 <zzo38> I think that isn't shorter (but it still seems to works)
07:11:55 <zzo38> This is program in TeX: \let~\advance\time0\day0\loop~\time1~\day1~\mit\ifnum\time=3\time0Fizz\fi\ifnum\fam=5Buzz\rm\fi\ifvmode\the\day\fi\endgraf\ifnum\day<100\repeat\bye
07:12:30 <zzo38> Can you understand this?
07:12:49 <zzo38> Have you ever used TeX?
07:13:22 <zzo38> Try to do it in LaTeX code golf then, see if you can do it.
07:14:02 -!- cheater__ has quit (Ping timeout: 255 seconds).
07:14:08 <oerjan> i've not used LaTeX as a programming language, only markup
07:14:19 <oerjan> and trivial definitions
07:14:43 <zzo38> Note, it is possible to make my code shorter if it is OK to have error messages. What I have is the shortest one I know of, that does not result in error messages,
07:16:26 <zzo38> What kind of stuff have you made with it?
07:20:40 <zzo38> I have made all sorts of stuff with TeX including business cards for FreeGeek. Although I do use it for typesetting mathematics as well, but I have not written many mathematical reports (although TeXnicard includes a few math formulas in the document part of the program).
07:20:59 <Sgeo_> This is scary. I'm having fun with a crappy fandom IRC client
07:21:03 <zzo38> I managed to get nine business cards on a page
07:21:48 <zzo38> And it required me to write a AWK program to convert the logo from SVG to METAFONT.
07:22:07 <zzo38> Sgeo_: What IRC client is that and what is it scary?
07:22:28 <Sgeo_> Pesterchum, and because it's a weird niche thing
07:22:36 <Sgeo_> That I'm having fun with
07:23:09 <zzo38> What kind of features does it have that you are using?
07:24:33 <Sgeo_> Just discovered a "feature" that lets me force people to see images that come with the client
07:24:43 <Sgeo_> People are playing around with it, the developer is leaving it in
07:25:13 <zzo38> Sgeo_: Like, how does it work?
07:25:34 <Sgeo_> Some HTML-like thing internally
07:25:40 <Sgeo_> Not full HTML though
07:26:44 -!- h[a]gbard has quit (Quit: h[a]gbard).
07:27:05 -!- cheater__ has joined.
07:27:23 <zzo38> I have once, using the IRC client I am currently using, made so other people on Microsoft Comic Chat saw my picture each one to match their own, and when they changed it I changed it too but nobody else could notice that was happening, they thought it was matching their own instead!!
07:36:39 -!- lament has changed nick to lameNOT.
07:53:07 <zzo38> Someone sent a game (the same game in each case) to two game companies. One rejected because they work only with abstract games. The other rejected because they do not work with abstract games.
08:08:33 -!- zzo38 has quit (Remote host closed the connection).
08:38:00 -!- augur has quit (Remote host closed the connection).
08:40:22 -!- augur has joined.
08:56:10 -!- oerjan has quit (Quit: leaving).
08:58:09 -!- FireFly has joined.
08:58:12 -!- augur has quit (Remote host closed the connection).
09:22:20 -!- augur has joined.
09:39:01 -!- Phantom_Hoover has joined.
09:42:29 -!- Vorpal has joined.
09:43:31 <Vorpal> hm the last xkcd is actually slightly funny. Not much, but slightly.
09:45:12 <Phantom_Hoover> Vorpal, have you actually been following Homestuck lately?
09:45:51 <Vorpal> Phantom_Hoover, nope. I didn't have time. Plus I have the bookmark of where I left off on the computer where the PSU broke.
09:46:28 <Vorpal> Phantom_Hoover, have you read Problem Sleuth yet?
09:46:39 <Vorpal> Phantom_Hoover, liked it?
09:49:26 <Phantom_Hoover> Vorpal, did you leave off around http://www.mspaintadventures.com/?s=6&p=005643?
09:49:39 <Vorpal> Phantom_Hoover, you should try to calibrate the allegiance mesh of this channel. Maybe you could turn me and elliott into friends!
09:50:24 <Vorpal> Phantom_Hoover, hm, maybe. There is no Next on that one??
09:50:28 -!- monqy has quit (Quit: hello).
09:50:52 <Vorpal> I don't have flash on this computer. Oh well
09:51:05 <Vorpal> Phantom_Hoover, pressing go back I think I left on on the previous one
10:25:38 <cheater__> in an ext3 fs, a single inode will always be made out of neighbouring blocks, right? or can an inode contain e.g. blocks 1001, 5164, 600067 ?
10:25:53 -!- elliott has joined.
10:32:43 <Sgeo_> Why doesn't apng work in Chrome? :(
10:33:55 <elliott> the most practical complaint EVAR
10:36:07 -!- BeholdMyGlory has joined.
10:37:42 <Vorpal> elliott, presumably it stands for "another portable network graphics"?
10:38:32 <Vorpal> (I have to say that the expansion of PNG is slightly silly. PNG can after all be used over other things than networks)
10:40:42 <Vorpal> why did lenovo place the headphone connector at the front of the laptop... It is quite annoying when the connector is large. This one for example is about 4 cm including the strain relief.
10:41:01 <Vorpal> (2 cm without strain relief)
10:41:26 <Vorpal> and that is how much it sticks out in front of the palmrest, so not including the actual plug bit
10:41:48 <Vorpal> elliott, any good idea why they would put the headphone connector in such a stupid place?
10:42:11 <Vorpal> elliott, not sorcerers?
10:52:06 -!- azaq23 has joined.
11:06:41 -!- Patashu has joined.
11:18:33 <Sgeo_> Vorpal, animated png
11:19:55 <Sgeo_> elliott, I'm actually liking Pesterchum
11:22:54 <Phantom_Hoover> I'm pretty sure I've viewed animated PNGs before in Chrome
11:29:51 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
11:32:54 -!- Phantom_Hoover has joined.
11:45:17 -!- ais523 has joined.
11:46:10 <ais523> hmm, my client actually detected that as a nickping
11:46:18 <ais523> I think because I have a stalkword on ais523 as well as current nick
11:46:19 <elliott> wait that wasn't the fun pun i intended it as
11:50:53 <Vorpal> <Sgeo_> Vorpal, animated png <--- hm? is that different from .mng?
11:51:35 <Sgeo_> APNG is more popular, and APNGs are valid PNGs, with the first frame of the APNG being what's shown when rendered as a regular PNG
11:51:35 <ais523> APNG and MNG are competing formats that do much the same thing
11:51:57 <ais523> APNG is supported only by Firefox, with the other major browsers mostly doing MNG, but APNG is winning anyway; draw what conclusions you like about that
11:52:10 <elliott> can either really be said to be winning
11:52:12 <Vorpal> ais523, interesting. Does firefox handle mng?
11:52:16 <elliott> i don't get the impression anyone uses either :)
11:52:28 <Vorpal> elliott, I seen mng... once I think
11:52:35 <Sgeo_> Wait, there are browserss that support mng?
11:52:48 <ais523> Vorpal: not any more, it used to but they disabled the code, for fear of security holes or whatever
11:52:54 <ais523> Sgeo_: I think Chrome does, and possibly Opera too
11:53:11 <ais523> and also quite possibly the WebKit-based ones
11:53:16 <ais523> the other WebKit-based ones, I mean
11:54:25 <fizzie> No support in Chrome/WebKit for MNG, says 'pedia.
11:55:26 -!- Lymia has joined.
11:55:34 <fizzie> No native browser support at all, actually, according to their handy table.
11:56:32 <Patashu> Why are browsers so reluctant to implement apng/mng again
11:56:50 <Patashu> I would have thought they'd jump on the opportunity to wean the internet off ultra large animated gifs
11:56:56 <Sgeo_> Apparently Chrome wants to keep relying on OS libraries, from what I've read
11:57:08 <Patashu> Well really there needs to be an image format optimized for animations, like a webm type thing
11:57:20 <elliott> except not shit like webm is presumabl
11:57:38 <elliott> really though, all animations are are small videos
11:57:44 <fizzie> Lack of use was the cited reason for dropping the native MNG support; and I guess lack of browser support is one of the main reasons dor the lack of usage.
11:57:46 <Patashu> But animated gifs are highly uncompressed
11:57:49 <elliott> all you need is a lossless video format
11:57:52 <Patashu> No prediction encoding or anything
11:58:31 <cheater__> apng: the best thing since gif porn?
11:59:22 <fizzie> MNG at least doesn't get any advantage of the cross-frame correlation, the frames are all individually encoded PNG or JNG images.
11:59:40 <Vorpal> <Sgeo_> Apparently Chrome wants to keep relying on OS libraries, from what I've read <-- so what do they use for png?
12:00:30 <Vorpal> elliott, I doubt that is an OS library on windows?
12:00:32 <cheater__> seriously though: i find it distracting that there are no uncompressed movie formats floating around
12:00:42 <cheater__> you'd think movie freaks would appreciate crisp realism
12:00:42 <fizzie> Or maybe it does that thing where the successive animation frames can be deltas, I don't know.
12:00:42 <Sgeo_> Vorpal, elliott's right I think, so I'm wrong
12:00:58 * cheater__ furiously browses his flac directory
12:01:23 <elliott> there are plenty such formats.
12:01:24 <ais523> cheater__: I've seen zipped-directory-of-pngs as a lossless movie format
12:01:26 <elliott> for instance, h.twosixfour.
12:01:35 <elliott> with xtwosixfour you just set quantisation to 0
12:01:45 <ais523> elliott: technically, you also need to scale up the image by a factor of 2
12:01:49 <cheater__> ais523, but i mean "real movies", as in hollywood movies
12:02:02 <elliott> ais523: with xtwosixfour, as in, this is how you do it with this encoder
12:02:11 <lifthrasiir> Patashu, afaik MNG does some kind of prediction between frames.
12:02:11 <cheater__> things you'd actually be likely to watch casually.
12:02:13 <ais523> as h.264 always averages color across 2x2 blocks
12:02:15 <elliott> cheater__: films are not even edited losslessly.
12:02:24 <ais523> so you need to set quantisation to 0, /and/ upscale by a factor of 2
12:02:25 <Vorpal> <ais523> cheater__: I've seen zipped-directory-of-pngs as a lossless movie format <-- uh... that gains you nothing
12:02:32 <fizzie> As far as I can tell APNG also just includes the frame data chunks as-is.
12:02:32 <cheater__> elliott, i think they're not even recorded losslessly
12:02:36 <elliott> (the format used for film editing is a /near/-lossless one.)
12:02:42 <ais523> Vorpal: it gains quite a bit if two of the frames happen to be identical
12:02:55 <elliott> Vorpal: it gets you inter-frame compression
12:03:01 <elliott> although i suppose png's compression might mess with it
12:03:04 <cheater__> i believe they're edited in compressed form because of throughput problems
12:03:39 <Vorpal> elliott, afaik png's compression is basically the same as zip's compression, Plus some delta encodings like "compared to same pixel, previous scanline" (and a few more modes)
12:03:49 <elliott> anyway if all you want to watch is Sita Sings the Blues and the Blender films, you can have perfectly lossless copies.
12:04:01 <elliott> Vorpal: yes but the png is per-file
12:04:08 <elliott> zip compresses between files
12:04:16 <cheater__> i can store a 10 minute song on my iOmega Zip drive, though.
12:04:18 <elliott> I dunno whether it is .tar.gz or .gz.tar
12:04:21 <Vorpal> elliott, yeees. That is about the only movie of any length where loseless is actually possible :P
12:04:26 <cheater__> so i don't think they're so big anymore.
12:04:34 <elliott> Vorpal: there are MULTIPLE blender films ;/
12:04:35 <lifthrasiir> elliott, well, can we just calculate the difference between two frames and save it as a PNG file?
12:04:46 <Vorpal> elliott, oh true. They are quite short iirc
12:04:48 <fizzie> The movie-theatre "digital distribution" standard format -- or at least one of them -- is to include each frame as an individual high-quality (but still lossy) JPEG2000 image.
12:04:52 <elliott> the sita example is kind of cheap though -- it's Flash, so by all rights you should be able to watch a completely vector version
12:04:54 <cheater__> i think the movie format situation is similar to the mp3 proliferation back in the day.
12:05:27 <Vorpal> elliott, for blender you could get the original blender source maybe?
12:05:39 <elliott> Vorpal: they distribute the lossless files and also that, yes.
12:05:39 <Patashu> woah, JPEG2000 is an industry format?
12:05:42 <lifthrasiir> of course not a big win, but it is good enough for most purposes
12:06:24 <lifthrasiir> as one that wants a loseless movie format will don't care about the small (compared to the delta-encoding...) changes in file size
12:06:31 <Vorpal> elliott, I think that zip has two modes, solid and non-solid. IIRC solid is like tar.gz and non-solid like .gz.tar
12:06:33 <cheater__> it would make sense that something bearing its name would be an industry standard :p
12:06:46 <Vorpal> I'm not completely sure of this however
12:07:17 <cheater__> is .gz.tar just a lot of separate gz files tarred up?
12:07:23 <Vorpal> elliott, better than .zip.gz.tar.gz (Xilinx again, who else?)
12:07:41 <Vorpal> or wait, was it .zip.bz2.tar.gz?
12:07:44 <lifthrasiir> cheater__, well, if you think a working group in ISO/IEC JTC 1 is capable for defining an effective industry standard, yes that's an industry standard.
12:07:46 <Vorpal> well, something like that
12:07:49 -!- TeruFSX has joined.
12:08:11 <lifthrasiir> of course some of them makes things too complex, hence "the language designed by committee."
12:10:15 <cheater__> in an ext3 journal, if a single block gets overwritten several times, it can have multiple transactions for it sitting on the disk, right? does that ever get flattened (to e.g. preserve space)?
12:11:45 <fizzie> Oh yes: MNG does support a form of motion compensation (assuming your encoder does, anyway); it's possible to have sprite-like things that appear in different locations in separate frames without including the image data for that multiple times; as well as the thing where you compose next frame as a delta of previous, like I think animated gif also does (just by having transparent frames that are overlaid over previous state); and a specific "delta-png" format. B
12:12:32 <fizzie> But they've defined MNG-LC and MNG-VLC ("low complexity" and "very low complexity") variants which don't support any of that.
12:13:03 <fizzie> As for APNG, from what I can tell it simply is a collection of IDAT chunks from separate frames. Not sure if new frames are composited on top of old ones; if not, then it doesn't get any advantage from similar frames.
12:13:21 <lifthrasiir> yes, i think MNG is going too far in that direction. should really have been some kind of markup language with images embedded (not a binary format).
12:15:11 <ais523> it does raster too, despite the name
12:15:58 <lifthrasiir> i don't know much about SVG animations, but if it works then it'd be a lot better than MNG
12:23:25 <ais523> SVG is really complex, it has a comparable featureset to the non-video-decoding parts of Flash
12:36:28 -!- elliott has quit (Remote host closed the connection).
12:36:52 -!- elliott has joined.
12:40:54 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
12:42:19 <elliott> http://esolangs.org/w/index.php?title=Migol&curid=2729&diff=23119&oldid=21576
12:42:24 <elliott> these should really have separate pages
12:51:07 -!- Phantom_Hoover has joined.
13:23:33 * ais523 is busy reading a 44-page document by the US patent office (a proposed rejection of a patent upon reexamination), which summarises as "there's an existing patent on doing exactly what you do, with a local server rather than a set of external servers, or with a TV screen rather than a computer monitor; and those changes are really obvious"
13:24:06 <coppro> the USPTO doesn't reject patents
13:24:10 <ais523> coppro: it's a reexamination
13:24:14 <ais523> the patent was accepted the first time
13:24:34 <coppro> also why do you care about this patent?
13:26:14 <ais523> oh, I'm generally interested in this sort of thing
13:26:36 <ais523> but my attention was attracted because it was recently used to sue something like 12 major website companies
13:26:47 <ais523> or, well, companies which are particularly known for having websites
13:26:55 <ais523> together with a few that aren't
13:27:09 <ais523> (I just counted, it was actually only 11)
13:27:48 <coppro> I like the bit aobout the distinction between a TV and a monitor
13:28:26 <Phantom_Hoover> http://www.sciencemag.org/content/332/6033/1046/F2.large.jpg
13:28:46 <Phantom_Hoover> (Hits on the Periodic Table of Videos' video for each element.)
13:29:16 <Phantom_Hoover> I like the way all the alkali metals have high views, presumably because the one thing everyone knows about them is that they explode in water.
13:29:23 <elliott> ais523: I was hoping for a summary but okay :P
13:29:26 <ais523> it's basically about showing information from remote servers on screensavers
13:29:31 <elliott> Disseminating to a participant an indication that an item accessible by the participant via a network is of current interest is disclosed. An indication that the item is of current interest is received in real time. The indication is processed. The participant is informed that the item is of current interest.
13:30:38 <Patashu> Why do -any- of the Uu_ elements have hits at all
13:30:40 <Patashu> Are they really that interesting
13:30:42 <ais523> the people who own it are trying to use the vague summary to make it cover all non-locally-generated notifications whatsoever
13:31:29 <Phantom_Hoover> Patashu, presumably because of people like me who binged the videos.
13:31:31 <Patashu> seriously, fuck patenting really simple IT concepts
13:31:46 <Patashu> and whatever else apple/windows/etc get into patent wars over
13:31:46 <ais523> my guess is that even if the patent were valid, it wouldn't apply to Google's website, whichever one it is of those they're suing over (they haven't said yet)
13:32:33 * Phantom_Hoover considers that the oxygen's videos oddly high number of hits may be because that was the video that they poured liquid oxygen on everything in.
13:32:39 <Patashu> me irl right now http://wupcenter.mtu.edu/education/Ecology_of_the_Great_Lakes_03/13lamprey_hickey.jpg
13:33:17 <Patashu> yes. I have a lamprey on my head as I type this
13:33:27 <elliott> Patashu: have you ever seen a ghost
13:33:50 <elliott> <Patashu> Why do -any- of the Uu_ elements have hits at all
13:33:54 <elliott> people looking for the weirdest video :D
13:34:09 <elliott> Patashu: how do you know when to stop wiping
13:34:14 <elliott> ok thats all the iama memes i remember
13:34:19 <elliott> ill dip out of this qa session
13:35:05 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:36:05 <Phantom_Hoover> Patashu, so you do not in fact have the moustache of a demigod?
13:37:22 <Patashu> I am the lamprey not the dude
13:37:26 <Patashu> ask me about being a lamprey
13:37:47 <elliott> Patashu: how do you know when to stop wiping
13:38:01 <Patashu> THE WIPING DON'T STOP TILL I WALK IN
13:38:46 <elliott> and at that moment the channel reached its all-time intellectual peak
13:40:40 -!- MigoMipo has joined.
13:41:44 <Phantom_Hoover> elliott, no wait I shall pull the channel even higher.
13:55:49 -!- Guest17101 has joined.
13:57:19 -!- ralc has joined.
14:02:23 -!- ZOMGMODULES has joined.
14:02:31 <ZOMGMODULES> http://answers.yahoo.com/question/index?qid=20080726123234AALUVFA
14:03:42 <ZOMGMODULES> as opposed to the language which is *most* commonly found at the bottom of a bucket, which is...?
14:04:14 <Patashu> oh oh! is it visual basic?
14:04:30 <ZOMGMODULES> i don't know. it occurs to me how rarely i look inside buckets.
14:04:44 <Patashu> It's a metaphorical bucket?
14:09:13 -!- copumpkin has joined.
14:09:15 -!- copumpkin has quit (Changing host).
14:09:16 -!- copumpkin has joined.
14:09:29 -!- Guest17101 has left ("Leaving").
14:09:33 -!- Guest17101 has joined.
14:13:08 <elliott> Guest17101: are you actually running your irc client as root
14:16:25 -!- variable has joined.
14:17:03 -!- Guest17101 has quit (Quit: Leaving).
14:17:47 <ais523> elliott: at least one person I know uses root as their IRC username to scare people
14:17:51 <ais523> unfortunately, I've forgotten who it is
14:19:48 <ZOMGMODULES> if i wanted to scare people, i would do that. i would also pick a nick like "Guest17101"
14:34:37 <ais523> my name is only scary because of its reputation
14:34:53 <elliott> And its associated humbleness obvs
15:01:30 <ZOMGMODULES> at any rate, I see cpressey finally got around to publishing Pail: http://catseye.tc/news.html#Pail_is_an_acceptable_Bizaaro[sic]-Pixley
15:03:24 <ZOMGMODULES> i would go so far to call it reprehensible
15:03:41 <Phantom_Hoover> Oh, also, I am now reeling at a discovery that has rocked my perception of the world.
15:04:08 <elliott> ZOMGMODULES: so is pail the greatest language ever
15:04:14 <Phantom_Hoover> http://en.wikipedia.org/wiki/Magic_Roundabout_(Swindon)
15:04:32 <Phantom_Hoover> My conclusion: I must make a language based on roundabouts.
15:05:45 <elliott> ZOMGMODULES: do i get a prize if i construct a racist caret w recursive function in pail
15:06:24 <Phantom_Hoover> ...dammit, I'm seeing the background of catseye as a spacetime structure
15:08:48 <Phantom_Hoover> ZOMGMODULES, please attend to this matter before I go insane.
15:14:33 <ZOMGMODULES> elliott: i think such a feat deserves a prize of some sort
15:14:52 <elliott> ZOMGMODULES: will it be free (ad-free) webspace like the creator of NETFUCK is offering
15:15:00 <elliott> i cant settle for anything less in value than that
15:15:05 <Phantom_Hoover> I choose to interpret this as the metals becoming sentient and attempting to overthrow their human masters.
15:15:07 <elliott> so basically, bids must be plastic turd or higher
15:16:44 <ZOMGMODULES> Phantom_Hoover: please stop sharing links that contain characters like ( that my terminal emulator doesn't understand are part of the URL to it takes me to wikipedia articles that don't exist then i am tempted to create them
15:18:21 <ZOMGMODULES> also: even I knew about that magic roundabout, but it was via looking up the children's show
15:18:50 <elliott> roundabouts could make a nice language
15:20:27 <ais523> hmm, perhaps Rubicon should be retroactively converted back into an esolang
15:20:27 <ZOMGMODULES> i have no recollection how i became aware of the children's show
15:20:32 <ais523> as it seems to have deviated somewhat from vanilla RUBE
15:20:41 * ais523 goes to see if it's working again yet
15:21:08 <ais523> nope, I still just get a blank screen
15:21:20 <ais523> must be some bad interaction with this computer's version of Java
15:23:29 <elliott> ais523: you may have openjdk jvm but no java plugin
15:23:36 <elliott> try installing the icedtea plugin package
15:23:47 <ais523> Patashu: RUBE is the bully CA, Rubicon is a computer game based on it
15:23:57 <ais523> based more loosely than I thought, actually, especially in the handling of dozers
15:24:31 <ais523> elliott: it's apparently already installed
15:24:34 <ais523> and I do get messages saying it's loading
15:24:37 <ais523> it just never actually loads
15:25:21 <ais523> it also doesn't work if I try a different browser
15:27:13 <Patashu> chrome, windows XP, latest version of java and JDK
15:44:52 -!- zzo38 has joined.
15:47:06 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
15:58:18 -!- Patashu has quit (Ping timeout: 246 seconds).
16:02:34 -!- lameNOT has quit (Ping timeout: 248 seconds).
16:05:20 -!- augur has quit (Remote host closed the connection).
16:15:04 -!- pikhq_ has quit (Ping timeout: 240 seconds).
16:15:07 -!- pikhq has joined.
16:21:48 -!- Phantom_Hoover has joined.
16:27:51 <zzo38> ais523: Are you good at Perl?
16:28:16 <ais523> zzo38: not amazingly, but it's a language I've used quite a bit
16:29:37 <zzo38> Well, I haven't use it much, yet I still beat you at the Deadfish anagol challenge (without using cheats). Try harder.
16:29:58 <elliott> do better or you're worthless
16:30:09 <ais523> zzo38: I'm not very good at golfing
16:30:28 <ais523> I mostly use anarchy golf as programming practice, rather than in a serious attempt to win
16:31:55 <zzo38> O, I didn't know that.
16:33:48 <zzo38> However, if you *did* use cheats, post a non-cheating submission with (genuine) after your name.
16:35:43 <zzo38> I failed at Perl, C, and JavaScript, but beat everyone at AWK and Bash. Do you know any things about AWK?
16:38:22 -!- augur has joined.
16:38:27 <zzo38> I only found one cheat and it only helped me at JavaScript (I marked with (cheat)) which I still lost at.
16:39:42 <zzo38> And if dc didn't have the bug in it, I would have won at dc as well, but there is a bug in dc which prevents my program from working.
16:40:56 <zzo38> In case of a unknown command, the error message (except for the "dc: " prefix) is sent to stdout instead of stderr.
16:42:02 <zzo38> The program I have results in a lot of other error messages too but they all send to stderr (which is proper) so it does not cause the problem.
16:42:12 <zzo38> I will show you the code: [0sac]dsOx[p]3:;[1+]1:;[dd/-]2:;[d*]0:;[3O2?O+%I~;;Adiolarxd256=Osalox]dsox
16:43:59 <Deewiant> solaris dc appears to send all errors to stdout
16:44:56 <zzo38> This is GNU dc, however. GNU dc sends all errors to stderr except for that one error, which I am sure is a bug.
16:45:33 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
16:46:18 <zzo38> It is probably not too difficult to fix, however.
16:46:45 <Deewiant> The dc manual appears to have a "reporting bugs" section: http://www.gnu.org/software/bc/manual/dc-1.05/html_mono/dc.html#SEC11
16:46:49 <fizzie> You make a fist, shake it at the sky, and shout "why, GNU, why?!" -- that is the standard reportig practice.
16:47:02 <ais523> zzo38: "man dc" says "Email bug reports to bug-dc@gnu.org."
16:47:59 -!- ais523 has quit (Remote host closed the connection).
16:48:13 <zzo38> ZOMGMODULES: There is one.
16:49:39 <elliott> ais-logreading: zzo refuses to use email
16:51:02 -!- augur has quit (Remote host closed the connection).
16:52:23 -!- ZOMGMODULES has changed nick to Adiolarxd256.
16:53:01 -!- augur has joined.
16:53:14 -!- Vorpal has quit (Ping timeout: 248 seconds).
16:53:31 -!- Vorpal has joined.
16:55:36 -!- Phantom_Hoover has joined.
16:56:32 <zzo38> I found the mistake. It is on line 519 of dc/eval.c should be change from dc_show_id(stdout, to dc_show_id(stderr, and then hopefully it can work OK.
17:02:45 -!- Adiolarxd256 has quit (Quit: BARK BARK BARK BARK BARK bark BARK BARK bark BARK BARK BARK BARK MOOOOOO BARK.).
17:07:19 <elliott> hmm i was just about to ask a pail question too
17:15:20 -!- azaq23 has quit (Quit: Leaving.).
17:28:31 -!- TOGoS has joined.
17:30:50 -!- augur has quit (Remote host closed the connection).
17:42:35 -!- SimonRC has quit (Ping timeout: 260 seconds).
17:44:10 -!- SimonRC has joined.
17:48:43 <pikhq> Autotup: on a scale of 1 to "Fuck you", how bad of an idea is it?
18:19:05 <pikhq> So, I finally ended up installing Firefox 4.0...
18:19:17 <pikhq> YOU MADE CHROMIUM LOOK MORE NATIVE YOU ASSHOLES
18:20:03 <elliott> Firefox four's menu button is ... interesting.
18:20:13 <TOGoS> CHROMIUM LOOKS LIKE NATIVE ASSHOLES GARRRR!!!!
18:20:41 <pikhq> STOP WITH THE CUSTOM WIDGETS PEOPLE
18:21:02 <TOGoS> I always forget about it and then can't find the menu :(
18:21:10 <pikhq> Why must it be so damned hard to just get a decent web browser that *fits into the damned UI*?
18:21:29 -!- Herobrine has joined.
18:21:46 -!- monqy has joined.
18:22:33 <TOGoS> I think it's a cycle in UI design
18:23:00 <TOGoS> Make everything custom (Winamp), then eventually the WM's widgets catch up a bit and then things look more native for a while (OS X stuff)
18:23:13 <zzo38> I think it is because there isn't decent web browser
18:24:00 <zzo38> If the program is designed for specific operating system, you should use native widgets, otherwise just use the program you make so that it can work on cross-platform.
18:25:05 <pikhq> You should always strive to make it appear native.
18:25:39 <pikhq> To do otherwise is to just arrogant.
18:25:57 <pikhq> "Yeah, I know, it looks like nothing else here, BUT MY PROGRAM IS MORE IMPORTANT THAN THEIRS!"
18:26:09 <TOGoS> I do kind of like the tabs up in the title bar...
18:27:11 <elliott> Tabs in the title bar are nice but it should be the WM's job.
18:27:58 -!- pikhq_ has joined.
18:28:12 <TOGoS> maybe next round of WM's will have that feature
18:28:15 <TOGoS> hence the cycle ;)
18:28:31 <pikhq_> AND LET ME SCROLL WHEEL TO CHANGE TABS DAMMIT
18:28:55 <zzo38> I think you should make it *be* native (just looking native is not sufficient) if you are writing the program for the specific OS or windowing system or whatever, but otherwise just do whatever works for the program you are writing if it needs cross-platform, if it would result in difficulties by trying to port to different systems each native one being different enoughto require many things changed too much.
18:29:04 <pikhq_> YOU ARE NOT FUCKING CLEVER FOR HAVING YOUR PROGRAM HAVE DIFFERENT BEHAVIOR.
18:29:09 <pikhq_> YOU ARE JUST A FUCKING ASS.
18:29:35 <TOGoS> I agree with you 95% of the time, pikhq_
18:29:56 <TOGoS> unfortunately everyone thinks they're the other 5%
18:30:03 <pikhq_> I have a few *simple* expectations in my program. First, it looks like it belongs with the rest of the programs. Second, it *acts like it*.
18:30:28 <pikhq_> It really should *not* be too much to ask for the widgets in this program to interact with the user in the same manner that *every other widget* does.
18:31:00 -!- pikhq has quit (Ping timeout: 260 seconds).
18:38:07 <zzo38> pikhq_: I suppose that is reasonable. However what is the case if you cannot do that due to differences of systems that are too different and causes too much of mistakes? In case it is HTML then of course you can use "native" commands such as <input> and <button> and <h1> and so on, and if the program is GTK you can probably also make forms that are cross-platform.
18:38:49 <pikhq_> Well, then perhaps you should stop being too clever for your own good.
18:39:06 <zzo38> But for other things, you have to see if you want cross-platform or for a single system only or whatever, you can decide how to make.
18:39:23 <pikhq_> If you can't meet bare-minimum usability requirements, maybe you shouldn't make the program.
18:39:56 <zzo38> I avoid all of this problem by making command-line programs.
18:40:31 <pikhq_> Yeah, that actually does make portability simpler.
18:41:22 <zzo38> GUI can then be added on to it by someone else if you want to, and there might even be more than one such GUI program to choose from.
18:44:29 -!- Lymia has quit (Quit: 1... 2... 3... HUGS! :D).
18:44:46 -!- Lymia has joined.
18:44:46 -!- Lymia has quit (Changing host).
18:44:46 -!- Lymia has joined.
18:54:35 <cheater__> in an ext3 file system, i have an inode number, and i want to find out the fs block numbers that this inode occupies. how can i do that?
18:56:15 <fizzie> debugfs (in read-only mode it's vaguely safe even for mounted filesystems) can probably do it.
18:56:39 <fizzie> Most commands accept inode numbers with a syntax like <42>.
18:58:06 <fizzie> There's at least some "bmap" command for physical blocks.
18:59:37 <elliott> Hey what's the glut package in Debian called.
19:01:51 <fizzie> Freeglut's in freeglut3(-dev); it's mostly compatible and I think somewhat better.
19:02:54 <fizzie> Seems that is has replace the old GLUT packages anyway.
19:05:44 <elliott> fizzie: OK I have those but I still get
19:05:47 <elliott> /usr/local/lib/GLUT-2.1.2.1/ghc-7.0.3/libHSGLUT-2.1.2.1.a(HsGLUT.o): In function `hs_GLUT_getProcAddress':
19:05:53 <elliott> HsGLUT.c:(.text+0x41): undefined reference to `glutGetProcAddress'
19:05:53 <elliott> /usr/local/lib/GLUT-2.1.2.1/ghc-7.0.3/libHSGLUT-2.1.2.1.a(HsGLUT.o):(.rodata+0x0): undefined reference to `glutBitmap8By13'
19:05:53 <elliott> /usr/local/lib/GLUT-2.1.2.1/ghc-7.0.3/libHSGLUT-2.1.2.1.a(HsGLUT.o):(.rodata+0x8): undefined reference to `glutBitmap9By15'
19:05:53 <elliott> /usr/local/lib/GLUT-2.1.2.1/ghc-7.0.3/libHSGLUT-2.1.2.1.a(Window.o): In function `sbL1_info':
19:05:54 <elliott> (.text+0xba0): undefined reference to `glutGet'
19:05:55 <elliott> /usr/local/lib/GLUT-2.1.2.1/ghc-7.0.3/libHSGLUT-2.1.2.1.a(Window.o): In function `sbL1_info':
19:07:58 -!- elliott has quit (Remote host closed the connection).
19:08:25 -!- elliott has joined.
19:08:52 <fizzie> That is weird; at least freeglut's autogenerated API docs say it has a glutGetProcAddress, and that the "normal" GLUT does not include the function.
19:09:15 <elliott> It has thousands of those lines, so yeah.
19:11:39 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
19:15:18 -!- pikhq has joined.
19:15:51 <elliott> fizzie: This is really strange.
19:15:55 -!- pikhq_ has quit (Ping timeout: 260 seconds).
19:15:56 <elliott> It's like it isn't linking with glut at all.
19:16:23 <fizzie> Well, breaking is what build systems sort of "do".
19:28:55 * pikhq is trying to debug a space leak in this Brainfuck compiler from a while back...
19:30:23 -!- pouns_ has joined.
19:30:43 <pikhq> A single pass of the optimiser takes a good 100M of space.
19:30:59 -!- pouns_ has quit (Client Quit).
19:31:13 <Lymia> pikhq, is the resulting code faster?
19:31:36 <pikhq> It's just that the compiler itself has a space leak.
19:31:56 <pikhq> And it doesn't seem to be because of thunks...
19:32:13 <pikhq> The heap profile is showing a gigantic chunk of GHC primitive types.
19:33:32 <pikhq> Seriously, entirely consisting of GHC primitive types.
19:34:05 <pikhq> Perhaps it'd work better if I could somehow get this thing to be stream fused.
19:37:18 <pikhq> Sadly, probably not going to be too easy, seeing as I'd like to be able to look at at least 2 different values of the list at the same time. :/
19:46:53 <pikhq> If only I could get these as a freaking map.
19:48:16 -!- copumpkin has joined.
19:58:52 <elliott> worth trying with a macbook air? :P
19:59:04 <elliott> bleh i dunno how many of these drivers
19:59:37 <Phantom_Hoover> This remains the most unsettlingly funny tragedy to date.
20:02:51 <elliott> http://www.phpsadness.com/
20:02:53 <elliott> here is my equivalent list
20:03:09 <lifthrasiir> i guess you are processing the entire code as a whole
20:14:22 <Phantom_Hoover> I can only imagine what went through the minds of the Japanese onlookers when it sank.
20:17:16 <elliott> Phantom_Hoover: Are you reading some Cracked article "ten stupidest demises of things/people" or something.
20:17:34 <Phantom_Hoover> Nope, http://en.wikipedia.org/wiki/List_of_unusual_deaths
20:17:49 <elliott> 1926: Phillip McClean,16, from Queensland, Australia became the only person documented to have been killed by a cassowary. After encountering the bird on their family property, McClean and his brother decided to kill it with clubs. When McClean struck the bird it knocked him down, then kicked him in the neck, opening a 1.25 cm long cut in one of his main blood vessels. Though the boy managed to get back on his feet and run away, he collapsed a sh
20:17:50 <elliott> ort while later and died from the hemorrhage.[55]
20:19:53 <pikhq> lifthrasiir: Yeah, iterating over the entire list...
20:20:35 <Phantom_Hoover> "1974: Basil Brown, a 48-year-old health food advocate from Croydon, drank himself to death with carrot juice.[90][91]"
20:20:37 <pikhq> Hmm. I suppose if I were a bit more clever I could get this as a fold...
20:20:46 <pikhq> Rather than primitive recursion.
20:21:10 <lifthrasiir> pikhq: hmm, so what optimization are you applying?
20:22:04 -!- CakeProphet has quit (Read error: Connection reset by peer).
20:23:35 <pikhq> Just some basic RLE, identifying a few common setting idioms, and trying to combine pointer movements into the instructions...
20:24:14 -!- CakeProphet has joined.
20:24:16 -!- CakeProphet has quit (Changing host).
20:24:16 -!- CakeProphet has joined.
20:24:37 -!- Aune has joined.
20:25:17 -!- CakeProphet has changed nick to Kallisti.
20:25:22 <pikhq> With it doing a single pass over LostKng, it takes 3 seconds and takes something like 100M of space...
20:25:26 -!- Kallisti has changed nick to CakeProphet.
20:26:44 <pikhq> With it finding the fixed point of the optimisation, well...
20:27:17 <elliott> 1978: Georgi Markov, a Bulgarian dissident, was assassinated in London with a specially modified umbrella that fired a metal pellet with a small cavity full of ricin into his calf.[98]
20:27:49 <elliott> "1979: Robert Williams, a worker at a Ford Motor Co. plant, was the first known human to be killed by a robot" -- I feel the rest of the line is superfluous
20:28:17 <pikhq> Same amount of memory, takes 2 minutes 14 seconds.
20:28:55 <pikhq> Would you like me to pastebin?
20:30:07 <lifthrasiir> pikhq: is the original input a (bare) list of something?
20:30:35 <pikhq> lifthrasiir: The original input is the output of a Brainfuck parser.
20:32:01 <lifthrasiir> well, i meant that it uses just a plain list or some fancy data structure to store the commands
20:32:12 <pikhq> Just a plain list.
20:33:32 <lifthrasiir> looks like that the entire process is not tail-recursive?
20:33:57 <pikhq> Lemme just pastebin.
20:34:10 <pikhq> http://sprunge.us/KWTJ
20:34:21 <lifthrasiir> (i just didn't understand what to pastebin)
20:34:30 <Vorpal> <elliott> 1978: Georgi Markov, a Bulgarian dissident, was assassinated in London with a specially modified umbrella that fired a metal pellet with a small cavity full of ricin into his calf.[98] <-- which page is this from?
20:34:51 <elliott> Vorpal: http://en.wikipedia.org/wiki/List_of_unusual_deaths
20:35:05 <Vorpal> <pikhq> With it doing a single pass over LostKng, it takes 3 seconds and takes something like 100M of space... <-- what software?
20:35:24 <pikhq> Vorpal: Brainfuck compiler I wrote in Haskell a while back that I'm tinkering with now.
20:35:39 <Vorpal> pikhq, aiming to beat esotope-bfc?
20:35:50 <pikhq> Nah, not even close to doing that.
20:35:56 <lifthrasiir> (.data+0x354): undefined reference to `mtlzm1zi1zi0zi2_ControlziMonadziStateziLazzy_zdfMonadStatesState_closure'
20:36:13 <coppro> crud, I've accidentally been productive today
20:36:19 <lifthrasiir> ...is a deepseq package enough for building it?
20:36:28 <Vorpal> lifthrasiir, did you ever do that SSA thing in esotope-bfc that you talked about?
20:36:38 <pikhq> You also need mtl.
20:36:43 <Vorpal> lifthrasiir, plan on doing it at any point?
20:37:01 <zzo38> Could you have a ISO standard for Washizu Mahjong gloves?
20:37:34 <lifthrasiir> i'm good at planning and lazy at executing ;)
20:38:23 <pikhq> Or you could just have
20:38:24 <Vorpal> lifthrasiir, so you are not running a RTOS?
20:38:32 <pikhq> C-k and C-j should not be so close.
20:38:39 <lifthrasiir> one non-interesting bit: PyPy does not improve esotope-bfc significantly over CPython (55s vs 52.5s).
20:39:09 <lifthrasiir> Vorpal: well, the load average consistently hitting 10 or so.
20:39:13 <pikhq> I have a sneaking suspicion there's at least *some* issue in the codeGen function, though...
20:39:42 <Vorpal> lifthrasiir, what about cython?
20:39:44 <pikhq> Could probably make it use ST instead of State.
20:39:49 <Vorpal> lifthrasiir, of course that will require some changes
20:40:02 <pikhq> Dunno if that'd help, though. :/
20:40:28 <lifthrasiir> Vorpal: i doubt cython will improve the performance significantly.
20:40:58 <Vorpal> lifthrasiir, I found it much better than pypy if you spend some time at it
20:41:03 <lifthrasiir> as the current data structure is straightforward and not very tailored for performance
20:41:20 <Vorpal> lifthrasiir, just changing that to a cdefed structure will probably help a lot
20:41:32 <Vorpal> and adding types to arguments
20:42:33 <Vorpal> lifthrasiir, for computation bound stuff it can help a lot. I converted an Othello AI (using alpha-beta pruning) from python to cython. Was able to switch from 4 ply to 7 ply without it becomming excessively slow
20:43:22 <Vorpal> lifthrasiir, cython has a useful thing that generates a html file of the source indicating by colour for each line how many calls to python are required
20:43:29 <pikhq> Yeah, definitely something up with the codeGen function.
20:43:45 <lifthrasiir> Vorpal: right, cython should be good at it. the problem is that esotope-bfc quite depends on the built-in data structures of python, that is not one that can be optimized by cython
20:43:47 <Vorpal> lifthrasiir, found that useful. Was able to get it to generate quite passable C code with a little bit of effort
20:43:59 <Vorpal> lifthrasiir, which one?
20:44:24 <Vorpal> lifthrasiir, hm. I forgot if it can optimise those
20:44:29 <Vorpal> it can optimises lists certainly
20:44:44 <lifthrasiir> yes, lists and tuples are relatively easy to rewrite
20:44:52 <Vorpal> lifthrasiir, you can convert some structures to fixed length arrays
20:45:02 <Vorpal> that helped a LOT for the internal state of that thing I converted iirc
20:45:28 <Vorpal> I wrote that AI for an assignment at university, AI course.
20:45:37 -!- atrapado has joined.
20:46:05 <Vorpal> lifthrasiir, I handed in both the cython and python versions and then wrote a section pointing out the piss poor performance of python in the report iirc
20:46:18 <lifthrasiir> it might be useful to convert the Expr into cython, as it is quite computation-intensive compared to other parts of esotope-bfc
20:46:32 -!- myndzi has joined.
20:46:54 <elliott> did you try psyco? retro, i know, but
20:46:58 <Vorpal> lifthrasiir, have any experience with cython? I learned it quite well back then.
20:46:59 <elliott> it still does better than pypy at some things iir
20:47:02 <Vorpal> elliott, yes very retro.
20:47:26 <elliott> like you need sixtyfour bit for bf compilation
20:47:28 <Vorpal> elliott, psyco used to do wonders for portage's dependency calculations I remember
20:47:36 <lifthrasiir> as the tracing JIT compiler can inline internal routines for built-in data structures (at least PyPy does so)
20:47:58 -!- myndzi\ has quit (Ping timeout: 252 seconds).
20:48:05 <lifthrasiir> elliott: i *was* using psyco when the esotope-bfc was actively developed.
20:48:14 <Vorpal> lifthrasiir, to be fair cython special cases some built in functions such as abs() and quite a few more
20:48:47 <elliott> The syntax looks like very simplified ALGOL 68 with elements taken from Lua and SQL.
20:49:03 <Vorpal> elliott, what are you talking about?
20:49:10 <elliott> http://rosettacode.org/wiki/Category:Agena
20:50:09 <lifthrasiir> the most outstanding problem with esotope-bfc now is, that i almost forgot the details of source code :S
20:50:33 <Vorpal> lifthrasiir, maybe convert it to haskell?
20:51:04 <Vorpal> hmm what happened to that language google made
20:51:10 <Vorpal> I even forgot the name of it
20:51:23 <Vorpal> elliott, oh, how was google involved?
20:51:26 <elliott> It's still going just as it was.
20:51:32 <elliott> Vorpal: everyone who made it works at google (twenty percent time project)
20:51:37 <elliott> and they did a little bit of marketing of it
20:51:38 <elliott> and supported it in app engine
20:51:41 <Vorpal> lifthrasiir, well, I somehow think it will get more attention as a free standing project
20:51:44 <elliott> but the people working on it were all plan 9/unix people
20:51:49 <Vorpal> lifthrasiir, for full optimisation and so on
20:52:05 <lifthrasiir> you may be correct, i'm not decided on it.
20:52:10 <elliott> Vorpal: not like it's hard to just grab an esotope repo and just use the bf thing
20:52:12 <Vorpal> elliott, okay but what happened to Go?
20:52:18 <elliott> imo esotope is more interesting if it has some kind of common backend though
20:52:24 <elliott> so that all esolangs benefit from the advanced optimisation
20:52:42 <lifthrasiir> it is possible that i can make an optimization portion a library, and esotope just uses it
20:53:20 <Vorpal> <elliott> so that all esolangs benefit from the advanced optimisation <-- good luck, different languages allow widely different optimisations. Most that work on bf wouldn't work on piet or befunge for example (well, very few things work on befunge to be fair, but you get my point)
20:53:30 <zzo38> Should I make the new kind if D&D campaign setting? I have some ideas. Some of it is based on a computer game I once made but other things are differently. One difference is any creature (except for angels, devils, and demons) can have any alignment with no bias. Other differences including the gods, regions, planes, and some of the classes. And a few other things.
20:53:45 <elliott> Vorpal: Well yes, that's why you'd have a bunch of "declarations" at the start
20:53:53 <elliott> e.g. you'd say it has a right-infinite tape-with-pointer
20:53:58 <elliott> and it'd optimise operations with it based on that
20:54:07 <elliott> and IO operations would be tagged appropriately, so that they could be used as optimisation barriers
20:54:33 <Vorpal> elliott, well okay. But I'm not sure how well that will work. brainfuck can be optimised across IO for example. As long as you don't touch the same cell.
20:54:33 <lifthrasiir> elliott: i once thought of it but gave up. such an intermediate language is very hard to define.
20:54:46 <elliott> But it would be interesting :)
20:54:56 <Vorpal> elliott, basically I'm saying the diversity is way too large for this to work well
20:55:09 <lifthrasiir> so i instead took up an approach of language-to-language translation
20:55:32 <lifthrasiir> some languages like brainfuck has an AST which is somewhat more powerful than the original language
20:55:49 <Vorpal> elliott, anyway, you hardly hear anything about Go nowdays it seems. There was a few weeks of hype about it. Then nothing.
20:56:37 <elliott> Vorpal: same with everything in the general information channels
21:11:10 <zzo38> Do you have any feature request/suggestion of TeXnicard? One if my ideas is that it ought to support some sort of indexed relational database which you can use for such things as storing all the cards of all sets and searching. Another idea is supporting character encoding translation tables. And one more thing is river demerits.
21:15:38 <quintopia> I suggest you build in the spanish inquistion
21:15:56 <zzo38> Why does it need the Spanish Inquisition?
21:17:15 -!- elliott has quit (Ping timeout: 260 seconds).
21:19:25 -!- olsner has quit (Ping timeout: 240 seconds).
21:19:57 -!- olsner has joined.
21:21:01 <quintopia> i thought you would asking for help in maintaining feeping creaturinsm
21:22:46 <zzo38> I don't want to add a whole bunch of overly complicated and useless stuff that doesn't belong. But I do want to add the useful kind of things, because character encoding should be dealt with if you need to make cards with different languages!
21:23:43 <quintopia> so you want to make it easier for asian people to do what they want in it
21:23:57 <quintopia> but you don't want to make it easier for the spaniards to have an inquisition in it
21:24:44 <quintopia> well, i can't say i didn't expect that
21:25:09 -!- TeruFSX has quit (Read error: Operation timed out).
21:25:12 <quintopia> re so predictable. why don't you do something unexpected with it?
21:26:03 -!- TeruFSX has joined.
21:31:36 <zzo38> It doesn't need videos, TrueType, HTTP, JavaScript, a GameBoy emulator, spell check, audio, animated pictures on cards, DRM, watermarking, WYSIWYG, Lisp interpreter, Emacs, musical typesetting, support for Microsoft Word, a package manager, direct access to Apprentice, or anything else like that.
21:33:12 <zzo38> The program is designed for making card games, not for making inquisitions! However, having character encoding support might allow typing in Spanish, if you want to. And then maybe you can even make card game related to Spanish Inquisition, too, if you want to.
21:33:23 <coppro> you should have UTF-8, no question
21:35:07 -!- pikhq_ has joined.
21:35:23 <zzo38> coppro: Yes, you are right about that. It is my plan for the character encoding mode to support UTF-8, although the mappings must still be specified in your input files. I can make it parse UTF-8 into numbers, but I am not going to include all sorts of complicated Unicode tables in my program. Those things have to be done in the input files.
21:36:15 -!- pikhq has quit (Ping timeout: 258 seconds).
21:37:23 <Vorpal> zzo38, what about an SNES emulator?
21:37:53 <zzo38> Vorpal: Doesn't need it.
21:38:00 <Vorpal> zzo38, but yeah just use UTF-8 for encoding. Nothing else needs to be supported really
21:38:18 <Vorpal> zzo38, anyway why not TrueType support. What sort of fonts do you currently support?
21:38:38 <zzo38> Actually, just single-byte and UTF-8; that's all. (Anything else can be converted using an external program)
21:39:05 <Vorpal> zzo38, for single byte surely just handling at UTF-8 will be enough. If it is ascii only that is
21:39:05 <zzo38> Vorpal: The font formats currently supported is TFM/GF only. Other formats can be converted into TFM/GF using FreeType or something like that.
21:39:28 <Vorpal> I don't know what either of these are
21:39:57 <Vorpal> zzo38, anyway don't you render to TeX in it? In which case surely you could support anything tex can handle. Which for xetex includes Truetype
21:39:59 <zzo38> TFM is a format for font metrics data (the glyphs are not included), and GF is a bitmap font format.
21:41:00 <zzo38> Vorpal: The first design did render to TeX in it, and you still can create arbitrary output files (which can be rendered using TeX), although now I am putting it its own internal typesetting and image manipulation so that the program can work by itself.
21:41:13 <Vorpal> zzo38, why, why not reuse tex
21:41:18 <Vorpal> the result will likely look better
21:41:40 <zzo38> I am using similar algorithms to TeX (except with greater precision)!
21:41:43 <Vorpal> zzo38, anyway if it doesn't use TeX any more, surely you should remove TeX from the name of it?
21:44:06 <zzo38> It is still based on TeX and still can use TeX; it is just that it includes its own stuff now.
21:44:48 <zzo38> Of course it isn't TeX, it is a different program. And I also just don't want to change the name.
21:45:59 <zzo38> However it is based on TeX and still supporting TeX.
21:46:29 <zzo38> (Although you should be able to create any file using the features for creating arbitrary output files)
21:54:44 -!- atrapado has quit (Quit: FIN).
21:56:05 * Vorpal fetches the code for lifthrasiir's esotope-bfc
21:56:48 <zzo38> (Also, if you do use TeX externally, it has to then convert DVI to PNG format, and not only does XeTeX not output DVI, but the GF files are still needed in order to do the conversion.)
22:02:15 <Vorpal> zzo38, no need to go through dvi. Just go do pdf with pdftex. Then print those out
22:03:58 -!- TeruFSX has quit (Read error: Connection reset by peer).
22:04:43 <Vorpal> lifthrasiir, hm -OO to python makes esotope-bfc on lostking take 1:20 instead of 0:59 for me
22:04:54 <Vorpal> where is elliott when you need him
22:05:51 <Vorpal> even my program would have optimised that heh
22:07:20 <zzo38> Vorpal: Yes, another way of using the program, also includes making a TeX file output and then printing with pdfTeX. There are many ways to do these kind of things.
22:07:22 <Vorpal> well that is a really weird loop
22:07:39 <Vorpal> lets see, p[16] will always end up at 1 at the end I think
22:07:53 <Vorpal> yes my program would have constant folded that I think
22:14:37 -!- iconmaster has joined.
22:15:54 -!- Slereah has quit (Ping timeout: 248 seconds).
22:32:55 -!- pikhq has joined.
22:35:15 -!- pikhq_ has quit (Ping timeout: 240 seconds).
22:41:23 -!- pikhq has quit (Ping timeout: 244 seconds).
22:41:27 -!- pikhq_ has joined.
22:41:38 -!- MigoMipo has quit (Read error: Connection reset by peer).
22:42:10 -!- TOGoS has left.
23:15:45 -!- Phantom_Hoover has quit (Quit: Leaving).
23:20:07 <zzo38> How does this work? $-*=/o/?print$-,$/:($-+=/i/-/d/||$-*~-$-)!~56for<>
23:22:43 <pikhq_> Apparently, via myndzi.
23:23:12 <zzo38> What does !~56 near the end do in Perl?
23:28:24 <zzo38> I didn't make cheating one in AWK, I made the shorter one like this: sub(/o/,x=x*(x>0&&x-256)*x^/s/+/i/-/d/) as opposed to the non-cheating one which is one byte longer and like that: {x+=/i/-/d/;o=/o/;$0=x*=(x%16>0)*x^/s/}o
23:32:53 <zzo38> Oops! One reason why adam's Perl code is too long is because there is a line break at the end.
23:33:16 -!- pikhq has joined.
23:35:52 -!- pikhq_ has quit (Ping timeout: 260 seconds).
23:43:43 -!- zzo38 has quit (Quit: YES CARRIER).
23:46:59 -!- micahjohnston has changed nick to no_one.
23:47:03 -!- no_one has changed nick to no-one.
23:47:10 -!- no-one has changed nick to micahjohnston.