You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました ChromeがFlashを切ったことで、Webブラウザで動くプログラミング言語といえばJavaScriptだけとなっています。そんな中にあって、JavaScriptの書きづらさにストレスを感じる人も多いことでしょう。 もしあなたがPython好きであればJaspyを試してみてはいかがでしょう。なんとJavaScriptで作られたPython VMになります。 Jaspyの使い方 例として、デバッガーを通じてWebブラウザとコンソールで通信できるものがあります。 スレッドに対応しており、スレッドごとに停止やkillができます。 Jaspyはコード自体はPython風に書けるようになっています。有名なところではBrythonやPyPy.jsと同じようなソフトウェアです。速度的には劣るよ
前回は、Webアプリケーションにおける受動的攻撃の代表例として、以下の4つを挙げました。 クロスサイトスクリプティング(XSS) クロスサイトリクエストフォージェリ(CSRF) オープンリダイレクト クリックジャッキング 今回は、これらのうち、XSSについてより掘り下げて解説していきます。 XSSはどのようにして引き起こされるのか XSSとは、動的にHTMLを生成するWebアプリケーションにおいて、データをエスケープせずに出力しているために、生成されるHTMLに攻撃者の作成したHTML断片やJavaScriptコードが埋め込まれてしまう脆弱性です。 たとえば、検索画面にてユーザーが「HTML5」という文字列を入力すると、http://example.jp/search?q=HTML5というURLで検索結果が表示されるWebアプリケーションがあったとしましょう。検索結果の画面では、ユーザーが
MOONGIFTはオープンソース・ソフトウェアを紹介するブログです。2021年07月16日で更新停止しました WebフォームでCSVファイルをアップロードしてください、というのはよくある機能です。しかしCSV自体解析するのが大変だったり、ユーザが作成するのも一手間かかるのであまり効率的とは言えません。 そこで、ユーザにはExcelファイルをそのままアップロードしてもらいましょう。その際使うのはJS-XLSX、JavaScriptによるExcelファイルパーサーです。 JS-XLSXの使い方 JS-XLSXのデモです。ドロップしたExcelファイルを解析して、CSVにしています。 さらにJSONにもできます。 JS-XLSXを使えば、Webブラウザ上でExcelファイル(ODSも可)を解析してAjaxでJSONだけを送ると言ったこともできます。これならシステムで扱うのも簡単そうです。さらにJ
第14回HTML5ビギナーズで、JavaScript のデバッグ作業を短くする「多段式エラープルーフ」について発表してきました。 スライド speakerdeck.com コードのサンプル github.com まとめ JavaScript のデバッグ作業を素早くこなすなら、多段式エラープルーフが必要です。
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? JavaScriptにはむしろもっと抽象化がもたらされるべき - Qiitaという記事で、もう少し踏み込んだ話を書いてみました。 某所でReact.js界隈の人に聞きたいというフレームが発生したのだが、はてなブックマークでコメントしたらIDコールされたので、反論をここに書くことにした。(最近は技術系記事はQiitaにしか書いてないので)。 あくまで僕が考えるなので、JavaScript界の人達が本当はどう思っているかはわからない。そもそもJavaScriptを本格的にさわり始めたのごく最近なので、JavaScript界では異端かもしれな
JavaScriptから始めるプログラミング2016担当のdrafearです。 5/8(日)および5/15(日)にそれぞれ第一回、第二回を行いました。 このプロジェクトは、プログラミングが初めてな方や、パソコン自体を扱うのが初めてな方でも気軽にプログラミングに触れ、楽しくゲームを作りながら学んでいくプロジェクトです。 第一回では、拡張子や絶対パス、相対パスといった基本的なことから始め、早速C○○kie clickerのようなゲームを作りました。 ちょうどおやつの時間ともなり、お菓子テロに見舞われましたが、それぞれ個性溢れたゲームに仕上がり、良いスタートダッシュが切れたと思っております。 同日同時間に、京都でJavaScriptの勉強会イベント Kyoto.js | Doorkeeper が同時に開催されており、更に日曜日であるため参加者が少なくなるかと予想しておりましたが、 思った以上にた
ここでは三角関数を使った様々な計算の手法を学んでいきましょう。三角関数はあらゆる実装の基本となるため、この解説をおさえて応用のための基礎知識をつけておきましょう。 マウスの方向を向かせる 画面上の矢印を、常にマウスを向くように実装してみましょう。 サンプルを再生する サンプルのソースコードを確認する これ実現している主なコードは次の部分です。tickイベントの処理でマウスの方向を向くようにrotationプロパティーを変化させています。 // 時間経過 createjs.Ticker.addEventListener("tick", handleTick); function handleTick() { // マウス座標との差分を計算 var dx = stage.mouseX - arrow.x; var dy = stage.mouseY - arrow.y; // 差分を元に方向を
注意とお願い この記事の内容はもはや古いです。ここに書いている方法では動かないものをいくつか見つけました。参考にする際は動作をよく確認してから使ってください。 ひとつお願いがあります。「あれ、動かないぞ」というコードを見つけたら是非コメントか編集リクエストで教えてください。解決方法までなくても結構です。「これはもう動かないよ」という印をつけたいのです。 この記事はYou Don't Need jQueryの日本語訳と同じ内容です。 先日ひょんなことからYou Don't Need jQueryの日本語訳をさせていただきました。著者のCam Songさんからも快諾をいただけたので1、Qiitaでも公開させていただきます。 なお、本家の英語の説明は継続的にメンテされているので、この記事の情報は古くなっている可能性があります。 追記 この記事は当初は「もうjQueryは必要ない」というタイトルで
どうも、まさとらん(@0310lan)です。 みなさんは、「JavaScript」をどのような方法で学習されているでしょうか? お手軽な方法としては…、 ・書籍やブログ記事を読む ・勉強会・セミナーへ参加する ・友人や先輩に直接聞く ・学習向けのWebサービスを利用する ・etc... などが一般的でしょうか。 今回は、上記のリストに加えて、もう1つ有効な方法である「海外の無料動画」についてご紹介しようと思います! 「どうせ、英語だから…」と、つい敬遠しがちですが、海外ユーザーが作るプログラミング学習動画は、国内に比べて圧倒的に「質」が高いのが特徴です。 なかでも、特に解説が丁寧で理解しやすい動画だけを厳選しましたので、ぜひチェックしてみてください! ■「JavaScript」の基本を徹底的に学ぶ! まずは、JavaScriptを「どのように書いたら良いのか?」を丁寧に教えてくれる動画のご
無駄にラノベみたいに長いタイトル書いちゃったんですが、まぁやっぱり一言くらいは残しておくかと思ったので書きます。長いのでまとめだけでも見てもらえると良いかもしれません。 leftpadの話はかなり大事になっていて、Node.js界隈を中心としてその他のOSSをやっている全体的に話が波及しています。幾つかの記事を読みました。今回はJSの文化と歴史についてちょっとずつ書いていこうかなと思います。 本の虫: npmからkikとその他諸々が消されたまとめ 江添さんの話はすごくよくまとまっていて、ネタも含めた上で一番面白い話になっていました、ここで言われている下記の疑問に答えていこうと思います。 もっと憂うべきパッケージがある。isArrayだ。このパッケージは一日88万回もダウンロードされていて、2016年2月だけの一ヶ月間に1800万回もダウンロードされていて、72個ものNPMパッケージが依存し
概要 Proxyを使うとオブジェクトに対する様々な操作に割り込み、好きな振る舞いをさせることが出来る。 記事更新履歴 [2016/03/23] ES2016でenumerateトラップが削除されるのに対応 [2015/12/02] 公開 APIの概要 提供されるメソッド new Proxy( target<Object>, handler<Object> ) -> <Proxy> // targetオブジェクトを基盤としたプロキシを作る // プロキシへの操作を受ける関数を入れたhandlerオブジェクトを指定する Proxy.revocable ( target<Object>, handler<Object> ) -> { proxy<Proxy>, revoke<Function> } // 無効化可能なプロキシをproxyプロパティに持ち、 // 無効化するためのrevokeメソッ
Pure JavaScript で マークアップ言語を解析する際、JsonMLにコンバートするのが手っ取り早い。 けど、サーバーから取得したばかりのマークアップ言語のソースって、 Processing Instruction (XML宣言などの処理命令)や DTD用の <!doctype> 要素があって、 上手に無視してルート要素から解析したいのが本音。 で、表題の通り。 <!DOCTYPE> って、おまじないのように単純に考えていいのは、HTMLコーダー限定で、 本来は、マークアップの整合性を確認するためのルールをXML解析器に知らせる内容が列挙されてる。 <!DOCTYPE> 要素を用いてDTDを有効化するパターンは5種類かな。 1)[] の間に定義を書く(基本) <!DOCTYPE rootElem [ <-- 文書型定義 --> ]> 2) <-- 文書型定義 --> 部分をファイ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 春ですね!人の配置がリファクタリングされ、コードもリファクタリングの季節です。 では僕がここでモダンなJavaScriptとES2015の利点を語る役をやるので、みなさんはチームを説得する役をやってください。 JavaScriptの歴史 まず最初にJavaScriptの歴史を踏まえることで、今学ぶべきものとその理由を確認しましょう。 なぜ2016年の記事でES2016ではなく、ES2015なのか、と疑問に思った方もいるかもしれません。それは、ES2015がただの年次アップデートではなく、これから始まる毎年のメジャーバージョンアップの起点
Javascriptで正規分布の 乱数発生(rnorm)、確率密度関数(dnorm)、累積分布関数(pnorm)、累積分布の逆関数(qnorm) を実装する(逆関数は参照で)。すべて標準正規分布を想定。 Javascriptに限らず使えるアルゴリズムだが、日本語でまとまっている情報があまりないのと、ブラウザ上でA/Bテストなど有意性をみる検定などできたら面白いということでJSでやってみる。 正規乱数の生成(rnorm) 1行でBox-Muller法で。 Box-Muller法とは?
プログラムで使うことの多い「乱数」。ゲーム開発やビジュアルアート、ウェブサイトのアニメーションにおいて乱数は非常に重要で、さまざまな用途で利用されています。プログラムで一般に乱数と聞くと、すべての数値が同じ頻度(分布)で出現する「一様乱数」と呼ばれる乱数をイメージする方が多いと思います。 多くの場合はこの「一様乱数」で取得した乱数を用いれば十分でしょう。しかし、場合によっては「一様乱数」ではなく、偏りのある乱数を用いることでコンテンツの見た目や現象の「自然さ」を演出することが可能です。 実は「一様乱数」に一手間加えることで、乱数の分布の偏りを制御できます。今回は乱数を使用して好みの分布を得るためのパターンをいくつか紹介します。 乱数分布のシミュレーションデモ (HTML5製) 次のデモはリアルタイムで乱数の出現頻度を計算し、グラフに可視化するコンテンツです。画面下のプルダウンで乱数の種類を
何かJavaScriptのソースコードを機械的にチェックするためのツールを作りたいという場合に、JavaScriptのASTというものを触る必要が出てくると思います。 この記事では、その取っ掛かりとなる案内を簡単にまとめたものです。 ASTとは AST(Abstract Syntax Tree)はコードをパースした抽象構文木のこと。 JavaScriptの場合はJavaScriptオブジェクト(JSON)として表現されます。 コード: { "range": [ 0, 10 ], "type": "Program", "body": [ { "range": [ 0, 10 ], "type": "VariableDeclaration", "declarations": [ { "range": [ 4, 9 ], "type": "VariableDeclarator", "id": {
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く