【node.js】サーバサイドjavascript 4【io.js】 [無断転載禁止]©2ch.net
: [sage] 2016/04/11(月) 16:28:34.52:ORuOCkHy pythonやrubyやPHPと同じ土俵でjavascriptが使えるようになりました。 サーバサイドjavascriptについて語りましょう。 node.js - googleが開発したV8エンジン上で実行できる処理系 ttp://jump.5ch.net/?http://nodejs.org/ io.js - node.js 互換で Joyent の影響からの脱却を目指す処理系 ttp://jump.5ch.net/?http://iojs.org/ Rhino - JVM上で実行できる処理系 ttp://jump.5ch.net/?https://developer.mozilla.org/ja/Rhino io.js の経緯 ttp://jump.5ch.net/?http://stackoverflow.com/questions/27309412/what-is-the-difference-between-node-js-and-io-js javascriptはrubyと比較してもかなり速い ttp://jump.5ch.net/?http://shootout.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=yarv 基礎から学ぶNode.js ttp://jump.5ch.net/?http://gihyo.jp/dev/serial/01/nodejs node.jsの概要とアプリケーション開発の準備 ttp://jump.5ch.net/?http://gihyo.jp/dev/serial/01/realtimeweb/0002 前スレ 【node.js】サーバサイドjavascript 3【io.js】(c)2ch.net ttp://echo.2ch.net/test/read.cgi/tech/1419673207/ 【node.js】サーバサイドjavascript 2【Rhino】 ttp://peace.2ch.net/test/read.cgi/tech/1358937029/ 【node.js】サーバサイドjavascript【Rhino】 ttp://toro.2ch.net/test/read.cgi/tech/1310087535/ : [sage] 2016/04/11(月) 21:35:34.13:Dip4Tgpn 一乙 : [sage] 2016/04/11(月) 23:33:50.49:nWjhgNZ/ いちもつ : [sage] 2016/04/12(火) 00:09:04.53:XDndw3nx ええなんでまだスレタイとテンプレにio.js入ってんの あとNashornもテンプレに入れてあげなよ : [sage] 2016/04/12(火) 00:10:58.11:/1JjO9y+ 建てる前に言えや無能 : [sage] 2016/04/12(火) 00:14:34.33:XDndw3nx ふぇぇ : [sage] 2016/04/12(火) 00:22:39.64:/1JjO9y+ 言い過ぎたよ!悪かったな! : [] 2016/04/12(火) 01:01:54.75:oLQPZW2w koaの日本語書籍出ないかなあ : [sage] 2016/04/12(火) 01:53:53.86:qFt02Pi+ 無理だろ 英語でもoreillyやmanningは当然としてpacktからも出てないやんけ v2でasync/awaitベースに変わるから当分出そうにないし その間にnode foundation傘下になったexpressの体勢が整ったらkoaはマイナーで終わるかもしれん : [sage] 2016/04/12(火) 02:11:10.70:LLlQMkVS 出しても元がシンプルなだけに需要ないんじゃない : [sage] 2016/04/12(火) 02:47:42.05:qFt02Pi+ 本体の説明だけで終わらせるつもりかよw ミドルウェアたくさんあるんだから書く気があればいくらでも書けるだろ : [sage] 2016/04/12(火) 12:29:37.47:MlmCnlCJ 書く気はないんですけどね : [sage] 2016/04/12(火) 16:02:04.59:56zGDR89 エーフィのけつがっちりつかんでパンパンしたすぎる! : [sage] 2016/04/12(火) 16:02:54.61:56zGDR89 すまん誤爆 : [sage] 2016/04/12(火) 16:14:27.15:YS0WWjgC ホモ板の誤爆を彷彿とさせるポケモナーの誤爆 : [] 2016/04/13(水) 13:28:41.81:1GV7ImOm npmって単にフォルダに入れておくだけでは使えないんですか? インストールが必要なのでしょうか? 初心者ですみません : [] 2016/04/13(水) 14:17:12.90:1GV7ImOm requestというモジュールをインストールすると、 他のnpmまでインストールされるんですが、これはどういうことでしょうか? ttp://jump.5ch.net/?https://www.npmjs.com/package/request このモジュールなんですが : [sage] 2016/04/13(水) 15:03:15.87:K44TORoo そろそろ荒らしにしか見えない 相手した奴はお仲間と見做す : [] 2016/04/13(水) 16:07:42.06:1GV7ImOm あと、モジュールは任意の場所にインストールできないのでしょうか? 普通、インストールするとnode_modulesフォルダが作られると思うんですが、その中に大量のファイルがインストールされてしまうため猥雑です。 node_modulesの下層に適当なフォルダを作ってそこにインストールしようとすると、エラーが出るのですが。 連投すみません。 : [sage] 2016/04/13(水) 16:22:50.99:q38B7k8+ 君は質問のやり方がヘタだなぁ その聞き方じゃほとんど答えてもらえないだろうな あとさ、その程度の質問は自分で解決しろって ググればたいていわかるんだからさ まじでその程度を自分で解決できないならプログラミング向いてないので止めなさい : [sage] 2016/04/13(水) 17:38:49.14:372sz71r requestモジュールの中で、また別のモジュールを使っていて(依存していて)、 それが必要だからインストールされる >モジュールを任意の場所に 素人は、決められた場所を使った方がいい モジュールの場所を変えると、モジュールが読み込まれなくなったり、 間違って、同名の別の場所にある、異なるバージョンのモジュールが読み込まれたりして、危険 たいていの実行環境には、モジュール探索パスという環境変数があって、 どのディレクトリから先にモジュールを探すのか、順番が決まっている。 こういうシステムを知らない者は、決められた場所を使うこと それと、コンピューター名・ユーザー名・パス・ファイル名など、 システムの重要項目に、日本語を使うな : [sage] 2016/04/13(水) 19:25:26.63:x9xQcmq4 deleteで確実に消えるオブジェクトはどうやって構成できるの? : [sage] 2016/04/13(水) 19:37:51.59:ihuFOFJr deleteはオブジェクトを消すものじゃないですけど理解されてますか? : [sage] 2016/04/13(水) 22:27:50.78:JKiuLOht お遊戯的なことはry : [] 2016/04/13(水) 23:34:14.64:1GV7ImOm ありがとうございます。 場所はデフォルトの場所がいいんですね。 : [sage] 2016/04/14(木) 00:18:24.82:JrYrqJdM 叩かれても気にしないスルー力、プログラマーには向いてなくても2chには向いてるな : [] 2016/04/15(金) 07:41:49.76:ypL17/E1 node jsのモジュールはインストールしないと使えないのですか? ダウンロードしてきたものをnode_modulesにポイッと入れておくだけではだめなのでしょうか? : [sage] 2016/04/15(金) 08:20:26.48:Qjy3QEEg 単独で動作するモジュールならそれでもOK。 他のモジュールに依存してるモジュールなら素直にnpm installしたほうがいい。 : [] 2016/04/15(金) 09:22:49.61:ypL17/E1 28 インストールの方が無難なのですね。 ありがとうございました。 : [sage] 2016/04/17(日) 07:21:50.20:XV8EAMus co便利すぎ なぜ私は今まで使ってなかったんだ 便利すぎて徹夜で遊んでしまった : [] 2016/04/17(日) 09:44:29.78:zLHXr089 末尾再帰の最適化はまだ実装されてないんだっけ? : [sage] 2016/04/17(日) 14:34:17.40:oaifAOu8 そこまで行くならもうES7とかaltjs 使えばいいんちゃう? : [sage] 2016/04/17(日) 15:02:58.46:/BT6zS4R es7(es2016)にはasync/await入らんのやで babelでasync/await使えばええんちゃう、ならおk : [sage] 2016/04/17(日) 15:10:22.11:oaifAOu8 え?そうなの?いつの間に どちらにしろ拡張機能使うならbabelでええやろ : [sage] 2016/04/17(日) 15:21:38.65:oaifAOu8 typedobjectといいオーバーロードといい、どんどん先延ばしにされてるなあ… 大丈夫なんか? : [sage] 2016/04/17(日) 16:16:19.91:QVsoTXmC 実装を置いてきぼりにしてもしゃーないし : [] 2016/04/17(日) 16:29:42.92:Qyz1BQkj オレがNode.jsに求めることはただ一つ あの非同期が当たり前の実装をやめてくれ。もしくはそうではない普通のJavaScript と同じ実装にしてくれ。いちいちコールバックとか面倒で仕方ない。 : [sage] 2016/04/17(日) 16:53:22.96:vB/UVa4U お前向いてないよ javascript自体 「ぱある」なるものでも使ってれば? : [sage] 2016/04/17(日) 16:56:17.84:/BT6zS4R 普通のJavaScriptと同じなんだが… 普通のJavaScriptでsetTimeoutもxhrも使ったことない人なのかな? : [sage] 2016/04/17(日) 18:56:56.92:chSabP/R twitterのstreaming APIを使いたくてnode.js入れてみたけど ググって出て来るサンプルコードがことごとく動かない… npmで入れたtwitterモジュールもntwitterもだめ。 ちなみに参照してるのは ttp://jump.5ch.net/?http://qiita.com/n0bisuke/items/09126e6e2cd111841a2e とか ttp://jump.5ch.net/?http://engineer.recruit-lifestyle.co.jp/techblog/2015-07-21-node3/ サーバー側を立ち上げてもすぐプロンプト戻るか無反応。 何が足りないん? : [sage] 2016/04/17(日) 19:52:50.45:chSabP/R access_tokenの後の_keyを落としてたっぽい 凡ミスで半日潰したわ : [sage] 2016/04/18(月) 15:43:11.25:NxXedIF3 馬鹿には無理 : [sage] 2016/04/18(月) 15:46:57.64:0YU0WiCr 2chで質問するやつってその時点で向いてない : [sage] 2016/04/19(火) 06:38:29.13:doEeCIn2 は人間に向いていない。 虫ケラに転生したほうがいい : [sage] 2016/04/19(火) 20:28:52.19:X1zaZ+P/ 1日15回しか質問されないja.stackoverflow.comよりは 多くの人間を救ってると思う : [sage] 2016/04/28(木) 01:07:21.16:ihYXt9xE Arukas触ってみたけどnode.jsのインスタンス作っても動かないな : [sage] 2016/04/28(木) 13:56:27.86:k1aARqjb オレがNode.jsに求めることはただ一つ : [sage] 2016/04/28(木) 19:50:46.25:T9Fq50Y9 それはスピード この世の理はすなわち速さだと思いませんか、物事を速くなしとげればそのぶん時間が 有効に使えます、遅いことなら誰でも出来る、20年かければバカでも傑作小説が書ける! 有能なのは月刊漫画家より週刊漫画家、週刊よりも日刊です、つまり速さこそ有能なのが、 文化の基本法則!そして俺の持論でさ−−−−−−−ァ! : [sage] 2016/04/29(金) 15:39:50.67:yIWTKkJ0 正論 : [sage] 2016/05/01(日) 00:25:12.65:kuTuaHk/ 確かに正論 : [] 2016/05/01(日) 09:18:32.44:tKi6j9CT 匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、 BitTorrentがオープンソースで開発されています 言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか? Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします ttp://jump.5ch.net/?https://twitter.com/Lyrise_al ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw The Covenant Project 概要 Covenantは、純粋P2Pのファイル共有ソフトです 目的 インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します 特徴 Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW) 接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です DHTにはKademlia + コネクションプールを使用します UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります) 検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません u : [sage] 2016/05/01(日) 10:45:43.08:ZxoAm746 死ね : [sage] 2016/05/01(日) 17:19:38.95:Ujha+X5o nodejsって別HHDのデータを読み込めないの? htmlからならアクセスできるのにnodeでパス情報取得しようとしてもうまくいかない : [sage] 2016/05/01(日) 19:33:53.35:qzBkGc9X データって具体的に何? ファイル? ファイルどうやって読もうとしてんの? fsモジュールのドキュメント読んだ? ねえ?ねえ?ねえ? : [sage] 2016/05/02(月) 12:01:21.60:8H2YwrSI まだ学生だがこんな上司だったら嫌だな 3日で辞めそう : [sage] 2016/05/02(月) 12:07:32.85:/HEiP4n3 ドットインストールでも読んでくれば?って書こうとしたけど これ明らかに他の言語やったことある人向けで、あんまり価値ねえな ttp://jump.5ch.net/?http://dotinstall.com/lessons/basic_nodejs : [sage] 2016/05/02(月) 16:41:37.26:aR8AOrvI こういう宣伝の仕方もあるんだな : [] 2016/05/02(月) 22:11:38.88:m5ZjdYyF はっきり言って其のサイトのコンテンツ、ろくなのがないわ : [sage] 2016/05/03(火) 00:56:18.53:yIms8CXu nodemailerでuser/pass認証をして、20人くらいをtoに設定してsendmailするとスパム扱いされて返送されてしまいます 試しに3人だけにして送ってみたところ、正常に送信することができました こういうのはGoogle側にスパムじゃないと報告いれたりしないとダメなんでしょうか : [sage] 2016/05/03(火) 03:15:53.10:PQ3d4MP7 あなたのメールをスパムと判定されないためには みたいな文書があったような…あった ttp://jump.5ch.net/?https://support.google.com/mail/answer/9008?hl=ja : [sage] 2016/05/03(火) 11:54:43.35:yIms8CXu どうもー mandrillが有料化しなければぁ : [] 2016/05/04(水) 20:55:54.92:b/2mDK8P 2chに就職するわけじゃないだろう。 上司がねらー丸出しならすぐに逃げ出すべき。 : [sage] 2016/05/05(木) 00:09:26.12:pinnJm27 アスペかな : [sage] 2016/05/09(月) 15:44:26.50:KFv/4yv6 急成長のUberもNode.jsなのにお前らときたら・・・ ttp://jump.5ch.net/?https://fa-works.com/blog/how-uber-scales-their-real-time-market-platform : [sage] 2016/05/09(月) 16:22:07.42:fQwtjbTF まあこのスレは何を作るかってスレではないからな v6.1.0出たけど特に話題になる要素もないし : [sage] 2016/05/10(火) 18:55:25.06:DK7gy/9B v6.1.0だとbabel入らなくなるの? LTSじゃないせいか情報が少ない : [] 2016/05/11(水) 04:38:16.92:e5ttOytk node.jsド初心者なんだけどヒマな人いたら教えてほしい node somescript.jsでバッチのように動かせることや http.createServerでポート空けて待ち受ける簡易Webサーバやれることやデーモン化もできることはわかった んでこれ実際に運用するときどうする? ttp://jump.5ch.net/?http://example.com/hoge/hage/ みたいなリクエストはどう受け付ける? ていうかnginxやapache httpdからfastcgi呼び出すみたいにフロントのWebサーバがリバースプロキシになるような感じ? : [sage] 2016/05/11(水) 11:28:20.38:z7XWs6Or ttp://jump.5ch.net/?http://www.nodebeginner.org/index-jp.html : [sage] 2016/05/12(木) 11:05:45.43:23UKfqZQ nodeで読み込んだExcelテンプレートを編集して ダウンロードさせたいのですがExceljsを使用すると スタイルの情報が落ちてしまいます。。。 Streaming XLSX Writerなるものを使えばスタイル情報の書き込みもできる みたいですが読み込み方がわからない。 そもそもnodeでExcel扱うなってことですかね。 いろいろ調べてももう行き詰ってしまったので教えてください。 Exceljsにこだわりはないので他のものでも大丈夫です。 : [] 2016/05/12(木) 17:45:43.81:kJTP2wgD 公式からnode.jsのwindows版をダウンロードしようとしたら、chromeに 〜 may harm browsing experience, so Chrome has blocked itって怒られるよう : [sage] 2016/05/12(木) 23:25:26.78:Xc9f48N7 基本的に内部構造が非公開のExcelを まともに解析できるライブラリは無いと思え。 一番良く出来ているのはJava製だ。 : [] 2016/05/13(金) 00:19:28.85:Po0C4aft google spreadsheetでも使え : [] 2016/05/13(金) 08:26:22.42:PA7fuAE5 > 基本的に内部構造が非公開のExcelを ttp://jump.5ch.net/?http://www.ecma-international.org/publications/standards/Ecma-376.htm : [sage] 2016/05/13(金) 09:20:21.81:ohutIF2K xlsxに限っては嘘だな xlsは非公開 : [sage] 2016/05/13(金) 11:50:34.68:8I+78kq5 レスありがとうございます。 google spreadsheetの選択肢はありませんでした。 これであればスタイルの読み出しをしないでも 書き込みとDLだけで実現できそうです。 ありがとうございます。 : [sage] 2016/05/13(金) 11:52:46.81:VaDZ5Gj+ スタイルの情報って具体的にどんなやつ? : [] 2016/05/13(金) 13:07:59.75:8I+78kq5 線やフォントの情報がほとんどです。 Exceljsで下記のような実装をしたところ エクセルファイルに追記はできるものの、 線もフォントサイズも元に戻ってしまいました。 var Excel = require('exceljs'); var workbook = new Excel.Workbook(); workbook.xlsx.readFile(filename) .then(function() { var worksheet = workbook.getWorksheet(1); worksheet.getCell(1,1).value = "test"; workbook.xlsx.writeFile(outputname) .then(function() { // done }); }); : [sage] 2016/05/13(金) 14:36:44.79:VaDZ5Gj+ >Streaming XLSX Writerなるものを これの使い方を調べれば? : [sage] 2016/05/13(金) 14:59:32.62:8I+78kq5 ExcelJSのReadmeを見てみると >> var workbook = new Excel.stream.xlsx.WorkbookWriter(options); で書き込み用のワークブックを用意することはできるので 同様にWorkbookReaderにてワークブックを読み込むことはできるのですが この方法だと読み込んだワークブックに対して シート指定 (workbook.getWorksheet()) を使用とするとエラーになります。 そもそもインスタンスを作っただけなのでこの時点で指定したファイルが 読み込めているわけではないような気もするのですが。。。 ドキュメントやコミュニティの記事もほとんどなく行き詰ってしまったわけです。 : [] 2016/05/14(土) 06:14:39.92:wJYxysEH ついに、Electron 1.0がリリースされたぞ : [sage] 2016/05/14(土) 08:03:10.77:YqHA7/Dn 1.0になったら、でなく サイズが10MB未満なったら教えてくれ : [sage] 2016/05/14(土) 08:08:57.91:10usGhO1 サイズでかいよな 自分用にちょちょいと書いたアプリならいいけど 人に渡すには躊躇う大きさだ : [sage] 2016/05/14(土) 08:24:43.73:YqHA7/Dn あるいはElectronアプリごとのchromiumを共有できるようにして欲しい : [sage] 2016/05/14(土) 09:24:22.56:pahI6w8f 2DDフロッピーや4800bpsの通信が一般的だった時代ならいざ知らず 数百GBのHDDにギガビットのネットワークが普通の時代に何を言うw : [sage] 2016/05/14(土) 09:44:07.58:1JOshMS2 xssがなくなったら起こしてくれ : [sage] 2016/05/14(土) 10:22:49.75:pahI6w8f >xlsは非公開 こっちも公開されてるよ。見て理解できるかどうかは別にして。 ttp://jump.5ch.net/?https://codezine.jp/article/detail/2250 ttp://jump.5ch.net/?https://msdn.microsoft.com/en-us/library/8aea05e3-8c1e-4a9a-9614-31f71e679456 : [sage] 2016/05/14(土) 11:10:01.09:YqHA7/Dn 引きこもりならそういう考えもアリだね : [] 2016/05/14(土) 11:10:36.39:r8zKr16p その程度ならActiveXで書き込めば一発じゃね : [sage] 2016/05/14(土) 11:24:41.99:pahI6w8f 引きこもりとファイルサイズの関係を桶屋に例えて説明してくれ。 : [sage] 2016/05/14(土) 13:28:34.42:5pXvQAwD Electronは、Gradleみたいに自動で、JCenter/MavenCentral などから、 指定したバージョンのChromium/Node.js を、 まだインストールされていなければ、インストールするようにしたらよいのに そうすれば同じPCで、同じバージョンのChromium/Node.js を、重複して持つことは無い : [sage] 2016/05/14(土) 13:38:01.69:8701OXOx はいどうぞ書き込んでください。 ttp://jump.5ch.net/?https://github.com/electron/electron/issues/new こちらでも構いませんよ。 ttp://jump.5ch.net/?https://github.com/electron/electron/pulls : [sage] 2016/05/15(日) 11:16:03.18:Q0jJd4Wt npmの思想に従ったらやはり個別に持つんじゃねーのかな やはりelectron用chromiumが小さくなる方が妥当だ : [sage] 2016/05/15(日) 11:32:55.67:Y0vt3lCd 読み込むmoduleが解決出来なければnpmから導入を試みる仕組みなら少しほしい 例えばテストにしか使わないbabel一連を毎度npm i -Dすると容量食うだけだし とはいえglobalに入れてmoduleのpackage.jsonに一々devDependencies書くのも手間だ : [sage] 2016/05/15(日) 12:31:22.18:dQ3oq8kE 100Mbyteくらいでセコイ事をいうなよ。 : [sage] 2016/05/15(日) 13:17:38.37:Eqq7M5pc 引きこもりならそういう考えもアリだね : [sage] 2016/05/15(日) 15:02:44.09:AhilAPgi nodeってどういう人が 何する為に使うもんなの? : [sage] 2016/05/15(日) 16:06:58.13:nepemUuD 俺も知らないけど、javascript大好きな人がサーバーサイドをjavascriptで書くために使うんじゃないの? : [sage] 2016/05/15(日) 16:26:24.00:e+kzQGE7 業界あげてウェブ技術だけでなんでも出来る世界を作ろうとしてるからね。 : [sage] 2016/05/15(日) 17:38:46.01:AhilAPgi サーバーサイトを書くのは普通php? python、その他なんて使わないの? : [sage] 2016/05/15(日) 17:54:58.56:gfIC+EQb ひとつのモジュールからクラサバ出来れば、楽じゃん。 って発想で俺は割とnode推し。 validationとか。 : [] 2016/05/15(日) 20:13:10.39:jf4/vLKx 普通にtypeScriptみたいにaltJSとか使いたかったり js側でもテスト駆動開発やりたかったり SPAとか作りたかったらnodeのエコシステムは必要だと思うけど。 : [sage] 2016/05/15(日) 21:00:40.05:GXfI7+hY ぶっちゃけnode側のjsとクライアント側のjs そこまで共通化省力化できる部分多くないよね : [] 2016/05/16(月) 01:50:06.72:Pm3ds6MJ 正直、配布関係がグダグダのままだよねw インストーラと呼べるものもねぇし。node.jsのライブラリとかを 実行ファイルの同じディレクトリにまるまんまコピーして配布とか ダセェこといつまでやらせるつもりなのか。 作ってる連中の程度が低くてイライラする。 : [sage] 2016/05/16(月) 01:59:04.85:4SztQafU なんでプルリクしないの?バカなの? : [] 2016/05/16(月) 02:02:37.84:Pm3ds6MJ そんなもの言われなくても実装して当然ですよ。今どき。 : [sage] 2016/05/16(月) 02:11:59.90:K/hgNSZS LL言語でインストーラーなんて聞いたことがないが? : [sage] 2016/05/16(月) 02:17:23.20:IapxlnNr どうやったところでXSSを克服できない限りおもちゃ扱いだろ 業務にElectronアプリ使ってXSSで機密情報盗まれましたとか目も当てられんわ : [sage] 2016/05/16(月) 02:24:07.71:K/hgNSZS そのアプリで特定のドメインだけに接続するようにすれば XSSは簡単に克服できるよ : [sage] 2016/05/16(月) 02:25:43.57:K/hgNSZS まあそれ以前にXSSを克服してないはずの ウェブがこれだけ世界を支配してるんだけどね。 : [sage] 2016/05/16(月) 02:27:37.78:IapxlnNr テキストファイル開いただけでホストの権限取られる脆弱性はウェブにはないわ : [sage] 2016/05/16(月) 02:30:29.64:K/hgNSZS テキストファイル(例~/.ssh/以下)開いただけでホストの権限取られるからな ネイティブアプリは : [sage] 2016/05/16(月) 02:40:45.00:IapxlnNr こういうバカに騙されないように知らない人に説明すると ElectronはXSSの仕込まれたHTML開くだけでPC乗っ取られることがバレてから まともな開発者はElectronから手を引きました JSだけが拠り所の低能キチガイNode信者の言うことを真に受けないようにしましょう : [] 2016/05/16(月) 02:45:40.15:Pm3ds6MJ 馬鹿かてめぇは。 言語の問題じゃねぇだろ : [] 2016/05/16(月) 02:46:04.20:Pm3ds6MJ ←セキュリティ問題が各所で指摘されてることもわからないアホ : [sage] 2016/05/16(月) 02:47:13.49:K/hgNSZS 反論になってないw : [] 2016/05/16(月) 02:48:06.52:Pm3ds6MJ だな。しかしElectron開発者のキモヲタ連中は全く改善しようともしていない。 Node.jsの連中も然りだけれどな。 内紛起こして分裂はするわ、npm停止させて問題起こすわ、このコミュニティは ちょっと問題ありすぎ。 : [sage] 2016/05/16(月) 10:06:52.07:DkcwsRla 横からだけど情報thx 様子見してただけだったが良かった : [] 2016/05/16(月) 10:10:09.43:Pm3ds6MJ ま、正直言わせてもらうけれど、サーバサイドやるならNode.jsなんて やめておいたほうがいいですよ。実用レベルには至っていないから。 特にElectronはね。 Node.jsのほうはコミュニティと開発者連中に頭のオカシイのが多いから これまでも問題を起こしまくってるしね。いつまた分裂したりnpm止め られたりするかわかったもんじゃないよ。 : [sage] 2016/05/16(月) 10:35:56.54:mzVyV5EK 何をどうはねっかえりたいかわからん。 electronで外部のHTMLを開くという事を考えつく方がどうかしてる。 いわゆるアプリなら、得体の知れないdllをロードして叩くとか、得体のしれないモジュールをrequireするくらい頭おかしい行為なんだが。 あとは、モジュールを全部持つってのも、別にwebpackかなんかかけちゃえいいんでないの? : [sage] 2016/05/16(月) 11:09:29.86:o8E95WL6 前提条件としてElectronを狙い撃ちにしたXSSが仕込まれたサイトを Electronで見に行けば、任意のコードを実行させられることもありえるよね という無理筋な話だよね : [sage] 2016/05/16(月) 12:42:26.06:DkcwsRla >得体の知れないdllをロードして叩くとか、得体のしれないモジュールをrequire python良く使うけどimportしただけで個人情報を外部サーバーに送信されるモジュールがあったら確かに怖いな : [sage] 2016/05/16(月) 12:55:37.33:r8GcqOe4 今eslint 2.9.0をインストールしてます eslint 2.10が出てたので更新しようと思いnpm update -gを実行してもeslintが更新されません 何で更新されないんですか? : [sage] 2016/05/16(月) 15:31:32.74:EErMUWjt 分裂騒ぎで悪いのはjoyentって企業だけどな それでもjenkins、mariadbと複数の分裂騒ぎ起こして再統合しようともしないoracleよりマシ 最高に頭おかしいoracleが中心に居座ってるjava使うのもやめた方がいいってことだな : [sage] 2016/05/16(月) 15:41:03.11:vcp2NKdV nodejs作ってる人たちは無給で趣味でやってんの それともお給料もらってやってんの : [sage] 2016/05/16(月) 16:03:44.38:mzVyV5EK そう。 レンダリングエンジンとしてHTML+cssを使ってるのであって、 ウェブページを見るもんじゃないの。 古い時代の素のphpなんかで、HTMLのヘッダ文を出すためだけに自分で書いたhtmlをrequireしたりするじゃん。 そういう物であって、外部コンテンツをそのまま表示させるものじゃない。 : [sage] 2016/05/16(月) 16:27:01.48:IapxlnNr わかりやすさのためにHTMLを開くと書いたがテキストをはじめとするユーザー入力を表示するために パースしてDOMに入れる行為にブラウザと同じくXSSのリスクがあってそれが実行アプリを越えて攻撃できるので危険度激大ということ ウェブページのようにファイルをHTMLとして解釈させる必要などない DOMに入れなきゃ表示できないんだからむしろすべてHTMLとさえ言える VSCodeですらXSSの成功が報告されてて危なくて使えない はっきり言ってこの程度のアンテナも張れない無能は初心者でもなければ技術者やめたほうがいいよ こんな赤ちゃんみたいに懇切丁寧に説明されなきゃ理解できないなんてまともなプログラマなら恥ずかしくて死んじゃうぞ : [sage] 2016/05/16(月) 17:07:13.65:DkcwsRla cssってスタイルシートですか?レベルのひとらが集まってる感じはします : [sage] 2016/05/16(月) 17:40:01.01:mzVyV5EK 何言ってんだよ。 DOMにユーザ入力を入れるとか寝言だろ。 phpの、<input ....value="<?=$evi?>">レベルの話。 jQueryなんかでテキトーに組んでる程度の知識しかねえんじゃねえの? : [sage] 2016/05/16(月) 17:41:54.90:mzVyV5EK もしくはある程度evalしなきゃならんエディタと、普通のelectronアプリ混同してるのかな。 : [sage] 2016/05/16(月) 18:36:56.67:o2eG9R3E 誰かさんもフロントエンジニアはレベルが低いって言ってましたし 仕方ないんじゃないでしょうか!? : [sage] 2016/05/16(月) 19:10:26.84:IapxlnNr 低レベルなフロントエンジニアの崇めてるElectronアプリがいかに危険か擁護の低能さからよくわかりますね HTMLタグに直接埋め込むなんてキチガイ行為がさらっと出てくる人には戦慄を隠せませんわ この程度のスキルでXSSを防げると勘違いしてるパソコンの大先生がElectronアプリを作ってOSを危険に晒しているのです みなさんも気をつけましょうね Fin : [sage] 2016/05/16(月) 19:28:01.64:d8WCTinP kik問題ごときで混乱するような連中だもの、程度なんか知れたもんだろ ここではないどこか他に行くといい 馬鹿が感染っても責任は取れないぞ : [sage] 2016/05/16(月) 20:25:04.64:mzVyV5EK 何言ってるのかわからん。 HTMLタグに直接埋め込むレベルのアホさを露呈したのはお前じゃねえの? 指摘されてる事に真摯に受け止めたらどうなんだろ。 : [sage] 2016/05/16(月) 20:31:49.14:dl3n57UC とりあえずnode.jsできたサイトをXSSでハッキングしてみせてくれ : [sage] 2016/05/16(月) 20:35:28.12:o8E95WL6 君が言ってるのは悪意のあるテキストをElectronで開いたら、悪意のあるコードが実行されたってわけなんだけど なぜ、開いた!ってことなんだよ (メールで送られてきた)悪意のあるexeを実行したら、悪意のあるコードが実行されたってのと同レベルなわけだよ : [sage] 2016/05/16(月) 20:38:39.83:IapxlnNr その時もここの連中のnpmに依存しない方法すら考えられないアマグラマっぷりには呆れたもんだ 公式で提供されてるのにどんだけ頭悪いんだよ 今回もド素人集団なのを再確認しただけだったな 他の言語だとまだ読めたスレがあるがこのスレはゴミとデマばかりだし捨てるか 初心者向け言語はせいぜい隔離所として役に立ってくれ : [sage] 2016/05/16(月) 21:00:04.14:5VzHAN2o 殺伐としたスレにシュレディンガーの猫が! ______ / /| ┃ ̄ ̄ ̄ ̄ ̄┃ ┃< にゃー ┃ ┃ ┃ ┃ ┃/  ̄ ̄ ̄ ̄ ̄ ̄ _人人人人人人人人_ > 生 存 確 認 <  ̄^Y^Y^Y^Y^Y^Y^Y^Y ̄ : [sage] 2016/05/16(月) 21:01:40.13:mzVyV5EK むしろ全てHTMLと言える、ってそうなんだけど、 だからといってそれはコンテンツとは地続きではないからな。 余程、こういった類の技術についていけず脅威だと思っているか、もしくは自分がXSSを避けるコーディングが出来ないから、そんなものはあり得ないと思い込んでいるかだろうな。 : [sage] 2016/05/16(月) 21:21:09.44:uJCe7PEp どうしても怪物と戦って怪物になりたいらしいな : [sage] 2016/05/17(火) 11:10:18.49:t7otmJ+D eslint 2.10.2でeslint-config-airbnbが使いたいので kidotoyohiko$ubuntu: $ npm -g i eslint-config-airbnb eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-react ってしたんですけど +-- UNMET PEER DEPENDENCY eslint@^2.9.0 +-- eslint-config-airbnb@9.0.1 +-- eslint-plugin-import@1.8.0 +-- eslint-plugin-jsx-a11y@1.2.0 `-- eslint-plugin-react@5.1.1 ってでました 今の段階ではeslint 2.9じゃないとだめってことですか? : [sage] 2016/05/17(火) 11:10:18.65:NWTAtPGB >悪意のあるexeを実行したら、悪意のあるコードが実行された なんでそんな糞メーラー(=Electron)使ってるっつー話かと : [sage] 2016/05/17(火) 11:22:28.23:vWciy/Ev そら、メーラーで防いでも無駄だし、メーラーか防ぐべきもんじゃないからね。 : [sage] 2016/05/17(火) 11:25:24.26:iVXO0tyU 検証もせずライブラリバンバン使ってるだろう性善説盲信者の劣等node民にはお似合い : [sage] 2016/05/17(火) 12:00:35.68:NWTAtPGB メーラーはメーラーらしくしてろってことだろう : [sage] 2016/05/17(火) 12:42:42.82:GWS/+oAS てめーらー落ち着け : [sage] 2016/05/17(火) 12:50:37.50:vWciy/Ev そうだね、だから、アプリケーションとして、外部のなんかとか、ユーザ入力を実行なんかしないように作らないとね。CSP化とか。 : [] 2016/05/17(火) 13:45:03.52:EMvssbgN 概出だったらスマソが3行でまとめて ttp://jump.5ch.net/?http://utf-8.jp/public/2016/0307/electron.pdf ttp://jump.5ch.net/?http://utf-8.jp/public/2016/0328/shibuyaxss.pdf : [sage] 2016/05/17(火) 14:33:01.77:10XG9XuV メーラーも気合いと根性が足りないんだな : [sage] 2016/05/17(火) 15:09:28.08:0bevgSyf 無理というのは嘘吐きの言葉なんです(WTM感) : [sage] 2016/05/17(火) 15:34:24.89:8aS7q7M5 ここで質問しても答えられる奴がいなくて使い物にならねえ : [sage] 2016/05/17(火) 15:52:52.28:Fxw/fT3u 見れ : [sage] 2016/05/17(火) 16:12:13.60:vWciy/Ev ごくごく当たり前の事だが、 「枠組みでどんなサンドボックスを用意しても割と抜け穴は有る」ので、「サニタイズしてないものを画面に出さない」 それだけ。 自作でも、既存のでも良いけどMVVMフレームワークでも使ってきちんと対応すればいいと思うよ。 vue.jsなんかだと、{{hoge}}で展開されるものは必ずエスケープされてるし、 エスケープされない{{{hoge}}}を使うと使ってるだけで警告出る。 : [sage] 2016/05/17(火) 16:22:43.13:n8Ruzxjv 人類にXSSは止められない 今までも止められたことはない、許されてただけ だがElectron、てめーは影響範囲的にダメだ : [sage] 2016/05/17(火) 16:41:47.37:vo+rcdbu サニタイズ言うな : [sage] 2016/05/17(火) 16:57:04.05:UCMPaER9 うるせー高木てめーは自分の仕事してろ : [sage] 2016/05/17(火) 18:45:18.15:vWciy/Ev そもそも、XSSと言うが、その意図がわからんのだよね。 全然クロスじゃないでしょ、アプリとしてならば。 その中で、Webや信頼出来ないソースからテキトーに取った値を不用意に実行すると死ぬよって凄く当たり前の話。 自分のグローバルIPが知りたいからって言って $piyo=`curl ..... | awk ....` を、rootで動くスクリプトで叩くようなもん。 : [sage] 2016/05/17(火) 19:00:39.35:n8Ruzxjv なんで馬鹿が食い下がるときは決まって言葉の定義に難癖つけはじめるんだろうな : [sage] 2016/05/17(火) 19:47:27.06:eRIY89eq 序盤の段階でファイル名と行番号付きで指摘すべきだよな : [sage] 2016/05/17(火) 20:12:18.27:yt714euB nodejs使いに信頼性を語られると鼻からスパゲティが飛び出しそうになるんですよ 食べてないのに 止めてもらえます? : [sage] 2016/05/17(火) 21:35:57.49:4p4kNHWE 適当に取ってきたライブラリは信用します その結果、どこの誰とも知らない奴が癇癪を起こしただけでbabelの塔は崩れました お見事に御座りまする : [sage] 2016/05/17(火) 21:59:04.91:OcL1ewkF node.jsに親でも殺されたんだろうか 粘着こわいわあ : [sage] 2016/05/17(火) 23:23:08.63:3xMKUXNM 色んな言語で色々してるけど、どの言語でもそうだし、信頼性なんか語ってないよw これを信頼性だというなら、お里が知れる。 最低限するべきこと。 適当には取らんだろ。 取ってソース読んでから使うよ。 : [sage] 2016/05/17(火) 23:54:59.69:gy1vNCq/ 信頼性云々は自分で調べたことないし知らんけど以下推測 node.jsのサーバ性能そのものは利用が進んで突き詰められていくとapacheと同じ様なもんになると思う 速い、大量リクさばける、省メモリ、と今思われているならそれは 今使ってる人が最低限必要なものだけやれるよう頭使って設計がんばってるから apacheでもnginx(+cgi)でもチューンに精を出して不要なもの省いてどうしても必要ならモジュール開発すれば同じになるんじゃないか これが正しければ最後にメリットとして残るのはjavascriptで書けるの一点になるだろうけど いろいろnodeで書いてみた感想としてはめんどくさすぎ氏ねよダボが : [sage] 2016/05/18(水) 00:12:43.60:px5hJj8g GoとErlang/ElixerがあるのにサーバーにNode選ぶ理由皆無 ユーザーとライブラリの水準や最低品質の点でも前者のほうが信用が置ける まあ、JSerをサーバーとクライアント両方でこき使うのには向いてるんじゃないの : [sage] 2016/05/18(水) 00:52:44.06:GquLwZbh netflixとかがnode選んでるというのにプププ : [sage] 2016/05/18(水) 00:57:38.32:LRw1LBCt nodeを速度で選ぶ意義は無いだろうな。 jsで書けるのは凄いメリットだと思うけどね。 手続き型に呪われた言語より余程書いてて納得行く。 Goはビルドとデプロイめんどい。 どうせビルドとデプロイが面倒ならScalaで書く。 : [sage] 2016/05/18(水) 01:46:29.92:RjYV2Vao nodeを大がかりに採用してる有名どころ netflix uber airbnb linkedin paypal walmart groupon ebay dow jones ny times yahoo facebook instagram : [sage] 2016/05/18(水) 06:31:28.07:mIb5QxnS まともな開発者が使うなら何でもいいんだよ nodeユーザーは一概にレベルが低いから信頼性の低いライブラリと化学反応を起こして爆発するのだ 今やPHPより酷かろう : [sage] 2016/05/18(水) 06:35:54.80:mIb5QxnS ソース読んだって開発者が癇癪起こすかどうかまで判断つきません サードパーティーライブラリの信頼性とは開発主体の信頼性であり=ソースの信頼性ではない 馬鹿だから仕方ないけどズレた答えを返すものだね : [sage] 2016/05/18(水) 06:37:21.67:mIb5QxnS ここら辺でnodeユーザーの意識が他の言語の利用者と明らかに異なるってのが分かるよね : [sage] 2016/05/18(水) 08:36:14.59:LRw1LBCt バージョンを適当に定義するからでしょ。 バージョン限定で指定するんだよ。 npmに関して言えば、中身を変えるにはバージョン上げる必要があるからね。 お前らの想像してるnode.js使いのイメージがわからん。 ちょっとjQuery書けるから、サーバサイド書いてみました、みたいなアホばかりを想定してるんだろうか。 : [sage] 2016/05/18(水) 08:49:32.49:LRw1LBCt なんか、サーバサイド長いとこの流れ何度目だろうなって思うわ。 そしてどの言語のコミュニティもこれやるんだなぁ、って。 php3くらいの頃のperl使いのphp叩きとか、phpとruby同士での殺し合いとか。 誰もが自分が使ってる言語が唯一正しい言語だと思ってて、 それ以外は信頼性が無い(と言うか、その言語なりの信頼性の担保の仕方を知らないだけ)と思い込んでて、 んでこういう流れになる。 phpの本家にevalは邪悪じゃないかと言う超長いスレッドあったじゃん。 本家追っかけてたら知ってるとは思うけど。 同じ話してるからね。今。11年もかけて。 : [sage] 2016/05/18(水) 12:30:17.91:nScWfz4V node-inspectorもっと軽快にならないの? それだけじゃなくて Uint8Arrayの中身見たら固まるとか デバッガ接続すると終了時にassert失敗するとかもずっと直らない : [sage] 2016/05/18(水) 12:44:11.74:T1RnKav0 謙遜しなくていいよ 想定じゃなくてそんなアホしかいねーもん : [sage] 2016/05/18(水) 13:12:55.57:u7J2zmgl お里が知れるな : [sage] 2016/05/18(水) 13:27:59.94:LRw1LBCt なるほど、railsででっち上げた「jsonを返すビュー」をjQueryで叩いて、値を画面に表示する、って事しか出来ない方々が流入してるのね。 : [sage] 2016/05/18(水) 19:26:38.50:Q3cKTCnY どんなに有名人が採用してようがあなたの能力で扱えるとは別だということが分からない愚かなnodeユーザ : [sage] 2016/05/18(水) 19:44:06.50:u7J2zmgl この界隈には自分のバグを他人のせいにする香具師が多い : [sage] 2016/05/18(水) 20:15:48.43:uOujd20Z ごめんねjqもまともに書いたことないのにnode module作ったりしてごめんね : [sage] 2016/05/18(水) 20:48:21.48:W9Cxd75i 煽り屋と餌やり屋の戯れ 野良猫みたいに殺処分と行政処分されねーかなー : [sage] 2016/05/18(水) 20:58:36.12:1l5+mIBG こういうのが沸くくらいnodeも普及してきたんだな 感慨深い : [sage] 2016/05/18(水) 21:04:03.55:LRw1LBCt あれ?そういうスレじゃないの? ここでガチャガチャやってるうちは、他のスレに迷惑かかんないじゃんw 俺はいろんな言語やったけど、javascript面白いと思ってるよ。ひとによると言語仕様が破綻してると言われかねない仕様も含めて。 プロトタイプベースで、弱すぎる型付けで、nullはオブジェクトで、キャストが強引。 これは逆に他の言語には無い便利さだと思う。 : [sage] 2016/05/18(水) 21:05:50.91:LRw1LBCt 黎明期は、それこそキチガイ扱いだったから、相手にされる程度に知名度上がったんだろう。 gaucheでcgi作るよりは少しだけ理解できて、かつ、わかりやすいディスりが出来るからね。 : [sage] 2016/05/19(木) 13:42:45.63:Gndv5tvj 黎明期は、何でもロールオーバーしてたなw : [sage] 2016/05/27(金) 08:52:43.90:6e4nfPYs でも現状まだ、ピーエイチピーの牙城を切り崩すというスタート地点には立っていない と言える。その辺のレンタルサーバのスタンダードモデルでも普通にnode.jsが使えるよ うになって、はじめてスタート地点だ。 : [sage] 2016/05/27(金) 09:42:09.37:5O2HSGrs そりゃ無理でしょ。 phpは、Webサーバのページ代わりにftpて上げれば良いんだから。 : [sage] 2016/05/27(金) 11:45:14.29:+931Hxzr そのうちHe6みたいなのが出るんじゃね : [] 2016/05/27(金) 17:20:21.53:a5zDK+Zd gegege : [sage] 2016/05/28(土) 11:30:20.75:QX+Vjkui : [sage] 2016/05/28(土) 11:43:56.43:YkPoIoOS POI って何て発音するの? ポア? : [sage] 2016/05/28(土) 23:34:09.17:TToadlrK [p:ouai] : [sage] 2016/06/03(金) 21:36:04.31:6tJjdY0+ ローカルにあるnpmパッケージをインストールしたいんですがなんてコマンドで出来ますか? C:/packages/hogeがnpmのパッケージのパスです : [sage] 2016/06/03(金) 23:59:29.74:Eze3tq7Y npm link : [sage] 2016/06/04(土) 21:15:25.84:+9DkyzPr nodeすら扱えない無能を自覚してるのにこんなところで吠えてる人って・・・ 2chがあってよかったね! : [sage] 2016/06/04(土) 21:57:43.69:pwpB9SqL 3週間も前のレスが気になるほど暇なのか : [sage] 2016/06/05(日) 02:46:57.81:b0qHmmcL 無能だから堪えたんだろう。 : [] 2016/06/05(日) 04:31:05.59:9zmSpSVO 今勢いあるフレームワークは何かね? : [sage] 2016/06/05(日) 04:32:11.09:CHuVDKX+ フレームワークを使わないことがブーム : [sage] 2016/06/05(日) 10:20:37.15:aSkOvhi4 React.jsとかじゃないの? フレームワーク無しで作れるスキルは必要だけどフレームワーク無しなんてありえんわ : [sage] 2016/06/05(日) 13:18:03.12:fcicNZfN react.jsはコミュ症が妙なアピールしてるせいでヘイト爆買いで好きだと言いづらいのが難 : [sage] 2016/06/05(日) 16:39:11.51:PAgdOZpu ヘイト爆買いとかいう用語がすらすら出てくる 人生が、キモいw : [sage] 2016/06/06(月) 15:10:06.18:FEwwmJy5 ttp://jump.5ch.net/?http://geekforbrains.com/post/after-a-year-of-nodejs-in-production >Easy to learn, impossible to master : [sage] 2016/06/06(月) 16:10:18.73:zn9AI40b どのレベルをマスターって言うんだ 将棋棋士で例えて : [sage] 2016/06/06(月) 16:17:48.46:hRKd2zL3 バックエンドにnodeを選んだ時点でセンスないなこの記事書いた人 うまくやってるところは大概bffに使ってる 適材適所もできなくてnodeのせいにする無能な人ってこのスレだけじゃなく海外にもいるんだな : [sage] 2016/06/06(月) 16:24:52.22:8Ex6WVsG > 適材適所もできなくてnodeのせいにする無能な人ってこのスレだけじゃなく海外にもいるんだな まさかそんなことないとか思ってたわけじゃないだろうな : [sage] 2016/06/06(月) 16:47:56.88:B7qEBb4m 舶来品崇拝主義なら海外勢全肯定でも別におかしくはない : [sage] 2016/06/06(月) 17:17:14.19:gOmKNf/3 欧米ガー : [sage] 2016/06/06(月) 20:22:01.78:vUcZj6al フォースが使えるようになったらマスターだな : [sage] 2016/06/06(月) 20:28:56.94:kYOSRyqE 誰がジェダイの騎士に例えろと言った : [] 2016/06/11(土) 19:26:34.76:ut81tplf 【Win10】 こんな犯罪級OS薦めんなよwww ↓ 【スパイウェア】 この使用許諾契約書には書かれています ”最後にあなたのコンテンツを含む個人データ(例えばあなたの電子メールの内容や―プライベート通信やプライベートフォルダ内のファイル)にアクセスし―開示し保全します” 開示する ここ重要だよ 契約がなければ通常 高度な違法行為になりうることです それはあなたが自分の意思としてこの契約書に同意したのです ttp://jump.5ch.net/?https://www.youtube.com/watch?v=ZBwEmgdqB1c 【秘密保護法】 ナチスの手口でサヨクを捕まるんだろ? 早くやってみろよ m9(^Д^) 【緊急事態法】 スノーデン氏→国家秘密法は諜報機関NSAの日本での活動を容易にするために米国が設計して日本政府に導入を要求したもの。 全日本人が調査の対象であり、NSAはあなたの交際関係、信仰等の個人情報を把握している。 ttp://jump.5ch.net/?https://twitter.com/hopi_domingo/status/740193540529999873 今朝、辺野古で新基地建設に反対するママの会メンバーに対して、機動隊員が「お前たちには汚い血が流れている」などと暴言を吐いたそうです。 自分のやっていることを「だってお金欲しいもん〜」「俺の写真を待ち受けにしろ」とも (顔写真) ttp://jump.5ch.net/?https://twitter.com/MothersNoWar/status/690357793702940672 サンマ以降のバラエティ芸人の大半が、暴走族出身で極右思想。原発反対派を「放射脳」と嘲笑する連中。 芸能界極右は石原慎太郎一家を筆頭に、上田晋也 草野仁 津川雅彦 向井理 松本人志 宇多田ヒカル マツコ 春日俊彰 田村淳 北村晴雄 ttp://jump.5ch.net/?https://twitter.com/tokaia mada/status/630627400552845312 : [sage] 2016/07/10(日) 03:44:25.42:WHnx1K9H Buildにmake使わないのは何故? : [sage] 2016/07/15(金) 23:21:25.75:/IkQTUfk こっちのがお薦め ttp://jump.5ch.net/?http://stackoverflow.com/questions/tagged/javascript : [sage] 2016/07/18(月) 11:10:31.75:pxxTdndl ttp://jump.5ch.net/?https://twitter.com/kyo_nanba/status/754348245959086082 : [sage] 2016/08/13(土) 12:34:10.31:zuqEHmKN webpackとかでワンソース化するのが メリットあるのってクライアントサイドだけの話ですよね? サーバサイドの場合はいちいちwebpack通したりするものですか? : [sage] 2016/08/15(月) 16:18:01.64:NVT4drit koa.jsいいっすね。 generator -> co -> async-awaitの流れを学んだら断然コッチが面白い : [sage] 2016/08/21(日) 14:18:55.57:+qVE0zeq 今から始めるんだったら koa.jsとexpress どっちがいいんですか? : [sage] 2016/08/22(月) 16:57:35.00:d5DQ07MM そろそろサーバサイドもjsでやってもいい頃じゃないかな。 エコシステムも成熟しつつあるし : [sage] 2016/08/24(水) 00:28:06.83:mGpqCU5h xserverのx10でnode動きますか? : [sage] 2016/08/24(水) 22:20:04.68:YjNG/PI0 動かなそうだけど ttp://jump.5ch.net/?https://www.xserver.ne.jp/manual/man_program_soft.php 素直にvpsにしたら。digitaloceanとか : [sage] 2016/08/25(木) 13:28:32.63:xKCwnmi1 babel-preset-latestいいな : [sage] 2016/08/27(土) 15:55:06.97:OdMRFjsT nodeを色々調べるとサーバサイド環境とか非同期処理が特徴とか出るけど、rubyやpythonでよくやるような書き捨てのスクリプト(例えばテキストファイル開いて整形するとか)で使うとしたら使い勝手はどんな感じでしょうか? : [] 2016/08/27(土) 16:19:53.61:QI8SWCwQ 出来るけどめんどくさい : [] 2016/08/27(土) 16:33:33.49:6tGwOPx0 無駄な抵抗は止めろ : [sage] 2016/08/27(土) 17:22:45.47:3HAzTXmX やればわかる : [sage] 2016/08/27(土) 20:00:25.80:qPuFnqYi サムスン、Node.jsの開発企業Joyentを買収 サムスンは、米国でNode.jsの開発企業Joyentを買収することで合意した、と発表した。 今回の買収で、サムスンは、これまでベンダーに依存してきた ソフトウェア、特にSaaS領域での遅れを取り戻し、モバイル、IoT、 クラウドベースのソフトウェアやサービスなどの大規模な需要に 自社のクラウドプラットフォームで対応できるようになる。 Joyentは、Node.jsの開発企業で、 Dockerコンテナに最適化したクラウドサービス「Triton」と、 オブジェクトストレージを提供するクラウドサービス「Manta」が主力サービスに持つ。 ttp://jump.5ch.net/?https://news.thepedia.co/article/839/ : [sage] 2016/08/27(土) 20:15:58.48:6/CZVqq6 宗教上の理由でnodeはNGって言えるようになったわけか : [sage] 2016/08/27(土) 22:26:02.43:MqlYnWcm node.jsのコアモジュールhttp.request/http.getをつかってWebページ(の文字列)を取得したいのですが、 いろいろ検索してみても、 var http = require('http'); http.get('<url>', function(res) { res.setEncoding('utf8'); res.on('data', function(body) { console.log(body); }); }); こんな感じの、コンソールに表示する例しか見当たらず、 文字列を変数に取り込む方法がわかりません。 他のリクエストやスクレイピングのモジュールを用いることなく、 文字列を変数に取り込んで文字列操作をするにはどうしたらいいでしょうか? : [sage] 2016/08/27(土) 22:30:45.89:AeepL8xQ 今更かよ 標準モジュール使ってしこしこ書くしかない まあ大抵npmに便利なものが上がってるから落として使えばいいけど しっくりこないと自分で作りたくなって結局時間が飛ぶように消える : [sage] 2016/08/27(土) 22:33:52.49:AeepL8xQ コンソール部分の代わりに変数への代入や他の関数呼び出しを行えばいい そもそも非同期の扱い方がわかってないみたいだから質問スレ行った方がいいよ : [sage] 2016/08/27(土) 22:57:04.66:MqlYnWcm レスありがとうございます。 console.log()の部分で変数を代入しても上手くいかず、 returnで外に持ち出すこともできず、詰んでしまいました。 一旦ファイルに書き出して、読みだす方法も、まさに非同期の扱いで難儀しています。 質問スレ、どこがいいんでしょうねぇ。 : [sage] 2016/08/27(土) 22:57:26.87:mf8jh8Qk コンソールに表示してるbodyに入ってんじゃないの? 取りたいものが決まってて定形なら正規表現で取れば多分一番楽だと思う。 : [sage] 2016/08/27(土) 22:59:22.69:mf8jh8Qk 外で定義した変数に入れれば入るけど、そうじゃない。 eventEmitterでも使って、適当な粒度のイベントにして渡したら疎になって後々使いやすいよ。 : [sage] 2016/08/27(土) 23:17:15.65:MqlYnWcm ,232 レスありがとうございます。 "body" に文字列が入っているのは間違いないと思いますが、 これを、後で関数の外で上手く拾うことができないのです。 たとえば、 の後に "console.log(body);" としてもダメでした。 "body" が未定義となってしまうのです(この結果はなんとなくわかります)。 前もって定義した変数"body2"に"body"を代入しても、この "body2" も空でした。 return を使って、関数の外に出すことも試しましたが、 どのコールバック関数を相手にしても、上手く行きませんでした。 eventEmitter 、調べてみます。ありがとうございます。 : [sage] 2016/08/27(土) 23:21:38.36:AeepL8xQ 変数で橋渡しする場合はの言うように外側で書いて callbackがそれを参照できる形にする必要がある またの最後尾にコンソールを書いた場合はリクエスト投げる前に実行されるよ 今回の場合は単に res.on('data', bodyを受け取って文字列操作する関数); でもいいと思うけど 質問スレは↓だけど荒らし(本日ID:W50SJfH+)がずっと常駐しているから注意 ttp://echo.2ch.net/test/read.cgi/tech/1468158373/ : [sage] 2016/08/27(土) 23:24:57.65:c6b53s6w 非同期が全くわかってないパターンか いるんだねこういう人 : [sage] 2016/08/27(土) 23:46:44.31:l4YlCK6k まあでも最初はわからなかった : [sage] 2016/08/27(土) 23:58:21.81:vp5ltHnS 質問スレ側の人間だが、 マジレスすると質問スレで質問するのではなく、非同期を勉強し直した方がいい。 JavaScriptでは非同期が分かっていないと話にならない。 質問したところで分かるようにはならないよ。 色々console.log('test');とか置いて動作タイミングを確認してみるといい。 : [sage] 2016/08/28(日) 00:05:46.28:Ks/jICmD 面倒だから普通はrequestとかsuperagentとかfetchとか使うが標準モジュールでシコるなら var http = require('http'); http.get('<url>', function(res) { res.setEncoding('utf8'); var body = ''; res.on('data', function(data) { body += data; }); res.on('end', function() { console.log(body); }); }); : [] 2016/08/28(日) 01:27:18.04:/ORT5A+I 第2引数に外側で定義した関数を指定すればいいだけなんだけど、非同期に慣れてないとこれがわかりづらいね : [sage] 2016/08/28(日) 05:08:46.10:H8sJUdJ0 >荒らし(本日ID:W50SJfH+)がずっと常駐しているから注意 一日中張り付いているのか?目的は何なの? : [sage] 2016/08/28(日) 06:19:56.03:PtjyY+N9 他スレの荒しの話なんかどうでもいいわボケ : [sage] 2016/08/28(日) 14:10:07.19:ZU3e5ILB どうみても法則発動 : [sage] 2016/08/28(日) 19:20:42.00:jcLwso4P レスありがとうございます。 外の関数を呼び出すことはできました。 非同期の対処はもう少し勉強します。 : [sage] 2016/08/31(水) 12:10:57.79:+XSeJi30 undeclared-variables-check入れてみたらrequireでエラー投げて笑った そりゃ未定義だけどさ : [sage] 2016/08/31(水) 22:44:26.98:mxX4GOAr そんな、最初にやる設定が抜けてる程度の話をされましても。 : [sage] 2016/09/01(木) 03:25:08.52:CJsgpLVH 逃げた方が良いな : [sage] 2016/09/01(木) 11:47:53.50:2ypEql9s Tizenと共に闇に葬られる : [sage] 2016/09/01(木) 17:37:46.03:qznKMbiw サムソンがnodeの会社を買う理由ってなんだろうな。 なんかメリットあるのか? : [sage] 2016/09/01(木) 17:39:29.52:wmHkFOqO 飼い殺し : [sage] 2016/09/01(木) 17:41:12.88:qznKMbiw jsでサーバサイドってそんなにダメかな? むしろaltJSでいろいろな言語から選べるしクライアントとサーバサイドの 共通コードかけるし便利だと思うんだけど シングルスレッドなところがダメなのかとも思ったけど cluster使ってforkすりゃCPU数分プロセス作れるし何がイカンのか : [sage] 2016/09/01(木) 18:28:47.43:wmHkFOqO クライアントとサーバーでコード共通になってもうれしいこと思いつかない : [sage] 2016/09/01(木) 20:04:21.33:qznKMbiw バリデーション : [sage] 2016/09/02(金) 07:31:30.00:D4RF+Hn1 大したメリットないな : [sage] 2016/09/02(金) 08:07:33.63:kRpLrkZu 一人がクライアントとサーバーの両方を担当するなら 同じ機能を2回書かずに済んだり、同じエディタを使えたりは利点になるか jsしか書けない人間が複数いるなら必要に応じて担当を割り当てられるか : [sage] 2016/09/02(金) 11:20:10.42:UbwoQtPa 複数言語を習得してる人間でも、同時に異なる言語使おうとすると頭の混乱起こりやすい。 やっぱ同じ言語がクライアント・サーバの両方で使えるのは良いんじゃないかな。 : [sage] 2016/09/02(金) 12:17:06.72:Do4GNfXI 戦闘力5のプログラマならそんなものだろう : [sage] 2016/09/02(金) 12:50:45.48:FbVLNmm2 JavaScriptさえ知ってればnode.js経験者として採用されるのかと : [sage] 2016/09/02(金) 13:15:13.96:kRpLrkZu まぁ後はJava/C#を使いたくない場合に TypeScriptと絡めて「硬い」コーディングがしたい場合の選択肢か : [sage] 2016/09/02(金) 13:50:23.86:FbVLNmm2 サムソンw : [sage] 2016/09/02(金) 13:55:24.31:IM+qI477 サムソンとか超兄貴思い出すからやめてくれよ : [sage] 2016/09/02(金) 14:05:52.43:LgVEFfHs バリデーションの共有ってメリットにならないか? webAPI側のバリデーションとclient側のエラーチェックを共通コードに纏めれたほうがいい気がするんだけど。結構面倒くさいでしょバリデーション : [sage] 2016/09/02(金) 14:45:38.47:2cG65SkE 寒チョンにデータが送られるのでバリデーションは大事ニダ : [] 2016/09/02(金) 15:15:17.79:dglZ+Mdk 完全なバリデーションが書けるなら client/server 共通でいいだろうけど なかなかそうもいかないから、別言語の別観点で2重にバリデーションを するほうが安全かも知れない。 : [] 2016/09/02(金) 15:33:28.19:tIJhbCeG ばりでーチョン : [sage] 2016/09/02(金) 15:42:50.04:LgVEFfHs そんな手間を掛けるくらいならテストを書いたほうがいい。 サーバサイドでjsエンジンを動かしてという手もあるんでしたっけ reactのサーバサイドレンダリングってrailsとか使うとどうしてるんだろ。 : [sage] 2016/09/02(金) 15:50:27.04:2cG65SkE 一方が間違ってると両方間違うので注意w : [sage] 2016/09/09(金) 21:30:49.46:oMlYA35z テストで何とかしようとするのは 同じ動的型付けであるRubyが辿った悲劇の二の舞 : [sage] 2016/10/28(金) 06:44:17.03:r/x8mVSr Win使いなんだけど、みんな開発環境どうしてるんです? Winでそのまま開発? GUIありのLinuxをバーチャルか普通にPCインストールしてそこで開発? それともMac? : [sage] 2016/10/28(金) 09:56:15.34:3tZbr/Tc 前は仮想マシンのLinux内でやってたけど今はそのまま : [sage] 2016/10/28(金) 13:19:17.97:3lkqIeOw 禿丸最強 : [sage] 2016/10/28(金) 13:20:38.14:9rEP3QYc Node.jsなんてLinux入れるまでもないじゃん : [sage] 2016/10/28(金) 14:48:17.79:xXLR7gqA winだとパス長すぎって : [sage] 2016/10/28(金) 14:53:48.34:EfMWYGcS 最近のwinはlinux環境入れられるんでしょ? もうwin環境のことは気にしなくていい? : [sage] 2016/11/01(火) 23:42:56.87:jbWQdUPc すみません質問させてください! postcssのビルドに7秒くらいかかるんですが、もっと早くする方法ありませんか? 使ってるモジュールはpostcss-importとpostcss-cssnextだけなのですがなんでこんなにかかるんでしょう。 browserifyの時も15秒くらいかかっててwatchify使ったら爆速になったので感動したのですが postcssにもwatchifyみたいなのってないんでしょうか... : [] 2016/11/03(木) 11:57:32.06:ELIf3lFW ですが、postcssを使っていると言いましたが具体的には post-css-cliを使っています。 今、代わりにwebpackを利用したpostcss-loaderを使ったビルドを行ってみたら 物凄く早くてびっくりしました。(webpackも内部的にpostcssを使っていると思ってたのですが...) ただjsにパッケージしたいわけではなく、cssファイルとして出力したいので webpackは使いたくないです。 昨日、こんな記事を見つけました ttp://jump.5ch.net/?http://blog.greggant.com/posts/2016/05/03/post-css-is-slow.html やっぱりPostCSSって遅いんですかね? なんかSassよりビルドが早いってことがメリットだと思ってたんですが... : [sage] 2016/11/03(木) 13:41:25.94:lfIkemy8 SassはRuby実装版とC言語実装版があるんだよ。 Ruby実装版は遅かった。 C言語実装版は爆速 PostCSSはJavaScript実装みたいだから 一般論としてC言語実装のほうが速いだろうね。 : [sage] 2016/11/03(木) 13:44:00.34:lfIkemy8 > (webpackも内部的にpostcssを使っていると思ってたのですが...) どのプラグイン(loader)を使うかによる > ただjsにパッケージしたいわけではなく、cssファイルとして出力したいので > webpackは使いたくないです。 extract-text-webpack-pluginを使えば、cssを別ファイルに切り出せる : [sage] 2016/11/22(火) 01:30:31.04:kbDRJTGd webpackで指定したrequireをバンドルせずスルーするのってライブラリ書くときにやると思うけど 変換せずにES6 Modulesそのままで出力する時代になったら同様の手法ってどう実装するんだろ import,exportはトップレベル限定だし : [] 2016/11/23(水) 16:26:43.44:q+/j2xKv だからwebpackにexternalsって機能が用意されてるだろ : [sage] 2016/11/23(水) 16:30:10.06:q+/j2xKv > ES6 Modulesそのままで出力する時代 webpackを使わないって話か? それなら細切れのファイルのままで動くはずだろ。 これらのファイルをパフォーマンスのために結合したいっていう話であれば 結合するツールを通せばいいだけ。 それがwebpackだけどなw 最初からwebpackは結合ツールだろ? : [] 2016/11/23(水) 19:18:19.97:8JM49hh7 npm socket.io以外の方法でsocket.ioを入れる方法はあるのでしょうか? 格安VPSを借りてnodeを入れたらnpmがメモリ不足で落ちました。。。 ちなみに128MB+swap128MBです。nodeのために借りたわけじゃないので最低プランです。 nodeを少し触ってみようと思ってみたらメモリ不足だったと。。 : [sage] 2016/11/23(水) 19:27:52.62:q+/j2xKv yarnでも使ってみたら? npmは異常にメモリ食うツールだと思ってるんで 改良されたyarnならそこら辺も改良されてるんじゃね? : [sage] 2016/11/23(水) 19:28:46.35:q+/j2xKv あと結局のところファイルがあれば十分だろうから、 互換性がある環境をローカルで用意してコピーしても動くだろうね。 : [sage] 2016/11/23(水) 19:34:05.74:8JM49hh7 了解しました。ありがとうございました。 : [sage] 2016/11/24(木) 16:25:31.08:8ph3HZsS httpリクエストのパラメーターをJSONで受け取りたいのですが簡単に型チェックを行うにはどうしたらいいでしょうか? : [sage] 2016/12/15(木) 12:29:15.65:7KRIzock ttp://jump.5ch.net/?https://chrome.google.com/webstore/detail/%E3%81%AF%E3%81%A6%E3%81%AAng/mbgdnfmdelffjdhkdggilmphfdihnmcj?hl=ja : [sage] 2016/12/24(土) 08:28:57.62:SsPwlmKa node.jsってコンパイル環境なんですか? いまいちよくわからない・・・ : [sage] 2016/12/24(土) 09:05:53.13:n8P5UzA6 単純にはスクリプト言語だよ : [sage] 2016/12/24(土) 12:38:08.47:p4lqfCaM TypeScriptのコンパイル? : [sage] 2016/12/24(土) 12:59:31.99:pvCha/M1 最近Winでも動くようにシェルじゃなくNodeのAPIでファイル操作書いてるけど fsはディレクトリ名の変更が面倒だな : [sage] 2016/12/26(月) 17:10:45.18:YoRbV7Fw native moduleでBuffer返そうとしてるんだけど何故かUint8Arrayが返る これどうすればいい? v8::Local<v8::Object> lr; v8::MaybeLocal<v8::Object> buf=node::Buffer::New(isolate, datalen); buf.ToLocal(&lr); memcpy(node::Buffer::Data(lr), data, datalen); args.GetReturnValue().Set(lr);//Uint8Arrayが返る(中身自体は期待通り) : [sage] 2016/12/26(月) 17:34:43.32:TRnwbnfO args.GetReturnValue().Set(buf); : [sage] 2016/12/26(月) 18:03:53.64:YoRbV7Fw 自己解決 根本的な勘違いをしてた global掴んでbuffer引っこ抜いきつつ、変換掛けたらとりあえず動いた : [sage] 2016/12/28(水) 20:41:17.73:qA/oaz24 downloadRecの処理が終わったあとに処理をしたいのですが、何かいい方法ありますか? var client = require('cheerio-httpcli'); var URL = require('url'); var target = " ttp://jump.5ch.net/?http://nodejs.jp/" downloadRec(target, 2); function downloadRec(url, l) { if (l <= 0) return; console.log(url); client.fetch(url, {}, function(err, $, res) { $("a").each(function(i) { var next_url = $(this).attr('href'); next_url = URL.resolve(url, next_url); downloadRec(next_url, l - 1); }); }); } : [sage] 2016/12/29(木) 15:54:09.62:qVUp/W0S Promise使えばいいと思う : [sage] 2016/12/29(木) 16:52:22.26:gZvvZQ+j 使って色々頑張ってみたんだがどうしてもできなかったので、どうすればいいか教えてください。 : [sage] 2016/12/29(木) 17:05:49.86:k+96c2nT Promise直接使うみたいなアホな事する時代は終わったで 時代はasync/await : [sage] 2016/12/30(金) 15:01:32.10:CLzRlwe+ function downloadRec(url, l) { if (l <= 0) return 処理終わった後に実行する関数(); : [sage] 2016/12/30(金) 20:45:17.69:RIzfmHx0 それだと処理し終わった後に実行する関数が複数回実行されないか? : [sage] 2016/12/30(金) 22:35:37.39:b7WBl9TI いやいや。段階的に移行した方がいいと知った。 先ずはPromiseを使いこなしてからasync/awaitへ じゃないと使いこなせないし : [sage] 2016/12/31(土) 21:49:05.77:QjPQSkfd 確認不足だった $("a")のlengthを使えばできるかも : [] 2017/01/11(水) 15:42:49.05:vH7dCRyh すみません教えてください node.jsでaccessのデータを扱うにはどうしたらいいでしょうか? 勉強を始めてみたもののこの部分がさっぱり分からなくて : [sage] 2017/01/11(水) 16:32:33.71:gsuc1xOj ole : [] 2017/01/31(火) 02:47:01.11:NZevozPS foreverで嵌まっています。 環境はCentOS6.8+node.js v4.7.2+npm 2.15.11です。 通常なら起動すると、 warn: --minUptime not set. Defaulting to: 1000ms warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms info: Forever processing file: ここにパス が出るのが正常ですが、 最終行のinfoが出ずにコマンドが帰ってこない状態になっています。 肝心のnodeは起動しているのですが、コマンドが帰ってこないので仕方なくCtrl+Cで中断するとnodeのプロセスも止まってしまいます。 forever は-g付でグローバルインストールしており、何度か削除、再インストールを繰り返しましたがだめでした。 散々ぐぐっても解決できず数日立ち往生しています。 何か気付きがある方は知恵をお貸しください。 : [] 2017/01/31(火) 03:00:34.59:NZevozPS 状況の追記です。 コマンドが帰ってこないと書きましたが、状況として、 node ここにスクリプト名 を打った時と同じ状態です。 console.logの内容がそのまま出てきます。 : [sage] 2017/02/07(火) 19:56:14.64:rnaKi3ZD なんでcentosなんて使ってるの? 実環境がredhatで有料サポート受けるから開発ではcentos使ってるくち? それならわかるけど、そうでないならcentos使うメリットなんて殆どないだろ。標準リポジトリのパッケージ少なくて結局サードパーティのリポジトリから持ってくるとか、ソースからビルドとかバカじゃないの? : [sage] 2017/02/07(火) 21:18:13.77:sCX3nP78 リポジトリ追加なんてたいした手間じゃないし ソースからビルドも愚行でもなけりゃ別に普通だろ : [] 2017/02/08(水) 14:42:02.74:man5IBG6 うちの会社はサードパーティリポジトリ認められてないな。 ソースからビルドするのはオーケーなので基本いつもビルド。 : [sage] 2017/02/08(水) 15:31:52.83:fGXhImwi >標準リポジトリのパッケージ少なくて結局サードパーティのリポジトリから持ってくるとか、ソースからビルドとかバカじゃないの? わろた ほんそれ : [sage] 2017/02/08(水) 15:51:35.85:6dEGRHzt 高能力なせいかビルドでハマったこととかない 本当に申し訳ない : [sage] 2017/02/08(水) 16:06:35.04:h2xuxrYQ 世界的にはとっくにubuntuとかが主流なのに日本は未だにcentosのままってとこが多いよね : [sage] 2017/02/08(水) 16:22:57.83:kddAP5Zw で、いつ目障りなio.jsとかいうゴミグループは消えるの?こいつらのやった事はnode.jsの発展と普及をいたずらに遅らせただけでしたwww いつものコンピュータだけがお友達な根暗馬鹿の自己満足でフォークするとか辞めていただきたいね。 : [sage] 2017/02/08(水) 16:25:08.80:+f0LmjaI サーバには安全性、安定性が求められるから、 世界的に見てもエンジニアに好まれてるのはRHELクローンの方。 : [sage] 2017/02/08(水) 16:42:31.50:rVmGmxZl io.jsはとっくにnode.jsって名前に変わった : [sage] 2017/02/08(水) 16:46:43.32:QCQx6ash うむ : [sage] 2017/02/08(水) 17:13:34.47:Tas274F6 現在から2年後に書き込む方法を知っているなら教えて欲しい : [sage] 2017/02/08(水) 18:58:19.46:uiFBRwjo ソースからビルド、そんなに少数かな。 俺の知ってる環境も基本はそうだった。 : [sage] 2017/02/08(水) 20:33:43.02:z7CrxHSJ 用途が違うんじゃね : [sage] 2017/02/08(水) 23:10:55.63:wsrFvMlT ガラパゴスの住人さん乙 DBサーバーなら違うって話はあり得るがここはnode.jsスレだからな nginxと同居することも多いんだからボリュームゾーンからそう外れないだろ : [sage] 2017/02/09(木) 04:37:18.58:KfjJ3OGM の話もそうだけど、みんなforever大好き人間なの? ってのも今日のTechCrunchの記事にあったKeymetricsってとこが出してるpm2ってプロセスマネージャがすんげー使いやすそうなんだけどと思ってさ。 ttp://jp.techcrunch.com/2017/02/08/20170207keymetrics-is-a-nodejs-monitoring-tool-for-your-server-infrastructure/ : [sage] 2017/02/09(木) 05:13:21.96:2qzHgTI5 普通にサービススクリプト書くかな俺は どうせzabbix入れてるし : [sage] 2017/02/09(木) 11:35:11.33:xprSmyqC 普通にcentにnginx入れてるが つうかどのディストリ使おうがインストール作業なんてたいしたもんじゃない 面倒なのは設定だ ubuntuなら特別設定が楽かといったらNOだろ : [sage] 2017/02/09(木) 16:32:01.00:KfjJ3OGM スクリプト書く労力も大して変わらないっってのもわかるんだけど、pm2だとプロセスのリスタートとかも簡単でさ。Node.jsにAPIをいくつもぶら下げるような環境だとこれ入れた方が楽そうだなって思って。 : [sage] 2017/02/13(月) 15:30:13.15:+69sTJr+ 計算方式が複雑で専門知識も必要な超面倒なことで止まってて、npm無いかなと思ったらあったんですが、マイナーで開発も止まってるっぽいです。 installしてみたら、moduleの中にあるc++のところで何やらwarningがいろいろ吐かれてたのですが一応は動く… cは全然やったことないので何でダメなのかはぼんやり。 こんなとき。これをそのまま使うのと、改変出来るようにcも勉強するのと、専門知識と計算を自力で勉強して頑張るの、どれがベストですかね。 : [sage] 2017/02/13(月) 17:49:48.97:UyeCKZqE warning出てるから信頼性無いとかいう盲信はヤメロ : [sage] 2017/02/13(月) 19:42:59.45:+69sTJr+ レスありがとう。もうそのまま使っちゃうっ : [sage] 2017/02/14(火) 11:43:04.67:o7NkWciL 警告の内容による 割とどうでも良い内容の場合オプションで黙らせてるオープンソースソフトウェアも多々ある chromiumでビルドツールが吐いたファイルのコンパイルオプションを見ると かなりの数の警告がデフォルトで無効化されてるはず : [sage] 2017/02/14(火) 15:11:01.24:0FAFNiBf 初心者ですまんだけど、functionの中で使えるモジュールとそうじゃないのあるんだけどそれってどうしてなの? エラーも出ずにただただ動かないやつあるんだよね。関数の外だと動かせるのに。 : [sage] 2017/02/14(火) 16:20:21.96:06xiI2rQ 具体的に何のモジュール? どういう環境で動かして発生してる? : [] 2017/02/14(火) 21:50:07.73:MfKEp5BT ただただその関数が呼ばれてないだけというオチに1票 : [sage] 2017/02/14(火) 22:21:25.87:W41n3HIS 呼んでないならエラー出るんじゃね? 関数の外だと動くとしたらexpressとかかな。router.getとかpostの中で走らないとかなら前にあった気もしなくない。どうしたか忘れたけどw : [sage] 2017/02/15(水) 00:10:45.91:ZQplfFJ2 Rubyを使えば? Chefのレシピは、どこにでもある Chef → Vagrant → VirtualBox CentOSは8〜10年と、サポート期間が長い。 Ubuntu Serverは5年だろ : [sage] 2017/02/15(水) 00:54:49.40:EMySciej Chefはオワコン あんなものに時間を費やするとか バカみたいだろう : [sage] 2017/02/15(水) 03:20:36.44:ZQplfFJ2 %w{php mysql nginx}.each do |name| package name do action :install end end %w{php-fpm mysql nginx}.each do |name| service name do action :start end end Chefで、複数のパッケージをまとめて、インストール・起動できる : [sage] 2017/02/15(水) 03:48:14.72:EMySciej シェルスクリプトでいいやんw : [sage] 2017/02/15(水) 05:14:07.85:ZQplfFJ2 Rubyでは中間言語にコンパイルする時に、エラーが分かるから、 途中まで実行されないから、中途半端な状態にならない シェルスクリプトではエラー処理など、複雑なプログラミングはできない Chefでは、action :install など、共通のコードで、 ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える 設定ファイルに書き込むとか、cron での定期実行とか、 Vagrant を削除すればすべて消えるから、何回でもテストできるし、 Test Kitchen というテストツールもある こんな全工程をとても、シェルスクリプトでは書けない : [sage] 2017/02/15(水) 07:49:09.63:gA9AwOPh Rubyは宗教だからな もしこれなら呼ぶ順番とかnextされてないとかそういうことちゃう? : [sage] 2017/02/15(水) 12:50:14.06:ULOZzaq4 spookyjsでjsonをファイルから読み込むのってどうやるの? : [sage] 2017/02/15(水) 21:49:05.06:EMySciej > Rubyでは中間言語にコンパイルする時に、エラーが分かるから、 > 途中まで実行されないから、中途半端な状態にならない まあ、誰に目にも間違いだと明らかにわかっていることだが、 ネタ的に面白いから言ってみて。 「他の言語だとこういう場合にこうなって、 Rubyだとそうならない」という形で例を言ってみて : [sage] 2017/02/15(水) 22:02:17.92:MGTJrHMY 面白くないし言わせなくていいよ 元々スレ違いの話だし続けても荒らしにしかならん : [sage] 2017/02/15(水) 22:03:49.19:EMySciej 逃げ出すなら今のうちだぞ?w Rubyだとコンパイルされてもエラーがわからず エラーで途中で中断されるまで実行されてしまって 中途半端な状態になる例 ↓↓↓↓ f = File.new("out.txt", "w") f.write("test") f.close() aaa() File.delete("out.txt") aaa()で途中で中断される。out.txtというファイルは消えずに残る : [sage] 2017/02/15(水) 22:04:48.80:EMySciej さーせんw がウソだってばらしてやったので もう来ないと思うわーww : [sage] 2017/02/16(木) 03:04:55.36:1M26REHO Chefの冪等性を言語の機能だと思ってんのかな あれは苦労してそうなるように実装してるんだよ スッキリくん : [sage] 2017/02/16(木) 11:50:45.61:1CyXSjc0 おまいらがいろいろめんどくさいこと言うから事の発端の初心者の子が出てこれなくなってるじゃないかw : [sage] 2017/02/16(木) 13:30:50.42:1VBkG9E6 何を今更 いつものことだろ それとも自演か : [sage] 2017/02/16(木) 14:09:27.37:1CyXSjc0 ちょっと伸びててしかもなんで別言語の話になってるの?と思って追ってみただけだけど。 いつもということは常駐してんの?ひまだねえ : [sage] 2017/02/16(木) 14:22:02.95:1VBkG9E6 いや このスレに限ったことじゃなくて 2ちゃん全般だから ひまなのは認める : [sage] 2017/02/16(木) 14:42:37.07:squjHSRZ そろそろJenkinsおじさんに次ぐChefおじさんと呼ばれる人たちがでてくるころかな。 今始めるなら、Ansibleがおすすめだよ。 : [sage] 2017/02/16(木) 22:07:51.85:jc3dpiuS Chef(など)の冪等性の機能って本当に同じ状態にするわけじゃないからな まず書いてないことの状態は、定まらない。例えばこういうファイルを作れや ファイルを削除する。なら定義できるが、そこに書いたこと以外の 余計なファイルが有ったり足りなかったりしてた場合は違う状態になる。 それからパッケージとかライブラリとか、インターネット上から落としてくるようなやつは 同じになるとは限らない。バージョンを指定したら同じになるだろうが、今度は そのバージョンが削除されたらエラーになってしまう 本当に同じ状態にするのであれば、最初に作ったものをイメージ化するしかない。 だがイメージ化したものを使って変更を入れないのならば冪等性なんかは不要になる。 これがイミュータブルインフラストラクチャーという考え方 必要なのは「最初に作るもの」を手順化したものだけ。 そこにChefが必要か?と言われれば当然必要ない。 なぜなら、Chef等が登場する以前、みんな端末から手動で構築していたろ? 端末っていうのは要するにbashだったりzshだったり。 つまりbashシェルスクリプトで全部できることでしかない。 インタラクティブな処理とファイル編集はbashシェルスクリプトでやりにくいように思うかもしれないけど インタラクティブな処理は、シェルスクリプトでも実行する方法が用意されているものだし ファイル編集は発想を変えて、ファイルそのものをコピーすればいい そうすれば消して特定の状態から環境を作る処理なんざシェルスクリプトでなんの苦労もなくできる。 消さずに何度も設定を送り込んむような(クラウド的ではない)使い方をするのなら 冪等性があると便利だから使う意味があるが、それでもAnsibleで十分だし、Ansibleの方が簡単 : [sage] 2017/02/16(木) 22:12:01.74:jc3dpiuS > Chefでは、action :install など、共通のコードで、 > ディストリによって、CentOSのyum / Ubuntuのapt-get を自動的に切り替える 一見便利そうに思うかもしれないけど、汎用的なChefレシピを作ってる人(誰かいんの?)以外は CentOSとUbuntuを変更したいなんてことはまずない。 そもそもCentOSとUbuntuではパッケージ名が違う だから自動的に切り替えることは完全にはできない。 それからバージョン番号とかどうする?完全に一致するわけじゃない。 結局CentOSはこの名前のパッケージで、Ubuntuだとこの名前のパッケージというように 切り替えるファイルが別に必要 誰かが用意してくれてるんだろうが、マイナーなパッケージまでそれをやってくれるのか? 頑張った所でCentOSとUbuntuで違うが生まれるというのに、誰が喜ぶんだという話 : [sage] 2017/02/16(木) 23:13:35.09:jc3dpiuS ttp://jump.5ch.net/?https://www.ogis-ri.co.jp/otc/hiroba/technical/vagrant-chef/chap3.html > どうやら Ubuntu と CentOS は git-daemon のパッケージ名が異なるため、 > 同じパッケージ名で両方の OS に対してパッケージをインストールできないようです。 > 以下のようにレシピ中でプラットフォームごとに適切なパッケージ名を使うように変更しましょう。 > > package "git-daemon" do > case node[:platform] > when "centos" > package_name "git-daemon" > when "ubuntu" > package_name "git-daemon-run" > end > action :install > end あははw あほくさ 本末転倒とはまさにこの事 : [] 2017/02/17(金) 00:09:45.16:fTK4d/WW cookbookは各社が公開している Chef社のopscode、Railsを作っている Basecamp社、 Berkshelfを作っている Riot Games社、 Pivotal Trackerを作っている Pivotal Sprout社、 aws, engine yard この本を参照。 Chef実践入門 - コードによるインフラ構成の自動化、2014 : [sage] 2017/02/17(金) 01:33:30.98:EzDq9nSn > cookbookは各社が公開している そうやって誰かが用意してくれなければ 使いづらいようなものを他人(各社以外=つまり俺ら)が メンテ何するなんて苦行でしかない。 シェルスクリプトでみんなやれているのに それをわざわざ別の形式で書く必要なんてないんだわ。 みんなが手動でパッケージ入れたりしているものを 単に記述しただけなんだぞ。 シェルスクリプトなら探す必要もないし、 難しさのかけらもない 2014年という終わコンになったChef soloを 使った手順しか書かれてない本も読まなくていい : [sage] 2017/02/17(金) 03:01:13.25:avRI9kck 時代はAnsibleだからどうでもいい : [sage] 2017/02/21(火) 19:28:09.02:hNSzp0Df ansibleから漂う超光速通信感が格好いいからアンシブル好き何やってるのかは知らんけど : [sage] 2017/02/22(水) 11:38:24.75:nFPUHBlJ 俺がchefをやめた理由: ・アーキテクチャがころころ変わる(最大の理由) → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も) ・リモートにインストールが必要 ・他人が作ったcookbookでなにやってるのかよくわからん ・さらに、そのカスタマイズポイントを調べるのが面倒 ・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない まあ、Ansibleにもあてはまる項目あるけどね。 : [sage] 2017/02/22(水) 11:38:55.75:nFPUHBlJ 俺がchefをやめた理由: ・アーキテクチャがころころ変わる(最大の理由) → なので、ちょっと前の情報がもう全然駄目になる(書籍もネットの情報も) ・リモートにインストールが必要 ・他人が作ったcookbookでなにやってるのかよくわからん ・さらに、そのカスタマイズポイントを調べるのが面倒 ・自分で書く場合は、結局ディストロ意識するので、CentOS用に書いた奴はUbuntuでは使えない まあ、Ansibleにもあてはまる項目あるけどね。 : [sage] 2017/02/22(水) 12:09:52.48:yaW/NUco アーキテクチャがころころ変わるのは オンプレ連中に楽させるかよ金払えって意図がある : [sage] 2017/02/22(水) 20:56:44.68:TiP/fttU そのAnsibleにもあてはまる項目だけど、 各アプリの設定ファイルを、わざわざAnsibleのyml形式で 書き直すっていうのがアホらしいと思う あと、 Ansible公式でモジュールが用意されているとあるサーバーアプリがあるのだけど、 そのサーバーアプリの最新版がリリースされたら公式モジュールが動かなくなった このように間に別の仕組みがはいって、その別の仕組はアプリごとに 用意しないといけないものというのは、公式で対応すべきじゃないと思う。 利用者が自分で書くか、アプリ自信に配布してもらうか ちなみになAnsible Galaxy見てみたら、そのアプリに対応するモジュールが 50個以上あったわw 検証してられるか=それらはゴミ : [sage] 2017/02/23(木) 10:44:15.73:5OVH7aZj > 各アプリの設定ファイルを、わざわざAnsibleのyml形式で > 書き直すっていうのがアホらしいと思う うん、アホらしいね だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね ゴミに関しては、chefのcookbookの方が多いんじゃないかな さらに同じ目的なのに多数類似品が見つかるし、動かなくなってるのもあるし : [sage] 2017/02/23(木) 10:50:09.51:5OVH7aZj ただ、 > 各アプリの設定ファイルを、わざわざAnsibleのyml形式で > 書き直すっていうのがアホらしいと思う は書くのは大変だけど、多大なメリットがある それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが 結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし (あるいはちょっとした変更)でいけたりする iptablesからfirewalldの変更とかね 設定アイル事前準備→内容書き換え→配布だと、それに対応できない場合がある : [sage] 2017/02/23(木) 22:10:27.88:Ka1UMSVA > それは、デプロイするパッケージのバージョンを上げるときに、付属する設定ファイルが > 結構変わったり、パッケージそのものが変わっても、設定をyamlで書いとけば変更なし > (あるいはちょっとした変更)でいけたりする それは普通にアプリ標準の設定形式であっても同じ もし、付属する設定ファイルが結構変わっていたりしたら それにAnsibleが対応するまで、使えない。 実際、エラーが出て困ってる。 : [sage] 2017/02/23(木) 22:11:49.00:Ka1UMSVA > 書き直すっていうのがアホらしいと思う うん、アホらしいね だから、設定ファイル(ふつーのテキストファイル)に変数を埋め込む機能が準備されてるんだね そして、アホらしいから設定ファイルに変数を埋め込む方法を使えば 設定ファイルが大きく変わったとき困るよね? : [sage] 2017/02/23(木) 22:17:25.43:Ka1UMSVA > iptablesからfirewalldの変更とかね iptablesはこっちを使いましょう ttp://jump.5ch.net/?https://docs.ansible.com/ansible/iptables_module.html firewalldはこっちを使いましょう ttp://jump.5ch.net/?http://docs.ansible.com/ansible/firewalld_module.html 見ての通り使える機能が違うからオプションも違います。 iptablesを勉強した後、Ansibleのドキュメントを見て、何が何に対応するか調べましょう そして firewalldを勉強した後、Ansibleのドキュメントを見て、何が何に対応するか調べましょう : [sage] 2017/02/23(木) 22:38:29.44:OjaB8M7n Ansible警察です^^ : [sage] 2017/02/24(金) 00:19:14.85:J1gh7NVQ まだやってんのか もうそれでスレ立てろよw : [sage] 2017/02/24(金) 07:54:29.50:8JeFvz/h docker派の俺、高みの見物 自社サーバー中心だとその辺楽だなあ : [sage] 2017/02/24(金) 10:50:57.89:L3urbmMZ > もし、付属する設定ファイルが結構変わっていたりしたら > それにAnsibleが対応するまで、使えない。 そんなことないよ。 設定ファイルが結構変わってても、設定する項目は変わらなかったりする。 locale関連設定とか、timezone設定とか。 > 設定ファイルが大きく変わったとき困るよね? そうだよ。だからyamlで設定するメリットを書いた。 > 見ての通り使える機能が違うからオプションも違います。 だから、yamlで設定を書いておけば、少しの変更でいけるって書いたじゃん。 それに、この例で言えば、iptablesでもfirewalldでもいける設定を誰かが作ってるかもしれないし。 俺はそれ探すより自分で書き換えた方が速かったから探してないけど。 誰かが作ったカスタマイズ度が高い設定を使うだけなら、chefもansibleも似たようなもんかもね。 のデメリットが大部分あてはまる。 : [sage] 2017/02/25(土) 00:07:14.99:7KoBIFTE > だから、yamlで設定を書いておけば、少しの変更でいけるって書いたじゃん。 それは無理。公式がコードを修正しないといけない : [sage] 2017/02/25(土) 00:51:19.65:KfcxLahl どれも枯れてないものばかりだし変化に文句つけても仕方なかろう : [sage] 2017/02/25(土) 01:26:59.68:JBoxI4/B 幻想に乗っかっちゃだめよ : [sage] 2017/02/26(日) 18:16:36.24:vI+CT2Uu すまん、ここnode.jsのスレだよな? : [sage] 2017/02/26(日) 18:37:39.09:TIfPFmII 実際に手を動かしてるやつがいて安心したんだけどな 机上の空論語るよりよっぽどためになる と言いつつ、dockerの俺は高みの見物 : [sage] 2017/03/17(金) 16:32:59.98:AoUhXhvS ES6モジュールで書かれた依存モジュールがある状態だとbabel-node使えないな node_modulesのignore外すとbabel自身を変換しようとするのかエラー出て通らない globalにbabel-cli入れないとダメか : [] 2017/03/22(水) 22:15:57.31:ZzjrTTVd electronで作ってるんだけどC#とかのWindow Form?と違ってcssデザインの才能ないと見た目が悪くなるなコレ : [sage] 2017/03/23(木) 02:57:25.40:RevR4EA/ こういうのを参考にすれば? monaca(PhoneGap/Cordova) + AngularJS + Onsen UI サンプルアプリ & テンプレート ttp://jump.5ch.net/?https://docs.monaca.io/ja/sampleapp/samples/ Onsen UIをカスタマイズするOnsen Theme Rollerの紹介 ttp://jump.5ch.net/?http://blog.asial.co.jp/1355 : [] 2017/03/23(木) 23:51:44.74:kxaT0+ZA これ便利ですね! ありがとうございますm(__)m : [sage] 2017/03/27(月) 02:17:39.25:lADNPtGP npmが壊れたみたいなのですが、これはどうすればよろしいのでしょうか。 経緯: 1. 本日初めてインストール。(v4.8.1-x86、なおvistaなのでv6.10.1は無理だった) 2. gulp等インストールが順調に完了 3. uglifyしようとするも、ES2015のためエラー 4. uglify#harmonyをインストールしようとするも、httpsでエラー 5. ローカルにクローンしてnpmしても、途中でhttpsでエラー 6. npm install npm@latest -g しようとするが、ディレクトリを間違えていたため途中でCtrl-Cで止める 7. これ以降npmが動かなくなる 8. 何度もnodeをアンインストール/再インストールしてみたが、npmが動かない。 9. エラーメッセージは以下。(ディレクトリ名は消してます) >npm version npm module.js:327 throw err; ^ Error: Cannot find module 'semver' at Function.Module._resolveFilename (module.js:325:15) at Function.Module._load (module.js:276:25) at Module.require (module.js:353:17) at require (internal/module.js:12:17) at Object.<anonymous> (npm\node_modules\npm\lib\utils\unsupported.js:2:14) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Module.require (module.js:353:17) アンインストールしても直らないので、レジストリかどこかに書いてそうなのですが、 ご存じないでしょうか。 : [sage] 2017/03/27(月) 09:36:51.01:p7pVTGV7 vistaの場合はドッチなんだろう ここも削除してみたら Windows XP - %USERPROFILE%¥Application Data¥npm¥node_modules Windows 7 - %AppData%¥npm¥node_modules : [sage] 2017/03/27(月) 09:43:01.09:p7pVTGV7 と言うか最新版が入らない時点で終了な気がする。 ネット上の環境使ったほうが早くないかな ttp://jump.5ch.net/?https://c9.io/ : [sage] 2017/03/27(月) 09:43:54.86:p7pVTGV7 つ bootstrap : [sage] 2017/03/27(月) 10:58:39.97:lADNPtGP ありがとうございます。復活しました。 ディレクトリは%USERPROFILE%\AppData\Roaming\npm\node_modulesでした。 : [sage] 2017/03/27(月) 19:07:50.12:lADNPtGP 試行錯誤の末、何とか動くようになりました。 結論としては、Gitも最新版にする必要があったようです。 > ttp://jump.5ch.net/?https://git-scm.com/download/win nodeにもgitが入っていてそれを使っているものだと勘違いしてました。 ありがとうございました。 : [sage] 2017/03/27(月) 20:47:54.47:GesejkPS gitは不要 : [sage] 2017/03/28(火) 17:23:59.52:3EkUFmFA next.js使えるって思ったら クライアントサイドのコードとサーバサイドのコードの連携方法が不明。 : [] 2017/03/28(火) 18:15:57.57:kpaN19Jn 連携意味ない : [] 2017/03/29(水) 07:57:57.41:KsdrIF6a expressでlistenしているサーバーの443ポートに、socket.ioをねじ込むことはできますか? httpsしか許可していないLAN環境で使いたいためです。 : [sage] 2017/03/29(水) 08:25:41.12:go5sII7e 無理です : [sage] 2017/03/29(水) 08:56:34.12:GhOdSF7q 普通にできるんじゃね? : [] 2017/03/29(水) 09:06:05.10:KsdrIF6a ありがとうございます。 別IPか別ホストに分けて起動するようにします。 : [] 2017/03/29(水) 09:18:00.82:KsdrIF6a レス間違えました。388ありがとうございます。 そうなんですか? どうやるんでしょう? 何分、始めたばかりで基本の知識に乏しいものでして… : [sage] 2017/03/29(水) 11:56:09.16:GhOdSF7q expressのserverをioの引数にしてlistnするだけじゃなかったっけ? : [] 2017/03/29(水) 12:15:17.04:KsdrIF6a ありがとうございます! 調べてやってみます。 : [] 2017/03/29(水) 13:18:48.28:KsdrIF6a こんな感じであっさりとできました。すげー! keysはSSLの証明書ファイルとかです。 ex = require('express'); app = ex(); ... some js ... sv = https.createServer(keys, app).listen(port, bind); io = require('socket.io').listen(sv); ありがとうございました!! : [] 2017/04/01(土) 17:53:04.82:y/KMs3zV Node.js@Windowsです。 spawnを使ってexpectのようなことってできないんでしょうか? 例えば以下のように、stdoutに「Y/N」が出力されたら「y」と答えるようなことがしたいのですが…。 const spawn= require('child_process').spawn; const de = spawn('del', [ '/p', 'foo' ], { shell: true }); de.stdout.on('data', (data) => { if (data.toString().indexOf('Y/N') !== -1) de.stdin.write('y'); // ??? }); : [sage] 2017/04/02(日) 01:44:35.81:FpSI1UN2 next.jsってjsコードをクライアントでもサーバでも動くように書かないとだめなの? 例えば以下のような条件を入れてサーバとクライアントで処理を分岐することはできるけど typeof window === `undefined` そもそもimportについてはどうすればいいの? fsがないって怒られんるだけどサードパーティのライブラリが依存してたら使わなくてもエラーになっちゃうし。 : [sage] 2017/04/02(日) 17:23:56.57:FpSI1UN2 react naitive躓きました react-naitive init hogehoge ってやってプロジェクト作ろうとするとdoneと表示されてもプロンプトが戻ってこない。 nodejsはanyenvを使って最新を入れてます。 ctrc+cで無理やり戻すと当然プロジェクトはできていないので何もできない。 : [sage] 2017/04/02(日) 19:13:35.17:FpSI1UN2 自己解決しました : [sage] 2017/04/02(日) 20:42:34.04:FuCfSbZi nodeたのしんでる? : [sage] 2017/04/02(日) 22:53:02.06:0PLfOFLS まだ勉強し始めなんだけどコールバック地獄を抜けたらPromiseラップ地獄が始まってる気がするゾ : [sage] 2017/04/02(日) 23:49:36.07:jk9X28Xe その先にはasync地獄が待ってるから早く進め : [sage] 2017/04/02(日) 23:55:00.71:TvISwdcG Rxで脱出できるよ : [sage] 2017/04/03(月) 00:08:15.13:pMsTDita RxのAsyncSubjectってPromiseと比較してどんなメリットがあるんだ? async/awaitで使えないから不便と思う : [sage] 2017/04/03(月) 00:37:17.85:UPqV6+1g callback地獄なんか近づかずにpromiseとasync await始めたほうがいい。 promise抑えてからじゃないとasync await使えないから、promiseは必須な : [sage] 2017/04/03(月) 00:44:19.88:UPqV6+1g rxはreact nativeあたりと組み合わせるとどうなんだろうね? coldとhotって概念があったり意外とつまずきやすい。全てがstreamという概念は素敵そうだけどreactとうまく組み合わせられるんか? : [sage] 2017/04/03(月) 00:47:12.84:YqyQZW/v async使い出すとやってくるtry catch地獄 : [sage] 2017/04/03(月) 00:50:42.75:CTM8h4Rc コールバック地獄って無名関数でしか渡してないから問題なだけじゃね? : [sage] 2017/04/03(月) 01:10:13.39:MrxLrKt6 fs.readdir(source, function(err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(function(filename, fileIndex) { console.log(filename) gm(source + filename).size(function(err, values) { if (err) { console.log('Error identifying file size: ' + err) } else { console.log(filename + ' : ' + values) aspect = (values.width / values.height) widths.forEach(function(width, widthIndex) { height = Math.round(width / aspect) console.log('resizing ' + filename + 'to ' + height + 'x' + height) this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) { if (err) console.log('Error writing file: ' + err) }) }.bind(this)) } }) }) } }) : [sage] 2017/04/03(月) 03:42:09.46:XYXk6jFX React + RxJSで興味ある人はこの辺でも見て ttp://jump.5ch.net/?http://rudiyardley.com/redux-single-line-of-code-rxjs/ ttp://jump.5ch.net/?https://www.slideshare.net/jayphelps/rxjs-redux-react-amazing : [sage] 2017/04/03(月) 03:53:47.87:CTM8h4Rc fs.readdir(source, func1) var func1 = function(err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(func2) } } var func2 = function(filename, fileIndex) { console.log(filename) gm(source + filename).size(func4) } var func3 = function(width, widthIndex) { height = Math.round(width / aspect) console.log('resizing ' + filename + 'to ' + height + 'x' + height) this.resize(width, height).write(destination + 'w' + width + '_' + filename, function(err) { if (err) console.log('Error writing file: ' + err) } var func4 = function(err, values) { if (err) { console.log('Error identifying file size: ' + err) } else { console.log(filename + ' : ' + values) aspect = (values.width / values.height) widths.forEach(func3) }.bind(this)) } } : [sage] 2017/04/03(月) 15:48:27.07:UPqV6+1g redux学習中だけどRxJSと組み合わせると何が幸せになるん? : [sage] 2017/04/03(月) 19:33:34.98:963+qoSh RPとFRPの区別がついてない奴を馬鹿にして粋がれるとか : [sage] 2017/04/03(月) 21:16:06.10:XYXk6jFX RxJSのメリットは非同期の扱いを楽にしてくれること RxJSとreduxを組み合わせるのは 一番よく使われてるフレームワークにのっかることで Redux向けのツール類やノウハウなんかでそのメリットを享受するため の1つ目のリンクはRxJSだけでreduxと同じようなことをやってる例 2つ目は組み合わせて使う例 : [sage] 2017/04/03(月) 21:22:08.20:MrxLrKt6 少し訂正。問題は適切な名前をつけるのが難しいところにあると思うね。 var func1 = function(err, files) { if (err) { console.log('Error finding files: ' + err) } else { files.forEach(func2) } } var func2 = function(filename, fileIndex) { console.log(filename) gm(source + filename).size(func3) } var func3 = function(err, values) { if (err) { console.log('Error identifying file size: ' + err) } else { console.log(filename + ' : ' + values) aspect = (values.width / values.height) widths.forEach(func4.bind(this))) } } var func4 = function(width, widthIndex) { height = Math.round(width / aspect) console.log('resizing ' + filename + 'to ' + height + 'x' + height) this.resize(width, height).write(destination + 'w' + width + '_' + filename, func5) } var func5 = function(err) { if (err) console.log('Error writing file: ' + err) } fs.readdir(source, func1) : [] 2017/04/03(月) 23:44:03.74:1+ofpVMn electronというかjsでデスクトップアプリって流行ると思いますか? : [sage] 2017/04/03(月) 23:49:14.81:fhkbvCOs そもそもデスクトップアプリが今日日流行らんような : [sage] 2017/04/04(火) 00:42:57.27:P+kSkPRB 非同期の扱いを楽にするって観点ならasync awaitで必要十分じゃないか。 RxJSならではのメリットを知りたい。 : [sage] 2017/04/04(火) 00:47:36.02:P+kSkPRB reactnativeでデスクトップアプリが作れるようになったほうがいいと思うけどね。性能面でも。 electronで結構キラーアプリは出てるから使えて損はない。 chromeOSが復活しないかな。 アプリごとにchromeが中で動いてるのって無駄な気がするんだよね : [sage] 2017/04/04(火) 01:25:34.52:K8Tf42DL WEB+DB vol.97 の特集が、React WEB+DB vol.94 の特集が、Kotlin, Electron : [sage] 2017/04/04(火) 01:35:05.25:y0lCbigz の2番目のリンク先を見て : [sage] 2017/04/04(火) 03:08:30.98:QcgfrUUh RxJSをみてるとJavaScriptにPromise入れるのは もっと慎重にやるべきだったと思うね : [sage] 2017/04/05(水) 00:42:45.34:wcVK36T3 reduxは非同期処理入れるのにミドルウエアが必要でその中の候補としてrxjsがあるってこと? 非同期処理は多用するんだからミドルウエア無しで対応しろよ : [sage] 2017/04/05(水) 01:59:50.23:T1xSqOuQ 違うyo : [sage] 2017/04/05(水) 02:29:41.05:kU4Jv4wh 非同期の方法がたくさんあるからビルトインにしてないんだろ RxJSが使いたい→redux-observable generaterが使いたい→redux-saga Promiseが使いたい→redux-promise 好きなのを選べる : [sage] 2017/04/05(水) 09:43:00.09:ObdYHa+p rxは嫌いな奴は本当に嫌いなのでデフォルトにすると人死にが出る : [] 2017/04/05(水) 18:20:05.80:6P7JyL2t 猫は炬燵で丸くなる : [sage] 2017/04/05(水) 20:06:36.76:zmBGqA0p ReactとRx同時に使ったら、サイズが大きいのが気になりませんか? : [sage] 2017/04/06(木) 14:59:39.46:TGfMJct9 かなり慎重だったよ 当初提案のメソッドや機能も大分削ぎ落とされたし : [sage] 2017/04/06(木) 17:23:22.82:udT44U5Z Rxってコンセプトがシンプルなのにいざ使おうとするとライブラリのインターフェースは複雑で、シンドってならない? : [sage] 2017/04/06(木) 20:16:24.28:rNIgAdOn でも結局Observableになるんだろ? : [sage] 2017/04/06(木) 20:20:21.49:rNIgAdOn Fetch APIがPromiseベースなので、処理がキャンセルできなくて困ったしな。 Fetch APIの戻り値はObservableに変更すべき。 : [sage] 2017/04/06(木) 20:23:20.40:rNIgAdOn jQueryとPromise(Deffered)で関数型インターフェースには慣れていたから、 イベントでフィルタできる新しいメソッドが追加されたぐらいにしか思ってないよw : [sage] 2017/04/07(金) 00:20:55.58:W6kcLwca おいおい大丈夫か?? PromiseはPromiseで、ObservableはObservableで必要だよ いいか? ObがあればPrが要らないと言うのは ジェネレーター関数があれば関数が要らないと言ってるのと同じことだぞ : [sage] 2017/04/07(金) 01:10:39.92:muVw6N7l 配列があればnumberはいらない、的な : [sage] 2017/04/07(金) 01:27:24.68:E9+XPTIr 関数とジェネレータ関数の関係とはちょっと違う気がするが まあ言いたいことはわかる : [sage] 2017/04/07(金) 01:53:54.75:feQdKcc1 説得力ゼロだなw ObservableがあればPromiseはいらない。 ObservableにPromiseの機能が含まれてるから : [sage] 2017/04/07(金) 02:08:35.05:muVw6N7l promiseは単発、observableは連発 連発は単発を包含してるが最適とは限らない : [sage] 2017/04/07(金) 02:12:06.86:xCtKbZyH completeしか発生しないObservable = Promise そもそも非同期=時間がかかる処理なのだから、 必然的に途中でキャンセルしたくなるのが普通。 キャンセルができない時点でPromiseは片手落ち : [sage] 2017/04/07(金) 02:20:36.15:MrQDMpDH promiseは非同期処理の約束手形observableはオブジェクトの値の変化を検知する仕組み。 なんでどっちかしかいらないって話になるのか : [sage] 2017/04/07(金) 02:25:12.94:MrQDMpDH Netflixとかなら動画を取り扱うからキャンセルできたほうがいいけど、 他の案件でも必要か?適材適所でしょう。 なんでもストリームとして取り扱うRxは宣言的な記述になるけど、 それが読みやすいかというと、 俺はpromise とasync awaitの方が読みやすい。 : [sage] 2017/04/07(金) 02:48:44.21:ZOMGhg3k RxのObservableと廃案になったObject.observeが混在してる件 : [sage] 2017/04/07(金) 02:51:12.64:ZOMGhg3k 多機能があれば単機能はいらない そんなふうに思って(ry : [sage] 2017/04/07(金) 03:29:00.04:MrQDMpDH えっ。違うのかそれ。解ってなかった。すまぬ : [sage] 2017/04/07(金) 03:40:41.83:7WaVyHOC RxのObservableはnodeのReadable Stream (flowing mode) みたいなもん : [sage] 2017/04/07(金) 07:20:07.56:Bfn8G5Of someがあればeveryは要らないって話? : [sage] 2017/04/07(金) 09:40:29.94:xCtKbZyH 分かってなかったのかw 通りで話が噛み合わないわけか。 ObservableはPromiseの改良版 : [sage] 2017/04/07(金) 09:44:07.30:xCtKbZyH 違う。Promiseで十分と思えるような作業であっても 実際は、処理のキャンセルや進捗状況の把握が必要になる。 だからPromiseの仕様では不十分という話 : [sage] 2017/04/07(金) 10:06:57.71:NIm6zjXF 必要になるとは限らない そもそもキャンセルの方法がないものも多い : [sage] 2017/04/07(金) 10:50:07.00:a3tdoMh+ promiseでは全てのケースをカバーできない→正しい だからpromiseはいらない→間違い : [sage] 2017/04/07(金) 11:38:12.33:MrQDMpDH でもPromiseだからこそasync awaitを駆使して同期プログラミングっポイ見た目でかけるわけで。 そこはRxではむりでしょ?そもそも宣言的な記述なウリなんだろうけども。 まぁ結局一人で開発だったらドッチもあってもいいけど 複数人プロジェクトだとRxは使いづらいわな。 : [sage] 2017/04/07(金) 11:54:59.99:5+HcG4Iv Observeを束ねて全部処理が終わったら終了処理をしたいんだけど、どうやったらいいんだろう : [sage] 2017/04/07(金) 12:16:24.62:dJwAVcRG 全部zipすれば : [] 2017/04/07(金) 12:28:20.19:Fuvg5lKD Httpリクエスト…Promise websocket…Observable : [sage] 2017/04/07(金) 13:19:55.32:MrQDMpDH んでRx使ったやつで良いプロジェクトってあるの? RxSwift使ってたときは良いプロジェクトが見当たらなくて 汚い設計になってしまった。 : [] 2017/04/07(金) 13:59:32.72:0MVaqOPa これな : [sage] 2017/04/07(金) 14:44:51.56:PRiizMve 要る要らないは個人の考えや開発スタイルによるものだしなぁ : [sage] 2017/04/07(金) 17:45:00.18:7PhLdANq やってみる : [sage] 2017/04/07(金) 18:11:21.26:W6kcLwca つうかキャンセルだけならCancelablePromise案もあるし、 実際はキャンセルが内蔵されていると不都合があるのでCancelToken案のように 仕組みを外部に用意するのがベストだからPromiseは今のままで良いと思うよ あと因みに例で挙がってたfetchはキャンセル出来る。 キャンセルする必要があるような重たいファイルをDLするときは Stream使うだろうから、その場合rs側にcancelメソッドがある。 : [sage] 2017/04/07(金) 18:13:30.99:W6kcLwca 逆に言うと、もしfetchがプロミスレベルでキャンセルに対応した場合、 こういうStream何かとの兼ね合いはどうするのかって話になる。 自動でrs.cancelが呼ばれるようにするのか、それともclosed例外吐くようにするのか。 やっぱりCancelTokenのように外側から突き刺す形が一番良いよ。 : [sage] 2017/04/07(金) 21:38:04.53:M/7BCwbh なんかの勉強会でcancelable promiseの標準化は頓挫したと聞いた : [sage] 2017/04/07(金) 21:50:33.96:M/7BCwbh 終了してた ttp://jump.5ch.net/?https://github.com/tc39/proposal-cancelable-promises : [sage] 2017/04/07(金) 23:33:00.86:xCtKbZyH promiseでは全てのケースをカバーできない→正しい だからpromiseはいらない→そんなこと言ってない Observableでpromiseのケースをカバーできる→正しい だからpromiseはいらない→こう言っている : [sage] 2017/04/07(金) 23:33:50.39:xCtKbZyH > なんかの勉強会でcancelable promiseの標準化は頓挫したと聞いた そしてObservableの標準化が進んでいる : [sage] 2017/04/07(金) 23:52:45.97:OQDmCCRm promiseで十分なケースでわざわざobservable使うメリットあんのかよ : [sage] 2017/04/07(金) 23:55:32.50:xCtKbZyH promiseとobservableはインターフェースが違うから互換性がない。 だからライブラリを作るならば両方に対応しなければならない。 またtoPromise()などでobservableからPromiseに変更するなんて 面倒なことをしなければならない場合もある。 promiseとobservableの両方に対応しなくて良いのがメリットだ : [] 2017/04/07(金) 23:57:21.56:D3WCz+HD そこはキャンセルしてたでしょ! : [sage] 2017/04/08(土) 00:03:38.77:x261ON0r は? それならobservableなんて対応しなけりゃいいだけじゃねーか なんで両方に対応しなきゃいけねーんだよ : [sage] 2017/04/08(土) 00:07:31.07:Ibdd+rg/ 殆どの要件でcancelは必要だから結局Fetch APIみたいに cancelするための別の仕様が出てくる。 だから最初からobservable一本にしておけばいいという話 急ぎすぎてPromiseを標準化してしまったのは黒歴史 Promiseを使ったFetch APIも黒歴史 : [sage] 2017/04/08(土) 00:15:58.80:cNZiPnVn fetchのことしか考えてねーのかよ fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ fetchが黒歴史なのは正しい promiseじゃなくstreamだろってsubstackも突っ込んでた : [sage] 2017/04/08(土) 00:23:48.13:Ibdd+rg/ > fsの非同期apiはキャンセル不可だがこれobservableにする意味あんのかよ あると思うけど? 俺は200MBを超えるファイル×数十個を "並列で" サーバーに送信したことがあるのだが、 もしメモリに全部読み込んでいたら、マシンによってはメモリ不足になっただろう。 だから特定のチャンクごとに読み込んで送信していたわけだが、当然キャンセルもしたいし どのファイルが何%処理完了したかの状況も表示したくなる。 そんときはループを使って、チャンクごとにデータを読み取って処理したわけだが、 もしfsがobservableであれば、メモリに全部読み取ることなく 一定のチャンクごとに処理する簡単な方法も提供されただろう。 : [sage] 2017/04/08(土) 00:28:43.38:Ibdd+rg/ setTimeoutなんかもclearTimeoutみたいにキャンセルするメソッドがあるし、 時間がかかるからこそ非同期にしているわけで、時間がかかる処理を キャンセルしたいことがありえないなんてAPIが本当にあるのだろうか? : [sage] 2017/04/08(土) 00:35:11.20:cNZiPnVn それはnodeじゃ昔からstreamでやってるやつだがその話じゃねーよ 今のnodeではcallbsckを取るfs.fstatとかの話だ : [sage] 2017/04/08(土) 00:37:42.94:Ibdd+rg/ 俺が話をしているのはブラウザ版だ nodeの話はしてねーよw : [sage] 2017/04/08(土) 00:38:09.39:cNZiPnVn つかてめーnodeやってねーだろ : [sage] 2017/04/08(土) 00:38:37.44:cNZiPnVn スレ違い死ね : [sage] 2017/04/08(土) 00:38:44.04:Ibdd+rg/ そういやブラウザではFile APIだったなw : [sage] 2017/04/08(土) 00:39:23.93:i0oWHzgI 時間がかかる処理をキャンセルじゃなくて、待つのをキャンセルするじゃね? : [sage] 2017/04/08(土) 00:44:38.31:Ibdd+rg/ それは言い方の違いでしかないよ nodeでcallbackを使うやつの話であれば、そもそもなんで nodeはPromiseを使わなかったのか?の話になるだろ。 それはcallbackを使う方が速いのと、 何度もイベントを発生する必要があるものがあるからだろうな。 つまり、Promiseでは要件に耐えられないから Promiseではなくcallbackを使ったんだよ。 fs.fstatでは何度もイベントが発生するわけじゃなくても、 何度もイベントが発生することが可能なcallbackを使っている。 それは一度しかイベントが発生しなくてもPromiseではなく Observableを使ってよいのと同じ考えだ。 : [sage] 2017/04/08(土) 00:49:22.15:cNZiPnVn promiseの仕様がいつできたかも知らないのかよ nodeはその前からあるんだよ スレ違い野郎は消えろ : [sage] 2017/04/08(土) 00:51:43.82:Ibdd+rg/ ttp://jump.5ch.net/?http://stackoverflow.com/questions/30299613/why-does-nodejs-not-use-promise-for-the-readfile-api Node’s early iterations used Promises in its nonblocking API. However, in February 2010, Ryan Dahl made the decision to switch to the now-familiar callback(err, results...) format, on the grounds that Promises are a higher-level construct that belongs in “userland.” 英語わかるか? Nodeは最初Promise使っていて、callbackに変えたって書いてあるんだぞ : [sage] 2017/04/08(土) 00:54:37.05:Ibdd+rg/ (JavaScriptの)Promiseはいつできたんだっけな? 前に調べたんだが忘れたな。 ここを見る限り2009年なのは間違いないが。 ttp://jump.5ch.net/?http://wiki.commonjs.org/index.php?title=Promises&oldid=516 : [sage] 2017/04/08(土) 00:55:18.13:cNZiPnVn そのpromiseはes6のpromiseとは別物だ : [sage] 2017/04/08(土) 00:56:40.01:cNZiPnVn nodeでobservableに相当するのはstream fs.fstatはstreamを使わない それが答え 以上 : [sage] 2017/04/08(土) 01:03:43.79:Ibdd+rg/ それは当たり前だが、Promiseを捨てた理由は同じだ fs.fstatはPromiseを使わない。 それが答えだろう?w : [sage] 2017/04/08(土) 01:05:41.12:Ibdd+rg/ > nodeでobservableに相当するのはstream ちなみに、streamを知らない人に説明しておくと、 streamが使ってるのはPromiseではなくcallback : [sage] 2017/04/08(土) 01:10:44.04:cNZiPnVn promiseを使わない理由がキャンセルできないからじゃないのは分かってんのかよ システムコールレベルでキャンセルする方法がないのにobservableにするメリットあんのかって問いに答えてねーだろ nodeは単発にcallback、連発にstreamで使い分けてる 大は小を兼ねるとは限らないんだよ : [sage] 2017/04/08(土) 01:24:00.13:Ibdd+rg/ システムコールレベルって何の話? Win32APIとかレベルの話してるの? 独自用語で話すんなよ : [sage] 2017/04/08(土) 01:25:28.87:Ibdd+rg/ ふむ Windows Vista での Win32 I/O キャンセル サポート ttp://jump.5ch.net/?https://msdn.microsoft.com/ja-jp/library/aa480216.aspx : [] 2017/04/08(土) 01:27:17.78:GAoRTfTW 何やこいつ キャンセルする必要がない単発はPromiseでいいし、キャンセルが必要か連発ならobs使えばいいって話だろ しゅうきょーせんそーかな? : [sage] 2017/04/08(土) 01:28:10.51:Ibdd+rg/ 単発だからってキャンセルする必要が無いことにはならないんだが? 言ってる意味わかる? : [sage] 2017/04/08(土) 01:31:42.23:Ibdd+rg/ Observableが得意なのはキャンセルだけじゃなくて 並列処理もなんで、fs.fstatを並列で実行したいときにも 簡単にかけるというメリットも有るな : [sage] 2017/04/08(土) 01:33:57.12:i0oWHzgI いくら君らが言い合っても、現実はかわらないでしょ? 今ある仕様がすべてで文句かるなら他の言語つかいなよで終わる話しじゃないの? 生産性のない答えもない事で争って暇すぎるだろ : [] 2017/04/08(土) 01:36:49.14:GAoRTfTW 「キャンセルする必要がない場合は」 よく嫁 : [] 2017/04/08(土) 01:37:27.20:GAoRTfTW こいつもしかしてIT速報の管理人か? 転載禁止やぞ。対立煽りはNG : [sage] 2017/04/08(土) 01:45:22.63:w3FPiolV スプーンとお玉の関係に似てる。 ジャムをすくうのにお玉を使ったら逆に不便だろ。そこは適切にスプーンを使え。 キャンセル処理がPromiseだと絶対無理というわけでもないし、Rxが必要とも思えないプロジェクトで無理やりRxを使う必要もない。 : [sage] 2017/04/08(土) 01:49:13.35:Ibdd+rg/ > 「キャンセルする必要がない場合は」 それはまずないだろうねw : [sage] 2017/04/08(土) 02:25:27.18:FnclMLRN レスの文体からして前からJSスレに常駐してる荒らしでしょ コピペブログ管理人もやってたのかは知らんが : [sage] 2017/04/08(土) 02:31:02.63:hy422I1n システムコールってwikipediaにもエントリあるのに unix/linux系はダメなwindows君か どうりでダメなわけだ : [sage] 2017/04/08(土) 02:35:20.51:Ibdd+rg/ 分かってないなw なんでシステムコールの話がでてくるんだってことだよ。 nodeのAPIと、OSのシステムコールを 一対一で直接結びつける必要はないっつーの nodeのAPIは単純な一命令でも、内部の実装は 何回もシステムコール呼んだって良いわけだ。 それが分かってないから、お前はシステムコールが キャンセルできるかどうかなんて言い出したんだろ こっちは全部お見通しだってーの : [sage] 2017/04/08(土) 05:35:10.56:iZgQ7lMc fetchはキャンセルできる必要があるが、 fetchの戻り値をObsevableにするのは駄目。 Obsevableって一様な幾つものデータを受け取るのに向いているので fetchのように幾つかの段階で全然違うものが帰って来るのには向いていない。 単純に、Responseにabortメソッドを付けるのが良いと思う 勿論途中のStreamをObsevableにするのはとても良いと思うけど、 それを含んだ全体をするのはおかしい。 : [sage] 2017/04/08(土) 05:38:38.21:iZgQ7lMc というか考えたら分かると思う。 キャンセルしたいのはfetchではなく、DLなのだから。 やっぱりCancelToken以外の解は無いと思うよ。 : [sage] 2017/04/08(土) 17:16:04.09:uEU+oXmi イベントでいいじゃんかよ、もう : [sage] 2017/04/08(土) 17:29:52.27:py60arCP > キャンセルしたいのはfetchではなく、DLなのだから。 fetchはデータ送信もするんだが? その場合キャンセルしたいのは何だよ : [sage] 2017/04/08(土) 17:40:38.81:py60arCP > 単純に、Responseにabortメソッドを付けるのが良いと思う fetchの戻り値はpromiseであってresponseではない。 responseはpromiseのthenの時に渡される。 promiseのthenが呼び出されるのはfetchの処理が完了した後。 つまりresponseを取得したとき=fetchし終わった時に abortするのは遅すぎる : [sage] 2017/04/08(土) 18:46:58.17:1OsO7EoR なにを見通してるのかさっぱり分からんがnodeは低水準のapiを提供するものだ そうすれば複数のシステムコールを組み合わせた高水準apiはユーザーレベルのライブラリで実現できる だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない : [sage] 2017/04/08(土) 18:50:52.30:1OsO7EoR 仕様にはstreamが追加されてる ttp://jump.5ch.net/?https://fetch.spec.whatwg.org/#streams : [sage] 2017/04/08(土) 18:56:59.44:py60arCP > nodeは低水準のapiを提供するものだ どこにそんなことが書いてあるのか? nodeの立場はブラウザと同じだ。 JavaScriptの実行環境だ。 お前の理屈だと、ブラウザは低水準のAPIを提供するものということになる。 : [sage] 2017/04/08(土) 18:58:44.31:py60arCP > だからfsモジュールは意図的にposixの薄いラッパーになっていてキャンセルはない じゃあ、例えば、fs.lstatSync は posixのどの薄いラッパーなのか言ってみ : [sage] 2017/04/08(土) 19:01:09.86:py60arCP > 仕様にはstreamが追加されてる どっちみち仕様を加えるなら Observableにした方がいいだろうな。 : [sage] 2017/04/08(土) 19:02:35.33:py60arCP しかもPOSIXは非同期I/Oをキャンセルする機能あるじゃんwww ttp://jump.5ch.net/?https://linuxjm.osdn.jp/html/LDP_man-pages/man3/aio_cancel.3.html aio_cancel - 完了していない非同期 I/O リクエストをキャンセルする POSIX.1-2001, POSIX.1-2008. : [sage] 2017/04/08(土) 19:22:58.68:+j3lf9vK ttp://jump.5ch.net/?https://nodejs.org/api/fs.html File I/O is provided by simple wrappers around standard POSIX functions. lstat posix aioはほとんどのosで実装されてないしnodeでもサポートしてない : [sage] 2017/04/08(土) 19:25:59.41:+j3lf9vK 細かく言うとposix aioはほとんどのos kernelで実装されてない gnuがユーザーレベルのライブラリとして実装したものがあるだけ : [sage] 2017/04/08(土) 19:34:34.87:+j3lf9vK manだとlstat(2)に対してのaio_xxx(3)なのでシステムコールじゃないことが分かる : [sage] 2017/04/08(土) 19:36:55.48:py60arCP lstatは非同期じゃないぞw : [sage] 2017/04/08(土) 19:39:34.36:+j3lf9vK fetch apiが返すpromiseはfetchが完了してからresolveするわけではない 完了してからresolveするのはres.text()が返すpromise : [sage] 2017/04/08(土) 19:40:34.49:+j3lf9vK のlstatSyncは非同期じゃない : [sage] 2017/04/08(土) 19:43:59.84:py60arCP 逆だったなw fs.lstatの方だ : [sage] 2017/04/08(土) 19:45:48.32:+j3lf9vK lstat : [sage] 2017/04/08(土) 19:46:03.01:py60arCP > fetch apiが返すpromiseはfetchが完了してからresolveするわけではない 完了してからだよ。正確にはレスポンスが返ってきてから、 データの受信が完全に完了してからではない。 でないと、Response.statusが取れるわけがないだろう? : [sage] 2017/04/08(土) 19:46:40.03:py60arCP それではシステムコールにあるPromise相当のものは何?w : [sage] 2017/04/08(土) 19:51:37.12:+j3lf9vK そう、だから完了してからじゃないじゃん 最初のチャンクが届いたらresolveする 「fetchの処理が完了した後」は明らかな間違い : [sage] 2017/04/08(土) 19:53:33.42:+j3lf9vK システムコールにはない 単にワーカースレッドでlstat呼ぶだけ : [sage] 2017/04/08(土) 19:53:53.72:py60arCP Fetchの処理はリクエスト投げてレスポンス戻すところまでだよ。 ダウンロードが終了するまでの話は最初からしてない で、Fetchのキャンセル(thenが発動する前)はPromiseでできるの? できないでしょ? そこに新しい仕様が必要ならObservableを使えば良いわけさ。 : [sage] 2017/04/08(土) 19:54:42.49:py60arCP だろう? Promiseを含めて「システムコールの軽いラッパー」と お前が呼ぶならば、Observableを含めたって「システムの軽いラッパー」になる : [sage] 2017/04/08(土) 20:03:11.46:0e5YIioE fetch apiがpromiseベースでバカなのは何年も前から言われてるし俺も言ってきたからそこに反論する気はない : [sage] 2017/04/08(土) 20:05:16.72:0e5YIioE キャンセルできなくて単発で結果が決まるシステムコールのラッパーにpromiseよりobservableを選ぶメリットは? : [] 2017/04/08(土) 20:20:53.33:cXe/TGOq システムコールとライブラリの違いをわかってないやつがいそうだから、用語をシステムAPIかOSのAPIで統一してくれ : [sage] 2017/04/08(土) 20:27:37.55:py60arCP 並列処理がしやすいから : [sage] 2017/04/08(土) 20:31:19.27:iZgQ7lMc 何度も説明してるが、キャンセルは必要だが、Observableはそぐわない CancelTokenのようなものじゃないと実際齟齬が出るし その流儀に則って真似して使いやすいように色んなAPIを実装していくのは大変 : [sage] 2017/04/08(土) 20:33:09.43:py60arCP 俺がobservableの話で並列処理の話を始めると すぐにキャンセルの話に変えるやつってなんなんだろうねw わざとなのかな? : [sage] 2017/04/08(土) 20:38:17.35:FGB2+VgV 正しくは並行処理だが常に必要となるわけではない 必要ならpromiseをobservableでラップすればいいだけ そのために無駄に高機能なapiを土台にするメリットはない シンプルの上にリッチを乗せることは有意だが逆は無意味だ : [sage] 2017/04/08(土) 20:40:15.25:py60arCP > 正しくは並行処理だが常に必要となるわけではない 絶対に必要ないならいらんだろうさ 常に必要となるわけではない=必要な場合もある。 ならば同じやり方でやったほうが楽 : [sage] 2017/04/08(土) 20:49:17.82:FGB2+VgV 長さ1の配列があればスカラ値の変数はいらない let x=1 let y=2 let z=x+y これは配列が必要な場合と同じやり方で let x=[1] let y=[2] let z=[x[0]+y[0]] ってやった方が楽 なるほど : [sage] 2017/04/09(日) 16:42:26.31:4FESG0wM なるほどじゃねぇよ : [sage] 2017/04/09(日) 17:00:22.44:ZPMPIHcF Observableだけでなく、jQueryもLodashもそうなんだけど、 配列をスカラのように扱うことができるんだよね。 1と2以上を同一化して処理できる。 例えばquerySelectorAllは配列を返す。$()だとスカラ値を返す どちらもセレクタから複数の要素を検索しているようだけど、この違いによって querySelectorAllではループ処理が必要になるが、jQueryではループ処理が不要になる Promiseも単数だから並列しようと思ったら配列が必要になってループも必要になる つまりでいう後者の書き方 Observableであれば単数も複数も同じように処理できるから、の前者の書き方で 複数の対象を単数と同じ書き方で並列に処理できる。 : [sage] 2017/04/09(日) 18:21:09.53:c0gwQMp6 querySelectorAllが配列を返すなんてとんと知りませんでしたわ : [sage] 2017/04/09(日) 19:39:40.08:FYNHGER+ そもそも「配列」という言葉の定義がない 因みにNodeListは@@iterator対応の予定がずっとある : [sage] 2017/04/09(日) 20:58:23.64:04OXxo7q jQueryしか使わないゆとりだから下のレイヤーのことは知らないんだろ : [sage] 2017/04/09(日) 21:08:17.95:qkkzIUk4 下層民同士仲良くしなさいよ〜 粛清すっぞ : [sage] 2017/04/10(月) 16:04:40.78:/vWjJFQd 一年に1,2回はtoArrayをどうするかの話題で盛り上がるよね Array、TypedArray、@@iterator、length、Array.isArrayとか沢山楽しい話できるよね : [sage] 2017/04/11(火) 15:44:57.90:EI2QNfVc キャンセルトークン方式のプロポーザル ttp://jump.5ch.net/?https://github.com/tc39/proposal-cancellation : [sage] 2017/04/11(火) 20:28:11.22:rWanRa9I ttp://jump.5ch.net/?https://azu.github.io/slide-what-is-ecmascript/slide/12.html Stage 0: Strawman アイデア から抜け出したら、もう一回知らせてくれ せめてStage 3にならなければ評価する価値もない : [sage] 2017/04/11(火) 20:53:27.45:CJtRplzd stage1のobservableも評価する価値がない よってこの話題完全終了 : [sage] 2017/04/11(火) 20:56:52.33:3Yv+2Fi9 50歩100歩ってやつだな。 差は2倍もあるということだ : [sage] 2017/04/11(火) 21:09:11.09:62uXcToV デバッグ用にconsole.logで出力を行ってるんだけど、foreverで起動するときはどこにも出力されてないって事でいいのかな? : [sage] 2017/04/11(火) 21:46:41.59:fGKCOXVl 今日追加されたのより一歩進んでたって話にならんよ : [] 2017/04/12(水) 12:43:00.43:rqT+n0Ti ゴールまで千里の道というオチですね : [sage] 2017/04/12(水) 16:04:44.52:WRJ4LE6o Optionsを観ると以下のようになってる。 -o OUTFILE Logs stdout from child script to OUTFILE -e ERRFILE Logs stderr from child script to ERRFILE : [] 2017/04/16(日) 06:10:01.13:JlKTjebd ln -s -f /dev/null /dev/stdout : [sage] 2017/04/21(金) 22:47:20.35:vwhSF093 Converting circular structure to JSON at JSON.stringify 自分なりにdeepCopyつもりのコードで 上記エラーが出た場合に、原因なコードを簡単に見つける方法ってどんなのがありますでしょうか? : [sage] 2017/04/22(土) 11:59:52.05:WQjYmpaa ttp://jump.5ch.net/?http://stackoverflow.com/questions/14962018/detecting-and-fixing-circular-references-in-javascript : [] 2017/04/25(火) 16:04:38.46:+ad05VVs circular structur 原因書いてますやん : [sage] 2017/04/26(水) 14:11:46.04:mOputr8e まさにピッタリの解説でした。ありがとうございました。 : [sage] 2017/04/28(金) 08:36:18.97:NZ0i2p+n 循環参照を持っていてもちょっと関数噛ましてテーブル2つに変換すればJSONに落とし込むことは可能だよ : [] 2017/04/28(金) 12:43:11.19:TC+lQYaW 以下のように表記を統一するクラス(またはデータベース)でありますでしょうか? 'php' => 'PHP' , 'perl' => 'Perl' , 'javascript' => 'JavaScript' , : [sage] 2017/04/28(金) 13:10:12.31:ytJUGaM1 自然言語処理用でいいの最近見たけど忘れた : [] 2017/04/28(金) 15:01:07.81:TC+lQYaW 思い出してください w 「自然言語処理 "単語の正規化" 」でググってみましたがズバリ思っているようなのはヒットしませんでした。 どなたか是非! : [sage] 2017/04/29(土) 05:10:42.30:GfKuDHiR つうか全部小文字の単語を直したいだけの辞書なら 通常の固有名詞辞書にちょっと手を加えればいいだけじゃん : [sage] 2017/04/29(土) 11:53:18.38:R/nsoadB freetaggerとか昔使ったことあるけど、javaScriptなんかの表記の統一は辛かったような。 isDisabledのiはどうするのとか、結局プロジェクト向けのスクリプト書いた気がする。 : [sage] 2017/04/29(土) 12:10:57.72:xHNM2Zad 結局はそうだよな 完全な答えがあるものじゃないし : [sage] 2017/05/03(水) 23:37:41.27:jNZhewdQ package.jsonの"scripts"に書いたコマンドをnpm runで実行する際はnode_modules/.bniがPATHに 追加されますが、これ以外に任意のディレクトリをPATHに追加する方法ってあるでしょうか。 : [sage] 2017/05/03(水) 23:44:19.89:/FJiuNZS 実行するコマンドの前で設定するとか : [] 2017/05/04(木) 01:58:16.57:arHoxXIF windowsだからpythonのpip以上にnpm厄介だな : [sage] 2017/05/04(木) 11:09:36.82:l8/ufUYV ありがとうございます。でもwindowsだとうまくいかないなぁ。 "somecommand": "set PATH=%PATH%;<パス> && <コマンド>" #<コマンド>は内部でPATH環境変数を使用するスクリプトで、これ自体にはPATHが通っている。 &&の両側のコマンドが同時に立ち上がるんだから当然と言えば当然か。 でもコマンドプロンプトで順次実行する&に変えても結果は同じだった。 bashのexportみたいなのが使えればいいんだけど。 : [sage] 2017/05/04(木) 11:15:14.24:rRUt3/Oc めんどくせぇなぁ、 そのためのnpmライブラリでもあんだろ : [sage] 2017/05/04(木) 14:13:58.13:PLZ28pn/ cross-envが定番 ttp://jump.5ch.net/?https://www.npmjs.com/package/cross-env : [sage] 2017/05/04(木) 14:31:06.73:lWCYxa45 他にnpm-run-allとかrimrafとかあればwinでも動くnpm scriptsが書ける : [sage] 2017/05/04(木) 15:13:22.65:l8/ufUYV ありがとうございます。cross-envでいけました。 : [sage] 2017/05/06(土) 06:40:04.53:jJg9RTT4 カオスですね : [] 2017/05/08(月) 19:19:22.70:Eylo3eTX node.jsでimportを使うと SyntaxError: Unexpected token import ってなるんですが、importに対応したnode.jsはまだ出てないのでしょうか? : [sage] 2017/05/08(月) 19:53:32.68:zqCx33pk 質問する前にぐぐれ ttp://jump.5ch.net/?http://sakamock.hatenablog.com/entry/2016/02/03/091623 ttp://jump.5ch.net/?http://yosuke-furukawa.hatenablog.com/entry/2016/05/10/111102 ttp://jump.5ch.net/?http://va2577.github.io/post/18/ : [] 2017/05/09(火) 01:01:42.73:VdFod0fE importの使い方を聞いていません babelとwebpackでimport書いてるので使い方は知ってます node.js自体がimportを実装しているのかを聞いています : [sage] 2017/05/09(火) 06:20:18.78:SYbF5UtF してないよ : [sage] 2017/05/09(火) 06:58:49.50:i7CM3KKL *.mjsからはimport出来るようにしようぜ ってのを結構前に読んだ気がするけど、まだ実装されたないんか? : [sage] 2017/05/09(火) 08:05:18.10:SYbF5UtF 実装どころか提案文書はドラフトのままだよ (技術的検証が済んでACCEPTされないと実装に進まない) 検証だけであと1年以上掛かるってさ なお拡張子(*.mjs)でES moduleかどうか判別する手法は 考え得る限り最低の糞という判断が下されたので無くなる : [sage] 2017/05/09(火) 14:19:15.46:QH2cY82P そこはESの管轄外だよ NodeがWebと合わせる必要もない : [sage] 2017/05/09(火) 14:46:23.14:mIqB5B7Y 相互運用性は必要 : [] 2017/05/09(火) 14:48:00.66:bmQioI1H いやnodeってv8使ってる立場だから何もできんでしょ 間違ってる? : [sage] 2017/05/09(火) 15:09:01.72:UecSchXq v8はネットワークもファイルシステムも持ってないからimportは環境(ブラウザやnode)に丸投げでしょ : [] 2017/05/09(火) 15:45:52.73:bmQioI1H なるほど : [] 2017/05/09(火) 16:25:22.62:yROPnHQF Buffer.byteLengthをブラウザ側でも利用できるように移植して欲しい 今時バイトでカウントするにも自力でコード書かないといけないのは無駄すぎる : [sage] 2017/05/09(火) 21:56:24.65:AJpeMRYn importはJavaScript(EcmaScript)の仕様範疇の中に入れてもいいが、 ブラウザで動かすJavaScriptにおいて、 importはビルド時に解決する問題になるんだよね。 なぜならファイルのアクセス数が増えてパフォーマンス低下につながるから。 JavaScriptファイルを結合することでパフォーマンスをあげるという目的があるから 結合させずに動いたとしても、ビルド時に結合させるという手段は今後も続く。 ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って 結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ : [sage] 2017/05/09(火) 22:01:42.74:AJpeMRYn ブラウザ側で実装する or 自力でコードを書く の中間に、ライブラリを使うという方法があるよ。 この方法を使えば、既存のブラウザでも動くし 自力でコードを書くムダもない 自力でコードを書けるたぐいのものなら、ブラウザに移植してほしい理由を言うとしたら 「ネイティブで実装されていれば速い可能性がある」であるべきだろう : [sage] 2017/05/09(火) 23:27:53.20:jm0lp/yb すごく巨大なファイルへのアクセス数でパフォーマンス低下するか、 CDNで配信されてて、もうすでにブラウザキャッシュに存在するかだと、後者の方が速いと思うけど。 : [sage] 2017/05/09(火) 23:38:56.70:AJpeMRYn すごく巨大なファイルもCDNで配信されブラウザにキャッシュされるだろw : [sage] 2017/05/09(火) 23:45:41.79:UecSchXq お前らhttp/2知らんのか : [sage] 2017/05/10(水) 02:35:14.26:APsKv2KG コネクションが再利用されるとしても、 ファイル要求は別に行われるだろうが : [sage] 2017/05/10(水) 02:43:19.47:dOAvi++p 要求されるまでもなくプッシュできる キャッシュとの絡みで今んとこ絵にかいた餅だが : [sage] 2017/05/10(水) 06:37:42.31:p6BdxMwR ふーん そういう妄想は同人誌即売会で売ってるといいよ : [sage] 2017/05/10(水) 11:21:57.19:3E/iyxQi それよりもminifyが未だにes2015を正式対応してないの早くなんとかしてほしい。ブラウザがes2015サポートしてても結局es5で吐き出してる : [sage] 2017/05/10(水) 22:20:22.50:f7GpB8cT babel使えば? babel自体にminify入ったろ? : [sage] 2017/05/10(水) 22:27:47.55:3E/iyxQi おー。愚痴ってみるもんですな。 typescript使ってたんだけどbabel挟んでみようかな。 : [sage] 2017/05/10(水) 22:31:57.68:f7GpB8cT typescript使ってるならビルドした後minifyすればいいだろ : [sage] 2017/05/10(水) 23:04:23.70:3E/iyxQi そう言ってるんだよ : [] 2017/05/11(木) 09:14:44.78:2k4cBKy7 jsでデスクトップアプリケーションが作成できるelectronでソフトを作りたいのですが、 http通信のためのモジュールであるrequestモジュールを、main processからrequireするといろんなプロパティを持ったオブジェクトが返ってきてその中の関数でhttp通算できるのですが、 renderer processからrequireするとただのrequestという名前の関数オブジェクトが返されるだけで使い物にならないです。 pc通信でrenderer processからmain processにhttp通信を代行してもらうしかhttp通信をrenderer processで扱うための方法はないですか? : [] 2017/05/11(木) 09:15:08.72:2k4cBKy7 x pc通信 o ipc通信 : [] 2017/05/11(木) 15:47:14.50:5AwxqDXW renderプロセスはブラウザと同じなのでfetch使えばいいですよ : [sage] 2017/05/12(金) 10:36:16.44:0XJDwknN なんかごちゃごちゃ言ってる間にブラウザがモジュールサポートし始めたで ttp://jump.5ch.net/?https://medium.com/dev-channel/es6-modules-in-chrome-canary-m60-ba588dfb8ab7 : [sage] 2017/05/12(金) 21:53:20.88:RdNTmSbh そりゃサポートはされるだろ 結合しないと遅いってだけなんだから : [sage] 2017/05/12(金) 22:55:56.28:zfFA8MYk モジュール化するほうがファイル増えて遅くなりそうなんだが : [sage] 2017/05/13(土) 00:08:46.87:f5G7qLua だからwebpackでビルドして結合するんだよ : [sage] 2017/05/13(土) 09:42:16.53:7pndE6Ym > ウェブサーバーのプラグインでJavaScriptファイルをimport定義に従って > 結合するという仕組みができるかもしれないがこれもビルドを配信時に行うってだけ 事実誤認も甚だしい パックする仕組みは配信からの要求で考えられた それをトランスパイルとかいう歪な仕組みを進めている連中が取り込んだだけ 逆だね : [sage] 2017/05/13(土) 17:57:39.66:DoozTjZk うん だからhttp配信という構図だとパックする必要があるからimportがあまり意味がないというのは間違ってないとおもうんだが : [sage] 2017/05/13(土) 22:06:37.81:qm49A/r9 馬鹿に何を言っても無駄っぽいよ ほどほどに : [sage] 2017/05/14(日) 08:08:37.33:GJiVsoER 正しいか正しくないかでなく 自分が最後に喋って締めないと気が済まない人種というのがいるのだ マウンティング症候群を併発していることが多い ようするにキチガイ : [sage] 2017/05/14(日) 08:58:24.04:Yfbw1s8U 特徴的なレス引用と改行だから覚えとくといいよ : [] 2017/05/14(日) 12:02:12.51:RQAIFfqK それって相手もそうじゃないとそんな状態が発生しなくね どっちかが最後にレスしなくてもいいと思ってるならいつまでも会話続かなくね : [] 2017/05/15(月) 16:08:20.12:K4VlRHcT 自分はするけど相手がするのは許せない人なんでしょ : [] 2017/05/15(月) 18:54:23.23:ejKo8zg4 609 : [sage] 2017/05/26(金) 17:26:28.49:/lAAh6KQ 初めてインストールする初心者なんですが、インストールしようとすると 下記エラーが出てインストール出来ません。 There is a problem with this Windows Installer package. A DLL required for this install to complete could not be run. Contact your support personnel or package vendor. 色々ググってみましたが解決方法がさっぱりです。 どなたか対処方法をご存じでしょうか? ご意見を戴ければ幸いです。 : [] 2017/05/26(金) 19:28:40.56:GnitEmTF OSを入れなおすと治るはず : [] 2017/05/26(金) 19:31:51.91:3n6eNBdq zip版でやったら? : [sage] 2017/05/26(金) 19:53:10.09:IXNjZ2pR 検索すると解決法がでて来てるじゃん それをやったけど解決しないというのか? それとも検索する能力がないのか? はっきりしろ : [sage] 2017/05/26(金) 19:56:45.81:r0MrR931 英語読めないバカなんだろ : [sage] 2017/05/26(金) 20:56:17.06:/lAAh6KQ その通りです。英語どころか日本語にすら不自由しているバカです。 よろしければ解決方法をお教え戴けないでしょうか? : [sage] 2017/05/27(土) 02:29:43.21:0Q3Lyy5A win版はとにかく問題がおおくMSが公式にインストール順序公開してたぞ ぐぐってみろ : [] 2017/05/31(水) 17:32:42.62:ZPfn9esu Node v8.0.0 リリース ttp://jump.5ch.net/?https://nodejs.org/en/blog/release/v8.0.0/ ついに来たか! : [] 2017/05/31(水) 18:12:03.95:buo/Bij8 npm5も yarnよりは遅いけど高速化&lockファイル追加 : [sage] 2017/05/31(水) 19:21:31.62:JH+W+dlz つーかむしろリリース早くないか? どうしちゃったの最近 : [sage] 2017/06/01(木) 06:22:15.78:YAAERIty 野良ライブラリが挙動不安定になりそうだな。 : [sage] 2017/06/04(日) 02:24:58.72:5FvMCxhk いやん、6にしなきゃなぁと思ってたら8がでちゃったよ : [sage] 2017/06/04(日) 08:28:21.48:Ya2UW7fS おれ4のまま使ってるんたけど6とか8は何が違うの? : [] 2017/06/04(日) 13:22:39.42:x+PHGK1n スーパーサイヤ人だとフリーザしか倒せないけど スーパーサイヤ人2ならセルまでなら倒せるぐらい : [sage] 2017/06/04(日) 15:13:46.93:cUbmknIq 具体的に何がかわるんだろう? : [sage] 2017/06/04(日) 15:26:15.30:QmvXFzFq 主にasyn/awaitなどのes新機能 ttp://jump.5ch.net/?http://kangax.github.io/compat-table/es2016plus/ : [sage] 2017/06/04(日) 15:31:35.11:cUbmknIq なるほど ところで下位互換は保たれてるんだろうか? : [sage] 2017/06/04(日) 15:44:01.38:075YxDUD semver準拠でメジャーバージョンアップだからブレーキングチェンジがあるということ 些細なものばかりに見えるけど ttp://jump.5ch.net/?https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V8.md#8.0.0 : [] 2017/06/04(日) 16:17:05.52:qUWZGkRh async/awaitとかの大抵の機能はnodeのバージョンアップしなくてもbabelとかtypescript使えば古いバージョンでも使えるよ : [sage] 2017/06/04(日) 18:39:31.69:+x9cOwwe これ。typescript使ってるから正直どうでもいい。 : [] 2017/06/04(日) 22:48:20.08:qUWZGkRh ts2.1でtarget es5でも使えるようになったしな : [sage] 2017/06/05(月) 21:13:25.69:nBMIbdLx nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる 安いプランのVPSだとメモリ1Gとかだから : [sage] 2017/06/05(月) 22:36:15.71:hT8phHO4 node起動するだけなら7MBしか食ってなかったぞ? : [sage] 2017/06/06(火) 09:07:00.80:rjyabpco v8が起動するんだからそんな少ないわけないだろw : [sage] 2017/06/06(火) 09:39:06.61:dRy+c6tT こんな感じのようだが? ttp://jump.5ch.net/?http://qiita.com/shouta-dev/items/09d7055329710684d9c7 > process.memoryUsage() { rss: 9019392, heapTotal: 5115392, heapUsed: 2658096 } : [sage] 2017/06/06(火) 12:19:41.83:e4Yt3Epi そりゃnode.js内のメモリ消費量でねーの ランタイム内のプロセスと実行環境自体のプロセスを混同させるようなもアレだがな だからWeb屋は : [sage] 2017/06/06(火) 13:46:28.87:rjyabpco ちょっとしたサービス作って待ち受けするだけで普通に数百MBは食うぞ : [sage] 2017/06/06(火) 13:56:30.47:yrQvF/57 ちょっとしたサービスなら200MB台で済んでる気が : [sage] 2017/06/06(火) 13:59:17.60:rjyabpco うん、実際そんなもんだよ サービスによりけりだけど単位は百MBにはなるね : [] 2017/06/06(火) 15:37:19.98:CUcBhzlW えメモリ500MBのvpsじゃキツいのかよ! : [sage] 2017/06/06(火) 16:38:33.57:rjyabpco nodeやるなら512は実用的じゃないと思う ssdならスワップ早いからなんとかいけるかもしれんが最低でも1GBは欲しい : [sage] 2017/06/06(火) 17:48:28.25:RW5d4zA8 node起動するだけなら7MBしか食ってなかったぞ? : [] 2017/06/06(火) 17:53:37.43:Q/vepSQ/ nodeは依存関係の関係でアホみたいにモジュールロードあるからね : [sage] 2017/06/06(火) 22:49:25.44:dRy+c6tT 条件は「nodeを起動するだけ」なんだからその程度だろうね。 そりゃexpressとか動かせばその分のメモリ食うさ でもそれはrailsとかでも同じなわけで、なんのモジュールをロードするかとか 言ってない上、nodeを起動するだけのメモリ使用量しかわかるわけがない : [sage] 2017/06/06(火) 23:48:02.40:rexPHFK5 バカは黙ってた方がいいとおもう : [sage] 2017/06/06(火) 23:52:26.78:uLFYe46X 何も言い返せないなら黙っていたほうが良い : [sage] 2017/06/07(水) 00:17:35.99:uxrwudqM 7MB君ってほんとうにおめでたい脳味噌してるんだな : [sage] 2017/06/07(水) 00:20:57.96:Xdd0wH5l socket.ioのみの簡単なサービスですら200M越えるんだが? 君はどうやって使用メモリを調べてるのかな?ん? linuxコマンドでも書いてごらん : [sage] 2017/06/07(水) 00:22:10.32:c02yQ3lM の文脈からして何らかのサーバー立てるんだからnode単体の話をするのは空気読めてないよね : [sage] 2017/06/07(水) 00:27:56.94:Xdd0wH5l おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー? で? 検証用のコードと7MBの確認コマンド公開まだかな? : [sage] 2017/06/07(水) 00:31:58.18:Xdd0wH5l 649はレス相手間違えた この期に及んでnode単体という屁理屈で逃げてるやつは回答まだかな? : [sage] 2017/06/07(水) 00:32:13.23:kUtim7jQ たった5行でWebサーバーが書ける ttp://jump.5ch.net/?http://engineer.recruit-lifestyle.co.jp/techblog/2015-06-22-node1/ httpモジュールを使っている分、nodeだけのメモリ使用量ではないが、 ps uのRSSの値は26000KB、つまり26MBだが? : [sage] 2017/06/07(水) 00:33:21.79:kUtim7jQ > おまえはVPS借りてnode動かすのに何のサーバーもたてないつもりかな?んー? サーバーたてなくてもコマンド実行するという使い方もあるだろ? : [sage] 2017/06/07(水) 00:46:45.23:kUtim7jQ > nodeって起動するだけでメモリ相当食うから、バージョンアップでさらに増えてないかが気になる > 安いプランのVPSだとメモリ1Gとかだから の文脈から言って、メモリを相当食う何かを動かしているのだろう。 だがそれはnodeの使用量ではなく、モジュールの使用量がほとんど。 nodeのバージョンアップでメモリ使用量が増えたとしても 大部分のモジュールの使用量は変わらないので、気にするレベルにはならない。 : [sage] 2017/06/07(水) 01:45:14.18:GBlW6tcD メモリの使用量を抑えようと思ったら何を使うのが一番いいんだろうな。 やっぱgoとか? : [sage] 2017/06/07(水) 05:15:29.36:H4RzZJ5B c : [] 2017/06/07(水) 14:14:41.23:Kk4r5o3h Cは現実的じゃない Goでおk それかRust : [sage] 2017/06/07(水) 18:49:24.55:GBlW6tcD 間を取ってobjc : [sage] 2017/06/07(水) 18:51:47.29:GBlW6tcD v8ってandroidでも動くようにしてるんだよね。新しいバージョンのほうが省メモリの可能性ないかな。 android goとか出してるわけだし : [sage] 2017/06/07(水) 21:06:02.29:Q5pKLWbH v8のignitionは省メモリ、スモールフットプリントのためだから可能性は十分よ : [sage] 2017/06/07(水) 22:03:21.25:kUtim7jQ 結局逃げちまってたかw : [] 2017/06/07(水) 22:28:48.05:Kk4r5o3h v8がiosで動けばな : [sage] 2017/06/08(木) 13:07:07.77:oPuedIYN 久々に延びてるから良い話題期待したもれが間違ってたし : [sage] 2017/06/10(土) 23:18:03.35:c4FhnErI v8じゃないけどnode.jsなら ttp://jump.5ch.net/?http://www.janeasystems.com/blog/node-js-meets-ios/ : [] 2017/06/13(火) 13:54:50.94:ohFJ/OWS selenium使ってるんだけどnodeだとすんごい使いづらいな 他はpythonしか知らないけど : [sage] 2017/06/15(木) 14:45:14.68:p0Tdw73d 中学生でもランサム作ってるんだから それくらいがんがれ : [] 2017/06/21(水) 08:58:52.16:E+Sq/aqi Windows10のユーザーフォルダでnpmにてnode-notifierと言うライブラリをインストールしたのですが ユーザーフォルダ以外でnode-notifierを呼び出しても見つからずにエラーが出ます。 これを解決するにはWinの環境変数でPATHを通さないとダメなのでしょうか? それとも呼び出し時に何か指定すれば良いのでしょうか? : [sage] 2017/06/21(水) 10:18:32.72:A4qiE8Ip グローバルインストールっのがあるんじゃ? : [] 2017/06/23(金) 10:29:44.77:0OdP20aK -g : [sage] 2017/06/28(水) 10:06:32.62:+O8L6XqQ 366 :nobodyさん 2017/05/29(月) 16:07:39.16 ID:6v4UcGhE 今回の民法改正、ソフトウェア受託開発の場合、(検収後ではなく)バグ発見後1年瑕疵担保責任があるということで、地獄かよ、と思ったが、 元々問題が起きがちな受託案件がビジネス的に成立しなくなることで強制的に業界再編につながるなら良いことかもと思うようになった。 一部で地獄を見ても。 ttp://jump.5ch.net/?https://twitter.com/yukihiro_matz/status/869061879389343744 367 :nobodyさん 2017/05/29(月) 16:28:06.55 ID:6v4UcGhE ニュース - 改正民法が成立、「瑕疵担保責任」などシステム開発契約に影響大:ITpro ttp://jump.5ch.net/?http://b.hatena.ne.jp/entry/itpro.nikkeibp.co.jp/atcl/news/17/052601508/ 372 :nobodyさん2017/05/29(月) 19:10:37.12 ID:??? Railsでシステム作って納品する ↓ Railsはマイナー、メジャーのアップデートが半年以内に必ずある ↓ 客がアップデートする。アップデートによるエラーやバグ、動作の不具合に気づく ↓ 気づいてから1年以内に通知すれば、5年間無料保証ゲット ↓ つまりRailsがアップデートするたびに、無償の修正作業を発生するということかな 376 :nobodyさん2017/05/30(火) 09:20:20.09 ID:L5po86sS >>379 客が瑕疵担保責任法の法改正を知ってくると思うから、今後5年無償保証をお願いされるだろう 営業がそれでも仕事を取ってこれるか?たぶん無理だろう。無限の直していたら赤字になる。 こういう保守に弱い言語、ころころ仕様が変わる言語は仕事として発生しなくなってくる。 これは変わり目だ。お前らも早く逃げたほうがいいぞ。RubyやPHPなど動的言語は確実に廃れる。 保守に強い言語のみ生き残れる。 : [sage] 2017/06/28(水) 10:07:07.91:+O8L6XqQ 瑕疵担保責任(かしたんぽせきにん) 瑕疵担保責任のポイント 民法改正で事実上期限が「無制限」になった バグや設計のミスなどは、瑕疵担保責任 納品物に不具合があれば損害賠償を請求される可能性もある 不具合を指摘されたらすぐに行動をとるべし 軽微なミスでも先延ばししない ttp://jump.5ch.net/?http://www.atmarkit.co.jp/ait/articles/1706/26/news014.html ttp://jump.5ch.net/?http://itpro.nikkeibp.co.jp/atcl/news/17/052601508/?rt=nocnt 改正法では欠陥に気付いてから1年以内にITベンダーに通知すれば、 通知後5年以内は修正や報酬の減額などを求められるとしている 全ベンダーが泣いた民法改正案を解説しよう その1 ttp://jump.5ch.net/?http://www.atmarkit.co.jp/ait/articles/1609/14/news009.html ttp://jump.5ch.net/?http://www.atmarkit.co.jp/ait/articles/1609/14/news009_2.html ttp://jump.5ch.net/?http://www.atmarkit.co.jp/ait/articles/1609/14/news009_3.html ポイント1:修補や損害賠償、契約解除の期限がなくなる 従来あった「瑕疵担保期間は引き渡しから1年」という考えはなくなる。 条文にある通り、注文者は成果物が契約の目的に適合しないことを発見したら、 その「発見したときから1年以内」ならさまざまな請求ができる。発見が10年後なら、 11年後まで請求可能なのだ。 もっとも、現実のユーザーとベンダーの関係でも、たとえ契約書に「瑕疵担保責任期間は納品から1年と」明記されていても、 「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、 バグが見つかればユーザーのところに飛んで行き、無償で改修するだろう。 : [sage] 2017/06/28(水) 11:55:35.82:6M+2cmcB そのぶん金取るだけだよな そんな主張もできない弱小は存在価値ないから他に吸収された方がいい : [] 2017/06/28(水) 16:29:31.80:7uiFkJf0 マルチに反応するな : [sage] 2017/06/28(水) 21:25:29.27:V4ji+kX8 「2年目以降は不具合の修正に対応しない」と主張するベンダーはまれだ。多くの場合は、納品から何年たっても、 バグが見つかればユーザーのところに飛んで行き、有償で改修するだろう。 の間違いでは? 普通は不具合の修正に有償で対応する方を選ぶでしょ? : [] 2017/06/29(木) 03:44:27.70:KULunYvr app.jsみたいなフレームワーク固有のファイルって どんな役割なのかもよくわからんし 何を書けばいいのかもわからないしすげえ苦手だ。 最低限何を書けば動くの? : [sage] 2017/06/29(木) 09:04:07.63:nn6a6Cug フレームワークのドキュメントに書いてあるんじゃないですかね… 書いてないなら使う価値がない(品質が水準に達していない) : [sage] 2017/07/08(土) 17:32:49.37:Ra2NVXKJ koa2ってどうよ? 使っているヤシ居る? : [sage] 2017/07/08(土) 21:12:14.30:XWVPkNFz 触ろうと思ってサンプルプロジェクト作って中途半端に弄ってから半年経ったわ : [sage] 2017/07/09(日) 00:03:48.07:FGayP2eL jQueryとかnode.jsとかデファクトスタンダードでみんなやってる感のやつはどうも食指が動かない 変わり者ですみません : [sage] 2017/07/09(日) 00:23:45.88:nvV/UuF5 本当の変わり者は自分を変わり者とは言わない : [sage] 2017/07/09(日) 00:24:16.28:iCzPmO29 中二病やん : [sage] 2017/07/09(日) 00:29:34.35:nYzmJ4mS nodeは一部の変態しかつかってないだろ? スタンダードとかないわ : [sage] 2017/07/09(日) 00:36:10.71:ODdY4A4c それでは変わったことをやっている人が みんなやってるものをやれば良いのでは? : [sage] 2017/07/09(日) 00:38:52.02:iCzPmO29 人と違うことが誇らしいお年頃〜 : [sage] 2017/07/09(日) 01:14:59.47:A+aVbo6r んなこと言ってるくせに変わったものなんか使ってないんだろどうせ : [sage] 2017/07/09(日) 02:41:44.02:zx3kMPLK 自分から○○がやりたい!っていうのなら それは前向きな意見であるが、 みんながやってるからやらない。 誰もやってないからそれをやるっていうのは それをやりたいという意志がないので 後ろ向きな考え方だよ。やる気が無いといえる : [sage] 2017/07/09(日) 08:27:13.61:CH1C34jF みんながやってるからやりたくない、はひねくれ者 気がついたらみんながやってることと違うことをやってた、てのが変わり者 : [sage] 2017/07/09(日) 10:14:40.44:LHQ7nZ8B javascriptとかいうデファクトスタンダードの権化を使うのをまずやめるべきだね : [sage] 2017/07/09(日) 12:11:00.81:zrZ5NBAs x86やARMも使ってはいけない : [sage] 2017/07/09(日) 12:43:30.36:TMBKe/0c インターネットを使ってるようじゃ変わり者ではない : [sage] 2017/07/09(日) 17:11:49.90:88Sc1mx+ async await使ってるならむしろどんどん触るべきじゃないのか。 俺はgoでサーバサイド書いてるからあえて使ってないけど、 全部jsでやるならkoaかも : [sage] 2017/07/09(日) 18:30:24.07:cjuI8GCo express使ってても自分でミドルウェア書きまくるわけじゃないからな 標準のやらpassportやら使うだけだからasync/await使えて嬉しいことはほぼない 結局エコシステム揃ってる方を使う : [sage] 2017/07/10(月) 13:43:08.24:gqDySAuG koaってexpressのミドルウェア使えたはず。 だからエコシステム的には問題ない。 とは言えasync-awaitもところどころ詰まるところはあるのは分かる (例えばarrayのmapに渡す関数としては使えないとか。) でも今から使うならkoaの方かな。 : [sage] 2017/07/10(月) 13:46:50.96:Labl8nFy expressのミドルウェア使うならexpressでええやん : [sage] 2017/07/10(月) 14:16:11.77:gqDySAuG 非同期処理を同期的にかける魅力には勝てない。 : [sage] 2017/07/10(月) 14:57:56.02:szK1finj 691に戻る : [] 2017/07/10(月) 16:33:23.58:hbYLDPUX f : [] 2017/07/10(月) 17:53:20.41:LYSrTSKk array.mapに非同期関数渡したいならrxjsで処理してtoPromiseすればおk : [sage] 2017/07/10(月) 18:48:24.41:gqDySAuG いや。そもそもPromise.Allがmapと同義じゃんってわかったから あえてrxjsは使わなくてもok : [sage] 2017/07/10(月) 19:17:56.48:9M+6V9gq まっ CORE ASP使っている身としては、koa2で十分なんだが、JadeからPugへの変更って必要だったのかえぇ〜? いまいちのような感じかする。 軽いCMSにkoa2は便利。 重いのもいけそうではあるが・・・ : [] 2017/07/10(月) 19:26:02.76:LYSrTSKk jadeもpugも一緒だぞ 商標の問題で名前変えただけで : [] 2017/07/11(火) 16:15:40.20:IkyG2RiR koa2ってなに?koa.jsのこと? : [] 2017/07/11(火) 17:21:49.33:9uLf2kf9 koe.js v2 : [] 2017/07/11(火) 17:22:14.73:9uLf2kf9 x koe.js v2 o koa.js v2 : [sage] 2017/07/11(火) 23:24:55.50:rvrzGERi あんましexpressもkoaも使ってるぜーって情報発信してる人いない気がする。 知らないうちにブロだクションで動いてるんかな : [sage] 2017/07/11(火) 23:54:59.61:0kzPGIzN expressってwebアプリケーションフレームワークって感じじゃないからな rubyでいえばrack相当でrails相当じゃないから表に出ない : [] 2017/07/12(水) 00:05:15.88:lpTuRvg7 expressはnode.js標準に付いていてもおかしくない程度の軽いフレームワークだしな : [sage] 2017/07/12(水) 01:08:53.04:VV5TEq59 ぶっちゃけ、express使うような案件だとphpでよくない?っておもっちゃう : [sage] 2017/07/12(水) 01:23:02.63:qAT72GnU socket.ioとか使いたいからそれはないな : [sage] 2017/07/12(水) 03:27:41.84:VV5TEq59 おれもゲームサーバーでnode+socket.io使ってるけど、expressで配信するコンテンツってphpでよくね?ってパターン多い気がする どうしても非同期じゃないと無理ってパターン以外は非同期のデメリットがでかすぎる とくにDBがらみの単純な登録画面とかね phpの数倍の開発コストかかるよ : [sage] 2017/07/12(水) 04:17:22.08:Rdi75m+a expressでdbアクセスなんてしてないな bffとして使ってるから node/expressの後ろのapi鯖はphpだったりrailsだったりjavaだったり : [sage] 2017/07/12(水) 04:21:26.67:VV5TEq59 ああ、そういう二段構えならokだね : [sage] 2017/07/12(水) 07:31:45.77:46U9BX05 でもphpって1requestが1プロセスで高コストだから同時接続数を稼ごうと思ったらnode.jsの方が良いんじゃないの?dbがボトルネックだから気にする必要はない? : [sage] 2017/07/12(水) 07:33:23.93:46U9BX05 それにasync awaitつかえば非同期処理はかなり自然に書けないかな? 学習コストは高くなるかもだけど : [sage] 2017/07/12(水) 08:32:57.14:Fm5flkvk async/await使いたいけど、LTSになるまで待ってって言われてる(´・ω・`) TypeScriptはコンパイルしたくないって言われた、、、 : [sage] 2017/07/12(水) 08:35:16.60:VV5TEq59 最終的にはアクセス増えたときのパフォーマンスの話になるんだろうけどそんなこと気にするレベルじゃない案件でわざわざ苦労してまでexpressでがんばる必要はないなと思う 必要な場面で局所的に使うのがnodeっていうイメージ : [sage] 2017/07/12(水) 11:37:51.18:WN7PTjbN phpだってさすがにスレッドぐらい使えるだろう : [sage] 2017/07/12(水) 14:22:08.20:sNyzU/qO 非同期DB使えよ : [sage] 2017/07/12(水) 15:54:06.61:46U9BX05 むっちゃしんどかった。 goを学習してgorutineで書き直したわ。 : [sage] 2017/07/24(月) 09:12:28.43:/vKjgZpt express-resourceを使ってAPIサーバーを作りたいって考えているのですが データベースへのアクセス手順を共通化したくなり、下記のようにしました。 class dbaccess { constructor(db) { this.db = db } index(req, res, next) { console.log(this) // undefined this.db.find({}, (e,r)=>res.json(r)) } // 以下略 } app.use('users', new dbaccess(db)) 1 APIクライアントからの GET / -> this が undefined になっていてエラーになる 2 下記のコードからのindex()呼び出し var dba = new dbaccess(db) dba.index(null, null) -> thisの内容が表示される 何か上手い解決策はないでしょうか。 : [sage] 2017/07/24(月) 10:45:49.25:1TXRI9Gx constructor内で this.index.bind(this)でthisの束縛をすれば解決しませんか? : [] 2017/07/24(月) 15:05:38.54:BdqEvISL うむ : [sage] 2017/07/24(月) 17:23:58.44:/vKjgZpt お答えいただきありがとうございます。 それを全部のメソッドにやるのも何かしっくりこないので、 下のようにクロージャにしてしまったら何とか期待する動作になりました。 function dbaccess(db) { let _db = db; return { index(req, res) { } // 以下略 } } クラスだと上手くいかないのがイマイチ納得できてませんけど。 : [sage] 2017/07/25(火) 06:14:42.65:5XPEt11J それが問題ならアロー関数をつかえば解決します。自動でthisを固定するんで。 : [sage] 2017/07/25(火) 21:46:43.91:1fcXX4D/ おいおい、変なことしないほうが良いぞ もうちょっと調べるべきだろ? 他のプロジェクトでそんな書き方してるか? 昔やったきりで忘れたし今のやり方は変わってるかもしれないから 適切なアドバイスはできないがよ、他はもっと簡単な書き方してるだろ? : [sage] 2017/07/25(火) 22:27:51.60:5XPEt11J ttp://jump.5ch.net/?http://qiita.com/kazusa-qooq/items/23926befcb87c0c7b26f によると req,res,nextの3引数を取る関数を作ればいいみたいね。 偶然にもクロージャーを使うというのは正解だけど nextを省略してるってことは他のミドルウエアを後から追加したら 動かなくなる こういうの見てるとtypescript使うべきって思う。 型でapp.useに渡すクロージャーを制約できるからこういう失敗がない。 : [sage] 2017/07/25(火) 22:30:30.22:FGFvX1HY GCされてね? : [sage] 2017/07/26(水) 15:41:26.54:2Xw6+C7K 722です 一応、最小限っぽいコードを書いてみました。 ttp://jump.5ch.net/?http://www.dotup.org/uploda/www.dotup.org1319642.zip.html users.jsからdbaccessを利用していますが、ここをtags.js, articles.jsと増やしていきたいって考えています。 本家のサンプルも利用者のblog記事なども一通り見たのですが、 見つかるは全部関数なので、そもそもクラスでの利用を想定していないのだろうと当たりを付けて 影響なさそうなクロージャにしてしまいました ミドルウェアの追加は想定していない、クライアントコードなので特に支障はないと判断してます 本音を言うと、ただ書き忘れただけなのですけど。 : [sage] 2017/07/26(水) 16:04:27.16:2Xw6+C7K ちなみに、なんでクラスで書こうと思ったのかと言えば クロージャとクラスのインスタンスが内部的には等価だと思っていたからです : [sage] 2017/07/26(水) 16:54:58.69:p1ZvRLSy codepenとか使うかgithubに上げるかして欲しいわ。 正直zipでってなんかイャ : [sage] 2017/07/26(水) 16:56:23.68:p1ZvRLSy 将来の自分のためにも流儀は合わせておくべき。 コード量の削減に影響するとも思えない。 : [sage] 2017/07/26(水) 21:17:16.61:EkC4vcRh thisが違うことから等価じゃないことが証明されてるでしょ? じゃあクラスで書こうと思った理由は消滅してるよね? ならクラスで書くのをやめるべきだよね? : [sage] 2017/08/18(金) 21:49:38.61:ujwXUmoS useの第2引数に何が許されてるのかドキュメント読みなさい : [sage] 2017/08/27(日) 14:46:16.26:JVSE3drk forkの経緯を眺めてたけどこれio.jsの時と違って結構めんどくさいな これまでのNodeは人治主義のOSSだったってことか : [] 2017/08/27(日) 15:42:03.26:XHFSs/EA シングルスレッドだから遅くならないって言うけど マルチスレッド言語で動的にスケールすればいいでしょ? : [sage] 2017/08/27(日) 15:44:19.45:IFPOQiAt Node.js Foundationに対し不安を持つグループによるNode.jsのフォークプロジェクト「Ayo.js」誕生 ttp://jump.5ch.net/?https://mag.osdn.jp/17/08/25/163000 : [sage] 2017/08/27(日) 15:53:01.24:4pu+F5Jq だよな : [sage] 2017/08/27(日) 15:53:18.14:4pu+F5Jq matakayo : [sage] 2017/08/27(日) 16:05:49.89:iBnNI7N6 シングルスレッドだから遅くならないなんて言っている人なんているかねぇ? C10Kの話ならかなりニュアンスが違う。 : [sage] 2017/08/27(日) 16:12:18.21:HAnDkIM0 優秀な一名をこき使うから速いんだな。 ほんの少しでも空時間があったら仕事をぶっこむ。 人間なら死ぬわ。 : [] 2017/08/27(日) 16:17:42.17:XHFSs/EA メモリ使用量が増えないってnodeのメリットじゃないの? そんなのスケールアウトで十分だと思うんだが : [sage] 2017/08/27(日) 16:22:23.64:sNhXAArf > メモリ使用量が増えないってnodeのメリットじゃないの? だれがメモリ使用量が増えないというメリットが有ると いったんだ? お前の脳内か? : [sage] 2017/08/27(日) 17:35:42.54:0P4eY3kj nodeが良かったのはは非同期apiにより プロセスあたりのリクエスト処理数を高めたからでしょう? マルチプロセスにすればその分リクエスト処理数もある程度スケールしてくれる。ただしdbアクセスは考慮しないものとする : [sage] 2017/08/27(日) 18:30:42.93:LIgBPoun mongoDBとかNoSQLとはなんだったのか : [sage] 2017/08/27(日) 18:57:54.53:IIGC9wQX nodeとは全く別もので、ただのデータベース : [sage] 2017/08/28(月) 11:26:19.65:XrV67/p5 Nodeが普及したのは良いサイバーサイドJS環境だったから : [sage] 2017/08/29(火) 09:43:28.14:PNzW02X+ let dict = {} で辞書のように使おうとしたんだけど、 dict['constructor']ではまった アレイにkvペア入れて頑張るしか無いの? 16万項目あるので線形検索は躊躇う : [sage] 2017/08/29(火) 10:19:27.35:9ZzXxIqM Mapを使うとかlet dict = Object.create(null)とか : [sage] 2017/08/29(火) 11:53:07.27:sgTDSrY2 16万項目のデータをメモリ内に置くのか。 もっといい方法無いかな。realmとか使えればいいんだけど。 : [sage] 2017/08/29(火) 11:59:45.48:PNzW02X+ Object.createで上手くいった try catchで検出してエラーになるのを、別管理と考えてたけど、すっきりした さんきゅ : [sage] 2017/08/29(火) 12:07:49.40:PNzW02X+ db構築に使うフォーマット変換ツールなので、適切な時間で終了する事が要件で 利用リソース量はあまり気にしない : [] 2017/09/03(日) 12:30:07.14:U+3KDr2c eslintとそれにぶら下がるプラグイン本当互換性がない ツール入れる所でトラブらないといけないとかだるいわ これだからJavaScriptなんて書きたくないんだよ : [sage] 2017/09/03(日) 12:34:43.60:DIhXI1rF eslintのプラグイン何を使おうとしてるの? 使わなければいいじゃない : [sage] 2017/09/03(日) 12:59:47.72:VH3Jw1dH airbnb辺りのプリセット使えばええやん : [] 2017/09/03(日) 20:32:32.58:CKCB7oSp そのairbnb関連のjsx-a11yとかな ttp://jump.5ch.net/?https://github.com/evcohen/eslint-plugin-jsx-a11y/issues/283 : [] 2017/09/04(月) 11:57:48.72:xXgpQO1P そういうのもNginxやApacheがある程度やってくれるようになってるからね。 後ろは好きな言語をそのまま使えばいい。PHP-FcgidとかuWSGIとかRackとかServletとか。 : [sage] 2017/09/04(月) 18:58:52.14:XPn2hQsA 非同期apiはphp処理系では無理じゃない?phpはインスタンスの生存時間がリクエストを受けてからレスポンスを返すまでの固定だよね。 どうやってイベントループ回すの? : [sage] 2017/09/04(月) 20:39:48.99:tWvDAnX3 フレームワークによってはイベントループで生存期間が無限のものもあったはず。 前の会社で、そういうWebSocketフレームワーク使おうとしてたよ。 …そんな用途全く想定してない普通のPHP用のオレオレライブラリ組み合わせて メモリリーク起こしてたけど(藁 : [sage] 2017/09/05(火) 08:00:30.55:JsNUX7wh メモリリーク起こすなら使えないな。 phpってインスタンスの生存時間短い前提だから、 メモリリークってさほど気にしなくて良い言語なのかも。 素直にjsでいい気がするけどね。今の時代。 yahooで勤務してる知り合いも今はjsでサーバサイドを書いてるってさ。 : [sage] 2017/09/05(火) 14:51:11.75:x6NjkUnp もともとCGIはリクエスト毎にプロセス作ってサービスしてた なので、一つのリクエストが終了するとperlやphpのプロセスも終了するので、オブジェクトを解放(リファレンス外す)しないCGIが多くある ところが、これじゃおせーよと言うことで、終了させないで無理やりに複数リクエストを処理させる仕組みをでっち上げた これがPHP-FcgidとかuWSGI リークしまくりのサービスが出来上がり 三菱とかやりそうだろ : [sage] 2017/09/05(火) 15:05:46.14:EAdtS/tk だから一定数のリクエストを処理したらプロセス再起動する 三菱でも大丈夫 : [sage] 2017/09/05(火) 15:06:06.76:y9gU3zED メモリだけじゃなくて CPUもファイルI/Oも簡単に食い潰せるからな : [sage] 2017/09/05(火) 16:00:05.67:JsNUX7wh なるほどね。大雑把な作りだ。 大昔Dephiの案件をやった時に、PLが ひとかたまりのEXEを画面ごとにバラバラのEXEにして 切り替えるたびに終了させる仕組みを作り出して、メモリリークを 極力抑える仕様にしてたの思い出した(データはDBにおいてる) : [sage] 2017/09/05(火) 17:07:49.21:x6NjkUnp 三菱は自動再起動なんて技術がないから、連絡受けて手動で再起動してた : [sage] 2017/09/06(水) 21:18:48.34:CWS2BygD 何故、三菱が引き合いに出されるのだ? なんかやらかしたんかい。 : [sage] 2017/09/06(水) 21:34:30.85:tZ2T0w/m Librahackで検索 : [sage] 2017/09/06(水) 22:59:23.06:CWS2BygD 三菱電機インフォメーションシステムズ (MDIS) 製のソフトウェアは、 1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた これか? 9秒に1回以上で破たんするなんてどんな実装か興味津々 : [sage] 2017/09/06(水) 23:25:37.77:tZ2T0w/m これを読むとイメージがわかる ttp://jump.5ch.net/?http://takagi-hiromitsu.jp/diary/20130316.html ttp://jump.5ch.net/?http://el.jibun.atmarkit.co.jp/pressenter/2012/09/1-0f4e.html (事件をモデルにしたフィクション) : [sage] 2017/09/07(木) 03:05:39.43:x1ExMc+m そもそもDOMとのメモリリークとかまともに対応してきたJS界のエンジンが優秀過ぎるだけで 他のサーバサイド言語で環境を跨いた循環参照とか上手く処理できるエンジンは無いし、他のGC技術や調整も何年も遅れてる : [sage] 2017/09/07(木) 06:19:08.39:+w9zPnXt WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ? 普通にやったんじゃできないよね。 : [sage] 2017/09/07(木) 07:18:46.25:K4PeVUi8 応答しなければいい : [sage] 2017/09/07(木) 09:17:55.33:9vlATu9m expressだって、グローバルスコープの変数にコネクション保持すれば、その参照切るまで残るぞ : [sage] 2017/09/07(木) 12:06:54.84:OJmUELTm 膨大な数のリクエスト処理するのになぜ閉じるのかが逆に理解できないんだけど 普通WebアプリやサービスのDBはつなぎっぱなしだとおもう : [sage] 2017/09/07(木) 12:43:46.04:rxsfMKHp Webのセッションが終わってるのにコネクションをセッションのために10分間保持してたって事でしょ? 普通はコネクションは閉じないがWebのリクエスト毎に紐付けは開放でしょ。 : [sage] 2017/09/07(木) 13:10:59.01:ZzrrO/3t アプリサーバーとか作ったことある? : [sage] 2017/09/07(木) 14:19:14.16:oGYUX/gJ その紐付けを解放しないのが三菱流 : [sage] 2017/09/07(木) 19:20:21.66:+w9zPnXt ないズラ そんなヤツ僅少だろ : [sage] 2017/09/07(木) 19:23:08.30:+w9zPnXt 三菱に限らずSIerの技術力低下が半端ない : [sage] 2017/09/07(木) 22:32:27.03:9vlATu9m 自分達の底辺技術レベルが原因で、無実のエンジニアを罪人にして、ほっかむりしたのは三菱だけ : [sage] 2017/09/08(金) 00:15:56.20:7o1xz83o ちなみにDBってopenとtransactionを分離している奴があるけど、これって何で? 例えばIndexedDBでもそうで、open後にtransactionを作ってアクセスしなければならない。 しかし普通に読み書きだけなら DBWrite(DBname, objectStores, key, value) みたいなAPIでクエリ毎にopen/close繰り返した方が使う側は楽だよね。 何らかの理由でopenが重いから分離しているのだろうけど、 普通に実装すればそんなに重いとも思えない。 (実際はopenは数秒かかる時もある程重いが) これって何で? ちなみに類似ケースはXHRで、通常は毎回XHRをnewするだろ。 indexedDB.openもそれに近くて、本来はオブジェクトを初期化するだけで終わるはず。 : [sage] 2017/09/08(金) 00:27:44.82:vWsWUiiy > WebアプリでDBコネクションを10分間も保持するなんてどういう実装したらできるんだろ? > 普通にやったんじゃできないよね。 コネクションプールを使ったら普通にそうなりますが? : [sage] 2017/09/08(金) 00:28:57.91:vWsWUiiy DBをopenしてselectしてcloseするなら トランザクションいらないでしょ? : [sage] 2017/09/08(金) 00:31:58.67:vWsWUiiy > 何らかの理由でopenが重いから分離しているのだろうけど、 > 普通に実装すればそんなに重いとも思えない。 ゆえにopenが重いから分離しているという あなたの想像は間違いだって言うこと。 根拠のない想像を結論にしないようにしよう 検証の前にあるのは結論ではなく仮定という トランザクションは複数の操作を一塊にするもので openが軽いのとは関係ない話 : [sage] 2017/09/08(金) 00:47:45.77:pIgMfxSJ IndexedDBの場合はトランザクションは常に必要だ。 他の楽観的なトランザクション分離のDBについては知らん。 では何故openとtransactionを分離するんだ? 最初からtransaction単位でopen/closeするAPIにしておけばいいだけの話だろ。 そこを分離して手動でやらせる理由が分からん。 : [sage] 2017/09/08(金) 00:55:56.99:vWsWUiiy IndexedDB特有の話なら、IndexedDBの話だって書けよ はい、トランザクションつかってませーん。ばいなら ttp://jump.5ch.net/?http://qiita.com/butakoma/items/2c1c956b63fcf956a137#%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%B9%E3%83%88%E3%82%A2%E4%BD%9C%E6%88%90 オブジェクトストア作成 オブジェクトストアは、RDBでいうテーブル。 var storeName = 'sampleStore'; var openReq = indexedDB.open(dbName, dbVersion); // オブジェクトストアの作成・削除はDBの更新時しかできないので、バージョンを指定して更新 openReq.onupgradeneeded = function(event){ var db = event.target.result; db.createObjectStore('storeName', {keyPath : 'id'}) } : [sage] 2017/09/08(金) 00:57:25.86:vWsWUiiy IndexedDB特有の話ならtransaction使わないと readonlyなのかreadwriteなのか決められないからだろ : [sage] 2017/09/08(金) 01:14:01.64:mcCYyLIS DBへの接続(open)とトランザクションは別のレイヤーだからだよ 1つの接続で2つのトランザクションを実行したい場合どうすんの? transactionを明示的に指定しない場合に デフォルト設定で例えばステートメント単位でトランザクションになるような仕組みがDBにあればtransaction指定は必須でなくなる 一般的なRDBはそうなってると思うけど : [sage] 2017/09/08(金) 01:20:17.29:pIgMfxSJ つかお前根本的に分かってないだろ。 IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。 これはMDNからはとてもそうは読めないのだが、とにかくそう。 そしてAPIが > DBWrite(DBname, objectStores, key, value) > DBWrite とかでいいのではないか?というのが俺の疑問なのだが。 何故かは知らんがDBには「繋ぎっぱなし」の文化はあるんだよ。 IndexedDBのAPIからもそれは読みとれる。 > Web アプリが別のタブで開かれているときにバージョンを変更する > ttp://jump.5ch.net/?https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB 毎回閉じる文化ならそもそもこれは要らない。 MDISはこの「繋ぎっぱなし」の文化でWeb側にも解放したらリソースが枯渇しただけだろ。 ただそもそもこの「繋ぎっぱなし」ってなんなのさ? open/closeが軽いのなら毎回open/closeすればいいだけだし、 普通に実装すれば重いとも思えないし、ということなのだが。 (ただし実際にはIndexedDBでもopen/closeは重い) : [sage] 2017/09/08(金) 01:26:20.56:pIgMfxSJ > transactionを明示的に指定しない場合に(以下略) これについてはそれでいい。 APIコール1回=1つのtransactionになるって事で。 > 1つの接続で2つのトランザクションを実行したい場合どうすんの? これってどういうケース? その2つのトランザクションをくっつけて1つのトランザクションにしておけばいいだけの話では? 並列性を限界まで出したくて、例えばライト/リードでトランザクションを分けておきたいとかか? : [sage] 2017/09/08(金) 03:16:51.74:mcCYyLIS 1回の接続で複数トランザクションを実行したいケースってあんまりないのかな 例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら? トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね だから一般的にはトランザクション境界と接続の開閉を一つにしたAPIってのはいい設計じゃないと思う 繋ぎっぱなしの文化なんかなくて、ただの開放漏れのバグだよ openしたらcloseするのが必須 : [sage] 2017/09/08(金) 08:36:52.78:Q9xrmP/+ コネクションプーリングはコネクションを使いまわす仕組みだからDBには繋がったままだけどWebのセッションからはリクエストの度に切り離される。 とっくに終わってるセッションがコネクションを独占するようなアホな作りはどうやったらできるのかって事。 : [sage] 2017/09/08(金) 08:40:11.92:Q9xrmP/+ 繋っぱなしってコネクションプーリングのことでしょ。アプリから見ると毎回、open/closeしてるように見える。 : [sage] 2017/09/08(金) 09:36:43.18:vWsWUiiy コネクションを独占ってなんだ? 異なるセッションから、コネクションを使いまわすのがコネクションプーリングなんだが? セッションが終わってるっていうのなら、コネクションは明け渡してるだろ : [sage] 2017/09/08(金) 09:38:38.44:vWsWUiiy > IndexedDBはonupgradeneededの時は最初からトランザクションを張っている。 じゃあなおのこと、openでトランザクションは貼れないな。 だって、何の操作をするかで、トランザクションの種類が変わるわけで openした時点ではわからないんだから : [sage] 2017/09/08(金) 09:40:18.14:vWsWUiiy > そしてAPIが > > DBWrite(DBname, objectStores, key, value) > > DBWrite > とかでいいのではないか?というのが俺の疑問なのだが。 トランザクションは複数のDBWriteを 一つにまとめるものなんだから それじゃだめだろって言ってるんだが? いいからトランザクションを勉強してくれ お前、根本的に分かってない(笑) : [sage] 2017/09/08(金) 11:27:15.08:K/Y+ost0 : [sage] 2017/09/08(金) 19:22:44.56:pIgMfxSJ ただのバグでMDISが糞だというのは同意だが、APIは糞だぞ。 > 例えば2つのトランザクションのうち後者が失敗しても前者をロールバックしたくない時とか考えてみたら? これなら2つトランザクションを打てばいいだけ。それで何の問題もない。 > トランザクションのたびに再接続するので良いケースもありうるけどそうじゃないケースもありうるよね ねえよ。具体的に挙げられないだろ。 open/closeがAPIにある場合の利点は、連続した同一DBに対する2つのトランザクションで、 ・open/transaction1/close/open/transaction2/close を ・open/transaction1/transaction2/close とでき、真ん中のclose/openを省ける分速度が稼げることだ。 しかしこの場合に、DB内部でキューイング機構を持ってこの余分なclose/openを自動的に省き、 ・ユーザ側で手動open/closeした場合と、 ・ユーザAPIはトランザクション単位で、DB内部で自動open/close で、パフォーマンスが全く変わらない場合、前者を使う理由がないだろ。 (現実的にはユーザ側でコネクションプールを実装する必要であり、 これの代替としてDB内部でキューイング機構を持っていてもパフォーマンスは変わらないはず) open/closeをユーザ側に見せている時、ユーザ側の解は以下で、 A. いちいちopen/closeして使う。 B. これがウザイから自前でラッパを用意し、 > アプリから見ると毎回、open/closeしてるように見える () ようにする。 C. さらにこれもウザイから、何らかの既存ラッパ(PouchDBとか)を使う。 だろ。俺はまずAを試し、スループットが全く出ないのでBにしたが、車輪の再開発感ありまくりだった。 コネクションプーリングするのが常なら、最初から付けとけよボケ、でしかない。 (なおPouchDBもdb.open必須。多分これがDBのAPIの標準形だからだと思う) : [sage] 2017/09/08(金) 19:23:19.38:pIgMfxSJ DBのAPIは意味不明で、そもそもオブジェクト指向にも反してる。 ユーザがやりたいのはread/writeであって、open/closeではない。 File.openの代わりにHDD.open+File.readというAPIにする奴がいたら、死ねでしかないだろ。 open/closeってもしかして今みたいなパケット相乗り回線ではなく、専用回線を掴んでいた時の名残か? : [sage] 2017/09/08(金) 19:24:30.23:pIgMfxSJ MDISのケースは多分、図書館内端末用の界面にそのままWebを接続しただけだろ。 この場合、見た目は問題なく動く。 リソース枯渇のケースはコードから落とすしかないが、レビューが新規コードだけなら無理だ。 (この場合は新規コードはほぼ無しで、問題は今動作しているコード内にあるから) おそらくMDISもB方式で、自前でコネクションプーリングしてる。 これは館内端末用で、端末に行列が出来ているかどうかは知る由もないから、closeはタイムアウトで10分とした。 ここまでは妥当な設計で、館内端末なんて高々数十台だし、問題なく動く。 問題はこれをそのままWeb側にも解放したことで、 この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。 本来は、 D. Webからの入力を受ける「仮想端末」を用意し、Web入力は一旦全部そこで受けてからDBアクセス。 E. open/closeを毎回やるようにする。(Aと同じ) のどちらかが必要で、本来はDの方がいいし多分そうしていると思う。 Dの場合はDDoS時にも館内端末は無傷で済む。 追加コードは仮想端末部分だけであり、既存コードには一切手を入れる必要がない。 Eの場合は全体のパフォーマンスが「いちいちopen/close」分だけ落ちる。 とはいえ真面目にDBを組んであればUIからでは見えないとも思う。 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。 (そうなっていない場合は全体ソースを見直す必要があり、現実的ではない) : [sage] 2017/09/08(金) 23:49:21.12:mcCYyLIS もうめんどくさいな君w DBへの接続とトランザクション境界を一致させた画期的APIを作って流行らせればいいよ? 一つのユースケースたけに特化したものとしては別にあっても悪く無いと思うよ ただなぜそういう設計のものが存在しないのか考えてからね : [sage] 2017/09/09(土) 01:02:01.91:al+wrNfN > ユーザがやりたいのはread/writeであって、open/closeではない。 そのうち二回のwriteを実行して二回目のwriteで エラーが起きた時に一回目のwriteもロールバックするために トランザクションがあるんですよ? : [sage] 2017/09/09(土) 01:12:33.18:al+wrNfN ttp://jump.5ch.net/?https://developer.mozilla.org/ja/docs/Web/API/IndexedDB_API/Using_IndexedDB#Getting_data_from_the_database データベースからデータを取得する よーし、今から customers テーブルのデータを読み込むぞー! var transaction = db.transaction(["customers"]); おい、ちょっとまて俺はdbオープンした時に 自動的にトランザクション実行するぞ! 全てのテーブルに対してreadwriteロックじゃ 誰も読み込みも書き込みもできない 俺はcutomersテーブルなんか触らないけどなwww こういう迷惑バカが居るから、openとトランザクションは別にするべき : [sage] 2017/09/09(土) 01:14:33.64:al+wrNfN open/closeのパフォーマンスを気にしてるのはお前だけだ 忘れろな : [sage] 2017/09/09(土) 01:16:06.59:al+wrNfN > 問題はこれをそのままWeb側にも解放したことで、 > この場合は一気に端末数が無限大になるのと等価で、コネクションが枯渇した。それだけだろ。 誰もコネクションが枯渇したなんて言ってない : [sage] 2017/09/09(土) 01:26:53.73:al+wrNfN 当たり前すぎることだが、MDISのシステムは 「1時間に400以上リクエストを送られると他のリクエストの処理が不可能になる不具合を含んでいた」 と言ってるだけで、 ウェブのクライアントが直接DBに接続したなんて誰も言ってない。 そもそもそんなことはできない ブラウザからデータベースに接続することなんてできない。 IndexedDBはお前、それブラウザん中に実装されてるもんだ。そこを勘違してたわけかw MDISのシステムはIndexedDBを用意してなんかいない。時代的に使ってすらいないだろう 本当に当たり前のことだが、 > D. Webからの入力を受ける「仮想端末」を用意し 仮想端末じゃなくて、普通はアプリケーション・サーバーっていうんだよ。 PHPだとウェブサーバーの場合もあるな。MDISも当然その仕組みだ > E. open/closeを毎回やるようにする。(Aと同じ) open/closeを毎回やっても、パフォーマンス向上のために内部的にデータベースに 接続しっぱなしにする機能がコネクションプールだ。正確言うと 前回のリクエストで使った(使い終わった)コネクションを使いまわす。 > 変更はopen/closeが内部APIで隠蔽されていれば数行、といったところか。 あははw ばーかwww アプリは毎回open/closeをしてるんだよ。 コネクションプールというミドルウェアがcloseした時になにもしないように置き換えてるんだよw : [sage] 2017/09/09(土) 01:27:51.16:al+wrNfN コネクションプールを行うためのミドルウェアが : [sage] 2017/09/09(土) 08:27:34.35:HacXztT4 少なくともコネクションプーリングを考えたヤツはopen/closeのコストが大きいと考えてる。 数十ミリ秒と数ミリ秒の差が影響するシステムもある。 : [] 2017/09/09(土) 11:05:16.16:2lDsKHBN 連想配列のキーに使用できる文字列の仕様ってどこに載ってますか? : [] 2017/09/09(土) 11:18:09.89:2lDsKHBN 連想配列にキーが存在するかチェックするのならinが速いな const o = { 'a': 1, 'b': 2, 'あ b': 3, }; const key = 'あ b'; const l = 100000; console.time(); for (let i = 0; i < l; i += 1) { key in o; } console.timeEnd(); console.time(); for (let i = 0; i < l; i += 1) { o.hasOwnProperty(key); } console.timeEnd(); //undefined: 5.921ms //undefined: 9.741ms : [sage] 2017/09/09(土) 11:31:15.85:LLd0E2c+ 連想配列ならMapが最強 従来のオブジェクト形式が良いにしても o = Object.create(null)でo[key]の方が早い : [sage] 2017/09/09(土) 11:46:17.16:36A1ffms o[key] = 0 で破綻するやん : [sage] 2017/09/09(土) 11:50:30.88:al+wrNfN だからなんだよ。 トランザクションの話をしてる時に open/closeのコストを考えるなって話だろうが : [sage] 2017/09/09(土) 12:01:05.07:al+wrNfN > 連想配列にキーが存在するかチェックするのならinが速いな 一回あたり 59.21ナノ秒(=0.00000005921秒) 97.41ナノ秒(=0.00000009741秒) だと10万回〜100万回ぐらいチェックしない限り 速度を気にしたって意味なさそうだね。 : [sage] 2017/09/09(土) 12:42:11.18:gq9mYezw Object を連想配列にした場合、キーを、__proto__ にすると誤動作するから、 そのキーだけ、特別な処理が必要 他にも、使えないキーがあるかも : [sage] 2017/09/09(土) 12:46:58.91:al+wrNfN どういう時に __proto__ をキーに使ったの? : [sage] 2017/09/09(土) 14:34:12.81:gq9mYezw 英文から、すべての単語を取り出して、出現回数でも調べたのかな? どこかのサイトで、そういう質問を見た : [sage] 2017/09/09(土) 15:01:25.52:1mapG51j つい最近でオレが聞いた : [sage] 2017/09/09(土) 15:37:47.37:al+wrNfN そういう場合は、適当なプリフィックスをつけるだけで解決するね obj['@' + word] = なんとか : [sage] 2017/09/09(土) 16:00:58.16:3M7laixG Object.create(null)で作ったオブジェクトには__proto__は無いし自由に値を設定できるこれ豆 : [sage] 2017/09/09(土) 17:11:43.49:gq9mYezw Object.create() は、ECMA 5.1, IE9 以上か こういう機能が無かった、ES3 の頃の話かな : [] 2017/09/09(土) 19:32:09.22:JfRpRKzR chromeのdevtoolsからconsole.dir({})やるとオブジェクトの中身が見れるけど nodejsの場合はどうやって見るんでしょうか? : [sage] 2017/09/11(月) 09:40:29.07:vJ3AiMg+ ○次受けが多いほど退場率が早くなる。高くなる 直受けの50万 客:いつまでもうちにいていいよ 3次受けの50万(客は90万払ってる) 客:短期延長していい? 5次受けの50万(客は150万払ってる) 客:作り終わったらとっと出てけ できなかったら即退場だ 長時間労働 高稼働 高スキル要求が多い フリーランスサイトを運営している零細ITの自称エージェントは労働市場から流れてくる案件を転売してるだけだった。 労働市場に加入すれば誰でも案件に応募することができた。収入が40万50万台にならなくて済む エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×3 = 言い値50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - エージェント×1 悪質な言い値で50万以下 エンド - ユー子 - エージェント-JIET 公表価格 90~60 - JIETに加入して公表価格で応募できる eJobgo JIET JISA で検索 優良エージェント・優良サイト 首都圏IT(PE-BANK) プログラマーズ : [sage] 2017/09/12(火) 14:01:13.14:yQ6PO1c5 ttp://jump.5ch.net/?https://github.com/rook2pawn/node-ddos 調べ物をしている最中にこんなの見付けたんだけど Httpdがリクエスト受け取ってる時点でDDoS対策にならないんじゃないの? : [sage] 2017/09/12(火) 14:33:55.38:ziqXdae+ 動作の軽いリバースプロキシ立ててそこで対応するほうがよさそう : [] 2017/09/12(火) 15:30:08.72:bSzAw540 node 8.0ってimpotr対応してないの? : [sage] 2017/09/12(火) 18:35:03.20:e3er3ToK Chromeですら対応したというのに・・ : [sage] 2017/09/12(火) 18:49:24.80:BAm9hYWq node 8はこの秋LTSになるんだからアグレッシブに最新機能は入れないよ node 9には入る : [sage] 2017/09/12(火) 21:29:56.96:LuYVlbWB くそっ、typoかよ騙された : [] 2017/09/15(金) 21:47:46.74:v6+6iXpW どういうこと?くわしく : [sage] 2017/09/15(金) 23:16:55.75:AmSlTqPm const o = { a: {name: 1}, b: {name: 2}, }; ↑をObject.create(null)で作りたいんですけど const z = Object.create(null); z.a = Object.create(null); z.a.name = 1; z.b = Object.create(null); z.b.name = 2; console.log(z.a.name, z.b.name); こう書くしかないんですかね?これだと読みづらくて1番目のようにデータが見やすく作る方法ってないですか? : [sage] 2017/09/15(金) 23:30:32.45:Xh3vGrxx なんでObject.createしばりなの? リテラル使っちゃだめな理由は? : [sage] 2017/09/15(金) 23:36:18.16:QyBaQfPQ を読め とかを読め : [sage] 2017/09/15(金) 23:40:38.42:wJEpgv7W リテラルじゃ継承されるからじゃね : [sage] 2017/09/16(土) 00:01:15.52:xdW9+GRk Object.assign(Object.create(null), { a: {name: 1}, b: {name: 2}, }) ; undefinedと比較 : [sage] 2017/09/16(土) 00:09:23.95:YClTS+Ib Object.assignはシャローコピーだからと同じじゃない undefinedとの比較はとは違うしどっちみちundefinedを値として使うと破綻する : [sage] 2017/09/16(土) 00:18:50.51:gf/ZkNkm え〜〜、Object.prototypeのプロパティに被る可能性があるからっていう理由で みたいな書き方になっちゃうの。。。用途によるんだろうけど何とも言えない気分 : [sage] 2017/09/16(土) 00:36:48.84:NSNMTUH3 使うプロパティの種類が限られてるなら 気にする必要ないだろ : [sage] 2017/09/16(土) 08:30:48.03:7pQmikz8 jqueryから$を取り上げよう : [sage] 2017/09/16(土) 08:33:39.21:NSNMTUH3 また新しいライブラリを作ろうって話かよ。 lodashでできるんじゃね? : [sage] 2017/09/16(土) 09:45:53.23:7pQmikz8 簡単な関数だよ $(name1, value1 ...) でみたいな事をすれば良い : [sage] 2017/09/16(土) 09:57:17.44:NSNMTUH3 そうするとjQueryと勘違いされるから 違う関数名のほうが良さそうだね : [sage] 2017/09/16(土) 11:34:59.96:C+9D3UXm にわかばっかだなここ { __proto__: null, a:1 } を使えば良いだけだろ…… その程度も知らないようじゃJSer失格 恥ずかしいよほんとに : [sage] 2017/09/16(土) 18:21:39.65:/o2/v2Gm chromeのdevtoolsのコンソールでconsole.log.を補完すると色々でてくるんですが、 console.logの中にはnameってプロパティがあるんですがこういうのはObject.getOwnPropertyNamesで取れました console.log(Object.getOwnPropertyNames(console.log)); console.logに含まれるhasOwnPropertyとか__proto__とか__defineGetter__なども関数とか for (let v in console.log) { console.log(v); } じゃとれませんでした どうやって取るんでしょうか? : [sage] 2017/09/16(土) 18:46:19.62:GikFp8do もはやnode.jsの話じゃないな node.js使わずchromeでやってるんだからわざとやってるだろ まずはjavascript prototypeでググれ それで分からないことはどこかのjavascriptスレで聞け : [sage] 2017/09/16(土) 21:08:44.37:qXL21HWW ????????????????? : [sage] 2017/09/16(土) 21:17:16.00:fS24z2RM バッドノウハウ多すぎ!!!!!!!! : [sage] 2017/09/17(日) 09:39:33.63:FQFctnSq chromeのコンソールでconsole.logした方が解析しやすいじゃん バカなの? : [sage] 2017/09/17(日) 18:24:28.11:bBG8AL9E getOwnPropertyNamesは名前の通りOwnなプロパティしか取れん for-inは継承を遡るが、列挙不可にされてるプロパティは取れん ビルトインプロパティは基本的に列挙不可されているので 結局for-inでも殆どOwnなプロパティしか取れん それを取るには、__proto__を繋げていって一つ一つにgetOwnすること : [] 2017/10/16(月) 07:08:15.82:x77nDEIG ttp://jump.5ch.net/?https://nodejs.org/en/ の、8.7.0 Current をインストールしました。 で、 node.jsを立ち上げ、 .helpは通るのですが、 $ node や、 $ node -v は、 SyntaxError: Unexpected identifier になってしまいます。 どうすればいいでしょうか? : [sage] 2017/10/16(月) 07:58:53.13:BYvG9erR コマンドプロンプト・PowerShell で、 node -v とコマンドを打つと、そのコマンドの実行ファイルを、OS が探す必要がある つまり、その実行ファイルの場所を、環境変数PATH などで、OSに教える必要がある 環境変数PATHに指定していなくても、 絶対・相対パスで指定すれば、実行できるはず Windowsのパス(PATH)の読込順 と起動される順番 ttp://jump.5ch.net/?http://takuya-1st.hatenablog.jp/entry/20110116/1295188903 : [] 2017/10/16(月) 08:26:32.58:x77nDEIG レスありがとうございます。 では、どうやればいいのでしょうか? node.exeは↓にあります。 "C:\Program Files\nodejs\node.exe" : [sage] 2017/10/16(月) 08:44:36.72:H4ZQF/LB これはひどい : [] 2017/10/16(月) 09:14:18.01:x77nDEIG インストールした、 node.jsのコマンドプロンプトみたいな所に、 ..helpを打てば、 ↓を返してくれる。 .break Sometimes you get stuck, this gets you out .clear Alias for .break .editor Enter editor mode .exit Exit the repl .help Print this help message .load Load JS from a file into the REPL session .save Save all evaluated commands in this REPL session to a file しかし、 $ node -vを打っても、 エラーになってまう。 これは不思議なことだと思わないかね? : [sage] 2017/10/16(月) 11:09:57.97:FZpcfz8T 思わんよ お前だからな : [sage] 2017/10/16(月) 15:17:21.46:kN1YFDVK なんでそんなレベルでnode.jsインストールしようと思ったんだろ : [] 2017/10/16(月) 19:08:59.31:x77nDEIG ttp://jump.5ch.net/?https://www.webprofessional.jp/beginners-guide-node-package-manager/ このページの黒い部分でいうと、 > console.log('Node is running'); や > .help これは、 実行出来るのです。 この状態でバージョン確認をするにはどうすればいいのでしょうか? : [sage] 2017/10/16(月) 19:46:31.00:MK8giXG1 C:\Program Files\nodejs\node.exe : [sage] 2017/10/16(月) 20:38:10.52:VwEzpL/B > process.version : [] 2017/10/16(月) 20:56:45.49:x77nDEIG お、ありがとうございます。 通りました。 じゃ、私の環境で↓のコマンドが使えるようにするにはどうすればいいのでしょうか?ちなみに、バージョンは、v8.7.0でした。 $ which node $ node --version : [sage] 2017/10/16(月) 21:14:41.96:VwEzpL/B 849が書いてくれてるようにPATHが通ってないんだろうからPATHを通す パスの通し方とかでググって コマンドプロンプト使う時の基本だから : [sage] 2017/10/16(月) 21:32:19.39:dl4DNYXd windowsとlinuxの違い、コマンドプロンプトとnode起動後のコンソールの違いが理解できてないっぽいな $は入力するものじゃないしwitchコマンドはwindowsにはない : [sage] 2017/10/16(月) 23:57:03.44:BYvG9erR 例えば、コマンドプロンプトで、 where notepad と打てば、メモ帳の実行ファイルの場所が、表示される where node と打てば? : [] 2017/10/17(火) 01:14:58.50:ISfP7NF8 皆さん、レスありがとうございます。感謝します。 ちなみに、 コマンドプロンプトで、 C:\Windows\system32>where notepad と打つと、 C:\Windows\System32\notepad.exe C:\Windows\notepad.exe と表示されます。 さらに、 C:\Windows\system32>where node と打つと、 C:\Program Files\nodejs\node.exe と表示されます。 さらに、 ttp://jump.5ch.net/?https://qiita.com/taiponrock/items/9001ae194571feb63a5e ここを参考にして、コマンドプロンプトに、 C:\Windows\system32>node --version と、打つと v8.7.0 と表示されます。 ってことは、「nodejsのパスは通ってる」ってことはないですか? さらに、コマンドプロンプトで、 C:\Windows\system32>npm --version と、打つと、コマンドプロンプトがどこかに行って戻って来ません。 : [sage] 2017/10/17(火) 02:57:58.14:HKb0WdLR npm の仕組みについても、検索して調べて! 思い付きで、色んなコマンドを打っても、動かない C:\Windows\system32>node --version C:\Windows\system32> そもそも、ここは、Windows のシステム領域だろ。 こんな場所へは行かないし、ここからコマンドを打つことは、絶対にない 自分のホームディレクトリ以下に、プロジェクトフォルダを作って、 そこからコマンドを実行する プロジェクトフォルダ>node --version これで、コマンドが探せないのなら、 のサイトを見て、勉強する OS の仕組みについて、何年も勉強していなければ、 環境構築・システム運用はできない : [] 2017/10/17(火) 03:06:35.78:ISfP7NF8 つか、わかった。 スタートメニューに色々出来るけど、 nodejs と、 Node.js command prompt があって、 Node.js command prompt を立ち上げるべきを、 nodejs を立ち上げてたのだと思う。 : [] 2017/10/17(火) 03:18:05.69:ISfP7NF8 ttp://jump.5ch.net/?http://gihyo.jp/dev/serial/01/nodejs/0001 つかこれの、真ん中ぐらいの、 >を実行すると,コンソールに「foo」と出るのが確認できます。 これが確認出来ました。 ありがとうございました。 : [] 2017/10/17(火) 03:22:08.69:ISfP7NF8 しかし、nodejsも、Node.js command prompt も、 どっちもコマンドプロンプトみたいなもんだけど、ドコが違うんですかね? : [sage] 2017/10/17(火) 10:55:35.86:tiaX2vSA それを調べて糧にするのがお前の役目だろ : [] 2017/10/17(火) 11:29:12.47:ISfP7NF8 node.jsを使ってjQueryチックにWebサイトをクローリングする方法 ttp://jump.5ch.net/?https://liginc.co.jp/programmer/archives/4848 これが半分ぐらい出来たんですけど、 これをちゃんとやるには自分のpcにmysqlがインストールされてないとダメなんですかね? : [] 2017/10/17(火) 11:30:33.39:ISfP7NF8 私的には.csvのデータで十分なんだけど。 : [sage] 2017/10/17(火) 15:55:26.78:G9wCIPXR プログラミングの学習が目的ではないみたいだし 潔く諦めてGUIのスクレイピングツールを使え 自分で学ぼうとしないやつを いつまでも相手にするほどみんなヒマじゃないから : [] 2017/10/17(火) 19:05:26.58:OFQ0CJNG SQLiteおぬぬめ : [sage] 2017/10/17(火) 22:43:19.58:HKb0WdLR MongoDB, Redis など、NoSQL系DB で良い : [] 2017/10/18(水) 11:32:51.58:RFRRa2Hk KVS最強 : [sage] 2017/10/23(月) 09:02:07.81:2VeGFVWI windows10をFCUしたら node-notifierと言うライブラリが機能しなくなってしまいました。 呼び出すとエラーも出さずに消えてしまいます。 どこを確認すべきでしょうか? : [] 2017/10/23(月) 12:01:05.02:bv0ZvSeb クリーンなPCで検証 : [sage] 2017/10/25(水) 17:27:32.02:wXo7lKEI コレってnode.jsでGoogle Assistantを呼び出せるの? ttp://jump.5ch.net/?https://github.com/actions-on-google/actions-on-google-nodejs : [sage] 2017/11/02(木) 09:20:24.78:qskrUnxL 書いてあるだろ : [sage] 2017/11/02(木) 18:07:41.82:bLT6lfrr expressってproductで使われてんの? : [sage] 2017/11/02(木) 18:13:56.96:RicVp4Qn ツイッターもインスタグラムも使ってるよ : [sage] 2017/11/02(木) 19:46:41.59:cCQG4q+b koa使おうぜ : [sage] 2017/11/03(金) 09:20:41.79:tbSBcvrg 複数人体勢のexpressのほうが安心 koaは作者一人だから不安だから使わない : [sage] 2017/11/06(月) 21:16:07.71:tccVqtCS koaってexpressのミドルウェアそのまま使える。async await大好きマンに取ってはたまらない1品 : [] 2017/12/01(金) 17:33:36.24:Tsnnxn0j koa2+reactjsのdynamicで快適。 ejsやjadeを使わず、javascriptのみですっきり。 いいで〜 koa2+react。 : [] 2017/12/01(金) 20:58:49.48:dEoQxhVh うむ : [sage] 2017/12/02(土) 05:34:12.07:IJ6GXagf サーバサイドでreactってどういう意味? : [sage] 2017/12/02(土) 08:11:38.76:zj58uySz ssrじゃね? : [sage] 2017/12/02(土) 12:17:05.09:JzqKudWn ssrっていらなくね? : [sage] 2017/12/02(土) 13:37:03.76:iXlrNF2g ツイッターもインスタもNetflixもやってるぞ : [] 2017/12/04(月) 01:47:10.73:sdiyRgle メテオとかいうFWって死んじゃったんですか? : [sage] 2017/12/04(月) 20:47:28.49:EJPuWg3p 全体的に名前空間で仕切られてないこのグダグタnodeライブラリ。 10年後も、その時の最新のnodeで使えるんなほんまに。 : [sage] 2017/12/06(水) 19:36:04.95:GgcfIolq ん? SSRに何か問題でも? : [sage] 2017/12/06(水) 20:20:27.85:MyyqK5wy 鯖側の負荷が増える : [] 2017/12/12(火) 22:19:31.72:gHkSE4eN node.js難しいっていうイメージだったけど、 JavaScriptがウンコだったってことみたい なんでこんなに散らかってしまったんだ せめて書き方を統一しろよ : [sage] 2017/12/12(火) 23:49:28.08:gqOvSsDA ESLint使えば? : [sage] 2017/12/12(火) 23:57:54.77:8VRWkTHd なんでって20年以上も歴史のある言語で産まれたときとは用途も規模も全然違ってるからな : [sage] 2017/12/13(水) 00:01:47.40:pDkqMCU5 JavaScriptは言語仕様が使いにくいとは思う 小規模なら使いやすいかというと全然そんなことない : [sage] 2017/12/13(水) 23:32:59.98:dQY+CYRc 言語仕様に難しいところはない。 難しいと思う所言ってみな? : [sage] 2017/12/14(木) 01:12:30.76:JyoUxFOL プロトタイプベースなところ 使いやすいと思ったことがない : [sage] 2017/12/14(木) 01:32:58.14:LEbaYuuB プロトタイプなんて使うことないだろ? : [sage] 2017/12/14(木) 05:58:01.99:fEY/FzHm うむ : [sage] 2017/12/14(木) 05:59:02.65:fEY/FzHm 仕様が難しいというのと馬鹿の扱いが難しいのは別の話だな : [sage] 2017/12/14(木) 10:39:14.62:y5gxd1px ES2015に従えばプロトタイプってことを意識することはないかな。 既存のクラスにメソッド追加したいときとかなら意識するけども。 : [sage] 2017/12/14(木) 20:55:43.66:LEbaYuuB prototypeを使って簡単なことをするのと prototypeを使って複雑なことをするのでは 当たり前だけど難易度が違うのさ 既存のクラスにメソッドを追加するのは、 prototypeの簡単な使い方に含まれる 意味はわからなくてもいいから、こういう書き方をすればOK 程度の説明だけでもクラスにメソッドを追加することはできる : [sage] 2017/12/15(金) 02:24:03.53:OK9q/vji クラスだけじゃなく手続き型っぽくも書いたり はたまた関数型っぽくも書いたりするとこがどう書いていいか分からなくて難しいってことなんじゃない? 凄く冗長に厳かに書いたかと思えばハッキ―なテクニックも使ったりもするしね 世の中には「良い書き方は1つ」を目指してる言語もあるけどJSはその対極だからね 標準ライブラリが少ないという点もそう 俺はそういう点こそが好きだけどね : [sage] 2017/12/15(金) 07:18:04.72:18KhAamS OOPが常に最適解ではないというのは衆知の事実だしな。 俺は基本関数型風で書くのが好みで、データ型にtsのinterfaceが使えれば充分だ。 : [sage] 2017/12/15(金) 11:04:58.73:vwC80Nto node-redを使ってるんですが フローって作成するとメモリに常駐するんですか? 作れば作るほど実行してなくても他のフロー処理速度は遅くなっていきますかね? : [] 2017/12/15(金) 17:13:59.28:WQPs5rl9 パイプ演算子追加されれば関数型っぽく書くのが楽になるんだけどね 現状じゃ括弧のネスト増えるからとてもじゃないけど書けない : [sage] 2017/12/15(金) 17:30:06.75:nGMqwgOn 関数の合成も完結に書きたいしimmutableなデータ構造もネイティブにサポートして欲しいし そしたらパターンマッチも不可欠だし 関数型への道は険しい Elm使え : [sage] 2017/12/15(金) 21:51:56.77:OK9q/vji ES提案中のパイプライン演算子は当分奇抜な草案扱いだったが |>await|>など提案によりStage1の中ではHotになりつつある あとは?を絡めた関数定義を詰めるのと、Mixin周りの提案が勝負 そこをもう少しでも詰めればStage2まではいけるが、Stage3にはawaitの様なパンチが必要 頑張れ : [sage] 2017/12/15(金) 22:47:15.05:L7gVN0RS パイプだろうがドットだろうが大差ないだろw どうせ一行が長くなったら改行するんだから つまり foooooooooo() | baraaaaaaaaaaaa() | bazzzzzzzzzzzzzzz() でも foooooooooo() .baraaaaaaaaaaaa() .bazzzzzzzzzzzzzzz() でも同じだろと foo() | bar() | baz() でも foo().bar().baz() でも同じだろと : [] 2017/12/15(金) 23:37:27.58:WQPs5rl9 いや、メソッドじゃなくて関数 bazzzzzzzzzzzzzzz(baraaaaaaaaaaaa(foooooooooo())) と foooooooooo() |> baraaaaaaaaaaaa() |> bazzzzzzzzzzzzzzz() じゃ後者がいいやん? メソッドはクラスインスタンスに対してしか使えないけど、クラスインスタンスだとprototypeの関係でObject.assignなどが使えなくて不変プログラミングがやりにくいからね : [sage] 2017/12/15(金) 23:54:55.14:SRfxT1c6 パイプの方が可読性高いだけでもいいわ メソッドチェーンは読みにくくなるから嫌い : [sage] 2017/12/16(土) 00:14:10.39:plaGBrRo ttp://jump.5ch.net/?https://www.npmjs.com/package/babel-plugin-pipe-operator babel-plugin-pipe-operator Overload the pipe operator (|) to provide Elixir/F#/Shell-like behavior これ使えば今すぐ使えるのかな? : [sage] 2017/12/16(土) 00:18:33.91:ArLhqftT A | B | C たぶん、パイプだと並行処理する 1. Aが最初の1KBを処理する 2. 1の出力を、Bが処理する。同時に、Aは次の1KBを処理 3. 2の出力を、Cが処理する。同時に、A, Bは次の1KBを処理 : [sage] 2017/12/22(金) 09:15:33.73:8f8y8qIA これの第2引数って{anyway:true}みたいなのを渡せばいいんですか? ttps://i.imgur.com/0gmvmSq.png : [sage] 2017/12/22(金) 09:37:16.18:8f8y8qIA 合ってました自己解決しまひた : [] 2017/12/22(金) 21:07:59.68:dt9jytk4 socket.io 2.0.4で指定したルーム内の全てのソケットもしくは ソケットIDを取るにはどうしたらいいですか? socket.io 0.9.6ではio.sockets.clients(ルーム名)で取れていたのですが、 同じようなことを2.0.4でしたいです。 : [] 2017/12/22(金) 23:11:18.78:dt9jytk4 自己解決しました。 socket.ioのgithubに行ったら詳しいドキュメントがありました。 : [sage] 2017/12/27(水) 08:03:34.44:hw44w6Qj JavaScriptエンジン向けのポータブルなCommonJS実装ってどこかにないかな。 ピュアJSのモジュールシステムというとRequireJSがあるけど、あっちはいわゆるAMDだよね。 CommonJS使いたいとなるとやっぱりBrowserifyやWebpackとかしかないのかな。 : [sage] 2017/12/27(水) 14:23:29.84:LFgX9gcs 一年くらい前にブラウザのSW上に実装した記事をどっかで見たな : [sage] 2017/12/29(金) 09:12:07.30:LK61JUUB console.logを自前で実装しているんだけど、%cの扱いをどうしようか迷っている。 一応解釈だけして引数を無視するのと%c自体無視するのとどっちがいいかな。 Node.jsは後者みたいだけど。 : [sage] 2017/12/29(金) 12:21:26.51:LK61JUUB あぁそうか、Node.jsを前提しているコードで%cを使うことはまずないだろうから とりあえず前者にしておけばいいんだな。 : [sage] 2017/12/31(日) 21:37:45.29:9jWP4uLU クライアントサイドjavascriptのスレってどこにあるんですか? WebProg板にあるのかと思いきやあっちもサーバサイドだし : [sage] 2017/12/31(日) 22:08:43.06:beY0Iyii これ ttp://mevius.2ch.net/test/read.cgi/tech/1417749547/ : [sage] 2017/12/31(日) 23:43:06.40:B2mtcXzM web制作板 : [sage] 2018/01/01(月) 08:44:35.42:oE47bkuE ありがとん 3つめもあるとは想定外でした : [sage] 2018/01/07(日) 11:33:35.99:pcvnpBsv child_process.spawnSync()はプロセスの終了を待ち合わせるけど、workerにはそういう スレッドのjoin()のように待ち合わせる機能はないのかな。 : [sage] 2018/01/10(水) 11:06:47.57:AcbVN6ZK workerってWebWorkerのこと? それならSharedArrayBufferとAtomics APIでできるよ ただCPU脆弱性問題で今は無効にされてる : [sage] 2018/01/10(水) 22:10:28.26:oFasEgAN サーバーサイドでそれ無効にする必要ある? Webブラウザは様々なサイトのコードを実行するから 対策が必要だろうが サーバーにハッカーのコードを仕込まれたらその時点でもう終わってるじゃん : [sage] 2018/01/10(水) 22:13:57.25:NAqv0WmW いつの間にサーバーOS=シングルユーザーOSになったんだよw OSっていうのは複数の人が自分の権限で自分のコードを実行するもんだろ : [sage] 2018/01/10(水) 22:57:46.99:PVJi42Un 自鯖レン鯖ならともかくコンテナやVPSでメモリ共有する環境もあるしな : [sage] 2018/01/10(水) 23:40:19.20:ejeCAGvR 他のプロセスのメモリー内容まで簡単に読みに行けちゃうのはメルトダウンだけだよね? : [sage] 2018/01/11(木) 00:49:54.75:PrVjW9Sz ttp://jump.5ch.net/?http://blog.trendmicro.co.jp/archives/16735 読んだだけの 大雑把な理解だが、 カーネルのメモリを覗けるのがメルトダウン 同じコードを共有した他のプロセスのメモリを覗けるのがスペクター だと思ってる メルトダウンはカーネルのメモリを覗けるものだから カーネルが覗かれないように対策できる スペクターはアプリが覗かれないように対策する必要があるが その必要があるのは、例えばブラウザのような同じブラウザ上で 別々の人が作った任意のコードを実行するようなものだから 攻撃の前提を満たすのが難しい : [sage] 2018/01/11(木) 01:45:26.94:zDr2JTOQ この記事はいいね。 > その必要があるのは、例えばブラウザのような同じブラウザ上で > 別々の人が作った任意のコードを実行するようなものだから この場合のコードは実行コードの意味だろうから、つまりは同じDLLをリンクしてたらアウトで、 Linuxならlibstdcやlibmとか、ほぼ全部のアプリが使ってるだろうしアウトじゃね?と思うが。 同じアプリである必要はないはずよ。 : [sage] 2018/01/11(木) 09:18:34.65:gamfIHe5 Spectreの2つの亜種のうち 1つは同じプロセスの内容だけを覗けて もう一つは他プロセスの内容を見れるが、スーパーユーザー権限が必要って書いてあるようだけど? : [sage] 2018/01/11(木) 14:51:21.63:xvA5vOWN Spectreは2つ組み合わせて使わないと意味がない : [sage] 2018/01/13(土) 20:38:05.97:iJyUFjEF 一度でもasync/awaitを使ってしまうと、もう元には戻れない 楽すぎるぅぅぅぅぅ : [sage] 2018/01/13(土) 20:47:08.73:/br76GKn 便利やろ?babelさまさまやで : [sage] 2018/01/13(土) 22:03:52.60:xaNBQnI8 単発非同期にはasync-awaitで十分便利だけど イベントのようなものを扱うのはまだまだ難しい まず値が複数あるということ 一応for-awaitはあるけどreturn時に特別な最終処理を行いたい場合は 結局done:trueを見ないといけないから使えない また、イベントって標準on〜も結構な工夫がされてるけど、 イベントが起きた直後にセットしたハンドラで受け取りたいかどうかっていう問題がある この辺り最近ずっと個人的に研究してるが容易ではない : [sage] 2018/01/24(水) 19:25:24.68:BUPTScBe 最近node.jsを勉強しています。 socket.ioで質問なのですが、何か非同期処理していて接続が切れた場合、再接続したら その処理完了のメッセージは受け取れるのでしょうか、それとも接続が切れた段階で、キャンセルされますか? : [] 2018/01/24(水) 19:35:05.25:yxm2qYfd >接続が切れた もう少し詳しく : [sage] 2018/01/24(水) 19:42:51.25:BUPTScBe スマホでアクセスポイントが変わったりした場合、一回切れますよね? : [] 2018/01/25(木) 11:23:58.90:zPND7U3x 同じ切れると言っても切れてる時間の長さとか再接続でIPも変わるときと変わらない時でも違うんじゃね : [] 2018/01/25(木) 11:26:00.59:zPND7U3x TCPかUDPかとかでも違うんだろうけど socket.ioがどっちかは忘れた : [sage] 2018/01/25(木) 19:29:10.53:Jk7QmDIY socket.ioってクッキーみたいので、セッションID維持してて 切れても安心みたいな感じじゃないんですか? : [sage] 2018/01/26(金) 05:42:52.58:XyEr3Esl やってみろ : [sage] 2018/02/01(木) 14:15:55.68:zVItOEuq node.jsって人気ないな〜 解説ブログは古いし、間違ってるし、 こんなんで作ったらバグだらけやん : [] 2018/02/01(木) 14:21:50.49:XMp5TkVS はげそれ ブームは去った : [sage] 2018/02/01(木) 19:35:39.75:3VWe7l68 今は何が流行ってんの? : [sage] 2018/02/01(木) 20:52:06.68:6/askoF7 unity : [sage] 2018/02/01(木) 21:34:46.61:lSl6eIsr golangに持って行かれたね : [sage] 2018/02/02(金) 07:24:52.85:E+B1ekpI 結局、どう使うべきかわからないというのが問題なんじゃないかな 拡張機能があるけど、個々の機能はわかるけど、うまくピースがはまらないイメージ : [sage] 2018/02/02(金) 07:41:34.72:sggyuymU juliaもそうだった : [sage] 2018/02/02(金) 19:30:20.18:E+B1ekpI プログラムの設計思想がぴんとこない 非同期で時間のかかることやらせるならsocket.ioは必須なの? 切断したときにどう復旧させるの? 自分は何者で何をしてたかの情報をうまく組み合わせる必要ない? : [sage] 2018/02/02(金) 22:13:57.33:ISpZH99S どう使うべきかじゃなくて 自分が作りたいものを作る時に何を使うかだろ : [sage] 2018/02/03(土) 07:40:05.67:dVw1phCl そこが想像できない、よくわからないから抜け出せないので、使う候補に上がってこない : [sage] 2018/02/03(土) 09:00:51.63:C+glEnt3 世界的な事例のほとんどは バックエンドをマイクロサービス化 ↓ その前段のbffにnode.js これだからモノリシックなシステムには無縁 : [] 2018/02/03(土) 09:43:35.86:qWVkS+Es それだとgolangに負けるな : [sage] 2018/02/03(土) 09:48:29.04:q+B7XjZz bffでnode.js使うところはssrもやってるからgoは選ばれないんじゃね 結局そういうアーキテクチャの要請があってプロダクトが選ばれる : [sage] 2018/02/03(土) 10:20:29.26:k4L1joBU bffとssrって関係あるかねぇ? : [sage] 2018/02/03(土) 10:30:11.33:lOPjGEYQ isomorphic javascriptでググれ : [sage] 2018/02/04(日) 10:07:02.98:iEv00Bkz SNSのバックエンドをExpressオンリーにするのって無理かな : [sage] 2018/02/04(日) 14:58:55.91:WVo2r3Ik phpでもrubyでもいけるのにexpressじゃ無理かもしれないと思った理由は? : [sage] 2018/02/04(日) 15:27:37.16:B22IaXtA 一つのexpressにHTTPdからAPI鯖まで全部詰め込んでもいいんだぞ : [sage] 2018/02/04(日) 21:03:28.89:iEv00Bkz あまりそういう話を聞かないから 不都合全く無いの? : [sage] 2018/02/04(日) 21:25:10.40:UUFlqCAw expressはあんまり高水準のフレームワークじゃないしormはsequelizeくらいしかないしメリットなさげじゃね : [sage] 2018/02/05(月) 07:30:15.23:GXsl78kw node.jsでウェブサーバやる利点って何?超使いづらいんですけど : [sage] 2018/02/05(月) 12:00:21.59:ozQGTy2c 使う側は意識することないだろ : [sage] 2018/02/06(火) 06:03:09.31:xat7U2Z1 meteor.jsとか見てるとjsのメリットすごいけどね : [sage] 2018/02/06(火) 06:07:24.84:BAsI0MB0 ssrでしょ うん…… : [sage] 2018/02/07(水) 09:30:35.59:5vmiY3qq 一人しか利用しないなら使わなくていいんじゃないの。 : [sage] 2018/02/07(水) 18:55:54.33:GPioIT5w 素朴な疑問だけど ここのみんなは node.js でどんなサービス作ってるの? : [sage] 2018/02/07(水) 19:02:22.99:ob9DrvK1 特定業種にiPadごと配るアプライアンス的なサービスのBff なので事例には出しにくいけどバッチリ使ってる : [sage] 2018/02/07(水) 19:11:11.32:GPioIT5w そのiPadに入ったアプリが通信する先のサービスってこと? あとBffって何ですか? 無知ですまん : [sage] 2018/02/07(水) 19:19:56.30:IITgqAFh Backends for Frontends ttp://jump.5ch.net/?https://samnewman.io/patterns/architectural/bff/ : [sage] 2018/02/07(水) 20:36:41.69:GPioIT5w ありがとう、翻訳して読んだりしました 難しい gateway とか dispacher的なもの? nodeとnginxの関係を見た時nginxがbffの位置づけ? 見当違いならほっといてください : [] 2018/02/11(日) 15:29:51.01:6yH3qsLl socketを使う必要がってnode+expressがやりやすそうと考えて 独学でnode.js始めて(独学)1年くらいです sessionにredis使ってまして 通常のhttpとsocketでの共有が面倒なのですが 皆さん、どんな方法使ってます? : [sage] 2018/02/11(日) 15:43:11.62:xSFjw/ao socketってwebsocketのこと? node.jsではnetモジュールが提供するtcp用のapiが本来のsocketだから変な略し方すると話が通じないよ websocketならhttpで始まるからセッションは普通に共有できるはず websocketを使うのにsocket.ioを使ってるならそれも書いた方がいい 最近はsocket.io使ってる人が少なそうだからレスが付くかはわからんけど : [sage] 2018/02/11(日) 16:01:04.40:6yH3qsLl ありがと&ごめん socket.ioを使ったwebsocketでした websocket側からsessionのハンドリングに自分は var sockeio = require('socket.io')(server, {'transports': ['websocket']}); var io = sockeio.of(ns).on('connection', function(socket) { /** socket.request.session; * で拾える */ }); てなことしてまして、拾うのは楽なんですが session save するのに redisの該当データをupdate(set)するってことしてます これ普通ですか?アホですか あとsocket.io使われなくってるのは何故? : [sage] 2018/02/11(日) 16:29:55.16:d+jiviOC こういうユーティリティで便利なのがないかさがしてみるのも一手 ttp://jump.5ch.net/?https://www.npmjs.com/package/express-socket.io-session 昔はwebsocket使えないブラウザが多かったから他のプロトコルにフォールバックしてくれるsocket.ioが重宝されてたらしい 今はwebsocket使える前提でいいからフォールバックは不要なので豊富な機能が不要ならwsとかシンプルなモジュールで十分って感じ 再接続とか考えるとsocket.io便利そうだけどね : [sage] 2018/02/11(日) 16:40:57.21:6yH3qsLl express-socket.io-session 良さそ気 wsっかぁ、 自分を慰める理由が欲しいんだけど room機能実装するならwsじゃなくてsocket.ioが楽? : [sage] 2018/02/11(日) 16:46:20.51:XUA6USjD roomとか必要ならsocket.ioでいいんじゃない よく聞くのはそれと再接続目当てな希ガス : [sage] 2018/02/11(日) 16:47:48.35:A30L58fq お題が単に「room機能をとにかく楽に実装したい」ならgun.jsとかのほうが楽やで : [sage] 2018/02/11(日) 16:49:45.40:6yH3qsLl thankYou!!! 生きてく元気ちょっと出た : [sage] 2018/02/11(日) 18:35:48.00:aqz0aJT4 未だにpython2に依存してるのが残念すぎる : [sage] 2018/02/11(日) 18:40:40.49:qCYdb3sP 残念おっぱいそん2 : [sage] 2018/02/11(日) 18:57:55.27:A30L58fq なーにそれ?くわしく : [sage] 2018/02/11(日) 19:18:40.58:WzEjvwQn リアルタイムwebをいじりたいならmeteor.jsに乗っかるのも一つの手 : [sage] 2018/02/11(日) 19:27:38.72:soB6fX+V ビルドで使ってるgypがpython3に対応してないって話じゃね 開発元のgoogleでは対応済みなん? まだならnode側じゃどうしょうもない : [sage] 2018/02/11(日) 19:53:03.30:A30L58fq issue検索してみたけどgypへの依存なくせやって話もしつこく何回も立ってたんだね : [sage] 2018/02/11(日) 19:58:05.07:8+fCt4+r v8のビルドがgypならそれも無理がありそうだがなんか代替案出てるんけ? : [sage] 2018/02/13(火) 19:06:40.59:X+YiM6Et 今日ジュンク堂行ったらnode.jsの本2つしかなかった。 しかも入門書、やっぱりnode.jsオワコン? 他にwebsocketできるものなんてあるの? : [sage] 2018/02/13(火) 19:09:35.96:flHxC5Ds javaでもc#でも : [sage] 2018/02/13(火) 19:14:04.34:kAM/OKSF node.jsは全然オワコンじゃない es2015,6,7,8と毎年進化していく予定なんだから むしろこれから盛り上がるってなもんで : [sage] 2018/02/13(火) 19:20:12.25:X+YiM6Et 同じことやるにしてもjava勉強したほうがいいのかな C#はやらないけど : [sage] 2018/02/13(火) 19:21:38.52:esah1bhU node.jsもjavascriptも毎年大きなバージョンアップが確定だから書籍は出しにくいよなぁ : [sage] 2018/02/13(火) 19:22:12.35:s321QVV0 javaやるくらいならc#にしとけ : [sage] 2018/02/13(火) 19:24:14.62:X+YiM6Et windowsは使わないのでC#はいらない dockerをそろそろ勉強しないといけないので、dockerといっしょにjavaでwebsocketもやるかな : [sage] 2018/02/13(火) 19:26:02.48:WkRgLvef javaは死につつあるからgoの方がマシかな : [sage] 2018/02/13(火) 19:26:50.37:WkRgLvef なお次スレ : [] このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 673日 2時間 58分 16秒 : [] 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ ttps://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ ttps://login.5ch.net/login.php
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。