Discuss Scratch

infinitytec
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Bump.
NoMod is back.
timrowledge
Scratcher
14 posts

Whiskers: Scratch 2.0 for Incompatible Devices

Jonathan50 wrote:

Thanks! It works great, but why shouldn't the image work independent of VM architecture?
That would be something to do with the fact that the vm architecture is intimately bound up with the image architecture. It needs to understand the object format in memory or you're really out of luck. Remember, Smalltalk does not load up a bunch of sources and create an image every time you start up; it loads a memory dump (literally - we write the used section(s) of the object memory out to a binary file and read it in) and starts where it left off. This is how you can save an image where you are in the midst of debugging something, transfer it to another machine and carry on working. (With obvious limits if you have been using machine specific outside things like sockets. Even Smalltalk can't make sockets on machine A magically transfer to machine B).

The Smalltalk *code* is almost entirely vm portable except where it deals with details right down in the dirt. There are places where it makes a difference whether you are using 32 or 64 bit object pointers for example. That's just the way life is.

Right now we have several VM types available.
An interpreter VM that can handle almost any image from the past, up to v5. In general you can still run a 1999 image.
An interpreter VM that handles more modern images from the last few years and is a bit faster.
A dynamic compilation VM that handles more modern images and is a lot faster
A dynamic compilation VM that handles images for Squeak 5 an later, aka Spur. This is a new object format that helps make things another ~50% faster
A 64 bit object memory VM that is almost identical but uses 64 bit object pointers. It's not noticeably faster or slower in general. I anticipate that a 128Gb image might be a bit slower for large benchmarks because the amount of memory it has to manage. Not to mention the amount of electricity so much memory will suck from your wall socket.

If we had infinite resources to do the work I guess we'd make a release that combined all options into one and sorted it out for you. But we don't, so we haven't.

My advice for most people would be to download Squeak 5.x and work from that. Stick with the 32 bit system unless you truly need multi-gigabyte images. Join the squeak-general mailing list and join in. Have fun.

Last edited by timrowledge (Aug. 16, 2017 21:24:37)

Jonathan50
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Ok, thanks for the detailed response.
banbot2
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

This is great! is there any way I could help make this better?
infinitytec
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

I just made some improvements to the moble view on the website.
Epiccraft
Scratcher
41 posts

Whiskers: Scratch 2.0 for Incompatible Devices

I just ran across a bug that maybe you could fix. You can't really duplicate blocks like you can in 1.4 or 2.0. Everytime I try to
copy / duplicate
, it crashes saying MessageNotUnderstood: UndefinedObject>>position. The source is as explained here
SOURCE CODE OF ERROR:
doesNotUnderstand: t1
|t2 t3|
(t2 := MessageNotUnderstood new) message: t1;
reciever: self.
t3 := t2 signal
^ t2 reachedDefaultHandler
ifTrue:
ifFalse:


————————————-
***System error handling failed***
MessageNotUnderstioood: UndefinedObject>>position:
Project class>>tryEmergencyEvaluatorForRecovery:
Project class>>handlePrimitiveError:
MorphicProject(Object)>>primitiveError:
MorphicProject(Project)>>handleFatalDrawingError:
Debugger class>>morphicOpenOn:context:label:contents:fullView:
MorphicProject(Project)>>dispatchTo:addPrefixAndSend:withArguments:


etc….

