2015-05-15T00:00:25Z Pixel_Outlaw: I'd appreciate the full context. 2015-05-15T00:06:02Z itissid quit (Quit: Leaving.) 2015-05-15T00:18:08Z someircname joined #scheme 2015-05-15T00:24:18Z rexbutler quit (Remote host closed the connection) 2015-05-15T00:31:06Z zacts: Pixel_Outlaw: I don't know about scheme wrappers for GPIO 2015-05-15T00:33:25Z Pixel_Outlaw: Oh, I thought you might be using it to make the dev board do fancy external things 2015-05-15T00:35:04Z zacts: oh not yet 2015-05-15T00:35:08Z zacts: perhaps eventually 2015-05-15T00:35:31Z zacts: I'm just using it to host my personal server for chat / blog / audio streaming / git repos 2015-05-15T00:37:45Z haasn joined #scheme 2015-05-15T00:39:06Z Pixel_Outlaw: Cool. :) 2015-05-15T00:39:34Z Pixel_Outlaw: I need to grow as a programmer and start learning to wrap C libs. I get into a groove of making games and sometimes don't remember to grow. 2015-05-15T00:40:03Z zacts: Pixel_Outlaw: what is your current experience programming, other than games (or 2D / 3D games?) 2015-05-15T00:40:22Z haasn: Lua is an example of a language+implementation that is designed to be embedded into (eg. C) programs - the interpreter is small, there's a low startup overhead, and the FFI is mostly transparent. Are there any examples of Scheme implementations (or dialects) that have similar properties? I'm particularly interested in using a language based on s-exprs for both configuring programs *and* extending their 2015-05-15T00:40:24Z haasn: functionality. 2015-05-15T00:40:33Z zacts: there is chibit-scheme I think? 2015-05-15T00:40:36Z zacts: haasn: ^ 2015-05-15T00:40:50Z zacts: also there is microscheme for microfirmware 2015-05-15T00:41:02Z zacts: but I don't believe that microscheme is designed for the above use-case 2015-05-15T00:41:23Z zacts: I think guile is intended for an extension language into other apps, including C programs 2015-05-15T00:41:33Z zacts: but chibi-scheme 2015-05-15T00:41:36Z zacts: not chibit 2015-05-15T00:41:39Z zacts: sorry typo 2015-05-15T00:41:53Z zacts: there may be other implementations I don't know about 2015-05-15T00:42:19Z haasn: chibi-scheme looks very interesting, thanks 2015-05-15T00:42:35Z zacts: haasn: http://synthcode.com/wiki/chibi-scheme 2015-05-15T00:42:43Z zacts: and https://github.com/ashinn/chibi-scheme 2015-05-15T00:42:49Z zacts: =) 2015-05-15T00:43:09Z zacts: I'm trying to build chibi-scheme on Minix3 actually 2015-05-15T00:43:25Z zacts: the problem is that I need to port NetBSD pkgsrc to Minix3 first 2015-05-15T00:43:29Z zacts: minix3-arm 2015-05-15T00:43:41Z zacts: and then I'll get gnu make, which should let me build chibi 2015-05-15T00:44:09Z zacts: I may try for porting chicken scheme again, as I think minix has made some progress with more standardization and netbsdization efforts 2015-05-15T00:44:22Z zacts: but last time I tried chicken was difficult to bootstrap on minix 2015-05-15T00:44:38Z zacts: I've built chibi on x86 minix 2015-05-15T00:44:40Z zacts: but not arm 2015-05-15T00:46:01Z ronh- joined #scheme 2015-05-15T00:46:17Z haasn: Hmm. I could use a good REPL that runs on ARM 2015-05-15T00:46:28Z haasn: I want to try getting Haskell to run on it, but it's an extremely difficult task 2015-05-15T00:46:30Z zacts: haasn: which OS? 2015-05-15T00:46:35Z haasn: zacts: SailfishOS 2015-05-15T00:46:38Z haasn: (Linux distro) 2015-05-15T00:46:46Z haasn: Mostly vanilla Linux kernel and packages though 2015-05-15T00:46:53Z pjdelport quit (Quit: Connection closed for inactivity) 2015-05-15T00:47:20Z zacts: oh wow they have a nice and snazzy homepage 2015-05-15T00:47:23Z zacts: I like it 2015-05-15T00:47:27Z zacts: I'll have to try it out sometime 2015-05-15T00:47:35Z haasn: zacts: be warned, it's not fully free yet 2015-05-15T00:47:41Z zacts: oh wow wayland and android apps run on it 2015-05-15T00:47:53Z haasn: Some parts are still propretiary, as I understand it mostly due to legal complications from Nokia leftovers 2015-05-15T00:47:59Z zacts: ah ok 2015-05-15T00:48:09Z haasn: zacts: Yeah, it runs btrfs, systemd and wayland internally 2015-05-15T00:48:17Z zacts: neat 2015-05-15T00:48:23Z zacts: I'm currently on debian jessie 2015-05-15T00:48:27Z haasn: The entire UI is done in Qt5 2015-05-15T00:48:27Z zacts: with gnu guix on top 2015-05-15T00:48:35Z haasn: And they even have a standard package manager, unlike Android 2015-05-15T00:48:42Z haasn: It really is Linux for phones in the way that Android never was and never will be ;) 2015-05-15T00:49:20Z zacts: oh interesting 2015-05-15T00:49:29Z zacts: yeah, I dislike many things about Android's stability and UI 2015-05-15T00:49:44Z zacts: I have this especially annoying bug that has been documented and never fixed by google 2015-05-15T00:49:56Z zacts: my bluetooth keyboard does this: thhhhhhhhhhhhhiiiiiiiiiiiiissssssssssssss 2015-05-15T00:50:07Z zacts: and I can't put unetbootin or replicant on it 2015-05-15T00:50:14Z zacts: as it hasn't been jailbroken yet 2015-05-15T00:50:24Z zacts: it's not the keyboards fault either 2015-05-15T00:50:28Z zacts: 's 2015-05-15T00:51:32Z jao joined #scheme 2015-05-15T00:51:43Z haasn: SailfishOS lets you pick a root password by default, and you can also just SSH into the machine (if you turn on SSH access) and treat it like any old linux system 2015-05-15T00:53:51Z haasn: if your bluetooth keyboard works under the normal linux kernel drivers, chances are it would work there 2015-05-15T00:54:20Z haasn: Ah, they use `bluez` for bluetooth stuff, which is pretty standard from what I've seen 2015-05-15T00:54:27Z zacts: I just discovered this HaikuOS recently 2015-05-15T00:54:30Z zacts: but I know nothing of it 2015-05-15T00:55:06Z haasn: (they also use Telepathy for stuff like the standard built-in messages, with backends for XMPP, SMS, and all the various little protocols. It's really cool, since you can just fix bugs like this yourself) 2015-05-15T00:55:24Z offby1 joined #scheme 2015-05-15T00:55:42Z offby1 left #scheme 2015-05-15T00:55:52Z zacts: ok 2015-05-15T00:58:08Z oleo_ joined #scheme 2015-05-15T00:59:40Z zhcy joined #scheme 2015-05-15T01:00:26Z oleo quit (Ping timeout: 258 seconds) 2015-05-15T01:01:29Z kephra: reading the article about HaikuOS reminds me, why abandomed C++ ... most of my old code no longer compiles, because the standard changed, or gcc changed, or both 2015-05-15T01:07:12Z annodomini quit (Quit: annodomini) 2015-05-15T01:08:38Z zacts: ah yeah 2015-05-15T01:09:41Z Pixel_Outlaw: zacts, I mostly just make games and small tools in C++, Common Lisp, and Python. I've been programming for 9 years. 2015-05-15T01:10:11Z zacts: oh neato 2015-05-15T01:10:16Z zacts: I'm still much of a programming newbie 2015-05-15T01:10:19Z zacts: I'm more of a power user 2015-05-15T01:10:27Z zacts: and a slacker irc luser 2015-05-15T01:10:50Z zacts: but I'm hoping to make some racket and CL games soon 2015-05-15T01:11:19Z Pixel_Outlaw: I've grown to detest the complexity of the new OpenGL buffers. You can't put a triangle on the screen in under 200 lines of code anymore. 2015-05-15T01:11:38Z zacts: oh wow 2015-05-15T01:11:52Z badkins quit 2015-05-15T01:12:35Z Pixel_Outlaw: Well that is an exaggeration I suppose. But generally they made it more powerful in the name of making less friendly. 2015-05-15T01:12:45Z zacts: yeah 2015-05-15T01:13:00Z zacts: Pixel_Outlaw: so you are more of a common lisp hacker than scheme? :-) 2015-05-15T01:13:26Z Pixel_Outlaw: I've used Common Lisp more yes. But I've been playing with scheme daily. Just on breaks. Messing around. 2015-05-15T01:13:52Z zacts: what do you think of scheme? 2015-05-15T01:14:02Z Pixel_Outlaw: Hmm 2015-05-15T01:14:07Z Pixel_Outlaw: Let me type a few thoughs. 2015-05-15T01:14:10Z Pixel_Outlaw: *thoughts 2015-05-15T01:14:18Z haasn: Pixel_Outlaw: I like some of the abstractions on top of OpenGL. in gloss, for example, you can put a triangle on the screen like this: main = display (InWindow "triangle" (200, 200), (50, 50)) white $ polygon [(0,0), (1,0), (0.5,0.5)] 2015-05-15T01:14:49Z zacts: I would like a nicer interface on-top of ncurses 2015-05-15T01:15:02Z haasn: I have yet to see a nice interface on-top of ncurses, in any language 2015-05-15T01:15:15Z zacts: the ncurses API is so classically quirky 2015-05-15T01:15:29Z zacts: haasn: yeah, it's sad 2015-05-15T01:15:39Z zacts: I think there was an ncurses alternative somewhere that was better designed 2015-05-15T01:15:43Z zacts: but I can't remember the name of it 2015-05-15T01:15:47Z kephra: its much easier to put a nice interface on top of 3270 (ISPF or CICS) 2015-05-15T01:15:58Z zacts: what is 3270? 2015-05-15T01:16:06Z kephra: mainframe terminal 2015-05-15T01:16:15Z zacts: oh that sounds really fun 2015-05-15T01:16:22Z kephra: html is basically 3270 on steroids 2015-05-15T01:16:43Z zacts: oh hahaha 2015-05-15T01:16:44Z Pixel_Outlaw: First I greatly appreciate the simplicity of it. From a handful of primitives you grow something very powerful. Unfortunatly everyone is writing their own versions of high level functions over and over because the standard language could be a bit bigger. I find iteration more natural for some problems and cringe at the many many conses you end up doing but appreciate the tradition. I do like that there are some forbidden f 2015-05-15T01:16:44Z Pixel_Outlaw: unctions like set! and do. I do NOT like it when languages mandate that no mutation can take place. 2015-05-15T01:16:49Z zacts: so kind of like an xmlish config? 2015-05-15T01:16:55Z zacts: so you were making a point with that argument 2015-05-15T01:17:02Z zacts: yeah I hate XML configs with a passion 2015-05-15T01:17:18Z pjb quit (Remote host closed the connection) 2015-05-15T01:17:26Z zacts: S-XML is really the only realatively sane enough version of XML I kind of like 2015-05-15T01:18:05Z Pixel_Outlaw: there is a forms library built on ncurses 2015-05-15T01:18:08Z Pixel_Outlaw: I've not used it. 2015-05-15T01:19:26Z haasn: zacts: vty? 2015-05-15T01:19:38Z pjb joined #scheme 2015-05-15T01:19:45Z haasn: https://github.com/coreyoconnor/vty not very scheme related though 2015-05-15T01:19:54Z zacts: oh I don't think that was it 2015-05-15T01:20:00Z pjb is now known as Guest76013 2015-05-15T01:20:01Z zacts: let's see if I can remember it 2015-05-15T01:20:10Z Pixel_Outlaw: Now for CL. As a language I love it. Very consistant very well standardized. It has everything I'd want and possibly more. I like the number of functions available. It is a good language with many libraries that are slowly dying because they are made by single people who don't document and an IRC room that can be hostile towards questions. 2015-05-15T01:20:30Z Pixel_Outlaw: The fact that it will probably never get a new version is depressing however. 2015-05-15T01:20:45Z zacts: yeah, I'm starting with the scheme texts to get more of a theoretical / mathematical foundation 2015-05-15T01:20:50Z zacts: (with a smaller core language) 2015-05-15T01:21:02Z zacts: I'm learning CL too, for more of a practical tool 2015-05-15T01:21:13Z zacts: (mainly I'm referring to the texts to these languages, and not the languages themselves) 2015-05-15T01:21:20Z zacts: documentation and books 2015-05-15T01:21:36Z zacts: I don't have enough experience with either dialect/s to have much of an opinion myself yet 2015-05-15T01:21:41Z Pixel_Outlaw: If you know one learning the other is not terribly difficult. 2015-05-15T01:21:57Z zacts: termbox may have been it 2015-05-15T01:22:10Z kephra: i like smaller languages: C over C++, Scheme over Common Lisp, Lua and Forth have strong attractions 2015-05-15T01:22:16Z zacts: https://github.com/nsf/termbox 2015-05-15T01:22:22Z zacts: ^ it sounds more familiar to me 2015-05-15T01:22:46Z zacts: kephra: I do from an asthetic standpoint, but if I don't have to reimplement a library, often I find it's worth it... 2015-05-15T01:22:53Z zacts: depends on what my use case is 2015-05-15T01:22:56Z Guest76013 is now known as pjb` 2015-05-15T01:23:02Z zacts: but my main experience is with tools 2015-05-15T01:23:08Z pjb` is now known as pjb 2015-05-15T01:23:10Z zacts: I prefer emacs over vim for practicality 2015-05-15T01:23:17Z Pixel_Outlaw: zacts, one thing. CL does not mandate tail call optimization. Why they dropped it is very much against common sense given it is a lisp. 2015-05-15T01:23:23Z zacts: but I find the vim keybindings to be more efficient and quick 2015-05-15T01:23:29Z Pixel_Outlaw: sbcl does optimize though 2015-05-15T01:23:33Z zacts: I like the quote: "Make things simple, but not simpler" 2015-05-15T01:23:44Z zacts: sbcl is another attractive feature of CL to me 2015-05-15T01:23:48Z PinealGlandOptic joined #scheme 2015-05-15T01:23:49Z zacts: SBCL really is great 2015-05-15T01:23:53Z zacts: (for what it is) 2015-05-15T01:23:55Z Pixel_Outlaw: damned fast too 2015-05-15T01:24:13Z zacts: yeah 2015-05-15T01:24:21Z Pixel_Outlaw: No harm in learning both and using the tool that fits your hand best for the job. 2015-05-15T01:24:33Z zacts: but in a sense TCO is kind of like a syntactic sugar, there are other ways (even without loops) in CL afaik to accomplish the same feat) 2015-05-15T01:24:35Z haasn: kephra: In practice, when programming, my favorite languages tend to be complex languages that have many tools for the job 2015-05-15T01:24:44Z zacts: and I think Perl uses a similar way for recursive subroutines 2015-05-15T01:24:45Z haasn: kephra: when implementing a language, my favorite languages tend to be simple languages ;) 2015-05-15T01:25:02Z zacts: haasn: exactly the way I'm feeling right now 2015-05-15T01:25:21Z haasn: I think there's a strong correlation between “language complexity” and “program complexity”. The simpler the language, the harder it is to write complex programs 2015-05-15T01:25:25Z zacts: I'm starting with racket and scheme for the simplicity and elegance for learning, but I may move to CL for actual projects I want to do... 2015-05-15T01:25:30Z zacts: but we'll just have to see how it goes 2015-05-15T01:25:49Z zacts: but do keep in mind guix 2015-05-15T01:25:50Z aap_ joined #scheme 2015-05-15T01:25:53Z Pixel_Outlaw: I will say that I have to be very alert to think recursively it may get easier with time. 2015-05-15T01:25:53Z zacts: and guilemacs / guile-wm 2015-05-15T01:25:58Z sethalves quit (Quit: Leaving.) 2015-05-15T01:26:04Z haasn: For example, the simplest languages in existence (turing tarpits, esoteric languages; stuff like SK / brainfuck or rule 110) are the most fiendishly impossible to write real world programs in 2015-05-15T01:26:25Z zacts: that "but in a sense" sentence by me was meant to be a question 2015-05-15T01:26:27Z zacts: not a statement 2015-05-15T01:26:51Z zacts: haasn: I like pure lambda calculus, and the original lisp implementation 2015-05-15T01:27:02Z zacts: that's my definition of the most elegant and simple programming language 2015-05-15T01:27:10Z zacts: the lisp implemented in lisp 2015-05-15T01:27:18Z haasn: zacts: I think the most important quality in designing an elegant language is that it should be strongly layered; for example, the syntactical sugar layer should sit very neatly on top of a simpler core language, which itself should sit very neatly on top of a simpler execution model 2015-05-15T01:27:20Z zacts: kind of like the one paul grahm posted 2015-05-15T01:27:27Z haasn: So you can easily reason about programs and also easily implement components 2015-05-15T01:27:32Z zacts: yes 2015-05-15T01:27:43Z haasn: The exact antithesis of this would be something like PHP, which is a clusterfuck of parsing mixed in with logic and interpretation 2015-05-15T01:27:59Z zacts: I find it so interesting that the author of PCL and the Clojurescript book author both started with Perl as their first language 2015-05-15T01:28:02Z haasn: and a gigantic standard library built into the interpreter 2015-05-15T01:28:23Z zacts: Perl was my first 'real' language too, other than Visual Basic 2015-05-15T01:28:34Z zacts: heh php 2015-05-15T01:28:34Z Pixel_Outlaw: Scheme appears very elegant, then you look at the C code that generates it and all hell is breaking loose to make it behave so pleasant. 2015-05-15T01:28:40Z haasn: My first real language (that was not QBASIC) was PHP :p 2015-05-15T01:28:45Z zacts: Pixel_Outlaw: hehe yeah 2015-05-15T01:29:03Z zacts: haasn: yeah, well I'm just one step above php with perl, but not far above 2015-05-15T01:29:10Z aap quit (Ping timeout: 256 seconds) 2015-05-15T01:29:34Z zacts: but the joyeous moments of using the perl debugger and reading undocumented perl code at 2am at night, ah... 2015-05-15T01:29:36Z zacts: nothing like it 2015-05-15T01:29:53Z zacts: for n definition of joyeous 2015-05-15T01:30:14Z zacts: *joyous 2015-05-15T01:30:22Z Pixel_Outlaw: I'm supposed to be learning Perl now but I fear it might be giving me $brain_damage 2015-05-15T01:30:23Z zacts: (remind me to totally remove ispell) 2015-05-15T01:30:37Z zacts: man I'm becoming a newspeak luser 2015-05-15T01:30:49Z zacts: I used to be so great at spelling, until ispell 2015-05-15T01:31:03Z haasn: My childhood exposure to perl was fortunately fairly limited; the only thing I really remember is writing Ragnarok Online bots using OpenKore (which was written in perl) 2015-05-15T01:31:28Z zacts: it's a disgrace, I'm becoming another ignorant citizen from spelling checkers 2015-05-15T01:31:29Z Pixel_Outlaw: What amazes me about LISP is that they figured out early that functions could be first class and it is OK to store unlike things in a list. 2015-05-15T01:31:51Z zacts: haasn: heh, that's neat 2015-05-15T01:31:55Z zacts: nostalgia is great 2015-05-15T01:32:01Z zacts: sometimes 2015-05-15T01:32:11Z zacts: Pixel_Outlaw: yes 2015-05-15T01:32:18Z haasn: Pixel_Outlaw: heterogeneous lists is something that scares me deeply. I'm not actually a Lisp or Scheme programmer, I know very little about these languages, but it just strikes me as something that doesn't make sense on a fundamental level 2015-05-15T01:32:19Z zacts: I can't wait to get into kurt goedel's theorems 2015-05-15T01:32:28Z zacts: and the pure lambda calculus 2015-05-15T01:32:38Z haasn: If all you know about something inside a list is that it's inside a list, what can you possible do with it? 2015-05-15T01:32:47Z frkout joined #scheme 2015-05-15T01:32:47Z Pixel_Outlaw: haasn, there are checks you can preform on data types to ensure safety 2015-05-15T01:32:55Z jlongster joined #scheme 2015-05-15T01:32:59Z zacts: I think Haskell is type heavy 2015-05-15T01:33:06Z zacts: static types 2015-05-15T01:33:11Z zacts: while scheme is more dynamic, afaik 2015-05-15T01:33:26Z Pixel_Outlaw: It is sometimes not worth making an entire class just to pass a collection of data 2015-05-15T01:33:29Z zacts: I personally have grown to love scheme s-expr syntax 2015-05-15T01:33:51Z Pixel_Outlaw: Now if you want classes in your Scheme you can actually make them from scheme using closures. 2015-05-15T01:33:52Z zacts: oh, interesting to note I read in a scheme book that alonzo church was going to implement Lisp in a more alogol style syntax 2015-05-15T01:33:53Z haasn: I guess dynamic typing makes sense in its own right; you're trading a bit of safety for a bit of convenience 2015-05-15T01:34:00Z zacts: but the parentheses prevailed by the community 2015-05-15T01:34:04Z haasn: It's basically like having a big universal type and first-class pattern matching that is directed on types 2015-05-15T01:34:26Z haasn: Giving up safety is just something that unsettles me no matter what the context is :p 2015-05-15T01:34:38Z haasn: All of these dynamic scripting languages cause bugs in my daily life :( 2015-05-15T01:34:40Z zacts: oops 2015-05-15T01:34:42Z zacts: not alonzo church 2015-05-15T01:34:56Z zacts: john mccarthy 2015-05-15T01:35:11Z zacts: sorry I get them confused in my mind sometimes, memory dyslexia 2015-05-15T01:35:24Z zacts: I really loved doing perl one-liners and regex 2015-05-15T01:35:31Z haasn: zacts: I heard somewhere that JavaScript was originally going to be based on Lisp syntax but pressure forced the creator to give it C-style braces and terminators, which is why it's so ugly and unusable these days :p 2015-05-15T01:35:34Z zacts: that was and still is my favorite use-case for perl 2015-05-15T01:35:39Z zacts: I love love regex 2015-05-15T01:35:42Z zacts: not for programs 2015-05-15T01:35:44Z haasn: I hate hate hate regex :) 2015-05-15T01:35:50Z zacts: but for purely interactive tools 2015-05-15T01:35:58Z zacts: mainly because they are fun to type 2015-05-15T01:36:03Z Pixel_Outlaw: You can get perl style regex in most languages now. 2015-05-15T01:36:08Z haasn: Regex is the turing tarpit of parsing languages 2015-05-15T01:36:11Z zacts: haasn: but for real / serious projects I hate hate hate regex also 2015-05-15T01:36:23Z zacts: they are unneeded and you should use real parsers, and real solutions 2015-05-15T01:36:33Z Pixel_Outlaw: haasn, don't forget the moment when everyone gets the bright idea to parse XML with regex... 2015-05-15T01:36:35Z haasn: Sure, it's equivalent to any other method for specifying regular (or, with PCRE extensions, context free or whatever) languages - but it's also a pain to write anything nontrivial in 2015-05-15T01:36:37Z zacts: oh do you want to see the largest in production regex I've ever seen? 2015-05-15T01:36:45Z zacts: it's hilarious 2015-05-15T01:37:07Z zacts: are there any pcre wrappers for any scheme implementations? 2015-05-15T01:37:17Z haasn: Go show me an RFC-compliant “valid e-mail address” parser, then we'll talk :) 2015-05-15T01:37:25Z zacts: https://api.metacpan.org/source/DCONWAY/Regexp-Debugger-0.001020/lib/Regexp/Debugger.pm 2015-05-15T01:37:26Z rudybot: http://eensy.teensy.info/a34fYOOfqM 2015-05-15T01:37:31Z Pixel_Outlaw: I've seen code for that spanning pages... 2015-05-15T01:37:31Z vraid: zacts: there is a racket mode with static typing 2015-05-15T01:37:33Z Pixel_Outlaw: terrible stuff 2015-05-15T01:37:37Z zacts: ^ This contains the longest working regex in production code, I think ever 2015-05-15T01:37:40Z vraid: not as powerful as haskell's type system, but still very useful 2015-05-15T01:37:59Z zacts: vraid: yes, I want to try it out sometime, I've heard about typed racket 2015-05-15T01:38:04Z Pixel_Outlaw: I use regex a lot when editing text in emacs... 2015-05-15T01:38:11Z haasn: Has anybody ever experimented with statically typing lisp using a dependent type system? 2015-05-15T01:38:19Z zacts: my list of languages to learn is: scheme --> Common Lisp --> Haskell --> C (purely for UNIX programming) 2015-05-15T01:38:20Z vraid: zacts: i use it a lot 2015-05-15T01:38:26Z haasn: Sounds like the ultimate solution for homoiconity: data, code and types are all the same 2015-05-15T01:38:28Z Pixel_Outlaw: They would be burned alive for heresy 2015-05-15T01:38:33Z zacts: Pixel_Outlaw: I love the regex debugger mode 2015-05-15T01:38:37Z zacts: I forget what it's called 2015-05-15T01:38:44Z Pixel_Outlaw: I'd toss a match their way for strong typing. 2015-05-15T01:39:02Z zacts: and the emacs function to change the regex to english words 2015-05-15T01:39:14Z zacts: vraid: oh neat 2015-05-15T01:39:27Z Pixel_Outlaw: I use regex to trim things off the end of log files... 2015-05-15T01:39:29Z zacts: also erlang based languages seem interesting to me, but I'm sticking with haskell for learning 2015-05-15T01:39:36Z zacts: I hear haskell is more general purpose than erlang 2015-05-15T01:39:40Z haasn: (Perhaps similarly, has anybody ever experimented with dialects of lisp with guaranteed termination?) 2015-05-15T01:39:55Z zacts: Pixel_Outlaw: I like gnu sed 2015-05-15T01:40:04Z zacts: but the doc for it sucks 2015-05-15T01:40:06Z Pixel_Outlaw: I think recursion prevents guaranteed termination. 2015-05-15T01:40:10Z zacts: there is a book I got that is Ok for sed 2015-05-15T01:40:23Z haasn: zacts: Erlang is a bit dated and domain-specific, Haskell is more general purpose but it doesn't have any really good libraries that replicate Erlang's particular strengths, at least nothing stable enough for production use 2015-05-15T01:40:36Z zacts: https://github.com/scheme/scsh 2015-05-15T01:40:43Z zacts: ^ I may try tinkering with scsh 2015-05-15T01:40:53Z haasn: Nokia is interested in developing either a modern Erlang or a modern Erlang-like framework for an existing language like Haskell, incidentally 2015-05-15T01:41:02Z zacts: haasn: yeah, thus haskell for my education 2015-05-15T01:41:22Z zacts: erlang was made initially for telephony 2015-05-15T01:41:40Z Pixel_Outlaw: Haskell is sure popular all of a sudden. Same with Perl. 2015-05-15T01:41:41Z zacts: I think much of europe's telephony systems use Erlang at the core of much of the logic of it 2015-05-15T01:41:54Z vraid: whatsapp also uses erlang 2015-05-15T01:41:56Z Pixel_Outlaw: I think Functional is the new flavor of the week programming style. 2015-05-15T01:42:02Z zacts: Pixel_Outlaw: well I want to learn Haskell for the ideas behind it, and to see 'what all the fuss is all about' 2015-05-15T01:42:09Z zacts: Pixel_Outlaw: hehe yeah 2015-05-15T01:42:13Z Pixel_Outlaw: Managers were probably told it would fix all their shit production code and they bought it. 2015-05-15T01:42:30Z zacts: Pixel_Outlaw: I sell magic bullets quite effectively, $1 a bullett 2015-05-15T01:42:42Z Pixel_Outlaw: I'd be great in corporate marketing. 2015-05-15T01:42:46Z haasn: zacts: I would strongly recommend Haskell as a learning experience, if you're never done anything in the direction of strongly/statically typed, declarative/functional programming before, it would be a good foundation on which to base most other languages that share similar features (eg. all ML types, F#, Erlang etc.) 2015-05-15T01:42:47Z Pixel_Outlaw: I know all the buzzwords. 2015-05-15T01:43:17Z zacts: Pixel_Outlaw: I need my busy bee!!! 2015-05-15T01:43:27Z itissid joined #scheme 2015-05-15T01:43:32Z haasn: zacts: Yes, the majority of EU telephony is indeed dominated by Erlang - or rather, the ones that chose to write their backends in Erlang are the ones that won the market share ;) 2015-05-15T01:43:36Z zacts: haasn: ah neat, yeah that seems cool 2015-05-15T01:43:40Z vraid: haasn: erlang isn't statically typed though 2015-05-15T01:43:45Z ronh-: for what it is worth "if it compiles it probably works" is more true for haskell than for any of the dozen programming languages I used 2015-05-15T01:44:01Z Pixel_Outlaw: C++ has ruined static typing for me. 2015-05-15T01:44:09Z Pixel_Outlaw: Should be called Template++ now. 2015-05-15T01:44:12Z zacts: erlang is the only language that can claim to be an ewok rat language 2015-05-15T01:44:15Z Pixel_Outlaw: Just to get around the quagmire of bad ideas. 2015-05-15T01:44:17Z haasn: C++'s static typing is a gigantic mess 2015-05-15T01:44:28Z haasn: Case in point: C++ is an undecidable language 2015-05-15T01:44:39Z haasn: It's literally impossible to write a conformant C++ compiler 2015-05-15T01:44:41Z zacts: I'm more interested in C than C++ 2015-05-15T01:44:47Z zacts: mainly for UNIX / POSIX programming and syscalls 2015-05-15T01:44:54Z zacts: and for some kernel OS hacking 2015-05-15T01:45:02Z zacts: (I'm interested in kernels eventually) 2015-05-15T01:45:14Z Pixel_Outlaw: haasn, when you have "undefined" as part of the standard how do you choose what version of "undefined" is best? 2015-05-15T01:45:15Z zacts: C++ I don't currently see any use for 2015-05-15T01:45:19Z zacts: for myself 2015-05-15T01:45:30Z haasn: zacts: you sound like me from a few years ago! C is indeed a great learning experience, perhaps if only to see all of the limitations it has 2015-05-15T01:45:38Z Pixel_Outlaw: I'll second C. 2015-05-15T01:45:40Z zacts: :-D 2015-05-15T01:45:46Z haasn: But mostly the best thing about learning C is that it lets you fix bugs in all of the badly written C programs you encounter day to day 2015-05-15T01:45:56Z zacts: yeah, it can train your mind to think about bugs 2015-05-15T01:46:03Z zacts: rather than a language that catches them all for you 2015-05-15T01:46:10Z zacts: much of programming is also purely psychological 2015-05-15T01:46:10Z Pixel_Outlaw: Lot of Linux stuff is still C. So if you are going to wrap C libraries you'll need to know C. 2015-05-15T01:46:21Z zacts: so perhaps the training of finding bugs is good for your thinking 2015-05-15T01:46:28Z zacts: Pixel_Outlaw: yes 2015-05-15T01:46:34Z Pixel_Outlaw: C is also great for making small electronics projects. 2015-05-15T01:46:58Z zacts: I've heard forth is fun for tiny tiny embedded IoT *BUZZWORD ALERT IOT BUZZWORD!!!* devices 2015-05-15T01:46:59Z Pixel_Outlaw: If you need a small binary blob that is also fast use C. 2015-05-15T01:47:07Z haasn: Some high-performance stuff pretty much requires understanding C, for example if you want to interface with libavcodec or write your own video player or something, you pretty much have to know enough C to at least deal with the FFI calls 2015-05-15T01:47:26Z zacts: which is a good language for learning about algorithmic design, and applications of algorithms? 2015-05-15T01:47:32Z haasn: Ruby might be a modern replacement for something like this; it's on my list of languages that I really want to learn 2015-05-15T01:47:36Z zacts: Is C a good choice for this kind of thing? 2015-05-15T01:47:38Z Pixel_Outlaw: Yes. 2015-05-15T01:47:42Z Pixel_Outlaw: Pointers. 2015-05-15T01:47:47Z zacts: ruby has the pootr book 2015-05-15T01:47:52Z zacts: poodr 2015-05-15T01:47:54Z zacts: sorry 2015-05-15T01:47:55Z zacts: ^ 2015-05-15T01:47:56Z haasn: Sorry, did I say ruby? I meant rust! 2015-05-15T01:48:03Z haasn: Ruby is *not* a replacement for low level programming ;) 2015-05-15T01:48:04Z zacts: I hear poodr is a great book 2015-05-15T01:48:07Z zacts: oh 2015-05-15T01:48:08Z zacts: yeah 2015-05-15T01:48:16Z zacts: Rust sounds really intriguing to me 2015-05-15T01:48:22Z zacts: but I'm sticking with C first 2015-05-15T01:48:31Z Pixel_Outlaw: Rust is like C++ with training wheels that supposedly prevent you from tipping over. 2015-05-15T01:48:34Z zacts: but I think Rust would be a better choice for me over C++ 2015-05-15T01:48:38Z haasn: Basically rust solves some of C's safety, purity and memory management issues 2015-05-15T01:48:56Z zacts: so C will teach me why C sucks, and how to think about preventing bugs (trains my thinking psychologically) 2015-05-15T01:49:04Z Pixel_Outlaw: C does not suck. 2015-05-15T01:49:05Z zacts: then Rust may be my favorite C-language of choice 2015-05-15T01:49:12Z zacts: Pixel_Outlaw: all languages suck 2015-05-15T01:49:15Z zacts: just some suck less 2015-05-15T01:49:16Z ronh-: C sucks for application programming 2015-05-15T01:49:39Z zacts: even the most hardcore C programmers would recommend against C for many applications level programming 2015-05-15T01:49:45Z haasn: C brings me back to my “language complexity vs program complexity” thing. Writing complex programs in C gets difficult fast because the level of abstraction you can introduce in C is naturally limited 2015-05-15T01:50:10Z zacts: I think torvalds may be the last hardcore C programmer, (which he used for git), but even he has recommended higher level languages, on the mailing lists 2015-05-15T01:50:25Z haasn: That's one of C's most frustrating real world limitations. I have to write many lines of boilerplate even in modern C, compared to something like Haskell where the strong polymorphism, abstraction and overloading mechanisms make life easy 2015-05-15T01:50:39Z Pixel_Outlaw: zacts, whatever you do, don't try to write all languages like they are the same. You won't learn anything and will come away with unreasonable assumptions. Pick a project for each language that is suited to it. 2015-05-15T01:50:51Z zacts: Pixel_Outlaw: ah ok 2015-05-15T01:50:54Z zacts: that sounds like good advice 2015-05-15T01:51:00Z Pixel_Outlaw: And don't learn 5 languages at the same time or you'll master none of them. 2015-05-15T01:51:04Z zacts: oh I'm not 2015-05-15T01:51:09Z zacts: I'm doing purely racket right now 2015-05-15T01:51:13Z zacts: and then common lisp 2015-05-15T01:51:15Z zacts: after 2015-05-15T01:51:20Z zacts: and then back to scheme for SICP 2015-05-15T01:51:41Z zacts: Pixel_Outlaw: although, I learned this the hard way 2015-05-15T01:51:52Z zacts: I've before tried to learn several languages at once 2015-05-15T01:51:58Z zacts: and failed miserably 2015-05-15T01:52:03Z Pixel_Outlaw: :') 2015-05-15T01:52:07Z Shadox joined #scheme 2015-05-15T01:52:15Z haasn: The main problem with learning several languages at once is also a main problem with learning one language at once 2015-05-15T01:52:22Z haasn: If you don't write projects in a language, you will not learn it 2015-05-15T01:52:22Z Pixel_Outlaw: Yes... 2015-05-15T01:52:30Z stepnem quit (Ping timeout: 276 seconds) 2015-05-15T01:52:40Z annodomini joined #scheme 2015-05-15T01:52:45Z zacts: well, one reason I'm starting with scheme and racket now (lisps), is that they support multiple ways of programming and solving problems 2015-05-15T01:52:50Z zacts: whereas java is a single way 2015-05-15T01:52:52Z vraid: C is great if you value the computer's resources more than your own 2015-05-15T01:52:56Z zacts: haskell is pretty much another way 2015-05-15T01:53:01Z zacts: and C is another way 2015-05-15T01:53:14Z zacts: but scheme and CL are more multi-paradigm so to speak, or so it initially seems to me 2015-05-15T01:53:28Z haasn: Nonsense, Haskell can become any language you want it to ;-) https://github.com/mmirman/ImperativeHaskell/blob/master/Main.hs 2015-05-15T01:53:43Z zacts: haasn: ah, pardon my naivety 2015-05-15T01:54:34Z zacts: there is a language that I hate, but I wonder about it 2015-05-15T01:54:37Z zacts: Mozart/Oz 2015-05-15T01:54:48Z haasn: (I was not entirely serious - while this is an example of that you *can* technically turn Haskell into something resembling a typical imperative program in a language like Go, or into something equivalent to BASIC, it would be pretty frowned upon and considered extremely bad style in practice :p) 2015-05-15T01:54:52Z zacts: http://mozart.github.io/ 2015-05-15T01:55:43Z zacts: http://mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming 2015-05-15T01:55:43Z rudybot: http://eensy.teensy.info/BNwxhkLdPd 2015-05-15T01:55:46Z sethalves joined #scheme 2015-05-15T01:55:50Z zacts: ^ this is the book that uses Mozart / Oz 2015-05-15T01:55:54Z zacts: I do have this book 2015-05-15T01:55:58Z vraid: haasn: on the topic, racket actually does allow the reader to be switched out 2015-05-15T01:56:13Z zacts: I don't know if any of you would have opinions of this book? 2015-05-15T01:56:20Z haasn: zacts: http://augustss.blogspot.se/2009/02/more-basic-not-that-anybody-should-care.html 2015-05-15T01:56:20Z rudybot: http://eensy.teensy.info/CEFwusMU41 2015-05-15T01:56:32Z haasn: (BASIC in Haskell) 2015-05-15T01:56:44Z zacts: hah 2015-05-15T01:56:46Z zacts: nice 2015-05-15T01:56:58Z zacts: is it implemented as a DSL or something? 2015-05-15T01:57:03Z zacts: or is the core haskell hacked up? 2015-05-15T01:57:16Z enitiz_ joined #scheme 2015-05-15T01:57:23Z haasn: It's implemented using an extreme combination of various hacks. But yes, it's entirely implemented as a Haskell library - no modifications to the implementation or core language 2015-05-15T01:58:15Z joneshf-laptop quit (Ping timeout: 250 seconds) 2015-05-15T01:58:21Z zacts: ah ok 2015-05-15T01:58:26Z zacts: so that's cheating haasn 2015-05-15T01:58:30Z zacts: (kidding) 2015-05-15T01:58:36Z haasn: zacts: for example “10 PRINT "foo"” is implemented by taking advantage of the fact that numeric literals are polymorphic in haskell (eg. in the real world, this is used so that 10 could refer to either an Int or a Double or a Complex or whatever), and he implements his own “numeric types” that take various BASIC commands as parameters and embed them into his data type 2015-05-15T01:58:47Z zacts: cheats 2015-05-15T01:58:54Z zacts: talk to the hand haasn 2015-05-15T01:59:04Z zacts: loser loser double loser whatever batman forever 2015-05-15T01:59:05Z Intensity quit (Ping timeout: 258 seconds) 2015-05-15T01:59:10Z zacts: kiddings 2015-05-15T01:59:59Z Pixel_Outlaw: zacts, one other approach is to get a list of functions for the core language and then try to pick out ones that are unfamiliar. 2015-05-15T02:00:04Z haasn: “250 PRINT X*X;" You won!"” the ; here actually separates multiple lines, it only works because string literals *also* are polymorphic in Haskell, so he uses his own “string type” that appends it to the previous command :p 2015-05-15T02:00:32Z zacts: that's cool though 2015-05-15T02:01:35Z haasn: Anyway, it's quite nasty, but showcases some of what Haskell *can* actually be seriously used for: implementing your own programming idioms as EDSLs (although normally you would use Haskell syntax for them, and *not* hacked syntax like this) 2015-05-15T02:01:47Z haasn: for example, there's an implementation of Prolog's semantics as a Haskell EDSL 2015-05-15T02:02:06Z zacts: ok 2015-05-15T02:02:11Z haasn: And an implementation of Erlang's semantics as a Haskell library/EDSL 2015-05-15T02:02:21Z pjb: Still sounds like a dirty trick, compared to CL reader macros. 2015-05-15T02:02:51Z zacts: ok let me head out and catch my bus... brb (15 - 20 min) 2015-05-15T02:02:52Z Pixel_Outlaw: haasn, I do have one example where heterogeneous collections are nice. Suppose you are making a menu of options. Now lets say that each option is a variable and a collection of values for each variable. In this way you can have a collection of different kinds of variables to set to different kinds of values. 2015-05-15T02:03:56Z haasn: Pixel_Outlaw: Right, but the interface is homogeneous - for each value, you just have “some variable” together with “some collection of values for that variable” - from the perspective of the component going through the list, it still treats everything in the same way 2015-05-15T02:05:04Z Pixel_Outlaw: You can use a single list of different variables to be set so you can select the one you wish to set easily. 2015-05-15T02:05:15Z Pixel_Outlaw: It is a generic pattern, you don't need a class for it. 2015-05-15T02:06:09Z Pixel_Outlaw: Meaning you can make menus dynamically. 2015-05-15T02:07:53Z davexunit quit (Ping timeout: 246 seconds) 2015-05-15T02:08:38Z haasn: In Haskell there's a common anti-pattern related to stuff like this; in particular, we also have the capability to embed an arbitrary herogeneous type. For example, a menu like that may be something like a list of options (string + value pairs) together with a function for performing actions on those values (like a callback to be used when the user changes it), for example encoded as “OptionEntry = exists 2015-05-15T02:08:41Z haasn: t. (t -> Action, [(String, t)])” <- if you're not familiar with Haskell syntax, that's saying “OptionEntry is, for some arbitrary ‘t’, a pair of a function (t -> Action) and a list of (String, t) pairs”; which sounds like the “pro-heterogeneous list” case, since you can have a list of OptionEntry’s even though all of the underlying ‘t’ types may be different 2015-05-15T02:08:55Z ArneBab_ joined #scheme 2015-05-15T02:09:23Z haasn: This is considered an anti-pattern because for any sort of construction like this, you can achieve an equivalent construction by “flattening” the ‘t’ in a way that doesn't require the opaque type, for example: OptionEntry = [(String, Action)] 2015-05-15T02:09:43Z haasn: Instead of storing some value + a callback on that value, just store the (opaque) action to be invoked for that particular option in the first place 2015-05-15T02:10:14Z haasn: And I think this is the right approach to use when programming systems like these - realize that from the perspective of the component consuming the option list (eg. the UI system or whatever), it can't possibly matter what the specific values involved are 2015-05-15T02:10:26Z joneshf-laptop joined #scheme 2015-05-15T02:10:28Z haasn: What only matters to that component is what it actually needs to do, eg. run this or that action 2015-05-15T02:10:36Z haasn: And that is something that is again homogeneous for all elements 2015-05-15T02:11:41Z Pixel_Outlaw: When your language lacks classes it is OK to have heterogeneous containers. Yes, you must do what is right for the language you are working in. 2015-05-15T02:12:08Z ArneBab quit (Ping timeout: 258 seconds) 2015-05-15T02:12:40Z haasn: The most profound limitations that I've seen in practice where this is very relevant is when your language lacks first-class functions, first-class effects or first-class disjoint sums 2015-05-15T02:13:06Z haasn: I agree that it's often necessary to do heterogeneous type-based overloading whenever stuff like disjoint sums are not available, but I think this is more of a hack than a good language design 2015-05-15T02:13:18Z Pixel_Outlaw: Fair enough. 2015-05-15T02:13:24Z blackwolf quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-05-15T02:13:26Z haasn: Sorry, I guess I just wanted to rant :p 2015-05-15T02:13:40Z Pixel_Outlaw: Healthy discussion is good. Keeps us thinking. 2015-05-15T02:14:10Z Pixel_Outlaw: You can bet that if I did something like that in production code for a businesss I'd have a comment line telling how and why the function is as it is. 2015-05-15T02:14:18Z haasn: Anyway, I guess the important thing here to realize is that the more you're into static typing, the more you're into homogeneous lists 2015-05-15T02:14:26Z haasn: And the more you're into dynamic typing, the more you're into heterogeneous lists 2015-05-15T02:14:36Z Pixel_Outlaw: I'd agree with that. :) 2015-05-15T02:14:55Z haasn: But at this point they're just different names, because the REAL difference here is that static typing is based on having explicit disjoint sums, eg. data Message = DoThis String | DoThat Int | SomethingElse 2015-05-15T02:15:48Z haasn: Which, when combined with pattern matching, is really not that different from heterogeneous lists when combined with some sort of mechanism for discriminating based on type 2015-05-15T02:16:40Z haasn: The big difference in practice is that one approach is based on having one big universe for all possible types/values/things (absolute homoiconity), and the other approach is based on having very rigid data where things can only exist within a small, discrete set of possibilities 2015-05-15T02:17:00Z haasn: I think the former just leads to bugs :-) 2015-05-15T02:17:20Z haasn: But it can often be convenient 2015-05-15T02:17:24Z Pixel_Outlaw: It requires careful code commentary. 2015-05-15T02:17:26Z haasn: Convenience vs safety, as usual 2015-05-15T02:17:31Z haasn: Nothing new here :) 2015-05-15T02:17:44Z Pixel_Outlaw: People really need to write comments for "the next guy". 2015-05-15T02:18:07Z Pixel_Outlaw: Especially when the language is highly expressive and can do "tricks". 2015-05-15T02:18:36Z haasn: Although they're both convenient in different ways, I think. Dynamic languages tend to be more convenient when writing but less convenient when debugging, refactoring or error testing 2015-05-15T02:18:48Z haasn: Static languages tend to be less convenient when writing but more convenient when debugging, refactoring or error testing :p 2015-05-15T02:19:24Z Pixel_Outlaw: Well I can say that Common Lisp is quite nice because often the implimentation will halt and you can examine what was passed in while the program is still running. 2015-05-15T02:19:41Z Pixel_Outlaw: So an error simply stops so you can investigate and possibly continue with a modified value. 2015-05-15T02:20:08Z Pixel_Outlaw: It *really* depends on how the interpreter halts on error. 2015-05-15T02:20:45Z haasn: That might be an advantage of dynamic languages - mutating their runtime state is non-invasive; whereas with a strong static language like Haskell you can't just swap out some things for different things in memory because all of the logic is already compiled down to assembly that expects things to contain precisely that type of value :p 2015-05-15T02:20:51Z Pixel_Outlaw: Now Clojure just blows up and kills everyone in the room on error. 2015-05-15T02:21:04Z Pixel_Outlaw: >:) 2015-05-15T02:21:13Z Pixel_Outlaw: Same with Python 2015-05-15T02:23:07Z Pixel_Outlaw: haasn, If you're curious you might try Steel Bank Common Lisp to see how they handle an error. Might not be worth it, I think you get the idea. You are right though. Languages that just blow up on error are not as transparent. 2015-05-15T02:23:09Z vraid quit (Ping timeout: 256 seconds) 2015-05-15T02:23:38Z Pixel_Outlaw: Then there are the C++ template errors that go on for eternity... 2015-05-15T02:24:27Z haasn: Quite literally. I mentioned C++'s template system being turing complete and thus undecidable? :-) 2015-05-15T02:24:52Z haasn: You can write a C++ template that will just loop the compiler! 2015-05-15T02:24:57Z Pixel_Outlaw: ugh... 2015-05-15T02:25:15Z haasn: (Although practical implementations will just give up if they go on for too long) 2015-05-15T02:34:11Z Pixel_Outlaw: haasn are you on Linux by chance? 2015-05-15T02:34:57Z haasn: Pixel_Outlaw: yes 2015-05-15T02:35:24Z annodomini quit (Quit: annodomini) 2015-05-15T02:35:50Z Pixel_Outlaw: I'm setting up a small server for a small community of programmers. What Haskell do I install for them? 2015-05-15T02:36:45Z Pixel_Outlaw: Does it just have a single vendor? 2015-05-15T02:36:50Z Pixel_Outlaw: I guess is what I'm asking. 2015-05-15T02:37:20Z zacts: back 2015-05-15T02:37:33Z Pixel_Outlaw: Done learning C already? 2015-05-15T02:37:37Z Pixel_Outlaw: :D 2015-05-15T02:37:51Z Pixel_Outlaw: Oh forgot, you are Racketing. Carry on. 2015-05-15T02:38:07Z zacts: Pixel_Outlaw: I've learned it so well, I reimplemented a working better Clang from scratch 2015-05-15T02:38:18Z zacts: but yeah, racket 2015-05-15T02:40:15Z pnpuff joined #scheme 2015-05-15T02:40:35Z haasn: Pixel_Outlaw: There is only one relevant implementation of Haskell and it is GHC 2015-05-15T02:40:42Z haasn: And the rule is to use the latest stable version that you can get your hands on :) 2015-05-15T02:40:48Z Pixel_Outlaw: I have the feeling this itallian roast (pronounced /burnt/) coffee is going to ruin my innards. 2015-05-15T02:40:59Z Pixel_Outlaw: haasn, thanks 2015-05-15T02:40:59Z haasn: (Right now, that is 7.10 if you can, otherwise 7.8) 2015-05-15T02:41:06Z zacts: Pixel_Outlaw: I just had a fine hot chocolate 2015-05-15T02:41:15Z haasn: Pixel_Outlaw: what distro? 2015-05-15T02:41:17Z zacts: but my tummy is a bit upset, I think I need to tone down my sugar intake 2015-05-15T02:41:25Z Pixel_Outlaw: Well it is on a Pi so Raspbian 2015-05-15T02:41:40Z haasn: Not sure how well GHC is going to run on there 2015-05-15T02:41:41Z zacts: haasn: hey someone implemented Perl6 in Haskell 2015-05-15T02:41:45Z zacts: (although, they didn't use GHC) 2015-05-15T02:42:01Z zacts: Pixel_Outlaw: let me see if there is a GHC build for my beaglebone 2015-05-15T02:42:08Z haasn: Pixel_Outlaw: Haskell compilation can be sufficiently nontrivial: GHC has its own native code gen (although it can go through LLVM), it does cross-module inlining and optimization on large scales, etc. 2015-05-15T02:42:09Z Pixel_Outlaw: Ah ok. 2015-05-15T02:42:09Z zacts: if so the rpi2 will for sure have a working GHC 2015-05-15T02:42:11Z haasn: It can be quite memory hungry 2015-05-15T02:42:27Z zacts: I build my arm code in linaro-qemu / kvm 2015-05-15T02:42:35Z zacts: and then transfer it over to my actual device 2015-05-15T02:42:36Z haasn: And depending on the platform, anything that isn't the canonical x86 Linux/Windows/OS X will most likely have various features missing (eg. profiling, dynamic interpretation, template haskell, etc.) 2015-05-15T02:42:38Z itissid quit (Quit: Leaving.) 2015-05-15T02:42:44Z zacts: haasn: ah ok 2015-05-15T02:42:54Z zacts: I'll also ask #ghc about issues, and the mailing lists / google 2015-05-15T02:42:56Z haasn: Pixel_Outlaw: So I would be a bit wary about placing GHC on a Raspberry Pi :) 2015-05-15T02:43:04Z Pixel_Outlaw: Understandable. 2015-05-15T02:43:12Z Pixel_Outlaw: They just get what they get until a patch comes out. 2015-05-15T02:43:14Z Pixel_Outlaw: :) 2015-05-15T02:43:17Z zacts: haasn: how about ghc in qemu x86 on top of rpi2 2015-05-15T02:43:18Z zacts: ? 2015-05-15T02:43:20Z zacts: Hehe 2015-05-15T02:43:25Z badkins joined #scheme 2015-05-15T02:43:26Z haasn: zacts: And how much memory does this machine have again? ;) 2015-05-15T02:43:31Z zacts: I've ran x86 qemu on top of powerpc 2015-05-15T02:43:39Z Pixel_Outlaw: This is a first gen, we have an entire 200 mb after GPU allocation. 2015-05-15T02:43:41Z zacts: haasn: beaglebone 512MB rpi2 1G 2015-05-15T02:43:43Z Pixel_Outlaw: plenty to swim around 2015-05-15T02:44:00Z zacts: I'm going to try to get an rpi2 kit soon 2015-05-15T02:44:05Z haasn: Pixel_Outlaw: Bootstrapping GHC is also difficult, because GHC is the only thing that can compile GHC 2015-05-15T02:44:06Z zacts: so 1G will be my new specs 2015-05-15T02:44:11Z Pixel_Outlaw: I actually had an 8 person programming class all writing python on my first gen Pi. :) 2015-05-15T02:44:16Z zacts: as I'll likely replace my bbb server with rpi2 2015-05-15T02:44:21Z haasn: Pixel_Outlaw: And I don't think 200 MB is enough to compile GHC using GHC 2015-05-15T02:44:31Z Pixel_Outlaw: :O 2015-05-15T02:44:35Z zacts: haasn: I can compile GHC within kvm-arm 2015-05-15T02:44:37Z haasn: So you would likely have to set up some sort of ARM cross-compilation environment if you're serious about this 2015-05-15T02:44:42Z zacts: running an arm distro 2015-05-15T02:44:49Z zacts: and give it much more ram and speed 2015-05-15T02:44:57Z haasn: yes that could work 2015-05-15T02:44:59Z zacts: then scp the binaries over to the actual device 2015-05-15T02:45:01Z zacts: and test there 2015-05-15T02:45:18Z zacts: what are the minimum recommended running requirements for GHC? 2015-05-15T02:45:20Z itissid joined #scheme 2015-05-15T02:45:22Z zacts: ram wise 2015-05-15T02:45:35Z haasn: zacts: Depends hugely on the program complexity. For simple stuff you can get by on a few megabytes 2015-05-15T02:45:41Z Pixel_Outlaw: haasn, Do most people just use a normal text editor or is there a preferred way to write source? 2015-05-15T02:45:59Z Pixel_Outlaw: I've got Emacs and Vim 2015-05-15T02:46:07Z haasn: Pixel_Outlaw: Most people use vim or emacs, even in the Haskell community. There is at least one specialised-for-Haskell IDE but nobody uses it 2015-05-15T02:46:09Z zacts: ok 2015-05-15T02:46:16Z Pixel_Outlaw: Good. 2015-05-15T02:46:23Z haasn: Pixel_Outlaw: the best IDE, as usual, is vim+emacs + (perhaps) a plugin or few 2015-05-15T02:46:24Z Pixel_Outlaw: I also have Nano on here for children. 2015-05-15T02:46:27Z zacts: haasn: are there any general recommendations or ranges? 2015-05-15T02:46:29Z haasn: eg. there are haskell modes for both 2015-05-15T02:46:41Z zacts: or rules of thumb so to speak 2015-05-15T02:47:10Z zacts: I'm testing to see if debian provides ghc for armhf 2015-05-15T02:47:34Z zacts: haasn: is there a quick ghc testing suite, so I can test running ghc on my board? 2015-05-15T02:47:45Z zacts: because the debian ghc package exists and is almost installed 2015-05-15T02:47:54Z haasn: zacts: Well, it can help to look at worst case scenarios. One of the worst case scenarios is a wrapper for OpenGL that generates a lot of code during compile time (it's generated automatically from the OpenGL registry), which can take a few gigabytes because it's not very well split up 2015-05-15T02:48:02Z haasn: So for that you should have at least 4 GB. But that's also a worse case scenario 2015-05-15T02:48:10Z zacts: oh I see 2015-05-15T02:48:54Z zacts: ok almost there, file system rw are slow on microSD 2015-05-15T02:49:07Z haasn: A good benchmark is probably ‘lens’, which is a popular Haskell library that I, as an enthusiastic Haskell programmer, would certainly like to have inside my Haskell environment 2015-05-15T02:49:17Z bb010g joined #scheme 2015-05-15T02:49:20Z haasn: Let me see how much memory it uses on my machine 2015-05-15T02:49:57Z zacts: haasn: ok, and if it's under 512mb then give me the commands to test with it 2015-05-15T02:51:12Z haasn: zacts: It used about 700 MB peak resident, with a little over 1000 MB of that being virtual 2015-05-15T02:51:21Z haasn: Maybe this would go down if you have less memory available, though. 2015-05-15T02:51:30Z haasn: (It doesn't generally throw away past work if it doesn't have to) 2015-05-15T02:51:50Z zacts: ok 2015-05-15T02:52:05Z zacts: I'm also asking #ghc for advice 2015-05-15T02:52:07Z haasn: zacts: You could try: git clone https://github.com/ekmett/lens.git && cabal configure && cabal build 2015-05-15T02:52:13Z haasn: (&& cd lens of course) 2015-05-15T02:52:20Z zacts: ok, let me try it 2015-05-15T02:52:32Z haasn: Note: you might not have the ‘cabal’ command, it's part of the package cabal-install 2015-05-15T02:52:48Z zacts: ok 2015-05-15T02:53:09Z haasn: (You can do it manually as a work-around: ghc Setup.lhs && ./Setup configure && ./Setup build) 2015-05-15T02:53:23Z zacts: I'm using the cabal-install package 2015-05-15T02:53:41Z fadein quit (Read error: Connection reset by peer) 2015-05-15T02:55:14Z haasn: Maybe you can get by by giving it a bit of swap and making it `nice` enough to not swap out other processes :-) 2015-05-15T02:55:29Z zacts: ghc is recommending the official ghc test suite 2015-05-15T02:56:23Z zacts: it even has a fast test option 2015-05-15T02:56:34Z haasn: Oh, yes; I was somewhat misunderstanding your use case 2015-05-15T02:56:40Z haasn: ‘lens’ is what I would use for testing whether or not you run out of memory 2015-05-15T02:56:52Z haasn: But the test suite is a great way to test for bugs 2015-05-15T02:56:52Z zacts: ok 2015-05-15T02:57:07Z zacts: I can do both, I'm interested in both issues 2015-05-15T02:59:19Z fadein joined #scheme 2015-05-15T03:00:02Z badkins quit 2015-05-15T03:00:09Z zacts: actually, I'll try it later 2015-05-15T03:00:26Z zacts: I do want to get started on some other projects right now 2015-05-15T03:00:42Z zacts: but, Pixel_Outlaw yes ghc has a binary for debian armhf 2015-05-15T03:00:49Z zacts: which is the same cpu as the rpi2 2015-05-15T03:00:54Z zacts: I don't know about rpi1 2015-05-15T03:01:02Z Pixel_Outlaw: I'll boot it up and ssh in. 2015-05-15T03:01:03Z zacts: you could search the debian package index though 2015-05-15T03:01:04Z Pixel_Outlaw: one second 2015-05-15T03:01:21Z itissid quit (Quit: Leaving.) 2015-05-15T03:03:53Z alexei___ joined #scheme 2015-05-15T03:06:22Z Pixel_Outlaw: Maybe I'll skip Haskell, needs 300 mb 2015-05-15T03:06:52Z Pixel_Outlaw: That is quite a lot for my 16GB sd card 2015-05-15T03:07:15Z alexei_ quit (Ping timeout: 276 seconds) 2015-05-15T03:08:02Z zacts: http://plato.stanford.edu/entries/logic-inductive/ 2015-05-15T03:08:08Z zacts: ^ just an interesting link I've found 2015-05-15T03:08:30Z zacts: Interesting as fundamental ideas for even statistics and machine learning 2015-05-15T03:08:53Z zacts: deductive logic is: it's either true or false. you either prove it or you don't 2015-05-15T03:09:12Z zacts: inductive logic is: it's either true or false, or it's likely true, or likely false 2015-05-15T03:09:37Z Pixel_Outlaw: fuzzy logic 2015-05-15T03:10:33Z Pixel_Outlaw: I have a common lisp book on machine learning that I picked up for a good price and will eventually get back to. 2015-05-15T03:10:42Z Pixel_Outlaw: Had a course in college using Python. 2015-05-15T03:22:19Z annodomini joined #scheme 2015-05-15T03:22:19Z annodomini quit (Changing host) 2015-05-15T03:22:19Z annodomini joined #scheme 2015-05-15T03:24:54Z someircname quit (Quit: ) 2015-05-15T03:29:56Z zacts: oh cool 2015-05-15T03:30:57Z haasn: Pixel_Outlaw: If you're dedicated enough, there are various “lightweight” or “embedded” Haskell implementations floating around, but none of them receive as much love or attention as GHC 2015-05-15T03:31:14Z zacts: I'm trying hugs too 2015-05-15T03:31:22Z zacts: that was the implementation that that lady wrote Perl6 on 2015-05-15T03:34:32Z niklasl quit (Read error: Connection reset by peer) 2015-05-15T03:36:01Z zacts: https://github.com/perl6/Pugs.hs 2015-05-15T03:36:23Z zacts: that's pretty impressive to individually implement an entire Perl 2015-05-15T03:36:27Z zacts: perl6 2015-05-15T03:49:55Z badkins joined #scheme 2015-05-15T03:51:52Z thinkpad quit (Ping timeout: 255 seconds) 2015-05-15T03:55:10Z zacts: Pixel_Outlaw: http://www.amazon.com/Universe-Doesnt-Give-Flying-About-ebook/dp/B005OMBTKY/ref=sr_1_3?s=books&ie=UTF8&qid=1431661867&sr=1-3&keywords=philosophy 2015-05-15T03:55:10Z rudybot: http://eensy.teensy.info/N8UXCjZfCz 2015-05-15T03:55:19Z zacts: ^ I thought this was hilarious for a book cover 2015-05-15T04:01:54Z thinkpad joined #scheme 2015-05-15T04:03:04Z lritter_ quit (Ping timeout: 252 seconds) 2015-05-15T04:08:38Z excelsior joined #scheme 2015-05-15T04:08:49Z frkout quit (Ping timeout: 244 seconds) 2015-05-15T04:16:54Z _sjs quit (Ping timeout: 256 seconds) 2015-05-15T04:21:16Z jlongster quit (Ping timeout: 265 seconds) 2015-05-15T04:26:28Z Pixel_Outlaw: Seems like typical shock value to sell a book. 2015-05-15T04:27:08Z Pixel_Outlaw: Hmmm wonder how long to make the field for a thread reply on my little forum thing... 2015-05-15T04:27:25Z Pixel_Outlaw: 1000 chars? 2015-05-15T04:27:48Z Pixel_Outlaw: Terminal has 80 chars per line... 2015-05-15T04:33:15Z Pixel_Outlaw: maybe 50 lines... 2015-05-15T04:36:10Z zacts: hm.. yeah 2015-05-15T04:37:15Z sdothum- quit (Quit: ZNC - 1.6.0 - http://znc.in) 2015-05-15T04:38:22Z zacts quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-05-15T04:39:55Z zacts joined #scheme 2015-05-15T04:43:10Z thinkpad quit (Ping timeout: 255 seconds) 2015-05-15T04:46:15Z Shadox quit (Quit: Leaving) 2015-05-15T04:50:03Z jlongster joined #scheme 2015-05-15T04:57:45Z jlongster quit (Ping timeout: 240 seconds) 2015-05-15T05:00:41Z jao quit (Ping timeout: 256 seconds) 2015-05-15T05:02:36Z badkins quit 2015-05-15T05:09:29Z oleo_ quit (Quit: Leaving) 2015-05-15T05:17:48Z pjdelport joined #scheme 2015-05-15T05:19:51Z daviid joined #scheme 2015-05-15T05:24:18Z adu joined #scheme 2015-05-15T05:26:02Z aksatac joined #scheme 2015-05-15T05:26:50Z ASau quit (Ping timeout: 244 seconds) 2015-05-15T05:36:29Z dmiles_afk joined #scheme 2015-05-15T05:37:10Z dmiles quit (Ping timeout: 255 seconds) 2015-05-15T05:37:11Z thinkpad joined #scheme 2015-05-15T05:37:17Z alexander-01 joined #scheme 2015-05-15T05:39:19Z Pixel_Outlaw: https://www.facebook.com/photo.php?fbid=10203877676532363&set=a.1024251976605.2003708.1534433814&type=1&theater 2015-05-15T05:39:19Z rudybot: http://eensy.teensy.info/uXroAR8iyz 2015-05-15T05:39:34Z Pixel_Outlaw: Now to find a Scheme that lets me query MySQL... 2015-05-15T05:39:37Z Pixel_Outlaw: Maybe Chicken 2015-05-15T05:43:37Z hive-mind quit (Ping timeout: 264 seconds) 2015-05-15T05:47:09Z dmiles_akf joined #scheme 2015-05-15T05:47:29Z dmiles_afk quit (Ping timeout: 250 seconds) 2015-05-15T05:50:40Z thinkpad quit (Ping timeout: 255 seconds) 2015-05-15T05:57:13Z thinkpad joined #scheme 2015-05-15T05:59:23Z alexander-01 quit (Ping timeout: 244 seconds) 2015-05-15T06:08:24Z aap_ is now known as aap 2015-05-15T06:08:47Z hive-mind joined #scheme 2015-05-15T06:09:52Z enitiz_ quit (Ping timeout: 272 seconds) 2015-05-15T06:10:35Z daviid: Pixel_Outlaw: http://home.gna.org/guile-dbi/ 2015-05-15T06:22:37Z cmatei quit (Read error: Connection reset by peer) 2015-05-15T06:23:13Z cmatei joined #scheme 2015-05-15T06:23:20Z alezost joined #scheme 2015-05-15T06:24:39Z Pixel_Outlaw: Thanks daviid. I've got Chicken on here already but I'll look at this if need be. 2015-05-15T06:25:41Z dmiles_akf quit (Ping timeout: 256 seconds) 2015-05-15T06:26:01Z dmiles_afk joined #scheme 2015-05-15T06:27:05Z daviid: wc! 2015-05-15T06:31:21Z alexei___ quit (Ping timeout: 256 seconds) 2015-05-15T06:39:51Z cdidd quit (Ping timeout: 256 seconds) 2015-05-15T06:40:07Z stepnem joined #scheme 2015-05-15T06:47:20Z bjz joined #scheme 2015-05-15T06:51:15Z Pixel_Outlaw quit (Quit: Leaving) 2015-05-15T06:52:25Z clauswitt joined #scheme 2015-05-15T06:53:48Z cdidd joined #scheme 2015-05-15T07:01:21Z lolisa joined #scheme 2015-05-15T07:05:02Z mrowe is now known as mrowe_away 2015-05-15T07:05:03Z zacts: I like this one http://www.personal.psu.edu/t20/papers/philmath/ 2015-05-15T07:05:47Z Pixel_Outlaw joined #scheme 2015-05-15T07:13:22Z daviid quit (Ping timeout: 252 seconds) 2015-05-15T07:24:02Z dmiles_akf joined #scheme 2015-05-15T07:25:25Z dmiles_afk quit (Ping timeout: 250 seconds) 2015-05-15T07:27:44Z pjb quit (Ping timeout: 245 seconds) 2015-05-15T07:30:32Z Pixel_Outlaw quit (Quit: Leaving) 2015-05-15T07:34:22Z pjb joined #scheme 2015-05-15T07:34:36Z pjb is now known as Guest97150 2015-05-15T07:36:57Z pnkfelix joined #scheme 2015-05-15T07:38:47Z Guest97150 is now known as pjb` 2015-05-15T07:38:51Z bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2015-05-15T07:38:58Z pjb` is now known as pjb 2015-05-15T07:43:02Z jewel_ quit (Read error: No route to host) 2015-05-15T07:57:09Z wingo joined #scheme 2015-05-15T08:05:03Z araujo quit (Ping timeout: 265 seconds) 2015-05-15T08:05:48Z bjz joined #scheme 2015-05-15T08:07:03Z araujo joined #scheme 2015-05-15T08:10:11Z adu quit (Quit: adu) 2015-05-15T08:13:52Z msgodf joined #scheme 2015-05-15T08:19:49Z jewel joined #scheme 2015-05-15T08:21:19Z pnkfelix quit (Ping timeout: 250 seconds) 2015-05-15T08:21:50Z alezost quit (Quit: I use GNU Guix ) 2015-05-15T08:22:00Z aksatac quit (Quit: Connection closed for inactivity) 2015-05-15T08:22:24Z ziocroc joined #scheme 2015-05-15T08:24:15Z bjz quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2015-05-15T08:29:30Z mrowe_away is now known as mrowe 2015-05-15T08:29:47Z psy_ quit (Ping timeout: 256 seconds) 2015-05-15T08:33:06Z mumptai joined #scheme 2015-05-15T08:37:08Z araujo quit (Quit: Leaving) 2015-05-15T08:40:56Z redeemed joined #scheme 2015-05-15T08:45:11Z mrowe is now known as mrowe_away 2015-05-15T08:45:32Z wingo quit (Ping timeout: 272 seconds) 2015-05-15T08:50:20Z annodomini quit (Quit: annodomini) 2015-05-15T08:52:43Z pnkfelix joined #scheme 2015-05-15T08:53:58Z nee joined #scheme 2015-05-15T08:58:55Z yosafbridge quit (Ping timeout: 248 seconds) 2015-05-15T09:09:36Z PinealGlandOptic quit (Ping timeout: 272 seconds) 2015-05-15T09:11:39Z yosafbridge joined #scheme 2015-05-15T09:12:29Z dfdf quit (Read error: Connection reset by peer) 2015-05-15T09:16:37Z uydxhc joined #scheme 2015-05-15T09:16:38Z ziocroc quit (Ping timeout: 246 seconds) 2015-05-15T09:27:22Z vraid joined #scheme 2015-05-15T09:35:15Z wingo joined #scheme 2015-05-15T09:38:35Z przl joined #scheme 2015-05-15T09:40:15Z gravicappa joined #scheme 2015-05-15T09:40:56Z psy_ joined #scheme 2015-05-15T09:48:53Z araujo joined #scheme 2015-05-15T09:48:53Z araujo quit (Changing host) 2015-05-15T09:48:53Z araujo joined #scheme 2015-05-15T09:49:36Z mtakkman joined #scheme 2015-05-15T09:51:53Z Intensity joined #scheme 2015-05-15T09:55:30Z civodul joined #scheme 2015-05-15T10:04:05Z mtakkman quit (Read error: Connection reset by peer) 2015-05-15T10:06:31Z mtakkman joined #scheme 2015-05-15T10:07:06Z psy_ quit (Read error: No route to host) 2015-05-15T10:14:37Z przl quit (Ping timeout: 256 seconds) 2015-05-15T10:24:49Z alexei___ joined #scheme 2015-05-15T10:31:40Z uydxhc quit (Quit: Leaving) 2015-05-15T10:32:53Z iyrsx joined #scheme 2015-05-15T10:45:34Z mtakkman quit (Read error: Connection reset by peer) 2015-05-15T10:47:30Z przl joined #scheme 2015-05-15T10:52:16Z przl quit (Ping timeout: 252 seconds) 2015-05-15T10:54:06Z sdothum joined #scheme 2015-05-15T10:59:24Z niklasl joined #scheme 2015-05-15T11:08:01Z bjz joined #scheme 2015-05-15T11:09:13Z niklasl quit (Quit: Nettalk6 - www.ntalk.de) 2015-05-15T11:11:56Z niklasl joined #scheme 2015-05-15T11:18:16Z bjz quit (Ping timeout: 255 seconds) 2015-05-15T11:18:39Z Riastradh quit (Ping timeout: 256 seconds) 2015-05-15T11:19:13Z gravicappa quit (Remote host closed the connection) 2015-05-15T11:28:03Z daviid joined #scheme 2015-05-15T11:29:01Z clog quit (Ping timeout: 265 seconds) 2015-05-15T11:36:51Z alexei___ quit (Ping timeout: 276 seconds) 2015-05-15T11:37:49Z araujo_ joined #scheme 2015-05-15T11:38:58Z araujo quit (Ping timeout: 255 seconds) 2015-05-15T11:39:40Z araujo_ quit (Client Quit) 2015-05-15T11:47:41Z alexei___ joined #scheme 2015-05-15T11:48:12Z przl joined #scheme 2015-05-15T11:50:40Z bjz joined #scheme 2015-05-15T11:53:45Z przl quit (Ping timeout: 276 seconds) 2015-05-15T12:06:32Z ziocroc joined #scheme 2015-05-15T12:22:42Z BossKonaSegwaY quit (Read error: Connection reset by peer) 2015-05-15T12:29:57Z davexunit joined #scheme 2015-05-15T12:37:36Z aksatac joined #scheme 2015-05-15T12:40:38Z aksatac is now known as cataska 2015-05-15T12:48:11Z ziocroc quit (Ping timeout: 256 seconds) 2015-05-15T12:48:54Z kuribas joined #scheme 2015-05-15T12:48:57Z przl joined #scheme 2015-05-15T12:54:12Z przl quit (Ping timeout: 258 seconds) 2015-05-15T12:56:07Z yasha9 quit (Ping timeout: 256 seconds) 2015-05-15T13:08:54Z yasha9 joined #scheme 2015-05-15T13:09:12Z araujo joined #scheme 2015-05-15T13:09:12Z araujo quit (Changing host) 2015-05-15T13:09:12Z araujo joined #scheme 2015-05-15T13:09:16Z araujo quit (Max SendQ exceeded) 2015-05-15T13:10:11Z araujo joined #scheme 2015-05-15T13:10:13Z contrapunctus joined #scheme 2015-05-15T13:13:08Z oleo joined #scheme 2015-05-15T13:13:08Z oleo quit (Changing host) 2015-05-15T13:13:08Z oleo joined #scheme 2015-05-15T13:13:49Z iyrsx quit (Quit: Leaving) 2015-05-15T13:15:10Z pnpuff quit (Ping timeout: 246 seconds) 2015-05-15T13:15:18Z iyrsx joined #scheme 2015-05-15T13:16:15Z caleb_smith joined #scheme 2015-05-15T13:21:54Z spew joined #scheme 2015-05-15T13:25:42Z oleo_ joined #scheme 2015-05-15T13:27:44Z oleo quit (Ping timeout: 252 seconds) 2015-05-15T13:28:53Z pnkfelix quit (Ping timeout: 265 seconds) 2015-05-15T13:29:12Z oleo_ quit (Changing host) 2015-05-15T13:29:13Z oleo_ joined #scheme 2015-05-15T13:29:16Z oleo_ is now known as oleo 2015-05-15T13:33:01Z badkins joined #scheme 2015-05-15T13:34:07Z przl joined #scheme 2015-05-15T13:36:43Z itissid joined #scheme 2015-05-15T13:42:22Z alexei___ quit (Ping timeout: 264 seconds) 2015-05-15T13:42:48Z jlongster joined #scheme 2015-05-15T13:49:45Z jlongster quit (Remote host closed the connection) 2015-05-15T13:53:02Z jlongster joined #scheme 2015-05-15T13:57:07Z kuribas quit (Quit: ERC Version 5.3 (IRC client for Emacs)) 2015-05-15T14:00:34Z spew quit (Ping timeout: 256 seconds) 2015-05-15T14:05:10Z uris77 joined #scheme 2015-05-15T14:05:48Z lritter_ joined #scheme 2015-05-15T14:06:25Z uber_hulk joined #scheme 2015-05-15T14:10:57Z clauswitt quit (Quit: My Mac has gone to sleep. ZZZzzz…) 2015-05-15T14:15:18Z pjb quit (Ping timeout: 256 seconds) 2015-05-15T14:27:32Z developernotes joined #scheme 2015-05-15T14:29:26Z _sjs joined #scheme 2015-05-15T14:33:09Z j4cknewt joined #scheme 2015-05-15T14:34:18Z gravicappa joined #scheme 2015-05-15T14:35:26Z civodul quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2015-05-15T14:44:02Z annodomini joined #scheme 2015-05-15T14:45:19Z Pixel_Outlaw joined #scheme 2015-05-15T14:47:16Z rtra` joined #scheme 2015-05-15T14:50:53Z rtra quit (Ping timeout: 250 seconds) 2015-05-15T14:50:53Z rtra` is now known as rtra 2015-05-15T14:51:59Z zhcy quit (Quit: zhcy) 2015-05-15T15:00:47Z itissid quit (Quit: Leaving.) 2015-05-15T15:02:00Z cataska quit (Quit: Connection closed for inactivity) 2015-05-15T15:02:41Z itissid joined #scheme 2015-05-15T15:03:06Z itissid quit (Client Quit) 2015-05-15T15:03:12Z sethalves quit (Quit: Leaving.) 2015-05-15T15:03:19Z itissid joined #scheme 2015-05-15T15:11:38Z pecg_ joined #scheme 2015-05-15T15:12:05Z pecg_ quit (Client Quit) 2015-05-15T15:27:13Z nee quit (Remote host closed the connection) 2015-05-15T15:27:23Z badkins quit 2015-05-15T15:36:02Z redeemed quit (Quit: q) 2015-05-15T15:42:06Z Pixel_Outlaw: Morning folks. 2015-05-15T15:42:17Z Pixel_Outlaw: or 2015-05-15T15:42:46Z wasamasa: http://www.total-knowledge.com/~ilya/mips/ugt.html 2015-05-15T15:45:17Z itissid quit (Quit: Leaving.) 2015-05-15T15:46:32Z daviid quit (Ping timeout: 256 seconds) 2015-05-15T15:52:16Z itissid joined #scheme 2015-05-15T15:53:25Z contrapunctus: wasamasa: nice 2015-05-15T15:57:26Z marisa__ joined #scheme 2015-05-15T15:59:12Z wasamasa: tl;dr: don't bother replying or writing anything more than "morning" or "evening" on IRC 2015-05-15T16:01:45Z msgodf quit (Ping timeout: 240 seconds) 2015-05-15T16:01:57Z contrapunctus: wasamasa: and, don't tell people to get their time right :D 2015-05-15T16:02:01Z contrapunctus: *runs* 2015-05-15T16:05:48Z alezost joined #scheme 2015-05-15T16:10:50Z Pixel_Outlaw: Scheme is usually slow enough that I thought I'd be funny. 2015-05-15T16:10:54Z Pixel_Outlaw: ;) 2015-05-15T16:11:50Z Pixel_Outlaw: Mostly just waiting to help balance a few people's parens and point to good books. 2015-05-15T16:14:29Z contrapunctus: Scheme is slow? 2015-05-15T16:17:45Z vraid quit (Ping timeout: 258 seconds) 2015-05-15T16:18:11Z wasamasa: they must mean the channel 2015-05-15T16:20:17Z j4cknewt quit (Remote host closed the connection) 2015-05-15T16:21:13Z badkins joined #scheme 2015-05-15T16:22:37Z Pixel_Outlaw: #scheme 2015-05-15T16:23:15Z Pixel_Outlaw: That said, I've got my Chicken eggs clucking and now just need to figure out how to pipe data into a Chicken Scheme program. 2015-05-15T16:23:22Z jlongster quit (Ping timeout: 252 seconds) 2015-05-15T16:23:30Z Pixel_Outlaw: Database stuff seems to connect well enough. 2015-05-15T16:30:45Z contrapunctus: I guessed, just pulling their leg x) 2015-05-15T16:34:40Z Pixel_Outlaw: I'm male, 28, 5'10" blue eyes, light brown hair. You can say "he" if you want. 2015-05-15T16:35:09Z contrapunctus: lol 2015-05-15T16:35:26Z contrapunctus: I say they for everyone :D 2015-05-15T16:39:08Z iyrsx quit (Quit: Leaving) 2015-05-15T16:40:16Z someircname joined #scheme 2015-05-15T16:40:59Z jlongster joined #scheme 2015-05-15T16:41:23Z iyrsx joined #scheme 2015-05-15T16:42:32Z Pixel_Outlaw: There are occasionally women online and in chatrooms. Better safe than sorry. :) 2015-05-15T16:43:35Z przl quit (Ping timeout: 246 seconds) 2015-05-15T16:45:38Z contrapunctus: Aye 2015-05-15T16:50:26Z HisaoNakai joined #scheme 2015-05-15T16:50:31Z HisaoNakai quit (Remote host closed the connection) 2015-05-15T16:52:34Z contrapunctus quit (Ping timeout: 272 seconds) 2015-05-15T16:52:40Z zacts: lo 2015-05-15T16:52:47Z zacts: good morning 2015-05-15T16:53:12Z zacts: I've heard rumors that stalin can compile scheme to be really fast 2015-05-15T16:53:17Z zacts: but the compile times are often slow 2015-05-15T16:53:34Z taylanub: yeah, like months 2015-05-15T16:53:41Z someircname quit (Quit: ) 2015-05-15T16:53:49Z ijp: "hello world" alone takes like 10 seconds 2015-05-15T16:53:56Z eli` joined #scheme 2015-05-15T16:53:58Z someircname joined #scheme 2015-05-15T16:54:10Z taylanub: O_o 2015-05-15T16:54:25Z ijp: taylanub: slight exaggeration for effect, but it certainly isn't immediate 2015-05-15T16:54:27Z taylanub: I take it it uses many O(n^2) algos 2015-05-15T16:54:44Z eli` quit (Client Quit) 2015-05-15T16:54:55Z zacts: taylanub: ah haha months to compile with stalin? 2015-05-15T16:54:58Z eli joined #scheme 2015-05-15T16:54:59Z eli quit (Changing host) 2015-05-15T16:54:59Z eli joined #scheme 2015-05-15T16:55:49Z Pixel_Outlaw: There is a really good Joseph Stalling joke in here somewhere but I can't find it for the life of me. 2015-05-15T16:55:56Z Pixel_Outlaw: *Stallin 2015-05-15T16:56:03Z taylanub: it's been in my mind for a long time how aggressive optimizations one could make given whole-program analysis (or in more realistic cases, "statically linking" together specific sets of modules where you know you'll get the most important benefits from turning them into one compilation unit) but many things I think of are probably inherently inefficient re. compile times 2015-05-15T16:56:26Z taylanub: Pixel_Outlaw: Stalling, as in stalling compilations? :P 2015-05-15T16:56:34Z Pixel_Outlaw: That'll do 2015-05-15T16:56:40Z taylanub: (also, it's Stalin with one l) 2015-05-15T16:57:05Z Pixel_Outlaw: Yeah, my left typer got a bit excited. 2015-05-15T16:57:11Z Pixel_Outlaw: *right typer 2015-05-15T16:57:25Z Pixel_Outlaw goes to get coffee before he falls apart more 2015-05-15T17:00:28Z bb010g quit (Quit: Connection closed for inactivity) 2015-05-15T17:01:59Z sethalves joined #scheme 2015-05-15T17:28:53Z taylanub quit (Remote host closed the connection) 2015-05-15T17:29:26Z taylanub joined #scheme 2015-05-15T17:29:52Z mtakkman joined #scheme 2015-05-15T17:32:08Z Pixel_Outlaw: This forum from scratch is a great learning experience.Great way to dig deeper into SQL. I'm having fun. 2015-05-15T17:32:26Z Pixel_Outlaw: Chicken is playing along nicely. 2015-05-15T17:36:58Z mario-goulart: Pixel_Outlaw: have you checked ssql? 2015-05-15T17:37:42Z przl joined #scheme 2015-05-15T17:38:26Z psy_ joined #scheme 2015-05-15T17:41:54Z przl quit (Ping timeout: 245 seconds) 2015-05-15T17:46:06Z Pixel_Outlaw: Well the documentation saying it is incomplete and very much in flux kind of spooked me. 2015-05-15T17:46:49Z mario-goulart: I see. 2015-05-15T17:47:14Z yewxcr76y joined #scheme 2015-05-15T17:47:27Z jao joined #scheme 2015-05-15T17:48:27Z Pixel_Outlaw: I'm using the mysql-client egg as it stands. 2015-05-15T17:48:39Z Pixel_Outlaw: Just seemed the most mature from what I glanced though. 2015-05-15T17:49:05Z mario-goulart: ! 2015-05-15T17:49:26Z mario-goulart: the chicken egg? 2015-05-15T17:50:47Z iyrsx quit (Ping timeout: 256 seconds) 2015-05-15T17:52:50Z Pixel_Outlaw: Yes, unless I'm mistaken. 2015-05-15T17:53:07Z Pixel_Outlaw: (Actually a mature egg would be a chicken itself) 2015-05-15T17:53:17Z mario-goulart: :-) 2015-05-15T17:53:42Z mario-goulart: TBH, I don't know anybody using the mysql-client egg. Most people use sql-de-lite or the postgresql egg. 2015-05-15T17:54:11Z Pixel_Outlaw: Oh ok. 2015-05-15T17:55:21Z mario-goulart: The authors of those eggs hang around the #chicken channel, in case you need help. 2015-05-15T17:55:37Z Pixel_Outlaw: Oh, ok. 2015-05-15T17:55:55Z Pixel_Outlaw: I'm forcing myself to use scheme for something more serious so it will be helpful. 2015-05-15T17:56:19Z mario-goulart: cool 2015-05-15T17:57:10Z Pixel_Outlaw: Yes, making a simple message board system that only exists on a single Linux server and requires ssh. It will just be a series of abstraction commands that pump text from the database message board into the pager/text editor of your choice. 2015-05-15T17:57:39Z ASau joined #scheme 2015-05-15T17:57:44Z Pixel_Outlaw: Kind of limited and retro but I want to see what people do with an 80x24 text buffer. 2015-05-15T17:57:51Z mario-goulart: You mean the UI is ssh? 2015-05-15T17:58:41Z Pixel_Outlaw: No, they'll get a local user account but when they log in the'll have a handful of small utilities to get data from the message board and send new posts to it. 2015-05-15T17:59:09Z mario-goulart: Ah, ok. 2015-05-15T17:59:43Z Pixel_Outlaw: I've got the tables in place the small bulletin board utilities will be Scheme. 2015-05-15T18:00:39Z mario-goulart: nice 2015-05-15T18:00:44Z yewxcr76y quit (Read error: Connection reset by peer) 2015-05-15T18:00:57Z Pixel_Outlaw: I've not decided on the exact syntax but something like show new topics (a list of updated topics is paged via std out) etc 2015-05-15T18:01:00Z Pixel_Outlaw: Very primative. 2015-05-15T18:02:12Z mtakkman quit (Read error: Connection reset by peer) 2015-05-15T18:02:15Z Pixel_Outlaw: Similar to the electronic newspapers they had in the 80's. 2015-05-15T18:02:35Z ASau: Text mode sucks a lot. 2015-05-15T18:02:36Z Pixel_Outlaw: Your computer dialed in and just dragged down the chunks of data you asked for. 2015-05-15T18:03:48Z wasamasa: it's the good kind of suckage 2015-05-15T18:04:01Z Pixel_Outlaw: I just want to try an idea. 2015-05-15T18:04:15Z Pixel_Outlaw: I quite like the terminals' lack of distraction. 2015-05-15T18:04:45Z ASau: Text mode is really a bad kind of suckage. 2015-05-15T18:05:17Z ASau: If only IBM took different approach from the very beginning, we could live in a lot better world by now. 2015-05-15T18:06:07Z Pixel_Outlaw: Some of us find fun in limitation. More room for clever solutions to interesting limitations. 2015-05-15T18:06:28Z ASau: Yes, I'm aware of handicap theory. 2015-05-15T18:06:43Z wasamasa: some people's handicap is the usage of java 2015-05-15T18:06:51Z Pixel_Outlaw: I'm making a forum without need for a browser, PHP and JavaScript. Just for my own amusement. 2015-05-15T18:06:55Z ASau: "Let's create big problems and heroically overcome them!" 2015-05-15T18:07:27Z ASau: Text mode is exactly this kind of shit. 2015-05-15T18:07:41Z Pixel_Outlaw: Just to be fair, the bitmapped image did make goatse possible. ;) 2015-05-15T18:08:12Z ASau: If you're going to display monospace font and work teletype style, you don't lose any efficiency. 2015-05-15T18:08:20Z ASau: Perhaps, only something really marginal. 2015-05-15T18:08:41Z ASau: Instead you don't need to switch modes. 2015-05-15T18:10:19Z ASau: You don't need these horror of termcap, terminfo and curses either. 2015-05-15T18:10:47Z developernotes quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…) 2015-05-15T18:11:10Z wasamasa: true 2015-05-15T18:12:37Z ASau: Plus, with some minimal additional effort we could have had proportional fonts with sane support for them (like indentation), 2015-05-15T18:12:50Z ASau: and unlimited number of various arrows, circles and so on. 2015-05-15T18:13:38Z thomassgn quit (Ping timeout: 272 seconds) 2015-05-15T18:13:49Z ASau: I understand that some of you may be fans of looking at <= and >= 2015-05-15T18:14:11Z ASau: yet a lot of other people would like to see them as single symbol rather than two. 2015-05-15T18:17:06Z hsvcr joined #scheme 2015-05-15T18:17:34Z roniz joined #scheme 2015-05-15T18:18:02Z roniz: hello 2015-05-15T18:18:13Z Pixel_Outlaw: hi 2015-05-15T18:19:15Z roniz: I dont know lisp/scheme 2015-05-15T18:19:21Z roniz: but I would like to :) 2015-05-15T18:19:25Z roniz: where do I start? 2015-05-15T18:19:32Z mario-goulart: Hi roniz 2015-05-15T18:19:34Z roniz: I know C and Python 2015-05-15T18:20:02Z roniz: hi everyone :) 2015-05-15T18:20:04Z mario-goulart: roniz: just pick any implementation and start messing around. 2015-05-15T18:20:19Z Pixel_Outlaw: Well first you'll probably want to get a REPL, similar to Python's interactive shell. This will let you play and get direct results. 2015-05-15T18:20:25Z roniz: ok 2015-05-15T18:20:36Z roniz: I am on Linux with just a CLI. 2015-05-15T18:20:44Z Pixel_Outlaw: Excellent. 2015-05-15T18:21:08Z Pixel_Outlaw: There should be modes for Scheme for both vim and Emacs. 2015-05-15T18:21:24Z roniz: just want something I can write my codes in a text editor then run them with "scheme ~/filepath" 2015-05-15T18:21:33Z roniz: I use the 'mg' text editor 2015-05-15T18:21:59Z roniz: not a fan of vim or Emacs. You dont need a nuclear bomb to edit files ;) 2015-05-15T18:22:03Z wasamasa: lol 2015-05-15T18:22:04Z mario-goulart: mg will be a bit unfriendly. :-) 2015-05-15T18:22:07Z wasamasa: but it's so convenient! 2015-05-15T18:22:18Z mario-goulart: Does mg match parens? 2015-05-15T18:22:22Z wasamasa: mg is one of the micro-emacsen, right? 2015-05-15T18:22:27Z roniz: yep 2015-05-15T18:22:33Z roniz: I also have nano 2015-05-15T18:22:43Z ASau shrugs. 2015-05-15T18:22:48Z Pixel_Outlaw: you might see if it has m-x scheme-mode 2015-05-15T18:22:51Z wasamasa: roniz: as long as you can have both an editor and a shell easily reachable 2015-05-15T18:22:59Z wasamasa: roniz: it shouldn't matter how you accomplish it 2015-05-15T18:23:04Z mario-goulart: roniz: Does nano match parens? 2015-05-15T18:23:37Z hsvcr quit (Read error: Connection reset by peer) 2015-05-15T18:23:44Z roniz: possibly would be interested in having a text editor with rainbrow parantecies. The lisp code I looked at requires rainbow parentices ;) 2015-05-15T18:23:57Z roniz: but that comes later 2015-05-15T18:24:05Z roniz: first comes writing code 2015-05-15T18:24:12Z ASau: You'll make your life a lot easier if you switch to Emacs. 2015-05-15T18:24:15Z mario-goulart: Without a decent editor your experience with lisp may be a bit frustrating. 2015-05-15T18:24:45Z mario-goulart: It's possible, of course, but maybe not very pleasant. 2015-05-15T18:24:54Z roniz: ok 2015-05-15T18:25:10Z mario-goulart: specially if you are starting to use lisp. 2015-05-15T18:25:37Z roniz: What text editors do matching parentices 2015-05-15T18:25:40Z mario-goulart: Anyway, you seem to be on the minimalist side, right? 2015-05-15T18:27:31Z mario-goulart: emacs and vim are the popular alternatives. :-) 2015-05-15T18:27:33Z roniz: yep 2015-05-15T18:27:36Z clog joined #scheme 2015-05-15T18:27:49Z roniz: mg can do matching brackets, no problem 2015-05-15T18:27:52Z mario-goulart: I'd suggest chibi scheme. 2015-05-15T18:28:52Z ASau: roniz: can it navigate and edit S-expressions? 2015-05-15T18:28:52Z roniz: ok 2015-05-15T18:29:05Z roniz: i dont know what an S-expression is 2015-05-15T18:29:09Z Pixel_Outlaw: http://askubuntu.com/questions/90013/how-do-i-enable-syntax-highlighting-in-nano 2015-05-15T18:29:09Z rudybot: http://eensy.teensy.info/Z9AFjaCdhC 2015-05-15T18:29:11Z ASau: Note that poweful tools make your more powerful, while weak tools make you weaker. 2015-05-15T18:29:16Z Pixel_Outlaw: Looks like no Scheme by default. 2015-05-15T18:29:19Z roniz: mg can do bracket matching. I am sure I will be fine for now 2015-05-15T18:29:24Z uris77 quit (Ping timeout: 245 seconds) 2015-05-15T18:29:33Z roniz: ASau: a bad builder blaims his tools 2015-05-15T18:29:48Z vraid joined #scheme 2015-05-15T18:30:00Z Pixel_Outlaw: roniz, you'll need to develop good indentation style with Scheme. You can do this in your editor but you'll need to learn the style on your own. Emacs will autoindent. 2015-05-15T18:30:22Z roniz: i learnt from python. I regard my style to be good 2015-05-15T18:31:02Z Pixel_Outlaw: Scheme has different style and indentation is a matter of convention. 2015-05-15T18:31:16Z roniz: just let me get a book and a way to run programs :) 2015-05-15T18:31:35Z ASau: roniz: a good builder prefers good tools. 2015-05-15T18:32:20Z mario-goulart: roniz: http://www.scheme.com/tspl3/ is a good book. Since you know Python, http://wiki.call-cc.org/chicken-for-python-programmers may be useful. 2015-05-15T18:32:46Z roniz: what about SICP 2015-05-15T18:33:00Z Pixel_Outlaw: Try it, watch the videos with it. 2015-05-15T18:33:04Z mario-goulart: Also good, but with a different approach. 2015-05-15T18:33:15Z roniz: I cant watch videos on this machine 2015-05-15T18:33:23Z mario-goulart: aalib? :-) 2015-05-15T18:33:28Z mario-goulart trolls 2015-05-15T18:33:47Z ASau: zacts: IMO, C is bad language for pretty anything, except when you have no choice except using C. 2015-05-15T18:34:25Z roniz: woh 2015-05-15T18:34:27Z roniz: C is great 2015-05-15T18:34:31Z ASau: Pf! 2015-05-15T18:34:52Z ASau: It only shows that you haven't written anything larger than laboratory work in it. 2015-05-15T18:35:25Z Pixel_Outlaw: But Gracious Lord Stallman likes C. 2015-05-15T18:35:38Z Pixel_Outlaw: er St. IGNUcious. 2015-05-15T18:35:39Z ASau: Fuck him. 2015-05-15T18:36:01Z roniz: woh 2015-05-15T18:36:18Z roniz: his halo is made from a hard drive disk that has only ever had free software installed on it 2015-05-15T18:36:29Z Pixel_Outlaw: Asau you're going to have to provide a list of good ideas and programming languages or I'll have to assume you hate everything save XML and Java. 2015-05-15T18:37:20Z roniz: ew! 2015-05-15T18:37:24Z roniz: >java 2015-05-15T18:37:50Z hsvcr joined #scheme 2015-05-15T18:37:55Z ASau: Java is a really the best available example how you engineer programming language. 2015-05-15T18:37:58Z roniz: So I am supposed to install chibi scheme and buy SICP 2015-05-15T18:38:02Z zacts: ASau: so what language would you recommend for learning algorithms? 2015-05-15T18:38:12Z vraid: zacts: don't mind the troll 2015-05-15T18:38:29Z mario-goulart: roniz: SICP is available online too 2015-05-15T18:38:31Z zacts: ASau: is not necessarily a troll, he may just have differing opinions from the status quo 2015-05-15T18:38:32Z ASau: zacts: I'd say that you should start from Java, actually. 2015-05-15T18:38:42Z zacts: ASau: why? 2015-05-15T18:38:51Z zacts: do you have any specific reasons for recommending this? 2015-05-15T18:39:06Z zacts: and do you mean java before scheme, or java before C, and after scheme? 2015-05-15T18:39:08Z ASau: Sure. 2015-05-15T18:39:13Z Pixel_Outlaw: Swing library to make your 2048 app 2015-05-15T18:39:14Z marisa__ quit (Quit: meow) 2015-05-15T18:39:20Z zacts: I currently disagree ASau 2015-05-15T18:39:27Z ASau: Java saves a lot of your time you spend on problems like dealing with pointers and allocating memory. 2015-05-15T18:39:48Z zacts: mainly, because my understanding of java is that it focuses more on a single general way of thinking about abstraction 2015-05-15T18:39:51Z zacts: namely 'java OOP' 2015-05-15T18:40:02Z zacts: while racket allows you to explore many different ideas 2015-05-15T18:40:03Z mario-goulart: roniz: SICP is more oriented at teaching you to program -- it happens to use Scheme. 2015-05-15T18:40:08Z ASau: At the same time it gives you expedient access to features you need when learning data structures and algorithms. 2015-05-15T18:40:10Z lolisa lol 2015-05-15T18:40:25Z zacts: mario-goulart: SICP isn't a scheme book, it's just a programming book that happens to use scheme as it's implemented language 2015-05-15T18:40:39Z roniz: mario-goulart: well thats great! I need to program better :/ can I learn scheme from it? 2015-05-15T18:40:41Z ASau: zacts: Scheme and other FPLs with their enforcement of immutability are useless for it. 2015-05-15T18:40:44Z lolisa: simula style OOP is just a hoax; it can be done with record (C style struct)+ subtyping. 2015-05-15T18:40:46Z mario-goulart: zacts: isn't that equivalent to what I just wrote? 2015-05-15T18:40:50Z zacts: ASau: I don't necessarily agree with you on this one, unless you can convince me otherwise 2015-05-15T18:41:01Z zacts: mario-goulart: oh I was just further elaborating your statement 2015-05-15T18:41:07Z mario-goulart: ah, ok. :-) 2015-05-15T18:41:16Z zacts: (sorries) 2015-05-15T18:41:17Z ASau: zacts: we discussed this yesterday. 2015-05-15T18:41:24Z roniz: :o 2015-05-15T18:41:25Z mario-goulart: roniz: yeah, sure. 2015-05-15T18:41:27Z vraid: zacts: well, case in point ;) 2015-05-15T18:41:28Z zacts: ASau: scheme has set! 2015-05-15T18:41:32Z mario-goulart: zacts: no problem at all. :-) 2015-05-15T18:41:34Z roniz: ok, so I am set to go 2015-05-15T18:41:36Z zacts: it doesn't have to be purely functional 2015-05-15T18:41:38Z roniz: thanks for your help 2015-05-15T18:41:43Z ASau: zacts: Scheme doesn't give you sane arrays. 2015-05-15T18:41:47Z Pixel_Outlaw: We've not had the GPL is shit recursion for a while... 2015-05-15T18:41:47Z zacts: roniz: what is your math background? 2015-05-15T18:42:01Z zacts: roniz: SICP does require at least a basic knowledge of math proofs and calculus 2015-05-15T18:42:43Z ASau: zacts: in order to understand the most basic data structures you need expedient access to arrays. 2015-05-15T18:42:56Z zacts: ok 2015-05-15T18:43:17Z zacts: ASau: ok, so perhaps for algorithmic studies a language other than C could be useful 2015-05-15T18:43:18Z ASau: I understand that you can do that with (setf (aref a i j) (bla-bla-bla)) 2015-05-15T18:43:29Z zacts: perhaps I can combine my opinions with yours and find some sort of agreement 2015-05-15T18:43:31Z zacts: between us 2015-05-15T18:43:31Z ASau: I do that. 2015-05-15T18:43:40Z ASau: Yet it is very much inconvenient. 2015-05-15T18:43:51Z zacts: java may be a useful language for understanding algorithms and data structures 2015-05-15T18:43:52Z ASau: (Besides, I do it in CL, not in Scheme where it is worse.) 2015-05-15T18:44:18Z zacts: yeah, I personally had a feeling that scheme may not be the end-all to the study of algorithms 2015-05-15T18:44:25Z zacts: but I have no reason to believe this 2015-05-15T18:44:32Z ASau: Java is also good to get into parallel programming. 2015-05-15T18:44:35Z zacts: it's more of a hypothetical in my mind right now 2015-05-15T18:45:26Z zacts: ASau: what is your definition of a sane array 2015-05-15T18:45:28Z zacts: ? 2015-05-15T18:45:31Z roniz: zacts: I dont know calculus. I can do math proofs 2015-05-15T18:45:38Z zacts: roniz: ah ok 2015-05-15T18:45:45Z zacts: yeah you may want to brush up on some calculus 2015-05-15T18:45:50Z zacts: I'm using MIT ocw for this 2015-05-15T18:45:57Z zacts: starting with the MIT ocw hilights of calculus 2015-05-15T18:46:06Z zacts: also check out the MIT ocw Math for Comp Sci 2015-05-15T18:46:07Z ASau: zacts: accessing array elements should be really expedient. 2015-05-15T18:46:11Z zacts: oh I see 2015-05-15T18:46:13Z zacts: cool 2015-05-15T18:46:18Z ASau: zacts: Otherwise you're going to run into various traps. 2015-05-15T18:46:24Z roniz: oh :o 2015-05-15T18:46:31Z ASau: zacts: you _really_ don't want that when you're learning. 2015-05-15T18:46:38Z ASau: (And when you're working too.) 2015-05-15T18:46:46Z zacts: roniz: also MIT ocw Claulus I / II / III provide all course materials 2015-05-15T18:46:51Z zacts: and you don't need books for them 2015-05-15T18:46:55Z ASau: Other than that, contrary to many other programming languages, Java has MP features inside from the very beginning. 2015-05-15T18:46:56Z vraid: ASau: so use one of the several scheme implementations with sane arrays? 2015-05-15T18:47:05Z ASau: And MP support is well-polished. 2015-05-15T18:47:08Z zacts: the MIT ocw Calculus with Applications does require a couple of books though 2015-05-15T18:47:22Z ASau: vraid: see above, Scheme sucks at array access really a lot. 2015-05-15T18:47:37Z zacts: I don't necessarily know if I agree with ASau 2015-05-15T18:47:49Z zacts: in terms of pedagogical languages 2015-05-15T18:47:49Z ASau: vraid: worse than CL since CL has polymorphic setf. 2015-05-15T18:48:01Z zacts: (perhaps his array claims are true, I don't knows) 2015-05-15T18:48:05Z vraid: in what way does array access suck? 2015-05-15T18:48:24Z ASau: vraid: can you show me some array-heavy code? 2015-05-15T18:48:28Z ASau: Something simple. 2015-05-15T18:48:39Z ASau: Nelder-Mead algorithm, for instance. 2015-05-15T18:48:59Z daviid joined #scheme 2015-05-15T18:49:18Z ASau: Or DFP's. 2015-05-15T18:50:05Z vraid: that acronym says nothing to me 2015-05-15T18:50:39Z ASau: Alright, what array-heavy algorithm can you propose? 2015-05-15T18:51:08Z Pixel_Outlaw: http://en.wikipedia.org/wiki/Dysfunctional_Family_Picnic 2015-05-15T18:51:12Z zacts: lol 2015-05-15T18:51:17Z ASau: Is PLU decomposition fine for you? 2015-05-15T18:51:59Z zacts: ok, let's at least use some form of logic in our search for the best of scheme / lisp / java / and C for learning about algorithms 2015-05-15T18:52:07Z zacts: let's not make fallacies and invalid claims 2015-05-15T18:52:26Z mario-goulart: zacts: that totally defeats the point of trolling! 2015-05-15T18:52:31Z zacts: lol 2015-05-15T18:52:32Z alexei___ joined #scheme 2015-05-15T18:52:52Z Pixel_Outlaw: Also lets not make phalluses and clams. 2015-05-15T18:53:32Z zacts: what's wrong with naked statues? 2015-05-15T18:53:37Z ASau: zacts: if you restrict yourself to a set of Scheme, CL, Java and C, you make no space to choose from. 2015-05-15T18:53:57Z zacts: well those were the languages of our discussion 2015-05-15T18:53:58Z ASau: Seriously. 2015-05-15T18:54:11Z zacts: and your argument was that Java is a better language for learning algorithms than C or scheme 2015-05-15T18:54:12Z ASau: C has to be ruled out from the very beginning. 2015-05-15T18:54:16Z zacts: why? 2015-05-15T18:54:26Z Pixel_Outlaw: too fast for arrays 2015-05-15T18:54:28Z ASau: Because you'll spend a lot of time dealing with memory allocation. 2015-05-15T18:54:35Z zacts: Ok 2015-05-15T18:54:38Z vraid: indeed. it has to be moderately expedient. c is way too expedient 2015-05-15T18:54:49Z zacts: now we have some premeses or reasons for your claims 2015-05-15T18:54:51Z zacts: :-D 2015-05-15T18:55:12Z zacts: that sounds like a valid reason to perhaps prefer java over C 2015-05-15T18:55:19Z zacts: for learning algorithms 2015-05-15T18:55:26Z ASau: When working in C, instead of focusing on solving real problem, you usually spend a lot of time on deallocating memory correctly. 2015-05-15T18:55:46Z ASau: Or something of the kind. 2015-05-15T18:56:01Z ASau: Unlocking locks, for instance. 2015-05-15T18:56:42Z ASau: Other than that. 2015-05-15T18:57:22Z developernotes joined #scheme 2015-05-15T18:57:30Z ASau: When you turn to search problems, you'll want expedient access to min-max heaps, balanced trees, hash tables and so on. 2015-05-15T18:58:04Z ASau: So, before that you need to _implement_ those algorithms in Scheme. 2015-05-15T18:58:13Z ASau: Yeah, that's cool. 2015-05-15T18:58:33Z ASau: Still, instead of solving real problem you're going to manage lack of support code. 2015-05-15T18:59:49Z alexei___ quit (Ping timeout: 245 seconds) 2015-05-15T19:00:45Z vraid: i would suggest using a scheme implementation that already supports heaps, trees, hashtables and so on 2015-05-15T19:00:49Z vraid: but maybe that is cheating 2015-05-15T19:01:06Z ASau: Yes, there's a workaround. 2015-05-15T19:01:30Z ASau: If you manage to pick such an implementation where you have access to rich library, you can try using Scheme. 2015-05-15T19:01:33Z Qudit314` quit (Read error: Connection reset by peer) 2015-05-15T19:01:40Z alexei___ joined #scheme 2015-05-15T19:01:49Z ASau: _Provided_ you have something like SETF. 2015-05-15T19:02:01Z vraid: setf as in? 2015-05-15T19:02:02Z ASau: Otherwise you're going to write monomorphic code again. 2015-05-15T19:02:10Z ASau: setf as in setf. 2015-05-15T19:02:17Z Pixel_Outlaw: CL's set! 2015-05-15T19:02:28Z ASau: It is not "set!". 2015-05-15T19:02:44Z vraid: ah, of course. i forgot that i am all-knowing. how silly of me 2015-05-15T19:03:15Z ASau: Ehm. 2015-05-15T19:03:16Z vraid: zacts: so there you have it, pick a scheme implementation with a good library 2015-05-15T19:03:35Z ASau: vraid: Do I need to assume no knowledge around Scheme? 2015-05-15T19:04:26Z ASau: Don't you think it is rather stupid to enter comparison discussion not knowing even the closest relative language? 2015-05-15T19:04:28Z vraid: i don't know all implementations. 2015-05-15T19:04:36Z vraid: ASau: not really, no. 2015-05-15T19:04:46Z ASau: SETF is implementation-independent. 2015-05-15T19:05:04Z ASau: It is one of the most basic features of CL actually. 2015-05-15T19:05:25Z dmiles_afk joined #scheme 2015-05-15T19:05:27Z vraid: that's nice. 2015-05-15T19:05:45Z Pixel_Outlaw: It modifies by place, a bit more fancy than set!. 2015-05-15T19:06:07Z dmiles_akf quit (Ping timeout: 250 seconds) 2015-05-15T19:06:40Z PinealGlandOptic joined #scheme 2015-05-15T19:07:49Z alexei___ quit (Ping timeout: 244 seconds) 2015-05-15T19:08:13Z ASau: zacts: if you extend your set of alternatives to cover python at least, you'll have another option. 2015-05-15T19:08:45Z ASau: JavaScript? 2015-05-15T19:09:05Z ASau: Well... I'm not sure it is reasonable to consider it. 2015-05-15T19:09:22Z roniz: chibi scheme is not in the gentoo repos 2015-05-15T19:09:27Z vraid: well, i'm off to learn german. in case i enter a discussion about english in the near future, i better know the closest relative language. tschüss! 2015-05-15T19:09:29Z roniz: what other scheme is there 2015-05-15T19:09:30Z ASau: A language where "x + x" isn't equal to "(x + x)" ought to be ruled out. 2015-05-15T19:09:34Z roniz: no graphics please 2015-05-15T19:09:46Z roniz: (+ x x) is polish notation 2015-05-15T19:10:08Z roniz: the more you know 2015-05-15T19:10:21Z mario-goulart: roniz: chicken is a nice option too. 2015-05-15T19:10:25Z zadock joined #scheme 2015-05-15T19:11:39Z roniz: installing now 2015-05-15T19:12:05Z roniz: mario-goulart: is that compatible with racket/MIT scheme 2015-05-15T19:12:12Z zacts: ASau: ah yeah, python may be an interesting idea 2015-05-15T19:12:25Z mario-goulart: roniz: no. Racket is another language. 2015-05-15T19:12:30Z roniz: ah 2015-05-15T19:12:33Z roniz: but its scheme 2015-05-15T19:12:49Z roniz: are they incopatible 2015-05-15T19:12:49Z mario-goulart: roniz: maybe compatible to certain extend to MIT. 2015-05-15T19:12:51Z vraid: roniz: it breaks standard scheme compatibility, but it's very closely related 2015-05-15T19:12:57Z roniz: oh 2015-05-15T19:13:07Z alexei___ joined #scheme 2015-05-15T19:13:09Z roniz: I would like something compatible with racket 2015-05-15T19:13:17Z mario-goulart: roniz: racket is a different language. It is inspired by scheme, but it is not scheme. It used to be, though. 2015-05-15T19:13:21Z vraid: mario-goulart: racket doesn't have set-car! and set-cdr!. that's it. 2015-05-15T19:13:24Z mario-goulart: (when it was PLT Scheme) 2015-05-15T19:13:31Z roniz: ok 2015-05-15T19:13:35Z roniz: what is real scheme then? 2015-05-15T19:13:38Z Pixel_Outlaw: roniz, you can set Racket to use the old R5RS scheme. 2015-05-15T19:14:05Z ASau: zacts: note that when you'll decide to study functional data structures, you'll need other languages really. :) 2015-05-15T19:14:06Z mario-goulart: roniz: real Schemes are those which follow the scheme specification(s). 2015-05-15T19:14:15Z ijp: so none of them 2015-05-15T19:14:18Z mario-goulart: :-) 2015-05-15T19:14:20Z ASau: zacts: and unfortunately, this shouldn't be Scheme either. 2015-05-15T19:14:26Z zacts: ASau: I would probably choose Haskell for functional data structures 2015-05-15T19:14:26Z roniz: its just the person who is teaching me Lisp said to use racket 2015-05-15T19:14:30Z Pixel_Outlaw: R5RS is pretty much the most common standard. 2015-05-15T19:14:33Z zacts: does that sound somewhat reasonable? 2015-05-15T19:14:43Z zacts: roniz: I'm using racket as my main first language 2015-05-15T19:14:47Z roniz: ok 2015-05-15T19:14:54Z zacts: I'm focusing on design and abstractions right now 2015-05-15T19:14:57Z roniz: it requires cairo/xorg fot some reason 2015-05-15T19:15:02Z ASau: zacts: yes, if you learn to deal with laziness before you start FDS. 2015-05-15T19:15:03Z zacts: roniz: which distro? 2015-05-15T19:15:06Z roniz: gentoo 2015-05-15T19:15:13Z roniz: I even did -X for my use flag 2015-05-15T19:15:19Z ASau: zacts: if not, you'd rather choose O'Caml. 2015-05-15T19:15:42Z zacts: personally, the only main reason for me wanting to learn C, is to learn UNIX / syscalls, and to do some kernel / OS level hacking one day 2015-05-15T19:15:46Z zacts: (on existing systems) 2015-05-15T19:15:57Z zacts: although I don't know if the NetBSD lua project ever made more progress 2015-05-15T19:16:00Z ASau: That's the only valid reason essentially. 2015-05-15T19:16:07Z zacts: it would be an interesting idea to make device drivers using lua 2015-05-15T19:16:25Z ASau: Arlight, there's professional reason to learn it in order to work in embedded systems. 2015-05-15T19:16:36Z Pixel_Outlaw: I did use Java in the corporate world and a lot of programs would pause for long periods. I always assumed Java was trying to self collect for garbage collection. 2015-05-15T19:16:36Z zacts: plus there is more UNIX literature that uses C than say C++ or Racket, or other languages 2015-05-15T19:16:59Z ASau: That's legacy. 2015-05-15T19:17:08Z ASau: IOW, not a reason to waste your time. 2015-05-15T19:18:07Z vraid: roniz: racket has a sicp-compatible mode, don't worry 2015-05-15T19:19:31Z Pixel_Outlaw: Unfortunately he will not have the screeching midi into and see The Sussman don the sacred fez and overcoat. 2015-05-15T19:19:41Z Pixel_Outlaw: *intro 2015-05-15T19:20:29Z roniz: I dont want to use racket 2015-05-15T19:20:30Z roniz: ah fuck it 2015-05-15T19:20:35Z zacts: why not? 2015-05-15T19:20:49Z roniz: I just wanted to learn LISP 2015-05-15T19:20:56Z roniz: why does life have to be so hard 2015-05-15T19:20:59Z zacts: roniz: well I hear Pracical Common Lisp is good 2015-05-15T19:21:01Z zacts: and CLOS book 2015-05-15T19:21:07Z mario-goulart: roniz: building chibi or chicken is a breeze. If you use gentoo you have anything you need. 2015-05-15T19:21:07Z zacts: and The Art of the Metaobject Protocol 2015-05-15T19:21:12Z zacts: and Let over Lambda 2015-05-15T19:21:13Z vraid: roniz: well, there's no one lisp 2015-05-15T19:21:19Z ASau: Pixel_Outlaw: I can assure you that if you use quadratic algorithm where logarithmic time is enough, I can beat your program even in python. 2015-05-15T19:21:26Z zacts: vraid: I'm assuming roniz means CL 2015-05-15T19:21:41Z uber_hulk quit (Quit: Connection closed for inactivity) 2015-05-15T19:21:50Z ASau: roniz: You really don't want to learn LISP. 2015-05-15T19:22:12Z ASau: roniz: the last version of LISP was 1.5 and it dates back to mid-sixties. 2015-05-15T19:22:14Z Pixel_Outlaw: It is not a language you kind of casually fall into. Takes a lot of practice... 2015-05-15T19:22:50Z zacts: ASau: you are like a car salesperson that talks every customer out of buying a car 2015-05-15T19:23:02Z Pixel_Outlaw: lol 2015-05-15T19:23:25Z Pixel_Outlaw: He must get bigger commission on Java. 2015-05-15T19:23:25Z roniz: I never had this problem with C 2015-05-15T19:23:53Z ASau: zacts: yes, because we don't need one more bad programmer. 2015-05-15T19:24:06Z ASau: Neither in Common Lisp, nor in Scheme. 2015-05-15T19:24:15Z zacts: ASau: well, my goal in life is to train hipsters to be really great at being hipsters 2015-05-15T19:24:19Z ASau: This contributes to bad image of bad languages. 2015-05-15T19:24:34Z vraid: Pixel_Outlaw: it's like one of these russian/israeli/american internet trolls who are hired by the government to spread propaganda. only this one was hired by indonesia, and was confused as to which java he was supposed to promote 2015-05-15T19:25:04Z Pixel_Outlaw: top kek 2015-05-15T19:25:19Z mario-goulart: roniz: isn't building stuff an option for you? 2015-05-15T19:25:44Z roniz: I build stuff everyday 2015-05-15T19:25:45Z mario-goulart: roniz: I'm quite sure chicken is in gentoo and doesn't require any graphic lib. 2015-05-15T19:25:51Z zacts: mmm... shrimp soup 2015-05-15T19:25:53Z zacts: tom yum 2015-05-15T19:26:03Z zacts: my aunt brought some food over 2015-05-15T19:26:04Z roniz: there is a dodgy ebuild for chicken 2015-05-15T19:26:07Z roniz: it does not work 2015-05-15T19:26:13Z mario-goulart: jesus 2015-05-15T19:26:14Z roniz: racket requires a graphics library 2015-05-15T19:26:41Z zacts: roniz: just install chicken locally 2015-05-15T19:26:42Z zacts: ~/bin 2015-05-15T19:26:44Z zacts: or something 2015-05-15T19:26:52Z ASau: roniz: since when does it? 2015-05-15T19:26:53Z zacts: ~/chicken 2015-05-15T19:27:01Z roniz quit (Quit: leaving) 2015-05-15T19:27:05Z ASau: roniz: how come that it doesn't for me but does for you? 2015-05-15T19:27:06Z zacts: just download the source from the chicken scheme homepage 2015-05-15T19:27:11Z zacts: it takes like 30 sec to build 2015-05-15T19:27:14Z hsvcr quit (Ping timeout: 272 seconds) 2015-05-15T19:27:15Z Pixel_Outlaw: No idea why a Gentoo user gives up so easily. 2015-05-15T19:27:40Z Pixel_Outlaw: Gentoo is by definition swimming upstream and learning on your own. 2015-05-15T19:27:52Z mario-goulart: Easily? 2015-05-15T19:28:08Z mario-goulart: Have you read the amount of trolling and bullshit in the last hour? 2015-05-15T19:28:27Z hsvcr joined #scheme 2015-05-15T19:28:30Z Pixel_Outlaw: Most of it. 2015-05-15T19:28:47Z zadock quit (Quit: Leaving) 2015-05-15T19:28:57Z mario-goulart: I'd had given up much earlier. 2015-05-15T19:29:14Z vraid: someone forgot the terminating condition on the bullshit recursion 2015-05-15T19:29:29Z daviid: use guix and guile/geiser and you're good for the next century 2015-05-15T19:30:09Z daviid: zacts: guile has goops, no need to suffer lisp :) 2015-05-15T19:30:32Z zacts: isn't goops based heavily on CLOS? 2015-05-15T19:30:45Z daviid: yep 2015-05-15T19:30:53Z daviid: thnks god 2015-05-15T19:31:20Z ASau: Is Guile based on CLOS? 2015-05-15T19:31:33Z zacts: no 2015-05-15T19:31:36Z zacts: goops 2015-05-15T19:31:48Z ASau: Whatever. 2015-05-15T19:31:54Z ASau: Is Guide based on goops? 2015-05-15T19:31:59Z ijp: no 2015-05-15T19:32:00Z ASau: Guile 2015-05-15T19:32:14Z ASau: Then what do you call "no need to suffer lisp"? 2015-05-15T19:32:15Z ijp: I'd remove it in a heartbeat if I could 2015-05-15T19:32:19Z daviid: haha, that was the bet of this afternoon :) 2015-05-15T19:32:24Z ASau: How does Guile implements sequences then? 2015-05-15T19:32:41Z the-kenny joined #scheme 2015-05-15T19:32:56Z ASau: With the same monomorphic approach of "set-car!"? 2015-05-15T19:32:56Z vraid: ASau: i think it puts one element after the other 2015-05-15T19:33:27Z wasamasa awards vraid the sherlock holmes badge 2015-05-15T19:34:33Z zacts: lol 2015-05-15T19:35:00Z Pixel_Outlaw: Aaaand now the theme from the modern TV Sherlock is in my head. 2015-05-15T19:36:03Z zacts: and now I have for some odd random reason the theme to the original Hawaii five 0 television series going in my head 2015-05-15T19:38:11Z askatasuna joined #scheme 2015-05-15T19:40:32Z davexunit quit (Quit: Later) 2015-05-15T19:41:20Z annodomini quit (Quit: annodomini) 2015-05-15T19:45:15Z ijp quit (Quit: brb emacs training montage) 2015-05-15T19:46:40Z bipt` is now known as bipt 2015-05-15T19:56:23Z excelsior quit (Quit: Lost terminal) 2015-05-15T19:57:58Z PinealGlandOptic quit (Ping timeout: 265 seconds) 2015-05-15T19:59:32Z taylanub: ASau: generalized sequence operations are outside the Scheme standards. Guile's OOP module, GOOPS, has some. 2015-05-15T20:00:10Z ASau: I understand that they are. 2015-05-15T20:00:13Z taylanub: (well there's also the "generalized vector API" but IIRC the sentiment on it was that it's not very nice) 2015-05-15T20:00:22Z zacts: One thing I like about scheme is that you can explore new ideas in language design 2015-05-15T20:00:37Z zacts: the s-expr syntax is so easy to parse, you can focus exlusively on semantics 2015-05-15T20:00:42Z ASau: The question is whether Guile utilises its CLOS-like system in a way some CL implementations do or not. 2015-05-15T20:00:53Z taylanub: ASau: GOOPS is similar to CLOS, yes 2015-05-15T20:01:00Z ASau sighs. 2015-05-15T20:01:06Z ASau: I don't care if it is similar or not. 2015-05-15T20:01:11Z ASau: I'm asking if it is used or not. 2015-05-15T20:01:31Z taylanub: I believe I just told you 2015-05-15T20:01:34Z ASau: Is it used for sequences, exceptions/conditions and other fundamental stuff or not? 2015-05-15T20:01:55Z ASau: You tell me the same bullshit nobody is interested in. 2015-05-15T20:02:11Z ASau: I'm not interested if GOOPS exists. 2015-05-15T20:02:13Z taylanub: I'm trying to help you but I guess you didn't want that 2015-05-15T20:02:20Z ASau: I'm interested in it being used. 2015-05-15T20:02:27Z taylanub: go read the Guile manual for yourself and figure out then 2015-05-15T20:02:34Z mario-goulart: ASau: So why don't you download the source and check yourserf? It's opens source. Much better than trolling away. 2015-05-15T20:02:35Z ASau: So, it isn't. 2015-05-15T20:03:14Z taylanub: sheesh, people getting mad from being helped, talk about vampires 2015-05-15T20:03:18Z ASau: mario-goulart: I'm not that interested in non-free software that provides feature that isn't actually used. 2015-05-15T20:03:37Z vraid: taylanub: s/people/trolls 2015-05-15T20:03:46Z mario-goulart: If you are not interested, just don't ask. 2015-05-15T20:04:06Z taylanub: hmm, did someone just imply that GPL is a non-free license? 2015-05-15T20:04:15Z ASau: If he would tell me that it is used indeed then the talk would be different. 2015-05-15T20:04:31Z ASau: Instead he started telling me the usual bullshit that "feature exists." 2015-05-15T20:04:31Z vraid: ASau: if you're not interested in features that aren't used, the fact that you're interested shows that it's used. QED 2015-05-15T20:05:20Z taylanub: ASau: There was recently an international arms reduction conference on the subject of your social skills. 2015-05-15T20:05:28Z ASau: vraid: you have demonstrated lack of your knowledge in CL. 2015-05-15T20:05:34Z taylanub stole that from fsbot 2015-05-15T20:05:47Z ASau: vraid: in CL, CLOS is used extensively. 2015-05-15T20:05:56Z the-kenny: ha, this here is perfect friday night entertainment 2015-05-15T20:05:57Z civodul joined #scheme 2015-05-15T20:06:29Z vraid: ASau: ah. i'm not a fan of beer myself, but i hear it's big in germany 2015-05-15T20:06:37Z gravicappa quit (Ping timeout: 258 seconds) 2015-05-15T20:06:37Z ASau: I have asked if GOOPS is used in similar fashion. 2015-05-15T20:06:49Z ASau: I was given an answer that "GOOPS exists." 2015-05-15T20:07:07Z ASau: Thanks, C.O. 2015-05-15T20:07:25Z taylanub: ASau: fun-fact: I was typing in the answer as you first insulted me. tough luck! 2015-05-15T20:07:49Z taylanub: now I'm irritated and you didn't get your answer 2015-05-15T20:08:04Z wasamasa: taylanub: finish him 2015-05-15T20:08:54Z ASau: wasamasa: :p 2015-05-15T20:10:05Z wasamasa looks for the mortal kombat single 2015-05-15T20:14:42Z jlongster quit (Read error: Connection reset by peer) 2015-05-15T20:15:35Z jlongster joined #scheme 2015-05-15T20:16:46Z pnkfelix joined #scheme 2015-05-15T20:17:49Z lritter__ joined #scheme 2015-05-15T20:19:04Z rudybot quit (Remote host closed the connection) 2015-05-15T20:19:19Z rudybot joined #scheme 2015-05-15T20:21:17Z lritter_ quit (Ping timeout: 246 seconds) 2015-05-15T20:26:08Z Pixel_Outlaw: There were those Babalities and Friendships I recall. 2015-05-15T20:26:14Z hsvcr quit (Read error: Connection reset by peer) 2015-05-15T20:26:54Z pjdelport quit (Quit: Connection closed for inactivity) 2015-05-15T20:28:09Z hiroakip joined #scheme 2015-05-15T20:41:28Z pnkfelix quit (Ping timeout: 265 seconds) 2015-05-15T20:43:57Z alezost quit (Quit: I use GNU Guix ) 2015-05-15T20:48:46Z badkins quit 2015-05-15T20:49:47Z hsvcr joined #scheme 2015-05-15T21:02:49Z wingo quit (Ping timeout: 264 seconds) 2015-05-15T21:19:43Z hsvcr quit (Quit: Leaving) 2015-05-15T21:25:03Z badkins joined #scheme 2015-05-15T21:26:00Z Riastradh joined #scheme 2015-05-15T21:26:48Z PinealGlandOptic joined #scheme 2015-05-15T21:29:32Z joneshf-laptop quit (Ping timeout: 246 seconds) 2015-05-15T21:47:49Z spew joined #scheme 2015-05-15T21:54:33Z ues4f5jgvc joined #scheme 2015-05-15T21:55:21Z pnpuff joined #scheme 2015-05-15T21:56:27Z pnpuff quit (Client Quit) 2015-05-15T21:59:07Z someircname quit (Quit: ) 2015-05-15T22:00:08Z developernotes quit (Quit: Textual IRC Client: www.textualapp.com) 2015-05-15T22:00:23Z caleb_smith quit (Ping timeout: 264 seconds) 2015-05-15T22:00:37Z hiroakip quit (Remote host closed the connection) 2015-05-15T22:01:14Z hiroakip joined #scheme 2015-05-15T22:06:04Z hiroakip quit (Ping timeout: 244 seconds) 2015-05-15T22:11:08Z jlongster quit (Ping timeout: 272 seconds) 2015-05-15T22:18:01Z Pixel_Outlaw: I wonder why r5rs never required a random function. 2015-05-15T22:18:12Z Pixel_Outlaw: It would have been nice to have such a thing by default. 2015-05-15T22:18:59Z fds: SRFI 27? 2015-05-15T22:20:41Z Pixel_Outlaw: That'll do. 2015-05-15T22:21:45Z Pixel_Outlaw: I noted that Chicken had it and was happy because I missed it greatly when toying around with the strict r5rs subset. 2015-05-15T22:22:52Z askatasuna quit (Quit: WeeChat 1.1.1) 2015-05-15T22:29:49Z Riastradh: `A random function' is practically guaranteed to be the wrong thing for every real-world application. 2015-05-15T22:30:02Z someircname joined #scheme 2015-05-15T22:31:49Z Pixel_Outlaw: What about in the area of procedural generation? 2015-05-15T22:33:34Z Riastradh: ? 2015-05-15T22:34:20Z Pixel_Outlaw: Sometimes I will use a random function for procedural things. Things like Perlin noise and terrain generation. 2015-05-15T22:34:25Z vraid: random functions that take a state and return a value and a new state are nice 2015-05-15T22:34:32Z Riastradh: Do you want it to be reproducible? 2015-05-15T22:34:59Z Pixel_Outlaw: Sometimes. Really depends on if the result is to be stored. 2015-05-15T22:35:02Z Riastradh: If so, you need more than Common Lisp's (random [n]), which is what one would often take `a random function' to mean. 2015-05-15T22:35:16Z Riastradh: If not, you're probably not doing adequate automatic testing for serious engineering. 2015-05-15T22:35:22Z Pixel_Outlaw: I recall Common Lisp's RNG not being portable. 2015-05-15T22:35:48Z Riastradh: And you also need more than a generic, algorithm-independent PRNG API. 2015-05-15T22:36:25Z Riastradh: Do you have an adversary from whom you must keep unpredictable secrets? If so, you need a cryptographic PRNG, not just any old PRNG, and you need an entropy source. 2015-05-15T22:37:01Z Riastradh: And better if the cryptographic PRNG is reproducible (that is, if the API you're using is tied to a specific cryptographic PRNG) so you can have test vectors. 2015-05-15T22:38:04Z Pixel_Outlaw: Riastradh, I know these things. I use random numbers to generate content for art and other projects. 2015-05-15T22:39:02Z Riastradh: Fair enough. Just pointing out reasons why `a random function' prescribed by the standard has negative consequences. 2015-05-15T22:39:13Z Riastradh: (Note SRFI 27 fails all the above criteria.) 2015-05-15T22:39:42Z vraid: Riastradh: here's with racket's reproducible random function http://i.imgur.com/rnptWjX.png 2015-05-15T22:39:54Z Pixel_Outlaw: I understand. :) 2015-05-15T22:40:10Z Pixel_Outlaw: Yes, stuff like that. Exactly vraid. 2015-05-15T22:40:57Z kephra: Numerical Recipes in C has several random generators ... *ok* they are in C ;-) 2015-05-15T22:41:21Z Riastradh: So, if you want a PRNG, it's easy enough to copy & paste one in your application. There are pretty short reasonable ones. 2015-05-15T22:41:47Z Riastradh: Here's one that I use: http://mumble.net/~campbell/python/weakprng.py (using chacha.py in the same directory) 2015-05-15T22:42:05Z someircname quit (Remote host closed the connection) 2015-05-15T22:42:28Z someircname joined #scheme 2015-05-15T22:43:47Z Riastradh: (Rewriting that in Scheme is left as an easy exercise for the reader. The `weak' there means it does not provide the property variously called key erasure, forward secrecy, or backtracking resistance, not that it will fail any standard statistical test you throw at it.) 2015-05-15T22:53:17Z civodul quit (Quit: ERC (IRC client for Emacs 24.5.1)) 2015-05-15T23:00:51Z spew quit (Quit: leaving) 2015-05-15T23:05:37Z adu joined #scheme 2015-05-15T23:17:44Z adu quit (Quit: adu) 2015-05-15T23:18:47Z dpk: !seen jcowan 2015-05-15T23:18:57Z dpk: rudybot: seen jcowan 2015-05-15T23:18:57Z rudybot: dpk: jcowan was seen joining in #scheme five weeks ago, and then jcowan was seen quitting five weeks ago, saying "Quit: Leaving" 2015-05-15T23:19:25Z Pixel_Outlaw: !seen rudybot 2015-05-15T23:19:54Z Pixel_Outlaw: Poor thing has not become sentient yet. More Lisp is required. 2015-05-15T23:29:11Z Riastradh quit (Ping timeout: 264 seconds) 2015-05-15T23:33:56Z itissid quit (Quit: Leaving.) 2015-05-15T23:37:51Z pnkfelix joined #scheme 2015-05-15T23:40:08Z itissid joined #scheme 2015-05-15T23:42:51Z bb010g joined #scheme 2015-05-15T23:42:59Z itissid quit (Client Quit) 2015-05-15T23:47:34Z badkins_ joined #scheme 2015-05-15T23:48:02Z alexei___ quit (Ping timeout: 265 seconds) 2015-05-15T23:50:28Z badkins quit (Ping timeout: 258 seconds) 2015-05-15T23:52:33Z jao quit (Ping timeout: 240 seconds) 2015-05-15T23:56:01Z zacts: lo 2015-05-15T23:56:14Z zacts: I'm about to head home from a cafe 2015-05-15T23:56:56Z Pixel_Outlaw: I can never seem to program in public. 2015-05-15T23:57:36Z zacts: Pixel_Outlaw: heh, I just noticed that problem just now (not with programming, but with studying) 2015-05-15T23:58:06Z zacts: If I'm studying something like math or logic I get really shy that people will ask what I'm working on if they see my equations and things 2015-05-15T23:58:34Z Pixel_Outlaw: If she's cute buy her a coffee. 2015-05-15T23:58:40Z Pixel_Outlaw: heh 2015-05-15T23:59:05Z zacts: heh, yes that's the only time I find public study is stratigically useful 2015-05-15T23:59:09Z zacts: (for myself) 2015-05-15T23:59:25Z zacts: but, I'm a really really shy person, in person 2015-05-15T23:59:33Z vraid: zacts: tell them you're trying to balance your budget; people will be gone before you know it 2015-05-15T23:59:40Z Pixel_Outlaw: I dont' like open spaces for working on th computer. I just don't like people looking at my screen 2015-05-15T23:59:43Z zacts: like I hate speaking vocally in front of people 2015-05-15T23:59:54Z zacts: like public speaking and presentations