nXIII wrote:
sparks wrote:
The URL reading block reports the raw HTML, I guess that's useful if you want things to be set out similiarly to a webpage, though without being able to set costumes to webpage images, it might not be worth much. Another problem is that when reading offline, it really slows everything down, especially for very long webpages. (although I have found writing long bits of information (such as pixil colours in an image) is actually faster to a file than to a list, it does not get noticably slower as the size increases.)
How about writing it to a list, then concatenating the list into a non-space-joined variable, then writing it all at once to a file.
sparks wrote:
sandboxing would be good, but it limits where a file could be placed, what about files in my documents or other locations? I was thinking of just locking certain paths, eg if the typed path contains windows in it, it will not follow through with the action.
How about it automatically prefixes all paths with the path to "My Documents" or something?
good ideas, loading an entire page of html to a list still takes a long time. and for the prefix "my documents" that fine for most users and would solve the problem, what if someone stores most of their things on another hard drive, not in their my documents folder? Urgh, I keep trying to save posts with ctrl s, stupid dropbox!
Offline
bharvey wrote:
Wow! That's a big ongoing time commitment. Moderating the Scratch page is a full time job for... I don't know, how many people? Plus I think they rope in undergraduates part-time.
We'd definitely like to be able to share BYOB projects, but my university's lawyers would never let us host it, not without the kind of paid supervision MIT does on their site.
Well, I'm kind of unsure about the java player... CYOB (sorry for the ripoff name, it was called Custom Blocks, but then everyone started saying CYOB...) would be quite difficult to implement (impossible, really, because the java player is not written in Smalltalk)
bharvey wrote:
One of Jens's brilliant ideas in BYOB was to extend the reach of the Sensing [<var> OF <sprite>] block. I wonder if you could do that too -- [|costume| of <sprite3>] and so on. And have one matching [SET <var> OF <sprite> TO <value>] (or even just extend SET to let a sprite set its own attributes). Then you could have those capabilities, which I agree are crucial, without a zillion individual blocks. And when you have first class costumes, etc., you could extend the second input of that Sensing block to work for non-sprite objects. Imagine [|arity| OF <procedure>] etc.
Hm... well, what would 'costume of sprite' report? The name? We don't have first-class costumes, so that may not be a very useful feature in the current Panther.
bharvey wrote:
If you have any suggestions about making Panther safer to use, such as methods currently employed by Scratch, please suggest them.
The first obvious thing that occurs to me is to just sandbox it -- chroot Panther so it can only get at files the user explicitly moves into a Panther-data folder. That would vastly reduce the need to worry about the security of each individual feature, although it wouldn't solve DoS problems.
That may be a very good idea... just like the "Scratch Projects" folder, a "Panther Data" folder is created when the program is first run, and any file I/O blocks will add its path to their beginning. Of course, CYOB provides a route around that, but the warnings for CYOB are not exactly subtle, so I don't think this would be too much of a problem.
bharvey wrote:
Sadly, while we are working hard to promote Panther, I don't think Paris is a realistic choice here
Bummer. I'll have to find a way to come visit you. (Although OTOH all this posting of ages and places is probably breaking some rule.)
I might be able to come to MIT! When is it?
Offline
Wow. I just thought about how far Panther has come from that small little idea by a new user... (Me)
Last edited by SeptimusHeap (2010-05-05 17:30:06)
Offline
Idea: Badges.
Like on Kongregate (kongregate.com) that you get to keep (No 'points' though, just for show).
A user could make a badge in their game?
Offline
sparks wrote:
that would require a server
Which I have (kind of)
EDIT: Whoa, this thread has almost twice the amount of views as any other Advanced Topics thread
Last edited by nXIII (2010-05-05 19:23:57)
Offline
sparks wrote:
The URL reading block reports the raw HTML
Ah. We were thinking along the lines of (1) flushing all the formatting controls altogether; (2) report lines of text, using only the text part of links, and the alternate text of pictures; (3) put the URL for a link as if it were a separate line, but type-tagged as a URL (the MapReduce api works with tagged data). I guess it depends on whether you want to render the page (in which case you need all the fluff) or search it (in which case most of the HTML is just a distraction).
it does not get noticably slower as the size increases.
Very high on my list of things we need is a reimplementation of lists to give Theta(1) amortized performance on both list-ish and array-ish operations! All my BYOB programs are dog slow.
sandboxing would be good, but it limits where a file could be placed, what about files in my documents or other locations? I was thinking of just locking certain paths, eg if the typed path contains windows in it, it will not follow through with the action.
Again it depends on what kinds of programs you expect your users to write. For purposes of learning to program, which is my main interest, there's no need at all for Panther/BYOB/Scratch programs to have access even to the user's own files, let alone the system files. So I'd lean for draconian (and therefore easy) security. If the programs can get to My Documents it's too easy to install viri in Word documents.
I for one would love to see costumes imported from online, it has a zillion and one uses, but it would also have a few issues as far as the images that can be displayed.
Wait, plain Scratch lets you import costumes from online, why is this a problem?
why won't the lawyer let you host it? is there some legal issue we ought to be aware of?
Profanity, slander, child molestation, malware... If a relatively rich organization (not compared to a corporation, but compared to a person) hosts it, there are all kinds of opportunities to be sued. You should get advice from the Scratch Team about how they handle the legal issues. And IIRC you can get in way more trouble for slander in the UK than in the US.
I think visiting england would be awesome! if you're ever in the area, let me know!
Oh, this is very tempting. I'm spending half of July and early August in France, and in theory I could just chunnel over, but the plan was to be driving around the south of France, so it would be quite a detour.
Offline
sparks wrote:
The URL reading block reports the raw HTML
Ah. We were thinking along the lines of (1) flushing all the formatting controls altogether; (2) report lines of text, using only the text part of links, and the alternate text of pictures; (3) put the URL for a link as if it were a separate line, but type-tagged as a URL (the MapReduce api works with tagged data). I guess it depends on whether you want to render the page (in which case you need all the fluff) or search it (in which case most of the HTML is just a distraction).
yes, we might want to strip the HTML altogether, but that's some pretty hefty parsing for Squeak, which is, sadly, fairly limited parsing-wise (although I DID make an implementation of BBCode for the news)
it does not get noticably slower as the size increases.
Very high on my list of things we need is a reimplementation of lists to give Theta(1) amortized performance on both list-ish and array-ish operations! All my BYOB programs are dog slow.
The best strategy is to limit file writing to one command (or two, one to clear the file) and just use a very large variable that contains all write data.
sandboxing would be good, but it limits where a file could be placed, what about files in my documents or other locations? I was thinking of just locking certain paths, eg if the typed path contains windows in it, it will not follow through with the action.
Again it depends on what kinds of programs you expect your users to write. For purposes of learning to program, which is my main interest, there's no need at all for Panther/BYOB/Scratch programs to have access even to the user's own files, let alone the system files. So I'd lean for draconian (and therefore easy) security. If the programs can get to My Documents it's too easy to install viri in Word documents.
Yes, I was considering a "Panther Data" or "Panther Files" folder IN My documents, like "Scratch Projects".
I for one would love to see costumes imported from online, it has a zillion and one uses, but it would also have a few issues as far as the images that can be displayed.
Wait, plain Scratch lets you import costumes from online, why is this a problem?
As in a block that automatically imports images from online
why won't the lawyer let you host it? is there some legal issue we ought to be aware of?
Profanity, slander, child molestation, malware... If a relatively rich organization (not compared to a corporation, but compared to a person) hosts it, there are all kinds of opportunities to be sued. You should get advice from the Scratch Team about how they handle the legal issues. And IIRC you can get in way more trouble for slander in the UK than in the US.
Hm... good point, I'm not sure how to deal with this.
Offline
nXIII wrote:
Hm... well, what would 'costume of sprite' report? The name? We don't have first-class costumes, so that may not be a very useful feature in the current Panther.
The context in which I made that suggestion was a litany of little reporter blocks. I guess Scratch has a (costume) block that reports a number, right? Anyway, the point is, whatever you want a little no-input reporter for, put it in the OF dropdown instead. I'm trying to find a way to accommodate the Panther goal of being able to do anything from a program that you can do from the GUI (which I fervently support) with the Scratch goal of not cluttering the palette (which I also understand). If you don't like the costume example just pick a status reporter you do like!
"Panther Data" folder is created when the program is first run, and any file I/O blocks will add its path to their beginning. Of course, CYOB provides a route around that, but the warnings for CYOB are not exactly subtle, so I don't think this would be too much of a problem.
No, you don't do the sandboxing in the I/O blocks. You do a chroot
system call (I don't know what it's called in Windows but there must be an equivalent) so that the operating system redirects all I/O operations to a restricted directory. In that directory you build a whole file system, including Panther itself. Then it doesn't matter if the bad guy can write in Smalltalk.
I might be able to come to MIT! When is it?
Aug 11-14: http://scratched.media.mit.edu/discussi … hink-remix
It would be awesome if you came! And if you're in the US you should come visit Berkeley, too, so we can explain why you should come here to study computer science.
Offline
bharvey wrote:
nXIII wrote:
Hm... well, what would 'costume of sprite' report? The name? We don't have first-class costumes, so that may not be a very useful feature in the current Panther.
The context in which I made that suggestion was a litany of little reporter blocks. I guess Scratch has a (costume) block that reports a number, right? Anyway, the point is, whatever you want a little no-input reporter for, put it in the OF dropdown instead. I'm trying to find a way to accommodate the Panther goal of being able to do anything from a program that you can do from the GUI (which I fervently support) with the Scratch goal of not cluttering the palette (which I also understand). If you don't like the costume example just pick a status reporter you do like!
Oh, so you want to compact all zero-input reporters into the '' of '' block? That's a good idea!
"Panther Data" folder is created when the program is first run, and any file I/O blocks will add its path to their beginning. Of course, CYOB provides a route around that, but the warnings for CYOB are not exactly subtle, so I don't think this would be too much of a problem.
No, you don't do the sandboxing in the I/O blocks. You do a chroot
system call (I don't know what it's called in Windows but there must be an equivalent) so that the operating system redirects all I/O operations to a restricted directory. In that directory you build a whole file system, including Panther itself. Then it doesn't matter if the bad guy can write in Smalltalk.
Oh... I don't know how to do that. I should look into it, it looks pretty much perfect!
I might be able to come to MIT! When is it?
Aug 11-14: http://scratched.media.mit.edu/discussi … hink-remix
It would be awesome if you came! And if you're in the US you should come visit Berkeley, too, so we can explain why you should come here to study computer science.
Cool! I'll look into that, and I bet I can come.
Offline
Yeah. I'm not going to study computer science (If I do) for a LOOOONG time.
But, hey! I'm the only one I know that programs in:
NXT-G
Lua
Scratch
Panther
VB (2010)
Hmm...
Alice (A little)
Offline
SeptimusHeap wrote:
Yeah. I'm not going to study computer science (If I do) for a LOOOONG time.
But, hey! I'm the only one I know that programs in:
NXT-G
Lua
Scratch
Panther![]()
VB (2010)
Hmm...
Alice (A little)
![]()
HEY! I'm the NXT-G EXPERT!
Offline
nXIII wrote:
Oh, so you want to compact all zero-input reporters into the '' of '' block? That's a good idea!
Yeah, and compact all the setters into SET.
Oh... I don't know how to do that. I should look into it, it looks pretty much perfect!
I just googled "windows chroot" and discovered that Windows itself does not come with an equivalent, but there are a bunch of third-party solutions, some of them free.
Cool! I'll look into that, and I bet I can come.
Awesome. Do you like hot spicy Chinese food?
Offline
SeptimusHeap wrote:
NXT-G
Lua
Scratch
Panther![]()
VB (2010)
Alice (A little)
Well, instead of just collecting more and more languages forever, maybe you're ready to just skip to God's programming language.
Offline
I am vaguely interested in computer science, but am more interested in robotics and artificial intelligence. That's one of the reasons I'm so keen to get live webcam feed for Panther, its a great way to introduce people to motion and colour detection as well as simple object recognition. Does MIT do any work with Robotics? if so, I might just have to come over some day and look around I guess I might convince my parents to come to Paris for a few days, I could do a talk about Panther! I'll see what they say
what date is it again?
Offline
Good luck guys with all the Panther Programming to be honest i dont see how you can do programming on scratch it's only a simple programming language but i suppose vriables help in games. Good Luck!
Offline
rossyboyfilm wrote:
Good luck guys with all the Panther Programming to be honest i dont see how you can do programming on scratch it's only a simple programming language but i suppose vriables help in games. Good Luck!
![]()
Thanks!
We want to make Panther more advanced but still let it be simple to the users. Also, you have to program more blocks in using the source code, and you need a decent knowledge of Smalltalk for that.
Offline
MathWizz wrote:
SeptimusHeap wrote:
Yeah. I'm not going to study computer science (If I do) for a LOOOONG time.
But, hey! I'm the only one I know that programs in:
NXT-G
Lua
Scratch
Panther![]()
VB (2010)
Hmm...
Alice (A little)
![]()
HEY! I'm the NXT-G EXPERT!
But I haz 2.0
Offline
bharvey wrote:
SeptimusHeap wrote:
NXT-G
Lua
Scratch
Panther![]()
VB (2010)
Alice (A little)Well, instead of just collecting more and more languages forever, maybe you're ready to just skip to God's programming language.
I can't really understand what it is
I might add Actionscript to my list.
SQL?
Last edited by SeptimusHeap (2010-05-06 07:51:37)
Offline
sparks wrote:
I am vaguely interested in computer science, but am more interested in robotics and artificial intelligence. That's one of the reasons I'm so keen to get live webcam feed for Panther, its a great way to introduce people to motion and colour detection as well as simple object recognition. Does MIT do any work with Robotics? if so, I might just have to come over some day and look around
I guess I might convince my parents to come to Paris for a few days, I could do a talk about Panther! I'll see what they say
what date is it again?
O_O MIT ish ze king of de ROBOTS!
EDIT: MIT stands for Massachusetts Institute of Technology.
Last edited by MathWizz (2010-05-06 09:44:26)
Offline
sparks wrote:
I guess I might convince my parents to come to Paris for a few days, I could do a talk about Panther! I'll see what they say
what date is it again?
16-20 Aug. The BYOB
workshop is Fri 20 Aug., I think in the afternoon; it would be easy (because we don't have to ask anyone ) to carve out a little time there for a Panther demo. (I don't think the people at the workshop will be ready to write custom blocks in Smalltalk, though.)
Offline
bharvey wrote:
sparks wrote:
I guess I might convince my parents to come to Paris for a few days, I could do a talk about Panther! I'll see what they say
what date is it again?
16-20 Aug. The BYOB
workshop is Fri 20 Aug., I think in the afternoon; it would be easy (because we don't have to ask anyone) to carve out a little time there for a Panther demo. (I don't think the people at the workshop will be ready to write custom blocks in Smalltalk, though.)
Wow! That is nice of you!
I'm sure we'd like to make a demo. But, unfortunatly I don't have a passport and it is unlikely that my parents would let me go to Paris anyway.
Offline