--- Log opened Wed Sep 19 00:00:09 2012 |
--- Day changed Wed Sep 19 2012 |
00:00 | <&McMartin> | The Design Patterns book is fairly well-grounded, in practice |
00:00 | <&McMartin> | But the people who *use* it... not so much |
00:00 | | You're now known as TheWatcher[T-2] |
00:00 | <&McMartin> | (Also, about half of it is "how to do functional programming in C++ or get the results of functional-programming-specific optimizations~) |
00:00 | <&Derakon> | Night, TW. |
00:01 | | * McMartin turns out to be deeply skeptical of the utility of OO outside of GUI domains and GUI-like problem spaces. |
00:01 | <&McMartin> | That's going farther than I *think* consensus does; most people would also consider OO natural for agent-like systems |
00:02 | <&Derakon> | Yeah, the device-handling portion of MUI uses objects out the wazoo. |
00:02 | <&Derakon> | Though it does so in a more bottom-up approach. |
00:02 | <&McMartin> | Right |
00:02 | <&McMartin> | My architectural instincts are much more strongly based on module-and-callback than classical OO *anyway* |
00:02 | <&Derakon> | Device modules are magically loaded (via reflection on the code repository!), and generate objects which are used to drive how the UI puts itself together. |
00:03 | | * McMartin nods |
00:03 | <&McMartin> | The two optimum points, IMO, are immutable data and smart data |
00:03 | <&McMartin> | And I have a certain preference for immutable or functionally so. |
00:04 | | * Derakon must vanish now. |
00:04 | <&Derakon> | Ta-ta. |
00:04 | | You're now known as TheWatcher[zZzZ] |
00:04 | | Derakon [chriswei@Nightstar-a3b183ae.ca.comcast.net] has quit [[NS] Quit: leaving] |
00:04 | | * McMartin *really* dislikes the coding style where the constructor does nothing but give you a minimally valid object and then methods mutate it into what you want later. |
00:06 | | * Vornicus hasn't seen that one. |
00:07 | <&McMartin> | It's more common in C++, where constructors are called implicitly at variable declaration time. |
00:08 | <~Vornicus> | ah. |
00:08 | <~Vornicus> | THis would make minimally-valid objects sensible to /have/ but honestly you should have more constructors floating around then! |
00:09 | <&McMartin> | Right |
00:09 | <&McMartin> | It's more that if you insist that constructors have all the data |
00:09 | <&McMartin> | Then you can't go |
00:09 | <&McMartin> | TypeName a, b, c; |
00:09 | <&McMartin> | You also can't inherit from TypeName without some dancing in the Constructor, and a few other things |
00:09 | <&McMartin> | The correct reaction to this objection is "tough shit" |
00:19 | <&ToxicFrog> | OO is also super popular for games, although entity-aspect seems to be catching on. |
00:19 | <&ToxicFrog> | And by "seems to be catching on" I mean "Looking Glass used it to great effect fifteen years ago and other game developers are just now writing breathless blog posts about how good it is" |
00:21 | <~Vornicus> | entity-aspect? |
00:24 | <&ToxicFrog> | Mixins, basically, but with the mixins controlled by external data and various optimizations in how mixin instance data is stored that improves data locality and threadsafety. |
00:25 | <&ToxicFrog> | Sometimes called entity-system (the Systems are those optimizations) or entity oriented programming. |
00:25 | <~Vornicus> | I see. |
00:26 | <&ToxicFrog> | So, rather than Robot extends Enemy extends NPC extends PhysicalObject extends Entity, Robot is {collidable,AIControlled[Robot],damageable,vulnerable[EMP]} |
00:26 | <&McMartin> | Games are both GUI-like and agent-like. |
00:26 | <&ToxicFrog> | The SS2 or Thief gamesys editor demonstrates this better than any post I've read on the subject,honestly~ |
00:26 | <&McMartin> | Heh |
00:27 | <&McMartin> | Anyway, entity/aspect is close to the functional approach of "chain of filters/transformers that you apply to your list of live objects" |
00:27 | <&McMartin> | Game Maker is very OO |
00:27 | <&McMartin> | Until you start writing scripts, at which point it becomes Procedural As Hell |
00:28 | <&ToxicFrog> | (the Big Wins I oft hear cited for this are the "object hierarchy" is trivially editable with external tools or even changeable at runtime; the "chain of filters" approach parallelizes well; and if you're making an MMO and thus have big iron to throw at it, the entire game state maps very naturally into a relational database) |
00:29 | < Reiv> | hmmm |
00:30 | < Reiv> | entity/aspect is something I have never heard of |
00:30 | < Reiv> | But it sounds very interesting indeed. |
00:30 | <&McMartin> | (Also, object hierarchies are Bad :colbert:) |
00:30 | <&McMartin> | (They're a performance hack on duck typing.) |
00:30 | <&ToxicFrog> | (well, yes) |
00:30 | <&McMartin> | (Or a constraint imposed by same) |
00:34 | <&McMartin> | Ugh |
00:34 | <&McMartin> | OK, one other place the "do minimal construction, config later" thing is needed: |
00:34 | <&McMartin> | When your language doesn't have flexible enough specifications. |
00:35 | | * McMartin finds himself adding just that to the dialog box class he's writing now, so that users can hook in their own callbacks. |
00:35 | <&McMartin> | Which requires exposing the underlying widgets. |
01:26 | | Derakon[AFK] is now known as Derakon |
01:48 | < gnolam> | Yay, university mirrors |
02:36 | | Attilla [Obsolete@Nightstar-2ddcc2f3.as43234.net] has quit [Ping timeout: 121 seconds] |
04:18 | | gnolam_ [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has joined #code |
04:20 | | gnolam [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has quit [Ping timeout: 121 seconds] |
04:21 | | gnolam_ is now known as gnolam |
04:51 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
05:04 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
05:04 | | mode/#code [+o himi] by ChanServ |
05:27 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
05:40 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
05:40 | | mode/#code [+o himi] by ChanServ |
06:49 | | Derakon is now known as Derakon[AFK] |
07:51 | | Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!] |
08:02 | | McMartin is now known as McMarrrtin |
09:10 | | You're now known as TheWatcher |
09:26 | | Attilla [Obsolete@Nightstar-2ddcc2f3.as43234.net] has joined #code |
09:55 | | Attilla [Obsolete@Nightstar-2ddcc2f3.as43234.net] has quit [Ping timeout: 121 seconds] |
09:55 | < Tarinaky_> | Anyone here any good with Javascript? |
09:57 | <@TheWatcher> | I'm mostly adequate, although there's a 50/50 chance my response is likely to be "you should be using (jQuery|Mootools)" ¬¬ |
09:57 | < Tarinaky_> | Trying to figure out http://imgs.xkcd.com/clickdrag/1110.js and work out what a valid example of http://imgs.xkcd.com/clickdrag/'+name+'.png" would look like. |
09:57 | < Tarinaky_> | I don't really know any js though so I'm struggling >.< |
09:57 | <@TheWatcher> | 1n1e.png |
09:58 | <@TheWatcher> | 5s7w.png |
09:58 | <~Vornicus> | it goes up to 48e, 33w, uh... I don't know the limits on the other two directions. |
09:58 | <@TheWatcher> | etc |
09:58 | < Tarinaky_> | Ah,hah. |
09:58 | <@TheWatcher> | Vprn: 13n, 19s |
09:58 | <@TheWatcher> | *Vorn |
09:59 | <~Vornicus> | var size=[14,48,25,33]; <--- that looks like something. |
09:59 | < Tarinaky_> | I'm getting 404 for 5s7w. |
09:59 | <@TheWatcher> | yeah, it's a sparse map |
09:59 | <~Vornicus> | Tarinaky_: locations without anything in them are replaced with white above sea level and black below. |
09:59 | | Attilla [Obsolete@Nightstar-2ddcc2f3.as43234.net] has joined #code |
10:00 | < Tarinaky_> | Makes snese. |
10:00 | < Tarinaky_> | *sense |
10:01 | < Tarinaky_> | Wanted to find out if there was anything in space. |
10:01 | < Tarinaky_> | Since there's a lot of stuff eluding to it but nothing a reasonable height up >.< |
10:02 | <~Vornicus> | rockets, balloons... |
10:02 | <~Vornicus> | [04:52:58] <@TheWatcher> http://www.wickedglitch.com/2012/09/full-low-res-image-spoiler-map-xkcds-click-a nd-drag/ has a low-res composite |
10:02 | < Tarinaky_> | Two people looking up asking if there's anything up there. |
10:04 | <~Vornicus> | Giant jellyfish just up-right of the birdwatchers |
10:04 | | * TheWatcher is also in the process of constructing a full-size composite |
10:04 | <~Vornicus> | Note that a fullsize composite is 170k pixels wide and about half that tall. |
10:05 | <~Vornicus> | Sleep for really. |
10:07 | < Tarinaky_> | The aircraft are just impossible to find >.< |
10:18 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
10:21 | < Tarinaky_> | http://imgs.xkcd.com/clickdrag/9n2e.png :D |
10:34 | <@TheWatcher> | damnjoo work, getting in the way of my messing around |
10:44 | | McMarrrtin [mcmartin@Nightstar-b7749e07.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
10:45 | | McMarrrtin [mcmartin@Nightstar-a45feb2c.pltn13.sbcglobal.net] has joined #code |
10:49 | <@TheWatcher> | There, images into sane x/y rather than n/e/s/w naming, now to see if GD freaks about a 165888x65536 image |
10:50 | <@TheWatcher> | (I suspect it may not be happy, as that's, what 32GB?) |
10:57 | | McMarrrt1n [mcmartin@Nightstar-3895ee8e.pltn13.sbcglobal.net] has joined #code |
11:00 | | McMarrrtin [mcmartin@Nightstar-a45feb2c.pltn13.sbcglobal.net] has quit [Ping timeout: 121 seconds] |
11:02 | <@TheWatcher> | ... yeeah, not happening. |
12:08 | < froztbyte> | http://iclub.site40.net/xkcd.html |
12:08 | < froztbyte> | has it all |
12:12 | < Nemu> | Seems like a bit of a hack-job, that site. It's either not very efficient, or it's bandwidth got nerfed from everyone linking it. |
12:12 | < Nemu> | *its |
12:12 | < Nemu> | I wonder if XKCD is /. |
12:12 | < froztbyte> | yeah, it's not very efficient |
12:13 | < froztbyte> | seems to load all of the images |
12:13 | < froztbyte> | http://www.potch.me/blog/press-and-hold.html is cool too |
12:17 | <@TheWatcher> | Someone should make a platformer out of it (notmehellnonotime) |
12:25 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
12:38 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
12:38 | | mode/#code [+o himi] by ChanServ |
13:23 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds] |
13:29 | < froztbyte> | http://xkcd-map.rent-a-geek.de/ |
13:32 | <@TheWatcher> | Heh, neat |
13:36 | | himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code |
13:36 | | mode/#code [+o himi] by ChanServ |
14:37 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection closed] |
14:39 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
15:00 | < gnolam> | Random game idea of the day: lunar rover racing. Racing with a 2 1/2 second delay! |
17:03 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Client closed the connection] |
17:03 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code |
17:43 | | gnolam [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has quit [[NS] Quit: Brb] |
18:46 | | gnolam [lenin@Nightstar-ccbf4b44.cust.bredbandsbolaget.se] has joined #code |
19:00 | < AnnoDomini> | What's the Linux equivalent to Wordpad on Windows? I mean something more than Notepad, but less than Word. |
19:02 | <@TheWatcher> | gedit? |
19:03 | < AnnoDomini> | gedit is the Notepad equivalent. |
19:04 | < AnnoDomini> | It has no formatting that I can detect. |
19:04 | < RichyB> | gedit's a plain-text editor. |
19:04 | <@TheWatcher> | or kwrite? |
19:05 | < RichyB> | (albeit it has syntax highlighting for a few dozen programming languages) |
19:05 | < RichyB> | Abiword works. |
19:05 | < RichyB> | I don't know about Kwrite |
19:05 | < AnnoDomini> | kwrite looks much the same as gedit. |
19:06 | < AnnoDomini> | Is Abiword Java-based? |
19:07 | < RichyB> | I'm almost certain that the answer is no. |
19:08 | <@TheWatcher> | No, it's c++ |
19:08 | < AnnoDomini> | Excellent! |
19:08 | < RichyB> | Indeed. Rather, it uses GLib and GTK. |
19:09 | < RichyB> | The installation with all deps comes to like 30MB, assuming you already have anything else GTK-based installed (like, say... firefox) |
19:10 | < RichyB> | Oh wow, that starts up in less time than my WM's excitable "a new window opened! Look!" animation takes to run. :) |
19:11 | < AnnoDomini> | This'll take a while on by bandwidth-limited cell connection. |
19:21 | < AnnoDomini> | Hahaha! Abiword dispenses with the kids-nowadays-won't-recognize saving icon. |
19:21 | | * Tamber grumbles, replaces it with a magnetic tape. :p |
19:22 | <@Tamber> | (What does it actually use?) |
19:22 | < AnnoDomini> | The image of a hard disk. |
19:22 | <@Tamber> | Huh. |
19:23 | <@Tamber> | So they've swapped it from something kids nowadays have never seen -- except in the save button -- for something that kids nowadays have most likely never seen, because it's inside the magic box! |
19:23 | | * Tamber ducks |
19:25 | | Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code |
19:25 | | mode/#code [+o Vash] by ChanServ |
19:53 | | McMarrrt1n is now known as McMartin |
19:53 | | mode/#code [+ao McMartin McMartin] by ChanServ |
21:42 | | RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving] |
22:12 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has quit [Ping timeout: 121 seconds] |
22:13 | | Derakon[AFK] [Derakon@Nightstar-a3b183ae.ca.comcast.net] has joined #code |
--- Log closed Thu Sep 20 00:00:53 2012 |