Successfully reported this slideshow.
Your SlideShare is downloading. ×

Hokkaido pm 8 LT

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
Namba.pm #0
Namba.pm #0
Loading in …3
×

Check these out next

1 of 82 Ad

More Related Content

Viewers also liked (20)

Advertisement

Hokkaido pm 8 LT

  1. 1. Hokkaido.pm #8 Lightning Talk Hachioji.pm / Kokusaitenjijomae.pm @moznion Sunday, December 23, 12
  2. 2. @moznion 大学生 アルバイトソフトウェア エンジニア 2年前まで道民でした 2日前に論文が リジェクトされたので ブルー入ってます Sunday, December 23, 12
  3. 3. クリスマスらしく Acme の話…… Sunday, December 23, 12
  4. 4. クリスマスらしく Acme の話…… はしません Sunday, December 23, 12
  5. 5. 皆さん Perl で数値計算してますか!? Sunday, December 23, 12
  6. 6. 数値計算してると クソ面倒なアイツがいますよね Sunday, December 23, 12
  7. 7. 浮動小数点数 Sunday, December 23, 12
  8. 8. 浮動小数点数 めんどい Sunday, December 23, 12
  9. 9. 浮動小数点数 めんどい 今日はこれについて Sunday, December 23, 12
  10. 10. さて 拙作のモジュールで ハマったこと Sunday, December 23, 12
  11. 11. 浮動小数点数を こんな感じでテスト すると死ねます Sunday, December 23, 12
  12. 12. Sunday, December 23, 12
  13. 13. 見るからにやばそう Sunday, December 23, 12
  14. 14. こういう事をすると テストがズッコケる 環境が出てくる Sunday, December 23, 12
  15. 15. ぐぬぬ… Sunday, December 23, 12
  16. 16. ありがたいことに ISSUE が来る (@syohex さんありがとうございます) Sunday, December 23, 12
  17. 17. ISSUE が来る (ありがたいことに) https://github.com/moznion/Math--PhaseOnlyCorrelation/issues/1 Sunday, December 23, 12
  18. 18. 浮動小数は色々めんどいから 普通に比較するとダメよ、 とのこと † 以下が詳しい x86における浮動小数点演算の精度の制御と、 80bit 浮動小数点演算問題 http://www.takeoka.org/~take/cpu/num/float80bit.html Sunday, December 23, 12
  19. 19. あと CPAN Testers Daily Summary Reportからも 毎日メールが来る (深夜に) Sunday, December 23, 12
  20. 20. そして 夜も眠れない!! CPAN Testers Daily Summary Reportから (Report はありがたいんですが) 毎日メールが来る Sunday, December 23, 12
  21. 21. 夜は眠りたいので 直しましょう Sunday, December 23, 12
  22. 22. 方法 1 Sunday, December 23, 12
  23. 23. 小数点以下を切り捨てて 整数にしてからテストをする Sunday, December 23, 12
  24. 24. e.g. TODO こんなかんじ Sunday, December 23, 12
  25. 25. e.g. まさに外道!!! TODO こんなかんじ Sunday, December 23, 12
  26. 26. 悪党な方法過ぎて駄目 そもそもテストの正当性が 失われている Sunday, December 23, 12
  27. 27. 方法 2 Sunday, December 23, 12
  28. 28. $var * 10 ^ $num してから小数点以下を 切り捨ててテストする Sunday, December 23, 12
  29. 29. e.g. Sunday, December 23, 12
  30. 30. $num 桁までの精度は 保証される ただ、ちょっとダサい (主観) Sunday, December 23, 12
  31. 31. あと、整数桁数が 莫大に増えたら それもそれで問題な気が Sunday, December 23, 12
  32. 32. 方法 3 Sunday, December 23, 12
  33. 33. 採択域を設定して、 両者の差がその範囲内かを テストする Sunday, December 23, 12
  34. 34. e.g. TODO こんなかんじ Sunday, December 23, 12
  35. 35. 割と良い感じ。 拙作のモジュールでも 一時期 (3日くらい) やってた Sunday, December 23, 12
  36. 36. 方法 4 Sunday, December 23, 12
  37. 37. 正規表現でバツンと切って 小数桁数を制限する Sunday, December 23, 12
  38. 38. e.g. Sunday, December 23, 12
  39. 39. 結構メイジャーな方法っぽい (特にPhysics のモジュールで) けど、なんかやだ (主観) Sunday, December 23, 12
  40. 40. 方法 5 Sunday, December 23, 12
  41. 41. sprintf(“%.${num}f”, $var) を使って桁数を制限する Sunday, December 23, 12
  42. 42. e.g. Sunday, December 23, 12
  43. 43. これが一番しっくり来た。 なんか良い感じ (Math のモジュールで 良く見かける) Sunday, December 23, 12
  44. 44. 方法 6 Sunday, December 23, 12
  45. 45. Acme::Test を使う Sunday, December 23, 12
  46. 46. Sunday, December 23, 12
  47. 47. 例とか無いです Sunday, December 23, 12
  48. 48. とまあ こんな感じで Sunday, December 23, 12
  49. 49. 浮動小数点数 めんどい Sunday, December 23, 12
  50. 50. ただ Sunday, December 23, 12
  51. 51. 浮動小数点数 めんどい Sunday, December 23, 12
  52. 52. 浮動小数点数 めんどい テストめんどい Sunday, December 23, 12
  53. 53. 浮動小数点数 めんどい こうなるとまずい テストめんどい Sunday, December 23, 12
  54. 54. 「テストこけるけど動くから 大丈夫だよー」 「めんどいからテストしなくて もいいよー」 「“cpanm -f Foo::Bar” でおk」 Sunday, December 23, 12
  55. 55. 「テストこけるけど動くから 大丈夫だよー」 破滅待ったなし 「めんどいからテストしなくて もいいよー」 「“cpanm -f Foo::Bar” でおk」 Sunday, December 23, 12
  56. 56. テストを ろにしてはならない Sunday, December 23, 12
  57. 57. その為には? Sunday, December 23, 12
  58. 58. 1 Sunday, December 23, 12
  59. 59. テストがすぐ実行できて軽いこと こまめにテストを走らせられる (物理的 | 心理的)環境を整える Sunday, December 23, 12
  60. 60. 2 Sunday, December 23, 12
  61. 61. テストが書きやすいこと 書きやすければ書きやすい程 テストの習慣は定着する Sunday, December 23, 12
  62. 62. テストの書きやすさ、 マジ重要! Sunday, December 23, 12
  63. 63. というわけで、 浮動小数点のテストを支える モジュールが有るとハッピー Sunday, December 23, 12
  64. 64. 例えば Test::Number::Delta Sunday, December 23, 12
  65. 65. 方法3 として挙げた 採択域うんぬんのテストを サポートしてくれる Sunday, December 23, 12
  66. 66. e.g. TODO こんなかんじ (デフォルトだと1-e6 が採択域) Sunday, December 23, 12
  67. 67. Cool ! Sunday, December 23, 12
  68. 68. 名前的に Test::Float もイケそうだけど 使ったことないです Sunday, December 23, 12
  69. 69. あと今 Test::LimitDecimalPlaces というモジュールを 書いてます https://github.com/moznion/Test--LimitDecimalPlaces Sunday, December 23, 12
  70. 70. 方法5 として挙げた sprintf() を使って テスト出来るモジュールです (ヘルパーメソッド的な) Sunday, December 23, 12
  71. 71. こんな感じで使えます Sunday, December 23, 12
  72. 72. 内部的にはこんな感じ Sunday, December 23, 12
  73. 73. ただ問題が Sunday, December 23, 12
  74. 74. Test::LimitDecimalPlaces Sunday, December 23, 12
  75. 75. Test::LimitDecimalPlaces 名前がダサい Sunday, December 23, 12
  76. 76. limit_ok limit_ok_by limit_not_ok limit_not_ok_by Sunday, December 23, 12
  77. 77. limit_ok limit_ok_by limit_not_ok limit_not_ok_by メソッド名がダサい Sunday, December 23, 12
  78. 78. limit_ok limit_ok_by limit_not_ok limit_not_ok_by メソッド名がダサい そもそも英文法的に怪しい Sunday, December 23, 12
  79. 79. とりあえず PrePAN に投げて反応を 待とうかと思っています Sunday, December 23, 12
  80. 80. アドバイス 目下募集中です よろしくお願いします。 Sunday, December 23, 12
  81. 81. あと、他にも浮動小数点数 周りの良いテストモジュール があれば教えてください Sunday, December 23, 12
  82. 82. 了 Sunday, December 23, 12

×