code logs -> 2012 -> Sat, 22 Dec 2012< code.20121221.log - code.20121223.log >
--- Log opened Sat Dec 22 00:00:18 2012
00:20 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code
00:36 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has joined #code
00:36 mode/#code [+qo Vornicus Vornicus] by ChanServ
00:52
<~Vornicus>
Okay. Time to kill Klostski dead.
00:52
<@iospace>
?
00:52
<~Vornicus>
Klotski rather.
00:53 You're now known as TheWatcher[T-2]
00:53
<@iospace>
?
00:53
<~Vornicus>
It's a sliding block puzzle of a particular type: within a 4x5 box there are a number of blocks, some 1x1, some 1x2, and one 2x2. your goal is to get the 2x2 block to the exit.
00:53
<@iospace>
ah
00:53
<&McMartin>
ErikMesoy|sleep: It's not a bad idea
00:54
<&McMartin>
Also, a better way of handling globals is to have them be fields of some object instead.
00:54
<~Vornicus>
Okay, step 1. Need a format for puzzle states so I don't end up going in circles.
00:55
<~Vornicus>
I suspect my best bet is a tuple of frozensets.
00:58 You're now known as TheWatcher[zZzZ]
01:07
<~Vornicus>
Okay, that done. Next up I need to calculate available moves.
01:11
<~Vornicus>
Which means first writing a thing that tells me what places are occupied. That's done, now on to calculating moves.
02:27 Kindamoody[zZz] is now known as Kindamoody
03:04 * Vornicus writes a 25-line function that determines whether and where a particular piece can move, filled with copypasta.
03:08 * Vornicus figures he'll poke that later if need be, but doing that sort of thing in two dimensions has always been problematic
03:14
<&McMartin>
I think I abused some list comprehensions for that
03:14
<&McMartin>
But copypasta is kind of how it's done.
03:14
<&McMartin>
(This is one of my standard interview questions. I've seen *a lot* of solutions to this)
03:15
<~Vornicus>
I did manage to parameterize block size, at least~
03:15
<~Vornicus>
Okay next up. I can now list off all the moves available from a particular point.
03:16
<~Vornicus>
Now I need a thng that applies those moves.
03:17 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
03:19
<~Vornicus>
Ick. Okay that says there's an issue with my format here.
03:19 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [Ping timeout: 121 seconds]
03:20 * Vornicus decides format rejiggering is worth it.
03:20 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [[NS] Quit: Program Shutting down]
03:21 gnolam [lenin@Nightstar-bb103c17.cust.bredbandsbolaget.se] has quit [[NS] Quit: Reboot]
03:21
<~Vornicus>
(I had a tuple of frozensets, one for each size of block. Now I'm changing it so that I have a single frozenset, and the size of the block is encoded in the tuple.)
03:26
<~Vornicus>
(I think if I need to generalize this - there was that crazy swap-four-balls one, for instance - i'll need size IDs, but for now...)
03:32
<~Vornicus>
Okay that was pretty painless.
03:36
<~Vornicus>
Okay. To apply a move I need everything from the set that's /not/ the target piece, and I need the (modified) target piece.
03:42
<~Vornicus>
modifying is pretty easy. But doing this kind of collection surgery always gives me minor jibblies.
03:43
<&McMartin>
This is where using Haskell made me feel happier
03:43
<&McMartin>
Immutable datastructures with automatic sharing ftw
03:44
<~Vornicus>
let's see, it's layout.difference(frozenset((old_block))) + frozenset((new_block)), I think
03:47 * Vornicus checks to see that that keeps him in frozensets, because he needs frozensets to take advantage of dictionary tools.
04:03
<~Vornicus>
Okay, victory.
04:05
<~Vornicus>
I can now properly apply moves to layouts, and they do indeed come out as frozensets so I'm safe.
04:05
<~Vornicus>
Next: breadth-first search!
04:06 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code
04:07 Kindamoody is now known as Kindamoody[zZz]
04:09
<~Vornicus>
I love how bfs and dfs algorithms differ by one character.
04:13 gnolam [lenin@Nightstar-bb103c17.cust.bredbandsbolaget.se] has joined #code
04:13 mode/#code [+o gnolam] by ChanServ
04:24
<~Vornicus>
and we have liftoff.
04:24
<~Vornicus>
...that was fast.
04:26
<&McMartin>
BFS gives you the optimum solution, as it happens
04:26
<~Vornicus>
That's not "as it happens", that's "by design"
04:29
<~Vornicus>
though actually it doesn't give me exactly the optimum solution by Layton's count - just now for instance it had me move two things in alternating order as opposed to moving them one thing entirely at a time.
04:29
<~Vornicus>
Layton counts moving one object, no matter how far, as one move.
04:32
<~Vornicus>
so in order to get this right I either need to use dijkstra and count moving the same thing as last time a distance of 0, or change the move search to include double moves. Not going to worry about either. I have a solution, I will use it.
04:35
<~Vornicus>
God I love being a programmer
04:38
<&ToxicFrog>
:D
04:41
<&McMartin>
Later sliding block puzzles in the Layton games involve having irregular blocks or parts of the grid that are immovable
04:41
<&McMartin>
Or non-square grids, but that's the same as immovable blocks in the corners
04:41 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [Ping timeout: 121 seconds]
04:42
<~Vornicus>
There are a couple of odd-shaped grids in this one
04:42
<~Vornicus>
what's the one, uh
04:42
<&McMartin>
(This is Curious Village, right)
04:42
<~Vornicus>
Right
04:42
<&McMartin>
They've all kind of blurred together for me
04:43
<~Vornicus>
#129, Four Balls, is one I was trying to figure out how I'd do.
04:44
<~Vornicus>
I can see for instance that I would need to build the actual border of immovables; I already have the capability to add an ID tag to named balls, and my is_complete can be quickly changed to ask for multiple completion constraints.
04:44
<~Vornicus>
I think that's all I'd need there.
04:45
<~Vornicus>
Okay, 133 (fill in blanks in an equation) and 134 (divide property) done, now on to 135... which is indeed True Klotski.
04:47 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has joined #code
04:49 * Vornicus writes up true klotski's data.
04:53
<~Vornicus>
116 moves away. Yeah, no way I would have done that by hand.
04:55
<~Vornicus>
For properly irregular-shaped things I'm not sure what I'd do.
04:55 AbuDhabi_ [annodomini@Nightstar-282783d9.adsl.tpnet.pl] has joined #code
04:58 AbuDhabi [annodomini@Nightstar-b3e58ae0.adsl.tpnet.pl] has quit [Ping timeout: 121 seconds]
04:59
<&McMartin>
Yeah, even with the Layton Counting mechanism, ISTR the minimum solution is still 90+ moves
05:01 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Ping timeout: 121 seconds]
05:04 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
05:23
<~Vornicus>
95 is what I ended up with.
05:25
<&McMartin>
Sounds about right
05:25
<&McMartin>
And yeah, Klotski has an amazingly long pedigree
05:26
<~Vornicus>
anyway, time to go find the next game.
05:28
<&McMartin>
I found the second the weakest of the four DS games.
05:28
<&McMartin>
And the third the strongest
05:28
<&McMartin>
The fourth is the most impressively batshit
05:29
<&McMartin>
But I also found them all basically worthwhile
05:30
<&ToxicFrog>
I find it hard to reconcile "basically worthwhile" with "sliding block puzzles"
05:32
<&McMartin>
This is why the second is the weakest~
05:33
<&McMartin>
Also, there are 135 total puzzles, most of which are entirely different things
05:33
<&McMartin>
Also, the "plots" such as they are are entertainingly batshit
05:36
<&McMartin>
Also, Klotski is intrinsically more interesting than 15-puzzles
05:37
<&McMartin>
(Sufficiently offensive puzzles can be skipped via GameFAQs)
05:40
<~Vornicus>
To give you some sense, the last 15 puzzles in this game are: find the area of a geometrical figure, figure out the next die in a relatively diabolical pattern, count triangles in a line diagram, figure out a digit in a pattern, determine a heuristic from partial information, swap two groups of balls through a tight corridor with ordering constraints, find the perimeter of a geometrical figure,
05:40
<~Vornicus>
a magic square type problem, move four key objects through a sliding block puzzle (I really liked this one), 8 Queens, 12 Weights, a simplified Klotski, divide an area equitably into four pieces, fill in the blanks in an equation, and Klotski itself
05:41
<~Vornicus>
There is an 8-puzzle in the game, but it's a little twisted. It looks easy and then you realize that the parity is wrong unless you break up stuff that's already "in the right place" because some of the already-placed stuff looks the ame as stuff that isn't.
05:48
<~Vornicus>
there's a lot of classic old chestnuts in here, too - flipping a triangle of coins, a couple matchstick puzzles, wolf goat cabbage, liar puzzles, age puzzles...
05:49
<&McMartin>
Also, the second game has a minigame in which you must serve the right kind of tea to every NPC.
05:49
<~Vornicus>
what
05:49
<~Vornicus>
I love it.
05:49
<&McMartin>
The conversations for "you have attempted to brew a Forbidden Tea" are *spectacular*
05:52 syksleep [the@Nightstar-7d752098.lnk.telstra.net] has quit [[NS] Quit: leaving]
05:52 Syka [the@Nightstar-7d752098.lnk.telstra.net] has joined #code
06:01 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has joined #code
06:01 mode/#code [+o Reiv] by ChanServ
06:07 Kindamoody[zZz] is now known as Kindamoody
06:27 mac [mac@Nightstar-fe8a1f12.il.comcast.net] has quit [[NS] Quit: Leaving]
06:31 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has quit [Ping timeout: 121 seconds]
07:01 thalass [thalass@Nightstar-724ec5eb.bigpond.net.au] has joined #code
07:09 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has quit [Ping timeout: 121 seconds]
07:25 thalass is now known as Thalasleep
07:29 Nemu [NeophoxProd@Nightstar-70b619c5.asahi-net.or.jp] has joined #code
07:42 ErikMesoy|sleep is now known as ErikMesoy
08:15 cpux [cpux@Nightstar-98762b0f.dyn.optonline.net] has quit [Client closed the connection]
08:26 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has joined #code
08:26 mode/#code [+o Reiv] by ChanServ
08:43 shawn-p [Shawn@Nightstar-4db8c1df.mo.charter.com] has quit [[NS] Quit: Leaving.]
09:25 McMartin_ [mcmartin@Nightstar-8eef3929.pltn13.sbcglobal.net] has joined #code
09:26 McMartin [mcmartin@Nightstar-dc5686e1.pltn13.sbcglobal.net] has quit [Operation timed out]
09:27 Kindamoody is now known as Kindamoody|out
09:35 You're now known as TheWatcher
09:49 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has quit [Ping timeout: 121 seconds]
09:59 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has joined #code
09:59 mode/#code [+o Reiv] by ChanServ
10:51 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: ]
11:18
< ErikMesoy>
Man. Coding a dialogue tree is nonobvious. Especially one that's supposed to be easy to modify and extend later.
11:19
<@froztbyte>
haha
11:19
<@froztbyte>
many trees suffer from that problem
11:19
<@froztbyte>
kinda makes you aware of how awesome the brain is for dealing with such concepts to fluidly :)
11:26 Reiv [Reiver@Nightstar-6ca59a6f.callplus.net.nz] has quit [Client closed the connection]
11:28
< AbuDhabi_>
ErikMesoy: You could try doing a state machine. Each dialogue output has a numerical ID. Based on that ID, display text and options. Selecting an option changes the selected ID, and new text and options are displayed, according to the information associated with the ID.
11:31
< McMartin_>
ErikMesoy: The interactive fiction languages have attacked this problem from a dozen angles
11:32
< McMartin_>
Nodes are good to have, and then you can also have each node independently control its own available followup options
11:32
< McMartin_>
This can be done more or less directly.
11:32
< McMartin_>
Mixing it with topic-based systems is a separate can of worms
11:32
<@froztbyte>
haha
11:32
<@froztbyte>
"left as an exercise for the reader" is one of the most awesome warning signs
11:33
< McMartin_>
Inform 6's "phtalkoo.h" library is one of the best simple systems I know of.
11:33
< McMartin_>
And is in a vaguely C-like language for adaptation to other realms.
11:33
<@froztbyte>
is that a header, or haskell file?
11:33
<@froztbyte>
(or something else
11:33
<@froztbyte>
?)*
11:33
< McMartin_>
It's an I6 "header" which really means "internal source file"
11:33
< McMartin_>
Haskell is .hs
11:34
<@froztbyte>
ah yes
11:34 * McMartin_ did a phtalkoo-like system for I7 but it's tied rather hard to data structures the I7 engine handles efficiently
11:34
<@froztbyte>
it seriously sucks that textual extensions are still our best way for representing this information in the general case
11:35
<@froztbyte>
on binaries we have file signatures
11:35
<@froztbyte>
but for text... meh
11:36
< McMartin_>
There's always shebang~
11:37 * froztbyte isn't even going to bite
11:38
< McMartin_>
It is 0340, I'm crashing out anyhow
11:38
< McMartin_>
But I have Opinions About Dialogue Trees
11:38
<@froztbyte>
haha
11:38
<@froztbyte>
this is understandable
11:39
<@froztbyte>
it's like me and monitoring systems
11:48
< ErikMesoy>
I don't want Opinions, I want Solutions. I want someone to invent an obviously right way to handle this. :p
11:48
<@froztbyte>
yay to hard problems!
11:49
<@froztbyte>
basically it depends what you need
11:50
< ErikMesoy>
I need for the player to start conversations with NPCs, ask about subjects, have multiple dialogue options, some dialogue options that only appear depending on player stats. Preferably I would like for slightly flexible dialogue options that can e.g. have content depending on the player's backstory, rather than writing a different option per backstory.
11:51
< ErikMesoy>
I would like for an option such as "Ask about the McGuffin" to return "I don't know, I'll go research that" the first time, set a flag/timer, and later for the same option to return "It's mentioned in the Prophecy of Railroad".
11:52
<@froztbyte>
a state machine with capability flags on each step could likely work
11:52
< ErikMesoy>
Right now I'm looking at writing a parser with heavy use of eval()
11:52
<@froztbyte>
but yeah, definitely check out the options from the IF dudes
11:52
<@froztbyte>
they've seriously spent a lot of time with this
12:03
< ErikMesoy>
Hmm mmm.
13:29
<@rms>
<ErikMesoy> Man. Coding a dialogue tree is nonobvious. Especially one that's supposed to be easy to modify and extend later. <-- look at some of the Fallout (1&2) dat files for dialogues for ideas? (They're available on Nukapedia for most main characters, Mr Cheater is the first that comes to mind)
13:31
<@rms>
I'd suggest TMW's method... but like the rest of the TMW code it's full of rampant retardation (they have half a scripting language developed to support NPC stuff...)
13:32
<@rms>
But basically they just use GOTOs
13:32
<@Azash>
Like AD mentioned, FSMs are good for this
13:33
< ErikMesoy>
Yeah, I'm working on a sort of FSM now. Also a parser so that I can write a dialogue file in something more English-sounding.
13:37
< Moltare>
None of this fancy malarkey; do it all with labels and var states! It works fine for Runescape!
13:37 * Moltare sobs once
13:37
< ErikMesoy>
Labels as in goto?
13:38
< Moltare>
yeah, more or less, since a label's just a proc that doesn't return to its parent trigger
13:50
<@rms>
Moltare: yeah, that's pretty much what TMW does. It's ugly as hell.
13:50
<@rms>
Did they implement their own scripting language too?
14:04
< ErikMesoy>
Hmm. How to give the conversation access to the GUI?
14:08 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
14:11 * ErikMesoy fires up the refactor tractor and starts driving over the dialogue engine.
14:45 Kindamoody|out is now known as Kindamoody
14:53 Kindamoody is now known as Kindamoody|afk
15:29
<@rms>
Make it tell the GUI: "I'm saying X; I'm expecting one of Y, Z, A, B, C back"
15:49 Kindamoody|afk is now known as Kindamoody
15:55
< ErikMesoy>
BAH! While fiddling with this I saw another thing I should change about an NPC's conversation interface.
15:56
< ErikMesoy>
(I've looked at some Interactive Fiction things and they appear to be larger and solving a slightly different problem, as they're oriented towards fully general adventuring through text input, including "get flask". I'm working on just button-driven NPC conversation here.)
15:58 * ErikMesoy leaves this for now and starts writing his stat system.
16:00
< ErikMesoy>
3-tuples for most fields of interest, representing power, accuracy, defense. For physical combat these are Strength, Weapon Training, Dodge. For magic these are Willpower, Spell Penetration, Magic Resistance. accuracy checks against defense, then result is calculated based on power, usually subtracting from hit points.
16:19 Kindamoody is now known as Kindamoody|out
16:49 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
16:52 VirusJTG [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
17:03 ToxicFrog [ToxicFrog@2D9871.281A35.18024E.E37E4A] has quit [[NS] Quit: ZNC - http://znc.in]
18:14 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has joined #code
18:14 mode/#code [+qo Vornicus Vornicus] by ChanServ
18:30 VirusJTG__ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
18:33 VirusJTG_ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Ping timeout: 121 seconds]
18:52 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
18:52 mode/#code [+o celticminstrel] by ChanServ
18:55 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has left #code []
18:55 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
18:55 mode/#code [+o celticminstrel] by ChanServ
19:07 Scoot [Scoot@Nightstar-29777108.sd.cox.net] has joined #code
19:08
< Scoot>
Is there a way to move user folders in Windows 7? Like, put them on another disk?
19:09
<@rms>
...
19:09
<@Tamber>
There is.
19:09
<@rms>
Same as before
19:09
<@rms>
Right-click-drag
19:09
<@rms>
Select move.
19:09
<@Tamber>
I think he means relocate the user's home folder and have Windows know the new location
19:10
< Scoot>
yes
19:10
<@rms>
Oh
19:10
<@Tamber>
http://headstrongfarm.hubpages.com/hub/Windows-7_-_Moving_My_Documents
19:12
<@Tamber>
I'm fairly sure moving the *whole* users/$user folder is something similar; but don't quote me on that. :)
19:14
< Scoot>
Heh. If the computer was for me, I wouldn't care
19:14
< Scoot>
but... it's for my girlfriends mom, who is NOT computer savvy at all
19:20
< Syka>
Scoot: there is
19:20
< Syka>
but dear god is it a fucking hack IIRC
19:23
< Scoot>
actually, the site I'm reading now says it's just a copy + symlink
19:24
< Scoot>
in windows recovery console, but still
19:24
<~Vornicus>
That sounds like it could fall over badly
19:24
<@gnolam>
http://crypto.stackexchange.com/questions/1170/best-way-to-reduce-chance-of-hash -collisions-multiple-hashes-or-larger-hash/1172#1172
19:26 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has quit [[NS] Quit: And lo! The computer falls into a deep sleep, to awake again some other day!]
20:14
< Syka>
Scoot: see: 'fucking hack'
20:15
< AbuDhabi_>
Scoot: If it's for your computer illiterate relative, just make a shortcut. They'll not know the difference.
20:17
<@froztbyte>
windows symlinks are not so good across drives
20:17
<@froztbyte>
but yeah, the lesser methods are likely better here
20:17
<@froztbyte>
gnolam: hahahahaha
20:21
<~Vornicus>
It is a good picture.
20:33 Syka is now known as syksleep
20:53 Kindamoody|out is now known as Kindamoody
21:07 RichyB [richardb@Nightstar-3bcd1b60.bb.sky.com] has joined #code
21:11 celticminstrel [celticminst@Nightstar-e83b3651.cable.rogers.com] has joined #code
21:12 mode/#code [+o celticminstrel] by ChanServ
21:22 Kindamoody is now known as Kindamoody[zZz]
21:31 RichyB [richardb@Nightstar-3bcd1b60.bb.sky.com] has quit [[NS] Quit: Leaving]
21:46
< ErikMesoy>
I seem to be having luck keeping a lot of my variables in a class rather than an object, so that other places can access them easily. What bad things should I watch out for when doing this?
21:54
< McMartin_>
Forgetting the object marker. Unlike C++ or Java, Python has no implicit "this"
21:55
< McMartin_>
This is largely the same reason globals have to be declared everywhere; because Python is a "defining a variable brings it into existence" language, and it can't know in advance whether you mean a local, a global, or a field.
21:56
< ErikMesoy>
So I have to remember to always refer to NPCVariables.MetJulian, rather than MetJulian. Right.
21:56
<@celticminstrel>
self.blahblahblah.
21:57
< McMartin_>
One funny border between objects and globals is that modules/packages look a whole lot like objects when you're outside of them.
21:58
< ErikMesoy>
I envision myself using "NPCVariables." in a manner similar to "global"
21:59 * McMartin_ nods
21:59
< McMartin_>
So, if you're splitting this into multiple files
21:59
< McMartin_>
You could have an NPCVariables.py that carries the state as "globals" within it
21:59
< McMartin_>
And then the same text would work out to that.
22:00
< McMartin_>
Are you passing NPCVariables around as an argument?
22:00
< McMartin_>
(Objects may still be better than modules, especially if you plan on instantiating multiple conversation nodes at once)
22:01
< ErikMesoy>
Right now I'm referring to NPCVariables.whatever everywhere. How are you suggesting I pass it as an argument?
22:01
< McMartin_>
Well, it has to get NPCVariables from somewhere
22:02
< McMartin_>
either as an argument in the function you're implementing, a field of the same object for which this is a method, or as a global itself
22:02
< ErikMesoy>
NPCVariabls is a class.
22:02
< McMartin_>
OK, then you're using it as a module already, OK
22:03
< ErikMesoy>
Here's the very simple thing I have so far: http://pastie.org/5566512
22:03
< ErikMesoy>
(I ran into Gall's Law and hoped for better luck starting from something very very simple and working my way up slowly.)
22:03
<~Vornicus>
There's only one semantically important bit of syntax in Ruby that I really liked - the scope warts.
22:04
< ErikMesoy>
Presently this is one short file. Next up, I intend to move NPCVariables into its own file.
22:04
< McMartin_>
OK
22:04
< McMartin_>
When you do that, you won't need the class anymore, because a module will work in basically identical ways.
22:06
< ErikMesoy>
Right. So I still won't need it as an argument?
22:06
< ErikMesoy>
Just "import NPCVariables" at the top.
22:06
< McMartin_>
Correct
22:06 * ErikMesoy does this, and it works perfectly. :D
22:06
< McMartin_>
You can also rename it within a file as "import NPCVariables as npcs" or whatnot
22:44
< McMartin_>
Python is refreshingly anarchic about namespaces, classes, modules, and objects.
22:44
< McMartin_>
This lets you do some incredibly terrible things if you're careless or undisciplined
22:46
< McMartin_>
Speaking of undisciplined, I need to improve my special-purpose C lexer for work so that it is more robust.
22:52 Vornicus [vorn@Nightstar-221158c7.sd.cox.net] has quit [[NS] Quit: ]
22:58
< ErikMesoy>
Mutter. Python's near-English syntax made me slip up. I tried "if X is not in Y" and got a syntax error. Fixed it to "if X not in Y".
23:04
<@celticminstrel>
Pfft, Python is not near-English syntax. Look at AppleScript or Inform7.
23:04
<@celticminstrel>
^if you want near-English syntax.
23:04
< McMartin_>
AppleScript is more like Cobol in that regard, and I7 more like Perl~
23:06 * ErikMesoy specifies that as "The syntax which is in Python and which is near English" rather than "The syntax in Python, which is near English". :P
23:08
<@celticminstrel>
McMartin_: Um. What?
23:08
< McMartin_>
celticminstrel: AppleScript is simply verbose as hell and as finicky as Python; I7's natural language control structures were actually partially inspired by Perl, I believe.
23:08
< McMartin_>
Though Perl itself was also inspired by English so I'm not sure how deep the direct connection is
23:09
< McMartin_>
But I7 and Perl both do the "turn a statement into a loop by adding modifiers to it" thing
23:09
<@celticminstrel>
I don't know Cobol, so I'm not sure what you meant by comparing AppleScript to it.
23:09
< McMartin_>
"now every open spooky door is closed"
23:09
< McMartin_>
Oh. COBOL is infamously verbose and uses long sentences to basic stuff
23:09
< McMartin_>
ADD A TO B GIVING C
23:10
<@celticminstrel>
I see.
23:10
< McMartin_>
COBOL gets a worse rep than it deserves, but it's worth noting that it is a domain-specific language for processing punched-card stacks and any other use of it is an abuse.
23:17 VirusJTG__ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has quit [Client closed the connection]
23:18 VirusJTG__ [VirusJTG@Nightstar-09c31e7a.sta.comporium.net] has joined #code
23:28
< AbuDhabi_>
ADD 1 TO COBOL GIVING COBOL.
23:31
<@simon`>
is that the initiation process in the cult of cobol?
23:31
<@simon`>
WE ARE COBOL.
23:32
<@Azash>
Oh
23:33
<@Azash>
I thought it was a C++ joke or something
--- Log closed Sun Dec 23 00:00:33 2012
code logs -> 2012 -> Sat, 22 Dec 2012< code.20121221.log - code.20121223.log >

[ Latest log file ]