2012年5月6日日曜日


オススメのLinuxサーバー入門書

おすすめサイト

≪Linux初心者向け講習会1≫

■2011/2/20(日)■

にLinux初心者のための講座
(講習会)を開催します。
詳細は下記リンクをご覧ください

↓↓↓↓↓
【はじめてのLinux基礎講座】

美女Linux


≪Linux初心者向け講習会2≫

■2010/12/5(日)■

inuxネットワーク・サーバ構築講座(講習会)です。 詳細は下記リンクをご覧ください

↓↓↓↓↓
【はじめてのLinuxネットワーク・サーバ構築講座】

≪Linuxサーバ構築コース≫

■2010年7月14日〜10月6日■
Linuxサーバ構築を学びたい方!!どうぞ!! 詳細は下記リンクをご覧ください

↓↓↓↓↓
【Linuxサーバ構築コース】

私が執筆した書籍「これならわかる!Linux入門講座」 が2010年3月17日に発売になりました。 Linux初心者の方におすすめです。

Linux大学


オープンキャンパス中!!

↓↓↓↓↓
【Linux大学】

2009年11月4日〜
【Linux初心者勉強会開催決定】

【Linux初心者勉強会】

≪Linux初心者向け講習会3≫

■調整中■
Linuxのデフォルトシェルbashの講座です。 詳細は下記リンクをご覧ください

↓↓↓↓↓
【はじめてのシェル入門講座(bash編)】

>

初心者向けのLinux コミュニティ型のWebサイトです。
※会員制になります。
アクセス先は下記リンクになります。

2012年5月4日金曜日



NHKなどでも、積極的に取り上げられるようになり、
ちょっと、舌をかみそうな「フィトンチッド」という言葉も、
私どもの生活に身近に語られるようになりつつあります。

(1)森林の力=フィトンチッドって何だろう?
(2)森林や木には神秘的で不思議な力ー森林浴
(3)樹木(植物)がフィトンチッドを作る理由
(4)フィトンチッドは自己防衛の秘密兵器
(5)食べ物の鮮度を保つフィトンチッド
(6)お寿司やさんはフィトンチッドと共存
(7)香辛料もフィトンチッド
(8)代表的なアレルギー症状
(9)ダニとフィトンチッド
(10)そこで頼りになるのがフィトンチッド
(11)住まいに活かされているフィトンチッド
(12)研究データに見るフィトンチッドの抗菌作用
(13)青森ヒバ
(14) F−118

/>森林の力=フィトンチッドって何だろう?/>
「フィトンチッド」。聞きなれない言葉かも知れませんね。
いったい何なのでしょうか?フィトンチッドとは一言で説明すれば 『森林の香り』 或いは 『森林の不思議』 です。

でも自然と触れる機会が少なくなった現代では「森林の香り」と言われてもピンとこないかもしれません。

もう少し具体的に言うと「木の香り」。こう説明すれば皆さんは、材木やさんや新築の木造住宅に漂う匂いやヒノキ風呂の香りを思い浮かべるでしょう。

そして「何だ、難しそうな言い方をしているだけで、たかが木の香りじゃないか。」と思われるかもしれません。でもちょっとお待ちください。わざわざ「フィトンチッド」と呼ばれ、また最近その存在が注目されている背景には、ちゃんとした理由があるのです

森林や木には神秘的で不思議な力があります

たとえば「森林浴」。

ストレスをやわらげて、身も心もリフレッシュさせる森林浴の爽快感は皆さんも良くご存知ですね。

休日には都会の喧騒を逃れ、自然の緑を求めてハイキングなどに出かける方も多いと思います。

本来なら落ち葉、動物の排泄物など腐敗物の多い森林は、悪臭に満ちてもおかしくありません。緑にあふれた森林の中に入って行くと爽やかな空気が広がり、しばらく歩いているとかすかな緑の香りに気がつくと思います。

この森林浴効果をもたらす森林の香りの正体が「フィトンチッド」。森林の植物、主に樹木が自分で作り出して発散する揮発性物質で、その主要な成分はテルペン類と呼ばれる有機化合物です。そして、この揮発している状態の� �ルペン類を人間が浴びることを森林浴と言う訳です。

森林浴も今では、日光浴や海水浴と並んで、私たちの暮らしの中にしっかり定着したようです。健康づくりには欠かせない存在ですね。

2012年5月3日木曜日


No.3ベストアンサー20pt

残念ですが散布図では不可能です。
そもそもグラフの概念が違います。
散布図は変数領域に対するもう一方の変数の領域を見るためのグラフです。
主に物の寸法バラツキに対する、出力される数値などの相関性を見るために使用するので、要素は全て変数なんです。

2012年5月1日火曜日


CString オブジェクトを C スタイルの文字列として使用するには、オブジェクトを LPCTSTR にキャストします。 次の例では、CString は、読み取り専用の C スタイルの null で終わる文字列へのポインターを返します。 myString.">strcpy 関数が C スタイルの文字列のコピーを myString 変数に格納します。

2012年4月30日月曜日


その5 高速フォント表示

ホーム < ゲームつくろー! < DirectX技術編 < 高速フォント表示


その5 高速フォント表示

この章のサンプルプログラムはこちら


 Direct3Dはフォントの扱いが苦手です。一応画面に簡単に文字を出すためのID3DXFontインターフェイスがありますが、背後でWindows APIを用いてフォント形状を取得しているので、描画が異常なほど遅いのです。あまりに遅くて、特にノベルス系のように画面にフォント文字が沢山出て来るゲームではまともに使えません。

 ID3DXFontを介して描画するのがなぜ遅いのか?それは、1フレームごとにフォントを一から作成して描画しているためです。フォントの情報を得て、それを点の情報に変換して画面に打つ。これでは、どれだけ頑張ったって速度は出ません。ところで、DirectXは「絵」の描画については異常な程高速です(それがDirectX最大の売りですよね)。ということは、フォントを毎回「打つ」のではなく、フォントの絵を「描画」すれば、高速なフォント描画があっさりと実現できるわけです。

2012年4月28日土曜日


2008.05.29

今まで何回も取り上げてきた「マイクロフォーマット」ネタですが、Allsopp本の翻訳が

マイクロフォーマット Webページをより便利にする最新マークアップテクニック

というタイトル(仮題)で毎日コミュニケーションズから出版されるようです。情報元は「Web標準Blog」で、監修の木達一仁氏が関わっている会社です。

ちなみにセミナーも Allsopp 氏来日に合わせてあるようですが、これは満員御礼だそうです....

やはり関心ある人多いでしょうね...本は「買うべし」です(ただしエントリ時点で毎日コミュニケーションズの近刊予告には入っていないようです)

投稿者 : 杉浦 こずえ | 投稿日時 : 2008.05.29 12:33

2008.05.28

前回のエントリ...に限らず、私って平気で「コーラー側」という言い方をしてたのですが、"コーラー側" でググると、あまりコレ引っかからないのですね....

要するに

コーラー(caller) =(関数・メソッドの)呼び出し側
コーリー(callee) =(関数・メソッドの)呼ばれた側

のことを言います。あれぇ、私はプログラマの日常口語だと思ってたのですが、知らない人が多いみたいなのですね(まあ、「コーラー側」と使うと、「馬から落馬」みたいな冗語っぽいニュアンスがないではないですが)。

とはいえ、caller/callee は(明確な)技術用語で使われている箇所っていうのはあります。皆さんおなじみの JavaScript ですけども(まあ、他のスクリプト言語でも同様な実装があるのでは?)、関数の中で「隠し持っている(実際には関数呼び出し時にセットされる)」arguments というオブジェクトがあります。これは「その関数の呼び出し環境(スタックフレームみたいに考えて良さそうです)」を示し、名前の通り「その関数に渡された引数」を配列として持つのが本来の役割です。しかし、この arguments オブジェクトには、caller と callee という2つの重要なプロパティがあります。

JavaScript の arguments オブジェクトの

callee プロパティ: 現在実行中の関数オブジェクトを示します。
caller プロパティ: この関数を今呼んでいる「呼び元の関数の arguments オブジェクト」を示します。

というように、このargumentsはうまく使うとかなり面白いことができます。arguments オブジェクトはJavaScript 関数の汎用カリー化関数とかで「任意数の引数を再適用する」ところで使ってたおぼえもあります...たとえばですね、JavaScript では「無名の関数」を function() {} などで作ることができますが、この「無名の関数」内で、再帰呼び出しをしたい場合

.....あれ、名前がないから再帰で呼べない...

となりますけども、実はこれ、callee プロパティを呼べばいいのです。

function show(n,m) {
  alert( function(x) {
    if( x > m )  return x * arguments.callee(x-1);
    return 1;
  }(n) );
}

n!/m! を再帰的に計算するルーチンならば、こんなところでしょうか。show() の内部で再帰計算をする無名関数を作って、それを引数 n で起動した結果を alert() しています。m の束縛はいわゆるクロージャです。あるいは、caller を使うと、スタックトレースが取れます.....しかし、この caller は JavaScript 1.5 では deprecated の扱いのようですが(がまだIE/FireFox共に動きますね!よかった...) 

まあ、この caller/callee というプロパティは「スタックフレームへの参照」ですから、どんなスクリプト言語でも、「言語設計者が実装しようと思えば装備できる」プロパティです(逆に言うとかなり初期からこれを持つ発想のあった JavaScript の設計は評価すべきでしょう。参照方法はともかく、アイデアいいです)。同じようなプロパティが他の言語にもある可能性は高いですね....

そう考えてみたら、プログラマ用語として「コーラー・コーリー」を使う...というのはけして珍しいこと、とまでは言えないのでは?と思います。個人的には時代遅れになってなくって良かった(苦笑)....

 

 

投稿者 : 杉浦 こずえ | 投稿日時 : 2008.05.28 12:12

2008.05.27

書き出した時点で、お昼休憩中です。皆さんお昼ご飯はいかがでしたか?お昼ご飯代はおいくらでしたか....という話では、残念ながらないです(ちなみに私は大概会社の近くの自宅に帰ってお昼ご飯です。今日は昨日の残りモノで、鳥ごぼうご飯と、アスパラのおひたし、大福豆、大根おろし+金山寺味噌というメニューでした)。

お昼ごはんはタダではいけません! というのは、有名なSFネタのジョークです。「ノーフリーランチ定理」と呼ばれる面白い定理があります。それは、

数学的にありうべき全ての問題の集合について、どの探索アルゴリズムも同じ平均性能を示す

と主張します。結構意外じゃないですか?

プログラマ、というと「このアルゴリズムは性能がいい/悪い」というのを肌で知ってる...というのが望ましいですけども、しかし、それは「日常に現れる一般的な問題」の場合に「性能がいい・悪い」という議論をしているだけなのです。プログラマだったら、「いいアルゴリズム」がデータによって「ウラをかかれ」た経験があるんでは..と思います。たとえば、速いアルゴリズムの代表であるクィックソートは、すでに整列したデータを与えた時に、O(n2 ) にまで性能が劣化します。勿論「ホントにいいアルゴリズム」の場合は「最頻のケース」と同様に、「最悪のケース」に対する備えを心がけるべきなのですが....

このノーフリーランチ定理を言い換えると、

あらゆる問題で性能の良い汎用最適化戦略は理論上不可能であり、ある戦略が他の戦略より性能がよいのは、現に解こうとしている特定の問題に対して特殊化(専門化)されている場合のみである

ということになります。「よくある場合に性能がいい」と「ウラをかかれると性能が悪い」とは同じことの両面に過ぎないことをこの定理は示すのです。汎用的であればあるだけ、「最良の場合の性能」は悪化してしまいます....汎用性と特殊性のせめぎあい、というプログラマがいつも頭を悩ます問題というのは、回避不可能な本質的な問題なのです。

これはもっと広く考えて、問題とその解決法、という視点で考えるのも面白いでしょう。問題を「汎用的に解決する」のは非常に難しいわけです。

人生、宇宙、すべての答え

という極めつけの「汎用的な問い」への答えを要求された銀河最高のコンピュータ「ディープ・ソート」は、

42

という極めて「汎用的な答え」を返します(詳しくは「銀河ヒッチハイクガイド」を...)。「42」は答えに違いないのでしょうが、それは人間にとって「利用可能な答え」ではありえないのです....「汎用的」なのがいつもいつも正しいわけではないのです。

 

投稿者 : 杉浦 こずえ | 投稿日時 : 2008.05.27 13:48

2012年4月27日金曜日


まずはストレートに「オブジェクトとは何か」という問いを発してみましょう。 これは難問です。そして人によって解釈の違う概念でもあり、「これで正解」 というものがないのも実状です。しかし敢えてこの問いに一つの答えを出して みたいと思います。

「オブジェクト」とは日本語で言えば「もの」です。しかし「もの」というだ けではそれこそ何でもオブジェクトになってしまいます。「何でもオブジェク トだ」という見方も一つあるのですが、ここではそれに「アイデンティティー」 という考え方を導入したいと思います。 「アイデンティティー」は日本語では「自己同一性」と訳されますが、「それ がそれであること」です。人間で言えば「自分が他の人とは区別された自分自 身であること」です。そしてアイデンティティーを備えた「もの」こそが「オ ブジェクト」なのです。

