bharvey wrote:
webstermath wrote:
I am also thinking that with all you probably now have going, you might not have time to look over that design pattern project I emailed you about.
Oof, I'm sorry. Right now it's the beginning of classes at Berkeley that has me frantic. You're one of four people whose stuff I've promised to read. I'll get to that list once the rush settles down.
No worries. I know you are extremely busy.
When you do have the time though, you may first want to check out my latest project:
Scratch Script
I do not know if you remember when we were talking and I suggested that recursion could be implemented in Scratch because it is Turing Complete. Well, Scratch Script is an entire scripting language I built on top of Scratch that among other things allows for recursion. Soon I hope to also implement first-class functions.
Enjoy.
Offline
shadow_7283 wrote:
MSIE isn't worthy to be called a Microsoft product. Pay no attention to it.
And Chrome runs CSS3 and Canvas BEAUTIFULLY. I would know. I'm been developing a website, and Chrome runs it correctly 100% of the time, while Firefox has a few persistent and annoying errors. (By the way, it's called Techwiq)
On another note,
I managed to escape another year of learning Word 2007 at school (while practically teaching the class for a week)! I would have thought that high school would be a tad more advanced, but ah well.
are you kidding me ?
firefox is better on canvas and CSS3 then chrome because if its superior hardware acceleration ..
http://chats.ws/learning << see for yourself use of all html5 things and a few 4 aswell you will find out a lag on Chrome while firefox and even ie9 runs it lagless ..
chrome is like um best for netbooks but it fails to take the most out of a machine
so on a super old machine chrome might run faster then firefox
but on anything newer then Pentium 4 with even the least amount of GPU solutions Firefox and Internet Explorer (YES!) runs blazingly faster then Chrome
oh and by the way the bugs might be raised due to firefox's increased security setup restrictions .. for instance mozWebSocket instead of WebSocket
Last edited by fanofcena (2011-09-03 11:53:39)
Offline
webstermath wrote:
Wow. That's cool. Your technique for recursion reminds me of the time at the Logo lab when Radia Perlman made a turtle controller box for 3-year-olds that had big buttons with pictures for forward, right, etc. And you could attach a second box on top with numbers 1-10, and a third box on the left with buttons "start remembering," "stop remembering," "erase," and "do it" for programming. (The idea of the detachable boxes was to do research on how much complexity kids of different very small ages could handle.) And someone, Dave Silver I think, wrote a recursive program for this thing by standing the box on end and putting in a program that made the turtle back up, then come forward and ram the "do it" button!
Offline
fanofcena wrote:
firefox is better on canvas and CSS3 then chrome because if its superior hardware acceleration ..
Uh, no. Watch it and weep.
Offline
bharvey wrote:
webstermath wrote:
Wow. That's cool. Your technique for recursion reminds me of the time at the Logo lab when Radia Perlman made a turtle controller box for 3-year-olds
Three years old, huh? No I am actually quite flattered for my project to be compared with one of such CS luminaries. The turtle being forced to ram itself for some reason brought Kafka's In der Strafkolonie to my mind...
Speaking of recursion, the progress of my project is becoming seriously recursive with no end to yak shaving. I started with the intent to just build a collaboration friendly educational game engine, upon which Scratchers could build games that would compete with their proprietary capitalist counterparts. From there I decided I needed to write a design pattern. Now I am writing a full fledged language. It also just occurred to me that maybe I should write an assembler for Scratch Script to optimize speed.
So is any up for writing Scratch Assembly?
By the way, I still need to work on convincing you and Jen to put Snap on Github. It is like you have the One Ring and don't know it (not that I am calling you Hobbits). I really think Snap could birth a era of accessible and social computer programming, especially when integrated with touch-screens, voice-recognition, motion-sensing input devices (Kinect), and radically cheap computers (Raspberry Pi). I was recently talking to a Mozilla project manager and became even more convinced that if Snap came to their attention and the attention of the legendary John Resig (JQuery), these folks would willing use their super-powers to bend the very nature of the internet universe to allow an optimization of Snap to the point it could out-compete other text-based languages for serious applications, achieving total domination.
Ok I will stop. :-)
Offline
webstermath wrote:
achieving total domination.
Total domination is good.
Just let us get a first version out and then we'll talk about inviting in the rest of the world.
(Now, if you could promise me Guy Steele, then I'd be tempted. )
PS I'm honored to be compared to a Hobbit!
Offline
webstermath wrote:
So is any up for writing Scratch Assembly?
i tried to write scratch on C++ (so that is compiled on runtime but failed -.- it starting becomeing more of and IDE instead of a language)+ at that time i was too new with multithreading on C++ so it all became a fayul lol now i think i can restart it again
oh and talking about jQuery i already asked the snap team to port it to DOM instead of single canvas for a ton of optimization
Last edited by fanofcena (2011-09-04 01:14:40)
Offline
John Resig has left Mozilla, but I certainly wouldn't mind his input
As you have already noticed I'm not a huge fan of JQuery and DOM based apps, my heroes being Alan Kay, Dan Ingalls, John Maloney instead. See, there are already zillions of DOM based Scratch variants out there, even on Github. I believe that our task is to take the concept further and "lower", and build a more intuitive GUI. Rendering speed isn't the issue here, rather what happens in between display cycles and being in control of every pixel in the system.
Offline
I'm not Jens, but just right-click the display, and choose export
Offline
Jens wrote:
John Resig has left Mozilla, but I certainly wouldn't mind his input
As you have already noticed I'm not a huge fan of JQuery and DOM based apps, my heroes being Alan Kay, Dan Ingalls, John Maloney instead. See, there are already zillions of DOM based Scratch variants out there, even on Github. I believe that our task is to take the concept further and "lower", and build a more intuitive GUI. Rendering speed isn't the issue here, rather what happens in between display cycles and being in control of every pixel in the system.
I know. Resig went to Khan Academy. One of the first things he did was build a highly intuitive semantic markup language to make it easier for the Khan Academy community to contribute exercises. Someone asked him on his blog if a block-based language would be the next step. He responded that he didn't think a block-based language would be expressive enough. I am hoping to change his mind.
You know what you are doing though, Jens. You have already done amazing work on BYOB and Snap. As I am not too familiar with morphic, do you think Snap will catch up in speed to other HTML5 apps, both for deployment and execution?
Endlich kann ich nur sagen, dass Snap echt geil ist.
Offline
fanofcena wrote:
webstermath wrote:
So is any up for writing Scratch Assembly?
i tried to write scratch on C++ (so that is compiled on runtime but failed -.- it starting becomeing more of and IDE instead of a language)+ at that time i was too new with multithreading on C++ so it all became a fayul lol now i think i can restart it again
oh and talking about jQuery i already asked the snap team to port it to DOM instead of single canvas for a ton of optimization
Cool. Scratch on C++ is quite an undertaking.
My interest, though, is not to build Scratch on top of another language but to build languages on top of Scratch. By building an assembly code, it should be possible to run the code of any language at optimal speed during run time once the code is compiled to the assembly language. Right now, I am reading about bytecode, what Java compiles to. Bytecode is interesting because it run on a virtual machine. I wish to run code on Scratch in a way similar to how Java is run on a virtual machine. Does this make sense?
If you want to help, that would be completely awesome.
Offline
shadow_7283 wrote:
fanofcena wrote:
firefox is better on canvas and CSS3 then chrome because if its superior hardware acceleration ..
Uh, no. Watch it and weep.
no comments.. to what i have seen chrome runs slower then firefox a lot unless its web-gl based project
Last edited by fanofcena (2011-09-06 06:53:45)
Offline
webstermath wrote:
fanofcena wrote:
webstermath wrote:
So is any up for writing Scratch Assembly?
i tried to write scratch on C++ (so that is compiled on runtime but failed -.- it starting becomeing more of and IDE instead of a language)+ at that time i was too new with multithreading on C++ so it all became a fayul lol now i think i can restart it again
oh and talking about jQuery i already asked the snap team to port it to DOM instead of single canvas for a ton of optimizationCool. Scratch on C++ is quite an undertaking.
My interest, though, is not to build Scratch on top of another language but to build languages on top of Scratch. By building an assembly code, it should be possible to run the code of any language at optimal speed during run time once the code is compiled to the assembly language. Right now, I am reading about bytecode, what Java compiles to. Bytecode is interesting because it run on a virtual machine. I wish to run code on Scratch in a way similar to how Java is run on a virtual machine. Does this make sense?
If you want to help, that would be completely awesome.
I dont use Java .. i use script instead .. well i am writing a SCRATCH IDE for Server Side JavaScript inspired extremely from snap
Offline
fanofcena wrote:
shadow_7283 wrote:
fanofcena wrote:
firefox is better on canvas and CSS3 then chrome because if its superior hardware acceleration ..
Uh, no. Watch it and weep.
no comments.. to what i have seen chrome runs slower then firefox a lot unless its web-gl based project
Not for day-to-day web browsing. Plus, Chrome has better support for standards.
Offline
browser wars.
Hey guys, let's keep the discussion in this thread related on BYOB/Snap! and skip bashing browsers, ok? We're trying very hard to make Snap! run and look the exact same on every current browser, and so far I'm confident that we're successful.
Besides, it really is extremely interesting so explore the people and concepts behind various browser implementations. To me, the most fascinating piece of software architecture is Google's V8 Javascript engine. If you dig a little bit into its who's who you'll discover that - surprise! - it all based on Smalltalk research. A couple of years ago there were two independent teams of geniusses working on optimizing Smalltalk, one being the SELF group around David Ungar, Urs Hölzle, Lars Bak (remember him, he's important) and also Scratch's John Maloney, and the other being the STRONGTALK group around Dave Griswold, Gilad Bracha et al. These two teams eventually joined and were aquired by SUN, where they finally got sucked up by JAVA.
So, I encourage y'all to google around for those projects and for the awesome people behind them and to learn something about VM optimization techniques. Another name you should look out for is Elliot Miranda, there are some fine talks he gave on optimizing Squeak on Youtube (note: method lookup is costly in OOP systems).
V8 is blazingly fast because it is architected by one of the gods of VM design - Lars Bak (yeah, the Smalltalk/SELF guy, told ya he's important). V8 doesn't compile to byte-code but directly to machine code, and it inline-caches the compilation results.
Firefox's JS engine explores another aspect of STRONGTALK's research, that of strong typing. Firefox makes extensive use of type inferencing to gain spectactular performance increases.
Thing is, both implementations are open source, as are the Smalltalk, SELF and STRONGTALK VMs. So, while there always is competition among them, there is also code-sharing and even collaboration involved. And that's precisely what I'd like y'all to learn to from this: Sharing promotes progress, "hiding" and "protecting" ideas sucks in the grand scheme of things.
Oh, and while we're at it: Part of our grant proposal is to implement inline-JIT-compilation for Snap! and to cache the results. Guess where we've got this idea from?
Offline
What's inline-JIT-compilation?
Are you a Southerner, using "y'all"?
Offline
JIT means just-in-time, which means that we'll be compiling blocks as we need them to be compiled, not all at once. Inline means that we're not going to output a separate compiled file but that we'll do it within the evaluator.
Oh, and sure, I'm a German Southerner
(actually I'm mimicking Brian who convinced me that the idiom is missing in the Queen's English)
Offline
Jens wrote:
Besides, it really is extremely interesting so explore the people and concepts behind various browser implementations.
Yes! I have just been reading about these compilers to get ideas for the gianormous project I am about to announce to the Scratch community. SpiderMonkey now also does JIT compilation. Both V8 and SpiderMonkey are open-source and have great documentation. I have found it interesting how both these engines started by generating bytecode and then moved on to compiling right to machine code. Would it be possible (and worthwhile) to write an engine for Snap that generates Javascript for the IDE but skips the javascript engine for execution and goes right to machine code?
BTW, one of my favorite commercials when I lived in Freiburg was a tourism ad for Baden-Württemberg in which some dude on a roller-coaster is explaining all the great things about Baden-Wuerttemberg in Badisch. The comercial then ends with "Wir Koennen alles ausser Hochduetsch". :-)
Offline
Sorry Jens.
I guess I'm just passionate about technology, sometimes in a destructive way.
Offline