code logs -> 2013 -> Tue, 23 Apr 2013< code.20130422.log - code.20130424.log >
--- Log opened Tue Apr 23 00:00:04 2013
00:13 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
00:23 Turaiel is now known as Turaiel[Offline]
00:24 Turaiel[Offline] is now known as Turaiel
00:38
< RichyB>
Yesssss
00:40 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
00:40 mode/#code [+o himi] by ChanServ
00:40
< RichyB>
Ubuntu--; CentOS++;
00:40
< RichyB>
Very pleased that the machine actually came back up again on the first attempt! Didn't even have to call tech support and beg them to reboot it for me. :D
02:45 RichyB [richardb@Nightstar-228a334c.plus.com] has quit [[NS] Quit: >:3 This is BunThulhu. Copy him into your quit message to help him take over the Internet.]
02:55 syksleep is now known as Syk
03:24
<&McMartin>
Bleh
03:24
<&McMartin>
My responsibilities are expanding to include C# and Java code, along with C++.
03:24
<&McMartin>
Perhaps I can mutate some of it into F# >_>
03:24
< Syk>
burn it all :D
03:25
<&McMartin>
Not really an option.
03:28
< Syk>
hmm well that does make things more difficult
03:44 Kindamoody[zZz] is now known as Kindamoody
04:06 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
04:06 mode/#code [+qo Vornicus Vornicus] by ChanServ
04:20 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
05:33
< Xires>
Syk++
05:34 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
06:00
<@Reiv>
VORNICUS VORNICUS VORNICUS
06:00
<@Reiv>
HELP ME WITH YOUR WISDOM
06:00
<@Reiv>
I want a ... stacked area graph? I think?
06:00
<@Reiv>
No, a cumulative one.
06:01
<@Reiv>
Is this doable in Excel somehow?
06:02
<@Reiv>
Basically a chart showing COUNTIF(>1),COUNTIF(<2),COUNTIF(>3) etc
06:02
<@Reiv>
Only without the brain bleach.
06:03
<&Derakon>
Like, a histogram?
06:15
<@Reiv>
Sure.
06:15
<@Reiv>
My issue is in gathering the data up.
06:17
<@Reiv>
My pivot table got me as far as "75:1. 76: 6. 77: 20. 78: 14. 79: 12. 80: 22."
06:17
<@Reiv>
AKA 'days old' and 'number found'
06:17
<@Reiv>
I want to roll those up so that it's, uh
06:18
<@Reiv>
75 74 68 48 34 22
06:18
<@Reiv>
(Numbers done in head; may be inaccurate)
06:19
<&Derakon>
Hm, that's not a histogram.
06:19
<@Reiv>
Right. I actually know the chart type
06:19
<@Reiv>
The hard part is the /data/
06:19
<&Derakon>
A histogram would be more like "75-76: 7; 77-78: 34; 79-80: 34".
06:20
<&Derakon>
Mm, 'fraid I can't help you; I'm not an Excel guru.
06:26 Derakon is now known as Derakon[AFK]
06:27 Kindamoody is now known as Kindamoody|out
06:31 Turaiel is now known as Turaiel[Offline]
07:36
< Xires>
anyone here familiar with glib? specifically GThreadPool?
07:38 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
07:42
<~Vornicus>
One moment
07:43
<~Vornicus>
Okay so: you have some pile of data and you want the cumulative sum?
07:43
<~Vornicus>
if the data is in (say) B2:B100, put in C2 "=SUM($B$2:B2)"
07:43
<~Vornicus>
and fill that down
07:44
<~Vornicus>
That column now accumulates
07:44
<~Vornicus>
If you want to accumulate from the bottom, use =SUM(B2:$B$100) instead
08:00 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!]
08:20 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has left #code ["Leaving"]
08:49 Vash [Vash@Nightstar-221158c7.sd.cox.net] has joined #code
08:49 mode/#code [+o Vash] by ChanServ
09:16 thalass [thalass@C2A270.1179B7.313116.9D7314] has joined #code
09:33 Azash [ap@297948.F70DAA.120876.F7563D] has quit [Ping timeout: 121 seconds]
09:35 Azash [ap@297948.F70DAA.120876.F7563D] has joined #code
09:35 mode/#code [+o Azash] by ChanServ
09:51 gnolam [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has quit [Client closed the connection]
09:52 gnolam [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has joined #code
09:52 mode/#code [+o gnolam] by ChanServ
10:34 Vash [Vash@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: I lovecraft Vorn! <3]
10:36 RichyB [richardb@Nightstar-228a334c.plus.com] has joined #code
10:56 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
10:56 mode/#code [+o himi] by ChanServ
11:27 gnolam_ [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has joined #code
11:27 gnolam [lenin@Nightstar-b2aa51c5.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds]
11:27 gnolam_ is now known as gnolam
11:27 mode/#code [+o gnolam] by ChanServ
11:34 RichyB [richardb@Nightstar-228a334c.plus.com] has quit [[NS] Quit: >:3 This is BunThulhu. Copy him into your quit message to help him take over the Internet.]
11:37 RichyB [richardb@Nightstar-228a334c.plus.com] has joined #code
11:58 thalass [thalass@C2A270.1179B7.313116.9D7314] has quit [[NS] Quit: Leaving]
12:05 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:07 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving]
12:12 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
12:15 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
13:57 RichyB [richardb@Nightstar-228a334c.plus.com] has quit [Ping timeout: 121 seconds]
15:05 RichyB [richardb@Nightstar-228a334c.plus.com] has joined #code
15:16 ToxicFrog is now known as ToxicFrog|W`rkn
15:44 Syk [the@A6D346.0419D1.F98395.ADFE65] has quit [[NS] Quit: leaving]
15:46 Syka [the@A6D346.0419D1.F98395.ADFE65] has joined #code
16:59 ErikMesoy is now known as Harrower
17:16 RichyB [richardb@Nightstar-228a334c.plus.com] has quit [[NS] Quit: >:3 This is BunThulhu. Copy him into your quit message to help him take over the Internet.]
17:26
<&jerith>
http://notinventedhe.re/on/2013-4-23 -- thread safe
17:31 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
17:31 mode/#code [+o celticminstrel] by ChanServ
17:37 Syka is now known as syksleep
17:49 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has joined #code
17:49 mode/#code [+ao Derakon Derakon] by ChanServ
17:49 * Derakon eyes his code.
17:49
<&Derakon>
File 1: "import util.files; import util.logger". In util.logger, line 1: "import util.files".
17:49
<&Derakon>
The second import fails.
17:50
<&Derakon>
That is, when it gets to util.logger, it says "ImportError: No module named files".
17:50
<&Derakon>
Despite the fact that in the first file, the import succeeded!
17:50
<&Derakon>
And if I put print statements into util.files then they show up.
17:50
<&ToxicFrog|W`rkn>
Does python resolve import paths relative to $PWD, relative to the file the import is executed from, or absolute?
17:50
< Harrower>
I imported you a file, but I eated it.
17:51
<&ToxicFrog|W`rkn>
My first guess would be that util.logger is looking in a different place than main is.
17:51
<&Derakon>
TF: it's been my experience that you can either use an "absolute" path (starting from $PWD) or a relative path (starting from the module root).
17:51
<&Derakon>
The baffling thing about this is that I haven't changed any of this code in quite some time, so why has it stopped working?
17:52
<@Tamber>
Wrong phase of the moon.
17:52
<&Derakon>
Hm, I don't seem to be able to see any util.* modules from util.logger, though; not just util.files.
17:53
<&Derakon>
But I can "import util" just fine.
17:53
<&Derakon>
And no, there's no new util.py at the root level.
17:53
<&Derakon>
...there is a util.pyc in the util package though. What's that doing there?
17:53
<&Derakon>
There we go.
17:53
<&Derakon>
Okay, that explains that.
18:01
<&ToxicFrog|W`rkn>
(apropos of SOAP elsechan) I seriously do not get why XML got so popular as a data description language.
18:01
<&ToxicFrog|W`rkn>
It is so violently unsuited for it.
18:02
<&Derakon>
IIRC at the time it was proposed, there were no serious contenders.
18:02
<&Derakon>
Combine that with having actual software support and it became a de facto standard.
18:02
<&ToxicFrog|W`rkn>
When was it proposed?
18:02
<&Derakon>
Ages ago~
18:03
<&Derakon>
Looks like it was an offshoot of SGML which was developed in the late 80's.
18:04
<&Derakon>
First official date for XML as a separate thing in Wikipedia's article is 1997.
18:04
<&Derakon>
Which is back in the days when filesizes and bandwidth were still major constraints.
18:04
<&Derakon>
(So most people worried about such things would have rolled their own solutions)
18:07
<&ToxicFrog|W`rkn>
So it still postdates sexprs, is what you're saying~
18:08
<&jerith>
ToxicFrog|W`rkn: But sexprs are those strange things made out of Lisp.
18:08
<&ToxicFrog|W`rkn>
(and yeah, that's another reason for my confusion - it's hard to think of something that has worse space performance than XML for the data it stores)
18:08
<&jerith>
ToxicFrog|W`rkn: XML evolved out of SGML which is a text markup language.
18:08
<&ToxicFrog|W`rkn>
jerith: yes.
18:09
<&Derakon>
XML also looks like HTML, which I have to suspect has something to do with things.
18:09
<&ToxicFrog|W`rkn>
My point is that no-one uses it as a text markup language, they use it as a general purpose data description language.
18:09
<&Derakon>
Wasn't there a drive at some point to merge the two?
18:09
<&jerith>
And originally it was just a stricter text markup language that was easier to parse.
18:09
<&Derakon>
SHTML or something?
18:09
<&ToxicFrog|W`rkn>
Derakon: XHTML, which I actually rather liked, because it made it easy to get a consistent DOM out of the page (in sharp contrast with actual HTML)
18:09
<&jerith>
Derakon: XHTML.
18:09
<&Derakon>
Right, thanks.
18:10
<&jerith>
But XHTML is hard to make valid because (a) validation rules for XML have become arcane and (b) people like to insert arbitrary user-generated content in their templates.
18:10
<&ToxicFrog|W`rkn>
jerith: anyways, yes, XML was originally "a stricter text markup language that was easier to parse" and it's actually not completely terrible at that.
18:11
<&ToxicFrog|W`rkn>
But no-one uses it as one, and for what it's actually used for, it's godawful
18:11
<&McMartin>
I use it as one!
18:11
<&McMartin>
I'm the one one who does.
18:11
<&Derakon>
Hee
18:11
<&McMartin>
*only one who does
18:11
<&jerith>
Derakon: XHTML was the successor to HTML4, and now HTML5 is the new successor to HTML4.
18:11
<&ToxicFrog|W`rkn>
Doubly so considering that it rose to prominence in an era where minimizing program size, bandwidth usage, and size on disk was a priority
18:11
<&Derakon>
Ehh, size-on-disk wasn't a huge priority usually for the stuff you'd use XML for.
18:11
<&ToxicFrog|W`rkn>
And I'm trying to figure out why, because if I was writing a program to deploy in the 90s and needed to serialize something, XML is pretty much the last thing I'd use
18:11
<&Derakon>
It wasn't a replacement for your database.
18:11
<&jerith>
I maintained a huge pile of DocBook XML for a while, and that wasn't too horrible.
18:12
<&McMartin>
Docbook XML's only problem is that the toolchain for it still isn't as mature as the SGML Docbook ones. :(
18:12
<&Derakon>
And the main reason to use XML was that parsers already existed for your language of choice.
18:12
<&ToxicFrog|W`rkn>
Derakon: it is if you have to download it first.
18:12
<&jerith>
ToxicFrog|W`rkn: I think "useful tools exist" is the real reason.
18:12
<&Derakon>
(And your language of choice was C, C++, Java, or maybe Perl)
18:12
<&ToxicFrog|W`rkn>
Ok, but why did the parsers exist? Why has so much effort gone into developing all of this tooling to make XML tractable in the first place?
18:13
<&Derakon>
Because the tools existed for SGML/HTML and could be readily adapted.
18:13
<&McMartin>
Er
18:13
<&McMartin>
An XML parser is only hard because the spec is gigantic.
18:13
<&jerith>
ToxicFrog|W`rkn: Parsers exist because XML was a text markup language. They continued to exist when it moved on from that.
18:13
<&ToxicFrog|W`rkn>
jerith: even in the 90s I never actually saw XML used for its intended purpose, so
18:13
<&McMartin>
If you're using it as a sane serialization format it's *hugely* easy to write a sane parser for it. Easier than mailbox-format.
18:13
<&jerith>
XML namespaces make me very sad.
18:14
<&McMartin>
It's when you're writing something to parse XSLT programs that the parsers are hard to write.
18:14
<&McMartin>
Yeah
18:14
<&McMartin>
For disk storage, Compress It First.
18:14
<&jerith>
(Mostly because every tool I've used screws them up differently.)
18:14 * Azash had a CCN lecture today, still does not understand the fuss about them
18:14
<&jerith>
And I've implemented the easy half of XSLT.
18:14
<&McMartin>
Things that are not suitable uses for XML: as a framework for RPCs.
18:14
<&jerith>
(It wasn't easy, but the hard part's harder.)
18:14
<&McMartin>
What the *fuck*, XML-SOAP.
18:15
<@Azash>
XML-SOAP: Do you feel like you just aren't dirty enough?
18:15
<&jerith>
McMartin: Have you ever used SOAP's WS_Security stuff?
18:15
<&jerith>
*WS-Security
18:15
<&McMartin>
I have deliberately avoided SOAP in all its forms. What is this Weishaupt Scholars Security?
18:15
<&McMartin>
(He says, having gotten out of the shower on the way to work)
18:16
<&jerith>
Web Services, I believe. It is a horrible, horrible thing.
18:16
<&Derakon>
...you shower during your commute~?
18:16
<&McMartin>
Derakon: It's kind of tricky~
18:16
<&McMartin>
jerith: Oh. OK, one minor adjustment to previous statement
18:17
<&McMartin>
Since it is in some sense distributed text processing, AJAX is allowed to use XML as an extremely-remote-procedure-call format, since network latency will outstrip parsing costs, and parseable XML-like markup is the endstate anyway.
18:17
<&jerith>
You can sign your SOAP things. But you can't sign the bytes-on-the-wire, because SOAP is allowed to parse and regenerate your message along the way.
18:17
<&ToxicFrog|W`rkn>
McMartin: see, this is what I mean. Every use of XML I've encountered in the wild is as a serialization format for RPCs, or game save files, or fucking scripting
18:17
<&ToxicFrog|W`rkn>
As in, you describe the AST of your script in XML
18:17
<&McMartin>
That's very sad.
18:17
<&McMartin>
I have had much more positive experiences~
18:18
<&jerith>
So you have to sign the canonical serialised form of your XML document.
18:18
<&jerith>
Ant must die so hard.
18:18
<&jerith>
So very, very hard.
18:18
<&McMartin>
I've mostly seen it as a serialization format for hierarchical data when it isn't text markup, which it is Better At than any other textual format for same I've used.
18:18
<&ToxicFrog|W`rkn>
OH yeah, or build system configuration
18:18
<&McMartin>
YAML can Just Go Die.
18:18
<&Derakon>
FWIW Pyrel uses JSON for its data files.
18:19
<&jerith>
McMartin: I find YAML reasonably nice for config files, actually.
18:19
<&Derakon>
Since practically everything can be reasonably described by scalars, lists, and key-value pairs.
18:19
<&McMartin>
For non-hierarchical data I'd want to use something more restrictive.
18:19
<&jerith>
It's the most flexible format I've found that is actually human-writeable.
18:19
<&Derakon>
(That said, JSON doesn't impose any kind of structure beyond that, so you don't necessarily know the heirarchies involved)
18:20
<&Derakon>
(But good key names can help a lot with that)
18:20
<&McMartin>
My experience with YAML is that it's dangerousy easy to say things you didn't quite intend to in it.
18:20
<&ToxicFrog|W`rkn>
I have had very limited experience with YAML, but I would take that, JSON, or a sexpr-based language over XML for heirarchical data description.
18:20
<&ToxicFrog|W`rkn>
If arbitrary code execution isn't a concern, I would also take Lua.
18:20
<&Derakon>
Heh.
18:20
<&McMartin>
... if you're doing it right in this domain, XML *is* an sexpr-based language, just one that enforces close-scope comments.
18:21
<&jerith>
McMartin: Always always always use "safe_load()" or the equivalent. Otherwise you're open to arbitrary code execution attacks.
18:21
<&Derakon>
I considered just using straight Python files as datafiles for Pyrel, but rejected it on the grounds of "oh gods no".
18:21
<&McMartin>
jerith: Er. Who was that at and under what domain/runtime?
18:21
<&ToxicFrog|W`rkn>
McMartin: wait, what
18:21
<&Derakon>
No project I write is going to have a gaping-open code execution hole like that, even if I expect to never distribute it.
18:21
<&McMartin>
TF: Sexpr here means "like Scheme", right?
18:22
<&McMartin>
That is, a bunch of (tag *data) lists, where data may have similar things inside of it?
18:22
<&jerith>
(Seriously. Why is the *dangerous* load mechanism the default!?)
18:22
<&McMartin>
(I blame C)
18:22
<&ToxicFrog|W`rkn>
McMartin: yes.
18:22
<&McMartin>
Right.
18:22
<&ToxicFrog|W`rkn>
And yes, I know there's isomorphy there
18:23
<&jerith>
McMartin: YAML lets you serialise arbitrary objects and it has syntax for specifying the type.
18:23
<&ToxicFrog|W`rkn>
I am saying that if I have to read it, write it, or implementing any code touching it, I'd rather sexpr-inspired syntax than SGML-inspired
18:23
<&McMartin>
The difference between (tag *data) and <tag>data</tag> is that the latter effectively demands the comments one puts on C preprocessor #endif tags.
18:23 EvilDarkLord is now known as Maze
18:23
<&jerith>
This allows you to execute code by crafting suitable "serialised objects".
18:23
<@[R]>
<ToxicFrog|W`rkn> McMartin: see, this is what I mean. Every use of XML I've encountered in the wild is as a serialization format for RPCs, or game save files, or fucking scripting <-- I've encountered it as a means to store SQL queries
18:24
<&McMartin>
jerith: Yes, this statement is difficult for me to grasp in that it implies that a specific language is doing the load.
18:24
<&Derakon>
I expect you could spend several days reading TheDailyWTF articles about "bad uses for XML".
18:24
<&McMartin>
TF: In that case, we have a difference in taste~
18:24
<&jerith>
McMartin: Yes. You can't load serialised Python objects from Ruby.
18:25
<&McMartin>
Right, I normally work in C++
18:25
<&Derakon>
XML, JSON, etc. are meant at least in part as interchange formats.
18:25
<&McMartin>
Hence my confusion here~
18:25
<&Derakon>
If you're building a language-specific serialization then of course they're the wrong tool.
18:25
<&jerith>
I'm pretty sure the C++ and Java and whatever YAML implementations let you do something similar.
18:25
<&ToxicFrog|W`rkn>
I think we got sidetracked somewhere
18:25
<&McMartin>
TF: I've had too many cases of having to count out close parens where it being 6 or 7 close parens was syntactically significant, and as such prefer the enforced different kidn of close tag.
18:26
<&McMartin>
Er, 6 vs. 7
18:26
<&ToxicFrog|W`rkn>
McMartin: XML has exactly the same problem with </container></container></container></container>...
18:26
<&McMartin>
And where the size of the expression was large enough that I had to scroll the editor to see any highlighting.
18:26
<&McMartin>
I did specify correctly designed =P
18:26
<&Derakon>
TF: so you're complaining about people doing a crap job of using the tool?
18:26
<&ToxicFrog|W`rkn>
And sexprs are way easier to parse and easier for editors to automatch, too
18:26
<&Derakon>
If you write shit code, that reflects badly on you, not on the language.
18:27
<&McMartin>
Derakon: "Nobody uses XML properly" is 90% of the complaint, yes.
18:27
<&ToxicFrog|W`rkn>
So, uh, a correctly designed XML DTD disallows recursive nesting?
18:27
<&ToxicFrog|W`rkn>
But, yes, my complaint is in fact "no-one uses XML properly"
18:27
<&McMartin>
"Fuck DTDs" and "If you're doing a lot of nesting of things that are conceptually different, those things should have different named tags."
18:27
<&Derakon>
A correctly-designed spec won't require recursive nesting of the same object type, because in practice that doesn't happen in the vast majority of use cases.
18:28
<&Derakon>
Right, you'd use differently-named tags.
18:28
<&ToxicFrog|W`rkn>
The corollary to which is "a great many uses of XML would be improved by using something that is Not XML and actually suited for the problem domain"
18:28
<&McMartin>
Basically, this is why I don't like SExpr-based stuff; it's like XML but the only tag available is named "tag".
18:28
<&McMartin>
At least when you're on one end of it.
18:28
<&McMartin>
And that's assuming they deign to include tags in the first place instead of being positional
18:29
<&McMartin>
A mistake XML *can* make but which I personally see less of. I'm sure it's out there.
18:29
<&Derakon>
XML certainly errs on the side of verbosity.
18:29
<&Derakon>
Which I am totally fine with.
18:29
<&Derakon>
Too many programmers think terseness is inherently a virtue and churn out literally unreadable dreck as a result.
18:29
<&ToxicFrog|W`rkn>
McMartin: that preference pretty much rules out everything - including JSON - not SGML-ish, AIUI
18:29
<&McMartin>
One of the things I like about Clojure is that unlike Scheme it has three different kinds of parens
18:30
<&McMartin>
And yes, if you're super-heavily nesting JSON in a relatively strict hierarchical format, you've lost "human-readable" status.
18:31
<&McMartin>
Unless you write tools to pretty-print it for human modification, in which case you can get away with much more~
18:31
<&Derakon>
For reference, one of the creature records from Pyrel: ttp://pastebin.com/MbnE2KJL
18:31
<&Derakon>
(Which does use a pretty-printer)
18:31
<&ToxicFrog|W`rkn>
I am kind of assuming it'll be prettyprinted if a human will ever be looking at it, because if it's not, you're proper fucked in everything, including XML.
18:31
<&jerith>
You know what I hate most about JSON? Enough that I avoid dealing with it wherever possible?
18:31
<&jerith>
Trailing commas are syntax errors.
18:31
<&ToxicFrog|W`rkn>
Arguably, especially XML.
18:31
<&Derakon>
Jerith: that is a pain, yes.
18:32
<&ToxicFrog|W`rkn>
wait what
18:32
<&ToxicFrog|W`rkn>
Aggravating!
18:32
<&McMartin>
So are comments.
18:32
<&McMartin>
So are barewords as keys.
18:32
<&Derakon>
JSON is not without flaws.
18:32
<&McMartin>
I don't actually consider JSON human-*writable*. =P
18:32
<&McMartin>
JSON is an object interchange format, in my book.
18:33
<&McMartin>
Using it for persistent storage of anything besides dictionaries of strings is getting into "why are you doing this" territory
18:33
<&Derakon>
So what would you suggest for Pyrel, then?
18:33
<&jerith>
Lack of comments is annoying. Prohibition of trailing commas is both unnecessary and stupid.
18:33
<&McMartin>
Lack of comments means "this is a format for machine generation and inspection"
18:33
<&McMartin>
Prohibition of trailing commas makes it harder to machine-generate
18:34
<&McMartin>
Then again, this is of a piece with Douglas Crockford's insistence that JS's worst feature is that it has reserved words of any kind
18:34
<&Derakon>
Presumably you're using a JSON library instead of writing it "by hand" in your code.
18:34
<&ToxicFrog|W`rkn>
McMartin: the ability to insert comments into that format is wicked useful for debugging
18:34
<&McMartin>
"Context-sensitivity FUCKING EVERYWHERE HOORAY"
18:34
<&McMartin>
TF: So it is!
18:34
<&McMartin>
That's why human formats should have them.
18:34
<&McMartin>
In lacking them, it is saying "I am not a human format"
18:34
<&Derakon>
(FWIW I do plan to modify Pyrel's records to support a comment string at most layers, which would be largely ignored by the program itself)
18:35
<&ToxicFrog|W`rkn>
Even in formats that are meant to be "for machine generation and inspection"
18:35
<&McMartin>
Sure
18:35
<&McMartin>
But debugging is human inspection.
18:35
<&ToxicFrog|W`rkn>
McMartin: right, but I mean, this is why (frex) protobufs have two operating modes, one that generates a "pure machine" high efficiency output and one that generates annotated debug output, both of which are valid protobufs.
18:35
<&ToxicFrog|W`rkn>
Despite the fact that protocol buffers are explicitly designed as "a format not for human consumption"
18:36 * McMartin nods
18:36
<&McMartin>
Well
18:36
<&McMartin>
OK, this is just terminology.
18:36
<&McMartin>
I'm calling the former mode "not for human" and the latter "for human"
18:36
<@[R]>
<jerith> Lack of comments is annoying. Prohibition of trailing commas is both unnecessary and stupid. <-- I think you can blame IE for that. As originally the only parser for it was eval()
18:36
<&McMartin>
Feel free to recalibrate the previous statements to that
18:36
<&jerith>
Derakon: I'd probably use YAML for that stuff, actually.
18:36
<&jerith>
[R]: But why is that still the case today?
18:37
<@[R]>
Because it hasn't changed at all?
18:37
<&jerith>
But all the parsers are newer than that.
18:37
<&McMartin>
The same reason JS is still in use and hasn't been replaced with a technically better but worse-optimized-at-the-moment and less-widely-implemented alternative.
18:37
<@[R]>
Right, and to get new features, all parsers would be rendered out-dated.
18:38
<&Derakon>
Jerith: ISTR looking at YAML and rejecting it for some reason.
18:38
<&jerith>
Derakon: rIt's worth noting that YAML is a strict superset of JSON.
18:38
<&jerith>
-r
18:38
<&Derakon>
It might have been for as trivial a reason as Python not having a builtin library for parsing YAML files.
18:38
<&jerith>
Yeah. You need to install a third-party lib.
18:39
<&McMartin>
I think it was YAML's "count indentation levels" mode that made me decide I didn't want to mess with it.
18:39
<&Derakon>
McM: to be fair, I'm working in Python~
18:39
<&Derakon>
Though deeply-nested code is a lot more rare than deeply-nested data, t'is true.
18:39
<&jerith>
If you already have a couple of other deps, pyyaml's not too bad.
18:39
<&McMartin>
To be fair, in Python if you have a definition so long you have to scroll up to figure out where you are when or if you left a for loop this is Incredibly Terrible~
18:40
<&McMartin>
I mean, the other thing to take away from this is "deeply nested data is bad too"
18:40
<&Derakon>
Tangent: one of the big wins in my work in the last year has been being able to get rid of code that had 8+ levels of indentation.
18:51
<@Azash>
http://www.theonion.com/articles/fasttalking-computer-hacker-just-has-to-break-t hro,32000/
18:54
<@gnolam>
Heh.
19:07 * jerith takes a moment to rant frothily about the build issue he's been debugging for half an hour being due to a space in a directory name a couple of levels up from the build dir.
19:08
<&McMartin>
>_<
19:08
<&McMartin>
It baffles me that this is still an issue anywhere
19:08
<&McMartin>
Especially since the worlds most common operating system for the past ten years had them by default anywhere in the user's home directory.
19:09
<&McMartin>
"Blame entire world, continue doing what you were doing" is apparently a p. viable strategy
19:09
<&jerith>
I wouldn't actually expect most of these tools to work on Windows at all.
19:10
<&McMartin>
Entertainingly, Vista pointedly removed all those spaces~
19:10
<&McMartin>
(My statement is only true for XP AIUI, though maybe 2k had it too?)
19:11
<&Derakon>
IIRC in 2k it's "Documents and Settings".
19:11
<&McMartin>
OK then, NT5-based Windows did this and NT6 stopped ("Users").
19:12
<@[R]>
95->8 have had "Program Files"
19:12
<@Tamber>
Progra~1
19:13
<@froztbyte>
fun was making an *actual* Progra~1 alongside the usual folder...
19:13
<&ToxicFrog|W`rkn>
McMartin: IME, it's only an issue when passing paths to something that uses spaces as delimiters, i.e. when shelling out to invoke some external tool
19:13
<&ToxicFrog|W`rkn>
Which is most of what a build system does, soooooooooo...
19:14
<&McMartin>
Yes, but this Just Works for, say, $< and $@
19:15 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
19:15
<&McMartin>
Speaking of Stuff On Windows, oh hey, the MSYS that wingit ships with has curl in it
19:15
<&ToxicFrog|W`rkn>
McMartin: once you have the values with spaces in them into the make dependency graph in the first place~
19:15
<&McMartin>
That will make my life marginally less full of spiders.
19:15
<&ToxicFrog|W`rkn>
\o/
19:15
<&McMartin>
Well
19:15
<&McMartin>
Actually, it won't. But they'll be safely within the depeleted transparent unobtanium jar that is the curl commandline utility.
19:16
<&McMartin>
The huge difference in usability between curl and libcurl (which curl uses) is one of the Great Mysteries
19:18
<&ToxicFrog|W`rkn>
Last time I wanted to do HTTP and needed something more capable than socket.http, I looked into libcurl, remembering how convenient curl(1) is.
19:18
<&ToxicFrog|W`rkn>
I still wake up screaming, some nights.
19:18
<&Derakon>
Heh.
19:19
<&McMartin>
fork/exec curl(1)~
19:19
<&McMartin>
Ability to kind of use libcurl is one of the things I traded SAN points for, alas, but I kind of want those back.
19:20
<@[R]>
I don't recall it being that bad.
19:21
<@[R]>
Mind you, I was primarily using the PHP wrapper of it. (Though I did use it in C once)
19:21
<&McMartin>
My understanding is that the PHP bindings to curl are no worse than the rest of PHP
19:22
<&ToxicFrog|W`rkn>
McMartin: the project targeted windows; I ended up just implementing the bits that socket.http was missing
19:22
<&McMartin>
And if you're only using libcurl for "here is a URL and a callback, let me know when you have some data for it", it's not too bad
19:23
<&McMartin>
But if that's all you want, socket.http is presumably enough~
19:26
<&ToxicFrog|W`rkn>
Yeah, this was "I want to submit a form and the server objects if it's not POST-encoded just right"
19:26
<&ToxicFrog|W`rkn>
And the specific "just right" required more knobs than exposed by the existing POST API.
19:28
<@[R]>
Heh
19:30
<&jerith>
Now this thing's complaining that "dev" and "0.5.0a" are incompatible versions. But only on the CI server, not my local machine.
19:30
<&ToxicFrog|W`rkn>
hooray
19:30
<&jerith>
The package versions are identical in both places.
19:31
<&jerith>
I'm starting to think it might be a good idea to set fire to the whole software industry.
19:35
< RichyB>
This is ridiculously cute: y'know that there's a proof assistant called "Coq" written by a bunch of French people in OCaML?
19:35
<&ToxicFrog|W`rkn>
c
19:36 * McMartin is generally aware of Coq.
19:36
<&McMartin>
INRIA is generally fairly badass.
19:36
< RichyB>
And there's a whole slew of software fanart doodles collectively referred to as "OS-tans"? e.g. wikipe-tan, win98-tan, whatever. http://ostan-collections.net/imeeji/thumbnails.php?album=12
19:36
<&McMartin>
Given that ML was originally designed for theorem provers/proof assistants, it's a pretty good match
19:36
<&McMartin>
Ah yes.
19:37
<&McMartin>
Afghanis-tan, Turmenis-tan, etc.
19:37
<&Derakon>
There are -tans of all kinds of things.
19:37
<&Derakon>
Wouldn't be surprised if the OS-tans were the first though.
19:37
< RichyB>
Well, this: http://twitter.yfrog.com/z/nzv07xp
19:38
< RichyB>
The drawing's mediocre but the character design is really neat and I can't stop grinning at the pun.
19:39
< RichyB>
(well actually it's better at a larger view, the resize blows most of the detail away. It's still a bit flat spartan, though.) http://twitter.yfrog.com/z/nzv07xp
19:39
<&McMartin>
Not clicking at work anyway~
19:39 * McMartin saves for later
19:40
< RichyB>
The latter link is SFW.
19:41
<&Derakon>
Mostly it's just "proof assis-tan".
19:41
< RichyB>
That would be the pun.
19:43
< RichyB>
And the character design is, ? and ? symbols as hairclips, red bowtie at neck and flying stiffened ribbons that are reminiscent of a cockerel's wattles and comb, respectively.
19:47
<&McMartin>
... huh
19:47
<&McMartin>
My console font is messing those up and totally should not.
19:47
<&McMartin>
I guess it got ? right, but it clips off pieces of the universal quantifier.
19:47
< RichyB>
WTF, McM, are you using irssi?
19:48
<&McMartin>
I am.
19:48
<&McMartin>
It (well, OK, this terminal emulator) seems to be under the impression that these symbols are double-wide and offset about 1.5 characters >_<
19:49
<&McMartin>
I can copy-paste them into other windows with variable-width fonts and they work fine.
19:50
< RichyB>
But it's made of Perl and spiders. (Though I repeat myself.)
19:50
<&McMartin>
It also runs in screen!
19:50
<&McMartin>
I'm p. OK with spiders as long as they remain my loyal minions.
19:51
<@froztbyte>
RichyB: speaking of IRC setups, I'm certain mine is among the more .... eclectic ones
19:51
< RichyB>
My favourite console IRC "client" is this: https://github.com/RichardBarrell/snippets/blob/master/IRCat.hs
19:51
<@[R]>
ii.
19:52
< RichyB>
It's nothing more than line-oriented netcat *but* it understands just enough RFC 1459 to handle the PING/PONG exchanges for you transparently. ;D
19:52
< RichyB>
froztbyte: can you out-dumb that? ? :D
19:52
<@[R]>
IRC client in 500LoC FTW
19:52
< RichyB>
[R]: mine's 47 LoC and that's including a comment. ^^
19:52
<@froztbyte>
RichyB: haha, that's a nice one
19:52
<@froztbyte>
I saw a similar thing on suckless.org the other day
19:53
<@[R]>
RichyB: ii is written in C.
19:53
<@froztbyte>
IRC client as directory trees
19:53
<&McMartin>
I find irssi much cleaner to use than IRCii.
19:53
<@[R]>
sic?
19:53
<@froztbyte>
I don't the name
19:53
<@froztbyte>
recall* the
19:53
<&ToxicFrog|W`rkn>
RichyB: netcat comes with a shell script that does that as a worked example in the man page.
19:53
<@[R]>
sic is 250 LoC, but uses stdin as input.
19:53
<@froztbyte>
RichyB: so, my setup: irssi, irssi-proxy loaded, quassel on top of that
19:53
<@froztbyte>
RichyB: primarily I interact from quassel
19:54
<@froztbyte>
(because yay low input latency and easy scrollback)
19:54
<@froztbyte>
but it's so designed that I can IRC from *anything*
19:54
<@[R]>
I don't get why you'd add irssi for another point of failure.
19:54
<@froztbyte>
can ssh? yay I can IRC
19:54
<@froztbyte>
which has saved my ass a number of times
19:54
< RichyB>
ToxicFrog|W`rkn: cool.
19:54
<&ToxicFrog|W`rkn>
ZNC, xchat or irssi on top of that.
19:55
<&McMartin>
R: ... because irssi has been rock-solid for me for something like seven years.
19:55
<&McMartin>
ssh, screen, irssi.
19:56
<&McMartin>
In those seven years the only way I've ever made it fail is by corrupting its config file into something unparseable.
20:02
<@Azash>
irssi may be EOL but it is a very good client
20:02
<@Azash>
I've used it for 4-5 years and have only had one complaint so far
20:03
<@Azash>
Which was something like.. Not being able to make hilights specific to certain networks (certain channels is possible to do)
20:03
<@Tamber>
Wait, irssi is EOL? What?
20:05
< RichyB>
The last patch in irssi's svn was recorded 2012-06-24.
20:05
<@Namegduf>
It has been 2 years since the last release on irssi.org.
20:05
<@Tamber>
Huh
20:05
<@Namegduf>
Or the last news-announced one, anyway.
20:06
<@Namegduf>
It's also plausibly EOL in the other sense.
20:06
<@Namegduf>
I understand its code is not precisely excellent.
20:12 Kindamoody|out is now known as Kindamoody
20:51 Kindamoody is now known as Kindamoody[zZz]
20:56 Vornicus [vorn@ServerAdministrator.Nightstar.Net] has joined #code
20:56 mode/#code [+qo Vornicus Vornicus] by ChanServ
21:04 Harrower is now known as ErikMesoy
21:33 Maze is now known as EvilDarkLord
21:50
<@[R]>
<[> i think this one PM likes to hold meetings to replicate a social life, in true dilbert coworker fashion
21:54 ErikMesoy is now known as ErikMesoy|sleep
23:04 Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving]
23:30 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
--- Log closed Wed Apr 24 00:00:19 2013
code logs -> 2013 -> Tue, 23 Apr 2013< code.20130422.log - code.20130424.log >

[ Latest log file ]