--- Log opened Mon Dec 22 00:00:35 2014 |
00:28 | | * celticminstrel 's latest comments: "// Destroy the universe" ... "// And now, reconstruct the universe." |
01:07 | <@celticminstrel> | So now I'm getting SIGABRT when resizing the multi_array. :S |
01:08 | <@celticminstrel> | For some reason, it seems to be deleting unallocated memory or something. |
01:10 | <&ToxicFrog> | How are you resizing it? |
01:12 | <@celticminstrel> | .resize(boost::extents[width][height]) |
01:12 | <&ToxicFrog> | I've got nothing |
01:12 | <@celticminstrel> | Hmm. |
01:13 | <@celticminstrel> | Well, I suppose I could try the "destroy and reconstruct" trick... the resize function has measures to preserve the date in the array, but I don't need to do that in this case. |
01:13 | <@celticminstrel> | It looks weird and feels slightly hacky, though. |
01:16 | <@celticminstrel> | ...huh? I click Load Game and then cancel and suddenly there seems to be a party in memory. |
01:16 | <@celticminstrel> | Okay, so, somehow it seems like the multi_array is not initialized. |
01:17 | <@celticminstrel> | Because the crash occurs from simply calling its destructor. |
01:34 | < [R]> | warning: deprecated conversion from string constant to âchar*â <-- what's that noise about? |
01:34 | <@celticminstrel> | String constants used to be considered to have type char*. |
01:34 | <@celticminstrel> | Now they have type const char*. |
01:34 | < [R]> | Ah |
01:35 | < [R]> | Adding "expected const char*" to the warning was clearly too much hassle for them then. |
01:35 | <@celticminstrel> | Guess so. |
01:37 | < [R]> | Or even s/string constant/const char*/ |
01:38 | <@celticminstrel> | I think it only applies to string literals. |
01:39 | < [R]> | So stripping a const char* of the "const" part isn't an error? |
01:40 | <@celticminstrel> | I think that gives an error rather than a warning. |
01:45 | <@celticminstrel> | So, the first time the multi_array destructor is called, everything is fine. The second time... boom. (And before you ask, it's reconstructed between those times. Or at least, the class containing the class containing the multi_array is reconstructed.) |
02:21 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
02:21 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
02:43 | <@celticminstrel> | Ah, the culprit was my weird assignment operator. |
02:44 | <@celticminstrel> | At least, this seems the most likely culprit. |
02:49 | <@celticminstrel> | Yeah. |
03:00 | <@celticminstrel> | ...why is this instance variable at max value. |
03:01 | <&Derakon> | You mean maxint? |
03:01 | <&Derakon> | Maybe you didn't initialize it. |
03:01 | <@celticminstrel> | Yes. |
03:01 | <@celticminstrel> | It's an instance variable. |
03:02 | <@celticminstrel> | In a class. |
03:02 | <&Derakon> | And? |
03:02 | <&Derakon> | That doesn't guarantee it gets initialized to something sensible. |
03:03 | <@celticminstrel> | I thought it did, at least when a constructor is defined. (One is.) |
03:03 | <@celticminstrel> | It's also nested within a global variable. |
03:04 | <&Derakon> | It's been awhile since I knew the ins and outs of C++, but I'm pretty sure that it won't set values on anything for you. |
03:04 | <@celticminstrel> | Static data is zero-initialized by default. |
03:04 | <&Derakon> | Any declared variable is garbage until manually set to something meaningful. |
03:04 | <&Derakon> | Ah? |
03:04 | <&Derakon> | Well, as a rule I wouldn't rely on that anyway~ |
03:04 | <@celticminstrel> | That's definitely true of local variables. |
03:05 | <@celticminstrel> | Well anyway, apart from that one glitch, my cursory testing shows that stuff works as it should with the entire scenario in memory. |
03:07 | | * celticminstrel blinks. |
03:08 | | * celticminstrel just had a crash, related to the aforementioned glitch.. |
03:10 | <@celticminstrel> | ...not technically related: I should probably do something about the use of -1 to mean "nothing" in unsigned variables. Like making them signed. |
03:10 | | * Derakon facepalms. |
03:11 | <&Derakon> | That is an easy source of maxint in unsigned variables. |
03:12 | <@celticminstrel> | I don't think that's how I got it in this particular case; when I had a crash, there was a different random value in the instance variable. |
03:12 | <@celticminstrel> | But, these things were originally signed, and at some point (a few years ago) I made them signed because I didn't realize -1 was sometimes used as a magic value. |
03:13 | <@celticminstrel> | Uh, I missed an "un". |
03:13 | <&Derakon> | What are you working on? |
03:13 | <@celticminstrel> | Still Blades of Exile. |
03:13 | <&Derakon> | Ah, neat. |
03:14 | <@celticminstrel> | ...well, at least signed->unsigned->signed gets back -1. That's, uh... sorta helpful. |
03:14 | <&Derakon> | Yeah, all signed does is change the interpretation of the leftmost bit. |
03:14 | <&Derakon> | The actual bits remain the same. |
03:15 | <@celticminstrel> | Okay, glitch fixed. |
03:16 | | * celticminstrel wouldn't be surprised if a few other bugs were introduced with the change of storing the whole scenario in memory, but they can be sorted out when they're discovered. |
03:16 | <&Derakon> | Heh. |
03:16 | <&Derakon> | Yeah, you can be a bit more liberal with memory usage these days. |
03:16 | <&Derakon> | People don't have systems with 32MB of RAM. |
03:17 | <@celticminstrel> | I broke something related to legacy files a few commits back because, due to some other changes, regaining the original data required the whole scenario to be in memory. |
03:17 | <@celticminstrel> | (Specifically, I changed it to store the actual strings for saved journal-type stuff, instead of references to them, meaning I need to look them up in the scenario at load time.) |
03:18 | <&Derakon> | Oh, in Exile news, are you aware there's a screenshot LP of Exile 1 on lparchive.org? |
03:18 | <@celticminstrel> | So now I can fix that. |
03:18 | <@celticminstrel> | I was not aware of that. |
04:10 | | * celticminstrel is considering building a custom 2D array class, because multi_array keeps causing problems. |
04:13 | <@celticminstrel> | Just a wrapper around std::vector or something. |
04:19 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
05:07 | | Derakon is now known as Derakon[AFK] |
05:20 | | celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
05:46 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has quit [[NS] Quit: Tekeli-li! Tekeli-li!] |
06:03 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
06:29 | | thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has quit [Connection closed] |
06:30 | | macdjord [macdjord@Nightstar-c0i1dq.cable.rogers.com] has joined #code |
06:31 | | mode/#code [+o macdjord] by ChanServ |
06:31 | | thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has joined #code |
06:31 | | mode/#code [+o thalass] by ChanServ |
07:02 | | Kindamoody[zZz] is now known as Kindamoody |
08:47 | | * McMartin pokes at Rust. |
09:02 | <@gnolam> | Try some WD-40. |
09:04 | | macdjord is now known as macdjord|slep |
09:12 | | gnolam [lenin@Nightstar-fk7ia4.cust.bredbandsbolaget.se] has quit [[NS] Quit: Gone] |
09:58 | | thalass is now known as Thalass|dinnar |
10:09 | | gnolam [lenin@Nightstar-std3v3.mobileonline.telia.com] has joined #code |
10:09 | | mode/#code [+o gnolam] by ChanServ |
10:11 | | gnolam_ [lenin@Nightstar-lhk.n94.131.88.IP] has joined #code |
10:13 | | gnolam [lenin@Nightstar-std3v3.mobileonline.telia.com] has quit [Ping timeout: 121 seconds] |
10:16 | | Thalass|dinnar is now known as Thalass |
10:18 | | Kindamoody is now known as Kindamoody|afk |
10:40 | | * Tarinaky facepalms. |
10:41 | <@Tarinaky> | So I've been writing all of my print statements throughout this codebase as std::cout << "Foo %s\n", variableBar; |
10:41 | <@Tarinaky> | And /now/ I realise that isn't actually valid. |
10:47 | <@Azash> | sed times |
10:48 | | * Tarinaky complains that C++ is insufficiently like Python. |
10:56 | <@Azash> | Thankfully so |
10:56 | <@Azash> | Let's not make a bad situation worse |
10:57 | | * Tarinaky throws things at Azash. |
11:01 | <@Azash> | I stand by my statement |
11:16 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
11:16 | | mode/#code [+o Checkmate] by ChanServ |
11:29 | <@Tarinaky> | http://thecodelesscode.com/case/173 |
12:14 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has quit [[NS] Quit: No Ping reply in 180 seconds.] |
12:15 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has joined #code |
12:15 | | mode/#code [+ao Reiver Reiver] by ChanServ |
12:21 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has quit [Ping timeout: 121 seconds] |
12:22 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has joined #code |
12:22 | | mode/#code [+ao Reiver Reiver] by ChanServ |
12:49 | | Thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has quit [[NS] Quit: g'night!] |
13:34 | | gnolam_ [lenin@Nightstar-lhk.n94.131.88.IP] has quit [[NS] Quit: Blargh] |
13:38 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
13:38 | | mode/#code [+o PinkFreud] by ChanServ |
13:41 | <@Tarinaky> | Reasons I hope I never have to maintain this code: I'm using Macros for function signatures. |
13:42 | <@Tarinaky> | Pray for my soul. |
13:43 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
13:46 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
13:46 | | mode/#code [+o PinkFreud] by ChanServ |
13:51 | | celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has joined #code |
13:51 | | mode/#code [+o celticminstrel] by ChanServ |
13:51 | | Tarinaky_ [tarinaky@Nightstar-e99cts.net] has joined #code |
13:51 | | Tarinaky_ [tarinaky@Nightstar-e99cts.net] has quit [[NS] Quit: leaving] |
13:56 | | Tarinaky [tarinaky@Nightstar-e99cts.net] has quit [[NS] Quit: Lost terminal] |
13:56 | | Tarinaky [tarinaky@Nightstar-e99cts.net] has joined #code |
13:56 | | mode/#code [+o Tarinaky] by ChanServ |
14:04 | <@Tarinaky> | Note to self: detatch screen gracefully before testing code that suspends your machine >.> |
15:16 | | Vorntastic [Vorn@Nightstar-vl0gr2.sub-70-215-15.myvzw.com] has joined #code |
15:19 | | * Vorntastic hits imagemagick. |
15:19 | < Vorntastic> | The one place where I want to use fx and it's not allowed there. |
15:21 | < Vorntastic> | --I have a banner that I wantg to composite over a bunch of other images of varying sizes; thus I wish to resize the banner for each image. But that doesn't exist as a possibility, because fx escapes aren't allowed in geometry arguments. |
15:30 | <@celticminstrel> | This feels a little crazy. I now have a vector of maps whose value type is a map. |
15:31 | <&McMartin> | Objects are kind of like maps! |
15:31 | <&McMartin> | (In Python, objects are *very* like maps.) |
15:32 | <@celticminstrel> | It's for saving the pertinent state of a set of controls in the dialog - I'm implementing a sort of "stack-like" view for editing array-like data. |
15:32 | | * Tarinaky goes find the relevant codelesscode |
15:32 | <&McMartin> | Yeah |
15:32 | <@Tarinaky> | Here it is: http://thecodelesscode.com/case/167 |
15:32 | <@celticminstrel> | So, the vector represents the array; the outer map parallels the control map; and the inner map represents a specific control. |
15:33 | <@Tarinaky> | âSo in seven days, by using only simple constants and functions operating on a generic Java hashtable, we have invented... the Object.â |
15:34 | <@celticminstrel> | Heh. |
15:35 | <&McMartin> | This sounds like it's more directly representing the marshalled state of it, and if I'm feeling impish I'd note that what was invented here was actually the .INI file format |
15:36 | <@Tarinaky> | Not true, their implimentation allows for Function Objects to be assigned to keys in the Hashmap. |
15:36 | <@Tarinaky> | You can't represent methods in an .ini |
15:38 | <@Tarinaky> | On an unrelated note: is there a library out there for doing what I've spent today doing... |
15:39 | <@Tarinaky> | We have a DLL with a number of functions defined. We wish to be able to call functions from that DLL, by name, over the network/SSH. |
15:40 | <@Tarinaky> | The solution I have is to write an exe containing a Map of strings to function pointers. |
15:40 | <@Tarinaky> | And have a wrapping function that deserializes the function arguments from a vector of strings. |
15:40 | <@Tarinaky> | For each function in the DLL we wish to be publically accessible. |
15:42 | <@Tarinaky> | Which, you know... works... and is better than what we had before (extending by hand an unrelated .exe to parse obtuse combinations of --flags to call the functions) |
15:43 | <@Tarinaky> | But this must be a problem with a formal solution available. |
15:44 | <@Tarinaky> | Any ideas? |
15:46 | <&ToxicFrog> | Ummm |
15:46 | <&ToxicFrog> | So, the general term for "I want to call a function on another machine and get the results back" is RPC, Remote Procedure Call, and there are well established protocols for this |
15:47 | <&ToxicFrog> | But this generally involves running a daemon that can receive the RPC requests, and it sounds like you aren't doing that, you want to be able to ssh into the machine and do the equivalent of rundll32 |
15:47 | <@Tarinaky> | Apparently rundll32 requires that the DLL be mangled in some particular way to work. |
15:48 | <@iospace> | I'm not good at hosting meetings Dx |
15:48 | <&ToxicFrog> | So, the "industry standard" way to do this would be to write a daemon that exposes an RPC endpoint and links with that DLL |
15:49 | <&ToxicFrog> | The "runnable over SSH" way to do this is to write a program that takes different command line flags for the different functions and links with that DLL, I think |
15:49 | <@Tarinaky> | So basically what I've done? |
15:49 | <&ToxicFrog> | What's the underlying goal that produced this requirement? |
15:50 | <&ToxicFrog> | Pretty much. |
15:50 | <@Tarinaky> | Automated Acceptance Testing |
15:50 | <@Tarinaky> | (of solutions that involve both hardware+software) |
15:53 | <@Tarinaky> | On an unrelated note: Shell's 'Prelude' tanker is pretty cool. |
15:54 | <@Tarinaky> | It's a liquified natural gas refinery... on a boat. |
16:16 | | * McMartin notes in passing that his experiences with COM and SOAP have not been pleasant. |
16:32 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
16:32 | | mode/#code [+ao Derakon Derakon] by ChanServ |
16:32 | <&Derakon> | Got a Java question for you lot. |
16:32 | <&Derakon> | I have a bunch of different windows that are displaying aspects of a certain dataset (a collection of images). |
16:33 | <&Derakon> | Each display has a collection of attributes, a DisplaySettings instance. |
16:33 | <&Derakon> | Which covers things like the coordinates of the image being displayed, the contrast settings, whether or not a timestamp is shown (and how it is shown), etc. |
16:33 | <&Derakon> | Each of these attributes is a field of the DisplaySettings class. |
16:33 | <&Derakon> | Now. |
16:34 | <&Derakon> | I want to be able to optionally link attributes across all windows, so that when one window changes a linked attribute, the other windows update to suit. |
16:34 | <&Derakon> | For example, when one window turns on the timestamp display, the others should as well. |
16:35 | <&Derakon> | Currently this would be done by calling [get|set]TimestampIsDisplayed() on the DisplaySettings class. |
16:35 | <&Derakon> | (more or less. DisplaySettings is actually immutable, so "setting" it involves making a slightly-different copy) |
16:36 | <&Derakon> | If I were using Python, I'd just reach into __dict__ and have one code path that works for all attributes. |
16:36 | <&Derakon> | I'm not seeing any real way to achieve a similar level of simplicity in Java. |
16:37 | <&Derakon> | I mean, Java will never be as straightforward as Python, but I'd prefer not to have separate code paths for every single attribute that can be linked, if possible. |
16:37 | <&McMartin> | As a design decision of sorts, Java makes this possible but difficult, on the grounds that reflection is abused more often than it helps |
16:37 | <&McMartin> | But java.lang.reflect has the methods and classes for "reaching into __dict__" |
16:37 | <&McMartin> | (in this case, getFields()) |
16:37 | <&McMartin> | (IIRC. It's been a loooong time since I've had to break it out.) |
16:38 | <&McMartin> | I believe the most Java-y way to do such a thing is actually to explicitly maintain a state dictionary and update it as needed (with subscriptions to its changes, etc). |
16:39 | <&McMartin> | Instead of having the things actually be "real" fields |
16:39 | <&Derakon> | Yeah, our old system used a JSONObject to hold basically all metadata. |
16:39 | <&Derakon> | Which was awful in general. |
16:40 | <&McMartin> | Yeah, I'm thinking something more like an entity/trait system that lets you do publish/subscribe on updates. |
16:40 | <&Derakon> | We have an EventBus that allows you to subscribe to changes in general of the DisplaySettings object. |
16:40 | <&Derakon> | Not for individual attributes, thuogh. |
16:40 | <&Derakon> | Er, though. |
16:40 | | * McMartin nods |
16:41 | <&Derakon> | I'm not certain how I'd add such functionality without moving away from specific attributes, again. |
16:41 | <&McMartin> | By whitelisting the attributes, basically~ |
16:41 | <&Derakon> | A big part of the re-architecture I'm doing is to be a lot more bondage-and-discipline about type safety~ |
16:41 | <&McMartin> | But yeah, the fact that you've just migrated *away* from that is where the pain is coming from~ |
16:41 | <&Derakon> | Mm, note I'm not trying to re-implement existing functionality under a new regime. |
16:42 | <&Derakon> | Our old system couldn't do multiple displays for the same dataset. |
16:42 | <&Derakon> | So it didn't ever come up. |
16:42 | <&McMartin> | Reflection beats type safety with an old tire iron, so the least-effort approach that maintains typesafety in this case is probably to whip up a Python script that generates Java code to spec. |
16:42 | <&Derakon> | Heh. |
16:42 | <&Derakon> | You may be right. |
16:43 | <&Derakon> | It's not like there isn't already a ton of generated code for our data objects. |
16:43 | <&Derakon> | Ah, well. |
16:43 | <&McMartin> | But coming to Java from Python, it may be valuable to read up on the classes and methods of java.lang.reflect *anyway* just to get a notion of what Java thinks its own objects are made of. |
16:44 | <&McMartin> | (Since like Python and unlike C++ it not only has firm opinions about this, it also represents them in the language outright) |
16:44 | <&Derakon> | Y'know, the first assignment I had in this codebase (and thus the first major code I'd done in Java in the last 6+ years), I tried to pass a bare function as a parameter. |
16:44 | <&Derakon> | Y'know, like you'd do in Python. |
16:44 | <&Derakon> | This is a pain in the ass in Java. |
16:45 | <&Derakon> | Thanks for the advice. |
16:45 | <&McMartin> | Java is very much not multi-paradigm, so yeah, doing functional things is like pulling teeth. |
16:46 | <&McMartin> | Also after spending a day poking at Rust: very ambitious, some design decisions that might be good ideas or might be howling madness, should be interesting to see how it goes |
16:46 | <&McMartin> | I am not at all convinced that you can get away with ownership types in a systems-level language. Maybe immutability-by-default will make that OK. |
16:48 | <&Derakon> | Ownership types? |
16:48 | <&McMartin> | So, as I have occasionally snickered at, a code construct "owns" an object if it destroys it in every possible run of the program. |
16:49 | <&McMartin> | (lolpwnt) |
16:49 | <&Derakon> | Ah, yes. |
16:49 | <&McMartin> | C++ auto_ptr, where assigning an auto_ptr to something or passing it to a function or w/e causes the pointer assigned to magically become null, is a hamfisted way of enforcing ownership |
16:50 | <&McMartin> | Rust puts constraints on when you can alias or mutably alias things, and based on the constraints I have concluded that they are storing ownership information as part of type inference. |
16:50 | <&McMartin> | Doing that is using "ownership types" |
16:50 | <&McMartin> | Which is Exactly What It Says On The Tin as long as you also have a degree in food science, as it were~ |
16:51 | <&Derakon> | Do they provide mechanisms for handing off ownership? |
16:51 | <&Derakon> | E.g. for a factory system? |
16:51 | <&McMartin> | Sure, that would be "returning from a function" |
16:52 | <&McMartin> | Created in a scope. That scope exits with a return, so all values it owns that aren't returned are destroyed, and all values it *does* return have ownership passed to the caller |
16:52 | <&McMartin> | That's a standard part of the semantics for doing the analysis - I didn't see it in the documents themselves |
16:52 | <&Derakon> | Ah, okay. |
16:53 | <&McMartin> | Ordinarily though objects are immutable so it doesn't really come up |
16:53 | | * Derakon takes a moment to eye the "Christmas in the Clouds" track from the Cloudbuilt OST. |
16:53 | <&McMartin> | Oh hey, I didn't think to check for OST updates~ |
16:54 | <&McMartin> | Hum. Not actually seeing it |
16:54 | <&McMartin> | Where is it? |
16:54 | <&Derakon> | I got it when I bought the soundtrack off of Bandcamp, but I don't see it in the track listing. Weird. |
16:54 | <&Derakon> | http://jacoblincke.bandcamp.com/album/cloudbuilt-complete-original-soundtrack |
16:55 | <&McMartin> | Yeah, apparently it's not on the public page |
16:55 | <&Derakon> | There are some extra tracks at http://jacoblincke.bandcamp.com/ |
16:55 | <&Derakon> | Which you may not have yet. |
16:55 | <&Derakon> | But they don't include the Christmas track. |
16:55 | <&McMartin> | I don't see it in Additional Speed either |
16:55 | <&McMartin> | In fact, everything in Additional Speed is retroactively added to the OST |
16:56 | <&Derakon> | Well, https://www.youtube.com/watch?v=kgTlMc2NhQQ |
16:57 | <&McMartin> | That is a noticably merry version of the otherwise pretty grim Demi's theme |
16:58 | <&Derakon> | Which one is that? |
16:58 | <&McMartin> | The bit that appears in basically every track - it shows up first the part intoned by the chimes at 0:37 in "Cloudbuit" itself |
16:59 | <&Derakon> | Ah. |
16:59 | <&McMartin> | (I should note that I'm the one associating that theme with Demi, not Lincke - he may just think of it as 'the core cloudbuilt theme' or whatever) |
16:59 | <&Derakon> | Demi is...the protagonist's name? |
16:59 | <&Derakon> | I haven't played Cloudbuilt in awhile. |
17:00 | <&McMartin> | Yeah |
17:00 | <&McMartin> | I'm not sure that actually appears in the game or only in the text surrounding it, actually >_> |
17:00 | <&Derakon> | I should probably go back and play the levels that aren't Redeployment. |
17:01 | <&McMartin> | Combat was heavily rebalanced in the main game about the time the Defiance DLC came out. the game feels a lot different now |
17:01 | <&McMartin> | I still can't beat Redeployment but I've gotten much closer~ |
17:01 | <&McMartin> | (Strike turrets no longer autoshield!) |
17:01 | <&McMartin> | You also totally should play more Trace Vector >_> |
17:01 | <@Tarinaky> | Somewhat terrifying news: Hackers have been targetting POS systems in the US. |
17:01 | <&Derakon> | I've been busy with Tower of Guns. |
17:01 | <&Derakon> | But now I've beaten the bonus boss, I'm feeling less inclined to chase after the remaining scraps of content. |
17:01 | <@Tarinaky> | And using them to extract credit card information. |
17:01 | <&McMartin> | Tarinaky: Um, yeah, I can think of three major breaches off the top of my head in the past year |
17:01 | <&Derakon> | Tarinaky: yeah, that's what the Home Depot and Target hacks were. |
17:02 | <@Tarinaky> | Not sure if they were specifically related to the magstrip or if they affect chip and PIN transactions. |
17:02 | <@Tarinaky> | How much tinfoil should I be wearing? |
17:02 | <&McMartin> | The attack IIRC involved actually capturing the data as it was transmitted to the clearinghouse |
17:03 | <@Tarinaky> | Akk |
17:03 | <@Tarinaky> | That's awful. |
17:03 | <&McMartin> | There is also reason to believe that it required more than just subverting the POS stations but that was part of it |
17:04 | <&McMartin> | This is why the banks are being permitted to sue Target for negligence despite credit cards explicitly not working that way |
17:04 | <&Derakon> | Can we have chip+PIN now please? |
17:04 | <&Derakon> | Right now you can make a charge using just 19 numbers (16 front + 3 back) and that's it. |
17:05 | <&Derakon> | This is insane. |
17:05 | <&McMartin> | Presumably this will happen at the point that the amount the banks lose in fraud exceeds the cost in rolling it out~ |
17:05 | <&McMartin> | And not a single penny before~ |
17:05 | <@Tarinaky> | We have chip and PIN everywhere here. |
17:06 | <&McMartin> | Yes, because you HATE FREEDOM~ |
17:06 | <@Tarinaky> | Although I think it's still possible to use the magstrip as a 'fallback' which is weird. |
17:06 | <&McMartin> | Yeah, I'll admit I'm not super interested in seeing chip and PIN rolled out if doing so just means the banks are more likely to let fraudulent charges stand |
17:08 | <&McMartin> | (More seriously: as a "fallback" I'd assume chip-and-PIN doesn't play well with online purchases? Or does it work like dongle-based 2-factor auth or something?) |
17:08 | <@Tarinaky> | I mean for card present transactions. |
17:09 | <&McMartin> | Ah, OK |
17:09 | <@Tarinaky> | Since that's what we're talking about. |
17:09 | <&Derakon> | For online purchases, don't you get a pad of single-use codes? |
17:09 | <@Tarinaky> | The fallback is the magstrip. |
17:09 | <&McMartin> | OK |
17:09 | <&Derakon> | ISTR hearing about a system like that. |
17:09 | <&McMartin> | Derakon: Some banks offer that as an independent service. I believe it is totally orthogonal to chip-and-PIN |
17:09 | <&McMartin> | It *also* needs to be more widespread~ |
17:09 | <@Tarinaky> | With some merchants they ask me for a password as well. |
17:17 | <@Tarinaky> | I'm... not sure how useful single-use codes would be in practice... |
17:17 | <@Tarinaky> | It'd certainly be an inconvenience. |
17:18 | <&Derakon> | For the people trying to subvert the system, it'd be rather more than an inconvenience. |
17:18 | <&Derakon> | You'd just need to carry a card around and some means of marking off codes as you use them. |
17:18 | <@Tarinaky> | Yes, but then won't a thief be able to steal both? |
17:19 | <@Tarinaky> | I'm not sure it matters whether the criminal needs to steal 19 digits or 200. |
17:19 | <&Derakon> | The codes are a one-time pad. |
17:19 | <&Derakon> | They only exist physically on your person and on a processing server at the credit card company. |
17:19 | <&Derakon> | The problem is everything in between those two points. |
17:19 | <@Tarinaky> | And what stops a criminal stealing or copying the one time pad? |
17:20 | <&Derakon> | The fact that you have it physically on your person? |
17:20 | <&Derakon> | Physical attacks aren't what we're worried about here. |
17:20 | <&Derakon> | Because they only go after one person at a time, and thus scale horribly. |
17:21 | <&Derakon> | They're also pretty easy to guard against, and you know when you've been stolen from. |
17:21 | <@Tarinaky> | Not necessarily. |
17:21 | <&Derakon> | The problem is when some rather POSS gets subverted, gathering info on thousands of cards, and you only find out months later after the company decides they have to do damage control on this hack. |
17:22 | <&Derakon> | (This is the same kind of reasoning why most software developers would much rather vote using physical ballots than electronic ones) |
17:22 | <&Derakon> | (It is pretty hard to physically stuff a ballot box compared to changing a number in a database) |
17:22 | <@Tarinaky> | (It really isn't) |
17:23 | <@iospace> | PEOPLE OF #CODE, I HAVE A QUESTION: Is there anyway to make pl/sql embedded in a bash script return a return code that is not 0. |
17:26 | <@iospace> | The embedded pl/sql is being called via sqlplus |
17:31 | <@iospace> | anyone? :< |
17:35 | <@iospace> | never mind, figured it out, mostly |
18:13 | <@celticminstrel> | Well, my stack view works, yay. |
18:36 | <&McMartin> | Tarinaky: Nobody actually answered your "how much tinfoil" question - while I'm not an expert, my preferred approach is to use cards with low credit limits for risky purchases to limit exposure, but the list of "risky" has been increasing drastically over the years -_- |
20:05 | | Stumblinbear [Stumblinbea@Nightstar-jd9.012.239.67.IP] has joined #code |
20:40 | <@Tarinaky> | McMartin: That advice has almost always been for Card Not Present transactions in the past. |
20:40 | <@Tarinaky> | This is an exploit for Card Present transactions in reputable retailers. |
20:40 | <@Tarinaky> | If they can do this in a major US retailer like Target - what's to stop someone doing the same thing at my local Sainsbury's? |
20:41 | <@Tarinaky> | (Sainbury's being a major supermarket chain in the UK that caters to the tastes of my socioeconomic class) |
20:42 | <@celticminstrel> | Sainsbury's caters to the tastes of some particular socioeconomic class? |
20:43 | <@Tarinaky> | All supermarkets do. |
20:43 | <@Tarinaky> | I mean, it's not anything overt. |
20:44 | <@Tarinaky> | It's difficult to explain. |
20:45 | <@Tarinaky> | Morrisons is where posh people shop because they sell themselves as being pricier and having fresher food. |
20:46 | <@Tarinaky> | Until the arrival of budget supermarkets, like Lidl, from the continent 5 or so years ago, Tescos was the cheapest so if I said I shopped there you'd assume I had a family and was trying to feed a lot of mouths on a budget. |
20:47 | <@Tarinaky> | Iceland specialises in frozen foods - so you'd assume I was a chav who didn't know how to operate anything more complicated than a microwave. |
20:48 | <@celticminstrel> | I see? |
20:49 | <@Tarinaky> | Sainsury's have the best variety so from that you can infer I'm a young professional without a family. |
20:50 | <@Tarinaky> | As they're pricier than Tescos or Lidl. |
20:51 | <@Tarinaky> | So I pay a little more to have luxuries like the exact kind of stuffed olives I like :P |
--- Log closed Mon Dec 22 21:10:00 2014 |
--- Log opened Mon Dec 22 21:10:09 2014 |
21:10 | | TheWatcher [chris@Nightstar-ksqup0.co.uk] has joined #code |
21:10 | | Irssi: #code: Total of 2 nicks [1 ops, 0 halfops, 0 voices, 1 normal] |
21:10 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
21:10 | | macdjord|slep [macdjord@Nightstar-c0i1dq.cable.rogers.com] has joined #code |
21:10 | | Irssi: Join to #code was synced in 33 secs |
21:11 | !Deepthought.Nightstar.Net TS for #code changed from 1419282609 to 1260554468 |
21:11 | | ServerMode/#code [-not Vorntastic] by *.Nightstar.Net |
21:11 | | ServerMode/#code [+nrt] by *.Nightstar.Net |
21:11 | | JustBob [justbob@ServerAdministrator.Nightstar.Net] has joined #code |
21:11 | | ErikMesoy [Erik@Nightstar-jffd2p.80-203-16.nextgentel.com] has joined #code |
21:11 | | jerith [jerith@Nightstar-ip7ar2.slipgate.net] has joined #code |
21:11 | | abudhabi [abudhabi@Nightstar-7nkq9k.de] has joined #code |
21:11 | | Azash [ap@Nightstar-28tp6p.plumbing] has joined #code |
21:11 | | celticminstrel [celticminst@Nightstar-jeiu0g.dsl.bell.ca] has joined #code |
21:11 | | simon_ [simon@Nightstar-2og823.pronoia.dk] has joined #code |
21:11 | | Tamber_ [tamber@furryhelix.co.uk] has joined #code |
21:11 | | Ogredude_ [quassel@Nightstar-dm1jvh.projectzenonline.com] has joined #code |
21:11 | | gizmore [kvirc@Nightstar-9odp1h.pools.vodafone-ip.de] has joined #code |
21:11 | | EvilDark1ord [jjlehto3@Nightstar-evu5hu.org.aalto.fi] has joined #code |
21:11 | | Kindamoody|afk [Kindamoody@Nightstar-180u8i.tbcn.telia.com] has joined #code |
21:11 | | Turaiel[Offline] [Brandon@Nightstar-olc20d.resnet.mtu.edu] has joined #code |
21:11 | | Stumblinbear [Stumblinbea@Nightstar-jd9.012.239.67.IP] has joined #code |
21:11 | | Datawalke [Datawalke@Nightstar-kt8k7i.com] has joined #code |
21:11 | | Xires [xires@Nightstar-joe.cv9.106.91.IP] has joined #code |
21:11 | | Derakon_ [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
21:11 | | Tarinaky [tarinaky@Nightstar-e99cts.net] has joined #code |
21:11 | | RobinStamer [rstamer@genoce.org] has joined #code |
21:11 | | iospace [Alexandria@Nightstar-fkokc2.com] has joined #code |
21:11 | | VirusJTG [VirusJTG@Nightstar-6i5vf7.sta.comporium.net] has joined #code |
21:11 | | Attilla [sid13723@Nightstar-ed0oqj.irccloud.com] has joined #code |
21:11 | | Orthia [orthianz@Nightstar-fdm.ne6.184.203.IP] has joined #code |
21:11 | | Xon [Xon@Nightstar-j72.ku7.252.119.IP] has joined #code |
21:11 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
21:11 | | Derakon[AFK] [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
21:11 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
21:11 | | McMartin [mcmartin@Nightstar-rpcdbf.sntcca.sbcglobal.net] has joined #code |
21:11 | | Syka [the@Nightstar-c409v3.vividwireless.net.au] has joined #code |
21:11 | | JBeshir [namegduf@Nightstar-rjh.rpa.226.188.IP] has joined #code |
21:11 | | froztbyte [froztbyte@Nightstar-frrora.za.net] has joined #code |
21:11 | | Reiver [quassel@Nightstar-ksqup0.co.uk] has joined #code |
21:11 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
21:11 | | grindhold [quassel@Nightstar-uufabm.zebra.fastwebserver.de] has joined #code |
21:11 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
21:11 | | Reiv [NSwebIRC@ServerAdministrator.Nightstar.Net] has joined #code |
21:11 | | jeroud [sid10043@Nightstar-a1k27g.irccloud.com] has joined #code |
21:11 | | ServerMode/#code [+ooaooooooooaoaoaooaooooao JustBob ErikMesoy jerith jerith Azash celticminstrel Kindamoody|afk Tarinaky iospace Orthia Checkmate Derakon[AFK] Derakon[AFK] ToxicFrog ToxicFrog McMartin McMartin froztbyte Reiver Reiver Syloq PinkFreud Reiv jeroud jeroud] by *.Nightstar.Net |
21:11 | | ServerMode/#code [+bbbbbbbbbbb *!*@Nightstar-de4a174d.red.bezeqint.net *!*@Nightstar-857c57c7.red.bezeqint.net *!*@583787.CAD79E.827218.F171EB *!*nsJChat@*.optusnet.com.au *!*@FBC920.AABAAF.636B9D.AD957A *!*ujkan@*.sd.cox.net *!*yllnesha@*.at.cox.net *!*VanDamas@Nightstar-c3544f53.davgita.lt *!*GeniusT@F231F3.69D69B.B0C717.411B9D *!*NSwebIRC@*.adam.com.au *!Turkey@*] by *.Nightstar.Net |
21:11 | | ServerMode/#code [+bbbbbbbbbbbb *!*jbviuerbg@*.9ov.153.41.IP *!*vasfi@*.res.rr.com *!*@Nightstar-94f440dd.home.otenet.gr *!*bulin*@*.B470A6.385C09.FE4A2D *!fgd@*.wanadoo.fr *!*@Nightstar-hvd.cgc.195.197.IP *!*@F67919.75B938.3B0897.56A93F *!*@*.rv.ipnxtelecoms.com *!*pop@*.ca.comcast.net *!*x@*.ca.comcast.net *!*mIRC@*.hsb.188.78.IP *!*cryptofan@*.mts.251.178.IP] by *.Nightstar.Net |
21:11 | | *.Nightstar.Net changed the topic of #code to: Welcome to #Code! || Ask, then hang about till someone appears who can help: We have high latency, but excellent signal. || We ⥠newbies. || Rants and monologues are encouraged; many cores, no waiting || Pastebin: http://pastebin.starforge.co.uk/ (Antispam question: answer 'yes') |
21:11 | | mode/#code [+o TheWatcher] by ChanServ |
21:11 | | Tamber_ is now known as Tamber |
21:12 | | mode/#code [+o Tamber] by ChanServ |
21:15 | | Alek [omegaboot@Nightstar-c8t.a00.36.73.IP] has joined #code |
21:15 | | mode/#code [+o Alek] by ChanServ |
21:36 | | orth [orthianz@Nightstar-816.ekr.148.118.IP] has joined #code |
21:44 | | orth [orthianz@Nightstar-816.ekr.148.118.IP] has quit [[NS] Quit: Bye] |
21:52 | | Stumblinbear [Stumblinbea@Nightstar-jd9.012.239.67.IP] has quit [[NS] Quit: Leaving] |
21:53 | | Kindamoody|afk is now known as Kindamoody |
21:55 | <@iospace> | oh gods dammit, I figured out my problem |
22:25 | | Stumblinbear [Stumblinbea@Nightstar-jd9.012.239.67.IP] has joined #code |
22:54 | | Stumblinbear [Stumblinbea@Nightstar-jd9.012.239.67.IP] has quit [[NS] Quit: Leaving] |
23:06 | | Kindamoody is now known as Kindamoody[zZz] |
23:20 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
23:20 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
23:21 | | Vorntastic [Vorn@Nightstar-vl0gr2.sub-70-215-15.myvzw.com] has quit [[NS] Quit: Bye] |
23:23 | | Derakon_ [chriswei@Nightstar-5fqf0m.ca.comcast.net] has quit [[NS] Quit: leaving] |
23:31 | | Xires is now known as ^Xires |
23:46 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has quit [Ping timeout: 121 seconds] |
23:56 | | thalass [thalass@Nightstar-9ai58o.bigpond.net.au] has joined #code |
23:56 | | mode/#code [+o thalass] by ChanServ |
--- Log closed Tue Dec 23 00:00:50 2014 |