Discuss Scratch

Winlove3
Scratcher
100+ posts

Scratch への提案

Bunbungomatarou wrote:

…。まあ別に難しかったら却下してOKです。
言い方強かったですかね?ごめんなさい(不安)

Last edited by Winlove3 (Nov. 23, 2022 00:03:58)

akinarin
Scratcher
500+ posts

Scratch への提案

「うるさい」ブロックなどが消えたのに
これらのブロックが残っていることには意味があるのかもしれません。

これらは代用可能ではありますが、
初心者がプログラミングを始めるときの足掛かりのような役割を果たしています。

まだ
ずっと

end
を十分に使いこなせない人たちは、
これらを重用します。
inoking
Scratcher
1000+ posts

Scratch への提案

#1 からリンクされている #3983 をよく読んでみてください。
代用できるからといって不要なわけではありません。

例えば以下なども簡単に代用できます。
x座標を () 、y座標を (0) にする
x座標を () にする

まあ確かに今回挙げられたブロックにそれほど必然性があるかどうかは微妙ですが。。
しかしそれ以上に互換性というのは重要です。
よほどのことがない限り、削除というのはハードルの高いことです。
tabakenn
Scratcher
100+ posts

Scratch への提案

では、「カスタムブロックパレット」というのはどうでしょう。(ちょっと分かりづらいところに隠すのは必須ですけど)

自分がいらないなーというブロックをどこかに追いやったり、順番を変えてしまったりできる感じです。

「定義内変数」「定義の値返し」「ハットブロックの定義」が実装されれば、独立な関数を作れるので、それを追加することもできます。

バックパックのように全プロジェクト共有です。

Last edited by tabakenn (Nov. 23, 2022 01:18:48)

akinarin
Scratcher
500+ posts

Scratch への提案

#3260(カスタムブロックパレット)

良いと思います。
自由にいじることができるので生産性や創造意欲も高まるのではないでしょうか。

ですが「独立な関数なら追加できる」というような制限は要らないようにも思えます。

既存のブロックパレットに、
並び順を変える機能や見出し(「動き」など)を変える機能、バックパックのような機能が追加される
という形が良いかなと個人的には思います。

Last edited by akinarin (Nov. 23, 2022 01:29:41)

inoking
Scratcher
1000+ posts

Scratch への提案

tabakenn wrote:

では、「カスタムブロックパレット」というのはどうでしょう。(ちょっと分かりづらいところに隠すのは必須ですけど)

自分がいらないなーというブロックをどこかに追いやったり、順番を変えてしまったりできる感じです。

「定義内変数」「定義の値返し」「ハットブロックの定義」が実装されれば、独立な関数を作れるので、それを追加することもできます。

バックパックのように全プロジェクト共有です。
いいとは思いますが、
Scratch 4.0 くらいでの機能でしょうね。。
※基本的なことがすべてできてから、その上の利便性といった話に当たるため
inoking
Scratcher
1000+ posts

Scratch への提案

#3243:

tabakenn wrote:

クッキー使用ではなく、
クラウド変数の個人バージョンという解釈で合っています。
個人データを置くならむしろクッキーのほうが適していると思います
(個人の端末移動までサポートしなくてよいでしょう)。

クッキーや復活の呪文、リミックス直ちに保存など、既存の案はクラウド変数でのランキングなどに対応できません。また、クラウド変数でセーブを再現するというのは、前書いたとおり実用的でないと考えています。
なぜ「クラウド変数でのランキングなどに対応できない」のですか?
ハックとか言い出したらキリがありません。

griffpatch さんのプロジェクトの例が出ましたが……
スクラッチの参照数は対数正規分布にだいたい従うと思います。つまり、griffpacth さんのような参照数が多いプロジェクトはごく一部であり、そこの容量が巨大になるからといって、サーバーのストレージスペースを一気に消費する訳ではないと思います。
griffpacth さんの話はプロジェクトにくっつけた場合のことです。
クラウドデータベースの話で考えたとしても
すべてのプロジェクトのすべての参照データが保持されるのであれば「塵も積もれば山となる」だと思います。

