On Apr 23, 2015, at 11:05 AM, Steve Smaldone <smald...@gmail.com> wrote:

> On Thu, Apr 23, 2015 at 6:34 AM, Cem Karan <cfkar...@gmail.com> wrote:
> 
> On Apr 23, 2015, at 1:59 AM, Steven D'Aprano 
> <steve+comp.lang.pyt...@pearwood.info> wrote:
> 
> > On Thursday 23 April 2015 11:53, Cem Karan wrote:
> >
> >> Precisely.  In order to make my simulations more realistic, I use a lot of
> >> random numbers.  I can fake things by keeping the seed to the generator,
> >> but if I want to do any sort of hardware in the loop simulations, then
> >> that approach won't work.
> >
> > That's exactly why we have *pseudo* random number generators. They are
> > statistically indistinguishable from "real" randomness, but repeatable when
> > needed.
> 
> Which is why is why I mentioned keeping the seed above.  The problem is that 
> I eventually want to do hardware in the loop, which will involve IO between 
> the simulation machine and the actual robots, and IO timing is imprecise and 
> uncontrollable.  That is where not recording something becomes lossy.  That 
> said, the mere act of trying to record everything is going to cause timing 
> issues, so I guess I'm over thinking things yet again.
> 
> Thanks for the help everyone, its helped me clarify what I need to do in my 
> mind.
> 
>  
> Well, you could achieve this on Linux by using the rdiff library.  Not 
> exactly a purely Python solution, but it would give you file-based diffs.  
> 
> Basically, what you could do is write the first file.  Then for each 
> subsequent saves, write out the file (as a temp file) and issue shell 
> commands (via the Python script) to calculate the diffs of the new file 
> against the first (basis) file.  Once you remove the temp files, you'd have a 
> full first save and a set of diffs against that file.  You could rehydrate 
> any save you want by applying the diff to the basis.
> 
> If you work on it a bit, you might even be able to avoid the temp file saves 
> by using pipes in the shell command.
> 
> Of course, I haven't tested this so there may be non-obvious issues with 
> diffing between subsequent pickled saves, but it seems that it should work on 
> the surface.

That might work... although I'm running on OS X right now, once I get to the 
hardware in the loop part, it's all going to be some flavor of Linux.  I'll 
look into it... thanks!

Thanks,
Cem Karan
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to