タグ

Programmingに関するkhikerのブックマーク (234)

  • バグを生まないコーディング法、10個の規則でソフト開発を効率化(1/3) ― EE Times Japan

    ソフトウエア開発にはバグがつきものだ。ただし、バグの発生を最小限にい止める方法がある。コーディング規則を適用してコードを記述することだ。バグが発生してからそれを発見し、修正するという通常の開発手順に比べて、簡単に、しかもコストをかけずにバグをつぶせる。 ここでは、ZigBeeを利用したセキュリティ・システムから医療機器にわたる筆者の組み込みソフトウエア開発の経験から得た、バグをなるべく発生させないコーディング規則を紹介する。 なぜコーディング規則が必要か コーディング規則は、ソフトウエア開発者に対して、コードを記述する上での規則をまとめたものである。英語のライティング教として著名な「The Elements of Style」(William Strunk Jr.、E. B. White著)の、プログラミング言語版のようなものだ。 組み込みソフトウエアにも、きれいで、正しく、簡

    khiker
    khiker 2009/05/26
    中括弧は激しく同意
  • C言語: 実行時間測定の方法

    C言語において実行時間を測定する為の方法はいくつかある。gettimeofday, clock, getrusage, timesを利用する方法である。ここではこれらの方法について検証してみる。これは2005/12/30時点での情報であり、古い亊が考えられるので注意して頂きたい。さらに、内容のほとんどはmanを移しただけなので、正確な情報を得るためにそれぞれの関数のmanを見ることを強く推奨する。 System: Linux 2.6.12 glibc: glibc 2.3.5-1ubuntu12 gettimeofdayを使用する方法 通常はこの関数を使用するのをお勧めする。 gettimeofdayはSVr4, BSD 4.3準拠である。返り値の型はsys/time.hに定義されるstruct timevalで有る。

    khiker
    khiker 2009/05/20
    時間計測
  • デバッガが使えないパターン - 兼雑記

    http://practical-scheme.net/wiliki/wiliki.cgi?Shiro (2009/04/13) 面白いです。 shiro さんが書かれたものの亜種になるものも多いですが、少し私も書いてみようかと。スレッドやらイベントは下記とかぶる。 http://d.hatena.ne.jp/shinichiro_h/20081001#1222794259 多スレッド 少ないうちはいいんですが、多いとバグに関係があるスレッドを探すだけでかなり大変。 race condition 時は「明らかな症状が出る時点では既に痕跡が消えているケース」の亜種になるかなと。 あとタスクキューみたいなのがからむと次の問題とかぶる。 イベントモデル シングルスレッドで select をぶん回してる時なんかに、返事来たらこの callback 実行してねーと asynchronous な実行を

    デバッガが使えないパターン - 兼雑記
  • Chromeはなぜ速いのか - @IT

    Chromeの動作が圧倒的に速いように感じている。Chromeがリリースされた当初、それがなぜなのかよく分からなかった。グーグルだけにできて、ほかのWebブラウザ開発者にできないことなどあるように思えないが、それにしてはあまりに速いように感じたからだ。 その疑問のほとんどは、Chromeのオープンソースプロジェクト版「Chromium」の公式ブログの解説で氷解した。ブログを読んで分かったのはグーグルエンジニアたちが信じられないほどのスピード狂であることと、そのスピードへのこだわりには2種類の“スピード”があることだ。 1つは処理速度、もう1つは応答速度だ。特に後者、ユーザーをできるだけ待たせない、イラつかせないということに対する徹底したこだわりは、すさまじい。その背後には「スピードとは、つまりお金だ」という洞察があるようだ。 0.5秒の遅延でユーザー離れ グーグル創業約1年後の1999年

  • ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)

    三日前から Flex2 SDK で ActionScript3 を始めました secondlife です。こんにちわ。AS3 は言語仕様的には ECMAScript と Java をあわせた感じで普通な書き方で OOP できるのでうーん、と頭をひねることはあまりないのですが、他のところでいろいろはまりまくってます。 で、原始的な解決方法として trace() を使ったプリントデバッグを行っているのですが、スクリプト言語に慣れきった体ではコンパイル時間が遅くて死にそうです。たとえばこんな HelloWorld.as package { import flash.display.Sprite; public class HelloWorld extends Sprite { public function HelloWorld() { trace("Hello World!"); } } }を

    ActionScript3 (mxmlc) でのコンパイルを100倍速にする方法 - 2nd life (移転しました)
  • 絵をプログラムする言語「Processing 1.0」が正式リリース | パソコン | マイコミジャーナル

    絵をプログラムする言語「Processing」が正式リリース Processing開発プロジェクトは24日 (米国時間)、グラフィックデザイン用プログラミング言語「Processing 1.0」をリリースした。動作環境はWindowsMac OS X、およびLinux。ライセンスにはGNU GPL / LGPLを適用、オープンソースソフトウェアとして無償公開される。 Processingは、電子アートおよびグラフィックデザインを目的としたプログラミング言語。Ben Fry氏とCasey Reas氏が在籍していたMITメディアラボで2001年に開発を開始、Javaベースの実行環境と簡易IDE (sketchbook) によるプログラミング環境として整備された。変数や制御構造など言語としての基礎はJavaに準じるが、プログラミング言語の文法やAPIの用法に精通していなくても、高機能かつ高速な

    khiker
    khiker 2008/11/26
    面白げ
  • Haxe - The Cross-platform Toolkit

    Haxe empowers cross-platform development Haxe is an open source high-level strictly-typed programming language with a fast optimizing cross-compiler. Download 4.3.7 Released: 2025-05-09 Get a glimpse of Haxe 5.0! We just released a preview version of Haxe 5.0. More features are coming; see also nightlies for the very latest Haxe. Download 5.0.0-preview.1 Released: 2025-07-04 Haxe can build cross-p

    Haxe - The Cross-platform Toolkit
    khiker
    khiker 2008/11/26
    なんか面白げ
  • Protocol Independent Programming

    Author: Kazu Yamamoto Created: 26 Dec 2003 Modified: 14 Jan 2004 Keyword: IPv4, IPv6, socket API, UNIX, gethostbyname(), getaddrinfo() Introduction Since IPv6 is now supported in many UNIX(-like) operating systems, including MacOS/Linux/BSD variants, you may want to modify your IPv4-only program to support both IPv4 and IPv6. You can easily find new socket API defined in RFC3493, "Basic Soc

  • 間違ったコードは間違って見えるようにする - The Joel on Software Translation Project

    Joel Spolsky / 青木靖 訳 2005年5月11日 水曜 私が最初の当の仕事をはじめたのは1983年9月に遡る。それはオラニムというイスラエルの大きな製パン工場で、16台の飛行機ほどもある巨大なオーブンで、毎晩10万個のパンが作られていた。 はじめて工場に入った時、そのあまりの汚さに信じられない思いだった。オーブンの側面は黄ばんでいるし、機械は錆びていて、そこらじゅうが油だらけだった。 「いつもこんなに汚いの?」と私は聞いてみた。 「なんだって? なんの話をしてるんだ?」とマネージャが答えた。「掃除したばかりだから、今が一番きれいな状態なんだ」 なんてこった。 毎朝の工場の清掃を何ヶ月か続けて、ようやく彼らの言っていたことが理解できるようになった。パン工場では、きれいというのは機械にパン生地が付いてないことを言うのだ。きれいというのは、ゴミ箱に発酵したパン生地が入ってないこと

  • Geekなぺーじ : エンジニアが見落としがちなこと

    過去に自分が間違っていたと思うことや、身近なエンジニア(技術者/研究者等)が「見落としているんじゃないか」と思える部分を列挙してみました。 ただし、それぞれ状況と立場次第であるものが多いのでご注意下さい。 製品を売る場合や、論文を書く場合、個人の場合など、様々な立場での色々なものをごっちゃに書いてしまいました。 1. 技術の凄さのみが戦局を決めるわけではない 「技術が凄ければユーザは勝手についてくる」という発想に出会う事があります。 それは、正しい場合もあれば正しくない場合もあると感じています。 最近は、得てして「技術だけ」ではあまり成功しないような気がしてきました。 そもそも「凄い技術」とは何なのかという部分が難しいです。 その「凄さ」が実現しているものと、ニーズとの一致などが的確で無い場合、いくら凄くても理解してもらえないことも多いです。 2. 誰が言うか、誰がやるかも大事な要素 全く

    khiker
    khiker 2008/08/19
    思うところがあったので
  • Real World Haskell

    Why functional programming? Why Haskell? 1. Getting started 2. Types and functions 3. Defining types, streamlining functions 4. Functional programming 5. Writing a library: working with JSON data 6. Using typeclasses 7. Input and output 8. Efficient file processing, regular expressions, and file name matching 9. I/O case study: a library for searching the filesystem 10. Code case study: parsing a

  • 変電工 - Google C++スタイルガイド日本語訳

    khiker
    khiker 2008/07/02
    コーディング規約
  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o

    khiker
    khiker 2008/06/29
    コーディング規約
  • GTK/GNOMEによるGUIプログラミング - Sugaya's PukiWiki

    2008-08-04 GTK/GNOMEによるGUIプログラミング 2007-10-09 GTK/GNOMEによるGUIプログラミング掲示板 2007-08-29 MenuBar FrontPage 2006-06-04 PukiWiki/1.4/Manual/Plugin/A-D GTK/GNOMEによるGUIプログラミング † このページではGTK+やGNOMEを用いたGUIアプリケーションを作成するためのドキュメントを公開しています。

  • http://www.kde.gr.jp/~ichi/qt/

  • FrontPage - PukiWiki

    2008-09-12 RecentDeleted 2008-09-08 TranslationAssignments 2008-07-29 FrontPage 2008-07-01 SUSE+Linux+でのKDE/QTのビルドに関する情報(実践編) 2008-05-06 Kita 2008-04-30 インストール方法 2008-04-19 Kastle 2003:Qt4に何を期待するか 2008-03-26 InterWiki 2008-03-25 KDE 3.0 アーキテクチャ/システムリソースへのアクセス/標準のリソース ビルド時の最適化

  • JavaScript style guide - Mozilla | MDN

    else は上で示したように常に単独の行に書いてください。 return の後には else を使わないでください。 if (x < y) return -1; if (x > y) return 1; return 0; i++ も ++i も使用可能です。 インライン関数はそのデバッグが楽になるように名前を付けてください。関数をプロパティに代入しただけではその関数に名前を付けることはできません。次のようにしてください。 var offlineObserver = { observe: function OO_observe(aSubject, aTopic, aState) { if (aTopic == "network:offline-status-changed") setOfflineUI(aState == "offline"); } }; 名前や列挙値には interCap

    JavaScript style guide - Mozilla | MDN
    khiker
    khiker 2008/05/09
    コーディング規約
  • プログラミングファースト開発 - ひがやすを技術ブログ

    プログラミングファースト開発とは、ドキュメントを書いてからソースコードを書くのではなく、動くソースコードを書いてユーザに実際に触ってもらうということを何度も繰り返して、仕様を固める開発手法です。ドキュメントは仕様が固まった後に書きます。 テストサミットでは、極力ユニットテストを書かずに品質を確保する方法ということで、テストに重点を置いて話をしたのですが、今回のクロスコミュニティカンファレンスでは、「プログラミングファースト開発」そのものについて、会場の方々と一緒にディスカッションしました。 熱い(暑い?)ディスカッションになったので、思わず途中で泡のあるスポーツドリンクを飲まないといけなくなったほどです(笑)。 プログラミングファースト開発の開発手順は次のようになります。 実装してユーザに使ってもらうということを仕様が固まるまで繰り返す レビューの結果はその場で反映させる 仕様を決めながら

    プログラミングファースト開発 - ひがやすを技術ブログ
  • Intel、Atom搭載MID向けのC++用開発ツール

    4月9日 発売 価格:89,985円 エクセルソフト株式会社はIntel製の、Atomプロセッサー向けC++用開発ツール「C++ ソフトウェア開発ツール・スイート Linux版」を発売した。日語完全サポート付きのシングルユーザーライセンスの価格は89,985円。 Atomを搭載したMID向けに最適化された統合開発環境。コーディング、コンパイル、デバッグ、パフォーマンス解析といった、ソフトウェア開発の全サイクルをサポートする統合開発環境となっており、MID用ソフトウェアをいち早く開発し、最適化できるとしている。 対応OSはUbuntu Linux 7.04、同7.10、Red Flag Linux DC Server 5.0 (Trinity) SP2、Fedora Core 6。 なお、製品はIntelのサイトより無料でダウンロード可能。登録後15日間限定で、英語のサポートが付属する。

  • gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-

    以前同僚の光成さんが、以下の warning オプションを使っていると書かれていたのが気になったので調べてみました。 -Wall -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith もし上記以外にも良さげなオプションがありましたら教えてください<(_ _)> 情報源 man と info と http://sugarpot.sakura.ne.jp/yuno/?gcc%2Fwarning 。 最初は日語版の man だけを見ていたのですが、id:kazuhooku に info を見るべしと教わりました。 man も info もそうですが、日語版は情報が少なかったりするので注意。 LANG=C man gccなどとしましょう。 -Wforma

    gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-
    khiker
    khiker 2008/04/30
    警告オプションについて