タグ

測定とプログラミングに関するiwwのブックマーク (18)

  • 【esp32】ロードセルで重さをはかる

    重さを測る 養液ですので流量計を使う方法も考えられます。 この場合には養液の送った量と戻った(循環)量の差が消費量となり、1日の消費量の総和がその日の消費量という事になりますが、計算する回数が多く成れば誤差も大きくなります。 業務ではともかく、家庭菜園レベルの水耕栽培では循環式水耕栽培だと思うので流量計では誤差が問題になって来ます。 ということで養液タンクの重さを測ることで養液の消費量を管理することにしました。 ロードセルとは arduinoやesp32を使って重さを測るにはロードセルというセンサーが適しています。 JISではロードセル(Load Cell)は、「加えられた力に対し、ある定義された関係で信号を発生する機器」とされています。 計量法でロードセル独自の規格を設定していませんが、性能試験方法としてJIS(電気式ロードセル性能試験方法 JIS B7602)や JMIF[日計量機器

    【esp32】ロードセルで重さをはかる
  • アーケードゲームを支えるデバッグ術 - SEGA TECH Blog

    ブログ読者のみなさん、はじめまして。 株式会社セガのベテランプログラマー阿部です。 このエントリーではデバッグ手法のあれこれについての体験談と、デバッグをテーマに一昨年に実施されたプログラマー向け新人研修の概要をお伝えしたいと思います。 EXE ファイルのデバッグ イーサネット絡みのデバッグ 周辺機器絡みのデバッグ デバッグスキルブートキャンプ 黒子に徹する、裏方系エンジニア EXE ファイルのデバッグ 同僚が作った EXE ファイルが手元にあり、あなたはこれを Windows で起動しようとしています。 起動してみたところ何も反応がなく、しかもそれは想定外のことでした。 「何コレ、動かないんだけど」とあなたが同僚に文句を伝えると、同僚はあなたに返します。 「こっちでは動いてるよ」 困りましたね。 あなたの手元には EXE のソースコードも無ければ、Visual Studio もありません

    アーケードゲームを支えるデバッグ術 - SEGA TECH Blog
  • 「5人でユーザテストすればユーザビリティ上の問題のうち85%が見つかる」の元ネタ論文を解説する|Mikio Kiura / ANKR DESIGN

    Webサービスやアプリなど開発や運用に関わっている方であれば、こんなことを耳にしたことがあるのでは無いでしょうか? 5人でテストを行えば、ユーザビリティ上の問題のうち85%を発見できるこれらは業界的にはある意味で常識ですが、色々話を聞いてみると、この常識の「出処」あるいは「根拠」ってあんまり知られていないようなのです。 もちろん、ちょっと知識のある人であれば、ユーザビリティ業界の第一人者であるヤコブ・ニールセン博士が提唱したというところまでは知識として知っているでしょう。しかしながら、その元ネタとなった論文を実際に読んだ人、あるいは85%という数字の根拠やその条件について理解されている方はどの程度居るのでしょうか。 ということで記事では「ユーザテストは5人で85%」の元ネタである下記の論文について、解説、と言うとちょっと大げさかもですが、概要を紹介してみたいと思います。願わくば、この記事

    「5人でユーザテストすればユーザビリティ上の問題のうち85%が見つかる」の元ネタ論文を解説する|Mikio Kiura / ANKR DESIGN
  • 「@」でエラー抑制すると PHP が遅くなるという噂について : a My RSS 管理人ブログ

    PHP では @ を付けることでエラーを回避できるという便利な記述方法があり、ものぐさな私などは if (@$var["foo"]) $result = $var["foo"]; みたいなコードを書いてしまいます。 で、この処理が「遅い」という噂やツッコミを度々受けるので調べてみました。 「ほら、そんな気にするほどでも無いよ」という結果を期待していたのですが、、、なんじゃこりゃ。。。 劇遅じゃないですか、これ。 いやはや・・・ ちょっと列挙しますね。以下のようなコードを単純 for 文で 100万回実行したときの結果です。 error_reporting(0) で PHP4 if (@$a["hoge"]) $b = $a["hoge"]; ⇒ 約 2.4 秒 if ($a["hoge"]) $b = $a["hoge"]; ⇒ 約 1.3 秒 if (isset($a["hoge"]))

    iww
    iww 2018/09/20
    マジか あとで実験してみよう
  • gprofを使いこなす - minus9d's diary

    C/C++のコードの速度を改善するときに有効な方法は、処理時間を多く消費する関数を見極めて、その関数を改善することである。どの関数が(1)どれだけ処理時間を消費するか、(2)何度呼ばれているか、(3)どの関数を呼んでいる/どの関数に呼ばれているか、などを測定する行為をプロファイリングといい、その手助けをするツールをプロファイラと呼ぶ。今回はC/C++のプロファイラとして有名なgprofの使い方を紹介する。 プログラムの例 GNUプロファイラーによるコード処理速度の向上 のコードを参考にして作成した以下のコードをgprofでプロファイリングしてみよう。main()はa()とb()を100000回呼ぶ。b()はa()の約4倍時間を消費する。またmain()自身も、a()とb()を呼び出してその結果を待つ以外に、a()の約1/3の時間を消費する。 // main.cpp #include <cs

    gprofを使いこなす - minus9d's diary
  • 軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita

    ざっくり言うと リスト構造のデータに対してランダムアクセスはしちゃだめだぞ。お兄さんとの約束だ! 発端 数年前に他部署の支援で作ったJavaのシステムに、ちょっとデカめのデータを突っ込んだらありえないほど遅いので助けてくれ、と連絡が入った。 まぁクエリとかインデックスをちょっと見れば直るっしょ・・・と鼻をほじりながら支援に向かった。 処理内容 遅い部分の処理は以下のようなものであった。 処理対象のデータをListで受け取る。 それをforループで1件ずつ前処理する。 処理結果をオブジェクトに格納し、ORマッパーでDBにINSERTする。 これだけ? そう、これだけだ。並列処理なんて高級なことはもちろんやってない。 インフラ調査 処理中のサーバのようすを調査する。今回のインフラは典型的な3層3サーバ構成。 WEBサーバはなにもかもが余裕。 APサーバではCPUを1つ使い切っている。 14コア

    軽い気持ちでLinkedListを使ったら休出する羽目になった話 - Qiita
  • 「60%の人間はプログラミングの素質がない」という論文は撤回されていた | catch.jp blog

    知らなんだ。 広くプログラミング教育を実施しようというとき、「60%の人間はプログラミングの素質がない」と批評されることがあります。けれども、そもそも学校のテスト等で難易度が高い場合には、正規分布にならず、ふたこぶラクダのように頂点が2つになることがあるそうです。だから、プログラミングの素質がないのではなく、プログラミング教育へのモチベーション設定に失敗していたり、チャレンジングな教育目標が設定されているのではないかな。つまり、素質の問題ではなく、環境の問題なんだ。だとしたら、環境が改善されたら、ふたこぶラクダは解消されて正規分布に近づく。そして、平均点は上がるはず(ふたこぶの上位層はさほど変化しない)。 ということを考えて、いろいろ調べていたら、はなはだ旧聞なんだけど、論文が撤回されていたことを知りました。ぐぐっても上位に出てこないので、ここに書く。 元ネタは、これ。 The camel

    iww
    iww 2018/01/26
    こぶが2つできる現象はプログラミングに限らない実は普遍的な現象だった ということなのか
  • シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ

    あらすじ Web技術が複雑になる中で、JavaScriptのプロファイリングをとる方法とは。 プロファイリングを取るためのコードを手で書いてみましょう。 とてもシンプルで、かつ最高のJavaScriptプロファイラ sjsp を作りました。 当にあった怖い話 上司 「とにかくJavaScriptのコードを速くしてくれ」 私 「分かりました、速くします」 (次の日) 私 「いいプロファイラがないなら作ればいいじゃない」 同じチームの人 「えっ?」 私 「最高のJavaScriptプロファイラ作ったよ」 同じチームの人 「「えっえっ???」」 私 「早速使ってみたらこことここが遅いって分かったよ」 同じチームの人 「「「この子は一体…」」」 JavaScriptのプロファイリングの難しさ 近年、Webブラウザーの処理速度は著しく向上し、その可用性の高さから、アプリケーションのプラットフォーム

    シンプルでかつ最高のJavaScriptプロファイラ sjsp を作りました! ― Webアプリケーションが複雑化する中でプロファイラに求められるものとは何か - プログラムモグモグ
  • 前置インクリメント vs 後置インクリメント | 闇夜のC++

    後置インクリメントにはひと目で遅くなりそうな処理が見て取れますね。 前置インクリメントがインクリメント処理後、単純に自身の参照を返すのに対し、後置インクリメントではインクリメント前に一時オブジェクトの生成、そしてインクリメント後にはその前に生成した一時オブジェクトを値で返しています。 前置と後置では、単純にオブジェクトをコピーして返す分、普通に考えたら後置の方が遅いよね。というのが従来の認識でした。 「C++ Coding Standards -101のルール、ガイドライン、ベストプラクティス」の中でも、特に後置インクリメントの必然性が無い時は迷わず前置インクリメントを使うことが推奨されてきました。 元の値を必要としないときは前置形式の演算子を使おう __C++ Coding Standards (p50) 新たな主張 「ゲームエンジン・アーキテクチャ第二版」の中の一節を紹介します。 しか

    iww
    iww 2015/04/17
    コンパイラが状況に応じ勝手によろしくやってくれるのでわりとどうでもいい、 という話。 個人的にはもう後置固定
  • オープンソースの静的解析ツール AdLint(アドリント) | 株式会社オージス総研

    オープンソースで無償のソースコード静的解析ツール AdLint - Advanced Lint - は、オープンソースで無償のソースコード静的解析ツールです。コンパイラ等では検出できないソースコード内の潜在的な不具合の可能性を指摘し、定量的な品質メトリクスを出力します。 AdLint の活用は、ソフトウェア製品をより安全で品質の高い状態へ改良することを支援します。 ソースコードに潜在する問題を検出し、警告として出力 AdLint はソースコードを解析し、潜在的に不具合となり得る箇所について多くの警告メッセージを出力します。 開発者は AdLint が出力した警告メッセージをもとに問題を分析し、ソースコードをより安全で品質の高い状態へ改良することができます。 来、ソフトウェア製品に潜在する問題を発見するためには、開発者によるコードレビューなど属人的な活動が必要とされます。AdLint

  • SourceMonitorを使ってみる - にゃははー

    http://www.slideshare.net/MoriharuOhzu/ss-9224836 これ見た。やばいと思った。 SourceMonitorはここ http://www.campwoodsw.com/sourcemonitor.html 今書いてるコードがBoost.Proto使いまくっててやばい。 これは複雑度を測るしかない! やってみる 左から チェックポイント,作成日,ファイル数,行数,ステートメント数,分岐の出現率,コメントの出現率,クラスの深さ,関数-クラス比,関数あたりのステートメント量,最大複雑度,最大深さ,平均深さ,平均複雑度,関数数 となってるらしい。 ステートメントとか複雑度ってなんぞやって言う人は最初のスライドを見てください。 あとプロジェクト名とかそこら辺は見なかったことにしてください。 最大複雑度,平均複雑度 最大複雑度12を出してるソースはconf

    SourceMonitorを使ってみる - にゃははー
  • SourceMonitor

    SourceMonitor Version 3.5 NOTE: The author of SourceMonitor is retiring and the current version of SourceMonitor has been released as open source. The open source version of SourceMonitor, along with information on support, is available here.

  • Cppcheck(C++ソースの静的解析ツール) - 閑古鳥

    SourceForge.net: cppcheck Hudsonのプラグインを漁っているときに見つけた、C++のソースコードを静的に解析してくれるオープンソースのツール。面白そうなので試してみました。 インストール githubにソースが公開されているので、git cloneなりgithub上のアーカイブをダウンロードするなりしてソースを落としてビルドします。Windowsの場合VS2008のソリューションファイルが付いているので、VCBuildなりdevenv.exeなりで簡単にビルドすることができます。 使ってみる VCでビルドするとcli/フォルダの下にdebugもしくはreleaseフォルダができて、その下にcppcheck.exeが作成されます。実行ファイルができたらとりあえず引数無しで実行すると使い方が出てきます。 -a オプションで警告を全部表示(省略するとファイル毎に最初の

    Cppcheck(C++ソースの静的解析ツール) - 閑古鳥
  • 「CCFinderX」でコードクローン分析 - jun-ichi.blog.hatena

    コードクローン(重複コード)とは、ソースコード中の全く同じあるいは類似したコードの断片。一般に、コードクローンが存在するソースコードは保守が困難になる。これは、誤りを含んだコードを複製することでその誤りが分散してしまうことや、機能変更を行う際にクローンを探して、同様の対応が必要かどうかを調査する必要があるためである。コードクローンを検出するためには、単純なテキスト比較では不十分であり、言語の構文レベルでの比較が必要となる。 CCFinderXは、フリーのコードクローン検出ツール。2004年の未踏にも採択されているようだ。 CCFinderXはコードクローン検出ツールです。Java, C/C++, COBOL, VB, C#のソースコードから、コードクローン(重複コード)を検出します。 CCFinderXは、拙作CCFinderのメジャーバージョンアップであり、新しい設計と技術により、性能の

    「CCFinderX」でコードクローン分析 - jun-ichi.blog.hatena
  • ソースコードのメトリクス(品質測定)を行うツール - ふにゃるんv2

    前回は、ccccってツールを試したんですが、id:akiramei さんの8/21のネタで、SourceMonitorが紹介されており、もう少し調べてみる事に。 Source Monitor SourceMonitor http://www.campwoodsw.com/sourcemonitor.html id:akiramei さん。…元は どっとねっとメモさんが紹介されていたツールです。 ウィザード形式で、解析するフォルダを指定できるのは便利ですね。 2 posted by (C)wacky 選択できるプログラム言語は、以下の通りです。 3 posted by (C)wacky 一通りの有名な言語を選択できるのは、嬉しいですね。 読み込ませると、以下のようなメトリクス収集をしてくれます。 6 posted by (C)wacky 7 posted by (C)wacky グラフ表示し

    ソースコードのメトリクス(品質測定)を行うツール - ふにゃるんv2
  • パスワードの判定にstrcmpを使うべきでない理由

    strcmpを使ってパスワードを判定すると、タイミング攻撃 (timing attack) にやられる危険性があることの説明 (約20分)。 まとめ: パスワードなどの文字列を strcmp関数 (およびそれに類する関数) を使って判定すると、 その判定にかかる時間を測定することで、パスワードが推測できてしまう場合がある。 これをタイミング攻撃 (timing attack) という。 この例では、36種類の文字を使った8文字分のパスワードを推測するのに、 通常のしらみつぶしな方法 (bruteforce attack) … 368 = 2821109907456回 の試行が必要なのに対して、 タイミング攻撃を使った方法 … 10000×8 = 80000回 しかかからない。タイミング攻撃を成功させてしまうと、 重要な情報が漏洩してしまう危険性がある。 これを防ぐためには、なるべく実行時間

    iww
    iww 2010/04/13
    そもそも平文で比較するのがまずいと思うけどどうなんだろう。
  • http://1978th.net/tech/promenade.cgi?id=31

  • 著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報

    “アルゴリズム”は、もっとも非人間的なものの代表だともいえる。ソーシャルメディアにとって、そのアルゴリズムが不可欠だというのは、実に皮肉めいている。 僕はこの間、グーグルがどうやってユーザーデータを集めているかについて書いた記事を掲載した(前編、後編)。今回は、著名なソーシャルメディアサイトが、ユーザーデータを活用する上でどのようにアルゴリズムを用いているのか、白日の下にさらそう。 ソーシャルメディアを成り立たせているのは人間の力だが、ユーザーが入力したデータを利用できる状態にする仕組みは、アルゴリズムによって作られている。現在活動している無数のソーシャルメディアサイトで実証済みのことだが、ユーザーの関与とアルゴリズムによる処理ルールの上手いバランスを見出すことは、とても難しくなりがちだ。これから紹介するアルゴリズムは、悪意のないユーザーと結びついて初めてうまくいくものだ。 人気ソーシャル

    著名ソーシャルメディアが使っているアルゴリズムを大公開! | Moz - SEOとインバウンドマーケティングの実践情報
  • 1