+ JavaScript の質問用スレッド vol.134 +at HP
+ JavaScript の質問用スレッド vol.134 + - 暇つぶし2ch200:Name_Not_Found
18/06/25 06:16:40.58 .net
>>196
withはなにがあっても使うなって言われてるだろ?

201:Name_Not_Found
18/06/25 06:20:34.91 .net
Math.sqrt(5) は Math.sqrt(5) と書くのが普通
どうしても sqrt ってしたいなら、
const sqrt = Math.sqrt.bind(Math)

const sqrt = Math.sqrt でも動くと思うが、sqrtメソッド内のthisが異なる
constが使えないブラウザの場合はvarで代用

202:196
18/06/25 06:30:00.42 .net
>>199
ありがとうございます。
しかしそれだと
sinやlogやabsやら全てに対しその宣言をしないといけませんよね。
それはちょっと面倒です……。
それと、後出しのようになってしまいますが、完全に個人目的(ブックマークレット)なので
evalやwithなど危険性・脆弱性のある機能を使ってもいいかなと思っています。
他人が触らず、かつ入力されるものが完全に把握できている場合でもevalやwithの使用は控えるべきですか?

203:Name_Not_Found
18/06/25 06:43:35.57 .net
Microsoftって昔J-Scriptっていうのを作ったのにどうしてそれを放棄してAction Scriptを作ったん?

204:Name_Not_Found
18/06/25 06:45:41.21 .net
ActionScriptじゃなくてTypeScriptだった

205:Name_Not_Found
18/06/25 06:53:43.91 .net
Math.sqrtって打つのが面倒なら
m.sqrtって打っていって
最後にm\.sqrtをMath.sqrtに置換すりゃいいじゃん

206:Name_Not_Found
18/06/25 07:04:57.51 .net
>初心者です。JavaScriptを簡単な電卓代わりに使おうと思うのですが
JSを使って簡易電卓を作ってみたい
なら少しわかるが
初心者が、JSを電卓代わりに使う、とか意味わからん

207:Name_Not_Found
18/06/25 07:11:11.56 .net
>>201
JScriptは大人の事情で名前を変える必要があっただけで
実質はJavaScript。開発当時は標準仕様などなく
どのブラウザも好き勝手JavaScriptを発展させたので
互換性がない部分がたくさんあった
標準仕様が作られたが、いちばん重要な互換性を保つために
IEはJScriptの開発を続けていったが、ようやく互換性を切り捨て
標準仕様に準拠できるようになった。
TypeScriptはJavaScriptをもとに改良したもの
JavaScriptの標準仕様を満たしており、+αで機能強化されてる。
JScriptが標準仕様を満たしてないために切り捨てたものにたいして
TypeScriptは標準仕様を満たしてなおかつ拡張されているところが違う

208:Name_Not_Found
18/06/25 08:08:38.93 .net
>>205
なるほど
ありがとうございます

209:Name_Not_Found
18/06/25 08:57:05.49 .net
ここまですべてくそ
わからないものにはクソをする
ワハハ バタン!

210:Name_Not_Found
18/06/25 12:51:04.88 .net
>>200
何個使う気が知らないけど
let {sin,log,abs}=Math
みたいにできるし、10個未満なくらいならwith文使わなくても
煩雑になったりはしないと思うよ

211:Name_Not_Found
18/06/25 13:18:53.49 .net
だな。
用途がブックマークレットって言ってるしIIFE使うんだろうから、
(function({sin, log, abs}) {
})(Math);
ってやってもいい。

212:Name_Not_Found
18/06/25 17:03:44.22 .net
a = !a
みたいな処理が一度に出来る代入演算子ってありますか?

213:Name_Not_Found
18/06/25 17:58:56.29 .net
AIがスクリプトを自動生成する。

214:Name_Not_Found
18/06/25 18:04:26.45 .net
AIじゃ生活できないのよ

215:Name_Not_Found
18/06/25 22:36:30.22 .net
jqueryのtextメソッドを使って改行を表示させる方法はありますか?
文字列の中に"\n"を書いても改行になりませんでした

216:Name_Not_Found
18/06/25 22:38:40.91 .net
ソース上での改行かhtml上での改行か
html上なら無理

217:Name_Not_Found
18/06/25 22:43:29.56 .net
preでも使えば

218:Name_Not_Found
18/06/25 22:49:14.26 .net
無理なんですね
ではhtmlメソッドとHTMLエスケープを使ってやります
ありがとうございました

219:Name_Not_Found
18/06/26 00:33:04.61 .net
改行は、<br> だろ
改行を使わず、<p> でも良いかも

220:Name_Not_Found
18/06/26 12:08:01.32 WhKzw99L.net
テーブルタグでクリックしたtdを連結するにはどうすればいいでしょうか?

221:Name_Not_Found
18/06/26 12:32:01.63 .net
>>218
URLリンク(developer.mozilla.org)
rowSpan, colSpan

222:Name_Not_Found
18/06/26 14:40:19.03 .net
よく考えたらjqueryのtextメソッドって
文字列にHTMLをかけてinnerHTMLに代入するメソッドではなくて、
テキストノードを作成するメソッドですよね
たからbr要素を入れられないのも当然ですね

223:Name_Not_Found
18/06/26 14:40:47.20 .net
×HTMLをかけて
○HTMLエスケープをかけて
でした

224:Name_Not_Found
18/06/26 16:17:52.29 .net
JavaScriptファイルを編集してもキャッシュが読み込まれてしまう時がありますが
条件はあるのでしょうか?

225:Name_Not_Found
18/06/26 18:57:16.64 .net
>>220
エスケープなどしない
DOMを覚えて、タグを挿入している感覚を改めた方がいい

226:Name_Not_Found
18/06/26 22:37:31.77 21Hh71GO.net
質問です。このシステムの名前を知らない為、長文になりますがよろしくお願いします。
サイトの中にあるリンクをクリックすると当たり前ですがリンクに組み込まれたurlに飛ばされます。
しかしこのリンクに組み込まれたurlをコピーし別タブで開くとサーバーエラーになりページが表示されません。
そこで、
質問1:このシステムの名称があれば教えてください
質問2:この現象(コピペするとエラー)を回避し、例えば自作のページに画像を貼るコードサンプルをご教授お願いします

227:Name_Not_Found
18/06/26 22:50:47.17 .net
・そんな糞なシステムを真似ないほうがいい
・そんな糞な仕組みを実装すると弊害が出る

228:Name_Not_Found
18/06/26 23:55:55.62 .net
そういう「外部からの勝手なアクセス」は迷惑行為として対策されていることがあります
著作権侵害などの問題が発生する可能性もあるので、できるとしてもやりたくないですね

229:Name_Not_Found
18/06/27 00:34:19.12 .net
ページAからページBのリンクを踏んでページBに遷移するときも、
直接アドレスバーにページBのURLを打ち込んで移動するときも、
そのサイトのサーバーにはページBに対するリクエストがクライアント(=ブラウザ)から来るわけですが、
この時クライアントがいっしょに送ってくる情報を調べて動作を変えることができます。
質問の動作の違いは、恐らくその情報のうち、リファラーというものを見てサーバーが動作を変えている(そういう風に作って/設定している)のだと思われます。
リファラーは簡単に言うとひとつ前にいたページのURLです。
アドレスバーに直接打ち込んで行くとカラなので区別できます。

230:Name_Not_Found
18/06/27 03:52:34.75 .net
>>222
普通はキャッシュから読み込まれる
故意にキャッシュを捨てるか、ページをリロードするか、
ファイルが変更された都度、ファイル名を変えるなどすると、
更新後のファイルが読み込まれる
>>224-227
履歴だろ。直前のページ。
どのページから、ここのページに来たか

231:Name_Not_Found
18/06/27 08:42:42.72 +obW3Yl5.net
>>226
>>227
ありがとうございます

232:Name_Not_Found
18/06/27 08:45:33.40 .net
いいってことよ

233:Name_Not_Found
18/06/27 11:32:45.97 13209M2/.net
>>219
ありがとうございます
rowSpanで下の行のtdを削除したいのですが
複数行ある場合にはどうすればいいでしょうか?
event.target.parentNode.nextSibling.nextSibling.nextSibling...
とクリック毎にnextSiblingを続ける方法がわかりません

234:Name_Not_Found
18/06/27 12:23:35.95 .net
>>231
rows, cells, cellIndex, rowIndex

235:Name_Not_Found
18/06/27 14:49:23.24 .net
>>232
できました!
ありがとうございました

236:Name_Not_Found
18/06/28 15:59:33.64 .net
jsSHAは
生成したオブジェクトを再利用することは出来ないのでしょうか?
ハッシュを生成するたびにオブジェクトをnewするのは無駄な気がして気になります

237:Name_Not_Found
18/06/28 18:49:35.60 .net
40桁の16進数を、36進数にしたいです
基数変換はtoStringで出来ますが、40桁の16進数はJavaScriptで扱える数の範囲を超えてますよね?
どうやればいいですか?

238:Name_Not_Found
18/06/28 19:59:25.22 .net
>>235
n進数のnを基数というのかと思っていたのですが、どうも違うようですね
n進数のnのことを何と言いますか?

239:Name_Not_Found
18/06/28 20:05:37.33 .net
基数

240:Name_Not_Found
18/06/28 20:31:56.51 .net
基数

241:Name_Not_Found
18/06/28 20:54:35.78 .net
基数を辞書で引くと
記数法で、基礎として用いる数、すなわち〇(ゼロ)から九までの整数。
と書いてあったので、これはちょっと違うのかな?と思ったのですが、基数でしたか
ありがとうございました

242:Name_Not_Found
18/06/28 22:45:36.04 .net
それ国語辞書とかで調べてない?
基数って言ってもいろいろあって、IT用語ならまさにn進数のことだし、数学用語ならa^n(べき乗)とかlogaN(対数)とかのaのこと
基となる数は基数

243:Name_Not_Found
18/06/28 23:33:23.55 .net
>>235
V8はBigIntが実装されたので、Chromeやnodeでは
BigInt


244:('0xcafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafecafe').toString(36); が使える



245:Name_Not_Found
18/06/29 07:55:55.18 .net
>>235
16進数->4進数->36進数

246:Name_Not_Found
18/06/29 10:09:40.67 .net
>>240
国語辞典で調べてました
文脈によって変わる語なんですね
ありがとうございました
>>242
それはどういうものでしょうか
自分の理解の範疇を超えています
40桁の16進数はJavaScriptで扱える整数の範囲を超えているので、
組込み関数ではなくてアルゴリズムでやるってことですよね
16進数から4進数は、各桁を4で割っていけばいいだけなので簡単そうです
でも4進数を36進数にするのは、そう単純じゃないですよね
4進数n桁が36進数m桁と同じになるのでしょうか?

247:Name_Not_Found
18/06/29 12:07:48.57 pAnXDGBH.net
>>232
度々すいません
左隣りの縦列にrowspanがあるとcellIndexが変わってしまいますが
これはどうすればいいでしょうか?
URLリンク(jsbin.com)

248:Name_Not_Found
18/06/29 12:22:43.11 .net
>>243
>>241は試した?

249:Name_Not_Found
18/06/29 12:43:31.93 .net
>>243
そうかね
36^0の桁だけ先に計算しておけば、36^1以降は計算しやすいと思うが

250:Name_Not_Found
18/06/29 15:57:41.13 .net
>>241
自分への回答と思わず読み飛ばしていました、すみません
そういうのがあるんですね
しかも、同様の機能を提供するbig-integerという汎用的なライブラリもあるようです
これを使えば簡単ですね
ありがとうございました
>>242
おっしゃる意図が読めません
理系の人なら分かるのでしょうか
四則演算以上の計算は難しいです
でもありがとうございました

251:Name_Not_Found
18/06/29 19:54:35.21 .net
>>244
左上から順番に数えなされ

252:Name_Not_Found
18/06/29 21:55:17.95 .net
せっかくBigIntの話を聞いてもライブラリで妥協するとかつまんねえ奴だな
そんなにレガシーブラウザで巨大数を扱いたいのか?
もうそっとしておいてやれ

253:Name_Not_Found
18/06/30 12:05:09.33 .net
>>248
できました!
適切なアドバイスありがとうございます

254:Name_Not_Found
18/07/02 21:32:49.58 .net
>>249
は??
electronアプリならいいですが
chromeでしか使えないものをウェブアプリで使えないのは当たり前ですが?
アホですか?

