code logs -> 2013 -> Tue, 21 May 2013< code.20130520.log - code.20130522.log >
--- 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
code logs -> 2013 -> Tue, 21 May 2013< code.20130520.log - code.20130522.log >

[ Latest log file ]