code logs -> 2012 -> Wed, 19 Sep 2012< code.20120918.log - code.20120920.log >
--- 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
code logs -> 2012 -> Wed, 19 Sep 2012< code.20120918.log - code.20120920.log >

[ Latest log file ]