255:Name_Not_Found
18/07/02 21:37:11.27 .net
せやね

256:Name_Not_Found
18/07/02 21:43:13.56 .net
フォーム中のenterキー入力で発動する処理の中で、
別のフォームにフォーカスする処理を書いていたら、
フォーカス後のフォームにenterキーが入力されてしまいました
preventDefaultしたら現象は消えましたが
イベント伝播の最中に処理らしい処理をするのはもしかして避けた方がいいのでは?
と思ってきました
イベントハンドラの中ではlodashのdeferのようなもので処理の予約だけしておいて、
イベント伝播が終わった段階で処理が実行されるようにした方がいいのでは?と。
どうなのでしょうか?

257:Name_Not_Found
18/07/03 01:29:30.34 .net
単純な処理なら、かまわないだろうけど、
時間がかかる・複雑なものなどは、避けた方がよい

258:Name_Not_Found
18/07/03 10:44:08.98 .net
やはりそうですよね
ありがとうございました

259:Name_Not_Found
18/07/03 12:37:48.02 .net
>>251
アホはあんただ
そんなこと言ってるといつまでたっても使えない
モダンブラウザは今年中には対応してくるんだから
これからどうするのかという話だとBigIntを使っていこうと言う方が正しい

260:Name_Not_Found
18/07/03 12:45:59.98 .net
いや間違ってるよ。
create-react-appなどのツールもes2015+で書けはするものの最終的にはbabelでes5に変換している。
レガシーブラウザ対応のためだ。
世の中知らなすぎ。イキリ学生かな?
こんなとこでマウントとってないで勉強しろw

261:Name_Not_Found
18/07/03 12:59:05.16 .net
>>256
そうなんですか?
それはめでたいですが、
使う側からしてみればネイティブ実装だろうがライブラリ実装だろうが
インターフェイスに実質的に大差ないので、ちょこっと変えればいいだけの話です
マウンティングになってないんですよ
だからアホなんです

262:Name_Not_Found
18/07/03 13:08:41.19 .net
>>256
マジ学生のうちは勉強しといた方がいいよ。
時間とれるの今のうちだからさ…

263:Name_Not_Found
18/07/03 21:48:01.48 .net
マウントマウントってゴリラじゃないんだからさ
世の中~とかどうでもいいわけ
世の中に合わせるために生きてるわけじゃないんだから
そんなゴタゴタしたことは実際にゴタゴタしたときに考えて
最も適切な方法を見つければいいだけ
IEで動かしたいのかもしれないし、Nodeで動かしたいのかもしれない
もし駄目なときはそりゃあ良いように対応すればいい
でも基本的にはネイティブを使っていこう、試してみようと思わないと先に進めないんだわ
要するに綺麗事でいいじゃないかということ
教科書っていうのは大抵は綺麗事だ
それに現実はそう上手くは行かないとケチつけるのはアホ
まず綺麗事があって、そこから綺麗事じゃないことに対応するべきなんだよ
つまりはせっかく教えてくれた人がいるんだからBigIntを
もっと積極的にできる限り使おうとしてみろよということ
「へー、まそれはまだ早計でしょうからこれにしますわ」じゃあまりに失礼だろう

264:Name_Not_Found
18/07/03 21:59:38.61 .net
っていうかそこまで新しい技術を積極的に使っていくことに反対するやつの気がしれないわ
babelでレガシーサポートが基本みたいに言うしさぁ
本人は現実的で無難で実際に役に立つ思想のつもりなのかもしれないけどさ
そういう奴らは結局10年前からいるIEガ~厨と変わらないんだよ
ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか
まだ吸収力がある初心者にこそケツひっぱたいてレガシー環境から遠ざけるべきなんだよ
それが俺たちのやるべきことだ
未熟な人に物事を教えるってことは甘く考えちゃいけない
学校の先生だって道徳で綺麗事を教えるだろう
それが変わりにいかに小狡賢く生きていくかを教えたらどうなる?
お前らがやってることはまさにそういうことだといい加減気づけ
お前らが根絶するまで俺はあえてこの極端なスタンスを取ってバランスを取る
これは俺がJS質問スレ20か30のころからずっと続けてきてることだ
わかったか??

265:Name_Not_Found
18/07/03 22:19:16.13 .net
ケンカをする悪い子は
スパークリングワイドプレッシャーで
お仕置きなのだ!

266:Name_Not_Found
18/07/03 23:21:51.04 .net
ドン引きですわ。糖質かな?

267:Name_Not_Found
18/07/04 09:18:13.96 .net
確かに古いブラウザを切り捨てないといつまでも新陳代謝が進まないということはあると思いますが
BigIntは時代遅れになったブラウザに欠けている標準的機能というより
最先端なブラウザにようやく実装されはじめた先進的機能ですよね?
ですからそれを使っても新陳代謝に寄与することはないんですよ
はい論破

268:Name_Not_Found
18/07/04 10:56:06.24 .net
stage4に入ってpolyfillも整備されたら使い始めれば良いと思う

269:Name_Not_Found
18/07/04 11:07:23.74 .net
最初にBigIntを紹介した者ですがこんなキチガイ中学生に背乗りされて荒らしの道具にされるとは思ってもみませんでした。
最初からポリフィルライブラリのほう紹介すればよかった。
申し訳ない。

270:Name_Not_Found
18/07/04 12:24:45.17 .net
>>266
お前も同類

271:Name_Not_Found
18/07/04 14:11:37.30 .net
>>267
お前は人類

272:Name_Not_Found
18/07/04 14:59:27.62 .net
タンノは魚類

273:Name_Not_Found
18/07/04 23:10:54.85 .net
美味いのは乙類

274:Name_Not_Found
18/07/05 07:09:57.58 .net
使えもせんもの紹介しっぱなしで逃げといて被害者ヅラとか片腹痛いわ

275:Name_Not_Found
18/07/05 08:59:56.88 .net
>>261
XHTML2やECMAScript4の失敗がある今でもこんなことをいう人がいるんだね
そういうことは、全人類を従わせるだけの力を身につけてからいいなよ

276:Name_Not_Found
18/07/05 09:10:18.70 .net
そいつ古参ぶってる中学生だぞ

277:Name_Not_Found
18/07/05 09:20:42.91 .net
>>261
> ここに古い環境をサポートすべしと書けば書くだけ自分含む全JSerの首を締めることになるのが分からないのか
誰も古い環境をサポートすべしとは言ってない。
現役のブラウザをサポートすべしと言ってるだけ

278:Name_Not_Found
18/07/05 09:29:58.26 .net
babelを使うとサポートしてない古いブラウザでも動いてしまう
だがウェブ標準で書いてもChrome 1(2008年リリース)という
サポートしてない古いブラウザでも動いてしまう
それとなにも変わらねぇ
わざわざ古いブラウザを切り捨てる意味はない

279:Name_Not_Found
18/07/05 09:39:27.10 .net
世の中から古いブラウザが消えないと新しい機能が使えない?
アホか。古いブラウザが消えなくても
お前がサポートをやめれば新しい機能は使える
昔流行ったIE6以上推奨です。みたいな文章を入れるだけの話だ

280:Name_Not_Found
18/07/05 09:55:50.51 .net
蔵「IE6で動かないのですが?IE6以上で動くと言っていましたよね?至急この不具合を直してください。ハヤク!」

281:Name_Not_Found
18/07/05 10:16:01.63 .net
そりゃIE6以上で動くことを保証していれば
対応しないといけないだろうな。
ホントな、サポートの意味をわかってない
馬鹿(>>277のことな)が多すぎw
サポートしないためには、動かなくしないといけない!
だからbabelを使ったらいけない
動いてしまったら、サポートしてることになるんだ!!
って思うのかね。アホかと
はいはい。Chrome 1で動いてしまったら
サポートしてることになるんですよねー(アホ理論では)

282:Name_Not_Found
18/07/05 10:21:39.63 .net
今年後半ジャバアプレットっていうのが流行るらしいです
去年マイナンバーのサイト?で導入されて話題になったそうですね
名前からしてジャバスクリプトの進化系だと思ってます
まだジャバスクリプト勉強中の身としては先が長いです
この世界は進化が激しいですね
みんなもうジャバアプレット使えるんですか?
ついて行けててすごいです…

283:Name_Not_Found
18/07/05 10:59:43.92 .net
誰かレスしてあげろ。可哀想だろ

284:Name_Not_Found
18/07/05 11:25:00.70 .net
中学生かー・・・・・・・・ええなあ

285:Name_Not_Found
18/07/05 12:09:58.93 .net
とりあえずwin8.1のサポートが終了すれば
理屈上はIE限定の環境はほぼ無くなるハズ

286:Name_Not_Found
18/07/05 12:19:51.82 .net
みんな新しいほど優れてるとは限らないんだぞ
これからはアップルウォッチの簡易ブラウザもサポートしないといけないんだから

287:Name_Not_Found
18/07/05 12:35:34.95 .net
クライアント「つまり、Google Chromeだけが対応ブラウザなのですね。IE12,Firefox,Safari...eycはサポートしないのがトレンドと仰るのですね。」
>>261「はい。世のブラウザはもっと、レガシー環境から遠ざけられるべきなんです。Google Chrome以外は全てレガシー環境。世の中の人が皆、Google Chromeを使えばいいのです。」

288:Name_Not_Found
18/07/05 13:05:51.98 .net
うち過半のアクセスがモバイルSafariなんやけど~

289:Name_Not_Found
18/07/05 13:12:59.75 .net
いま一番問題になってるのは、古いAndroidスマホを
使い続けてるやつやで

290:Name_Not_Found
18/07/05 16:53:31.86 .net
lynx使ったら逮捕される世の中だし仕方ないな

291:Name_Not_Found
18/07/05 19:12:11.64 .net
IE12に突っ込む人はだれも居ないか

292:Name_Not_Found
18/07/05 19:20:05.74 .net
そもそもeycやし…w

293:Name_Not_Found
18/07/06 00:00:58.84 .net
typoしか、突っ込むところなしか

294:Name_Not_Found
18/07/06 14:13:03.14 .net
node.js難しいので導入とかしてないのですが
npmでインストールしてimportするのと
scriptタグで、なんとか.min.jsみたいなのを読み込むのって
何か違いがあるんですか?

295:Name_Not_Found
18/07/06 15:05:29.86 .net
はい。

296:Name_Not_Found
18/07/06 15:50:27.16 .net
はげ。

297:Name_Not_Found
18/07/06 20:32:45.30 .net
テキストやバイナリの1バイト目だけ取り出したいときって
text.substring()するしかない?

298:Name_Not_Found
18/07/06 20:46:46.99 .net
text.substringじゃむり

299:Name_Not_Found
18/07/06 21:28:58.75 Z0wHOskr.net
来年でなるからそれを記念してされたらいいな。 してるかも。

300:Name_Not_Found
18/07/07 09:57:36.64 .net
>>291
HTML 内で読み込むのは、普通のやり方。
一方、npm で読み込むのは、そのフレームワークのやり方
Rails でも、実行環境は、Node.js だよ。
Node は画面機能として、すべての言語で必要
web アプリは、HTML, JavaScript で画面を作る

301:Name_Not_Found
18/07/07 11:09:54.64 .net
× HTML 内で読み込むのは、普通のやり方。
○ HTML 内で読み込むのは、昔ながらのやり方。
× 一方、npm で読み込むのは、そのフレームワークのやり方
○ フレームワークではなく、改良された新しい標準的なimport方法
× Rails でも、実行環境は、Node.js だよ。
○ ビルド環境がnode.js 実行環境はブラウザ
× Node は画面機能として、すべての言語で必要
○ 必要ない
× web アプリは、HTML, JavaScript で画面を作る
○ HTML、JavaScriptを使わず、それ以外の言語だけで作ることもある

302:Name_Not_Found
18/07/07 12:37:26.05 .net
npmってつかったことないけど
どっかからコピーしてきたjsファイルと
そのjsファイルに関するメタ情報(バージョンとか)が記述されたjsonとかのファイルを
プロジェクトフォルダに配置して
jsに更新があれば更新してくれるようになるみたいな代物?

303:Name_Not_Found
18/07/07 13:25:10.31 .net
nodejs
package
manager
npmが管理するパッケージは基本node専用。
require()やioなどnode用api使われてるからな。
ただ条件満たせばブラウザで実行できるよう変換できる。
パッケージ次第。
ブラウザ環境で使用可能かどうかはそのパッケージのウェブページなどに書いてある(ことが多い)ぞ。

