--- 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 |