code logs -> 2012 -> Thu, 09 Aug 2012< code.20120808.log - code.20120810.log >
--- Log opened Thu Aug 09 00:00:33 2012
00:00 You're now known as TheWatcher[T-2]
00:05 You're now known as TheWatcher[zZzZ]
00:16 io\gone is now known as iospace
00:59 Derakon[AFK] is now known as Derakon
01:34 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
01:35 mode/#code [+o himi] by ChanServ
02:11 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
02:15 Derakon is now known as Derakon[AFK]
02:16 Attilla [Obsolete@Nightstar-36d1ef0e.as43234.net] has quit [Ping timeout: 121 seconds]
02:50 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
03:37
<&McMartin>
Man. Look at all of these functions called in one place.
03:43
<&McMartin>
HOORAY
03:43
<&McMartin>
"Some people see a problem and think 'I know. I'll use Perl.' Now THEY ARE THE PROBLEM."
03:45
< ShellNinja>
I must fix the problems, yelled Johnny.
03:45
< ShellNinja>
No, Johnny, you are the problems.
03:45
< ShellNinja>
And Johnny was Perl.
04:23 iospace is now known as iospacedout
04:35 Derakon[AFK] is now known as Derakon
04:42 Kindamoody[zZz] is now known as Kindamoody
04:53
<~Vornicus>
thought that was php~
05:08
< rms>
if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) return 0; { // joys
05:08 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
05:30 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Client closed the connection]
05:31 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code
06:09 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code
06:09 mode/#code [+o Vash] by ChanServ
06:26
<~Vornicus>
Hm. Actually I'm not sure what I should use for this; I have ducks and they walk back and forth inside the buildings.
06:26
<~Vornicus>
And eventually get to the dock, where they jump in.
06:30
<~Vornicus>
THere's a number of set layouts for this - for instance, there's the one for the southeast house, with the cupola, the duck goes left through both floors of the cupola and then out onto the path and to the dock; then there's the one where it starts in the northwest house, going right in the top floor, then across the bridge, and through the second floor of the tower before appearing at the tower
06:30
<~Vornicus>
dock.
06:30 Kindamoody is now known as Kindamoody|afk
06:33
<~Vornicus>
This takes a set amount of time - I don't see any point in making complicated physics for them - but some ducks move at double speed.
06:34 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
06:34 mode/#code [+o himi] by ChanServ
06:40 Derakon is now known as Derakon[AFK]
06:55 FreefallGeek [FreefallGe@Nightstar-984e0962.cpe.cableone.net] has joined #code
06:55
< FreefallGeek>
Anyone here mess with the irc scripting language much?
06:56
< celticminstrel>
"the" irc scripting language?
06:56
< FreefallGeek>
I apologize.
06:56
<&McMartin>
IRC doesn't have a scripting language of its own; which client are you using?
06:56
< FreefallGeek>
I meant MIRC
06:56
< FreefallGeek>
mIRC, rather.
07:00
<~Vornicus>
I've done a little, but I'm not a guru by any measure
07:00
< FreefallGeek>
I just have a little something stupid that I'm curious about
07:01
< FreefallGeek>
if %variable == channel { set %firstchar $left(%option,1) | set %compare #
07:01
< FreefallGeek>
if (( %firstchar != %compare ) || ( %option == $null )) { msg %mainchan You must specify a valid channel starting with a pound sign (#). | msg %mainchan %firstchar %option | halt }
07:01
< FreefallGeek>
else { set %mainchan %option | msg %mainchan $+ %mainchan is the new channel of $me $+ ! | halt }
07:01
< FreefallGeek>
}
07:01
< FreefallGeek>
I've noticed you can't set a variable to '#' because '#' is evaluated as the name of the current channel.
07:02
< FreefallGeek>
Meaning it's hard to compare '#' against the first character in a channel name to verify it's a pound
07:02
< FreefallGeek>
now I could evaluate %firstchar using $asc and then compare that to the ascii number representing # to do the same thing.
07:02
< FreefallGeek>
But it seems like there should be an easier way to do what I'm trying to do.
07:03 Kindamoody|afk is now known as Kindamoody
07:04
<~Vornicus>
I suspect there's a way to escape #, one moment
07:07
<~Vornicus>
I can't find it though. Try putting a \ before it, that maay work
07:07
< FreefallGeek>
yeah i tried that. :)
07:07
< FreefallGeek>
no go
07:07
<~Vornicus>
I am uncertain
07:08
< FreefallGeek>
You did give me a good idea though
07:08
< FreefallGeek>
I have it solved now. :)
07:08
< FreefallGeek>
if %variable == channel { set %firstchar $left(%option,1) | set %compare $(#,)
07:08
< FreefallGeek>
if (( %firstchar != %compare ) || ( %option == $null )) { msg %mainchan You must specify a valid channel starting with a pound sign (#). | msg %mainchan %firstchar %option | halt }
07:08
< FreefallGeek>
else { set %mainchan %option | msg %mainchan $+ %mainchan is the new channel of $me $+ ! | halt }
07:08
< FreefallGeek>
}
07:08
< FreefallGeek>
Thanks Vorn.
07:09 * celticminstrel is uncertain what Vorn actually did here.
07:10
<~Vornicus>
wrapping it in $()? well done.
07:10
< FreefallGeek>
He said the word escape
07:11
< FreefallGeek>
And that got me thinking
07:11
< FreefallGeek>
that i was being stupid
07:20 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
08:09 FreefallGeek [FreefallGe@Nightstar-984e0962.cpe.cableone.net] has quit [[NS] Quit: ]
08:28 You're now known as TheWatcher
--- Log closed Thu Aug 09 09:05:59 2012
--- Log opened Thu Aug 09 09:25:12 2012
09:25 TheWatcher [chris@Nightstar-3762b576.co.uk] has joined #code
09:25 Irssi: #code: Total of 29 nicks [5 ops, 0 halfops, 0 voices, 24 normal]
09:25 mode/#code [+o TheWatcher] by ChanServ
09:25 Irssi: Join to #code was synced in 39 secs
09:37 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
10:08
<@TheWatcher>
Today is not going to be a good day
10:08
<@TheWatcher>
For today I have to work with email sending
10:11
< Reiv>
Hooray!
10:11
< Reiv>
Have fun
10:11
< Reiv>
... screaming
10:11
< Reiv>
>_>
10:12 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code
10:20
<@TheWatcher>
Even with Email::Sender I'm expecting the gibbering to start soon
10:34
<@Tamber>
Doomed.
11:06 * gnolam gets the urge to post That Talk again.
11:09
<@TheWatcher>
Yeah
11:12
<@TheWatcher>
Given that That Talk was given by the guy who maintains Email::Sender, it's about the first thing I thought of
11:14
<@TheWatcher>
(I have the very slight advantage that I'm not parsing mails, just sending them, but still... I expect by the end of today I will be trying to track down the addresses of the email RFC authors and trying to find launch codes...)
11:39
< froztbyte>
Which Talk?
11:43
<@TheWatcher>
https://www.youtube.com/watch?v=JENdgiAPD6c
11:44
<@TheWatcher>
Email: hates the living!
11:47
<@TheWatcher>
(it is a very funny, and yet simultaneously enraging and depressing discussion of how it is actually impossible to program anything to do with email correctly, because email is fundamentally broken at all levels)
11:48
<@TheWatcher>
(because the people responsible for it are fucking idiots who happily bolted on kludge after hack after stupid idea until there are places where the specs are actually contradictory or even impossible)
12:01 Nemu [NeophoxProd@Nightstar-6a7027c0.asahi-net.or.jp] has joined #code
12:02 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
12:14
< froztbyte>
there's a lot of asiatic characters in my browsers
12:16
< froztbyte>
but I'll check it out in a few minutes when I'm done reverse-engineering this clusterfuck my coworker caused
12:16 Reiver [Reiver@5B433A.3CF6C7.5F9F62.5EF979] has quit [[NS] Quit: ]
12:52
< Rhamphoryncus>
Haw. So.. C++ supports signalling nans. However, as soon as you do anything with it, including printing, it triggers the FPE handler that by default replaces it with a quiet nan
12:52
< Rhamphoryncus>
It has a defined representation, but by default it's inaccessible
12:52
< Rhamphoryncus>
And no, the docs I've looked at haven't mentioned this. Instead it's all the discussions that mention it
12:58 * TheWatcher hates all over DST
13:05
< RichyB>
You can't reinterpret_cast<> to get at the raw bits of the NaN?
13:07 * TheWatcher twitch
13:12 Kindamoody|out [Kindamoody@Nightstar-18389b83.cust.tele2.se] has quit [Ping timeout: 121 seconds]
13:13
< Rhamphoryncus>
RichyB: probably
13:13
< Rhamphoryncus>
But it's moot. In theory they should be useful as an uninitialized default for floats. In practice there's quite a lot of pain to get that
13:36
< froztbyte>
TheWatcher: I like the unix approach to it
13:36
< froztbyte>
"unix time is the same everywhere. display time as you need it"
13:37
< froztbyte>
because there's just mad crap out there
13:37
<@TheWatcher>
Yes, yes there is.
13:37
< RichyB>
UTC or TAI internally
13:37
< RichyB>
strftime() with a timezone set for display.
13:38
< froztbyte>
UTC is acceptable too
13:38
< froztbyte>
but
13:38
< RichyB>
But what?
13:39
< froztbyte>
the reason I find unix time slightly less objectionable is that you won't find some retard somewhere trying to do date="Thu Aug 9 14:38:40 SAST 2012".split(" ")[0]
13:39
< froztbyte>
(had to quickly get a timestring)
13:39
<@TheWatcher>
...
13:39
< froztbyte>
and, worst of all, I've seen at least 3 codebases do that
13:39
< RichyB>
Oh right.
13:39
<@TheWatcher>
I would say "People do that?" but I know they do ;.;
13:39
< RichyB>
When I say "UTC" I mean "time_t, 64-bits wide, aligned to UTC"
13:40
< RichyB>
Same for TAI.
13:40
< froztbyte>
ah, yes, fair enough
13:41
< Reiv>
Frotz: But which time is Unix time?
13:41
< froztbyte>
seconds since jan 1 1970?
13:41
< froztbyte>
well, starting then
13:41
<@TheWatcher>
(Mac Classic doesn't count)
13:41
< Reiv>
Timezone?
13:42
< froztbyte>
Reiv: that's the beauty of it :)
13:42
<&ToxicFrog>
UTC.
13:42
< froztbyte>
it's the same /everywhere/
13:42
<@TheWatcher>
(or /should be/)
13:42
< froztbyte>
yeah, presuming NTP sync
13:42
<@TheWatcher>
(on correctly configured machines)
13:42
<&ToxicFrog>
The assumption is that the system clock (and thus time()) is UTC and the OS is aware of what TZ you're in and adjusts accordingly for display.
13:42 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
13:43
<&ToxicFrog>
(this gets fun on dual-boot systems, because windows gives no shits about time zones and assumes the system clock is set to local time, whatever that is)
13:43
< froztbyte>
which, as far as I can tell, Windows *still* doesn't do right
13:43
< froztbyte>
ToxicFrog: heh, yup
13:44
< Reiv>
I kind of like Oracles DATE timestamp
13:44
< Reiv>
It dates from 01/01/1900
13:44
< Reiv>
... Which was a monday.
13:44
< froztbyte>
haha
13:45 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has quit [[NS] Quit: KABOOM! It seems that I have exploded. Please wait while I reinstall the universe.]
13:45
< Reiv>
So you can, if you feel cheesy, just TIMESTAMP % 7 and get the days of the week, mon-fri~
13:45 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
13:45 * TheWatcher wince
13:45
< Reiv>
Mon-Sun, anyway.
13:46
< Reiv>
Hey, I never said it was a /good idea/
13:46
< Reiv>
But it amuses me to all hell that it works
13:46
< froztbyte>
optimilizationitrons!
13:47
< Reiv>
Bonus points, it counts cleanly for leap years!
13:47 * TheWatcher vaguely hates all over database DATE/DATETIME/etc fields
13:47
< Reiv>
So yeah, 1900 is pretty awesome.
13:48
< Reiv>
TW: It is one place where Oracle stomps the face of SQL Server then urinates on the sorry remains
13:48
< Reiv>
You want tomorrow? SYSDATE+1!
13:48
< Reiv>
An hour ago? SYSDATE-(1/24)
13:49
< Reiv>
So, so much nicer
13:49
<@TheWatcher>
IT's also fundamentally broken because see also: timezones
13:49
< Reiv>
Oh, you can use truncate to zero out, then apply, arbitary days too~
13:49
< Reiv>
eh, there's dev rules for that
13:50
< Reiv>
It wasn't hardcoded to start with like UNIX, but the conventions are identical unless you wear pants on your head.
13:50
< Reiv>
And it does handle timezones pretty cleanly, though some of the outputs get a little excitable without formatting >_>
13:52
< Reiv>
Jul 7, 2012 12:00:00:0000000 + 06:00 (EST) is a bit hard to read neatly~
13:53 Attilla [Obsolete@Nightstar-a74c5867.as43234.net] has quit [Ping timeout: 121 seconds]
13:56
< Rhamphoryncus>
For serializing I'm quite fond of basic iso 8601: 2012-07-07T12:00Z
13:57
< Rhamphoryncus>
It defined timezones as offsets from UTC (which means going to daylight savings actually changes your timezone), with Z as the 0-offset (pure UTC)
13:58 Attilla [Obsolete@Nightstar-adb52c1e.as43234.net] has joined #code
13:58
<@TheWatcher>
Reiv: Actually, it handles timezones pretty messily, as the data is internally stored as a mess of 7 bytes (century, year, month, day, hour, minute, second) the current timezone, and the database has to translate it.
13:58
<@TheWatcher>
*in the current timezone
13:59
<@TheWatcher>
It relies on a separate tz file, and much nastiness under the hood.
14:03
<@TheWatcher>
but, anyway, back to email! Oh joy!
14:03
< Reiv>
have fun!
14:21 * TheWatcher has a Brilliant Idea, and generalises the system so that messages can be sent via more than just email!
14:21
<@TheWatcher>
And for my next trick, I will be chewing razor blades!
14:24
< froztbyte>
TheWatcher: sounds like you should perhaps just be using Vumi? :P
14:27
<@TheWatcher>
Does vumi support email, delayed sending, cancellation of messages in the queue, posting to twitter?
14:27
< froztbyte>
probably all but the former
14:27
< froztbyte>
and it shouldn't be too hard to implement
14:27
< froztbyte>
(it's the software jerith works on)
14:28
<@TheWatcher>
Uh
14:28
<@TheWatcher>
"all but [email]" and "shouldn't be too hard to implement" should never, ever appear in the same sentence together >.>
14:28
<@TheWatcher>
(especialy since I also need to do attachments)
14:29
< froztbyte>
OH
14:29
< froztbyte>
hahaha you're boned :P
14:29
< froztbyte>
email is .... not too bad (but I say this having dealt with a vast array of much more terrible things)
14:29
< froztbyte>
MIME is just totally shitty :P
14:30
<@TheWatcher>
(even without attachment, I'd need to use MIME anyway, as I'll need to support UTF-8 characters. >.<)
14:59 iospacedout is now known as iospace
15:35
< celticminstrel>
What's with Gimp and it's stupid distinction between "save" and "export"?
15:37
<&ToxicFrog>
celticminstrel: it doesn't have "export" and hasn't for several versions now.
15:37
< celticminstrel>
...I just got 2.8 a week or three ago and it has export.
15:38
< celticminstrel>
Do they release so fast that that's already outdated?
15:38
<&ToxicFrog>
Oh
15:38
<&ToxicFrog>
Possibly it's been re-introduced, I'm behind that
15:39
<&ToxicFrog>
That said, traditionally, the difference is that you "save" in lossless formats you understand natively but you "export" to formats that may lose data or be impossible to edit
15:39
<&ToxicFrog>
For example, you save as ODF, you export to DOCX or PDF.
15:39
< celticminstrel>
It should just transparently handle this difference.
15:39
<&ToxicFrog>
It's a user-difference, not a program-difference.
15:40
< celticminstrel>
ie, if you choose "save" and enter a .png name, it should export it to png.
15:40
<&ToxicFrog>
"Export" is a warning to the user "you are about to create something for release; you won't be able to edit it, or if you will, it will be missing stuff"
15:40
<&ToxicFrog>
That said
15:41
<&ToxicFrog>
I am honestly not sure why programs don't just have a "warning: you are about to save in a non-editable format" thing
15:41
< celticminstrel>
Exactly!
16:05
<~Vornicus>
Note: some programs (old versions of Fireworks come to mind) built valid PNGs with layers
16:06
<~Vornicus>
Which is to say that it was editable as a layered paint document, but also usable as a standard png. If, uh, kind of large
16:14
<@TheWatcher>
celticminstrel: I note that the save/export distinction crops up in shittons of graphics programs (including pretty much all the adobe ones)
16:20
< gnolam>
celticminstrel: because they hate usability.
16:21
< celticminstrel>
Heh.
16:23
< gnolam>
Especially since it explicitly recognizes what you're trying to do and then goes "well fuck you, no I won't".
16:24
< Rhamphoryncus>
create image, save the raw form, export to jpg
16:24
< Rhamphoryncus>
It seems confusing because I'm more likely to export than save
16:25
< Rhamphoryncus>
But the distinction is good
16:25
< gnolam>
A save/export distinction makes sense in e.g. Inkscape, where export really means "now all kinds of shit has to be done to the image, and you have to tell it what to export and how" and save means "this will stay a vector image, in some form or another".
16:25
< gnolam>
In GIMP? No.
16:25
< gnolam>
Bitmap graphics in, bitmap graphics out.
16:26
<~Vornicus>
Layered, probably very large bitmap graphics in, unlayered, smallish bitmap graphics out.
16:26
< Rhamphoryncus>
.. so, jpeg isn't lossy?
16:26
< ShellNinja>
It is.
16:26
< Rhamphoryncus>
(rhetorical question)
16:26
<~Vornicus>
With compression, shrinking, and possibly palette loss.
16:27
< gnolam>
Shrinking is in no form part of export.-
16:27
< gnolam>
And the rest is "this data will be lost, is this ok? y/n".
16:27
<~Vornicus>
it absolutely is, and is one of the primary uses I had for export in photoshop when I used it.
16:27
< Rhamphoryncus>
png is a grey area. It can represent most of what you'd do in gimp. jpeg should never be reopened though.
16:28
<~Vornicus>
--specifically i batch-exported bunches of files at many different sizes.
16:28
< gnolam>
It's extra fun because GIMP is explicitly for /retouching/, or at least that's their excuse whenever they refuse to add things that every other graphics program has had since forever.
16:29
< gnolam>
And recognizing what the user is trying to do but refusing? No excuse. None.
16:29
<~Vornicus>
And as noted: I've seen "pngs" with layer information. and vahs has turned off my monitor so apparently I have to go make lunch now.
16:31
< celticminstrel>
Tiff can represent most of what you do in Gimp too, I think... though Gimp doesn't really support it well.
16:32
< celticminstrel>
...Gimp is supposed to be for retouching? Isn't that an argument for unifying save and export?
16:33
< Rhamphoryncus>
celticminstrel: possibly, but they're full of crap anyway
16:33
< Rhamphoryncus>
The whole design is horrible. The strength of gimp is simply in the volume of things it supports, not that they're easy to use
16:47
<@TheWatcher>
I note that, honestly, GIMP is no more or less usable that pretty much every other graphics program I've used (with the exception of DPaint 4, which was the best ever~) Each has their own strengths, their own stupidities and idiosyncrasies.
16:49
< gnolam>
... really?
16:49
< Rhamphoryncus>
yeah
16:49
< gnolam>
The GIMP's /one/ strength is that it's open source.
16:49
<@TheWatcher>
Pretty much, yeah.
16:49
< gnolam>
Everything else? Everyone else does it better.
16:50
< Rhamphoryncus>
I have contempt with the entire software industry
16:50
< celticminstrel>
XD
16:52
< Rhamphoryncus>
Just because teams of people like you get paid massive amounts of money doesn't mean your industry has ever grown beyond doing it out of your garage
16:56
<@TheWatcher>
gnolam: have you actually used, for example, photoshop? Because it has some of the most incositent and weird interactions between layers and some tools, overcomplicated transparency handling, crashes frequency enough that any sane photoshop user develops a compulsive Ctrl+S twitch.
16:56
< gnolam>
I have. And it's light years ahead of the GIMP in usability and stability.
16:57
<@TheWatcher>
Uh-huh
16:57
<@TheWatcher>
Well, why not just use it then?
16:57
<&jerith>
TheWatcher: We don't really want to support email officially, because then we'd have to support email officially.
16:57
< gnolam>
And when Photoshop crashes, you don't have to go snooping around to find where it stores its configuration files and delete them all because it just fucked something up permanently in the config.
16:57
<@TheWatcher>
jerith: yeah, can't say I blame you.
16:58
< gnolam>
Mind you, the GIMP doesn't even have to crash to do that. It just randomly does that every now and then too.
16:58
< gnolam>
Really? That argument?
16:58
<@TheWatcher>
Well, ues.
16:58
<@TheWatcher>
If you hate GIMP so much, why are you still using it?
16:58
<&jerith>
vumi should be pretty straightforward to run next to whatever it is that generates the messages to handle SMS, etc.
16:58
<@TheWatcher>
Simple question.
16:59
< gnolam>
Do point me to a better alternative on Linux.
16:59
< gnolam>
Also, a free alternative on Windows.
16:59
< celticminstrel>
Or Mac?
17:00
< Rhamphoryncus>
<gnolam> The GIMP's /one/ strength is that it's open source.
17:00
< Rhamphoryncus>
And that's a doozy
17:01
<@TheWatcher>
jerith: does it run as a daemon I can just push data at, or does it need direcly integrating into the system?
17:02
<~Vornicus>
Paint.NET is good on windows
17:08
<&jerith>
TheWatcher: There's an HTTP API, or you can push directly to AMP if you want.
17:57 ShellNinja is now known as Number3
17:59 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection reset by peer]
18:00 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
18:04 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Connection closed]
18:05
<&jerith>
Err, AMQP
18:05 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
18:11 Tarinaky is now known as Atreus
18:17 mason [IceChat9@4CA975.FA8D0E.4245F1.05DD85] has joined #code
18:31
< Rhamphoryncus>
0,1,1 = 2,1,-1. Simple :P
18:32
< Rhamphoryncus>
That's the x,y,z coordinates of a hexagonal grid vs the same in a matching but half-size triangular grid
18:33
< Rhamphoryncus>
Which includes a 90 degree rotation to the axis
18:37
< Rhamphoryncus>
0,2,2 = 4,2,-2
18:37
< Rhamphoryncus>
1,2,1 = 3,0,-3
18:44 * Moltare does a happy dance
18:44 Kindamoody|afk [Kindamoody@Nightstar-33f76d00.cust.tele2.se] has joined #code
18:44 mode/#code [+o Kindamoody|afk] by ChanServ
18:44
< Moltare>
We might be getting an awesome new feature for our game's content building language!
18:45
< Moltare>
Arrays fuck yeah!
18:45
< Moltare>
?? only took ten years
18:47
< Rhamphoryncus>
LOL
18:54
< Moltare>
"See this thing that's using up 7% of each server tick all by itself? Give me arrays and I'll cut that by a factor of thirty"
18:54
< Moltare>
"You know that thing the lead designer wants but can't have? Give us arrays and he can have it."
18:55
< Moltare>
*POUND POUND POUND POUND*
18:56
<&jerith>
WAT.
18:57
<&jerith>
You have a /content building language/ for a /role playing game/ and you don't have arrays?
18:57
<&jerith>
What data structures do you have?
18:59
< Moltare>
In terms of permanent storage? 32-bit integers, mainly. Couple of longs for limited use.
19:00
<&ToxicFrog>
19:00
<&jerith>
Why?
19:00
< Moltare>
Objects, but those are just a pair of ints lashed together, and inventories, which are declarations of a list of where you can find several objects.
19:00
<&ToxicFrog>
Mol, if you have an SA account you could probably keep the Coding Horrors thread supplied for months
19:01
<&jerith>
That's very 1980s.
19:01
< Moltare>
Because the underlying data structures of this game were cobbled together ten years ago by one fellow in his backroom and not updated properly since
19:01
<&ToxicFrog>
This is an amazing argument against rolling your own.
19:01
<&jerith>
So how do you store actual content?
19:01
< Moltare>
Oh, I'm talking purely about the player savegame here
19:02
<&jerith>
Ah.
19:02
<&jerith>
So what is an "object" there?
19:02
<&ToxicFrog>
(to remind the channel that python, lua, TCL, and half a dozen other embeddable languages existed and had mature implementations ten years ago~)
19:03
< Moltare>
Well, in terms of the engine, it's as you'd expect in java. In terms of what the player sees, it's an int ID pointing to a .obj definition which notes graphic, player cost, etcetc and an int ID which stores either the quantity of the that object in that inventory or that object's per-object data
19:04
< Moltare>
Depending on whether you've declared it non-stackable or not ??
19:04
< Moltare>
Proper programmers who join us look at the language and die a little inside.
19:05
<&jerith>
Why not just switch to a proper serialization format?
19:05
< Moltare>
I'm not a proper programmer; I'm a designer of gameplay mechanics who happens to be fairly adept at coaxing working subsystem structures out of our language - I still twitch
19:05
<&jerith>
JSON, XML, SQL, etc.
19:06
<&ToxicFrog>
XML is not a serialization format aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
19:06
< Moltare>
According to our CEO, it's because our tech is our unfair advantage and using third-party anything is bad and wrong
19:06
<&ToxicFrog>
um
19:06
< Moltare>
(plz to ignoring the Java in which our engine is written)
19:07
<&ToxicFrog>
your CEO has the brainworms
19:08
< Moltare>
you don't say~
19:08
< Moltare>
This is the same fellow who declared the company's mission goal laser focus to be becoming more popular than WoW+Steam by 2015
19:09
< Moltare>
And then accidentally an entire studio in the US
19:11
<&ToxicFrog>
pfft
19:11
<&ToxicFrog>
How many users does it have right now?
19:11
< Moltare>
Personally I don't really care about our unfair advantage; I prefer a language that doesn't take six years to get an AND operator
19:11
< Moltare>
Can't quote exact figures, you need marketing for that ??
19:12
<&ToxicFrog>
Roughly~
19:12
< Moltare>
But about 3m5 users, of which 0m8 subscribing
19:13
<&ToxicFrog>
...3m5? 0m8?
19:13
<~Vornicus>
3.5e6, 0.8e6
19:13
< Moltare>
Three and a half million users, 800,000 members.
19:14
<&ToxicFrog>
Aah
19:14
<&ToxicFrog>
(wiki claims 10M active users but doesn't say how many subscribe, interestingly)
19:15
<&ToxicFrog>
But, ok, if "more popular" is just people playing, not people with pay accounts, it just needs to grow by a factor of 6-20x over the next three years, depending on which numbers you're using~
19:16
< Moltare>
Ten million active users, yes, but active is a dodgy term in mmos
19:20
< Rhamphoryncus>
Pfft, try asking a dating site what active means :D
19:23
< Moltare>
"Has ever visited the site, or gave gender as female"?
19:24
< Rhamphoryncus>
yeah
19:24
< iospace>
o_O
19:24
< Rhamphoryncus>
They basically don't take users off of their counts, no matter how little activity they have
19:25
<&jerith>
Moltare: What makes this language better than the real language you use for other stuff?
19:25
<&jerith>
For context, I'm kind of going in the other direction.
19:26
< Moltare>
Your context has confused me more than its lack~
19:26
<&jerith>
I'm reimplementing a bunch of existing stuff because I don't want to have a Java server in my stack.
19:27
<&jerith>
The "kind of" is because I'm building an implementation for an existing standard rather than building a new standard.
19:27
<&jerith>
(We're actually switching to the standard from a bunch of crappy ad-hoc things we built because they're crappy ad-hoc things.)
19:28
< Moltare>
As far as the other stuff... well, there's the game engine, the game client, the player save handler, there's the web systems, there's the web frontend, there's the game serverscript and the game clientscript.
19:28
< Moltare>
Half of it is like it is because it always was and refactoring it would be more time and money than the execs are willing to spend
19:28
< Moltare>
The other half is like it is because Andrew Gower was paranoid and mistrustful and didn't want game designers thinking they were programmers.
19:29
< Moltare>
(which, to be fair, I am as already stated not)
19:29
< Moltare>
(but I know enough to be vexed at what I am /not allowed to do/ by our scripting language)
19:30
<&jerith>
Not being allowed to do certain things can be good.
19:30
<&jerith>
As long as they're the /right things/.
19:31
< Moltare>
The scripting language, to be fair, is sufficiently flexible to create a wide variety of different content where I suspect equivalents like WoW are rather more constrained.
19:32
< Moltare>
It's just that as soon as you attempt to offer reasonable levels of customisation, or attempt to sort any amount of information, or the like, you run into arbitrary limits and legacy lackings.
19:32
<&ToxicFrog>
I would be surprised if WoW doesn't use Lua for that internally, given how extensively it's already used in the UI.
19:36 iospace is now known as io\USA
19:41 mason [IceChat9@4CA975.FA8D0E.4245F1.05DD85] has quit [Ping timeout: 121 seconds]
19:42 Number3 is now known as ShellNinja
20:19 Kindamoody|afk is now known as Kindamoody
20:21 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Connection reset by peer]
20:25 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [Ping timeout: 121 seconds]
20:27 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
21:14 Kindamoody is now known as Kindamoody[zZz]
21:37 io\USA is now known as iospace
22:31 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code
22:31 mode/#code [+o Vash] by ChanServ
22:46 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited]
22:55 RichyB [richardb@Nightstar-2c75e7a0.as13285.net] has joined #code
23:13
<~Vornicus>
arg, this talk of content scripting has me once again thinking about Vornblo
23:17
< rms>
Is that an automated blowjob machine? Because it sure sounds like one.
23:18
<&ToxicFrog>
No, it's a Diablo-style hack and slash.
23:18 RichyB [richardb@Nightstar-2c75e7a0.as13285.net] has quit [[NS] Quit: Leaving]
23:19
< rms>
Futher adventures of hacking TMW: they provide a GM command to get the current map an coords of your character. NPCs are placed by giving them the map and coords to appear. Coords are different for both of these.
23:19
<~Vornicus>
THing about it is I keep getting the whole, uh. Random Mission Generation thought in my head.
23:19
<~Vornicus>
TMW?
23:20
< rms>
The Mana World
23:20
<&ToxicFrog>
rms: wait, what
23:21
< rms>
They also provide a command to reload the NPC files. Except they dont' clean up the old NPCs so you get duped NPCs everywhere.
23:21
< rms>
ToxicFrog: When I use the GM command I have to add +2x,+2y to get the NPC placed correctly.
23:24
< rms>
...
23:25
< rms>
Correction, the GM command is just fucked up completely
23:25
< rms>
I did it on three different places and got the exact same coords
23:50 * Vornicus does wonder how far one can get with random mission generation
23:51
< rms>
Pretty far
23:51
< rms>
Someone blogged a way to get color-coded key setups that are generated
23:53
< rms>
http://www.squidi.net/three/entry.php?id=4
23:53
<~Vornicus>
I mean okay I can imagine, very easily, generating a single mission. It's harder though for me to imagine building a larger narrative coherently.
23:54
< rms>
Yeah, a narrative will be pretty hard
--- Log closed Fri Aug 10 00:00:13 2012
code logs -> 2012 -> Thu, 09 Aug 2012< code.20120808.log - code.20120810.log >

[ Latest log file ]