304:Name_Not_Found
18/07/07 13:27:12.71 .net
あと>>297>>298は嘘松。
なんでこんないい加減なこと書くんだろ…

305:Name_Not_Found
18/07/07 13:42:32.04 .net
>>301
じゃあお前が信じてる嘘を書けば?

306:Name_Not_Found
18/07/07 13:49:07.87 .net
結局誰もよくわかってないんだろうなw

307:Name_Not_Found
18/07/07 14:23:14.57 .net
どこが嘘かも書けない低脳

308:Name_Not_Found
18/07/07 14:46:19.56 .net
正直node、nodeって言うほどそこまで良いものとは思えん
javascriptをそのままサーバサイドで、が売りだけど
node専用部分多いし、一定ライン以上複雑な処理書こうとすると途端に面倒になるし
多ユーザを高速にさばくためにnodeを使うとなるとお手軽とは正反対になる
それにコネクション張りっ放しにしてもらうような使い方しないなら、apache/phpで適切にチューンした方が・・・

309:Name_Not_Found
18/07/07 15:15:42.45 .net
nodeでコネクション張りっぱなし??ごめん何のこと?

310:Name_Not_Found
18/07/07 16:32:46.77 .net
例えばvue.jsのインストール方法見るじゃん
URLリンク(jp.vuejs.org)
cdnをscriptタグでリンクする方法の他にnpmとcliによるインストールがあるじゃん
npm用いてインストールしたらcdn使うのとHTML,Script,Style的に差は出るの?
もちろん通常のクライアントサイドのWeb用途を考慮して

311:Name_Not_Found
18/07/07 17:01:52.59 .net
以下のようにしてHTMLのbutton要素を取得したいのですが
var button Elements = document.getElementsByTagName("button")
Twitterのモバイルサイトではbuttonが表示されているのに
Chromeのユーザーエージェントをiphone設定して、HTMLを確認するとbuttonTagが存在していません
URLリンク(mobile.twitter.com)
Ajaxによって動的に書き換えられた後のhtmlソースコードを確認する取得する方法はあるでしょうか?

312:Name_Not_Found
18/07/07 17:07:58.53 .net
>>308
document.head.outerHTML + document.body.outerHTML

313:Name_Not_Found
18/07/07 19:47:09.42 .net
>>309 ありがとうございます
document.documentElement.outerHTML では
ChromeデベロッパーツールでiPhoneに設定し
表示されたHTMLと同じになってしまいます
スクリプトだらけでタグ類はほとんどありません
以下のWebアプリで
URLリンク(seo.mash-comp.com)
Twitterのモバイルサイト( URLリンク(mobile.twitter.com) )
のHTMLを表示するとAjaxによって動的に書き換えられた後のHTMLを確認できました
inputタグやbuttonClassが正常に取得できています
このようなWebアプリはどのような手段で
動的に書き換えられた後のHTMLを取得しているのでしょうか?

314:Name_Not_Found
18/07/07 20:08:55.73 .net
いちいち動的に書き換えられたって言ってるがjsからはブラウザが(静的な)HTMLを解釈して組み上げたDOMしかいじれないのだから普通にいじればそれは動的に書き換えられているHTMLをいじってることになる。
何も特別なことする必要がなくて、なんとも答えられない。
jsから、ブラウザや他のjsにいじられる前のそのページの(静的な)HTML取得するにはどうすればいいですか、というほうがよほど質問らしい質問。(この場合はlocation.hrefをfetchして必要に応じてXMLParserかけるのだが)

315:Name_Not_Found
18/07/07 20:42:59.17 .net
何をしたいのかさっぱりわかんね

316:Name_Not_Found
18/07/07 21:13:56.46 .net
jsを性的にいじる話?

317:Name_Not_Found
18/07/08 02:14:52.45 .net
Reactを勉強しているのですが
Atomic Design の Organisms を人前で読み上げることができません
赤面してしまいます
なぜこんな性的な名称を付けたのでしょうか?
これはセクハラです

318:Name_Not_Found
18/07/08 07:22:39.00 .net
野球開始のプレイボーイ!みたいなもんや
気にするな

319:Name_Not_Found
18/07/08 07:53:18.98 .net
>>315
それはプレイボールでは?
こういう下品なオジサンが鼻の下伸ばしながら用語決めてると思うと許せない

320:Name_Not_Found
18/07/08 08:27:35.42 .net
>>316
え? だからいちいちプレイボールってきいて
セクハラって思うなって話なんだけど?

321:Name_Not_Found
18/07/08 08:38:35.08 .net
>>317
そういう単語をあえて使わないでほしいと言っています

322:Name_Not_Found
18/07/08 09:08:05.71 .net
orga"ni"sm な
元々iにアクセントがあるんだからはっきり発音すればよろしい

323:Name_Not_Found
18/07/08 09:11:47.25 .net
大蟹住む

324:Name_Not_Found
18/07/08 09:14:16.14 .net
まんさんに大声で読み上げさせたいわ
オーガニズム、オーガニズム

325:Name_Not_Found
18/07/08 09:49:18.05 .net
>>318
サセックス州
大声でいってみ

326:Name_Not_Found
18/07/08 10:01:15.28 .net
>>322
最低

327:Name_Not_Found
18/07/08 11:06:55.22 .net
最大限にハゲを侮辱するようなjsコードありませんか

328:Name_Not_Found
18/07/08 11:19:37.94 .net
徹底的にハゲをいじめるためのjavascript

329:Name_Not_Found
18/07/08 11:30:52.31 .net
お前の頭がパイパンだぜ!

330:Name_Not_Found
18/07/08 18:13:09.21 .net
やっぱりこういう性善説に基づいたスレって破綻するよね

331:Name_Not_Found
18/07/08 18:32:31.13 .net
え?性伝説?なにそれ?エロそうな伝説だな。

332:Name_Not_Found
18/07/08 22:05:37.89 .net
belief that human nature is fundamentally good

333:Name_Not_Found
18/07/09 15:29:33.07 .net
>>310
Ruby + Selenium WebDriver で、ブラウザを操作するとか?

334:Name_Not_Found
18/07/09 17:40:19.38 .net
Seleniumは様々な言語から操作させるドライバーがリリースされていますが、最も保守メンテが滞っているのがrubyとか言うクソ言語です。
Selenium自体はJava製のソフトウェアですから、ネイティブドライバーが使えるJava版が鉄板です。
とはいえJavaはめんどくさいという人はPythonやnodejs用のドライバーがそれに次いでよくメンテされています。

335:330
18/07/10 09:47:08.81 .net
Ruby + Selenium WebDriver で、最新のChrome 67 でも動く

336:Name_Not_Found
18/07/10 11:59:12.33 .net
Pythonista的に糞言語には同意だけど
特定のドライバーの保守メンテが滞ってるから糞言語ってのはちょっとひどくねw

337:Name_Not_Found
18/07/10 13:50:49.74 .net
初心者で、クッキーの設定、取り出しを学習しております。
if(navigator.cookieEnabled)
{
document.cookie = 'key=value';
alert(document.cookie);
}
else{deocument.write("駄目")};
こんな感じでクッキーを設定して、取り出してアラートで表示するようにしたところ、
firefoxやIEではちゃんと表示されるのですが、Chromeだとアラートは出るのですが空白になります。
これはChromeの設定の問題でしょうか?
javascript許可、クッキーの保存読み取り許可しているのですが

338:Name_Not_Found
18/07/10 20:18:36.28 .net
昨今ポリシーがどんどん厳しくなってるからそういうことも起こる
オプション含め確実に値を設定し、万が一の場合も失敗が検知できるようにするため
chromeでは今後はcookieStoreが推奨される
cookieStore.set('key','value')
alert((await cookieStore.get('key')).value)
Canaryで試せる

339:Name_Not_Found
18/07/10 20:19:59.47 .net
最初の行await付けるの忘れてた

340:Name_Not_Found
18/07/11 19:11:15.53 .net
非同期クッキーAPIが入ってローカルストレージの非同期が来ないのはなぜだろう

341:Name_Not_Found
18/07/12 01:03:43.79 .net
>>335
ありがとうございます!

342:Name_Not_Found
18/07/13 02:48:26.75 RFgBSoyz.net
var aud = $("#audio");
$("#next").on('click', function() {
var u = Math.floor(Math.random()*5) + 1;
aud.attr('src', "URLリンク(xxx.x.xx.x.x"+u+".mp3"));
});
※nextはbutton要素のid です。
ここで質問させていただきます。この次の行にaudのsrcに指定したファイルを再生するのですが、
#nextを押しても再生されるファイルが変わってない(urlに指定していある「u」の値が反映されていない)ため、
思うように作動させることが出来なくて困っています。
なお、この関数は最初に呼び出されていると共に、一番上に書いてある関数です。
どなたかご教授願います。。。

343:Name_Not_Found
18/07/13 02:50:10.84 .net
5が全角なのはギャグか?

344:Name_Not_Found
18/07/13 06:16:38.93 .net
>>339
alert(u);

345:Name_Not_Found
18/07/13 09:58:34.45 5pSsdTZj.net
>>340
コピペする過程で全角になってしまった可能性があります。というのもuが1になった時のファイルは再生されるので......

346:Name_Not_Found
18/07/13 14:11:40.54 RFgBSoyz.net
>>341
ずっと1が表示されます

347:Name_Not_Found
18/07/13 16:09:42.60 .net
1のファイルとやらはvideoタグの初期ロードファイルだったりしないか
+で連結する前に、uと".mp3"について、それぞれ末尾にtoString()つけて、toString()含めて括弧で括る

348:Name_Not_Found
18/07/13 17:49:19.43 .net
>>343
URLリンク(jsfiddle.net)

349:Name_Not_Found
18/07/13 19:51:17.84 .net
> コピペする過程で全角になってしまった可能性があります
コピペでそんなこと発生しないような
コピペした後、手入力し直したのが原因

350:Name_Not_Found
18/07/13 19:59:33.00 .net
っていうか自分の質問の原因のコードと
自分が質問のために書いたコードなのに、可能性があります ってなんや

351:Name_Not_Found
18/07/13 20:36:49.17 .net
何れにせよ単純なミスっぽいし
まずはエラーメッセージを見て確認してみるのが
正攻法として勉強になると思うよ

352:Name_Not_Found
18/07/13 21:42:43.41 .net
なにもしてないのに、全角になったんです。

353:Name_Not_Found
18/07/13 22:00:51.87 .net
なにもしてないのにjavascriptがこわれた

354:Name_Not_Found
18/07/13 22:13:54.69 .net
なにもしてないのに~が壊れたの90割は何かしてる

355:Name_Not_Found
18/07/13 22:27:47.72 .net
>>349
何もしてないのに「コピペする過程で全角になってしまった可能性があります」と書けるのか
それとも、何もしてないのに、そう書いていたのか
結論「何もしてなかった」

356:Name_Not_Found
18/07/13 22:27:48.65 RFgBSoyz.net
>>340 - >>348
var i = Math.floor(Math.random()*5+1);
var num = i.toString();
aud.attr('src', "URLリンク(xxx.xx"+num+".mp3"));
で解決することができました!!皆様本当にありがとうございました!!!

357:Name_Not_Found
18/07/13 22:35:34.20 .net
>>353
それ、toString() は要らんのだがね
原因「なにもしてないのに、全角になったんです。」

358:Name_Not_Found
18/07/13 22:38:43.81 RFgBSoyz.net
>>339の者ですが>>349>>350は私の投稿ではないです
5が5と全角になった理由としては当初random()*5はrandom()*2であり、
「1の値のみが返ってくる原因として
Math.floor()以降の数字が小さい数字であるのでは」という疑問を解消するため大きい数字を入れて
テストしていました。その後投稿する際に日本語入力のまま2を5に変更したため5が全角に
なってしまったのだと思います。混乱を招いてしまい、すいませんでした。。。

359:Name_Not_Found
18/07/14 00:06:04.24 .net
テストと投稿が関係あるとしたら
投稿時に書き直す必要はないし、そもそも全角の5に気づかないって何のテストになったんだという話
テストと投稿が関係ないんだったら
投稿時に2を5に変える必要がどこにもないよね

360:Name_Not_Found
18/07/14 00:32:27.87 .net
ええやん別に
お前らもうちょい優しく甘くなろうぜ
おかんやないんやから

