タグ

2014年12月17日のブックマーク (11件)

  • Parsing Expression Grammar - Wikipedia

    Parsing Expression Grammar(PEG)は、分析的形式文法の一種であり、形式言語をその言語に含まれる文字列を認識するための一連の規則を使って表したものである。PEGは再帰下降構文解析を文法を示すためだけに純粋に図式的に表現したものと見ることもでき、具体的な構文解析器の実装やその用途とは独立している。 PEGにおける構文(文法)の定義は文脈自由文法のバッカス・ナウア記法によるそれに似ているが、文脈自由文法では一般に「|」(縦棒、バーティカルバー)で表される「これらのうちどれか」ではなく、「最初の解析がうまくいったらそれを、失敗なら次を順に試してゆき、成功したものを採用」(「/」であらわす)という意味を使う。 このため、文脈自由文法とは異なり、PEGには曖昧さは存在しない。文字列を構文解析する場合、正しい構文木は常に1つしかない。このためPEGはコンピュータ言語の構文解析

  • Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering

    こんにちは、Service Reliabilityチームのいわなちゃんさん(@xcir)です。 先日、社内で行われたチューニングハッカソンではチームマイナス5500万としてVarnishをいれる簡単なお仕事をしてきました。 このエントリは GREE Advent Calendar 2014 17日目の記事です。 以前とある勉強会で 「varnishtestの使い方がよくわからない」 「別のツールを使ってテストをやっている」 という話を聞きました。 varnishはvarnishtestというテストツールがありますが、あまり利用されていないようです。 原因はいくつかあると思いますが、まずは実際のテストコード(VTC)を見てみましょう。 以下は公式のrollback機能のVTCです。 varnishtest "Test Rollback" server s1 { rxreq expect re

    Varnishでテストコードを書こう!~実践編~+Bodyを読もう! | GREE Engineering
  • 社会人10年目から始める競技プログラミングのすすめ - kuuso1のブログ

    これは、Competitive Programming Advent Calendar 2014の17日目の記事です。 競技プログラミングという世界を知って1年がたちました。結構飽きやすい性格の自分が1年ほどコンスタントに参加するという充実したプロコン(プログラミングコンテスト)ライフを送ることができた記念に、これからプロコンに参加してみようという方向けの記事を書かせていただきます。CPAC2014参加諸氏のような技術的に高度な内容は残念ながらなさそうですが(書けるものなら書きたい)、10年目エンジニア的視点で自分が感じたことを踏まえて「これはいいものだ」と思えたところなどを中心に振り返ることで、なんとかタイトル詐欺を回避したいと思います。中盤はお目汚し感が強いかも。。 経緯や参加したプロコンなど 半導体関連のメーカーで開発の仕事に従事していますが、2012年に職場都合で富山県に引っ越すこ

  • 第3回 宮川達彦―最先端のWebエンジニアのキャリア | gihyo.jp

    先を歩むエンジニアへのインタビューを通してエンジニアのキャリアについて考える連載、今回は古くからPerlコミュニティで活躍し、最近ではWebテクノロジ情報発信のポッドキャスト「Rebuild」が話題の宮川達彦さんにお話を伺いました。宮川さんは、筆者のクックパッドの同僚でもあります。 [撮影:平野正樹] プログラミングに興味を持ったきっかけ ─⁠─最初にプログラミングやエンジニアリングに興味を持ったのはいつでしょうか? 宮川:父親がプログラマだったので、コンピュータは小さいころから家にあったんですけど、プログラミングはしておらず、純粋にPCユーザとしてゲームとかで遊んでいました。プログラミングのきっかけは、東京大学に通い始めて、趣味でホームページや掲示板を作っておもしろいと思ったことですね。そのあと3年次に、理学部情報科学科を選択し学びました。それと前後して、大学の友達から「オライリー・ジ

    第3回 宮川達彦―最先端のWebエンジニアのキャリア | gihyo.jp
  • 渋谷のカジュアルなお店でデート | デートにおすすめのお店 | ヒトサラ

    いつもヒトサラをご利用いただき、ありがとうございます。 会員登録はお済みですか? 会員登録のメリット 1 あなたの「行ってよかった利用シーン」をお店に投稿して、外備忘録を作成できます。 2 あなたが撮った写真を投稿して、お店探しに貢献しましょう。 3 ネット予約でお得なヒトサラPOINTが貯まります。 会員登録をする 会員登録済みの方はログイン

    渋谷のカジュアルなお店でデート | デートにおすすめのお店 | ヒトサラ
  • 恋愛相談:新宿で初デートにオススメのお店教えてください (男性/20代後半/東京都) - マッチアラーム

    マッチアラームで知りあった方と初めて会うことになり、夜に事へ行くことになりました。 新宿辺りで初デートにオススメのお店を教えてください。 できればべログのURLを貼って頂けると助かります。

    恋愛相談:新宿で初デートにオススメのお店教えてください (男性/20代後半/東京都) - マッチアラーム
  • #16 あの娘と内緒に将棋を指したい - KAYAC engineers' blog

    tech.kayac.com Advent Calendar 2014の16日目です。 今回アドベントカレンダー初参加の森です。 今年も竜王戦が終わり、年末になってきた感がありますが、見ていると指してきたくなってきますよね。 そこで、仕事中に指せる将棋盤を作ってみました。コンソールでさせるリモート将棋盤です。これで、あなたも斜め前のあの娘と内緒で心と心の会話が出来ます。 そして、それがこれです。 どーん 色とか付いちゃっててバレバレ間は否めないですが、とりあえずすすめましょう。 まずは使い方からです。 使い方 まず、github からcloneします。 git clone git@github.com:kozakana/console-jchess.git bundle install --path vendor/bundle コードの準備が出来たところで、次はサーバーを起動します。 bu

    #16 あの娘と内緒に将棋を指したい - KAYAC engineers' blog
  • 2014年の振り返りと人気記事まとめ

    2014年の振り返りと人気記事まとめ もう何回かポストしそうな気もするけど、師走ということで振り返る時間があるうちに振り返る。 社内で活動してきたこと 年始からずっとPerformance Evangelist的な立場で社内に点在するWebサービスのチューニング活動をしてきました。草の根活動が功を奏したのか、社内でも少しづつパフォーマンスに関するリテラシーが生まれてきた(気がする)。 大きな体制変更を経て、現在は社内でも主力サービスの部署で今なお奮闘中。フロントエンドという領域は変わっていないけど、技術支援者という立場からは一転して、コードを書く人間に戻れた気がする。パフォーマンスという観点とはまた違う形でサービスに貢献することに挑戦中。 社外で活動してきたこと ありがたいことに、東京を含めて各地で登壇させてもらう機会を頂いたり、WEB+DB PRESSで連載を書かせてもらったり、HTML

    2014年の振り返りと人気記事まとめ
  • Git入門:Git初学習者のための効率的な学習方法を考えてみた

    記事は,Git Advent Calendar 2014の13日目に投稿させて頂いた記事です. モチベーション 自分を成長させながらいかに効率的に技術を伝承するかが自分の中で課題になっており模索中なこの頃.試しに,社内でGitを使ったことのないエンジニアに1週間(合計7時間)で開発に必要なGitの知識を講義したので,その時に使用した教材や効率的な学習方法を初心者向けに共有する. 背景 一昔前はイケてるエンジニアはGitを使ってプログラムを管理してるみたいな感じだったが,今となってはGitエンジニアにとって必要不可欠なツールになった.Gitがあるからコードの2重管理はなくなり,Gitがあるから継続的インテグレーションや継続的デリバリーが活きる,Gitがあるから変更に対してコメントを残せる.Gitが無いと開発が成り立たなくなって来ているのだ.特に,Githubのヒット以降,その流れは加速し

  • C++ Testing Framework の Catch を使ってみた

    C++のユニットテストには Google Test を使ったことがあるが、今は Catch というのが評判いいらしい。 https://t.co/B5eCeGq27Z — MIURA Masahiro (@Dubhead) 2014, 3月 4 というわけで、試した。 チュートリアルまずは、簡単なサンプルを書きました。 Catch は github から clone してきたのを使用しました。Catch はヘッダーのみで使えるので、ライブラリのビルドは不要。パスを通して include するだけで OK です。 #define CATCH_CONFIG_MAIN // main の定義を catch に任せる #include <catch.hpp> int f() { return 1; } TEST_CASE("Test", "[sample]") { CHECK( f() == 2

  • 今年気になった C++ ライブラリとかフレームワークを紹介する記事 - はやくプログラムになりたい

    この記事は C++ Advent Calendar 2014 の17日目の記事です.前日は @yutopp さんの Boost.Spirit.X3のご紹介 - C++ Advent Calendar 2014(16日目) でした. 最近 Boost.Spirit と LLVM で言語をちまちまと書いているので,Boost.Spirit と LLVM で言語つくるチュートリアルみたいなのを書こうと思ったのですが,チュートリアル用の言語の設計をあれこれ考えているうちに時間が経ってしまいました…ぼちぼち考えているので,別の機会に書きます. というわけで,今回は年の暮れということもあり,今年 GitHubC++ Trending repositories で見た,気になるライブラリやフレームワーク7つについて紹介しようと思います. 紹介するライブラリやフレームワーク cppformat :

    今年気になった C++ ライブラリとかフレームワークを紹介する記事 - はやくプログラムになりたい