正規表現と構文図について解説します。オートマトンについても詳しく述べます。オートマトン・スゴロクで遊びましょう! 世間でよく知られている/使われている概念・方法にはこだわらず、僕(檜山)の感覚で一番わかりやすいと思われる筋書きと用語法/図式法を使って説明します。この記事に目を通して“感じ”が掴めたら、形式言語理論の教科書を読み始めることが出来るでしょう。 [追記]この記事の内容に対する具体例は、「正規表現とオートマトン:なんだ簡単じゃん、JavaScriptによる実装」にあります。[/追記] 内容: 正規表現 正規表現の例 構文図 基本記号 連接 選択 省略可能 繰り返し ストレートワイヤーによるレイアウト調整 有限状態オートマトン 有限状態オートマトンの実行 バックトラックと先読み スゴロクとオートマトン コマをたくさん使うスゴロクと並列処理 非決定性オートマトンと決定性オートマトン 正
画像スライダーに関することならお任せ!なjQueryプラグイン「Slider Kit... 次の記事 ≫:かなりいい感じのWordPressテーマ20 Allan Jardine | Reflections | Visual Event ページに仕込まれたJavaScriptのイベントを全部見える化出来るブックマークレット「Visual Event」。 JavaScript で開発していて、jQuery等の各種フレームワークや、on〜 を使ってイベントを埋め込むことは多いですね。 後になって、どこにイベントがあるのかをすぐ見える化し、どのような処理が記述されているのか、確認することのできるブックマークのご紹介です。 当サイトにはそれほどイベントが組み込まれていませんので、Yahoo! Japanのトップページで試してみます。 ブックマークレットを起動すると、グレーアウトされ、エレメントの上
JavaScriptなぜJavaScriptで書いたかには触れないでください。試してみる:http://ajalabox.appspot.com/green/index.htmlGitHub:https://github.com/ajalabox/green名前GreenScript (緑茶)特徴LL(?)*1文法はJavaScriptに似ている(セミコロンの無いJavaScript)型毎に演算子の挙動を定義しているというか内部的には演算子は関数ブロックスコープさりげなくクロージャが使えるオブジェクト指向(現時点で配列以外のオブジェクトは作れない)プロトタイプベース(内部)実行速度が非常に遅いサンプル変数の宣言と代入 //値の宣言(var文は無い→後で作る予定) a := 2 b := 3 print(a, b) //2,3 //ブロックスコープ { a := 200 //新しいスコープで
以前こちらの URL で GET/POST を簡単にできるコードを書きましたが、問題があるとのことで多くの指摘を頂きました。zaru さんに正しいコードを書いて頂きましたので下記の記事をご覧ください。 PHP で凄く簡単に GET/POST 送信ができる関数を勝手に改良した | zaru blog 下記にコードを引用させて頂きます。いくらか稼働させた所 curl の方が安定していることが分かりましたので、こちらを引用させて頂きます。curl がインストールできない環境等では zaru さんの記事の別のコードを使用してください。 function wbsRequest2($method, $url, $params = array()) { $data = http_build_query($params); if($method == 'GET') { $url = ($data != '
こんばんわ。node.jsやってないとjavascriptのもぐりだと言われている昨今、いかがお過ごしでしょうか。 個人的には node.js は2回くらい飽きてしまって、3周目くらいです。 よく考えたらこのブログでは一度も node.js に触れてなかったなーと思ったのと、最近触ってないから忘れてそうだな...という思いからエントリにしてみました。 node.js が面白いと言われている理由の一つに非同期処理があります。そして非同期を面白くする題材として websocket があります。今日はその websocket を使って、サンプルを作ります。 物としては、twitter の filter stream から、instagr.am と picplz.com の画像URLを収集し、それをクライアントにブロードキャストします。クライアントはそれを受けて Growl 風にポップアップ表示す
1.1 ディレクトリ内の全てのファイルをリストする import sys, os if len(sys.argv) != 2: sys.exit("a single argument (the directory name) is required") try: filenames = os.listdir(sys.argv[1]) except OSError: sys.exit("can't open {0}".format(sys.argv[1])) for filename in filenames: print filename sys.exit(0) Pythonでは、opendir()/readdir()/closedir()を個別に呼び出す必要はなく、os.listdir()だけでファイル一覧を取得することができる。ただし、readdir()と違って、os.listdir(
9 Useful PHP Functions and Features You Need to Know | Nettuts 知っとくと便利なPHPのテクニック9つが掲載されていました。 初心者の方は勿論、PHPを長年使ってる人にも使えるテクニックが載っていましたので勉強がてらにメモ。 func_get_args() 関数で可変引数 を受け取る 通常、関数といえば、次のように引数と共に定義します。 function hoge($arg1, $arg2) { } のように定義して引数を受け取りますが、好きな個数で引数を受け取りたい場合は、次のようにfunc_get_argsで受け取れます。 function hoge() { $args = func_get_args(); foreach ($args as $key=>$value) { echo "arg{$key} is $value
Top 10 C Language resources that will turn you into a better programmer - C and C++ Programming Resources 今更 C 言語かと言われそうだが、Linux カーネルだって、我々が利用している LL 言語の多くだってこの言語で書かれているのである。ワタシ自身は未だどの言語よりCを愛している。 以下に C 言語に関してウェブに公開されている代表的なリソースを挙げていく。さすがに更新が長らく止まっているものが多いが、それでも有用な情報源には違いない。ネタ元は Hacker News。 C Programming Notes Programming in C - UNIX System Calls and Subroutines using C. C Lesson by Chris Sawtell
前書き Scalaという言語をご存知ですか? Javaと同じくコンパイルされるとclassファイルになり、実行時はJVM上で動作する、オブジェクト指向+関数型のプログラミング言語です。 Scalaを開発したのはJavaのgenericsの設計を手がけたり、javacの開発をしていた経歴も持つMartin Odersky氏。 Scalaは後発の言語ということもあって、Javaを書いている時に感じる冗長さに対する様々な解が用意されています。 本記事では、ScalaとJavaのコードを比較しながら、JavaユーザがScalaに移った際に得られるメリットを提示していきます。 尚、序盤のサンプルコードはJavaユーザに伝わりやすいように、returnを明記したり、メソッドは必ず{ }で囲むなど、極力Javaっぽい記述をしています。 だいたいJavaと同じような書き方ができます ScalaはJavaの
数が増えてきたので別記事に分けてみました。分類は超テキトーです。変態文法シリーズも足してみました。 手続き型言語 汎用スクリプト言語 Perl Perl基礎文法最速マスター - サンプルコードによるPerl入門 Perlオブジェクト基礎文法最速マスター - 燈明日記 Moose & Mouse基本文法最速マスター/The Fastest Way to Mastering Moose & Mouse - perl-mongers.org Ruby Ruby基礎文法最速マスター - Route 477 Rails基礎文法最速マスター - cod.note PHP PHP基礎文法最速マスター - Shin x blog php変態文法最速マスター - milieuの日記 Python基礎文法最速マスター - LazyLife@Diary VBScript 基礎文法最速マスター - CX's VB
先行き不安ながらもなんとかDiv1で戦うことができるようになったのを記念して、TopCoderに参戦してからこれまでのことを、つらつらと振り返りたいと思います。まぁこれが読まれる頃には次のSRMに参加してDiv2に落ちているかもしれないのですが・・・。 最初の一歩 一番最初にTopCoderにユーザ登録したのは3年以上前の学生時代の頃でした。 その頃に一度SRM(シングルラウンドマッチ)の過去問を解いてみて、2,3問ほど解くのに約1日ぐらいかかったように思います。 SRMというのは、問題が出題され、アルゴリズムを考えてコーディングして解くまでのスピードを競うゲームです。 (どういう問題が出題されるかというのは、TopCoder参戦記の方に問題の概要を張ってあるので参考にしてください。) 一回あたりEasy,Medium,Hardの三問出題され、各問題を解くごとに解いた時間と難しさを考
ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、この本は必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行本購入: 24人 クリック: 419回この商品を含むブログ (163件) を見る ということで、並行処理について、もうちょっと優しく分かりやすく解説できないか考えて書いてみます。 スレッドセーフにするには 今回は、プログラムをスレッドセーフにするためにどんなことを考えればよいか。そういうテーマです。 アンスレッドセーフなコードから この本の最初の方に、"スレッドのリスク"という章で、スレッド
新はてブ正式リリース記念ということで。もうリリースから何週間も経っちゃったけど。 新はてなブックマークではブックマークエントリをカテゴリへと自動で分類しているが、このカテゴリ分類に使われているアルゴリズムはComplement Naive Bayesらしい。今日はこのアルゴリズムについて紹介してみる。 Complement Naive Bayesは2003年のICMLでJ. Rennieらが提案した手法である。ICMLというのは、機械学習に関する(たぶん)最難関の学会で、採択率はここ数年は30%を切っている。2003は119/371で、32.1%の採択率だったようだ。 Complement Naive Bayesの位置づけは 実装が簡単 学習時間が短い 性能もそこそこよい という感じで、2003年段階にあっても、絶対的な性能ではSVMに負けていた。しかし、学習が早いというのは実アプリケーシ
先日、以下の記事で初めて作ったAndroidアプリを紹介しました。 一週間で初めてのAndroidアプリを作ってみました その後、そのアプリをAndroidマーケットで公開してみました。 はてブ閲覧用Androidアプリ「HTBPocket」を公開しました この一連の作業で参考にした記事やサイトについて、「Androidアプリ開発関連情報まとめ」としてまとめてみました。 開発環境構築まず必要になるのが開発環境です。以下はMacの環境構築です。MacにAndroid SDKをインストール (Update 2010.05.25) そして以下がWindowsでの環境構築です。私はやったことないのでよく分かりませんが(^^;;世界を目指せ!Androidアプリ開発入門:第2回 Androidアプリ開発のための環境構築 公式の開発情報公式の開発者向けサイトです。Android Developers
jQuery 1.5 beta1 のリリースノートを見ていたら面白そうな機能があったので紹介。 jQuery.subclass() でjQueryのサブクラスを作ることができる var MyjQuery = jQuery.subclass(); 作成したサブクラスには独自のメソッドを定義することができる。定義の仕方、使い方は通常のjQueryと全く同じ。 MyjQuery.fn.writeHello = function(){ this.text('Hello World'); }; MyjQuery('p').writeHello(); 通常のjQueryメソッドはサブクラスでもそのまま使える。サブクラスを作った後に追加したメソッドも使えるので、プラグインによる拡張と組み合わせても大丈夫。 MyjQuery('div').css('border', '1px red solid').wr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く