例えば薬局に錠剤の入った薬瓶が並んでいる所を想像して下さい。それぞれの 薬瓶には名前の書かれたラベルが貼ってあり、錠剤がたくさん入っています。 これらの薬瓶は取り換えの効かないものです。頭痛薬の入った瓶と胃腸薬の入っ た瓶は混同してはいけないものですし、同じ薬の入った瓶でも中身の多いもの と少ないものではまた違います。こういう、それぞれの瓶が他の瓶と取り換え が効かない固有の特徴を持っているという状態が「アイデンティティー」を持 つということです。それに対してその中身はどうでしょう?瓶の中には同じ 薬の錠剤がたくさん入っていますが、どの錠剤も他の錠剤とまったく同じで取 り換えが効きます。これがアイデンティティーのない状態です。

アイデンティティーのあるなしを見分けるには、「個体が識別できるかどうか」 を考えるとよいでしょう。アルバイト店員が薬剤師に「薬瓶を持ってきて」と 頼まれたとしましょう。アルバイト店員が「どの薬瓶ですか?」と聞くと、薬 剤師は例えば「一番上の棚の右から3番目のところにある『アスピリン』と書 いてある瓶を持ってきて」というように答えるでしょう。薬剤師は指定した場 所にある特定の薬瓶を持ってきてほしいのです。

2012年4月25日水曜日


は、テストプログラムを作成して、Auxiliary Storage(LocalPageデータセット)を溢れさせてみました。その時の状況をSYSLOGに表示されたメッセージを元に解説します。

まず、Auxiliary Storage Shortageとは、使用率が70%を超えた状態の事を指します。Auxiliary Storageの使用率が70%を超えると、MVSシステムMVSはIRA200Eを出力し、LOGON,MOUNT,STARTコマンドが全て失敗させ、新しいアドレススペースを作成しません。稼動中のタスクも、Swapout中のJOBはSwapinする事が出来ません。一部のJOBは強制的にSwapoutされます。さらにGetmainを要求するJOBのほとんどは停止してしまいます。

2012年4月24日火曜日

¥n" ); for ( i = 0; i < 256; i++ ) { r = ( i & 0xC0 ) >> 6; // rは0から3 r = r * 255 / 3; g = ( i & 0x38 ) >> 3; // gは0から7 g = g * 255 / 7; b = ( i & 0x07 ); // bは0から7 b = b * 255 / 7; // HTMLのタグを出力 printf( "" ); printf( "¥n" ); } printf( "
", r, g, b ); if ( r + g + b > 384 ) printf( "" ); else printf( "" ); printf( "0x%02X%02X%02X", r, g, b ); printf( "

2012年4月22日日曜日


2006/01/24

■オラクルマスターシルバー SQL/Oracle入門


オラクルマスターシルバー SQL

初めてのベンダー試験。
たぶん大丈夫だろう、と思って試験当日。
何気に難しくないか?SQLが複雑なんですけど・・・。
結果。
14/20
あぶねぇ、ぎりぎりだ。受験料15,000円が吹っ飛ぶところだった。2004/07/10

オラクルマスターシルバー Oracle入門

SQL試験で危機感を感じ、念入りに勉強した。
前回の結果で不安を残しながら受験。
・・・え?こんなんでいいのか?
20分ちょっとで退場。
20/20
・・・こっちはそれほど難しくないみたい。2004/08/21

2012年4月21日土曜日


hatena1989さん

とりあえずおかしな点を指摘すると、

> 標準モジュール(Uniting)

> Function Uniting(BookNumberb As Integer, BookName As String, Author As String)

モジュール名と関数名に同じ名前は使えません。
モジュール名を Uniting 以外に変更しましょう。

> フォーム
> Public Sub 登録_Click()
>
> Dim BookName As String
> Dim Author As String
> Dim BookNumber As Integer
> Dim BookInfo As String

この BookInfo は 登録_Click内で使用してないので不要です。削除しましょう。

> 標準モジュール(Uniting)
> Option Compare Database
> Option Explicit
> Public BookInfo As String

2012年4月19日木曜日


"RDE-eXtended Archiver"に関する追加使用条件

本パッケージ"RDE-eXtended Archiver"(以下「RDE-XA」という)には、日本オラクル株式会社のプログラム(「OracleDatabase Standard Edition 10gR2」)がバンドルされています。 そのためRDE-XAの使用においては、下記の条件が追加されます。