ここらへんを見てみたのですが、クラウドショックは単にチャットなどの悪用を防ぐためだけのように思えます。(サーバーの容量については言及されていないので)
よって、クラウドショックはサーバーストレージの制約によるものではないと信じています。
それは解釈違いだと思います。ポイントは以下です。
These new limits were put into place to prevent abuse of the cloud variables system that was causing it to be unreasonable to maintain, scale, moderate, and support financially.

Wiki や Google 翻訳はおかしいので手動翻訳 wrote:

これらの新しい制限は、
維持、拡張、管理、財政的なサポートに無理を生じさせていたクラウド変数システムの乱用を防ぐために設けられました。
チャット対策も大きな目的ですが、それだけなら文字種制限だけで十分で、文字数制限までする必要はありません。

Last edited by inoking (Nov. 23, 2022 01:31:08)

inoking
Scratcher
1000+ posts

Scratch への提案

#3242:

Jinenjo_000 wrote:

私も、以前傾向には毎日全然違う作品が表示されていた記憶がありますから、それと比較すると
現在の傾向の変化の小ささに違和感を覚えています
一時期傾向の作品が頻繁に入れ替わっていたのは、そのときたまたま順位の変動が激しかっただけ、
そして現在傾向が変わっていないように見えるのは、1~19ページ目までの作品の順位がたまたま変動しなかっただけ、
というのがinokingさんの認識ですか?
・傾向の判定ロジックが変わった
・傾向の更新頻度が変わった
・そもそもあまり変動していない
など色々考えられます。複合かもしれません。
消された?プロジェクトも残っていたりするのでちょっと分かりません。

もし続けるなら、トピ違いなので良い所トピック辺りに移動したほうがよいでしょう。
tabakenn
Scratcher
100+ posts

Scratch への提案

Your text to link here…

#3263

「財政的なサポートに無理を生じさせる」というのは、「治安を保てない場所だと知られると、寄付などを得られにくくなる」という意味かと思ってました。
単に、「サーバーのコストがかかる」という意味だったのですかね……
でも、クラウド変数でチャットを作れるというのがいきなり問題視されたのは、基金などからツッコミが入ったからでは?とか思いますけど。

元投稿

griffpatch wrote:


Since cloud cars could no longer be used for high score tables or storing achievements, do you think there will be score in new scratch 3 blocks for implementing this kind of functionality in a more scalable controllable way? For example, achievements want to be recorded per user, but not accessable by other scratchers, so this is like a local cloud variable or list for that scratcher? Couldn't be used for chat rooms, and could be set to only save very periodically as it only needs to persist between sessions not in real time.


要約
  • 各プレイヤーのためのローカル変数やリスト(今回の僕の提案と同じですね…)
  • リアルタイムゲームを作るために、生存期間が短いクラウド変数(つまり、チャットを作ることはできない)

ここら辺に対して、モデレータさんは、サーバースペースの問題なら単にそう言えばいいと思います。(その分のお金出してと言われてもできないので)
そこらへんが気になってサーバースペースの問題ではないのではと思っています。
全部のプロジェクトがクラウド変数を使う訳ではないでしょうし、画像なんかと比べるとテキストは軽いですし。

いまいち納得できないので、英語フォーラムで聞いてみるべきですか?

チャット対策も大きな目的ですが、それだけなら文字種制限だけで十分で、文字数制限までする必要はありません
文字数制限がなければ、簡単にチャットを作ることができます。特にアルファベットではより簡単だと思います。

なぜ「クラウド変数でのランキングなどに対応できない」のですか?
ハックとか言い出したらキリがありません。

  • 復活の呪文形式(セーブコードについてみんなで話し合う場所1 でも結論は出ていない。最もハックされやすい)
  • クッキー方式(クッキー改ざんという新たな脆弱性が生まれる)
  • 今回の提案(クラウド変数とおなじ仕組みを使うので新たな脆弱性は生まれない)

Last edited by tabakenn (Nov. 26, 2022 07:38:55)

akinarin
Scratcher
500+ posts

Scratch への提案

セーブをクラウド変数と同じ仕組みで行ったときにサーバーの容量が足りるかどうかは、
ここで結論が出せるような内容なのでしょうか。

Scratchのサーバー管理者ならまだしも、
ここにいる人達が、Scratchのサーバーの状況を詳しく知っているとは思いません。

クラウドショック以降に何か変わったかもしれないですし⋯
tabakenn
Scratcher
100+ posts

Scratch への提案

Your text to link here…

制限以前は10個、ユニコード全部(65536 utf-16サロゲートペアなしのときと想定)と10240桁入ったらしいので、
10240log(2, 65536) * 10 = 1638400 bit / 個
117,181,797個(全共有数)* 1638400 bit = 24.0TB

今は、
256log(2, 10) * 10 = 8504 bit / 個
117,181,797個(全共有数)* 8504 bit = 124.5GB

全世界のプロジェクトが容量いっぱいにクラウド変数を使ったとしても、125GBです。

僕のPCの容量は512GBです。
以前は結構大きいのかもしれませんが、今の制限ではクラウド変数はもっと容量を大きくできると思います。
やはり、チャットルームを作れるのが問題なのだと思います。

Last edited by tabakenn (Nov. 26, 2022 07:38:09)

tabakenn
Scratcher
100+ posts

Scratch への提案

#3269見ちゃったので一応言及

いろいろ欠陥があるのですが、この提案煮詰めていくべきなのか……(多分欠陥は解決していけます。

  • パレットのカスタム定義を編集や削除したときの、他のプロジェクトでの挙動。
  • カスタム定義がリミックスされたときの挙動。

カスタム定義をやめるか、プロジェクト間共通なのをやめれば解決しそうです。
または、ステージなどに実体を作っておくか…

Last edited by tabakenn (Nov. 23, 2022 03:54:27)

inoking
Scratcher
1000+ posts

Scratch への提案

#3265:

tabakenn wrote:

いまいち納得できないので、英語フォーラムで聞いてみるべきですか?
納得できないなら確認されるのがよいでしょう。
ただ、英語フォーラムで正確な回答が得られるとは限りません。

文字数制限がなければ、簡単にチャットを作ることができます。特にアルファベットではより簡単だと思います。
なぜですか?
短文をやり取りするだけでチャットはできます。

  • 復活の呪文形式(セーブコードについてみんなで話し合う場所1 でも結論は出ていない。最もハックされやすい)
  • クッキー方式(クッキー改ざんという新たな脆弱性が生まれる)
  • 今回の提案(クラウド変数とおなじ仕組みを使うので新たな脆弱性は生まれない)
セーブコードについてみんなで話し合う場所1 で話しているのは「厳密に」ハックできない方式についてです。
簡易な方式でも大半は対応できます。
「本気で」やればハックは可能ということで、実際にはそこまで手間ひまをかける人はいないと思われます。クッキーについても同様です。
クラウドと同じ仕組みなら、クラウド変数と同様に改ざんは可能です(現在クラウド変数の脆弱性はそこまで問題にはなっていません)。

#3267:
データベースアクセスのサイズなので単純なディスクサイズとは事情が異なります。

#3266 でも言われているとおり、ここで話しても想像にしかなりません。

私の意見としては、サーバー容量以外にも
・セーブコードなどの方式で実現可能。
・何でも便利であるべきではない(#1 からリンクされている #3983 とも関連)。
・そういう機能がほしいなら作品側で工夫すべき。
です。

Last edited by inoking (Nov. 23, 2022 03:58:08)

inoking
Scratcher
1000+ posts

Scratch への提案

#3267:

tabakenn wrote:

制限以前は10個、ユニコード全部(65536 utf-16サロゲートペアなしのときと想定)と10240桁入ったらしいので、
10240log(2, 65536) * 10 = 1638400 bit / 個
117,181,797個(全共有数)* 1638400 bit = 24.0TB

今は、
256log(2, 10) * 10 = 8504 bit / 個
117,181,797個(全共有数)* 8504 bit = 124.5GB
何か計算式が違うような?
「文字を表現するのに必要なビットサイズ」と「変数の占有サイズ」が混同されている気がします。
占有サイズは
10240 * 33 = 337920 文字分
256 * 10 = 2560 文字分
1文字当たりどのくらいのサーバースペースを食うかは、分かりません(私はそっち系は詳しくないので)。
問題はログやインデックスだと思います。
tabakenn
Scratcher
100+ posts

Scratch への提案

プレイヤー変数

⬜︎クラウド変数(サーバーに保存)
⬜︎プレイヤー変数(ユーザごとにサーバーに保存)
今回の提案をプレイヤー変数と呼ぶことにします。


#3271
とりあえず、サーバー容量の問題は重大ですが、それで提案を取り下げることはしません。

僕の意見としては、
クッキーの提案と並べて議論してくれればいいかなーという感じです。
つまり、クッキーによるセーブの提案に対して、プレイヤー変数の選択肢もあるという提案にします。

inoking wrote:

・セーブコードなどの方式で実現可能。
・何でも便利であるべきではない(#1 からリンクされている #3983 とも関連)。
・そういう機能がほしいなら作品側で工夫すべき。
上記の理由でクッキーの提案が不採用になるならば、プレイヤー変数の提案は同じように不採用になるべきです。

inoking wrote:

クラウドと同じ仕組みなら、クラウド変数と同様に改ざんは可能です(現在クラウド変数の脆弱性はそこまで問題にはなっていません)。
「新たな脆弱性は生まれない」と僕が書いたのは、
プレイヤー変数は改ざんできないのではなく、クラウド変数と同じ脆弱性しか持たない。
という意味で、クラウド変数がそこまで脆弱でないように、プレイヤー変数の脆弱性もさほど問題にならないのでは。という意味で書きました。
tabakenn
Scratcher
100+ posts

Scratch への提案

#3272

上の方は桁が大きくてよく分からないので、下の方検算しました。

taakenn wrote:

256log(2, 10) * 10 = 8504 bit / 個
117,181,797個(全共有数)* 8504 bit = 124.5GB

a 256個 256バイト(テキストエディタと、OSのファイルのサイズによるので、切り捨てられているかも)
あ 256個 768バイト
漢 256個 768バイト
表示できないけどゴミ箱の絵文字 256個 1.02キロバイト

あ の768バイトで考えます。クラウド変数は10個作れるので、7680バイト。
117,181,797個のプロジェクトがあるので、117,181,797を掛けて、899956200960。
Google検索で”byte to gb”より899.95620096GB

上の計算式はビットをバイトに直してないので誤りでした!(8倍する必要があった)

よって、全世界の共有済みプロジェクトがクラウド変数の全帯域を使い、もろもろ合わせてそれの2倍の2TBのストレージを喰うとすると、大体月10万円かかることがわかりました!参考

全プロジェクトがクラウド変数使うなんてありえないし、クラウド変数は更新にサーバーパワーも使いそうだから、もっと高いサーバを使う必要がありそうだし…結局意味はない計算…

Last edited by tabakenn (Nov. 23, 2022 06:18:50)

inoking
Scratcher
1000+ posts

Scratch への提案

#3273:
クッキーの件は「仕分け前の提案」です。
この際、クッキーについて議論してもよいですが

私の意見としては、クッキーの場合でも
・セーブコードなどの方式で実現可能。
・何でも便利であるべきではない(#1 からリンクされている #3983 とも関連)。
・そういう機能がほしいなら作品側で工夫すべき。
です。
同じ議論になるなら「意見の分かれる提案」になると思います。

プレイヤー変数はサーバー容量の話があるぶん、クッキーより不利だと思います。
DF_64bit
Scratcher
35 posts

Scratch への提案

スクリプトをアーカイブして「実行はされないけどブロックだけはある」状態にできるようにすることを提案します。
akinarin
Scratcher
500+ posts

Scratch への提案

>> #3276(スクリプトのアーカイブ機能)

それはバックパックとどのような違いがありますか?
こちらも実行できない状態にできますが
akku--n11
Scratcher
1000+ posts

Scratch への提案

>> #3276
イベントブロックと離せばいいだけだと思います。
ただ、複雑なプロジェクトやきれいにするを使う場合はこれだとだめですね…

Powered by DjangoBB