--- Log opened Fri Mar 06 00:00:44 2015 |
00:44 | | Derakon[AFK] is now known as Derakon |
02:01 | | iospace [Alexandria@Nightstar-fkokc2.com] has quit [Connection closed] |
02:24 | | iospace [Alexandria@Nightstar-fkokc2.com] has joined #code |
02:24 | | mode/#code [+o iospace] by ChanServ |
02:28 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [[NS] Quit: If I had a world of my own, everything would be nonsense. Nothing would be what it is because everything would be what it isn't. And contrary-wise; what it is it wouldn't be, and what it wouldn't be, it would. You see?] |
02:29 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
02:29 | | mode/#code [+o Checkmate] by ChanServ |
02:50 | | Turaiel[Offline] is now known as Turaiel |
03:18 | | Xires is now known as ^Xires |
03:24 | | ^Xires is now known as Xires |
03:45 | <&McMartin> | Hmmm. |
03:46 | | * McMartin revisits his old notes on "Design Patterns are software architects admitting, then working around, the fact that their languages don't have features that they want/need" |
03:46 | <&McMartin> | Some of these are actually more like koans, I think. |
03:46 | <&McMartin> | "If you have to remind yourself to use this pattern, it means you are making a deep and consistent error in your thinking all the time and need to be smacked in the head with a counterexample" |
03:47 | <&McMartin> | Also, I still don't have a capsule summary of singletons that's better than "global variables are terrible! Let's remove them from our program and then reintroduce them in a more complicated way!" |
03:48 | <&McMartin> | ("Singletons let you do lazy initialization", I hear you say. So do properly structured/encapsulated globals.) |
03:48 | <&Derakon> | Mm, I think it's a matter of implications. |
03:48 | <&Derakon> | A global variable is hard to track because it may be modified in any context. |
03:49 | <&Derakon> | A singleton is a local master of its own domain and all modifications to it should be done within its own code. |
03:49 | <&McMartin> | Right |
03:49 | <&McMartin> | So, let's talk Python |
03:49 | <&Derakon> | The implication, to me, of a global variable is that it is something like, say, the player's location, which may be modified anywhere in the code. |
03:49 | <&McMartin> | I'm going to claim "you should never write anything in Python that looksl ike a Java singleton" |
03:49 | <&Derakon> | Whereas the player singleton would have a method "updatePosition" to accomplish the same thing. |
03:49 | <&McMartin> | "Instead, you should have a variable local to a module, and that module exports the function "updatePosition" or whatever" |
03:50 | <&McMartin> | This is complicated a bit because Python, where modules, objects, and dictionaries blur the lines between one another to terrifying degrees~ |
03:50 | <&Derakon> | Sounds reasonable to me. The module effectively is the singleton then. |
03:51 | <&Derakon> | Anyway, I gotta go, so sorry I can't partake in this conversation. |
03:51 | | Derakon is now known as Derakon[AFK] |
03:57 | <~Vornicus> | "blur the lines between one another to terrrifying degrees" -- more like "all three of these are actually dictionaries" |
03:58 | <&McMartin> | I believe type() disagrees |
04:00 | <&McMartin> | But yeah |
04:21 | | Vash [Vash@Nightstar-uhn82m.ct.comcast.net] has quit [[NS] Quit: Quit] |
04:23 | <~Vornicus> | It does, but type() is explicitly built to be fooled~ |
04:33 | <&McMartin> | Modules, objects, classes, and dictionaries |
04:33 | <&McMartin> | Actually, thinking about it more |
04:33 | <&McMartin> | My objection is less "why are you having an singleton" and more "why are you *instantiating* your singleton instead of using statics" |
04:34 | <&McMartin> | ("Because what if I later decide to have more than one?" "THIS IS A SINGLETON, RIGHT?") |
04:36 | <~Vornicus> | Yeah, if I have a single thing, I'm going to go "this is my thing, refer to it", not "you need a thing? make it and you'll get the existing one" |
04:52 | <&McMartin> | Especially since there are three other patterns designed to break the notion of "make it" meaning "allocate and completely initialize a guaranteed-brand-new block of memory of exactly type X" |
04:52 | <&McMartin> | To the level of hilarity. |
04:52 | <&McMartin> | Builder, which I now finally understand what they were saying, gets filed with Composite |
04:53 | <&McMartin> | In the bin marked "If you had to be reminded that this was a thing STOP MAINLINING THE KOOL-AID, FUCK'S SAKE, IT ISN'T EVEN *GOOD* KOOL-AID" |
05:07 | <~Vornicus> | I don't remember what builder is |
05:08 | <&McMartin> | ANAICT it is literally a factory method that configures the object some more post-construction but pre-return |
05:09 | <&McMartin> | If this is in any way a pattern to you you must have your head fucking explode when handed the problem "I want two objects each of which refer to each other." |
05:09 | <&McMartin> | And possibly "I want to do this one thing and then do another thing afterwards" |
05:09 | <~Vornicus> | One thing I've been seeing lately, now that I'm working on a game-oid at work, is "don't delete those Xs, you're going through them like they're going out of style. Instead, have a pool of them" |
05:10 | <&McMartin> | That doesn't even make the GoF list =( |
05:10 | <~Vornicus> | Not having such a pool caught me out; gc was introducting noticeable stutter. |
05:11 | <&McMartin> | Fun fact: when you compiled early versions of UQM under early versions of libc or msvcrt, we used to malloc our draw commands |
05:11 | <&McMartin> | We'd actually fragment memory so hard that you couldn't malloc 20 bytes. |
05:11 | <&McMartin> | (We shifted to a single allocated ring queue re-assigned as needed) |
05:12 | <&McMartin> | (But those are C/C++ notions of objects, and those are kind of alien to the Java/Smalltalk model) |
05:13 | <~Vornicus> | I never thought I'd have to resort to fooling the gc, but there you are |
05:15 | <&McMartin> | What language is this? |
05:15 | <~Vornicus> | javascript. |
05:15 | | * McMartin nods |
05:18 | <~Vornicus> | though in that I ended up using a sort of halfway system |
05:19 | <~Vornicus> | I was doing, uh - Fix Your Timestep stuff, where you interpolate between old and new physics steps to find the right thing to display. so every physics frame and every graphics frame created a new object for every actual game object. |
05:21 | <~Vornicus> | I then switched to a thing where objects would swap old & new and rejigger, and load their interpolation into a third, so it's just the same three objects all the time |
05:22 | | Red_Queen [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
05:22 | | mode/#code [+o Red_Queen] by ChanServ |
05:23 | | Serah [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
05:23 | | Red_Queen [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Connection closed] |
05:24 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
05:40 | | himi [fow035@Nightstar-dm0.2ni.203.150.IP] has quit [Ping timeout: 121 seconds] |
05:45 | | Vornicus [vorn@ServerAdministrator.Nightstar.Net] has quit [[NS] Quit: Leaving] |
05:52 | | Turaiel is now known as Turaiel[Offline] |
06:17 | | Serah [Z@Nightstar-g2q2tu.customer.tdc.net] has quit [Ping timeout: 121 seconds] |
06:35 | | Kindamoody[zZz] is now known as Kindamoody |
07:34 | | celticminstrel is now known as celmin|sleep |
08:57 | | Kindamoody is now known as Kindamoody|afk |
09:08 | | Orthia [orthianz@Nightstar-2iidbq.callplus.net.nz] has quit [Ping timeout: 121 seconds] |
09:12 | | Orthia [orthianz@Nightstar-eii.p2r.98.101.IP] has joined #code |
09:12 | | mode/#code [+o Orthia] by ChanServ |
10:26 | | Derakon[AFK] [chriswei@Nightstar-5fqf0m.ca.comcast.net] has quit [Operation timed out] |
10:32 | | * Tarinaky_ headdesks |
10:37 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has joined #code |
10:37 | | mode/#code [+ao Derakon Derakon] by ChanServ |
11:31 | < Tarinaky_> | I hate RTFSing |
12:09 | | himi [fow035@Nightstar-v37cpe.internode.on.net] has joined #code |
12:09 | | mode/#code [+o himi] by ChanServ |
12:41 | <@froztbyte> | ? |
12:41 | <@froztbyte> | why |
12:42 | <@Shiz> | because the source is probably shit |
12:45 | < RchrdB> | because it means someone couldn't even explain themselves in fucking javadoc |
12:45 | < RchrdB> | and anything which is difficult to explain is probably shit |
12:57 | | celmin|sleep [celticminst@Nightstar-gmujup.dsl.bell.ca] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!] |
13:43 | < Tarinaky_> | Documentation is good. |
13:44 | < Tarinaky_> | That's enough reason to dislike not having documentation. |
13:55 | <@Shiz> | tbf i wouldn't want to explain myself in javadoc either |
13:59 | < Tarinaky_> | ... |
13:59 | < Tarinaky_> | Why? |
14:07 | | celticminstrel [celticminst@Nightstar-gmujup.dsl.bell.ca] has joined #code |
14:07 | | mode/#code [+o celticminstrel] by ChanServ |
14:13 | | Orthia [orthianz@Nightstar-eii.p2r.98.101.IP] has quit [Ping timeout: 121 seconds] |
14:18 | | Orthia [orthianz@Nightstar-97s.8ka.224.119.IP] has joined #code |
14:18 | | mode/#code [+o Orthia] by ChanServ |
14:48 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has joined #code |
14:48 | | mode/#code [+o Checkmate] by ChanServ |
16:24 | | gizmore [kvirc@Nightstar-usvnfd.pools.vodafone-ip.de] has quit [Ping timeout: 121 seconds] |
16:45 | < abudhabi> | Trying to generate a useable image out of gramps on Linux these days is a hassle. |
16:46 | < abudhabi> | I generate a .gv file, which I open in xdot and with great care export to an .svg file, which I open in Inkscape and export to .png |
16:46 | < abudhabi> | I don't know why the hell export to PNG directly was dropped from gramps. |
16:56 | <&ToxicFrog> | Can't you just install imagemagick and 'convert foo.gv foo.png'? |
16:57 | <&ToxicFrog> | (also, what's gramps?) |
17:08 | < abudhabi> | Didn't realize imagemagick could read .gv |
17:08 | < abudhabi> | The format appeared to be super-obscure. |
17:08 | < abudhabi> | (Genealogy program.) |
17:14 | | Derakon [chriswei@Nightstar-5fqf0m.ca.comcast.net] has quit [Operation timed out] |
17:23 | <&ToxicFrog> | abudhabi: I don't know that it can, but it seems worth at least investigating. |
17:24 | <&ToxicFrog> | Especially if .gv is actually .ps, which seems likely |
17:34 | < abudhabi> | .gv seems actually to be .dot |
17:36 | < RchrdB> | I'm pretty sure graphviz exports to raster formats these days. |
17:36 | < RchrdB> | "dot -Tpng ..." |
17:37 | < abudhabi> | I think that's what xdot uses to convert. The results of xdot and that command were the same, except I could set options more easily in xdot. |
17:38 | < abudhabi> | For some reason, printing to file couldn't do such things as selecting paper orientation. |
17:38 | < RchrdB> | I'm be surprised if ImageMagick would render graphviz files directly, but recent-ish versions seem to have okay support for SVG. |
18:35 | | Alek [omegaboot@Nightstar-03ja8q.il.comcast.net] has quit [Ping timeout: 121 seconds] |
18:38 | < abudhabi> | ARGHLE. |
18:38 | | * abudhabi hates internet banking and payments. |
18:39 | < abudhabi> | There's a million services and standards and methods and it just so happens my combination fails to work. |
18:40 | | Alek [omegaboot@Nightstar-03ja8q.il.comcast.net] has joined #code |
18:40 | | mode/#code [+o Alek] by ChanServ |
19:11 | | * gnolam facepalms at his country's press. |
19:11 | <@gnolam> | Newspaper finally realizes that, oh hey, what with the mass surveillance now maybe they should let people communicate with them over encrypted mail. |
19:12 | <@gnolam> | So they publish their PGP keys. |
19:12 | < abudhabi> | Private keys? :P |
19:12 | <@gnolam> | Keys, plural. |
19:12 | <@gnolam> | As in both the public and private keys. >_< |
19:12 | < abudhabi> | Hahahaha. |
19:16 | <@Shiz> | beautiful |
19:16 | <@Wizard> | gnolam: Oh my lord |
19:16 | < abudhabi> | Were those keys something they've used before? |
19:18 | <&McMartin> | If they hadn't previously published their public keys, it didn't do anyone much good~ |
19:22 | < RchrdB> | This is the point where I bring up http://www.thoughtcrime.org/blog/gpg-and-me/ |
19:23 | <@Shiz> | this is the part where i ignore that |
19:24 | < RchrdB> | ;-; |
19:30 | <@gnolam> | I /think/ they were new. But I'm not sure. |
19:30 | <@gnolam> | (Sorry for the delay - someone just torched a car outside.) |
19:31 | <@Shiz> | that is |
19:31 | <@Shiz> | an interesting excuse |
20:52 | <@gnolam> | Bad neighborhood. |
20:52 | < abudhabi> | New Swedes? |
21:08 | | Checkmate [Z@Nightstar-484uip.cust.comxnet.dk] has quit [Ping timeout: 121 seconds] |
21:10 | <&McMartin> | Attn several people in this channel: http://arstechnica.com/information-technology/2015/03/hands-on-with-vivaldi-the- new-web-browser-for-power-users/ |
21:10 | <&McMartin> | Guy responsible for Old Opera trying to rebuild that experience, it seems |
21:13 | <&McMartin> | However, he seems to be doing in in Node.js so I do not have high hopes for it meeting Opera 12's footprint. |
21:14 | <@Namegduf> | Finally, a browser that is properly webscale. |
21:15 | <@Namegduf> | Seriously, though, it's a neat idea. |
21:15 | <@Namegduf> | I just wish that they had some strategy for making Blink not eat massive amounts of memory all the time. |
21:15 | <&McMartin> | Right, but my memory of the people who were sad when Opera went to shit were sad because their standard working set was like 400 tabs and Firefox gets super-slow around 50 or 60 |
21:19 | <@Tamber> | "Why would you ever keep that many tabs open?" "When your features work, your workflow expands to use them a lot more." |
21:19 | <&ToxicFrog> | p. much |
21:19 | <&McMartin> | I can't pick out one piece of text out of 800 with any reliability |
21:20 | <&ToxicFrog> | Although honestly my issues weren't so much with memory usage as with the new renderer having noticeably bad performance locally and being completely unusable over rdp or x-forwarding |
21:20 | <&McMartin> | Even assuming that I can go to a site simply by willing it, 800 tabs is not how I'd do it |
21:20 | <&ToxicFrog> | That said, my usual working set in opera was more like 50-60, and firefox would fall over around 20. |
21:22 | <&McMartin> | (The rise of URL autocomplete has generally meant that my current workflow is "type some of the URL, down arrow, enter") |
21:23 | < [R]> | <Tamber> "Why would you ever keep that many tabs open?" "When your features work, your workflow expands to use them a lot more." <-- a browser that actually realizes that workflow and improves upon it would be killer |
21:25 | <@Tamber> | McM: Sadly, for me, that becomes "type two letters, die of boredom waiting for the Awesome⢠Bar®© to catch the fuck up and let me type the rest of what I wanted" |
21:26 | < [R]> | I've found Awesome's speed to be vastly improved since it was introduced. |
21:26 | <@Namegduf> | I kind of think I would prefer a more intelligent recent history to tabs. |
21:26 | <@Namegduf> | My tabs just pile up. |
21:27 | < [R]> | Same |
21:27 | <@Namegduf> | And finding the one I want in them is hard. |
21:27 | <&McMartin> | Right. This is the "CLI vs GUI" thing which is why my tabset tends to cap at about 8 |
21:27 | <@Namegduf> | If I could kind of fluidly build sets of things and then view those sets... |
21:27 | <&McMartin> | (Also, Chrome's equivalent of the Awesome⢠Bar®© is way faster) |
21:27 | <@Namegduf> | SOmething like that. |
21:27 | <@Namegduf> | Yeah. |
21:27 | <&McMartin> | Hrm |
21:28 | < [R]> | It'd be nice if you could maybe tag tabs by "project" and have it unload the tabs (but keep them "open", much like FF does when recovering a session) when you're not working on that project. Then be able to list tabs by project. |
21:28 | <&McMartin> | Can you drag sets of tabs into "new window" with a gesture? |
21:28 | <&McMartin> | That seems like a nice operation. |
21:28 | <@Namegduf> | I'd like it if bookmark was replaced with some sort of "note" button. |
21:28 | <@Tamber> | I sorta treat my tabs as short-term bookmarks of related things, or trains of thought... something like that, anyway. |
21:28 | <@Namegduf> | And then I'd just navigate away. |
21:28 | <@Namegduf> | And have a bar at the top, perhaps, of recently noted pages. |
21:28 | < [R]> | I find Chrome's Awesome-clone to be annoying, as it'll reorder things the milisecond before I click. |
21:28 | <@Tamber> | Actual bookmarks aren't visibly in my face enough -- I have to bring down a menu -- to remind me of their existence; so I completely forget they exist. |
21:28 | <&McMartin> | Oh right, mice |
21:29 | <&McMartin> | (I always pick results with arrow keysO |
21:29 | <&McMartin> | (CONSOLITIS) |
21:29 | < [R]> | Actually, having the bookmark bar have a "bookmark current page into this folder" would be a vast improvement as well. |
21:32 | <@Namegduf> | I think I'd like some sort of basically transient "note" capacity with the ability to drag notes around and drag them on top of each other to make a group. |
21:33 | <@Namegduf> | Instead of bookmarks. I never use bookmarks. |
21:33 | <@Namegduf> | Google knows where all the stuff is. |
21:44 | | Kindamoody|afk is now known as Kindamoody |
21:50 | <&McMartin> | Aha, a name new to me for that ML approach to datastructures I like when represented in C. |
21:50 | <&McMartin> | "Discriminated Union" |
21:50 | <&McMartin> | (I'm used to hearing it named "tagged union") |
21:54 | | RchrdB [RichardB@Nightstar-v5j366.understood.systems] has quit [[NS] Quit: WeeChat 1.0.1] |
21:55 | | RchrdB [RichardB@Nightstar-v5j366.understood.systems] has joined #code |
23:02 | | Checkmate [Z@Nightstar-g2q2tu.customer.tdc.net] has joined #code |
23:02 | | mode/#code [+o Checkmate] by ChanServ |
23:15 | | Alek [omegaboot@Nightstar-03ja8q.il.comcast.net] has quit [Ping timeout: 121 seconds] |
23:15 | | Kindamoody is now known as Kindamoody[zZz] |
23:18 | | Alek [omegaboot@Nightstar-03ja8q.il.comcast.net] has joined #code |
23:18 | | mode/#code [+o Alek] by ChanServ |
--- Log closed Sat Mar 07 00:00:59 2015 |