←2012-04-08 2012-04-09 2012-04-10→ ↑2012 ↑all
00:00:16 <kmc> shrug
00:00:25 <kmc> what's your actual objection
00:00:42 <kmc> if you're starting out and you want a bunch of little list-type problems
00:00:47 <Sgeo> I like some Nightwish songs
00:00:56 <oklopol> perhaps beginners want preserve their species, so they want beginners to stay beginners.
00:01:18 <oklopol> i like all nightwish songs, i just cannot listen to them objectively :(
00:02:14 <oklopol> i mean even this stuff http://www.youtube.com/watch?v=JatD5SyRhLk
00:02:19 <oklopol> that's fucking perfection
00:03:08 <oklopol> but i somehow feel that's not usually my style
00:03:17 <elliott> kmc: they're all poor because they're all designed specifically to show off prolog's constraint solving
00:03:22 <elliott> since it was translated from lisp from prolog
00:03:36 <elliott> (so there's also "how awesome lisp's list processing" stuff is too)
00:03:50 <elliott> and they include all the lisp examples inline
00:03:54 * Sgeo searches for more funny videos about planned parenthood
00:04:11 <elliott> and a bunch of the argument orders are non-idiomatic because of the translation etc
00:04:15 <elliott> *etc.
00:04:32 <Sgeo> "Alex Exposes Planned Parenthood"
00:04:34 <kmc> and the bible was translated from Aramaic to Greek to Latin to English
00:04:44 <elliott> kmc: oh, please
00:04:49 <elliott> kmc: by translated i mean "literally just translated"
00:04:59 <kmc> well it is a wiki elliott...
00:05:14 <elliott> yes, but i don't have the admin powers to delete those pages, what's your point
00:05:21 <kmc> you could fix them :)
00:05:39 <elliott> they're poor, the whole idea of translating prolog problems to haskell wholesale as a means of teaching haskell (note that people have been recommended this *over* LYAH by beginners)
00:05:40 <kmc> I agree they're not the best quality, but you seem to be picking nits
00:05:43 <elliott> is doomed
00:05:51 <kmc> oh, it's not a replacement for LYAH at all
00:05:54 <kmc> the problem don't *explain* anything
00:05:57 <elliott> i don't care that they exist, i care that people end up reading them as major learning material
00:06:03 <kmc> they are exercises to do while you read LYAH or GIH or whatever
00:06:11 <elliott> SOLELY because other people who got recommended them did, etc. etc. i've never seen a single person who actually knows haskell recommend them
00:06:15 <kmc> if people say otherwise then they're being dumb and you should hit them
00:06:17 <kmc> with sticks
00:06:20 <elliott> which does not fill me with confidence that they help people learn haskell
00:06:41 <elliott> kmc: well I think people tend to end up reading LYAH but end up very distorted because the only code they're trying to write is what are in the 99 problems
00:06:56 <elliott> also it's impossible to stop people recommending bad tutorials in haskell, you know that
00:07:39 <kmc> true
00:07:47 <kmc> i think i've recommended the 99 problems and I know haskell pretty well
00:08:08 <elliott> bah
00:08:13 <elliott> they're probably not that bad if you already have the basics down
00:08:22 <elliott> but i do think they'll be a bad influence on newbies
00:08:23 <oklopol> i never really wrote an actual problem in haskell
00:08:36 <oklopol> i just wrote these little list manipulation things and thought it's a neat language
00:08:37 <elliott> and are not nearly essential, so recommending them before the "i just wanna write more haskell" stage is bad
00:08:47 <oklopol> and then back to pythen for actual programs
00:09:20 <oklopol> pythan
00:09:27 <oklopol> pythong
00:12:29 <elliott> Ok interact looks perfect, saves having to compile a separate file too because GCHi only implements a subset of Haskell and it's not equatable to python or irb
00:13:31 <oklopol> http://video.google.com/videoplay?docid=-3382491587979249836
00:14:37 -!- oerjan has quit (Quit: Good night).
00:15:11 <elliott> w
00:15:12 <elliott> hat
00:17:35 <oklopol> maybe i should get a car
00:20:19 <elliott> "According to David Hasselhof, the video was intended as a joke, a parody of himself."
00:20:36 <elliott> @time
00:20:36 <lambdabot> Local time for elliott is Mon Apr 9 01:21:04
00:21:00 <oklopol> all these natural etc computing conferences have "amorphous computing" on their list of topics
00:21:02 <oklopol> the fuck is that
00:21:17 <elliott> amorphous
00:21:26 <elliott> http://en.wikipedia.org/wiki/Amorphous_computing
00:21:35 <elliott> coined by abelson, knight, sussman
00:21:40 <elliott> can't argue with that
00:22:03 <oklopol> so what, cellular automata?
00:22:18 <elliott> it has a list of examples :P
00:22:26 <oklopol> but no mathematical definition D:
00:22:32 <elliott> rtfpaper?
00:22:49 <elliott> ok i'm gonna compile hugs
00:22:51 <elliott> wish me luck
00:22:58 <oklopol> okay luck
00:23:05 <oklopol> average luck
00:23:08 <calamari> and I'm back on kde 3.5 (trinity)
00:23:22 <oklopol> i don't wanna read, i want a one-line definition :(
00:23:33 <elliott> oklopol: i think you will find it is not a precise term.
00:23:43 <oklopol> nnnnnnooooooooooooooooooooooooooooo
00:24:24 <elliott> note to self
00:24:25 <elliott> Short version (for Unix-like environments):
00:24:25 <elliott> make EXTRA_CONFIGURE_OPTS=--prefix=$HOME
00:24:25 <elliott> make clean
00:24:25 <elliott> $HOME/bin/hugs $HOME/lib/hugs/demos/Say
00:24:27 <elliott> putStr (say " /Hugs")
00:24:29 <elliott> :quit
00:24:35 <oklopol> clowns
00:25:28 <elliott> oklopol: what
00:25:37 <oklopol> i have no idea
00:26:15 <oklopol> i let my fingers run free, and somehow it said clowns on my screen.
00:26:29 <elliott> ************************************************
00:26:29 <elliott> *** NOW DO: make ; make install
00:26:29 <elliott> ************************************************
00:26:29 <elliott> cd src; make all
00:26:30 <elliott> h;elp
00:26:33 <elliott> oklopol: happens
00:26:38 <oklopol> it does
00:27:10 <elliott> checking value of ENOTBLK... 15
00:27:11 <elliott> checking value of ENOTCONN... 107
00:27:11 <elliott> checking value of ENOTDIR... 20
00:27:11 <elliott> checking value of ENOTEMPTY... 39
00:27:11 <elliott> checking value of ENOTSOCK... 88
00:27:11 <elliott> checking value of ENOTTY... 25
00:27:13 <elliott> checking value of ENXIO... 6
00:27:15 <elliott> checking value of EOPNOTSUPP... 95
00:27:17 <elliott> is it checking every error
00:27:20 <elliott> it was
00:28:54 -!- augur has joined.
00:33:50 <elliott> checking AL/alext.h presence... yes
00:33:50 <elliott> configure: WARNING: AL/alext.h: present but cannot be compiled
00:33:50 <elliott> configure: WARNING: AL/alext.h: check for missing prerequisite headers?
00:33:50 <elliott> configure: WARNING: AL/alext.h: see the Autoconf documentation
00:33:50 <elliott> configure: WARNING: AL/alext.h: section "Present But Cannot Be Compiled"
00:33:51 <elliott> configure: WARNING: AL/alext.h: proceeding with the preprocessor's result
00:33:53 <elliott> configure: WARNING: AL/alext.h: in the future, the compiler will take precedence
00:33:55 <elliott> configure: WARNING: ## ----------------------------------- ##
00:33:57 <elliott> configure: WARNING: ## Report this to sven.panne@aedion.de ##
00:33:59 <elliott> configure: WARNING: ## ----------------------------------- ##
00:34:01 <elliott> sorry sven!!!!
00:34:58 <kmc> autokhaaaaaaaaaaaaaaaanf
00:35:01 <oklopol> STOP FLOODING YOU'RE RUINING MY BUZZ
00:35:19 <kmc> <oklopol> maybe i should get a car ← noooooo
00:35:37 <oklopol> but i like having sex with teenagers :(
00:35:56 <elliott> did you watch to the end he didn't get to that part
00:36:01 <elliott> sorry!!
00:36:11 <ais523> "present but cannot be compiled" is a complex workaround to avoid making a breaking change in autoconf
00:36:14 <oklopol> well yeah but the girl was willing
00:36:16 <ais523> or at least, to make it gradually
00:36:52 <elliott> ais523: idgi
00:37:37 <ais523> elliott: basically, it used to check the existence of a header file, nowadays it checks to see if #including it breaks a test program
00:37:46 <elliott> [elliott@dinky hugs98-plus-Sep2006]$ ~/hugs/bin/hugs
00:37:46 <elliott> __ __ __ __ ____ ___ _________________________________________
00:37:46 <elliott> || || || || || || ||__ Hugs 98: Based on the Haskell 98 standard
00:37:46 <elliott> ||___|| ||__|| ||__|| __|| Copyright (c) 1994-2005
00:37:46 <elliott> ||---|| ___|| World Wide Web: http://haskell.org/hugs
00:37:47 <elliott> || || Bugs: http://hackage.haskell.org/trac/hugs
00:37:49 <elliott> || || Version: September 2006 _________________________________________
00:37:51 <ais523> and that's a breaking change because some headers will #error out if missing prerequisites
00:37:59 <elliott> kmc: i'm like indiana jones
00:38:34 <elliott> Say> putStr (say " /Hugs")
00:38:34 <elliott> H H U U GGGG SSSS
00:38:34 <elliott> H H U U G S
00:38:35 <elliott> HHHHH U U G GG SSS
00:38:35 <elliott> H H U U G G S
00:38:35 <elliott> H H UUU GGG SSSS
00:38:37 <elliott> holy shit, the power of hugs
00:40:07 <oklopol> elliott: i just realized i may be bored
00:40:09 <kmc> elliott, why are you hugging
00:40:36 <oklopol> i realized this as i was peeing
00:41:09 <elliott> kmc: well remember that reflection code i linked you to
00:41:17 <elliott> it actually works on hugs with minor modifications
00:41:30 <elliott> what i'm doing now is i'm going to try and install cabal-install with hugs
00:41:34 <elliott> so uh
00:41:34 <elliott> yaeh
00:41:35 <elliott> *yeah
00:42:30 <elliott> uh my current problem is that i have no idea how to import modules in hugs
00:43:30 <Vorpal> elliott, is that the last version of hugs that you pasted the output from?
00:44:50 <elliott> Vorpal: yes, September 2006, a bugfix release
00:44:58 <elliott> to the major May 2006 release
00:45:07 <kmc> wow
00:45:11 <elliott> which was the successor to the March 2005 interim release :p
00:45:27 <Vorpal> heh
00:45:30 <elliott> kmc: wow?
00:45:38 <Vorpal> didn't realise it had been dead for quite that long
00:45:57 <Deewiant> elliott: :also?
00:45:58 <Vorpal> elliott, why on earth are you using hugs though?
00:46:24 <elliott> Deewiant: Thanks, that... sort of works.
00:46:27 <elliott> Hugs.Prelude> :also Data.Map
00:46:28 <elliott> ERROR "/home/elliott/hugs/lib/hugs/packages/base/Data/Maybe.hs":98 - Undefined type constructor "Maybe"
00:46:36 <kmc> wow as in I had no idea cabal install even worked on hugs
00:46:37 <elliott> Vorpal: To make this code more portable!
00:46:41 <elliott> kmc: oh, I'm not sure it does
00:46:49 <elliott> kmc: but I know cabal made some token effort of supporting other compilers circa 2006
00:46:57 <kmc> yeah
00:46:57 <elliott> kmc: i mean i don't need cabal-install really, just cabal itself
00:47:04 <elliott> so maybe i can get an old enough version of cabal
00:47:07 <Vorpal> ah
00:47:38 <elliott> Okay, the problem is that Data.Maybe doesn't declare Maybe.
00:47:40 <elliott> Why doesn't it declare Maybe?
00:47:54 <elliott> fromJust Nothing = error "Maybe.fromJust: Nothing" -- yuck
00:47:54 <elliott> yuck indeed.
00:50:03 <elliott> sigh, ok
00:50:04 <elliott> so
00:50:10 <elliott> that file has the definition of Maybe behind an ifndef Hugs
00:50:25 <elliott> i don't quite understand because
00:50:36 <elliott> surely hugs can't be so completely broken that Data.Maybe does not work
00:51:26 <elliott> aha
00:51:29 <elliott> :also Data.Maybe
00:51:30 <elliott> :also Data.Map
00:51:31 <elliott> works
00:51:50 <elliott> kmc: woot, hugs actually ships with cabal
00:52:07 <elliott> but it's 1.1.5.9.2
00:52:31 <elliott> ...is it ok to update boot packages with hugs?
00:55:09 <elliott> http://hackage.haskell.org/trac/hugs/ticket/89
00:55:12 <elliott> is this *the* doug mcilroy?
00:56:00 <elliott> yes, it is, wow!
00:56:20 -!- Sgeo has quit (Ping timeout: 246 seconds).
00:58:08 -!- Sgeo has joined.
01:12:08 -!- pikhq_ has quit (Ping timeout: 240 seconds).
01:12:16 -!- pikhq has joined.
01:17:20 -!- Sgeo has quit (Ping timeout: 246 seconds).
01:20:38 -!- Sgeo has joined.
01:29:41 -!- calamari has quit (Quit: Leaving).
01:32:31 -!- calamari has joined.
01:37:37 -!- Deewiant has quit (Ping timeout: 265 seconds).
01:40:13 <Phantom_Hoover> http://www.reddit.com/r/math/comments/rzb7m/hi_there_i_have_a_gcse_level_high_school/
01:40:14 <lambdabot> Phantom_Hoover: You have 3 new messages. '/msg lambdabot @messages' to read them.
01:40:19 <Phantom_Hoover> OH LOOK half the links are LessWrong.
01:40:44 <elliott> Phantom_Hoover: Hey, if there's one thing Eliezer is good at, it's explaining Bayesian probability.
01:41:08 <Phantom_Hoover> That's a big 'if'.
01:41:12 <kmc> haha
01:41:20 <kmc> harry potter and the difference between alternating current and direct current
01:42:19 -!- Vorpal has quit (Ping timeout: 276 seconds).
01:42:47 * elliott doesn't get the reference (after "and", I mean).
01:43:05 -!- Deewiant has joined.
02:07:58 -!- Deewiant has quit (Ping timeout: 245 seconds).
02:17:45 -!- Deewiant has joined.
02:49:55 -!- Deewiant has quit (Ping timeout: 260 seconds).
02:52:21 -!- pikhq_ has joined.
02:52:32 -!- pikhq has quit (Ping timeout: 265 seconds).
03:02:28 <Sgeo> What's wrong with Eliezer?
03:03:35 -!- Deewiant has joined.
03:03:37 <monqy> who's that again
03:03:52 <elliott> yudkowsky
03:04:35 <monqy> oh right
03:05:10 <monqy> I don't know anything about him. is he one of those conceited fellows? or is that just wolfram
03:05:19 <monqy> he's the less wrong guy right
03:05:27 <monqy> don't know anything about that either
03:05:50 -!- Phantom_Hoover has quit (Ping timeout: 246 seconds).
03:25:40 -!- qfr has joined.
03:25:47 <qfr> Have any of you written any self-hosting compilers?
03:26:24 <elliott> i... probably have
03:26:36 <elliott> i forget if i ever actually have... but i certainly could, i'm just lazy :p
03:26:39 <elliott> `welcome qfr
03:26:45 <HackEgo> qfr: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
03:28:01 <Sgeo> I should try it some time.
03:28:05 <Sgeo> Wait, compiler?
03:36:30 <Sgeo> http://newyork.cbslocal.com/2012/04/08/satirical-article-in-rutgers-student-newspaper-under-fire-for-praising-hitler
03:36:34 <Sgeo> Crappy headline is crappy
03:38:07 -!- Case1 has joined.
03:43:47 -!- Deewiant has quit (Read error: Connection reset by peer).
03:44:11 <qfr> Yes, compiler
03:44:26 -!- Deewiant has joined.
03:44:31 <qfr> As in, you go through the annoying stack of PE/ELF/whatever things
03:44:56 <qfr> And opcode generation
03:45:12 <qfr> Just to show off to people on IRC
03:46:43 <elliott> you can delegate ELF generation to the linker
03:46:52 <elliott> producing assembly or even C is not that difficult
03:49:36 -!- zzo38 has joined.
03:49:41 <kmc> a minimal ELF executable is also pretty simple
03:49:52 <kmc> http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html
03:50:18 <Sgeo> elliott, but that C would have to be able to compile C, right?
03:50:21 <kmc> if you're writing a compiler and not a masochist, you would use something like LLVM
03:50:25 <elliott> Sgeo: no
03:50:27 <elliott> you always have dependencies
03:50:33 <elliott> for instance your output code will make syscalls
03:52:00 <Sgeo> So what dependency would I use to compile the C?
03:52:04 <oklopol> eliezer's articles have way too many letters
03:53:29 <kmc> i think a static Linux executable that can compile itself without linking in external libs is a reasonable place to draw the line
03:53:36 <kmc> if we're talking about pointlessly hard things for showing off
03:53:48 <kmc> the next step would be an OS that hosts its own compiler too
03:53:59 <elliott> Sgeo: gcc
03:57:33 -!- Deewiant has quit (Ping timeout: 245 seconds).
03:57:35 <zzo38> What compiler are you writing? And how large will the executables be if compiled by LLVM?
03:58:46 <Sgeo> zzo38, my executables will be -1 bytes in size.
03:59:17 <Sgeo> ...if I made it into a virus that duplicated itself wildly on the machine, everyone would love me!
04:00:17 -!- MDude has changed nick to MSleep.
04:03:14 -!- Deewiant has joined.
04:08:04 <qfr> [05:46:43] <elliott> you can delegate ELF generation to the linker
04:08:12 <qfr> Where is the fun in letting other software do the work!
04:08:29 <qfr> Do everything with syscalls, for great justice
04:08:33 <qfr> 0 dependency files
04:09:00 <qfr> Truly autonomous userland software!
04:09:02 <elliott> qfr: incorrect
04:09:08 <elliott> you'll depend on a few thousand files: the linux kernel
04:09:16 <qfr> Notice the "userland" part :P
04:09:23 <qfr> I excluded that already
04:09:29 <qfr> Obviously it depends on the operating system still
04:09:50 <qfr> Otherwise we'd end up with an entire operating system
04:09:52 <qfr> Not just a binary
04:09:53 <zzo38> So it won't work if it isn't Linux. (And even if it is Linux, the ways of doing syscalls might differ if it is not x86)
04:10:16 <qfr> You can do Syscalls on Windows, too
04:10:22 <qfr> Without kernel32.dll
04:10:23 <zzo38> You can make a program for IBM PC, which depends on only the BIOS
04:10:35 <zzo38> qfr: Yes, but you cannot do Linux syscalls on Windows.
04:10:45 <qfr> Well, Windows can't load ELFs anyways
04:11:07 <pikhq_> Incidentally, if you want a self-hosting OS type thing, I suggest you go the lazy route and make it a bare-metal Forth.
04:11:11 <qfr> I wonder if somebody has written an ELF loader for Windows
04:11:13 <qfr> That would be amusing
04:11:14 <elliott> yse
04:11:15 <elliott> yes
04:11:17 <elliott> RocketJSquirrel has
04:11:20 <qfr> Nice heh
04:11:24 <elliott> works on OS X too
04:11:26 <pikhq_> RocketJSquirrel: How goes Microcosm II, anyways?
04:11:32 <elliott> https://bitbucket.org/GregorR/gelfload
04:11:45 <qfr> The closest I've gotten to portable binaries is C# honestly
04:11:49 <zzo38> pikhq_: Yes I once wrote something like that too, but it used the BIOS too
04:11:56 <qfr> Right now I just compile stuff with Visual Studio for Linux servers
04:12:10 <qfr> Mono is fabulous
04:12:20 <kmc> didn't someone write a Linux ELF loader in Perl
04:12:44 <pikhq_> zzo38: I permit BIOS use on IBM-compatibles.
04:12:50 <kmc> that is, a perl script which will "exec" an ELF not by calling execve(2) but by mmapping and copying stuff
04:13:00 <zzo38> If you use Mono, then, yes; you could write a program in Visual Studio which work in both Windows and Linux, I suppose
04:13:05 <kmc> the IO.STS boot sector demo competition was fun: http://io.smashthestack.org:84/intro/
04:13:15 <pikhq_> It amounts to the basic hardware interface.
04:13:51 <qfr> zzo38 yep
04:14:02 <qfr> It's remarkable how flawlessly it works honestly
04:14:06 <qfr> I rarely have probelms with this approach
04:14:23 <kmc> what language do you use?
04:14:24 <qfr> I started developing services for Linux in C# on Windows
04:14:38 <qfr> And they work on Windows, Linux, MacOS and FreeBSD
04:14:40 <kmc> C# seems like a reasonable language to me
04:14:44 <qfr> I just need to exchange some dependencies occasionally
04:14:48 <kmc> it's like Java taken to the logical conclusion, rather than arbitrarily crippled
04:14:55 <kmc> not exciting to PL snobs but fine for getting work done
04:15:05 <qfr> For example, I use System.Data.SQLite for SQLite databases on Windows, but I use Mono.Data.Sqlite on Linux
04:15:20 <elliott> kmc: I think that kind of attitude is harmful.
04:15:25 <qfr> Mono often has its own version of something that is a third party dependency on Windows
04:15:40 <qfr> kmc I'm actually currently busy rewriting Java services in C#
04:15:45 <pikhq_> Mono still defaults to Boehm GC...
04:15:47 <qfr> because they were using too much memory and had ugly GUIs :|
04:15:51 <kmc> which attitude?
04:15:59 <qfr> pikhq_ is that a bad GC, in yoru opinion?
04:16:01 <elliott> In that it downplays advances in PLT as mere language snobbery that couldn't help getting work done... it's undeniable that C#'s family of language etc. has major major underlying problems. It's true that they're an acceptable stopgap, and "work" as much as we expect anything to work.
04:16:11 <qfr> They have LLVM support btw, but it's not used by default right now
04:16:14 <elliott> But to say it's fine is a bit too far for me.
04:16:18 <pikhq_> qfr: Boehm is basically a giant hack.
04:16:33 <kmc> i have low standards elliott
04:16:45 <kmc> i've used Haskell enough to be frustrated with it, as well
04:16:49 <pikhq_> It is designed to garbage collect idiomatic C.
04:16:49 <qfr> Because reflection doesn't work properly with their LLVM bindings right now, I think
04:16:50 <elliott> i have unreasonably high standards.
04:17:01 <pikhq_> And for that purpose, it kinda-sorta works.
04:17:12 <qfr> pikhq_ are you saying it leaks memory in Mono?
04:17:15 <qfr> Or something like that?
04:17:18 <pikhq_> It can.
04:18:01 <pikhq_> Because of how C works, any value in your program *might* be a pointer to memory, and the GC has no way of knowing.
04:18:18 <kmc> boehm won't handle xor linked lists :/
04:18:41 <pikhq_> With moderately high memory use on 32-bit systems, it starts leaking like a sieve.
04:18:55 <pikhq_> It'll also leak if you've got bad luck.
04:19:08 <qfr> That doesn't sound good
04:19:28 <kmc> indeed
04:19:42 <qfr> I'll ask some people who are using my C# service on Linux/MacOS if they've observed any leakage
04:19:56 <qfr> I only run it temporarily so I can't check, I shut down my box at night
04:20:06 <pikhq_> Not to mention that it can't move any memory around (because of how C works), so it has to do somewhat slower algorithms for allocation and garbage collection.
04:20:55 <pikhq_> Basically though, Boehm GC is about as useful as libcaca. :)
04:22:26 <zzo38> What if, you write it a direct LLVM code?
04:23:26 <shachaf> kmc: What do you mean when you say C++ is bad in a way opposite to most languages?
04:23:48 <qfr> Does LLVM have anything to do with garbage collection btw?
04:23:51 <qfr> Or is that orthogonal?
04:24:02 <pikhq_> Fairly orthogonal.
04:24:15 <kmc> well I think most bad languages get to be bad because the designers keep heaping on features without an idea of how it should all fit together
04:24:33 <pikhq_> It has the ability to feed some information to a garbage collector if you write one, but otherwise is utterly ignorant of it.
04:24:44 <kmc> C++ has a lot of features, but they are exquisitely crafted to fit together just so
04:25:03 <kmc> when you understand C++ well enough, you see what the designers were going for; it makes sense and is pretty cool and even a bit elegant
04:25:04 <zzo38> I think LLVM does have some things relating to garbage collection
04:25:12 <kmc> what they were going for is something no other language does well, imo
04:25:18 <kmc> unfortunately C++ does not do it well either
04:25:34 <kmc> because while its conceptual basis may be sound, it's just too cumbersome to get work done
04:25:46 <kmc> and it's crippled by a few bad decisions alongside the good ones
04:26:00 <kmc> like the decision to incorporate most of C as first-class citizens (syntactically and semantically)
04:26:47 <coppro> "fit together just so"
04:26:50 <coppro> haha
04:26:52 <coppro> hahaha
04:26:55 <coppro> hahahahahahahahahahahahahahahahaha
04:27:21 <kmc> idiomatic C++ code is pretty high level and mostly memory-safe
04:27:29 <kmc> unfortunately it's too cumbersome, so people fall back to the C way of doing things
04:27:45 <zzo38> What things were you frustrated with in Haskell? We can work together make up the new programming language I do have many idea so you can do that including whatever is wrong hopefully can make a correction in case we know better.
04:27:48 <kmc> we complain that C++ has both std::vector and operator new[]... well, operator new[] is there so that you can implement std::vector
04:27:50 <coppro> I'm sorry
04:27:56 <coppro> C++ does not fit together at all
04:28:07 <coppro> I work on clang
04:28:12 <pikhq_> coppro: I'm sorry.
04:28:14 <zzo38> That is, for a Haskell-like programming language; for a C-like programming language I have another idea another different one
04:28:17 <kmc> if C++ were a better language, the unsafe bits would be like all the unsafe bits of GHC Haskell
04:28:22 * coppro hugs pikhq for support
04:28:24 <kmc> not something you use all over ordinary applications code
04:28:47 <pikhq_> coppro: Would you like to regale kmc with edge cases?
04:28:50 * elliott thinks kmc sounds like someone who has never actually used C++
04:28:54 <elliott> for real(tm)
04:29:02 * elliott is also amused at coppro's reaction seeing as he's the C++ fanboy
04:29:03 <kmc> haha
04:29:06 <coppro> C++ is a bunch of haphazard features that interact in random ways but that, if you try hard enough, you can bolt on enough libraries to make it a useable language
04:29:29 <pikhq_> elliott: clang would fix that.
04:29:36 <shachaf> Libraries are a bad thing now?
04:29:40 <kmc> elliott, I have written quite a bit of C++
04:29:43 <pikhq_> Much like gcc solves any love of GNU.
04:29:49 <coppro> The fun part of C++ is that everyone can pick a different subset of libraries to make it useable and things still work together
04:29:50 <kmc> when I was a professional C++ programmer, i knew more about the language than most of my co-workers
04:29:58 <kmc> but you don't have to believe me
04:30:17 <pikhq_> Do any mortals know a majority of the language?
04:30:17 <kmc> i'll go back to what i was doing before; working on an open-source C++ project
04:30:22 <qfr> pikhq_ no
04:30:46 <shachaf> kmc: mosh?
04:30:49 <kmc> yeah
04:30:59 <kmc> (but my current project is autoconf hacking, not C++ :/)
04:31:15 <shachaf> I think for about 15% of the questions that come up when talking to you, the answer is "mosh".
04:31:15 <kmc> to be clear in case any of you lack reading comprehension: C++ is a bad language; I'm not saying it's a good language
04:31:27 <kmc> but I think it's bad in an unusual, interesting way
04:31:42 <shachaf> "And they all came back, shook my hand,
04:31:42 <shachaf> and we had a great time on the bench, talkin about crime, mother stabbing,
04:31:42 <shachaf> father raping, all kinds of groovy things that we was talking about on the
04:31:43 <shachaf> bench."
04:31:55 <kmc> c.c
04:32:09 <zzo38> I sometimes program in C, and sometimes in Haskell. But in both cases I would rather have different things, both cases not yet invented programming languages and even two different ones. But one similar to C, would be also similar to LLVM, and BLISS, and macros.
04:32:30 <shachaf> zzo38: Would it also support Enhanced CWEB?
04:32:43 <kmc> what happened to INFORM and Magic: the Gathering
04:32:53 <kmc> i tap writer monad for 2 mana
04:33:29 <zzo38> shachaf: Probably not, but it would support its own WEB-like system.
04:34:13 <zzo38> kmc: Yes, the one I am writing about, with similar to Haskell-like, would also have some things similar to Inform 7 and Magic: the Gathering, as well as Lisp, Forth, Haskell, etc
04:35:29 <pikhq_> kmc: Autoconf? Yikes.
04:35:52 <kmc> yes
04:36:49 <zzo38> Because, if you have anything wrong with Haskell then please write it down we can make the "Ibtlfmm working group" to write everything down together how to make up the new programming language too
04:37:08 <kmc> we have a fairly non-trivial configure.ac
04:37:37 <kmc> so I think, while it's insane, autoconf is adding value in this project
04:37:44 <kmc> i don't know of a less-insane replacement
04:38:14 <pikhq_> "Don't", presumably.
04:38:40 <kmc> well if I didn't use autoconf I would have to write a fairly complex script by hand to replicate everything that we're using autoconf for
04:38:46 <kmc> maybe that's still better
04:38:51 <pikhq_> How much stuff are you even using autoconf *for*?
04:39:25 <kmc> https://github.com/keithw/mosh/blob/master/configure.ac
04:39:29 <kmc> i'm adding a big chunk to this
04:39:40 <kmc> to detect compiler support for various binary hardening flags
04:40:23 <zzo38> For example, I would, have that things like : is not built-in and [] is defined to mean something by a macro and is also not built-in and so on; as many things as possible should be implemented using macros and/or other features in the programming language itself instead of built-in to the compiler, and minimize (or eliminate) the number of special typeclasses for use by the compiler, etc
04:40:26 <kmc> mosh uses terminal and network APIs and builds on GNU/Linux, OS X, FreeBSD, iOS (sort of), Android (sort of)
04:40:39 <kmc> so there are a lot of platform differences to deal with
04:41:17 <kmc> in addition, we have a fairly configurable build: warning level, which parts to build (client, server, tests, examples), whether to use certain libraries (and whether to get them from the system or build them with mosh), etc.
04:41:23 <pikhq_> ...
04:41:27 <pikhq_> AC_TYPE_SIZE_T.
04:41:34 <pikhq_> Fail.
04:42:14 <kmc> wow you found one line of this 200 line script that's unnecessary?
04:42:21 <pikhq_> Several.
04:42:27 <kmc> i guess that invalidates the entire point
04:42:30 <pikhq_> The whole block it's in is obvious autoscan.
04:42:31 <kmc> anyway you're being a dick
04:42:44 <pikhq_> AKA "the reason autoconf scripts suck".
04:44:52 <pikhq_> autoscan generates an autoconf script basically by scanning for each and every POSIX or ISO function or header, and adding tests for them.
04:45:11 <kmc> yeah, because this was necessary 20 years ago or something
04:45:12 <pikhq_> And given that you *probably* never use the results of that, all that is doing is adding an extra minute on your compile time.
04:45:17 <kmc> anyway I agree that some lines here could be trimmed
04:45:33 <kmc> do you object to the rest of the script
04:45:45 <kmc> the part which implements functionality porters, distributers, and users have asked for?
04:46:22 <pikhq_> No, looks about right for a large project that uses features that aren't extant on *all* non-insane platforms.
04:46:46 <kmc> cool
04:46:47 -!- kmc has left ("Leaving").
04:52:13 <qfr> pikhq_ I just talked to Mono people
04:52:17 <qfr> They they use SGEN now
04:52:23 <qfr> Not BOehm GC?
04:53:17 <pikhq_> qfr: Ah, so they must've just done the switch-over.
04:53:30 <pikhq_> I know they spent rather a while working on a new, sane GC.
04:53:46 <pikhq_> Well, that's good.
04:57:04 <qfr> :)
04:57:07 <qfr> Is SGEN alright?
04:57:11 <qfr> I've heard of Boehm GC before
04:57:16 <qfr> SGEN is a first for me
04:57:27 <elliott> looks like it's new for mono
04:57:32 <qfr> I don't exactly know the implications of garbage collection anyways
04:57:42 <qfr> In my head it's all about reference counting
04:57:49 <qfr> And predictable deallocatin
04:57:50 <pikhq_> Yeah, pretty sure SGEN is the name of the for-Mono GC.
04:58:01 <qfr> Are there any components of garbage collection that involve heuristics?
04:58:03 <elliott> qfr: reference counting sucks
04:58:08 <elliott> and yes, conservative collection
04:58:10 <pikhq_> qfr: In Boehm, yes.
04:58:11 <elliott> as practiced by boehm gc
04:58:17 <qfr> elliott what's the problem with reference counting?
04:58:24 <elliott> qfr: slow
04:58:37 <pikhq_> In modern computers, memory writes are *slow*.
04:58:38 <elliott> doesn't handle cycles
04:58:41 <qfr> I've written an application that embedded the C Python API in another application
04:58:45 <qfr> Abusing it for embedded scripting
04:58:49 <pikhq_> Your RAM is 200MHz.
04:58:52 <qfr> I remember, it required manual reference counting management
04:58:52 <elliott> pikhq_: don't forget the branch accompanied with every memory write
04:58:56 <elliott> yes, CPython does
04:59:00 <elliott> CPython is also slow as all heck
04:59:07 <pikhq_> Ah, and yes, branches. Which are *cheap*, but not free.
04:59:09 <qfr> It was no pleasure to work with
04:59:29 <elliott> anyway, the heuristic is:
04:59:31 <qfr> So in general you want to accumulate groups of allocations/deallocations on the heap instead?
04:59:34 <elliott> C doesn't distinguish between integers and pointers in memory
04:59:44 <elliott> so, if you have an integer with the same value as a pointer
04:59:53 <elliott> boehm and all conservative collectors count it as a reference
05:00:09 <elliott> qfr: another slowness of refcounting is that it puts free() right there in a critical path
05:00:14 <elliott> and free() can be pretty slow itself
05:00:23 <elliott> qfr: what's fast is copying garbage collection
05:00:31 <qfr> So the trick is that you want to invoke the heap manager as infrequently as possible?
05:00:37 <pikhq_> Or avoiding allocation at all.
05:00:38 <elliott> you just start at the roots, copy every object to a new heap, and ignore the next one (using it next GC)
05:00:39 <qfr> And when you do, you want to have it do a lot?
05:00:47 <elliott> even taht isn't fast though
05:00:50 <elliott> a _generational_ copying collector is
05:00:55 <elliott> which means you collect things more often the more recent they are
05:00:58 <elliott> and do work in batches
05:01:15 <elliott> so you basically just periodically copy all the live, newest objects to a new heap
05:01:18 <elliott> no freeing done at all
05:01:41 <qfr> How come the Oracle JVM seemingly uses excessive amounts of memory, by the way? Does that have something to do with the way it performs garbage collection?
05:01:56 <qfr> I've rewritten services I had developed for java in C#
05:02:08 <elliott> it doesn't, IME
05:02:15 <elliott> i think that's largely stereotype
05:02:19 -!- Sato0x has joined.
05:02:21 <Sato0x> hi
05:02:21 <qfr> The non-shared working set memory would often drop from 200-300 MiB to about 50 MiB
05:02:24 <qfr> For the same functionality
05:02:26 <elliott> in fact, Java has the best GC in existence, more or less
05:02:27 <elliott> `welcome Sato0x
05:02:30 <HackEgo> Sato0x: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
05:02:33 <qfr> Hmmmm
05:02:36 <Sato0x> is this 69?
05:02:36 <Sato0x> ++++++++++[>++++++<-]>>+++[<+++>-]
05:02:44 <elliott> !brainfuck ++++++++++[>++++++<-]>>+++[<+++>-]
05:02:46 <pikhq_> qfr: That would probably be a matter of style.
05:02:47 <elliott> !brainfuck ++++++++++[>++++++<-]>>+++[<+++>-].
05:02:53 <qfr> Although this was a GUI application
05:02:57 <qfr> Not a headless service
05:03:02 <elliott> come on EgoBot
05:03:07 <qfr> It was using hmm swing, I think
05:03:10 <qfr> And in C# I used Winforms
05:03:13 <elliott> qfr: Swing is awful
05:03:16 <elliott> nobody can deny that :p
05:03:17 <pikhq_> Swing is terribad.
05:03:19 <qfr> Is Swing a memory hog?
05:03:24 <qfr> That might explain it
05:03:26 <Sato0x> !brainfuck ++++++++++[>++++++<-]>>+++[<+++>-].
05:03:29 <pikhq_> Perhaps, but more to the point, it's ridiculous.
05:03:34 <Sato0x> Is it doing anything?
05:03:54 <elliott> yes, it's 69
05:03:54 <qfr> Whenever I see a Java application it uses 2-3 times the amount of memory I would expect it to use
05:03:55 <elliott> just checked
05:04:02 <elliott> oh it's !bf not !brainfuck, silly me
05:04:02 <elliott> !bf ++++++++++[>++++++<-]>>+++[<+++>-].
05:04:04 <qfr> Eclipse, Azure, Maple come to mind
05:04:04 <EgoBot> No output.
05:04:07 <elliott> heh
05:04:14 <elliott> qfr: that's all due to the toolkits really
05:04:18 <qfr> Interesting
05:04:27 <pikhq_> Typical Java style seems to love memory.
05:04:54 <qfr> So if I were to develop headless services for Linux in Java, the memory consumption wouldn't be significantly different from an equivalent implementation in C# for Mono, you would think?
05:05:05 <Sato0x> huh
05:05:10 <Sato0x> why no output??
05:05:10 <pikhq_> Probably not.
05:05:11 <qfr> I work on low end Linux servers, memory consumption is quite problematic there
05:05:24 <qfr> I run a lot of Ruby services right now
05:05:31 <qfr> They are quite the memory hogs I'm afraid
05:05:39 <pikhq_> Memory consumption is *in general* problematic.
05:05:43 <qfr> I'm not sure how much of that it can swap out
05:05:43 <Sato0x> hmm
05:05:45 <elliott> Sato0x: is 69 even printable?
05:06:02 <qfr> pikhq_ it depends on what kind of stuff you do, I have some SQL applications that are CPU/DBMS setting bottlenecked
05:06:06 <qfr> Memory less so
05:06:16 <qfr> But it's unhelpful when you have 1.5 GiB used by Ruby processes
05:06:18 <pikhq_> If your working set doesn't fit in *cache*, you are going to see a ridiculous bottleneck.
05:06:25 <qfr> On a 2 GiB box
05:06:36 <qfr> Without getting much of them swapped out
05:06:44 <Sato0x> gah
05:06:53 <pikhq_> Accessing the actual RAM is what swap was like 20 years ago.
05:07:00 <Sato0x> +. should be 1 right?
05:07:04 <Sato0x> output*
05:07:12 <Sato0x> !bf +.
05:07:12 <EgoBot> ​.
05:07:13 <qfr> pikhq_ yeah, the working set isn't that big I think
05:07:14 <pikhq_> Sato0x: It will output the ASCII code for 1.
05:07:18 <pikhq_> Erm.
05:07:22 <Sato0x> whut
05:07:22 <pikhq_> The ASCII equivalent for 1.
05:07:34 <Sato0x> What is the equiv?
05:07:36 <qfr> Measuring memory consumption accurately on Linux is tricky I am told
05:07:44 <qfr> It depends on what definition of memory consumption you use etc
05:07:57 <qfr> And you need to take into account shared memory/non-shared memory between fork instances and such
05:08:04 <Sato0x> is that 50?
05:08:06 <pikhq_> Sato0x: Codepoint 1 is defined as "Start Of Heading", an essentially useless control code.
05:08:16 <qfr> Linux sysadmins tell me to largely ignore the output from htop and such regarding memory consumption
05:08:16 <Sato0x> o
05:08:19 <Sato0x> It's by char?
05:08:34 <pikhq_> 49 (U+0031) would get you the actual digit "1".
05:08:39 <Sato0x> I have to call the char code?
05:08:41 <Sato0x> :<
05:08:41 <pikhq_> Yes.
05:08:55 <Sato0x> so I'd have to do 49 1's
05:09:02 <Sato0x> +'s*
05:09:12 <pikhq_> Or a more complex loop, yes.
05:09:33 <Sato0x> I c,
05:09:36 <pikhq_> !bf +++++++[>+++++++<-].
05:09:37 <EgoBot> No output.
05:09:40 <pikhq_> BAH
05:09:47 <pikhq_> !bf +++++++[>+++++++<-]>.
05:09:47 <EgoBot> 1
05:09:48 <Sato0x> I thought that + added one to the current
05:09:53 <pikhq_> Sato0x: Yes.
05:10:05 <Sato0x> literally
05:10:06 <Sato0x> value one
05:10:08 <Sato0x> in int
05:10:09 <Sato0x> s
05:11:06 <Sato0x> Am I using the loops right then?(in the case that bf worked like I'm thinking it does)
05:11:37 <pikhq_> Um, seems like it.
05:11:42 <Sato0x> yay
05:11:43 <Sato0x> :D
05:25:55 -!- kmc has joined.
05:28:38 <zzo38> "Start Of Heading" is not really a useless control code; it can be used, and so can other ASCII control codes
05:29:26 <pikhq_> zzo38: Yeah, but nothing common actually *does* use it any more. :)
05:30:24 <zzo38> I have used it sometimes, when there is a heading I want to indicate the start, in an ASCII file, or in an internal ASCII data in memory, might use it
05:34:23 <zzo38> I wanted to make up the game "Merciful to Gibbering Mouthers" but I cannot figure it out. Also many other computer games and card games and stuff, I wanted to make up, including sokoban or tetris or whatever with mobius strips, etc
05:51:00 -!- asiekierka has joined.
05:54:14 <qfr> I was looking at the Reddit source code, I had no idea it used to run on Lisp and then migrated to Python
05:54:25 <qfr> And they use PostgreSQL it seems <3
05:56:27 <qfr> I wonder if it had anything to do with the rarity of professional Lisp developers
05:56:49 <qfr> The number of developers you need is something like O(log(n)) where n is the size of the userbase
05:57:08 <qfr> Hmm that's the wrong class
05:57:40 <qfr> Should I make that Omega instead of O? Heh
05:57:59 <zzo38> No, you should make it Ouch
05:58:22 <qfr> :(
05:59:02 <qfr> But I imagine this can be a problem with big projects
05:59:20 <qfr> Rarity of developers available in the area
05:59:26 <qfr> Who actually know the technology used well enough
05:59:48 <qfr> So you can increase the size of the labour pool that is available to you
05:59:56 <qfr> By using different technology
06:00:05 <kmc> i think they used Lisp to impress Paul Graham when they were in YC
06:00:08 <kmc> and then came to their fucking senses
06:00:08 <qfr> Haha
06:00:20 <qfr> I take it you are not a friend of the Lisps?
06:00:36 <kmc> you're wrong
06:00:37 <qfr> I dabbled with Common Lisp for a bit
06:00:46 <qfr> And wrote ~400 lines of elisp
06:00:47 <kmc> i like languages in the Lisp family
06:00:49 <qfr> That's about it
06:00:56 <kmc> but i wouldn't try to build a buisness around one, in most circumstances
06:01:06 <kmc> because it is hard to hire people, like you said
06:01:13 <kmc> and there are good alternatives now
06:01:23 <kmc> when Paul Graham was making ViaWeb, his competitors were using C++ or maybe Perl
06:01:29 <qfr> But as usual my main beef with the language is that it's typed dynamically
06:01:39 <kmc> now we have Python, Ruby, Javascript, etc
06:01:44 <qfr> I'm much more comfortable developing services with statically typed languages
06:01:46 <kmc> they're not as pretty as Scheme or as sophisticated as Common Lisp
06:01:55 <qfr> Because of more rigorous compile time checks being possible
06:01:57 <kmc> but they get the job done and plenty of people know them
06:02:00 <qfr> Catching a lot of dumb mistakes I make
06:02:19 <kmc> yeah, I agree
06:02:33 <qfr> I tried to write services in dynamically typed languages for a while
06:02:36 <qfr> Python and Ruby in particular
06:02:41 <qfr> But I felt it backfired a lot
06:02:52 <qfr> I was running after dumb runtime errors all the time
06:03:01 <kmc> the trends in hipster web startups are against static languages
06:03:03 <qfr> because I had misspelled the name of some method in a rarely executed branch
06:03:17 <kmc> it's all about "iterating" a ball-of-mud non-design
06:03:19 <qfr> Which would crash the server after 1-2 days
06:03:27 <kmc> and slapping clusters and load balancers on everything
06:03:34 <qfr> And I didn't feel the need to make rigorous unit tests
06:03:37 <qfr> That would have caught these
06:03:48 <kmc> so that your individual software can crash or use up all memory for no reason
06:03:55 <qfr> Haha
06:04:12 <kmc> i think dynamic types are ok for some things, but you at least want basic static checking of method names and the like
06:04:12 <qfr> Most of my services are still written in Ruby :| I'm currently tryinmg to move on to C#
06:04:17 <kmc> pyflakes does that for python a bit
06:04:20 <qfr> I'm still insecure about the web development patterns I am used
06:04:29 <qfr> I am still torn up about where markup generation belongs
06:04:36 <qfr> I am using*
06:04:48 <kmc> you can have a language where some type errors can be resolved at compile time, but others are punted to runtime
06:04:57 <kmc> C# and Java are this in a sense
06:05:03 <qfr> I still use Ruby for odd jobs all the time
06:05:10 <qfr> In particular scraping stuff from a website for some quick job
06:05:28 <qfr> Plain text transformation jobs
06:07:10 <Sato0x> hello
06:07:21 <Sato0x> I finished my brainfawk interpreter
06:07:48 <monqy> is it good?
06:07:56 <monqy> is brainfawk different from brainfuck
06:08:01 <Sato0x> yeah
06:08:06 <Sato0x> I like my way better
06:08:16 <monqy> it's not on the wiki; what does it do?
06:08:30 <Sato0x> I had a misconception about brainfuck
06:08:38 <monqy> oh?
06:08:42 <Sato0x> and like the way I was doing it better
06:08:46 <Sato0x> therefore it's not brainfuck
06:08:50 <Sato0x> it's brainfawk
06:08:56 <elliott> what was the misconception
06:09:22 <Sato0x> I assumed that each element was an individual value of 0 at the start
06:09:36 <elliott> it is...
06:09:42 <Sato0x> and you incremented/decremented each element through the program
06:09:47 <elliott> you do
06:09:50 <Sato0x> not done
06:09:51 <Sato0x> ...
06:09:57 <elliott> what do you think it is
06:10:15 <Sato0x> and that . would print the number value of the element
06:10:30 <elliott> it prints the ascii char
06:10:32 <Sato0x> but in brainfuck it goes with the ascii char
06:10:33 <Sato0x> yeah
06:10:36 <elliott> but i don't know what your other things mean
06:10:39 <elliott> well not ascii
06:10:41 <elliott> it's actually just binary
06:10:47 <Sato0x> decimal?
06:11:23 <elliott> no
06:12:12 <pikhq_> It outputs just a bitstream, which is going to be interpreted as ASCII (well, actually, it's liable to be interpreted as UTF-8 with VT100 control codes)
06:12:26 <kmc> all of my brainfuck programs output KOI8-R, i don't know about you
06:12:54 <pikhq_> Ah, maximally esoteric.
06:13:17 <Sato0x> huh?
06:13:34 <kmc> eh it's not a very esoteric character encoding
06:13:43 <Sato0x> what isn't?
06:13:47 <kmc> KOI8-R
06:13:54 <Sato0x> kmc
06:13:57 <kmc> Sato0x
06:13:59 <Sato0x> that name sounds familiar
06:14:04 <Sato0x> maybe gny
06:14:07 <pikhq_> kmc: Could go for something stranger. Is there an Arabic adaptation of EBCDIC?
06:14:14 <kmc> heh
06:14:26 <Sato0x> brainfawk has integers and spaces
06:14:43 <kmc> printf '\x01' | iconv -f cp437 -t utf8
06:14:48 <kmc> why doesn't this give me a smiley face?!?
06:15:03 <pikhq_> Sato0x: Seems fairly unuseful.
06:15:06 <qfr> Allaah doesn't love you enough, kmc
06:15:06 <monqy> so brainfawk is pretty much your average brainfuck derivative
06:15:13 <qfr> That's why you don't get a smiley
06:15:38 <kmc> i guess it only sometimes stands for a smiley
06:15:44 <monqy> by the way, where's ph
06:15:49 <kmc> and other times it's SOH
06:15:50 <elliott> does allaah love me
06:16:13 <qfr> Yes, Allaah loves Haskell people
06:16:18 <kmc>
06:16:21 <qfr> But only those who are lost in discussing abstract concepts
06:16:32 <qfr> If you start actually coding in Haskell, the love fades
06:16:39 <elliott> i've done that
06:16:42 <Sato0x> you disapprove of brainfawk?
06:16:43 <Sato0x> :(
06:16:46 <monqy> am i a haskell people
06:16:47 <elliott> one of my multitude of sins
06:16:56 <kmc> Sato0x, we see so many brainfuck derivatives
06:17:02 <kmc> and brainfuck isn't that weird to begin with
06:17:02 <Sato0x> hm
06:17:21 <kmc> it's a very vanilla sort of tape machine
06:17:33 <kmc> in fact very similar constructions were developed in early theoretical computer science
06:17:33 <monqy> brainfuck derivative is just about as unoriginal as you can get, so it has to be pretty spectacular to be any good
06:17:42 * pikhq_ bows
06:18:38 <pikhq_> Dimensifuck really was kinda neat. Shame I never did anything with it.
06:18:39 <Sato0x> 0 is space, 1 in n/l
06:18:40 <Sato0x> :3
06:19:16 <monqy> eh?
06:20:40 <Sato0x> how about
06:20:46 <Sato0x> one that takes in octal
06:21:02 <monqy> what do you mean "one"
06:21:08 <pikhq_> Trust me, the IO is really uninteresting.
06:21:13 <Sato0x> a deriviative
06:21:18 <Sato0x> hm
06:21:47 <monqy> renaming bf instructions is probably the worst thing you can do, i/o is second-worst, additional commands third-worst?
06:22:03 <monqy> maybe swap those
06:22:07 <monqy> or put them all together as
06:22:12 <monqy> the worst thing package bundle
06:22:16 <monqy> "don't do this"
06:22:28 <pikhq_> Really, the only thing slightly interesting about Brainfuck is that it's a Turing tarpit that can just about input and output all valid strings, that happens to be relatively popular.
06:22:47 <elliott> "just about"
06:22:50 <elliott> as long as they contain no 0s
06:22:51 <monqy> just about!
06:22:58 <Sato0x> huh?
06:23:04 <Sato0x> What do you mean
06:23:18 <pikhq_> elliott: Well, if you use 16-bit Brainfuck and -1 on EOF it actually works.
06:23:19 <pikhq_> :)
06:23:25 <pikhq_> (but that's certainly not normal)
06:23:49 <ais523> bignum BF, EOF = -1 is vaguely sensible
06:24:16 <Sato0x> white people are evil
06:24:34 <pikhq_> I think all the Brainfuck I've written breaks on bignum BF. Also >8-bit BF.
06:24:47 <pikhq_> Sato0x: [citation needed]
06:25:17 <monqy> don't you just have that gut feeling
06:25:18 <kmc> this conversation is headed places
06:25:21 <monqy> I sure know I'm evil!
06:26:37 <elliott> i'm white and i can confirm this
06:26:48 <pikhq_> elliott: [pics or gtfo]
06:26:51 <pikhq_> :P
06:26:53 <elliott> i'm also a sinner though so i'm not sure how much that counts for
06:28:18 <qfr> Why? Have you done anything that is haraam?
06:28:25 <qfr> have you consumed pork or drunk alcohol?
06:28:39 <kmc> i got drunk with a pig, does that count
06:28:54 <pikhq_> qfr: Heck, I did both at the same time earlier today.
06:28:56 <qfr> You make the prophet cry!
06:29:09 <elliott> i've consumed pork
06:29:11 <elliott> no alcohol
06:29:32 <pikhq_> And I would do it again, for pig-meat is glorious.
06:29:40 <monqy> I've consumed mouthwash
06:29:44 <monqy> that has alcohol in it right
06:29:53 <pikhq_> monqy: Depends on the mouthwash.
06:29:59 <monqy> I think mine does
06:30:03 <pikhq_> Listerine?
06:30:16 <qfr> I switched to non-alcholic mouthwash
06:30:32 <qfr> Because I heard of studies that showed a slight increase in mouth cancer
06:30:35 <monqy> I think it's listerine but I don't check the labels I just wash my mouth
06:30:36 <qfr> In those who used alcoholic mouthwash
06:31:01 <elliott> i don't have lung cancer
06:31:01 <elliott> i am lung cancer
06:31:09 <qfr> Do you smoke? :(
06:31:42 <elliott> no
06:31:45 <elliott> i am smoke
06:31:58 <qfr> How many cigs are you per day
06:32:05 <qfr> 20? 30?
06:32:06 <elliott> 0
06:40:39 <shachaf> elliott: Wait, school = smoke?
06:51:03 <Sato0x> mew
06:51:22 <elliott> mew
06:51:53 <Sato0x> it's now plain old brainfuck in php
06:52:42 <Sato0x> anybody want to collaborate on a new esoteric lang?
06:53:16 <monqy> what new language
06:53:22 <monqy> a new one?
06:53:42 <Sato0x> yeah
06:54:01 <kmc> what's your idea Sato0x
06:54:35 <Sato0x> a racist programming language
06:54:49 <zzo38> Hay! That's racist!
06:54:57 <Sato0x> xD
06:55:01 <shachaf> zzo38++ # hero
06:55:05 <shachaf> Anyway, there are already plenty of those.
06:55:10 <Sato0x> there are?
06:55:12 <shachaf> Every language that assumes its input is ASCII.
06:55:14 <shachaf> Right, kmc?
06:55:15 <kmc> shachaf++
06:55:22 <Sato0x> ,,
06:55:42 <Sato0x> https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=racist+programming+language
06:57:47 <Sato0x> no there aren't
06:57:49 <Sato0x> :(
06:57:59 <elliott> "It's clever, but the use of color to discriminate between browsers in both cases is unfortunate; it evokes comparisons with our cultural history of racism and segregation."
06:58:03 <zzo38> Do you expect Google to tell you everything?
06:58:05 <elliott> thanks Coding Horror, I can always rely on you to be fucking moronic
06:58:15 <elliott> did u know serving differently styled webpage to IE6 = raciesm?
06:58:28 <Sato0x> lol
06:58:41 <qfr> I did a lot of JavaScript recently
06:58:45 <qfr> I gave up on anything below IE9
06:58:46 <Sato0x> liar
06:58:51 <qfr> No, I'm serious
06:58:56 <Sato0x> sato hates javascript
06:59:06 <Sato0x> sato only uses it for ajax..
06:59:10 <qfr> https://github.com/epicvrvs/RiotControl/tree/master/Web/Script/Module
06:59:10 <Sato0x> and some other stuff
06:59:13 <kmc> who's sato
06:59:34 <Sato0x> me
06:59:38 <qfr> I made a project where pretty much the entire web content is generated by JavaScript :|
06:59:45 <qfr> No regular HTML at all
06:59:50 <qfr> Except to load one JavaScritp file
06:59:55 <Sato0x> sounds cool
07:00:08 <qfr> You might wonder "why would you ever do that"
07:00:18 <kmc> it's becoming more common
07:00:20 <qfr> It's a centralised web interface for local server instances people run
07:00:38 <qfr> The JavaScript then queries their local servers to get JSON data
07:00:42 <Sato0x> I didn't wonder that
07:00:48 <kmc> there is a philosophy that your web service should be a backend with a public API, and the web frontend is just one of many frontends people could write
07:00:57 <qfr> And when I want to modify the "soft logic" of the application I just modify the JavaScript
07:00:58 <kmc> and so of course the service has no business generating HTML
07:01:01 <qfr> And the changes go live everywhere
07:01:09 <kmc> rather you write some HTML and CSS and Javascript as a separate project
07:01:18 <kmc> and that JS talks to the backend's API and generates views locally
07:01:19 <pikhq_> I have a philosophy that lynx should be a viable browser.
07:01:23 <qfr> Unluckily this also resulted in stuff like I making a mistake in some file without testing it properly
07:01:28 <qfr> And then going to sleep
07:01:32 <kmc> there are Javascript MVC libraries for this purpose
07:01:35 <qfr> And waking up to hundreds of people screaming at me
07:01:40 <zzo38> If you want it secure, you could use SSH
07:01:41 <Sato0x> I have a philosophy that yeah..
07:01:42 <qfr> Because I broke all instances of the application around the world
07:01:49 <Sato0x> shh
07:01:52 <qfr> By modifying the centralised script data
07:01:59 <shachaf> I like to unpack my MCV into a construction yard.
07:02:23 <kmc> a browser is something that views documents
07:02:28 <qfr> And I made it a web GUI so people could also expose their service to the world if they wanted to, which went as planned
07:02:44 <kmc> firefox and chrome are not just browsers; they're virtual machines for running arbitrary applications which happen to be delivered over HTTP
07:02:51 <kmc> lynx is still a fine browser
07:03:05 <kmc> and the fact that it does not run arbitrary applications delivered over HTTP might be considered one of its strengths
07:03:07 <Sato0x> ^
07:03:17 <zzo38> kmc: Yes, true
07:03:21 <qfr> Firebug <3
07:03:34 <Sato0x> Inspect Element <3
07:03:38 <pikhq_> Javascript/CSS/HTML/HTTP is such a pitiful application stack.
07:03:38 <qfr> kmc I somewhat realised that when I looked at that SQLite manager for Firefox
07:03:50 <kmc> it is pretty weird
07:03:52 <qfr> It's like an entire application running through the Firefox toolkit
07:03:54 <qfr> It's pretty weird
07:03:58 <qfr> I think it uses CSS internally
07:04:05 <elliott> XUL
07:04:09 <zzo38> pikhq_: I agree Javascript/CSS/HTML/HTTP is a stupid application stack you can make something better surely.
07:04:14 <kmc> on the other hand unix sockets and X11 and GTK is also a weird stack if you look at it right
07:04:14 <pikhq_> qfr: Firefox *itself* is written that way.
07:04:19 <qfr> :O
07:04:25 <kmc> and it's written mostly in unsafe languages
07:04:25 <qfr> kmc ya hehe
07:04:29 <pikhq_> kmc: No argument.
07:04:37 <kmc> the stacks people use tend to be weird
07:04:46 <Sato0x> hi
07:04:55 <pikhq_> X11 is at *least* as bad as the Javascript/CSS/HTML/HTTP stack.
07:04:58 <zzo38> XUL is one thing, but you can also use a telnet application for remote service; SSH if you need secure and a few other functions too. But, there is also gopher, FTP, IRC, use whatever work in this case
07:05:48 <elliott> you know what the only non-weird stack is
07:05:48 <elliott> @
07:05:51 <elliott> checkmate assholes
07:05:58 <elliott> fuck all of you, why haven't you implemented @ yet
07:06:01 <elliott> god
07:06:18 <elliott> and now i have to compile haskell-src-exts
07:06:20 <elliott> today is awful
07:06:34 <zzo38> elliott: Why haven't *you* implemented @ yet? I don't know how and probably everyone else also probably doesn't know how
07:06:55 <elliott> because i'm lazy
07:07:14 <calamari> what are you guys writing?
07:07:28 <zzo38> calamari: Do you mean me or elliott?
07:08:15 <calamari> let me rephrase, what are you guys talking about?
07:08:22 <elliott> @
07:08:27 <zzo38> calamari: Read it!
07:08:32 <calamari> what language is that
07:08:36 <Sato0x> hey guys
07:08:42 <calamari> or is the language called "@"? "
07:09:00 <Sato0x> What's that esoteric language derived from something in diablo
07:09:12 <elliott> calamari: the language can be called @
07:09:14 <elliott> but it's not a language
07:09:26 <zzo38> O, it is a computer
07:10:17 <elliott> no
07:10:31 <zzo38> O, it is a punctuation mark
07:10:47 <Sato0x> ??
07:10:53 <ais523> @ is a vaporware OS
07:10:57 <Sato0x> there's a language
07:11:01 <Sato0x> that's like
07:11:02 <ais523> written in @lang, which is a vaporware language
07:11:09 <Sato0x> um
07:11:12 <ais523> only neither @ nor @lang are their actual names, they're just placeholders
07:11:22 <calamari> lol
07:11:30 <ais523> we know a few details about @, and none about @lang (except that it's defined to be perfect)
07:11:40 <elliott> it's not!
07:11:45 <elliott> also, *vapourware
07:12:16 <Sato0x> ?////
07:12:16 <lambdabot> Unknown command, try @list
07:12:18 <Sato0x> ?????????/
07:18:28 <itidus20> ais523: is @ the same thing as @lang?
07:18:39 <ais523> itidus20: no, they're an OS and language respectively
07:18:50 <zzo38> I made a program to draw a triangle on a DVI document, but, how to make draw polygon, ellipse, line of thickness, path of line segments of specified thickness such that they will be joined together properly, ...
07:18:53 <ais523> but the two are quite linked
07:19:01 <ais523> sort-of like UNIX and C in terms of their relationship
07:19:02 <itidus20> he just might manage to do it
07:19:53 <pikhq_> Iff we lock him in a hotel room and don't let him out until he has a beta.
07:20:21 <zzo38> pikhq_: And a computer
07:20:31 <itidus20> but a rushed @ might not be the actual @
07:20:48 <elliott> ais523: much closer
07:20:48 <pikhq_> Like he'll rush.
07:20:51 <elliott> in fact, @lang is just @
07:20:52 <itidus20> you might end up with some mes like javascript
07:20:55 <pikhq_> He'll be there for years.
07:20:56 <pikhq_> :)
07:21:02 <itidus20> ^mess
07:21:02 <elliott> the distinction is nothing, it's meaningless
07:21:11 <elliott> actually i'm lying there to further the myth
07:21:19 <elliott> they're properly separate in my in-revision @ design
07:21:28 <elliott> (I think @ was self-contradictory, so I started ripping it apart)
07:21:29 <ais523> ooh, I've got a new esolang idea
07:21:36 <ais523> an esolang that… is a parody of itself
07:21:40 <ais523> this is its only reason for existence
07:21:42 <ais523> and it parodies /that/ too
07:21:58 * ais523 wonders how to create it
07:22:03 <ais523> it probably doesn't actually need a spec
07:22:38 <zzo38> ais523: Is mentioning it on the joke language list sufficient?
07:22:49 <ais523> I don't think so
07:22:53 <itidus20> designing the parody lang sounds similar to writing a quine
07:23:03 <ais523> it has to actually be a parody of itself, not just be defined to be a parody of itself
07:23:05 <ais523> itidus20: agreed
07:23:23 <elliott> pikhq_: btw, I don't have any particular problems being locked in a hotel room with a computer
07:23:54 <zzo38> OK. I don't know how a quine would be written in this context but OK
07:24:05 <itidus20> zzo38: its just a metaphor
07:24:29 <zzo38> But yes it does seem like a quine to me too once you explain a bit
07:24:58 <zzo38> How can you write a quine in itself?
07:25:07 <itidus20> well... ok.. you begin with a language-writing language
07:25:14 <pikhq_> elliott: And no internet. So you might actually be productive. :P
07:25:19 <itidus20> and you start making statements in it
07:25:20 <elliott> fuck that
07:25:22 -!- Sgeo has quit (Read error: Connection reset by peer).
07:25:27 <itidus20> like uhh..
07:25:30 <itidus20> brainfuck
07:25:42 <itidus20> the parody could be written in brainfuck
07:26:07 <itidus20> no im totally missing the point
07:30:30 <Sato0x> hi
07:32:24 <zzo38> If you do not know where you are, but you have the correct date and time (in UTC), and you can see outside, but cannot identify any landmarks, then can you figure out your location?
07:32:35 <Sato0x> oh yeat
07:32:38 <Sato0x> yeah
07:32:51 <Sato0x> malbolge
07:32:57 <Sato0x> that one
07:33:25 <zzo38> If someone takes you in a dark plane to somewhere so that you cannot know where you are, will they steal your watch too?
07:33:57 <Sato0x> .....
07:35:53 -!- pikhq has joined.
07:36:53 -!- pikhq_ has quit (Ping timeout: 248 seconds).
07:38:36 <elliott> yes
07:39:26 <zzo38> OK, then, how will you determine your location?
07:39:38 <Sato0x> you won't..
07:50:45 -!- nortti has joined.
07:56:23 <elliott> @time
07:56:24 <lambdabot> Local time for elliott is Mon Apr 9 08:56:51
07:57:10 <Sato0x> #time
07:57:12 <Sato0x> !time
07:57:18 <Sato0x> 1time
07:57:20 <Sato0x> 3time
07:57:22 <Sato0x> 2time
07:57:25 <Sato0x> @time
07:57:25 <lambdabot> Local time for Sato0x is Mon Apr 09 03:57:23 2012
08:01:09 <ais523> zzo38: I think you'd need to know which way north was
08:01:21 <ais523> then you could, if you were good enough at estimating which way the sun was
08:01:51 <ais523> at local midday, your shadow points exactly north or south; the UTC time then lets you calculate longitude, and the length and direction of the shadow latitude
08:04:43 <shachaf> kmc: Did you see http://exploit-exercises.com/ ?
08:05:05 <shachaf> I wonder whether it's any good. Downloading a VM is kind of a big up-front cost.
08:06:35 <shachaf> elliott: Is @ a DHT?
08:06:37 <shachaf> It should be.
08:07:36 <ais523> btw, git's interface for merges really sucks
08:07:50 <elliott> shachaf: No.
08:08:02 <ais523> the only solution I've found for a complex merge is to make one stab at it, commit, then rebase fixes onto it until it compiles and merges…
08:08:35 -!- NSQX has joined.
08:08:46 <NSQX> http://esolangs.org/wiki/User:NSQX/CPUFuck.cpp
08:09:08 <NSQX> A program which will convert any text into a brainfuck program which will display the text
08:09:22 <elliott> !bf_txtgen hello
08:09:28 <EgoBot> ​56 ++++++++[>+++++++++++++>+>><<<<-]>.---.+++++++..+++.>++. [136]
08:09:51 <ais523> !bf_txtgen This is much more efficient on longer strings than your method.
08:09:54 <EgoBot> ​557 +++++++++++++++[>++++++>++++++++>++>+++++++<<<<-]>------.++++++++++++++++++++.+.>-----.>++.<<.>.>.<<++++.>++.------------------.>>-.<.<<.++.+++.>++.>.+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.<+..>>+.<--.>.----.<+++++++++++.<<++.>>>---------------------------------------------------------------------.<+.<++++++++.>>.<---.<+.-.<-------------.--.>>++++++.>.<+.+.--.<-----.+++++.-------.>+.>.<+.<+.<----.>++++++.>>.<+++++.<+.>----.---.
08:10:09 <ais523> although far from perfect, it seems
08:10:19 <elliott> yes, !bf_txtgen is actually kind of rubbish :)
08:10:25 <shachaf> elliott: Aw. I thought you said it was.
08:10:32 <elliott> shachaf: You can implement a DHT with it.
08:10:44 <shachaf> elliott: !bf_txtgen is Kolmogorovically optimal, right?!
08:11:16 <ais523> NSQX: do you have a local copy of nbf2c? because we need to delete the mislicensed copy on the wiki
08:12:09 <NSQX> Yes, I have a local copy.
08:12:13 <ais523> OK
08:15:07 <zzo38> ais523: Yes it is as I thought; but, is it necessary to know which way is north, or can that be determined by the passing of the time? And what if you do not even have the UTC time of day (but you do know which month it is)?
08:15:57 <ais523> zzo38: I guess you could work out north by averaging the position of sunset and sunrise and correcting for the earth's rotation
08:16:03 <ais523> would be quite slow, though
08:16:22 <ais523> I think without knowing north, you'd have to observe both a sunset and a sunrise to calculate your location
08:16:44 <zzo38> Yes, I thought that might help
08:16:45 <ais523> without knowing UTC time of day, you can't calculate longitude to any accuracy; latitude is still possible
08:17:23 <ais523> gah git, why do you have to end up repeatedly conflicting just because I tried to edit an older patch?
08:18:51 -!- calamari has quit (Quit: Leaving).
08:18:55 <zzo38> Would the moon help?
08:19:04 <ais523> actually, I think the problem is that I edited a correction into the wrong patch originally, and it moved to the correct patch via a series of conflicts when I tried to make another change to that patch
08:19:50 <kmc> shachaf, cool
08:20:30 <kmc> has a lot of levels
08:20:39 <NSQX> There's only one bug in my CPUFuck.cpp program: An extra '.' is added at the end
08:20:43 <zzo38> (Since the moon moves faster)
08:20:43 <kmc> looks like much of the code is online
08:21:09 <zzo38> NSQX: Then fix it
08:22:46 -!- NSQX has quit (Quit: leaving).
08:23:18 -!- NSQX has joined.
08:24:15 <NSQX> http://brainfu.ck/++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++..----.------------------------------------------------------.-----------..+++++++++++++++++++++++++++++++++++++++++++++++++++.++++++++++++++++.-----------------.++++++++.+++++.--------.+++++++++++++++.-----------------------------------------------------------------------.++++++++++++++++++++++++++++++
08:24:49 -!- NSQX has left.
08:26:26 -!- Sgeo has joined.
08:27:00 <kmc> Oops! Google Chrome could not find brainfu.ck
08:27:01 <kmc> :/
08:27:26 <monqy> hi nsqx bye nsqx
08:27:42 -!- NSQX has joined.
08:27:46 <monqy> hi
08:27:54 <elliott> btw, .ck doesn't take registrations at second-level
08:27:59 <elliott> so brainfu.ck can't be registered
08:28:43 <NSQX> Everyone, would you prefer !bf_textgen or http://esolangs.org/wiki/User:NSQX/CPUFuck.cpp?
08:29:11 <zzo38> And even if it is does not necessarily mean there is an HTTP service there, and even if there is HTTP service doesn't necessarily mean it is on port 80, and even if it does have HTTP service on port 80 does not necessarily mean it isn't temporarily down
08:29:11 <monqy> I wouldn't use either
08:30:50 -!- NSQX has left.
08:30:54 -!- NSQX has joined.
08:30:59 -!- NSQX has left.
08:31:05 -!- NSQX has joined.
08:31:07 <monqy> bye nsqx hi nsqx bye nsqx hi nsqx
08:31:40 -!- NSQX has left.
08:31:49 <monqy> bye nsqx
08:31:55 <monqy> what's up with that guy
08:33:57 <Sgeo> monqy, you haven't said hi to him frequently enough
08:34:12 <elliott> hi monqy
08:34:24 <monqy> hi
08:34:37 <monqy> Sgeo: hi
08:34:55 <Sgeo> "Yay", NSQX made a program similar to a script I included with the PSOX stuff
08:34:58 <Sgeo> Yipideedoo
08:35:02 <monqy> hi
08:35:11 <monqy> Sgeo: I used to have strict requirements for when I said hi but then everyone started saying hi and it all got weird
08:35:12 <Sgeo> At any rate, !bf_txtgen produces more compact code.
08:36:28 <ais523> `addquote <monqy> Sgeo: I used to have strict requirements for when I said hi but then everyone started saying hi and it all got weird
08:36:37 <HackEgo> 825) <monqy> Sgeo: I used to have strict requirements for when I said hi but then everyone started saying hi and it all got weird
08:36:53 <shachaf> monqy: What were your requirements?
08:37:03 <monqy> strict that's what
08:37:11 <elliott> but what WERE they
08:37:12 <Sgeo> They were also requirements!
08:37:22 <monqy> sgeo hits the nail right on the head
08:37:39 <shachaf> :-(
08:37:48 <shachaf> hi monqy
08:37:52 <monqy> hi
08:37:52 <shachaf> I have strict requirements too.
08:38:27 <elliott> monqy: what WERE THEY!!!!
08:38:40 <monqy> I forget exactly what they were
08:39:00 <shachaf> mcstar> i didnt know haskell supported C# and F#
08:39:06 <shachaf> Only on ubuntu freebsd.
08:39:42 <monqy> something to do with abrupt conversation derailments, particularly when the new subject is stupid
08:40:18 <shachaf> What if the hi is the new subject?
08:40:50 <ais523> hi
08:40:58 <shachaf> hi "ais523"
08:41:02 <Sato0x> hi
08:41:10 <nortti> hi
08:41:11 -!- ais523 has changed nick to scarf.
08:41:25 <monqy> hi
08:43:12 <elliott> hi
08:43:22 <elliott> monqy: can we go back to the old kind of his
08:43:24 <elliott> these are getting old
08:43:31 <elliott> ill swear of hi forever
08:43:33 <elliott> *offe
08:43:41 <Sgeo> his what?
08:44:08 <monqy> elliott: I'll try but it's hard when everyone else is saying hi all the time!
08:44:10 <qfr> pikhq I stand corrected, a Mono dev just told me their new generational GC is only used in mobile Mono applications right now
08:44:17 <qfr> It's not used by default in regualr Mono yet
08:44:21 -!- Sgeo has changed nick to swhat.
08:44:25 <monqy> Sgeo: plural of hi
08:44:29 <monqy> swhat: hi
08:44:35 <swhat> monqy, hi
08:44:39 <shachaf> GC:TNR
08:44:49 <swhat> R?
08:45:00 -!- asiekierka has quit (Quit: Wychodzi).
08:45:03 <shachaf> I mean G.
08:45:16 <shachaf> Or maybe The Nomad.Reader.
08:45:40 <monqy> shachaf: will you swear off hi forever
08:45:49 * pikhq notes the kola borehole is awesome
08:46:05 <shachaf> monqy: :-(
08:46:22 <shachaf> Why?
08:47:07 <monqy> it was a question not a command; you can hi all you want
08:50:14 <qfr> What is the best garbage collection technology around right now, in your opinion?
08:50:36 <elliott> ask RocketJSquirrel :p
08:50:40 <elliott> `quote memory management
08:50:40 <qfr> For desktop/server stuff
08:50:43 <HackEgo> 405) <Gregor> You have no idea how desperately I want to avoid being a GC guy :P <Gregor> Every year I go to ISMM and Doug Lea gives me a bizarrely-cheery "Hello!" and I'm like "awww shit I'm in memory management"
08:50:44 <qfr> Not embedded
08:50:50 <elliott> RocketJSquirrel isn't embedded
08:51:50 <nortti> I'd say collecting your own garbage
08:52:28 <elliott> yeah, everybody knows the additional cognitive burden of tracking every data dependency through your program is worth it -- because then it's faster. oh wait! manual memory management isn't actually faster
08:52:39 -!- cheater__ has joined.
08:52:39 <nortti> oh it wasn't for embedded systems
08:52:51 <scarf> hmm, I'd say manual memory management is /sometimes/ faster, depending on what you're doing
08:53:20 <scarf> what might be interesting would be compile-time GC
08:53:33 <scarf> where it statically analyzes the program to work out where all the free()s have to go
08:53:39 <elliott> see region inference
08:53:41 <scarf> obviously wouldn't always be possible, but for many programs it would be
08:54:18 <qfr> http://www.mono-project.com/Generational_GC
08:54:39 <monqy> is gggggggggc a thing
08:55:04 <scarf> on the subject of GC, apparently Go's GC is far too conservative
08:55:33 <scarf> and ends up sometimes not collecting anything just because there's a pointer-like bit pattern in memory sometimes
08:55:44 -!- cheater_ has quit (Ping timeout: 260 seconds).
08:55:52 <scarf> (people have accused 1.0f as being a common culprit)
08:57:31 <qfr> That's so odd, does it have no information about the types of objects stored?
08:57:45 <elliott> no, Go has the operational semantics of C
08:57:52 <scarf> the GC doesn't, no, it's just a conservative GC
08:57:53 <qfr> That sounds awful
08:58:13 <scarf> and apparently, unlike Boehm, it doesn't refuse to allocate stuff at addresses that already happen to share a bit-pattern with something in memory
08:58:17 <scarf> (a good way to keep down false positives)
08:58:23 <scarf> (although obviously not a perfect one)
08:59:41 <pikhq> scarf: And has a neat effect of reducing your address space further.
08:59:50 <scarf> indeed!
09:00:32 <scarf> although the sorts of programs that use conservative GCs tend to also be the sorts of programs where running out of address space mean you're also close to running out of actual physical memory
09:01:32 <qfr> What major implementations of interpreters/VMs use reference counting?
09:01:36 <qfr> CPython, who else?
09:02:51 <elliott> perl
09:02:56 <elliott> both have GCs for cycles iirc
09:03:02 <scarf> elliott: Perl doesn't
09:03:08 <scarf> cycles are documented as not being collected
09:03:37 <scarf> the occasional library that actually uses them typically has a ->delete method and asks you to call it when you're done, and the method breaks the cycle and leaves the object to be GCed normally
09:04:03 -!- Sato0x has quit (Quit: Page closed).
09:04:29 <shachaf> monqy: hi is addictive :-(
09:04:42 <monqy> :(
09:05:48 <shachaf> kmc: x86 instruction encoding looks complicated.
09:06:02 <kmc> indeed
09:06:09 <shachaf> Should I learn how it works?
09:06:18 <kmc> i don't know much about it
09:06:20 <shachaf> Today I saw a good-looking article on it, but I lost it.
09:10:46 <zzo38> I once wrote a program in C which encodes some x86 instructions
09:11:14 <itidus20> i did some class on that in school once
09:12:00 <itidus20> _everything_ here (in #esoteric) is more complicated than x86 anyway
09:12:31 <itidus20> ok well it wasn't a class it was just a sort of topic
09:12:33 <shachaf> BF encoding is way simpler than x86.
09:13:45 <itidus20> but more programs are encoded in x86 than BF :P
09:13:52 <kmc> <itidus20> _everything_ here (in #esoteric) is more complicated than x86 anyway
09:13:52 <kmc> uh
09:13:59 <itidus20> a few more
09:14:19 <kmc> why do you repeatedly say things that are completely, obviously incorrect?
09:14:37 <itidus20> kmc: it could be that i am actually overestimating everyones intelligence here because i don't understand what it is they do
09:15:03 <kmc> you're also falsely equating "complexity" and "intelligence"
09:15:14 <kmc> a good esolang has a small definition with rich emergent behavior
09:15:23 <kmc> x86 has huge piles of arbitrary / historical complexity
09:15:37 <shachaf> kmc: What about C++?
09:15:42 <shachaf> I guess you would count that as a bad esolang.
09:15:52 <itidus20> i am amused that anyone who can keep up with esolangs would be worried about x86 encoding
09:16:07 <shachaf> x86 encoding keeps me up at night.
09:16:16 <shachaf> ...Technically that is true.
09:16:21 <kmc> likewise
09:16:29 <kmc> but i would probably be awake anyway :)
09:16:36 <shachaf> Likewise.
09:17:04 <shachaf> 02:16 < edwardk> likewise
09:17:05 <itidus20> does not compute
09:17:14 <shachaf> SYNCHRONICITY????
09:17:50 <elliott> kmc: I've ruined edwardk's day by making him spend 5 hours updating packages just so I could make a package work on Hugs to prove a point.
09:18:07 <shachaf> kmc: You should read Raymond Smullyan.
09:18:10 <itidus20> i guess what i mean is that out of all possible topics here, x86 encoding is surely one of the most trivial
09:18:12 <elliott> That's the kind of quality you can expect when you allow me to talk to you!
09:18:37 <shachaf> elliott: What's the point?
09:18:38 <kmc> itidus20, but that's just a completely false statement
09:18:42 <itidus20> it doesn't require any mind-bending to grasp it
09:18:52 <shachaf> itidus20: Do you know how x86 encoding works?
09:18:53 <shachaf> I don't.
09:18:59 <kmc> i don't see how you can use the word "surely" when you clearly have no idea what you're talking about
09:19:14 <itidus20> i recall it has something like 3bits for 1 thing 3 bits for another thing then another 2 bits
09:19:17 <itidus20> for 8bit
09:19:20 <shachaf> kmc: Not having any idea what you're talking about makes it very easy to use the word "surely". :-)
09:19:23 <kmc> i'm not trying to be mean here
09:19:26 <itidus20> but probably gets more complex as it goes into 64bits
09:19:30 <kmc> i'm just honestly baffled by the way you communicate
09:19:32 <shachaf> 3 bits for 1 thing 3 bits for another and 2 bits there.
09:19:35 <shachaf> That sounds right.
09:19:42 <kmc> x86 modes are 8 bits and 64 bits?
09:20:00 <shachaf> kmc: No, it's a continuum with 8 and 64 at the extremes.
09:20:03 <itidus20> i don't know all the details :-s
09:20:07 <shachaf> Right now I'm using about 38 bits.
09:20:13 <elliott> <shachaf> elliott: What's the point?
09:20:22 <elliott> shachaf: That the fast impl of reflection is not totally unportable.
09:20:24 <kmc> itidus20, no, you don't know *any* of the details
09:20:35 <kmc> you know *negative* details because the things you think you know are wrong
09:20:53 <elliott> kmc: To itidus20, "surely" means "I'm posturing this absurd statement to try and be seen as somebody with insight and/or as trolling"
09:21:00 <elliott> HTH.
09:21:18 <shachaf> kmc: A great work of art uses positive space and negative space.
09:21:29 <shachaf> itidus20 knows negative details.
09:21:55 <scarf> this statement is insightful and/or trolling
09:27:33 <itidus20> i remain surprised.
09:30:49 <itidus20> ok im trolling
09:31:48 -!- swhat has changed nick to Sgeo.
09:34:01 -!- cheater__ has quit (Read error: Operation timed out).
09:36:49 -!- Slereah has joined.
09:37:44 -!- Slereah_ has quit (Ping timeout: 250 seconds).
09:41:44 -!- Slereah has quit (Read error: Connection reset by peer).
09:43:22 -!- Slereah has joined.
09:49:27 -!- david_werecat has joined.
09:58:24 -!- monqy has quit (Quit: hello).
09:58:54 -!- Case1 has quit (Ping timeout: 245 seconds).
10:08:28 -!- david_werecat has quit (Ping timeout: 246 seconds).
10:10:11 -!- calamari has joined.
10:10:13 -!- calamari has left.
10:30:27 -!- derdon has joined.
10:31:10 -!- cheater has joined.
10:42:08 -!- azaq23 has quit (Quit: Leaving.).
10:44:52 -!- Phantom_Hoover has joined.
10:49:52 <elliott> hi Phantom_Hoover
10:50:08 <Phantom_Hoover> bye elliott
11:02:59 <qfr> The ways of the world ^
11:46:26 -!- pikhq_ has joined.
11:46:51 -!- pikhq has quit (Ping timeout: 265 seconds).
12:12:26 -!- Phantom_Hoover has quit (Quit: Leaving).
12:12:35 -!- Phantom_Hoover has joined.
12:26:22 -!- pikhq_ has quit (Ping timeout: 246 seconds).
12:26:29 -!- pikhq has joined.
12:46:48 -!- Phantom_Hoover has quit (Remote host closed the connection).
13:25:26 <elliott> ;;;;;;;;;;;;;;;;;;;
13:28:49 <scarf> you know what the world needs? an Achron/Adanaxis crossover
13:29:43 <elliott> thank you keep talking
13:31:24 <elliott> scarf: tell me about linux
13:31:29 <elliott> and checkout
13:31:35 <elliott> and mediawiki
13:31:42 <elliott> and C++
13:31:44 <scarf> but those aren't as mindbreaking
13:31:48 <scarf> well, apart from perhaps C++
13:32:34 <elliott> scarf: i don't care just keep the words
13:33:46 <elliott> scarf: more
13:33:48 <elliott> scarf: words
13:34:02 <scarf> elliott: you probably need to go to bed again :)
13:34:37 <elliott> scarf: no it's not that
13:35:48 <elliott> scarf: tell me about the decimalisation of the UK currency system
13:36:00 <elliott> (i actually want to know this)
13:36:23 <scarf> I don't know a whole lot…
13:37:09 <elliott> bah
13:37:17 <elliott> reading it on wikipedia spoils the magic
13:37:36 <elliott> like did everyone have to change their currency one day
13:37:46 <elliott> was there a big day of noneconomics because nobody could do anything but currency-change
13:40:14 <elliott> http://www.youtube.com/watch?v=rx1EwdbmrR4 awesome
13:41:38 <elliott> "Biggest rip off in the 20th century. Change a thousand year old system which worked fine to please the foreigners and rip off the British public at the same time. Welcome to modern Britain!"
13:43:59 <RocketJSquirrel> elliott: The USA has non-decimal units of measure. Something we are mocked for by all other nations on a near-constant basis. Be glad your country managed to get off non-decimal currency ;)
13:45:10 <elliott> RocketJSquirrel: Well yeah but it's MOSTLY decimal.
13:45:23 <elliott> Dollars and cents make sense (HAR HAR HAR), you just have weird historical nicknames.
13:45:53 <RocketJSquirrel> ... wut ...
13:46:01 <RocketJSquirrel> Our currency is decimal in every sense ...
13:46:08 -!- david_werecat has joined.
13:46:09 -!- Case1 has joined.
13:46:09 <RocketJSquirrel> I'm talking about units of MEASURE.
13:46:21 <elliott> Ohhhhhhhhhh
13:46:27 <RocketJSquirrel> The nicknames are for coins, not amounts of money, btw.
13:46:28 <elliott> I totally misread your original line, sorry :P
13:46:51 <elliott> RocketJSquirrel: Yeah, your units are stupid. But we have the same problems at a smaller scale.
13:47:00 <elliott> Feet and inches are how we measure height, and distances are in miles.
13:47:15 <elliott> Thankfully we've more-or-less exterminated the old weights through force.
13:48:22 <nortti> is there any logic in conversion from inches to feet or feet to miles?
13:48:36 <nortti> or is it just some random value
13:49:41 <RocketJSquirrel> nortti: Each length was derived from some real-world amount that was vaguely useful at the time, but we've lost most of the intermediary units that made things add up sensibly.
13:50:25 <nortti> ok
13:50:26 <elliott> 1 ft = 0.000189393939 mi
13:50:26 <RocketJSquirrel> e.g. a mile is 8 furlongs, and a furlong is 220 yards.
13:50:36 <elliott> 1 foot = 1/3 yards, though.
13:50:41 <nortti> furlong?
13:50:44 <elliott> And 1 mile = 1760 yards.
13:50:50 <elliott> It makes sense in base 12 or summat.
13:50:59 <RocketJSquirrel> nortti: Exactly.
14:20:56 <nortti> also does farenhait scale have any sensible origin?
14:22:39 -!- sebbu2 has joined.
14:22:40 -!- sebbu2 has quit (Changing host).
14:22:40 -!- sebbu2 has joined.
14:24:07 -!- sebbu has quit (Ping timeout: 276 seconds).
14:25:37 -!- sebbu2 has changed nick to sebbu.
14:26:24 <RocketJSquirrel> <nortti> also does farenhait scale have any sensible origin?
14:26:32 <RocketJSquirrel> nortti: Freezing point of brine, body temperature of a horse.
14:26:59 <RocketJSquirrel> It is not, contrary to popular misconception, the body temperature of Farenheit with a fever.
14:27:05 <RocketJSquirrel> (Person, not scale)
14:28:05 <RocketJSquirrel> The freezing point of brine was chosen because it was the lowest temperature that was both used in practical life and relatively easy to measure. The body temperature of a horse was chosen because our society is seriously horses all the way down.
14:54:25 <qfr> [15:50:41] <nortti> furlong?
14:54:33 <qfr> It's a unit of distance used by furries
14:54:47 <qfr> A furlong is the height of an average yiff
14:55:22 -!- asiekierka has joined.
14:57:12 <RocketJSquirrel> qfr: HOLY CRAP YIFFS ARE F***ING (no pun intended) HUGE
15:02:19 <elliott> Well, the good ones are.
15:05:48 <nortti> @time fizzie
15:05:49 <lambdabot> Local time for fizzie is Mon Apr 9 18:05:48 2012
15:28:40 -!- Case1 has quit (Quit: Leaving.).
15:32:25 <Sgeo> More depressing than those "This is a once-in-a-lifetime calendar event" things:
15:32:52 <Sgeo> Seeing one that was literally taken from last year, with the current year slapped on it, such that it doesn't even match this year's calendar.
15:33:26 <Sgeo> https://www.facebook.com/photo.php?fbid=424793280870274&set=p.424793280870274&type=1&theater
15:41:59 <Deewiant> http://www.bitc-lang.org/pipermail/bitc-dev/2012-April/003315.html
15:43:23 <elliott> Seen, but Deewiant++ anyway
15:46:13 <Sgeo> http://imgur.com/QRTYk
15:46:45 -!- MSleep has changed nick to MDude.
15:47:00 <elliott> Thanks, I wanted a screenshot of that page you just linked
15:47:24 <Sgeo> Oh, I forgot I linked
15:51:51 -!- RocketJSquirrel has set topic: Do you like rotating mazes? Do you like the other idea? | I do not like rotating mazes. I do not like them Mr. Z. I do not like them in a tree. I do not like them in the fog, I do not like them on a log. I do not like rot' maze, you see, I prefer my lab'rinth's normalcy. | http://codu.org/logs/_esoteric/.
15:53:21 <RocketJSquirrel> Idonno why this Dr. Seuss guy thinks he's so hot. I could do that shit.
15:53:42 <RocketJSquirrel> *throws sympathetic apostrophes EVERYWHERE*
16:00:25 -!- Patashu has quit (Quit: MSN: Patashu@hotmail.com , Gmail: Patashu0@gmail.com , AIM: Patashu0 , YIM: patashu2 , Skype: patashu0 .).
16:07:32 -!- augur has quit (Remote host closed the connection).
16:27:01 <olsner> oh, apparently bitc had "transcode C++ code without re-architecting at the same time." as a goal
16:27:26 <olsner> sounds like SVN's "let's fix CVS" idea
16:35:12 -!- Mathnerd314 has joined.
16:37:27 -!- augur has joined.
16:44:11 -!- Mortchek has joined.
16:49:08 -!- david_werecat has quit (Ping timeout: 240 seconds).
16:50:32 -!- elliott has quit (Remote host closed the connection).
16:59:46 -!- nortti has quit (Quit: häivyn).
16:59:50 -!- scarf has quit (Remote host closed the connection).
17:05:31 -!- pikhq_ has joined.
17:05:58 -!- pikhq has quit (Ping timeout: 276 seconds).
17:13:39 -!- Mathnerd314_ has joined.
17:16:41 -!- Mathnerd314 has quit (Ping timeout: 246 seconds).
17:17:06 -!- Mathnerd314_ has changed nick to Mathnerd314.
17:18:52 -!- Mathnerd314 has quit (Read error: Connection reset by peer).
17:19:53 -!- Mathnerd314 has joined.
17:28:01 -!- calamari has joined.
17:29:31 -!- Mathnerd314_ has joined.
17:32:31 -!- Mathnerd314 has quit (Ping timeout: 264 seconds).
17:32:37 -!- Mathnerd314_ has changed nick to Mathnerd314.
18:01:32 -!- david_werecat has joined.
18:03:06 -!- augur has quit (Remote host closed the connection).
18:04:38 -!- david_werecat has left.
18:06:23 -!- sebbu has quit (Ping timeout: 246 seconds).
18:13:22 -!- sebbu has joined.
18:13:23 -!- sebbu has quit (Changing host).
18:13:23 -!- sebbu has joined.
18:15:42 -!- augur has joined.
18:23:03 -!- Vorpal has joined.
18:36:52 <augur> fizzie, or other finns, can i annoy you?
18:38:23 <augur> oklopol!
18:38:33 <oklopol> ??????
18:38:39 <augur> lemme get some judgements from you!
18:38:46 <oklopol> but i suck at finnish :(
18:38:53 <augur> thats why i want it from you
18:39:16 <oklopol> you descriptionists make me sick
18:43:38 <augur> lol
18:45:27 <augur> oklopol: punaisen ostin auto == good, right?
18:45:47 <oklopol> well no
18:45:52 <augur> auton**
18:45:54 <augur> sorry
18:46:04 <oklopol> then it's weird but correct.
18:46:26 <augur> ok, i only want to know if its weird or not weird or just shit
18:46:29 <augur> ok hows this
18:46:30 <oklopol> can't think of a context where it isn't weird really
18:46:53 <augur> ostin sen punaisen auto
18:47:10 <augur> (put the sen wherever it might need to go)
18:47:10 <oklopol> that's completely wrong
18:47:19 <augur> in what way
18:47:30 <oklopol> in the way that you dropped the n again
18:47:36 <augur> ok :P
18:47:41 <augur> how about
18:47:49 <augur> punaisen ostin sen auton
18:48:19 <oklopol> well it can't really mean i bought the red car
18:48:25 <augur> ok thank you
18:49:02 <oklopol> (if it's "punaisena", then it's something specific and okay, but i guess that's not part of the game)
18:50:33 <augur> whats punaisena??
18:50:51 <oklopol> the essive case
18:50:57 <augur> essive?
18:51:01 <oklopol> so it means i bought the red version of the car
18:51:06 <oklopol> yeah it's this thing we have
18:51:09 <augur> ok
18:51:12 <oklopol> means like, "as red"
18:53:09 <augur> punaisena ostin auton
18:53:42 <oklopol> i would interpret that "while i was being red, i bought a car". i think.
18:54:00 <augur> aha ok
18:54:40 <augur> ostin punaisen sen auton // ostin sen auton punaisen
18:54:53 <oklopol> ostin sen punaisen auton is idiomatic
18:55:00 <augur> idiomatic?
18:55:02 -!- Sams69 has joined.
18:55:13 -!- Sams69 has left.
18:55:16 <oklopol> the latter is somewhat silly and poetic, ut makes sense, the first one makes no sense
18:55:17 <Vorpal> Hm... Finnish is really an amazingly complex language.
18:55:34 <augur> oklopol: ok
18:55:35 <augur> how about
18:55:41 <oklopol> "idiomatic?"?
18:55:47 <augur> what do you mean by idiomatic
18:55:54 <augur> ostin punaisena sen auton // ostin sen auton punaisena
18:55:55 <oklopol> that's what you'd actually say
18:56:04 <augur> oklopol: oh, so you mean colloquiual
18:56:11 <RocketJSquirrel> `words --finnish 50
18:56:16 <HackEgo> uhoavioikselta sijailemä liukulaveamme totultani tyyppyä hiensistänne säveltaattomamme kahlitsetullume läisemmassa nahkeistavillä ikistisemme suoriipa funkeimpieni tarkoissanne piisinteilta sollasiallan punoitavasta merkimilleen määnansa poikastuma suudeksensa harmimpiansa kömpeämme ahjomamme vieraa
18:56:17 <augur> idiomatic means non-literal, like "kick the bucket" = "die"
18:56:24 <oklopol> well colluquial then
18:56:25 <oklopol> oh.
18:56:34 <augur> oklopol: so how about those two with punaisena now
18:56:45 <oklopol> both are okay
18:56:50 <augur> ok thank you
18:57:04 <oklopol> latter perhaps slightly better
18:57:39 <oklopol> *but
18:57:47 <oklopol> my b key isn't working properly :(
18:58:05 <augur> ok thank you oklopol :)
18:58:24 <augur> we've discovered that essive case marking is a small-clause secondary predicate head!
18:59:20 <oklopol> what are you basing that on?
19:00:03 <oklopol> not that i have much more than a guess at what that means
19:00:26 <augur> oklopol: the cases where "red" is clearly modifying the verb seem to prohibit extraction of the adjective, but when it's essive, it's allowed, and since the meaning of essive is something like "as", it's reasonable to think that it's a secondary predicate outside of the NP "sen auton"
19:00:48 <augur> oh i should ask real quick
19:00:52 <augur> ostin sen punaisena auton
19:00:53 <oklopol> okay that was what i thought you based it on, so perhaps i do understand what you mean
19:01:06 <oklopol> sorry, sen and auto are close friends.
19:01:10 <augur> ok good
19:01:15 <oklopol> unless there's an adjective there ofc
19:01:17 <augur> so that suggests that punaisena is not modifying the NP
19:01:20 <oklopol> in-etween
19:01:26 <oklopol> *between
19:01:27 <oklopol> ah
19:01:37 <oklopol> np = noun ...?
19:01:51 <augur> phrase
19:01:54 <oklopol> right
19:02:24 <oklopol> so "sen ... auto" means some specific car, and you can stick modifiers in-between.
19:02:37 <oklopol> but punaisena is not a modifier, but kind of its own little subsentence
19:02:37 <oklopol> ?
19:02:46 <augur> sort of, yeah
19:02:51 <augur> we have these in english too
19:03:13 <augur> they describe a state of some argument of a predicate _during_ the time the predicate holds
19:03:26 <augur> e.g. "I bought the car new" means when i bought the car, the car was new
19:03:38 <augur> or "I bought the car nude" means when i bought the car, I was nude
19:04:49 <oklopol> well right, i would say new and nude are in essive there
19:06:02 <oklopol> in fact when i was 10 or something, when i saw english nouns out of context, i would often picture them being in the essive case, because it was funny.
19:07:09 <oklopol> nude, i bought the car
19:07:34 <oklopol> that seems correct to me
19:07:41 <oklopol> "new, i bought the car" seems completely wrong
19:08:18 <oklopol> presumably because cars are new and people are nude
19:08:32 <augur> yeah its bad in english too
19:08:41 <augur> but at the end both are fine for me
19:09:05 <oklopol> well i would be a bit surprised if someone actually said "nude, i bought the car"
19:09:17 <augur> in finnish?
19:09:22 -!- nortti has joined.
19:09:23 <oklopol> in english :D
19:09:28 <augur> oh, no its fine in english
19:09:40 <augur> it has some specific information packaging, but its fine
19:10:48 <oklopol> it seems like such a surprising piece of information that i think it would be formulated differently in most contexts
19:10:56 <oklopol> hmm
19:11:02 <oklopol> okay i see the story now
19:11:31 <nortti> sorry if this question is stupid butis it possible to convert any DFA with true and false end states to regular expression
19:11:45 <oklopol> what are true and false states?
19:11:59 <nortti> en states
19:12:10 <oklopol> with pretty much any definition of language acceptance with DFA, they will give the same class of languages
19:12:11 <nortti> *end
19:12:13 <oklopol> the regular languages
19:12:34 <oklopol> which are exactly what regular expressions with union, concatenation and star give you
19:14:02 <oklopol> anyhow afaik, the conversion is not really feasible in practise, i believe it's at most exponential blowup, and this can be reached
19:16:04 <oklopol> in case you care about that sort of thing
19:17:05 <oklopol> i have this one theorem where you get like double factorial + some exponentials for state blow-up, and if anything i'm proud of its utter uselessness.
19:17:31 <oklopol> still proves the classes equal
19:19:07 -!- oerjan has joined.
19:20:44 -!- oerjan has set topic: Do you like rotating mazes? Do you like the other idea? | I do not like rotating mazes. I do not like them Mr. Z. I do not like them in a tree. I do not like them in the fog, I do not like them on a log. I do not like rot' maze, you see, I prefer my lab'rinth's normalcy. | http://codu.org/logs/_esoteric/.
19:21:01 <oerjan> (that space looked out of place)
19:21:19 <oklopol> is the first one a zzo quote?
19:21:25 <oerjan> yes
19:21:49 <oklopol> he's the best
19:21:50 <oklopol> seriously
19:21:57 <oklopol> why can't i be as best
19:22:53 <oerjan> i declare today's logs Too Damn Long To Read.
19:23:00 -!- oerjan has quit (Client Quit).
19:23:11 <nortti> I am trying to convert following DFA to regular expression: there are five states named A,B,C,true and false. Execution starts at state A. If input is 1 it goes throught the states in the order A,B,C,A,B,C... one state change per 1 and if input is 0 it is otherwise the same, but order is A,C,B,A,C,B... instead. When input is 2 and DFA is in state A it goes to state True, but if it is in state B or C it goes to state False. I haven't
19:23:32 <oklopol> wait you are *actually converting something to something*?
19:23:39 <nortti> yes
19:23:41 <oklopol> that's not really my territory
19:23:46 <oklopol> i'm more into saying it's obvious how to do it
19:24:10 -!- oerjan has joined.
19:25:09 <Vorpal> nortti, for me the conversion is usually quite simple if I draw up the graph of the state machine in question. Can't really help you when you express it in text like that though.
19:25:35 <nortti> I can work it out with just states A,B,true and false where it is ([01][01])*
19:25:36 <oklopol> nortti: can you draw the graph? you left out some info which i don't feel like fishing out of you
19:25:56 <oerjan> hm the other window also died. something tells me this isn't sustainable.
19:26:25 <nortti> oklopol: I am currently on my cellphone
19:26:31 <Vorpal> oerjan, is it just freenode or does it affect other irc networks as well?
19:26:57 <oerjan> Vorpal: it has nothing to do with freenode, it's my connection to the nvg linux server
19:27:02 <Vorpal> hm okay
19:27:09 <Vorpal> oerjan, so is nvg <-> freenode okay?
19:27:09 <oerjan> if i get cut off again i'll try webchat
19:27:29 <Vorpal> oerjan, I assume not since you quit? (Or don't you use screen or such?)
19:27:30 <oerjan> Vorpal: i don't know
19:27:42 <oerjan> Vorpal: i don't use screen
19:27:53 <Vorpal> well doing that would certainly help debugging this :P
19:29:13 <oklopol> nortti: on a second glance, i suppose you gave all the necessary info
19:29:14 <oerjan> maybe i should use screen so you won't know about it. more peaceful that way.
19:29:27 <oklopol> lemme see if i get i
19:29:27 <oklopol> t
19:29:34 <Vorpal> oh come on, I was just trying to help
19:29:56 <oerjan> Vorpal: it's more psychological than technical at this point
19:30:03 <Vorpal> heh
19:31:17 <oklopol> nortti: when you go to state true or false, you can't continue anymore?
19:31:30 <nortti> yes
19:31:33 <oklopol> so all words are among (0 + 1)^*2
19:31:44 <nortti> yes
19:32:07 <oklopol> and the thing before 2 needs to be 0 modulo 3, where 0 is predecessor and 1 is successor
19:32:30 <oklopol> i don't see the regexp directly as i'm too terrified that oerjan sees it before me
19:33:00 -!- oerjan has quit (Quit: Lost terminal).
19:33:10 <oklopol> :D
19:33:17 <oklopol> okay better
19:35:36 <oklopol> (1X1X1X + 0X0X0X)^* where X = (01 + 10)^*, perhaps
19:35:44 <oklopol> hmm that's too complicated
19:36:20 <oklopol> (1X1X1X)^* + (0X0X0X)^*
19:36:42 <oklopol> not entirely sure but the idea is that you can remove any 01 and 10, they won't change the outcome
19:36:56 <nortti> I tried that but it didn't work with 1100111
19:37:08 <oklopol> then you have a unary word and you just check if its length is 0 mod 3
19:37:09 <oklopol> hmm
19:37:16 <oklopol> yes it does
19:37:22 <oklopol> that's 1X11
19:38:05 <nortti> *110001111
19:38:18 <oklopol> right
19:38:36 <oklopol> quite the noodle scratcher
19:38:45 <oklopol> unless you just solve the language equation directly
19:38:53 <oklopol> but this should really be solvable directly
19:40:53 <oklopol> you could solve it and see if you get an idea ofc
19:41:02 <oklopol> i don't really feel like doing that in my head right now
19:42:10 <oklopol> do you know how?
19:42:17 -!- oerjan has joined.
19:42:17 <Sgeo> naughtygirlfinder.com amuses me (don't click [View Profile] links unless you want to give that insipidly stupid site money though)
19:43:00 <Sgeo> Basically: Searching for someone when you haven't searched for someone in the last 60 days (tracked by cookie) ALWAYS says that they're a member with pictures
19:43:14 <oerjan> i guess i should now find out if it affects other than my nvg connection
19:43:22 <oklopol> since we know what the problem actually means, i'd have L_0, L_1 and L_2, where L_i adds i to the current number
19:43:59 <Sgeo> And no, there's no actual pictures of anyone on that site.
19:45:28 <oklopol> L_0 = empty + PL_2 + ML_1 for instance, depending on which letter it starts with
19:45:47 <oerjan> oklopol: did you get a ping from me?
19:45:57 <oklopol> i did not.
19:46:22 <oerjan> fucking crap, i cannot even ping to check if i'm still connected?
19:46:36 <Sgeo> !ping
19:46:39 <Sgeo> @ping
19:46:40 <lambdabot> pong
19:46:42 <EgoBot> Pong!
19:46:52 <oerjan> hm i guess...
19:47:23 <oerjan> ok i guess i can @ping lambdabot in private
19:47:29 <nortti> `? EgoBot
19:47:32 <HackEgo> EgoBot is my arch-nemesis.
19:50:09 <oerjan> of course it might be that webchat won't disconnect but only because it is more resilient against bad connections...
19:50:20 -!- asiekierka has quit (Remote host closed the connection).
19:55:56 -!- oerjan_ has joined.
19:57:48 * oerjan is freaking out because he cannot think of any passive way of distinguishing losing connection from y'all not talking
19:59:04 <nortti> doesn't your irc program tell you if you disconnect from the server?
19:59:17 -!- MoALTz has joined.
19:59:33 <oerjan> the one time previously webchat disconnected, i only found out when i tried to say something
20:10:43 <zzo38> oerjan: Try PING ME and if it is lost connection you won't get a response
20:11:14 <oerjan_> zzo38: well the point was to find a way to check without disturbing others
20:11:31 <zzo38> oerjan_: No, send PING ME to the server
20:12:01 <zzo38> It is what I sometimes do to check that.
20:12:09 <oerjan_> i don't know how to do that in webchat
20:12:25 <zzo38> Then use a client in which you do know how to do that
20:12:47 <oerjan_> also, the _other_ point was that it should be _passive_, i.e. i shouldn't need to constantly do something other than looking
20:13:00 <oerjan_> for irssi, the time in the status bar works
20:13:40 <zzo38> Have the computer send a PING command automatically, then
20:13:59 <oklopol> yes oerjan, just write a script that constantly pings the serveer.
20:14:03 <oklopol> *server
20:14:13 <oklopol> then write a man page for it so others can enjoy it too
20:14:37 -!- oerjan has changed nick to oerjan__.
20:14:53 <oerjan_> zzo38: which computer, is the question. i could do it in irssi probably, but that one is _most_ likely to disconnect and fail...
20:15:04 -!- oerjan_ has changed nick to oerjan.
20:15:11 -!- oerjan__ has changed nick to oerjan_.
20:15:24 <oerjan> so.
20:16:01 <oerjan> anyway my connection has been disturbingly stable since i joined both clients.
20:18:23 -!- Zuu has quit (Ping timeout: 252 seconds).
20:18:52 -!- Zuu has joined.
20:20:29 <zzo38> What has science come to?
20:20:58 <nortti> :
20:21:04 <zzo38> Science is far from perfect, but it is the best we have.
20:21:30 <oerjan> well, soon we should have a picture of a black hole
20:22:57 <zzo38> If it is black, how can you have a picture? What you can do is to calculate how it interferes with surrounding things and then see if the observations match
20:22:59 <oerjan> we've found planets outside the solar system, used muons to scan the vesuvius crater...
20:23:05 <oerjan> right
20:24:45 <oerjan> we have a pretty usable cyberspace, apart from the neural connections part
20:25:17 <oerjan> ftl is as stuck as ever
20:39:30 <nortti> coroutines look pretty interesting
20:51:57 -!- Case1 has joined.
20:56:27 -!- Vorpal has quit (Quit: ZNC - http://znc.sourceforge.net).
20:59:27 -!- augur has quit (Remote host closed the connection).
21:10:29 -!- Sato0x has joined.
21:10:31 <Sato0x> hi
21:10:42 <oerjan> `welcome Sato0x
21:10:45 <HackEgo> Sato0x: Welcome to the international hub for esoteric programming language design and deployment! For more information, check out our wiki: http://esolangs.org/wiki/Main_Page
21:11:20 <Sato0x> How're you?
21:18:09 <Sato0x> ?
21:24:34 <zzo38> I found an article titled "How to Reject Any Scientific Manuscript"
21:24:40 -!- Sgeo has quit (Ping timeout: 276 seconds).
21:27:51 -!- Sgeo has joined.
21:31:30 -!- azaq23 has joined.
21:31:43 -!- azaq23 has quit (Max SendQ exceeded).
21:32:12 -!- azaq23 has joined.
22:13:54 -!- nortti has quit (Quit: nortti).
22:22:43 -!- hagb4rd has joined.
22:41:24 -!- Sato0x has quit (Quit: Page closed).
22:48:28 -!- Sato0x has joined.
22:48:31 <Sato0x> hi
22:48:42 <Sato0x> How do I publish an esolang?
22:49:03 <zzo38> Sato0x: Create a page on the wiki
22:49:09 <Sato0x> ook
22:49:35 <zzo38> That is all you need to do. But all information posted directly on the wiki must be public domain
22:49:48 <Sato0x> huh?
22:50:04 <Sato0x> actually
22:50:07 <Sato0x> is mine esoteric?
22:50:24 <zzo38> How would I know?
22:50:28 <Sato0x> typing
22:50:37 <Sato0x> mine's kind of like brainfuck
22:51:09 <Sato0x> as in it uses < to move left and > to move right, -/+ as (in/de)crementers
23:08:40 -!- MDude has quit (Ping timeout: 276 seconds).
23:09:52 <Sato0x> >
23:09:55 <Sato0x> ?
23:12:05 <kmc> isn't a brickbraining customary at this juncture?
23:12:30 <Sato0x> huh
23:13:24 <oerjan> i'm sure Phantom_Hoover will handle that when he returns
23:13:43 -!- Patashu has joined.
23:14:28 <Sato0x> huh
23:16:24 <oerjan> Sato0x: Phantom_Hoover does _not_ like brainfuck derivatives.
23:16:57 <Sato0x> 'tis not a brainfuck deriviative
23:17:02 <oerjan> good, good
23:17:08 <Sato0x> It just happens to use those
23:17:46 <Sato0x> them seeming most proper to me: > right arrow < left arrow
23:17:50 <Sato0x> + addition
23:17:53 <Sato0x> - subtraction
23:18:22 <kmc> so what is different from brainfuck
23:18:29 <Sato0x> it's gridding
23:20:27 <Sato0x> define dimensions at the beginning with x,y:
23:20:39 <Sato0x> ^ up v down > right < left
23:21:02 <Sato0x> _ reflect over x
23:21:04 <Sato0x> | reflect over y
23:21:14 <Sato0x> % reflect over origin
23:21:45 <Sato0x> . output the certain element
23:21:54 <Sato0x> # output the grid
23:25:36 <Sato0x> bbl
23:25:44 -!- Sato0x has quit (Quit: Page closed).
23:29:10 -!- monqy has joined.
23:35:09 -!- augur has joined.
23:43:31 <augur> oerjan: which black hole?
23:46:38 <oerjan> either the one in the center of our galaxy, or a much larger one in a galaxy in our local supercluster which i don't remember the name of
23:46:52 <oerjan> depends on which research group get first
23:50:01 <oerjan> M87, it was
23:50:18 <oerjan> http://scienceblogs.com/startswithabang/2011/07/were_going_to_see_a_black_hole.php
23:50:45 <itidus20> is it the galaxy with jedis?
23:51:01 <oerjan> hard to say
23:51:10 <itidus20> yay
23:53:40 <augur> oerjan: ah. well the one at the center of the milky way is going to light up pretty soon
23:54:41 <hagb4rd> talking about jedi..it was pleasent to hear they named the first planet with two suns they found tatooine
23:56:04 <hagb4rd> the home planet of luke skywalker as you know for sure
23:56:36 -!- zzo38 has quit (Quit: Imakuni? is absent today).
23:56:39 <itidus20> afk
23:58:26 <oerjan> augur: the other one is already lit up :)
←2012-04-08 2012-04-09 2012-04-10→ ↑2012 ↑all