361:Name_Not_Found
18/07/14 00:38:38.21 .net
>>357
概ね同意だけど、おかんはどっちかって言うと「何もしてないのに~」って言う側やろ

362:Name_Not_Found
18/07/14 01:01:39.32 .net
なにもしてないのに怒られた

363:Name_Not_Found
18/07/14 01:36:50.75 .net
なにもしてないから怒られる

364:Name_Not_Found
18/07/14 03:30:24.67 .net
で、結局>>343の原因はなんだったの

365:Name_Not_Found
18/07/14 03:41:12.33 .net
複数安価で355がNGなってただけで原因みれたわ

366:Name_Not_Found
18/07/14 04:01:09.95 .net
Canvasでクロスフェードをしたいのですが、思うようにいきません
具体的には、例えば2枚の画像A,Bを半分ずつ重ねた状態を作るには、
アルファを0.5同士で重ねると良いように思えますが実際にそれをすると背景が透けます
0.5A画像+0.5B画像ではなく、
0.5(0.5背景+0.5A画像)+0.5B画像になってしまうということです
画像だけ分けて合成してから背景と合わせればいいだろうと思うかもしれませんがそれも上手くいきません
AB合成画像のαが(1-(1-(1-0)[無背景]*(1-0.5)[A画像])*(1-0.5)[B画像])=0.75[AB合成画像]となってしまい背景が0.25混じってしまうためです
解決方法を思いつかれた方はご教授ください

367:Name_Not_Found
18/07/14 04:11:43.68 .net
てかよくよくみたら原因は、全角のみじゃん。
ふつう「単に全角になってただけでした、すいません笑」みたいな返しが自然だが
>>353時点で、全角が原因だとまだ気づいてない or 別の原因があったことにしたい風なテンションはなんなん・・?

368:Name_Not_Found
18/07/14 07:58:32.00 .net
>>363
javascriptじゃなくそういう画像作れば?

369:Name_Not_Found
18/07/14 12:27:23.78 .net
<div id="a"></div>
スクロール必要な長いソースコードが続く
<div id="b"></div>
こういう状態で#bにいったときにアクションをしたいのですが
検出方法やどういったイベントを使うのでしょうか?

370:Name_Not_Found
18/07/14 12:32:48.65 .net
#bにいったときって?

371:Name_Not_Found
18/07/14 12:35:00.85 .net
マリア「なにもしてないのに子どもが出来ました!」

372:366
18/07/14 12:37:34.38 .net
>>367
縦スクロールです
例えばこのスレを開いて>>1からスクロールしていって
>>366のところで画面にalertをジャンと出すような感じです



374:Name_Not_Found
18/07/14 12:50:56.79 .net
>>363
ユーザーの目

画像A(50%)

背景
この時点でユーザーからは背景と画像Aが1:1で混ざった状態に見えるのは分かる?これに画像Bを50%で更に足すと、それにさらに1:1で混ざった画像になっちゃうわけ。背景:画像A:画像B=1:1:2
背景が透けて見えるのがおかしいと認識してるんだから、次のようにすればいいと分かるよね?
ユーザーの目

画像B(50%)

画像A(100%)
↓(以下は見えない)
背景
割合を変更するには、画像Bのところだけをいじる。画像A:画像B=95%:5%にしたいなら画像Bのアルファを0.05(5%)にする。画像Aはいじらない。

375:Name_Not_Found
18/07/14 13:00:16.18 .net
>>369
>>366のところって?

376:366
18/07/14 14:10:13.38 .net
#bの位置yを取得して
window全体をscrollイベントで現在の位置y'を監視して
yがy'になったら発火で良さそうですが
これだと常時scrollイベントが発生するので(位置yになったら解除するにしても)
環境によっては重い 電池消耗が激しいなどの問題に見舞われるので
そのへんうまくできないかなと思ったのですが

377:Name_Not_Found
18/07/14 16:10:47.05 .net
YouTube とか、その要素が表示されたら、画像を読み込むとかだろ
その要素が表示されたらとか、そういうイベントは無いの?

378:Name_Not_Found
18/07/14 17:07:28.37 .net
>>365 >>370
ご回答有り難うございます
確かに同形同位置の2枚の画像のフェードの場合はおっしゃる通りなのですが
実際は透過部分を持った不定形不定位置不定数枚のpngが動的に現れたり消えたりし得るというフェードであります
つまり、画像Aに画像Bを重ねる場合
画像Aを100%のままにしておくと画像Bが重ならない部分に問題が出てしまうということです
フェードが50%に達した段階では、
画像Aの画像Bに重ならない部分は背景と1:1で交わってほしく
画像Bの画像Aに重ならない部分は背景と1:1で交わってほしく
画像Aと画像Bの重なる部分はそれぞれ1:1で交わって背景は交わらさせたくないということです
ここからはフェードが同期的に始まったという場合で例を書きますが
もし画像Aのアルファが元々0.5である部分Дと、画像Bのアルファが元々1である部分Бが背景部分Gの上で交わるときは
フェードが50%に達した段階で0.25Д+0.5Б そしてのこる 0.25の部分がGとなってほしいです
もし画像Aのアルファが元々0.6である部分Дと、画像Bのアルファが元々0.7である部分Бと、
画像Eのアルファが元々0.8である部分Ёが背景部分Gの上で交わるときは
フェードが50%に達した段階で0.3Д+0.35Б+0.4Б これは1を超えるので、全ての係数の形が1となるように調整し
Gは全く含まれない、というような挙動にしたいです
要するに、αはフェード段階と画像のアルファに基づいて各画像分加算し、色もフェード段階と画像のアルファに基づき単純に加算する
ただしそのときαの合計が1を超える場合、αを1とし色の合計を調整して、最後に背景と重ねる
というようなうまくいくかどうか分からないアルゴリズムまでは考えたのですが
ピクセル操作などを行わずこういうようなことが簡単にできませんかね
ライブラリのフェードも試してみましたが、やはり問題は起こるようです(少しちらつくというか、浮くように見える)
今まで他の方はどうやって対処されてきたのでしょうか

379:Name_Not_Found
18/07/14 17:47:49.01 .net
>>374
これは見てる?
URLリンク(developer.mozilla.org)

380:Name_Not_Found
18/07/14 17:51:26.77 .net
画像をうまいこと願望どおりに重ねたい、っていうのにjavascript関係ある?

381:Name_Not_Found
18/07/14 18:11:11.87 .net
>>375
まさにこういったことでできるのであれば良いと思っているのですが、
どう使ったら良いのか検討もつかないので色々試しても上手くいきません
このオプションごとにどういう計算式が使われてるかが分かればまだやりようがあるかもしれません

382:Name_Not_Found
18/07/14 18:38:30.94 .net
そもそもcanvasでないといかんのかね?
css の transition で済むように思えるが

383:Name_Not_Found
18/07/14 18:49:22.19 .net
>>378
フルCanvasのゲームなので何とも……
ビュー層をHTMLにしたこともありますが
パフォーマンスや表示互換性、スクリーンショットなどの機能の実現の容易さから
今はCanvasを使って進めています

384:Name_Not_Found
18/07/14 21:01:41.87 .net
読み込むjavascriptのファイルを1つに統一することって出来ますか?
出来るならどんな風にやったらいいでしょう?
変数や関数名がかぶったりすると思うのでそこを解決しないといけないのと
あとライセンス的にどうなのかなという問題もありますが
/***
なんたら.js
author Nantara
URLリンク(nantara.example.com)
MIT License
**/
/***
うんたら.js
author Untara
URLリンク(untara.example.com)
Apache License
**/
こんなかんじで同ファイルに列挙すればいいのかとか

385:Name_Not_Found
18/07/14 21:18:43.89 .net
>>380
ごくごく一般的に行われています。
なぜならhttp1.1では一つにまとめたほうがセッションを節約でき大抵の場合パフォーマンスも良くなるからです。
複数のjsファイルを一つにまとめたものはバンドルファイルなどと呼んだりします。
ツールはたくさんあります。
私はwebpack使ってますがcssや画像もバンドルできたりするカオスツールなのでもっとシンプルで使いやすいの選んだほうがいいかもです。

386:Name_Not_Found
18/07/14 21:57:18.23 .net
>>381
どうもありがとうございます
さっそくwebpackがどういったものか調べて
類似ツールでよさそうなの探してみます

387:Name_Not_Found
18/07/15 05:43:29.99 .net
なぜ類似ツールを使う?w

388:Name_Not_Found
18/07/15 10:45:05.39 .net
コピペした時に半角数字を全角に自動変換するにはどうすればいい?

389:Name_Not_Found
18/07/15 15:30:26.71 .net
charCodeAt(0) + 0xFEE0でググレ

390:Name_Not_Found
18/07/16 01:40:30.93 .net
たった10個しか無いんだから列挙すべきだと思うけどな
判定処理+
String.fromCharCode(n.charCodeAt()+0xFEE0)
より
"0123456789"[n] || n
の方が明らかに良いだろ

391:Name_Not_Found
18/07/16 15:12:04.25 .net
違うドメインで発生したjavascriptのエラーを捕捉することって


392:できませんか?



393:Name_Not_Found
18/07/16 16:03:17.03 .net
違うドメインでエラー発生した際にキャッチしてシリアライズルール決めてjsonで送信
受け取ったらデシリアライズしてスロー

394:Name_Not_Found
18/07/16 16:55:16.11 .net
文字も混同した場合の>>384をやりたかったので>>386を参考に
var str="あ3い45う6え6 お2かき47く8け";
var newstr=str.replace(/[0-9]/g, n=>'0123456789'[n]);

395:Name_Not_Found
18/07/16 19:14:23.03 .net
横からですまんが
n=>'0123456789'[n]
この記法なんていうの?
無名関数で置き換えるとどんなかんじかな?

396:Name_Not_Found
18/07/16 19:23:33.88 .net
>>390
アロー関数 (n)=>n
function(n){ return n; }
function(n){ return '0123456789'[n]; }

397:Name_Not_Found
18/07/16 19:27:43.20 .net
文字列型の\dを投げてるのに本来整数型のindexとしてそのまま扱うのはちょっともにょる
この例では問題が出ないだろうとはわかっていても

398:Name_Not_Found
18/07/16 22:33:44.44 .net
>>390
ありがとう
少し賢くなった

399:14
18/07/16 23:17:40.53 .net
分かってはいたけど人いなかった
スレリンク(hp板)
誰か分かる方あっちのvue.jsスレで助けてください
今日はプロジェクト一回消して明日やり直します

400:Name_Not_Found
18/07/17 12:58:33.17 .net
>>392
JSの全てのプロパティは文字列型じゃないの?

401:Name_Not_Found
18/07/17 19:04:47.34 .net
stringとsymbol

402:Name_Not_Found
18/07/18 08:17:48.34 .net
>>387
青島「事件(エラー)はサイトで起こってるんじゃない。ブラウザで起こってるんだ!」

403:Name_Not_Found
18/07/18 08:59:43.72 .net
>>387
違うドメインから目的のドメインに送れ
URLリンク(developer.mozilla.org)

404:Name_Not_Found
18/07/18 10:37:04.38 .net
>>387-388
非同期処理は、異なるコンテキスト(流れ)だから、
例外機構は使えないので、戻り値などで知らせてもらうしかない

405:Name_Not_Found
18/07/19 02:49:03.03 .net
ジャバスクリプトに
スリープがない合理的な理由って何かあるの?
ブラウザの表示が目的だから、
表示を止めないために
必ず処理をする仕様だとか
そんなもんなのかな。

406:Name_Not_Found
18/07/19 02:55:01.39 .net
まあ、理屈上は内部でsetTimeoutみたいに扱えばいいだけだとも思えるんだけどね

407:Name_Not_Found
18/07/19 03:00:57.70 .net
>>401
使いにくいんですよね。
よくあるスリープの代替手段は
メモリ食うし。
スリープ実行でメモリ食うとか、最悪ですよ。

408:Name_Not_Found
18/07/19 08:54:56.43 .net
>>400,402
sleepを使う合理的理由がないから

409:Name_Not_Found
18/07/19 09:05:22.92 .net
sleepって何に使うんだろうな?
待たせたい時?何を?

410:Name_Not_Found
18/07/19 09:09:53.62 .net
「真のプログラミング言語にはSleepなど必要ない」ワロタwww
ruby信者のruby擁護みたいな言い種wwwww

