--- Log opened Mon Dec 09 00:00:29 2013 |
00:13 | <&ToxicFrog> | "square-tile base"? |
00:18 | <@Reiv> | Is it making it harder to do because you find you over-simplify? |
00:19 | <@Reiv> | Insufficient co-ordinates to properly map doors, for example. |
00:44 | | Harlow [Harlow@Nightstar-2dbe3d64.il.comcast.net] has joined #code |
00:45 | < Harlow> | does anyone know if TDP is the amount of energy that needs to be dissipated in a minute or a second? |
00:48 | | Turaiel is now known as Turaiel[Offline] |
00:51 | <&ToxicFrog> | Harlow: it's measured in watts, which is joules/second |
00:51 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
00:51 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:51 | <&ToxicFrog> | Well, typically measured in watts. If yours is measured in something else, adjust accordingly. |
01:06 | <@Alek> | has anyone ever seen a mAh rating on an alkaline battery, anyway? |
01:06 | <@Alek> | AA, to be precise? |
01:07 | < McMartin> | I think some of my NiMHs to. |
01:07 | < McMartin> | *do |
01:07 | | * Azash AVLs away |
01:07 | < McMartin> | Alek: The ones in my cupboard are marked 2650 mAh. |
01:09 | <@Alek> | McM: I did say alkaline. XD |
01:09 | < McMartin> | Oh, so you did~ |
01:09 | <@Alek> | rechargeables do have a mAh rating, yes, and it tends to vary with brand and model. |
01:10 | <@Alek> | 2650 is higher than I personally have seen, though. what make? |
01:10 | < McMartin> | The Energizer alkalines I just checked did not have the marker, as it happens. |
01:10 | < McMartin> | The NiMHs were Duracells. |
01:10 | <@Alek> | a 2300 lasts about, oh, 16 hours? a bit less? brand new, for me. -_- |
01:11 | < McMartin> | I used them for Wiimotes and they didn't last more than a day or two even if I wasn't using it. I think Wiimotes leak charge. -_- |
01:11 | <@Alek> | heh. duracell. them and energizer are the 2 most expensive household battery brands I've ever seen. |
01:11 | <@Alek> | they might have a trickle going constantly, yes. |
01:12 | <@Alek> | in comparison, Fry brand alkalines that I buy in packs of 100 for $17 last maybe 18-20 hours if I'm lucky. |
01:13 | <@Alek> | BUT |
01:13 | <@Alek> | that's if I use them in one fell swoop, over 1-2 days. |
01:13 | | You're now known as TheWatcher[T-2] |
01:14 | <@Alek> | if I use a couple hours here and then a few days later another couple hours, or so, it seems to add up to much less than that. maybe Fry brand are activated when first used and then have a trickle discharge even when not installed? |
01:14 | | * Alek doesn't know, shrugs. |
01:14 | <@Alek> | actually, no. |
01:15 | <@Alek> | because they last nice and long in regular battery-powered electronics. mainly remotes and mice, around here. |
01:16 | <@Alek> | now wait a hey. |
01:16 | <@Alek> | why did Cochlear never try lithium batteries for their speech processors? it's cheaper in the long run. |
01:17 | <@Alek> | oh yeah. they run hotter and that's a huge risk for body-worn stuff. -- |
01:17 | <@Alek> | -_- |
01:17 | | You're now known as TheWatcher[zZzZ] |
01:18 | <@Alek> | although the latest model might have proprietary-made lithium batteries, I'm not sure. |
01:34 | <@Reiv> | Alek: You're deaf? |
01:40 | <@Alek> | yeah. |
01:54 | | redwire [redwire@Nightstar-tsfae1.wst.mun.ca] has quit [[NS] Quit: My MacBook has gone to sleep. ZZZzzzâ¦] |
02:04 | | redwire [redwire@Nightstar-27dppb.nl.bellaliant.net] has joined #code |
02:12 | | Harlow [Harlow@Nightstar-2dbe3d64.il.comcast.net] has quit [[NS] Quit: BED] |
02:18 | | letsmaybeLP [letsmaybe@Nightstar-5a4.m1o.164.128.IP] has joined #code |
02:33 | < letsmaybeLP> | !news |
02:33 | < letsmaybeLP> | @code |
02:33 | < letsmaybeLP> | !help |
02:33 | | letsmaybeLP [letsmaybe@Nightstar-5a4.m1o.164.128.IP] has left #code ["Leaving"] |
02:34 | <@Alek> | ._. |
02:34 | <@Alek> | right... |
02:35 | < Shiz> | !list |
02:35 | | Shiz was kicked from #code by PinkFreud [There is no warez allowed on this network.] |
02:35 | | Shiz [mark@rhenium.shiz.me] has joined #code |
02:35 | < Shiz> | i was only making a fani |
02:35 | < Shiz> | :( |
02:45 | <@Reiv> | Yah, we have automated defenses. |
02:57 | | Derakon is now known as Derakon[AFK] |
03:27 | | Derakon[AFK] is now known as Derakon |
03:32 | | redwire [redwire@Nightstar-27dppb.nl.bellaliant.net] has quit [[NS] Quit: Textual IRC Client: www.textualapp.com] |
03:45 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
03:57 | < McMartin> | Here's a fun little generator: http://pastebin.starforge.co.uk/602 |
03:58 | < McMartin> | I started out trying to do it recursively, but then I realized that Python doesn't have cons~ |
03:58 | < Shiz> | line 5 has a redundant pair of brackets |
03:58 | < Shiz> | also, [ value ] + func() is all the cons you need |
03:58 | < Shiz> | :P |
03:59 | < McMartin> | Isn't that quadratic? |
04:00 | < McMartin> | That said, do yields in fact next like that? |
04:00 | < McMartin> | yield [ value] + generatorcall() |
04:01 | < Shiz> | I have no honest idea |
04:07 | <~Vornicus> | itertools.combinations? |
04:07 | < McMartin> | This is probably an implementation of that, yes~ |
04:08 | < McMartin> | It's a little over 10% faster |
04:09 | <&Derakon> | Your version is faster than itertools? |
04:09 | <&Derakon> | Submit a patch~ |
04:10 | < McMartin> | No |
04:10 | < McMartin> | Their version is faster |
04:10 | <&Derakon> | Ah, alas. |
04:10 | < McMartin> | Their version for k=8 is also about 2% faster than just nesting eight for loops. |
--- Log closed Mon Dec 09 04:26:15 2013 |
--- Log opened Mon Dec 09 04:49:03 2013 |
04:49 | | TheWatcher[zZzZ] [chris@Nightstar-ksqup0.co.uk] has joined #code |
04:49 | | Irssi: #code: Total of 39 nicks [17 ops, 0 halfops, 0 voices, 22 normal] |
04:49 | | mode/#code [+o TheWatcher[zZzZ]] by ChanServ |
04:49 | | Irssi: Join to #code was synced in 38 secs |
04:59 | | Derakon is now known as Derakon[AFK] |
05:01 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
05:27 | | RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has quit [[NS] Quit: Gone.] |
05:30 | | RichyB [RichyB@Nightstar-c6u.vd5.170.83.IP] has joined #code |
05:38 | | himi [fow035@Nightstar-q9amk4.ffp.csiro.au] has quit [Ping timeout: 121 seconds] |
07:18 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
07:18 | | mode/#code [+o himi] by ChanServ |
08:02 | | celticminstrel [celticminst@Nightstar-gj43l1.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
08:19 | | Kindamoody is now known as Kindamoody|out |
08:42 | | * jerith is pleased by the noew thecodelesscode. |
08:42 | <&jerith> | *new |
08:49 | <~Vornicus> | oh yes that is a good one. |
08:52 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has joined #code |
09:06 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has quit [[NS] Quit: Going dooooown...] |
09:06 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has joined #code |
09:06 | | mode/#code [+o Orthia] by ChanServ |
09:10 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has quit [Ping timeout: 121 seconds] |
09:10 | | Orthia [orthianz@Nightstar-avg.1ee.224.119.IP] has joined #code |
09:10 | | mode/#code [+o Orthia] by ChanServ |
09:30 | | You're now known as TheWatcher |
09:41 | <@Azash> | http://www.nytimes.com/2013/12/07/us/politics/slowly-they-modernize-a-federal-ag ency-that-still-uses-floppy-disks.html?_r=0 |
09:51 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has quit [[NS] Quit: If the world didn't suck, we'd all fall off.] |
09:59 | | AverageJoe [evil1@Nightstar-fb1kt4.ph.cox.net] has quit [[NS] Quit: Leaving] |
10:09 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
10:11 | <@Tarinaky> | Reiver: Something like that. Also it adds more to keep track of when I really only care about rooms and cardinal exits right now. |
10:17 | <@Tarinaky> | I swear. Every Control Theory lecture I just get more confused. |
10:18 | < Reiver> | Tarinaky: If this is in an array, try setting it up so that only even rows and columns are actual rooms. |
10:19 | < Reiver> | All odd/even and even/odd values are thus walls and doors, with odd/odd being corners between rooms. |
10:19 | < Reiver> | You can forbid those to worry about cardinal diections, initially, and then populate them based on the surrounding co-ordinates later if you find them useful for something. |
10:20 | < Reiver> | Or use 'em for Hidden Info or something, whatever. |
10:21 | <@Tarinaky> | Reiver: I wasn't dealing with walls and doors yet. |
10:21 | <@Tarinaky> | Just floor. |
10:23 | <@gnolam> | <Tarinaky> I have this horrible feeling that trying to my dungeon generator in a square-tile base is actually making it harder to get my head-around than if I came up with a more... abstract way of storing maps. |
10:23 | <@gnolam> | Tiles are the output. Try thinking in terms of node graphs. |
10:23 | <@Tarinaky> | I'm not sure how to output a node-graph for visualisation in a sensible way though. |
10:23 | <@Tarinaky> | (Because how else can you debug it :V) |
10:26 | | Harlow [Harlow@Nightstar-2dbe3d64.il.comcast.net] has joined #code |
10:40 | | Harlow [Harlow@Nightstar-2dbe3d64.il.comcast.net] has left #code ["Leaving"] |
11:18 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [[NS] Quit: Leaving] |
12:04 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
14:11 | < simon_> | if I'm going to make a super-easy deterministic random number generator that's going to work seemingly randomly for a couple of thousand iterations |
14:11 | < simon_> | s/random/pseudo-random/ |
14:11 | < simon_> | what would be a good approach? |
14:12 | < simon_> | something like (p*n) mod q, where p > q are coprimes and n increases? |
14:13 | < simon_> | I'm making a text-based dungeon crawler in the programming language that our compilers course uses. |
14:14 | < simon_> | the closest to randomness you get is the stuff the user types in, so I thought I'd feed that into the generator as well. |
14:22 | | * TheWatcher digs, wonders if he put it online anywhere... |
14:27 | <@TheWatcher> | http://pastebin.starforge.co.uk/604 - random.cpp, http://pastebin.starforge.co.uk/605 - random.h, http://pastebin.starforge.co.uk/606 - testrandom.cpp |
14:28 | <@TheWatcher> | Uses Knuth's subtractive method random number generator from Seminumerical Algorithms |
14:36 | <@iospace> | this guy wrote an entire function more or less within a giant if/else block. Over 75% of the code is within the else. Neither of them have a return T_T |
14:38 | <@TheWatcher> | I've run into that a few times before |
14:38 | <@iospace> | yeah |
14:38 | <@TheWatcher> | Some people seem to have a serious dislike of returning before the end of the function |
14:38 | <@TheWatcher> | Never really got it myself |
14:38 | <@iospace> | and the return? it's /right/ after the else |
14:38 | <@iospace> | eh |
14:39 | <@iospace> | it /depends/ |
14:39 | <@iospace> | especially if you're doing a lot of memory things |
14:39 | <@TheWatcher> | Yeah, it can make cleanup easier, sure |
14:40 | <@iospace> | yeah |
14:40 | <@iospace> | or the only valid use of goto ever :V |
14:40 | <@TheWatcher> | Heh |
14:40 | <@iospace> | or your doing stuff with hardware |
14:53 | <@iospace> | *you're |
14:53 | <@iospace> | derp |
14:53 | <@iospace> | TheWatcher: https://github.com/iospace/compass/blob/master/Twi.c |
14:58 | | Turaiel[Offline] is now known as Turaiel |
15:00 | | celticminstrel [celticminst@Nightstar-gj43l1.dsl.bell.ca] has joined #code |
15:00 | | mode/#code [+o celticminstrel] by ChanServ |
15:08 | | ErikMesoy|sleep is now known as ErikMesoy |
15:10 | <@Tarinaky> | simon_: IIRC the Art of Computer Programming Vol 2 deals with PRNG algorithms. |
15:10 | <@Tarinaky> | That said,m you might be able to get away with a non-random sequence. |
15:11 | <@Tarinaky> | *non-pseudorandom sequence |
15:11 | <@Tarinaky> | Like Fibonacci numbers or something. |
15:13 | <@Tarinaky> | How 'good' a dungeon is doesn't really depend on how random it is. |
15:36 | < simon_> | right |
15:36 | < simon_> | otherwise, random.org would be a pretty good dungeon crawler! ;-) |
15:49 | | Turaiel is now known as Turaiel[Offline] |
16:36 | < RichyB> | simon_, why bother writing a PRNG when you can just pull a BSD-licensed Mersenne-Twister implementation off the net? |
16:36 | < simon_> | RichyB, well, I'd have to rewrite it in this Pascal-looking language with a weird evaluation strategy anyway. |
16:36 | < RichyB> | Oh feh. |
16:38 | | * simon_ has an idea for a blog: Things That are Monoids |
16:39 | < simon_> | (and more importantly: What consequence it has for those interpretations) |
16:39 | < RichyB> | Swipe the constants for a linear congruence generator off someone else, I guess. :) |
16:39 | < simon_> | yeah :) |
16:39 | < RichyB> | Things That Are Monoids would be a pretty good blog. You'd probably get lots of nice referral traffic from Conal Elliott. :) |
16:39 | < simon_> | for example, soups are monoids if you allow carrots to be. water is the identity soup. |
16:40 | < simon_> | someone wrote on their Google+ once that the set of tango steps, modulo your position on the floor, are monoids. |
16:41 | < RichyB> | uh |
16:42 | < RichyB> | That sounds like it might actually form a group, which is of course a slightly stronger structure than a monoid. :) |
16:42 | < RichyB> | Since there's another set of tango steps which ought to take you back to your original position. :) |
16:43 | < simon_> | I don't know, I'm not that much into tango. |
16:43 | < simon_> | do you normally dance backwards? |
16:43 | < simon_> | I imagine that some dance steps in general are hard to do in reverse because of gravity. |
16:44 | < simon_> | I keep forgetting... semigroups: associative. monoids: also neutral element. groups: also inverses. right? |
16:57 | < simon_> | I think gangnam-style is a group. |
16:59 | <@Tarinaky> | simon_: You could implement some sort of binary loading mechanism :V |
17:07 | < RichyB> | simon_, yes, that is exactly correct. |
17:08 | < RichyB> | simon_, there's one more: magma, has a closed binary op, semigroups: it's associative, mnoids: has an identity, groups: every elem has an inverse. :) |
17:09 | | * simon_ considers trying hakyll as a blog engine and realizes he should focus on correcting assignments so he can work on his own courses tomorrow. |
17:15 | < AnnoDomini> | Is there any reason I should use Bresenham's line drawing algorithm instead of the naive algorithm on a modern computer? |
17:16 | <@gnolam> | Wu. |
17:16 | < AnnoDomini> | What's the advantage of using Wu? |
17:16 | <@gnolam> | Antialiasing. |
17:16 | < AnnoDomini> | Oh. |
17:16 | <@gnolam> | But really, I just wanted to reply "wu" where it was also a relevant answer.~ |
17:17 | < AnnoDomini> | Context: Line of sight determination in a tile-based environment. I'm not sure antialiasing is relevant here. :P |
17:17 | <@gnolam> | (https://en.wikipedia.org/wiki/Mu_%28negative%29#The_text_of_the_Mu-koan ) |
17:18 | < AnnoDomini> | (Familiar.) |
17:18 | <@Tarinaky> | What's the Naive? |
17:18 | < AnnoDomini> | It's like Bresenham's, but with flops. |
17:18 | <@Tarinaky> | Flops? |
17:18 | < AnnoDomini> | Floating point operations. |
17:18 | <@Tarinaky> | Ah. |
18:00 | < AnnoDomini> | gnolam: Is there any way to make the file tab in Code::Blocks double? |
18:24 | | cpux [cpux@Nightstar-uvch6j.dyn.optonline.net] has quit [Connection closed] |
18:24 | | cpux [cpux@Nightstar-uvch6j.dyn.optonline.net] has joined #code |
18:24 | | mode/#code [+o cpux] by ChanServ |
18:25 | | Netsplit *.net <-> *.split quits: @PinkFreud, @Reiv |
18:27 | | Netsplit over, joins: @PinkFreud, @Reiv |
18:29 | | * AnnoDomini finds that zombies that get stuck bumping their heads into walls is, although hilarious, also unacceptable. |
18:29 | < AnnoDomini> | Time to destroy Nazi Germany^W^W^Wlearn A*. |
18:29 | < McMartin> | For short distances you can use BFS~ |
18:29 | < McMartin> | Or, uh, best-first search |
18:30 | < AnnoDomini> | What I have now is a nine-choice else-if. Define "short". |
18:30 | < McMartin> | That turns out to be surprisingly difficult >_> |
18:31 | < AnnoDomini> | I have a 64x36 area. |
18:31 | < McMartin> | ... so that means you can reach any point in a minimum of 64 steps |
18:31 | < McMartin> | ... yeah, I'd just build a minimum spanning tree of the whole map from my zombie's current square. |
18:32 | < McMartin> | The fancier searches, when pathing, are for when you have a bunch of obstacles and need to move hundreds of dudes in realtime |
18:33 | < McMartin> | I'm guessing right now that these guys are turn-based |
18:33 | < jeroud> | McMartin: How different is SDL2's API from SDL1.2's? |
18:34 | < McMartin> | jeroud: The graphical API is noticably different, splitting SDL_Surface into four types, basically, but the rest is nearly or entirely unchanged. |
18:34 | < McMartin> | Or else purely extended. |
18:35 | < jeroud> | Will I be in for a lot of pain swapping one out for the other underneath pygame-cffi? |
18:35 | < McMartin> | I don't know enough about pygame's level of abstraction to know |
18:35 | < McMartin> | But, like, SDL_BlitSurface no longer exists and is not an operation that involves SDL_Surfaces anymore. |
18:36 | < AnnoDomini> | McMartin: What did you say after the second line you started with ... after I told you the dimensions? I lost connectivity there. |
18:36 | < AnnoDomini> | (This bloody BNC has problems with log playback.) |
18:36 | < McMartin> | (There is SDL_Surface, a main-memory image; SDL_Texture, a GPU-stored image you loaded up for fast blits and rendering; SDL_Render, which represents a thing you can do drawing operations to; and SDL_Window, which is, well, a window, because now you can have more than one.) |
18:36 | < McMartin> | 10:26 < AnnoDomini> I have a 64x36 area. |
18:36 | < McMartin> | 10:27 < McMartin> ... so that means you can reach any point in a minimum of 64 steps |
18:36 | < McMartin> | 10:27 < McMartin> ... yeah, I'd just build a minimum spanning tree of the whole map from my zombie's current square. |
18:36 | < McMartin> | 10:28 < McMartin> The fancier searches, when pathing, are for when you have a bunch of obstacles and need to move hundreds of dudes in realtime |
18:36 | < McMartin> | 10:28 < McMartin> I'm guessing right now that these guys are turn-based |
18:36 | < jeroud> | (I plan to wait until we have the bulk of the CPython extension code ported to cffi first.) |
18:37 | < AnnoDomini> | McMartin: Yep, they are. I'm afraid I'm not familiar much with pathing at all. |
18:38 | < AnnoDomini> | What specific algorithm would you recommend? |
18:38 | < McMartin> | This one. http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm |
18:38 | < AnnoDomini> | Isn't that one basically the older version of A*? |
18:39 | < McMartin> | That sounds about right, but I don't think you need anything else at this size |
18:40 | < AnnoDomini> | Thanks! Did I already say that you've taught me more about game programming than 6 years an Uni? :D |
18:41 | < jeroud> | AnnoDomini: University is notoriously bad about teaching practical software engineering. |
18:42 | < jeroud> | A lot of the theoretical stuff is useful, but not without the other stuff. |
18:42 | < McMartin> | To be fair, though, I *did* learn Dijkstra's at Uni |
18:42 | < ErikMesoy> | My university demanded I make a sudoku solver with a graphical interface for an exercise, so I think they must have taught me something. >_> |
18:43 | < jeroud> | Very few (if any) university courses teach automated testing or revision control. |
18:43 | < McMartin> | That latter makes me sad and confused |
18:44 | < McMartin> | Because in 1996 they expected us to use version control but also didn't teach it beyond 30 minutes of introduction to CVS. |
18:44 | < jeroud> | Arguably, the former is both easier to teach and more valuable. |
18:45 | < McMartin> | To be fair, in 1996 automated testing wasn't much of a thing outside of the hardware domain. |
18:45 | < jeroud> | Just hand out lots of assignments that consist of a test suite and maybe some scaffolding. |
18:46 | < McMartin> | That's super common these days, I think. |
18:46 | < McMartin> | Mainly due to TA laziness *shakes cane* |
18:46 | < jeroud> | Not anywhere I've seen, but I haven't really been looking. |
18:47 | < McMartin> | There's a number of people taking CS classes right now here, and when they talk about their assignments, they're pretty obviously submitting them to autograders that are test-based. |
18:47 | < McMartin> | Which is basically what you describe. |
18:47 | < jeroud> | The key is to occasionally hand out assignments with no tests. |
18:48 | < McMartin> | Better not do that cold, or you're just testing for who has a natural talent for it. We do that too much in CS education as it is. >_< |
18:48 | < jeroud> | No, because the tests in the autograders aren't visible to the students. |
18:48 | <@gnolam> | AnnoDomini: if you want to learn A*, http://www.policyalmanac.org/games/aStarTutorial.htm is still the best tutorial I've come across. |
18:49 | <@gnolam> | And no idea about C::B. Haven't used it in years. |
18:49 | < McMartin> | jeroud: OK, that's fair. |
18:50 | < jeroud> | The idea is to teach students about the benefits of automated testing by stealth. |
18:50 | < McMartin> | I admit that - and this is in part due to the problem domains I play in - automated testing has a harder row to hoe with me |
18:50 | <@gnolam> | "Autograd" should so be a Soviet robot city. |
18:51 | < jeroud> | McMartin: I don't entirely grok that metaphor. |
18:51 | < McMartin> | "A hard row to hoe" = "more difficult work than usual to do" |
18:51 | < jeroud> | Ah, yes. I play in some domains like that as well. |
18:52 | < McMartin> | More formally: "In the domains I tend to play around in, more often than not a passing suite of invisible comprehensive unit tests is actually only providing you with an illusion of security but is really only verifying that your RAM isn't corrupt" |
18:52 | < McMartin> | But this is also because I think the only acceptable verification of a blit function is a screenshot tool, yes~ |
18:53 | < jeroud> | McMartin: There are definitely *parts* of the system that are more amenable to automated testing. |
18:53 | < McMartin> | Yeah. |
18:53 | < McMartin> | Monocle's core data structures got pretty extensive such testing, though not what I would consider formally acceptable. |
18:54 | < jeroud> | And "dump this bitmap to a file and compare with a verified one" is an entirely reasonable approach. |
18:54 | < McMartin> | (It got 100,000,000 test runs with random data against FreeBSD's independent implementation of the algorithm that uses a different data structure layout) |
18:55 | < Shiz> | quantity != qualit |
18:55 | < Shiz> | y |
18:55 | < McMartin> | This is true. |
18:55 | < jeroud> | I hate writing tests and I'm not very good at it, but I'm still better than most people whose code I've looked at. |
18:56 | < McMartin> | Shiz: I *also* executed a series of 40 hand-crafted tests that do exploration of all the code paths in my code |
18:56 | < jeroud> | It's just that I hate working on untested code more. |
18:56 | < Shiz> | a lot of my university courses have an online grader that runs its own test suite |
18:56 | < Shiz> | and only returns if your program passed or not |
18:56 | < Shiz> | so you're forced to pretty much write tests yourself |
18:56 | < McMartin> | However, that (a) isn't enough to cover every case in the algorithm and (b) the total number of cases is impractically large |
18:57 | < jeroud> | Shiz: That doesn't teach you much about the value of tests. |
18:57 | < Shiz> | it actually only serves to annoy |
18:57 | < Shiz> | we had a formal testing course though |
18:57 | < jeroud> | Exactly. |
18:57 | < Shiz> | it was boring as shit and nobody liked it |
18:57 | < jeroud> | Exactly. |
18:57 | < Shiz> | it also featured a java implementation of pacman with nested factories |
18:58 | < Shiz> | :x |
18:58 | < jeroud> | That's why you need to *demonstrate* the value. |
18:58 | < McMartin> | jeroud: I guess I should explicitly state that I am skeptical of test-driven development outside of extremely well-understood domains |
18:58 | < jeroud> | McMartin: I don't do TDD. |
18:58 | < McMartin> | While it can be made to fit the process, the crowbar and hammer marks are obvious when you do =P |
18:59 | < McMartin> | (But if you're in one of the few places where the waterfall model actually works, yes, absolutely do TDD) |
18:59 | < jeroud> | I generally write tests alongside the code or shortly afterwards. |
18:59 | < Shiz> | TDD is very waterfall-ish. |
18:59 | < jeroud> | Not really. |
18:59 | < Shiz> | oh, McM just said that |
19:00 | < jeroud> | Or rather, it's on a much smaller scale. |
19:00 | < McMartin> | TDD has the assumption that you know what a right answer looks like |
19:00 | < Ogredude> | and that you understand how to write a test for that answer |
19:00 | < jeroud> | You don't start by spending three months writing failing tests for vaporware. |
19:00 | < Ogredude> | half the time I'm stymied by figuring out how to write the test |
19:01 | < Shiz> | I always wondered how to properly test my irc client |
19:01 | < Shiz> | it probably involves setting up a local ircd as an oracle |
19:01 | | * Shiz shrugs |
19:01 | < McMartin> | Shiz: That actually can work OK if you happened to build it in a certain way |
19:01 | < Ogredude> | that said, when you do know what the hell the right answer looks like, test-driven is an awful lot of fun |
19:01 | < Ogredude> | and it makes it way easier to come back in down the line and fix bugs |
19:01 | < McMartin> | Right |
19:01 | < Ogredude> | is easy to be agile with it too |
19:01 | < McMartin> | That's where automated testing gets its victories. |
19:01 | < jeroud> | Ogredude: That often (but not always) indicates that you don't under the problem well enough. |
19:02 | < Ogredude> | jeroud: yeah, I don't understand how to gather requirements |
19:02 | < Shiz> | I love automated testing when I don't have to write the tests |
19:02 | < Shiz> | :P |
19:02 | < McMartin> | jeroud: Yes. The objection to TDD is that this is true of every interesting problem ever. |
19:02 | < Ogredude> | there's all this blahblah yaddayadda in the books, but nobody ever really gives concrete examples of how to gather project requirements |
19:03 | < Shiz> | talk with your stakeholders |
19:03 | < Ogredude> | one place the TDD fell down is that I ended up spending more time getting my test environment to stay working than I did actually writing tests and code |
19:03 | < jeroud> | McMartin: My point is that you have the same problem writing the code as you do writing the test. |
19:03 | <@TheWatcher> | Ogredude: step 1: kill all your users. This is the only way to ensure the requirements do not change. |
19:03 | < Ogredude> | freakin guard and spork not wanting to cooperate |
19:03 | < Ogredude> | TheWatcher: I like that idea. |
19:03 | <@TheWatcher> | (note: if you do not do this, they will change, usually at the least opportune point) |
19:03 | < Ogredude> | Shiz: yeah but that doesn't help with figuring out the right questions to ask |
19:03 | < Shiz> | also, who tests the tests? |
19:03 | <@TheWatcher> | (so you need to design for that, too) |
19:03 | < Shiz> | or the tools used to test? |
19:04 | <@Namegduf> | Tools can be self-tested or tested with another tool, not so hard. |
19:04 | < McMartin> | jeroud: Well, I mean, you've seen me doing this out loud with Monocle. |
19:04 | < jeroud> | TheWatcher: Alternatively, implement a specification for which the standards body has dissolved. |
19:04 | < Ogredude> | and that doesn't help when the customer's like: *waves hands* "Yeah, it should be like Facebook and Twitter, and LinkedIn too. Oh yeah and it should work like Pinterest" |
19:04 | < McMartin> | Ogredude: Oh, if you're at *that* level |
19:04 | <@Namegduf> | Tests ought to be sufficiently short that they are very unlikely to be buggy and so very very unlikely that both are buggy in exactly the wrong way. |
19:04 | < jeroud> | Ogredude: You're starting to big there. |
19:04 | < Ogredude> | and when you try to pin her down on any specifics she just freaks out at you because it's obvious, it should work like Facebook and Twitter, oh yeah and LinkedIn, and make it work like Pinterest, and that should be super simple! |
19:04 | <@TheWatcher> | (13 years working in a university have made me really, really good at anticipating the possible divergent requirements, and making sure things will work with any...) |
19:04 | < McMartin> | Then get them in front of a whiteboard and start alking workflows and user stories. |
19:04 | < Shiz> | jeroud: I tried that with irc, worked out less well than i had hoped |
19:05 | < Ogredude> | this is when they become an ex-customer |
19:05 | < McMartin> | Spoiler: The answer will be "we don't know what we want" |
19:05 | < Ogredude> | yeah |
19:05 | < jeroud> | Shiz: The problem *there* is that nobody conforms to the spec. |
19:05 | < Ogredude> | because it should be like pinterest and linkedin but with twitter and facebook in there too |
19:05 | < McMartin> | But that's part of the landscape too. |
19:05 | < Shiz> | and also that there are 99 unofficial under-documented extensions |
19:05 | < Shiz> | and everyone uses different ones |
19:05 | < Shiz> | :D |
19:06 | < jeroud> | Exactly. |
19:06 | < Ogredude> | oh yeah and let's invent new terms for things just because we can! |
19:06 | < Ogredude> | it won't be a "blog roll" or a "news feed" it'll be a "PagePress" |
19:06 | < Shiz> | Ogredude: twatbook |
19:06 | < Shiz> | oh |
19:06 | < McMartin> | CODICIL WINTER HILL |
19:06 | < jeroud> | Anyway, I see TDD as a low-level implementation thing. |
19:06 | < Ogredude> | oh and I want Comic Sans MS for all the header fonts! |
19:06 | < Ogredude> | That's such a cute fun font! |
19:06 | | * Tamber sets Ogredude on fire. |
19:06 | < Shiz> | Ogredude: you need to make it 'pop' more |
19:06 | < Shiz> | cna you do that for me |
19:06 | < Ogredude> | yeah! |
19:07 | < McMartin> | jeroud: Right. Monocle used fuzz testing on things like "I'm going to need red-black trees" |
19:07 | < Ogredude> | we fired that customer. |
19:08 | < McMartin> | The "correct" thing to do there is of course "use somebody else's" but I didn't like the implementations I found and the algoirhtms are like three pages long, so whatever, use those other implementations as references whose results must match up |
19:08 | < Ogredude> | we explained to her why we felt she should not use Comic Sans MS anywhere in the project, and backed up our opinions with links to articles about it |
19:08 | < McMartin> | And must match up with white-box testing |
19:08 | < Ogredude> | she went ballistic because we weren't willing to do what SHE wanted to do |
19:08 | < Ogredude> | and it was HER project after all |
19:08 | < Ogredude> | then 2 days later she said "Well I talked to my own graphic designer, and she says don't use that font too" |
19:09 | < Ogredude> | #1 reason for project failure: Stakeholders fail to take the advice of their experts |
19:09 | < jeroud> | "I need to hit this service for the list of inventory and then sort by customer preferences. I'll start by writing a test that pretends to be that service and asserts that what I get out is in the right order." |
19:09 | < McMartin> | Once I get collisions and stuff set up, I intend to set up demos that are basically those word problems about trains living City X at Y mph and then making sure that they produce a terrible trainwreck^W^W^W^Wpass one another at the appropriate frame number. |
19:10 | < McMartin> | living? leaving. |
19:10 | < jeroud> | McMartin: Not dead trains? |
19:10 | < jeroud> | Aww, too late. |
19:10 | < McMartin> | It is *collision* testing after all. |
19:10 | < jeroud> | Well said, sir. |
19:11 | < jeroud> | The most depressing thing about porting pygame to cffi is the number of bugs we've found. |
19:12 | < jeroud> | Obvious bugs that are immediately obviously to anyone using those features. |
19:13 | < jeroud> | -ly |
19:14 | < Ogredude> | holy crap |
19:14 | < Ogredude> | $customer: It doesn't work! |
19:14 | < Ogredude> | me: Well what happens when you hit the link? |
19:15 | < Ogredude> | $customer: It goes to the homepage and asks for a login |
19:15 | < Ogredude> | uhhh, that's expected behavior, what exactly is not working here? |
19:15 | < jeroud> | Anyway, I've found a fairly strong correlation between code quality and test coverage. |
19:16 | < Ogredude> | this job would be great if it weren't for the customers |
19:16 | < jeroud> | Ogredude: My resignation from my previous job was triggered by a "bug report" kind of like that. |
19:17 | < jeroud> | From the Abusive Director of Business Intelligence. |
19:17 | < jeroud> | (I would probably have stayed another month or so otherwise.) |
19:18 | < Shiz> | jeroud â The most depressing thing about porting pygame to cffi is the number of bugs we've found. |
19:18 | < Shiz> | jeroud â Obvious bugs that are immediately obviously to anyone using those features. |
19:18 | < Shiz> | sounds like renpy |
19:18 | < jeroud> | The other dev on the project forwarded me the mail thread that I had been deliberately excluded from. |
19:19 | < Shiz> | 'jeroud is a faget'? |
19:21 | < jeroud> | "$foo is broken! Fix it immediately! What the hell do you think you're doing letting issues like this happen in the live system?" "Err, we haven't built $foo yet. What did you do and what result did you get?" "How dare you blame me for this!" |
19:22 | < jeroud> | Eventually the guy got her to give him the query she ran and pointed out where she'd screwed it up. |
19:24 | < jeroud> | Then her stream of abuse switched direction and she demanded to know why we built a system that makes it so easy to screw up queries. |
19:24 | < jeroud> | That's when he forwarded the thread to me. |
19:24 | <@Namegduf> | Did you suggest counselling? |
19:25 | <@Namegduf> | It sounds like it could have been of use. |
19:26 | < jeroud> | After giving my notice I explained, calmly and in great detail, exactly what architectural changes I had been proposing for the past three months and why they were necessary. |
19:28 | < jeroud> | I quoted liberally from old emails and JIRA tickets, especially the ones in which she had told me in no uncertain terms to do things *her* way. |
19:28 | < jeroud> | (Which I had done, under protest.) |
19:28 | < Shiz> | whatever happened to 'let the experts handle it' |
19:28 | | * Shiz shrug |
19:28 | < jeroud> | I copied my boss and the CTO on that email. |
19:29 | < jeroud> | I never heard from her again. |
19:29 | <@Tamber> | Shiz: "It's just typing at a computer. God, *anyone* can do that!" ¬¬ |
19:29 | < Shiz> | almost as good as "you're doing this out of passion, right" |
19:29 | < jeroud> | (But I think she still works there.) |
19:29 | < Shiz> | "that means I don't have to pay, right" |
19:30 | < jeroud> | I am *much* happier at my current job. |
19:30 | <@gnolam> | Ogredude: http://clientsfromhell.net/ |
19:31 | < jeroud> | (That job also included a brief and very disturbing interlude during which I occasionally had to look at child pornography.) |
19:32 | < McMartin> | In the "help out law enforcement" sense or in the "deal with customers' unsecured data, which occasionally involves having to call in law enforcement" sense? |
19:32 | < jeroud> | (I was building an automated "report that garbage to the FBI" system for our abuse team.) |
19:32 | <@Tamber> | *grimace* |
19:33 | < jeroud> | McMartin: Build-your-own-website company. |
19:33 | | * McMartin nods |
19:33 | < McMartin> | I guess that fits with more what I was thinking of in the latter case |
19:33 | < McMartin> | (Which was most explicitly "We have to fix customer laptops and they occasionally have felonious choices of desktop background") |
19:34 | < Shiz> | ... what |
19:34 | < Shiz> | no really |
19:34 | < Shiz> | what |
19:35 | < McMartin> | Jerith's stuff or mine? |
19:35 | < jeroud> | The abuse team (a very nice lady with a young daughter) sent us a cake when that went live and she no longer had to upload each piece of evidence individually. |
19:35 | < Shiz> | yours |
19:35 | < McMartin> | Ah. |
19:35 | < McMartin> | I've heard stories of that nature from guys at local computer stores |
19:36 | < jeroud> | The reporting procedure for that stuff is depressingly primitive. |
19:36 | < Shiz> | why would people even |
19:36 | < McMartin> | In terms of "what kind of person is so stupid as to do this in the first place", I seriously don't know |
19:36 | < Shiz> | how fucking daft do you have to be to put CP as your background |
19:37 | <@Tamber> | About that daft. |
19:37 | < jeroud> | Shiz: People are morons sometimes. |
19:37 | < McMartin> | It seems like the same general error as the people who post on Facebook about what a shit company they just interviewed at and then are shocked to find they didn't get the job because they are twats |
19:37 | < Shiz> | well |
19:37 | < Shiz> | I guess I could kind of understand it if it was like |
19:37 | < Shiz> | drawn shit |
19:37 | <@Tamber> | jeroud: Only sometimes~? |
19:37 | < Shiz> | because that's not illegal or vaguely |
19:37 | < Shiz> | iirc |
19:37 | < McMartin> | Tamber: The degree of moronitude (moronicity?) varies with time |
19:38 | < Shiz> | moronidity |
19:38 | < Ogredude> | gnolam: yeah there are some pretty awful people out there :) |
19:38 | < Ogredude> | oh man |
19:38 | < Shiz> | clientsfromhell is great |
19:38 | < jeroud> | Also, there are way too many people who consider perfectly innocent images of undressed minors to be criminal. |
19:39 | < Ogredude> | we offer to host $client's site on our servers where we've got the infrastructure to quickly and easily maintain it (as well as gigabit ethernet on top of a level 1 backbone), as opposed to $client's box that's a barebones ubuntu with LAMP stack sitting on his 40mbps DSL connection |
19:39 | < Ogredude> | and he's going off about security and availability, and especially security blahblah |
19:39 | < Shiz> | jeroud: still not something I would set as my background. |
19:39 | < jeroud> | Shiz: Sure. |
19:39 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has joined #code |
19:39 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
19:39 | < Ogredude> | and then he's like "OK so log into my account on the site" and the password he gives is complete and utter insecure bullspit that any script kiddiot could guess within a few tries |
19:40 | <@Tamber> | Shiz: But you're not them~ :p |
19:40 | < Shiz> | '123456'? |
19:40 | <@Tamber> | Amazing, I have the same combination on my luggage! |
19:40 | < Shiz> | you must be soulmates |
19:40 | <@Tamber> | :p |
19:41 | < Ogredude> | it didn't have numbers in it. and it wasn't "password" |
19:41 | < McMartin> | I've gotten the impression that script kiddies can now crack any password of length 8 or less =/ |
19:41 | < Ogredude> | but I can't give any more information about it without even further compromising its already extremely poor security |
19:41 | < Shiz> | McMartin: depends on what algorithm used to hash. |
19:41 | < Shiz> | definitely not by an online attack, lol |
19:43 | < McMartin> | Yeah, not online |
19:43 | < Shiz> | I mean, something like scrypt or a few thousand rounds of PKBDF2 with hmac-sha512 would still be tough to crack |
19:43 | < McMartin> | But "offline attack with a couple decent GPUs and you can bruteforce it in a few days" |
19:44 | < McMartin> | Hmm, yeah |
19:44 | < McMartin> | I suppose there's also level of failure |
19:44 | <&ToxicFrog> | Also, dictionary attacks are quite sophisticated these days. |
19:44 | < McMartin> | Time-to-*one*-password-cracked vs time-to-*your*-password-cracked |
19:44 | < McMartin> | But I've gotten the impression that, for instance, salting properly now means only that it won't be cracked in a fraction of a second. |
19:45 | < Shiz> | I don't know |
19:45 | < Shiz> | it takes my server 3 seconds to verify my password |
19:45 | < Shiz> | :P |
19:45 | <@Tamber> | Sorry, I'll dial back the password cracker. :D |
19:45 | <@Tamber> | Er, I mean... oh, that's not good! <.< >.> |
19:45 | < McMartin> | Sure, but those are deliberately shit, Shiz, specifically to make online attacks harder |
19:46 | < Shiz> | hmm? |
19:46 | < Shiz> | there is no deliberate delay there |
19:46 | < Shiz> | # here are the per-package modules (the "Primary" block) |
19:46 | < Shiz> | password [success=1 default=ignore] pam_unix.so obscure sha512 rounds=512000 |
19:46 | < McMartin> | Shiz: Not a deliberate delay, no, but it's also not going out of its way to be efficient |
19:46 | < Ogredude> | I just find it hilarious that he's expressing all these concerns about the security of the system |
19:46 | < Shiz> | I'll give you that it won't use its GPU, no |
19:46 | < Shiz> | mainly because it has no GPU |
19:46 | < Shiz> | :P |
19:46 | < McMartin> | Hee |
19:46 | < Ogredude> | and then the password he uses is completely, utterly, totally, insecure |
19:47 | | Kindamoody|out is now known as Kindamoody |
19:47 | < Shiz> | however |
19:47 | < Shiz> | when I'm looking at the last GPU bruteforcer speeds for sha512 |
19:47 | < Shiz> | it would mean an attacker would be able to crack 60 passwords/sec |
19:47 | < Shiz> | with the algorithm I use |
19:48 | < Shiz> | on a gtx650ti |
19:48 | < Shiz> | err |
19:48 | < Shiz> | try 60 passwords |
19:48 | < Shiz> | not crack |
19:48 | < McMartin> | sha512 is Better Than Current Default Practices, yeah |
19:48 | < Shiz> | anyway |
19:48 | < Shiz> | point I'm trying to make here |
19:49 | < Shiz> | with any securely implemented server-side hash, your passwords should still be (reasonably) safe |
19:49 | < Shiz> | now, of course I can't guarantee everyone or even most people will do that |
19:49 | <@Namegduf> | This is true by definition |
19:49 | < McMartin> | "Securely implemented" changes with time |
19:49 | <@Namegduf> | Presuming that "securely implemented" also limits you to hashes which are believed cryptographically suitable |
19:49 | < Shiz> | then again |
19:50 | < Shiz> | McMartin: PKDBF2 and scrypt account for that |
19:50 | < McMartin> | "Cryptographically suitable" also changes with time; there was a time when SHA1 was acceptable. |
19:50 | < Shiz> | you can change their workload parameters |
19:50 | < Shiz> | to make it more effort to crack |
19:50 | <@Namegduf> | Shiz: Those are far from "any... server-side hash" |
19:50 | < Shiz> | and generate |
19:50 | <@Namegduf> | Those are a very specific two |
19:50 | < Shiz> | point. |
19:50 | <@Namegduf> | Not, say, MD5 like a lot of places still use. |
19:51 | < Shiz> | well, I kind of misplaced my point there |
19:51 | <@Namegduf> | (If you are *lucky*, it might be salted) |
19:51 | < Shiz> | what I really meant to say was that there exist hashing algorithms (and presumably implementations) for which even small passwords are still relatively safe |
19:51 | < Shiz> | :P |
19:52 | < Shiz> | of course, since you can't guarantee or know that every service you have a password for will USE that... |
19:52 | < Shiz> | better safe than sorry. |
19:52 | <@Namegduf> | I just use LastPass with random passwords per service. |
19:52 | < McMartin> | ^++ |
19:52 | < Shiz> | I use KeePass |
19:52 | <@Namegduf> | Also good. |
19:52 | < McMartin> | 1Password rounds out the trifecta there |
19:52 | < Shiz> | with usually either the maximum length the service allows (eww) or 40-64 char passwords |
19:53 | < Shiz> | for instance |
19:53 | <@Namegduf> | 100 and same deal |
19:53 | | * TheWatcher readsup |
19:53 | < Shiz> | hotmail limits passwords to 16 characters |
19:53 | < McMartin> | KeePass is the one I see the most of; are there meaningful differences between the few? |
19:53 | < Shiz> | lol |
19:53 | < Shiz> | McMartin: lastpass is a service |
19:53 | < Shiz> | you store your encrypted passwords at their servers |
19:53 | < Shiz> | and can access them anywhere |
19:53 | < Shiz> | keepass is more of a local thing |
19:53 | < Shiz> | you have a database file with passwods |
19:53 | < Shiz> | also encrypted of course |
19:53 | <@Namegduf> | McMartin: LastPass is primarily a browser plugin and cloud service, which decrypts your password DB locally in the plugin and syncs automatically between systems. |
19:53 | < McMartin> | ofc |
19:54 | < McMartin> | (@Shiz) |
19:54 | < McMartin> | Aha |
19:54 | <@Namegduf> | It is freemium. |
19:54 | <@Namegduf> | The free is quite acceptable but the mobile app requires the fee, which is quite low. |
19:54 | < McMartin> | Mmm. |
19:54 | < McMartin> | I'm more mobile these days, I should consider switching. |
19:54 | <@Namegduf> | And I go for that just in case I really need to login from my phone, although it's a pain in the ass since it absolutely won't stay logged in on a phone for any length of time. |
19:55 | < Shiz> | the only issue i have is that i store windows domain passwords in keepass |
19:55 | < Shiz> | and i obviously can't run keepass on non-logged in PCs |
19:55 | <@Namegduf> | (On a desktop, you can keep your browser open all day. On the phone the app dies whenever it is inactive for longer than a minute or so) |
19:55 | | * McMartin nods |
19:55 | < Shiz> | so I have to type over my 64-char password |
19:55 | < Shiz> | every time I have to login to my uni network physically |
19:55 | < McMartin> | Namegduf: Though I'd probably consider it also just for "this is a fine service, so have some money" |
19:55 | <@Namegduf> | McMartin: That too, yeah. |
19:56 | <@Namegduf> | I think they own XMarks now. |
19:56 | < Shiz> | although I certainly believe they store the passwords securely, I'm still not entirely comfortable with storing them centrally |
19:56 | < McMartin> | Yeah, this is one reason I've avoided such things in the past |
19:57 | <@Namegduf> | I mostly just accept that anything on my main identity is in the hands of any especially interested government |
19:57 | < Shiz> | which is why I run keepass and just do $ scp Documents/Database.kdb rhenium:~ from time to time |
19:57 | <@Namegduf> | It's probably good enough to beat other people |
19:57 | < McMartin> | Namegduf: That's going to be true generally, though. State level actors have a *lot* of resources |
19:58 | < McMartin> | They're not very good at active actions that are secret though, viz. the EC-PRNG debacle |
19:58 | <@Namegduf> | McMartin: Yeah, thus why I don't think it's worth going to inconvenient measures to avoid the likes of LastPass |
19:58 | <&ToxicFrog> | Shiz: I use btsync for mine. |
19:58 | <@Namegduf> | It is Good Enough, like TLS |
19:58 | <@Namegduf> | (Ish. TLS is a bit worse and starting to seriously degrade.) |
19:58 | < Shiz> | well, TLS1.2 Should Be Safe Enough |
19:59 | < McMartin> | For Awhile, Anyway |
19:59 | < Shiz> | at least browsers are finally starting to implement it |
19:59 | <&ToxicFrog> | My concern with centralized storage like that is less about the NSA, and more about yet another embarassing incident where it turns they were using comically insecure crypto and then someone made off with their entire database. |
19:59 | < McMartin> | But TLS is ephemeral anyway so yeah. |
19:59 | < Shiz> | ToxicFrog: aye. |
19:59 | <@Namegduf> | ToxicFrog: The crypto is run locally, so it should be possible to verify (or find someone who has verified) what they're using |
20:00 | <@Namegduf> | Their web-based version does it in JS, it is fairly neat |
20:00 | <@Namegduf> | Admittedly, it's not going to help you against someone who pushes out an evil update or just edits their JS |
20:27 | < McMartin> | ... what the Hell Ubuntu, why is Gambit still four significant releases behind in Trusty |
20:37 | < jeroud> | McMartin: Nobody in Ubuntu packaging land cares about it, probably. |
20:38 | < jeroud> | Although that means it should just be the package from Debian Testing. |
20:39 | < McMartin> | It is indeed marked "Universe", which I think means "whatever, copy Debian" |
20:39 | < McMartin> | Is Sid testing? |
20:40 | < McMartin> | Ah, no, sid is unstable |
20:40 | < McMartin> | And yeah, it sure looks like the gambc package is 4.2.8 everywhere in Debian. |
20:41 | < McMartin> | Fedora 19 has 4.6.6, and the actual latest version is 4.6.9 |
20:44 | | Vornicus [vorn@Nightstar-sn7kve.sd.cox.net] has quit [[NS] Quit: Leaving] |
20:48 | <@froztbyte> | Find the package on packages.debian.org |
20:48 | <@froztbyte> | Jump to bts |
20:49 | <@froztbyte> | See if there were any recent flamewars or requesters |
20:49 | <@froztbyte> | Requests* |
20:49 | < McMartin> | You'll have to unpack "Jump to bts" for me |
20:49 | <@froztbyte> | But tracker |
20:50 | < McMartin> | Oh |
20:50 | <@froztbyte> | I forget what the s is for |
20:50 | <@froztbyte> | It's in the link block on the right |
20:50 | < McMartin> | Bug Tracking System |
20:50 | < McMartin> | It isn't called BTS anymore~ |
20:50 | < McMartin> | http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=618273 |
20:51 | < McMartin> | "I've begun work on an updated package [to 4.6.0]. Thanks for you interest in gambc!" |
20:51 | < McMartin> | Date: Sun, 10 Apr 2011 |
20:52 | | Kindamoody is now known as Kindamoody[zZz] |
20:52 | | redwire [redwire@Nightstar-27dppb.nl.bellaliant.net] has joined #code |
20:58 | < RichyB> | McMartin, Fedora! ⥠|
20:58 | < RichyB> | Exuberant Hat-Penguin! |
21:01 | <@froztbyte> | McMartin: time for a gentle nudge then |
21:01 | <@froztbyte> | Maybe someone else can pick up the package |
21:01 | | * McMartin nods |
21:02 | | * McMartin still finds it hilarious that he learned about Gambit because of Steam. |
21:02 | <@froztbyte> | Sounds like it's ripe for orphan status, too |
21:02 | < McMartin> | I'm not familiar with Debian's packaging culture |
21:02 | < McMartin> | If I make a gentle nudge, will be told "volunteer to take it over or quit your bitching"? |
21:03 | < McMartin> | Or are there people to look to take things over? |
21:04 | < McMartin> | *who look to |
21:04 | <@froztbyte> | Mmm |
21:04 | <@froztbyte> | Kinda depends |
21:04 | < McMartin> | Because I'm *not* willing to take over package management for gambc~ |
21:05 | <@froztbyte> | In my experience, gentle nudge would be something like 'hey I noticed that this was pretty old, and there's a bug open. Still intend to hit at that?" |
21:05 | < Ogredude> | My personal experiences with the Debian community in general has been: 1) Ask well-detailed question with plenty of information, cite some resources used, ask for clarification on specific point. 2) receive answer "lol rtfm n00b" |
21:05 | <@froztbyte> | And it might lead to the person going "oh shit I forgot to commit" |
21:05 | <@froztbyte> | Or just silence |
21:05 | < McMartin> | froztbyte: Is that like a comment on the bug or...? |
21:06 | <@froztbyte> | If the latter, you could file a request to have it dropped on the orphaned list and someone else could take over |
21:06 | <@froztbyte> | McMartin: yeah basically |
21:06 | < McMartin> | OK, I'll do that tonight then |
21:06 | < McMartin> | Gambit's a really good system, but the version Debian has is much more difficult to mix with simple Makefiles |
21:07 | < McMartin> | Since gsc doesn't have an -exe option so you have to explicitly manage the compilation to C, generation of the linkage files, and then the final assembly |
21:07 | < McMartin> | Er |
21:07 | < McMartin> | Since Debian's version of gsc doesn't have etc |
21:07 | < McMartin> | While with 3.6 you can just say gsc -exe whatever.scm and then ./whatever executes your Scheme program in native code. |
21:07 | < McMartin> | Which is, as they say, pretty boss |
21:14 | < AnnoDomini> | McMartin: I'm trying to understand DA. I'm looking at the pseudocode on the Wikipedia page. What does "insert source into Q;" mean? What is Q? |
21:22 | <@Tarinaky> | TheWatcher: Changing requirements are good - it means you can add a fee to their invoice for the changes! |
21:22 | | * Tarinaky hides. |
21:25 | < McMartin> | AnnoDomini: This is up at the top; Q is a set of vertices, and I think it's so named because you are using it as a priority queue |
21:25 | <@Tarinaky> | (I mean, why do you think the bosses boss says 'yes' in the first place...) |
21:26 | < AnnoDomini> | McMartin: Oh. |
21:26 | < McMartin> | (That is, it's possible to extract the element with the smallest distance that hasn't been visited, so you're going to be doing some kind of worklist thing to make it work in practice) |
21:34 | < McMartin> | hodamn |
21:35 | | * McMartin sets some declarations in the Scheme version of the Klotski solver, nearly doubles its speed |
21:42 | < McMartin> | That would be (declare (standard-bindings) (block) (not safe) (fixnum)), for the record. |
21:51 | <@Tarinaky> | Things I find disproportionately unnerving: Laughter behind me during lectures. |
21:51 | <@TheWatcher> | Tarinaky: that only works when you're not working salaried on projects for your own school |
21:54 | <@Tarinaky> | TheWatcher: Someone, somewhere, is getting value from your labour :V |
21:54 | <@Tarinaky> | Insert appropriate quantities of Marxism-Leninism here. |
21:56 | <@TheWatcher> | Uh, yes |
21:56 | <@TheWatcher> | And I get paid a wage for it |
22:05 | | * TheWatcher doesn't even get to claim overtime, despite the fact that he will sometimes end up pulling 80 hour weeks in crunch times |
22:05 | <@Tarinaky> | /Why?/ |
22:06 | < McMartin> | ... because that is how salaries work? |
22:06 | | * ErikMesoy inserts 0.1 marxist-leninisms. |
22:07 | <@Tarinaky> | I meant why even do 80 hour weeks of crunch. |
22:07 | < McMartin> | I would definitely expect negative productivity to start hitting before that |
22:07 | <@Tamber> | Because everybody will leave everything -- particularly the stuff you are waiting for -- until the last minute; then panic and scream that none of your stuff is working and they neeeeeed it, and waaaah! |
22:08 | <@Tarinaky> | To say nothing that if you quietly do extended crunches they'll factor them into their time estimates in future that you'll always do them quietly... |
22:08 | <@Tarinaky> | And ignoring the fact that 80 hour weeks are illegal for most jobs in the EU... |
22:09 | <@Tamber> | There's an option in our Working Time Directive that lets you opt out of the 37-hour(?) maximum. |
22:09 | < Ogredude> | bah |
22:10 | <@Tamber> | (And some places will quietly hint that you won't get the job unless you tick that box on the form. *eyeroll*) |
22:10 | < Ogredude> | at my old job, they intentionally gave us more than 40 hours work a week, their attitude is "Well, you're salaried, come in during your off time" |
22:10 | <@Tarinaky> | And from my limited experience if you're working 80 hour weeks for a flat salary... and, you know... can actually /do/ that, as a thing, you can make more money self-employed. |
22:10 | < Ogredude> | and it was against the rules to go off by yourself and do work uninterrupted |
22:11 | < Ogredude> | if you were in the building, you were available for anyone to interrupt you anytime |
22:11 | < McMartin> | That sounds like a place that doesn't give a shit about actually hitting deadlines =P |
22:11 | < Ogredude> | ehn, it was a call center... But no, they didn't give a shit about much of anything |
22:12 | < Ogredude> | it was a terrible place run by terribly incompetent people |
22:12 | <@Tarinaky> | Call Centers are universal awful places that should be turned to the ground. |
22:12 | < Ogredude> | I know for a fact that I could run a call center that hit all the metrics and had happy workers |
22:12 | <@Tarinaky> | Ideally while full of telemarketers and their bosses. |
22:12 | <@Tarinaky> | *burned |
22:12 | < Ogredude> | I'm talking inbound tech support here |
22:13 | <@Tarinaky> | They should still be burned to the ground while full of telemarketers and their bosses. |
22:13 | <@Tarinaky> | It's not required that the telemarketers /work/ there, I just think they'd make good kindling. |
22:13 | <@Tamber> | Not really. |
22:13 | < Ogredude> | heh |
22:13 | <@Tamber> | They're far too soggy for that. |
22:13 | <@Tamber> | And they just won't bloody stay still while you try to light them. |
22:14 | <@Tarinaky> | What about those people that send you Txt messages about PPI claims or personal injuries that never happened? |
22:15 | <@Tamber> | The people who organise it, sure; the poor sod who had no other employment option but to sit there and feed phone numbers to the script, not so much. |
22:15 | < Ogredude> | agreed. |
22:15 | < Ogredude> | I resorted to telemarketing for a few weeks one time |
22:15 | < Ogredude> | they had this wardialing computer that was dialing like 50 numbers at once, it'd just patch a connection through to the next available agent |
22:16 | <@Tarinaky> | From what I understand they pay less than minimum wage + commission usually. |
22:18 | <@Reiv> | Yep, it sucks |
22:18 | <@Reiv> | But you don't have a lot of choice, some days. |
22:20 | <@Reiv> | Telemarketing is the rough modern equivalent to being a Tosher of old |
22:20 | <@Reiv> | Grubbing through the sewage, hoping to find a bauble to sell that you may eat for another day, hoping beyond hope something better shows up |
22:20 | <@Reiv> | But by having done the job at all, the stink shall remain on your CV for years to come~ |
22:20 | <@Tarinaky> | I think that comparison might be a little weak and depend on hyperbole. |
22:21 | <@Reiv> | I was being metaphorical. Possibly simile. Certainly poetic. |
22:22 | <@Tarinaky> | I might be pulling a statistic out of my arse but I'd think that 50 hours a week would be enough time to be churning out a small 0.99c Mobile game a week... |
22:22 | <@Tarinaky> | (Noting that it doesn't actually have to be any /good/ to sell) |
22:22 | <@Tamber> | Sure, but you would have to compete with all the other >=0.99c mobile games. |
22:22 | <@Tarinaky> | Tamber: Which is why you'd make one a week. |
22:23 | <@Reiv> | If you have the software. And the education. And the inspiration to produce anything but shovelware, with the reminder that the vast majority of app store games would not earn more than even a weeks worth of telemarketing, these days.... |
22:23 | <@Tarinaky> | Reiv: Oh no. It'd be shovelware. And you produce a torrent of them requiring only one of them to be a moderate success.. |
22:24 | <@Reiv> | The App Store is, apparently, vicious these days. |
22:24 | <@Tarinaky> | Yes, because it's full of people doing exactly what I just described. |
22:25 | <@Reiv> | And it doesn't work very well, unless you hit lucky |
22:25 | <@Reiv> | Which might be great at week 7, but won't help you for weeks 1-6, when your stomach continues to grumble. |
22:26 | <@Reiv> | Don't forget, you live in a Socialist Paradise, where the Gummint will actually give you a nickel for not working! :p |
22:26 | <@Reiv> | Other people may have more pressing concerns in their time. |
22:26 | <@Tarinaky> | Okay, this is true. |
22:26 | <@Reiv> | Hand-to-mouth is a thing. It doesn't matter what will work better next week, what matters is what works today. |
22:27 | <@Tarinaky> | In that case I suggest selling whatever kind of Bath Salt is legal this week :V |
22:28 | | * Reiv is reminded of the Insight to Poverty essay that went round a few weeks/months back, which helps explain why they breed like crazy and smoke despite the warnings. It's cuz that stuff is 'bad later, good now', and they spend their whole life worried about the 'now' to the point that 'later' becomes so abstract they just don't care any more. |
22:28 | <@Reiv> | Yeah, you first. |
22:28 | | ErikMesoy is now known as ErikMesoy|sleep |
22:28 | <@Reiv> | I'll just feel some sympathy for telemarketers, here. |
22:29 | <@Tarinaky> | Last time I had to answer a telemarketer he started shouting at me. So no. |
22:31 | | Derakon[AFK] is now known as Derakon |
22:35 | <@Reiv> | When you told him no? |
22:36 | <@Tarinaky> | When he heard my mother at the other end of the room telling me to tell him not to call again while huffing and puffing because we were both moving a heavy piece of furniture from a recently deceased relative's house into hers and were expecting an /important/ phone call. |
22:38 | | Turaiel[Offline] is now known as Turaiel |
22:39 | <@Tarinaky> | Plus, as we've established, I live in a country where you aren't cut off from JSA after 6 months or whatever the limit is in the colonies. |
22:42 | <@Tarinaky> | Most of my post-graduation-job-related-stress atm is that I /really/ don't want to spend 6 months->1 year at home dealing with my family. |
22:42 | <@Tarinaky> | So oestensibly it's self-inflicted. :/ |
22:53 | | Stalker [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
22:58 | <@Reiv> | Obviously, you should get a telemarketing job so you can afford to live away from home. |
22:58 | <@Reiv> | :p |
23:00 | | gnolam [lenin@Nightstar-skg971.cust.bredbandsbolaget.se] has quit [Connection reset by peer] |
23:00 | | gnolam [lenin@Nightstar-skg971.cust.bredbandsbolaget.se] has joined #code |
23:00 | | mode/#code [+o gnolam] by ChanServ |
23:10 | < AnnoDomini> | Hmm. I will need more time to learn this pathfinding stuff. |
23:11 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
23:11 | < AnnoDomini> | I think I undestand how A*/Dijkstra work, but not well enough to implement it. |
23:11 | | * McMartin nods |
23:11 | < McMartin> | What's your implementation language? |
23:11 | < AnnoDomini> | C/C++. |
23:11 | < McMartin> | ... right |
23:11 | < McMartin> | OK, might want to try to do it first in Python or something where you get more datatypes "for free" |
23:12 | < McMartin> | C++ does have a priority_queue class, but it's not the easiest thing in the world to use |
23:13 | < McMartin> | (std::priority_queue, in <queue>) |
23:13 | < AnnoDomini> | For now, I've implemented "if blocked, move randomly, otherwise move towards target" and it works! |
23:13 | < McMartin> | Also suitably zomboid |
23:14 | <@gnolam> | AnnoDomini: did you see my A* link? |
23:15 | < AnnoDomini> | I don't think so. |
23:15 | | dmiles_afk [dmiles@Nightstar-hdcn1r.or.comcast.net] has joined #code |
23:15 | < dmiles_afk> | Anyone seen a teaching system author'd in inform7? |
23:16 | <@gnolam> | <gnolam> AnnoDomini: if you want to learn A*, http://www.policyalmanac.org/games/aStarTutorial.htm is still the best tutorial I've come across. |
23:16 | < AnnoDomini> | Ah, yes, I've found this also. |
23:16 | < dmiles_afk> | (looking to take i7x code for such a teaching game.. and change the subject mater for the students) |
23:17 | < McMartin> | i7x? |
23:17 | < McMartin> | I only know that as "Inform 7 Extension" and that seems implausible in context |
23:17 | < dmiles_afk> | oh oops yeah.. i7 then :) |
23:18 | < McMartin> | Oh, I missed your first line |
23:18 | | * dmiles_afk was googling about i7 and this channels irc logs came up!~ |
23:18 | < McMartin> | Hi, I'm Michael Martin, I wrote one of the commonly used conversation menu systems in I7 :) |
23:19 | < McMartin> | What do you mean by "teaching system" here, though? |
23:19 | < McMartin> | Like, as part of a course in authoring interactive fiction? Programming generally? |
23:19 | < dmiles_afk> | ah awesome!.. I am Douglas Miles.. i wrote some text to logical form convertors in my day.. |
23:20 | <@Tarinaky> | I am Tarinaky... I have failed in every post-mandatory-education goal I have ever held! |
23:21 | < McMartin> | Tarinaky: Here I'm giving my full name because it's the name I'm listed under in IF-related stuff |
23:21 | < dmiles_afk> | Well currently the task is to show off ta robot head that will hold a conversion.. so I decide the best thing to do is find a directed conversation such samll lesson a teacher had created to quiz students on mathmatical story problesm |
23:21 | < McMartin> | Which is probably part of why this would come up in an I7 google search |
23:21 | <@Tarinaky> | I'd have given my full name but I'm kindof between legal names :/ |
23:22 | < McMartin> | Hrm, so you want students to *interact* with it |
23:22 | < McMartin> | I'd start with Emily Short's Inform Recipe Book, which is the "yellow pages" in the I7 docs |
23:22 | < dmiles_afk> | yes.. perhaps the parser will becom e the voice of the teacher |
23:23 | < McMartin> | There's a bunch of examples for topic-based conversation in the recipe book |
23:23 | < McMartin> | For teaching it, Nick Montfort has actually taught classes in this stuff, but the materials I've found of his that he's put online all seem to be I6-based. |
23:25 | < McMartin> | For more, hrm, dramatic or narrative conversations, Eric Eve ported the TADS 3 conversation cued-action model to I7 as a series of extensions; the best discussion of setting up and using that I've seen is the book "Creating Interactive Fiction with Inform 7" by Aaron Reed |
23:25 | < McMartin> | My own conversation system is closer to the LucasArts/Bioware/etc model and is probably not suitable for this use case. |
23:27 | < McMartin> | Opening up the Recipe Book, Chapter 7 covers a variety of things to do with other characters. |
23:28 | < dmiles_afk> | I am listening and visiting links you are suggesting :) |
23:28 | < McMartin> | Well, http://inform7.com/learn/man/Rdoc52.html then |
23:29 | < McMartin> | The Reed book is an actual book |
23:32 | < dmiles_afk> | i am so amzed I lucked out and found you McMartin |
23:34 | < McMartin> | If you start doing serious I7 development, there's an author forum at http://www.intfiction.org/forum/ and then there's also a "MUD" that's more of a set of chat rooms that has channels for development in various systems at http://ifmud.port4000.com/ |
23:35 | < McMartin> | This channel doesn't do a whole lot of IF work overall. |
23:36 | | dmiles_akf [dmiles@Nightstar-hdcn1r.or.comcast.net] has joined #code |
23:36 | | dmiles_akf is now known as logicmoo |
23:56 | < logicmoo> | i am definately new to inform7 :) .. your (Michael) Assumed Conversers.i7x is helpfull |
--- Log closed Tue Dec 10 00:00:44 2013 |