--- Log opened Sat May 18 00:00:06 2013 |
00:21 | | Turaiel[Offline] is now known as Turaiel |
00:38 | | You're now known as TheWatcher[T-2] |
00:51 | | You're now known as TheWatcher[zZzZ] |
00:52 | <@Azash> | Is there a way to make "sub-repos" on github? |
00:52 | <@Azash> | I'm going to make a unified repo where I can implement data structures and algorithms for practice |
00:53 | <@Azash> | And I'm wondering if there's a way to clone the repo, like, git clone github.com/haeroe/algo/java.git or whatever |
01:28 | < [R]> | Closest I can think of is git-slave |
01:28 | < [R]> | But that makes each sub-repo its own repo. |
01:31 | <&ToxicFrog|W`rkn> | Azash: depending on what you mean by "sub-repo", the answer is either "use submodules" or "git can't do that" |
01:31 | <&ToxicFrog|W`rkn> | What is your intended usage? |
01:31 | | ToxicFrog|W`rkn is now known as ToxicFrog |
01:57 | <@Azash> | I heard about sub-modules (almost typoed sob-modules..) but they aren't quite what I was looking for |
01:57 | <@Azash> | Well, I tried to explain the intended usage above, but basically having a project containing files in several languages where you could specifically clone certain folders |
02:00 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: ZNC - http://znc.in] |
02:11 | | Derakon is now known as Derakon[AFK] |
02:29 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
02:29 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
03:19 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
03:32 | | Vornicus [vorn@31356A.68201E.EB0611.E0094F] has joined #code |
03:32 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
03:39 | | Kindamoody[zZz] is now known as Kindamoody |
04:09 | | Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Client closed the connection] |
04:15 | | Chutzpah [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code |
04:44 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: ZNC - http://znc.in] |
05:16 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
05:16 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
05:46 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
05:49 | <&ToxicFrog> | Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util |
05:49 | <&ToxicFrog> | md127 0.00 0.00 0.00 59.30 0.00 1.85 64.03 0.00 0.00 0.00 0.00 0.00 0.00 |
05:49 | <&ToxicFrog> | sdg 0.00 0.00 32.00 9.00 1.94 0.04 98.75 0.17 4.12 5.06 0.76 0.93 3.80 |
05:49 | <&ToxicFrog> | sdh 0.00 0.00 32.30 9.30 1.94 0.04 97.52 0.18 4.28 5.29 0.77 0.93 3.88 |
05:49 | <&ToxicFrog> | sdd 0.00 0.00 25.10 7.20 1.99 0.04 129.07 6.55 209.67 230.33 137.67 30.92 99.88 |
05:49 | <&ToxicFrog> | :( |
05:57 | <~Vornicus> | ??? |
05:58 | <&ToxicFrog> | The "await" columns are how long, in milliseconds, requests are spending waiting for the disk. |
05:58 | <&ToxicFrog> | The "svctm" column is how long the drive is taking to actually service each request once it hits the head of the queue. |
05:59 | <&ToxicFrog> | Note that sdd is taking 30ms to service requests compared to <1ms for the other disks. |
05:59 | <&ToxicFrog> | It is not a well drive, which is depressing because it's also brand new. |
05:59 | | himi [fow035@0C0840.B22E58.E3471A.E028A1] has joined #code |
05:59 | | mode/#code [+o himi] by ChanServ |
06:00 | <~Vornicus> | that 100% utilization doesn't speak well for it either, I thought you, um... |
06:01 | <&ToxicFrog> | sdd is one of the new disks. |
06:01 | <~Vornicus> | or is that actually percentage of busy time. |
06:01 | <&ToxicFrog> | That is how long it is spending actually Doing Stuff as opposed to waiting for commands from the system. |
06:01 | <&ToxicFrog> | In a RAID-Z, as these are, you would expect %util to be roughly even across all disks. |
06:02 | <&ToxicFrog> | If one disk is maxed out like that, it means either that it's seeing disproportionately high load compared to the others - which you can see from the r/s and w/s columns is not the case - or, as is the case here, that it's taking much longer to service requests and is in fact the bottleneck for the array. |
06:03 | <&ToxicFrog> | (it will be a little while before the minecraft server is back up, incidentally~) |
06:05 | <~Vornicus> | (I think I can understand that) |
06:05 | <~Vornicus> | (this coming week my parents are in town anyway~) |
06:08 | | Vornicus [vorn@31356A.68201E.EB0611.E0094F] has quit [[NS] Quit: ] |
06:12 | | Derakon[AFK] is now known as Derakon |
06:29 | | Kindamoody is now known as Kindamoody|afk |
06:50 | | Derakon is now known as Derakon[AFK] |
06:55 | | Turaiel is now known as Turaiel[Offline] |
07:54 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.] |
09:24 | | You're now known as TheWatcher |
09:26 | < ErikMesoy|sleep> | I am mildly baffled to find myself working with a coder whose English text strings are typo-tastic but whose code consistently works flawlessly. |
09:33 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
09:37 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code |
09:44 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
09:51 | < jeroud> | ErikMesoy|sleep: Autocomplete. |
10:13 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [Client closed the connection] |
10:23 | | ErikMesoy|sleep is now known as ErikMesoy |
10:23 | < ErikMesoy> | Huh, forgetting to turn that off makes me feel silly. |
10:24 | <@froztbyte> | ToxicFrog: 200ms waits are not so bad |
10:25 | <@froztbyte> | but, question |
10:25 | <@froztbyte> | are all those drives the same model, etc? |
12:20 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
12:49 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
12:49 | | mode/#code [+o Orthia] by ChanServ |
12:57 | | Kindamoody|afk is now known as Kindamoody |
14:18 | | Kindamoody is now known as Kindamoody|afk |
14:56 | | ErikMesoy1 [Erik@Nightstar-cede6fb6.80-203-23.nextgentel.com] has joined #code |
14:57 | | ErikMesoy [Erik@A08927.B4421D.403BAA.818DC8] has quit [Ping timeout: 121 seconds] |
15:28 | <&ToxicFrog> | froztbyte: yes. |
15:29 | <&ToxicFrog> | And, uh, 200ms average wait for linear read load kind of is that bad |
15:30 | <@froztbyte> | yeah sorry, I'd *just* awoken by that point, and only saw the await without properly checking which column the activity was in |
15:35 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
15:48 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
15:48 | | mode/#code [+o Orthia] by ChanServ |
16:20 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
16:40 | | ToxicFrog [ToxicFrog@ServerAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
16:54 | | ErikMesoy1 is now known as ErikMesoy |
17:33 | | Vornicus [vorn@31356A.68201E.EB0611.E0094F] has joined #code |
17:33 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
17:39 | | ToxicFrog [ben@Nightstar-f9ce94e5.dsl.teksavvy.com] has joined #code |
17:39 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
17:39 | <&ToxicFrog> | rescued: 1547 MiB, errsize: 0 B, current rate: 3072 KiB/s |
17:39 | <&ToxicFrog> | ipos: 1547 MiB, errors: 0, average rate: 3170 KiB/s |
17:39 | <&ToxicFrog> | opos: 1547 MiB, time since last successful read: 0 s |
17:39 | <&ToxicFrog> | eta: 8 days :( |
17:40 | <@froztbyte> | hehe |
17:40 | <@Tamber> | <_> |
17:40 | <@froztbyte> | that array I was busy dealing with died again *just* after I finished getting all my data off |
17:40 | <&ToxicFrog> | The worst part is that the drive worked fine for just long enough for me to copy everything onto it |
17:40 | <&ToxicFrog> | And then went to shit half a day later |
17:41 | <@Tamber> | ugh |
17:41 | <&ToxicFrog> | If it had flaked out twelve hours earlier I'd still have the original array and wouldn't need to give a shit about rescuing it. |
17:48 | | ErikMesoy1 [Erik@Nightstar-cede6fb6.80-203-23.nextgentel.com] has joined #code |
17:49 | | ErikMesoy [Erik@Nightstar-cede6fb6.80-203-23.nextgentel.com] has quit [Ping timeout: 121 seconds] |
17:54 | | ErikMesoy1 is now known as ErikMesoy |
18:15 | <~Vornicus> | ah, of course, there /is/ a bug somewhere. |
18:22 | <~Vornicus> | got it, fencepost error, now it's much faster to calculate and comes up with about 1/8 as many values. |
18:23 | <~Vornicus> | This might almost be good enough that I don't have to build a thing in C any more. |
18:51 | | Kindamoody|afk is now known as Kindamoody |
18:51 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
18:51 | | mode/#code [+o celticminstrel] by ChanServ |
19:36 | | Turaiel[Offline] is now known as Turaiel |
19:37 | | Turaiel is now known as Turaiel[Offline] |
19:37 | | Turaiel[Offline] is now known as Turaiel |
19:46 | | Kindamoody is now known as Kindamoody[zZz] |
19:49 | | celticminstrel is now known as celmin|away |
20:15 | | ToxicFrog_ [ToxicFrog@ServerAdministrator.Nightstar.Net] has joined #code |
20:15 | | ToxicFrog [ben@Nightstar-f9ce94e5.dsl.teksavvy.com] has quit [[NS] Quit: Ex-Chat] |
21:05 | | * TheWatcher drops a hovercraft full of fucking eels on hungarian notation |
21:06 | | * ErikMesoy makes a joke about hungarian cuisine |
21:06 | | * Azash asks the eels to please tone it down |
21:08 | | * froztbyte hooks the eels up to the hovercraft, presses the red button to make it go faster |
21:12 | <@celmin|away> | ...heh. |
21:25 | | ToxicFrog_ is now known as ToxicFrog |
21:25 | | mode/#code [+ao ToxicFrog ToxicFrog] by ChanServ |
21:30 | | Turaiel is now known as TurFood |
21:56 | | TurFood is now known as Turaiel |
22:38 | | ErikMesoy is now known as ErikMesoy|sleep |
22:49 | | celmin|away is now known as celticminstrel |
22:49 | < [R]> | TheWatcher: MS'-fake HN version, or real HN? |
22:50 | < [R]> | Oh, sorry, I should've called it "extended" HN |
22:50 | <@TheWatcher> | Any and all HN |
22:51 | < [R]> | So: var sanitizedRowId; // this is bad? |
22:51 | < [R]> | Why so? |
22:53 | <@TheWatcher> | That's not hungarian notation by any definition I've come across. |
22:54 | < [R]> | So the first answer is MS' extended version. Gotcha. |
22:54 | <@celticminstrel> | Um, that's camel case, not Hungarian notation... |
22:55 | <@Tamber> | It just so happens to *be* camel case, but that's not what's being discussed~ |
22:55 | <@Tamber> | :p |
22:59 | < [R]> | Basically MS' version applies types to all the variable names. |
22:59 | < [R]> | As in, the litteral data type. |
22:59 | <@Tamber> | int iThingy; |
22:59 | < [R]> | Wheras, it's supposed to be a general classification. Such as safe/unsafe. |
23:00 | <@TheWatcher> | Um |
23:00 | < [R]> | Personally I hate the former, the latter has uses. |
23:01 | <&ToxicFrog> | Er |
23:01 | < ErikMesoy|sleep> | My impression is that hungarian notation functions like dimensional analysis, it's supposed to stop certain types of mistakes by letting you go "hey, that can't be right" such as trying to add distance_in_cm to weight_in_kg or parsing user input that hasn't sanitized for DROP TABLES. |
23:02 | <&ToxicFrog> | First of all, both forms of hungarian notation originated at MS; the distinction you mean to be drawing is between systems hungarian (prefix indicates language type) and apps hungarian (prefix indicates semantic type) |
23:02 | <&ToxicFrog> | My position on this is, and has been for a while, that systems hungarian is completely indefensible, and apps hungarian is a sign that you should be using a language with a more expressive type system. |
23:03 | < JBeshir> | You think a type system can represent string sanitisation status? Aside that if you're sanitising your input you're doing something very wrong. |
23:03 | <@TheWatcher> | Sure, it can. |
23:03 | < JBeshir> | I mean, in that particular sense. |
23:04 | <@TheWatcher> | You have untainted strings, and tainted strings. |
23:04 | <&ToxicFrog> | Believe it or not, in some languages you can in fact express the difference between "unvalidated user input" and "valid data" in the type system even if the "true" type is the same. |
23:04 | < [R]> | Which limits us to Perl. |
23:05 | <&ToxicFrog> | In what universe? |
23:06 | <&McMartin> | Type systems can represent anything you can determine with a dataflow analysis. It's the same algorithm. |
23:06 | < JBeshir> | I guess I was meaning, usefully in a way that didn't make you want to shove nails under your fingernails. |
23:07 | <&McMartin> | Subclass String twice. |
23:07 | < JBeshir> | In any language where defining a new type based on an existing one isn't an alias but creates a distinct but convertable type |
23:07 | < JBeshir> | It is possible |
23:07 | < JBeshir> | Yeah that falls under the nails territority. |
23:07 | <&McMartin> | Wat |
23:07 | <&McMartin> | We are talking maybe five lines of code in C++. |
23:08 | < JBeshir> | In C++ you *cannot subclass std::string* |
23:08 | < JBeshir> | So not really? |
23:08 | < JBeshir> | If you throw out std::string you lose all the stdlib string manipulation |
23:08 | <&McMartin> | Um |
23:08 | < JBeshir> | Or have to do conversion back and forth |
23:09 | <&McMartin> | I work regularly with a system that uses string variants to represent the encoding of the contents |
23:09 | < JBeshir> | Sure, but you can't do it with "five lines of code in C++" and you can't do it by "subclass String twice" |
23:09 | < JBeshir> | Because you can't subclass the closest thing to "String" |
23:10 | <&ToxicFrog> | I was thinking of Haskell monad wackiness or Clojure metadata. There are options! |
23:10 | < JBeshir> | Not safely, anyway, since std::foo lacks virtual destructors |
23:11 | <&McMartin> | Fortunately, since you're not adding any fields here, you can subclass at will. |
23:12 | < JBeshir> | Is that going to get std::string's destructor invoked correctly? |
23:12 | <&McMartin> | Yes. Always. |
23:12 | <&McMartin> | What you risk in this case is that *your own* destructor will not be called. |
23:13 | <&McMartin> | But if you have no fields and thus no cleanup work to do, your destructor is a no-op. |
23:14 | <&McMartin> | So C++ you can totally do this. |
23:14 | <&McMartin> | Java, not so much~ |
23:14 | < JBeshir> | Hmm. Copy constructors aren't invoked right. |
23:14 | < JBeshir> | But again doesn't matter much. |
23:14 | <&McMartin> | OK, so you have to set your own constructor set, so maybe it's a dozen lines instead of five. |
23:14 | <&McMartin> | You'll also have to make sure to use the explicit() keyword on anything you want to not be the default. |
23:15 | <&McMartin> | Which is probably going to be everything |
23:15 | < JBeshir> | No, no |
23:15 | < JBeshir> | I mean you *can't* get your copy constructor invoked if the thing which copies it is presently treating it as a std::string |
23:15 | < JBeshir> | Apparently |
23:15 | <&McMartin> | Oh. Well, yes, that is true. However, C++ strings are incredibly mutable and most of the library mutates it. |
23:16 | <&McMartin> | You'll have to type-annotate operations which create new strings. |
23:16 | <&McMartin> | For the specific case of taint analysis, though, the whole point is to block access to it. |
23:17 | <&McMartin> | So making a type that's inconvertible to string except via the sanitization method is actually probably the way to go. |
23:17 | <&McMartin> | (Even in Java, you can build a model of the heap with aspect-oriented techniques &c - my old thesis was on a general technique that you could use for that) |
23:17 | <&McMartin> | (Kind of like swatting flies with a sledgehammer, though) |
23:19 | <&McMartin> | The general problem is under what circumstances taint needs to spread, which in turn depends on exactly how mutable your string objects are. |
23:20 | <&McMartin> | If you're using a copy constructor, you have to tell the taint tracking system whether or not this is a true copy constructor, in which case taint needs to spread... |
23:20 | <&McMartin> | ... or something like sanitize_copy(), where it's supposed to be dropped. |
23:34 | | RichyB [richardb@Nightstar-86656b6c.cable.virginmedia.com] has joined #code |
--- Log closed Sun May 19 00:00:21 2013 |