タグ

programmingに関するnegatonのブックマーク (128)

  • Jenkinsで静的コード解析を常時自動化する - プログラマの思索

    Jenkinsで静的コード解析を常時自動化する手法が公開されていたのでメモ。 これは使い道があると思う。 【元ネタ】 Twitter / akipii: テスト自動化ができなくても静的コード解析を回帰テストのように使うのは効果的という指摘。ガラクタのレガシー資産プロジェクトで有効かもしれない。Jenkinsを使って継続的に静的コード解析をさせる - suzukijの日記 http://goo.gl/rpTq7 Jenkinsを使って継続的に静的コード解析をさせる - suzukijの日記 Twitter / akipii: Antのbuild.xmlをSonarが読み込んでソースの各種メトリクスを出力し、更にJenkinsと連携してCronのように使う手法。SonarがMavenだけでなくAntも使えると便利。Ant,Jenkins,Sonarの導入手順 http://goo.gl/wXJ

    Jenkinsで静的コード解析を常時自動化する - プログラマの思索
  • オープンソース化されたDoom3のソースコード解析 - YAMDAS現更新履歴

    Doom や Quake といったゲームで知られる id Software は、そのゲームエンジンのソースコードを、それが旧世代になったところで定期的に GPL で公開してきたが、昨年11月には Doom 3 のソースコードを GitHub で公開している。 そして、それからおよそ半年経ち、そのソースコードを解析した全五部作(+ジョン・D・カーマックのインタビュー集)のページが公開された。 Doom3 Source Code Review: Introduction Doom3 Source Code Review: Dmap preprocessing Doom3 Source Code Review: Renderer Doom3 Source Code Review: Profiling Doom3 Source Code Review: Scripting VM Doom3 Sou

    オープンソース化されたDoom3のソースコード解析 - YAMDAS現更新履歴
  • 組み込みプログラマがステップアップするための推薦書籍 - 千里霧中

    仕事に慣れ始める時期のせいもあるのか、最近プログラミングで良い参考書籍がないかと聞かれるようになっています。丁度良い機会なので、今回は組み込みプログラマの新人の方向けに、プログラマとしてのステップアップをサポートする推薦書籍を、自分なりにまとめたいと思います。 想定として、CやC++で一通りプログラミングができるようになった方を対象としています。基礎的・入門的な書籍がほとんどなので、中級者以上の方には平凡かもしれません。なお良書というのは世の中にあふれているので、今回は各トピックごとに2冊づつピックアップするスタイルをとりたいと思います。 ソフトウェアの設計をより良くする ここで挙げる書籍は、設計のための仕様分析や、モジュールといった上位構造の設計について扱った書籍です。 なお留意点として、OOPやLL、関数型等の分野で話題となっている現代的・先進的なプログラミングや設計についての解説は、

  • IBM Developer

  • 「なぜsetを使っちゃいけないの?」

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    「なぜsetを使っちゃいけないの?」
  • 初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)

    このエントリはhttp://d.hatena.ne.jp/takahirox/20120131/1328006885を和訳したものです。 はじめに 最近UNIX 6thのソースコードの読書メモを書き終えました。 みさなんにもUNIX 6thのソースコードを読むことをオススメします。 その理由をこのエントリで書いていきます。 まとめ UNIX 6thは初めてOSのソースコードを読む人にうってつけ! 今すぐ読み始めましょう! UNIX 6thのソースコードはこちらなどで読むことができます。 http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6 UNIX 6thのソースコードを読むことをオススメする理由 たったの10,000行 最近のLinuxカーネルのソースコードは100万行を超えています。全てを理解するのは至難の業です。 一方、UNIX 6thのカー

    初めてのOS source code reading(UNIX 6th source code readingのススメ) - やる気のないブログ(A boring diary)
  • モナドはメタファーではない · eed3si9n

    2011-05-28 Scala界の関数型プログラミング一派を代表する論客の一人、@djspiewak が 2010年に書いた “Monads Are Not Metaphors” を翻訳しました。翻訳の公開は人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2010年12月27日 Daniel Spiewak 著 2011年5月29日 e.e d3si9n 訳 僕は今、約束を破るところだ。およそ三年前、僕は絶対にモナドの記事だけは書かないと自分に約束した。既にモナドに関する記事は有り余っている。記事の数が多すぎてその多さだけで多くの人は混乱している。しかも全員がモナドに対して異なる扱い方をしているため、モナドの概念を初めて学ぼうとする者は、ブリトー、宇宙服、象、砂漠のベドウィン (訳注: アラブ系遊牧民) の共通項を探す努力をするハメになっている。 僕は、この混乱した

  • あらゆるCプログラマが未定義の動作について知るべきこと - YAMDAS現更新履歴

    LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #1/3 LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #2/3 LLVM Project Blog: What Every C Programmer Should Know About Undefined Behavior #3/3 コンパイラ基盤 LLVM のブログで、未定義の動作という C 言語のダークサイドについての記事が3回シリーズで公開されている。 C 言語で未定義の動作を実行したら、「鼻から悪魔が飛び出しても文句が言えない」というジョークは有名で……いや、そんなのを知ってるのは年寄りくらいか(参考:nasa

    あらゆるCプログラマが未定義の動作について知るべきこと - YAMDAS現更新履歴
  • 常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)

    TwitterのTLで知ったのだが、少し前に海外掲示板で"sleep sort"というソートアルゴリズムが発明され、公開されたようだ。このアルゴリズムが面白かったので紹介してみる。 Genius sorting algorithm: Sleep sort 1 Name: Anonymous : 2011-01-20 12:22 諸君!オレは天才かもしれない。このソートアルゴリズムをみてくれ。こいつをどう思う? #!/bin/bash function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait example usage: ./sleepsort.bash 5 3 6 3 6 3 1 4 7 2 Name: Anonymous : 2011-01-20 12:27 >>1 なん…だと

    常識を覆すソートアルゴリズム!その名も"sleep sort"! - Islands in the byte stream (legacy)
  • ゲームプログラミングもできる、やさしい開発環境「プログラミン」、文部科学省が公開

    文部科学省のWebサイトで、子どもでも簡単にプログラミングできそうな楽しい開発環境「プログラミン」の公開が始まりました。 子ども向けのプログラミング環境では、「LOGO」のようなタートルグラフィックスができるようなものがいくつかありますが、プログラミンはゲームのようなインタラクティブな操作もできて、しかも作ったプログラムを公開することもできます。 オープニングムービーから、どんな機能があるかを紹介しましょう。 ゲームを作って友だちに公開 「プログラミン」のページ。右上にはちゃんと文部科学省のロゴが。私たちの税金で作られているようなので、思う存分活用したいですね。

    ゲームプログラミングもできる、やさしい開発環境「プログラミン」、文部科学省が公開
  • モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人

    まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo apt-get install build-essential デバッグツール デバッガおよびデバッグツールは少なくとも以下の三つは入れる。(あとltraceも欲しいかな?) GDB 言わずと知れたGNUのデバッガ Valgrind メモリリークや不正メモリアクセスの検出 strace システムコールのトレース $ sudo apt-get install gdb valgrind strace ビルドツール C, C++のビルドツールといえばまずmakeが浮かぶけど、最近ではSConsやCMak

    モダンなC, C++の開発環境の構築方法 - 考える人、コードを書く人
  • RSpec の入門とその一歩先へ - t-wada の日記(旧)

    和田 卓人(@t_wada) 作『RSpec の入門とその一歩先へ』はクリエイティブ・コモンズ 表示 - 継承 4.0 国際 ライセンスで提供されています。 東京 Ruby 会議 03 の RSpec ワークショップの資料です。このワークショップでは参加者の方に「写経」(コードを書き写すこと)をして貰い、TDD/BDD と RSpec を同時に学べるように都度説明を入れるかたちで行いました。 第2イテレーションも書きました。続きに興味ある方はご覧下さい (更新) 第3イテレーションも書きました。続きに興味ある方はご覧下さい 1st iteration favotter の みたいな NG ワードのフィルタリング機能を RSpec で作りましょう。まずは NG ワードの検出機能を作成します。 このイテレーションでは最初ベタな形のテストコードと実装を書き、だんだんとそのコードを洗練させてゆきま

  • Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記

    Javaな人から見ると、「Scalaって難しい」ってイメージがありますね。俺も最初はそう思ってました。今もですけど。 で、考えてみたんですが、何が難しいって考え方・イディオムになじみがないのが原因かと思ったんです。 ここでは、俺が今までScalaをやってきて得た考え方を紹介します。「Scalaをちょっとやってみたんだけど、とっつきにくくて…」と思われている方は、ぜひご一読ください。 参考資料: Scala入門 - Scalaで書きはじめたJava使い向け - Scala勉強会@東北 Dropbox - 404 神は言われた。「リストあれ。」 Lisperは、リストをどう作るかをまず考えるらしいです。適切なリストが出来たら、プログラムはもうできたも同然だと。同じ考え方は、Scalaでも通用すると思います。 大まかに、こんな流れで考えてます。(リストは最初から与えられることもあるでしょう) 「

    Scala的な考え方 - Scalaがとっつきにくいと思っている人へ - ( ꒪⌓꒪) ゆるよろ日記
  • 米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine

    Googleは3月11日、正規表現ライブラリ「RE2」を発表した。動作が高速で「スレッドフレンドリー」な点が特徴。従来のバックトラック型正規表現ライブラリの代替として開発を進めていく。 Googleによると、同社はCode SearchやSawzallといったインフラやアプリケーションで正規表現を利用しているが、バックトラックアルゴリズムを利用した従来の正規表現実装では入力データに対し処理時間が指数的に増加することが問題となっていた。また、固定サイズのスタックを持つC++のマルチスレッドプログラムの場合、従来の正規表現実装ではスタックを使い切ってスタックオーバーフローを発生させることがあったという。これらを解決するために独自の正規表現エンジンを開発したとのこと。 RE2はどのような入力や正規表現に対しても一定の小さいメモリ量で動作するように開発されているのが特徴。オートマトン理論の下、処

    米Google、高速・低メモリ消費の正規表現ライブラリ「RE2」を公開 | OSDN Magazine
  • Bsddiary.net

    Bsddiary.net This Page Is Under Construction - Coming Soon! Why am I seeing this 'Under Construction' page? Related Searches: High Speed Internet Anti Wrinkle Creams Work from Home Best Penny Stocks song lyrics Trademark Free Notice Review our Privacy Policy Service Agreement Legal Notice Privacy Policy

  • 「ガベージコレクションのアルゴリズムと実装」という本を書きました。

    gcbook, gcai, GCGCLoverのみなさん、お待たせしました。「ガベージコレクションのアルゴリズムと実装」の情報公開です。 書名:ガベージコレクションのアルゴリズムと実装 著者:中村 成洋/相川 光 監修:竹内 郁雄 ページ数:472ページ 体価格:3,200円 発売開始日:2010年3月17日(水) ※地域・書店によって遅れることがあります ISBN:978-4-7980-2562-9 C3055 読み所 書は次の2つのテーマを扱います。 1.GCのアルゴリズム(アルゴリズム編) 2.GCの実装(実装編) アルゴリズム編では、これまでに考案されてきた数多くのGCアルゴリズムの中 から、重要なものを厳選して紹介します。伝統的かつ基的なものから、やや 高度なアルゴリズムを選定しています。GC独特の考え方や各アルゴリズムの特 性などを理解していただくのがアルゴリズム編の最大

  • 拙著「Linuxネットワークプログラミング」:Geekなぺーじ

    Linuxネットワークプログラミング」というを書きました。 LinuxでCを利用してネットワークプログラミングを行うための解説書で、私にとって初の書籍執筆です。 昨年2月にソフトバンククリエイティブさんから書籍執筆のオファーを頂き、開始から約一年後の発売となります。 今回、C言語によるLinuxのネットワークプログラミング解説書籍を執筆する機会を頂けたのですが、書籍の大きな方向性として以下の点が挙げられます。 可能な限り、ソースコード全文を掲載する。断片的なソースコードだと手元で即座に試しにくい メインはIPv4を意識しながら書く ただし、getaddrinfo()を前提とし、IPv6が存在することを前提に書く IPv6移行がメインの書籍ではない。インターネットの世界がIPv4/IPv6デュアルスタックで運用されることになるという前提でネットワークプログラミング解説書を書いているだけ

  • Javaバイトコードの読み方 - プログラマーの脳みそ

    Javaのデバッグをしていて、ステップ実行中にステップインを繰り返したらソースコードのないところに行き当たったことがあるだろう。あるいはEclipseでF3キーでクラスやメソッド・フィールドの宣言元を辿っていってソースコードのないところに行き当たったことがあるだろう。 Eclipseの場合、"Class File Editor"というものが開く。そこにはJavaのバイトコードのニーモニックがズラズラと並んでいて、「これは読めないや、ワケが分からない」と投げ出してしまったりしていないだろうか。 怖がることはない。ちょっとコツを掴めばすぐに読めるようになる。 Class File Editorの開き方 自前のJavaクラスの場合、ビルドして出来上がったclassファイルを開く必要がある。"Package Explorer"だとclassファイルは隠されていて見えないのでWindow -> Sh

    Javaバイトコードの読み方 - プログラマーの脳みそ
  • 富豪的プログラミング

    ちょっと貧しいGUI ユーザインタフェースのプログラムといえばすっかり グラフィカルユーザインタフェース(GUI)があたりまえになりました。 ところが最近の計算機はメモリもディスクも大量に装備しているし CPUパワーも従来とは比べものにならないのに、 意外と貧乏臭いインタフェースが生き残っているようです。 よく見られる以下のようなインタフェースはちょっと貧しい と思われます。 ウィンドウ枠のドラッグ マウスでウィンドウを動かそうとするとき、 ウィンドウの枠だけマウスに追随し、中身はドラッグ終了後に 再描画されるというシステムがあります。 画面描画が遅かった時代はこういう工夫も仕方がなかったかもしれませんが、 今でもこういうインタフェースを使っているのは貧しいでしょう。 排他的論理和で枠を書いたりもとに戻したりしていれば貧しさ度アップです。 でも調べてみたら同僚のほとんどが 枠だけドラッグの

  • 「RESTful MVC」なアーキテクチャの話

    最近、増井君と私でアーキテクチャの話をすることが多いのだが、そんなディスカッションの中で気に入っているのは左の図のようなアーキテクチャ。 もちろん、核となるのはビジネスロジックを含んだModelの部分。そこをしっかりと実装し、内部構造を隠す粒度の荒いインターフェイスを定義し、外から何をされてもデータの整合性が壊れない様にすることは何よりも大切。 そして、そのModel層へのインターフェイスを特定の言語に依存したクラスやAPIではなく、HTTP上でJSON(XMLでもかまわない)をやりとりするだけの RESTfulなWeb Serviceにすることがミソ。こうすることによりにより、どんなに締め切りに負われようが、誰がControllerを実装しようが「ずるができない」ように作っておく(ずる=来使うべき外部インターフェイスだけでなく、Model内部に直接アクセスして依存関係を作ってしまう事)

    「RESTful MVC」なアーキテクチャの話