2012年4月18日水曜日


 STLASYK by iijima  vf̃\[g(1) sort, stable_sort / list::sort  STLł͂‚̃\[g̃ASY񋟂D ł́Csort  stable_sort Ƃ肠D  ֐vg^CvF  void sort( RandomAccessIterator beg, RandomAccessIterator end ); void sort( RandomAccessIterator beg, RandomAccessIterator end, BinaryFunc op );  void stable_sort( RandomAccessIterator beg, RandomAccessIterator end ); void stable_sort( RandomAccessIterator beg, RandomAccessIterator end, BinaryFunc op );  [beg, endj͈̗̔͂vfŕԂ悤Ƀ\[gD  1Ԗڂ̌`̃\[g̊'< Zq'łD "< Zq"trueԂꍇ̍Eӂ̊֌WCӂEӂuvƌȂ΁C\[g͈͂ vfuvɐ񂵂̂ƂȂD  ̐͌Ƃ͌ȂDC++ł̓NX̃IuWFNgɓKp֌WZq̏e̓[U[`ł邽߁C   "< Zq"KIuWFNǵu召֌Wv𔻒肷̂łƂ͌Ȃ炾D   ɂ́C\[g͈͂́C͈͓̔̔Cӂ2vfɂ‚āCV[PXɂ鑊ΓÎ̂ӁC   Ô̂EӂƂƂ'< Zq'̉Zʂ false ł悤ȏԂɂȂCƌׂ낤D  2Ԗڂ̌`ł́C3ɓn2q֐Ƃă\[gD Ō2q֐Ƃ́C1Ƒ2̊֌W̔茋ʂboollŕԂ֐܂͊֐IuWFNĝƁD sortstable_sorẗႢ͎̂ƂD  sort          ϓIn~log(n)̕Gۏ؂D               vf̑ΓIۂ邱Ƃ͕ۏ؂ȂD  stable_sort   n~log(n)̕Giɏ\ȋ󂫗eʂȂꍇn~log(n)~log(n)j               vf̑ΓI͕ۂD  ȉ̃Tvłsort֐̂ݗp邪C List 1`4, 6ɂ‚ẮC"sort""stable_sort"ɒuĂʂD  yPzftHg̃\[g yQz\[g̐ݒ`O`2q֐ yRz\[g̐ݒ`[U[`2q֐ y  zXg̃\[g   yPzftHg̃\[g  \[g֐̃ftHg̃\[g'< Zq'łD RNV̗vfgݍ݃f[^^̏ꍇ͏il̏ȏjŃ\[gD  // List 1 #include  #include  #include   int main() {     std::vector< int > seq;     for( int i = 0; i < 10; ++i ){         seq.push_back( i );     }     std::random_shuffle( seq.begin(), seq.end() );      std::cout << "\[gOF";     std::copy( seq.begin(), seq.end(), std::ostream_iterator< int >( std::cout, " " ) );     std::cout << std::endl;      std::sort( seq.begin(), seq.end() );      std::cout << "\[gF";     std::copy( seq.begin(), seq.end(), std::ostream_iterator< int >( std::cout, " " ) );     std::cout << std::endl; }  s()F \[gOF8 1 9 2 0 5 7 3 4 6 \[gF0 1 2 3 4 5 6 7 8 9   RNV̗vf̃f[^^NX̏ꍇCYNX̃IuWFNgԂ̊֌W𔻒肷'< Zq'`Ă΁C Ƃă\[gD Ⴆ΁Cstd::stringIuWFNg𗼕ӂƂ'< Zq'͎ɂO֌W̔茋ʂԂ̂ŁC std::stringIuWFNgvfƂRNVsort֐KpꍇCŃ\[g邱ƂɂȂD  // List 2 #include  #include  #include  #include   const char* STATIONS[] = { "Ueno", "Nippori", "Kitasenju", "Matsudo", "Kashiwa", "Abiko", "Toride" };  int main() {     std::vector< std::string > stations;     for( size_t i = 0; i < sizeof( STATIONS ) / sizeof( char* ); ++i ){         stations.push_back( std::string( STATIONS[i] ) );     }      std::cout << "\[gOF";     std::copy( stations.begin(), stations.

2012年4月16日月曜日


EventHandler (Java Platform SE 6)

java.beans
クラス EventHandler

 java.lang.Object   java.beans.EventHandler 
すべての実装されたインタフェース:
InvocationHandler

public class EventHandler
extends Object
implements InvocationHandler

EventHandler クラスは、受信イベントオブジェクトとターゲットオブジェクトを含んだ単純な文を実行するメソッドを持つ、イベントリスナーの動的生成をサポートします。

EventHandler クラスは、開発者が Bean 間の接続を確立するために使用する、アプリケーションビルダのような対話型ツールで使用されます。通常、接続は、ユーザーインタフェース Bean (イベントソース) からアプリケーションロジック Bean (ターゲット) に向けて確立されます。そのなかでも、ユーザーインタフェースからアプリケーションロジックを隔離するような接続は特に効果的です。たとえば、JCheckBoxとブール値を受け付けるメソッドを接続する EventHandler は、チェックボックスの状態を抽出し、これを直接メソッドに渡すことによって、メソッドをユーザーインタフェース層から隔離することができます。

ユーザーインタフェースを使ったイベントの処理方法としてより一般的なのは、内部クラスを使用する方法です。EventHandler クラスで処理できるのは、内部クラスで処理できるイベントのサブセットに過ぎません。しかし、長期持続スキーマでは、内部クラスよりも EventHandler のほうが優れています。また、同じインタフェースを実装している大規模なアプリケーションで EventHandler を繰り返し利用すれば、ディスクやアプリケーションのメモリーフットプリントを削減できます。

EventHandler で作成されたリスナーのフットプリントが小さいのは、このクラスの依存先の Proxy クラスが同じインタフェースの実装を共有しているからです。たとえば、EventHandler create メソッドを使ってアプリケーション内のすべての ActionListener を作成する場合、すべてのアクションリスナーは、単一のクラス (Proxy クラスによって生成されたクラス) のインスタンスになります。通常、Proxy クラスのリスナーを使用する場合は、「リスナー型」(インタフェース) ごとにリスナークラスを 1 つずつ作成する必要があります。しかし、内部クラスを使用する方法では、リスナー (インタフェースを実装するオブジェクト) ごとにクラスを 1 つずつ作成するだけで済みます。

通常、EventHandler のインスタンスを直接扱うことはありません。その代わりに、EventHandlercreate メソッドを使って、指定されたリスナーインタフェースを実装するオブジェクトを作成します。このリスナーオブジェクトは、内部で EventHandler オブジェクトを使って、イベントに関する情報、イベント発生時にメッセージを送信されるオブジェクト、送信されるメッセージ (メソッド)、メソッドの引数をカプセル化します。次では、例を使って、create メソッドによるリスナーオブジェクトの作成方法について説明します。

2012年4月14日土曜日


viva Cocoa / Objective-C 入門

 Objective-Cの学習においてメモリ管理はひとつの壁であると言えます。そこでその対応策としてAppleはObjective-C 2.0においてガベージコレクションと呼ばれる「メモリ管理をプログラマが一切しなくて良い機能」を搭載しました。しかし残念なことにiPhoneアプリケーション開発用のObjective-Cではまだガベージコレクションが使えません。これはガベージコレクションがCPUのパワーをある程度必要とするからで携帯電話に搭載されているCPUには少し荷が重たいからです。しかし今後iPhone用アプリケーションの開発を考えておられる方は多いと思います。そこで本書では第12章までは基本的にガベージコレクションを使わずにiPhoneアプリケーション開発にも使える従来のメモリ管理方法のリファレンスカウンタ方式を使って学習を進めていきたいと思います。

 なおリファレンスカウンタ方式からガベージコレクション方式に変更することは非常に簡単です。コンパイラの設定をガベージコレクションを使用してビルドするように変更するだけです。設定方法は第2章4節のMyBrowserですでに説明しております。

 この節では最初になぜメモリ管理が必要なのかを説明して続いてリファレンスカウンタ方式を中心に説明していきます。一方、ガベージコレクション方式のメモリ管理方法を採用する設定はとても簡単です。この基礎編ではガベージコレクションを採用する方法だけを説明いたします。ガベージコレクションの詳しい仕組みについては実践編で説明しております。

残念ながら、このサイトでは「実践編」は掲載しておりません。ご了承ください。

メモリ管理

■ メモリリーク

 オブジェクトが登場するまでは変数は大まかにグローバル変数とローカル変数の2種類に分かれていました。そしてグローバル変数はアプリケーションが起動中ずっとメモリを占有し続けます。グローバル変数にとってはそうすることが当然の責務だからです。一方、ローカル変数はメソッド(関数)内で作成されそのメソッドが終了する時に自動的に破棄されます。メソッドは何度も呼び出される可能性がありますがローカル変数はそのたびに作成されそのたびに破棄されます。この状況では特に問題が出ることはなかったわけです。

 ところがObjective-CなどのOOPが登場した時に状況は一変します。OOPで新しく登場したオブジェクトはポインタ経由で取り扱うことを前提として設計されました。ポインタというのがそれほど便利であったのとデータの大型化が理由だと思われます。この場合メソッドが呼び出されてローカル変数が作成される時にオブジェクトのローカル変数はポインタとして作成されます。そしてメソッドが終了する時にローカル変数として作成されたポインタは自動的に破棄されます。しかしポインタにアドレスを代入する形で生成されたオブジェクトはメソッドの外側(スコープ外)に作られています。したがってメソッドが終了しても自動的に破棄されることはありません。さらに最悪なことにそのオブジェクトと連絡を取るための唯一の手段であ� �たポインタはメソッド終了と同時になくなっています。このようにしてそのメソッドが呼び出されて終了するたびに使用されることのない無用なオブジェクトがメモリに残っていきます。この状態をメモリリーク(メモリ漏れ)と呼びます。メモリリークはそのままにしておくとそのアプリケーションが使用できるメモリスペースを占有するだけではなく、やがてシステム(OS)が使用するメモリスペースまで占有しシステムエラーを招くこところまで発展する場合があります。

 アプリケーションが終了するときは、メモリリークとなったオブジェクトも含めて、そのアプリケーションが使用しているメモリはすべて破棄されます。このことは少し安心できる事実ですが、世の中には1年365日24時間稼働し続けているサーバープログラムも多数存在しています。そのようなプログラムにとってメモリリークは重大な問題となります。

■ リファレンスカウンタ方式

 すべてのインスタンスはリテインカウント(retain count)という値を持っています。直訳すれば保持カウントになりますが、日本では「リファレンスカウンタ(reference counter)」「保持カウント」「リテインカウント」など色々な呼び方がされています。これらはすべて同じことを表していますが、ここではリファレンスカウンタという呼び方で統一したいと思います。

2012年4月13日金曜日



繰り返しとは、、


 繰り返しとは [ ある変数の値が 10になるまで ] とか、データベースから値をすべて取得するまでと言った条件が満たされるまで繰返して処理を行う事です。

 例えば数値を 1から 10まで表示させたいとします。もっとも単純な方法は 1から 10まで 10回表示させる命令を書く事ですが、これではあまりにも無駄が多すぎます。 10個程度ならまだましですが 100回や 1000回になってしまったら手におえません。 しかしこんな場合に繰り返し命令を使用するととても簡単な記述で済ませる事が可能になります。


繰り返し for ステートメント


 for文は回数指定で処理する場合に多く使用されます。
 Javaの繰り返し命令は次に説明する while文や do文もありますが、for文は最も柔軟といわれます。
for( initialization ; expr ; step ) {

    // 繰り返し行われる処理

}

2012年4月12日木曜日


[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.091 / 読者数:993名

こんばんは、うすだです。

登録したら、大抵は、そのページの URL を、自分でメモしておきます。
あとで、変更や解除をするときのために記録するわけですが、うっかり、 メモし忘れることが、たまにあります。
そんなところの登録を変更したり解除したくなったとき、 検索で見つかる場合もありますが、発見できないことも、 ごくまれにですが、あります。

登録したときの情報を、どこかで集中管理しておけばいいんだよなぁ…。
と考えていたときに、ふと思いつきました。

登録したら、自分のブログのどこかに(登録サイトが)トラックバックしてくれれば、 そこを参照するだけで済むのではないか、ということに。

ブログなんて、いまどきどこででも無料で作れますので、 あとは非公開のページにトラックバックしてくれれば、 すぐ実現できると思うのですが、いかがでしょうか。

…とまあ、アイデアとしてどうなのかさっぱりわかりませんが、 せっかく思いついたので、ここに記してみました。

書いてすっきりしたので、今週もはりきってまいりたいと思います。

今週のお題 - 対話型アプリケーションを自動実行する

24時間365日戦い続けるシステム管理者にとって、 自動化は永遠のテーマであると言えます。
自動化できる作業を、スクリプトを書いて cron で定期的に実行するようにできれば、 ネコの手も借りたいほどの忙しさが、緩和されます。

しかし、対話型のアプリケーションの場合、 本来人間が入力すべき文字をリダイレクトで渡しても、 うまく動作してくれないことが多々あります。
たとえば、telnet コマンドを使って、SMTP でメールを送りたいとき、

   #!/bin/sh   telnet localhost smtp << E-O-F   HELO localhost   MAIL FROM:  

というスクリプトを作って実行しても、SMTP のコマンドが、 タイミングよく渡されることはなく、満身の力を込めて振ったバットは、 虚しく宙を舞ってしまいます。

しかし、だからといって諦めていてはいけません。
ちゃんと、それを解決するための手段が、世の中にはあるのです。
せっかくあるのだから、それを使わない手はありませんよね。

というわけで、今週は、対話型アプリケーションを自動的に実行するための方法を、 ご紹介したいと思います。

2012年4月10日火曜日


Q.このサイトは何ですか?

A.ネットの色辞典です。

カラータグとして使えるRGB16進数とそのカラーサンプルを知ることができます。カラータグをコピーして貼り付けるだけで、さまざまな色をあなたのサイトで再現することができます。

Q.「原色大辞典」って何ですか?

A.ブラウザで名前が定義された140色の色辞典です

ブラウザで名前が定義された「Color Name」140色とその16進数が記載されています。ネットで使われるポピュラーな色です。「Color Name」はRGB16進数と同じように、カラータグとして扱うことができます。また英語の色名辞典としても便利です。

Q.「和色大辞典」って何ですか?

A.日本の伝統色465色の色辞典です

JIS規格「物体の色名」を中心とした日本の伝統色300色の色辞典です。伝統色名と16進数(近似値)が記載されています。日本の伝統色の色名辞典としても楽しめます。

Q.「洋色大辞典」って何ですか?

A.カタカナ表記される慣用色285色の色辞典です

JIS規格「物体の色名」を中心としたカタカナ表記される慣用色285色の色辞典です。名と16進数(近似値)が記載されています。世界の伝統色の色名辞典としても楽しめます。

2012年4月9日月曜日


Mysqlはtableごとにエンジンを切り替えられますので、どのテーブルがInnoDBなのかMyISAMなのか(あるいはその他なのか)をみるには show table status というのを使ってやればみる事ができます。

たとえばmdl_userの情報を見たければ以下のようにします


コンテナの creationPolicy プロパティを none に設定した場合、コンテナ内で MXML タグとして宣言されているコンポーネントは生成されません。代わりに、これらのコンポーネントを記述したオブジェクトが Array に追加されます。これらのオブジェクトは記述子と呼ばれます。createComponentsFromDescriptors() メソッドを使用すると、これらのコンポーネントを手動でインスタンス化できます。このメソッドは、Container 基本クラスで定義されます。

createComponentsFromDescriptors() メソッドの使用

コンテナの createComponentsFromDescriptors() メソッドを使用して、コンテナのすべての子を同時に生成することができます。

createComponentsFromDescriptors() メソッドのシグネチャは次のとおりです。

 container.createComponentsFromDescriptors(recurse:Boolean):Boolean  

recurse 引数は、コンポーネントの子を再帰的にインスタンス化するかどうかを指定します。コンポーネントの子をインスタンス化する場合は、このパラメータを true に、子をインスタンス化しない場合は false に設定します。デフォルト値は false です。

単一ビューコンテナで createComponentsFromDescriptors() メソッドを呼び出すと、creationPolicy プロパティの値に関係なく、そのコンテナのすべてのコントロールがインスタンス化されます。

2012年4月7日土曜日


とほほのJava入門

制御構文

[戻る] [前に] [次に]

■ もし(if)

if 文は、「もし・・・なら」という制御を実現します。次の例では、もし a の値が 3 であれば、"a is 3." を表示します。

 int a = 3; if (a == 3) {     System.out.println("a is 3."); } 

else は、「さもなくば」を意味します。次の例では、もし a の値が 3 であれば "a is 3." を、さもなくば "a is not 3." を表示します。

 int a = 3; if (a == 3) {     System.out.println("a is 3."); } else {     System.out.println("a is not 3."); } 

else if を繰り返して使用することもできます。次の例では、もし a が 3 であれば "a is 3." を、a が 4 であれば "a is 4." を、さもなくば "a is unknown." を表示します。

2012年4月6日金曜日



さらっと覚えるSQL&T-SQL入門(5)
株式会社システムインテグレータ
石橋 潤一
2007/6/21
アプリケーション開発でデータベースを利用する新人プログラマに向けて、SQLおよびT-SQLを短期間で理解できるよう、開発現場ですぐに必要となる内容を中心に解説する。(編集部)

 第5回を迎えた本連載ですが、過去4回の連載を経て内容が徐々に濃くなってきました。単純なSELECT文から始まり、関数の利用、グループ化による集計などをこれまでに取り上げています。今回は、前回取り上げた「GROUP BY」句によるグループ化機能の利便性をさらに高める「HAVING」句を取り上げます。

2012年4月5日木曜日


Accessでお仕事 ウィザードを使用してクロス集計クエリを作成する

★クロス集計クエリの例★


 大量のデータを可視化する目的で、「クロス集計(ピボットテーブル)」は、強力なツールです。
  Access を使えば、簡単に「クロス集計」表を作れます。是非お試し下さい。

 関連:hatena chips (MS Access Tips/Sample and FC2Blog customize and etc...
列数が変化するクロス集計クエリと連結するフォーム

列名が変化するクロス集計クエリと連結するフォーム

2012年4月3日火曜日


Ken Kobayashi CPP3

@ɂ́BO͉ʂւ̏o͂܂B̓L[{[h�br/> #include
#include
using namespace std;

int main()
{
    string name;
    cout << "ɂ́B̓Rs[^łB" <     cout << "Ȃ̖O͂ĂB" <     cin >> name;
    cout< }

br/>

@́AcińAL[{[h\킵Ă̂łBāA>>́u߁vƂu߁vƂӖłBāAucin >> name;v́AuL[{[hnameɃf[^𗬂߁v‚܂uL[{[h̓͂nameɎ󂯎vƂӖɂȂ̂łB

2012年3月30日金曜日


JDBC アプリケーションのパフォーマンス チューニング

以下の節では、JDBC アプリケーションから最高のパフォーマンスを引き出す方法について説明します。

 


WebLogic のパフォーマンス向上機能

WebLogic には、JDBC アプリケーションのパフォーマンスを向上させるための機能がいくつか用意されています。

プールされた接続の使用によるパフォーマンスの向上

DBMS への JDBC 接続の確立には非常に時間がかかる場合があります。JDBC アプリケーションでデータベース接続のオープンとクローズを繰り返す必要がある場合、これは重大なパフォーマンスの問題となります。WebLogic データ ソース内の接続プールを使用すると、こうした問題を効果的に解決できます。

WebLogic Server を起動すると、データ ソース内の接続が開き、すべてのクライアントで使用できるようになります。クライアントでデータ ソースからの接続をクローズすると、その接続はプールに戻され、他のクライアントで使用できる状態になります。つまり、接続そのものはクローズされません。プールされた接続は、ほとんど負荷を生じることなくオープンしたりクローズしたりできます。

ステートメントとデータのキャッシング

DBMS のアクセスではリソースが大量に消費されます。プログラムで Prepared Statement または Callable Statement を再利用する場合、または複数のアプリケーションでの共有や、各接続どうしでの存続が可能な頻繁に使用するデータにアクセスする場合は、以下を使用してデータをキャッシュできます。

 


ベスト パフォーマンスのためのアプリケーション設計

データベース アプリケーションのパフォーマンスの良し悪しはほとんどの場合、アプリケーション言語ではなく、アプリケーションがどのように設計されているかによって決定されます。クライアントの数と場所、DBMS テーブルおよびインデックスのサイズと構造、およびクエリの数とタイプは、すべてアプリケーションのパフォーマンスに影響を与えます。

以下では、すべての DBMS に当てはまる一般的なヒントを示します。また、アプリケーションで使用する特定の DBMS のドキュメントによく目を通しておくことも重要です。

2012年3月28日水曜日


このシリーズの第1回では、どんな場合にXMLのデータ・バインディングを使用するかについて説明し、そしてデータ・バインディングのために利用できるいくつかのJavaフレームワークの概要を示しました。第2回では、サンプル文書を使用することにより、そのうちのいくつかのフレームワークのパフォーマンスを調べました。この第3回では、優れたテスト・スコアを示す新しいJiBXフレームワークについて詳しく説明します。まず、第2回で紹介したJiBXの基本的な点を改めて説明することにします。

JiBXは、もともとJavaテクノロジーにおけるXMLデータ・バインディングのパフォーマンスの限界を試すという私の実験から生まれたものです。それが実験の段階を超えたものになったため、私がJava中心 方式と呼ぶものの実験台として、それを利用することにしました。Java中心方式は、XMLの文法からオブジェクト・モデルを生成するために使用されるXML中心 方式とは逆のアプローチです。そのため、JiBXは、既に確立されているデータ・バインディング用フレームワークとはいくつかの点で意図的に異なるものになっています。

それらの相違点の中心になるのは、文書のアンマーシャリング時に使用される構文解析の技術です。既存のフレームワークは、いずれも広く使用されているSAX2のプッシュ型パーサーAPIに基づいています。JiBXは、新しいプル型パーサーAPIを使用しています。それにより、文書中の要素の列を処理するためのさらに自然なインターフェースが提供されます。このように、使用するAPIが違っているため、JiBXでは、アンマーシャリングを処理するコードとして比較的シンプルなものを使用することが可能です。

アンマーシャリングのためのコードがシンプルであることが、JiBXと他のフレームワークとの間の主な相違点の2番目です。つまり、他のフレームワークの場合には、独自のデータ・クラスを生成するか (アプリケーションではそれらのクラスを使用することが必要になる)、あるいはJava仮想マシン (JVM) にとって既知のクラス情報を使用してデータへの間接ランタイム・アクセスを提供するリフレクションと呼ばれるテクニックを使用するか、のいずれかになります。JiBXでは、既存のクラスに追加されるコードを使用します。それは、Javaコンパイラーの生成するバイナリー・クラス・ファイルと直接連動することになります。これにより、高速なデータの直接アクセスが実現され、しかもプログラマーが制御可能なクラスで動作するという柔軟性が保たれます。

JiBXの相違点の3番目は、このように既存のクラスを使用するということと関係があります。JiBXはバインディング定義ファイルを読んで、クラスに追加されるコードによるインスタンスとXMLとの間の変換方法を制御します。このような方式を採用しているデータ・バインディング・フレームワークはJiBXだけではなく、たとえばCastorもこの方式を使用していますが、JiBXは独自クラスとXML文書の間の関係を変更できるという点で他のフレームワークよりも大きく前進しています。

この記事の残りの部分では、上記の3点について詳しく説明します。実際のプロジェクトで別のフレームワークを使用するとしても、JiBXについてのこの説明を読めば、有益なヒントを得られることでしょう。

データ・バインディングの用語

以下は、この記事で使っている用語のミニ辞典です。

マーシャリングとは、メモリー内のオブジェクトのXML表現を生成する処理のことです。それには、元のオブジェクトからリンクされているオブジェクトも含まれることがあります。

アンマーシャリングとは、マーシャリングの逆の処理であり、XML表現からメモリー内にオブジェクトを (場合によってはリンク先オブジェクトのグラフ構造も) 生成します。

マッピングとは、オブジェクトとXML文書との間のマーシャリング/アンマーシャリングに使用する一連の規則です。文法に基づくコード生成を使用するデータ・バインディング方式では、生成されるオブジェクトに暗黙のマッピングが組み込まれていますが、JiBX (および他のいくつかのフレームワーク) では、明示的なバインディング定義を使用してマッピングを制御します。

文法とは、XML文書群の構造を定義した規則集です。XML仕様で定められている文書型定義 (DTD) 形式は、そのような文法の一種です。さらに、W3CのXML Schema形式 (以降「Schema)」も、文法として徐々に定着しつつあります。

プル方式によるパフォーマンス向上

JiBXと他のデータ・バインディング・フレームワークとの最も大きな違いは、入力XML文書の処理方法です。Java言語のためのXMLパーサーのほとんどには、アプリケーション・プログラムで使用するためのSAX2 APIが実装されています。このAPIは年月をかけて磨き上げられてきたものであり、数多くのパーサーの実装においてサポートされています。その中には、現在利用可能なもののうち最も機能豊富なものも含まれています。

SAX2 APIは広く使用されてはいますが、多くのXML処理に関していくつかの大きな欠点があります。それらは、SAX2に実装されているインターフェースのスタイル、つまりプッシュ構文解析方式によるものです。プッシュ構文解析では、パーサーAPIによって定義されるインターフェースを実装するメソッドをコード内に定義します。そして解析対象の文書と共に、それらのメソッドを (ハンドラーの形で) パーサーに渡します。パーサーは文書のテキストを読んでいき、XMLの規則に従ってそれを解釈し、文書のコンポーネント (要素や文字データ内容など) が出現したなら、ハンドラー・メソッドを呼び出すことによって報告します。パーサーが入力文書の処理を終了すると、アプリケーションに制御が戻りますが、その時点でもパーサーは制御を得たままです。

2012年3月26日月曜日


省略可能オペレーション (および UnsupportedOperationException 例外) を排除できるように、コアコレクションで不変性を直接サポートしてはどうでしょうか。

これは、API 全体でもっとも議論の余地のある設計上の決定事項です。静的な (コンパイル時の) 型チェックが望ましいのは明らかで、Java の標準でもあります。静的な (コンパイル時の) 型チェックが望ましいのは明らかで、Java の標準でもあります。可能ならばサポートしたかったのですが、これをサポートするとインタフェース階層のサイズが非常に大きくなり、実行時の例外の必要性を (かなり減らすことはできても) なくすことができません。

2012年3月24日土曜日


概要 : アプリケーションに SharePoint のワークフローに対するサポートを追加する処理と、そのサポートを、独自のワークフローを構築するためにクライアントが使用できるコンポーネントに分解する処理について、そのオプション、プロセス、および利点を説明します。この記事は 2 部構成の第 2 部です (印刷ページ数 : 17)。

David Mann (Mann Software, LLC (英語))

2008 年 6 月

対象 : 2007 Microsoft Office system、Microsoft Office SharePoint Server 2007、Microsoft Office SharePoint Designer 2007、Microsoft Visual Studio 2008 開発システム、Visual Studio Tools for Office (3.0)

この記事に付随するコード サンプルを、「Sample Code: Delivering Modular Workflow Functionality in SharePoint Server 2007 (英語)」からダウンロードしてください。

第 1 部「SharePoint のモジュール化されたワークフロー機能の提供 (パート 1/2)」をお読みください。

目次

「SharePoint のモジュール化されたワークフロー機能の提供 (パート 1/2)」では、Visual Studio で有効に機能するアクティビティを作成しましたが、これは Microsoft Office SharePoint Designer 2007 では機能しませんでした。そのため、まだ最後の目標までたどり着いたとは言えません。幸い、SharePoint Designer 用のカスタム アクションを作成する作業は、簡単な構成プロセスです。いくつか XML を記述する必要はありますが、コードの記述は不要です。

最初の作業では、Windows SharePoint Services または Microsoft Office SharePoint Server 2007 においてアクティビティとそのアセンブリの読み込み方法が認識されるように、web.config ファイルにエントリを追加します。これは、カスタム Web パーツ用の SafeControls エントリを追加する作業と非常によく似ています。

メモ :
ここでは、作成する必要があるエントリについて説明してから、開発環境においてこのエントリを手動で作成する方法の手順を確認します。ただし、展開用にアクティビティまたはアクションをパッケージ化する前に、インストール ルーチンで適切なエントリをクライアントのサーバーに確実に追加する必要があります。「Additional Resources」では、プロセス全体をはるかに簡単に行うためのツールをいくつか紹介します。

web.config ファイルを開きます。ファイルの末尾付近に、 というセクションがあります。すぐその下には、 子タグを含む というセクションがあります。次の例のように、新しいアクション用として新しい タグを追加します。

  

PublicKeyToken の値を厳密な名前キーの値に置き換えるのを忘れないでください。そうしないと、このエントリは機能しません。

カスタム Web パーツの作成に慣れた開発者であれば、このエントリが SafeControls エントリとほとんど同じであることに気付きます。SafeControls エントリに馴染みがない方でも、次の部分の意味はすぐに理解できます。

  • Assembly: 4 つの部分で構成される、アセンブリの完全な名前。Reflector (英語) などのツールを使用して簡単に取得できます。
  • Namespace: アクティビティに固有の名前空間。このサンプル シナリオの場合、これは CaseTrak.Activities です。
  • TypeName: 通常、"すべての型" を表すアスタリスクが含まれますが、特定のクラスをリストすることもできます。
  • Authorized: True を指定してアクティビティを "安全" にします。一方、false を指定すると、web.config エントリが無駄になります。

これで SharePoint 製品とテクノロジにアクションの内容を伝えて、このアクションを実行する準備が整ったので、次にこれを SharePoint Designer に伝える必要があります。これも簡単で、短い XML をいくつか記述するだけです。パス C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\1041\Workflow に移動すると、このフォルダ内に WSS.ACTIONS というファイルがあります。このファイルには、カスタム SharePoint Designer アクションについての情報が豊富に含まれています。このファイル内で、SharePoint Designer アクションを使用して行うことができる、すべての例を確認できます。

残念ながら、このファイルは単なる XML ではあるものの長さが 700 行を超えるので、アクションのビルドに際して知っておくべきことを確認するためにすべてのオプションに目を通すのは少し困難です。この記事では、カスタム アクションをビルドするための、より一般的なオプションについて説明します。すべてのオプション (スキーマ定義を含む) の詳細については、「Additional Resources」を参照してください。

WSS.Actions ファイルについて最初に知っておくべきことは、他の SharePoint の既定ファイルと同様、ファイルの内容の変更が認められていないという点です。その代わり、同じディレクトリに独自の ACTIONS ファイルを作成する必要があります。Windows SharePoint Services および SharePoint Server は、このファイルを読み取って、カスタム アクションを既定のアクションと共にメモリに読み込みます。このためには、単にファイルを同じディレクトリに作成して、それに意味のある名前を付け、拡張子を .ACTIONS にします。今回の例では、CaseTrak.ACTIONS というファイル名を使用します。

サンプル用として、単純に Visual Studio でテキスト ファイルをソリューションに追加し、それに対して XML を追加します。後ほど、パッケージ化と展開を説明する際にこのファイルを処理するので、適切な場所にコピーします。

次のコード例は、作成した CaseTrak.ACTIONS ファイルの全内容です。内容はほとんど一目瞭然ですが、表 1 でさらに詳細を説明します。

 xml version="1.0" encoding="utf-8"?> <WorkflowInfo Language="en-us"> <Actions  Sequential="then" Parallel="and">                  <RuleDesigner Sentence="Set CaseTrak Status for %1 to %2">             <FieldBind Field="CaseID" Text="this Case" DesignerType="string" Id="1"/>             <FieldBind Field="CTStatus" DesignerType="Operator"  OperatorTypeFrom="DropDownMenu" Id="2" >                 <Option Name="Open" Value="1"/>                 <Option Name="Closed" Value="2"/>                 <Option Name="Pending" Value="3"/>                 <Option Name="Deferred" Value="4"/>                 <Option Name="InProcess" Value="5"/>             FieldBind>           RuleDesigner>         <Parameters>         <Parameter Name="CaseID"   Type="System.String, mscorlib" Direction="In" />         <Parameter Name="CTStatus" Type="System.Int32, mscorlib" Direction="In" InitialValue="5" />"Parameters>     Action>   Actions> WorkflowInfo>  

表 1. CaseTrak.ACTIONS ファイルの要素

要素 メモ

Action

ファイル内の各アクションには、独自の Action 要素があり、ここでそのアクションの詳細を説明します。ClassName 属性と Assembly 属性はその名のとおりです。Category はわかりやすく、例に示されているように、独自の値を指定して独自のカテゴリを SharePoint Designer の [アクション] ダイアログ ボックス内に作成できます。最後の属性 AppliesTo は、アクションをどの種類のリストに対して使用できるかを決定します。指定可能な値は、listdoclib、または all です。

RuleDesigner

SharePoint Designer のワークフローは、実行するアクションを記述する文という概念に基づいています。たとえば、"ドキュメントの所有者に電子メールを送信する" のような文として表されます。このため、実装可能な他の構成よりもユーザーにわかりやすくなっています。SharePoint Designer では、今回作成したアクティビティの文は "Set CaseTrak Status for case to " と表現されます。この はパラメータ (ここでは %1 と %2) に該当し、ワークフロー ビルダによって実際の値に置き換えられます。

FieldBind

2012年3月22日木曜日


広告

クラスは何かを行うための設計図です。そこで具体的に何をさせたいのかをクラスの中に記述していく必要があります。その処理を記述するのがメソッドとなります。

メソッドは『メソッド』で見たとおり実行する一連の処理をまとめたものです。ただし通常のメソッドがプログラム中からいつでも呼び出せるのに対してクラス内に記述されたメソッドはクラスから作成されたオブジェクトしか呼び出すことが出来ません。このようなメソッドをインスタンスメソッドと呼びます。

 class クラス名    def メソッド名(引数1, 引数2, ...)     処理   end  end 

例えばクラス名について表示するだけの簡単なインスタンスメソッドは次のようになります。

2012年3月18日日曜日

Excel VBA FAQ 2

[] [1] [2] [3] [H] [gu]


IuWFNg

IuWFNgH

    IuWFNguijvB[NV[gR}h{^IuWFNgB

    IuWFNgf[^R}hBR}hVBAu\bhvuvpeBvBvOIuWFNgAuXXXXIuWFNgXXXX\bhsvuXXXXIuWFNgXXXXvpeBlvB

    ASheet1[NV[gIAuSheet1IuWFNgSelect\bhsvBSheet1OXAuSheet1IuWFNgNamevpeBlvB


\bhvpeBH


NXCX^XH

    NXIuWFNgB[NV[gNXR}h{^NXNXB

    CX^XIuWFNguvBIuWFNgCX^XIuWFNgNX`iv}jB

    AExcel[NV[gNX`ASheet1CX^XB


IuWFNgQH

    IuWFNgCX^XIBvOAIuWFNgQgIuWFNgCX^XwBAIIAvOAu12IuWFNgvB

    AIuWFNgQAA\bhvpeBgBAA1:C3ZIuWFNgQ Range("A1:C3") BRangevpeBiExcel5.0/95Range\bhjIuWFNgApplicationIuWFNgvpeBAANeBuV[gAwRangeIuWFNgQB

    IuWFNgQAgAi[AIuWFNgQvpeB\bhgpBIuWFNgQi[SetXe[gggB
    AANeBuV[gA1:C3RangeIuWFNgQobji[ASet obj = Range("A1:C3") BARange("A1:C3").Clear Aobj.ClearB


RNVH

    IuWFNgCX^XWB
    AubN[NV[gWu[NV[gRNVvuWorksheetsRNVIuWFNgvBRNVIuWFNgBRNVOIuWFNgO`B

    RNVIuWFNgQgBAANeBuubNSheet1[NV[gIuWFNgQAuANeBuubN[NV[gRNVASheet1OV[gvwB

    R[h ActiveWorkbook.Worksheets.Item("Sheet1") B
    uActiveWorkbook.WorksheetsvuANeBuubN[NV[gRNVvIuWFNgQBu.Item("Sheet1")vuRNVASheet1OV[gvIuWFNgQB

    ItemvpeBiExcel5.0/95Item\bhjAWorksheetsRNVIuWFNgvpeBAAActiveWorkbook.Worksheets("Sheet1") B

2012年3月13日火曜日

</head><body id="readabilityBody" >back<p>(2005/2/24)</p><p>3</p><p>C</p><p>(JavaC#VB.NETC++)</p><p>(PerlPythonPHPRuby)</p><p>PowerShellMATLAB</p><p>1<br/>1</p><p>2C3</p><p>C++C++C++<br/>Haskell</p><p>CC</p><p>C<br/>CC<br/>C(JavaC++C#)C</p><p>Visual StudioC#<br/>WindowsC</p><p>JavaC++C# JavaC++C#1Java( )C#</p><p>()Unix/LinuxPerlWindowsPowerShell</p><p>](<br/>PerlPHPJavaScript</p><p>PythonRubyPerlPHP(Ruby)</p>

2012年3月11日日曜日

IPsec讖溯ョ莉墓ァ

IPsec讖溯ョ莉墓ァ

讎りヲ

RT繧キ繝ェ繝シ繧コ縺ョIPsec讖溯ッ、 IPsec繧偵▽縺九▲縺欸PN繧呈ァ狗ッ峨☆繧九→縺阪↓蠢隕√↑讖溯呈署萓帙@縺セ縺。 蝓コ譛ャ逧縺ェ蜍穂ス懊C2401〜RFC2409、RFC2451縺ォ縺励◆縺後>、縺薙l縺ォ蜉縺医※、 蜍慕噪縺ェIP繧「繝峨Ξ繧ケ縺ョ螟牙喧縺ォ蟇セ蠢懊☆繧「繝繧、繧「繝ォ繧「繝VPN」、 VPN縺ョ髫懷ョウ繧呈、懷コ縺励※繝舌ャ繧ッ繧「繝蝗樒キ壹∈謗・邯壹☆繧「繝医Φ繝阪Ν繝舌ャ繧ッ繧「繝」 縺ェ縺ゥ縺ョ讖溯呈戟縺」縺ヲ縺縺セ縺。 荳サ縺ェ讖溯ッ莉・荳九ィ縺翫j縺ァ縺。

※ 蜷後§讖溯ァ繧、繝輔ぃ繝シ繝繧ヲ繧ァ繧「縺ォ繧医▲縺ヲ、邏ー縺九↑驕輔>縺後≠繧句エ蜷医′縺ゅj縺セ縺。 繝輔ぃ繝シ繝繧ヲ繧ァ繧「縺ョ邏ー縺九>諠蝣ア縺ッ、繝ェ繝ェ繝シ繧ケ繝弱医r遒コ隱阪@縺ヲ縺上□縺輔>。


IPsec縺ァ縺ッ、證怜捷蛹悶&繧後◆IP繝代こ繝縺後う繝ウ繧ソ繝シ繝阪ャ繝医r邨檎罰縺励※騾∝女菫。縺輔l縺セ縺吶′、 縺薙医≧縺ォ證怜捷縺ォ繧医▲縺ヲ螳溽樟縺輔l繧句ョ牙ィ縺ェ騾壻ソ。邨瑚キッ繧偵ヨ繝ウ繝阪Ν縺ィ繧医セ縺。 迴セ螳溘医Φ繝阪Ν縺檎。ャ縺繧ウ繝ウ繧ッ繝ェ繝シ繝医〒隕繧上l繧九h縺縺ォ、 VPN縺ョ繝医Φ繝阪Ν繧ょシキ蝗コ縺ェ證怜捷縺ォ繧医▲縺ヲ螳医i繧後※縺繧九ァ、 繝医Φ繝阪Ν縺ッ莉ョ諠ウ逧縺ェ蟆ら畑蝗樒キ壹→縺ソ縺ェ縺吶%縺ィ縺後〒縺阪∪縺。

RT繧キ繝ェ繝シ繧コ縺ァ縺ッ、繝医Φ繝阪Ν繧「莉ョ諠ウ逧縺ェ蟆ら畑蝗樒キ」縺ィ縺ソ縺ェ縺、 縺薙樒キ壹↓逶ク蠖薙☆繧九う繝ウ繧ソ繝輔ぉ繝シ繧ケ繧繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ 縺ィ繧医s縺ァ縺縺セ縺。RT繧キ繝ェ繝シ繧コ縺ォ縺ッ、 LAN繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ繧ПP繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ィ縺縺繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺後≠繧翫∪縺吶′、 繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ繧、縺薙l繧峨→蜷梧ァ倥↓謇ア縺縺薙→縺後〒縺阪∪縺。 縺溘→縺医12289;繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ァ谺。縺ョ縺薙→縺悟ョ溽樟縺ァ縺阪∪縺。

  • IP繝代こ繝縺ョ繝輔ぅ繝ォ繧ソ繝ェ繝ウ繧ー (髱咏噪繝輔ぅ繝ォ繧ソ縺ィ蜍慕噪繝輔ぅ繝ォ繧ソ)
  • 繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ォ蟇セ縺吶k髱咏噪・蜍慕噪邨瑚キッ蛻カ蠕。 (※1)
  • NAT繝繧」繧ケ繧ッ繝ェ繝励ち縺ォ繧医kIP繝代こ繝縺ョ繧「繝峨Ξ繧ケ螟画鋤

※1. 縺溘□縺、繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ァRIP繧偵▽縺九≧縺薙→縺ッ縺ァ縺阪∪縺帙s。 縺昴悶ォ繝シ繝繧」繝ウ繧ー繝励Ο繝医さ繝ォ(OSPF繧ВGP)縺ッ蜍穂ス懊@縺セ縺。

繝医Φ繝阪Ν繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ョ譛螟ァ謨ー縺ッ讖溽ィョ縺ォ繧医▲縺ヲ谺。縺ョ繧医≧縺ォ 豎コ繧√i繧後※縺縺セ縺。繝、繝槭ワ繝ォ繝シ繧ソ縺ァ縺ッ、蜷梧凾縺ォ險ュ螳壹〒縺阪k譛螟ァ謨ー縺ィ、 蜷梧凾縺ォ蜍穂ス懊☆繧区怙螟ァ謨ー縺ッ蜷後§縺ァ縺。


繧イ繝シ繝繧オ繝シ繝舌剃ス懈舌☆繧区婿豕
RTX30001000
RTX2000500
RTX1500100
RTX1200100
RTX110030
RTX100030
RTX8106
RT300i + VPN繧「繧ッ繧サ繝ゥ繝ャ繝シ繧ソ500
RT300i100
RT200i20
RT140繧キ繝ェ繝シ繧コ20
RT107e6
RT105e30
RT105i、RT105p20
RT103i10
RT100i/RT102i10
SRT10010

縺薙峨く繝・繝。繝ウ繝医磯ュ縺ク


IKE縺ッ、Rev.3.00.09莉・髯阪吶∋縺ヲ縺ョ繝輔ぃ繝シ繝繧ヲ繧ァ繧「縺ァ繧オ繝昴医@縺ヲ縺縺セ縺。 蟇セ蠢懊☆繧騎FC縺ッ莉・荳九ィ縺翫j縺ァ縺。

Oracleのメッセージキューイング機能をJavaで使ってみる

みなさんは、「メッセージキューイング」というジャンルのソフトウェアをご存知でしょうか。IBMのMQシリーズなどがその代表格ですよね。システム間でデータを非同期にやり取りする際に、「キュー」という概念を導入し、送受信が確実に行われることを保証する、案件によっては非常に有用な機能です。

私にとっては非常に悔しいことに、メッセージキューイングを実現するためのソフトウェアって、どれも非常に高価なんですよね。もちろんコストに見合った機能を持っているからなのですが、それでも予算の絶対額が限られているプロジェクトではなかなか手が出せません。ですが! なんと有り難いことにOracleにはこのメッセージキューイング機能が、「アドバンストキュー」という名前で用意されています(Oracle8以降)。

それでは、Oracleのテーブルなどを利用してデータの送受信を行なう方法と、アドバンストキューイングを使う方法との違いは何なのでしょうか(通常のメッセージキューイングソフトを使える人はそちらを使うでしょうからあえて比較しません^^)。

メリットとしては、

  • コーディングの量が減少する
  • キューの基本的な機能を実装しているため、他のミドルウェアへの以降も行ないやすい

といったものがあるでしょうし、デメリットとしては、

  • 実績が少ない。実際、使っている事例を聞くことはほとんど無い。

というのが最大のものでしょう。ともあれ、使ってみることはそれほど難しくないので、まずは試してみるというのも悪い選択ではないと思います。

2012年3月8日木曜日

231位じゃだめですか? Amazonクラウドが1兆FLOPSを超えるスーパーコンピュータ並の「クラスターGPUインスタンス」を提供。1時間たったの172円 - Publickey

2010年11月16日

個人でもスーパーコンピュータの性能でトップ500に入るマシンを借りることができる時代になりました。しかも1時間あたりわずか172円。

Amazonクラウドは、ハイパフォーマンスコンピューティング(超高速計算)のために提供してきた「クラスターコンピュートインスタンス」に、グラフィックスカードに搭載されているGPUの能力を一般的な計算処理に使う「GPGPU(General Purpose GPU)」の機能を備えた「クラスターGPUインスタンス」の提供を開始したと発表しました。

2012年3月7日水曜日

verilog-HDL 入門

verilog-HDL 入門

1.始めに

本文書では verilog-HDL を用いてハードウエアを記述するために必要な 基礎を説明する。 とりあえず、なにがしかのハードウエアを記述し論理合成や テストを行えるようになることが目標である。verilog-HDL の詳細な文法については規格書や各種参考書を見て欲しい。

2. verilog-HDL の成り立ち

verilog-HDL は旧 Gateway Design Automation 社のシミュレータ専用言語であった。 元々はシミュレーション言語であるから、 ハードウエアを効率的に記述することは主目的では無かった。 しかし、これに論理合成ツールが加わることによって、HDL を用いて ハードウエアを記述し設計することが現実的になった。 このため大いに広まり、現在では IEEE の規格の一つになっている。

しかし、シミュレーション言語である verilog-HDL を 無理矢理ハードウエア記述に使っているため、 現実のハードウエアとの間に一部不整合が有る。 この点をふまえて、ハードウエア記述源として用いる場合には、 非効率なハードウエアを記述しないように注意する必要がある。

なお、より効率的な記述を取り入れると共に、 このような不整合を解消する試みとして Systemverilog が規格化されている。

3. verilog-HDL によるハードウエア記述の構造

図1.に verilog-HDL によってハードウエアを記述した場合の構造を示す。 verilog-HDL ではモジュール(module)と呼ばれる単位によって構造を記述する。 各部品をモジュールとして記述し、 このモジュールを繋ぎ合わせることによって全体を構成する。 繋ぎ合わせる時に実際に呼び出される実態をインスタンス(instance)と言う。 このように、モジュールはハードウエアの記述を行うだけで、実態としては働かない。 例えば、同一の構造をもった演算器を複数設置する場合、 その演算器の機能を記述するのがモジュールで、演算器1、演算器2と 名前を付けて設置されるものがインスタンスである。 インスタンス中でさらに別のインスタンスを呼び出す事もできる。 (再帰的呼び出しはできない)。

注意すべきは、ハードウエア記述言語は、一般的な 手続き型プログラミングとは全く違うということである。 古典的な手続き型プログラミングでは、 関数インスタンスが多少の内部状態を持つことが有っても、 各々の関数が呼び出されない限りその働きを気にする必要は無い。 これに対し、ハードウエアでは各々の構成要素は常に動いている。 全てが並列に動いていると言い換えても良い。 どちらかと言えば、イベント駆動型プログラミングにおいて、 そこらじゅうでイベントが起こっている状態に近い。

したがって、ハードウエア記述言語では常に各々の部品の動作に気を使う必要がある。 この点においては物理的なハードウエアの性質と何ら変わることはない。 結局ハードウエア記述言語というのは、 別々に動作する部品を設計しそれらを繋ぎ合わせる作業を、 文字を用いて行うための手段である。

4. モジュール

ここでは verilog-HDL の基本であるモジュールについて説明する。 まず、モジュールの構造の概要について述べ、 単純な 4 bit カウンタを例にモジュール内の構造を大まかに説明する。 細かい記述法については後続の節を参照して欲しい。

4.1 モジュールの基本構造

モジュールの構造の概要をリスト1に示す。 モジュールは大まかにいって、ポート記述、 変数記述、組み合わせ回路記述、順序回路記述から成る。 厳密にはこれは正しくないが、 ディジタル LSI を記述するという目的から見たときは、 このように考えて問題無い。

 リスト1 モジュールの構造の概要 module counter4(ポート名, ポート名,,, );    ポート記述     変数記述     組み合わせ回路記述     always 文      begin        順序回路記述      end endmodule 

4 bit カウンタを記述したモジュールをリスト2 に示す。"//"以降行末まではコメントである。 ここでは、細かい記述はともかく、モジュール内の構造に注目して欲しい。

 リスト2 モジュール記述の例 // 4 bit simple counter module counter4(                 //*************** port name list **************                 clk, // clock                 rst, // reset                 count // counter output                 //*********************************************                 );    //************** port definition **************    input clk, rst; // clock, reset    output [3:0] count; // counter output    //*********************************************     //*********** parameter declaration ***********    reg [3:0]         counter; // count register     wire [3:0]         count_tmp; // count up value    //*********************************************     //********* combination logic circuit *********    assign         count = counter; // connect to output    assign         count_tmp = counter + 1'b1; // count up    //*********************************************     //*************** state machine ***************    always @(posedge clk or negedge rst)      begin         if (~rst) // reset           begin              counter  

4.2 モジュール文

モジュールは module 文で始まり、endmodule 文で終わる。 module 文ではモジュール名を示し、つづく括弧内で引数として入出力ポート名を示す。

4.3 ポート属性記述部

module 文の直後にポートの属性とビット幅を記述する。 通常使うポートの属性は、input, output, inout の 3 つである。 ビット幅は通常 [ビット幅-1 :0] のように上位下位の順で指定する。 ビット幅が同じ場合は、"input clk, rst;" のように続けて記述できる。

4.4 変数定義部

言語仕様上は変数定義はモジュール内のどこでも記述できる。 モジュールが小さい場合はポート属性記述の次に変数定義を行うことが多い。 モジュールが大きい場合は、変数定義とその変数の使用場所があまり離れないように記述した方が良い。

4.5 組み合わせ回路記述部

変数定義部の後に組み合わせ回路を記述する事が多い。 リスト2 中では assign 文を用いて簡単な組み合わせ回路を表現している。 この assign 文を用いるか、function を用いて組み合わせ回路を記述する。 assign 文と function 文については後述する。

always 文を用いて組み合わせ回路を記述することもできるが、 記述が繁雑になる上に 論理合成で思わぬ結果が出ることもある。 always 文で組み合わせ回路を記述するのは避けた方が賢明である。

4.6 順序回路記述部

順序回路を含まないモジュールの場合は記述しない。順序回路を含む場合は、 多くの場合モジュールの最後に always 文を用いて順序回路を記述する。

always @( に続く信号名はセンシティビティリストと呼ばれる。 always 文はこのセンシティビティリストに記述された信号が変化したときのみ動作する。 posedge, negedge は各信号の立ち上がりで反応するか立ち下がりで反応するかを指定する。

論理合成をを用いて大規模なディジタル LSI を設計する事を考えると、 このセンシティビティリストにクロックとリセット 以外の信号を混ぜるのは避けた方が良い。

要するに普通にディジタル LSI を設計している場合には、 リセットする順序回路部分は always @(posedge clk or negedge rst) で始め、 リセットしない順序回路は always @(posedge clk) で始めると憶えれば良い。

(注)リセット信号は負論理であることが多い。

なお、一つのモジュール内にいくつでも always 文を記述することができるが、 繁雑さを防ぐために、できるだけ一モジュール内の always 文は 一つにまとめた方が良い。

4.7 リセット

リセット信号は実に厄介なしろものである。 現在では reset 信号は clock と同様に特別な配慮をする必要があるため、 論理合成時には理想的な信号線として扱い、 レイアウト時にリセットツリーを挿入することが一般的である。 このため、適切に遅延時間を算出するのが難しく、 リセット信号を論理に用いると静的タイミング解析時に問題が生じることがある。

例えば、リセット時に定数をレジスタ変数に代入する場合は良いが、 リスト3 のようにリセット時に変数の値を代入するような場合に問題となる。 これはチップの外から初期値を取り込むような場合に生じる。

2012年3月5日月曜日

最初のデザイン

最初のデザイン

それでは、XILINX ISEを使って開発を行うことにします。

最初に作るのは、LEDチカチカです。

本ボードには8個のLEDが搭載されているので、これをチカチカさせてみることにしましょう。

そして、基板上のプッシュスイッチが押されたら、チカチカの点滅方法を変えるようなデザインにします。

 

開発の流れは、

�/p>

(Verilog派の方はVerilog Moduleを選択し、ファイルの拡張子は.vとなります)

図7 VHDLファイルの新規作成

 

入出力ポートの定義

次の画面では、VHDLファイルで記述するモジュールの入出力ポートを定義します。

 

このサンプルデザインでは、水晶発振器からのクロックを受け取るポート、プッシュスイッチの状態を見るポート、LEDへ値を出力するポートの3種類のポートを定義します。

ポートの名前は、入出力がわかるように、末尾に_ip、_op、_bpをつけておくとよいでしょう。(_bpは双方向)

こうしておくと、回路内部の信号と外部のポートとの区別がしやすくなり、方向もわかるので便利です。

New Source Wizardの画面であ、Port Nameのところにxtalclk_ipと、pushsw_ipと、led_opの3種類のポートを定義してください。led_opは出力ポートなのでDirectionをoutに変更し、BusのチェックボックスをONにし、MSBに7、LSBに0と記述してください。

これでNextを押します。

 

図8 入出力ポートの定義

 

確認画面が出たら、Finishを押します。

図9 入出力ポートの定義の確認

 

すると、VHDLファイルの雛型が出来上がり、ISEの中で開かれます。

図10 VHDLファイルが作成されたISEプロジェクト

 

ISEのうれしいところは、この時点でVHDLの雛型が出来ていて、しかも、library IEEE・・などのおまじない構文が自動的に書かれていることです。

 

library IEEE;

use IEEE.STD_LOGIC_1164.ALL;

 

-- Uncomment the following library declaration if using

-- arithmetic functions with Signed or Unsigned values

--use IEEE.NUMERIC_STD.ALL;

 

-- Uncomment the following library declaration if instantiating

-- any Xilinx primitives in this code.

--library UNISIM;

--use UNISIM.VComponents.all;

 

entity ledchika is

    Port ( xtalclk_ip : in  STD_LOGIC;

           pushsw_ip : in  STD_LOGIC;

           led_op : out  STD_LOGIC_VECTOR (7 downto 0));

end ledchika;

 

architecture Behavioral of ledchika is

 

begin

 

 

end Behavioral;

 

 

リスト1 新規に作成されたVHDLファイル

ここで、先頭の

use IEEE.STD_LOGIC_1164.ALL;

に加えて、

use IEEE.STD_LOGIC_ARITH.ALL;

use IEEE.STD_LOGIC_UNSIGNED.ALL;

を追加することをお勧めします。

 

また、FPGAに用意されたプリミティブを使いたい場合は、

--library UNISIM;

--use UNISIM.VComponents.all;

のコメントを外してください。

 

VHDLはarchitecture〜begin〜endという構造をしていて、architectureとbegin間では信号や定数の宣言を行い、beginとendの間では論理式の記述を行います。

architecture

 

PROJECT ASURA R&D Light Propagation Volumes

Light Propagation VolumesXNAǼơפäƤꥯȤƤޤ˻ΤǤʤʤդ֤ޤ
ĤȡäƤä֤ɤȻפΤǡˡˤĤƤƤޤ
DirectXɤͤϡNVIDIASDK˼㤬ΤǸƤ

ޤ르ꥺγפǤʲΤ褦ʥƥåפˤʤޤ

Step.1 Reflective Shadow Map
Step.2 Radiance Injection
Step.3 Radiance Propagation
Step.4 Scene Lighting

ޤǽStep.1
Reflective Shadow Mapޤ뤳ȤϡGХåեʿ١ɶ֤ΰ֡ˡ٥ȥ롤«ˤʤΤ礷Ȥ̵Ǥflux(«ˤη׻ˡǤReflective Shadow Mapsʸ3.2Ϥ˵Ҥޤ
ֺǽˡƥԥ˱äͤ줿«׻ɬפ롣uniformʿԸˤĤƤϡȤʤ롣uniformФƤϡ«ΩγѤ뤿᥹ݥå;ǸפȽ񤤤Ƥޤ
ʤΤǡֳڤʼʿԸȤƥ饤Ȥ谷ŬꤷƤФ褤Ǥ礦ȤƼ갷ϡLight Propagation VolumesAppendix Bˤ餷᥽åɤܤäƤޤ

half GetTexelLum( const in RSMTexel texel )
{
return Luminance( texel.vColor ) * max( 0.h, dot( texel.vNormal, g_lightDir.xyz ) );
}

luminanceϵͤʤΤǡ餯Τ褦ʷ׻ˤʤȻפޤ
half Luminance( const float4 color )
{
return 0.299 * color.r + 0.587 * color.g + 0.114 * color.b;
}

ˡʸˤ񤤤Ƥ褦ˡΤޤޤβ(Virtual Point Light:VPL)ȤƻȤäƤޤȽŤΤǡ󥵥ץ󥰤ƽ٤ڸƤޤ
ɤAppendix B˺ܤäƤΤǡ򻲹ͤˤФ褤Ǥ礦
äƤ뤳Ȥ4ƥʬ򥵥ץ󥰤ơGetTexelLum()᥽åɤˤͤ׻Ǥ뤤ƥꤷޤˡե륿ݤޤե륿γݤϡ4ƥФƺǤ뤤ȷꤵ줿ȡ륻Ȥ2Υ׻Υ3̤ξ˿١ˡûΥ3̤ǤΤĤ뤫ȤƤޤơǸƤޤơ줿ͤϤȤǤ
Appendix BΥɤ򸫤Ȥ狼褦ˡåɰȤΤǡ餫ᥰåɤۤƤɬפޤåɥȡʬȤޤХåɤϹۤǤΤʤǤ礦

³Step.2Ǥ
󥵥ץ󥰤Reflective Shadow MapΥƥȤƳǼƤݻƤޤ
ΥƥåפǤϡƥȤƳǼ줿Ĵ´ؿǰ̤ơܥ塼ƥؤȳǼƤޤ
ޤˡ٥ȥ뤫2ޤǤSH򻻽ФޤȤϤη׻SHStep.1ǺGХåե«ФRGBʬݤ碌СĴ¤ǶͤޤޤȤϤRGBʬȤ̤ΥƥȤƵ᤿ͤ¸Ƥޤ
ΤޤޤǤϼʾˤ륢ƥեȤȯƤޤޤ򤱤뤿ˡǽäȤ餹ȤƤޤ

ϡStep.3Ǥ
̤̾ꡤǥ󥹤ãƤޤפܤФSHͤûƤФǤ
λAppendix C. Propagation scheme˺ܤäƤޤ

ǸˡStep.4
饤ƥ󥰤Ԥޤ饤ƥ󥰤Ϥäƥץã줿ǥ󥹥ܥ塼ͤȡSHѤơ饤ƥ󥰤Ԥޤ

ʤ櫓ǡΤϤ狼פȻפޤ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

----------------------------------------
6.2 Geometry-aware light injection and shifting

ޤФʶֶΤˡʾ򤵤뤿˳VPL pΥǥ󥹤γƤñͤ򥷥եȤɬפޤʿ9ȡˡ桹ϡˡ˸ǥ󥹤¤ˤƺǥȾʬǤͤ˸ǥ󥹤򥷥եȤ뤳Ȥ­ޤäơǾͤΥ顼Ƴ졤¿ξˤƼʾ򤱤ޤܺ٤ʼˤĤƤAppendix C򻲾ȤƤǤ⡤ñͤǥ󥹤򥷥եȤ뤳Ȥϴ˼ʾ˾ޤʤǥ󥹥֥꡼ǥ󥰤򤱤ˤϽʬǤϤޤ

6.3 Anisotropic upsampling of radiance volume

֥5.5˽Ҥ٤Τ褦˶Ū˶줿ǥ󥹤SHΥȥ饤˥֤ϺǽŪʥǥ󥹥ܥ塼δ֡˾ޤʤʾ֥꡼ǥ󥰤Ȥä褦ʽʥƥեȤ⤷ޤʿ9ȡˡФơʤȤ3Ĥβǽˡ¸ߤޤ

ǽ1Ĥϥͥƥ֤ʥץǡʾ褦ˡǡեåǥեȤñͤ줿VPLΩĤΤǤΥեåȤ1ĤΥĹΤǡ椨ˤƶ᤯֤줿֥Ȥˤư̤Ȥʤޤäơ桹ϤΥץϻѤޤ

2ܤΥץϡñͥơˤ뤤"ǥ"[DSDD07]ȸƤФХå饤ɤä뤳ȤΩޤϡȿФ˸ȥľǡǥ󥹤γƤ⤤"ȥ饹"Ĥ褦ˤޤäơȥ饤˥֤뤳ȤϽˤʤޤˡμreflective shadow map2褹ɬפȤȤǤǽˡ̥̾󥰤ȿͤ줿饤ƥ󥰡ˡ2˥ͥƥ֤ʥ饤ȤФ̥󥰤뤳ȤǤϥƥ˥åʣäޤñͥơΤãơθǡΥͥƥ֤ʥǥ󥹤ˤĤƷ֤ޤޤ̩ȿиΥȥξˤơְäưŤ줿Τϡ⤦Ĥ򤱤ʤǤɤäƤΤǡ桹ϤΥץȤޤ

Ǹˡ桹ϵǥ󥹥ܥ塼˰¸åץץ󥰤ˡȯޤˡμʥǥˡ˱äƥȥС뤳Ȥȡǥǥ󥹤ʬ׻뤳Ȥˤäƴְä֤򸡽Ф뤳ȤǤ

桹SHФ濴κʬѤޤʿ10ȡˡn˸濴κʬϥǥ󥹤θۤ׻뤳ȤǤ

ʼ

äơºݤΥǥ󥹤ĥǥ󥹤ʬӤ뤳ȤˤꡤˤĤơΥȥ饤˥֤ǥ󥹤γƤΥƻϤޤäƤ뤫ɤ׻뤳ȤǤޤ

9ˤˡη̤򼨤ޤ

--------------------------------------

դ
Ƥ4ʾ夿äƤޤޤˤĶ򽪤Ȼפޤ

Light Propagation Volumes in CryEngine3 Ķ--

ޤ󡢤ä깹˺Ƥޤ

Light Propagation VolumesĶ³Ǥ
ꤢʤΤǡޤǾ֤Ƥ
ȡޤɽӼϥåĥάΤǡʸ򻲾ȤƤ

------------------------------------------------------

6. Improvements and Optimizations

2012年3月4日日曜日

言語設計FAQ — プログラミング言語 Go ドキュメント v0.1 documentation

生立ち

このプロジェクトにはどのような歴史がありますか?

Robert Griesemer、Rob PikeおよびKen THompsonは2007年9月21日にホワイトボードに新しい言語の目標をスケッチすることを始めました。数日かけて、数ある目標から、何をするのかという計画と、この言語の美しい理想像が定まりました。他の仕事と並行して、隙間時間を利用して設計が続けられました。2008年1月までに、Kenはコンパイラについてのアイディアを追求することを始めました。それは、コンパイラの出力としてCのコードを生成することでした。この年の中頃までに、この言語はフルタイムのプロジェクトとなり、製品版コンパイラを製作するために十分な時間を費やすことになりました。2008年5月には、Ian Taylorが自主的に、ドラフト版の仕様をもとにして、GCC用のフロントエンド作りに取りかかりました。Russ Coxは2008年の終わり頃に参加し、言語とライブラリをプロトタイプから現実的な実装に導くことを助けました。

ほかにも沢山の人々にアイディアを出していただき、議論をし、ソースコードに寄与していただきました。

なぜ新しい言語を作るのですか?

Goは、既存のシステムプログラミング用言語と環境への欲求不満から生まれた言語です。プログラミングはとても難しいものとなってしまいましたが、それは言語の選択が一因でもあります。効率的なコンパイル、効率的な実行、または容易なプログラミングのいずれかを選ばなければなりません。なぜなら、主要言語において、これら3つを満たす言語は無かったからです。プログラマは、安全性と効率を楽に得ることを選択するために、C++ではなく、PythonやJavaScriptのような動的型付け言語や、C++より自由度を下げて拡張したJavaに乗り換えることが可能ではありました。

Goは、インタプリタ型の動的型付け言語の容易なプログラミングと、コンパイラ型の静的型付け言語の効率と安全性を兼ね備える試みです。また、現代的であり、ネットワークコンピューティングおよびマルチコアコンピューティングをサポートする狙いがあります。最後に、高速な実行を狙いとしています。その上で、1つのコンピュータで大きな実行可能ファイルをビルドすることが数秒で完了するのは当然のことです。これらの目標を実現するためには、数々の言語上の課題に取り組まなくてはなりません。表現力が豊かで軽量なシステム、同時並行性とガーベジコレクション、堅牢な依存関係の仕様、などなどを実現する必要があります。これらはライブラリやツールで上手に解決することは不可能です。ゆえに、新しい言語が生� ��れたのです。

Goの祖先は何ですか?

Goは基本的な文法の大部分はC言語系から受け継いでいます。また、宣言やパッケージについては、Pascal、Modula、Oberonから大きな影響を受けています。加えて、並行処理については、Tony HoareのCSP (Communicating Sequential Process) に影響を受けている言語であるNewsqueak、Limboから同じアイディアを取り入れています。しかしながら、全体としては新しい言語です。あらゆる点において、Goはプログラマが何をし、どうプログラムを作るのかということを考えられて設計されています。少なくとも私たち自身が行うプログラミングがより効率的に、より楽しくあるようにです。

What are the guiding principles in the design?

Programming today involves too much bookkeeping, repetition, and clerical work. As Dick Gabriel says, "Old programs read like quiet conversations between a well-spoken research worker and a well-studied mechanical colleague, not as a debate with a compiler. Who'd have guessed sophistication bought such noise?" The sophistication is worthwhile—no one wants to go back to the old languages—but can it be more quietly achieved?

Go attempts to reduce the amount of typing in both senses of the word. Throughout its design, we have tried to reduce clutter and complexity. There are no forward declarations and no header files; everything is declared exactly once. Initialization is expressive, automatic, and easy to use. Syntax is clean and light on keywords. Stuttering (foo.Foo* myFoo = new(foo.Foo)) is reduced by simple type derivation using the := declare-and-initialize construct. And perhaps most radically, there is no type hierarchy: types just are, they don't have to announce their relationships. These simplifications allow Go to be expressive yet comprehensible without sacrificing, well, sophistication.

Another important principle is to keep the concepts orthogonal. Methods can be implemented for any type; structures represent data while interfaces represent abstraction; and so on. Orthogonality makes it easier to understand what happens when things combine.

2012年3月2日金曜日

つぶやき 今日はパーマ

今日はパーマ


                                写真は再使用です

今日はパーマ

キートン  「父ちゃん、あんた昨日ブログの更新ばせんやったね」

カメロボット「おぅ、気分のわるうしてね」
      「ブログの、更新する気のせんでくさ」

キートン  「なんでね、」

カメロボット「母ちゃんが、あんまり、分からんこと言うけんくさ、
       母ちゃんば、しまきあげちゃったやね」
※ しまく=叩く、暴力を振るう
キートン  「嘘いいない、」

カメロボット「何でや、」

キートン  「そーらー、分かるくさ、僕は、あんた達と一緒に住んどうとばい」

カメロボット「そーやね」

キートン  「いったい、なんが、あったとな」

カメロボット「なーも、なかて、言い寄ろうが」

キートン  「あんた、相棒の僕にもかくすとな」

カメロボット「風邪、風邪たい

※まーいいたい、このうそこき、くそ親爺
 本当はなんか、あっとります

キートン  「父ちゃん、父ちゃんちゃ」

カメロボット「なんや」「ブログ更新のことなら、なーも答えんじぇ」

キートン  「もう、そげな事は、どうでもよか」

キートン  「母ちゃんが、呼びよったよ」

カメロボット「なんて、母ちゃんが呼びよるて、わかった

※なんかいな、もしかしたら、なかようしょうとか、言うっちゃなかろうね
 それなら、勝負パ○ツ、はいていかないかんね

・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

キートン  「なんやったとね、がっかりした顔ばしとうが」

カメロボット「なんやったとねも、糞もあるか

キートン  「どうしたとね」

カメロボット「はぁん!この前の続き、パーマに行くけん送って行けげな」

キートン  「そげーん、頭にきとうとね」

2012年2月29日水曜日

BTOパソコンはどこで頼めば良いのか?(by.2ch) - BTOパソコン.jp

2chはまとめサイトが乱立しており、どこがコピー元か考えましたが考えるまでも無く2chのスレッドが元。私の基準はGoogleの評価が中心の為、タイトル検索でトップに出たこちらから引かせてもらいます。

Newslogplus: で、BTOはどこに頼めばいいの?

上から順に引用して行くと膨大な量になるので、項目を分けて勝手に解説しつつBTOメーカーの情報上書きも兼ねます。

 

ドスパラ(とマウスコンピューター)は最悪なのか?

BTOパソコン.com読者殿ならDELLやNECに置き換えると分かり易いかと思いますが、2ch風にいうと情弱(情報弱者)が2chそのものに多く、専門では無いスレッドはその手が多数暇潰しをしているようです。

これは38のコメントがそれを物語っております。

38: 演出家(西日本) :2010/09/06(月) 11:42:06.38 ID:cNzH7lR/0 [2/3]
どすぱら評判悪くなったな。
一昔前のマウスとかソーテックとかあのれヴぇるじゃん。

置き換えると、ドスパラ有名になったなという事で、大企業MCJグループが直接抱えるマウスコンピューターや、台湾から大ブレイクして本当にブレイクし現在はONKYOが料理中のSOTECと同じほど有名になったという事。

当ブログ左の一覧はアンケートによるBTOメーカー知名度順になっており、2009年12月にご協力戴いたデータ。上はtwitter、下はこのブログ。

HPは原因不明の例外として、評判の悪いメーカーが上位を占めており、知名度が高く誰もが簡単に購入出来るという意味も含めた口コミ情報の広さから。

本当に物や企業が悪く知名度が高いなら、何らかの事件を起こしていたり購入者が減るでしょう。

271: 技術者(東京都)[] :2010/09/06(月) 13:35:19.36 ID:pqpZwHvkP
お前らドスパラやたら叩くけど一番売れてるから叩いてるのと
1番売れてるからそれだけ不具合の報告が多くて
駄目な印象あるだけだろ

というわけです。

売上の規模で公開されている範囲でいうと。

  1. MCJ(マウス他ユニットコム全般)・・連結834億円(10年3月)
  2. ユニットコム(PC工房、Faithなど)・・411億円(09年3月)
  3. サードウェーブ(ドスパラなど)・・291億円(09年7月)
  4. フロンティア・・75億円(08年3月)

例としてフロンティア(frontier神代)を入れておりますが、フロンティアと言えば20年以上前から私でさえ知っているBTOメーカーの老舗。現在はヤマダ電気グループで店頭でも置いてあり売上は上がっている事でしょう。それでも100億行かず。

MCJはマウスコンピューター以外にユニットコムや液晶モニタで有名なiiyama、ASUSの日本代理店ユニティなどが有るため834億の内マウスコンピューターは不明。

ユニットコムは、パソコン工房とフェイス、TWOTOP以外に関連企業は見られないものの、街のPC修理屋を展開していたり、VHSをDVDにするサイトも本格的。

これらに対してサードウェーブ(ドスパラ)は上海問屋含むエバーグリーンを持ってはいるもののパソコンはドスパラのみ。

DELLやHPなど海外からの参入を除き、NECやエプソンのようなナショナルブランドも除外すると、日本の純粋なBTOパソコン屋としてはドスパラが最も売れている かも知れない。

初心者や素人でも買える有名なBTOメーカーだからクレーマー(自称初心者では無い知ったかぶりや勘違い)も多いわけです。

クレーマーがドスパラに見放されている情景

面白い書込が有ったためおまけとして。

29: 通りすがり(山口県)[] :2010/09/06(月) 11:39:10.67 ID:VS1yLfnD0
ドスパラで購入したPCでネトゲーしてると
ネット接続が定期的に切れる
接続が切れた場合は一度、PCを一度シャットダウンして
本体のON・OFFスイッチを一回OFFにしてONにするとネットが繋がるようになる
再起動やシャットダウンだけじゃ直らない
これ明らかに電源が悪いんだよな
糞パラに電話したらPC本体に電気が溜まってるとかなんちゃら変な事言われて
保証期間内だから修理依頼しようと思ったら
3週間ぐらいは見ておいてくださいね~とか言いやがる

2012年2月26日日曜日


        
      
    
  

  
    


  


システム分析のためのアクション·ダイアグラムを描画する方法

  
    
    

    


        
          
        
        
          
          
        
        
          
          
        
        
          
          
        
      
本社所在地
電話番号
従業員数

      

    
  

リスト4 xsl:if要素による条件付き処理(cusstyle.xsl)

 これをInternet Explorerで表示すると次のようになる。従業員数が500以上の会社だけが表示されている。

 また、このxsl:if要素は、xsl:message要素とともに使用し、エラーを検出して通知するために使用することができる。以下の例をご覧いただきたい。



  
    「従業員数」の数値が間違っています。修正してください。
  

リスト5 xsl:if要素によるエラー通知

 リスト5のように記述しておくと、従業員数が100万人以上の場合、エラー・メッセージを表示してくれる。また、xsl:message要素のterminate属性の値が"yes"の場合、メッセージ発信後XSLT処理を中止する。

繰り返し処理

 XSLTでは、C言語のforループ処理と似た繰り返し処理を行うため、xsl:for-each要素が用意されている。xsl:for-each要素は、選択されたノード集合に対して同じテンプレートを適用する場合に活用される。xsl:for-each文は次のように書くことができる。


ページの最上部に行ごとに、 1の長さが指定されている

    ……テンプレート……
リスト6 xsl:for-each要素の書き方

 リスト3のXMLデータから、会社名、住所、従業員数だけを抽出して表形式に表示する場合、xsl:for-eachを使って書くと次のようになる。


xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  
    
      
       
      

2012年2月24日金曜日

ミリ秒ってなんですか? 1秒の何分の一(;_;)? - Yahoo!知恵袋

解決済みの質問

ベストアンサーに選ばれた回答

tomyuhkiさん

1000ミリ秒=1秒です。

2012年2月22日水曜日

方法 : 特定の日付から曜日を抽出する

DateTime.DayOfWeek

and DateTimeOffset.

HTMLScraping Class ReadMe

HTMLScraping Class ReadMe

概要説明

  1. 動作環境
  2. 配布アーカイブのダウンロード
  3. 注意
    1. HTMLの整形処理について
    2. 実体参照について
    3. 名前空間について
  4. リファレンス
    1. HTMLScraping->__construct()
    2. HTMLScraping->getXmlObject()
    3. HTMLScraping->getXhtml()
    4. HTMLScraping->convertPath()
    5. HTMLScraping->dumpElement()
    6. HTMLScraping->emulateLastModified()
  5. HTTP_Requestについての補足

動作環境

必須。

以下のいずれかが必須。

キャッシュ処理を行う場合は必須。


配布アーカイブのダウンロード

» 0.1 (alpha) issued 2007-05-24


注意

HTMLの整形処理について

HTMLの整形処理は、Tidyが利用可能であればこれを利用し、利用不可の場合は替わりにHTMLParserを使用します。Tidyのほうが高速で、リソースの消費も少なく、より正確な処理が期待できますが、これは現在のPHPでは、標準ではインストールされないため、システムの管理者権限がある場合は、別途にインストールしてください。

整形処理では、XHTML 1.0 Transitionalに準拠じて要素が再構築されます。このため、ドキュメントツリーは、整形処理の前後で異なる場合がある点に注意してください。例えば「

hoge
」というマークアップは、XHTML 1.0 Transitionalでは不正であるため、「
hoge
」と変更されます(従って、「//span/div」というXPath式はこの要素を見つけることができません)。

HTMLParserによる整形処理では、XHTML 1.0 Transitionalでは無効な要素(例えばEMBEDやFRAME)や、必須要素の欠落している要素(例えば)は除去されます。こうした処理内容は、その定義ファイルである、配布アーカイブ中のxhtml1-transitional_dtd.inc.phpを修正することで変更可能です。

SCRIPTとSTYLEはその子要素も含めてすべて削除されます。これらを削除せずに残す代替のコードを、HTMLScraping.class.php中にコメントアウトで記述しています。このコードを利用した場合、これらの要素の子要素は(あれば)CDATAセクションに変更されます。その他の、XMLパーサにとって安全ではない可能性のある要素は、整形処理前に適宜変更されます。

2012年2月21日火曜日

SQL Anywhere v10 / v9.0.2 よくある質問(FAQ)- アイエニウェア・ソリューションズ株式会社 -


はじめに

Q. SQL Anywhereとは何ですか? SQL Anywhereは、データ管理理とデータ同期のテクノロジーの包括的なパッケージソフトウェアです。データベースを利用したアプリケーションの開発や展開を短期間で実現します。SQL Anywhereは、エンタープライズレベルの堅牢なデータ管理が必要なアプリケーションに理想的です。900万以上のシートライセンスの実績に裏づけされるように、SQL Anywhereは、デスクトップやサーバー、モバイルやリモートオフィスで使用されるデータベース組み込み(埋め込み)アプリケーションを支えています。

Q. SQL Anywhereには何が含まれていますか?

2012年2月20日月曜日

HTTP/1.1 403 Forbidden

HTTP/1.1 403 Forbidden<link rel="stylesheet" type="text/css" media="all" href="inc_Layout_V2/css/Flexible_Mobile_Layout.

Dr. GUI .NET #6: .NET Framework での配列

.NET Framework での配列

June 11, 2002
日本語版最終更新日 2002 年 9 月 30 日

目次

前回のコラムと今回のコラム
配列と 1 次元配列の概要
値型の配列と参照型の配列
配列クラス
多次元配列
配列または配列要素の変換 (配列の共分散)
配列の配列 (または "不規則行" の配列)
試してみましょう!
まとめと次回予告

前回のコラムと今回のコラム

前回のコラム では、 .NET Framework の文字列について説明しました。 今回は、.NET Framework の配列について説明します。

配列と 1 次元配列の概要

.NET Framework の配列は、他のプログラミング システムの配列とよく似ています。 配列は、順序付けられた値のセットを含むデータ構造です。 すべての要素は、同じ型である必要があります。 ただし、参照型の場合、要素が要素型または要素型から派生された型のオブジェクトを参照できることに注意してください。 この極端な例として、Object の配列があります。 すべての型が Object から派生されているので、 このような配列の要素は任意の型を参照できます。

配列名、および整数式のインデックスを使用して、値にアクセスします。 インデックスは、C# では角かっこ、Microsoft® Visual Basic® .NET ではかっこで囲んで設定します。 たとえば、次のようになります。

                     [C#] double[] a = {0.1, 0.2, 0.3, 0.4, 0.5}; // "0.3" を指定します。: 最初のインデックスは、1 ではなく 0 です。 StringBuilder sb = new StringBuilder(a[2].ToString()); int i = 2; a[i] = a[i] + a[i - 1] / 4; //  0.3 を 0.35 に置き換えます。 sb.AppendFormat(", now {0}\n", a[2].ToString());  [Visual Basic .NET] Dim a() as Double = {0.1, 0.2, 0.3, 0.4, 0.5} ' "0.3" を指定します。: 最初のインデックスは、1 ではなく 0 です。 Dim sb as New StringBuilder(a(2).ToString()) Dim i as Integer = 2 a(i) = a(i) + a(i - 1) / 4 ' 0.3 を 0.35 に置き換えます。 sb.AppendFormat(", now {0}\n", a(2).ToString())                   

上記の例では、1 行目の左側の部分で、"a" という名前の配列参照を作成します。 その配列参照の型は、 double [] または Double()、 つまり double または Double の 1 次元配列です。 配列のランクまたは次元の数は型の一部ですが、 配列のサイズは、その型の一部ではないことに注意してください (これは、C と C++ では異なります)。 C# では、 C や C++ のように Double a[] = { ... }; と記述するのではなく、 Double [] a = { ... }; と記述する必要があることにも注意してください。 C# の配列宣言では、配列の角かっこが変数ではなく、型に付きます。 Visual Basic .NET の場合は、かっこが型ではなく、変数に付きます。 紛らわしいでしょう? Dr. GUI もそう思います...

配列参照は、次元の数 (またはランク) と要素型が同じである限り、 任意のサイズの配列を参照できます。 (もちろん、配列参照は、実際の配列を参照するのではなく、null になることもできます。)

1 行目の右側の部分では、 5 つの要素を持つ配列を指すように配列参照を設定しています。 これらの要素のインデックスは、1 から 5 ではなく、0 から 4 です。 ("従来の" Visual Basic では、 "Option Base" ステートメントを使用して、 最初のインデックスを 1 に設定できました。 今はできません。) つまり、すべての要素を出力するループを次のように記述します。

                     [C#] for (int i1 = 0; i1 <= 4; i1++)    sb.AppendFormat("a[{1}] = {0}\n", a[i1], i1);  [Visual Basic .NET] Dim i1 as Integer  For i1 = 0 To 4    sb.AppendFormat("a({1}) = {0}\n", a(i1), i1) Next sb.Replace("\n", Environment.NewLine)                   

C、C++、または C# で (まだ) プログラムを作成したことがない人のために説明すると、 上記の C# のループでは、i1 を 0 に設定して、 AppendFormat メソッドの呼び出しを 5 回実行し、 実行するたびに i1 をインクリメントしています。 これは、Visual Basic .NET の For i1 = 0 To 4 とまったく同様のものです。 そのため、i1 の値は 0、1、2、3、4 と変化します (i1 が 5 になると、i1 <= 4 という条件に当てはまらないためです)。

名医がパラメータを好きな順序に設定するために、 AppendFormat メソッドの呼び出し内で書式指定子を切り替える機能を利用したことに注意してください。

Visual Basic .NET のコードでは、 コードを終了する (および StringBuilder から文字列を返す) 前に、 "\n" サブ文字列を CR/LF に変換します。

1 つずれエラー : Visual Basic .NET の重要な相違点!

Visual Basic .NET と C# の 1 つの重要な相違点は、 固定の要素数を指定したときに割り当てられる配列要素の数にあります。

たとえば、 C# で int [] a = new int[5]; と記述すると、 a[0] から a[4] までの 5 つの要素を確保します。

Visual Basic .NET では、 Dim a() as Integer = New Integer(5) と記述すると、 a[0] から a[5] までの 6 つの要素を確保します。

つまり、Visual Basic .NET は自動的にいつのまにか各次元のサイズに 1 を加算します。 Visual Basic は、レガシの理由でこの操作を行います。 さらに、これは古い Visual Basic のプログラムの Visual Basic .NET への移行を少し簡単にします。

そのため、明確なサイズを使用して上記の配列を割り当てる場合、 C# では 5 を、Visual Basic .NET では 4 をサイズとして使用すると、 0 から 4 の番号の付いた要素を持つ同じ配列を確保できます。

この相違点が原因で問題が発生します。 次元が変数のとき、特にその変数が異なる言語で記述されたルーチン間で渡される場合は、 とりわけ解決が難しい問題になります。 結果として、配列のサイズが予想とは異なり、 それが原因で解決が難しい 1 つずれエラーと NULL ポインタ参照の例外が発生することがあります。

注意してください! 特に、言語を混在して使用する場合は! そして、あなたが Visual Basic .NET のプログラマの場合は、 .NET Framework のメソッドに配列を渡すとき、このことに注意してください!

配列の境界を確認する

配列の上限または下限を超えるインデックスを指定すると、 IndexOutOfRangeException が生成されます。 .NET Framework では、 配列のインデックスを確認して、 それらが境界内に収まるようにする必要があります。 特に大量の配列操作を実行するアプリケーションでは、 これがパフォーマンスの問題になることがあります。 このようなアプリケーションでは、 C# の安全ではないコードの機能を使用して、 C または C++ 形式のポインタやメモリの管理を実行します。 (ただし、十分注意してください!) Visual Basic .NET にはこれに相当するものがありません。 そのため、.NET Framework で言語にまたがって簡単に呼び出しができることはすばらしいことです。

2012年2月13日月曜日

NTTドコモは10日、同社が提供するLG Electronics製のAndroidタブレット「Optimus Pad L-06C」、スマートフォン「Optimus chat L-04C」「Optimus bright L-07C」のバージョンアップを実施すると発表した。2月13日より順次提供を開始する。

Optimus Pad L-06Cは、1GHzのデュアルコアCPU、約8.9インチワイドXGA(1280×768ドット)液晶を搭載したタブレット端末。寸法・重量は約150×243×12.8mm(最厚部:約14.1mm)・約620gで、6400mAhの大容量バッテリを内蔵する。

Optimus Pad L-06C

2012年2月11日土曜日

musictonic_00.jpg 普段、YouTubeを音楽プレイヤー代わりに使っている人も多いはず。しかし、YouTubeをアーティスト名で検索すると、「歌ってみた」などオリジナルでない楽曲も多数ひっかかっって使いにくい。本家の曲だけを連続再生してくれる「Musictonic」を使おう。

2012年2月10日金曜日

LGが香港において同社のLTEスマートフォン「Optimus LTE」を今年Q2に発売すると発表しました。しかし、発売日や価格等の詳細はまだ公開されていません。

2012年2月9日木曜日

音楽購入、管理はこれひとつでOK!

ケータイ版レコチョクで買った楽曲なら機種変しても再度無料でダウンロード出来るのが嬉しいアプリです。

 

 

音楽は著作権が厳しいので、機種変に伴う楽曲の再インストールは難しい物です。


AndroidタブレットPCの中で最も人気のある製品は、Amazon(アマゾン)のKindle Fire(キンドルファイア)であることが分かった。

Stifel Nicolausのアナリストジョーダンローハンは、Amazon(アマゾン)のKindle Fire(キンドルファイア)の2011年第4四半期の販売台数を600万台と推定した。

既存の予想だった500万台よりも高い水準だ。

タブレットPC Kindle Fireの人気を実感することができる販売台数である。

しかし、2011年第4四半期に1,500万台が販売されたApple(アップル)iPad(アイパッド)には肩を並べるレベルではない。

2012年2月8日水曜日

2012年2月7日火曜日

SHARP製Android 4.0搭載端末向けモジュールがBluetooth認証通過/ICS搭載Samsung GALAXY S II GT-I9100がBluetooth認証通過/Android 3.

2012年2月6日月曜日

大人気!iPhone、Androidに最適!DOCK、micro、miniから選べる!超コンパクト!カバンにおひとつどうぞ!充電対応 巻取式USBケーブル【楽天ランキング1位★メール便対応!】大人気!iPhone、Androidに最適!DOCK、micro、miniから選べる!超コンパクト!カバンにおひとつどうぞ!充電対応 巻取式USBケーブル

価格: 411円

販売元: agog 楽天市場店


Galaxy S3発売日が6月と予想される中で、当初予想されたGalaxy S3公開が持ち越される見通しだ。

サムスン電子は、クアッドコアのスマートフォンGalaxy S3を来月開催されるモバイルワールドコングレス2012(MWC2012)ではなく、独自のイベントで公開することにした。

これは、サムスン電子がモバイルの生態系を強化し、市場支配力を高める戦略に転換することを意味する。

2012年2月5日日曜日

1:☆ばぐた☆ ◆JSGFLSFOXQ @☆ばぐ太☆φ ★:2012/02/01(水) 11:20:39.06 ID:???0

★独高裁、サムスン電子の端末販売差し止め命令支持

2012年2月4日土曜日

サムスンを望んでいます。 to know now? 今 is 公開 by the Samfirmware I9000BGJV6_I9000XECJV6_XEC. このコマーシャル is 人造人間 2.3.6 for the 三星ギャラクシー S. として one can see the 売上コード, but もう一度 it is not a バージョン of DBT. しかし、たぶん、私たち ' ve got 幸運です this time and the DBT バージョン will すぐに従ってください。.