411:Name_Not_Found
18/07/19 10:33:26.69 .net
sleep代わりにpromiseじゃだめなの?
直接的ではないにしろ事足りよね

412:Name_Not_Found
18/07/19 11:04:04.96 .net
>>404
スリープを使うメリットは
メモリの使用量を減らしたいときとか
ブラウザが固まらないようにとか
任意のタイミングで処理を実行したりとか
とにかくあれば便利だ
まあ、私が初心者というのもあるけど
ジャバスクリプトは、すごくやりづらいです

413:Name_Not_Found
18/07/19 11:45:20.15 .net
>>407
これはひどい転嫁。
ブラウザが固まらないようにsleep??
pythonなど他の言語でも10秒sleepしたら10秒固まるのでは?
任意のタイミングで処理を実行??
まさにsetTimeoutやsetIntervalの出番では?

414:Name_Not_Found
18/07/19 12:47:47.80 .net
async関数使えば
例えば
for(){
await fetch()
await sleep(1000)
}
みたいに出来るよ
場合によっては良い感じになると思うし

415:Name_Not_Found
18/07/19 13:29:04.12 .net
>>407
sleepとpromise(コールバックなど含む)の違いは、
sleepは他の処理が終わってようが終わってまいが、
指定された時間ただ待つだけ
promiseなどは他の処理が終われば即座に
それがわかるわけで待つやり方としてはこっちのほうが良い
他の処理の完了を効率よく待つのはsleepでは実現できないんだけど
なんでsleepがいるの?

416:Name_Not_Found
18/07/19 13:32:03.57 .net
>>405
> 「真のプログラミング言語にはSleepなど必要ない」ワロタwww
実際そうじゃね? ただ単に待つだけの処理なんて意味ないよ
他の何かが準備できるまで待ちたいなら、
他の何かが準備できたら通知してくれる方が良い
他の何かが準備できるのを待つことに対してはsleepはいらないんだから、
じゃあ他に何にsleepを使うのかと

417:Name_Not_Found
18/07/19 14:18:47.41 .net
さすがに「ちょっとしたデバッグのために」とかじゃないよな・・
それこそコンソール使えばいいし

418:Name_Not_Found
18/07/19 14:51:26.03 .net
何のためにsleepを使うか
重い処理をやってるときに途中途中で画面に反映したいとき
setTimeoutでもなんとかなるけどsetTimeoutの再帰呼出では迂遠になるケースがある
処理Aと処理Bの間にちょっとウェイトを入れたいとき
アニメーションとか。setTimeoutでできるんだけど重なると面倒だしsleepの一行でできると楽

419:Name_Not_Found
18/07/19 14:53:28.90 .net
というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない?
待つ用途で使うというよりも

420:Name_Not_Found
18/07/19 15:01:30.30 .net
>>413
そういう処理ならsleepの一行じゃ無理じゃん。ループの中に書かないと。
一方のjsはsetInterval一発なのであったw

421:Name_Not_Found
18/07/19 15:05:08.99 .net
>>415
例の前者のほうはループ必要だけどサブルーチン化は原理的には必要ない
setTimeoutやsetIntervalはサブルーチン化を強いられる
しかも再設定と離脱の仕組みを入れなきゃいけない分、どうしても複雑になるだろう
例の後者のほうはループ不要

422:Name_Not_Found
18/07/19 15:18:34.74 .net
>>409も書いてるけどsleepくらい自分で定義して使えば?
async関数で囲ってIIFEにして使うのが気に入らないかもしれないけどそのうちトップレベルawaitが入るとそれも要らなくなる。
ちなgoogle様謹製のsleep実装↓
const sleep = ms => new Promise(resolve => setTimeout(resolve, ms));

423:Name_Not_Found
18/07/19 15:24:56.78 .net
まあそういう風にやっちゃえば良くもあるんだけどね
ms待機とms以上待機とは厳密には違うということもあるけど実際そうそう問題にならないし
ただ、言語側で用意しようよという話

424:Name_Not_Found
18/07/19 15:47:06.82 .net
使いやすいところにsleep()があって気軽に使えるようになると
全体的にみればページロード完了までの所要時間が伸びるから
それを嫌ったのが実際のところじゃないかと

425:Name_Not_Found
18/07/19 17:33:33.33 .net
>>413
> 何のためにsleepを使うか
>
> 重い処理をやってるときに途中途中で画面に反映したいとき
sleepなんだからそこで処理は止まりますよ?
画面に反映する処理もしませんよ
だってsleepして止まってるんだから
ほんと何言ってるんでしょうかw

426:Name_Not_Found
18/07/19 17:35:39.13 .net
>>414
> というか他言語でのsleepも原則「他処理にいったん明け渡したい」用途がデフォじゃない?
今どきのOSはマルチタスクなんでー
sleepなんかしなくても他処理に明け渡されます。

427:Name_Not_Found
18/07/19 19:00:57.33 .net
昔のゲーム宜しく
sleep(10); //これを挟むとなぜか動く
でもやりたいんか

428:Name_Not_Found
18/07/19 19:03:26.23 .net
setInterval(hogehogefunction, 0); //こうするとなぜか動く

429:Name_Not_Found
18/07/19 19:06:21.42 .net
別にsleep使えばいいじゃん
自分で1行で定義すればasync関数内でそれっぽく使えるんだからさ
勿論setTimeoutというか、ブロッキングが気になるなら
requestIdleCallbackのようなものも検討していいケースもあると思うよ
でもsleep=悪ってことは無いと思うね
例えば同じように悪だと言われるevalよりも遥かに有用なテクニックだろうよ

430:Name_Not_Found
18/07/19 19:11:14.34 .net
>>422
sleep10秒挟むとなぜか動くってなに
興味がわいてしょうがないんだが

431:Name_Not_Found
18/07/19 19:34:06.30 .net
>>425
昔のゲームはOSなど無いに等しくハードウェアを直接操作していた。
そしてハードウェアの特定の命令は処理に時間がかかり
命令を出してから一定時間たたないと処理が終わらないことがあった
そういう場合はちゃんとハードウェアの仕様として最低Nミリ秒待つなどと書かれていた
しかし今の時代ハードウェアはOSやドライバが処理し、そのような処理に
一定時間かかるような、割り込みによって完了が知らされるようになった。
これにより処理が終われば通知されるため、スリープのように待ちすぎるようなことも無くなった。
もちろんブラウザでもOSやドライバ、それらを経由して
何かの処理に時間がかかるような場合は、コールバック関数が呼ばれることとなった
そのためブラウザでsleepは不要となった。またsleepは処理が止まり、
表示されたページも固まるのでユーザーインターフェースとしても不適切であり
避けるべきものとなった

432:Name_Not_Found
18/07/19 19:34:10.33 .net
10秒じゃなくて10ミリ秒だろ
つうか今でもJSみたいなイベント駆動じゃなくて
その対極に位置するポーリングタイプの言語環境では
ビジーループ回してsleepしながらポーリングするっていうのは普通になされていること
例えばゲームではコントローラーの状況をループでずっと確認し続けて
前回と変わっていれば変化があったと見なす
そういうのは普通に行われていること

433:Name_Not_Found
18/07/19 19:40:53.35 .net
>>423
直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。
setInterval 0でラップするとdomが安定した状態で実行させることができる。
サイ本に書いてある。

434:Name_Not_Found
18/07/19 19:44:58.75 .net
>>427
だから何度も言ってるけど、sleepしたら処理が止まるだろ
画面書き変わらなくなるぞ

435:Name_Not_Found
18/07/19 19:46:43.57 .net
>>428
> 直前にdomを操作する処理がある場合、非同期のため、hogehogefunction()とそのまま呼ぶとdom更新前に実行されてしまうことがある。
違う。逆
直前にdomを操作する処理がある場合、同期処理のため、hogehogefunction()とそのまま呼ぶとdom描画前に実行される。

436:Name_Not_Found
18/07/19 20:01:46.29 .net
ああミリ病を想定してたのか
細かいのはsleep(0)とかusleepを使うもんだとばっかり

437:Name_Not_Found
18/07/19 20:04:17.34 .net
ゲームじゃなくても今のPCハードでも
イベントが軸になってるフレームワーク使わないで普通にcで書くと
sleepさせないで重い処理すると「応答がありません」ってなるんじゃないんか

438:Name_Not_Found
18/07/19 20:05:17.30 .net
sleepは秒指定だよな・・・

439:Name_Not_Found
18/07/19 21:09:54.86 .net
>>430
えっ? 自分の書き込み良く読み直してごらんよ。
直前のdomを操作する処理がもし同期処理なら、hogehogefunction()とそのまま呼んでもdom更新後に実行されるでしょ。
そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。

440:Name_Not_Found
18/07/20 00:13:54.37 .net
>>434
じゃあなんか再現する例出してみなよ
DOMの操作は同期処理。
だから何か操作した後にすぐに参照しても操作後のデータが得られる。
ただしDOM描画は同期じゃないがな

441:Name_Not_Found
18/07/20 00:15:46.72 .net
> そうではなく非同期だからsetTimeout でくるむテクニックがあるわけで。
非同期とか関係なく、他の操作によるDOMの画面更新の後に処理したいからsetTimeoutを使う

442:Name_Not_Found
18/07/20 06:17:27.61 .net
>>429
sleepを使う言語の多くにおいて描画スレッドは別だろ
むしろ他のスレッド、プログラムにCPUを明示的に明け渡さないと
プログラムはフリーズするしPCも重くなる

443:Name_Not_Found
18/07/20 06:42:35.75 .net
最近のブラウザで言うと正確には操作の時点で同期処理とは限らないよ
例えば要素の形を変えたりするような操作は非同期である程度まとめて扱われる
もしgetClientRectsを読んだりするとその時点でブロックして構築・計算される

444:Name_Not_Found
18/07/20 07:05:01.10 .net
「操作の時点で同期処理とは限らない」ってことは、同期なものも非同期なものもある、ってことだよな
DOM「操作」そのもので、非同期なもの・非同期になる場合って
具体的にどのブラウザの何?
getClientRects()は操作側じゃなくて描画側の今現在の状態取得なんだから例として不適切では

445:Name_Not_Found
18/07/20 07:11:46.85 .net
>>437
仕様を読めば分かると思うが、JavaScriptはHTMLパーサに割り込んで同期的に処理されるぞ

446:Name_Not_Found
18/07/20 07:21:08.93 .net
そのレス先jsの話じゃなくね

447:Name_Not_Found
18/07/20 12:01:40.14 .net
>>437
> sleepを使う言語の多くにおいて描画スレッドは別だろ
そうだよ? だから描画スレッドでsleepは使えないって言ってるんだが?
だから何度も言ってるけど、(描画スレッドで)sleepしたら処理が止まるだろ
画面書き変わらなくなるぞ

448:Name_Not_Found
18/07/20 12:42:54.29 .net
認めない系jser

449:Name_Not_Found
18/07/20 12:44:03.61 .net
入力フォームが整数かどうかチェックする関数ってないですか?
isNaNは文字列だとダメみたいだしありそうなのに出てこない

450:Name_Not_Found
18/07/20 12:51:34.92 .net
type number で stepを1にしておけばデスクトップでは整数入力になるでしょ
その後念の為数値を|0すればいいんじゃない

451:Name_Not_Found
18/07/20 13:05:26.86 .net
>>417
async関数外でもawait使えるようになる予定あんの!?
nodeにそういうモジュールあるのは見たけど

452:Name_Not_Found
18/07/20 13:12:55.90 .net
>>446
URLリンク(github.com)
現在stage2

453:Name_Not_Found
18/07/20 13:13:30.10 .net
>>444
文字列なんだから普通に正規表現でいいんじゃないの

454:Name_Not_Found
18/07/20 14:33:56.02 .net
>>445
ありがとうございます
しかも最大最小チェックまでできるんですね
JSで値チェックして確認するアクションを作ろうとしてしてたんですけど必要なくなったので嬉しい
HTML5すごいですね
>>448
自分にとっては正規表現は普通じゃないんです
あんな意味不明な文字列かけるの理系のエリートだけじゃないの?

455:Name_Not_Found
18/07/20 16:09:20.52 .net
> あんな意味不明な文字列かけるの理系のエリートだけじゃないの?
バレターカ

456:Name_Not_Found
18/07/20 16:44:08.15 .net
そんな大したもんじゃないけどな
まずはワイルドカードの豪華版と考えて使い始めてみては?

