code logs -> 2012 -> Wed, 08 Aug 2012< code.20120807.log - code.20120809.log >
--- Log opened Wed Aug 08 00:00:19 2012
00:25 You're now known as TheWatcher[T-2]
00:28 You're now known as TheWatcher[zZzZ]
00:44 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
01:19 Derakon[AFK] is now known as Derakon
01:19 mode/#code [+ao Derakon Derakon] by ChanServ
01:27 io|gone is now known as iospace
01:28 himi [fow035@D741F1.243F35.21F583.ED0C7D] has joined #code
01:28 mode/#code [+o himi] by ChanServ
02:33 Attilla [Obsolete@Nightstar-36d1ef0e.as43234.net] has quit [Ping timeout: 121 seconds]
02:42 himi [fow035@D741F1.243F35.21F583.ED0C7D] has quit [Ping timeout: 121 seconds]
03:33 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has quit [Connection reset by peer]
03:39 Moltare [Moltare@583787.FF2A18.190FE2.4D81A1] has joined #code
03:42 * Derakon ponders Python.
03:42
<&Derakon>
I want to set up a mapping of class types to functions that handle those class types.
03:42
<~Vornicus>
"functions that handle those class types" as in, not the constructors but things that, for instance, uh...
03:42
<&Derakon>
I'm writing some display code, and in the interests of keeping the display code out of the main game engine it isn't resident in the objects that are being drawn, but is instead imposed from outside.
03:43
<&Derakon>
So e.g. {type(Square): drawSquare, type(Circle): drawCircle, etc...}
03:43
<&Derakon>
Except that this doesn't actually work, because type(objectThatIsASquare) = "<type 'instance'>", while type(Square) = "<type 'classobj'>"
03:44
<~Vornicus>
Oh I hate this already.
03:44
<&Derakon>
I could use isinstance, but then I have to iterate over all the possible handlers.
03:44
<&Derakon>
Got a better idea then?
03:45
<~Vornicus>
I suspect what I'd do is register - as a class variable - another class that is the view, for each class that you'd need to view.
03:46
<&Derakon>
Mm, backing up a bit.
03:46
<&Derakon>
What I'm actually drawing here is a Prompt, i.e. a request for the user to supply more information. This comes with associated data, e.g. showing the user the items in their inventory and asking them to select one.
03:46
<&Derakon>
Only one of these is ever drawn at a time.
03:46
<&Derakon>
It overlays the main game view.
03:46
<~Vornicus>
Or... something like that. You do on the one hand need to separate the view from the model... but on the other hand you should generally let objects handle their own view.
03:47
<~Vornicus>
handle their own, uh. THings that are associated directly with them.
03:47
<&Derakon>
And the object is instanced, and then resolved, in a single game turn, so they don't stick around.
03:47
<&Derakon>
Somewhere I need to handle the mapping of Prompt type to how to display that Prompt.
03:47
<&Derakon>
Without the Prompt itself needing to know anything about the display layer.
03:49
<~Vornicus>
Hm
03:53
<~Vornicus>
Okay how do you invoke a prompt? Would it be wise to invoke a Generic Prompt, or are you invoking a Specific Prompt in all situations?
03:54
<~Vornicus>
If a Specific Prompt, then just subclass Prompt (or, perhaps, instantiate prompt and call its fill_shit_in method appropriately) with each of the SpecificPrompts
03:54
<&Derakon>
Game is waiting for input -> input is provided to Listener(s) -> Listener decides, based on input, it needs more information -> returns Prompt.
03:54
<&Derakon>
I have subclassed Prompt for all the different "I need more information" types I have.
03:54
<&Derakon>
E.g. "select item from list", "select direction", "select target for projectile", etc.
03:54
<&Derakon>
Each of those is a subclass of Prompt.
03:54
<~Vornicus>
well I see a bunch of lists there.
03:54
<&Derakon>
The generic Prompt class is never instanced.
03:55
<&Derakon>
A NetHack prompt would also need to support e.g. "provide an answer to this riddle" or "scrawl this in the dust on the floor".
03:56
<~Vornicus>
Okay, so now you've got... two or maybe if we're liberal three prompt types.
03:56
<&Derakon>
...how do you figure?
03:56
<~Vornicus>
I see List, String, and possibly Direction
03:56
<&Derakon>
"Select target" requires the user to select a square on the map. Could be any square. That's not something a list can support.
03:56
<~Vornicus>
Okay, that's four then.
03:57
<&Derakon>
There's also the boolean YesNoPrompt, but that's about as trivial as they get.
03:58
<~Vornicus>
All right. So... we have a prompt. Prompt takes on a type of response it wants, and also a string that describes what you're doing: "WHat do you reply?" "Where do you want to throw the bomb?"
03:58
<&Derakon>
And a few other attributes, depending.
03:58
<&Derakon>
A callback function for when an answer is provided.
03:59
<&Derakon>
A container of things to select from, if applicable.
04:01 Kindamoody[zZz] is now known as Kindamoody
04:08
<&Derakon>
So any thoughts, now that you've a better understanding of the program structure?
04:09 * Vornicus thinkthinkthinks
04:11
<~Vornicus>
You know at this point I think your /best/ bet might be to have each different, uh, user agent, implement the prompts itself.
04:11
<~Vornicus>
Which is to say that when you deploy the curses mode pyrel you'll have one prompts module, and when you deploy the falcon's eye or whatever pyrel you'll have a different one.
04:12
<~Vornicus>
I mean this is literally what import ... as ... is for.
04:12 Kindamoody is now known as Kindamoody|gaming
04:12
<&Derakon>
The as-yet hazy thought was that the Prompts are mostly for handling callbacks and decision-making; the "input" they accept is nebulously-defined.
04:13
<&Derakon>
So e.g. for a mouse-driven game, the display / input layer would be responsible for mapping a mouse click to the item clicked on, and then would say "Hey, ItemListPrompt, the user chose item 5".
04:13
<&Derakon>
So the Prompts still don't need anything specific to the UI.
04:15
<&Derakon>
Honestly the "display layer has a mapping of prompt types to how to display that prompt" / "input layer has a mapping of prompt types to how to process input for those prompts" system seems like it would work well.
04:15
<&Derakon>
If I could just set up the mapping properly.
04:19
<~Vornicus>
I don't... I...
04:19
<~Vornicus>
No, this is what modules are for.
04:20
<~Vornicus>
Well, polymorphous modules.
04:21
<&Derakon>
So you want me to subclass each Prompt type for each different display layer?
04:22 himi [fow035@D741F1.243F35.CADC30.81D435] has joined #code
04:22 mode/#code [+o himi] by ChanServ
04:22
<~Vornicus>
What
04:22
<~Vornicus>
Why are you loading all your display layers at once, no.
04:22
<~Vornicus>
You /create/ each prompt type for each different display layer.
04:23
<&Derakon>
I think we're miscommunicating.
04:23
<&Derakon>
I'm saying, okay, so I have prompt.py, it defines the basics for each Prompt.
04:24
<~Vornicus>
The prompt types are only defined inside the display layers.
04:24
<&Derakon>
Then I make, e.g., gui.prompts.asciiPrompt for ASCII display mode, which subclasses each Prompt subclass in prompt.py and adds functions for drawing them.
04:24
< RichyB>
The -clrf option to openssl s_client isn't the single most useful thing in the entire universe, but it is indeed very useful.
04:24
<&Derakon>
Vorn: ehhh...problem.
04:24
<&Derakon>
The game logic needs to know which kind of prompt to create.
04:24
<~Vornicus>
Der, this is a dynamically typed language.
04:24
< RichyB>
openssl s_client -connect secure.somesite.com:443 -clrf # is like netcat, for TLS :)
04:24
<~Vornicus>
It'll find it~
04:24
<&Derakon>
So unless I'm going to hand that off to some kind of "prompt dispatcher"...
04:24
<~Vornicus>
No.
04:24
<~Vornicus>
YOu hand that off to the module import system.
04:25
<&Derakon>
Like, the Listener says "Okay, I want to use an item. Which item do I use?" and then it needs to create an ItemListPrompt.
04:25
<~Vornicus>
And it finds ItemListPrompt in the ui module.
04:25
<&Derakon>
If we're attaching display/input handling logic to the Prompt, then it has to create the right kind of ItemListPrompt, by your logic by handing that off to the import statement.
04:25
<~Vornicus>
Which at the beginning of the game you imported
04:25
< RichyB>
Why aren't you asking your display object to hand you an appropriate prompt?
04:26
<~Vornicus>
Like this: import snakeeyesui as ui
04:26
<~Vornicus>
or like this: import cursesui as ui
04:26
< RichyB>
Since prompt handlers are pretty much 1:1 with display types, I mean. You'll have one for the terminal, one for X11...
04:26
<&Derakon>
Richy: read up.
04:26
<~Vornicus>
or like this: import ajaxui as ui
04:26
<&Derakon>
Symbolically there are UI-agnostic prompt types.
04:26
<&Derakon>
Roughly corresponding to the kinds of questions we want to ask the user, which are UI-invariant.
04:26
<&Derakon>
Handling the prompts is UI-specific.
04:27
<&Derakon>
And Vorn: so do I have to do that "import foo as bar" in every module that wants to deal with these things?
04:27
<~Vornicus>
Yes, but their handlers - literally everything they do except their signatures - are the vast majority of their code
04:28
< RichyB>
So put a bunch of methods on your display object that return text prompts, boolean prompts, sexy prompts with bells on..
04:28
<&Derakon>
...I guess I could do something like "import gui; gui.setDisplayType("ascii")" at the start of the program...and then set things up so I could later do "import gui.prompt" and get the appropriate sub-module.
04:28
<&Derakon>
That seems...unpleasant.
04:28
<&Derakon>
But at least the main game engine wouldn't need to know what the UI is doing.
04:28
<~Vornicus>
In fact the only thing you need to do is call them with the appropriate stuff and they'll get back to you as appropriate
04:28
<~Vornicus>
and these are prompts. They're modal. You can block on them, it's all right.
04:29
<&Derakon>
Uh, what.
04:29
< RichyB>
import gui.ascii; display = gui.ascii.Ascii(); print display.prompt_for_line_of_text()
04:29
<&Derakon>
I mean, yes, of course I'm blocking on Prompts. When one is active, all input is intercepted to go to it instead.
04:30
<&Derakon>
RichyB: so in other words, have, effectively, a global PromptFactory singleton that knows what kind of UI we're using and can generate appropriate Prompts on demand.
04:31
<~Vornicus>
Kinda need it anyway: you only have one display.
04:31
<&Derakon>
Right, but passing it around all the time gets tedious.
04:33
< RichyB>
Separate the issue of whether you use objects around properly or whether you stuff them into singletons like some a turd in someone else's backpack out.
04:33
< RichyB>
Just... send the request for information to a module that has a chance of dealing with it.
04:34
< RichyB>
Since your mechanism for how to prompt the user for information is dependent on which display is in use, you're best off asking the display.
04:35
<&Derakon>
I'm well aware of that, thank you.
04:35
<&Derakon>
The display hands off input to the Prompts already, but after that input has been appropriately "symbolized", I guess you'd say.
04:36
<&Derakon>
E.g. instead of handing the Prompt "user clicked on coordinates (X, Y)" it says "user selected item 5".
04:36
<&Derakon>
Now I'll grant that the decision of how to map (X, Y) to "item 5" would ideally be part of the Prompt object, but I'm not convinced that stuffing the entirety of the Prompt into the display layer is the right way to accomplish that.
04:37
<~Vornicus>
It's the only way to accomplish that.
04:37
<~Vornicus>
Well, okay, it's not, but the other ways suck.
04:37
<~Vornicus>
Look at it this way: your display layer is the view and the controller.
04:41
<~Vornicus>
This prompt - displaying a request for a user choice, and then returning the result of that choice to the engine - is literally a view part and a controller part.
04:41
<~Vornicus>
There isn't a model behind it.
04:42
<~Vornicus>
There's nothing there that suggests that you'd want an interface-independent class here, because it is literally nothing but interface.
04:43
<&Derakon>
Mm, fair point.
04:54 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has quit [[NS] Quit: Leaving]
05:00
<~Vornicus>
(and since the engine doesn't need to work you don't need to go all callbackacious - you can just block the engine because it's not about to do anything.)
05:00
<&Derakon>
No, the callbacks are still needed so the engine can find out what to do with the user's response.
05:01
<&Derakon>
Equip this item? Drop it? Invoke it? Destroy it?
05:01
<&Derakon>
I mean, I get what you're saying -- that it should be like "selection = getAnswerFromUser()" and getAnswerFromUser blocks until it has the answer.
05:02
<&Derakon>
In practice I don't think the UI can actually work that way.
05:03
<&Derakon>
At the very least I'd need to make the system multithreaded.
05:05
<~Vornicus>
Yeah, you're probably right - you have events coming in.
05:06
<~Vornicus>
--and not all of them are necessarily handled by the prompt: you could find yourself wanting to, say, zoom the map or something.
05:15 iospace is now known as iospacedout
06:09
<~Vornicus>
On the other hand, your engine code for that situation looks more like, well, you kind of have to stop engine execution until the prompt is done.
06:09
<&McMartin>
Given that this is fundamentally a turn-based game, it seems like the model should be made entirely of callbacks, with messages sent to the view about what to do next.
06:10
<~Vornicus>
mmm, there's often in this sort of game a heartbeat timer - if you're sitting around, still still happens every few seconds.
06:11
<~Vornicus>
This I say is Fucking Annoying
06:11
<~Vornicus>
but it exists nevertheless
06:13
<&Derakon>
No, Pyrel is entirely turn-based.
06:13
<&Derakon>
Since it's based on Angband, which is as well.
06:13
<&Derakon>
(That said, it's not remotely difficult to change a turn-based game into a clocked game where turns happen every X time units)
06:13
<&Derakon>
(There's a multiplayer Angband which does this. You learn to rely heavily on command hotkeys)
06:14
<~Vornicus>
Usually it's a heartbeat - if you're acting it'll reset the timer
06:14
<&Derakon>
Yeah, that's for singleplayer implementations.
06:23 Derakon is now known as Derakon[AFK]
06:56 Kindamoody|gaming is now known as Kindamoody
07:10 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has joined #code
07:17 Kindamoody is now known as Kindamoody|afk
07:21 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!]
07:38 himi [fow035@D741F1.243F35.CADC30.81D435] has quit [Ping timeout: 121 seconds]
07:39 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has quit [[NS] Quit: I lovecraft Vorn!]
08:04 Kindamoody|afk [Kindamoody@Nightstar-05577424.tbcn.telia.com] has quit [Ping timeout: 121 seconds]
09:37 himi [fow035@Nightstar-5d05bada.internode.on.net] has joined #code
09:37 mode/#code [+o himi] by ChanServ
09:44 RichyB [richardb@Nightstar-3b2c2db2.bethere.co.uk] has joined #code
09:46 You're now known as TheWatcher
10:46 Attilla [Obsolete@Nightstar-36d1ef0e.as43234.net] has joined #code
11:48 iospacedout is now known as iospace
13:04 iospace is now known as ioGONE
14:09 celticminstrel [celticminst@Nightstar-05d23b97.cable.rogers.com] has joined #code
14:27 ioGONE is now known as iospace
14:39 Nemu [NeophoxProd@Nightstar-63f6875b.asahi-net.or.jp] has joined #code
15:22 Nemu [NeophoxProd@Nightstar-63f6875b.asahi-net.or.jp] has quit [Ping timeout: 121 seconds]
15:25 Nemu [NeophoxProd@Nightstar-44bb7e52.asahi-net.or.jp] has joined #code
15:36 Nemu [NeophoxProd@Nightstar-44bb7e52.asahi-net.or.jp] has quit [Connection reset by peer]
17:07
< Rhamphoryncus>
oh, a petty coding style quandary. before doing a div() (to get quotient and remainder) I need to test range. Should I check the easy route and do abs() or should I check positive and negative forms separately?
17:08
< Rhamphoryncus>
Noting that the range is something like -6 .. 5, and I'm shifting up before passing to div(). This ensures I'm always in the positive range and thus getting useful floor division
17:09
< Rhamphoryncus>
The catch to the quandary is that although the two highest and lowest quotients may happen, it's only barely, so the -6 should never happen in practice.
17:12
< iospace>
haha
17:13
< iospace>
guess the quality people are pissed
17:13
< iospace>
we got a company wide email saying "hi, you have to re-read the product tracking training!"
17:14
< Rhamphoryncus>
heh
18:08 Vash [Vash@Nightstar-e8057de2.wlfrct.sbcglobal.net] has joined #code
18:08 mode/#code [+o Vash] by ChanServ
18:14
<~Vornicus>
Rham: I don't understand your description
18:14 * Rhamphoryncus attempts a rhamph to english translation
18:14
< Rhamphoryncus>
invariant(y >= this->globe.subdivision * -3 && y < this->globe.subdivision * 3,
18:14
< Rhamphoryncus>
"y out of range: %d violates %d <= y < %d", y, this->globe.subdivision * -3, this->globe.subdivision * 3);
18:14
< Rhamphoryncus>
invariant(z >= this->globe.subdivision * -3 && z < this->globe.subdivision * 3,
18:14
< Rhamphoryncus>
"z out of range: %d violates %d <= z < %d", z, this->globe.subdivision * -3, this->globe.subdivision * 3);
18:14
< Rhamphoryncus>
But pasting code is easier :)
18:15
< Rhamphoryncus>
I could replace that check with std::abs(x) < this->globe.subdivision * 3
18:17
< Rhamphoryncus>
It's not strictly the same, but the actual intended range is more like y >= this->globe.subdivision * -2 - 1
18:18
< Rhamphoryncus>
Anyway, I did go with the neurotic yet verbose option, as seen in the paste
18:21
< Rhamphoryncus>
My next problem using the remainder from the division of y,z above as weights of 4 vertices arranged in a square.. except it's not really a square, it's a pair of triangles, so a max of 3 should be applied at any time
18:27
< Rhamphoryncus>
The greater context to all this is a series of cheats. I'm taking my pentakis dodecahedron, chopping a cap off the top, then cutting a slit in the side and flattening it out into a hexagonal grid. The gap, then gets filled with a duplicate section
18:28
< Rhamphoryncus>
After that I take the hexagonal grid, break it down into a triangular grid, then squish two corners together until I get right angle and can pair triangles up into squares
18:29
< Rhamphoryncus>
Once I have the squares I can create a simple 2d array storing the 4 corners of each square, which can be used to figure out which macrovertices to apply to any of the hexagon's vertices
18:32
< Rhamphoryncus>
Which is where I was. Take the 4 macrovertices, then apply the remainder as the weights, but how do I apply them properly?
18:33
< Rhamphoryncus>
Hmm. Maybe it's simpler than I realized. Just treat them as barycentric coordinates and trust that despite all my distortions they still work out the same?
18:40 Kindamoody|afk [Kindamoody@Nightstar-43e74247.cust.tele2.se] has joined #code
18:40 mode/#code [+o Kindamoody|afk] by ChanServ
18:41 Kindamoody|afk is now known as Kindamoody
18:47 gnolaptop [lenin@Nightstar-b34df6ee.cust.bredbandsbolaget.se] has joined #code
18:49 Kindamoody is now known as Kindamoody|afk
18:50 gnolaptop [lenin@Nightstar-b34df6ee.cust.bredbandsbolaget.se] has quit [[NS] Quit: Gone]
18:53 gnolaptop [lenin@Nightstar-9052668d.cust.bredbandsbolaget.se] has joined #code
19:02 gnolaptop [lenin@Nightstar-9052668d.cust.bredbandsbolaget.se] has quit [[NS] Quit: Gone]
19:04 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
19:06 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
19:43 Netsplit *.net <-> *.split quits: ShellNinja, sshine, RichyB
19:43 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Client closed the connection]
19:43 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
19:44 mac [NSwebIRC@Nightstar-fe8a1f12.il.comcast.net] has joined #code
19:44 Netsplit over, joins: ShellNinja, sshine
19:44 gruber [lenin@Nightstar-202a5047.priv.bahnhof.se] has joined #code
19:44 Reivles [orthianz@3CF3A5.E1CD01.C6689C.33956A] has joined #code
19:44 Netsplit over, joins: RichyB
19:44 Orthia [orthianz@3CF3A5.E1CD01.C6689C.33956A] has quit [Ping timeout: 121 seconds]
19:46 gnolam [lenin@Nightstar-202a5047.priv.bahnhof.se] has quit [Ping timeout: 121 seconds]
19:53 mac [NSwebIRC@Nightstar-fe8a1f12.il.comcast.net] has left #code [""]
19:55 Kindamoody|afk [Kindamoody@Nightstar-43e74247.cust.tele2.se] has quit [Ping timeout: 121 seconds]
20:04 gruber is now known as gnolam
20:14 Kindamoody|afk [Kindamoody@Nightstar-18389b83.cust.tele2.se] has joined #code
20:14 mode/#code [+o Kindamoody|afk] by ChanServ
20:14 Kindamoody|afk is now known as Kindamoody
21:22 Kindamoody is now known as Kindamoody[zZz]
21:36 FurryHelix [tamber@furryhelix.co.uk] has joined #code
21:37 Tamber [tamber@furryhelix.co.uk] has quit [Connection reset by peer]
21:52 cpux [cpux@Nightstar-c5874a39.dyn.optonline.net] has joined #code
21:55 cpux|2 [cpux@Nightstar-c5874a39.dyn.optonline.net] has quit [Ping timeout: 121 seconds]
22:03 Rhamphoryncus [rhamph@Nightstar-5697f7e2.abhsia.telus.net] has quit [Client exited]
22:18 Clelia [Clelia@Nightstar-783df2d1.cable.virginmedia.com] has joined #code
22:18
< Clelia>
hello everyone
22:20
<&ToxicFrog>
'evening
22:20 Clelia [Clelia@Nightstar-783df2d1.cable.virginmedia.com] has quit [[NS] Quit: ]
22:21 Clelia [Clelia@Nightstar-783df2d1.cable.virginmedia.com] has joined #code
22:21
< Clelia>
I wonder if i have come to right chat
22:21
<&ToxicFrog>
I don't know, what are you looking for?
22:22
< Clelia>
for some answers :D
22:22
< Clelia>
about encrypted text
22:24
< Clelia>
no? this is not place where I can get some smart advice about this topic?
22:24
< RichyB>
Then you wanted #cipher, not #code? ;)
22:24
< RichyB>
#code is nominally a place to discuss programming.
22:24
< Clelia>
codes, ciphers..... see? i dont get those things
22:24
< Clelia>
:D
22:24
< RichyB>
Lots of people here find cryptography interesting too though.
22:24
< Clelia>
but thanks...i will look for #cipher then
22:25
< RichyB>
I was joking about that bit.
22:25
< RichyB>
Codes are systems for assigning meanings to sequences of symbols.
22:25
<&ToxicFrog>
Clelia: there's no actual #cipher. This is a channel about programming, but there are some people with crypto knowledge in here.
22:25
< RichyB>
Ciphers are systems for transforming sequences of symbols in order to make them impossible for your enemies to discern.
22:26
< Clelia>
well...I have some text.... it was given to me in ASCII
22:26
< Clelia>
I translated it to text
22:26 iospace is now known as io\gone
22:26
< Clelia>
and now I need to deal with text
22:26
< Clelia>
but i dont even know what kind of encryption it is
22:28
< RichyB>
Have you tried the most obvious one, rot13?
22:28
< Clelia>
yes
22:28
< Clelia>
I tryed the ones google suggested ^^
22:28
< Clelia>
a lot of them actually
22:28
< Clelia>
but the pattern of text seems weird
22:29
< Clelia>
I have no knowledge at all in this stuff, Im just really interested to resolve this thing
22:29
< rms>
You translated "ASCII" to "text"
22:30
< Clelia>
well yea.... message waas random numbers.... 80 32 64 ...etc
22:30
< rms>
You translated a hex-dump to text. Alright that's clearer
22:31
< rms>
What specificially did you need done?
22:32
< Clelia>
well..I ust know there is message that was given to me in ASCII
22:32
< RichyB>
To make the questions less vague, might I suggest pastebinning the text somewhere, unless it's something that you don't want anyone else to learn?
22:32
<&ToxicFrog>
If it's a simple substitution cipher, you could do a frequency attack on it.
22:32
< rms>
PROTIP: ASCII/"text" is redundant information here.
22:33
< rms>
Also I'm asking what you want the end result to be.
22:33
< Clelia>
I try with substitution....but with no resluts...I just want to know maybe Im heading in wrong way and spending time for nothing
22:34
< Clelia>
part of text I got - ZKVD UP SLLM P AHOD LAPYD VA ASBJPMMPK
22:35
< rms>
Oh, you have a coded message that you want to decode
22:35
< Clelia>
yes
22:35
< rms>
Well "P" is very likely "A" or "I"
22:36
< rms>
Assuming that's standard english
22:36
< Clelia>
it is english
22:36
<&ToxicFrog>
rms: assuming english cleartext and a simple substitution cipher
22:36
< rms>
Yeah
22:36 FurryHelix is now known as Tamber
22:36 mode/#code [+o Tamber] by ChanServ
22:36
<&ToxicFrog>
...and that " " is the same character in both clear and ciphertext
22:37
< rms>
Oh yeah
22:37
< rms>
That'd be assholish
22:37 * Vornicus hunts around for a words file.
22:37
< Clelia>
there in text is "..." too
22:38
< Clelia>
just some things makes me thing its not so simple
22:38
< Clelia>
like - text end with "P" alone
22:38
<&ToxicFrog>
Vornicus: /usr/share/dict/words
22:38
<&ToxicFrog>
Clelia: so pastebin it
22:38
<~Vornicus>
Right except that doesn't exist on windows~
22:38
< Clelia>
who would write message who ends with "a" or "I"
22:38
< rms>
$ echo `grep ^.[ai]$ /usr/share/dict/cracklib-small `
22:38
< rms>
ca ga ha hi ia ii la ma mi pa pi ri sa ta ti va vi wa wi xi
22:39
< Clelia>
pastebin.....whats that?
22:39
<&ToxicFrog>
A website where you paste text and have it displayed
22:39
<&ToxicFrog>
Like, say, gist.github.com
22:39
<&ToxicFrog>
Useful for sharing source code and whatnot
22:40
<~Vornicus>
Clelia: okay, so that gives us a couple options: the big one is that the text is in fact backwards.
22:41
< Clelia>
I had that idea too
22:41
< rms>
$ echo `grep ^[ai].$ /usr/share/dict/cracklib-small `
22:41
< rms>
ac ad ah ak al am an ar as at ax az ia id if ii il in io iq ir is it iv ix
22:42
< Clelia>
but it looks like I could resolve it with substitution right?
22:42
< Clelia>
so I willjust keep doing that
22:45
<~Vornicus>
yeah. note that 26! is quite large, approximately 400 nonillion, approximately the number of non-dairy creamers it would take to create the entire earth.
22:46
<~Vornicus>
start with one the other words - that 9 letter job there with 7 different letters, there's not nearly that many different possibilities for that.
22:47
< Clelia>
well...thank you guys :) I will try more, maybe it will make sense at some point
22:48 Clelia [Clelia@Nightstar-783df2d1.cable.virginmedia.com] has quit [Client closed the connection]
23:44 himi [fow035@Nightstar-5d05bada.internode.on.net] has quit [Ping timeout: 121 seconds]
--- Log closed Thu Aug 09 00:00:33 2012
code logs -> 2012 -> Wed, 08 Aug 2012< code.20120807.log - code.20120809.log >

[ Latest log file ]