←2011-10-04 2011-10-05 2011-10-06→ ↑2011 ↑all
00:00:10 <elliott> Aaand the build starts again.
00:03:30 <elliott> checking for x86_64-unknown-linux-gnu-gcc... /home/elliott/Downloads/gcc-4.6.1/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/home/elliott/Downloads/gcc-4.6.1/host-x86_64-unknown-linux-gnu/gcc/ -B/opt/gcj/x86_64-unknown-linux-gnu/bin/ -B/opt/gcj/x86_64-unknown-linux-gnu/lib/ -isystem /opt/gcj/x86_64-unknown-linux-gnu/include -isystem /opt/gcj/x86_64-unknown-linux-gnu/sys-include
00:03:30 <elliott> checking for C compiler default output file name...
00:03:30 <elliott> configure: error: in `/home/elliott/Downloads/gcc-4.6.1/x86_64-unknown-linux-gnu/libgomp':
00:03:30 <elliott> configure: error: C compiler cannot create executables
00:03:31 <elliott> See `config.log' for more details.
00:03:33 <elliott> make[2]: *** [configure-stage1-target-libgomp] Error 77
00:03:35 <elliott> pikhq: hepl
00:03:46 -!- derdon has quit (Remote host closed the connection).
00:04:06 <elliott> configure:3666: checking for C compiler default output file name
00:04:06 <elliott> configure:3688: /home/elliott/Downloads/gcc-4.6.1/host-x86_64-unknown-linux-gnu/gcc/xgcc -B/home/elliott/Downloads/gcc-4.6.1/host-x86_64-unknown-linux-gnu/gcc/ -B/opt/gcj/x86_64-unknown-linux-gnu/bin/ -B/opt/gcj/x86_64-unknown-linux-gnu/lib/ -isystem /opt/gcj/x86_64-unknown-linux-gnu/include -isystem /opt/gcj/x86_64-unknown-linux-gnu/sys-include -g -O2 conftest.c >&5
00:04:06 <elliott> /usr/bin/ld: cannot find crt1.o: No such file or directory
00:04:07 <elliott> /usr/bin/ld: cannot find crti.o: No such file or directory
00:04:08 <elliott> collect2: ld returned 1 exit status
00:04:10 <elliott> configure:3692: $? = 1
00:04:12 <elliott> configure:3729: result:
00:04:14 <elliott> configure: failed program was:
00:04:21 <elliott> pikhq: idgi?
00:04:27 <Vorpal> elliott: urgh
00:04:29 <Vorpal> well, night →
00:04:39 <elliott> Is it failing to find the crt files because they're in some multilib location?
00:07:02 <elliott> OK, here's my plan:
00:07:04 <elliott> Don't disable multilib :P
00:09:23 <Gregor> Uhh, excuse me, pikhq.
00:09:25 <Gregor> Debian is incapable of wrong.
00:09:37 <Gregor> Therefore no matter how terrible, annoying and incompatible their solution is, it's right.
00:10:43 -!- CakeProphet has quit (Read error: Connection reset by peer).
00:12:21 -!- CakeProphet has joined.
00:12:22 -!- CakeProphet has quit (Changing host).
00:12:22 -!- CakeProphet has joined.
00:17:09 <elliott> /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory
00:17:10 <elliott> Yessssssssss
00:18:21 <elliott> I like how Gregor returned JUST to inform us about Debian :P
00:19:21 <pikhq> elliott: Eff if I know.
00:19:39 <elliott> pikhq: I guess I gotta install 32-bit libc
00:19:42 <elliott> What's the multilib incantation for that :P
00:20:00 <pikhq> Won't help, that's also multilibbed.
00:20:12 <Gregor> Also,
00:20:27 <Gregor> (nothing)
00:20:44 <elliott> Gregor: See /msg :P
00:22:45 <Gregor> elliott: Yeah yeah
00:27:24 <elliott> Gregor cares about us; you can tell.
00:27:25 -!- Zuu has quit (Read error: Connection reset by peer).
00:27:47 <elliott> :p
00:27:57 <CakeProphet> Gregor is my best friend
00:28:12 <CakeProphet> I <3 everyone
00:29:42 <Gregor> CakeProphet: Where's my cake?
00:30:23 <oerjan> obviously CakeProphet cannot say where your cake is, only where it _will_ be.
00:30:38 <CakeProphet> ..
00:30:51 <CakeProphet> I wonder when/if people will get tired of talking about my nickname
00:31:03 <oerjan> NOT UNTIL THE CAKE COMES
00:31:43 -!- Zuu has joined.
00:35:06 -!- tiffany has quit (Quit: Bai~).
00:51:56 -!- kmc has joined.
00:59:04 <elliott> Yo CakeProphet
00:59:06 <elliott> `frink 38 feet -> "meters"
00:59:15 <HackEgo> 7239/625 (exactly 11.5824) meters
00:59:17 <elliott> `frink siderealday -> ["hours", "minutes", "seconds"]
00:59:25 <HackEgo> 23 hours, 56 minutes, 4.090530833 seconds
00:59:27 <elliott> `frink ??moon
00:59:36 <HackEgo> ​[moonmass = 7.3483e+22 kg (mass), \ moondist = 3.84400000e+8 m (length), \ moonlum = 2500 m^-2 cd (illuminance), \ moongravity = 1.62 m s^-2 (acceleration), \ moonradius = 1738000 m (length)]
00:59:38 <elliott> `frink teaspoon water c^2 -> "gallons gasoline"
00:59:47 <HackEgo> 3.1642098628361009386e+6 gallons gasoline
01:00:07 <elliott> It can also do translations (although I haven't set up the proxy stuff for that yet), historical concurrency conversions, general calculations, symbolic reductions, functional programming, blah blah blah blah blah it can do fucking everything.
01:00:14 <elliott> (Oh, and the quotes around the units aren't necessary; they just append the unit name to the result.)
01:01:41 <elliott> `frink now - #2001-01-01#
01:01:50 <HackEgo> Warning: undefined symbol "now". \ now (undefined symbol) + AD 2001-01-01 a.m. 12:00:00.000 (Mon) GMT
01:01:53 <elliott> Oops
01:01:54 <elliott> `frink now[] - #2001-01-01#
01:02:03 <HackEgo> 339469322551/1000 (exactly 3.39469322551e8) s (time)
01:02:11 <CakeProphet> elliott: units can do some currencies I think?
01:02:16 <elliott> `frink now[] - #2001-01-01# -> ["years", 0]
01:02:25 <HackEgo> 10 years
01:02:26 <elliott> CakeProphet: So to answer "why are you replacing units", the answer is "because Frink is about nine billion times more awesome".
01:02:49 <CakeProphet> `frink minorsecond -> majorthird
01:02:58 <CakeProphet> halp syntax
01:02:58 <HackEgo> Warning: undefined symbol "minorsecond". \ Unconvertable expression: \ minorsecond (undefined symbol) -> 5/4 (exactly 1.25)
01:03:06 <elliott> Well, it knows majorthird :P
01:03:14 <elliott> There's a list of all the units, lemme get it
01:03:22 <elliott> http://futureboy.us/frinkdata/units.txt
01:03:25 <CakeProphet> `la
01:03:26 <CakeProphet> `ls
01:03:27 <HackEgo> ​/home/hackbot/hackbot.hg/multibot_cmds/lib/limits: line 5: exec: la: not found
01:03:28 <HackEgo> bin \ canary \ hs_err_pid275.log \ hs_err_pid278.log \ karma \ lib \ paste \ quotes \ share \ wisdom
01:03:38 <elliott> o_O
01:03:39 <elliott> `rm hs_err_pid275.log
01:03:41 <CakeProphet> `ls share
01:03:41 <HackEgo> No output.
01:03:42 <elliott> `rm hs_err_pid278.log
01:03:43 <HackEgo> foo \ units.dat
01:03:44 <HackEgo> No output.
01:03:53 <CakeProphet> does frink use some kind of data file where you can add units?
01:03:58 <CakeProphet> `units --version
01:04:00 <HackEgo> GNU Units version 1.88 \ with readline, units database in /hackenv/share/units.dat \ Copyright (C) 2006 Free Software Foundation, Inc. \ GNU Units comes with ABSOLUTELY NO WARRANTY. \ You may redistribute copies of GNU Units \ under the terms of the GNU General Public License. \
01:04:09 <elliott> Yes, but it's built in. I think you can specify your own, but w/e.
01:04:18 <CakeProphet> actually I don't think units has minorsecond either
01:04:40 <elliott> I would bet money on Frink not only having a strict superset of units' units, but far, far more in total :P
01:04:51 <CakeProphet> `run cat share/units.dat | grep minorsecond
01:04:54 <HackEgo> No output.
01:05:00 <CakeProphet> `run cat share/units.dat | grep musicalfifth
01:05:03 <HackEgo> majorsecond musicalfifth^2 / octave \ musicalfifth 3|2 \ majorseventh musicalfifth majorthird \ minorseventh musicalfifth minorthird \ pythagoreanthird majorsecond musicalfifth^2 / octave \ pythagoreancomma musicalfifth^12 / octave^7
01:05:24 <CakeProphet> perfectfifth would be a better name.
01:05:52 <elliott> `run for [line] = read["share/units.dat"] =~ %r/musicalfifth/g { println[line] }
01:05:53 <HackEgo> sh: -c: line 0: syntax error near unexpected token `=' \ sh: -c: line 0: `for [line] = read["share/units.dat"] =~ %r/musicalfifth/g { println[line] }'
01:05:57 <elliott> Aw :P
01:06:08 <elliott> I'm a bit off on my Frink control constructs.
01:06:14 <CakeProphet> also you didn't use frink.
01:06:22 <elliott> `frink for [line] = read["share/units.dat"] =~ %r/musicalfifth/g { println[line] }
01:06:24 <elliott> THAT MIGHT BE WHY
01:06:26 <CakeProphet> lol
01:06:31 <HackEgo> Syntax error: <String>, line 1, near column 58 \ for [line] = read["share/units.dat"] =~ %r/musicalfifth/g { println[line] } \ ^ \ 1 error(s) occurred during parsing.
01:06:39 <elliott> Good, I made an actual mistake.
01:06:52 <elliott> `run 999 grams / sugar -> cups
01:06:53 <HackEgo> sh: 999: command not found
01:06:55 <CakeProphet> so frink is like perl+units?
01:06:57 <elliott> `frink 999 grams / sugar -> cups
01:06:58 <elliott> I'm smart.
01:07:06 <HackEgo> 4.995
01:07:21 <elliott> CakeProphet: Frink is a calculator with strongly-typed units support and a huge built-in library of functions.
01:07:29 <elliott> It's kind of Perlish but that's not really the main thing :P
01:07:37 <CakeProphet> ah okay.
01:07:39 <elliott> http://futureboy.us/frinkdocs/
01:07:44 <elliott> Its one flaw is being Java :P
01:07:46 <CakeProphet> right I didn't mean it was literally units+perl
01:07:57 <CakeProphet> but that's neat.
01:08:16 <CakeProphet> `frink 5 beardseconds -> lightyears
01:08:25 <HackEgo> Warning: undefined symbol "beardseconds". \ Warning: undefined symbol "beardseconds". \ Unconvertable expression: \ 5 beardseconds (undefined symbol) -> 9460730472580800 m (length)
01:08:29 <CakeProphet> NOOOOOO
01:08:31 <elliott> I taught it beardseconds once :P
01:08:35 <elliott> It's one definition:
01:08:47 <elliott> `frink beardsecond := 5 nm; 5 beardseconds -> lightyears
01:08:48 <CakeProphet> units has beardseconds only because I added it.
01:08:56 <HackEgo> 1/378429218903232000000000 (approx. 2.6425020850615385e-24)
01:08:59 <elliott> Note how it handles the plural automatically.
01:09:07 <CakeProphet> same as units, yes.
01:09:16 <CakeProphet> but frink is much better, I agree.
01:09:29 <elliott> That gcj-compiling was for this :P
01:09:37 <elliott> Turns out getting Gregor to download libgcj is easier.
01:09:38 <elliott> `run frink '55 mph -> yards' 2>&1 | paste
01:09:42 <CakeProphet> !help
01:09:48 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.5864
01:09:49 <CakeProphet> is egobot down forever?
01:09:56 <elliott> CakeProphet: Behold, strongly typed
01:09:58 <elliott> (See that paste)
01:10:01 <elliott> With USEFUL SUGGESTIONS :P
01:11:07 <CakeProphet> nea
01:11:08 <CakeProphet> t
01:11:12 <elliott> CakeProphet: Anyhow, it's a bit slow to start up right now because Java and because HackEgo is slooow, but I think I can solve that
01:11:19 <elliott> By writing a little "eval server" in Frink
01:11:24 <elliott> So it can reuse the same instance
01:11:29 <CakeProphet> right I was going to say
01:11:33 <CakeProphet> summon a daemon to do your bidding.
01:11:38 <CakeProphet> like any good warlock.
01:12:17 <CakeProphet> does hackego allow that even?
01:12:27 <CakeProphet> I figure it would time out.
01:12:31 <elliott> Hmm
01:12:32 <elliott> Good point
01:12:34 <elliott> Gregor: How daemons
01:12:43 <elliott> Can we just get you to set things off :P
01:14:43 <elliott> `frink ?cubit
01:14:52 <HackEgo> ​[blackcubit, hebrewcubit, egyptianshortcubit, shortgreekcubit, romancubit, greekcubit, persianroyalcubit, northerncubit, assyriancubit, homericcubit, sumeriancubit, egyptianroyalcubit, irishcubit, biblicalcubit, olympiccubit, hashimicubit]
01:14:55 <elliott> So many cubits.
01:15:12 <elliott> CakeProphet: Yeah, you can specify a different units file, it seems
01:15:30 <CakeProphet> the search feature is very nice.
01:15:36 <CakeProphet> obvious solution: port frink to Haskell
01:15:57 <elliott> `run 3 gram 18 karat Gold -> pound_1752
01:15:59 <HackEgo> sh: 3: command not found
01:16:02 <elliott> >_<
01:16:05 <elliott> `calc 3 gram 18 karat Gold -> pound_1752
01:16:09 <Gregor> I'd like to allow daemons, but I haven't thought of a good way to do it.
01:16:10 <elliott> Just gonna use my calc synonym since it's easier to remember than frink :P
01:16:14 <HackEgo> Warning: reading currency values from cache dated 2007-06-04 20:08:19 UTC \ Unknown symbol "pound_1752" \ Warning: undefined symbol "pound_1752". \ Unconvertable expression: \ 48.536123424838473363 dollar (currency) -> pound_1752 (undefined symbol)
01:16:22 <elliott> Gregor: Didn't HackEgo addinterps use to be daemons
01:16:30 <Gregor> *EgoBot, and no
01:16:38 <elliott> Well, they were killable
01:16:42 <Gregor> It had daemons separately, yeah.
01:16:48 <elliott> CakeProphet: Yeah, I need to get the HTTP connections working so it uses up to date currency info and can translate :P
01:16:49 <Gregor> They weren't the addinterps, it was another system.
01:17:02 <elliott> Gregor: Ah :P
01:17:06 <Gregor> It'd be nice if there was a way to be certain that it was behaving as a daemon ...
01:17:18 <elliott> Gregor: Does it matter? Just provide an easy way to kill it
01:17:25 <elliott> e.g. you have to specify a name for it, and there's a special `killdaemon <name>
01:17:34 <CakeProphet> elliott: actually kill n birds with 1 stone: write a Java -> Haskell translator
01:17:38 <CakeProphet> then you never have to use Java again.
01:17:39 -!- ive has quit (Ping timeout: 256 seconds).
01:17:48 <elliott> Excellent.
01:18:04 <elliott> Gregor: I mean, the only exploitable thing seems to be that you could get it to churn for hours.
01:18:09 <elliott> Gregor: But there's just plain not much you can do with that power :P
01:18:21 <elliott> If you use up all the CPU, anyone can `killdaemon it easily.
01:18:29 <elliott> If you use up all the RAM, well you'll get killed.
01:18:33 <elliott> If you use up all the disk, you can't, ulimits.
01:19:07 <elliott> Anyway, I wasn't really asking how you were gonna do them in general, just how I have to convince you to special-case a single daemon :P
01:19:07 <CakeProphet> but daemons are scary!!!
01:20:13 <elliott> `run acre -> "m"
01:20:14 <HackEgo> sh: acre: command not found
01:20:19 <elliott> saoidhlakslkdsfldkfg
01:20:22 <elliott> `calc acre -> "m"
01:20:22 <CakeProphet> I believe acre is ambiguous
01:20:25 <CakeProphet> oh
01:20:26 <CakeProphet> right
01:20:31 <HackEgo> Conformance error \ Left side is: 62726400000/15499969 (approx. 4046.872609874252) m^2 (area) \ Right side is: 1 m (length) \ Suggestion: divide left side by length \ or divide left side by area^(1/2) \ \ For help, type: units[length] \ or \ units[area]
01:20:35 <elliott> CakeProphet: Let's see HOW ambiguous
01:20:36 <elliott> `calc ?acre
01:20:45 <HackEgo> ​[acrefeet, acrefoot, intacre, scotsacre, irishacre, acre]
01:20:47 <elliott> `calc acre -> square metres
01:20:56 <HackEgo> 62726400000/15499969 (approx. 4046.872609874252)
01:21:01 <CakeProphet> how does it parse the multi-word units?
01:21:09 <CakeProphet> er, how does it work semantically
01:21:10 <CakeProphet> I mean.
01:21:25 <CakeProphet> er, both.
01:21:33 <elliott> `calc squrae 99
01:21:36 <elliott> erm
01:21:38 <elliott> `calc square 99
01:21:39 <CakeProphet> so square is a function
01:21:42 <elliott> Nah
01:21:43 <HackEgo> Warning: undefined symbol "squrae". \ 99 squrae (undefined symbol)
01:21:45 <elliott> Functions are f[x]
01:21:48 <HackEgo> 9801
01:21:48 <CakeProphet> ah
01:21:50 <elliott> I'm trying to answer your question :P
01:21:56 <CakeProphet> DO IT FASTER
01:21:57 <CakeProphet> GAH
01:22:02 <elliott> I think "square x" is special syntax for x^2.
01:22:04 <elliott> Which is reasonable.
01:22:17 <CakeProphet> `calc cubic 8
01:22:26 <HackEgo> 512
01:22:31 <CakeProphet> excellent
01:22:35 <elliott> `calc beardsecond := 5 nm; 99 mph -> megabeardseconds/minute
01:22:43 <HackEgo> 13277088/25 (exactly 531083.52)
01:22:46 <CakeProphet> bahahaha
01:23:10 <elliott> `calc beardsecond := 5 nm; 99 acres -> square terabeardseconds
01:23:18 <HackEgo> 31049568/1937496125 (approx. 0.01602561553510204)
01:23:21 <elliott> imo square terabeardseconds is best unit
01:23:41 <elliott> `calc beardsecond := 5 nm; moon area -> square terabeardseconds
01:23:48 <CakeProphet> `quote monqy.*?agree
01:23:49 <HackEgo> Warning: undefined symbol "area". \ Warning: undefined symbol "moon". \ Warning: undefined symbol "area". \ Warning: undefined symbol "moon". \ Unconvertable expression: \ area (undefined symbol) moon (undefined symbol) -> 25000000 m^2 (area)
01:23:51 <HackEgo> 682) <monqy> i agree with elliott
01:23:55 <elliott> `frink ??moon
01:24:03 <HackEgo> ​[moonmass = 7.3483e+22 kg (mass), \ moondist = 3.84400000e+8 m (length), \ moonlum = 2500 m^-2 cd (illuminance), \ moongravity = 1.62 m s^-2 (acceleration), \ moonradius = 1738000 m (length)]
01:24:27 <CakeProphet> `frink c
01:24:36 <HackEgo> 299792458 m s^-1 (velocity)
01:24:53 <elliott> `calc beardsecond := 5 nm; moonmass -> sugar cubic terabeardseconds
01:25:02 <HackEgo> 6.9540853530918000001e+8
01:25:09 <elliott> How many cubic terabeardsecond cups of sugar do you need to have the same mass as the moon?
01:25:10 <elliott> Ah.
01:25:34 <CakeProphet> `frink 299792458 m s^-1
01:25:40 <elliott> CakeProphet: I think I might have made the best calculation possible in my entire life.
01:25:43 <HackEgo> 299792458 m s^-1 (velocity)
01:25:45 <elliott> Do I kill myself now?
01:25:51 <CakeProphet> so I guess spaces do multiplication or something.
01:25:58 <elliott> yep
01:26:03 <CakeProphet> elliott: no you strive to become even more excellent
01:26:35 <CakeProphet> become unpossible in your entire life.
01:26:49 <CakeProphet> calculations
01:26:51 <CakeProphet> .
01:27:00 <elliott> Hmmmmmmmmmmm
01:27:23 <CakeProphet> `calc moonmass
01:27:27 <CakeProphet> `calc feet
01:27:31 <elliott> `calc atom -> bits
01:27:33 <HackEgo> 7.3483e+22 kg (mass)
01:27:39 <HackEgo> 381/1250 (exactly 0.3048) m (length)
01:27:41 <HackEgo> Warning: undefined symbol "atom". \ Unconvertable expression: \ atom (undefined symbol) -> 1 bit (information)
01:27:42 <elliott> I need to figure out how many bits, exactly, are in ten cups of sugar.
01:27:47 <elliott> `calc mol -> bits
01:27:50 <elliott> COME ON, CALCULATE MY BULLSHIT
01:27:53 <CakeProphet> `calc m
01:27:56 <HackEgo> Conformance error \ Left side is: 1 mol (amount_of_substance) \ Right side is: 1 bit (information) \
01:28:02 <HackEgo> 1 m (length)
01:28:19 <CakeProphet> I was wondering how it handles units.
01:28:25 <CakeProphet> it just, does.
01:28:38 <elliott> It has a set of primitive units.
01:28:41 <elliott> Everything else reduces to them.
01:28:45 <CakeProphet> rght
01:28:46 <CakeProphet> +i
01:28:48 <elliott> On top of that, it has a set of configured display units, that everything displays in by default.
01:28:59 <elliott> And then it handles all the operations like multiplication, division, powers, etc. on units.
01:29:20 <CakeProphet> `calc ?tempF
01:29:22 <CakeProphet> `calc ?F
01:29:29 <HackEgo> No matches found.
01:29:32 <HackEgo> ​[doricfoot, frenchinch, lateromanfoot, statfarad, daraf, fluidounce, degreeFahrenheit, fbm, degfahrenheit, olympicfinger, Rinfinity, greekfeet, fingerlength, footlambert, sulfur, frenchfeet, thaifung, fresnel, flemishell, femto, tonsrefrigeration, irishfurlong, fourier, imperialfloz, californium, hafnium, lbf, tonref,
01:29:45 <elliott> `frink editDistance["poop", "scoop"]
01:29:53 <HackEgo> 2
01:29:56 <elliott> CakeProphet: try ?fahren
01:30:11 <CakeProphet> `calc 100 degfahrenheit -> degcelsius
01:30:14 <CakeProphet> `calc ?fahren
01:30:21 <elliott> CakeProphet: it's F btw
01:30:21 <HackEgo> 500/9 (approx. 55.55555555555556)
01:30:24 <HackEgo> ​[degreeFahrenheit, degfahrenheit, Fahrenheit[x]]
01:30:26 <elliott> `frink 99 F -> C
01:30:34 <elliott> CakeProphet: Also,
01:30:35 <elliott> degfahrenheit := 5/9 degC // The *size* of a degree in the Fahrenheit scale.
01:30:35 <elliott> degreeFahrenheit := degfahrenheit // The *size* of a degree in the Fahrenheit scale.
01:30:35 <elliott> degF := degfahrenheit // WARNING: These should only be used when
01:30:35 <elliott> // you're indicating the *difference* between
01:30:35 <elliott> // two temperatures, (say, how much energy to
01:30:35 <HackEgo> Error
01:30:37 <elliott> // raise the temperature of a gram of water by 5
01:30:39 <elliott> // degrees Fahrenheit, *not* for absolute
01:30:41 <elliott> // temperatures. (I wonder if they should go
01:30:43 <elliott> // entirely to eliminate this confusion...)
01:30:45 <elliott> // For calculating absolute temperatures, use
01:30:47 <elliott> // the Fahrenheit[] or F[] functions below.
01:30:49 <elliott> `frink 99 F -> celsius
01:30:58 <HackEgo> Unknown symbol "celsius" \ Warning: undefined symbol "celsius". \ Unconvertable expression: \ 99 m^-2 s^4 kg^-1 A^2 (capacitance) -> celsius (undefined symbol)
01:31:17 <elliott> Pah :P
01:31:27 <CakeProphet> ah okay.
01:31:29 <elliott> Oh
01:31:31 <elliott> Case sensitive
01:31:34 <elliott> `frink 99 F -> Celsius
01:31:42 <elliott> Ohh
01:31:43 <HackEgo> Error
01:31:45 <elliott> I see, I see
01:31:48 <CakeProphet> yeah what are you doing :P
01:32:02 <elliott> Grep for // Function for converting Fahrenheit to/from standard units
01:32:03 <CakeProphet> `calc F[99]
01:32:04 <elliott> in http://futureboy.us/frinkdata/units.txt
01:32:12 <HackEgo> 310.37222222222222222 K (temperature)
01:32:13 <elliott> basically because it's not a multiplication factor
01:32:15 <CakeProphet> right
01:32:16 <elliott> it can't be a simple unit
01:32:20 <elliott> CakeProphet: You can write that as
01:32:20 <CakeProphet> this is what units does
01:32:22 <elliott> `calc 99 -> F
01:32:28 <CakeProphet> with tempF and tempC
01:32:28 <elliott> which is a bit nicer.
01:32:30 <elliott> Right.
01:32:31 <HackEgo> 310.37222222222222222 K (temperature)
01:32:49 <CakeProphet> I suppose K is the temperature primitive then.
01:32:53 <CakeProphet> that... uh... makes sense.
01:32:55 <elliott> \u2109 := degfahrenheit // Single Unicode codepoint for
01:32:55 <elliott> // DEGREE FAHRENHEIT
01:32:56 <elliott> Useful
01:33:03 <elliott> CakeProphet: It's based on SI units whenever possible
01:33:06 <elliott> But you can change the display units:
01:33:21 <elliott> `calc temperature :-> "Celsius"; 99 -> F
01:33:28 <elliott> It's the smiley face operator.
01:33:31 <HackEgo> BasicUnitFormatterManager: Warning: cannot find unit 'Celsius' -- you may get errors when displaying units of this type later. \ 37.22222222222222222
01:33:37 <elliott> Oh, god, I'm an idiot
01:33:44 <CakeProphet> oh no you've angered the BasicUnitFormatterManager
01:34:00 <elliott> OK, lemme figure this out :P
01:34:03 <CakeProphet> elliott: today does not seem to be your day.
01:34:10 <CakeProphet> you're making as many mistakes I typically make with hackego stuff.
01:34:11 <elliott> Aha
01:34:11 <elliott> So, the size of a Kelvin
01:34:11 <elliott> // and a degree Celsius are the same, but
01:34:11 <elliott> // the zero point of the Celsius scale is actually
01:34:11 <elliott> // set to .01 Kelvin below the triple point.
01:34:25 <elliott> That is... so stupid :P
01:34:40 <CakeProphet> so temperature is all fucked up in frink
01:34:41 <elliott> SO YEAH I TOTALLY LOVE IT DISPLAYING IN KELVINS NO DEBATE
01:34:44 <elliott> CakeProphet: No
01:34:47 <elliott> CakeProphet: Temperature is all fucked up in real life
01:34:50 <elliott> He's quoting the actual standards
01:34:55 <CakeProphet> oh okay.
01:35:54 <CakeProphet> `calc ??bit
01:35:59 <CakeProphet> `calc ??byte
01:36:03 <HackEgo> ​[blackcubit = 0.540512 m (length), \ hebrewcubit = 0.446532 m (length), \ egyptianshortcubit = 0.44914457142857142856 m (length), \ bit = 1 bit (information), \ shortgreekcubit = 0.35575875 m (length), \ romancubit = 111/250 (exactly 0.444) m (length), \ greekcubit = 0.474345 m (length), \ persianroyalcubit =
01:36:07 <HackEgo> ​[byte = 8 bit (information)]
01:36:11 <CakeProphet> blackcubit?
01:36:13 <elliott> http://futureboy.us/frinksamp/derivatives.frink
01:36:17 <elliott> LIKE SCOTCH BUT BETTER
01:36:30 <CakeProphet> so many cubits.
01:36:52 <CakeProphet> this program will be useful for whenever I decide to make a historic RP MUD
01:36:56 <Gregor> Wow, X-Chat Aqua really sucks.
01:37:03 <Gregor> But brew can't build X-Chat for me >_<
01:37:31 <CakeProphet> so I can say "the palace of the Gupta ruler is 215123135981240981240812 Guptan cubits"
01:37:31 <elliott> Gregor: Don't use XChat.
01:37:36 <CakeProphet> or whatever measurement the Gupta dynasty used.
01:37:40 <elliott> Gregor: http://limechat.net/mac/
01:37:46 <elliott> Gregor: Trust me :P
01:37:58 <Gregor> elliott: I used it for a while.
01:37:59 <Gregor> It sucks.
01:38:11 <elliott> Gregor: It's not all that fully-featured, but it's also not painful. You want to run ported software on OS X; it will be painful.
01:38:12 <Gregor> Just tried X-Chat Aqua to see if it sucks less.
01:38:13 <Gregor> It doesn't.
01:38:25 <elliott> LimeChat is okay, it's just not very fleshed out.
01:38:27 <elliott> At least it has ignores nowadays.
01:38:47 <Gregor> Limechat's huge issue for me is that it remembers channels from session to session.
01:38:48 <elliott> `calc 215123135981240981240812 persianroyalcubits -> m
01:38:56 <HackEgo> 1.3769601687887272727e+23
01:38:59 <Gregor> So if I ever restart it, it forceably rejoins every channel I've ever been in, which is godawful with a BNC.
01:39:02 <elliott> Gregor: Tried Cmd+W? :-P
01:39:07 <elliott> Gregor: But I think you can disable that.
01:39:12 <elliott> It's in the server prefs or main prefs I believe.
01:39:30 <CakeProphet> `calc ??fourier
01:39:34 <Gregor> OK, X-Chat Aqua is seriously unusable.
01:39:39 <HackEgo> ​[fourier = 1 m^-2 s^3 kg^-1 K^2 (unknown unit type)]
01:39:41 <Gregor> *fffffff*
01:39:53 <CakeProphet> does this thing let me look up functions?
01:40:22 <CakeProphet> wait what the hell is a fourier
01:40:52 <elliott> CakeProphet: Ooh, I forgot YET ANOTHER THING Frink can do:
01:40:55 <elliott> `frink g = new graphics; g.text["Hello, world!", 0, 0]; g.write["foo.png", 640, 480]
01:41:05 <HackEgo> DrawTextExpression: Don't have environment! \ GraphicsUtils:getWriterFormatNames: \ java.lang.reflect.InvocationTargetException \ Warning: unknown extension 'png' when writing image file 'foo.png'. Image file will probably not render correctly. \ The file formats supported for writing by your Java platform are:
01:41:09 <CakeProphet> temperature per square length mass?
01:41:13 <elliott> Javaaaaaaaaaaaaa >_<
01:41:34 <elliott> `run frink 'g = new graphics; g.text["Hello, world!", 0, 0]; g.write["foo.png", 640, 480]' 2>&1 | paste2
01:41:39 <elliott> CakeProphet: And yes, (?)? looks up everything
01:41:43 <elliott> `frink ??java
01:41:44 <HackEgo> sh: paste2: command not found
01:41:53 <HackEgo> ​[Javanese[str], \ FromJavanese[str], \ staticJava[arg1,arg2], \ newJava[arg1], \ newJava[arg1,arg2], \ callJava[arg1,arg2,arg3], \ newJavaArray[arg1,arg2]]
01:41:53 <CakeProphet> `calc ??fft
01:41:58 <elliott> `run frink 'g = new graphics; g.text["Hello, world!", 0, 0]; g.write["foo.png", 640, 480]' 2>&1 | paste
01:42:01 <CakeProphet> Javanese?
01:42:03 <HackEgo> No matches found.
01:42:06 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.18412
01:42:07 <CakeProphet> language translation?
01:42:09 <elliott> CakeProphet: Grep /FFT/ on http://futureboy.us/frinkdocs/
01:42:26 <elliott> Also the library
01:42:27 <elliott> Fourier[text] Routines for discrete and fast Fourier transforms (FFT) of data.
01:42:39 <elliott> which we can't access without manual downloading because Gregor hasn't told me how to get HTTP working yet.
01:42:52 <elliott> The file formats supported for writing by your Java platform are:
01:42:53 <elliott> GraphicsUtils:getWriterFormatNames:
01:42:53 <elliott> java.lang.reflect.InvocationTargetException
01:42:54 <elliott> Wow :P
01:42:58 <elliott> `rm foo.png
01:42:59 <HackEgo> rm: cannot remove `foo.png': No such file or directory
01:43:02 <Gregor> `run echo $http_proxy
01:43:03 <HackEgo> http://127.0.0.1:3128
01:43:09 <CakeProphet> `calc Javanese["Hello"]
01:43:20 <HackEgo> Error reading from http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&format=text&langpair=en|jw&q=Hello: \ java.net.UnknownHostException: ajax.googleapis.com:80 \ Error when calling function Javanese: \ Error when calling function translate: \ MatchExpression: left must be string. Expression was undef
01:43:22 <elliott> Like I said
01:43:23 <elliott> No HTTP yet
01:43:25 <elliott> Gregor: Tried that
01:43:28 <elliott> Gregor: Four-oh-three'd
01:43:36 <elliott> CakeProphet: Anyway, the FFT implementation is in http://futureboy.us/frinksamp/Fourier.frink (grep for "// Fast Fourier Transform")
01:43:41 <Gregor> elliott: Well, you can only access what I've whitelisted.
01:43:43 <elliott> CakeProphet: It probably isn't, uh, fast, though, being implemented in Frink itself.
01:43:56 <CakeProphet> "F"FT
01:44:01 <elliott> Gregor: Can you whitelist a bunch of domains for me? :P
01:44:09 <Gregor> I /can/.
01:44:12 <Gregor> But I /won't/.
01:44:21 <CakeProphet> `calc binomial[3,4]
01:44:23 <elliott> Gregor: They're just translation, currency conversion, and the like.
01:44:25 <Gregor> Anything you can't get through `fetch, you don't need :P
01:44:30 <HackEgo> 0
01:44:34 <elliott> Gregor: Oh come on :P
01:44:44 <CakeProphet> so this thing is kind of like Mathematica kind of.
01:44:53 <elliott> Gregor: It lets us convert CURRENT GOLD PRICES to HISTORICAL VALUES OF THE POUND IN THE EIGHTEENTH CENTURY
01:45:02 <elliott> And then TRANSLATE OUR THESIS ON IT TO ARABIC
01:45:13 <Gregor> What about ...
01:45:15 <Gregor> Linear-B?
01:45:23 <elliott> Gregor: No :P
01:45:30 <elliott> .
01:45:35 <Gregor> Interest waning ...
01:45:35 * elliott tries to find a definitive list of the domains Frink needs.
01:45:36 <CakeProphet> it's like mathematica but with units.
01:45:45 <CakeProphet> >_>
01:45:57 * CakeProphet doesn't actually know much about mathematica
01:45:59 <elliott> Gregor: What IS on the whitelist, anyway
01:46:12 <Gregor> elliott: Mostly Google and Wikipedia.
01:46:18 <Gregor> Probably a couple other things.
01:46:19 <elliott> `calc println[join["\n",sort[lines["http://google.com/"]]]]
01:46:28 <HackEgo> LineEnumeration: could not open http://google.com/: \ java.net.UnknownHostException: google.com:80 \ at frink.e.f$a.a(frink) \ at frink.e.f$a.access$000(frink) \ at frink.e.f.do(frink) \ at frink.expr.s.a(frink) \ at frink.c.e$20.do(frink) \ at frink.c.s.if(frink) \ at frink.c.f.a(frink) \ at
01:46:30 <elliott> for line = lines[url]
01:46:30 <elliott> for [result] line =~ %r/(\w+@(?:\w|\.)+\.\w+)/g
01:46:30 <elliott> println[result]
01:46:36 <elliott> I like how Frink is better at some Perl things than Perl is
01:46:49 <CakeProphet> I'm guessing %r is like s?
01:46:57 <CakeProphet> how is that better than Perl? :P
01:46:59 <elliott> It's the regexp literal syntax, so ... not really?
01:47:03 <elliott> CakeProphet: Note "url"
01:47:10 <elliott> All of Frink's file reading functions work on URLs.
01:47:21 <CakeProphet> oh well that's cool I guess.
01:47:29 * elliott adds the HTTP proxy stuff.
01:47:31 <elliott> Or, hmm
01:47:34 <CakeProphet> I /do/ have to add a use LWP to get that in Perl.
01:47:34 <elliott> I'm not sure -D will even work
01:47:39 <CakeProphet> so I guess that's something.
01:48:00 <CakeProphet> still no $_ goodness.
01:48:43 <elliott> You could assign it to a variable named _, I believe
01:48:57 <CakeProphet> that's not quite how $_ works though
01:49:04 <elliott> CakeProphet: Also, note how that iterates through all regexp matches
01:49:11 <elliott> Of that specific group
01:49:13 <CakeProphet> I see.
01:49:34 <CakeProphet> each match in the string or each group in the match?
01:49:36 * elliott recompiles a frink with the proxy settings.
01:49:42 <elliott> CakeProphet: Each match
01:49:54 <CakeProphet> ah yes okay. same as perl then.
01:49:58 <CakeProphet> with g on
01:50:25 * elliott reuploads
01:50:37 <elliott> CakeProphet: How do you go through each match in Perl?
01:50:55 <CakeProphet> while (/blah/g)
01:51:05 <elliott> Ah
01:51:28 <CakeProphet> I'm sure there's another way to do it with a for loop
01:51:30 <CakeProphet> but that's the one I use.
01:52:23 <elliott> `run mv frink lib
01:52:26 <HackEgo> No output.
01:52:31 <elliott> `calc read["http://google.com/"] =~ %s/<[^>]*>//gs
01:52:33 <HackEgo> ​/hackenv/bin/calc: line 2: /hackenv/lib/frink: Permission denied \ /hackenv/bin/calc: line 2: exec: /hackenv/lib/frink: cannot execute: Success
01:52:40 <elliott> `run chmod +x lib/frink
01:52:42 <HackEgo> No output.
01:52:44 <elliott> `calc read["http://google.com/"] =~ %s/<[^>]*>//gs
01:52:52 <HackEgo> Googlewindow.google={kEI:"eriLTsLEIqLjiALV-K36AQ",getEI:function(a){var b;while(a&&!(a.getAttribute&&(b=a.getAttribute("eid"))))a=a.parentNode;return b||google.kEI},kEXPI:"28936,30465,33068,33076,33104",kCSI:{e:"28936,30465,33068,33076,33104",ei:"eriLTsLEIqLjiALV-K36AQ"},authuser:0,ml:function(){},kHL:"en",time:function(){return(new
01:53:14 <CakeProphet> `run perl -e '$_="tttt"; print /t/g'
01:53:17 <HackEgo> tttt
01:53:26 <CakeProphet> ah okay for or while doesn't matter.
01:53:43 <CakeProphet> `run perl -e '$_="tttt"; print for /t/g'
01:53:45 <HackEgo> tttt
01:53:49 <elliott> `run strings lib/frink | grep 'http://' | paste
01:53:49 <CakeProphet> `run perl -e '$_="tttt"; print while /t/g'
01:53:51 <HackEgo> http://codu.org/projects/hackbot/fshg/index.cgi/raw-file/tip/paste/paste.31036
01:53:52 <HackEgo> tttttttttttttttt
01:53:55 <CakeProphet> ....er
01:54:18 <CakeProphet> okay so while is probably not what you want.
01:55:01 <elliott> Gregor: OK, how much pleading do I gotta do to get these domains whitelisted: www.systranbox.com, www.systranet.com, www.xe.com, babelfish.altavista.com, futureboy.us, www.measuringworth.com, ajax.googleapis.com?
01:55:15 <Gregor> Depends, how many of those are secretly porn?
01:55:18 <elliott> Those are all currency conversion and translation, apart from futureboy.us which is the Frink site and contains all the auto-downloadable libraries.
01:55:23 <Gregor> "futureboy.us" looks like gay porn to me.
01:55:28 <elliott> http://futureboy.us/ :P
01:56:30 <elliott> Gregor: Anyway, I think `fetch would be more useful to download gay porn than any sort of scripted thing :P
01:56:35 <CakeProphet> The /g modifier specifies global pattern matching--that is, matching as many times as possible within the string. How it behaves depends on the context. In list context, it returns a list of the substrings matched by any capturing parentheses in the regular expression. If there are no parentheses, it returns a list of all the matched strings, as if there were parentheses around the whole pattern.
01:56:48 <Gregor> elliott: Well yeah, that's what it's for.
01:56:49 <CakeProphet> In scalar context, each execution of m//g finds the next match, returning true if it matches, and false if there is no further match.
01:57:09 <elliott> Gregor: Right. Unfortunately I have no interest in gay porn, and tons of interest in Frink libraries, currency conversion, and translation :P
01:57:21 <Gregor> Pfff.
01:57:29 <elliott> (I take it adding the normal domain includes the www. subdomain too? Just thinking of redirections and the like.)
01:57:30 <Gregor> The effort involved in adding them RIGHT NOW is over my lazy threshold.
01:57:41 <elliott> Is it part of the repo?
01:57:44 <elliott> I could send you a patch.
01:57:46 <elliott> `help
01:57:47 <HackEgo> Runs arbitrary code in GNU/Linux. Type "`<command>", or "`run <command>" for full shell commands. "`fetch <URL>" downloads files. Files saved to $PWD are persistent, and $PWD/bin is in $PATH. $PWD is a mercurial repository, "`revert <rev>" can be used to revert to a revision. See http://codu.org/projects/hackbot/fshg/
01:58:31 <Gregor> No, it's not.
01:58:40 <elliott> Repeat after me: Laaaaaaaame
01:58:43 <elliott> Quick CakeProphet repeat.
01:58:58 <CakeProphet> `quote monqy.*?agree
01:59:01 <HackEgo> 682) <monqy> i agree with elliott
01:59:24 <elliott> .*? = .*; this isn't Perl.
01:59:27 <Gregor> `quote [^]]agree.*elliott
01:59:30 <HackEgo> 682) <monqy> i agree with elliott
01:59:36 <Gregor> Err
01:59:37 <Gregor> I meant
01:59:40 <elliott> lol
01:59:41 <Gregor> `log [^]]agree.*elliott
01:59:44 <CakeProphet> why would .*? = .* that's silly
02:00:04 <HackEgo> 2011-10-05.txt:01:59:30: <HackEgo> 682) <monqy> i agree with elliott
02:00:07 <Gregor> lol
02:00:11 <elliott> You can't make zero-or-more optional; it already IS optional.
02:00:27 <CakeProphet> that's not what ? means
02:00:28 <CakeProphet> there
02:00:34 <elliott> ? means optional everywhere.
02:00:37 <CakeProphet> nope
02:00:52 <elliott> Yes.
02:00:55 <elliott> Perl mind virus.
02:00:58 <CakeProphet> ? is non-greedy in perl when used after * or +
02:01:26 <CakeProphet> this is, I thought, how most regexes workd. For example, PCRE and Python
02:01:29 <CakeProphet> this is most
02:01:29 <CakeProphet> of them.
02:01:32 <CakeProphet> yep.
02:02:28 <elliott> What would it even mean to non-greedily grep?
02:02:30 <elliott> It just prints out matching lines.
02:02:51 <CakeProphet> it's non-greedy matching one or zero repetitions of .
02:02:55 <CakeProphet> which is useful
02:03:01 <CakeProphet> for not having . match everything
02:03:20 <CakeProphet> .*? = "some stuff inbetween the thing before and the thing after it"
02:03:55 -!- oerjan has quit (Remote host closed the connection).
02:04:08 -!- oerjan has joined.
02:04:31 <CakeProphet> .* = "MATCH EVERYTHING UP TO A LINE BAHAHAHAHAHA SUCKER"
02:04:38 <elliott> CakeProphet: You do not understand.
02:04:41 -!- pikhq has quit (Ping timeout: 256 seconds).
02:04:47 <CakeProphet> of course in actual programs I try to avoid .*? in favor of something more efficient.
02:04:48 <elliott> Non-greedy matching would never change whether grep prints a line or not.
02:05:08 <CakeProphet> erm...
02:05:22 <CakeProphet> `quote monqy.*agree
02:05:25 <HackEgo> 682) <monqy> i agree with elliott
02:05:55 <CakeProphet> why?
02:06:35 <CakeProphet> does it not match . to the end of the line?
02:06:55 <elliott> Um... you realise that monqy.*agree would work in Perl, Python, etc. too?
02:07:15 <elliott> "Regexps are declarative" is the closest I can come to answering your question, because it doesn't make any sense.
02:07:27 <elliott> The string has a monqy in it; it then has an arbitrary amount of text, followed by an agree.
02:07:39 <oerjan> 01:46:12: <Gregor> elliott: Mostly Google and Wikipedia.
02:07:45 <oerjan> not esolang, check
02:07:47 <elliott> That is fact. If a regular expression algorithm cannot confirm that that string matches that regular expression, then it is just... broken.
02:09:04 <Gregor> `curl esolangs.org
02:09:07 <HackEgo> ​% Total % Received % Xferd Average Speed Time Time Time Current \ Dload Upload Total Spent Left Speed \ .100 1110 100 1110 0 0 8034 0 --:--:-- --:--:-- --:--:-- 8034.100 1110 100 1110 0 0 6976 0 --:--:-- --:--:-- --:--:-- 0
02:09:11 <Gregor> Grrf
02:09:15 <CakeProphet> elliott: erm...
02:09:16 <Gregor> `run curl esolangs.org 2> /dev/null
02:09:18 <HackEgo> ​<?xml version="1.0" encoding="UTF-8"?> \ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" \ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> \ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> \ \ <head> \ <meta http-equiv="content-type" \ content="application/xhtml+xml; charset=utf-8" />
02:09:25 <elliott> Gregor: Did you just add esolangs.org before adding the ones I asked for? X-D
02:09:29 -!- pikhq has joined.
02:09:30 <CakeProphet> elliott: what you're basically saying is "all * and + are non-greedy always"
02:09:35 <Gregor> elliott: No, was just checking if it's already there.
02:09:45 <Gregor> elliott: I don't have the keys set up to SSH from here, so it's bleh.
02:09:54 <elliott> Gregor: abcdefghijklmnopqrstuvwxyz
02:10:01 <elliott> If you need any punctuation, well... me too, man, me too.
02:10:56 <oerjan> who removed the punctuation from the topic.
02:11:03 <elliott> atehwa.
02:11:13 * oerjan swats atehwa -----###
02:11:18 <elliott> My disabilities must end with the passing of the Esolang event in Hel/Finland.
02:11:28 <CakeProphet> `run perl -e '$_="this is a test"; /this(.*?)test/; print $1;
02:11:30 <HackEgo> sh: -c: line 0: unexpected EOF while looking for matching `'' \ sh: -c: line 1: syntax error: unexpected end of file
02:11:44 <CakeProphet> `run perl -e '$_="this is a test"; /this(.*)test/; print $1;'
02:11:46 <oerjan> elliott: it's a miracle!
02:11:47 <HackEgo> is a
02:11:49 <CakeProphet> `run perl -e '$_="this is a test"; /this(.*?)test/; print $1;'
02:11:51 <HackEgo> is a
02:11:54 <CakeProphet> o_o
02:12:14 <elliott> CakeProphet: For someone who's such a fan of Perl, you think you'd realise that the major strength of regexps is that they're declarative.
02:12:33 <CakeProphet> elliott: no I just misunderstood the greediness semantics entirely.
02:12:59 <elliott> Pretty sure you can't give a declarative semantics that makes .* behave in such a broken manner.
02:13:07 <elliott> It would necessarily involve detailing a sequential scanning algorithm.
02:13:54 <CakeProphet> `run perl -e '$_="this is a test is a test"; /this(.*?)test/; print $1;'
02:13:57 <HackEgo> is a
02:13:58 <CakeProphet> `run perl -e '$_="this is a test is a test"; /this(.*)test/; print $1;'
02:14:01 <HackEgo> is a test is a
02:14:26 <CakeProphet> that is how greediness works. okay got it.
02:14:37 <elliott> Changing greediness only changes what matches you might get from a regexp.
02:15:01 <elliott> It never, ever changes whether it matches or not.
02:15:15 <elliott> Because either there are multiple matches to choose from -- in which case greediness effects which you pick but does not affect whether the line as a whole matches --
02:15:25 <elliott> or there is no choice to make between N possible matches, and so the greediness flag has no effect.
02:15:37 <elliott> Therefore greediness is completely irrelevant for grep, apart from when it's used interactively and highlights the matching portion.
02:15:53 <CakeProphet> I was assuming a degree of procedural simplicity to the algorithm, I suppose.
02:16:18 -!- ive has joined.
02:16:38 <CakeProphet> it's just never been a problem because I almost always write .*? and it always does what I expect.
02:17:42 <elliott> That is the worst habit I've ever heard of.
02:17:56 <CakeProphet> I don't always write *? just .*?
02:17:56 <elliott> You usually want ".*".
02:20:08 -!- CakeProp1et has joined.
02:20:44 <CakeProp1et> >_> I would think you usually want .* to match minimally in a complex pattern.
02:20:47 <CakeProp1et> but it really just depends on what you're doing
02:21:05 -!- pikhq_ has joined.
02:21:07 <CakeProp1et> s/\.\*/.*?/
02:22:22 -!- CakeProphet has quit (Ping timeout: 245 seconds).
02:22:44 -!- CakeProp1et has changed nick to CakeProphet.
02:24:13 -!- pikhq has quit (Ping timeout: 252 seconds).
02:24:41 <CakeProphet> elliott: also to what degree I'm actually a "perl fan" is debatable. :P
02:24:52 <CakeProphet> but I guess it's a fair description.
02:24:59 <CakeProphet> given my history.
02:26:12 <oerjan> i expect .*? to be more efficient if .* needs to backtrack a lot for the whole to match
02:27:05 <oerjan> and assuming it doesn't get compiled into a [ND]FA
02:28:00 <elliott> oerjan: You can't compare the performance of two programs that don't do the same thing.
02:28:05 <elliott> And that's a lousy assumption to make. :p
02:28:33 <oerjan> depends on the complexity of the regex...
02:28:39 <oerjan> if there are backreferences
02:28:55 <elliott> Some regexp.
02:30:32 <oerjan> if there are backreferences it will not usually be regular, so cannot become a finite automaton.
02:30:33 -!- Nisstyre has quit (Ping timeout: 248 seconds).
02:33:22 <elliott> readTVar is cheap, right?
02:33:38 <oerjan> no idea
02:33:43 <elliott> As in, if I have a variable read from a lot of places but only written from one, using a TVar for consistency won't add much overhead?
02:33:52 <elliott> I know it would with an MVar because a read is basically a take and a put, but I don't think it's true for STM
02:34:09 <elliott> At least that's my intuitive understanding :P
02:35:00 -!- Nisstyre has joined.
02:43:10 <elliott> eoarhlo
02:43:37 <elliott> Oh this will be useful:
02:43:54 <elliott> `frink 99 -> senary
02:44:02 <HackEgo> 243
02:44:19 <elliott> `frink parseInt["243", senary]
02:44:26 <elliott> Hmm, might have to specify the number seven instead of senary there
02:44:28 <HackEgo> Error when calling function parseInt: \ Second argument to parseInt must be an integer. \ at frink.c.ab.a(frink) \ at frink.c.ab.evaluate(frink) \ at frink.parser.Frink.parseString(frink) \ at frink.parser.Frink.parseStrings(frink) \ at frink.parser.Frink.main(frink) \ Error when calling function parseInt:
02:44:32 <elliott> `frink parseInt["243", 7]
02:44:41 <HackEgo> 129
02:45:01 <elliott> `frink messageDigestInt["abc", "SHA-512"] -> nonary
02:45:10 <HackEgo> 262827730040205642614466440440232551770554584231506366374325431342721804221340285445347202750758683730362606388826870860288613438235502803411426336365100834080128
02:45:12 <elliott> Yessssssssssssssssssssssssssssssssssssssssssssss;dfkglhd
02:45:46 -!- yours_truly has joined.
02:46:33 -!- Nisstyre has quit (Ping timeout: 248 seconds).
02:46:37 <elliott> Hey, oerjan still didn't name my ellipsisatification function
02:47:18 <oerjan> i so did!
02:47:36 <elliott> oerjan: What did you name it?
02:47:43 <pikhq_> elliott: Using readTVar prolifically and putTVar rarely is extremely cheap, and the use-case STM is optimised for.
02:47:44 <oerjan> `frink 99 -> undecimal
02:47:54 <HackEgo> Unknown symbol "undecimal" \ Warning: undefined symbol "undecimal". \ Unconvertable expression: \ 99 -> undecimal (undefined symbol)
02:48:00 <elliott> pikhq_: Right, it's just that there will literally never be a conflict, because the TVar is only modified from one thread.
02:48:05 <oerjan> elliott: procrustean
02:48:05 <elliott> ...Hmm, that might not actually be true :P
02:48:09 <elliott> Yeah I'll just use TVars for everything.
02:48:11 <elliott> oerjan: NOT GOOD
02:48:19 <elliott> oerjan: What's undecimal meant to be
02:48:41 <oerjan> 11
02:48:42 -!- yours_truly has quit (Client Quit).
02:48:45 <elliott> `frink 99 -> undenary
02:48:46 <monqy> ellipse was a good name too
02:48:48 <pikhq_> readTVar basically is just a straight read from a var, except only happening on transaction commit. It is only ever more than slight overhead if the transaction is invalid.
02:48:54 <HackEgo> 90
02:48:59 <oerjan> wtf
02:49:03 <elliott> pikhq_: readTVarIO avoids the transaction too :P
02:49:03 <pikhq_> If the transaction's invalid, you get to do the transaction all over again.
02:49:10 <elliott> oerjan: ?
02:49:26 <pikhq_> So, it's cheap unless you're putting to the var very often.
02:49:32 <oerjan> `frink 99 -> denary
02:49:35 <pikhq_> Say, at the point where I wonder why the hell you're doing threads.
02:49:41 <elliott> http://www.wolframalpha.com/input/?i=99+in+undecimal
02:49:41 <HackEgo> 99
02:49:43 <elliott> definitely correct
02:49:50 <elliott> oerjan: AKA decimal :P
02:49:56 <oerjan> O KAY
02:50:02 -!- ralc has quit (Remote host closed the connection).
02:50:27 <elliott> pikhq_: Hmm, I wonder how I'll handle the case of e.g. teleports.
02:50:42 <oerjan> `frink 99 -> duovigintesimal
02:50:42 <elliott> I want to unilaterally set the position of a player, even though it'll be changing constantly because e.g. they're running.
02:50:48 <elliott> Oh, I guess modifyTVar will avoid conflicts in that case?
02:50:51 <HackEgo> Unknown symbol "duovigintesimal" \ Warning: undefined symbol "duovigintesimal". \ Unconvertable expression: \ 99 -> duovigintesimal (undefined symbol)
02:50:55 <elliott> Or will it?
02:51:02 <elliott> Wait, there is no modifyTVar :P
02:51:07 <elliott> But yeah, not sure what to do there.
02:51:13 <elliott> The player thread will be constantly incrementing their position.
02:51:23 <elliott> So there'll be a conflict every time the teleportation transaction runs.
02:51:34 <oerjan> elliott: hm, "cropText"
02:51:36 <elliott> I mean, sure, they'll stop running EVENTUALLY, but it means you can theoretically indefinitely postpone being teleported.
02:51:37 <pikhq_> The player thread will itself be running transactions.
02:51:56 <elliott> oerjan: I wanted to call it "truncate" but that's taken.
02:52:03 <elliott> oerjan: I'd rather avoid "Text" since I use the Text type :P
02:52:07 <elliott> (but this takes Strings)
02:52:12 <oerjan> cropWhatever
02:52:13 <pikhq_> It is equally likely the incrementing of the position will be the transaction that gets retried.
02:53:01 <elliott> pikhq_: Oh, I thought it'd retry them both simultaneously.
02:53:11 <elliott> Right, duh, of course retrying is sequential whenever that would matter.
02:53:25 -!- Nisstyre has joined.
02:53:53 <pikhq_> What happens is that each time it tries to commit a transaction, at least one transaction will actually commit.
02:54:16 <pikhq_> And it will continue down the list of transactions to commit sequentially, only retrying the ones that fail.
02:54:45 <elliott> Right.
02:54:46 <pikhq_> So, you're *always* getting at least one transaction to succeed, and in the common case multiple transactions will succeed.
02:55:16 <pikhq_> Notice that the worst-case behavior is basically sequential execution with added overhead. :)
02:56:14 <elliott> oerjan: the problem with ellipse is that it reads like a noun to me...
02:56:15 <elliott> :P
02:56:24 <elliott> hmm... cutString?
02:56:29 <elliott> cutoff?
02:56:36 <oerjan> CROP I SAY
02:56:37 <elliott> oerjan: monqy: how does cutoff sound?
02:58:51 <monqy> cutoff is okay but it does more than that it's more of a fadeout but that's awful
02:59:33 <elliott> > let cutoff end n xs | n <= length end && xs `isLongerThan` n - length end = end; cutoff end n (x:xs) = x : cutoff end (n-1) xs; isLongerThan _ [] = False; isLongerThan 0 _ = True; isLongerThan n (_:xs) = isLongerThan (n-1) xs in cutoff "..." 9 "abc"
02:59:34 <lambdabot> Couldn't match expected type `[t]'
02:59:34 <lambdabot> against inferred type `GHC.Types...
02:59:39 <elliott> > let cutoff end n xs | n <= length end && xs `isLongerThan` n - length end = end; cutoff end n (x:xs) = x : cutoff end (n-1) xs; isLongerThan _ [] = False; isLongerThan 0 _ = True; isLongerThan n (_:xs) = isLongerThan (n-1) xs in cutoff "..." 9 (replicate 9 'a')
02:59:40 <lambdabot> Couldn't match expected type `[t]'
02:59:40 <lambdabot> against inferred type `GHC.Types...
02:59:44 <elliott> ...
02:59:54 <elliott> > let cutoff end n xs | n <= length end && xs `isLongerThan` (n - length end) = end; cutoff end n (x:xs) = x : cutoff end (n-1) xs; isLongerThan _ [] = False; isLongerThan 0 _ = True; isLongerThan n (_:xs) = isLongerThan (n-1) xs in cutoff "..." 9 (replicate 9 'a')
02:59:55 <lambdabot> Couldn't match expected type `[t]'
02:59:56 <lambdabot> against inferred type `GHC.Types...
02:59:59 <elliott> oerjan: hepl
03:00:52 <CakeProphet> lol @ frink's multifor
03:01:13 <CakeProphet> it's actually not a bad idea it's just a funny name.
03:01:26 <elliott> yeah multifor is nice
03:02:06 <oerjan> elliott: wrong isLongerThan argument order
03:02:36 <elliott> oh duh
03:02:41 <CakeProphet> Frink can evaluate a string as a Frink expression. If that means something to you, good. It's cool. You can make programs that write and run their own programs. Frink became self-aware on December 7, 2001 at 9:26 PM MST. This is 1561.926 days after Skynet became self-aware. History will be the judge if this December 7th is another date that will live in infamy.
03:02:46 <CakeProphet> ...
03:03:34 <elliott> > let cutoff end n xs | n <= length end && xs `isLongerThan` n - length end = end; cutoff end n (x:xs) = x : cutoff end (n-1) xs; isLongerThan [] _ = False; isLongerThan _ 0 = True; isLongerThan (_:xs) n = xs `isLongerThan` (n-1) in cutoff "..." 9 "abc"
03:03:35 <lambdabot> Couldn't match expected type `GHC.Bool.Bool'
03:03:35 <lambdabot> against inferred type ...
03:03:43 <elliott> oerjan: hi, hepl
03:03:48 <elliott> > let cutoff end n xs | n <= length end && xs `isLongerThan` (n - length end) = end; cutoff end n (x:xs) = x : cutoff end (n-1) xs; isLongerThan [] _ = False; isLongerThan _ 0 = True; isLongerThan (_:xs) n = xs `isLongerThan` (n-1) in cutoff "..." 9 "abc"
03:03:49 <lambdabot> "abc*Exception: <interactive>:3:4-127: Non-exhaustive patterns in function ...
03:03:52 <elliott> X-D
03:04:16 <oerjan> it types!
03:04:16 <monqy> nice pattermns for cutoff
03:04:34 <CakeProphet> ASCII needs moar brackets.
03:04:38 <oerjan> that means you're at least halfway there
03:04:43 <monqy> nice patterms for islognerthan too
03:04:51 <elliott> cutoff :: String -> Int -> String -> String
03:04:51 <elliott> cutoff end n = cutoff' end (n - length end)
03:04:52 <elliott> where cutoff' _ _ [] = []
03:04:52 <elliott> cutoff' end 0 _ = end
03:04:52 <elliott> cutoff' end m (x:xs) = x : cutoff' end (m-1) xs
03:04:55 <elliott> that should do it, I think
03:05:32 <oerjan> elliott: you are missing cutoff end n [] case
03:05:42 <elliott> oerjan: look closely
03:05:44 <elliott> <elliott> where cutoff' _ _ [] = []
03:05:45 <oerjan> in what you tried
03:05:47 <elliott> PEEKABOO
03:05:48 <elliott> :P
03:05:51 <elliott> but yeah I got that
03:06:56 <elliott> CakeProphet: but yeah, I really like Frink, it is one of the few languages I have few problems with
03:08:06 <CakeProphet> what about the "ugly boolean" stuff
03:08:13 <CakeProphet> like with "" being false and stuff.
03:08:29 <elliott> I said few problems
03:08:34 <CakeProphet> I think the units are Very Cool and would like to see that in other languages.
03:08:44 <elliott> there's a Haskell library for it but it's not very good
03:08:51 <oerjan> elliott: just one corner case, n < length end
03:08:53 <elliott> but yes, dimensional analysis is Good
03:08:56 <elliott> oerjan: indeed
03:09:08 <elliott> oerjan: Haskell should have saturation arithmetic :P
03:09:09 <CakeProphet> can you do things like sphereVolume[radius is length] := ...
03:09:15 <CakeProphet> in the Haskell library
03:09:31 <elliott> it's something like
03:09:39 <elliott> sphereVolume :: (Num a) => a :. Length -> a :. Length
03:09:49 <CakeProphet> ah
03:10:03 <elliott> http://hackage.haskell.org/packages/archive/dimensional/0.10.1.2/doc/html/Numeric-Units-Dimensional-SIUnits.html
03:10:13 <elliott> http://hackage.haskell.org/packages/archive/dimensional/0.10.1.2/doc/html/Numeric-Units-Dimensional.html
03:10:15 <elliott> Nice typeclasses.
03:10:18 <CakeProphet> that's not... too bad.
03:10:21 <elliott> Should be type families.
03:10:35 <elliott> the use looks something like
03:10:35 <elliott> sqrt (9 *~ meter^pos2)
03:10:39 <elliott> at least that's the example I found on their page :P
03:10:40 <oerjan> elliott: oh hm i don't think that cutoff' _ _ [] = [] is right, because you need to end when the length of what's remaining == length of end
03:10:44 <elliott> :: Area Double
03:10:47 <elliott> CakeProphet: so it's actually better than I said
03:10:56 <elliott> oerjan: no, I don't
03:11:06 <elliott> oerjan: if a line fits on the screen, no ellipsis is required
03:11:43 <elliott> Prelude Main MC.Utils> cutoff "..." 9 (replicate 9 'a')
03:11:43 <elliott> "aaaaaa..."
03:11:44 <elliott> hmm
03:11:48 <elliott> oerjan: you're right, that is a bug :P
03:11:51 <CakeProphet> type DOne = Dim Zero Zero Zero Zero Zero Zero Zero
03:11:52 <CakeProphet> lol wat
03:11:53 <elliott> oerjan: just an off-by-one, I think
03:12:03 <oerjan> off-by-length of end, i think
03:12:16 <CakeProphet> is that....
03:12:17 <elliott> oerjan: um howso?
03:12:19 <CakeProphet> binary in phantom types?
03:12:37 <oerjan> the problem is that once you know end is supposed to go there, you have already got too many chars from the string included
03:12:43 <elliott> CakeProphet: i don't think so
03:12:45 <elliott> data Dim l m t i th n j
03:12:54 <elliott> oerjan: hm...
03:12:57 <CakeProphet> oh I see.
03:12:57 <elliott> oerjan: you fix it :P
03:13:01 <elliott> it was so ugly first time around
03:13:18 <CakeProphet> it's just kind of ugly and probably not as flexible as frink's unit system.
03:14:08 <elliott> `frink for line = lines["http://esolangs.org"] { println["test"] }
03:14:16 <HackEgo> Syntax error: <String>, line 1, near column 40 \ for line = lines["http://esolangs.org"] { println["test"] } \ ^ \ 1 error(s) occurred during parsing.
03:14:21 <elliott> `frink for line = lines["http://esolangs.org"] do { println["test"] }
03:14:29 <HackEgo> Syntax error: <String>, line 1, near column 40 \ for line = lines["http://esolangs.org"] do { println["test"] } \ ^ \ 1 error(s) occurred during parsing.
03:14:32 <elliott> hmph :P
03:15:58 <elliott> `frink newJava["frink.parser.Frink", []]
03:16:08 <HackEgo> JavaObject:frink.parser.Frink
03:16:16 -!- pikhq has joined.
03:16:26 <elliott> `frink newJava["frink.parser.Frink", []].parseString["\"meta\""]
03:16:36 <elliott> I wonder why it calls eval parse in the API :P
03:16:38 <HackEgo> meta
03:16:44 <elliott> CakeProphet: Check out that shit :P
03:17:14 <elliott> `frink newJava["frink.parser.Frink", []].parseStringToExpression["\"meta\""]
03:17:26 <HackEgo> meta
03:17:32 <elliott> Awww yeaaah
03:17:41 <CakeProphet> ...
03:17:59 <CakeProphet> next logical step: evaluate Jython?
03:18:27 <elliott> oerjan: Fixed it yet?
03:18:54 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l ys1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing now yeah"
03:18:56 <lambdabot> "testing..."
03:19:00 <CakeProphet> (assuming that Jython has an interpreter binding/implementation in Java)
03:19:05 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l ys1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing eh"
03:19:07 <lambdabot> "testing..."
03:19:09 <elliott> CakeProphet: Dude.
03:19:10 <oerjan> argh
03:19:13 <elliott> What else would Jython be written in?
03:19:37 -!- pikhq_ has quit (Ping timeout: 248 seconds).
03:19:45 <CakeProphet> elliott: I've learned not to assume these things.
03:19:46 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l ys1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing a"
03:19:48 <lambdabot> "testing..."
03:19:51 <elliott> http://futureboy.us/frinkdocs/images/multiinput.png ;; I love how you can get shit like this from [first, last] = input["What is your name",[["First Name", "Jeff"], ["Last Name", "Albertson"]]]
03:19:57 <elliott> Except less ugly in the more recent GUIs Frink has :P
03:20:08 <oerjan> oh duh
03:20:29 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing eh"
03:20:32 <lambdabot> "testing eh"
03:20:35 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing now"
03:20:37 <lambdabot> "testing..."
03:20:41 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "..." 10 "testing a"
03:20:43 <lambdabot> "testing a"
03:20:46 <oerjan> elliott: ^
03:20:58 <elliott> oerjan: ok, now to eliminate all uses of let and case :P
03:21:04 <oerjan> i didn't handle n < l, though. or did i
03:21:26 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "........." 10 "test ho"
03:21:28 <lambdabot> "test ho"
03:21:43 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "........." 4 "test ho"
03:21:45 <lambdabot> "test ho"
03:22:13 <elliott> Is the use of splitAt really necesssary? It's kinda gross
03:22:19 <elliott> But I guess nicer than a loop
03:22:43 <elliott> oerjan: your naming is very inconsistent
03:22:46 <elliott> of the xs/yss
03:23:01 <oerjan> well i named y what would be used after the in
03:23:51 <elliott> hmm. I'm just wondering why it's so ugly :P
03:23:55 <elliott> THIS IS AN ELEGANT ALGORITHM ;__;
03:24:21 <oerjan> > splitAt (-2) "testing"
03:24:23 <lambdabot> ("","testing")
03:25:16 <oerjan> hm...
03:25:28 <oerjan> > let cutoff end n xs = let l = length end; (ys1, xs1) = splitAt (n - l) xs; (ys2, ys3) = splitAt l xs1 in ys1 ++ case ys3 of [] -> ys2; _ -> end in cutoff "........." 4 "test how this works"
03:25:30 <lambdabot> "........."
03:25:59 <oerjan> i think it's about as reasonable as possible in the n < l case
03:26:16 <Madoka-Kaname> What's that doing?
03:26:35 <elliott> oerjan: I appreciate the effort, but am going to stay mired in indecision until I figure out a nicer way of writing it
03:26:40 <elliott> well maybe. :p
03:26:47 <oerjan> well...
03:26:52 <elliott> at least one that doesn't involve affixing numbers to variable names
03:26:55 <elliott> or a case
03:31:52 <oerjan> :t runState
03:31:54 <lambdabot> forall s a. State s a -> s -> (a, s)
03:32:00 <elliott> oerjan: oh dear
03:32:50 -!- hagb4rd has joined.
03:33:01 <oerjan> > let cutoff end n = cutoff' . runState (mapM state [splitAt (n-l), splitAt l]); l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing now"
03:33:02 <lambdabot> Not in scope: `end'Not in scope: `end'
03:33:12 <oerjan> oops
03:33:28 <oerjan> > let cutoff end n = cutoff' . runState (mapM state [splitAt (n-l), splitAt l]) where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing now"
03:33:30 <lambdabot> "testing..."
03:33:31 * elliott wonders what oerjan's definition of less ugly is :P
03:33:39 <oerjan> *MWAHAHAHA*
03:33:59 <oerjan> > let cutoff end n = cutoff' . runState (mapM state [splitAt (n-l), splitAt l]) where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing eh"
03:34:01 <lambdabot> Terminated
03:34:05 <oerjan> argh
03:34:06 <oerjan> > let cutoff end n = cutoff' . runState (mapM state [splitAt (n-l), splitAt l]) where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing eh"
03:34:08 <lambdabot> "testing eh"
03:34:13 <oerjan> whew
03:34:26 <oerjan> Y U NO LIKE MONADS
03:34:36 <elliott> oerjan will be shocked by the news that I'm not adopting this version
03:34:56 <oerjan> ;_;
03:35:16 <elliott> there there
03:35:37 <oerjan> well the other idea i had involved using curry a lot :P
03:35:39 -!- MDude has changed nick to MSleep.
03:35:49 <oerjan> er, uncurry
03:36:14 <oerjan> cutoff' is there to solve your case hate
03:36:46 <oerjan> hm...
03:36:50 <elliott> it's not case hate, it's
03:36:54 <elliott> cutoff end n xs = ys ++ case ys'' of [] -> ys'; _ -> end
03:36:55 <elliott> hate :P
03:37:13 <elliott> i don't know, it definitely feels like this algorithm is simple. my version that only works for ellipses is trivial:
03:37:23 <elliott> cutoff _ "" = ""
03:37:40 <elliott> cutoff THREE (_:_:_:_:_) = "..."
03:37:47 <elliott> cutoff n (x:xs) = x : cutoff (n-one) xs
03:37:55 <elliott> so the "special case" of [] is odd to me.
03:38:07 <oerjan> it just cuts off the part that is always included, then the part that might possibly be included, and then checks whether there is anything left that cannot.
03:38:12 <oerjan> :t mapAccumL
03:38:13 <lambdabot> forall acc x y. (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
03:38:32 <oerjan> hm...
03:38:46 <elliott> I have never once in my life used mapAccumL :P
03:38:55 <monqy> I have once!!
03:39:06 <monqy> or wait maybe it was mapaccumr......
03:39:11 <CakeProphet> challenge: write a Haskell program that strips preceding and trailing whitespace, and then reduces multiple consecutive occurences of whitespace within the string to one space
03:39:23 <CakeProphet> not necessarily in that order or in any order at all.
03:39:36 <elliott> atEnd (dropWhile isSpace) . dropWhile isSpace where atEnd f = reverse . f . reverse
03:39:40 <elliott> there's two thirds of it
03:39:49 <CakeProphet> :t atEnd
03:39:50 <lambdabot> Not in scope: `atEnd'
03:39:54 <elliott> you'r eblind
03:39:56 <elliott> you're blind
03:40:05 <oerjan> > let cutoff end n = mapAccumL (flip splitAt) [n-l, l] where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing eh"
03:40:05 <monqy> > unwords . words $ " a b "
03:40:05 <CakeProphet> I just skim lazily :P
03:40:06 <lambdabot> Couldn't match expected type `GHC.Types.Int'
03:40:06 <lambdabot> against inferred type ...
03:40:06 <lambdabot> "a b"
03:40:08 <elliott> > nubBy (\a b -> isSpace a && isSpace b) "abc def quux \t x"
03:40:09 <lambdabot> "abc defquuxx"
03:40:12 <elliott> pah
03:40:18 <oerjan> argh
03:40:34 <elliott> oerjan: what is cutoff' there for?
03:40:36 <monqy> CakeProphet: were you joking
03:40:41 <oerjan> oh hm
03:40:43 <CakeProphet> no
03:40:46 <monqy> CakeProphet: because: unwords.words seems to do what you want
03:40:50 <oerjan> elliott: i said, your case avoidance
03:40:51 <elliott> that too
03:40:54 <CakeProphet> monqy: not quite
03:40:55 <elliott> oerjan: you NEVER USE CUTOFF'
03:40:57 <elliott> was my point
03:40:58 <monqy> oh?
03:41:04 <oerjan> oh right
03:41:08 <elliott> monqy: well it turns \n into " "
03:41:09 <CakeProphet> yes it doesn't preserve the kind of whitespace
03:41:11 <CakeProphet> yes
03:41:15 <oerjan> > let cutoff end n = cutoff' . mapAccumL (flip splitAt) [n-l, l] where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing eh"
03:41:16 <lambdabot> Couldn't match expected type `[a]'
03:41:17 <lambdabot> against inferred type `GHC.Types...
03:41:18 <monqy> oh you want it to preserve the kinds
03:42:40 <oerjan> > let cutoff end n = cutoff' . flip (mapAccumL (flip splitAt)) [n-l, l] where l = length end; cutoff' ([], [pre,post]) = pre++post; cutoff' (_,[pre,_]) = pre++end in cutoff "..." 10 "testing eh"
03:42:42 <lambdabot> " eh..."
03:42:48 <oerjan> wat
03:43:09 <oerjan> oops :P
03:43:30 <oerjan> :t mapAccumR
03:43:31 <lambdabot> forall acc x y. (acc -> x -> (acc, y)) -> acc -> [x] -> (acc, [y])
03:43:55 <oerjan> elliott: just about _every function_ takes arguments in the wrong order for this to be pretty :P
03:44:12 <oerjan> in and out
03:44:13 <elliott> oerjan: you can flip the arguments of cutoff
03:44:14 <elliott> if you want
03:44:24 <oerjan> no, not that one :P
03:44:34 <elliott> what do you need flipping then :P
03:44:48 <oerjan> the output (acc, y), for one thing :P
03:44:55 <oerjan> in mapAccum*
03:45:01 <elliott> shall I ask #haskell to prettify it then? :p
03:45:20 <CakeProphet> code pageant = like golfing but with prettiness.
03:47:23 <elliott> <hpaste_> “Can anyone make this code less ugly?” pasted “elliott” at http://hpaste.org/52166
03:47:24 <elliott> oerjan: here we go :P
03:49:10 <CakeProphet> couldn't you use a guard or something to get rid of the case?
03:49:18 <elliott> huh, /another/ internet suicide by a famous programmer
03:49:57 <monqy> waht
03:50:39 <elliott> this time it's mark pilgrim who's erased their entire online presence
03:50:43 <elliott> (last time _why)
03:50:43 <oerjan> CakeProphet: then it wouldn't be lazy in the ys part, but maybe elliott wouldn't care about that
03:52:00 <oerjan> but a pattern guard on ys'' would work, wouldn't it
03:52:11 <elliott> pattern guards are so recently standardised :'(
03:52:49 <oerjan> hm now, what about my uncurry idea...
03:54:08 <elliott> oerjan: what kind of pattern guard, again?
03:54:33 <oerjan> i have never used them, but isn't | [] <- ys'' the syntax
03:54:45 <elliott> well yes
03:55:21 <elliott> oerjan: it'd be nice if you could give me nicer names for the xss and yss though :P
03:56:37 -!- pikhq_ has joined.
03:57:11 <CakeProphet> elliott:
03:57:13 <CakeProphet> er
03:57:27 <CakeProphet> elliott: intermediateValue1 intermediateValue2 intermediateValue3 ...
03:57:58 <oerjan> > let cutoff end n = splitAt (n-l) >>> uncurry `id` \ys -> splitAt l >>> uncurry `id` \ys' ys'' -> ys ++ case ys'' of [] -> ys'; _ -> end where l = length end; cutoff' ([pre,post],[]) = pre++post; cutoff' ([pre,_],_) = pre++end in cutoff "..." 10 "testing eh"
03:57:59 <lambdabot> Couldn't match expected type `GHC.Types.Int'
03:57:59 <lambdabot> against inferred type ...
03:58:07 <oerjan> argh newline paste
03:58:08 <elliott> oerjan: i am not using arrows...
03:58:39 <CakeProphet> elliott: how do you expect to write Haskell without using functions?
03:58:41 <CakeProphet> :3
03:58:45 <oerjan> it was the only way i could think of to avoid parens around the lambdas
03:59:18 -!- pikhq has quit (Ping timeout: 255 seconds).
03:59:22 <CakeProphet> man you guys sure are weird about what's pretty and stuff.
03:59:31 <CakeProphet> weirdos
03:59:37 <CakeProphet> veirdooes
04:00:34 <oerjan> > let cutoff end n = uncurry (\ys -> uncurry (\ys' ys'' -> ys ++ case ys'' of [] -> ys'; _ -> end) . splitAt l) . splitAt (n-l) where l = length end in cutoff "..." 10 "testing eh"
04:00:36 <lambdabot> "testing eh"
04:00:49 <oerjan> > let cutoff end n = uncurry (\ys -> uncurry (\ys' ys'' -> ys ++ case ys'' of [] -> ys'; _ -> end) . splitAt l) . splitAt (n-l) where l = length end in cutoff "..." 10 "testing now"
04:00:50 <CakeProphet> maybe Haskell is just an ugly language and there's NOTHING YOU CAN DO ABOUT IT BAHAHAHAHA.
04:00:51 <lambdabot> "testing..."
04:01:21 <Madoka-Kaname> oerjan, why not just use a recursive function or something?
04:01:23 <Madoka-Kaname> :v
04:01:26 <oerjan> CakeProphet: well _i_ think what elliott hpasted from my code was pretty :P
04:01:38 <elliott> oerjan: it's the best of a bad job :P
04:01:41 <elliott> oerjan: but i really want nicer names for the variables
04:02:17 <oerjan> > let cutoff end n = uncurry (\pre -> uncurry (\post test -> pre ++ case test of [] -> post; _ -> end) . splitAt l) . splitAt (n-l) where l = length end in cutoff "..." 10 "testing now"
04:02:19 <lambdabot> "testing..."
04:02:41 <oerjan> hm...
04:02:56 <oerjan> > let cutoff end n = uncurry (\pre -> uncurry (\post left -> pre ++ case left of [] -> post; _ -> end) . splitAt l) . splitAt (n-l) where l = length end in cutoff "..." 10 "testing now"
04:02:58 <lambdabot> "testing..."
04:03:25 <elliott> oerjan: well it may be pretty but it has another flaw too
04:03:27 <elliott> the use of (++)
04:03:36 <elliott> which is /not/ optimised out, I just checked the core :D
04:03:44 <oerjan> sheesh
04:04:04 <elliott> Madoka-Kaname: please supply a recursive function if you can think of one, btw
04:04:09 <elliott> the one I wrote was horrible
04:04:15 <elliott> and the one that wasn't horrible didn't work
04:04:15 <Madoka-Kaname> Actually.
04:04:19 <Madoka-Kaname> Doesn't even have to be recursive.
04:04:19 <Madoka-Kaname> cutoff end n str = if(length str' > cutlen) then (take cutlen str') ++ end else str'
04:04:19 <Madoka-Kaname> where cutlen = n - length end
04:04:19 <Madoka-Kaname> str' = take n str
04:04:21 <Madoka-Kaname> Can't you do that?
04:04:33 <oerjan> i can move pre++ out a bit
04:04:55 <elliott> Madoka-Kaname: firstly, you have parenthesis disease.
04:05:03 <elliott> Madoka-Kaname: secondly, that doesn't work on infinite inputs.
04:05:08 <elliott> thirdly, it traverses the input twice
04:05:13 <oerjan> yes it does, read it more carefully
04:05:24 <elliott> oerjan: ?
04:05:28 <elliott> oh
04:05:36 <elliott> ok, it technically does, but it still traverses the input twice :P
04:05:46 <Madoka-Kaname> And infinite end doesn't make sense, so.
04:05:56 <oerjan> it failst on length str == n, though
04:05:58 <oerjan> *fails
04:06:16 <elliott> Madoka-Kaname: infinite end /does/ make sense
04:06:20 <elliott> but it's not important
04:08:33 <elliott> oerjan: I'd accept a simple recursive function as long as it works, btw
04:08:40 <oerjan> > let cutoff end n = uncurry (\pre -> (pre++) . uncurry (\post left -> case left of [] -> post; _ -> end) . splitAt l) . splitAt (n-l) where l = length end in cutoff "..." 10 "testing now"
04:08:42 <lambdabot> "testing..."
04:08:49 <oerjan> does that optimize better?
04:08:50 <elliott> and would probably prefer it, to ease my mind
04:09:00 <elliott> oerjan: it certainly doesn't /read/ better... but I'll check
04:10:03 <oerjan> i suppose splitAt is dangerous for avoid thunks in both parts, though
04:10:09 <oerjan> *avoiding
04:11:21 -!- hagb4rd has quit (Ping timeout: 248 seconds).
04:13:17 <elliott> oerjan: it is /definitely/ not optimised better
04:13:39 <elliott> I don't really care how fast it goes, it's just a convenient way to reject ugly :P
04:16:49 <oerjan> > let cutoff end n = cutoff' (n-l) where l = length end; cutoff' 0 xs | null (drop l xs) = xs | otherwise = end; cutoff' n [] = []; cutoff' n (x:xs) = x : cutoff' (n-1) xs in cutoff "..." 10 "testing now"
04:16:50 <lambdabot> "testing..."
04:16:54 <oerjan> > let cutoff end n = cutoff' (n-l) where l = length end; cutoff' 0 xs | null (drop l xs) = xs | otherwise = end; cutoff' n [] = []; cutoff' n (x:xs) = x : cutoff' (n-1) xs in cutoff "..." 10 "testing eh"
04:16:55 <lambdabot> "testing eh"
04:17:38 <elliott> oerjan: hm that looks nice
04:18:20 <elliott> oerjan: that traversal in null (drop l xs) is inevitable, right? :P
04:18:24 <elliott> oh, it only looks one ahead
04:18:47 <oerjan> yeah it cannot give any more characters until it's checked that
04:19:07 <elliott> hm I wonder if this is an unfold of some kind
04:20:46 <oerjan> it's essentially the same as the splitAt algorithm, except it is careful to return characters if possible before recursing
04:21:02 <elliott> it looks kind of like an unfold
04:21:03 <elliott> :P
04:21:07 <elliott> :t unfoldr
04:21:08 <lambdabot> forall b a. (b -> Maybe (a, b)) -> b -> [a]
04:21:22 <oerjan> unfoldr is tricky to get the end right, it hink
04:21:28 <oerjan> *i think
04:21:36 <elliott> hmm, right
04:22:23 <elliott> "Mark Pilgrim is alive/annoyed we called the police."
04:22:33 <elliott> (-- jason scott)
04:23:59 <oerjan> elliott: strictly speaking most of it i think is fusing something of the form (\(x,y) -> x++ f y) (splitAt (n-l) xs)
04:24:14 <oerjan> which is what is needed to avoid your dreaded ++ :P
04:25:16 <oerjan> maybe that can be written as something unfoldry
04:25:51 <oerjan> hm or not.
04:25:57 <oerjan> food ->
04:33:36 -!- copumpkin has quit (Ping timeout: 244 seconds).
04:33:37 <elliott> cutoff end m
04:33:37 <elliott> | m < l = error "cutoff: target length shorter than terminator string"
04:33:37 <elliott> | otherwise = cutoff' (m-l)
04:33:37 <elliott> where l = length end
04:33:37 <elliott> cutoff' 0 xs
04:33:37 <elliott> | null (drop l xs) = xs
04:33:39 <elliott> | otherwise = end
04:33:41 <elliott> cutoff' _ [] = []
04:33:43 <elliott> cutoff' n (x:xs) = x : cutoff' (n-1) xs
04:33:45 <elliott> oerjan: ugly but oh well
04:34:00 -!- copumpkin has joined.
04:43:57 -!- GreaseMonkey has quit (Ping timeout: 260 seconds).
04:48:35 <elliott> oerjan: I HAVE ANOTHER FUNCTION FOR YOU TO NAME
04:49:41 <elliott> oerjan: Stop running away.
04:49:56 <monqy> i can name it unless i can't
04:50:02 <monqy> i'm bad at names, after all
04:50:21 <elliott> f "Abc" "fooBarBaz" == "abcFooBarBaz"
04:50:21 <monqy> except for "monqy". that was a good one.
04:50:28 <elliott> basically, given constructor and field name, returns a field name :P
04:51:03 <elliott> f "NamedEntitySpawn" "currentItem" == "namedEntitySpawnCurrentItem"
04:51:08 <elliott> implementation:
04:51:12 <elliott> f cs "" = undefined
04:51:14 <elliott> f "" fs = undefined
04:51:16 <Madoka-Kaname> camelCaseConcat
04:51:21 <elliott> f (c:cs) (f:fs) = toLower c : cs ++ toUpper f : fs
04:51:22 <fizzie> givenAConstructorAndFieldNameReturnsAFieldName.
04:51:22 <elliott> oerjan: GOGOGO
04:51:41 <Madoka-Kaname> elliott, camelCaseConcat
04:51:47 <elliott> Madoka-Kaname:
04:51:48 <elliott> :t concat
04:51:49 <lambdabot> forall a. [[a]] -> [a]
04:51:59 <elliott> <wavewave> that's how >>= is implemented and it behaves the same as the twistedmatrix in python
04:52:00 <elliott> I...
04:52:02 <Madoka-Kaname> @hoogle [a] -> [a] -> [a]
04:52:03 <lambdabot> Prelude (++) :: [a] -> [a] -> [a]
04:52:03 <lambdabot> Data.List (++) :: [a] -> [a] -> [a]
04:52:03 <lambdabot> Data.List deleteFirstsBy :: (a -> a -> Bool) -> [a] -> [a] -> [a]
04:52:09 <monqy> elliott: i
04:52:23 <Madoka-Kaname> @hoogle join
04:52:23 <lambdabot> Control.Monad join :: Monad m => m (m a) -> m a
04:52:24 <lambdabot> System.FilePath.Posix joinDrive :: FilePath -> FilePath -> FilePath
04:52:24 <lambdabot> System.FilePath.Windows joinDrive :: FilePath -> FilePath -> FilePath
04:52:32 <elliott> oerjan: hepl
04:52:35 <elliott> <elliott> f (c:cs) (f:fs) = toLower c : cs ++ toUpper f : fs
04:52:35 <Madoka-Kaname> elliott, "camelCase[something]" then.
04:52:37 <elliott> <elliott> basically, given constructor and field name, returns a field name :P
04:52:38 <elliott> <elliott> f "NamedEntitySpawn" "currentItem" == "namedEntitySpawnCurrentItem"
04:52:40 <Madoka-Kaname> @src (++)
04:52:40 <lambdabot> [] ++ ys = ys
04:52:40 <lambdabot> (x:xs) ++ ys = x : (xs ++ ys)
04:52:41 <lambdabot> -- OR
04:52:41 <lambdabot> xs ++ ys = foldr (:) ys xs
04:52:41 <elliott> oerjan: hepl hepl hepl pelhpel
04:52:48 <elliott> Madoka-Kaname: That isn't even camel case, thisIs.
04:52:49 <elliott> erm
04:52:50 <elliott> Madoka-Kaname: That isn't even camel case, ThisIs.
04:52:56 <elliott> (Subject to flamewars.)
04:53:06 <Madoka-Kaname> javaCase[something]
04:54:00 <elliott> I LIKE HOW OERJAN ISN'T NAMING IT
04:54:28 <monqy> my implementation proabably would have been something stupid like (++) . modL headLens toLower because im dumb and like doing things like that
04:54:36 <monqy> name? no idea
04:54:57 <elliott> monqy: that avoids the toUpper on the second argument
04:55:06 <monqy> oh right i did not notice that
04:55:12 <monqy> bad at noticing
04:55:14 <elliott> i'm not sure head is a lens, anyway
04:55:20 <monqy> it isn't ;_;
04:55:25 <elliott> i mean
04:55:28 <elliott> i'm not sure it obeys the lens laws
04:55:49 <monqy> is trhere any good way to modify head
04:55:51 <monqy> without points
04:57:08 <elliott> monqy: did you see all my fink fanboying above because
04:57:08 <elliott> you should
04:57:09 <elliott> because
04:57:10 <elliott> frink is
04:57:11 <elliott> the best
04:57:14 <oerjan> elliott: +:+
04:57:22 <elliott> oerjan: not inmfxeixe....
04:57:28 <monqy> elliott: i saw the name frink and then opened a tab for frink stuff so i can ignore it
04:57:33 <oerjan> why not :(
04:57:33 <elliott> monqy: READE LEOGS...
04:57:39 <monqy> elliott: how much logs :(
04:57:41 <elliott> oerjan: well maybe but ... quite obscure....
04:57:48 <elliott> oerjan: I would go with camelCase but it's not really camel case
04:57:51 <fizzie> Call it (.++^). (It's trying to be (v++^) but since v won't go.)
04:57:56 <oerjan> otherwise, camelCaseAppend
04:57:59 <monqy> +camel+
04:58:01 <elliott> it's not
04:58:02 <elliott> really
04:58:02 <elliott> camel
04:58:03 <elliott> case
04:58:51 <elliott> monqy: read from http://codu.org/logs/log/_esoteric/2011-10-05#005904elliott to http://codu.org/logs/log/_esoteric/2011-10-05#015244elliott :P
04:58:51 <fizzie> lowerCaseCamelCaseAppned.
04:59:03 <elliott> (00:59 to 01:52)
05:00:18 <elliott> oerjan: i'm fine with it having a name that involves "field" btw
05:00:26 <elliott> my first try was fieldName, but that's taken
05:00:34 <elliott> (by a record accessor :P)
05:00:37 <fizzie> "filedNameify".
05:00:45 <monqy> fieldNamify
05:00:52 <elliott> There's a reason I pinged oerjan.
05:00:55 <fizzie> fieldNamiscate.
05:00:58 <monqy> feldnam
05:01:15 <fizzie> fieldoIt.
05:01:23 -!- pikhq has joined.
05:01:27 <elliott> oerjan: Ban those people and answer.
05:01:42 <fizzie> fieldoctrinate.
05:01:44 <monqy> oh hey i just noticed someone actually fiddled with elliott's hpaste
05:02:00 <elliott> Yes but
05:02:01 <elliott> -- | Fits a string to a certain length, replacing the last characters
05:02:02 <elliott> -- with a terminator if the string is longer.
05:02:02 <elliott> --
05:02:02 <elliott> -- > cutoff "..." 8 "abcd" == "abcd"
05:02:02 <elliott> -- > cutoff "..." 8 "abcdabcd" == "abcdabcd"
05:02:03 <elliott> -- > cutoff "..." 8 "abcdabcda" == "abcda..."
05:02:05 <elliott> cutoff
05:02:07 <elliott> :: String -- ^ Terminator string
05:02:09 <elliott> -> Int -- ^ Target length
05:02:11 <elliott> -> String -- ^ Input string
05:02:13 <elliott> -> String -- ^ Truncated result
05:02:15 <elliott> cutoff end m
05:02:17 <elliott> | m < l = error "cutoff: target length shorter than terminator string"
05:02:19 <elliott> | otherwise = cutoff' (m-l)
05:02:21 <elliott> where l = length end
05:02:23 <elliott> cutoff' 0 xs
05:02:25 <elliott> | null (drop l xs) = xs
05:02:27 <elliott> | otherwise = end
05:02:29 <elliott> cutoff' _ [] = []
05:02:31 <elliott> cutoff' n (x:xs) = x : cutoff' (n-1) xs
05:02:33 <elliott> it became too glorious of its own accord.
05:02:40 <monqy> ahh
05:02:52 <oerjan> fieldMerge
05:02:54 <fizzie> fieldMyName, as in "Pimp My Ride".
05:03:04 <elliott> I'm going to rip your skulls off.
05:03:21 <elliott> Would it help if I told you that the current name that I'm dissatisfied with is mkPacketFieldName?
05:03:27 -!- MichaelBurge has quit (Ping timeout: 258 seconds).
05:03:30 <monqy> helpFieldsHelp
05:03:31 <monqy> fieldsFriend
05:03:37 <elliott> oerjan: WOULD THAT HELP
05:03:46 <fizzie> fieldICantNameThis.
05:03:59 <monqy> namesAreHard
05:04:07 <oerjan> packsOfFields
05:04:07 <elliott> I didn't want "packetFieldName" because I have "packetName" and "packetShowsFieldsPrec" in a typeclass and I didn't want to make it look like it was part of that typeclass.
05:04:13 -!- pikhq_ has quit (Ping timeout: 258 seconds).
05:04:13 <elliott> You are horrible.
05:04:15 <elliott> I want to kill you.
05:04:28 <monqy> mkFieldFriend
05:04:42 <fizzie> snuggleTheseNamesIntoFieldishName.
05:04:53 <monqy> breedField
05:04:57 <oerjan> killingFields
05:05:57 <fizzie> fieldorTheAppendator.
05:06:04 <oerjan> fieldOfGold
05:06:59 <fizzie> I think he broke down under the weight of all the suggestions.
05:07:09 <fizzie> fieldNeverGiveUp.
05:07:15 <oerjan> yes. did he want you to op him too?
05:07:42 <elliott> YOU MUST BE PUNISHED
05:07:46 <fizzie> No, possibly because I never do anything.
05:07:53 <elliott> And oerjan does?
05:07:55 <fizzie> Ooh, fieldPunisher.
05:08:03 <elliott> OK that crosses the line.
05:08:03 <monqy> punish those fields
05:08:09 <elliott> fizzie: Op me, I must kick you.
05:08:18 <oerjan> quantumField
05:08:21 <monqy> elliottPunisher??? is that bad enough
05:08:27 <monqy> since it is
05:08:29 <monqy> punishing
05:08:30 <monqy> elliott
05:08:33 <monqy> by being bad
05:08:36 <elliott> monqy: Op me, I mu- fuck you, you can't even op me.
05:08:54 <elliott> I hate you and I hate living, I am going to go shuffle off this mortal coil.
05:09:05 <fizzie> Just call it "myFriendsAreDickheadsAndAreNotTakingThisSeriously".
05:09:19 <oerjan> i _told_ you these were killing fields.
05:09:38 <elliott> fizzie: You consider me your FRIEND after this???
05:09:44 <elliott> I am coming to Finland and there will be no survivors.
05:10:40 -!- ChanServ has set channel mode: +o fizzie.
05:10:43 -!- fizzie has kicked fizzie I think it's safer this way..
05:10:43 -!- fizzie has joined.
05:10:49 <elliott> fizzie: Um excuse me.
05:10:51 <fizzie> Oh no, autorejoin. :/
05:10:52 <elliott> You missed the two other sinners.
05:11:20 <fizzie> Yes, but doing anything to them would be *impolite*. Can't have that, no-no.
05:11:34 <oerjan> elliott: what is that first argument to your function, really?
05:11:35 <elliott> oerjan: monqy: Consent to your mandatory punishment.
05:11:41 <elliott> oerjan: constructor name
05:12:02 <oerjan> i mean, what does it have to do with packets?
05:12:16 <elliott> oerjan: because all the fields of my packets are named with that :P
05:12:26 <elliott> otherwise there are lots of clashes because the field names in my protocol files are short
05:12:31 <elliott> e.g.
05:12:36 <elliott> , packet 0x01 "Login"
05:12:36 <elliott> [ PF.entityID "entity"
05:12:36 <elliott> , PF.string "unused"
05:12:36 <elliott> , PF.long "mapSeed" -- as above
05:12:36 <elliott> -- Note that this is an *int*, not a bool.
05:12:37 <elliott> --
05:12:39 <elliott> -- FIXME: Give this its own type too.
05:12:41 <elliott> , PF.int "isCreative"
05:12:43 <elliott> , PF.worldID "world"
05:12:45 <elliott> , PF.difficulty "difficulty"
05:12:47 <elliott> , PF.ubyte "worldHeight"
05:12:49 <elliott> , PF.ubyte "maxPlayers"
05:12:51 <elliott> ]
05:12:53 <elliott> the fields are loginEntity, loginUnused, loginMapSeed, etc.
05:13:01 <elliott> and I need to reconstruct this field name within my fake "show" function that shows it like a record (but with more whitespace)
05:15:33 <elliott> oerjan: HOPE THIS HELPS
05:17:30 <elliott> monqy: berate oerjan
05:18:36 <monqy> oerjan: berate berate
05:18:39 <monqy> oerjan: (im berate you)
05:18:42 <monqy> elliott: is that ok
05:18:54 <elliott> monqy: ok
05:19:04 <monqy> elliott: is that enough mandatory punishment
05:19:06 <monqy> elliott: for me
05:20:00 <elliott> monqy: ok
05:23:34 <fizzie> I believe oerjan has gone into an infinite name-finding loop. Good job!
05:23:50 <fizzie> Now someone must go and reboot him.
05:23:59 <elliott> templates/GenericTemplate.hs:219:14:
05:23:59 <elliott> Warning: Pattern bindings containing unlifted types should use an outermost bang pattern:
05:23:59 <elliott> sts1@((HappyCons (st1@(action)) (_)))
05:23:59 <elliott> = happyDrop k (HappyCons (st) (sts))
05:23:59 <elliott> In an equation for `happyMonadReduce':
05:24:00 <elliott> happyMonadReduce k nt fn j tk st sts stk
05:24:01 <elliott> = happyThen1
05:24:03 <elliott> (fn stk tk)
05:24:05 <elliott> (\ r -> happyGoto nt j tk st1 sts1 (r `HappyStk` drop_stk))
05:24:07 <elliott> where
05:24:09 <elliott> sts1@((HappyCons (st1@(action)) (_)))
05:24:11 <elliott> = happyDrop k (HappyCons (st) (sts))
05:24:13 <elliott> drop_stk = happyDropStk k stk
05:24:15 <elliott> help
05:24:26 <monqy> happy
05:24:45 <fizzie> HappyMonad is sad. :(
05:24:49 <monqy> is this the happy parser generator or what
05:24:53 <monqy> because
05:24:54 <monqy> happy is a good name
05:25:02 <monqy> you should call your function happy
05:25:10 <elliott> no.......
05:26:43 <oerjan> happyField
05:27:30 <fizzie> Yay, it terminated!
05:27:37 -!- copumpkin has quit (Ping timeout: 248 seconds).
05:27:57 <monqy> happy termination
05:28:02 -!- copumpkin has joined.
05:28:13 <fizzie> Happy termination day, everybody.
05:28:44 <oerjan> praise the Computer for happy termination day!
05:28:44 <fizzie> fungot: Except you, not being a flash-sack you're obviously exempt from termination.
05:28:44 <fungot> fizzie: cyrus! are you leaving! let your hair down! get crazy! i'm opening a stall in leene! i thought she ate too!
05:29:27 <elliott> oerjan: i
05:29:28 <elliott> oerjan: explained
05:29:32 <elliott> oerjan: the first argument and shit
05:29:33 <elliott> .......
05:29:36 <elliott> read..........
05:29:59 <fizzie> elliott: You did all that, and all you got was a happyField.
05:30:10 <elliott> :(
05:30:30 <oerjan> well he refuses the obvious names
05:31:29 <elliott> oerjan: there were about two obvious names offered, and they both weren't very good :P
05:31:44 <elliott> (camelCase and whatever that silly modification of that was)
05:31:58 <oerjan> elliott: um no, i mean packetFieldName
05:32:15 <elliott> oerjan: nobody ever suggested that
05:32:21 <elliott> i preemptively explained why i wasn't using it
05:32:31 <oerjan> thus refusing it.
05:33:14 <elliott> oerjan: if it was so obvious why didn't you think of it in like five minutes :P
05:33:34 <oerjan> ...it was obvious when you explained how your naming scheme otherwise worked.
05:33:44 <fizzie> I had a serious suggestion too, while in the bathroom, but forgot it. But don't worry, I seem to recall it was far too vague anyway, so no great loss there.
05:33:56 <elliott> oerjan: umm, you clearly misinterpreted me
05:33:59 <elliott> the typeclass is _not_ involved here
05:34:02 <elliott> so that name is very misleadin
05:34:02 <elliott> g
05:34:05 <elliott> it never looks at any packet at all
05:34:28 <oerjan> um in that case, what does it have to _do_ with packets
05:34:45 <oerjan> you haven't explained what the function is really for
05:35:36 <elliott> <elliott> oerjan: because all the fields of my packets are named with that :P
05:35:37 <elliott> <elliott> otherwise there are lots of clashes because the field names in my protocol files are short
05:35:37 <elliott> <elliott> e.g.
05:35:37 <elliott> <elliott> , packet 0x01 "Login"
05:35:37 <elliott> <elliott> [ PF.entityID "entity"
05:35:38 <elliott> <elliott> , PF.string "unused"
05:35:40 <elliott> <elliott> , PF.long "mapSeed" -- as above
05:35:42 <elliott> <elliott> -- Note that this is an *int*, not a bool.
05:35:44 <elliott> <elliott> --
05:35:46 <elliott> <elliott> -- FIXME: Give this its own type too.
05:35:48 <elliott> <elliott> , PF.int "isCreative"
05:35:50 <elliott> <elliott> , PF.worldID "world"
05:35:52 <elliott> <elliott> , PF.difficulty "difficulty"
05:35:54 <elliott> <elliott> , PF.ubyte "worldHeight"
05:35:56 <elliott> <elliott> , PF.ubyte "maxPlayers"
05:35:58 <elliott> <elliott> ]
05:36:00 <elliott> <elliott> the fields are loginEntity, loginUnused, loginMapSeed, etc.
05:36:02 <elliott> <elliott> and I need to reconstruct this field name within my fake "show" function that shows it like a record (but with more whitespace)
05:36:05 <elliott> <elliott> oerjan: HOPE THIS HELPS
05:36:07 <elliott> <elliott> oerjan: because all the fields of my packets are named with that :P
05:36:09 <elliott> <elliott> otherwise there are lots of clashes because the field names in my protocol files are short
05:36:12 <elliott> <elliott> e.g.
05:36:14 <elliott> <elliott> , packet 0x01 "Login"
05:36:16 <elliott> <elliott> [ PF.entityID "entity"
05:36:17 <oerjan> ok...
05:36:18 <elliott> <elliott> , PF.string "unused"
05:36:20 <elliott> <elliott> , PF.long "mapSeed" -- as above
05:36:22 -!- elliott has left ("Leaving").
05:36:26 -!- elliott has joined.
05:36:27 <oerjan> elliott: prefixPacketField
05:36:28 <elliott> <elliott> --
05:36:30 <elliott> <elliott> -- FIXME: Give this its own type too.
05:36:32 <elliott> <elliott> , PF.int "isCreative"
05:36:33 <fizzie> Something on the lines of expandFieldName or something. uniqueifyFieldName. prefixFieldName(MaybeWithSomething). elaborateFieldName. differentiateFieldName. It was something along those lines, but not quite as silly.
05:36:34 <elliott> <elliott> , PF.worldID "world"
05:36:36 <elliott> <elliott> , PF.difficulty "difficulty"
05:36:38 <elliott> <elliott> , PF.ubyte "worldHeight"
05:36:40 <elliott> <elliott> , PF.ubyte "maxPlayers"
05:36:42 <elliott> <elliott> ]
05:36:44 <elliott> <elliott> the fields are loginEntity, loginUnused, loginMapSeed, etc.
05:36:46 <elliott> <elliott> and I need to reconstruct this field name within my fake "show" function that shows it like a record (but with more whitespace)
05:36:49 <elliott> <elliott> oerjan: HOPE THIS HELPS
05:36:50 <fizzie> It just keeps going.
05:36:51 <elliott> <elliott> oerjan: because all the fields of my packets are named with that :P
05:36:53 <elliott> <elliott> otherwise there are lots of clashes because the field names in my protocol files are short
05:36:56 <elliott> <elliott> e.g.
05:36:58 <elliott> <elliott> , packet 0x01 "Login"
05:37:00 <elliott> <elliott> [ PF.entityID "entity"
05:37:02 <elliott> <elliott> , PF.string "unused"
05:37:04 <elliott> <elliott> , PF.long "mapSeed" -- as above
05:37:05 <oerjan> ^msg chanserv quiet #esoteric elliott
05:37:06 <elliott> <elliott> -- Note that this is an *int*, not a bool.
05:37:08 <elliott> <elliott> --
05:37:08 -!- ChanServ has set channel mode: +q *!*@unaffiliated/elliott.
05:37:15 <fizzie> The paste alone can't stop!
05:37:36 -!- elliott has left.
05:37:38 -!- elliott has joined.
05:37:58 -!- elliott has left.
05:38:08 -!- elliott has joined.
05:38:08 <monqy> hi eliot bye eliot
05:38:11 <monqy> hi eliot
05:38:34 -!- elliott has left.
05:38:38 <monqy> bye
05:38:39 <monqy> eliot
05:38:46 -!- elliott has joined.
05:38:52 -!- ChanServ has set channel mode: -q *!*@unaffiliated/elliott.
05:38:55 <monqy> "a new form of spamming"
05:39:00 <monqy> oh that works too
05:39:14 <elliott> <elliott> -- FIXME: Give this its own type too.
05:39:14 <elliott> <elliott> , PF.int "isCreative"
05:39:14 <elliott> <elliott> , PF.worldID "world"
05:39:16 <elliott> <elliott> , PF.difficulty "difficulty"
05:39:18 <elliott> <elliott> , PF.ubyte "worldHeight"
05:39:20 <elliott> <elliott> , PF.ubyte "maxPlayers"
05:39:22 -!- elliott has left ("Leaving").
05:39:35 -!- elliott has joined.
05:39:37 <elliott> <elliott> , PF.int "isCreative"
05:39:38 <monqy> whats happening
05:39:39 <elliott> <elliott> , PF.worldID "world"
05:39:41 <elliott> <elliott> , PF.difficulty "difficulty"
05:39:43 <elliott> <elliott> , PF.ubyte "worldHeight"
05:39:43 -!- ChanServ has set channel mode: +q *!*@unaffiliated/elliott.
05:39:43 <monqy> oh no
05:39:45 -!- elliott has left.
05:39:50 <fizzie> Good client. Best friend.
05:40:13 <fizzie> qualifyFieldName, except that sounds like it should have something to do with module names.
05:40:32 <oerjan> i said prefixFieldName in the middle of the spam
05:40:37 -!- helpohgod has joined.
05:40:42 -!- elliott has joined.
05:40:51 <monqy> hi
05:40:55 <fizzie> oerjan: No, you said prefixPacketField; I said prefixFieldName.
05:41:01 <helpohgod> HELP
05:41:02 <oerjan> oh hm
05:41:15 <oerjan> well they are fields for use in packets
05:41:21 <helpohgod> HELP
05:41:28 <monqy> what's up with your client, helpohgod
05:41:32 <oerjan> helpohgod: are you elliott?
05:41:35 <helpohgod> HELP
05:41:42 <helpohgod> HELP
05:41:42 <helpohgod> HELP
05:41:48 <monqy> double quieted
05:42:01 <helpohgod> :'(
05:42:21 <oerjan> helpohgod: have you tried turning it off and on again?
05:42:29 <helpohgod> :'(
05:42:47 <fizzie> Have you checked if the power cable is plugged in?
05:42:52 <monqy> loss of precious data / precious data loss
05:43:07 <monqy> have you brought it to a therapist
05:43:12 <helpohgod> HELP
05:43:17 <oerjan> helpohgod: anyway, we've made several new suggestions
05:43:28 <helpohgod> I CAN'T TALK YOU FUCKER
05:44:09 <helpohgod> -Q ME OR DIE
05:44:13 <helpohgod> pls
05:44:24 <monqy> what if the paste freaks out again...
05:44:41 <helpohgod> oerjan hi -q pls fizzie thx ok
05:44:43 <monqy> has it stopped freeaking
05:45:01 <oerjan> helpohgod: i am not -q'ing you until you can guarantee it won't continue spamming
05:45:20 <helpohgod> im not good with computers but i tihnk it is fine now
05:45:25 <helpohgod> i did the flushq thing
05:45:27 <oerjan> ok
05:45:35 -!- ChanServ has set channel mode: -q *!*@unaffiliated/elliott.
05:45:38 <elliott> <elliott> , PF.ubyte "maxPlayers"
05:45:38 <elliott> <elliott> ]
05:45:39 <elliott> <elliott> the fields are loginEntity, loginUnused, loginMapSeed, etc.
05:45:39 <elliott> <elliott> and I need to reconstruct this field name within my fake "show" function that shows it like a record (but with more whitespace)
05:45:39 <helpohgod> oh no
05:45:41 <elliott> <elliott> oerjan: HOPE THIS HELPS
05:45:42 -!- ChanServ has set channel mode: +q *!*@unaffiliated/elliott.
05:45:50 <oerjan> SHEESH
05:45:58 <helpohgod> help
05:46:17 -!- elliott has quit (Remote host closed the connection).
05:46:26 <helpohgod> im ... restart xchat
05:46:32 -!- ChanServ has set channel mode: -q *!*@unaffiliated/elliott.
05:46:33 -!- elliott has joined.
05:46:41 <fizzie> That is a very persistent paste subsystem.
05:46:43 <oerjan> whew
05:46:48 <elliott> <elliott> oerjan: because all the fields of my packets are named with that :P
05:46:48 <elliott> <elliott> otherwise there are lots of clashes because the field names in my protocol files are short
05:46:48 <elliott> <elliott> e.g.
05:46:48 <elliott> <elliott> , packet 0x01 "Login"
05:46:48 <elliott> <elliott> [ PF.entityID "entity"
05:46:50 <elliott> ONLY KIDDING
05:46:53 <monqy> ha
05:46:53 <monqy> ha
05:46:54 <monqy> ha
05:47:00 <elliott> it am funy joke
05:47:03 <oerjan> ...should i ban him.
05:47:13 <elliott> only if you ban yourself for all those suggestions
05:47:26 <oerjan> elliott: we made some new ones in the logs
05:47:31 -!- helpohgod has quit (Quit: SACRIFICED TO LIFE FOR THE BLOOD GOD).
05:47:41 <oerjan> you'll have to dig through some spam to find it, though
05:47:41 <elliott> oh i think helpohgod might be in eternal suffering torment now
05:47:42 <elliott> cool
05:47:52 <elliott> 05:40:32: <oerjan> i said prefixFieldName in the middle of the spam
05:47:56 <elliott> i /responded/, my client was just stubborn
05:48:07 <elliott> <elliott> oerjan: i wouldn't have ragepasted that but I did tell you to read it RIGHT AFTER you started talking again :P
05:48:07 <elliott> <elliott> prefixPacketField might be good
05:48:07 <elliott> <fizzie> It just keeps going.
05:48:07 <elliott> <elliott> i'm not quite sure it's a prefix though
05:48:07 <elliott> <elliott> i mean, it treats both its arguments quite equally :P
05:49:46 <elliott> oerjan: GEE THANKS
05:49:58 <oerjan> hm? also fizzie had some.
05:51:05 <elliott> oerjan: gee thanks for not responding to my response :P
05:51:10 <elliott> fizzie: what were yours
05:52:43 <fizzie> <fizzie> Something on the lines of expandFieldName or something. uniqueifyFieldName. prefixFieldName(MaybeWithSomething). elaborateFieldName. differentiateFieldName. It was something along those lines, but not quite as silly.
05:53:05 <oerjan> also qualifyFieldName
05:53:13 <elliott> oerjan: I dunno, I'm not sure prefix is quite right >_>
05:53:27 <oerjan> i can add all those with *PacketField instead :P
05:53:33 <fizzie> <fizzie> qualifyFieldName, except that sounds like it should have something to do with module names.
05:53:51 <fizzie> It was something rather generic, anyway.
05:53:59 <oerjan> elliott: i am thinking of prefix as a verb, there
05:54:11 <elliott> oerjan: yes, but, I dunno
05:54:14 <elliott> would you call (++) prefix?
05:54:21 <elliott> it prefixes the second string with the first one
05:55:01 <oerjan> it _is_ a kind of qualify, though, you're example used PF.
05:55:08 <elliott> ...
05:55:10 <oerjan> so, maybe qualifyPacketField
05:55:13 <elliott> oerjan: ok, you clearly have no idea what i'm writing
05:55:15 <fizzie> "No, you're the example."
05:55:18 <pikhq> Man. I realised something that C++ does better than C.
05:55:20 <oerjan> *your
05:55:35 <pikhq> It is possible to make a conformant C++ implementation that is Turing-complete.
05:55:39 <pikhq> The same is not true of C.
05:55:40 <oerjan> elliott: a haskell compiler, i thought
05:55:40 <elliott> i'm going to paste this again because maybe you will actually read the last line this time
05:55:45 <elliott> 05:35:37: <elliott> <elliott> , packet 0x01 "Login"
05:55:46 <elliott> 05:35:37: <elliott> <elliott> [ PF.entityID "entity"
05:55:46 <elliott> 05:35:38: <elliott> <elliott> , PF.string "unused"
05:55:46 <elliott> 05:35:40: <elliott> <elliott> , PF.long "mapSeed" -- as above
05:55:46 <elliott> 05:35:42: <elliott> <elliott> -- Note that this is an *int*, not a bool.
05:55:46 <elliott> 05:35:44: <elliott> <elliott> --
05:55:48 <elliott> 05:35:46: <elliott> <elliott> -- FIXME: Give this its own type too.
05:55:50 <elliott> 05:35:48: <elliott> <elliott> , PF.int "isCreative"
05:55:52 <elliott> 05:35:50: <elliott> <elliott> , PF.worldID "world"
05:55:52 <monqy> hi
05:55:54 <elliott> 05:35:52: <elliott> <elliott> , PF.difficulty "difficulty"
05:55:56 <elliott> 05:35:54: <elliott> <elliott> , PF.ubyte "worldHeight"
05:55:58 <elliott> 05:35:56: <elliott> <elliott> , PF.ubyte "maxPlayers"
05:56:00 <elliott> 05:35:58: <elliott> <elliott> ]
05:56:02 <elliott> 05:36:00: <elliott> <elliott> the fields are loginEntity, loginUnused, loginMapSeed, etc.
05:56:04 <elliott> 05:36:02: <elliott> <elliott> and I need to reconstruct this field name within my fake "show" function that shows it like a record (but with more whitespace)
05:56:07 <elliott> f "Login" "mapSeed" == "loginMapSeed"
05:56:09 <elliott> thus reconstructing the record field name
05:56:11 <elliott> oerjan: >_<
05:56:13 <elliott> oerjan: no this is not the haskell compiler
05:56:21 <monqy> oh I was afraid for a moment there
05:56:51 <fizzie> elliott: But it could be the first Haskell compiler with a difficulty setting!
05:56:55 <elliott> fizzie: please tell me _you_ understand the usecase, or maybe I'm just mad
05:57:58 <fizzie> I think I do, yes. Doesn't help in the naming department, though.
05:58:22 <oerjan> ok a game.
05:58:31 <elliott> IT DOESN'T MATTER WHETHER IT'S A GAME OR NOT
05:58:33 <elliott> HOLY SHIT >_<
05:58:44 <elliott> monqy: you understand my description of the usecase too right???
05:58:49 <oerjan> elliott is a very angry man.
05:59:08 <oerjan> i am still not sure qualifyPacketField is a bad name
05:59:10 <elliott> oerjan: yes, you've never got aggravated when someone on IRC didn't understand you to the point of absurdity :P
05:59:32 <monqy> elliott: i think i understand the usecase
05:59:53 <oerjan> or, qualifiedPackedField
06:00:07 <elliott> it might not be a bad name, but it does suggest modules to me.
06:00:31 <fizzie> "packetQualifiedField". You can even put the words in any order.
06:00:46 <oerjan> hm...
06:00:58 <oerjan> yes, maybe better
06:01:14 <elliott> fizzie: no, I want to avoid packet prefix for previous typeclass issue
06:01:26 <oerjan> oh right, that stupid...
06:01:41 <elliott> oerjan: excuse me :P
06:01:50 <elliott> and I'd rather have "FieldName" instead of "Field" in the name, because this definitely does /not/ do anything to packets or their fields, it just constructs a field name
06:02:10 <oerjan> wrappedFieldName
06:02:37 <fizzie> extendedFieldName.
06:03:23 <oerjan> fieldNameWrapper
06:04:13 <elliott> You're awful people. :(
06:04:22 <fizzie> Oh no, I feel the urge to go all silly on this again. Best not, it might cause a flip-out.
06:04:29 <elliott> Æ>ΩŁ©ª‘
06:04:35 <elliott> ØıÞ°¿‘ÆŁRCS{ZЩ×÷W
06:04:38 <elliott> ↓↓↓↓↓↓↓↓↓↓
06:04:51 <fizzie> Apparently even mentioning it does.
06:04:53 <monqy>
06:05:06 <oerjan> fizzie: you too eh
06:05:42 <oerjan> packetN'FieldName
06:05:49 <oerjan> oh darn
06:05:59 <fizzie> Would (↓++↑) be infix-legal?
06:06:17 <oerjan> > let (↓++↑) = "maybe" in (↓++↑)
06:06:18 <elliott> T̷̟̺̬̮̗̞̖̪̭̳͖̤͇̦̪̾ͣ̿ͯ̇͑̾̉̑̚̕͟͠Hͨ̂ͬ̽ͥ̒̎ͧ͂ͤͩ̌̍ͨ͂̊̒ͯͥ҉̤̼̭͕̟̲͓͉̺̻̘͎̰̬͟͟͡E̵̸̡̠̜̤̜̤̺̤̲̜̼̻̠͖̣̫ͮ̿̑ͩ͋ͯ̔̓͐ͥͨ̐̿̌ͫͣ̉ͅͅͅ ̨͚̮͉̬̦̭̮̗̭̪̄́ͥ̅ͣ̊͊͐̾̏̿͘͝R̩͎̙̰̟͖̺̙̣̺̰̘̰̼͓̬̪ͣ͐̈ͬ̈ͫ̇̑̉ͥ̉́͠͞O̸̧͓̖̣̙ͥ̏͗ͥ͌̃̒͘͞Ąͣͨ͆ͥ̓ͤ̓ͤ͋ͬ̋ͮͯ͐̃̇͘҉̢̫͉͍͎͈͚̞R̝̖̠̳̖͈̞̹̉̇̈̓̓͋̄̈ͣ́̚͜
06:06:18 <elliott> ̫ ̸͙̜͕̺̮͈̜̫̼͙̲͕̑ͯ̅ͤ̆̾̌͗̾ͩͭ̈́ͯͬ͒͋̀͢Ơ͆̈̽ͭ̾͂ͣ̏̈́ͩ̄ͦ̆ͫͨ̒ͮ́̚̚͘͏̮͔̟̙͉̠͚̣̙̞̜̣F̴̵͚͇̙̯̼̪̼̬̺͚̜͕̘͂̄ͪͬ̾̈́̽͛͌ͤ̒̒̐̍ͦ͠ ̴̺͔͉̰̘̜̬̙͓̹̥̫͈̺͖ͭ̆̂̉ͪ̓ͭͨͥ̓̈́̽̈ͫ͝ͅP̨̨̨ͩ͌̾̄͛̎̈ͩ̐̈ͩ͑ͩ͆̚҉͇̜̙̟̱͍͈̝̦̫͝Ā̢̯͍̗̹̳͙̫̤͖͉͓̰̝̤̻̠͉̖̓ͨ̑͆̚̚̚I͖̫̜̲͎͈̪̬̪͚͕̳̮̗͉̦̗̫ͯͥ̉ͤ̍ͭ̑ͦ̈́ͦ̔͘͘͜͠
06:06:19 <lambdabot> "maybe"
06:06:19 <elliott> ̹N̢̅͋̑ͯ͋ͧ͟͏͍͕̤̝̼̻̗̤̖̳̞̗̹͓̯̰̰͔
06:06:36 <elliott> S̨ͪ͊̎̏͆ͯͤ̚҉̩̳̳̖͈͔̕Á̛̬͚̪̞̥̪̳͚͙͙̠̹̙͚̲̪̱ͩ͐ͬͧ̎̃̅͌̋ͪ̀͊̄̂́̀̕͠Ṱ̸̡̞̫͇̦̺̜̩̞̣̳̰̹̻͔͇̝̮̒̆̓ͥ̀̋̏̂̽͊ͩͪͣ̇̀͐͛͗̀͘͠A̵̠̼͇̞͇̣͍̬̘̥̭̩̪̩͎̳̗͌̄͂̐̆̏͌̏̾ͨ̎̿̆ͦ͌̚͜ͅÑ̵̵̸̡̟̫̻͇̹̰̮͓̖̘̗̞̮͔̰̻͚͈͆̍̄̄̒͊̊̽͗̓ͪ̐ͫ̍ͮ̀ ̥̯̫̟̙̜̪̦̬̻̄̓̔̀̀͢W̴̱̻̯̹͍͔̳̦̬̝̬̘̽̅̌͆ͧͪ̂̊I̒̎ͯ͂ͪͥͦ̎͛̐ͬ̌͗͊
06:06:36 <elliott> ̡ͯͪ͛͆͏̤̝̜̱͇̻̟̯̣̣̰̮͉͇͡Lͦ̈̍̾ͣͣ̊̾ͪͧͮ̉̄̒̐ͨ̚҉̳̯̭̮͇̻̦͎̲̬̣̲̙͖͜Ļ̶̱̙̙̮̝̣͖̗̠͖ͤ͗͋͒͗ͫ̈̀́̚ ̵͖̜̩̩̱̱̬̺̞͔̹̠̰̒ͣ̔ͥ͗ͥͩͬͧͭ̀̕͠S̴̸̨̭͉͕̹͙͚̃ͧ͑̋̈́̆ͬ͂̚͟͠H̸̲̱͈͖̱͎͔̰̳͇͖̠̤͔̩̲̪͍̋ͭ̒̉̐̿̂͒Ě̷̫̝̼̭͖̗̘͔̙̹̯͎ͫ̾ͨͩ͊ͩͭ̐̑ͤ͂̉ͨ̑͊̌̎̚͜͟͡L̛̖̦̠̤̑̀̓͛̓̽ͪ̽͛͋ͦ̑ͩ͘͡V͑̀͂͂̒̋̈̔ͧ̇ͣͫͬ̾͒̈
06:06:36 <elliott> ̨̨̧̱̮̱̱͚̞ͫͩ́͜ͅEͮ͐ͯ́̈́̄̎̃ͥ̌̇̇ͪ͊ͤ͂ͦ͛҉̵̝̩̱͙̹̖̩̮̹̮̥̘̀͢͞ ̙̹̪͉̘͈̻̬͇̪̳̳̭̙̲͕͍̂͊̍ͣ͐̄̌̿́̔͛ͧ̈́ͭ͋ͦ̾̈́̀͢ͅỲ̞̻͓͇̗̫̬̪̥̦̻̱̮͚̦͚̪ͮͯͫ́̿͑ͫ̉ͫ̈ͬͤ̐ͣ̓̉̄ͮ͢ͅÒ̄̿͒͘͏̢̛̹̪̣̣̰̤̠͎̟͍͚̱̺̲̣̤͠Ū̵̡͚̟̮͎̜͖̳̮͔͊͑̿͐̿͞ ̐ͨͫͮ́́̽͏̴͔̥̥͘T̶̷̸͈͔̭̯̯͇̟͚͎̝͕̻̯͓̲̮͓͔͆͂̈́́ͬ͘͟Ő͂ͮ̄̈́̅ͬ͛̾͒ͣ͂
06:06:41 <elliott> ̵̨̡͕̻͚͎̞̯̲̳̮͉̮̟̣̠ͥ͛ͭ̀ ̧̡̥͔͕͕͈̙͖̟̞̼̪̙̬̩͕͗̔ͬ̇ͧͮͭ͗͟Ţ̫̰̠͔̝ͤͥ̆͋̽̑ͯͥ͂͐ͧ̆̅̔͂̀̇̐̕͟H̸̡̞͔̪͕̠̘̟̱̙̫̰͛̃ͦ̄͐̑̀̿̓͌̂̈ͦ̽̾̔̌͛͢͞ͅẼ̶̽͛̒̓ͣ̃̄̋͊̚͟͢͠҉͇͈͓̞͇̗͎͈͇̜̣̭͖̲̥͚̯͈̹ ̶̛̥̬͉͇̖̬̙̯̪̥͔̮̠̟͙̮̥͑ͫ̂ͦ͌̐ͧ̓̋̚D͍͍̪͎͓̤͔͈̮̘͚͉̰̮͈̙̬ͨͪ̒̐͋̕͟͠Eͣͯͩ̊ͥ̚̚͘͏̘͖͓̹͖͟͜Pͭͦ̅̌ͯ̓̀̆̚
06:06:46 <elliott> ̶̇̕҉̡͇̭͚̳̤͚̠͔̲͚͚̹̲̙̮̙ͅT͆̍́̄͏̯̘̲̲͚͇̺̰͍̗̟̜̤̻̲̕Hͥͣͮͮ̔̏̍̔̓̚҉̨̢̨̼̱̗̦̙̜̗̯͇͙̦̳̲̲͇̭̦͚̖͜Ş͙̣̗̰̯ͮ͊́͢ ̳̱̲͙͑͂ͫ̋̿͆͆̎̎͛ͨͧ͛̈̀̚͝O̡̮͈̞͉͓͔̭̼̺̻̯̦͎̜̪̘͍̎ͤ̄̌̿͜͡Ḟ̤̠͈̥̞͚̥̭̲̩͕̓̏̂ͨ͆̽ͮ́͟͞ͅ ̢̛͍̰̥̭͛̃́̄͛ͥ̍ͤ̑ͬ̄̓̈̀̈ͣ̀͜E̡̛̥̼͈̙̱ͬͯ͋͂̓̌ͨ̒ͤ͐͒̊̓̉̎͆́͠͠Tͪͥ͛ͫͨ͛ͫ̆̿̃ͫͤ̑̌
06:06:49 -!- nooga has joined.
06:06:51 <elliott> ̸̛̰̪̮̳̒ͩ̓̉Ē̫̜̺͓̞̆ͧͣ̔͋ͩͯͮͬ̀͂͘͢R̷̝͔̣͉̮ͤ́̓ͫͬ̇́̒̓ͨ̉̔̋̽̒̆̀͒͒̀͟͠͡ͅN̷̷̨̡̯̩͕͓̰̪͔͕̗̻̣̰̱̳͓̻̰̝̑̆̽̾̿͆ͤ̒ͯ̂ͩ̍̓̚͠I̶̵͔̩̗͚͚͔̘̖͖̅̔͛͗ͬ͗ͦͪ͂͐͑̌̾̓̚͘̕T̋͌̇̑͊͂͏̦̥̞̞͢͠͞Ỹ̸ͧ̓͛̓̉̆͐͏̫̮̹͈͍̟
06:06:53 <oerjan> and thus zalgo was born
06:07:02 -!- elliott has left ("Ŗ̻̭̖͉̦͍̖̘̮͓̹̲͈̯̪͇̤̊͛ͯͥ̓͑ͫ̍̈ͨ͆ͧͤ̉̄ͬͮ̉͢ͅͅO̖͈͖̳͍͕̠͚͉̰̠̊ͣͬ̈̍̂̽̋ͭ̔̆ͫ̎̚͜͝Ą̸̸̛̼̘̯̝̟͎̜͚̻̘͔͕̒̋͛͑A̹͚̖̮͚͙̥͙̙͚̜̝̝̝̲͒̑̔͆̆͟͡͠ͅͅA̡͋ͮ̌̑͗̎͌ͧ͊͋̂ͩ̔̅͞").
06:07:04 <monqy> hey, ↓++↑ is a good name
06:07:10 -!- elliott has joined.
06:07:13 <elliott> yo sup
06:07:16 <fizzie> zalgoFieldName is something I also was thinking.
06:07:28 <oerjan> elliott: nice, you managed to destroy my status line
06:07:33 <elliott> you deserve it
06:07:59 <elliott> oerjan: somehow i doubt those displayed right for you anyway :P
06:08:05 <oerjan> wouldYouLikeFieldsWithThatPacket
06:08:33 <fizzie> supersizedFieldName.
06:08:34 <oerjan> i saw something about SA T A N
06:09:41 <oerjan> elliott: a compromise, if you switch the argument order you can call it fieldNameWithPacket
06:10:06 <elliott> packetCon (Packet _ pname fields) = recC pname $ map (packetField pname) fields
06:10:06 <elliott> packetField pname fi = (,,) (mkFieldName pname (fieldName fi)) IsStrict <$> fieldType fi
06:10:06 <elliott> mkFieldName pname fname = mkName $ mkPacketFieldName (nameBase pname) fname
06:10:18 <elliott> showPacketRecord :: (Packet a) => a -> ShowS
06:10:18 <elliott> showPacketRecord p =
06:10:18 <elliott> showString (packetName p) .
06:10:18 <elliott> showString "\n" .
06:10:18 <elliott> showFields firstField midField (showString " }") (packetShowsFieldsPrec 0 p)
06:10:19 <elliott> where field (name,f) = showString (mkPacketFieldName (packetName p) name) . showString " = " . f
06:10:20 <elliott> firstField x = showString "\n { " . field x
06:10:22 <elliott> midField x = showString "\n , " . field x
06:10:24 <elliott> showFields _ _ _ [] = id
06:10:26 <elliott> showFields f g h (x:xs) = f x . showConcatMap g xs . h
06:10:28 <elliott> those are the two actual uses of it
06:11:31 <oerjan> the first use doesn't really argue for changing the name
06:12:04 <oerjan> addPacketToFieldName
06:12:14 <oerjan> very descriptive
06:12:33 <elliott> i'm definitely changing the name, especially since
06:12:36 <elliott> mkName :: String -> Name
06:12:36 <elliott> but
06:12:42 <elliott> mkPacketFieldName :: String -> String -> String
06:12:46 <elliott> when the two are mixed...
06:12:54 <oerjan> hm
06:13:21 <fizzie> combineTypeAndField.
06:13:44 <fizzie> combineHarvester OH NO THE SILLY I MUST SHUT: UP.
06:14:24 <elliott> skeletonHarvester.
06:14:29 <monqy> somehow i thought that too
06:14:30 <monqy> somehow
06:14:48 <elliott> skeletonHarvester (cycle "SKELETONS") (cycle "SKELETONS") = cycle "SKELETONS".
06:14:49 <monqy> it must have been the harvester
06:15:00 <elliott> It is a perfect simulation.
06:15:22 <oerjan> harvestTheField
06:15:37 <oerjan> reapAndCombine
06:16:01 <fizzie> Someone has "this ship is being sunk by Skeletor" as one of his Finnish/Swedish "show that you can use the passive voice" exercise.
06:16:27 <monqy> not the same thing.......
06:16:45 <monqy> if the ship were being sunk by skeleton harvester, however......
06:19:42 <elliott> fizzie: why must show......
06:19:50 <elliott> monqy: then the skeletons on the ship...
06:19:53 <elliott> would be harvested..........
06:19:54 <elliott> (soon)
06:20:56 <fizzie> Skeletor vs. The Skeleton Harvester - match of the century.
06:21:30 -!- copumpkin has quit (Ping timeout: 248 seconds).
06:21:55 -!- copumpkin has joined.
06:22:07 <elliott> prefixFieldName is tempting; did any of you suggest that exactly?
06:22:13 <elliott> fizzie: I'm pretty sure there's no "The".
06:22:24 <elliott> http://buttersafe.com/2008/03/13/romance-on-the-floating-island/ <-- yeah, no "the".
06:22:25 <monqy> lastlog turns up results, at lesat
06:22:41 <elliott> Oh yeah, lastlog.
06:24:41 <elliott> TODO: Move the serialisation stuff and prefixFieldName into another module so I can not-export them from MC.Protocol.
06:25:13 <fizzie> It's the name oerjan continuously (read: once) tries to steal credit for.
06:25:41 <oerjan> continuously in a discrete topology
06:28:11 <fizzie> Maybe you should put the function in... wait for it... MC.Utils!
06:28:45 <fizzie> Oh, did you already make one? Then that won't really fly.
06:28:59 <oerjan> yeah cannot have more than one function in it
06:29:08 <oerjan> MC.FieldUtils
06:29:41 <fizzie> MC.Utils.ForAppendingPacketAndFieldNamesWithProperCase.
06:30:06 <oerjan> clearly.
06:30:27 <oerjan> <elliott> I hate you.
06:30:30 <fizzie> import qualified MC.Utils.ForAppendingPacketAndFieldNamesWithProperCase as MUFAPAFNWPC.
06:30:54 <elliott> I'm on the plane now. I sure hope you enjoy your lives, because they're about to be...
06:30:55 <elliott> CUTOFF.
06:31:03 <oerjan> so easy to pronounce, too
06:31:13 <elliott> DO YOU GET IT
06:31:26 <fizzie> MUFDWSAOTLT.cutoff, you mean.
06:31:30 <oerjan> but you _liked_ my cutoff implementation.
06:31:53 <fizzie> (MC.Utils.ForDealingWithStringsAndOtherThingsLikeTh5.)
06:32:00 <fizzie> s/5/at/
06:32:23 <oerjan> fizzie: nah 5 is ok, the cutoff function has obviously been applied here
06:37:50 <elliott> oerjan: this is the final cutoff, fwiw: http://sprunge.us/eaDO
06:45:34 <elliott> The shit i have to deal with as a retail employee... (imgur.com) <-- i really wish people would put some kind of warning on reddit links like this. (ok I probably should have looked at the NSFW tag)
06:46:03 <monqy> i cannot imagine
06:46:26 <elliott> monqy: http://imgur.com/7Ufsm. (do not click this.)
06:46:53 <elliott> Move packet field name handling into MC.Protocol.Types
06:46:53 <elliott> oh no it's over fifty characters
06:46:55 <elliott> what do i dooo
06:47:16 <oerjan> wat
06:47:21 <elliott> Abstract packet field name generation out of TH
06:47:22 <elliott> there we go
06:47:26 <elliott> oerjan: git commit summaries should be fifty chars or less
06:47:35 <elliott> todo
06:47:36 <elliott> give
06:47:36 <elliott> <elliott> Abstract packet field name generation out of TH
06:47:38 <elliott> a better commit message
06:47:50 <oerjan> elliott: so, gits are even worse than twats?
06:53:44 <elliott> http://sprunge.us/PdCV
06:53:53 <elliott> look at this awful "git diff" I have to make into modular commits
06:57:16 <olsner> commit more often yo
06:57:50 <elliott> olsner: I don't work linearly
06:58:01 <elliott> olsner: and I'm not going to start ten branches for two hours' worth of work
06:58:37 <elliott> As soon as I run into any kind of blockade I work on something else, there's not much I can do about it :P
06:58:58 <olsner> you can commit chunks as you switch back and forth, then rebase to group them back together and squash into commits that make sense
06:59:17 <elliott> olsner: s/you can/I can/
06:59:26 <elliott> that would result in a bunch of commits that completely undo and replace other commits
06:59:39 <elliott> oh, and I often end up restructuring things in the process of solving a problem just because it bugs me
06:59:43 <elliott> so I'd basically end up in merge hell
06:59:51 <olsner> plus it's probably at least as difficult as just sorting through the diff afterwards :)
06:59:55 <elliott> it's (marginally) less painful to do all the work, and then selectively reapply it
07:00:11 <elliott> git doesn't really have a nice workflow for that
07:00:17 <elliott> the only thing I can work out involves a lot of stashing
07:02:26 <olsner> if each topic-related change ends up restructuring other code, you'd probably quickly end up with conflicts between the stuff you've stashed
07:02:39 <elliott> olsner: nah, I mean
07:02:53 <elliott> olsner: my strategy of large ugly diff -> nice atomic commits involves stashes
07:04:29 <elliott> olsner: basically, you have a "todo stash", which is initially the ugly diff; each iteration, you pop that stash, then run "git add -p", and select all the hunks you want to work with this commit round. then you stash it again with --keep-index (becoming the new todo stash, with a few hunks ripped out of it), make it work (ofc, just selecting random hunks doesn't mean it'll compile as a whole, so modifications will likely be required to be an ato
07:04:29 <elliott> mic commit), then you commit it and start again
07:05:06 <elliott> ...I swear there was another stash involved...
07:05:20 <elliott> olsner: tl;dr: git stash → loop {git stash pop → git add -p (select hunks to work on) → git stash --keep-index → make it work → git commit}
07:05:25 <elliott> oh, the actual workflow I did was
07:06:01 <elliott> hmm
07:06:02 <elliott> I forget
07:06:05 <elliott> but this way is simpler :)
07:06:14 <elliott> although you need to git add -p before the commit again but w/e
07:06:18 <elliott> well or just git commi t-a
07:06:20 <elliott> git commit -a
07:06:35 <elliott> olsner: if you have a better way i would love to hear it :P
07:06:54 <olsner> that's similar to what I do when I bother actually checking if all the intermediates work
07:07:57 <elliott> olsner: Well, if they don't at least fail in a way that makes sense, then you've just made an atomic commit with a really hard to read diff (because it's split into arbitrary parts) :)
07:08:04 <elliott> How does it differ, re: similar?
07:08:17 <elliott> I might take it a bit far though, every commit so far has compiled without a single warning.
07:10:44 <olsner> I'd probably not bother with the initial stash/stash pop though, and just do commit/stash/test and amend as needed/unstash
07:10:50 <elliott> olsner: oh, and re: olsneryasm, that diff also makes my code only work with the git version of one of the libraries I use :P
07:11:02 <elliott> olsner: hmm, how would that work?
07:11:25 <elliott> you can't "git commit" as the first step, that's nonsense, there's nothing to commit yet
07:11:32 <elliott> (well, there's too much :))
07:11:55 <olsner> right, commit using add -p to select the part to extract into a commit
07:12:06 <olsner> i.e. using git gui to select the hunks
07:12:26 <elliott> olsner: what? then how do you "test and amend as needed"?
07:12:34 <elliott> the working tree will still contain all of the other changes
07:12:40 <elliott> so you can't even see if it builds or not
07:12:51 <olsner> that's why you stash after making the commit
07:12:59 <olsner> to remove the other changes
07:13:50 <elliott> olsner: are you suggesting I use git commit --amend or something?
07:14:11 <olsner> basically it keeps the tentative commit as the last commit (and you amend it with changes afterwards) instead of as uncommitted changes in the index
07:14:22 <elliott> olsner: you realise the index is a commit, right? :)
07:15:42 <elliott> olsner: I mean, I don't see how that's simpler, since it involves using a commit to simulate the index
07:16:18 <elliott> what I really want is "git stash pop -p"
07:16:30 <elliott> which presents a "git add -p" interface to all the hunks in the stash, applies those hunks to the working tree, and takes them out of the stash
07:16:31 -!- kmc has quit (Quit: Leaving).
07:16:36 <elliott> that would simplify things a lot
07:17:07 <olsner> it makes it so you don't have to worry about preserving or messing up the index, which I think is a bit too easy to do otherwise
07:17:37 <olsner> but sure, it *is* just a different way of doing the same thing
07:17:37 <elliott> fair enough
07:18:02 <elliott> now to decide which of the million changes to do first
07:18:43 <elliott> Stage this hunk [y,n,q,a,d,/,K,g,s,e,?]? s
07:18:44 <elliott> Split into 7 hunks.
07:18:46 <elliott> that hunk was way too big, git
07:18:51 <elliott> i'm disappointed in you
07:20:11 <fizzie> Hunky-dory.
07:21:03 <olsner> a simple choice between y,n,q,a,d,/,K,g,s,e - how good that all of those alternatives are completely obvious
07:22:20 <elliott> olsner: well, to be fair, darcs had about as many choices :)
07:22:51 <elliott> ...darcs' interactive interface made me think "oh, this is smooth and comforting and pleasant and civilised", though; git's makes me think "augh stop trying to be darcs. you are a cold emotionless robot. you can _never_ be darcs."
07:24:20 <fizzie> The / looks sort of out of place. (Also it's probably a /oD and that n is probably going to zap you with it real soon.)
07:26:07 <elliott> Can I rearrange history with rebase --interactive?
07:26:12 <elliott> I just want to put a patch before the other ones.
07:26:27 <elliott> I'm fine with bumping the commit times of the commits after it (in fact I'd prefer it).
07:26:28 -!- kmc has joined.
07:26:30 <elliott> s/patch/commit/
07:26:53 <olsner> yes, I think that's its primary feature
07:27:03 <fizzie> Yes, you should be able to just reoder the lines.
07:27:05 <elliott> [master c80b9f2] Add missing dependency on transformers XXX FIXTHISCOMMITMESSAGE
07:27:05 <elliott> Pro.
07:27:24 <elliott> olsner: fizzie: What will it do to the commit times?
07:27:30 <fizzie> I don't think it will touch those.
07:27:35 <fizzie> So it'll look a bit silly.
07:27:47 <elliott> How do I edit those? ;___;
07:27:52 <olsner> I think the commit times are updated but the author times stay the same
07:27:58 <elliott> That's even worse :P
07:28:07 <elliott> Can I just bump all the times after that one?
07:28:31 <elliott> It's for the best though because it'll make these commits actually work...
07:29:15 <elliott> Eh
07:29:20 <elliott> Will GitHub show the differing commit date?
07:29:37 <elliott> commit de16b332b0158ae562e1b415d800d5315da3eba4
07:29:37 <elliott> Author: Elliott Hird <penguinofthegods@gmail.com>
07:29:37 <elliott> AuthorDate: Sat Oct 1 20:20:47 2011 +0100
07:29:37 <elliott> Commit: Elliott Hird <penguinofthegods@gmail.com>
07:29:37 <elliott> CommitDate: Mon Oct 3 19:02:03 2011 +0100
07:29:37 <elliott> Oh no.
07:29:41 <elliott> Can I undo a rebase?
07:29:54 <olsner> you should have the previous branch in your reflog
07:29:54 <elliott> (I've already pushed that commit; I didn't change it in the rebase but mistakenly included it.)
07:30:09 <elliott> 3a9f935 HEAD@{0}: rebase -i (pick): Remove -O2 from the Cabal file
07:30:09 <elliott> 7884128 HEAD@{1}: rebase -i (pick): Add the git repository to the Cabal file
07:30:09 <elliott> bb6df3e HEAD@{2}: rebase -i (pick): Add showPacket{Inline,Record} functions
07:30:09 <elliott> a84b1e1 HEAD@{3}: rebase -i (pick): Abstract packet field name generation out of TH
07:30:09 <elliott> 0fa7b8b HEAD@{4}: rebase -i (pick): Remove unused "id" field name handling
07:30:09 <elliott> a61d65a HEAD@{5}: rebase -i (pick): Add missing dependency on transformers XXX FIXTHISCOMMITMESSAGE
07:30:11 <elliott> de16b33 HEAD@{6}: checkout: moving from master to de16b33
07:30:13 <elliott> 234f0de HEAD@{7}: checkout: moving from master to 234f0de
07:30:15 <elliott> Wow I have no idea how to work this.
07:31:14 <olsner> looks like 7 is your old branch and 6 is where rebase rewinded to
07:31:22 <elliott> "Looks like"? :P
07:31:41 <elliott> So, ehhm, how would I go back to that branch? git reset HEAD or something?
07:32:05 <olsner> if you have no local changes to preserve, git reset --hard abc123
07:32:28 <elliott> Does "local changes" include stashes?
07:32:37 <olsner> it'll blow away the index and changed files in your working directory
07:32:44 <elliott> That's OK.
07:32:51 <elliott> Yar, that's right
07:32:51 <elliott> Thanks
07:32:55 <olsner> it doesn't change any commits
07:33:19 <fizzie> "You can do an interactive rebase and choose edit for the commit you would like to alter its date. When the rebase process stops for amending the commit you type in for instance git commit --amend --date="...", says (what else?) stackoverflow. (That would edit the author date; presumably GIT_COMMITTER_DATE="..." git commit --amend to edit the other date.)
07:33:27 <elliott> --committer-date-is-author-date, --ignore-date
07:33:28 <elliott> These flags are passed to git am to easily change the dates of the rebased commits (see git-am(1)). Incompatible with the --interactive option.
07:33:31 <elliott> help????/
07:33:46 <elliott> will those
07:33:49 <elliott> be helpful
07:34:52 <olsner> if it's only a specific commit you want to change the date of, what fizzie said
07:35:14 <elliott> it's all the ones since the one I'm moving up to the top
07:35:20 <elliott> pick 0c48e1c Remove unused "id" field name handling
07:35:20 <elliott> pick 1033a69 Abstract packet field name generation out of TH
07:35:20 <elliott> pick 5c31d4c Add showPacket{Inline,Record} functions
07:35:21 <elliott> pick a3155c1 Add the git repository to the Cabal file
07:35:21 <elliott> pick 627ba85 Remove -O2 from the Cabal file
07:35:21 <elliott> pick 234f0de Add missing dependency on transformers XXX FIXTHISCOMMITMESSAGE
07:35:29 <elliott> that last one is going to the top, I want it to just keep its original date and have no commit date
07:35:34 <elliott> all the others I want to be boosted to, like, now
07:35:38 <elliott> but I guess it doesn't matter much
07:37:05 -!- monqy has quit (Quit: hello).
07:37:29 <olsner> I know of no way to do that :) you're the first I've heard wanting to do something like that
07:37:33 <elliott> error: Your local changes to the following files would be overwritten by merge:
07:37:33 <elliott> Main.hs
07:37:33 <elliott> Please, commit your changes or stash them before you can merge.
07:37:33 <elliott> Aborting
07:37:36 <elliott> THREE-WAY MERGE YOU DUMBO
07:37:52 <elliott> olsner: basically I want sg :)
07:38:01 <elliott> DEAR GIT IM TRYING TO MERGE TWO STASHES JUST
07:38:03 <elliott> GO ALONG WITH IT OK
07:40:58 <elliott> ok... this is worrying
07:41:15 <elliott> oh duh
07:47:23 <elliott> olsner: btw, what even /is/ git gui
07:47:32 <elliott> i keep seeing mention of it but no citation
07:47:39 <elliott> it certainly isn't a command in my git
07:47:40 <olsner> elliott: git gui, it's built in
07:47:49 <elliott> $ git gui
07:47:49 <elliott> git: 'gui' is not a git command. See 'git --help'.
07:47:55 <elliott> git version 1.7.5.4
07:48:21 <olsner> oh, hmm, it's a separate package in ubuntu actually
07:48:35 <elliott> it doesn't use Tk does it :p
07:48:40 <olsner> yes it does
07:48:46 <elliott> ah lovely.
07:48:54 * elliott installs it anyway
07:49:49 <elliott> olsner: oh, it actually tries to make the tk look decent though
07:49:54 <elliott> oh
07:49:55 <elliott> so does gitk
07:49:58 <elliott> i guess they're using tile now?
07:49:59 <elliott> good?
07:50:34 <olsner> if you manage to make it use tk8.5 it'll end up a lot less ugly than if it uses tk8.4, that might require some kind of configuration though
07:50:48 <olsner> tile? what's that?
07:53:10 <elliott> a tk thing
07:53:34 <elliott> the difference between hideous motif-style widgets and pretty clean flat-ish threedee widgets
07:54:07 -!- aloril has quit (Ping timeout: 240 seconds).
07:55:32 <elliott> b0ef146 Add support for packet analysis XXFIXMETOO
07:55:32 <elliott> 44fcf00 Remove -O2 from the Cabal file
07:55:32 <elliott> e56cb95 Add the git repository to the Cabal file
07:55:32 <elliott> 352d498 Add showPacket{Inline,Record} functions
07:55:32 <elliott> 4a1b67e Abstract packet field name generation out of TH
07:55:34 <elliott> 12a79ff Remove unused "id" field name handling
07:55:36 <elliott> d77e488 Add missing dependency on transformers XXX FIXTHISCOMMITMESSAGE
07:55:38 <elliott> olsner: I think I'm doin it rite
07:55:57 <olsner> elliott: good for you
07:56:18 <elliott> olsner: I CANNOT THICKEN MY SARCASM YOU MONSTER
07:56:48 <olsner> oh, you were sarcastic? I totally didn't miss that
07:57:23 <olsner> anyway, time to go
07:57:51 <elliott> olsner: I figured the XXs would make it obvious
08:07:26 -!- aloril has joined.
08:16:21 -!- oerjan has quit (Quit: leaving).
08:53:47 -!- fngraph has joined.
08:53:48 -!- fngraph has left.
08:55:47 -!- ive has quit (Quit: leaving).
09:06:47 -!- Jafet has joined.
09:11:33 -!- sllide has joined.
09:16:29 -!- sllide has quit (Ping timeout: 256 seconds).
09:21:14 -!- nooga has quit (Ping timeout: 248 seconds).
09:46:09 -!- CakeProphet has quit (Ping timeout: 258 seconds).
09:51:04 -!- cheater has quit (Ping timeout: 276 seconds).
09:52:06 <elliott> fizzie: Sads: diod does not seem to do FIFOs either. :/
09:57:00 <elliott> http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
09:57:01 <elliott> Nice.
09:57:32 <elliott> Vorpal: So kernel.org is up only FSVO up :P
09:57:35 <elliott> pikhq: I blame you
09:58:54 <Vorpal> elliott: yeah saw that
09:59:10 <elliott> Vorpal: I like how the huge big download links just go to a fourohfour with no explanation
09:59:20 <Vorpal> hm
10:00:12 <elliott> kernel.org is back up, hope you don't want to download a kernel!!!
10:03:27 -!- Nisstyre has quit (Ping timeout: 252 seconds).
10:04:04 -!- cheater has joined.
10:04:42 -!- Nisstyre has joined.
10:05:54 <elliott> pikhq: But seriously, where is one meant to maintain linux-3.0.4.tar.bz2?
10:05:57 <elliott> s/maintain/obtain/
10:06:35 -!- nooga has joined.
10:08:51 <elliott> http://www.reddit.com/r/programming/comments/ka4h8/javas_combover/c2ipvy1?context=3
10:09:01 <elliott> I had actually completely forgotten there were people who disliked lambdas.
10:13:18 -!- derdon has joined.
10:17:09 <Vorpal> bbl, university
10:18:42 <elliott> rip university
10:44:42 -!- sebbu2 has joined.
10:44:42 -!- sebbu2 has quit (Changing host).
10:44:42 -!- sebbu2 has joined.
10:47:38 -!- sebbu has quit (Ping timeout: 248 seconds).
10:48:17 -!- sebbu2 has changed nick to sebbu.
11:05:02 -!- nooga has quit (Ping timeout: 260 seconds).
11:24:47 <fizzie> The BBL University of Procrastination.
11:27:42 <elliott> fizzie: Oi, gimme linux-3.0.4.tar.bz2. (I'm sure you can do this with your magical Finn powers.)
11:28:16 <fizzie> Yes, being from the same country as Torvalds gives me magical kernel-predictive powers.
11:28:39 <elliott> fizzie: Predictive?
11:28:45 <elliott> 3.0.4 is out.
11:28:46 <elliott> It just
11:28:52 <elliott> (a) isn't on kernel.org because no kernel tarballs are yet;
11:28:55 <elliott> (b) isn't in Linus' git tree.
11:29:03 <fizzie> Yes, so I can convert any old binaries you might have up into 3.0.4 and (perhaps) beyond.
11:29:06 <elliott> I'm therefore at a complete loss as to how one is meant to obtain it.
11:29:14 <fizzie> Have you tried searching for it in Archie? (Is that thing still alive?)
11:29:24 <elliott> Heh.
11:29:40 <elliott> Well, I found a Random Copy with Google, but considering all this hoohah is because kernel.org got hacked into...
11:29:40 <fizzie> "External links: Last surviving Archie web interface"
11:29:44 <elliott> "A legacy Archie server is still maintained active for historic purposes in Poland at University of Warsaw's Interdisciplinary Centre for Mathematical and Computational Modelling."
11:29:57 <elliott> WORTH A TRY
11:30:22 <elliott> Gosh, it is slow.
11:30:29 <fizzie> 1 /vol/nfs1/ftp.icm.edu.pl/pub/Linux/ipv6/usagi/daily-snap/200106
11:30:29 <fizzie> -r--r--r-- 115352 21:00:00 24 Jun 2001 GMT linux22-2.2.19-usagi-20010626.patch.gz
11:30:35 <fizzie> I just told it to look for "linux".
11:30:43 <elliott> I got similar results looking for "kernel". :p
11:30:54 <elliott> The exact same version, in fact, though in .rpm flavour.
11:31:05 <elliott> I think that perhaps it does not index any recent files.
11:31:08 <elliott> Also will this ever load.
11:31:12 <elliott> (1)ftp.laizsme.edu.pl
11:31:13 <elliott> 1 /Linux/LTSP/LTSP-3.0
11:31:13 <elliott> -rw-rw-r-- 5015061 00:00:00 12 Jul 2002 GMT ltsp_kernel-3.0.4-i386.tgz
11:31:18 <elliott> Points for effort I guess.
11:32:08 <fizzie> Incidentally, I suppose you have come across that Ten15 thing? (http://www.mca-ltd.com/martin/Ten15/introduction.html)
11:32:45 <elliott> Yes, though I keep forgetting its name -- many thanks for reminding me.
11:33:02 <fizzie> The most memorable name ever.
11:33:03 <elliott> I'm flattered it (presumably) makes you think of @ :-P
11:34:02 <fizzie> You presume correctly; especially I guess the "it's safe by virtue of the languages" bit.
11:34:30 <elliott> Also the ubiquitous GC. And object-based (rather than textual) "syntax".
11:34:39 <elliott> Also the object-capability model in general. :p
11:34:40 <fizzie> Those, too.
11:35:05 <elliott> Also the lambda calculus relation. etc. etc. etc.
11:38:20 <fizzie> How about http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=04aa37b5f943920017ad094e776cd5514b1a9246 would that work?
11:38:28 <fizzie> I don't really know anything about the source control.
11:38:30 <fizzie> But there's a tag.
11:39:03 <elliott> Oh, the git repos are up?
11:39:06 <elliott> 'Hokay then.
11:39:24 <elliott> http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=commit;h=a004e0962a10dfa7fc83dfa4ed4109d1cf84124b
11:39:27 -!- DH____ has joined.
11:39:28 <elliott> What.
11:39:30 -!- DH____ has quit (Remote host closed the connection).
11:39:36 <elliott> Huh, there is a Linux 3.0.6.
11:39:59 * elliott gets himself a snapshot.
11:40:06 <elliott> The server encountered an internal error or misconfiguration and was unable to complete your request.
11:40:07 <elliott> oh ffs...
11:40:31 <Jafet> It's funnier when that happens on the apache website
11:41:12 -!- DH____ has joined.
11:42:00 <fizzie> elliott: Based on the Date: headers of the LKML postings, 3.0.6 came out three minutes after 3.0.5.
11:42:04 <elliott> fizzie: Yes. :p
11:42:09 * elliott tries to get it in something that isn't tgz (90 megs...)
11:42:12 <fizzie> "There was a build error in the radeon driver of the 3.0.5 kernel, so this update is only needed if you have problems building that kernel."
11:42:42 <fizzie> I was already mildly concerned they had caught the Firefox bug.
11:43:34 <elliott> fizzie: Well...
11:43:39 <elliott> 40 hours agov3.0.5
11:43:39 <elliott> 5 weeks agov3.0.4
11:43:42 <elliott> 6 weeks agov3.0.3
11:43:46 <elliott> 7 weeks agov3.0.2
11:43:50 <elliott> fizzie: It /is/ rather rapid.
11:43:55 <elliott> fizzie: Or do kernel releases normally go that fast?
11:43:57 <elliott> I don't really keep track.
11:44:09 <Jafet> The singularity, it is coming.
11:44:42 <elliott> The singularity is just a moment of infinite Firefox and kernel updates?
11:44:48 <elliott> That's the most bullshit singularity I've ever heard of.
11:44:51 <fizzie> A bit anticlimactic, eh?
11:44:56 <elliott> What kind of idiot sets the singularity at the point of infinite bugs?
11:45:05 <fizzie> think there's usually several weeks, but haven't really been keeping track either. I'm sure someone's graphed it.
11:45:17 <Jafet> "When the singularity arrives, it will be plagued by frequent outages and bad customer service."
11:45:19 <fizzie> I mean, if they do graphs of all the "fuck"s in the kernel... http://www.vidarholen.net/contents/wordcount/
11:45:22 <elliott> fizzie: That wasn't quite legible.
11:45:23 <elliott> <fizzie> think there's usually several weeks, but haven't really been keeping track either. I'm sure someone's graphed it.
11:45:24 <elliott> That one.
11:45:54 <fizzie> s/^/I / + s/weeks/weeks between kernel releases/
11:47:11 <elliott> I always just assumed it was, like, every two months or so.
11:47:12 <fizzie> I notice that the instances of "fuck"ing have been dropping since 2.6.12 or so, but the frequency of "shit" happening has more than made up for it.
11:47:34 <elliott> │ │ [*] DMA memory allocation support │ │
11:47:42 <elliott> I'm still perplexed as to why that's the first kernel config option.
11:47:45 <elliott> Like, newly.
11:48:03 <fizzie> Admittedly I don't quite recall how the current numbering was supposed to go. In the late 2.6 age, the fourth number was being kept incremented rather rapidly.
11:48:40 * elliott wonders what fun things turning that off would do.
11:53:18 <elliott> What the hell is an .lrz file?
11:54:05 <elliott> lrzip - compression program with a very high compression ratio
11:54:05 <elliott> I guess this.
11:54:09 <elliott> Seems to be lzo-based.
11:55:35 <fizzie> Apparently, with a really long available history buffer compared to the usual suspects.
11:56:11 <elliott> Preface
11:56:11 <elliott> Way back a long time ago, Thompson and Ritchie were sitting opposite one another at the commissary, sipping coffees and discussing their evolving behemoth.
11:56:11 <elliott> "This behemoth of ours," said Ken, "is becoming rather popular, wouldn't you say?" "Yes," said Dennis. "Every time I want to do a compilation, I have to wait for hours and hours. It's infuriating." They both agreed that the load on their system was too great. Both sighed, picked up their mugs, and went back to the workbench. Little did they know that an upper-management type was sitting just within earshot of their conversation.
11:56:12 <elliott> "We are AT&T Bell Laboratories, aren't we?" the upper-management type thought to himself. "Well, what is our organization best known for?" The brill-cream in his hair glistened. "Screwing people out of lots of money, of course! If there were some way that we could keep tabs on users and charge them through the nose for their CPU time..."
11:56:16 <elliott> The accounting utilities were born.
11:56:18 <elliott> -- gnu acct manual
11:56:30 <elliott> Reminds me of GNU "viva la revolution" su.
11:56:46 <elliott> <fizzie> Apparently, with a really long available history buffer compared to the usual suspects.
11:56:51 <elliott> Ha ha, compression jargon.
11:56:55 <elliott> It is like speech recognition jargon
11:56:57 <elliott> except
11:56:59 <elliott> one is useful and the other not
11:57:02 -!- MichaelBurge has joined.
11:57:34 <fizzie> Yes, and the useful one is speech recognition. Or haven't you heard of Siri yet?
11:57:39 <fizzie> If Apple's doing it, it must work right.
11:58:07 <fizzie> It's in that 4S thing.
11:58:20 <elliott> Yes, I've seen it. It looks interesting and apparently it might have enough brains behind it to work.
11:58:31 <fizzie> Also supports W|A, which is awesome.
11:58:34 -!- nooga has joined.
11:58:35 <elliott> But that was made by experts.
11:58:38 <elliott> Not people like /you/.
11:58:45 <elliott> Also DOES IT SUPPORT FRINK.
11:58:55 * elliott disables namespaces support to annoy ais.
11:59:14 <fizzie> One can just ask it for the shear modulus of human brain matter or anything like that.
11:59:23 <fizzie> (That's 1680 Pa.)
12:00:02 <elliott> I love the configuration advice the kernel gives. "You should only consider disabling this option for embedded systems with no facilities for reporting errors. Just say Y."
12:00:17 <fizzie> You know, when you absolutely have to shear some brains, and want to know how much they'll deform.
12:00:31 <elliott> fizzie: So I take it the entire speech recognition world (yes, all four of you) is partying now that Apple are validating you guys and -- rumour has it -- even feeding you on occasion?
12:00:35 -!- DH____ has quit (Read error: Connection reset by peer).
12:00:51 -!- DH____ has joined.
12:01:03 <elliott> TODO: Come back to configure standard kernel features menu.
12:01:27 <elliott> And other things in its parent menu. I'm good at configuration.
12:09:22 <elliott> Also go back to that boring power management section.
12:09:51 <elliott> Also the bus options menu. God there are a lot of boring menus.
12:35:28 -!- derdon has quit (Remote host closed the connection).
12:49:40 -!- calamari has joined.
12:59:42 -!- MSleep has changed nick to MDude.
13:13:19 -!- calamari has quit (Quit: Bye).
13:16:48 -!- sadhu has joined.
13:17:08 <sadhu> howdy elliott
13:17:15 <elliott> hi
13:30:01 <sadhu> elliott: you program in C ?
13:30:11 <elliott> Sometimes
13:30:33 <sadhu> ok
13:39:50 <Vorpal> <elliott> pikhq: But seriously, where is one meant to maintain linux-3.0.4.tar.bz2?
13:39:50 <Vorpal> <elliott> s/maintain/obtain/
13:39:55 <Vorpal> I have that I think
13:40:05 <elliott> I got it from linux-stable.git
13:40:13 <elliott> kernel.org git is back up, at least :P
13:42:25 <Vorpal> elliott: 3.0.6? what?
13:42:49 <elliott> yep
13:42:59 <elliott> got released about five minutes after 3.0.5
13:43:12 <elliott> Sorry,
13:43:13 <elliott> <fizzie> elliott: Based on the Date: headers of the LKML postings, 3.0.6 came out three minutes after 3.0.5.
13:43:13 <elliott> three.
13:43:46 <Vorpal> <elliott> fizzie: Or do kernel releases normally go that fast? <-- maintenance releases are usually about that fast up to .5 or .8 or so when they start to slow down, at least in my experience
13:47:32 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
13:47:33 <Vorpal> <elliott> The accounting utilities were born. <-- is that story true? I seem to remember stuff like that boot resource usage and time usage graphing thingy using accounting tools
13:48:38 <Vorpal> elliott: wait, why are you compiling your own kernel?
13:48:55 <elliott> Vorpal: (a) Who knows; (b) so that you'll CTCP PING me for no apparent reason.
13:49:05 <Vorpal> elliott: I was wondering if you were lagging out
13:49:23 <elliott> "haskell for "the masses" is possible as soon as "the masses" has a degree in mathematics. java and php are copy-and-paste languages, functional languages simply take more thinking to compile at all, and i think many programmers are not prepared to do that to the required degree, although i'd love to be proved wrong."
13:49:23 <elliott> "Score:5, Insightful"
13:49:37 <elliott> so what they say about slashdot comments is true
13:50:00 <Vorpal> elliott: what is it they say about them?
13:50:09 <elliott> They're shit. :p
13:50:15 <elliott> Or at least trolly.
13:50:33 <elliott> (Of course there's the opposing school of thought which I will dub the "they're not shit" school.)
13:50:35 <Vorpal> elliott: well it is true that a lot of programmers suck badly and wouldn't understand something like haskell
13:51:02 <Vorpal> not sure it requires a degree in math, though that certainly helps with /all/ programming
13:51:07 <elliott> That is not really true at all but whatever.
13:51:09 <elliott> (On either account)
13:54:17 -!- DH____ has quit (Read error: Connection reset by peer).
13:54:20 -!- DHeadshot has joined.
13:59:43 -!- Sgeo|m has joined.
13:59:50 <Sgeo|m> Why does Managed C++ exist?
14:00:32 <Sgeo|m> For people who would normally choose C++ over, say, C#, because of the _syntax_?
14:01:43 -!- sadhu has left ("Leaving").
14:01:59 -!- sllide has joined.
14:03:14 <fizzie> For people who feel more familiar there? Comfort languages, and all that. (Does someone still use that thing?)
14:18:04 -!- copumpkin has joined.
14:41:19 <elliott> pikhq: I kind of wish there was a way to schedule IO actions to be run whenever a TVar is modified...
14:42:04 <elliott> Something like newTVarWithHandler :: a -> (a -> IO ()) -> STM (TVar a), then upon successful transaction commit, all the queued handlers for the modified TVars are executed in order of modification.
14:42:23 <Vorpal> elliott: yeah that would be nifty
14:42:41 <elliott> Vorpal: I think you can implement it already
14:42:48 <Vorpal> oh?
14:42:52 <elliott> but it requires you to pass an additional parameter around to your writeTVar equivalent
14:43:08 <elliott> a TVar [IO ()] or whatever
14:43:25 <elliott> you could do ReaderT (TVar [IO ()]) STM
14:43:32 <elliott> and have your variable type work natively in that
14:43:33 <elliott> but ehhh
14:43:54 <elliott> the usecase I'm imagining here is queueing up the "hey player you are now over here" packets when modifying a player's position in mchost
14:44:49 <elliott> Hmph, the Bukkit API is I think making things hard for me in that area.
14:49:01 -!- Phantom_Hoover has joined.
14:50:00 <elliott> HELO PHAOIntomeohOVEr
14:50:31 <Phantom_Hoover> I...
14:50:31 <lambdabot> Phantom_Hoover: You have 5 new messages. '/msg lambdabot @messages' to read them.
14:50:39 <Phantom_Hoover> Messages!
14:50:54 <Phantom_Hoover> Either Homestuck updated or someone was really, really stupid.
14:51:13 -!- Sgeo|m has quit (Ping timeout: 252 seconds).
14:51:16 -!- CakeProphet has joined.
15:03:02 <Phantom_Hoover> http://www.reddit.com/r/math/comments/l0nnx/letter_to_the_prime_minister_on_the_future_of/c2ozv5r
15:03:17 <Phantom_Hoover> It's like something from the Private Eye.
15:04:13 <elliott> "Everyone can afford to go to university, even 32 year olds." I like this guy's definition of "afford". ("first, thatcher took my school milk." is now my favourite sentence ever, also.)
15:04:27 <Phantom_Hoover> elliott, erm, do you know how university fees work?
15:04:49 <elliott> Phantom_Hoover: Yes, but it's still a fairly misleading statement.
15:04:52 <Phantom_Hoover> It's basically just a tax you pay until you pay it off or retire.
15:05:02 <Phantom_Hoover> elliott, so how would you define 'afford'?
15:05:36 <elliott> I'm not sure. I'm not sure that guy is sure either.
15:05:46 <elliott> It is like a big tower of sureness.
15:07:16 <elliott> Hmm, I wonder if I could use TChans.
15:07:58 <Phantom_Hoover> elliott, if you mean 'can pay for without radical financial alterations', then yes, you can.
15:08:24 <elliott> That just shifts the issue onto "pay for". But w/e :P
15:08:45 <Phantom_Hoover> Pay for as in exchange money for goods or services.
15:09:20 <elliott> What a strange concept.
15:10:29 <elliott> "Writing a “Hello World” Device Driver for kernel 2.6 using Eclipse"
15:10:31 <elliott> Yikes.
15:11:15 <elliott> "Thanks. I will check the autotools plugin soon. Do you know any better IDE for driver programming? Do you think I (a lazy VS user who have no experience in linux) can manage makefile? Is makefiles really manageable in big projects?"
15:11:24 <elliott> Is makefiles good for our children?
15:13:32 -!- Phantom__Hoover has joined.
15:13:41 <elliott> helloei phaoeirntomhievtre
15:13:50 <elliott> PhaeoeirntomHievtre.
15:13:52 <elliott> That's your new name.
15:13:59 <elliott> /nick Phaeoeirntom_Hievtre, please.
15:14:41 -!- Phantom__Hoover has changed nick to PH______________.
15:15:22 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
15:15:27 <elliott> no.........
15:15:31 <elliott> PH______________: Phaeoeirntom_Hievtre....
15:15:47 -!- PH______________ has changed nick to P_______________.
15:16:39 <elliott> P_______________: Phaeoeirntom_Hievtre........
15:16:49 -!- P_______________ has changed nick to ________________.
15:18:04 <elliott> ________________: Phaeoeirntom_Hievtre....................
15:18:13 <elliott> Either that or keep ________________ permanently.
15:18:26 <________________> Can't, it's registered.
15:18:53 <elliott> lol
15:18:57 <elliott> Add another _?
15:19:42 <CakeProphet> qwrojq23r
15:19:58 -!- CakeProphet has changed nick to _.
15:20:28 -!- _ has changed nick to CakeProphet.
15:21:57 -!- DHeadshot has quit (Quit: Bye).
15:22:12 -!- DH____ has joined.
15:27:00 -!- CakeProphet has changed nick to CP____.
15:27:10 <CP____> yo dawg.
15:27:35 <elliott> MC/Host.hs:9:8:
15:27:35 <elliott> Could not find module `Control.Monad.Class.IO'
15:27:35 <elliott> Perhaps you meant
15:27:35 <elliott> Control.Monad.IO.Class (from transformers-0.2.2.0)
15:27:35 <elliott> Control.Monad.Trans.RWS (from transformers-0.2.2.0)
15:27:36 <elliott> Control.Monad.Trans (needs flag -package mtl-2.0.1.0)
15:27:38 <elliott> Use -v to see a list of the files searched for.
15:27:41 <elliott> GHC 7.2.1's error messages sure are improving.
15:27:55 <elliott> Or, rather, are an improvement upon previous versions.
15:28:41 <CP____> indeed
15:28:53 <CP____> ghc --version
15:28:53 <CP____> The Glorious Glasgow Haskell Compilation System, version 6.12.3
15:28:55 <CP____> :(
15:29:09 <CP____> stupid repos
15:29:50 <CP____> so it's actually GGHCS? :P
15:30:57 <elliott> You shouldn't use repo GHC.
15:31:10 <elliott> That version is from June 2010.
15:32:00 <CP____> doesn't that quickly become "you shouldn't use repo <insert program>"
15:32:09 <CP____> at which point I'm manually compiling a lot of things?
15:35:16 <CP____> I guess GHC is an acceptable exception.
15:41:22 <________________> Seen in r/AskScience: someone arguing that defrosting someone from 2011 in 2211 would be easier than playing ancient YouTube codecs.
15:41:39 -!- ________________ has changed nick to ______________.
15:41:45 <______________> I think they're all registered.
15:42:59 -!- ______________ has changed nick to Phantom_Hoover.
15:43:22 <elliott> <________________> Seen in r/AskScience: someone arguing that defrosting someone from 2011 in 2211 would be easier than playing ancient YouTube codecs.
15:43:25 <elliott> Say this again so I can addquote it.
15:43:35 <elliott> Or just find me the person who said it :P
15:43:49 <Phantom_Hoover> Well, they didn't say that exactly.
15:43:52 <Phantom_Hoover> Seen in r/AskScience: someone arguing that defrosting someone from 2011 in 2211 would be easier than playing ancient YouTube codecs.
15:46:00 -!- CakeProphet has joined.
15:46:01 -!- CakeProphet has quit (Changing host).
15:46:01 -!- CakeProphet has joined.
15:47:03 <elliott> Phantom_Hoover: OK I hate you for directing me to this comment thread.
15:47:23 <Phantom_Hoover> Why, the censorship stuff?
15:47:28 <elliott> Phantom_Hoover: It's like a battle of who can make me want to agree with the other just because everyone on the other side is so bad, and it KEEPS SWITCHING.
15:47:34 <elliott> What censorship stuff? I mean the cryonics thing.
15:47:45 <Phantom_Hoover> Irrelevant, then.
15:48:04 -!- CP____ has quit (Ping timeout: 255 seconds).
15:48:09 <elliott> "It amazes me that any intelligent person would buy in to this given the knowledge that the method doesn't work right now."
15:48:14 <elliott> What.
15:48:35 <CakeProphet> "I say, Elliott, human flight? the notion is simply absurd."
15:48:38 * CakeProphet smokes his pipe.
15:49:08 <Phantom_Hoover> In the case of cryonics, it's a bit more complicated.
15:49:31 <elliott> Phantom_Hoover: Yes of course, I was balking at the statement itself.
15:49:49 <elliott> They're literally saying that you shouldn't believe any technology will be invented ever.
15:50:08 <elliott> <Whatever the next size down is from what we have now> nm chips? SO FOOLISH OF YOU TO BELIEVE IN THESE THINGS
15:50:36 <Phantom_Hoover> Again, in the case of cryonics it's more complicated than that.
15:51:06 <elliott> Phantom_Hoover: Note how (a) the line I quoted is devoid of the word "cryonics", (b) I am not attempting to defend cryonics.
15:51:16 <Phantom_Hoover> Yes, true.
15:51:31 <elliott> Whether you agree with their /conclusion/ or not, it's a ridiculous argument.
15:52:55 <CakeProphet> elliott: I don't visit reddit. Life is wonderful.
15:53:14 <elliott> CakeProphet: You and some seven billion people.
15:53:47 <CakeProphet> are you suggesting that a negative number of people frequent reddit?
15:53:54 <Phantom_Hoover> Yes.
15:54:23 <elliott> You didn't know?
15:54:36 <CakeProphet> no. the notion is simply absurd.
15:55:15 <Phantom_Hoover> Tell that to the -30,000,000 redditors.
15:55:22 <CakeProphet> so when someone is born a negative person dies?
15:56:04 <CakeProphet> or is a negative person a dead person? help the number system doesn't match the units.
15:56:58 <Phantom_Hoover> Every moment dies a negative man, every moment one is born.
15:58:47 <CakeProphet> elliott: are... are you a negative human?
15:59:02 <elliott> Most assuredly.
15:59:09 <CakeProphet> o_- I see.
15:59:10 <Phantom_Hoover> Yes. Taneb is his positive counterpart.
15:59:26 <CakeProphet> Phantom_Hoover: and what about you?
15:59:31 <CakeProphet> am I your positive counterpart?
15:59:36 <Phantom_Hoover> I am imaginary.
15:59:40 -!- CakeProphet has changed nick to Cake_Prophet.
15:59:43 <Cake_Prophet> I see.
16:00:28 <Cake_Prophet> this is getting rather complex.
16:00:33 <Cake_Prophet> (ZING)
16:01:23 -!- monqy has joined.
16:01:30 <elliott> monqy is the pope in this analogy
16:01:42 <monqy> hi
16:01:54 <Phantom_Hoover> He's the real part of god.
16:02:10 <Phantom_Hoover> The trinity make up the rest; god is therefore a quaternion.
16:02:36 <elliott> Best quaternion.
16:02:45 <Phantom_Hoover> Godternion.
16:03:05 * Cake_Prophet thinks the Julia set quaternions are the best.
16:03:12 <Cake_Prophet> they make neat shapes.
16:03:37 <Cake_Prophet> (when a 3-dimensional slice is taken)
16:04:08 <Cake_Prophet> though I imagine their 4-dimensional shape is neat as well.
16:04:13 <Cake_Prophet> to make such neat 3-dimensional shapes.
16:04:32 * Cake_Prophet : master of sound reasoning
16:09:55 <Cake_Prophet> so... javascript doesn't have any kind of built-in randint?
16:10:01 <Cake_Prophet> I have to do silly things with random()
16:11:10 -!- augur has quit (Remote host closed the connection).
16:21:26 <Gregor> elliott: I'M A MOODERER
16:21:34 <elliott> What.
16:21:37 <Gregor> elliott: If you retell me that list of domains, I MAY find it in my heart to add them.
16:21:57 <elliott> Gregor: www.systranbox.com, www.systranet.com, www.xe.com, babelfish.altavista.com, futureboy.us, www.measuringworth.com, ajax.googleapis.com
16:22:06 <elliott> Gregor: Preferably wildcarded rather than literally with www. in front of them and the like :P
16:22:09 <elliott> (Because of redirects etc.)
16:22:28 <Gregor> I just whitelist SLDs usually
16:23:33 <monqy> i might look at frink today. today or tomorrow. or friday. i will look at it before monday.
16:24:12 <elliott> Gregor: Does that include subdomains?
16:24:59 <Gregor> elliott: Yeah
16:25:03 <elliott> Right
16:25:15 <Gregor> `run curl futureboy.us 2> /dev/null
16:25:18 <HackEgo> ​<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" \ "http://www.w3.org/TR/html4/strict.dtd"> \ <HTML LANG="en"> \ <HEAD> \ <TITLE>Alan Eliasen</TITLE> \ <META HTTP-EQUIV="Default-Style" CONTENT="APE Classic"> \ <LINK REL="StyleSheet" HREF="/frinkdocs/style.css" TYPE="text/css" \ TITLE="APE Classic">
16:29:55 <elliott> Gregor: :D
16:30:02 -!- Phantom_Hoover has quit (Ping timeout: 248 seconds).
16:30:11 <elliott> `run 3 gram 18 karat Gold -> GBP_1865
16:30:13 <HackEgo> sh: 3: command not found
16:30:17 <elliott> `frink 3 gram 18 karat Gold -> GBP_1865
16:30:48 <HackEgo> No output.
16:30:59 <Gregor> Seems pretty great.
16:31:16 <elliott> >_>
16:31:17 <elliott> `frink 3 gram 18 karat Gold -> GBP_1865
16:31:28 <HackEgo> Unknown symbol "GBP_1865" \ 1.1727588630689421115
16:31:43 <elliott> `frink 9 GBP -> pounds_1960
16:31:52 <HackEgo> 0.58441558441558441558
16:32:01 <elliott> Gregor: TA-DAAAAAA
16:32:19 * Cake_Prophet is downloading the first two seasons of Adventure Time
16:32:21 <Cake_Prophet> mmmm
16:32:24 -!- Cake_Prophet has changed nick to CakeProphet.
16:32:43 <elliott> Gregor: I WILL NOW
16:32:44 <elliott> TRANSLATE
16:32:57 <Gregor> Yes yes, your thesis on gold prices.
16:33:00 <Gregor> Into whatever.
16:33:00 <elliott> `frink "My hovercraft is full of eels." -> German
16:33:02 <elliott> THANKS FRINK DOCS
16:33:09 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ My hovercraft is full of eels. -> German (undefined symbol)
16:33:12 <elliott> X-D
16:33:14 <elliott> `frink "My hovercraft is full of eels." -> German
16:33:23 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ My hovercraft is full of eels. -> German (undefined symbol)
16:33:26 <elliott> `frink "Gasoline costs " + (round[1.37 USD/gallon / (EUR/liter), 0.01]) + " Euro/liter in the United States." -> German
16:33:32 <elliott> `frink "The spirit is willing but the flesh is weak." -> Spanish -> Ingles
16:33:34 <elliott> SOMETHING WORK ANYTHING WORK
16:33:35 <Gregor> Seems pretty great
16:33:37 <HackEgo> Benzin kostet 0,27 Euro/Liter in den Vereinigten Staaten.
16:33:42 <elliott> YAaaaay
16:33:43 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ Unconvertable expression: \ The spirit is willing but the flesh is weak. -> Spanish (undefined symbol) -> Ingles (undefined symbol)
16:33:45 <elliott> I guess the German server is down :P
16:33:50 <elliott> `frink "Yo quiero un burrito." -> Ingles
16:34:00 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ Yo quiero un burrito. -> Ingles (undefined symbol)
16:34:04 <CakeProphet> ..
16:34:05 <elliott> `frink "Yo quiero un burrito." -> Ingles
16:34:10 <elliott> Gregor: Your internet connection sucks
16:34:15 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ Yo quiero un burrito. -> Ingles (undefined symbol)
16:34:18 <Gregor> elliott: So does your face.
16:34:28 <Gregor> `run curl babelfish.altavista.com 2> /dev/null
16:34:30 <HackEgo> No output.
16:34:33 <Gregor> Huh
16:34:37 <CakeProphet> `frink "Amo tu huevos" -> Ingles
16:34:37 <Gregor> `run curl babelfish.altavista.com 2> /dev/null
16:34:37 <elliott> `frink "Én már nem vagyok fertőzött." -> guessLanguage
16:34:39 <HackEgo> No output.
16:34:49 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ Amo tu huevos -> Ingles (undefined symbol)
16:34:49 <HackEgo> Error reading from http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q=C%09n+mC%21r+nem+vagyok+fertE%11zC6tt.: \.java.net.ProtocolException: Peer closed connection \ Warning: Tried to call guessLanguage[] but it didn't work. \ MatchExpression: left must be string. Expression was undef \ Unknown symbol "guessLanguage"
16:34:59 <Gregor> Well. wtfbbq :P
16:35:05 <Gregor> I guess I'll have to look into that :P
16:38:36 <CakeProphet> `calc "Tu madre es una puta" -> Ingles
16:38:47 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ Tu madre es una puta -> Ingles (undefined symbol)
16:39:02 <CakeProphet> needs more accents probably
16:40:53 -!- ais523 has joined.
16:42:55 -!- augur_ has joined.
16:46:38 <elliott> hi ais523
16:46:54 -!- Phantom_Hoover has joined.
16:47:14 <ais523> hi elliott
16:49:19 -!- pikhq_ has joined.
16:49:40 -!- pikhq has quit (Ping timeout: 276 seconds).
17:02:13 <ais523> hmm, the Conservative Party in the UK are busy trying to confuse people by using a party political broadcast slot to appeal for charity donations for starving people in Africa
17:04:17 -!- sadhu has joined.
17:08:15 <elliott> cooool
17:09:43 -!- CakeProphet has quit (Ping timeout: 240 seconds).
17:20:40 -!- nooga has quit (Ping timeout: 260 seconds).
17:30:27 -!- augur_ has quit (Remote host closed the connection).
17:37:13 <fizzie> <fizzie> Interesting how different the landscape looks in gmaps in Norway vs. Sweden, at the border: http://users.ics.tkk.fi/htkallas/norway-sweden.png
17:37:13 <fizzie> <fizzie> You could almost even believe the Norwegians have provided more accurate maps.
17:37:21 <fizzie> I almost accidentally shared this revelation on the WRONG CHANNEL.
17:37:32 <fizzie> Where "almost" is "actually".
17:38:19 <fizzie> Even though the other channel lacks any Norwegians (I think) who could take national pride in it.
17:40:14 -!- augur_ has joined.
18:06:26 -!- sadhu has quit (Quit: Leaving).
18:07:04 -!- sllide has quit (Read error: Connection reset by peer).
18:09:24 -!- Ngevd has joined.
18:09:56 <Ngevd> Hello!
18:14:29 -!- Jafet1 has joined.
18:16:48 -!- Jafet has quit (Ping timeout: 265 seconds).
18:20:49 -!- Jafet has joined.
18:21:38 -!- Jafet1 has quit (Ping timeout: 265 seconds).
18:21:38 <Ngevd> So...
18:21:45 <Ngevd> Thoughts on Brook?
18:25:22 -!- Entanglements has joined.
18:31:31 <ais523> Ngevd: I'd like to see a program in it
18:31:42 <ais523> that does something like just output 1, 2, 3, 4... indefinitely
18:31:42 <Ngevd> There's a fibonacci numbers program
18:31:48 <ais523> aha, even better
18:37:35 <Ngevd> Sadly, not infinite, but input-defined length
18:37:57 <ais523> ah, ouch
18:38:00 <ais523> infinite is what I was hoping for
18:38:12 <Ngevd> It's tricky
18:43:41 <Ngevd> I'll try to write one
18:53:45 -!- augur_ has quit (Remote host closed the connection).
18:59:45 -!- augur_ has joined.
19:01:44 -!- augur_ has quit (Remote host closed the connection).
19:08:40 <elliott> pikhq_: Man, this is tricky
19:11:22 <elliott> ais523: Did you hear about the Italian Wikipedia?
19:11:38 <ais523> what about it?
19:11:42 <ais523> I mean, I know it exists
19:11:44 <elliott> http://it.wikipedia.org/wiki/Wikipedia:Comunicato_4_ottobre_2011/en
19:11:52 <elliott> it's completely unavailable
19:12:05 <elliott> because of legislation coming in
19:12:18 <elliott> "This proposal, which the Italian Parliament is currently debating, provides, among other things, a requirement to all websites to publish, within 48 hours of the request and without any comment, a correction of any content that the applicant deems detrimental to his/her image."
19:12:20 <elliott> pro law
19:13:13 <ais523> given the political situation in Italy, I can sort-of understand that law
19:13:23 <ais523> it is not a good idea for the populace, but is for the government
19:13:29 <elliott> oh no, this $35 Indian tablet is made by the same people who made that awful netbook you guys probably remember
19:13:41 <elliott> india... trust me... it is not worth it...
19:13:43 <ais523> that's ridiculous
19:13:49 <elliott> you do not know what you are getting in to... STOP BEFORE IT IS TOO LATE
19:14:15 <elliott> "The launch — attended by hundreds of students, some selected to help train others across the country in the tablet’s use — followed five years of efforts to design a $10 computer that could bridge the country’s vast digital divide."
19:14:24 <elliott> I like how these things always end up costing about twice as much as they estimate
19:15:28 <ais523> elliott: I'm going to submit that Italian Wikipedia page to Slashdot, I think
19:15:32 <ais523> because nobody else has yet
19:15:52 <elliott> I'm surprised
19:16:03 -!- tiffany has joined.
19:16:15 <elliott> what an inane slashdot poll
19:16:35 <elliott> Oblig.: it doesn't even have an option for CowboyNeal's computer
19:19:58 <Phantom_Hoover> ais523, what Italian WP page?
19:20:05 <elliott> Phantom_Hoover: http://it.wikipedia.org/wiki/Wikipedia:Comunicato_4_ottobre_2011/en
19:20:09 <elliott> the only Italian WP page
19:20:16 <elliott> at least, for now
19:21:14 <Phantom_Hoover> Wow.
19:22:01 <ais523> ah, I've been beaten to it
19:22:06 <Phantom_Hoover> Reminds me of how a girl in my year suggested, over the course of a discussion, that if somebody was convicted and later acquitted of a crime, all internet reports on their conviction would have to be amended.
19:22:16 <Phantom_Hoover> I never got around to pointing out the obvious flaw, unfortunately.
19:22:24 <ais523> no wonder Slashdot submissions tend to be rubbish, it's because people writing a few fractions of a sentence get their submissions in first
19:22:39 <elliott> Phantom_Hoover: that would be a decent idea, if not for the impossibility and awful implications :P
19:22:50 <ais523> Phantom_Hoover: claim that the obvious flaw is "/b/ is not your personal army"
19:23:02 <elliott> hmm, isn't the Italian Wikipedia the one that forked off early on in WP history, then merged back in?
19:23:17 <elliott> ah no, that was Spanish
19:23:20 <elliott> Enciclopedia Libre
19:24:12 <ais523> isn't the obvious solution to host the Italian Wikipedia outside Italy?
19:26:51 <elliott> ais523: they'll just block it, or something
19:26:53 <elliott> :P
19:27:05 <ais523> people will find ways round the block, they always do
19:27:41 <ais523> Wikipedia have even come up with their own plans to help (e.g. the ipblockexempt permission that can be given to accounts to allow them to connect via Tor)
19:29:21 <ais523> TIL: the current version of GRUB 1 is 0.97, and of GRUB 2 is 1.99
19:30:05 <elliott> GNU counting.
19:31:34 <Ngevd> |
19:31:39 <Ngevd> =|:{D
19:31:41 <Ngevd> |
19:31:45 <Ngevd> Bandito smiley
19:32:49 <elliott> Ngevd: I would comment on Brook, but I'm Not Allowed To.
19:33:03 <Ngevd> I've revoked that status
19:33:09 <elliott> IT IS MY DUTY.
19:33:41 <elliott> "Thus the closure syntax and the for syntax really aren't equivalent and closures can't replace for loops. They might supplement them, but this is only relevant if they really can be run on multiple processors simultaneously."
19:33:46 <elliott> This is the most nonsense post I have ever read.
19:35:32 <elliott> http://en.wikipedia.org/w/index.php?title=Talk:Lava&curid=21438031&diff=454118153&oldid=452764824
19:35:37 <elliott> Gfrsdgerr makes a good point.
19:38:28 <Phantom_Hoover> "A personal appeal from Wikipedia programmer Brandon Harris."
19:38:50 <Phantom_Hoover> "Please tell me how to program help" — all WP programmers.
19:40:55 -!- quintopia has quit (Ping timeout: 240 seconds).
19:40:58 <Phantom_Hoover> OK this BBC thing on dinosaurs has really, really awful CGI.
19:41:48 <Phantom_Hoover> I think they're trying to disguise the fact that everything moves really jerkily by making the camera look like a Sensodyne ad.
19:42:16 <elliott> ahahaha
19:42:44 <Phantom_Hoover> (Does anyone else get the Sensodyne reference I'm unclear on how well-known that is.)
19:42:53 <elliott> yes
19:42:56 <elliott> oh
19:42:57 <elliott> else
19:42:57 <elliott> ok
19:42:59 <elliott> ask ais523 :P
19:43:12 -!- augur has joined.
19:43:14 <Phantom_Hoover> Ask him what?
19:43:25 <elliott> whether
19:43:25 <elliott> he
19:43:26 <elliott> got it,
19:43:29 <ais523> I didn't
19:44:17 <Phantom_Hoover> ais523, there were some Sensodyne ads a while back which just had a dentist blabbering on while the camera jumped between what I suspect are more angles than geometrically possible.
19:44:39 <elliott> Phantom_Hoover: there still are
19:44:42 <elliott> there have been for years
19:44:55 <elliott> Also they have really terrible noise filtration.
19:44:59 <elliott> Phantom_Hoover: I think it was like
19:45:03 -!- quintopia has joined.
19:45:04 <Phantom_Hoover> Yes, but I don't keep a Sensodyne ad diary.
19:45:04 -!- quintopia has quit (Changing host).
19:45:05 -!- quintopia has joined.
19:45:09 <elliott> a response to all those insane toothpaste ads
19:45:10 <elliott> that are like
19:45:16 <elliott> HERE ARE SCIENTISTS IN OUR FUTURE SCIENCE LAB
19:45:18 <elliott> THEY'RE LOOKING AT A TOOTH
19:45:22 <elliott> LOOK AT THE ENAMEL
19:45:23 <elliott> IT'S PROTECTED
19:45:27 <elliott> GOOD JOB DONE
19:45:29 <elliott> LAB COATS FOR EVERYONE
19:45:33 <elliott> TRY IT TODAY
19:45:40 <elliott> YOUR TEETH WILL BE #FFF
19:45:53 <elliott> and they tried to....capitalise.....on this...
19:46:44 <Phantom_Hoover> And their CGI budget was £5, but they had like 20 cameras and a hyperspace camera arranger
19:46:48 <Phantom_Hoover> *?
19:47:47 <elliott> Yes.
19:48:30 <quintopia> i want #CCCCCC teeth
19:49:41 <Phantom_Hoover> Light grey?
19:49:55 <Phantom_Hoover> Aren't you Americans all about getting #GGGGGG teeth?
19:50:34 -!- DH____ has quit (Ping timeout: 248 seconds).
19:51:20 -!- DH____ has joined.
19:51:49 <ais523> wow, I've used four different web browsers today, and have three open right now
19:52:07 <ais523> actually, five if you count the HTML renderer in my feed reader
19:52:12 <ais523> which is just an embedded version of Konqueror
19:53:16 <cheater> haha
19:53:37 <cheater> you are totally hooked into the cybernet
19:56:32 <Gregor> ais523: NOT - ENOUGH - BROWSERS
19:57:01 <ais523> I'm using Firefox, Epiphany, and Chromium simultaneously atm
19:59:45 <Gregor> ais523: NOT - ENOUGH - BROWSERS
20:00:11 <ais523> and was using w3m earlier
20:00:16 <ais523> (I treat w3m rather like man or info)
20:04:39 <quintopia> Phantom_Hoover: chiclet teeth are scary. why would i want to be a freak?
20:05:09 <Ngevd> The bass section of school youth theatre is 40% Nathan
20:05:13 <Phantom_Hoover> quintopia, I don't know, ask the people who do?
20:05:26 <Phantom_Hoover> Ngevd, the bass section of a *theatre*?
20:05:37 <Ngevd> Bass as in singing
20:05:39 <Ngevd> We do musicals
20:05:43 <elliott> Gregor: Re STM: I'm about to get some much more substantial data and experience to argue based on :P
20:08:10 <Gregor> elliott: Good! Do so!
20:08:26 <elliott> Gregor: I am (it's called "basing the entirety of mchost on STM")
20:08:36 <elliott> (Like "STM transactions every tick")
20:08:43 <elliott> (I am determined to make the most impossible things work)
20:08:44 <Ngevd> And I got a named part!
20:08:57 <Ngevd> Almost made a nasty typo there
20:09:14 <Phantom_Hoover> Ngevd, you seem proud of this.
20:09:36 <Ngevd> I'm proud I got a named part
20:09:43 <Ngevd> I felt the nasty typo needed sharing
20:16:28 <elliott> :t map ?f . M.toList
20:16:29 <lambdabot> forall b k a. (?f::(k, a) -> b) => M.Map k a -> [b]
20:16:50 <elliott> :t map (\(k,v) -> (,) k <$> return v) . M.toList
20:16:51 <lambdabot> forall t a (f :: * -> *). (Monad f, Functor f) => M.Map t a -> [f (t, a)]
20:31:08 -!- derdon has joined.
20:52:19 -!- Ngevd has quit (Quit: Leaving).
21:06:32 <Phantom_Hoover> How is David Cameron even so annoying it's preternatural.
21:06:52 <ais523> I actually rather like him
21:06:57 <ais523> I'm suspicious of him, in some ways
21:07:00 <ais523> but I'm fine with him as a person
21:07:03 <Phantom_Hoover> ais...
21:08:05 <elliott> Compromise opinion: At least Cameron doesn't use the word "preternatural".
21:08:36 <ais523> elliott: Phantom_Hoover is Scottish, it's genetic, or at least memetic, for them to hate Conservatives
21:08:41 <Phantom_Hoover> It is the best word.
21:08:58 <Phantom_Hoover> ais523, actually my genes are like all Irish so I don't even.
21:09:18 <elliott> ais523: I'm sorry if you interpreted my comment as in any way a support of David Cameron or the Conservatives.
21:09:26 <elliott> No, I just really hate the idea of a person who uses the word "preternatural".
21:09:27 <ais523> elliott: I didn't
21:09:40 <ais523> I'm trying to defend Phantom_Hoover for disliking David Cameron for no obvious reason
21:09:57 * ais523 websearches for ""David Cameron" preternatural"
21:10:24 <elliott> 26 Apr 2010 – Britain's Conservative leader, David Cameron, is ahead in the race for ... That same face, so preternaturally smooth that Cameron was forced to ...
21:10:25 <elliott> Gross.
21:10:36 <elliott> 4 Apr 2010 – Meanwhile, Coulson remains one of David Cameron's inner strategic ..... get caught and end up in the poo, lacking TB's preternatural faculties. ...
21:10:45 <ais523> "The majority of the Cabinet, led by David Cameron, took the oath: one by one they made a solemn declaration on pain of divine or preternatural wrath:" — "Archbishop Cranmer"
21:10:55 <elliott> OK it's a fucking epidemic.
21:11:03 <elliott> Let's kill everyone, but first the conservatives; that way we'll all be happy.
21:11:24 <elliott> The conservatives rest assured that they won't have to see everyone else perish, and everyone else gets to revel in it.
21:11:30 <elliott> And then "preternatural" will be wiped out.
21:11:39 <Phantom_Hoover> Why do you hate 'preternatural' so much?
21:11:49 <elliott> Phantom_Hoover: Have you ever even looked at that word.
21:12:04 <elliott> It is like another word making a caricature of snobbish words.
21:12:15 <elliott> "Ooh, look at me, I'm Mr. PRETERNATURAL!"
21:12:21 <Phantom_Hoover> At least I didn't spell it præternatural.
21:12:36 <elliott> Wow OK you are not even allowed to speak now.
21:12:48 -!- sllide has joined.
21:13:17 <Phantom_Hoover> elliott, hey, you said ""preternatural"" yourself!
21:13:43 <elliott> Phantom_Hoover: Yes but not that æ variant.
21:14:35 <Phantom_Hoover> I was citing it as a bad thing!
21:15:06 <elliott> Phantom_Hoover: Yes but you let it in to the world.
21:15:46 -!- oerjan has joined.
21:16:00 <Phantom_Hoover> I just copied it from the WP article modulo æ.
21:16:26 <oerjan> æ is the best modulo
21:16:39 <oerjan> it's not prime, though
21:18:38 <oerjan> very æsthetic
21:19:26 <Phantom_Hoover> Is preternatural not a good word.
21:19:51 <ais523> !c printf("%d",0xae);
21:19:54 -!- Entanglements has quit.
21:19:59 <elliott> rip entanglements
21:19:59 <ais523> oh right, EgoBot isn't here
21:20:09 <ais523> `printf "%d", 0xae
21:20:11 <HackEgo> ​"0", 0xae
21:20:16 <ais523> `printf "%d" 0xae
21:20:18 <HackEgo> ​"0" 0xae
21:20:26 <ais523> `run printf "%d" 0xae
21:20:27 <HackEgo> 174
21:20:31 <elliott> ais523: try frink :P
21:20:33 <oerjan> > chr 0xae
21:20:34 <lambdabot> '\174'
21:20:46 <oerjan> ^chr 174
21:20:46 <fungot>
21:20:46 <ais523> elliott: what's the difference between printf and `run printf
21:20:51 <elliott> `frink char[0xae]
21:20:55 <elliott> ais523: quoting
21:20:59 <elliott> former only passes one arg
21:20:59 <HackEgo> ​?
21:21:04 <elliott> lol
21:21:05 <ais523> `run factor 174
21:21:06 <HackEgo> 174: 2 3 29
21:21:14 <ais523> indeed, æ isn't prime
21:21:34 <oerjan> erm
21:21:39 <Phantom_Hoover> Note to self: go through ~/Downloads. Soon.
21:21:50 <oerjan> ^asc æ
21:21:50 <fungot> 195.
21:21:51 <elliott> Phantom_Hoover: You will never wipe the evidence.
21:21:59 <elliott> `frink 0xae -> nonary
21:22:08 <HackEgo> 213
21:22:10 <elliott> ais523: See, Frink is the most useful for all your æ-related needs.
21:22:12 <oerjan> oh hm
21:22:25 * oerjan confused that with %c. he thinks.
21:22:35 <ais523> `frink 0xae -> hexadecimal
21:22:41 <elliott> "hex" would do.
21:22:45 <HackEgo> ae
21:22:48 <ais523> elliott: it's a pointless query anyway
21:22:49 <oerjan> > showHec 0xae "
21:22:51 <lambdabot> <no location info>:
21:22:51 <lambdabot> lexical error in string/character literal at end o...
21:22:54 <oerjan> > showHex 0xae "
21:22:55 <ais523> and took altogether too long to reply to
21:22:55 <lambdabot> <no location info>:
21:22:55 <lambdabot> lexical error in string/character literal at end o...
21:22:59 <oerjan> wat
21:23:02 <oerjan> > showHex 0xae ""
21:23:03 <ais523> oerjan: what's with the stray "?
21:23:03 <lambdabot> "ae"
21:23:29 <oerjan> ais523: i'm starting to wonder if my keyboard's flaky (i use that word a lot lately don't i)
21:23:51 <sllide> a esolang based on spacechem
21:24:00 <oerjan> spacechem?
21:24:03 <elliott> `frink "preternatural" -> jp
21:24:07 <sllide> its a puzzle game
21:24:12 <HackEgo> Unknown symbol "jp" \ Warning: undefined symbol "jp". \ Unconvertable expression: \ preternatural -> jp (undefined symbol)
21:24:15 <elliott> Hmm.
21:24:17 <elliott> `frink "preternatural" -> Japanese
21:24:20 <sllide> http://www.youtube.com/watch?v=RjYOYtd298o
21:24:20 <elliott> Probably more proxy problems.
21:24:27 <HackEgo> Could not get input stream java.net.ProtocolException: Peer closed connection \ Unconvertable expression: \ preternatural -> Japanese (undefined symbol)
21:24:27 <elliott> I blame Gregor(tm).
21:24:29 <elliott> Yeah.
21:25:27 <oerjan> > showIntAtBase 256 chr 1234567890 ""
21:25:29 <lambdabot> "I\150\STX\210"
21:26:01 <elliott> oerjan: HMPH:
21:26:19 <elliott> oh damn
21:26:23 <Madoka-Kaname> :t showIntAtBase
21:26:24 <lambdabot> forall a. (Integral a) => a -> (Int -> Char) -> a -> String -> String
21:26:25 <elliott> frink's base support only goes up to 36 :P
21:26:34 <oerjan> *MWAHAHAHA*
21:26:42 <Madoka-Kaname> > showIntAtBase 10 chr 123456789 ""
21:26:43 <lambdabot> "\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t"
21:26:45 <Madoka-Kaname> > showIntAtBase 10 chr 123456789 "0"
21:26:46 <lambdabot> "\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t0"
21:27:09 <elliott> `frink messageDigestInt[1234567890 -> quattuordecimal, "MD5"] -> octal
21:27:11 <oerjan> well lambdabot's probably has some trouble beyond fromEnum (maxBound :: Char)
21:27:12 <elliott> oerjan: CHECKMATE
21:27:18 <HackEgo> 3475200621337201247103053166105120607462731
21:27:25 <Madoka-Kaname> > showIntAtBase 10 (chr.add$ord "a") 123456789 ""
21:27:26 <lambdabot> Not in scope: `add'
21:27:27 <oerjan> ;_;
21:27:40 <Madoka-Kaname> > showIntAtBase 10 (chr.(+ord "0")) 123456789 ""
21:27:41 <lambdabot> Couldn't match expected type `GHC.Types.Char'
21:27:41 <lambdabot> against inferred type...
21:27:43 <elliott> oerjan: now you just have to implement MD5 with @lets :P
21:27:54 <Madoka-Kaname> > showIntAtBase 10 (chr.((ord "0")+)) 123456789 ""
21:27:55 <lambdabot> Couldn't match expected type `GHC.Types.Char'
21:27:55 <lambdabot> against inferred type...
21:27:56 <Madoka-Kaname> :<
21:28:27 <Madoka-Kaname> > showIntAtBase 10 (chr.(+ord '0')) 123456789 ""
21:28:29 <lambdabot> "123456789"
21:28:39 <oerjan> Madoka-Kaname: you probably want intToDigit for normal conversions (only up to 16)
21:28:48 <Madoka-Kaname> oerjan, I'm just messing around!
21:28:49 <Madoka-Kaname> :<
21:28:51 <Madoka-Kaname> > showIntAtBase 10 (chr.(+ord '!')) 123456789 ""
21:28:53 <lambdabot> "\"#$%&'()*"
21:29:09 <elliott> http://en.wikipedia.org/wiki/Wikipedia:Templates_for_discussion/Log/2011_October_3#Template:Facepalm
21:29:09 <elliott> WJW
21:31:07 <ais523> elliott: hilarious
21:31:11 <ais523> you know about the T1 debate, right?
21:31:19 <elliott> ais523: I might do but I don't recall that name
21:31:20 <elliott> go on
21:31:22 <ais523> it looks like it's been resurrected in a really unlikely way
21:31:31 <ais523> elliott: it was part of the userbox wars
21:31:44 <ais523> Jimbo unilaterally added a new speedy-delete criteria for "divisive or inflammatory templates"
21:31:47 <ais523> and it lead to a row
21:31:58 <elliott> ais523: oh, hmm
21:32:05 <Phantom_Hoover> ais523, the userbox wars?
21:32:08 <elliott> the only userbox drama I remember was that SPUI-related one
21:32:08 <Phantom_Hoover> (Best wars.)
21:32:34 <ais523> you might both be too young to remember the userbox wars, but wow were they both pointless and futious
21:32:35 <ais523> *furious
21:32:52 <elliott> too young X-D
21:33:05 <elliott> Well, I do remember lots of userbox hoohah
21:33:09 <elliott> it just kind of all melded together into one
21:33:21 <Phantom_Hoover> ais523 is a veteran of the userbox wars— screw it I don't know the song well enough.
21:34:02 <ais523> here we go: http://en.wikipedia.org/wiki/Wikipedia:T1_and_T2_debates
21:34:35 <elliott> oh, right, I was thinking of the right one
21:34:46 <elliott> (the one started by the paedophilia userbox)
21:34:58 <elliott> hmm, was that the first test of "is Jimbo the final say"?
21:35:19 <elliott> I seem to recall everyone thought he was until he did something people disagreed with, at which point he retroactively stopped ever having a final say
21:36:17 <ais523> haha
21:37:27 <elliott> ais523: please try and convince Phantom_Hoover not to solve all package dependency problems with --force-all...
21:37:39 <ais523> Phantom_Hoover: it won't work properly
21:37:43 <Phantom_Hoover> elliott, it's like a hammer!
21:37:46 <ais523> and the errors will only become obvious later
21:38:02 <Phantom_Hoover> But it's all I have...
21:39:30 <ais523> I've used --force-depends once, in an emergency
21:39:32 <ais523> but that's it
21:39:54 <ais523> (hard power-off during a distro upgrade; I'm sort-of surprised it managed to recover from that even if I had to do parts of it manually)
21:40:04 <elliott> I use --force-all to hotswap packages sometimes
21:40:39 <Phantom_Hoover> So what am I /meant/ to do?
21:41:58 <elliott> don't install packages that you don't have the dependencies for
21:42:41 <Jafet> Uh, your package manager can't recover from a crash?
21:42:45 <Phantom_Hoover> Well that's a great solution (note: not a great solution).
21:42:51 <Jafet> What kind of software is that!
21:43:30 <Phantom_Hoover> ais523, I see David Gerard was heavily involved.
21:43:35 <ais523> Jafet: it can, normally; I was in the middle of a /distro upgrade/
21:43:48 <Jafet> And it can't recover while doing that?
21:44:30 <Phantom_Hoover> ais523, did you know about Gerard's RW career BtW.
21:44:44 <ais523> it actually can with a couple of "I know what I'm doing" command line options
21:44:51 <ais523> but I was surprised at that
21:45:31 <oerjan> 11:44:42: <elliott> The singularity is just a moment of infinite Firefox and kernel updates?
21:45:34 <oerjan> 11:44:48: <elliott> That's the most bullshit singularity I've ever heard of.
21:45:46 <oerjan> yes, but afters you will find that it looks _exactly_ like @
21:45:50 <oerjan> *afterwards
21:46:20 * oerjan gets even more suspicious that his keyboard is dropping characters
21:46:37 <oerjan> hm when i try to touch type properly, my speed goes _down_ :(
21:47:15 <Phantom_Hoover> ais523, so wait, the userbox wars were more a dispute over core site policy precipitated by the userbox deletion?
21:47:28 <oerjan> also, there will be an icon for "galactic network portal"
21:47:36 <ais523> Phantom_Hoover: the policy in question was aimed reasonably directly at userboxes
21:47:42 <Jafet> ais523: well, it should really have been automatic
21:47:47 <ais523> but yes, there was an argument about the metapolicy
21:48:08 <ais523> Jafet: which OSes are you used to? and what update/upgrade mechanisms?
21:48:30 <Phantom_Hoover> ais523, reminds me of like every conflict in RW's history, although it looks way less messy.
21:48:43 <Jafet> debian and apt, which is a piece of crap that can't figure out anything by itself
21:49:48 <oerjan> clearly Jafet is another person waiting for @
21:49:52 <ais523> this was Ubuntu and apt
21:50:09 <ais523> elliott: hmm, I'm not convinced @ even has a package manager, the packages are just platonically there
21:50:15 <Jafet> Ah, at least the debian maintainers don't actively work against you.
21:50:27 <Jafet> Like the ubuntu packagers enjoy doing.
21:50:39 <elliott> ais523: I think @'s package management system is type-based
21:51:02 <elliott> you specify the module signatures you need, @ and the user collaborate on deciding which modules to give you meeting those signatures
21:51:16 <elliott> one problem is that signatures could get general enough that the desired semantics aren't enforced, but I'll work something out
21:52:26 <oerjan> you need intensional types
21:52:43 <elliott> oerjan: you get right on that
21:53:30 <oerjan> as soon as they invent strong ai
21:53:35 <elliott> ais523: heh, maybe you can disambiguate by specifying desired big-O complexities with the signatures
21:53:43 <elliott> filled in by the implementation author (inferring them is impossible ofc)
21:53:54 <elliott> that might eliminate, like, a whole /three/ clashes
21:54:19 <elliott> The cheating solution is to give each defined API a unique hash identifier so that even structurally equivalent ones are distinct, but that has a whole bunch of authority and control problems.
21:54:28 <elliott> It might work out better in the end though.
21:55:25 <elliott> I should make it illegal to ping me about @ and then not respond enthusiastically to the ramblings I accidentally let escape afterwards.
21:56:43 <elliott> ais523: I SEE
21:57:01 <ais523> hey, I /read/ them
21:57:10 <ais523> but my brain's a bit fried atm
21:57:18 <ais523> trying to fix and run marking scripts at 9pm
21:57:27 <elliott> ais523: it's 9 pm?
21:57:32 <elliott> looks more like eleven here
21:57:40 <ais523> elliott: that's when I was fixing them and running them
21:57:46 <ais523> I've finished that barring further emails flying around
21:57:56 <ais523> but my brain got fried in the process
21:57:58 <ais523> it'll recover, I hope
21:58:01 <elliott> They should really use a safer method of delivering email.
21:58:01 <ais523> but hasn't yet
22:00:28 <oerjan> emails by paper plane
22:01:53 <oerjan> <fizzie> I mean, if they do graphs of all the "fuck"s in the kernel... http://www.vidarholen.net/contents/wordcount/
22:02:00 <oerjan> i like how they included "penguin"
22:02:09 -!- copumpkin has quit (Quit: Computer has gone to sleep.).
22:02:58 <elliott> I like how "penguin" ranks higher than "fuck".
22:04:16 -!- DH____ has quit (Read error: Connection reset by peer).
22:04:19 -!- DHeadshot has joined.
22:04:21 <Jafet> http://www.anvari.org/fortune/Kernel_Cookies/134
22:05:50 <oerjan> the word "shit" seems to have dropped a lot from the start, i wonder if that's linus's personal favorite
22:06:15 <oerjan> (relatively)
22:06:48 <elliott> Linus says crap a lot.
22:06:55 <elliott> At least in emails.
22:07:46 <oerjan> well crap _does_ dominate in the middle
22:08:42 <oerjan> but shit had a huge dominance initially
22:09:11 <oerjan> there are also releases where "penguin" wins
22:12:06 <elliott> oerjan: bear in mind that the kernel was not all that much code initially :P
22:12:21 <elliott> it does dominate for a while though
22:14:36 <oerjan> a little known fact is that "shit" was the first word linus wrote in original linux. right after the first "/*"
22:15:12 <elliott> Nothing good ever starts with a comment. this is the wisdom of ZOMGMODULES caret w elliott
22:16:03 <oerjan> hm being elliott _would_ explain why cpressey rarely shows up here
22:16:28 <elliott> Unfortunately it falls down at the part where, e.g. I'm not amazing.
22:16:50 -!- oerjan has set topic: computed jumps... the topic. | 12345678^&!@ | http://codu.org/logs/_esoteric/.
22:18:31 <ais523> hmm, the tdwtf sidebar discussion about legal train routes is pretty amazing
22:18:38 <ais523> there are over 600 pages of instructions
22:18:42 <ais523> together with a long list of exceptiosn
22:18:44 <ais523> *exceptions
22:18:55 <elliott> oerjan: thank you
22:18:59 <oerjan> yw
22:19:01 <elliott> oerjan: @ is unnecessary
22:19:03 <elliott> alt+q gives me that
22:19:07 <elliott> oerjan: i suggest asterisk instead
22:19:14 -!- oerjan has set topic: computed jumps... the topic. | 12345678^&!* | http://codu.org/logs/_esoteric/.
22:19:25 <elliott> ais523: the tdwtf sidebar should be forced to fit into an actual sidebar, really
22:19:30 <elliott> because I imagine it like that whenever it's referenced
22:19:37 <elliott> also, it's the only way the forum software could get worse
22:19:39 * Phantom_Hoover → sleep
22:19:43 -!- Phantom_Hoover has quit (Quit: Leaving).
22:23:20 <ais523> gah, seems it also depends on the day of the week
22:23:29 <ais523> and the time, but only if getting a train from England to Ireland
22:23:33 <ais523> which is, how is that even possible?
22:24:39 <elliott> help
22:25:13 <ais523> OK, I think I've just verified that it's legal to travel from Birmingham to Cambridge via Loughborough (and vice versa)
22:25:19 <ais523> even though map-wise, it makes no sense
22:25:25 <elliott> why would it be
22:25:26 <elliott> ieglegilgal
22:25:34 <ais523> because it's not on the route
22:25:52 <oerjan> since when do train routes _not_ depend on the day of the week?
22:26:07 <oerjan> that's like, what they do
22:26:15 <ais523> oerjan: well, it's about what combination of trains is legal to get from A to B
22:26:20 <ais523> e.g., can you go via unrelated location C?
22:26:31 -!- copumpkin has joined.
22:28:37 <ais523> hmm, I think it might be theoretically possible to have a pair of stations which, by the rules, can't be travelled between at all
22:28:43 <ais523> except that there's an exception that the shortest route is always legal
22:29:22 <oerjan> why would they even _have_ rules?
22:29:52 <oerjan> other than, you have to pay for the stretches you actually travel
22:30:50 <oerjan> mind you in norway at least, prices depend on when you travel, too. well last i traveled by train. i think.
22:32:03 <oerjan> also, down near oslo they are almost never on time.
22:33:50 <ais523> oerjan: because there's some rule allowing you to get off at intermediate stations, but the fare depends only on source and destination
22:34:14 <oerjan> hm
22:34:31 <oerjan> where destination is _final_ destination, i guess?
22:34:36 <ais523> yep
22:34:41 <ais523> there was a famous incident where someone exploited this to get really low fares on his commute
22:34:47 <ais523> until the train operators caught on and changed the rules
22:35:39 <oerjan> hm, i see, so somehow paying directly to the intermediate station is _more_ expensive?
22:35:57 <ais523> oerjan: yes
22:36:16 <ais523> although, the rules nowadays explicitly state that a route's illegal if it's more expensive to go directly to an intermediate station
22:36:41 * pikhq_ grawr
22:37:09 <oerjan> i guess this would only make sort of sense if the route takes a long roundabout to get to its final destination
22:37:20 <ais523> oerjan: yes, or if London is involved
22:38:28 <pikhq_> It's a bit weird hearing about train routes discussed in a manner that makes it clear that people actually *use* them.
22:38:34 <oerjan> well, you do have the world's oldest train system, it figures it would be complicated.
22:39:36 <oerjan> that's europe for you. although the norwegian trains (esp. near oslo, i think) are sufficiently bad they have trouble competing with other solutions.
22:39:53 <oerjan> we don't have high speed tracks
22:41:04 <oerjan> and many places, only a single track so there are delays whenever trains need to pass each other
22:41:41 <pikhq_> We don't have a passenger rail system.
22:41:47 <ais523> much the same in the UK, except that single tracks are moderately rare and the trains are timed so that they don't cause delays
22:42:16 <pikhq_> The closest we have is Amtrak, which runs ridiculously limited passenger service on freight lines.
22:43:02 <pikhq_> https://upload.wikimedia.org/wikipedia/commons/c/c5/Amtrak_System_Map.svg
22:43:16 <pikhq_> Keep in mind, this is for a country about the size of the EU.
22:43:24 <elliott> more like tamtruck
22:43:46 <elliott> ok im going to bed
22:43:56 -!- Jafet has quit (Quit: Leaving.).
22:44:21 <pikhq_> https://upload.wikimedia.org/wikipedia/commons/1/1f/Map_of_current_Interstates.svg And this is a map of major freeways.
22:45:31 -!- elliott has quit (Remote host closed the connection).
22:45:40 <olsner> pikhq_ is american? I thought you were finnish or something
22:45:49 <pikhq_> Very much American.
22:46:36 <oerjan> olsner: you haven't noticed his political discussions? although admittedly he seems to know something about europe, which might throw you off :P
22:46:55 <olsner> oerjan: politics? I don't read politics
22:46:58 <pikhq_> I'm an American who just happens to give a shit about other places.
22:47:07 <pikhq_> Which *probably* suffices to throw people off.
22:47:08 <pikhq_> :P
22:48:28 <pikhq_> olsner: Anyways. Why'd you think I was Finnish? Or, more generally, Scandinavian?
22:48:47 <oerjan> it _is_ a good first guess on this channel
22:49:10 <olsner> not british and not swedish/norwegian => finnish
22:49:10 <pikhq_> Well, yeah, we seem to have a pretty high proportion of Scandinavians.
22:50:02 <olsner> I don't know of any regulars outside that rule except pikhq :)
22:50:12 <pikhq_> Gregor?
22:50:21 <pikhq_> Though Gregor is not one of the *talkative* regulars.
22:50:45 <olsner> he's british afaik :P
22:50:53 <pikhq_> Gregor's American.
22:51:14 <oerjan> zzo38, too
22:51:22 -!- ais523 has quit (Remote host closed the connection).
22:51:22 <pikhq_> zzo38's Canadian, isn't he?
22:51:30 <olsner> wat, zzo38 is finnish :P
22:51:32 -!- kmc has quit (Quit: Leaving).
22:51:33 <oerjan> yes, which doesn
22:51:37 <oerjan> 't fit olsner's rule
22:51:45 <pikhq_> Yeah.
22:52:12 <pikhq_> Hmm. Do we have people from outside the Germanic language sphere?
22:52:17 <oerjan> olsner: i once thought zzo38 was chinese, but...
22:52:25 <oerjan> lifthrasiir is korean
22:52:26 <pikhq_> Oh, wait, lifthrasiir's in Korea. There we go.
22:52:39 <olsner> I think I see the problem: since I use the rule to decide everyone's nationality I fail to disprove the rule
22:52:59 <monqy> waht nationality am i
22:53:02 <pikhq_> oerjan: Yeah, zzo38's idiosyncratic grammar does seem pretty Sinitic.
22:53:07 <oerjan> slereah is french, although maybe not so regular
22:53:15 <olsner> monqy: british
22:53:23 <monqy> actually american
22:53:34 <oerjan> pikhq_: as does zzo if it were his initials (not sure on the "o", though)
22:53:45 <oerjan> augur is american
22:53:56 <monqy> wow lots of americans
22:54:24 <oerjan> nooga and asiekierka are polish
22:54:31 <augur> oerjan: beep boop
22:54:37 * oerjan waves
22:54:38 <pikhq_> monqy: Well, yeah. The US is pretty big for a country.
22:54:58 <oerjan> hiato is south african, although he is rarely here
22:55:10 <pikhq_> And it's not yet completely economically fucked, so of course it'll have a lot of representation.
22:55:58 <pikhq_> Some 312 million people.
22:57:07 <pikhq_> The EU, for comparison, features some 502 million people.
22:57:19 <oerjan> sebbu is also french, but he never talks
22:57:34 <oerjan> i _think_ cheater is german.
22:58:14 <oerjan> boily is french, or maybe french canadian
22:58:24 <oerjan> ...not sure on that
22:58:40 <oerjan> jix is german
22:59:05 <oerjan> tswett is american, i think
22:59:45 -!- derdon has quit (Remote host closed the connection).
23:00:22 <oerjan> a number of the others might be american but i'm not sure. and i haven't mentioned those i know are scandinavian/nordic or british
23:01:00 <oerjan> and then there is shachaf, of which i have my suspicions :P
23:02:01 <shachaf> oerjan: Well, of course you have suspicions of me.
23:02:07 <shachaf> Wait, what are we talking about?
23:02:18 <oerjan> shachaf: where everyone is from
23:02:26 <shachaf> Oh. "from" meaning what?
23:03:15 <oerjan> country. and in your case i suspect birth and residence are not the same.
23:03:44 <shachaf> Right. Which one?
23:05:32 <oerjan> probably residence.
23:05:43 <oerjan> in which case i suspect you're in the us
23:06:30 * shachaf born in Asia, live in North America
23:07:26 <oerjan> and your name looks distinctively jewish.
23:07:52 <shachaf> Well, it's Hebrew.
23:08:00 <shachaf> Southwest Asia. :-)
23:08:19 * shachaf also citizen of Finland.
23:08:24 <oerjan> ah i saw that
23:08:32 <oerjan> wasn't sure if you were joking
23:08:45 <shachaf> Saw what?
23:09:00 <oerjan> that you said you were a citizen of finland.
23:09:55 <oerjan> and you could be born in israel, but if it's some other sw asian country things could get complicated...
23:10:58 <oerjan> and the finnish mention indicates it might be.
23:11:59 * oerjan finally breaks down and google-stalks shachaf
23:12:14 * shachaf sighs.
23:12:58 <oerjan> "anything seasoned with balsamic vinegar"
23:14:44 <pikhq_> oerjan: It's probably to ask for places of birth, residence, and citizenship.
23:15:03 <oerjan> i think you accidentally a word
23:15:11 <pikhq_> Probably best
23:15:16 <oerjan> pikhq_: i started getting that feeling, too
23:15:26 <oerjan> shachaf: sorry if i've embarassed you
23:17:36 -!- sllide has quit (Read error: Connection reset by peer).
23:20:14 <shachaf> I wish that "Executive Profile" wasn't there.
23:20:19 <shachaf> It's kind of ridiculous.
23:20:24 <shachaf> Maybe I can have them take it down.
23:26:03 -!- tiffany has quit (Ping timeout: 248 seconds).
23:39:58 <oerjan> <fizzie> You could almost even believe the Norwegians have provided more accurate maps.
23:40:03 -!- Sgeo|web has joined.
23:40:11 <oerjan> the norwegian side might actually have people still living there.
23:41:33 <Sgeo|web> Steve Jobs died
23:44:01 <Gregor> Oh?
23:44:11 <pikhq_> Sure enough.
23:44:14 <Gregor> You seem to have beat Google News.
23:44:36 <pikhq_> It seems to have literally just happened.
23:44:41 <Sgeo|web> My dad had the TV on
23:47:09 <pikhq_> Well, that's "fun". The US signed the ACTA, and is claiming that they don't need Senate approval.
23:47:30 <pikhq_> Which is of course impossible.
23:47:50 <pikhq_> The President only has the power to make treaties with 2/3rds of the Senate concurring.
23:48:34 <Gregor> Welp, Jobs managed to capture our attention for three minutes.
23:48:36 <Gregor> That's pretty good, really.
23:49:24 -!- DHeadshot has quit (Read error: Connection reset by peer).
23:49:28 -!- DH____ has joined.
23:51:21 <Gregor> An admin here wants to nominate me for the dubious title of "Music Maker" (where "Maker" is the Purdue Official Pun). Anybody want to write a 100-world blurb on my amazing musical abilities? :P
23:51:53 <pikhq_> 音楽良
23:51:56 <pikhq_> There.
23:52:02 <pikhq_> 3 characters.
23:52:03 -!- DH____ has quit (Read error: Connection reset by peer).
23:52:05 <pikhq_> That count?
23:52:53 <Gregor> Well, that's almost 100 words.
23:53:11 <pikhq_> Far short of 100 worlds, though.
23:53:16 <Gregor> OK, I am seriously terrified by this curry ... PLEASE DON'T BURST INTO FLAMES ... I'M SORRY THAT I'VE ANGERED THE COCONUT OIL GODS ...
23:53:23 <Gregor> ... lol
23:53:26 <Gregor> I tpyo'd 100 "worlds"
23:53:30 <Gregor> That's pretty great.
23:53:34 <Gregor> Let's try 100 /words/ :P
23:53:42 <oerjan> 01:48 Gregor> Welp, Jobs managed to capture our attention for three minutes.
23:53:42 <oerjan> 01:48 Gregor> That's pretty good, really.
23:53:45 <oerjan> out in a blast
23:56:24 <oerjan> "Gregor has a preternatural talent for creating wonderfully salient and laisse-faire compositions alluding to the bourgoisie sensibilities of the current American zeitgeist."
23:57:01 <oerjan> someone else can do the remaining 78
23:57:41 <oerjan> (no, i'm not sure what all those words mean)
23:58:14 <Gregor> oerjan: Good! Gettin' there!
←2011-10-04 2011-10-05 2011-10-06→ ↑2011 ↑all