Corrupted Projects

Continuing the discussion from Metadiscussion about discussion of Snap! development:

I've been meaning to post about this for a while. Multiple times I have had projects get corrupted for me. Specifically, I have had addition blocks and if blocks be replaced with "Undefined!" blocks when I load a project. Typically, this is because I edited the primitive (to look at how to define the inputs or to duplicate it and create a similar custom block) and then restored it using "delete block definition". However, one time, I am fairly certain that I never touched the addition block and yet still, somehow, it still got replaced with an "Undefined!" block. I looked at the XML each time, but the XML itself had only "errorObsolete" in those locations. Using the restore feature and my memory, I have always been able to fix it, but it nevertheless is a bug. It would be nice if the "Undefined" blocks could have inputs so you just have to replace the "Undefined!" block, not the blocks it held. That would look something like this (with the original scripts on the left, and the undefined ones on the right):

seeing an undefined block with inputs (especially multi-inputs) is cursed

Being sensitive to uses of language right now, I point out that it's not entirely clear what you are implying. You just don't like @mark4sisb's idea?

Thanks for this detail. It would help if you can point us at the correct and broken versions of the project.

Yeah, unfortunately I haven't saved them. The most recent case of this problem occurred with the multiplication block after I had edited it and restored it. I was able to recover a version of the project that had the problem still (although I was partway done fixing it). I also have the current version, which I have completely fixed. The blocks affected are noted in the project. I don't know whether this will be useful, and I will try to remember to save a copy of the project if/when I encounter this issue again.

No, he's saying he agrees with @mark4sisb because when what happens to mark's projects, happens to him too and it drives him up the wall.

He's saying the problem is cursed, ie; when he loads up a project and sees that happen, he curses.

No, they’re not saying that either. “Cursed” in this context means “peculiar” or “unworldly.” They have shown neither approval nor disapproval of the idea. What they are saying is that the Undefined blocks look strange with input slots. I’m not sure if you could call it slang, but it’s part of modern vernacular.

Thanks for the explanation. I'm sure you're right. But when three of us read it in three different ways, I'm more sure than ever that it's not a helpful form of language at this moment.

Thank you.

As someone who has been chronically online for the past couple years, I can say that @blockpointstudios's definition is what I see people refer to when they say "cursed".

I honestly don't even see how @callietastrophic's definition could apply here. Why would someone look at something like an undefined block with inputs curse at it? It makes a lot more sense for them to see it as strange and weird, which is usually what "cursed" means in this kind of context.

Admittedly, I have not looked at the modern definition, but I think enough youtube videos and people commenting on strange images calling them "cursed" has showed me enough for me to understand what "cursed" means to someone looking at another strange thing.

Cursed definitely means weird and unusual lol.

The "curse at your screen when you see it" was more a joke on my end that didn't land.

Nononononoo, I meant it's weird seeing an Undefined! block with inputs, especially one with a multi-input

the project i was working on that corrupted (i'm pretty sure i reimported and dragged in a catch block since i was about to repair it)

same project rolled back to the previous recovery snapshot

i'm pretty sure the issue was triggered by deleting blocks, either manually or with the "unused blocks" menu

My students are starting to run into this this year (my 5th year of teaching Snap), maybe because previous classes were entirely (?) single-laptop/single-browser types, and this class has a bunch of laptop+gaming-desktop kids?

I saw another thread where you said you tried to warn all the teachers you know about. Can you point me to, is there a standardized explanation/best practices I can digest and share with my students?

The cases I know about, not including this report, are all from students who have imported the Embroidery library into their project, apparently just out of curiosity about what it's for. And the best practice is to refrain from doing that. :~)

Actually according to the v10.3.6 release notes, just previewing the library imported the customized primitives. I have a feeling that's closer to what students were doing rather than loading the library.

The issue was fixed in v10.3.6

Hmm. @ruberad, check the About box to see what version you're running.

I doubt any of my students are messing with libraries; I thought there was a known issue with just going cross-browser if the cache had an old/conflicting version, as described here:

I'm seeing right now 10.3.6 for myself in this browser; but I haven't experienced the problem in my own projects, but two students got bit.

Oh. That should happen only if you're moving backward in versions, typically because your browser's cache needs clearing.

Okay, best practice for when you see Undefined blocks:

  1. Stop working.
  2. Do not save your project! (If you want, you can select "save as" to save the corrupted project under a different name. Do that only if you did a lot of work before noticing that the project doesn't work.)
  3. Clear your browser cache and reload Snap!. (If you're an advanced browser user, your browser may have a way to clear only the cache for Snap!, not the entire cache. But nothing bad will happen if you do clear the entire cache except that other web sites may be slow to load, just the first time after clearing the cache.)
  4. Maybe your project will now work; try it and see.
  5. If it's still broken, select "Restore primitives" from the File menu, if that menu option is shown.
  6. If it's still broken, go to File>Open, select the project name, and hit the Recover button. (See page 39 of the manual for details about this.)

Did I leave anything out?

looks pretty comprehensive to me! Thanks!