--- Log opened Fri May 18 00:00:41 2012 |
00:01 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
00:24 | | Number3 is now known as ShellNinja |
00:34 | | Janus [NSwebIRC@Nightstar-afc5b963.res.rr.com] has quit [[NS] Quit: Page closed] |
00:40 | < Rhamphoryncus> | augh. 200 kB of source for a tutorial |
00:41 | <&McMartin> | That is a lot of source |
00:42 | < Rhamphoryncus> | oops, there's two images I included. Only 140 kB |
00:42 | <&McMartin> | TF: Note that I suspect Clojure-CLR is not unlike stock Clojure in that you have to specially mark certain modules as being exported classes and then have them follow the JVM/CLR rules. |
00:42 | <&McMartin> | Among other things, that means all top-level S-expressions should be either ns or variants of def. |
00:44 | < Rhamphoryncus> | All I want to do is render a trivial square patch that I can then build on with tessellation |
00:45 | | You're now known as TheWatcher[T-2] |
00:46 | <@ToxicFrog> | McMartin: oh that might be it |
00:46 | <@ToxicFrog> | Although the total failure of error reporting does not make my happy |
00:47 | <&McMartin> | I have no idea if Clojure-CLR complies with :gen-class directives in a meaningful way |
00:48 | <&McMartin> | But try this |
00:48 | <&McMartin> | (ns test.hello (:gen-class)) (defn -main [] (println "Hello, world!")) |
00:48 | <&McMartin> | And see if that compiles. |
00:48 | | * TheWatcher[T-2] eyes SMBC, facepalm |
00:50 | | You're now known as TheWatcher[zZzZ] |
00:51 | < Rhamphoryncus> | this other one includes glew and a few other libraries with it. 2.2 MB |
00:53 | < Rhamphoryncus> | The main program is only 15 kB, but it offloads a ton of the work to the various libraries, so I can safely assume just copying the main parts would NOT work |
01:00 | | Noah [nbarr@Nightstar-65ece756.pools.spcsdns.net] has joined #code |
01:16 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
01:16 | | mode/#code [+o himi] by ChanServ |
01:21 | | Derakon[AFK] is now known as Derakon |
01:24 | < Noah> | "ToxicFrog> d to wear a t-shirt that reads: "I'm Donald Knuth and You're Not". It's in the Rules."" | http://goo.gl/TyaJ9 |
01:32 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Operation timed out] |
01:38 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
01:38 | | mode/#code [+o ToxicFrog] by ChanServ |
02:01 | | * jerith stabs Apple in the face. |
02:01 | <&jerith> | I cannot install Xcode. |
02:01 | <&jerith> | First, I had to download 4 gigs of crap I don't want or need, because that's the only package available. |
02:02 | <&jerith> | Second, I need to unselect the iOS SDK bits when installing, otherwise it wants a further 10 gigs of disk. |
02:02 | <&jerith> | Third, the installation fails with no explanation. |
02:03 | <&jerith> | When I go trawling through console logs, I find a cryptic reference to an expired cert. On the iOS SDK. |
02:04 | <&jerith> | Now it seems that the damned thing has /partially/ installed. |
02:05 | | maoranma [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code |
02:05 | < maoranma> | jerith: Yay? |
02:08 | | Noah [nbarr@Nightstar-65ece756.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
02:08 | <&jerith> | maoranma: Not yay. |
02:09 | < maoranma> | ohs |
02:09 | | maoranma is now known as Noah |
02:09 | <&jerith> | Because it hasn't installed the commandline stuff, which is what I actually want. |
02:11 | | Kindamoody[zZz] is now known as Kindamoody |
02:12 | < Noah> | Call Apple up, be all like |
02:12 | < Noah> | I HATE YOU |
02:12 | < Noah> | I WANT TO TALK TO THE GUY IN CHARGE |
02:12 | <&McMartin> | He's dead |
02:12 | < Noah> | Damnit McMartin, I was getting there |
02:13 | <&McMartin> | ZOMBIE STEVE SHALL FEAST UPON YOUR DELICIOUS TENDER BRAINMEATS |
02:13 | < Noah> | Introducing, the iBrain |
02:14 | < Noah> | Not the iBrian, which is what I first typed. |
02:16 | < celticminstrel> | Heh. |
02:22 | | Attilla [Obsolete@Nightstar-674cce85.threembb.co.uk] has quit [Ping timeout: 121 seconds] |
04:55 | < celticminstrel> | Uh, what? "Conversion from string literal to 'char *' is deprecated"? |
04:55 | < celticminstrel> | Wait, maybe that means I got my arguments backwards... |
04:55 | < celticminstrel> | The format string comes last, not first, right? |
05:01 | <~Vornicus> | format string goes first |
05:01 | <~Vornicus> | in sprintf etc, at least |
05:03 | < celticminstrel> | By "last" I meant "last argument before the variadic arguments". |
05:03 | < celticminstrel> | So sprintf("%d", mystring, 5) vs sprintf(mystring, "%d", 5) |
05:05 | <~Vornicus> | oh oh. |
05:05 | <~Vornicus> | uh. |
05:06 | <~Vornicus> | right, yes. the latter |
05:10 | < celticminstrel> | Whee, I now have numeric overlays thanks to SDL_ttf! |
05:12 | | Kindamoody is now known as Kindamoody|out |
05:12 | < celticminstrel> | Though I should probably user a font other than Courier. |
05:18 | | ErikMesoy|sleep is now known as ErikMesoy |
05:30 | < celticminstrel> | Well, now I know why this didn't work. Things have incorrect data. |
06:00 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Connection closed] |
06:04 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
06:04 | | mode/#code [+o himi] by ChanServ |
06:33 | < celticminstrel> | It's nice that XCode has git integration, but it's a bit... basic, I guess? |
06:33 | | Derakon is now known as Derakon[AFK] |
06:40 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
07:30 | | Reiv [reiverta@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
07:37 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds] |
07:39 | | eckse [eckse@Nightstar-3b021371.dsl.sentex.ca] has quit [Client closed the connection] |
07:42 | | Reiv [reiverta@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
07:43 | | Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
07:49 | | Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code |
07:52 | | Reiv [reiverta@3CF3A5.E1CD01.C6689C.33956A] has joined #code |
08:23 | | Reiv [reiverta@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds] |
09:16 | < Rhamphoryncus> | ooh, SDL_ttf. I'll have to remember it exists when I get to the point of drawing text |
09:21 | | maoranma [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code |
09:24 | | Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
09:24 | | * Rhamphoryncus 's brain melts from trying to decipher opengl4 tessellation tutorials |
09:32 | | You're now known as TheWatcher |
09:49 | | maoranma [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has quit [Ping timeout: 121 seconds] |
10:37 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
10:38 | | mode/#code [+o himi] by ChanServ |
11:04 | | Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has joined #code |
11:11 | | * TheWatcher is curious why you're doing it that way, anyway |
11:12 | | RichyB [MyCatVerbs@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
11:46 | | * TheWatcher vaguely stabs the OSQA developers in the head |
12:10 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
12:19 | | AnnoDomini [annodomini@Nightstar-02cfc713.connect.netcom.no] has joined #code |
12:20 | | mode/#code [+o AnnoDomini] by ChanServ |
12:20 | | Atreus is now known as Tarinaky |
12:23 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:23 | | mode/#code [+o himi] by ChanServ |
12:23 | | * AnnoDomini would like to show his great appreciation of http://www.sakis3g.org/ the magical modem configuration script. |
13:09 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
14:00 | | Kindamoody|out is now known as Kindamoody |
14:01 | | AnnoDomini [annodomini@Nightstar-02cfc713.connect.netcom.no] has quit [[NS] Quit: Away!] |
14:10 | | rayvolver [rayvolver@Nightstar-47574112.dip.t-dialin.net] has joined #code |
14:19 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited] |
14:34 | | rayvolver [rayvolver@Nightstar-47574112.dip.t-dialin.net] has left #code [] |
16:38 | | Kindamoody is now known as Kindamoody|out |
16:55 | | eckse [eckse@Nightstar-f37f8545.dsl.sentex.ca] has joined #code |
16:55 | | mode/#code [+o eckse] by ChanServ |
16:59 | | Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code |
17:28 | | ErikMesoy1 [Erik_Mesoy@A08927.B4421D.B81A91.464BAB] has joined #code |
17:28 | | ErikMesoy [Erik_Mesoy@Nightstar-bd2f5f93.80-203-16.nextgentel.com] has quit [NickServ (GHOST command used by ErikMesoy1)] |
17:28 | | ErikMesoy1 is now known as ErikMesoy |
18:32 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has quit [Operation timed out] |
19:04 | | celticminstrel [celticminst@Nightstar-5d22ab1d.cable.rogers.com] has joined #code |
19:11 | | Chi [omegaboot@Nightstar-efc8dc53.il.comcast.net] has joined #code |
19:11 | | mode/#code [+o Chi] by ChanServ |
19:11 | | Alek [omegaboot@Nightstar-efc8dc53.il.comcast.net] has quit [Ping timeout: 121 seconds] |
19:33 | < celticminstrel> | ...Linker error: missing typeinfo for nullptr_t... |
19:36 | < Noah> | At least you were getting errors, had to punch my bot in the face over and over before it would tell me anything |
19:36 | | Kindamoody|out is now known as Kindamoody |
19:36 | < gnolam> | celticminstrel: namespace issue? |
19:36 | < celticminstrel> | How would that be a namespace issue? |
19:43 | < celticminstrel> | Something to do with Boost.Function... |
19:44 | < gnolam> | nullptr_t is in std, IIRC. |
19:45 | < celticminstrel> | I was comparing a boost::function to nullptr. |
19:46 | < gnolam> | Well. That is information we did not have. |
19:47 | < celticminstrel> | Nor did I until I found it just now. |
19:49 | | Chi is now known as Alek |
19:51 | | Kindamoody is now known as Kindamoody[zZz] |
21:20 | < celticminstrel> | Smooth motion between grid spaces is hard... |
21:34 | | Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code |
21:37 | | ErikMesoy is now known as ErikMesoy|sleep |
21:42 | | maoranma [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has joined #code |
21:43 | | Noah [nbarr@Nightstar-9e797a1c.pools.spcsdns.net] has quit [Client closed the connection] |
22:07 | <&McMartin> | Ha ha |
22:07 | <&McMartin> | [pdf]/001 K-Y says, "I think the Acrobat developers actively hate humanity" |
22:07 | <&McMartin> | [pdf]/002 K-Y says, "'let's scatter all the editing tools willy-nilly in every possible corner of the program'" |
22:07 | <&McMartin> | [pdf]/003 Johnny says, "Maybe they just hate you." |
22:07 | <&McMartin> | [pdf]/004 K-Y says, "not since The Silmarillion has there been a more concentrated effort to separate a collection of things" |
22:07 | <&McMartin> | [pdf]/005 K-Y says, "'here, dwarves, take these nine Advanced menu items'" |
22:07 | <@TheWatcher> | Pffft |
22:36 | | cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
22:45 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
23:02 | <&McMartin> | Oh heeeey, keyword arguments |
23:02 | | * McMartin should have been using those for awhile. |
23:09 | <&McMartin> | OK, yeah, just looking at the Light Table screenshots has taught me a great deal of Clojure I should have known. >_> |
23:09 | < Namegduf> | I think Light Table looks pretty neat. |
23:10 | < Namegduf> | I'm a backer for a copy. |
23:10 | | * McMartin too |
23:10 | < Namegduf> | I don't use either of the languages it ships with, but if all else fails, I can make language support. |
23:10 | | * McMartin is not convinced it's going to get Python in time. |
23:10 | <&McMartin> | I looked at the languages it supported and went "Hey, this Clojure thing looks like it might be pretty neat" and have been playing with it since. |
23:10 | < Namegduf> | I was originally worried it wouldn't succeed at all. |
23:11 | <&McMartin> | It helps, I suppose, that Java is one of the languages I used to be good at but have since abandoned scornfully |
23:11 | < Namegduf> | I dunno. |
23:11 | < Namegduf> | What's the advantage of learning it over, say, Scheme? |
23:12 | <&McMartin> | Depends on your goal. |
23:12 | < Namegduf> | Major tradeoffs? |
23:12 | <&McMartin> | (Scala is probably a better language than Clojure but for whatever reason Iodine refuses to run it acceptably) |
23:12 | <&McMartin> | Scheme, for one, is more a family of languages than a specific language, with "which implementations are workable" being a function of your task and then "which features do I actually have" being a function of that. |
23:13 | <&McMartin> | (That said, I had pretty good results with Gambit and I hear good things about Racket) |
23:13 | < Namegduf> | Huh. |
23:13 | < Namegduf> | Doesn't Scheme have a core standard? |
23:13 | <&McMartin> | It's unusably small. |
23:13 | < Namegduf> | Yeah. |
23:13 | <&McMartin> | So stuff like, you know, file I/O ends up being handled by only-vaguely-compatible extension. |
23:14 | < Namegduf> | Ah, I see. |
23:14 | <&McMartin> | Gambit's a C emitter and as such has excellent FFI. |
23:14 | <&McMartin> | Racket is the only full implementation of the latest Scheme Standard I'm aware of, and has a terrifying number of other extensions |
23:15 | <&McMartin> | I honestly consider Racket "The next Scheme" in the PLANNER->CNVR->SCHEME->??? list. |
23:15 | <&McMartin> | As a Lisp, Clojure is lacking, hard. |
23:16 | <&McMartin> | But it also has a lot of unusual special forms optimized for interop with highly abstracted large OO libraries |
23:16 | <&McMartin> | I'd use Scheme if I had something where Lisp was a good idea and for some reason Python wouldn't cover it for me. I have yet to find such a case outside of my project to seriously re-learn Scheme. |
23:17 | <&McMartin> | I'd use Clojure any time I *should* be using Java but don't want to have to deal with Java. |
23:17 | <&McMartin> | Scheme is a conceptually cleaner language, and the stunts you learn in Scheme are more likely to be broadly applicable to functional languages. |
23:18 | <&McMartin> | Though it's also clumsy about it compared to, say, Haskell, I find. |
23:18 | <&McMartin> | Though it also also has some super-clean things that then spoil you forever. |
23:18 | < Namegduf> | I think in reality I'd prefer to learn Haskell properly, yeah. |
23:18 | < Namegduf> | Haskell is beautiful in the "50 billion operators, none of which I recognise" way. |
23:18 | < Namegduf> | I'm sure it is much better when you're familiar with the grammar and volcabulary, so to speak. |
23:19 | <&McMartin> | Yeah |
23:19 | <&McMartin> | Racket is like Haskell that way. |
23:19 | <&McMartin> | Scheme is "There are three operators and you can do goddamned everything with them" |
23:19 | < Namegduf> | I think I usually prefer a more middle state. |
23:20 | <&McMartin> | Clojure has a couple of things that are "it turns out you don't need that full operator power to do that, so here's a special-case thing" |
23:20 | < Namegduf> | In Scheme there is a minimal core but in reality you need to memorise a whole bunch of stuff on top to do anything practically, if I get it right. |
23:20 | < Namegduf> | In Haskell you have a whole bunch of stuff to begin with. |
23:20 | <&McMartin> | Pretty much, though those techniques are good to have as fallbacks. |
23:20 | <&McMartin> | Yup. |
23:20 | < Namegduf> | (C++ is very bad there) |
23:20 | <&McMartin> | Also, better ordering of stuff in Haskell~ |
23:21 | <&McMartin> | But one thing Scheme has that other functionals seem to lack is basically recursion in the middle of your function. |
23:21 | < Namegduf> | I prefer a middle state where the toolset is made elegantish, but so it is sufficient for the majority of practical tasks. |
23:21 | < Namegduf> | Huh. |
23:21 | <&McMartin> | In Haskell you do a lot of f x = aux x where aux i = ... |
23:21 | <&McMartin> | Which in ML is let f x = let rec aux i = .... in aux x, which is ugly |
23:22 | <&McMartin> | Scheme *can* do (define (f x) (define (aux i) ...) (aux x)) |
23:22 | <&McMartin> | But it can also do, for instance... |
23:22 | <&McMartin> | (define (fib n) (let loop ((i 1) (a 0) (b 1)) (if (>= i n) b (loop (+ i 1) b (+ a b))))) |
23:23 | <&McMartin> | "loop" there is "this is a let-expression to define a bunch of variables, but also define a generalized setjmp/longjmp target here" |
23:23 | <&McMartin> | And then when you call that function I've named "loop", it's basically a stack-cutting call to the start of that loop. |
23:24 | <&McMartin> | (stack-replacing, actually, since that's how continuations roll, but in practice it's an "escape continuation" since it doesn't survive its defining expression, which makes it stack-cutting, like an exception...) |
23:24 | <&McMartin> | (... except that it's also only ever invoked from its own context as a tail call, so it's *actually* a GOTO.) |
23:24 | <&McMartin> | Clojure has special syntax that works similarly to this "named let", but it *only* works in this "like a GOTO" case. |
23:25 | <@TheWatcher> | Eyup, functional programming still messes with my headbones. |
23:26 | <&McMartin> | The most direct Clojure equivalent there is... |
23:26 | <&McMartin> | (defn fib [n] (loop [i 1 a 0 b 1] (if (>= i n) b (recur (+ i 1) b (+ a b))))) |
23:26 | <&McMartin> | Haskell can actually do a better version than this by defining an infinite lazy list in terms of its own tail >_> |
23:26 | < Namegduf> | Yeah. |
23:26 | <&McMartin> | But that's because it's lazy evaluation everywhere. |
23:28 | <&McMartin> | Haskell equivalent: |
23:28 | <&McMartin> | let fib n = aux 1 0 1 where aux i a b = if i >= n then b else aux (i+1) b (a+b) |
23:28 | <&McMartin> | Haskell lacks the "named let" so it has to use an internal recursive function to cover it |
23:29 | <&McMartin> | And, because I have way too many functional languages on this system, OCaml: |
23:29 | <&McMartin> | let fib n = let rec aux i a b = if i >= n then b else aux (i+1) b (a+b) in aux 1 0 1;; |
23:30 | < Namegduf> | Wow. |
23:30 | <&McMartin> | That one's IMO the ugliest but also the "most basic technique" |
23:30 | <&McMartin> | Note also that Clojure does *not* handle the Haskell/OCaml version correctly. |
23:31 | <&McMartin> | (That is, it turns them into a bunch of true function calls instead of optimizing the aux call into a GOTO) |
23:38 | <&McMartin> | Haskell is the prettiest and it's *reasonably* practical |
23:38 | <&McMartin> | But I have to say, if you're going to learn only one functional language and you plan to use it for stuff, learn OCaml. |
23:39 | <&McMartin> | It even has a .NET dialect (F#) if you need to do the thing Clojure does, but I'm not sure how intercompatible they are now. |
23:44 | | Attilla [Obsolete@Nightstar-6adb8d7f.as43234.net] has quit [Ping timeout: 121 seconds] |
23:51 | | You're now known as TheWatcher[T-2] |
23:53 | <&McMartin> | In other news, I am a bad person |
23:54 | | You're now known as TheWatcher[zZzZ] |
23:54 | | * McMartin is finding it easier to deal with this dialog box by editing the XML produced by Qt Designer rather than, like, actually *use* Qt Designer. |
--- Log closed Sat May 19 00:00:05 2012 |