SCREENSHOT OF ERROR: (It's a link, not an image)
Screenshot PNG
I don't want to use imageshack. I don't have any money to pay for them at all
TailsFanV51
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Imports .sb perfectly, but the same could not be said for .sb2
eribetra
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Well, vector loading is unfortunately not applied to Whiskers, so full .sb2 loading is currently not possible.
Penguin5664
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

infinitytec wrote:

I just made some improvements to the moble view on the website.
Uhm… This comment is old but anyways…
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“

It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."

Yeh. You cannot thank yourself, I guess. XD

The fact is that you made some instructions too.
infinitytec
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Penguin5664 wrote:

infinitytec wrote:

I just made some improvements to the moble view on the website.
Uhm… This comment is old but anyways…
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“

It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."

Yeh. You cannot thank yourself, I guess. XD

The fact is that you made some instructions too.
I guess I can't!

I asked for review for a reason.
Penguin5664
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

infinitytec wrote:

Penguin5664 wrote:

infinitytec wrote:

I just made some improvements to the moble view on the website.
Uhm… This comment is old but anyways…
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“

It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."

Yeh. You cannot thank yourself, I guess. XD

The fact is that you made some instructions too.
I guess I can't!

I asked for review for a reason.
Off-topic: What about Doors 7 I'd help?
On-topic: Uhm, its past a month(I think) and NoMod is not yet commenting. When is the Vector images support getting added?
TailsFanV51
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

eribetra wrote:

Well, vector loading is unfortunately not applied to Whiskers, so full .sb2 loading is currently not possible.
Also, some blocks like
show variable [no v]
don't work with imported sb2.

Last edited by TailsFanV51 (Nov. 1, 2017 20:49:51)

NoMod-Programming
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

eribetra wrote:

when backdrop switches to .backdrop[ v] :: hat events
There is an unnecessary period in this block.
Getting that fixed for the next release

banbot2 wrote:

This is great! is there any way I could help make this better?
Sure! If you know how to program in Squeak, then you can directly contribute to development at the Github Repository (https://github.com/NoMod-Programming/Whiskers). If you don't, that's alright! You can still help by noting the inconsistencies between Whiskers and Scratch 2.0/3.0, and post them here so that I can keep Whiskers updated.

Epiccraft wrote:

I just ran across a bug that maybe you could fix. You can't really duplicate blocks like you can in 1.4 or 2.0. Everytime I try to
copy / duplicate
, it crashes saying MessageNotUnderstood: UndefinedObject>>position. The source is as explained here
SOURCE CODE OF ERROR:
doesNotUnderstand: t1
|t2 t3|
(t2 := MessageNotUnderstood new) message: t1;
reciever: self.
t3 := t2 signal
^ t2 reachedDefaultHandler
ifTrue:
ifFalse:


————————————-
***System error handling failed***
MessageNotUnderstioood: UndefinedObject>>position:
Project class>>tryEmergencyEvaluatorForRecovery:
Project class>>handlePrimitiveError:
MorphicProject(Object)>>primitiveError:
MorphicProject(Project)>>handleFatalDrawingError:
Debugger class>>morphicOpenOn:context:label:contents:fullView:
MorphicProject(Project)>>dispatchTo:addPrefixAndSend:withArguments:


etc….

SCREENSHOT OF ERROR: (It's a link, not an image)
Screenshot PNG
I don't want to use imageshack. I don't have any money to pay for them at all
Just found the error. It's actually in LibraryItemMorph >> mouseEnterDragging: (Something to do with the stage not having a rollover costume). I'll get that fixed once I get svgs done (I have an image with finished svgs, but…long story, I don't have my computer at the moment, and my parents are reluctant to give it back. I can probably redo it again, but I'm not sure how long that will take)

TailsFanV51 wrote:

Imports .sb perfectly, but the same could not be said for .sb2
Can you explain what parts of a .sb2 don't load properly? That way I can get Whiskers working with those files

Penguin5664 wrote:

infinitytec wrote:

Penguin5664 wrote:

infinitytec wrote:

I just made some improvements to the moble view on the website.
Uhm… This comment is old but anyways…
Grammar mistaeks XD
"Thanks to SimpleSi, Penguin5664, Jonathan50, and infinitytec for the inscturctions. The Windows insaller is maintained by infinitytec.“

It should be:
”Thanks to SimpleSi, Penguin5664 and Jonathan50 for the instructions. The Windows installer is maintained by infinitytec."

Yeh. You cannot thank yourself, I guess. XD

The fact is that you made some instructions too.
I guess I can't!

I asked for review for a reason.
Off-topic: What about Doors 7 I'd help?
On-topic: Uhm, its past a month(I think) and NoMod is not yet commenting. When is the Vector images support getting added?

Sorry for the long wait . I had schoolwork to focus on, as well as had my computer taken away from me by my parents (they're reluctant to give it back right now). If I can get some time within the next week, I can push out a release with vector image support, but as for some parts of it, such as an editor or checking that the engine meets svg specifications, I might not be able to get those parts done. Really sorry for making you guys wait, though

TailsFanV51 wrote:

eribetra wrote:

Well, vector loading is unfortunately not applied to Whiskers, so full .sb2 loading is currently not possible.
Also, some blocks like
show variable [no v]
don't work with imported sb2.
I'll take a look into that, and hopefully release a fix for that along with the vector loading image within the next week.
eribetra
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Are you going to implement vector loading? Also, is the font in vector or is it force-antialiased? If so, then you could modify the font system to load vector images.
NoMod-Programming
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

eribetra wrote:

Are you going to implement vector loading? Also, is the font in vector or is it force-antialiased? If so, then you could modify the font system to load vector images.
I'll add that to my to-do list. The problem is that Squeak doesn't have built-in support for vector images, and the system that I'm using right now is a little complicated (but so is the svg format, at lease IMO), so when I find the time, I can implement a better way to load and use vector images.

By asking whether the font is in vector or whether it is force-antialiased, I am assuming that you are asking whether or not the font is using TrueType or a similar system. If so, the answer is that some of the fonts in Squeak are, to the best of my knowledge, in TrueType, but many of the ones currently in Whiskers are not, and I would need to import fonts such as Helvetica into the Squeak image in order to use them. If I find the time, again, I can do this and tweak some settings to make sure that it looks good on different kinds of screens, but until I can get my hands on my HiDPI mac, and my low-resolution monitor, I am wary to make too many change with font choices.
NoMod-Programming
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
  • Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
  • Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
  • Added the ability to read and write comments to .sb2 files
  • Added the ability to rename and delete variables from the context menu
  • Cleaned up code, and started some small refactoring
  • Added inset border to ArgMorph instances
  • Fixed an issue where custom blocks would not save correctly
  • Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
  • Made comments look more like Scratch 2.0, and allow vertical resizing of comments
  • Made new variable and rename variable dialogs look closer to Scratch 2.0
  • Move to new variable storing and accessing system, which allows for efficient renaming of variables
  • Fix `show variable ` and `hide variable ` blocks turning red after re-opening project

The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
infinitytec
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

NoMod-Programming wrote:

Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
  • Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
  • Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
  • Added the ability to read and write comments to .sb2 files
  • Added the ability to rename and delete variables from the context menu
  • Cleaned up code, and started some small refactoring
  • Added inset border to ArgMorph instances
  • Fixed an issue where custom blocks would not save correctly
  • Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
  • Made comments look more like Scratch 2.0, and allow vertical resizing of comments
  • Made new variable and rename variable dialogs look closer to Scratch 2.0
  • Move to new variable storing and accessing system, which allows for efficient renaming of variables
  • Fix `show variable ` and `hide variable ` blocks turning red after re-opening project

The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
Cool! I'll try to update the installer soon.
Do we really need 64 bit? Most incompatible devices will just be 32 bit.
Jonathan50
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Getting a 32-bit Squeak with all the 32-bit libraries to work properly on 64-bit Linux isn't easy, and there are plenty of 64-bit platforms Adobe Flash/Pepper Flash aren't available for, like PowerPC 64 and UltraSPARC, although virtually noone uses them and I'm not even sure if Squeak 5 will compile on them.

NoMod-Programming, who is Whisker's target audience, now that Scratch 2.0 works on Raspberry Pi?
NoMod-Programming
Scratcher
1000+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

Jonathan50 wrote:

Getting a 32-bit Squeak with all the 32-bit libraries to work properly on 64-bit Linux isn't easy, and there are plenty of 64-bit platforms Adobe Flash/Pepper Flash aren't available for, like PowerPC 64 and UltraSPARC, although virtually noone uses them and I'm not even sure if Squeak 5 will compile on them.

NoMod-Programming, who is Whisker's target audience, now that Scratch 2.0 works on Raspberry Pi?
For the most part, Whisker's target audience is users of older Raspberry Pi models (The RPi Zero and the Original model), and users who don't want to use flash to run Scratch 2.0 (due to the slow speed of running flash on chromium, and the approaching end-of-life for flash). Additionally, Whiskers targets, but not as a main audience, users who would prefer to create modifications on Squeak rather than AS3 for Scratch 2.0.

infinitytec wrote:

NoMod-Programming wrote:

Just pushed out 0.9a6! This update includes, among a few embarrassing bug fixes, a few more features and helps increase compatibility with Scratch 2.0. Here's a list of what changed:
  • Fixed an issue where dragging a script or media onto a sprite in the sprite library caused a fatal error
  • Fixed an issue where files downloaded from nXIII's getsb2 utility would not work with Whiskers
  • Added the ability to read and write comments to .sb2 files
  • Added the ability to rename and delete variables from the context menu
  • Cleaned up code, and started some small refactoring
  • Added inset border to ArgMorph instances
  • Fixed an issue where custom blocks would not save correctly
  • Made most menus (Excluding main menu bar) look like the ones used in Scratch 2.0
  • Made comments look more like Scratch 2.0, and allow vertical resizing of comments
  • Made new variable and rename variable dialogs look closer to Scratch 2.0
  • Move to new variable storing and accessing system, which allows for efficient renaming of variables
  • Fix `show variable ` and `hide variable ` blocks turning red after re-opening project

The source code is available on Github here: https://github.com/NoMod-Programming/Whiskers
A .image, .changes, and .sources file is available here: https://github.com/NoMod-Programming/Whiskers/tree/master/Build. Please note, however, that the 64 bit image is not updated at the moment.
Cool! I'll try to update the installer soon.
Do we really need 64 bit? Most incompatible devices will just be 32 bit.
Regarding your point of getting 32-bit Squeak…I've got Squeak on my 32-bit machine, and I have no audio output available (as well as a requirement to run squeak with `sudo`), and on my 64-bit machine (which I currently cannot use at the moment), I have similar issues. Getting the 32-bit vm set up on my mac (64-bit), though, took a while, and I had to download lots of different i386-compatability libraries to get it to run, let alone get things like sound… With a 64-bit image, though (when I did it a few months ago), it was much easier, and, for the most part, it was much quicker to get it set up and running
ihgfedcba
Scratcher
100+ posts

Whiskers: Scratch 2.0 for Incompatible Devices

ISSueS Wİth graphİCS:

The bitmap images become blurry (shifted by half a pixel?) when a Scratch 2.0 project is opened.

Want to edit images with an editor? There does not exist.

The image center from opened .sb2 files is incorrect.

ISSueS:

It can't open .sprite2 format for Scratch 2.0 sprites.

Sounds become corrupted (sounding like a bunch of clicks) when a Scratch 2.0 project is opened.

The icon is the same as the Scratch 1.4 one, which can cause confusion when the user is in another program on Windows 7, 8 and 10.

Found that some projects are a LOT more laggy in Whiskers.

It uses the Scratch 1.4 rounding behavior (negative halfways round down).

Renaming variables not allowed.

It's impossible to morph variables into other ones.

Takes ages to open a sb2 file, only for it to turn awful quality because of above issues.

Powered by DjangoBB