タグ

programmingとProgrammingに関するusadamasaのブックマーク (111)

  • PC�o������ | Windows��Linux�������s���������_

    ���I Windows������������C�����\�[�X��Linux�����s�������������A���{�I����������������������Windows�����\�[�X�������X�����������������ALinux��タ�s�������������l�������L�q�����������B �������AWindows��Linux�����������������������A����������������Windows�\�[�X�����X���������������������������������������|������������ヲ�����������B

    usadamasa
    usadamasa 2011/11/07
    "Windowsで作成されたC言語ソースをLinuxへ移行するにあたり、基本的にすでに作成済みであるWindows側のソースには変更を加えることなく、Linuxで実行できるように考慮して記述しています。"
  • クリティカルセクション

    並行プログラミング(Concurrent Programming)では、並行して動くプログラム(プロセスやスレッド)が種々の資源(メモリ、ファイル、DB、周辺装置・・・)を共有することが多い。これら共有資源をプログラムが取り合う局面をクリティカルセクション(Critical Section)という。クリティカルセクションは並行プログラミングの最も難しい部分であり、バグが生まれる原因にもなりやすい。以下、具体例で説明しよう。 鈴木さんが山科信用金庫の口座からCDで5万円引き出すとしよう。CDのシステム側では、まず預金残高が5万円以上あるかどうかを調べ、okならば預金残高から5万円引くと共に、1万円札を5枚出すことになる。 上記を擬似的なプログラムで見てみよう。 X(メモリ) ← 預金(DB) IF X > 5万円 THEN X ← X - 50,000 預金(DB) ← X ... 1.~4

    usadamasa
    usadamasa 2011/09/29
    ここで、読者の中には次のような疑問を持つ人がいるかもしれない。コンピュータのスピードを考えると、上記のようにタイミング良く処理が重なるなんてことは、たとえ意図的に試みても現実には起こり得ないのではない
  • はてなブログ | 無料ブログを作成しよう

    ビールとポップコーンと映画 ラストマイルを見た。良い映画だった。 映画館でべそべそ泣いて、鼻を啜りながら車で帰った。感想はこのブログでは書かない。みんな映画館に行って感じてみてほしい。 帰ってからツイッターで感想を漁り、うんうん、わかるわかる、そうだよね、とまた映画を思い出して…

    はてなブログ | 無料ブログを作成しよう
    usadamasa
    usadamasa 2011/09/07
    例外クラスをコンポーネント間でどう分割するのかのガイドライン
  • Log4J徹底解説〜目次

    目次 概説 使い方(1) 使い方(2) 基のAppender ファイル保存系Appender ネットワーク系Appender JMSAppender OSログ系Appender JDBCAppender その他のAppender 1.3で追加されたAppender フィルタ機能 Joran Hacks(1.3) 自前 Appender の書き方!(1.3) Chainsaw(1.3) アスペクトはお好き? Log4cxxと小物ツール Log4php の使い方 Log4php の Appender たち もともとこの文書はバージョン 1.2.8 をベースに書いたものだが、2006年中に 1.3 がリリースされる、とアナウンスされていることもあり、フライングか?と思わなくもないが、1.3 対応をしました! あと、どうも要望のありげな log4php についての記述を大追加! 2007.9.1

    usadamasa
    usadamasa 2011/08/19
    "しかし、フツーに使っている分には、RollingFileAppender でローテートするログファイルを作るのがせいぜいで、あまり凝ったことまで解説されていないことが多いわけだが、実は筆者はとある理由で Log4J をハックしたので、
  • Windows時間データの相互変換 - Yoshi's Software Factory

    各データ形式によって精度・表現できる範囲が違っています。 ここで紹介するプログラムではオーバーフローなどのチェックは行っていませんので, その点は注意してください。 // time_t -> FILETIME 変換 FILETIME UnixTimeToFileTime(time_t t){ FILETIME ft; LONGLONG ll = Int32x32To64(t, 10000000) + 116444736000000000; ft.dwLowDateTime = (DWORD)ll; ft.dwHighDateTime = (DWORD)(ll >> 32); return ft; } // time_t -> SYSTEMTIME 変換 SYSTEMTIME UnixTimeToSystemTime(time_t t){ SYSTEMTIME st; FILETIME ft

    usadamasa
    usadamasa 2011/08/17
    windows時間データの相互変換関数。time_t,SYSTEMTIME,FILETIME間を変換できる。一旦time_tに変換すればうるう年などを考慮せずに日数の計算ができるぽい?
  • Java Tutorial 16 Stack Heap : guru99com

    usadamasa
    usadamasa 2011/07/14
    スタックメモリとヒープメモリの使われ方図解動画。分かったような気になれる。
  • モダンな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++の開発環境の構築方法 - 考える人、コードを書く人
    usadamasa
    usadamasa 2011/06/23
    モダンなC開発環境について。モダン〜って言い回しももう流行らないのかしらね。
  • プログラム言語 C の推奨されるスタイルとコーディング規範

    L.W.Cannon R.A.Elliot L.W.Kirchhoff J.H.Miller J.M.Milner R.W.Mitze E.P.Schan N.O.Whittingson Bell Labs Henry Spencer Zoology Computer System University of Toronto David Keppel EECS, UC Barkeley CS&E, University of Washington Mark Brader SoftQuad Incorporated Toronto 豊田 英司 (訳) 東京大学大学院数理科学研究科 向 修一 (訳) 浅沼 伸彦 (訳) 東京大学理学部 Abstract この文書は the Indian Hill C Style and Coding Standards を アップデートしたもので、最後の 3

    usadamasa
    usadamasa 2011/06/21
    C言語の推奨コーディング規約
  • ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して

    ある程度プログラマーとして経験を積めば、ソースコードを読んだときに、そのソースコードの良し悪しというものは、嗅覚を使って直感的に嗅ぎ分けることができるものです。実際、そのように体の感覚を使ってこのコードは不吉だと感じるところは実際大いにあり、コードの臭い(code smell)として知られています。 コードの臭い - リファクタリングの必要性を示す兆候 これはファウラーの名著 リファクタリング―プログラムの体質改善テクニック (Object Technology Series) 作者: マーチンファウラー,Martin Fowler,児玉公信,平澤章,友野晶夫,梅沢真史出版社/メーカー: ピアソンエデュケーション発売日: 2000/05メディア: 単行購入: 94人 クリック: 3,091回この商品を含むブログ (312件) を見るでも紹介されており、こういった不吉な部分を適切に嗅ぎ分け

    ConQATを利用してソースコードの品質をチェックする - 達人プログラマーを目指して
    usadamasa
    usadamasa 2011/06/12
    この図で長方形の面積はソースコードのステップ数に比例しており、赤い色の濃いところはクローンペアとして検出された行数の比率を示しています。濃い赤色のところほどコピペされた部分の割合が高いことを示していま
  • 大量データを扱うときはArrayListよりHashSetを使おう - greennoahの備忘録

    最近は性能問題が徐々に収束してきました。 解決された問題のうちの1つをここで紹介したいと思います。 「あるバッチプログラムの性能要件が100万件のデータを60分で処理しないといけない」というものがあったのですが、計測してみると2.5時間で40万件弱しか処理できないという問題がありました。(このデータから100万件にかかる時間を算出すると17時間。。。) このバッチプログラム、最初の15分間は処理量が6500件だったのに、時間が経過していくとどんどん劣化し、3時間経過で800件前後となり、その後は徐々に劣化していく、かなりお粗末なプログラムでした。 メモリリークは発生していなかったので、ログを埋め込んで時間のかかっている処理を切り分けていくとDBから取得したデータをArrayListに格納し、それを存在チェックしている箇所(ArrayList#contains)がボトルネックであることが判明

    大量データを扱うときはArrayListよりHashSetを使おう - greennoahの備忘録
    usadamasa
    usadamasa 2011/06/10
    大量のデータを扱う場合にHashSetを使うと、ArrayListと比べて処理速度が相当短縮されるよという実験。
  • Java Set/HashSetよくある使い方 - Java入門

    特徴 ◇ 重複のないコレクション。重複のあるデータを追加しようとしても、追加されません。重複であるかどうかの判定は、格納要素のequalsメソッドで行います。 ◇ null要素。null要素を許容しますが、禁止する実装もあります。許容する場合、重複要素を持たないため、null 要素を最大 1 つしか持ちません。因みに、Setインタフェース実装の一つHashSetは、null要素を許容します。なので、格納した要素はnullであることもありますので、細心の注意が必要です。 構造 java.util.Collection        [I] ∟java.util.Set            [I]  ∟java.util.SortedSet        [I]  ∟java.util.EnumSet  ∟java.util.HashSet  ∟java.util.LinkedHashSe

    usadamasa
    usadamasa 2011/06/10
    HashSetの使い方はわかったけど、使われ方がわかんない。なにが嬉しいのこれ。
  • javaのコードの読み方に関する質問です。publicstaticvoidmain(Stringargs[]){}のargs... - Yahoo!知恵袋

    javaのコードの読み方に関する質問です。 public static void main(String args[]){ }のargsはarrangements(配列という単語)の略でしょうか? argsはカタカナ読みする場合、どう読むのでしょうか? javaのコードの読み方に関する質問です。 public static void main(String args[]){ }のargsはarrangements(配列という単語)の略でしょうか? argsはカタカナ読みする場合、どう読むのでしょうか?

    javaのコードの読み方に関する質問です。publicstaticvoidmain(Stringargs[]){}のargs... - Yahoo!知恵袋
    usadamasa
    usadamasa 2011/05/05
    (String[] args)のargsってなにさって話。
  • iPhoneアプリを作ってみよう(Xcode4編)第1回:じゃんけんゲーム - もとまか日記Z

    以前から気になってたことですが、以下のエントリについて。 iPhoneアプリを作ってみよう:目次エントリー - もとまか日記 もう2年以上も前の記事なので、内容的に古くなってしまって、所々で最新の内容とは異なる動きをしてるんだろうな、と思ってました。とはいえ、随時対応していくのはなかなかシンドイ、というか実質無理です。なのでずっと放置してたんですが、先日公開されたXcode4でUI等が大きく様変わりしたこともあり、この機会に最新の内容に対応した記事を用意していこうかな、と考えました。 てことで、第1回目はやっぱり「じゃんけんゲーム」です。今回は今後のことも踏まえて試してみたいこともあるので、構成を以前とは変えて、1記事で全内容としているため少々重いかもしれません。ご了承くださいm(_ _)m プロローグ 今回の題材「じゃんけんゲーム」のイメージは以下です。 難しい部分は一切なく、その仕組み

    usadamasa
    usadamasa 2011/05/01
    xcode4によるiOSアプリ開発のチュートリアル。やってみた。
  • テスト駆動開発チートシート - やさしいデスマーチ

    TDD(テスト駆動開発)のチートシートを作ってみた。 TDDBCでid:t-wadaさんが話している内容とかテスト駆動開発入門から引っ張ってきています。 ダウンロードはこちらからどうぞ。 PNGイメージ: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.png PDFファイル: http://dl.dropbox.com/u/1393956/tdd_cheatsheet.pdf 追記 印刷・再配布などはご自由にどうぞ。 もし、元データ(OmniGraffle)が欲しいという人は、コメント欄かTwitter経由で教えていただければ差し上げます。 追記2 このチートシートは、OmniGraffleで作りました。他に使えそうなツールとしては、イラレとか。Visioでもたぶん作れると思います。

    テスト駆動開発チートシート - やさしいデスマーチ
    usadamasa
    usadamasa 2011/04/29
    TDDのチートシート。
  • 参照型変数と値が未定義の変数とnullと空文字 - 愚鈍人

    参照型変数と値が未定義の変数とnullと空文字 javaの 文字列 の、空文字 とnullとは同じものと勘違いしている人がいるので注意。 さらに、ややこしい事に、nullと「初期値が未定義である。」とは意味が異なる。 javaの データ型 には、 基データ型 と 参照型 がある。 基データ型はbyte,short,int,long,float, double,char,booleanの8つの型がある。 参照型は インスタンス や配列型)を指す。 基データ型と参照型の違いとして、基データ型には変数に値そのものが格納されるのに対して、 参照型の場合は、値の実体が格納されているメモリー位置を指し示す(参照する)値が格納されてる。 つまり、参照型変数にはデータそのものではなく、データの格納先(参照先)を示す値が入っている。 参照型にnullを代入すると、参照型の変数は何もオブジェクトを参照

    usadamasa
    usadamasa 2011/04/21
    「メモリを参照していない」状態と「変数が初期化されていない」状態は異なるという話。エラーが検出される段階も違う。
  • Javaプログラマが知るべき9のこと - @katzchang.contexts

    はじめに ソースコードは設計であり、コードの記述は品質に直結するのは言うまでもない。ちなみに、プログラマにとって特に重要なのは保守性だ。コードは書いた直後から保守対象となるからだ。コードは要求文書の範囲で動けばいいと思っている人がいれば今すぐ、ソースコードをコピペして100klに増えるプラグインがいつの間にかインストールされる呪いをかけてあげよう。幸い、ここを読んでいる人にはそんな人はいないだろうと思うけれども。 ということで、コードの品質を下げる要因、すなわちシステム全体の品質を下げる要因となり、かつ使われやすいアンチパターンを挙げ、対策を検討していくことにする。対象は以下: 出力パラメータ 処理状態返却 意味のある配列 無意味な初期化 多すぎるtry-catch 暗黙の順序 コンパイラ警告の無視 過剰なコメント e.printStackTrace() 出力パラメータ メソッドの引数にオ

    Javaプログラマが知るべき9のこと - @katzchang.contexts
    usadamasa
    usadamasa 2011/02/09
    javaコードの保守性を改善するためのよくある悪例とその対処法。java研修後に改めて読む。
  • エンジニアとデザイナーのコラボレーションの新しいカタチ

    Loading… Flash Player 9 (or above) is needed to view presentations. We have detected that you do not have it on your computer. To install it, go here.

    usadamasa
    usadamasa 2011/01/27
    プログラマの城であるgithubにデザイナーの力を。KUROIGAMENってサービス名でもうツカミは抜群ね。
  • MacのターミナルからカレントディレクトリをFinderで開く方法

    これ知ってる人からすると常識なのかもしれませんけど 知らなかったんだからしょうがない。 なんかやってみたらできたのでメモ。 Terminal で作業してて 今このディレクトリを Finder で開きたいなと思うことがある。 やっぱり Finder でやった方が楽な作業もあるので。 こういうときは open コマンドを使えばいいみたい。 % open . これでカレントディレクトリが Finder で開かれる。 いやターミナルではディレクトリと呼ぶけど Finder だとフォルダなのかな。ややこしい。 open というのは別に Finder を呼ぶためのコマンドじゃなくて ファイルやフォルダを開くためのコマンドなので アプリケーションと関連づけられたファイルを指定すれば ちゃんとそれで開かれる。 今までターミナルで作業をしてて そこにある画像を確認したいときはいちいち Finder に移動し

    MacのターミナルからカレントディレクトリをFinderで開く方法
    usadamasa
    usadamasa 2011/01/12
    osxのTerminalからファイルを開く方法を応用して、カレントディレクトリも開ける。
  • yebo blog: Mac OS X向けエディタ「Kod」

    2010/12/27 Mac OS X向けエディタ「Kod」 Mac OS Xで動くプログラマ向けのエディタ「Kod」の開発が進んでおり、まもなくベータテストが始まる。JavaScript(Node.js)で拡張可能で、スタイルファイルはCSS3を利用というWebの技術を採り入れている。バイナリのダウンロードは http://kodapp.com/download/ から可能で、ソースコードはGithubで入手できる(https://github.com/rsms/kod)。TextMate 2の開発が進んでいないので期待したい。特徴は次の通り。ファイルの読み込み、ハイライトなどの同時処理実行され、CPUコアごとに分散処理されるNode.jsをベースにした統合スクリプティング環境OS X 10.6の最新APIを使ってスクラッチで書かれている(10.6のみで動作)Chromiumライクなタブ

    usadamasa
    usadamasa 2010/12/28
    osxで動く統合スクリプティング環境「Kod」のβ版がでるとか。javascriptで拡張可能(emacsのように?) 気になる。
  • 年収1500万円超えたフリーのプログラマだけど何か質問ある? - 痛い信者(ノ∀`)

    2010年12月27日11:12 年収1500万円超えたフリーのプログラマだけど何か質問ある? Tweet カテゴリITビジネス 1 以下、名無しにかわりましてVIPがお送りします [] 2010/12/27(月) 05:11:46.18 ID:bRhMcIo40 立ったら答える 4 以下、名無しにかわりましてVIPがお送りします [] 2010/12/27(月) 05:12:58.47 ID:nYFoSHT80 やっぱりグラマーなの? 5 以下、名無しにかわりましてVIPがお送りします [] 2010/12/27(月) 05:13:55.44 ID:+uZCPTlZP このご時勢にプログラマでフリーランスとか度胸ありますね >>5 5年くらいフリーやってる 7 以下、名無しにかわりましてVIPがお送りします [] 2010/12/27(月) 05:16:46.62 ID:s+YM0Bjk

    usadamasa
    usadamasa 2010/12/28
    "入門書でなく参考書で言うなら、本屋でパラパラ開いて自分で把握出来る内容が書かれている物を買うといい 例えそれが幼稚園レベルでも、あるいはそうでなくても構わないから、「私が欲しい情報が、そこに書かれてい