457:Name_Not_Found
18/07/20 18:12:35.14 .net
便乗で質問
html5のstepで0.100ってやりたいけど
0.1になってしまう
変更されるたびに0付け足さないとだめな感じ?

458:Name_Not_Found
18/07/20 18:44:20.13 .net
html5のstepの意味が分からないので力になれない

459:Name_Not_Found
18/07/20 19:14:29.13 .net
ゼロ固定の小数2位、3位を表示させたい必要がわからない
0.001じゃだめなの

460:Name_Not_Found
18/07/20 19:23:49.36 .net
>>454
stepとは別の挿入する定数が0.123とか1.234で
で、リセット値は0.100
stepを0.001ではあまりに細かすぎるので
固定値挿入後に0.123→リセット→0.100→step 0.2→固定値 1.234
みたいに桁数がころころ変わる

461:Name_Not_Found
18/07/20 19:50:48.14 .net
てかそもそも例えば
0.111のあとにstep0.100したら0.2になったわ・・
0.211になるかと思ってたけど。

462:Name_Not_Found
18/07/20 19:51:47.17 .net
そこまで拘るんならもうPaintAPIとか使って好きなカスタム要素を0から作るしか無いだろうね

463:Name_Not_Found
18/07/20 19:55:38.65 .net
よくわからんけど、常に末尾に 00 を付けたいなら
それ専用の要素を配置して重ねればいいじゃない
00固定でもいいし、*1000して%100した値で更新し続けてもいいし

464:Name_Not_Found
18/07/20 20:07:41.00 .net
こちらの都合上、むしろ挙動は>>456で構わないけど
00省略は、数字が真ん中や右揃えだとぴょこぴょこなってちょっとだけ気になる
>>458
別の設定値 や step0.1で1.0が1になったり があるので末尾00固定は難しいけど
そもそも小数点使わない方法だと設定値の数字見た目そのものに意味があるので若干扱いづらい
(例えば3.14みたいな)
>>457
もう妥協することにしたわ
そこまで使用頻度高くないし

465:Name_Not_Found
18/07/20 20:15:54.12 .net
どうせ妥協するなら諦めなくとも
elem.onchange=e=>{e.target.value=e.target.valueAsNumber.toFixed(2)}
とかで妥協しても良いんじゃない?

466:Name_Not_Found
18/07/20 20:23:14.02 .net
>>460
なんじゃこりゃ初めて知った

467:Name_Not_Found
18/07/20 20:49:13.79 .net
>>460
自分の環境だけかもしれないがinputの上下矢印にmouseONのままclickだと最初しか反映されず
mouseOUTすると反映
キーボードからは常時反映で良い感じ
外部からjqueryのvalで値を変更すると無反応

468:Name_Not_Found
18/07/20 21:40:17.15 .net
イベントトリガには深い闇があってな

469:Name_Not_Found
18/07/20 22:01:16.21 .net
まあ今回はそんな闇は関係ないが

470:Name_Not_Found
18/07/20 22:37:47.58 .net
結局セミコロン;はつけるの?つけないの?

471:Name_Not_Found
18/07/20 22:48:33.59 .net
今どきはスタイルの制限というものはない
公開される時には整形で揃うから

472:Name_Not_Found
18/07/20 22:57:18.49 .net
>>447
thx便利になるな

473:Name_Not_Found
18/07/20 22:58:40.09 .net
配列とかリストとか最後のアイテムにカンマつける?

474:Name_Not_Found
18/07/21 06:12:04.43 .net
>>467
誤解してるんじゃない?
ただ単にモジュールの非同期読み込み時にもawaitが使えるというだけだぞ
大抵はDOMContentLoadedを待ったりするだろうしそんな便利になるようなものではないよ

475:Name_Not_Found
18/07/22 09:30:47.82 .net
明言してくれても良いのよ?
URLリンク(www.atmarkit.co.jp)

476:Name_Not_Found
18/07/22 10:46:42.18 .net
次のガンはSafari

477:Name_Not_Found
18/07/23 12:14:45.42 .net
ブラウザ用でもnode.jsでもいいのですが
英語の形態素解析ライブラリってないですか?
検索の時に活用のゆらぎを吸収するのに使いたいです
madeもmakeでヒットするようにするなど

478:Name_Not_Found
18/07/23 12:56:01.18 .net
それは形態素解析と言わない

479:Name_Not_Found
18/07/23 13:09:56.05 .net
いや形態素解析で出来ますよね?
原形が分かるので。
品詞を分析しない単純な置換だと、本来正規化する必要のない語まで置き換えかねないので
形態素解析でやる方がいいと思います

480:Name_Not_Found
18/07/23 13:31:29.98 .net
形態素解析では出来ない
それは解析結果を使ってるだけ。形態素解析でやってるわけではない。

481:Name_Not_Found
18/07/23 19:59:38.03 .net
いや解析結果を使うには形態素解析が必要ですよね?
ようは形態素解析ライブラリがあれば万事解決なんですよ
しょうもない詭弁はいらないんです

482:Name_Not_Found
18/07/23 20:14:55.31 .net
はやく形態素解析ライブラリだしてくださいよ
期限は今週中なんですよ

483:Name_Not_Found
18/07/23 20:15:36.29 .net
形態素解析ではできないよ

484:Name_Not_Found
18/07/23 20:53:46.76 .net
>>477
いやなりすましはやめて下さい
>>478
出来ますよ
アホなんですか?

485:Name_Not_Found
18/07/23 21:08:27.24 .net
Web Assemblyが主流になればjavascript終わるの・・?

486:Name_Not_Found
18/07/23 21:09:02.95 .net
形態素解析には辞書が不可欠だけどブラウザ稼動で辞書読み込ませるん?

487:Name_Not_Found
18/07/23 21:19:10.06 .net
>>479
出来ないよ。
新幹線で大阪まで行って道頓堀に飛び込むことは出来るけど、
新幹線で道頓堀に飛び込むことはできないよ。
日本語を勉強しよう。
質問は相手に伝わらないと意味がないよ。

488:Name_Not_Found
18/07/23 21:24:19.44 .net
wasmって要するにこれだよな
何やってるプログラムなのか読むのがものすごくめんどいjavascript

489:Name_Not_Found
18/07/23 21:39:10.94 .net
自分も形態素解析興味あるので横からだが
まとめると、例えば下のような文章があったとすると
【文章】
 「私の名前は学(まなぶ)です。」
 「私は歴史を学ぶ。」
【辞書ライブラリ】
 学 - 学ぶ - 学んだ
【やりたいこと】
 人名の 「学」 を 「學」 に置換したい
 それ以外の 「学」 は置換したくない
 ので、形態素解析にまず通して、人名だけ抽出
 辞書ライブラリに通して、人名の「学」だけを抽出
みたいなこと?(あくまで一例だが)

490:Name_Not_Found
18/07/23 21:40:46.34 .net
>>482
頭良さそうだなお前

491:Name_Not_Found
18/07/23 22:02:05.85 .net
例えば簡単な暗号化を返したいとき
(1)入力された文字列
(2)文字列をリバース、md5に通してリバース、さらにmd5
(3)前から10文字だけ返す
みたいなことをしたかったら
javascriptの生ソースで置いて読み込んでたらバレバレなのは当たり前だけど
バラしたくなければ、例えばサーバーサイド言語で(2)(3)の部分だけを
サーバに置いてコールバックで受け取る、みたいなのが今までの手法?
でもwasmだと(2)(3)の部分がコンパイル済みなので
ハッキング以外にはバレない、みたいなことが可能なのでしょうか・・?
そうであればウェブ言語だけでシリアルナンバーとか生成できそうで便利だと思ったのですが

492:Name_Not_Found
18/07/23 22:06:58.17 .net
逆汗されたら無力だけど気軽には見られないよね
程度の認識がいいと思う

493:Name_Not_Found
18/07/23 22:12:44.37 .net
なるほど・・
おそらく逆汗封じというか、極力わかりにくくするような技もあるんでしょうね

494:Name_Not_Found
18/07/23 23:44:45.33 .net
ないよ。まったく無駄。そういうことのために用意された訳じゃない。

495:Name_Not_Found
18/07/24 00:16:52.66 .net
>ウェブ言語だけでシリアルナンバーとか生成できそうで便利だ
この結論部分が何言ってんのか全く理解できない

496:Name_Not_Found
18/07/24 00:49:46.84 .net
>>490
(仮に)逆汗無しという前提であれば
(1)シリアルキー発行するwasm
(2)(1)のシリアルキーを認識できる圧縮解凍フォーマットwasm
を用意すれば
ウェブ系の言語だけでとか、オフラインでもとか、ブラウザのみでとか
それぞれ(サインアップなど必要とせず)プロテクト付きのコンテンツをやり取りできそうで便利、
という意味
でもアンチ逆アセンブラは無理そうなのでタラレバですね

497:Name_Not_Found
18/07/24 00:58:28.90 .net
バカか。そんな前提無意味。winやmacのネイティブアプリがシリアルキー発行してるか?
常識で考えろバカ。
クラッカーに「いや逆アセンブル無しでお願いします」言ってまわんのかバカが。

498:Name_Not_Found
18/07/24 00:59:16.40 .net
md5で?md5で?
「シリアルキー発行」をwasmすなわちクライアント側がやってどうすんの?
圧縮ないし暗号化されたものを、伸張ないし復号化された後のものをどうこうされたら無駄では?

499:Name_Not_Found
18/07/24 01:06:52.60 .net
通信量やロード時のコストは変わるかもしれないけど実際の処理速度は変わらんのだろ
当たり前だけど
じゃあ他に何が良いかって、javascript以外の記述が使えることを除けばあとは
難読化よりももう少しバレにくい、以外無いじゃん
バレたくないどんな処理をさせるつもりだよ
どんな処理させられてるかわからないコードなんて受け入れたくないわ

500:Name_Not_Found
18/07/24 01:14:20.13 .net
ウェブ言語というものからしてもう誤解してそう
知ったか系SE

501:Name_Not_Found
18/07/24 01:23:47.60 .net
バレにくくするために用意された仕組みではありません。
お前のような泡沫ザコプログラマ以外にとっては、コンピューターで現実時間で解析的に解ける難読化は無いのと一緒です。

502:Name_Not_Found
18/07/24 01:35:20.03 .net
>>492
>クラッカーに「いや逆アセンブル無しで
仮に、逆汗無し=逆汗ができないとすると
という意味です・・・
できてしまうというのはなんとなく流れでわかりました
なので 仮に です
>>493
md5どうのこうの例は単に説明のために簡単な例をあげただけなので・・・
(適当にmd5を選んだだけです)
例えば、とか、みたいな、って結構強調したつもりなんですけどねぇ・・・
>復号化された後のものをどうこうされたら無駄では?
もちろん復号化されたデータが拡散されたら終わりですし
シリアルキーが流出したら終わりです
(どんなコンテンツかにもよりますが)
>>496
はい、>>489もみましたしそのタイミングで>>490のレスが来たので
答えるとすれば>>486時点での認識で「仮の」話をしなきゃいけなかったのです
なのでそれ以降、例えばとか仮にとかクドいかなと思いつつ書きまくったんです

でもこのありさまなんですよねぇ・・・
「例えばもしも」から話してるのに
投げ返された会話のボールが妙にズレている気がしてなりません・・・

503:Name_Not_Found
18/07/24 01:39:39.81 .net
意味の無いしょうもない仮定に付き合う必要はない。
「もし朝起きたときチンコが松茸になっていたとして~」
このあとは聞く必要はない。そういうこと。

504:Name_Not_Found
18/07/24 01:40:15.06 .net
簡単な例が云々とか説明のため云々はいいから
md5で何をどうやって?

505:Name_Not_Found
18/07/24 01:42:18.42 .net
クライアントサイドでシリアルナンバー発行とお考えになった理由はノータッチなんですか

506:Name_Not_Found
18/07/24 01:45:18.19 .net
ジャップ真でくれ

507:Name_Not_Found
18/07/24 01:47:03.57 .net
スレをミスったわ

508:Name_Not_Found
18/07/24 01:48:40.27 .net
なーにが会話のボールだ
ボールにウンコ付けて投げといて相手がキャッチしないとブー垂れるバカかww
取るわけねーだろバーカwwww

