Kyoto.js 12発表スライドです。 https://speakerdeck.com/fand/hurontoendonizhi-xu-woqu-rili-sufang-fa の続編です。

Kyoto.js 12発表スライドです。 https://speakerdeck.com/fand/hurontoendonizhi-xu-woqu-rili-sufang-fa の続編です。
以前、オセロの対戦AIの作成しましたが、そこでは実装を簡略化する為に盤面の価値を 盤面の価値 = 自分の石の数 – 相手の石の数 という単純な方法で決めていました。 でも、これには問題があります。 同じ石でも配置場所によって価値は異なるはずです(例: 角は最強)。それが考慮されていません。ゲーム終盤になってくると石の数が重要になってきます。でも序盤から石の数を重視するのは方向性としておかしいです。 という訳で、 序盤から中盤では石の配置場所を重視する終盤では石の数を重視する 形で盤面の価値を算出すれば、結構良さそうなAIになりそうです。 しかし、今度は 「序盤」「中盤」「終盤」をどのように区別するのか?石の配置場所の強弱はどう決めるのか?同じ配置場所でも周囲の状況次第で強弱が異なるのでは? という問題が出てきます。これは作るのが面倒臭そうです。 どうにかしてお手軽かつそこそこ強そうなAIを
「Reactが素晴らしい理由は、UIをアプリケーションの状態の純粋関数にできるからだ」いうような話を聞いたことがあるでしょう。しかしそれだけではなく、不変性と仮装DOMを利用して動作するということも聞きますよね。その上、保存、読み込み、取り消し、それにタイムトラベル・デバッグと呼ばれるすごい機能まで自由に手に入れられる。でも知っていますか? Reactの核となるアイデアを利用し、その恩恵に預かるのにこれらのことは必要ありません。jQueryの数行にしてお見せします。 <span id="colored-counter">0</span> <input id="color"></input> <button id="inc"></button> <script> $('#color').on('keyup', function () { $('#colored-counter').css('
規約ってほどでもないけど、jQuery でコード書くときは以下みたいな感じで書くことが多くなった。 どう書こうが好みだろうけど、jQuery オブジェクトに $ を付けるくらいはしといたほうがよい。
JavaScriptのプログラミングに関するTips集。 主に中級レベルの話題とノウハウを掲載する。 なお,JavaScript初級〜中級をクイズ形式で網羅的に学習するためには,下記のエントリを参照。 JavaScriptの動かないコード (JavaScriptエラー集) http://language-and-engineering.hatenablog.jp/entry/20080912/1221297779 ※JavaScript以外のプログラミングについては,こちらを参照。 ピュアJSを極める: JavaScriptで,クラスを継承する方法 (複数のサブクラスから共通クラスのプロトタイプを参照する) JavaScriptでの例外設計 (throw,try-catch-finally構文のイメージと利用パターン) JavaScriptで,動的に追加されたイベントリスナの実行順序を保
$('textarea').textcomplete({ // mentionは単なる名前で意味はありません。 // 分かりやすい名前をつけてください。 mention: { // 必須設定 match: /(^|\s)@(\w*)$/, search: function (term, callback) { // callback には文字列の配列を渡す $.getJSON('/search', { q: term }) .done(function (resp) { callback(resp); }) .fail(function () { callback([]); }); }, replace: function (value) { return '$1@' + value + ' '; }, // 任意設定(下記はいずれもデフォルト値) index: 2, maxCount:
JavaScriptでは、初見の人にはさっぱりわからないけれども、ある程度慣れた人は当たり前に使うイディオムが結構たくさんあります。知ってしまえば何てことはないので、私の知っている限りのイディオムとその意味を解説します。 (7/3追記: twitter等で教えていただいた内容を追加しました) +v (数値化) var v = "123"; console.log(+v + 100) // 223 console.log(v + 100) // 123100 vを数値化する方法では最もメジャーです。parseFloat(v) に比べて高速なのに加えて、parseFloatとは細かい挙動が異なります(例えば空文字列の場合、parseFloatならば NaN になりますが、 +v の場合はゼロになります)。必ず数値になることが保証されており、文字列などで数値化出来ない場合はNaNが返ります。 v
nettuts+で、あまり知られていない便利なJavascriptライブラリが紹介されています。 ざっとご紹介。 ・IE6での透過PNG表示を可能にする、DD_BelatedPNG ・好きなフォントでテキストを表現する、Cufon ※日本語非対応 ・Firefox以外のブラウザでもFirebugを利用可能にする、Firebug Lite ・Webページ上でSVGのシェイプを描画する、Raphael JS ・使っているブラウザがHTML5とCSS3をサポートしているかを調べる、Modernizr それぞれデモが見られるのと、ソースをダウンロードできるので、ぜひ見てみてください♪ » 5 Lesser Known JavaScript Libraries that Make Web Design Easier 友人とランチ。久々の中華でおいしかったぞ。
夏休みはタイ古式マッサージセミナーに参加してきました。agoです。 先週日曜日若手IT勉強会に参加させていただき、jQueryのコードリーディングを行ってきました。 そこでjQueryのコードを読むときの基礎知識に関して簡単にまとめてみたいと思います。 1 変数の複数同時宣言と代入 まず、JSでは変数の宣言は以下のような形式で行います。 var hoge; この場合は単一の変数の宣言ですが、以下のような記述を行うと複数の変数を同時に宣言することが可能です。 var hoge, huga; また、変数宣言と同時に値の代入を行うことも可能で、その場合以下のような記述になります。 var hoge = 'test'; さらに複数の変数宣言と、値の代入は同時に行うことが可能で、その場合以下のような記述になります。 var hoge = 'test1', huga = 'test2'; jQuery
no title インタラクション2007で産総研の松坂氏が発表されていました。まさか顔検出がブラウザで動く時代になったとは... いろいろ言うより見てもらった方が早いので、動画を用意しましたよ。もう顔バレとかどうでもいいやー。 Facekit - Control google maps with your face 顔の向きでGoogleMapを操作するデモです。ページはこちら わかりにくいけど、画面の下端に「front/right/left」って顔の向きが表示されてる。 カメラと顔の距離でズームもできてる。 PCカメラを持ってる人は、公式ページにサンプルが用意されているのでぜひ試してみてください。 実装はFlashっぽいですけど、利用の際はJavaScript側から叩くだけでいいみたいです。 これもサンプルコードを見てもらえばいいんですけど、ものすごく簡潔。感動した!Enjoy! 以下
ブログや開発者向けのWebサービスなどで、ソースコードのハイライトを行うケースはよくある。言語があらかじめ決まっている場合は良いが、言語がよくわからない場合や、JavaScriptとHTMLのように埋め込みで複数の言語が重なる場合もある。 各種言語に対応したハイライター そのような、特定の言語に依らずにソースコードをハイライト化したい場合に便利なのがこのライブラリだ。 今回紹介するオープンソース・ソフトウェアはGoogle Code Prettify、JavaScriptによるソースコードハイライターだ。 Google Code Prettifyの使い方は簡単だ。prettify.jsとprettify.cssを読み込んで、<pre class="prettyprint">または<code class="prettyprint">タグの中にコードを書き込めば良い。後はprettyPrint
概要 JSmartyはPHPのSmartyを模したJavaScriptで動くテンプレートエンジンです。テンプレートAPI部分についてはSmartyを準拠しており、それ以外にも文字列処理が便利になるようにAPIを提供します。 デモ http://www.starmsg.net/samples/JSmarty/plugin.html ダウンロード http://code.google.com/p/jsmarty/downloads/list Hello World!! <script src="JSmarty.js"></script> <script src="JSmarty/Compiler.js"></script> var smarty = new JSmarty(); smarty.assign("foo", "Hello World!!"); smarty.display("str
PigPGP 0.2.3a JavaScriptによる1024-bit RSA 暗号系 日本語 English 2004年2月2日 (FIX: 2010-11-25) 概要 PigPGP は JavaScript 上の RSA暗号の実演で、 巨大整数演算ライブラリ bigint.js v0.5 beta23a を使って実装されています。 このデモについては、次の記事で詳しく説明してあります。 「JavaScript: 触って分かる公開鍵暗号RSA」 Netscape 4.06以上、IE 4.01以上で動作します。PGP/GPGとの互換性はありません。 フィードバックはにお願いします。 Chagelog 1024ビットサポート。実用というより理論的実験。 細かい修正・改善。 注意: 1024-bitは時間がかかります(例えば10~30分程度)。 1024ビットは「私はクレイジーです」をチェッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く