Hardmath123 wrote:
I've got a question: what does 'morphic' actually mean? I know it relates to morphs which (I think) are like widgets, but is there something deeper? A quick Google gave a Wiki result. The Wikipedia page actually returned a link to your Morphic.js (
), but there was nothing useful and explanatory.
Hi Hardmath123,
you're right, the Wikipedia article is just a stub. Here are three papers that explain what Morphic is all about:
http://selflanguage.org/documentation/p … ctness.pdf
http://ftp.squeak.org/docs/Self-4.0-UI-Framework.pdf
http://stephane.ducasse.free.fr/FreeBooks/CollectiveNBlueBook/morphic.final.pdf
Last edited by Jens (2011-12-01 14:12:32)
Offline
@Jens: I hadn't realized you made a version of Morphic for Python! I wish I had known about that a long time ago! Do you plan to expand on it once Snap! is released?
Offline
bharvey wrote:
Jens wrote:
emulate right-click as cmd-click for old Macs
Old? It works the same way on my new Mac.
Well, apparently Macs can do secondary clicks by way of multi-touch gestures now, so I've taken out the cmd-click kludge again, which fixes the reported problem.
Offline
MathWizz wrote:
@Jens I think I may have found a bug with morphic.js (or I just have very sloppy code.) For my project http://jsscratch.co.cc/player/player.ph … er+test.sb, when to right click on the right have of the screen, you always get the world menu, even if right clicking on a morph while the right side works fine.
fixed! Could you try the new version of Morphic with your project (which is amazingly awesome, btw!)
Offline
shadow_7283 wrote:
@Jens: I hadn't realized you made a version of Morphic for Python! I wish I had known about that a long time ago! Do you plan to expand on it once Snap! is released?
I'm glad you like the Python version of Morphic. I don't have any plans for it in the foreseeable future, so I've released it under an MIT license. Go ahead and take it for whatever you want to do with it!
Offline
Jens wrote:
bharvey wrote:
Jens wrote:
emulate right-click as cmd-click for old Macs
Old? It works the same way on my new Mac.
Well, apparently Macs can do secondary clicks by way of multi-touch gestures now, so I've taken out the cmd-click kludge again, which fixes the reported problem.
I have a Mac Mighty Mouse which can right click >:D
Offline
MathWizz wrote:
nXIII wrote:
awesomesauce
Thanks. I think I have fixed it with this: https://developer.mozilla.org/en/JavaSc … neProperty
Yeah, that's even better. You might want to do a feature test and use __defineGetter__ for your legacy users.
Offline
@ Jens
All your Snap! improvements are welcome !
I've noticed :
- a good way to change names of Script variable, similar to Byob
- nice shadows
- lists are again visible
- magagement of Script area is more user-friendly, quick, "fluent"
- great performance
etc
I've had recently several crashes, when playing with lists loaded by a rather heavy process(<100 items). At this occasion I noticed that Chrome + Snap! took a large processor occupancy - around 50 %, even when idle. And thus the crashes could have been caused by a too high proc occupancy. ?
I am going to make further investigations.
Offline
(...)
Many aspects in line with my previous message.
1 - the proc load of Snap! is significant, even idle.
2 - This load is lower with some browsers. For example the last Firefox upgrade (Aurora) is much better than Chrome (to be confirmed )
3 - I explain my several crashes as follows : I've experimented a method (see above) to calculate sine/cosine with an excellent approximation (at least 8 decimals). So I decided to store the 90 sin values into one list as to extract immediately a "sine" value with ITEM n OF SINLIST . It works. The problem occurs when I try to store the 90 "sine/cosine" couples. It scratches immediately due to an overload of the processor and/or handling of a too large list with only 90 items but a lot of decimals.( I don't know how to "round" these sine/cosine decimal values ?)
Offline
(...) After further investigation the answer is ...
In fact I've had a Snap! crash (probably due to script mistake). Snap! froze, but after a while for any reason it recovered and I could start again to work. But in fact the memory was still corrupted and created an overload of the processor. Creating a new list amplified the problem until complete un-recoverable crash. Anyhow, I have installed a "processor occupancy" indicator to estimate Snap! load in different situations.
Offline
xly wrote:
... But in fact the memory was still corrupted and created an overload of the processor. ...
Thank you so much for doing all this testing! This is really terrific feedback.
Did your bug involve making circular lists? That would be my first guess about what might lead to the situation you describe.
Offline
Do you think there's the slightest chance of integrating Morphic and Box 2D? I know it would be a big undertaking, but if someone could give me pointers in the right direction, if it is at all possible...
The reason being, Windows 8 has a HUGE potential market, and if I can work a well-designed game in just after release, I figure it might stand a chance. (For those of you who don't know, Microsoft is now supporting HTML/JavaScript- based apps, and Morphic seems to be a perfect fit).
Offline
shadow_7283 wrote:
Do you think there's the slightest chance of integrating Morphic and Box 2D? I know it would be a big undertaking, but if someone could give me pointers in the right direction, if it is at all possible...
The reason being, Windows 8 has a HUGE potential market, and if I can work a well-designed game in just after release, I figure it might stand a chance. (For those of you who don't know, Microsoft is now supporting HTML/JavaScript- based apps, and Morphic seems to be a perfect fit).
Tut tut. Desperate for money are you?
I don't think intergrating it would be such a big deal. First of all, morphs need to be able to rotate. Second, Box2D would just tell the morphs where to go which is not a big deal.
Offline
@barvey & Jens
Today ,back to Chrome, the list handling is perfect.
The list window displays correctly..
The test consists in filling 1,2,3,4.. lists of 300 item = (item nb x 10 )(square root of this number)
The proc is Pentium E5300.
Smnap! process load a follows :
- Idle = 12%
- with 1 list = 25 %
- with 2 lists = 50 %
- with 3 lists = 50 %
- with 4 lists the system blocks (but without increasing the proc load !
- UNtil 3 lists the display window of any item of any list works correctly.
Offline
(....)
You should look after the handling of "decimal numbers" by Snap!
In the test case the square root numbers are displayed with (at least) 12 decimals (!) which has no practical interest. First see how to reduce the number of decimals ? And then test make the same test . See the test screen.
Offline
@ Jens & bharvey
Back to Chrome and trigonometric applications.
Snap! is very stable. Processor load allways stays around 50 % with rather large lists.
I guess that most of my Snap! freezing were due to "programmer errors"
One typical example : if you look for one item of a list which does not exists in the list, the application freezes ...and after a while recovers or not. So if you look for Item n of list "foo" you need to check before that "foo" is not empty and that n is not larger than "length of foo". It is obvious. But this kind of usual error can make Snap! blocked...and then you need to re-write all your application. Small error, but important consequences....!
Offline
MathWizz wrote:
Tut tut. Desperate for money are you?
I don't think intergrating it would be such a big deal. First of all, morphs need to be able to rotate. Second, Box2D would just tell the morphs where to go which is not a big deal.
*cough* I need to be able to fund my various electronic ventures. *cough*
Open source projects are for when I'm 50. XD (just kidding)
Last edited by shadow_7283 (2011-12-03 11:27:49)
Offline
shadow_7283 wrote:
Open source projects are for when I'm 50. XD (just kidding)
Umm, we are releasing Snap! under the GPL, and I guess that applies to morphic.js too, so anything you build on top of it has to be GPLed.
About Box2D.js, it looks very cool, but from the caveats on the web page it seems not quite ready for prime time. Maybe you should work on improving Box2D.js itself!
Offline
bharvey wrote:
Umm, we are releasing Snap! under the GPL, and I guess that applies to morphic.js too, so anything you build on top of it has to be GPLed.
Hmmm.... I thought it was going to be released under the MIT license. Oh well. Maybe I can still incorporate it in my project, but get revenue through advertisements? Not sure what the GPL or Microsoft has to say about that.
Offline
shadow_7283 wrote:
Hmmm.... I thought it was going to be released under the MIT license. Oh well. Maybe I can still incorporate it in my project, but get revenue through advertisements? Not sure what the GPL or Microsoft has to say about that.
Sure.
Actually we are talking about making an exception for morphic.js and putting that under the LGPL, which would allow its use in commercial software, provided that any improvements to morphic.js itself be freely available under LGPL.
This is something I care about more than Jens, who just wants to get the software out and make sure everyone can use it. But if Microsoft or Apple or someone takes Snap! and makes some improvements to it, and makes the improvements unfree, I'll be upset. Hence GPL.
But if people make commercial projects using morphic, that might be a good thing even if those projects aren't free.
Alternatively we could GPL it and then license exceptions for commercial projects that send Jens some percent of the money.
Offline