--- Log opened Mon Jul 14 00:00:31 2014 |
01:26 | | Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has joined #code |
02:38 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
02:42 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
02:42 | | mode/#code [+o himi] by ChanServ |
03:34 | | Turaiel[Offline] is now known as Turaiel |
04:34 | | Attilla [uid13723@Nightstar-a0t.9ff.184.192.IP] has quit [[NS] Quit: Connection closed for inactivity] |
04:41 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
04:42 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
04:42 | | mode/#code [+o Checkmate] by ChanServ |
05:05 | | Derakon is now known as Derakon[AFK] |
05:35 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has quit [Connection closed] |
05:39 | | RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.] |
05:43 | | RchrdB [RichardB@Nightstar-c6u.vd5.170.83.IP] has joined #code |
05:45 | | JackKnife [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
05:45 | | mode/#code [+o JackKnife] by ChanServ |
05:46 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Connection closed] |
06:23 | | Turaiel is now known as Turaiel[Offline] |
06:26 | | JackKnife [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
06:38 | | Turaiel[Offline] [Brandon@Nightstar-5st1eu.mi.comcast.net] has quit [Ping timeout: 121 seconds] |
06:45 | | Turaiel[Offline] [Brandon@Nightstar-5st1eu.mi.comcast.net] has joined #code |
07:33 | | celticminstrel [celticminst@Nightstar-6pf18d.dsl.bell.ca] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
07:56 | | Kindamoody[zZz] is now known as Kindamoody |
08:46 | | Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has quit [[NS] Quit: BED] |
09:28 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
09:30 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
09:30 | | mode/#code [+o himi] by ChanServ |
09:54 | | macdjord is now known as macdjord|slep |
10:15 | | mode/#code [+o RchrdB] by ChanServ |
10:33 | | Attilla [uid13723@Nightstar-a0t.9ff.184.192.IP] has joined #code |
12:56 | | gnolam is now known as gnolam___ |
12:56 | | gnolam___ is now known as gnolam |
13:12 | | Turaiel[Offline] is now known as Turaiel |
13:33 | | Turaiel is now known as Turaiel[Offline] |
14:12 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
14:12 | | mode/#code [+o Checkmate] by ChanServ |
14:14 | | JackKnife [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
14:14 | | mode/#code [+o JackKnife] by ChanServ |
14:16 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
14:36 | | celticminstrel [celticminst@Nightstar-6pf18d.dsl.bell.ca] has joined #code |
14:36 | | mode/#code [+o celticminstrel] by ChanServ |
15:49 | | * ErikMesoy enjoys a "So that's what that button does" moment as he presses a button whose name is an unlocalized underscored_description and whose tooltip is blank. :D |
15:50 | < luke> | Was it the "Purge all data" button? |
15:51 | <@ErikMesoy> | More like a "Drive the refactor tractor over all data" button. |
15:51 | < luke> | Ah |
15:52 | <@ErikMesoy> | I was playing a medieval history sim, and the button immediately split every realm, destroyed all high-ranking titles, parceled out all low-ranking titles, and converted every ruler to some pagan religion. |
15:52 | <@ErikMesoy> | Suddenly, Europe was a thousand petty norse and celtic and hellenic chiefdoms. |
15:53 | < luke> | And the sim is *meant* to have a button that does that? |
15:53 | <@RchrdB> | That's the "forgot to pay the danegeld" button? |
15:54 | <@ErikMesoy> | luke: Evidently, yes. This isn't the sort of thing that happens by accident. |
16:21 | < abudhabi> | ErikMesoy: Did you activate the shattered_realms decision? |
16:24 | <@ErikMesoy> | No, this was reign_ancients. |
16:25 | < abudhabi> | What does shattering the realms do, then? |
16:27 | <@ErikMesoy> | Probably doesn't convert every ruler to pagan religion. |
16:29 | < luke> | I would imagine a shattered_realms button would probably rip Europe into several chunks. |
19:07 | | gnolam_ [lenin@Nightstar-rhnl04.cust.bredbandsbolaget.se] has joined #code |
19:09 | | gnolam [lenin@Nightstar-rhnl04.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds] |
19:42 | | gnolam_ is now known as gnolam |
19:43 | | mode/#code [+o gnolam] by ChanServ |
20:42 | | Kindamoody is now known as Kindamoody[zZz] |
21:36 | <@ErikMesoy> | Ahh, the wonders of compact expressive code. Now I can lose track of what I'm doing in only twenty lines! |
21:37 | <@Tamber> | :) |
21:54 | <@gnolam> | ... well that was easy |
21:54 | | * gnolam hugs Wikipedia. |
21:55 | <@gnolam> | From zero to a working EAN-13 label printing system in an evening. |
21:55 | <@Tamber> | :D |
22:10 | <&McMartin> | Nicely done |
22:29 | <@ErikMesoy> | What is the term for when I'm looping over "CurrentObject, RelevantVariables = CurrentObject.GetNextObjectAndNewVariables(RelevantVariables)" in order to traverse without winding up deep in a set of nested NextObject references? Is it tail recursion? |
22:34 | <@RchrdB> | ErikMesoy, iteration or tail recursion. Are you working in some kind of FPish language? |
22:34 | <@ErikMesoy> | RchrdB: Python. |
22:36 | <&McMartin> | Then you want to iterate, yeah. |
22:36 | <@RchrdB> | You don't get tail call optimisation in Python. You need to iterate. |
22:38 | < [R]> | The Vasa board has decided they wish to move forward with a Wild Apricot based website, this would mean the current Drupal install isn't required, and you wouldn't need to set any permissions for me. It does mean that the domain would have to be redirected, not immediately, but in the near future. To ease your work in the future, I think it'd be best if the credentials for the domain's control were available to myself and at least one board member. |
22:38 | < [R]> | ^ Trying to a hold of a domain from the ex-founder's (she's dead) husband, who is the ex-IT person for this non-profit (Vasa), but I don't want to come on really strong, is that phrasing good? |
22:38 | <@ErikMesoy> | RchrdB: What do you mean by "don't get"? Will I end up calling a hidden structure of FirstObject.NextObject.NextObject[...]NextObject.CurrentObject.GetNextObject() that goes really slow? |
22:39 | <@RchrdB> | ErikMesoy, no. Lemme illustrate. |
22:41 | <&ToxicFrog> | ErikMesoy: you can't safely "iterate" over a data structure using recursion, because each recursive call consumes another stack frame and eventually you run out of stack. |
22:41 | <&ToxicFrog> | In languages with tail call optimization there are ways to call without consuming the stack frame and thus you can process arbitrarily-large sequences with recursion as well as (or instead of) explicit looping structures like 'for'. |
22:44 | <&ToxicFrog> | ErikMesoy: a "tail call" is when you end a function with something of the form [return someOtherFunction(...)] -- this allows it (in languages with TCE, i.e. not Python) to call someOtherFunction() re-using the caller's stack frame. |
22:44 | <@RchrdB> | ErikMesoy, using http://pastebin.starforge.co.uk/641 as an example: |
22:44 | <&ToxicFrog> | "tail recursion" is just recursion with all calls done as tail calls. |
22:44 | <&McMartin> | Tail call is one of the "optimizations" that's not really an optimization and more of a language feature, because it makes the difference not between "runs fast" and "runs slow" but between "runs at all" and "crashes with an overflow error". |
22:45 | <&McMartin> | So it's really treated as a feature of the language |
22:45 | <&ToxicFrog> | McMartin: for this reason I generally prefer the term "tail call elimination" rather than "tail call optimization" |
22:45 | <@RchrdB> | ErikMesoy, iterate_over_things() there will use O(1) space and O(1) stack space, because each call to Thing() and each call to .get_new_thing() returns straight away, and there is only ever one instance of iterate_over_things() on the stack. |
22:46 | <@RchrdB> | ErikMesoy, and each time that loop goes around again, the GC will get an opportunity to throw away the now-obsolete Thing object from the last iteration, so it's all constant space. |
22:46 | <&ToxicFrog> | s/instance of/stack frame for/ |
22:47 | <@RchrdB> | ta |
22:48 | <@RchrdB> | ErikMesoy, whereas, in Python, because it lacks tail call elimination, the function "recurse_on_things()" takes `n` stack frames because it calls itself `n` times, and Python chooses not to eliminate tail calls. |
22:49 | <@RchrdB> | ... |
22:49 | | Orthia [orthianz@Nightstar-s5d.ntf.224.119.IP] has quit [Ping timeout: 121 seconds] |
22:49 | <@ErikMesoy> | I take it my loop is overflow-safe iteration, then. |
22:49 | <@RchrdB> | If you're calling "x = x.get_next()" in a while loop in Python, you don't build up any linear chain of memory usage that way, (unless x is itself some kind of thing that builds a chain as it goes). |
22:50 | <@RchrdB> | ErikMesoy, yep, you should be fine. |
22:54 | | Orthia [orthianz@Nightstar-mvf.9c1.224.119.IP] has joined #code |
22:54 | | mode/#code [+o Orthia] by ChanServ |
22:56 | <&McMartin> | Yeah. |
22:57 | <&McMartin> | If you look at machine code generated by an "eliminated" tail call, it is literally a goto |
22:57 | <&McMartin> | And a reassignment of a bunch of variables |
22:57 | <&McMartin> | Which is to say, it is totally what a C-style for loop compiles to |
23:14 | | Harlow [harlow@Nightstar-9hnfdm.il.comcast.net] has joined #code |
23:15 | < Harlow> | A general question, how long did it take for you guys to complete a CS degree? |
23:15 | <@TheWatcher> | 3 years. |
23:16 | < abudhabi> | Four years for the first, two years for the second. |
23:19 | <&ToxicFrog> | Seven years, but I interleaved it with leaves of absence to work. |
23:34 | <&jeroud> | Five years for an EE degree. |
23:36 | <&jeroud> | I was sufficiently self-taught by the end of high school that I decided CS would be boring. |
23:37 | <&jeroud> | (I was mostly right. I've picked up the theory stuff I missed in the decade or so since then and it was only a small part of the coursework.) |
23:38 | | Vornicus [Vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:38 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:42 | | Turaiel[Offline] is now known as Turaiel |
--- Log closed Tue Jul 15 00:00:47 2014 |