--- Log opened Wed May 22 00:00:17 2013 |
00:01 | <@TheWatcher> | .... |
00:01 | <@froztbyte> | and the per-user stuff isn't particularly obscure either; piece of software runs as user -> it gets its own crontab, that kind of thing |
00:01 | <@froztbyte> | TheWatcher: dude |
00:01 | | * TheWatcher sigh |
00:01 | <@froztbyte> | TheWatcher: the *ops manager* (abovementioned clown) takes 30min to figure out that he needs to traceroute stuff if it's unreachable |
00:01 | <@froztbyte> | we run an ISP. |
00:01 | <@TheWatcher> | No |
00:01 | <@TheWatcher> | That's more that stumbling one |
00:02 | <@TheWatcher> | 'running' isn't anywhere near that >.> |
00:02 | <@froztbyte> | rofl |
00:02 | <@froztbyte> | it's just beyond crazy |
00:02 | <@froztbyte> | my tipping point was when I realized I was breaking my back trying to drag people into the future, and not even getting paid market rates for my /normal/ job parts |
00:03 | <@froztbyte> | not even considering that it's a shit environment |
00:03 | <@froztbyte> | it's basically a variation of Stockholm Syndrome ;D |
00:05 | < RichyB> | I fear for your ex-customers. |
00:05 | < RichyB> | Oh well. |
00:05 | | AnnoDomini [abudhabi@Nightstar-b02d62c8.adsl.inetia.pl] has quit [Ping timeout: 121 seconds] |
00:05 | | * froztbyte is not too stressed about that part |
00:06 | <@Alek> | shambling. |
00:08 | <@froztbyte> | I actually want to write up a whole list of these incompetencies they've accomplished |
00:08 | <@Alek> | if you can, put it on notalwaysworking or customerhell or something. |
00:09 | <@Alek> | and of course, TSC. |
00:09 | <@froztbyte> | the guy who's mostly taken over the netops stuff will be working with a customer on a support issue (like some network fault), get alerted to one of his meetings (which he has in copious amounts) coming up |
00:09 | <@froztbyte> | and then just get up and leave |
00:09 | <@froztbyte> | he won't tell the customer |
00:09 | <@froztbyte> | he won't tell anyone what he's been working on |
00:09 | <@froztbyte> | he has never documented any of the stuff |
00:09 | <@froztbyte> | but he'll literally just get up and leave |
00:10 | <@froztbyte> | it's just completely astounding |
00:12 | < [R]> | So he responds to the alert in an asocial way? |
00:13 | | * RichyB blinks |
00:13 | | AnnoDomini [abudhabi@Nightstar-5c4cbe3a.adsl.inetia.pl] has joined #code |
00:14 | < [R]> | Oh nm misread makes more sense now |
00:15 | <@froztbyte> | RichyB: when I say I hope these people would choke on their breakfast and die, I mean it |
00:15 | <@froztbyte> | they're the kinds of humans that are what's wrong with this world |
00:16 | <@froztbyte> | (also, a nap earlier tonight screwed up my entire sleeping pattern, thus being awake now :s) |
00:16 | < RichyB> | I don't think that that's entirely true. |
00:19 | <@froztbyte> | which part? me hoping they'd go away from the world entirely, or them being the shitty kind of human? |
00:20 | | RichyB [richardb@58734C.5279B7.EA7DF8.107330] has quit [Ping timeout: 121 seconds] |
00:21 | <@froztbyte> | well, that doesn't help ;p |
00:21 | | RichyB [richardb@58734C.5279B7.EA7DF8.107330] has joined #code |
00:21 | < RichyB> | froztbyte: the being shitty humans. |
00:21 | <@froztbyte> | oh |
00:21 | <@froztbyte> | well, there are worse humans, certainly |
00:22 | <@froztbyte> | these are the entry-level shitty kind |
00:22 | < RichyB> | Their competition includes people posting upskirt photos of strangers, actual card-carrying neonazis... |
00:22 | <@froztbyte> | the manager in question is also a racist chauvinist homophobe |
00:23 | <@froztbyte> | (but that doesn't directly fall under his technical competence, so I rarely mention it) |
00:23 | <@Reiv> | man, upskirt addicts |
00:23 | < RichyB> | Wellp |
00:23 | <@Reiv> | Some of them install cameras in their /shoe/. |
00:23 | < RichyB> | To Hell with him, then. |
00:23 | <@froztbyte> | Reiv: rofl |
00:24 | <@froztbyte> | RichyB: I mean, all said and done, I'm not necessarily a terribly rolemodel human myself |
00:24 | <@Reiv> | Their holy grail, of course, is someone who went commando in a skirt. |
00:24 | <@froztbyte> | but at least I try to not cause harm to others |
00:31 | < RichyB> | Oh well. |
00:32 | | Turaiel[Offline] is now known as Turaiel |
00:32 | <@froztbyte> | pretty much |
00:32 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
00:32 | | mode/#code [+o himi] by ChanServ |
00:34 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
00:34 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
00:40 | | You're now known as TheWatcher[T-2] |
00:45 | | You're now known as TheWatcher[zZzZ] |
01:22 | <&McMartin> | "Lee Aylward / Lee is Ars Technica's programming wizard. He hopes someday to grow his beard out like an actual wizard." |
01:33 | | Nemu [NeophoxProd@F9D7EC.9380D1.03E7F7.94E705] has joined #code |
01:37 | | ToxicFrog|W`rkn is now known as ToxicFrog |
01:39 | | * ToxicFrog upreads |
01:40 | <&ToxicFrog> | froztbyte: I am a programmer running a home server and I manage to do it more competently than that, holy shit. |
01:40 | <&ToxicFrog> | I'll even have a hot spare once the RMA arrives~ |
01:41 | <&ToxicFrog> | ("N+M" when describing RAID almost always N active disks and M hot spares, though - a four-disk RAID5 always has one drive worth of parity, so you don't need to specify) |
01:46 | < RichyB> | Does anyone use 3-way RAID1 for anything? |
01:48 | < [R]> | That's mirror? |
01:48 | < Xon> | 3 copies not 2 |
01:48 | | * [R] can't be assed to remember the difference between 1 and 0 |
01:49 | < [R]> | One of them is mirror, the other is stripe |
01:49 | < Xon> | ToxicFrog, I dont have a hotspare atm for my home raid setup. But it's raid6 and I have a coldspare because I physically don't have the space to moont more drives atm =p |
01:49 | < Xon> | mount* |
01:49 | < Xon> | [R], raid0 is the number of files you get back if anything goes wrong |
01:49 | | * [R] should probably source a hot spare for his 10 setup. |
01:49 | < [R]> | Xon: oh, nice |
01:50 | < Xon> | RichyB, for lolz; Microsoft's 3-way mirror (storage spaces thingy) requires a minimum of 4 drives. |
01:51 | < RichyB> | [R]: there's an easy mnemonic. |
01:51 | <&ToxicFrog> | [R]: 0 is stripe, 1 is mirror, 234 no-one uses any more, 5 is single parity, 6 is double parity. |
01:51 | < RichyB> | [R]: RAID 1 *does* keep your data safe in the case of all but one disk dying. |
01:52 | < RichyB> | [R]: RAID 0 *doesn't* keep your data safe in the event that a gnat farts in the same country as you. |
01:52 | <&ToxicFrog> | RichyB: sure. More drives in the mirror means a shorter MTBF but a longer MTTDL. |
01:52 | < RichyB> | Surely "degraded" isn't considered "failed" for a RAID1? |
01:53 | < RichyB> | Shorter mean time between having-to-swap-a-disk-out. |
01:53 | <&ToxicFrog> | "failure" as in drive failure, not array failure. |
01:54 | < Xon> | the only array fail I've personally had was when I accidently deleted the entire array >.< |
01:54 | < Xon> | failure* |
01:55 | <&ToxicFrog> | I had some really exciting times back when I was running eight disk RAID6 on a flaky backplane that would drop half the disks at random if any one of them failed. |
01:56 | < RichyB> | Yow! |
01:56 | <&ToxicFrog> | Fortunately mdadm is pretty forgiving about these things. |
02:07 | <&ToxicFrog> | God I hate make |
02:07 | | Turaiel is now known as Turaiel[Offline] |
02:12 | <@Reiv> | What were 234? I'm curious now. |
02:14 | < [R]> | 2 and 3 were alternative striping. |
02:14 | < [R]> | 4 was 5 except all parity is stored on a single drive |
02:15 | < [R]> | According to Wikipedia |
02:15 | < [R]> | Oh, sorry, 2 and 3 were also like 5. |
02:16 | <@Reiv> | ... there were more than one method of striping? |
02:16 | < [R]> | Yeah |
02:17 | < [R]> | 2 is bit-level. 3 is byte-level. They alternate the drives the data-level is stored on. |
02:17 | < [R]> | IE: 2 has one drive for "even" bits and the other is for "odd" |
02:17 | < [R]> | Which is WTFy |
02:17 | < [R]> | Keep in mind I'm totally using only wikipedia here |
02:20 | <@Reiv> | 2 sounds a tad inefficient. |
02:20 | < [R]> | But, 2, 3 and 4 are all 3-drive minimums. |
02:23 | <&ToxicFrog> | They make sense under certain hardware assumptions that are no longer true, AIUI. |
02:27 | | * Reiv wonders what hardware assumptions could possibly make that work. |
02:27 | <@Reiv> | Is there a RAID7? |
02:29 | <&ToxicFrog> | No, but ZFS has raidz3 which is equivalent. |
02:30 | < RichyB> | The erasure code (Reed-Solomon codes) that RAID6 is based on generalises to arbitrary numbers of redundant blocks, I think. |
02:31 | <&ToxicFrog> | Reiv: RAID 2 and 3 both required fully synchronized disks. RAID 2 additionally assumes disks without Hamming correction (which has now been implemented in basically all disks, making RAID2 obsolete). |
02:34 | <@Reiv> | Interesting. |
02:34 | <@Reiv> | HD tech is amazing. |
02:36 | < RichyB> | Ah, so disk manufacturers are fighting their own bit-error rates by using forward error codes inside the HDDs? |
02:39 | <@Reiv> | Clever innit? |
02:40 | < RichyB> | Less so than optical fibre~ ;) |
02:43 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
02:43 | < RichyB> | Yes, forward error codes are very, very cool. |
02:44 | <&ToxicFrog> | RichyB: yes. RAID2 was developed in an era when this wasn't the case. |
02:44 | <&ToxicFrog> | It can reliably detect and correct single-bit errors and can detect (but not correct) errors of more bits. |
02:44 | < RichyB> | Have you heard of F2FS? Similar kind of idea. |
02:44 | < RichyB> | Analogous idea, even. |
02:45 | < RichyB> | There are a bunch of Linux filesystems designed specifically for NAND or NOR flash, where you're expected to do some magic and turn the firmware features that make the flash chip look like a block device off and access the raw chip instead. |
02:46 | < RichyB> | Generally... kind of difficult. |
02:46 | <@celticminstrel> | Hm... time to start implementing special moves, I guess... |
02:47 | <&McMartin> | shoryuken? |
02:47 | < RichyB> | OTOH, Samsung released a thing (it's in Linux 3.8) called F2FS, which is a filesystem that is designed to be friendly to the firmware's block-device emulation layer rather than to replace it. |
02:48 | < RichyB> | (as in it's specifically designed for SSDs, doesn't care much about read fragmentation but is designed to avoid causing write amplification and to avoid causing random writes) |
02:49 | <@Reiv> | That sounds about right. |
02:49 | <@Reiv> | But, y'know, an awful lot of drives deliberately try to optimise that kind of thing to begin with. |
02:49 | < RichyB> | The thing I really like about the idea of F2FS is that it lets the block-device firmware handle issues like "should I use a FEC on the flash cells and if so which?" and "what kind of wear-levelling and garbage-collection algorithms are appropriate?" |
02:50 | <@celticminstrel> | Which means I need to add a new key... |
02:50 | < RichyB> | Whereas if you're accessing the raw flash in the OS... your OS has to ship a driver which does all of those things appropriately, probably for drives that the authors have never actually seen before. |
02:56 | <&Derakon> | I always find it odd when I can use code I've written for work directly in Pyrel. |
02:57 | <&Derakon> | Previously I copied over my work code's event system wholesale.- |
02:57 | <&Derakon> | Now I'm copying a spiral-generation function I wrote. |
02:57 | <@celticminstrel> | A for "activate"? |
02:57 | <@celticminstrel> | Or for "ability"... |
02:57 | <@celticminstrel> | M for "move" seems... bad. |
02:58 | <@celticminstrel> | S for "special"? But S is used for "stats" already. |
02:58 | <@Reiv> | celticminstrel: Look up nethack~ |
02:58 | <@celticminstrel> | Nethack is stupid. :| |
02:58 | | * Azash hears the silent rustling of pitchforks in the distance |
02:59 | < RichyB> | oh man |
02:59 | <&ToxicFrog> | Azash: no, it's cool |
02:59 | <&ToxicFrog> | Honestly, it is |
02:59 | | * RichyB lights some torches. |
02:59 | <&ToxicFrog> | And I say that as someone who has both patched it and ascended three characters |
03:01 | <@Azash> | I've never really played it |
03:02 | <@Azash> | I just figured that it was the kind of statement that would upset some people |
03:04 | <&ToxicFrog> | As much as I enjoyed nethack, the balance is sometimes questionable, the pacing is godawful, and internally it is horrifying. |
03:05 | <&Derakon> | Heh. |
03:05 | <&Derakon> | I think you should expect a few quirks in any 20+-year-old game. |
03:05 | <&Derakon> | Angband is no paragon either~ |
03:06 | <&ToxicFrog> | Yeah, but there's a reason Angband has way more patches/mods/TC |
03:06 | <&ToxicFrog> | *TCs |
03:07 | <&Derakon> | Yep, Ben Harrison. |
03:07 | < RichyB> | Is it explicitly *not* a dense web of side-effectful C code? |
03:07 | <&Derakon> | Went through the code in the late 90's and did a major cleanup job. |
03:07 | <&Derakon> | (It's been steadily decaying ever since, but oh well~) |
03:07 | <@celticminstrel> | This list includes "+defence if standing still"... should it be a passive ability, or specifically activated? |
03:07 | | Turaiel[Offline] is now known as Turaiel |
03:07 | <&ToxicFrog> | Yeah, even decayed Angband is far, far better than nethack. |
03:08 | <&Derakon> | Is the NetHack devteam even active any more? |
03:08 | < RichyB> | Derakon: no. |
03:09 | <@Reiv> | celticminstrel: How much do you want Energy to matter? |
03:10 | <@Reiv> | If you want Energy to be valuable, make it active. If you just want it to be a Thing, make it passive, though I reccomend against it lest it teach players to play poorly. |
03:10 | <@Reiv> | (AKA: "I keep dying here, but if I run away I lose my bonus!") |
03:11 | <&Derakon> | Ehh, I don't think passive abilities are a bad thing. |
03:11 | <@celticminstrel> | I already have other passive abilities. |
03:12 | <&Derakon> | The flipside of energy-consumptive things is the player doesn't want to use them because the cost in energy would seem to outweigh the benefits. |
03:12 | <&Derakon> | It's a judgement call. |
03:12 | <@Reiv> | Derakon: That is a balancing issue, mind :p |
03:12 | | * Azash opens a lecture in an online course, receives https://www.youtube.com/watch?v=Zc3x65YVXdY , contemplates suicide |
03:13 | <@Reiv> | Really, it's a matter of "I think I will choose to Stand and Fight" vs "If I stand still enough I get bonuses while bashing monsters" |
03:13 | <@Reiv> | The latter may be acceptable for helping with bashfests against boring opponents, mind. |
03:14 | <@Reiv> | (AKA: If you are just standing there thumping each other for ten turns, maybe we should help you speed up a bit) |
03:27 | | Kindamoody[zZz] is now known as Kindamoody |
04:22 | | * Vornicus tries to get his brain into coding mode |
04:23 | | * Turaiel prods at this brain with some random bit |
04:23 | < Turaiel> | bits* |
04:23 | <@celticminstrel> | Anyone happen to know where (or if) I can get a stack listing in Opera's debugger? |
04:24 | <@celticminstrel> | ...oh wait. It's underneath the variables. Silly place for it, but whatever. |
04:24 | < Turaiel> | The problem is that you're using Opera :P |
04:24 | <@celticminstrel> | I'm only using Opera because the person who reported an error is using Opera. >_> |
04:24 | < Turaiel> | Then that's their problem! |
04:25 | < Turaiel> | Nah, I kid. You're being a good developer. |
04:26 | <@Reiv> | Oh thank heavens, someone who checks for Opera. |
04:27 | < Turaiel> | I don't think it's necessary to check for Opera anymore, now that it's just using Webkit :P |
04:28 | <@Reiv> | Which is kinda nice. |
04:28 | <~Vornicus> | webkit doesn't tell you anything about the js implementation though |
04:28 | < Turaiel> | True |
04:28 | < Turaiel> | I don't test for Opera |
04:29 | < Turaiel> | Opera users are so scarce :P |
04:31 | <@Alek> | You really should. |
04:31 | <@Alek> | Otherwise the Phantom could hijack your code. |
04:32 | < Turaiel> | I don't even test for IE... |
04:32 | <@celticminstrel> | I happen to know my code won't work in IE. |
04:32 | < Turaiel> | Actually a lot of the time I only test in Firefox >.> |
04:32 | < Turaiel> | Nobody's code *works* in IE :P |
04:32 | <@celticminstrel> | Or at least, from what I've read, IE doesn't support some extensions I use. |
04:33 | <@Reiv> | Interesting. Opera has about 3% these days; a few years ago it was closer to 5%. |
04:34 | <@Reiv> | It's also noted that Opera uses many tricks to improve load times and traffic management which in turn artificially reduce its count for usage tracking... |
04:34 | <@Reiv> | Better performance in return for a lower visibility may actually be working against them, at this point. |
04:36 | <&ToxicFrog> | Opera 12.x also screwed the pooch in like six different ways |
04:36 | <&ToxicFrog> | That happened at about the same time Chrome was actually becoming usable |
04:37 | <&ToxicFrog> | That probably didn't help. |
04:37 | < RichyB> | Big UX issues in the browser itself? |
04:38 | <@Reiv> | TF: Sounds about right; I'm not entirely convinced it's salvage itself entirely either. |
04:52 | | Nemu [NeophoxProd@F9D7EC.9380D1.03E7F7.94E705] has quit [[NS] Quit: ] |
05:21 | | RichyB [richardb@58734C.5279B7.EA7DF8.107330] has quit [[NS] Quit: >:3 This is BunThulhu. Copy him into your quit message to help him take over the Internet.] |
05:25 | <~Vornicus> | Okay. In order to remove a whole section of a skip list, I need to make sure that every single one of the link chains skips over that section. Then - since I'm still working in a gc'd language - I can simply finish the function call and leave the invalidated chain on the floor. |
05:29 | <~Vornicus> | Fortunately, because of the nature of searching on a skip list, I actually see every link I need to change and every node I need to change /to/ on the way to finding the removable section. |
05:32 | <~Vornicus> | Shockingly elegant. |
06:28 | | Turaiel is now known as Turaiel[Offline] |
06:29 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
06:35 | | Derakon is now known as Derakon[AFK] |
06:42 | | AverageJoe [evil1@61024F.B1DB7D.E87B5D.526FE4] has joined #code |
07:19 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has joined #code |
08:03 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds] |
08:24 | <@froztbyte> | ToxicFrog: pretty impressive, yeah |
08:31 | | AverageJoe [evil1@61024F.B1DB7D.E87B5D.526FE4] has quit [[NS] Quit: Leaving] |
08:37 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
08:37 | | VirusNotAtWork [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
08:39 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has quit [Ping timeout: 121 seconds] |
08:39 | | VirusHome [VirusJTG@2B12AA.572255.206A2A.901581] has quit [Ping timeout: 121 seconds] |
09:10 | | You're now known as TheWatcher |
09:28 | | Kindamoody is now known as Kindamoody|out |
11:04 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
12:39 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:39 | | mode/#code [+o himi] by ChanServ |
12:51 | | VirusNotAtWork is now known as Pandemic |
12:51 | | mode/#code [+o Pandemic] by ChanServ |
14:05 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
14:05 | | PinkFreud [WhyNot@NetworkAdministrator.Nightstar.Net] has joined #code |
14:05 | | mode/#code [+o PinkFreud] by ChanServ |
14:10 | <@TheWatcher> | Anyone have any experience with the "Terminal 4" CMS? |
14:27 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
14:27 | | mode/#code [+o celticminstrel] by ChanServ |
14:39 | | iospace is now known as FauxRoscoe |
14:44 | | FauxRoscoe is now known as iospace |
15:11 | | ToxicFrog is now known as ToxicFrog|W`rkn |
16:26 | | Turaiel[Offline] is now known as Turaiel |
16:51 | <&ToxicFrog|W`rkn> | froztbyte: which is? |
17:19 | <@froztbyte> | ToxicFrog|W`rkn: the astounding uselessness of my colleagues |
17:19 | <@froztbyte> | <ToxicFrog> froztbyte: I am a programmer running a home server and I manage to do it more competently than that, holy shit. |
17:46 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
17:52 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
17:52 | | mode/#code [+o Orthia] by ChanServ |
18:03 | | Turaiel is now known as Turaiel[Offline] |
18:58 | <&ToxicFrog|W`rkn> | Aah, yes. |
20:01 | | Kindamoody|out is now known as Kindamoody |
20:06 | | Turaiel[Offline] is now known as Turaiel |
20:27 | | Turaiel is now known as Turaiel[Offline] |
20:36 | | Kindamoody is now known as Kindamoody[zZz] |
21:17 | | RichyB [richardb@Nightstar-86656b6c.cable.virginmedia.com] has joined #code |
22:23 | | * TheWatcher eyes this |
22:25 | <@TheWatcher> | I have absolutely no idea where RecieveMessage is actually being called from in this source, blegh |
22:27 | < RichyB> | TLA is surprisingly cool for a proof formalism. |
22:27 | < RichyB> | http://aphyr.com/posts/287-asynchronous-replication-with-failover |
22:29 | < RichyB> | Person writes up predicates corresponding to the operations of an asynchronously replicated database with fail-over, and a predicate specifying what it means for this system to not accidentally throw data away. |
22:30 | < RichyB> | Throws the whole thing into Microsoft TLC, it immediately provides and explains a counterexample. |
22:31 | <@TheWatcher> | .... ahahaha |
22:35 | <@TheWatcher> | There's RecieveMessage, which is called from DoSendDirect, which is called from DoSendMessage, which is called from SendMessage. Along that chain it faithfully passes back the ulong result indicating message processing success/failure... and every single call to SendMessage I can find in the game source completely ignores that result. |
22:36 | < RichyB> | Ouch. |
22:37 | < RichyB> | You have just neatly demonstrated the rationale for checked exceptions. :| |
22:37 | <@TheWatcher> | Yeah. |
22:37 | <@gnolam> | And the rationale for a spell checker! |
22:40 | < RichyB> | gnolam: ? |
22:40 | <@gnolam> | RecieveMessage. |
22:41 | <@TheWatcher> | Actually, that's my fault - it should be ReceiveMessage, I just can't spell for crap when I'm tired. |
22:41 | < RichyB> | That is why you should program against the Berkely sockets API directly instead. |
22:42 | < RichyB> | recvfrom() is much easier to spell right, you see. ;) |
22:42 | <@TheWatcher> | Heheh |
22:42 | < RichyB> | (BTW, I'm not saying that you *would* be better off with checked exceptions. The downsides simply haven't been mentioned.) |
22:44 | <@gnolam> | Plus, you can't castle a checked exception. |
22:46 | < RichyB> | Castle? |
22:46 | | ToxicFrog|W`rkn is now known as ToxicFrog |
22:54 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
22:58 | <@froztbyte> | RichyB: the aphyr posts are getting too popular |
22:58 | <@froztbyte> | the webserver appears to be dying now |
22:59 | < RichyB> | Heh. |
22:59 | < RichyB> | Should've put an inconsistent Redis cluster in front of it, shouldn't he? :) |
23:00 | <@froztbyte> | hee |
23:00 | <@froztbyte> | I've only finished reading the mongodb one |
23:00 | <@froztbyte> | but very much want to read all the others too |
23:00 | < RichyB> | I'm not sure what the niche for MongoDB is supposed to be other than "gullible and heard the name a lot". |
23:00 | <@froztbyte> | it's the mysql of nosql |
23:00 | <@froztbyte> | afaict |
23:00 | < RichyB> | It's not even fast anyway. :| |
23:01 | <@froztbyte> | it's fast enough[ when only in memory and not flushing to disk and not busy losing all your shit]! |
23:01 | < RichyB> | Well, MySQL outperforms almost everything else, provided you have a workload that fits it precisely. e.g. blog comments do. |
23:02 | <@froztbyte> | haha |
23:02 | <@froztbyte> | I'll give mysql its due |
23:02 | <@froztbyte> | it's crappy enough that most people felt it suited them |
23:03 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
23:03 | < RichyB> | That is, lots of reads, very few writes, no need to track invariants more complicated than "parent/child", almost zero write concurrency. |
23:03 | <@froztbyte> | so it was a major thing for getting out into the world with open DBs |
23:03 | <@froztbyte> | like, to the general "I can makes a websites yo" populace |
23:03 | <@froztbyte> | RichyB: I still want to formalize (or find) a dunning-kruger variant theory that explains why people like shitty things |
23:04 | <&ToxicFrog> | Glurg Theory takes a stab at this WRT programming languages, and may be generalizeable (if it actually holds) |
23:04 | < RichyB> | I wouldn't start a greenfield project with MySQL given any kind of choice, but there does exist an actual sweet spot where it works well and projects that live entirely inside that sweet spot. |
23:05 | <&ToxicFrog> | (not glurg. Hmm. Can't remember the name.) |
23:05 | < RichyB> | (I would still be hesitant to use it on such projects because I lack faith that they're going to *stay* inside that sweet spot.) |
23:05 | < RichyB> | Blub Theory. |
23:05 | <&ToxicFrog> | Doesn't look like it. |
23:06 | < RichyB> | Blub paradox, even. |
23:06 | <&ToxicFrog> | Aha! Yes. Thank you. |
23:06 | < RichyB> | "Blub paradox" is Paul Graham's article. |
23:07 | < RichyB> | The idea goes, say I'm writing a program in, uh, let's pick one that won't offend anyone... Tcl. |
23:07 | <@froztbyte> | rofl |
23:07 | | * froztbyte opens http://www.paulgraham.com/avg.html |
23:08 | < RichyB> | So I'm a Tcl programmer working at a Tcl level of abstraction from the underlying machine. To my eyes, all those poor bastards in lower-level languages like C look like peons doing all kinds of crap manually that I get for free. They're grubbing around in the dirt, man! |
23:08 | < RichyB> | OTOH, any programming language feature that Tcl doesn't have or almost-have is just alien to me and I can't even comprehend why anyone would want it. |
23:09 | < RichyB> | So our hypothetical Tcl hacker labels C programmers as chumps and Perl programmers as ivory-tower wankers. ;) |
23:09 | <&ToxicFrog> | More generally, the tools you use shape how you think about a problem and how you evaluate other tools for the same task; it's often immediately evident when something is worse, but the features that make something better may not be apparent, or, if they are, it may not be clear why anyone would want them. |
23:10 | < RichyB> | Thanks for elucidating that, because I just butchered it. :) |
23:12 | <&ToxicFrog> | This seems to be fairly common in both programming languages and version control systems; I would't be surprised to find that it generalizes, at least, to all software. |
23:13 | < RichyB> | The arguments are going to be really *tedious* if something categorically better than current DVCS comes along. |
23:13 | < RichyB> | The grognards still using Git will not ever stop saying "but I can achieve that in Git too with nothing more than a sequence of rebase commands!" |
23:14 | <&ToxicFrog> | They cannot possibly be any more tedious than the current arguments because DVCS and CVCS camps. |
23:14 | <&ToxicFrog> | *between. |
23:15 | <@froztbyte> | well, people wouldn't have thought that about cvs/svn/rcs until DVCS' came along, so... |
23:16 | <@froztbyte> | RichyB: I'm not entirely sure if that's what I want, though |
23:16 | < RichyB> | ? |
23:17 | <@froztbyte> | I'm more interested in why people pick an initial thing, and then just fiercely defend it for reason of "I've already invested effort in this, why must I do it again?" |
23:17 | <@froztbyte> | (like so many PHP people appear to do) |
23:17 | <@froztbyte> | this appears to be the reason that perl is still big in networking, for instance |
23:18 | <&McMartin> | Perl's got pretty fantastic network API bindings at this point, doesn't it? |
23:18 | <@froztbyte> | a bunch of network guys once figured they need to know a better language than shellscript, learned perl, and now just forever more sit at "this is good enough" |
23:18 | <@froztbyte> | McMartin: couple other things do too |
23:18 | <@froztbyte> | ruby does, in fact |
23:18 | <@froztbyte> | and ruby's library for network-related stuff is also fairly rich |
23:19 | <@froztbyte> | I'm not talking only about network programming here, but also the support systems around it |
23:19 | < RichyB> | I agree about the sysadmins/Perl thing. |
23:19 | <@froztbyte> | IP planning systems, routing check systems, etc |
23:19 | < RichyB> | It's why I'm grateful for the existence of Ruby. |
23:20 | < RichyB> | As I see it, Ruby provides a graceful upgrade path for ex-Perl hackers that also happens to sneak a sane object system and so on into their hands.. |
23:22 | <@froztbyte> | hehe |
23:23 | <@Reiv> | ToxicFrog: It generalises to 'systems', I think |
23:23 | <@Reiv> | People do things Their Way. It requires a major shakeup to have them adjust to the New Way. |
23:25 | | cpux|2 [cpux@Nightstar-98762b0f.dyn.optonline.net] has joined #code |
23:25 | <@Reiv> | I've seen it in action at the corporate level~ |
23:25 | <@froztbyte> | hmm, yes |
23:25 | <@froztbyte> | there's another part to that |
23:25 | <@Reiv> | A year and a half after the system went full-featured and live, people are _starting_ to go "You know, this 'BI' stuff can be pretty neat..." |
23:25 | <@froztbyte> | some people I know have thought processes which only actually appear to work in a given set of ways |
23:26 | <@froztbyte> | like my one colleague |
23:26 | <@froztbyte> | his entire mental model of how to solve problems is based on the unix way, and he utterly refuses to touch a language that doesn't have curly braces |
23:26 | <@froztbyte> | he's not incompetent or anything |
23:26 | <@froztbyte> | he just refuses to |
23:27 | <@froztbyte> | it took me a long while to realize that it was his model of /thinking/ that needed to change |
23:27 | | cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has quit [Ping timeout: 121 seconds] |
23:27 | <@froztbyte> | and people are pretty loathe to do that, it seems |
23:27 | <@froztbyte> | well, some people |
23:27 | | * froztbyte en-beds |
23:30 | <@TheWatcher> | Languages without curly braces make my headbones hurt >.> |
23:32 | <@celticminstrel> | Eh, I don't mind it. |
23:32 | <@celticminstrel> | Curly braces are nice though. |
23:38 | <@TheWatcher> | It's why I have problems with python. My brain is constantly going "Where are the braces? WHERE ARE THEY?! Agrgblarglflail" |
23:46 | | Turaiel[Offline] is now known as Turaiel |
--- Log closed Thu May 23 00:00:32 2013 |