509:Name_Not_Found
18/07/24 01:58:15.59 .net
「解析されにくい」が前提にあればできることなら
例えばflashなどで実現されてたはずの手法ってことにならんかね
あれわりとブラックボックスだろ

510:Name_Not_Found
18/07/24 02:00:08.75 .net
>>499
>>486は入力された文字列をトリップみたいなもので返してほしいな、
程度の話で、>>486の最後の行と>>491のシリアルキーのくだりはmd5云々とは別の話です
シリアルのくだりを強いて言うなら例えば、
(1)シリアルキーを発行するwasm
  例)「3284443」や「7138751」という素数シリアルキーを発行する
(2)シリアルキーを解読できる圧縮解凍フォーマットwasm
 例)「3284443」や「7138751」を素数判定して解凍
みたいな感じです
仮に、素数も(1)(2)のソースコードもバレなければ、復号化が難しい
みたいな感じです
ただし、シリアルコードが流出することや復号化されたデータが流出することには対応できません
みたいな感じです
さすがにくどいと思いますが、もちろんシリアルキーが素数というのはあくまで例なので
そのままの意味で受け取らないでくださいね
もっと良い例があると思うので脳内変換してください
あとこのレスは>>498の通りです



512:Name_Not_Found
18/07/24 02:01:45.44 .net
訂正
>仮に、素数も(1)(2)のソースコードもバレなければ
仮に、みんな素数も知らず、1)(2)のソースコードもバレなければ
でした

513:Name_Not_Found
18/07/24 02:10:35.73 .net
素数……ソース……
ふふっ

514:Name_Not_Found
18/07/24 02:20:40.25 .net
URLリンク(blog.mbaas.nifcloud.com)
ちなみにこの記事
>WebAssemblyとは?
>バイナリ、つまりコンパイルされていますのでソースコードが読まれることはありません。
てあるけど

515:Name_Not_Found
18/07/24 02:22:34.44 .net
>>505
見事に「ウェブ言語だけでシリアルナンバーとか生成」が意味不明なままなんだが
コンテンツに対するプロテクトのくだりだけ拾っても
>シリアルキーを認識できる
>シリアルキーを解読できる
ってどんな処理を想定してんの
暗号化分野に関わらないほうがいいと思う

516:Name_Not_Found
18/07/24 02:23:05.83 .net
「ソースコードが」読まれないからなんだっつーんだよ

517:Name_Not_Found
18/07/24 02:37:49.65 .net
はじめから最後まで処理フローを書き起こしてみると問題点がわかるようになると思うよ
書く能力があるならね

518:Name_Not_Found
18/07/24 02:57:14.70 .net
>>509
>ってどんな処理を想定してんの
一言でいうと、コンテンツのプロテクトです
まず、>>505の(1).wasmと(2).wasmをみんながインストール?する
(例えばchromeの拡張でもアプリでもなんでもいいので読み込む)
Aさんがコンテンツをアップロード(アップロード先の指定なし)
その際、(2).wasmで圧縮(や暗号化など) → 暗号化されたコンテンツA
(コンテンツAは公開されており、不特定多数がコンテンツAをダウンロードできる状態(*1)。
が、内容の閲覧はシリアルキーがないので、できない)
BさんがAさんのコンテンツを購入
→(1).wasmによりシリアルキーが発行される
→コンテンツAをダウンロード
→(2).wasmに従い、コンテンツAを復号化
これが可能ならば従来のデータサーバと決済プラットフォームの集中型BtoCではなく
(1).wasmと(2).wasmと購入→発行.wasmを配布するコストだけなので、
決済もデータサーバも場所にこだわらないCtoCが可能なのではと思いました
(もちろんBtoCかつ、データだけ別というのもあり)
もちろんこのままだとコンテンツA以外のどのコンテンツ(BCDE、、、)も同じシリアルキーで閲覧できてしまうので
今はパス付きzipみたいなものとの差別化、程度です
もっと深い解決策は賢い人に任せます
(*1)コンテンツ自体は暗号化せず、シリアルキーをログインに必要なデータにしてもよい

519:Name_Not_Found
18/07/24 03:00:24.39 .net
あと、購入→(1).wasmではなく、購入→認証→(1).wasmです

520:Name_Not_Found
18/07/24 03:54:20.50 .net
>>512-513
他人の企画にタダで添削してあげる趣味はないんだけど
あえて言うと
原則的にファイルとしての取得をさせずブラウザ上でのみ閲覧/使用等が可能、
・・・と出来なければ、絵に描いた腐った餅では
それをなんとかできないのであれば
「.wasm・シリアルキー・暗号化済み製品コンテンツ、以上3つが揃わないとコンテンツを復号化できない」
という仕組みにする意義がない
既存の方法の改悪に過ぎなくなり、>>512の5段目などは根拠に欠ける論理飛躍となる

あと、そんな仕組み想定だとて「ウェブ言語だけでシリアルナンバーとか生成」「シリアルキーを解読できる」は意味不明のまま
説明スキルの欠如なども鑑みると、正直いって企画・設計に携わらないほうが良いと言っておきたい

521:Name_Not_Found
18/07/24 04:26:11.26 .net
擁護レスが皆無

522:Name_Not_Found
18/07/24 04:46:47.64 .net
> >>512の5段目などは根拠に欠ける論理飛躍となる
あれ・・?そうですかね
例えばBtoCサービスによるCtoCの補助サービスな感じで
.wasmの生成や配布が企業により保証されていれば、ハードルが低いというか
「うちのサービス使うならこのアプリ使ってね」や
「こちらからユーザに紐付いたコンテンツ別の.wasmを生成してね」
なんかは自然な流れだと思いますね
完全CtoCかつ個人で決済もシリアル発行も、は利用者のリテラシ上ハードルは高そうです
ですが、上にも書いたよう.wasm生成・配布サービスが保証されていれば
インストールする前に、企業連携でハッシュ値の確認をすればいいだけのような
>ウェブ言語だけでシリアルナンバーとか生成
そもそも始まりの、自分の認識が
「WebAssemblyのソースコードって読めちゃうの?」
「逆汗で中で何やってるか丸わかりなの?」
みたいなところから来てるのでとくに深い意味もなく
説明としては>>491ですね
要は、webassembly使えばお手軽にシリアルキー発行できるか否か
程度の話です
>シリアルキーを解読
これはよくあるプロダクトキーの照会と捉えていいかもですね
ただ、キーを.wasmに投げた後の処理が照会→キーの解析→閲覧などあります
コンテンツ売買のくだりも、企画設計を想定しているというか
>ってどんな処理を想定してんの
という質問が来たので、例えばこういうのできたら面白そうだなと
即席で考えた感じです。もっと単純に言えば
「複数のIDが事前に登録されており、ランダムにechoするだけの.wasm」
これが実行される前に
・バイナリデータから全登録IDを取得できるのだろうか?
・逆アセで全登録IDはバレバレ(丸見え)なのだろうか
というが知りたかっただけです

523:Name_Not_Found
18/07/24 04:55:28.73 .net
単純な話、
ウェブ上でみんな同じファイル(.wasm)を読み込んでいるのに
キー発行のアルゴリズムがバレずに独自キーを発行できる
って何かすごい気がする
と思っただけというか

524:Name_Not_Found
18/07/24 05:18:24.34 .net
今の心境を語るなら、仕様バグに突っ込みを入れたときの、担当者の言い分を聞いている感覚に似ている

525:Name_Not_Found
18/07/24 07:05:47.46 .net
>>484
そうです
自分がやりたいのは英語の置換なので、
英語の活用形と何の繋がりもないのに綴りが同じ名詞がないこともないだろうと。
あと単純に、形態素解析なら、原形に置換するための辞書を用意する必要がないというのもあります
一度で、二度おいしい

526:Name_Not_Found
18/07/24 07:11:45.90 .net
ということで今週中にお願いします
納期が迫ってるんです

527:Name_Not_Found
18/07/24 08:31:42.95 .net
while( !answer ){
you.hair.fallOut();
if( xday < (new Date()).now() ) you.die();
}

528:Name_Not_Found
18/07/24 08:58:56.23 .net
>>520
だからやりすますのやめて下さい
納期なんてないです

529:Name_Not_Found
18/07/24 09:32:01.79 .net
if(you.hair.empty())

530:Name_Not_Found
18/07/24 12:35:18.76 .net
確かにWASMにすればソースコードはわからないけど、
バレたくないのって特許的なアルゴリズムだったり、計算に纏わる各種数値でしょ
そのくらいであれば簡単に解析できるよ
バイナリとは言えasm.jsを圧縮したようなもんだから、アセンブリとは違って逆コンパイルも単純だし
その状態でも確かにメモリアクセスを理解するのはやや煩雑だがロジックは簡単に読める

531:Name_Not_Found
18/07/24 12:53:58.23 .net
WASM側(jsの方がわかりやすいので)
var atari={
'Z3845fHc':'アマギフコード1',
'83F8y838':'アマギフコード2',



];
JavaScript側
//WASM読み込み&ためのコード
 console.log( instance.exports.atari[id] );
//WASM(ry
例えばこういうのでもWASMのバイナリコードを読み込んだ時点で
事前にアマギフコードが全部バレちゃうってこと?

532:Name_Not_Found
18/07/24 12:57:15.24 .net
訂正 atariは}で閉じ

533:Name_Not_Found
18/07/24 13:13:19.76 .net
WebAssembly Studioみる限りそのままコードをバイナリにしてるぽいので
>>525の変換後も普通に突っ込めばできそうなんだが今ちょっと試せない

534:Name_Not_Found
18/07/24 17:28:23.75 .net
この長文の人って>>502と同一?
構ってもらえる訳ないだろ

535:Name_Not_Found
18/07/24 17:56:48.27 .net
今ちょっと試せないで草

536:Name_Not_Found
18/07/24 20:31:27.96 .net
そのままコードを置き換えてるという点では
既存のミニマライザ程度の難読化効果はあるだろうがそこまでだからな
その状態でも通信すれば内容は抜けるし
どんなに難読化しようと最終的にCanvasに書き出せばそれは簡単に取得できる
そしてでっかいABをメモリに見立てて使うと言う点では
その1つのABさえ監視しておけば全ての重要なデータがそこに含まれてるのだから
ネイティブのゲームなんかのハックでCheat Engine使ってプロセスメモリ解析するようにABを解析するようにすれば、
むしろミニマイズされたコードの流れをデバッガで必死に追いかけていくよりもチートが容易いかもしれない
既存のチート対策のようにメモリ管理を丸ごと自前で構築して
頻繁に割当を移動させるだとか、値をXORしたりする方法はあるかもしれない
でもWASMの問題は逆コンパイルが容易でそういうコードもバレやすいし、ランタイムの改ざんも非常にしやすい

537:Name_Not_Found
18/07/24 20:54:41.14 .net
つまりjavascriptの難読化するやつは悪人ってことですね

538:Name_Not_Found
18/07/24 21:19:13.81 .net
さらにもうちょい具体的に知りたいです
例えば
URLリンク(webassembly.studio)
(上タグのBuildでmain.wasm化できます)
入力値をnとすれば
instance.exports.main(n);
1を入力したら120
3を入力したら360
10を入力したら1200
という具合に、単にnに120掛けているだけ
というのは予測できるが、
nに 2*3*4*5 を掛けているのか、60*2 を掛けているのかetc
かどうかは、Build後のmain.wasmからは読み取れない
という認識で合っていますでしょうか?

539:Name_Not_Found
18/07/24 21:21:04.42 .net
協力会社の人に聞くことにします

540:Name_Not_Found
18/07/24 21:23:19.06 .net
強力な協力会社です

541:Name_Not_Found
18/07/24 23:22:50.84 .net
>>532
コンパイル最適化で定数の120にされるのでそれはわからない
わからないと言うか実際はただ120をかけてるだけ
でもそこが分かっても分からなくても大したこと無いだろうよ

542:Name_Not_Found
18/07/24 23:37:44.04 wx4nKfcH.net
今ふと思ったのですが、power shell で.jsファイルを実行することって
可能なんですかね....
ちょっとやってみたら、もちろんprintはできませんでした

543:Name_Not_Found
18/07/24 23:44:40.87 .net
.pyならpythonコマンドを、.jsならnodeコマンドを呼べば出来るだろ。シェルをなんだと思ってるんだ。
すぐ制御戻ってくるのが嫌ならStart-Process -Wait使え

544:Name_Not_Found
18/07/25 00:11:41.90 .net
>>535
>コンパイル最適化
なるほど ありがとうございました

