programmingに関するauto_ptrのブックマーク (46)

  • [WPF][C#]WPFでアプリを作るときのフレームワーク

    Feedback # [WPF] Acropolis から WPF Composite Client 経由 Prism <- いまココ 2008/10/15 15:56 biac の それさえもおそらくは幸せな日々@nifty Nakamura Blog より。 .NET 用のオープンソースのフレームワーク * TERASOLNA * Seasar.NET * Spring.NET * blanco Framework * Enterprise Library * 弁慶フレームワーク まだまだあるハズ。見つけたらこのエントリに追加していきます # [WPF][C#]Composite Application Guidance for WPF 2008/10/17 12:48 かずきのBlog [WPF][C#]Composite Application Guidance for WPF #

    auto_ptr
    auto_ptr 2009/09/13
    スタートアップ紹介。
  • C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す

    C++0Xの新機能が搭載されたVisual Studio 2010 Microsoftの開発者向け技術情報サイト「MSDN」では、Visual Studio 2010 β1 がリリースされています。IDEがWPFで作られていたり、.NET Frameworkのバージョンが上がっていたりと、Visual Studio 2010では様々な変更/拡張が施されているようですが、C++屋の筆者としては、Visual C++が部分的にせよC++の新規格(通称C++0X)の新しい機能を積極的に取り入れていることが、とても嬉しく思います。 Visual C++ ver. 10に追加されたC++0Xの新機能のひとつ、「ラムダ式(lambda expression)」を少しばかり触ってみましょう。 関数オブジェクトとは C++templateをサポートし、それにあわせてSTLに代表されるテンプレート・ライブ

    C++0xの新機能「ラムダ式」を次期Visual Studioでいち早く試す
  • なぜNT系OSは堅牢といわれるのか?

    Windows OSは,NT系の方が95/98/Me系よりも堅牢だといわれる。NT系OSは「カーネル・ベースのOSだから」「アプリケーションがクラッシュしてもOSはダウンしないから」など,ごく表面的な理由なら「にわか管理者」でも説明できるだろう。しかし,その当の理由をあなたは正しく説明できるだろうか。 Windows XP/VistaなどのNT系OSに乗り換えたら,長年の問題だった「フリーズ」から解放された――そんな経験をした読者は多いだろう。Windows 95/98/Me(以下9x)時代は,ワープロと電子メール・ソフトを立ち上げながらWebサーフィンをし,気が向いたら動画を再生してみる――といった作業をした途端,パソコンがウンともスンとも言わなくなることは珍しくなかった。 それがWindows XP/Vistaを使う今なら,アプリケーションに何かトラブルが発生しても,「タスク・マネー

    なぜNT系OSは堅牢といわれるのか?
  • 設計者自らが書き下ろす「C++入門書」とは~Bjarne Stroustrup氏との対話~:CodeZine

    はじめに Bjarne Stroustrup氏は、プログラミング言語C++を設計・実装しただけではなく、側近と呼ばれる人々と共にその改善と普及のために間断なく活動してきました。(参照ページ:豊田孝の「IT談話館」) 著名なC++関連書籍の執筆者の一人であるScott Meyers氏は、マスコミの依頼に応じ、C++言語の発展と普及に貢献した偉大な人物と書籍をリストアップしたことがあります。Stroustrup氏とその書籍が、それぞれのリストの1番目に紹介されたのは言うまでもありません。(参照ページ:『The Most Important C++ People...Ever』) Scott Meyers氏によって「C++書籍の中で最もインパクトを与えた5冊」に選ばれたStroustrup氏の著書「The C++ Programming Language」 Stroustrup氏はC++プログラ

  • あなたはC++ の発明者? それとも創造者?〜Bjarne Stroustrup氏との対話〜:CodeZine

    はじめに 「Bjarne Stroustrup氏との対話」連載を担当することになりました、豊田孝と申します。よろしくお願いいたします。 対話の相手であるBjarne Stroustrup氏は、プログラミング言語「C++」を設計し、最初に実装した人です。それだけでなく、同氏はC++を国際標準プログラミング言語の地位に付かせました。大変なエネルギーの持ち主です。 筆者はこの数年、「同氏の生き方から何かを学べるのではないか」と考えてきました。その考えは日毎に熱を帯び、「学べるはずだ!」、そしてついには、「わが国の開発者に、同氏の考え方と生き方ぜひお伝えしたい!」へと変化し今回の連載を始めるに至りました。 稿でのStroustrup氏との対話はメール交換を通して行われます。基的には、筆者が質問文を用意し、Stroustrup氏がその質問に対して高所からコメントを寄せることになります。C++言語

  • 第5回 拡張メソッド ― @IT

    C# 2.0プログラマーの悲劇 題に入る前に、よくあるトラブルの事例を見てみよう。C# 3.0を使い始めたC# 2.0プログラマーの話だ。 C# 2.0プログラマーのA君が、Visual Studio 2005を用いて以下のようなコードを書いたとしよう。整数配列がすべて奇数であるかを確認し、その条件が成立していないときはその旨を出力する内容である。 using System; using System.Collections.Generic; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int[] primes = { 2, 3, 5, 7, 11 }; foreach (int target in primes) { if (ta

    auto_ptr
    auto_ptr 2008/08/18
    C# 3.0 の拡張メソッドの仕組みについて。暗黙の this ポインタという懐かしいトンチ。
  • メモリ確保可能量の違い

    [戻る] ジロー 2006/03/25(土) 05:26:09 こんにちは、質問させてください。 画像を面でメモリに確保し、処理するプログラムを作成したのですが、 Win2000で上限としていた最大サイズに比べて、 WinXPで限界となる最大サイズがかなり少なくなってしまった為困っています なぜこのようになってしまうか、 何か情報をお持ちの方いらっしゃらないでしょうか。 GlobalAllocPtrで指定サイズ分メモリを確保するプログラムを VC++ 6.0で作成したのですが、私がテストしたパソコンでは プログラムを実行したOS別に確保できた最大バイト数が違ってしまいました。 WinXP SP2 日語版 約900MBが最大 WinXP SP2 英語版 約1.4GBが最大 Win200 SP4 日語版 約1.8GBが最大 (全部Professionalです) OSは、OS毎にHDDを用

    auto_ptr
    auto_ptr 2008/07/06
    Windows でのメモリ連続領域確保可能サイズ。 2GB のプロセス空間の途中に IME 等の DLL がロードされて空間が分断される件。
  • 連載:良いコ―ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社

    最終回 配列/コレクションを利用した抽象化―その5 Step4⁠⁠:配列/コレクション化して抽象化する 縣俊貴 2009-05-18 最終回 配列/コレクションを利用した抽象化―その4 Step3⁠⁠:関連のあるデータをオブジェクトに 縣俊貴 2009-05-15

    連載:良いコ―ドへの道―普通のプログラマのためのステップアップガイド|gihyo.jp … 技術評論社
  • 結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer

    【追記 2008/7/2】とても昔のClosureについて書いた記事が注目を集めてしまったみたいですが、ぜひ、もっと後で書いた次の記事とその関連スレッドの方も確認してみてください。このときよりも、もう少し事情が分かってから書いたものなので、より正確に状況を理解できると思います。それに、私自身、この言葉にはまだ混乱しています・・・ http://d.hatena.ne.jp/lethevert/20070524/p2 - という問いに対して、そろそろ私の結論を整理しておきます。 これは、将来の自分に対する参照の便のための整理です。 前提知識 前提知識として、こちらの内容を読んで理解しておきます。 Closure (computer programming) - Wikipedia [id:lethevert:20060119:p1] [id:lethevert:20060121:p2] また

    結論:結局、Javaはクロージャを使えるの? - lethevert is a programmer
  • Objective-C - Wikipedia

    Objective-C(オブジェクティブ シー)は、プログラミング言語の一種。CをベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語である。 Objective-CはNeXT、macOSのオペレーティングシステム (OS) に標準付属する公式開発言語である。macOSのパッケージ版に開発環境がDVDで付属するほか、ユーザ登録をすれば無償でダウンロードできる(Xcodeの項目参照)。現在では主にApplemacOSやiOS上で動作するアプリケーションの開発で利用される。 Objective-CはCを拡張してオブジェクト指向を可能にしたというよりは、Cで書かれたオブジェクト指向システムを制御しやすいようにマクロ的な拡張を施した言語である。したがって、「better C」に進んだC++とは異なり、「C & Object System」という考え方であり、ある意味2つの言語

  • 「サニタイズ言うなキャンペーン」私の解釈

    高木浩光さんの「サニタイズ言うなキャンペーン」 という言葉自体はずいぶん前から存在したのだが、 続・「サニタイズ言うなキャンペーン」とはにて高木さん自身がいくつも誤解の例を挙げているように、 そしてまた最近も 駄目な技術文書の見分け方 その1にて「まだわからんのかね」と言われているように、 「わかりにくい」概念なんだろうとは思う。 そこで、僭越ながら、「サニタイズ言うなキャンペーン」について、 私なりの解釈を書いてみようと思う。 もっともこれが正解であるという保証はないのだが、 間違っていたらどなたかツッコミいただけることを期待しています(_o_) そもそも何のせいで「エスケープ」しなければならないのか たとえば住所氏名を登録させるWebアプリケーションは珍しいものではないと思う。 そこで、私が「Taro&Jiro's castle サウスポール」 とかいう恥ずかしい名前のマンション(?)

    auto_ptr
    auto_ptr 2008/06/16
    サニタイズという発想が間違っている理由の説明。そもそもバグであること。
  • 第3回 varによる変数宣言とコレクション初期化子(4/4) - @IT

    配列ではないコレクションの初期化についても、C# 3.0は機能強化されている。 例えば、List<T>クラスを用いたリストを作成する際、初期値を容易に指定することができる。1、2、3という3つの初期値を持つList<int>オブジェクトは、以下のように宣言することができる。 using System; using System.Collections.Generic; class Program { static void Main(string[] args) { // コレクション初期化子の使用 var list = new List<int>() { 1, 2, 3 }; foreach (var i in list) Console.WriteLine(i); // 出力: // 1 // 2 // 3 } } ここで、「new List<int>()」と書いてインスタンスを生成さ

    auto_ptr
    auto_ptr 2008/06/15
    一昨日もこれが .NET 2.0 でできるかを同僚と話した。
  • 二流プログラマの三流な日常: ソースを変えずに高速化する(.NET Framework)

    納期がギリギリでも高速化しなくてはならないことがあります。 そんな時に役に立つ、ソースを変更せずにコンパイル時や実行時の設定だけで高速化する方法を紹介します。 以下、効果が高く重要な順に行きます。 使用するアセンブリ(DLL)のロード時間を高速化する 呼び出すアセンブリ(DLL)が2個以上あるなら、ベースアドレスを変更する 必要とするアセンブリの検索をプローブに頼っていませんか?プローブによる呼び出しはかなり低速です。「.NET Frameworkアプリは起動が異常に遅い」などという人は、大抵、この辺の知識か、JITに対する理解が足りていません。厳密名をつけ、アセンブリをGACに導入することを検討してください。 ベースアドレスの変更はWindows開発の常識です。解説は他のサイトに任せます。 次にCPUが2個以上あるサーバプログラムでは以下の事も検討すべきです。 ガベージコレクタを変更して

  • MSDN ホームページ

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    MSDN ホームページ
  • .Netアプリの起動の速度向上�A やじゅ@アプリケーション・ラボ/ウェブリブログ

    .Netアプリの起動の速度向上�A 起動が遅いことについては要因が2つある。 1.JITによるもの。これに関しては、ngenにより改善可能。 2.必要なメモリ使用量と仮想記憶サイズの合計が大きいこと。 起動時にその多くを実メモリに一旦ロードするためにページングなどが 多く起きる、これによる遅延が相当に大きい。 但し、一度起動してしまえば実際に必要な箇所は限られるので実メモリ (ワーキングセット)は減少し安定してくる。 この問題を解決するには基的に実メモリを増やすしかない。 CLRの起動時に作成されるドメインは下記の3種類が作成される。 1) System Domain 2) Shared Domain 3) Default AppDomain System Domainは、InterfaceVtableMaps(インターフェース仮想関数へ

  • .Netアプリの起動の速度向上 やじゅ@アプリケーション・ラボ/ウェブリブログ

    .Netアプリの起動の速度向上 .Netアプリの起動が遅いのは知られたことですが、利用者には起動が遅いのは .Netである為、仕方ないのですよってのが通じるのかって話ですよ。 それなら、.Net以外で製造してくれってことになりかねません。 OSをビスタにすれば、起動は速くなるようですが、一般企業のPCがビスタに変わ るのは、まだまだ数年以上も先の話でしょう。 確かにアプリケーションの実行を考えると初回起動時に遅いのは、それほど問題 ではならないかもしれませんが、初回起動が遅いためにユーザーが不安になるケ ースは多いと思います。←問題かも(^^; スプラッシュウィンドウを出して動いているって見せればいいのかも知れませんが .Netでは、それすら起動が遅いので、にっちもさっちもです。 ってことで、アンマネージド(Win32系 VB6など)なスプラッシュ

  • 二流プログラマの三流な日常: 「Native-DLL」と「Managed-DLL」の探索方法は違う

    Windowsにおいて、アセンブリはDLLで実装されています。 マネージドアプリ(EXE)からアセンブリ(DLL)を読み込む場合、一般的なWin32アプリケーションがEXEファイルからDLLを探索する手順とは異なるルールを採用しています。 参考までに、Win32のネイティブなDLLは、以下の順番で検索します(※1)。 レジストリの「knowndll」リスト 実行ファイルのディレクトリ カレントディレクトリ システムディレクトリ Windowsディレクトリ 環境変数の「PATH」 しかし、最後まで名前に頼るというのが、安全ではないと考えられたため、「.NETのアセンブリ」ではより確実な方法な以下の順序に変更されました。 構成ファイル(app.config, machine.config等)の<codebase>要素 以前に読み込んだアセンブリのバインド履歴 グローバルアセンブリキャッシュ(G

  • インサイド .NET Framework [改訂版]第3回 アセンブリのロード(3/5) - @IT

    ■グローバル・アセンブリ・キャッシュ(GAC) グローバル・アセンブリ・キャッシュ(GAC)とは、名前のとおりマシン全体でグローバルに参照可能なアセンブリの配置場所だ。.NET Frameworkをインストールすると、デフォルトでは「%Systemroot%\assembly」フォルダ以下がGACとして設定される。GACは特殊なフォルダ構造なので、ここに単純にファイルをコピーするようなことはできない。実際、エクスプローラで「%Systemroot%\assembly」フォルダを見てみると、アセンブリの名前を一覧表示するシェル拡張が起動される。 GACにアセンブリをインストールするには、2つ方法がある。1つはエクスプローラを使って、GACにファイルをドロップする方法だ。アセンブリのプライマリ・モジュール・ファイルをこのフォルダにドロップするだけで、アセンブリがGACに登録される。もう1つはg

    auto_ptr
    auto_ptr 2008/06/08
    GAC の概要と目的、 .config の codebase 要素。
  • 君のプログラミング言語で、これ、できる? - The Joel on Software Translation Project

    Joel Spolsky / 青木靖 訳 2006年8月1日 火曜 ある日、自分のコードを眺めていて、ほとんど同じに見える2つの大きなコードブロックがあるのに気付く。実際、一方が"スパゲッティ"、他方が"チョコレートムース"について言及しているところを別にすれば、どちらもまったく同じだ。 //簡単な例: alert("スパゲッティがべたい!"); alert("チョコレートムースがべたい!"); この例ではたまたまJavaScriptを使っているが、この後の話は別にJavaScriptを知らなくとも理解できるはずだ。 同じコードが繰り返し現れるのは、もちろん良くないことだ。だから関数を書くことにしよう: function SwedishChef( food ) { alert(food + "がべたい!"); } SwedishChef("スパゲッティ"); SwedishChef(

  • 言語の進化について語る Bjarne Stroustrup 氏

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Interview++ Bjarne Stroustrup on the Evolution of Languages Howard Dierking Contents Thoughts on Language Language Trends Methodology and Best Practices Looking toward the Future Books and Phones Every once in a while, an evolutionary leap rapidly advanc

    言語の進化について語る Bjarne Stroustrup 氏