[Sugar-devel] Karma.rand() and Karma.shuffle() remarks
Bert Freudenberg
bert at freudenbergs.de
Sat Jan 9 11:12:18 EST 2010
Well, OLE Nepal does have Squeak programmers, and it should be rather simple for them to write a snippet that exports images and sounds from a loaded project.
It's just a bit harder (but I guess not too much) to load each project in a folder and export assets found there (the trick would be to just load the project but not enter it).
Extracting them without Squeak is rather infeasible.
- Bert -
On 09.01.2010, at 16:39, Tomeu Vizoso wrote:
>
> Adding sugar-devel to CC in case Bert wants to say anything
>
> On Sat, Jan 9, 2010 at 16:36, Peter Gijsels <peter.gijsels at gmail.com> wrote:
>> Vaibhaw,
>>
>> You seem to imply that there is a (difficult) way to extract them,
>> could you elaborate?
>>
>> Do you think it would be useful to have a simple way to extract these
>> assets from a .pr file?
>>
>> I can try to see if I can come up with something. I'm not guaranteeing
>> anything, but I think it might be worth a shot. I think it would be
>> more fun than cropping screenshots. ;-)
>>
>> I have two possible approaches in mind:
>> 1) There is probably a central place where the .pr is being read in
>> and Morph objects are being constructed. If we intercept objects of
>> the correct type we can dump their image data to a file. The trick is
>> to find the code that does the deserializing which can be rather
>> frustrating in Smalltalk if you are not familiar with the code.
>>
>> 2) The second approach would be to just walk over all objects, see if
>> they are an image, and dump them to files.
>>
>> Do you have a Squeak development image (with development tools like
>> the browser and inspector) from which I can read in these .pr files so
>> that I can poke around a bit?
>>
>> Regards,
>> Peter
>>
>> On Sat, Jan 9, 2010 at 3:04 PM, Vaibhaw (Bob) Poddar
>> <vaibhawp at yahoo.co.uk> wrote:
>>> Afraid not. There is no (easy) way to extract the info from the .pr files. I
>>> have been just cropping the images out from the screen shots so far.
>>>
>>> Vaibhaw (Bob) Poddar
>>>
>>> Nepal Cell. +977.98510.61345
>>> India Cell. +91.99999.15661
>>> US of A Cell. +1.415.508.4503
>>>
>>> http://HimalayanTechies.com
>>>
>>> On 1/9/2010 7:43 PM, Peter Gijsels wrote:
>>>
>>> Bryan, Vaibhaw,
>>>
>>> I've got epaath working on my windows machine.
>>>
>>> Do I understand correctly that all of the materials of a lesson are
>>> contained in one .pr file, e.g. 6_English_actionVerb_3.018.pr? The
>>> epaath.image running on the squeak vm loads in that file.
>>>
>>> Is there an easy way to extract the pictures and sounds from the .pr
>>> file of the lesson?
>>>
>>> Regards,
>>> Peter
>>>
>>> On Thu, Jan 7, 2010 at 5:45 AM, Vaibhaw (Bob) Poddar
>>> <vaibhawp at yahoo.co.uk> wrote:
>>>
>>>
>>> Step to get Squeak working on a Windows machine (not sure how on a Linux
>>> distribution).
>>>
>>> Download and install squeak
>>> http://www.squeakland.org/download/
>>>
>>> Replace the etoys.image inside the Etoys/Etyos.app/Contents/Resources with
>>> the image file from the E-Paath.
>>>
>>> That should be it. If you run into any issues I would be happy to look at
>>> that.
>>>
>>> Thanks
>>>
>>> Vaibhaw (Bob) Poddar
>>>
>>> Nepal Cell. +977.98510.61345
>>> India Cell. +91.99999.15661
>>> US of A Cell. +1.415.508.4503
>>>
>>> http://HimalayanTechies.com
>>>
>>> On 1/7/2010 7:44 AM, Bryan Berry wrote:
>>>
>>> here is the file http://karma.sugarlabs.org/Squeak.tar.bz2
>>>
>>> These are all the Squeak files in the current EPaath. I am not sure how to
>>> actually view the individual projects.
>>> Vaibhaw: how do we do that? My Squeak skills are rusty
>>>
>>> On Thu, Jan 7, 2010 at 7:06 AM, Bryan Berry <bryan at olenepal.org> wrote:
>>>
>>>
>>> hey Peter,
>>> first could u use pastie.org or jsbin.com for small code samples? makes it
>>> easier for everyone to view and comment on your code
>>>
>>> On Thu, Jan 7, 2010 at 3:47 AM, Peter Gijsels <peter.gijsels at gmail.com>
>>> wrote:
>>>
>>>
>>> Hi Bryan,
>>>
>>> I had a look at the Karma.rand() and Karma.shuffle() functions and
>>> have some remarks.
>>>
>>> Here is a link to some code illustrating the comments below:
>>> http://dl.dropbox.com/u/3249723/js-shuffle.tgz
>>>
>>> It contains the current Karma implementation of these two functions,
>>> an alternative implementation (AlternativeKarma) and some code to
>>> print some histograms.
>>>
>>> 1) The values returned by Karma.rand(min, max) are not uniform: the
>>> probability of getting min is half of any other element between min
>>> and max. The same goes for max. If you use Math.floor i.s.o.
>>> Math.round (and adjust the argument to Math.random) you have a uniform
>>> distribution.
>>>
>>>
>>> Good point! Let's use your code
>>> do you have any idea how we could write a unit test to check that values
>>> aren't uniform? That way I don't change it back to a crappy implementation
>>> by accident later
>>>
>>>
>>>
>>> 2) The Karma.shuffle(array) function does not return each permutation
>>> with equal probability. If you work through the math for a three
>>> element array you can derive this. Or you can simply make a histogram
>>> ;-) In the code linked above I make a histogram and you can see that
>>> not every permutation is equally probable. The alternative
>>> implementation uses the Fisher-Yates algorithm, and does not have this
>>> problem.
>>>
>>>
>>>
>>>
>>> 3) The unit test for Karma.shuffle is not deterministic: it will fail
>>> with a probability 5/5! = 1/24. I do not know of a good way to test
>>> these kind of functions. You could do something like the histogram
>>> thing in the code above and check that the distribution is roughly
>>> uniform. But then the test is still not deterministic and if you want
>>> a small chance of failure, running the test would take a bit of time.
>>> Maybe one thing that you should check is that the result of calling
>>> shuffle() contains the same elements as the original (sort both and
>>> see that they have the same elements in the same position).
>>>
>>>
>>> Ouch, you can tell that my CS fundamentals are pretty weak ;)
>>> I think that shuffling only 5 elements isn't really a valid test, better
>>> to shuffle 25 elements and see if it fails out of 100 tests. I think 1/500
>>> is a tolerable failure rate, what do u think?
>>> let me test that out now
>>>
>>>
>>> On an unrelated note, did you have time to prepare a download link
>>> with the Squeak stuff? Tomorrow evening I have some time to have a
>>> look at it.
>>>
>>> Regards,
>>> Peter
>>>
>>>
>>> Sorry I uploaded most of the files but forget to upload one important
>>> file, the squeak image ;). I will upload that now and send you the link
>>> shortly
>>>
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - www.avg.com
>>> Version: 9.0.725 / Virus Database: 270.14.127/2603 - Release Date: 01/06/10
>>> 13:20:00
>>>
>>>
>>>
>>>>
>>>
>>>
>>> No virus found in this incoming message.
>>> Checked by AVG - www.avg.com
>>>
>>> Version: 8.5.432 / Virus Database: 270.14.131/2609 - Release Date: 01/09/10
>>> 07:35:00
>>>
>>>
>>
>
>
>
> --
> «Sugar Labs is anyone who participates in improving and using Sugar.
> What Sugar Labs does is determined by the participants.» - David
> Farning
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
More information about the Sugar-devel
mailing list