545:Name_Not_Found
18/07/25 10:13:39.34 .net
JavaScript Lemmatizer
URLリンク(github.com)
このライブラリは英語の動詞や名詞の原形を取得できるものですが
URLリンク(takafumir.github.io)
このサンプルページを実行しても、今のchromeだとエラーになって動作しません
どうすればいいのでしょうか?

546:Name_Not_Found
18/07/25 12:41:54.47 .net
変換テーブルだけ使わせてもらうのもアリかと思い>>539のソースを見てみたのですが、
どういう基準が選ばれたのか分からない、不思議な連語が結構含まれていて、謎みがあります
おそらく、元になったライブラリから流用されたものだと思いますが。
それでふと思ったのですが、語を一つ一つ英和辞典で引くことでも、変換テーブルは作成可能ですよね?
英和辞典なら、複数形で引けば単数形が出るし、過去形で引けば現在形が出るはずです
コマンドラインで引ける(プログラムから引きやすい)英和辞典はないものでしょうか?

547:Name_Not_Found
18/07/25 12:43:23.16 .net
自演臭い

548:Name_Not_Found
18/07/25 13:31:39.30 .net
そんなどこの馬の骨とも分からんような未メンテ放置のライブラリよりnaturalのstemmer使えよ。
URLリンク(github.com)

549:Name_Not_Found
18/07/25 13:59:21.77 .net
>>541
「JavaScript 英語 動詞 原形」とかで検索したら最初に出てくるページですが?
>>542
ありがとうございます
語幹だけを取り出すプログラムはstemmerっていうんですね
そういうキーワードになる術語も知らなかったので助かります

550:Name_Not_Found
18/07/25 14:57:21.24 .net
IPFSで簡単なサイト作ってみようとして疑問に思ったことがあります
ajaxでよくある、クロスドメインの問題です
IPFSにjsファイルをアップロードして読み込む場合、
これはブラウザ側で許可する以外に方法はないのでしょうか?

551:Name_Not_Found
18/07/25 15:10:29.40 .net
ajaxでよくある、クロスドメインの問題です
ぐぐりましょう

552:Name_Not_Found
18/07/25 16:16:40.48 .net
node.jsのnaturalっていうのは、自然言語関係の一般的なアルゴリズムを集めたもので
辞書は含まれていないようですね
すべてをアルゴリズム的に処理するので、不規則動詞を原形にしたりは出来ないようです
WordNetにアクセスするモジュールもあったので期待したのですが
WordNeは意味を中心に語を体系づけたものなので、語の外形についての情報はないっぽいです・・

553:Name_Not_Found
18/07/25 17:25:53.97 .net
そうかそりゃすまんかった

554:Name_Not_Found
18/07/25 20:26:13.96 .net
いえいえ、キーワードを知れただけでも助かりました、ありがとうございます
WordNetというキーワードからPDICという辞書ソフトを見つけて
それ用の辞書はCSVとして出力可能なので、データソースとして使えるかも?というあたりまできました

555:Name_Not_Found
18/07/25 20:28:11.18 .net
これなら今週中の納期に間にあうかな?

556:Name_Not_Found
18/07/25 20:34:28.97 .net
というかwebapiに丸投げとかしちゃいけないの?

557:Name_Not_Found
18/07/25 21:49:37.98 .net
どうせならTensorFlow.jsでモデル作ろうぜ

558:Name_Not_Found
18/07/25 22:11:01.44 .net
>>551
不規則動詞を原形にするのにニューラルネット使うなんてミスマッチ過ぎるw
はやりに踊らされるディープバカ。

559:Name_Not_Found
18/07/26 06:38:06.00 .net
ニューラルネットってWebと相性が良いと思う
データの量にかかわらず指定したサイズと計算負荷のモデルを作ることができるし
それを蒸留してモバイル向けにサイズと計算負荷が1/5のものを用意するとかも簡単にできる

560:Name_Not_Found
18/07/26 08:36:01.63 .net
ディープバカwwww

561:Name_Not_Found
18/07/26 14:38:27.64 .net
JavaScriptの正規表現でgスイッチを使うと
グループ化が機能しないことに気づきました
console.log("0123ABCD".match(/\d+(\w)/));
=>["0123A", "A"]
console.log("0123ABCD".match(/\d+(\w)/g));
=>["0123A"]
gスイッチもグループ化、どちらもが配列で返すので、
機能的にバッティングしているのが理由かと思いますが
そこは配列の配列を返せばいいだけのような?
違いますか?

562:Name_Not_Found
18/07/26 15:11:24.15 .net
法廷ドラマみたいな問い質し方でワロタwwwww

563:Name_Not_Found
18/07/26 17:59:31.42 .net
>>555
console.log("0123AB456CD".match(/\d+(\w)/g));
=>["0123A", "456C"]

564:Name_Not_Found
18/07/26 19:41:58.68 .net
>>555
str = "11A22B33C"
reg = /\d+(\w)/g
ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
// [["11A", "A"], ["22B", "B"], ["33C", "C"]]

565:Name_Not_Found
18/07/26 20:11:46.36 .net
>>558
なぜ2回、matchするんだ?

566:Name_Not_Found
18/07/26 20:34:38.81 .net
言う前に先越されたかw
>>558
そんな、RegExpの挙動をちゃんと知らないと理解できないような
読み解くのに時間がかかるようなコードかかないで
分かりやすくかけよ。だから>>559みたいなレスが来る
ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
// ...Array 大好き人間かよ。 新しい技を手に入れたらそればっかり使いたくなる癖は直したほうが良いぞ
ary = str.match(reg).map(_=>reg.exec(str));
// 短いがこれも分かりづらい。_を捨てて何故動くんだよ?ってなる

reg1 = /\d+\w/g
reg2 =/\d+(\w)/
ary = str.match(reg1).map(i=>reg2.exec(i));
// 推奨。わざわざ変数に入れなくてもよいが

567:Name_Not_Found
18/07/26 20:37:34.81 .net
> // 推奨。わざわざ変数に入れなくてもよいが
変数に入れなくて良いのは正規表現ね
ary = str.match(/\d+\w/g).map(i=>/\d+(\w)/.exec(i));
ということ

568:Name_Not_Found
18/07/26 20:39:22.88 .net
>>555
var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/);
// arr.shift();arr.pop();
console.log(arr);

569:Name_Not_Found
18/07/26 20:43:23.88 .net
Ruby なら、
str = "11A22B33C"
reg = /\d+(\w)/
str.scan(reg).to_a
#=> [["A"], ["B"], ["C"]]

570:Name_Not_Found
18/07/26 20:45:08.53 .net
>>563
数字消えとるやんw まあ残せとか書いてないけどさ

571:560
18/07/26 20:51:23.28 .net
うーん、でも普通(?)にwhile使えば正規表現処理は1回ですむんだよな
これもう少しうまくかけないかな
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = [];
while (a = reg.exec(str))


572:{  ary.push(a); } console.log(ary);



573:Name_Not_Found
18/07/26 21:09:10.20 .net
>>565
それが基本
>>560も無駄が多い

574:Name_Not_Found
18/07/26 21:13:22.78 .net
え?>>560の無駄って?
言えないなら黙ってろよw

575:Name_Not_Found
18/07/26 21:22:47.40 .net
>>566
IDちゃんと見ろよ。
>>565>>560は同一人物だ

576:Name_Not_Found
18/07/26 21:29:30.54 .net
>>555
var arr = "11ABC22BCD33CDEF".split(/(\d+(\w))/).filter((_,i)=>(i%3!==0));
console.log(arr);
//=>["11A", "A", "22B", "B", "33C", "C"]

577:Name_Not_Found
18/07/26 21:29:46.43 .net
>>568
同一人物だからいってる
正規表現処理の回数を気にしてるぐらいだし、伝わると思うが

578:560
18/07/26 21:35:53.24 .net
RegExp.exec()がコールバック関数を受け取れば良いのかなー
第二引数に関数が渡されていればmapのような挙動をするとかいう仕様なら
互換性保ちながら拡張できそうだと思った
str = "11ABC22BCD33CDEF"
var reg = /(\d+(\w))/g;
var ary = reg.exec(str, a => a)
console.log(ary);

>>570
正規表現の処理的には無駄が多いってわかってるから>>565を書いたんだけど?
そんな俺が言ったことを復唱するようなレスされてもなーw
>>560の本質は、無駄かどうかじゃなくて、分かりやすくかけよって話だから

579:559
18/07/26 21:47:25.05 .net
>>571
知らんがな
そう思うなら、>>560で推奨なんて書くなよ
>559に絡めて、代弁者にでもなったつもりか

580:Name_Not_Found
18/07/26 22:00:20.09 .net
>>559
> なぜ2回、matchするんだ?
matchは二回してないぞw
> ary = [...Array(str.match(reg).length)].map(_=>reg.exec(str))
このクソ分かりづらいコードが、クソ分かりづらいことを
証明するために説明してあげる。こんな説明が必要だからクソってことね
ボコボコにするから>>558は泣くなよ?w
まず [...Array(str.match(reg).length)] と map(_=>reg.exec(str)) に分ける
前半の部分 の [...Array(str.match(reg).length)] は実は str.match(reg) でよい
Array(・・・.length) は、「正規表現でマッチした配列」のlengthだけを使い
「正規表現でマッチした配列」と同じサイズの「空の配列」を作るという意味
普通はこんなことせずに、空の配列に変換せずにそのまま正規表現でマッチした配列を使えばよい
そして、[...空の配列] は 空の配列をカンマ区切りの引数にして配列に戻している
つまり[ary[0], ary[1], ary[2],・・・] と同じ。配列を展開して配列に戻す無意味な処理ってこと
知ったばかりの [...Array]という技を使いたがってるだけというのはこういうこと
はい、前半部分で2つ意味不明な処理が入ってましたw

581:Name_Not_Found
18/07/26 22:00:54.30 .net
結局前半部分は、なんのために存在するかと言うと、後半部分を正規表現でマッチした数だけ繰り返すため
match において reg = /\d+(\w)/g のキャプチャ部分は意味を持たないようだ。
reg = /\d+\w/g と一緒。ついでに後半部分の exec では今度は/gが意味を持たないようだ
つまり前半部分は、 /\d+\w/g という意味で使い、 後半部分は /\d+(\w)/ という意味で使っている
このような、無視されることで書いたものとは違う解釈がされることを前提にしている。これも分かりづらい点の一つ
で、後半部分は、結局 reg.exec(str) を配列でマッチした数だけ繰り返すという意味でしか無い
だから _ は不要。regオブジェクトは状態を持っていて、
reg.exec(str) 1回目・・・["11A", "A"]
reg.exec(str) 2回目・・・["22B", "B"]
reg.exec(str) 3回目・・・["33C", "C"]
というふうに異なった値を返す。
このよう挙動はregオブジェクトのexecメソッドは起きる。
先のmatchメソッドは、strのメソッドであることに注意

582:Name_Not_Found
18/07/26 22:04:36.72 .net
>>572
関数型風のコードの書き方としては>>560 推奨で問題ない
>>565は手続き型風のコード。だからコードが長くなってしまっている。
根本的な解決方法は>571なのだろう

583:Name_Not_Found
18/07/26 22:23:22.04 .net
「手続き型だからコードが長くなる」
待遇を取って、
「コードが短ければ手続き型ではない(≒関数型である)」
これはそうとは限らない(アセンブラなど)、つまり偽だから命題は否定された。

584:Name_Not_Found
18/07/26 22:23:39.78 .net
原因はjavascriptのregexpがクソということでok?

585:Name_Not_Found
18/07/26 22:33:02.73 .net
もともと関数型言語じゃないからな。
最近のトレンドが入ってきてJavaScriptでも
mapとかreduceとか使えるようになったけど、
それすらも昔は無かった関数

586:Name_Not_Found
18/07/26 22:33:45.01 .net
>>558
どうせならこうしようぜ
str = "11A22B33C"
reg = /\d+(\w)/g
ary = str.match(reg).map(_=>reg.exec(str))
// [["11A", "A"], ["22B", "B"], ["33C", "C"]]
圧 倒 的 ス マ ー ト

587:Name_Not_Found
18/07/26 22:37:33.92 .net
関数型言語じゃないけど、長い間メインストリーム言語の中で唯一関数型言語である条件のひとつ、関数が第一級オブジェクトである、を満たしている言語だった(過去形)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch