--- Log opened Thu Feb 01 00:00:18 2007 |
00:14 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #code |
00:18 | | Raif [~corvusign@Nightstar-22484.hsd1.ca.comcast.net] has quit [Connection reset by peer] |
00:38 | | Raif [~corvusign@Nightstar-22484.hsd1.ca.comcast.net] has joined #Code |
00:38 | | mode/#code [+o Raif] by ChanServ |
00:43 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:44 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
00:48 | | ChalcyGone is now known as Chalcedon |
00:51 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: ] |
00:51 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:51 | | mode/#code [+o Chalcedon] by ChanServ |
00:52 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Connection reset by peer] |
00:53 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
00:53 | | mode/#code [+o Chalcedon] by ChanServ |
01:49 | | Vornicus-Latens is now known as Vornicus |
02:02 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
02:02 | | mode/#code [+o Chalcy] by ChanServ |
02:04 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:06 | | Chalcy is now known as Chalcedon |
02:25 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
02:25 | | mode/#code [+o Chalcy] by ChanServ |
02:26 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:29 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
02:30 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:34 | | ChalcyGone [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
02:48 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
02:48 | | mode/#code [+o Chalcedon] by ChanServ |
03:12 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has quit [Connection reset by peer] |
03:20 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has joined #Code |
03:27 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has quit [Quit: ] |
04:06 | | MahalWork is now known as Mahal |
04:58 | | ReivWork [~reaverta@IRCop.Nightstar.Net] has joined #Code |
04:59 | | ReivWork is now known as Reiver |
05:52 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has joined #Code |
05:52 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has quit [Quit: ] |
06:25 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has joined #Code |
06:44 | | Reiver is now known as ReivT-2 |
07:04 | | ReivT-2 [~reaverta@IRCop.Nightstar.Net] has quit [Quit: Rebooting. If I don't come back, I'm in #Nightstar as 'Reivus', my backup computer. Here goes nothing...] |
07:11 | | ReivWork [~reaverta@IRCop.Nightstar.Net] has joined #Code |
07:11 | | ReivWork is now known as Reiver |
08:18 | | You're now known as TheWatcher |
08:41 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Quit: ] |
09:51 | | Mahal is now known as MahalBedd |
10:15 | | Reiver is now known as ReivZzz |
10:19 | | Ishtralimnar [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code |
--- Log closed Thu Feb 01 10:19:51 2007 |
--- Log opened Thu Feb 01 15:54:24 2007 |
15:54 | | TheWatcher [~chris@Nightstar-29731.dsl.in-addr.zen.co.uk] has joined #code |
15:54 | | Irssi: #code: Total of 13 nicks [6 ops, 0 halfops, 0 voices, 7 normal] |
15:54 | | mode/#code [+o TheWatcher] by ChanServ |
15:54 | | Irssi: Join to #code was synced in 23 secs |
16:11 | | ReivZzz [~reaverta@IRCop.Nightstar.Net] has quit [Ping Timeout] |
17:13 | | You're now known as TheWatcher[afk] |
17:31 | | AnnoDomini [~farkoff@Nightstar-29686.neoplus.adsl.tpnet.pl] has quit [Ping Timeout] |
17:34 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has joined #Code |
17:38 | | Reiver [~reaverta@IRCop.Nightstar.Net] has joined #Code |
17:38 | | mode/#code [+o Reiver] by ChanServ |
17:39 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout] |
17:40 | | Serah [~-@Nightstar-28403.proxy2.balk.dk] has joined #Code |
17:48 | | Reiver is now known as ReivWork |
17:50 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code |
18:06 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
18:06 | | mode/#code [+o Chalcedon] by ChanServ |
18:14 | | MahalBedd is now known as Mahal |
18:24 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has quit [Quit: Juffo-Wup is a *candle*. It is filled with many *candy bars*.] |
18:36 | | Mahal is now known as MahalWork |
18:49 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has joined #Code |
18:52 | | You're now known as TheWatcher |
18:55 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has quit [Quit: Back to trying to fix the bloody thing.] |
19:03 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has joined #Code |
19:05 | | Syloq [Syloq@NetAdmin.Nightstar.Net] has joined #code |
19:07 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has quit [Quit: Juffo-Wup is a *candle*. It is filled with many *candy bars*.] |
19:09 | | AnnoDomini [~farkoff@Nightstar-29567.neoplus.adsl.tpnet.pl] has joined #Code |
20:00 | | Syloq is now known as Syloqs-AFH |
20:21 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has joined #Code |
20:21 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has quit [Client exited] |
20:47 | | Serah [~-@Nightstar-28403.proxy2.balk.dk] has quit [Quit: Don't try to read the quit message, that is impossible. Instead only realize the truth; "there is no quit message" and you will see it is not you who read the quit message but the quit message who reads you.] |
20:56 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
20:56 | | mode/#code [+o Chalcy] by ChanServ |
20:57 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
20:59 | | Janus [~Cerulean@Nightstar-10302.columbus.res.rr.com] has joined #Code |
20:59 | | Chalcy is now known as Chalcedon |
21:24 | | Serah [~-@87.72.36.ns-26407] has joined #Code |
21:32 | | Vornicus-Latens is now known as Vornicus |
21:33 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has quit [Ping Timeout] |
21:45 | | EvilDarkLord [althalas@Nightstar-15301.a88-115-211-62.elisa-laajakaista.fi] has joined #code |
22:02 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:02 | | mode/#code [+o Chalcy] by ChanServ |
22:03 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))] |
22:03 | | Chalcy is now known as Chalcedon |
22:08 | | gnolam [Lenin@Nightstar-13557.8.5.253.se.wasadata.net] has quit [Quit: Sleep. Or something.] |
22:10 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:10 | | mode/#code [+o Chalcy] by ChanServ |
22:11 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Killed (NickServ (GHOST command used by Chalcy))] |
22:11 | | Chalcy is now known as Chalcedon |
22:13 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has joined #Code |
22:20 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:20 | | mode/#code [+o Chalcy] by ChanServ |
22:21 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
22:22 | | Chalcy is now known as Chalcedon |
22:23 | | BlueTiger [BlueTiger@Nightstar-567.natsoe.res.rr.com] has quit [Quit: ] |
22:35 | | You're now known as TheWatcher[T-2] |
22:38 | | You're now known as TheWatcher[zZzZ] |
22:47 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:47 | | mode/#code [+o Chalcy] by ChanServ |
22:48 | | Chalcedon [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
22:49 | | Chalcy is now known as ChalcyOut |
22:55 | | Chalcy [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has joined #code |
22:55 | | mode/#code [+o Chalcy] by ChanServ |
22:56 | | ChalcyOut [~Chalceon@Nightstar-869.bitstream.orcon.net.nz] has quit [Ping Timeout] |
23:03 | <@McMartin> | "At my local Barnes and Noble, there is a huge wall of Java books just waiting to tip over and crush me one day. And one day it will. At the rate things are going, one day that bookcase will be tall enough to crush us all. It might even loop the world several times, crushing previous editions of the same Java books over and over again." |
23:04 | | * AnnoDomini chuckles. |
23:06 | < Vornicus> | heh |
23:06 | < Vornicus> | There are quite a lot of Java books. |
23:07 | <@McMartin> | I want to take all the people that made it necessary to make "POJOs" a buzzword, and beat them all to death with pottery while they drown in boiling oil. |
23:08 | < Vornicus> | pojos? |
23:08 | <@McMartin> | OK, so |
23:08 | < Vornicus> | plain old java objects? |
23:08 | <@McMartin> | There are all this ridiculous, massively heavyweight, cumbersome middleware frameworks out there, right? |
23:08 | < Vornicus> | I know them, yes. |
23:08 | <@McMartin> | And lots of them are being deployed because they'd like to associate a bunch of, say, strings with one another as a single record. |
23:09 | <@McMartin> | So, the standard thing to do when programming is to define a class with a bunch of String members. |
23:09 | <@McMartin> | But large corporations would not do this! |
23:09 | <@McMartin> | Until they started being called "POJOs". |
23:09 | <@McMartin> | Then it became very popular to do this! |
23:09 | <@McMartin> | Thus, beatings and drownings. |
23:09 | | * Vornicus would just rather say "look up the db schema and build me some classes. Oh, and then add these methods to them" |
23:10 | <@McMartin> | Yeah, but Java's statically typed. |
23:10 | < Vornicus> | yeah |
23:10 | <@McMartin> | Most of the ridiculously cumbersome systems were ways to do that anyway. |
23:10 | | * jerith would rather say "Minions! Write me some code!" :-P |
23:10 | <@McMartin> | If you're going to do what you describe in Java conveniently, one uses hashmaps. |
23:11 | < Vornicus> | Except for the whole plurals thing, this is what activerecord does. |
23:11 | <@McMartin> | Or runs an external script to make classes that mimic the DB schema, once. |
23:11 | < Vornicus> | but |
23:11 | | * McMartin has no real issues with Hibernate, except for Gratuitous XML Usage. |
23:12 | | * jerith used introspection in PHP the other day. Now *there* is a language that needs to be drawn and quartered. |
23:12 | <@McMartin> | Java's introspection techniques are just hard enough to use that people will only use them when they really, really mean it. |
23:12 | < Vornicus> | oh, god, php |
23:12 | <@jerith> | JAXB and friends must die horrible fiery deaths, though. |
23:12 | < Vornicus> | jaxb? |
23:13 | <@jerith> | Generates classes from an XSD. |
23:13 | < Vornicus> | aha |
23:14 | | * McMartin has reached the conclusion that XML is OK as long as nobody ever has to look at it and it only hits the disk compressed. |
23:14 | <@jerith> | Except if you want to handle multiple versions of a schema, say for API beckwards compatability... |
23:14 | <@McMartin> | ... and as long as it's not being used for internal communciation. |
23:15 | <@jerith> | You now have a bunch of different versions of the same classes. And you need to duplicate code for all of them. |
23:15 | <@ToxicFrog> | Using XML for internal communication is something that has resulted in (metaphorical) beatings at work. |
23:16 | <@McMartin> | The cost of XML parsing is trivial compared to, say, loading a file |
23:16 | <@McMartin> | But that's all it's trivial in comparison to. |
23:16 | <@jerith> | We use XML-RPC in a few places. That's between different subsystems on different boxen, though. |
23:16 | <@McMartin> | If there's Real I/O Happening, it's probably not an issue. |
23:17 | <@ToxicFrog> | jerith: in that case, the network overhead probably swamps the XML overhead unless you're doing lots of it on a fast pipe. |
23:17 | <@jerith> | And we mostly use it because (a) it's a minimal subset of XML and (b) we already had the libraries. |
23:17 | | * McMartin certainly doesn't mind config files being written in it, because then he can just throw it at his zomgHAX library and win. |
23:17 | <@ToxicFrog> | (See, this is why I like using Lua tables instead, but you can't safely use them over the network ;.;) |
23:17 | <@McMartin> | (HAX: Half-Assed XML) |
23:17 | <@ToxicFrog> | Hee |
23:18 | <@McMartin> | (Simple Python library I wrote that turns an XML DOM into a bunch of nested hashes) |
23:18 | | * ToxicFrog nods |
23:18 | <@McMartin> | (lossy, though. Hence the Half-Assed.) |
23:18 | <@ToxicFrog> | The thing about lua tables is that you already have the parser, for free, and it's already both size- and speed-optimized as well. |
23:18 | <@jerith> | XPath makes XML usable, though. |
23:19 | <@ToxicFrog> | The drawback is that you can't use it in any place where untrustworthy data could be inserted. |
23:19 | <@McMartin> | Command injection everywhere! |
23:19 | <@ToxicFrog> | McMartin: well, protecting against command injection is trivial. |
23:19 | <@McMartin> | jerith: minidom is nice too. |
23:19 | <@McMartin> | I haven't used XPath. |
23:19 | <@ToxicFrog> | It's protecting against [[ while true do end ]] that raises problems. |
23:19 | <@McMartin> | By "command" here I meant "Lua commands" |
23:20 | <@ToxicFrog> | If by commands you include function calls, my point stands. |
23:20 | <@ToxicFrog> | If you just mean keywords, yes. |
23:20 | <@McMartin> | Oh, right, you have to forcibly import "builtins"~ |
23:20 | <@ToxicFrog> | You can protect against any exploitation, invocation or alteration of the host state, but not against infinite loops. |
23:20 | <@ToxicFrog> | No you don't. |
23:20 | <@ToxicFrog> | Builtins are, well, built in. |
23:20 | <@McMartin> | Er |
23:20 | <@McMartin> | Let's try that again |
23:21 | <@McMartin> | You have to forcibly import any interesting functions. |
23:21 | <@jerith> | McMartin: You do things like "foo/bar/text()" to get the text contents of <foo><bar>...</bar></foo>. |
23:21 | <@ToxicFrog> | I would contest that, as I find the standard string library quite interesting, but let's just let it slide. |
23:21 | <@McMartin> | Jerith: Aha. That is rather nice. |
23:21 | <@ToxicFrog> | However, that's not what I was talking about either. |
23:21 | <@jerith> | Pretty powerful, too. |
23:21 | <@ToxicFrog> | Even if you already have everything imported, you can protect against this stuff: |
23:21 | <@ToxicFrog> | loader = loadstring(buffer) |
23:22 | <@ToxicFrog> | -- error handling here if buffer didn't parse |
23:22 | <@ToxicFrog> | setfenv(loader, {}) |
23:22 | <@ToxicFrog> | table = loader() |
23:22 | | * Vornicus just wants ActiveRecord. Maybe without the pluralizing, but he wants ActiveRecord. |
23:22 | <@ToxicFrog> | The setfenv gives loader an empty table as its global state, preventing it from calling, reading or writing anything but itself. |
23:23 | <@ToxicFrog> | However, if it contains an infinite loop, it will still livelock your program. |
23:23 | <@jerith> | $coworker was playing with lisp and XML -- he coverted the XML to s-expressions and wrote a "sexpath" library to query them. :-P |
23:23 | <@jerith> | (He mostly wrote the library to use the name...) |
23:23 | < Vornicus> | sad |
23:24 | <@ToxicFrog> | Note that since "require" is in fact a function and not a keyword, this prevents it from loading any additional libraries, too,. |
23:24 | <@jerith> | G'night all. |
23:56 | | Janus is now known as Jan[dinned] |
--- Log closed Fri Feb 02 00:00:07 2007 |