タグ

2013年10月19日のブックマーク (8件)

  • 第17回 QuickCheckでデータ駆動型テストを行う

    テストには常にある種の不安が残ります。このテストは果たしてすべての場合に妥当だと言えるのか? 何か見落としてはいないか? その見落としは致命的なものではないか? Haskellの静的な型検査をすり抜けてくるバグに対処するには,実際にプログラムを動作させ,HUnitなどで動的なテストを行います。では,動的なテストをすり抜けるバグにはどう対処すればいいでしょうか? 一番単純な対策は,テスト項目数を増やすことです。たいていの場合,テスト項目は「その型の取りうる値を想像し,その例に対してきちんと動作するかどうかを確かめる」という形で記述します。単純に考えるなら,テスト項目が増えれば増えるほどテストの正確さは増していくはずです。 しかし,個々の値に対してテストを記述していくのは手間のかかる作業です。テストを行うべき値の集合に対してテストを行うツールが欲しくなりますね。それが「データ駆動型のテスト・ツ

    第17回 QuickCheckでデータ駆動型テストを行う
    igrep
    igrep 2013/10/19
    "関数自体もTestableクラスのインスタンスであるため、関数を返す関数もTestableクラスのインスタンスであるという再帰的な定義になっています。"
  • C言語とC++がわかる本 《ITpro STORE/書籍》

    C言語とその派生言語であるC++を「理解する」ためのです。Cプログラミングの最初の例題と言えば「hello world」ですが、そのプログラムの裏で何が起きているのかを多くの実験プログラムを通してとことん学びます。メモリー、レジスタを始めとするコンピュータの「仕組み」もしっかり解説。C++に関してはWindows 8/RT向けの最新プログラミング例を紹介し、「C++はこんな風に使うんだ!」という驚きを味わっていただきます。言語の文法解説とはひと味違った、生きたプログラミングのためのC/C++入門です。 訂正補足情報はこちら 【第1部】 C言語/C++/C#でプログラムを書こう! 《 Intro. 》 「Cだからできること」がある 《 1章 》 C/C++/C#プログラミングを「今」始めるための基礎知識10 《 2章 》 C/C++/C#ならこれができる!20 【第2部】 プログラムはなぜ

    igrep
    igrep 2013/10/19
    "前半が第1部から第3部はいいとしてなんで第4部がWindows 8アプリなんだろう。。。よくわからん組み合わせだなぁ。"
  • 型の inconsistency の回避方法 @ val it: α → α = fun

    Lingr では shiro さんに伝えたのだけど、あそこは流れてしまうので(アーカイヴァルだからぐぐれば出てくるけど)ここにも書いておく。あっ、ここも流れてしまうか。まあいいや。 えーと、たとえば次のようなコードがあって、 import Control.Arrow x = map (+1) y = filter (< 5) z = sum w = x >>> y >>> z それで、「おっと x の定義を少し変えよう」というとき、 x = map (\(x,y) -> (x+1,y)) これはこれでいいんだけど w における型の不一致をどうするか、という問題。 もちろんこうしたら y も書き換えないといけなかったりするわけだし、全体から定義を変更する必要がある。でも x の書き換えが少し手間だと全部を書き換えるより前に対話環境で単体のテストしながら詰めたい。でも y や w の型検査がジ

    igrep
    igrep 2013/10/19
    ローカルなxを定義して書き換えると。
  • ビザンチン将軍問題 - Wikipedia

    ビザンチン将軍問題(ビザンチンしょうぐんもんだい、英語: Byzantine Generals Problem)とは、相互に通信しあう何らかのオブジェクト群において、通信および個々のオブジェクトが故障または故意によって偽の情報を伝達する可能性がある場合に、全体として正しい合意を形成できるかを問う問題である[1]。フォールトトレラントシステムでの多数決の妥当性や分散コンピューティングの処理の妥当性に関わる問題と言え、二人の将軍問題を一般化したものと言える。 ビザンチン将軍問題に帰結される故障や障害をビザンチン故障(Byzantine Failure、あるいはビザンチン障害)と呼ぶ。また、ビザンチン将軍問題が発生しても全体として正しく動作するシステムをビザンチン・フォールトトレラント性(Byzantine Fault Tolerance)があるという。 ビザンチン将軍問題は、東ローマ帝国(ビザ

  • 高専プロコン競技部門に参加した - モナドとわたしとコモナド

    どうも、Haskellの宣伝をしまくっていた@fumievalです。 全国高等専門学校 第24回プログラミングコンテスト競技部門に、@NKMR_YA、@39moguraさんと一緒に茨城工業高等専門学校の代表チームとして出場しました。 去年もそれを使った、ような… 競技の流れは以下の通りです。 送信側m人と受信側n人(m + n = 3)に分かれる。 送信側に文字列Sが配布される。 木製の長方形の容器(パケット)と、 それぞれの面に1から6までの点が刻まれた立方体状の樹脂(サ イ コ ロが与えられるので、必要に応じてそれを使う。 設置されたカメラにより、20秒間隔でパケットが撮影される。ただし、手などが写っていると魂を抜かれ失格。 受信側は、何らかの文字列S'をサーバーに送信する。必要に応じて、送信側で撮影されたパケットの画像を利用することができる。 制限時間が過ぎると終了。 SとS'を先頭

    高専プロコン競技部門に参加した - モナドとわたしとコモナド
    igrep
    igrep 2013/10/19
    いいまどマギネタ。
  • 非開発者もGitHub Flowに巻き込んでみんなハッピーになった話 - Masatomo Nakano Blog

    前提: GitHub flow を使っていてCIサーバーはJenkins 最近ちょっと開発フローの改善をして、とてもよく機能してて満足しているので紹介してみる。 この改善をやる前の悩み: pull-requestでコードレビューはできるのだけど、cssとかjavascriptなどの見た目や動作の変更ってコードだけだとわかりにくい。レビューする人が各自ローカル環境で実行するのもだるい。 コードを読まないデザイナーとかプロダクトオーナーとかの人が、pull-requestのレビュープロセスに簡単に参加できない(非開発者全員のところでローカル環境設定するのはだるすぎる)。 コード的にokに見えてmasterにmerge後、何か問題(特に仕様的な問題や、デザイン的な問題)が発生した場合、「修正branchを作ってpull-request」というフローを再度回さないといけない。最初のpull-req

  • Google+のユーザー名やプロフィール写真が広告に表示される「共有おすすめ情報」を拒否する方法

    朝起きたら、Google+の通知やメールで「Google 利用規約が更新されました」というお知らせが届いていました。更新日は10月11日ですが、発効日は11月11日。事前案内です。 通知でこういうお知らせが届くのは恐らく初めてのことだったので、「何だろう?」と確認をしてみました。どうやら今後、Googleの広告サービスにGoogle+のプロフィール名やプロフィール写真を利用する場合がある、という話のようです。 Google+の内や外で、+1、コメント、フォローなどをすると、その対象が Google AdSense や AdWords 広告を利用した場合に、今後は「××さんがオススメしています」みたいな表示が出る場合がある、ということのようです。 Facebook広告に似てますが、あちらはFacebookの中だけなのに対し、こちらはGoogle検索やYouTubeやGooglePlayやGo

    Google+のユーザー名やプロフィール写真が広告に表示される「共有おすすめ情報」を拒否する方法
    igrep
    igrep 2013/10/19
    “変なアカウントをウォッチするつもりでフォローしていたら、広告に使われてしまう場合もあるということになります。うーん、今まで以上に+1、コメント、フォローする対象は気を使ったほうがよさそう”
  • ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』|ガジェット通信 GetNews

    ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』 いやはや、世の中にはクールで変態なハッカー(褒め言葉)がいるものです。 この『jor1k』というプログラムは、完全にJavascriptで実装されたOR1K(OpenRISC 1000)エミュレーターで、ブラウザ上でLinuxを実行することができてしまいます。 ブラウザ上でLinuxを起動してターミナルでコマンドラインの入出力をするだけであれば、これまでにも「Javascript PC Emulator」というJavascriptで実装されたPCエミュレーターがありました。しかし、『jor1k』のスゴイ所はX Window Systemが起動しGUIもちゃんと操作できることです。たとえば、冒頭の画像は、“お決まり”のxeyesを起動してみたところです。ちらつきはあるものの、目玉が

    ブラウザ上でLinuxが動く! なんとGUIも! Javascriptで実装されたOR1Kエミュ『jor1k』|ガジェット通信 GetNews