タグ

ブックマーク / cpplover.blogspot.com (8)

  • C++の正規表現ライブラリ: std::regex

    いまさらながら、C++の正規表現ライブラリを調べている。 C++の正規表現ライブラリ、std::regexは、boost::regexを土台に設計されている。boost::regexの正規表現の文法は、perlなのに対し、std::regexは、ECMAScriptである。この理由は、しっかりと正規表現の文法が定義されていて、外部規格として参照できる品質のものが、perlには存在しないためだ。std::regexはposixと拡張posixとawkとgrepとegrepの正規表現にも対応している。 記事では、ECMAScriptの正規表現を使う。また、参考のためのECMAScriptのコードも使う。 全体一致 文字列全体が正規表現に一致するかどうかを調べたいとする var re = /1234/ ; var text = "1234" ; var result = re.test( te

    efcl
    efcl 2015/05/02
    "std::regexは、ECMAScriptである。この理由は、しっかりと正規表現の文法が定義されていて、外部規格として参照できる品質のものが、perlには存在しないためだ"
  • JavaScriptの自動セミコロン挿入

    JavaScriptでは、多くの文は、セミコロンという終端記号を明示的に記述して、文の終わりを示す。 var i = 0 ; ++i ; --i ; しかし、JavaScriptでは、一部の文脈で、セミコロンの省略が許されている。あたかも、セミコロンが自動的に挿入されたかのように振る舞う。これを、自動セミコロン挿入(Automatic Semicolon Insertion) ECMA-262 Edition 5.1 §7.9が規定する、自動セミコロン挿入の定義を、記事では解説する。 まず、三つの基的なルールがある。 プログラムを左から右にパースした時に、文法上許されないトークン(反則トークン, offending token)があった場合、以下の二つの条件のうちどちらかひとつ、もしくは両方を満たせば、セミコロンが自動的に挿入される。 反則トークンと前のトークンが、ひとつ以上の行終端子

    efcl
    efcl 2014/04/17
    自動セミコロンの仕様について 「あとからデファクトスタンダードとなった挙動を、ECMAScriptとして追認した形」
  • 本の虫: Bazaar-NG: 分散バージョン管理システムを7年ハックしてきて

    Bazaar-NG: 7 years of hacking on a distributed version control system Bazaarの開発者が、Bazaarが失敗した理由について、当時を振り返って書いている。なかなか面白い。 Bazaar-NG: 分散バージョン管理システムを7年ハックしてきて この7年間、筆者はBazaarプロジェクトに関わってきた。筆者はプロジェクトから距離を置き始めている今この時、筆者のこのプロジェクへの関わりや、何が良くて何が悪かったのかの意見などを、振り返ってみるべきだと思う。 この回顧録には多くの複雑な詳細が出てくるので、筆者の誤りもあるかも知れない。間違いを見つけたら知らせてくれ。 黎明期 < ddaa> dscmsには2種類ある。古臭いやつと、実験中なやつ。 2004年、筆者は、 SambaのコントリビューターであるMartin Pool

    efcl
    efcl 2014/01/08
    Bazaarの歴史とアーキテクチャ
  • C++11参考書を完成させて売るべく作業中

    資金難により執筆を断念したC++11参考書は、当初クールなキッズが皆使うというGitHubで公開して、それで終わらせようとしていた。そのため、最初のコミットとそのメッセージは、以下の通りだった。 First and probably the last commit · 96a1a4d · EzoeRyou/cpp-book ところが、GitHubで公開すると、多くの修正のpull requestがやってきた。これは意外なことだった。もっと早く公開しているべきだったのだ。 どうやら、日人は成果に対しては対価を払うが、成果を出すための作業に対しては対価を払わないようだ。自由なソフトウェアでは、成果を出すための作業に金が出されるべきだと思うのだが、これは意外なことだ。日ではクラウドファンディングは根付かないのだろう。 とにかく、成果に対しては対価を払う人間がいるようだ。自由な参考書に対価を払

    efcl
    efcl 2013/11/01
    "日本人は成果に対しては対価を払うが、成果を出すための作業に対しては対価を払わないようだ。(...) 日本ではクラウドファンディングは根付かないのだろう。 とにかく、成果に対しては対価を払う人間がいるようだ。"
  • JavaScriptの難読化におすすめのサービス

    aaencode - Encode any JavaScript program to Japanese style emoticons (^_^) alert("Hello, JavaScript") という何の変哲もないJavaScriptのコードが、 ゚ω゚ノ= /`m´)ノ ~┻━┻ //*´∇`*/ ['_']; o=(゚ー゚) =_=3; c=(゚Θ゚) =(゚ー゚)-(゚ー゚); (゚Д゚) =(゚Θ゚)= (o^_^o)/ (o^_^o);(゚Д゚)={゚Θ゚: '_' ,゚ω゚ノ : ((゚ω゚ノ==3) +'_') [゚Θ゚] ,゚ー゚ノ :(゚ω゚ノ+ '_')[o^_^o -(゚Θ゚)] ,゚Д゚ノ:((゚ー゚==3) +'_')[゚ー゚] }; (゚Д゚) [゚Θ゚] =((゚ω゚ノ==3) +'_') [c^_^o];(゚Д゚) ['c'] = ((゚Д゚)+'

    efcl
    efcl 2011/11/27
    エンコードは難読化に入るの? http://ym405nm.ddo.jp/decode.html
  • 本は死んだ

    The “book” is dead [dive into mark] JavaScript: The Definitive Guide Sixth Edition pdf download ebook - davidflanagan.com オライリー JavaScript(通称サイ)の作者、David Flanaganのブログに関して、Google社員のMark Pilgrimが反論している。 オライリー JavaScript 第5版の作者である、David Flanaganが書いている。 この15年というもの、私は成功した作家の一人であった。自分と家族のい扶持を、の印税収入だけで得ることができたのだ。しかし、出版業界は斜陽であり、私の印税収入も、ドットコムバブルの崩壊よりこのかた、下がる一方である。私は、サラリーマンとしての就職口を見つける必要があると結論した。 15年という

    efcl
    efcl 2011/05/01
    サイ本の著者David Flanaganに対するGoogle社員の反応。Googleのサジェスト
  • 本の虫: 確率分布の使い方

    C++0xのstd::randomには、様々な分布クラスが存在する。一体どうやって使い分ければいいのか。ここでは、ゲームにたとえて考えてみる。 もっとも簡単な分布は、一様分布(Uniform distributions)である。これは、a ≦ i ≦ b, の範囲の値iを、それぞれ等しい確率で返す分布である。 ゲームでいえば、サイコロやルーレットなどの実装に使えるだろう。 // 六面サイコロの実装 int main() { std::mt19937 rng ; // 一様分布 // 0から5までの数字を等しい確率で返す分布 std::uniform_int_distribution<> dice(0, 5) ; int a[6] = { } ; // 六面サイコロの出た目の回数を記録する配列 // 600回サイコロを振る for ( int i = 0 ; i != 600 ; ++i )

    efcl
    efcl 2011/03/07
    一様分布、ベルヌーイ分布、ポアソン分布、正規分布 それぞれの使いどころについての解説
  • とあるjavascriptの画像生成

    元ネタ:とある櫻花の画像生成、とある画像の自動生成<ジェネレータ> HTML5のcanvasを使ってやっつけ仕事。グラデーションは面倒なのでやめた。SilverLightやサーバーサイドは、もはや過去の遺物である。これからはクライアントサイドのみで、これぐらいやるのが当たり前になるべきだ。フィード経由で閲覧している人は、ご面倒ではございますが、直接見ていただいくようお願いいたします。 主要ブラウザでテストしてみた結果。 Chrome, Safari: 完璧 Firefox: なぜか@MS ゴシックが意図通りに描画されない。 Opera: canvasの文字列描画をサポートしていない。 IE: えーと……とりあえずお前はカエレ。 グラデーションは、思いのほか簡単だった。 Anonymous said... 私はWindowsでSafari 4を使っていますが、振り仮名(インデックス)の部分が

    efcl
    efcl 2009/12/23
    canvasでとある画像の自動生成
  • 1