--- Log opened Tue May 21 00:00:08 2013 |
--- Day changed Tue May 21 2013 |
00:00 | <@froztbyte> | (this is a fact which often makes me terribly sad) |
00:00 | <&McMartin> | Hey, I don't suppose you know offhand how to demangle C++ exported symbols from G++ |
00:00 | <&McMartin> | *g++ |
00:00 | < RichyB> | e.g. the best Python HTML templating library that I know of, Chameleon, is basically zope's page templates (good) with the custom expression engine (bad!) ripped out and replaced with ordinary Python expressions (yay!). |
00:00 | | * Tamber dumps a load of z80 assembler on froztbyte. "This is our application framework. Halp!" |
00:00 | <@froztbyte> | hell I can even reasonably fluently read Perl ://// |
00:00 | | * Tamber then runs. |
00:00 | < RichyB> | Tamber: eh, the Z80 is a von Neumann machine. Unless the code's in ROM you can just trample over the opcodes. :) |
00:01 | <@Tamber> | :) |
00:01 | <&McMartin> | OTOH, it's a Z80 so these days it probably *is* in ROM. |
00:01 | <@froztbyte> | Tamber: you don't scare me ;p |
00:02 | | * froztbyte would just fire up a couple of terminal sessions and browser tabs, furiously start taking notes and doing research |
00:02 | < RichyB> | McMartin: there's a program called "demangle(1)" in the package called "kdesdk-kmtrace" on Fedora. |
00:02 | <@Tamber> | froztbyte, "COBOL" |
00:02 | <@Tamber> | :) |
00:02 | <&McMartin> | RichyB: Yeah, nm can do it too |
00:02 | <@froztbyte> | Tamber: I work on telco systems every day. |
00:02 | <@froztbyte> | Tamber: try harder. |
00:02 | <&McMartin> | I was kind of hoping for something in, er, man 3 |
00:02 | <@Tamber> | ...you poor bastard. |
00:02 | < RichyB> | McMartin: ah. |
00:03 | <@Tamber> | :) |
00:03 | <@froztbyte> | Tamber: tbh I also don't know why I haven't turned out much more braindamaged |
00:03 | <@froztbyte> | just lucky, I guess |
00:03 | <@froztbyte> | couple of chance encounters with good people to ask questions of |
00:03 | | * Tamber ponders snarkastic comment, discards. |
00:03 | <@froztbyte> | hey, I'm batshit crazy, I'll openly admit that ;p |
00:03 | <@Tamber> | :) |
00:03 | <@froztbyte> | but I'm not totally dumb ;D |
00:04 | <@froztbyte> | that said |
00:04 | <@froztbyte> | it's 1am and I need to be in the office with failcakes again at 9am |
00:04 | <@froztbyte> | \o |
00:04 | <@Tamber> | o/ |
00:08 | <&McMartin> | Oh hey |
00:08 | <&McMartin> | c++filt in the binutils. |
00:08 | <&McMartin> | (And for MSVS, UnDecorateSymbolName) |
00:27 | | Turaiel is now known as Turaiel[Offline] |
00:52 | | himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code |
00:52 | | mode/#code [+o himi] by ChanServ |
00:53 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has quit [Ping timeout: 121 seconds] |
01:07 | | Reiv [NSwebIRC@Nightstar-95746c1f.kinect.net.nz] has joined #code |
01:07 | | mode/#code [+o Reiv] by ChanServ |
01:25 | < RichyB> | This is a pleasingly interesting idea. |
01:25 | < RichyB> | http://blog.frama-c.com/index.php?post/2013/05/20/Attack-by-Compiler |
01:26 | < RichyB> | By introducing one after another new optimisations that take advantage of behaviour that is undefined or under-defined by the spec for C, a malicious compiler writer could quite happily make imperfect real-world C code significantly less secure. |
01:26 | < RichyB> | (undefined: code which overflows integers) |
01:27 | < RichyB> | (under-defined: is this code actually constant-time or not?) |
01:27 | < RichyB> | The examples in that blog post show off ideas like an array bounds-check being optimised out because of edge cases where the behaviour was undefined. |
01:29 | <&McMartin> | That's a lot more clever than Reflections on Trusting Trust |
01:31 | < RichyB> | Yes. It makes RoTT look positively crude by comparison. |
01:31 | < RichyB> | It fills me with malicious glee. |
01:31 | < RichyB> | Also, fear! ^_^ |
01:37 | < JBeshir> | That is clever, yeah. |
01:44 | < RichyB> | My favourite idea is, y'know that Debian bug where they commented out the entropy-gathering step in OpenSSL because it triggered valgrind warnings? |
01:44 | < RichyB> | Well, the valgrind warnings were coming out because OpenSSL was XORing entropy taken from /dev/random with the contents of an uninitialised buffer. |
01:46 | < RichyB> | Imagine a future C compiler working out that the buffer's contents are necessarily uninitialised, therefore you obviously don't care about what's in there, therefore it can safely replace the entire entropy-gathering function with memset(dest, 0, size) because it won't have a well-defined value anyway? :D |
01:46 | < RichyB> | I don't think that that's actually quite possible because AIUI reading uninitialised memory only gives you undefined values according to the spec, not actually undefined behaviour. |
01:54 | | Xon [Xon@9C034E.A7474E.446F1A.DEA144] has quit [Ping timeout: 121 seconds] |
01:58 | <@Reiv> | RoTT? |
02:00 | <&Derakon> | Reflections on Trusting Trust. |
02:00 | <&Derakon> | Wherein Ken Thompson subverts gcc to let him log onto any Unix installation. |
02:00 | < RichyB> | Sorry, I thought the acronym would be clear because McM had just mentioned it. |
02:00 | < RichyB> | Not gcc; the hack that meant that logging in as "ken" would always work on any Unix box predates gcc's existence. :) |
02:01 | < RichyB> | I think that they called their C compiler "cc" at that point. :) |
02:01 | <&Derakon> | Ah. |
02:01 | <&Derakon> | Fairynuff. |
02:02 | <&Derakon> | (The lesson being that unless you bootstrapped the compiler yourself, you don't know that it's faithfully compiling your code...) |
02:03 | <@Reiv> | I was more curious what it /was/, rather than the acronym. |
02:03 | <&Derakon> | Google it and you'll find his talk. It's a good read. |
02:03 | <&Derakon> | And not too long. |
02:05 | < Nemu> | Incidently, was he talking figuratively, or had he actually implemented that backdoor? |
02:05 | <&Derakon> | The latter, I believe. |
02:05 | <&Derakon> | Early computing was dangerously irresponsible~ |
02:05 | < Nemu> | Nah. Dangerously experimental |
02:06 | < Nemu> | The two are synonyms |
02:06 | < [R]> | Reiv: basically he makes it so compiling /sbin/login will produce something other than what the code would dictate because it added an extra login account as a backdoor. |
02:07 | <@Reiv> | ha, cute |
02:07 | <&Derakon> | More importantly, he subverted the compiler so that compiling itself would cause it to add the logic that subverts login. |
02:07 | <&Derakon> | So that there would be no trace anywhere in the source code of his backdoor. |
02:10 | <&McMartin> | so that it subverts login, and itself for the next round of updates |
02:28 | <&McMartin> | Also, argh |
02:28 | <&McMartin> | I think this is the first time I've used SQL because I want to actually get data out of storage, as opposed to because I want to destroy something |
02:32 | | * Derakon quirks an eyebrow. |
02:32 | <&McMartin> | I don't generally work with databases. |
02:33 | <&McMartin> | All previous experience has been, basically, automated penetration testing |
02:33 | < RichyB> | Haha. |
02:33 | <&Derakon> | I'm surprised you did penetration testing. |
02:33 | < RichyB> | I'm amused by the notion that you know SQLi but not SQL. D: |
02:33 | <&McMartin> | It's the most obvious application of program analysis. -_- |
02:33 | < RichyB> | :D |
02:33 | <&Derakon> | Ahh. |
02:33 | <&Derakon> | Right, your thesis. |
02:33 | <&McMartin> | SQLi? |
02:33 | < JBeshir> | Injection |
02:33 | <&McMartin> | Oh. |
02:34 | <&McMartin> | Well, yeah |
02:34 | | * McMartin just learned the difference between inner and outer joins. >_> |
02:34 | <&Derakon> | SQL injections don't generally require much knowledge of actual SQL. |
02:34 | <&McMartin> | Quite so |
02:43 | < RichyB> | More of its lexical structure and less of its... how to get stuff done. |
03:03 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [Ping timeout: 121 seconds] |
03:12 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
03:12 | | mode/#code [+o celticminstrel] by ChanServ |
03:12 | < RichyB> | Oh fun. |
03:13 | < RichyB> | The example "your C compiler could kill you" of omitting XORing input data with uninitialised memory? Actually, borderline practical. http://blog.frama-c.com/index.php?post/2013/03/13/indeterminate-undefined |
03:13 | < RichyB> | I didn't think it was necessarily UB but apparently it can be. |
03:21 | < RichyB> | http://blog.regehr.org/archives/903 |
03:21 | < RichyB> | ? I'm going to go on record and state that Coq is just about the single program that I'm least fond of the idea of hearing of undefined behaviour in the middle of. |
03:22 | | 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.] |
03:38 | | Kindamoody[zZz] is now known as Kindamoody |
04:12 | <&McMartin> | Undefined behavior in a theorem prover seems like kind of a Coq-up, yes. |
04:23 | <@Reiv> | These people are crazy, aren't they. |
04:25 | | Turaiel[Offline] is now known as Turaiel |
04:45 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down] |
04:59 | | Kindamoody is now known as Kindamoody|breakfast |
05:07 | | Nemu [NeophoxProd@F9D7EC.9380D1.03E7F7.94E705] has quit [Ping timeout: 121 seconds] |
05:12 | | Kindamoody|breakfast is now known as Kindamoody |
06:11 | | Derakon is now known as Derakon[AFK] |
06:20 | | Xon [Xon@Nightstar-362effcc.highway1.net.au] has joined #code |
06:22 | | Kindamoody is now known as Kindamoody|out |
06:25 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code |
06:25 | | mode/#code [+qo Vornicus Vornicus] by ChanServ |
06:51 | | 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:53 | < [R]> | "[If] anything kills off commercial software, let me tell you, it won't be open source software. They needn't bother. Commercial software will gleefully strangle itself to death on its own licensing terms." -- Jeff Atwood |
07:10 | | You're now known as TheWatcher |
07:30 | | Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has quit [Ping timeout: 121 seconds] |
07:30 | | Turaiel [Brandon@Nightstar-7dc8031d.mi.comcast.net] has joined #code |
07:40 | | * Vornicus fiddles with algorithmic stuff: how to rejigger a red-black tree that has just had a huge chunk taken out of it. |
07:50 | | himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds] |
07:51 | | Turaiel is now known as Turaiel[Offline] |
08:09 | | You're now known as TheWatcher[afk] |
08:22 | | thalass [thalass@Nightstar-879f199f.bigpond.net.au] has joined #code |
08:30 | <~Vornicus> | Hm. Skip Lists! Aha! |
08:38 | <~Vornicus> | Back Off, Man, I'm A Computer Scientist |
08:40 | <~Vornicus> | (also, good, there are "back off, man, I'm a scientist" bumper stickers) |
08:43 | | Vornicus changed the topic of #code to: Welcome to #Code! || Don't ask to ask, just ask. || Rants and monologues are encouraged; many cores, no waiting || Pastebin: http://pastebin.starforge.co.uk/ (Note antispam question, answer 'Yes') || Back off, man, I'm a computer scientist || Shameless self-promotion: https://github.com/jerith/depixel |
08:48 | <@Azash> | Vornicus: What about asking about asking to ask? |
08:49 | | * Vornicus beats azash with a fondue pot full of cheese. |
08:50 | <@Azash> | Which side, am I able to steal slurps? |
08:56 | | thalass [thalass@Nightstar-879f199f.bigpond.net.au] has quit [[NS] Quit: brb] |
08:59 | | thalass [thalass@Nightstar-879f199f.bigpond.net.au] has joined #code |
09:46 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has joined #code |
10:01 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection] |
10:02 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:02 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:02 | | mode/#code [+o Pandemic] by ChanServ |
10:05 | | VirusJTG [VirusJTG@2B12AA.572255.206A2A.901581] has quit [Ping timeout: 121 seconds] |
10:16 | | RichyB [richardb@58734C.5279B7.EA7DF8.107330] has joined #code |
10:33 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:33 | | VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:35 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
10:35 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
10:38 | <~Vornicus> | okay. skip lists: surprisingly tasty to implement slice removal on. |
10:42 | | Nekat_Eman [Nekat@Nightstar-65d041cd.ed.shawcable.net] has joined #code |
10:48 | | Nekat_Eman [Nekat@Nightstar-65d041cd.ed.shawcable.net] has quit [Client closed the connection] |
10:51 | < RichyB> | Vornicus: yeah. ? |
10:54 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
10:54 | | mode/#code [+o Pandemic] by ChanServ |
10:55 | | VirusHome [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
10:58 | <~Vornicus> | okslep. |
11:00 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
11:05 | | Xon [Xon@Nightstar-362effcc.highway1.net.au] has quit [Ping timeout: 121 seconds] |
11:10 | | Xon [Xon@Nightstar-362effcc.highway1.net.au] has joined #code |
11:28 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has joined #code |
12:08 | | thalass [thalass@Nightstar-879f199f.bigpond.net.au] has quit [Connection reset by peer] |
12:08 | | AverageJoe [evil1@Nightstar-4b668a07.ph.cox.net] has quit [Connection closed] |
12:21 | | Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has quit [Ping timeout: 121 seconds] |
12:25 | | Alek [omegaboot@Nightstar-56dbba0f.in.comcast.net] has joined #code |
12:25 | | mode/#code [+o Alek] by ChanServ |
12:42 | | VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code |
12:45 | | You're now known as TheWatcher |
12:45 | | VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
13:15 | | Kindamoody|out is now known as Kindamoody |
13:54 | | ToxicFrog is now known as ToxicFrog|W`rkn |
15:04 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has quit [Ping timeout: 121 seconds] |
15:05 | | Syloq [Syloq@NetworkAdministrator.Nightstar.Net] has joined #code |
15:06 | | mode/#code [+o Syloq] by ChanServ |
15:12 | | Nekat_Eman [Nekat@BAD19E.0D4BF8.6D7606.C6EEC9] has joined #code |
15:12 | | Nekat_Eman [Nekat@BAD19E.0D4BF8.6D7606.C6EEC9] has quit [[NS] Quit: Bye] |
15:18 | | Nemu [NeophoxProd@F9D7EC.9380D1.03E7F7.94E705] has joined #code |
15:24 | | Kindamoody is now known as Kindamoody|out |
15:37 | | Turaiel[Offline] is now known as Turaiel |
15:42 | | Turaiel is now known as Turaiel[Offline] |
15:46 | | Turaiel[Offline] is now known as Turaiel |
16:11 | | celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code |
16:11 | | mode/#code [+o celticminstrel] by ChanServ |
16:19 | | Xon2 [Xon@9C034E.A7474E.446F1A.DEA144] has joined #code |
16:21 | | Xon [Xon@Nightstar-362effcc.highway1.net.au] has quit [Ping timeout: 121 seconds] |
16:22 | | Xires is now known as ^Xires |
16:25 | | Xon [Xon@Nightstar-362effcc.highway1.net.au] has joined #code |
16:27 | | Xon2 [Xon@9C034E.A7474E.446F1A.DEA144] has quit [Ping timeout: 121 seconds] |
16:34 | | * ToxicFrog|W`rkn spends his morning APPROVING ALL OF THE CHANGES |
16:36 | | * Syka sneaks in some changes that make multicoloured ASCII mudkips appear randomly |
16:40 | <&ToxicFrog|W`rkn> | Congratulations, you've broken AdSense. |
16:42 | < Syka> | pff, so what if 90% of ads are replaced with rainbow mudkips |
16:42 | < Syka> | tbh it'd make me click on it, just to see what company is using rainbow mudkips as an advertising strategy |
16:43 | < RichyB> | Hrmn. |
16:44 | < Syka> | that reminds me |
16:45 | < Syka> | i need to throw some money at adsense |
16:45 | < RichyB> | It's not impossible that perhaps occasionally displaying random non-offensive content like mudkips pics could increase the mean value of an adwords slot by by reducing web surfers' tendency to ignore that physical space on the page on the assumption that it's only going to contain a banner ad. |
16:45 | < Syka> | google sends me a "get 1 goddamn billion dollars of adsense credit with this coupon!!11!" every so often |
16:45 | < Syka> | RichyB: like reddit does? |
16:45 | < RichyB> | Like, trying to reduce ad-blindness by putting innocuous content in sometimes. |
16:45 | < RichyB> | Yeah. |
16:45 | < Syka> | reddit sometimes shows non-ad ads |
16:46 | < RichyB> | *nodnod* I have seen them, yes. |
16:46 | < Syka> | lol, I tried fb advertising |
16:46 | < Syka> | the conversion rate was like... |
16:46 | < Syka> | there wasn't enough decimal places |
16:46 | < Syka> | on the fb dashboard |
16:46 | < RichyB> | Y'all could possibly a/b test mudkipz and see if you get a bump in clickthrough rates. ;) |
16:46 | < RichyB> | Hahaha. |
16:46 | < Syka> | lemme pull up the stats, it was hilarious |
16:48 | < Syka> | ah, here we go |
16:48 | < Nemu> | I thought most people just hid the ad elements on facebook |
16:48 | < Syka> | 523,346 impressions, 82 clicks |
16:48 | < Nemu> | I hardly use it, but I took the time to kill, like, everything on it. |
16:48 | < RichyB> | Ouchies. |
16:49 | < Syka> | Nemu: you're smarter than the average fb user, though |
16:49 | < Nemu> | Sounds about right for that, yeah |
16:49 | < Syka> | since the average fb user is the average person |
16:49 | < RichyB> | OTOH, some of the people I work with run an ad network. |
16:49 | < Syka> | and the average person calls firefox 'the mozzarella' |
16:49 | < Nemu> | ... wot |
16:49 | < RichyB> | In that business, 1% click-through rate is considered pretty-bloody-good. |
16:49 | < Syka> | never heard 'mozarella foxfire'? |
16:49 | < RichyB> | Anything north of 1.5% is astounding. |
16:49 | < Syka> | RichyB: 0.016% CTR :D |
16:50 | < Syka> | about ~$95 all up, and as far as I can tell, it was 100% useless |
16:50 | < Nemu> | ... I've never heard that |
16:50 | < Nemu> | Ever |
16:50 | < Syka> | I actually had someone complain |
16:51 | < RichyB> | ? |
16:51 | < Syka> | because they thought it was rude that my logo was showing up in the corner of their computer |
16:51 | < Syka> | ...I'm not sure they understand advertising |
16:51 | < RichyB> | Or computers. :) |
16:52 | < Nemu> | I'm reminded of a site someone linked here about bad design concepts, and how one guy ranted about logos on products, then said the iphone was ideal because it had no logos |
16:53 | < Nemu> | Just a big apple |
16:55 | <&ToxicFrog|W`rkn> | RichyB: it's entirely possible that we already have done that A/B test :P |
16:55 | < Syka> | Nemu: that was possibly me |
16:55 | < Syka> | but me making fun of them |
16:55 | < RichyB> | ToxicFrog|W`rkn: how would you find out? |
16:56 | < Syka> | Nemu: http://reddrgn.net/tidbits/a/problemwithlogos.html this? |
16:56 | < RichyB> | Is there a repository of everything that anyone ever A/B tested in order to avoid repeatedly forgetting and testing the same thing? |
16:56 | <&ToxicFrog|W`rkn> | No idea! Finding that out would be the first step. |
16:57 | < RichyB> | Or... is it assumed that, by the time everyone forgets what was A/B tested before, it's been long enough that maybe the result ought to be re-tested anyway as conditions may have changed? |
16:57 | < Nemu> | Yeah, that one |
17:01 | < Syka> | Nemu: the thing that depresses me? |
17:01 | < Syka> | Nemu: that guy did a terrible half-assed 'reimagining' of Microsoft's branding, forgetting lots of things (eg. windows server) |
17:02 | < Syka> | and Microsoft *offered him a design job in the xbox division* |
17:03 | < Nemu> | Eh? |
17:03 | < Syka> | http://reddrgn.net/tidbits/files/thenewms/9.jpg < here is basically the sumup of his design |
17:03 | < Syka> | Nemu: the guy that said the iphone was ideal because it had no logos |
17:03 | < Nemu> | Stars for emphasis, or stars as scare quotes? |
17:03 | < Syka> | stars for emphasis |
17:04 | < Nemu> | Well, youcan't fault him for not knowing that windows makes a server distro |
17:04 | < Syka> | yes I can |
17:04 | < Nemu> | He doesn't seem like he knows anything about computers |
17:04 | < Syka> | haha |
17:04 | < Syka> | well, technically |
17:05 | < Syka> | MS makes some 40% of its profit from the enterprise division |
17:05 | < Syka> | it's an incredibly big part of MS |
17:05 | < Syka> | also, lol metro on a server |
17:09 | < RichyB> | I can't think of any reason why Metro specifically would be bad on a server... |
17:09 | | EvilDarkLord is now known as Maze |
17:09 | < RichyB> | ...that doesn't already apply to the entire concept of "GUI on a server" in the first place. |
17:10 | < Syka> | RichyB: touchscreen optimised UI on a device that is almost guaranteed not to have a touchscreen |
17:10 | < RichyB> | Low-memory, low-CPU optimised UI on a device that is almost guaranteed not to have lots of capacity spare for running a GUI. |
17:11 | < RichyB> | I'm beginning to become sympathetic to the devops-y notion that *ssh* on a server is something of a bad thing, and really ought to be only used for development and debugging. :) |
17:42 | | Derakon[AFK] is now known as Derakon |
17:56 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has quit [Ping timeout: 121 seconds] |
18:01 | | Nemu [NeophoxProd@F9D7EC.9380D1.03E7F7.94E705] has quit [Ping timeout: 121 seconds] |
18:36 | | kyo_ [NSwebIRC@17C60D.17187C.633ABB.14E8B7] has joined #code |
18:37 | < kyo_> | sup |
18:41 | | kyo_ [NSwebIRC@17C60D.17187C.633ABB.14E8B7] has quit [[NS] Quit: Page closed] |
18:54 | | Turaiel is now known as Turaiel[Offline] |
18:58 | <&ToxicFrog|W`rkn> | RichyB: you can have my ssh when you pry it from my cold dead hands |
19:00 | < RichyB> | ToxicFrog|W`rkn: oh, so you're planning to ssh into all 2x10**5 Google Compute Engine nodes that your production code gets run on? |
19:02 | < RichyB> | The "ssh is an antipattern" argument is more like "when deploying at scale, you *have* to be automating deployment and typing shit into ssh on each server you're deploying to doesn't cut it" |
19:02 | < RichyB> | No reason why you can't be doing things like ssh'ing into workstations, or into a randomly-picked production server to see why it's misbehaving. |
19:04 | | Turaiel[Offline] is now known as Turaiel |
19:22 | <&ToxicFrog|W`rkn> | RichyB: you're quite correct that manually sshing into things to update prod is stupid, and at this scale even automatically sshing into things isn't always good enough. |
19:23 | <&ToxicFrog|W`rkn> | But the argument as originally stated was "you shouldn't have ssh available on the server", which is much harder to defend. |
19:23 | < RichyB> | Nah, I don't advocate that. |
19:24 | < RichyB> | ssh costs about 2MB resident and isn't an interesting security risk. Worth it just for the possibility of debugging. |
19:24 | < RichyB> | Okay, maybe at some scale it becomes worth taking ssh out of prod to save 2MB of RAM per virtual machine. ;) |
19:24 | <@gnolam> | http://storify.com/markgbaxter/fakepsychscititles |
19:24 | <&ToxicFrog|W`rkn> | Yeah, at Google scale saving 2MB per server is actually Significant. |
19:25 | <&ToxicFrog|W`rkn> | But not significant enough that it's worth losing the ability to ssh into the machines when things go wrong. |
19:26 | < RichyB> | AIUI, facebook or twitter or someone wrote a thing called "murder" where they use BitTorrent for distributing packages to all of their servers. |
19:26 | < RichyB> | Yarrr. https://github.com/lg/murder |
19:26 | | Kindamoody|out is now known as Kindamoody |
19:27 | < RichyB> | I'd be interested to find out what Google use for configuration management on servers. |
19:28 | < RichyB> | I guess it might actually be worth the money at Google's size to, say, write a minimally-sized config management engine in C rather than use any of the open-source (big!) Ruby ones. |
19:28 | < RichyB> | ...or not, given that the config management program only has to run regularly, not permanently in the background. |
19:39 | | Orthia [orthianz@3CF3A5.E1CD01.B089B9.1E14D1] has joined #code |
19:39 | | mode/#code [+o Orthia] by ChanServ |
19:45 | <&ToxicFrog|W`rkn> | I'm not sure I'm allowed to talk about what we use for config management, even if I understood it. |
19:46 | < RichyB> | I appreciate that, which is why I said "I'd be interested to find out" rather than "Please tell me". |
19:52 | <&ToxicFrog|W`rkn> | Anything we have discussed in the public literature is probably linked at some remove from http://en.wikipedia.org/wiki/Google_platform |
19:54 | < RichyB> | Speaking of writing stuff in C for no good reason |
19:54 | < RichyB> | have you seen Frama-C at all? It's pretty interesting. |
19:54 | | Turaiel is now known as Turaiel[Offline] |
19:54 | < RichyB> | It's a project whose goal is to have tractable machine-verifiable proofs of the correctness of C programs. |
19:56 | < RichyB> | There's an attached blog which is an absolute gold-mine of information about C programs that almost but don't quite work. |
19:56 | <&ToxicFrog|W`rkn> | I've heard of it, haven't looked at it at all |
19:56 | <&ToxicFrog|W`rkn> | Link blog? |
19:56 | <&ToxicFrog|W`rkn> | nvm, found it |
19:57 | < RichyB> | Sorry, http://blog.frama-c.com/index.php |
19:57 | < RichyB> | I was pushing the "Attack by Compiler" article on people yesterday because it's so much fun. |
20:00 | <&ToxicFrog|W`rkn> | Yeah, that's where I found it. |
20:03 | <&ToxicFrog|W`rkn> | Also the Underhanded C Contest, which is beautiful |
20:06 | <&ToxicFrog|W`rkn> | (If you haven't read that, go do it.) |
20:19 | | Kindamoody is now known as Kindamoody[zZz] |
20:39 | | * TheWatcher hairpulls at people who don't document their goddamned code |
20:45 | < [R]> | Heh |
20:45 | | * [R] has been diving into lightnode recently. The blog of the author is very much english... all the comments are very much engrish. |
20:46 | < [R]> | Which is confusing as hell. |
20:59 | < [R]> | nm, I was just really tired |
21:00 | < [R]> | :/ |
21:06 | | Vorntastic [Vorn@Nightstar-e0eea20c.sub-70-211-2.myvzw.com] has joined #code |
21:08 | < RichyB> | I'm familiar with the Underhanded C contest. |
21:09 | < RichyB> | I find the "Attack by Compiler" ideas interesting because it brings about ways for a sufficiently-smart optimising compiler to subvert practically every piece of C code on the planet (almost none of which lacks at least one integer overflow or bad pointer dereference *somewhere*). |
21:13 | | Vorntastic [Vorn@Nightstar-e0eea20c.sub-70-211-2.myvzw.com] has quit [[NS] Quit: Bye] |
21:13 | | Vorntastic [Vorn@Nightstar-e0eea20c.sub-70-211-2.myvzw.com] has joined #code |
21:13 | | Vorntastic [Vorn@Nightstar-e0eea20c.sub-70-211-2.myvzw.com] has quit [Connection closed] |
21:17 | | Maze is now known as EvilDarkLord |
21:17 | | VirusHome [VirusJTG@2B12AA.572255.206A2A.901581] has joined #code |
21:18 | | * TheWatcher eyes this |
21:19 | <@TheWatcher> | Ugh, I hate it when people create pointers to structs hidden behind typedefs that don't explicitly document that. |
21:20 | | Pandemic [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds] |
21:29 | < [R]> | Isn't that SOP for when you don't want the API user fucking up the struct? |
21:30 | < RichyB> | Pfft. |
21:30 | < RichyB> | typedef struct foo { /* You should not touch anything in here. */ ... } |
21:31 | <&McMartin> | I can't tell if TW means opaque structs or the chain of umpteen typedefs the *last of which alone* is a struct. |
21:31 | < RichyB> | Has no runtime overhead, completely nondangerous if people bother to note that the struct's contents aren't part of the API. |
21:31 | <&McMartin> | having your .h file be "struct foo;" and then having the rest of the code have struct foo *x also has no runtime overhead |
21:31 | <&McMartin> | It's purely a compilation time name resolution thing |
21:32 | <&McMartin> | You can't put foos on the stack then outside of the header that declares what foo *really* is, but if you're putting it on the stack, you're using its fields |
21:32 | < RichyB> | No, it *does* have overhead. It means that you can't have a dense array of foo objects anywhere and you have to bounce through pointers. |
21:32 | <&McMartin> | (If only to count up how much stack space to allocate) |
21:33 | <&McMartin> | Yeah, I'm disputing that because if you have a dense array of them or you are stack allocating them, then the fields are in fact part of the API. |
21:33 | <&McMartin> | Because you can't safely relink against a different version of it with different fields. |
21:33 | <&McMartin> | If you want to call that ABI instead of API, OK~ |
21:33 | < RichyB> | Yes. I actually don't have a problem with that. You're going to need to recompile when you want to link against a new version of libfoo. BFD. |
21:34 | <&ToxicFrog|W`rkn> | Yeah, I'm ok with drawing a distinction between ABI and API. |
21:34 | <&McMartin> | It's a B enough FD that it's why you should never actually write libraries in C++. |
21:34 | <&McMartin> | Or expose things in it |
21:34 | <&McMartin> | BEcause when the library takes an update the fucking universe breaks |
21:35 | <&McMartin> | It's OK to write C++ in libraries as long as objects don't cross linker-product boundaries. |
21:36 | < RichyB> | McMartin: I'll concede labelling it as an "ABI" instead of an "API" to make the point that you'll need to recompile upon upgrade. |
21:36 | <&McMartin> | Once they do, unless your API is All Pointers, Everywhere, Forever, you are in for a world of hurt |
21:37 | < RichyB> | It is definitely sensible that all modern Unix syscalls are All Pointers, Everywhere except for the bits that are small integers standing in for pointers. |
21:37 | <&McMartin> | Sure, handles work too~ |
21:37 | <&McMartin> | (This is part of my semi-irrational hatred of OO) |
21:38 | <&McMartin> | (In that what in a C-like ABI would be "exporting some additional functions" means that you have to recompile the whole universe that isn't using them) |
21:38 | <&McMartin> | (Or can mean that, depending on the precise compiler you are using and how it handles vtables) |
21:39 | < RichyB> | That is a problem of C++, not a problem with OO. In languages that are all-pointers-everywhere by default like Java or Obj-C, this doesn't even come up. |
21:41 | | Turaiel[Offline] is now known as Turaiel |
21:46 | <@TheWatcher> | In this case, it was a chain of typedefs 4 deep, at the bottom of which "#define HANDLE(T) typedef struct T##__{} *T" |
21:47 | < RichyB> | I think that this is a hint that you probably didn't want to be looking inside that type anyway |
21:48 | < RichyB> | I take it that you wound up having to look anyway in order to debug something? |
21:48 | <@TheWatcher> | How did you guess? |
21:49 | < RichyB> | You wouldn't care, otherwise. |
21:49 | < RichyB> | Who can be bothered to dig into the guts of code that just works, anyway? :P |
21:50 | <@gnolam> | I am reminded of certain libraries that a) hide the pointer status of stuff with typedef and b) /change the library names for minor revisions/. |
21:50 | <@gnolam> | *cough*FreeType*cough* |
21:51 | < RichyB> | Heh. Doing both of those is a bit, um, wtf? |
21:58 | <@froztbyte> | Free(OfSense)Type |
21:59 | < RichyB> | FT almost gets a pass for being insane on account of how ridiculously nice the font rendering that comes out of it is. |
21:59 | <@froztbyte> | hehe |
22:28 | | * TheWatcher huhs, gets a pull request on SDL_ImageSave |
22:29 | <@TheWatcher> | Had no idea anyone was actually using it. |
22:33 | <&Derakon> | What's it do, let you save a Surface as a PNG? |
22:36 | <@TheWatcher> | png or jpeg, yes |
22:38 | | * TheWatcher eyes this code, blinks |
22:39 | <&Derakon> | pygame has that functionality built in as pygame.image.save(surface, filename). |
22:39 | <@TheWatcher> | Yeah, C/C++ has... save as BMP. |
22:39 | <&Derakon> | /o\ |
22:41 | < RichyB> | Eh |
22:41 | < RichyB> | Save as BMP, system("convert foo.bmp foo.png"); unlink("foo.bmp"); |
22:41 | < RichyB> | ImageMagick for the win! :) |
22:42 | < [R]> | Doesn't work on systems that ignore PATH as a matter of normal operation. |
22:43 | <@TheWatcher> | Or machines that don't have imagemagick, or, or... |
22:43 | < RichyB> | [R]: eh. |
22:43 | < RichyB> | TheWatcher: that's blasphemy. |
22:43 | < [R]> | RichyB: Windows. |
22:43 | < RichyB> | ImageMagick comes with computers. |
22:43 | <@TheWatcher> | Tell that to microsoft :P |
22:43 | < RichyB> | [R]: that doesn't qualify for the noun "system". ;P |
22:46 | < [R]> | RichyB: I mostly meant systems infected with it |
22:52 | < Turaiel> | Here, make laughter at how terrible this guy is: http://pastebin.com/3KEsFW1e |
22:53 | <@froztbyte> | will it overcome the pain of autoconf? |
22:53 | <@froztbyte> | because that's what I'm swearing at right now |
22:53 | < Turaiel> | Possibly |
22:54 | <@TheWatcher> | Nothing can overcome the pain of autoconf, not even death itself. |
22:54 | <@froztbyte> | Turaiel: yeah that person appears to be a bit lost |
22:55 | <@froztbyte> | you made mostly the right call |
22:55 | | * Turaiel facepalms |
22:55 | <@froztbyte> | (in future, just mash the eject button until you roll out) |
22:55 | <@froztbyte> | TheWatcher: NOT. HELPING. |
22:55 | < Turaiel> | He's on #twokinds all the time. He comments on everything, gets nothing right. |
22:55 | <@froztbyte> | :( |
22:55 | <@froztbyte> | usually I can make dh_* take care of this, but this isn't packaged yet |
22:55 | < Turaiel> | It's rather ridiculous how wrong he is |
22:56 | <@froztbyte> | in fact, I'll probably end up packaging it |
23:01 | | * McMartin reads backscroll |
23:01 | <&McMartin> | SDL_ImageSave is pretty great; I've used it, but I didn't file the pull request |
23:01 | <&McMartin> | (As for "why not just use ImageMagick": because packing ImageMagick with your game so you can have screenshot functionality is dumb) |
23:04 | <@froztbyte> | man, I'm glad I debian well |
23:04 | <@froztbyte> | if I didn't debian well, this might've sucked exponentially more |
23:04 | <@froztbyte> | (packages which aren't in the release I need, but just adding another repo without pinning would cause gigantic pain) |
23:05 | <@froztbyte> | also apparently updating some gstreamer stuff just pulled gvfs updates :WATMAN: |
23:09 | < RichyB> | froztbyte: isn't there, like, a gvfs that makes audio CDs look like folders full of MP3 files so that you can rip by dragging and dropping in nautilus? |
23:09 | < RichyB> | froztbyte: it's plausible that that would be implemented on top of gstreamer. |
23:09 | <@froztbyte> | I would honestly not know |
23:09 | <@froztbyte> | but yeah, sounds legit |
23:09 | <@froztbyte> | gnome is full of shit like that |
23:10 | < RichyB> | Well |
23:10 | <@froztbyte> | gnome is a festering shitpile of weird interdependencies |
23:10 | < RichyB> | I'm pretty sure they stole the idea from KDE anyway :) |
23:10 | <&McMartin> | That's the kind of feature I'd associate with an actual grownup OS, really |
23:10 | < RichyB> | Feh |
23:10 | <@froztbyte> | the /feature/ is fine |
23:10 | <@froztbyte> | the way they implement it is probably 6 moving parts too many |
23:10 | < RichyB> | "Festering shitpile" is how I'd describe it prior to FUSE. |
23:10 | <&McMartin> | FUSE is wonderful |
23:10 | < RichyB> | Since Gnome's virtual filesystem feature got turned into actual filesystems through FUSE, it's bloody sensible. |
23:11 | <@froztbyte> | hehe |
23:11 | <&McMartin> | We really need to just stop having kernel level filesystems =P |
23:11 | <@froztbyte> | I'm still not quite sure why GNOME sucks as hard as it does |
23:11 | <@froztbyte> | it all started sensibly |
23:11 | <&McMartin> | Because it's captained by madmen, ANAICT |
23:11 | <@froztbyte> | and just kept getting worse |
23:11 | <&McMartin> | Hard turn to Crazytown around 3.0 |
23:12 | <@froztbyte> | McMartin: the *next* item on the list, of course |
23:12 | <@froztbyte> | is the fact that it and its ilk are still the Flagship of Open Source Desktops |
23:12 | <@froztbyte> | (fuck ubuntu and unity, we all know how well that's going at the moment) |
23:12 | < Turaiel> | <3 Cinnamon |
23:12 | <&McMartin> | Yeah, Unity peaked about this time last year, I think by accident |
23:13 | <&McMartin> | <3 LXDE, actually. |
23:13 | < Turaiel> | I hate LXDE |
23:13 | <&McMartin> | That's fine |
23:13 | < Turaiel> | Doesn't work properly on dual monitors for me xD |
23:13 | <&McMartin> | That's a good reason |
23:13 | < RichyB> | froztbyte: I have jumped ship to LXDE for this reason. |
23:13 | <&McMartin> | For whatever insane reason I never realyl got into multiple monitors |
23:13 | < Turaiel> | It just sort of... stretches, even with proper video settings |
23:13 | <@froztbyte> | I've finally been trying out the tiling thing lately |
23:13 | < Turaiel> | I'm sure it's perfectly nice on a single monitor though |
23:13 | < RichyB> | Turaiel: which bit doesn't work? The panel or the window manager? |
23:13 | <@froztbyte> | since I got a new machine (well, old) from fijal (of pypy fame) |
23:13 | <@froztbyte> | and it doesn't have a touchpad |
23:14 | <@froztbyte> | so going with tiling seemed a sensible choice |
23:14 | <&McMartin> | Yeah, I use LXDE on my really old desktops |
23:14 | < Turaiel> | RichyB, panel and wallpaper stretch |
23:14 | < RichyB> | Ah. |
23:14 | <&McMartin> | Where it is great |
23:14 | < RichyB> | The panel in lxde is one of the things that's part of LXDE itself. |
23:14 | <@froztbyte> | awesomewm + slim + sid + btrfs on cryptoloop |
23:14 | <@froztbyte> | omnomnom |
23:14 | < RichyB> | LXDE doesn't actually force you to use any particular window manager though, though it sets up OpenBox by default. |
23:15 | < RichyB> | It's supposed to be pretty easy to set up LXDE+Xmonad or DWM or whatever. |
23:15 | <&McMartin> | YAY DWM |
23:15 | | * McMartin sings the dwm song |
23:15 | < Turaiel> | I really wish Gnome 3.8 wouldn't have broken Cinnamon terribly |
23:15 | <&McMartin> | I forget, is dbus part of GNOME? |
23:15 | < Turaiel> | I miss it |
23:15 | <&McMartin> | Because dbus is pretty great |
23:16 | <&McMartin> | I don't think I've used anything for that problem space that's easier to use |
23:16 | < RichyB> | I hated dbus until I saw qtdbusviewer. |
23:16 | <@froztbyte> | dbus ties into gnome |
23:16 | <@froztbyte> | RichyB: yeah, see, that |
23:16 | <&McMartin> | For me it was the Python bindings |
23:17 | < RichyB> | It also has rather nice Emacs lisp bindings. |
23:17 | <@froztbyte> | basically *all* *of* *the* *good* *tools* *for* *anything* == qt work |
23:17 | <&McMartin> | Qt4 is about 3/4 of an OS all on its own |
23:17 | < RichyB> | Turaiel: yeah, that too. |
23:17 | <@froztbyte> | someone else I know has this, as far as I can tell, irrational hate of Qt just because of how it looks |
23:17 | < RichyB> | I'm running Fedora 18 on this laptop. |
23:17 | <@froztbyte> | but the Qt stuff *fucking* *works* |
23:17 | <@froztbyte> | time and again |
23:17 | < RichyB> | I tried Gnome 3.6 and can't use it; they've broken Xmodmap and I don't understand why. |
23:17 | <&McMartin> | It's even single-source |
23:17 | <@froztbyte> | gnome/gtk stuff is always a piece of shit |
23:18 | <&McMartin> | Qt4 is actually single-source tri-platform |
23:18 | < Turaiel> | RichyB, Gnome always breaks everything |
23:18 | < RichyB> | I tried reverting to Cinammon and can't use it; Gnome's brokenness infects Cinnamon. |
23:18 | <@froztbyte> | McMartin: quad, isn't it? |
23:18 | < Turaiel> | They most recently removed transparency support in the terminal |
23:18 | <&McMartin> | froztbyte: Not anymore >_> |
23:18 | < Turaiel> | It made me very sad |
23:18 | <@froztbyte> | (I don't recall if their nokia shits are still alive?) |
23:18 | <@froztbyte> | ah |
23:18 | <@froztbyte> | McMartin: but yeah |
23:18 | < Turaiel> | Apparently it's because they're phasing out gconf and it's incompatible |
23:18 | < Turaiel> | So instead of fixing it, they removed it |
23:18 | < RichyB> | froztbyte: I would not go that far. I actively like Gnome 2. GTK2 is even a pretty a pretty nice toolkit. |
23:18 | <&McMartin> | Qt5 is going off into Crazy Windows 8 land but it's a totally different project from Qt4 in a different space |
23:18 | <&McMartin> | So, whatever |
23:19 | <@froztbyte> | I've switched to KDE as my main desktop thing a couple of years ago, and it really does work well |
23:19 | <&McMartin> | Qt4 is at this point, well, a mature product. |
23:19 | <@froztbyte> | RichyB: I lost faith in them after GNOME 2.16/2.18 |
23:19 | <@froztbyte> | see, the reason I got onto the linux train was "omfg, you get so much choice!" |
23:20 | < RichyB> | froztbyte: I'm a little bit bewildered that the Qt4 and KDE tools are so good given that I find KDE... not friendly. |
23:20 | <@froztbyte> | and then they started actively removing features from stuff in some misguided "better UI" attempt |
23:20 | <@froztbyte> | "hide" them, sure, but don't entirely remove them |
23:20 | <@froztbyte> | (this is the same problem I have with unity) |
23:20 | < RichyB> | I'm not sure that there are even real problems with KDE? It doesn't seem to fit my brain. |
23:20 | | Turaiel is now known as Turaiel[Offline] |
23:20 | <@froztbyte> | RichyB: yeah, it doesn't seem to be for everyone |
23:20 | < RichyB> | Unity implemented some nice experiments. |
23:20 | <@froztbyte> | I've helped 3 people switch over to it |
23:21 | <@froztbyte> | but that was easier because I knew the bits of KDE already |
23:21 | < RichyB> | Like I found the dock keyboard shortcuts really nice when I tried actually using them. |
23:21 | < RichyB> | OTOH everything else was Nope, No Thank You. |
23:21 | <@froztbyte> | hehe |
23:22 | < RichyB> | (They implemented an OS X style dock where you are supposed to pin frequently-used applications to it.) |
23:22 | <&McMartin> | Yeah |
23:22 | < RichyB> | (The really nice keyboard shortcut is that, if you press Super+1, it either launches or foregrounds the topmost item on the dock.) |
23:23 | < RichyB> | I really, really liked having "touch super+2 to bring Firefox to the foreground" as a keyboard shortcut. |
23:23 | <&McMartin> | Which is even better if you aren't a hacker and thus run many things that are not Terminal and Firefox~ |
23:23 | < RichyB> | What? |
23:23 | < RichyB> | What are you talking about, McMartin? |
23:23 | < RichyB> | I don't... what? |
23:24 | < RichyB> | Applications that are like Firefox but they're not Firefox? |
23:24 | <&McMartin> | I'm having trouble parsing your reaction; can you unpack that with sarcasm clearly marked |
23:24 | < RichyB> | I should be less subtle next time. |
23:25 | <&McMartin> | Right, but based on that I'm wondering instead if I were actually unclear |
23:25 | < RichyB> | THERE ARE APPLICATIONS THAT ARE NOT ONLY NOT FIREFOX, BUT SOMEHOW ARE NOT A TERMINAL EITHER!? |
23:25 | < RichyB> | WITCHCRAFT! |
23:25 | <@froztbyte> | lolol |
23:25 | < RichyB> | Sorry, didn't present that very well on attempt 0. |
23:25 | <&McMartin> | Right, that's what these "Desktop Environment" things are actually in theory supposed to be managing. Terminals were just kind of bunged in on top. |
23:26 | <&McMartin> | Ubuntu's targeting that market explicitly, so when you actually get to use all the number keys with super instead of just 1 and 2 this is actually really solid |
23:26 | <@froztbyte> | while we're on a somewhat-kinda related topic |
23:26 | <@froztbyte> | what are good terminal emulators these days? |
23:26 | <&McMartin> | (Browser, IM, media player, Email client that is not browser) |
23:26 | <@froztbyte> | I don't feel like pulling all of kde's support libs along on my laptop for konsole, and konsole's refresh semantics also don't seem to be smart |
23:26 | <&McMartin> | I just use gnome-terminal on GNOME and Unity and PuTTY on Windows |
23:27 | <@froztbyte> | should I just bother with trying to figure out how to make urxvt or something play nice? |
23:27 | < [R]> | i3wm + wallpaperd + urxvt FTW |
23:27 | < [R]> | (Sorry on backsroll) |
23:27 | < RichyB> | In all seriousness, I'm at browser, terminal emulator, emacs, xchat, thunderbird, evince, occasionally seahorse. |
23:28 | < RichyB> | I just use whatever the DE's terminal emulator is. lxterminal seems to work fine, xfce4-terminal seems to work fine, gnome-terminal seems to work fine. Eh. |
23:28 | <@froztbyte> | I'll try lx-terminal out |
23:28 | <@froztbyte> | will also try get a bit more formal a spec list |
23:28 | <@froztbyte> | but gnome-terminal had weird slowdown issues last time I ran into it |
23:28 | < RichyB> | urxvt is still really nice if you want to bother customising it; the only one that I know of worth actually avoiding is xterm. |
23:29 | <@froztbyte> | given, I roll with 5k line buffers and 15+ tabs |
23:29 | < RichyB> | Ah huh. |
23:29 | <@froztbyte> | (with screen/tmux sessions like crazy too) |
23:29 | < RichyB> | I lose track of sessions long before that point. |
23:29 | <@froztbyte> | hehe |
23:29 | < RichyB> | Wait, you use both screen *and* tmux? |
23:30 | <@froztbyte> | I have /way/ good session tracking in my brain, just due to how I've grown up doing context switching |
23:30 | <@froztbyte> | RichyB: either/or, sometimes both |
23:30 | < RichyB> | That's the third dumbest thing I ever heard of |
23:30 | <@froztbyte> | I'm trying to switch to tmux in full, but if there's a thing which I don't know in tmux yet I might just fire up a screen session instead quickly to use muscle memory |
23:30 | < RichyB> | right after the guy who types "vi" in an xterm while he's got emacs open |
23:30 | <@TheWatcher> | .me eyes |
23:31 | < RichyB> | and after the guy who runs "vi" inside "M-x ansi-term" inside emacs. |
23:31 | < RichyB> | Oh wait, both of the latter are me. ;) |
23:31 | <@froztbyte> | I use screen if the system doesn't have tmux, which is lots-of-other-people-systems |
23:31 | <@froztbyte> | tmux on my own |
23:31 | <@froztbyte> | and screen-instead-of-tmux when I'm UI-annoyed |
23:31 | | * [R] might try tmux |
23:31 | <@froztbyte> | tmux is pretty good shit |
23:31 | < [R]> | Screen has been crashing annoyingly frequently as of late. |
23:32 | < [R]> | On multiple systems |
23:32 | <@TheWatcher> | O.o |
23:32 | < RichyB> | Y'know, if you just pressed control-Z on a very large number of applications, you'd barely even need to multiplex your terminals. ;) |
23:32 | <@TheWatcher> | Screen crashes |
23:32 | <@TheWatcher> | ?! |
23:32 | <@froztbyte> | I managed to crash screen for the first time in a couple of years yesterday |
23:32 | <@froztbyte> | RichyB: rofl |
23:32 | < RichyB> | Screen crashes? |
23:32 | < [R]> | Might be my config |
23:32 | <@froztbyte> | I don't quite know *how* I managed this |
23:32 | < [R]> | But IMO it's not that complicated... |
23:32 | <@froztbyte> | I just used mutt really quickly |
23:32 | < RichyB> | froztbyte: ed works perfectly if you ^Z and resume it! Probably because it doesn't bother trying to use curses |
23:32 | <@TheWatcher> | mutt |
23:32 | <@froztbyte> | and then my console slowed down for abit |
23:32 | <@TheWatcher> | there's your problem~ |
23:32 | <@froztbyte> | and byebye screen |
23:33 | < RichyB> | I can not use mutt. |
23:33 | < [R]> | Usually switching from a screen tab with vim in it will cause it to crash |
23:33 | <@froztbyte> | RichyB: hurr |
23:33 | <@froztbyte> | RichyB: don't even joke |
23:33 | < RichyB> | The last time I tried, I gave up and installed dovecot instead because that was easier. |
23:33 | <@froztbyte> | RichyB: I've had to do live hex editing of flash storage before to fix some stuff :/ |
23:33 | < RichyB> | ed doesn't function as a hex editor, does it? |
23:33 | <@froztbyte> | also, I've now formally given up on trying to build this thing on squeeze tonight |
23:33 | <@froztbyte> | it works on wheezy |
23:33 | <@froztbyte> | fuck squeeze |
23:34 | <@froztbyte> | well, maybe not fuck squeeze, but I don't know how much I can poke at this remote box |
23:34 | <@froztbyte> | RichyB: uhm.... |
23:34 | < RichyB> | ? |
23:34 | <@froztbyte> | RichyB: you can do `od | ed`, I guess? |
23:35 | < RichyB> | I don't understand why you mentioned hex editing of flash storage? |
23:35 | <@froztbyte> | but what I meant was, I've had to fuck around in block memory before, which makes "edit with ed" not even that terrible a joke |
23:35 | | * [R] uses vim+xxd for hex editing |
23:36 | | * RichyB uses hexl-mode in Emacs. |
23:36 | < RichyB> | On the rare occasion. |
23:37 | < RichyB> | froztbyte: I use ed from inside emacs M-x shell sometimes just to maintain humility. ;) |
23:37 | <@froztbyte> | haha |
23:38 | <@TheWatcher> | That's not humility you're maintaining there, it ends in the same three letters, but starts with an 'insan' ;P |
23:39 | <&McMartin> | I'm too young for ed. But just old enough for edlin.com on our 128KB PCs. |
23:40 | <@froztbyte> | I'm too young to even really be supposed to care for all this stuff |
23:40 | <@froztbyte> | yet somehow I do |
23:40 | <&McMartin> | Man |
23:40 | <@TheWatcher> | ... how old are you, anyway? |
23:40 | <@froztbyte> | 26 |
23:41 | <&McMartin> | I turn 35 next month |
23:41 | <@froztbyte> | and I've been doing this for just over 5 years |
23:41 | | * TheWatcher tries to work out how that's "too young" |
23:41 | <@froztbyte> | I'm not from the greybeard generation |
23:41 | < RichyB> | Dude |
23:41 | < RichyB> | I'm 25 |
23:41 | <&McMartin> | And I grew up amongst micros |
23:41 | <@froztbyte> | RichyB: \:D/ |
23:42 | < RichyB> | Do you not appreciate that you can just grow beards? |
23:42 | <@froztbyte> | RichyB: seems we're equally timedamaged |
23:42 | <@froztbyte> | well, I have a beard |
23:42 | < RichyB> | Like, out of your face and everything! |
23:42 | <@froztbyte> | but mine isn't grey yet :< |
23:42 | < RichyB> | Right, now just leave it a while, the grey will sort itself out. |
23:42 | < RichyB> | or |
23:42 | <@froztbyte> | talcum powder? |
23:42 | <@TheWatcher> | I can let you deal with some of my co-workers, that'll sort the greying out in no time |
23:42 | < RichyB> | Switch to systems operations, the grey will show up faster. |
23:43 | < RichyB> | If you want to go grey *really* fast, have a kid. |
23:43 | <@froztbyte> | TheWatcher: no thanks |
23:44 | <@froztbyte> | let me copy this from another channel quickly: |
23:44 | <@froztbyte> | <froztbyte> I'm on exit mode atm, people are frantically trying to catch up with what I've been doing |
23:44 | <@froztbyte> | <froztbyte> and in rancid docs, the clownmanager wanted a clarifying sentence for the router.db section, because this wasn't clear enough: device.identifier.or.ip.tld:devicetype:status |
23:44 | <@froztbyte> | <froztbyte> his words, verbatim: "Okay, please add an example there, because I don't understand what 'dot oh are dot' is supposed to be. That's not clear to me." |
23:44 | <@TheWatcher> | >.< |
23:44 | <@froztbyte> | RichyB: the past 4 years I've been doing a combination of sysops+netops+devfixyfixy+devops |
23:45 | <&McMartin> | .shoryuken. |
23:45 | <@froztbyte> | that is *the least* of the fun stories I could tell you |
23:45 | <@TheWatcher> | (latest one for me is "Chris, Tony would like to chat with you about the news and events system for possible use by other schools." for a system that is about 30% complete, generating data that we're not even sure the stupid faculty CMS can even use at this point... yeah, wider rollout, great idea) |
23:45 | <@froztbyte> | I spent all of last week recovering a raid array that failed due to him being unable to order a drive |
23:45 | < RichyB> | Ewww |
23:46 | <@froztbyte> | TheWatcher: har |
23:46 | < RichyB> | Here you get "omg the roof is on fire" if an array shows up as degraded. |
23:46 | <@TheWatcher> | You haven't stabbed him yet? I'm impressed. |
23:46 | <@froztbyte> | RichyB: uhm |
23:46 | <@froztbyte> | so uh |
23:46 | < RichyB> | ? |
23:46 | <@froztbyte> | raid5. 3+1 setup. 4 years running, *constant* write |
23:46 | <@froztbyte> | first of the 4 failed 2 months ago |
23:47 | <@froztbyte> | replaced 3 weeks later |
23:47 | <@froztbyte> | on the 4th of this month, #2 failed. on the 6th, I get to the office and say "this drive failed. we need to replace it now. if another fails we're going to have a bad time." |
23:47 | <@froztbyte> | he does his reactionary panic, then forgets about it |
23:47 | < RichyB> | Sounds fine. I have religious prohibitions against raid5 but aside from that, sensible. |
23:47 | <@froztbyte> | on the 7th I remind people again |
23:47 | <@froztbyte> | on the 8th I remind people again |
23:47 | <@froztbyte> | on the 9th he leaves on holiday |
23:48 | < RichyB> | Win. |
23:48 | <@froztbyte> | on the 13th, the next drive tips over |
23:48 | <@froztbyte> | on the 14th, he's back |
23:48 | < RichyB> | Wait, |
23:48 | <@froztbyte> | management asks why he didn't order drives |
23:48 | < RichyB> | When you said "3+1" you meant "3-disk RAID5 plus 1 hot spare", right? |
23:48 | <@froztbyte> | "Oh no, I thought that was the previous one you were talking about" |
23:48 | <@froztbyte> | RichyB: no, 4-disk with 1 as parity space |
23:49 | <@froztbyte> | RichyB: I didn't set up that box. |
23:49 | < RichyB> | I can't do the MTTF maths in my head but I do not like the sound of a 4-disk RAID5. |
23:49 | <@froztbyte> | so anyway |
23:49 | < RichyB> | Yeah, that was asking for trouble. |
23:49 | <@froztbyte> | full array failure |
23:49 | <@Alek> | oh jeez |
23:49 | <@Alek> | ow ow ow |
23:49 | <@froztbyte> | his excuse "oh, thought you were talking about /last/ time!" |
23:49 | < RichyB> | *Setting up that RAID without a hot spare was IMO reckless. |
23:49 | <@froztbyte> | no argument from me |
23:49 | < RichyB> | Not buying a frigging disk was just insane. |
23:50 | <@froztbyte> | eh |
23:50 | <@froztbyte> | no |
23:50 | <@froztbyte> | gets better |
23:50 | <@Alek> | I'd personally hold enough spare drives to fully replace at least one array. |
23:50 | <@froztbyte> | we have 4 spare in another system that's down at the moment |
23:50 | < RichyB> | Well... overstatement. Keeping a *cold* spare lying around would have been okay too. |
23:50 | <@froztbyte> | I purposefully didn't even highlight that fact |
23:50 | <@froztbyte> | wanted to see if anyone could figure it out |
23:50 | <@froztbyte> | turns out that no, they couldn't |
23:50 | <@froztbyte> | utter and complete incompetence, day by day |
23:50 | < RichyB> | That sounds like it could have been a little masochistic on your part. |
23:51 | <@froztbyte> | RichyB: well, I'm leaving |
23:51 | <@froztbyte> | RichyB: they need to get used to working on their own |
23:51 | <@froztbyte> | I've slowly been letting go of the reins for the last 4 weeks |
23:51 | < RichyB> | Hmmokay. |
23:52 | <@froztbyte> | my notice was given for 31 may |
23:52 | <@froztbyte> | I'm likely going to be done by this friday |
23:52 | <&McMartin> | http://arstechnica.com/information-technology/2013/05/gimme-the-cache-memcached- turns-10-years-old-today/ |
23:52 | <@froztbyte> | I am /so close/, yet /so far/ :s |
23:52 | <&McMartin> | I guess LJ was good for something after all |
23:52 | <@froztbyte> | haha |
23:52 | <@TheWatcher> | froztbyte: how many DMHs left active? ¬¬ |
23:53 | <@froztbyte> | TheWatcher: *blink* |
23:54 | < RichyB> | DMH? |
23:55 | <@froztbyte> | ^ wot 'e said |
23:55 | <@TheWatcher> | Dead Man's Handle |
23:55 | <@froztbyte> | none |
23:55 | <@TheWatcher> | Ah, so remotely amicable departure, then ¬¬ |
23:55 | <@froztbyte> | I've applied a very large portion of scripts to things over my time there |
23:56 | <@froztbyte> | and I'm not going to just shut them off |
23:56 | <@froztbyte> | I take a fair bit of pride in how well my systems run :) |
23:56 | <@froztbyte> | and as tempting as it is to turn them off, people would probably consider it sabotage just based on the pure ticket flood they'd get |
23:56 | <@froztbyte> | (I've made it that things fail noisily when they fail) |
23:57 | <@froztbyte> | but yeah, whether they could /run/ the stuff in future....I have extensive reservations about that |
23:58 | <@froztbyte> | I spent 3 hours educating the new support guy on debugging permissions issues, because he *doesn't use his eyes* and just goes straight to panic mode |
23:58 | <@froztbyte> | so finding things in per-user crontabs, and script systems with multiple moving parts.... |
--- Log closed Wed May 22 00:00:17 2013 |