わんくま同盟わんくま同盟
わんくま同盟 -> Blog's
わんくま同盟メンバの最新の記事
9月18日(土)の
わんくま勉強会(東京)に登壇
します。
今スライド作っているところです。
今回の内容は、涙あり、笑いありの下町人情ものです(嘘)
まだ、席は空いているので、みんな来るといいと思います。
http://www.wankuma.com/seminar/20100918tokyo51/Default.aspx
#さおさんも来ます(これ重要ですw)
VB6システムは、まだまだ現役で、新規開発もあったりします。開発者の思いとは裏腹に。
当然なから、改修の仕事も時折発生するわけです。とあるシステム改修現場でのこと。
「納得できない妙な動作をしています」との訴え。
確かに、業務仕様とは異なる動作をしている。いままで動作していて、急におかしくなるときは、データに起因することが多い。
データを閲覧すると、想定外の規約コードや、桁オーバーの値がチラホラ。
エラーログにもエラー状況は書かれていない。異常データだから、落ちてもよさそうなのに落ちない。
内部仕様書をみても埒が明かないので、ソースを見ることにした。
Public Property Let xxx(ByVal yyy As 区分)
On Error GoTo ErrHandler
xx区分 = 区分
Exit Property
ErrHandler:
End Property
関数やプロパティのすべてに on Error goto ErrHandlerが入っている。これはいい。でも
ErrHandler:
End Property
で握りつぶしている。そりゃないよ。半分ほどは、Logに書いているけど。
ErrHandler:
Log出力
End Property
これじゃ、正常終了したのかどうか、いちいちログをみなきゃだめだし、ログにもかかれず葬られた処理があるかもしれない。
とりあえず、全部のErrHandler: のあとに、Log出力を咬ませた。
不具合が出る出る......いままで正常とされていたのも、実はおかしかった...というのも発覚。
開発元を捕まえて、文句をいうと、「当時の開発指針に則っています。」との返事。
開発指針には、「各関数には on Error goto ErrHandler を咬ますこと。」と明記はされているが、握りつぶせとは書かれてない!!!
「サラリーマン開発者はプロではないのか」と愚痴りたくもなった。
落ちないシステムは大事だか、不正データの対策は、安全に回避ルーチンに陥るのが望ましいが、結構考慮点が多岐にわたるので、工数増になります。
予算と工期がないとき、素直に落とすほうが、よほど後々のデバッグが楽になります。
どこで落ちたか、解る仕組みの実装するのがプロです。
不確か状態で継続動作するより、落ちたほうがマシと思うのだが。
(*)もちろん、Try catch処理の時も握り潰しちゃだめですよ。
CodeZine>COMPONENTzineに「一覧更新画面を持つWebアプリの作り方~MultiRow for ASP.NETの編集機能を使いこなす! 」が掲載されました。
---引用開始
一覧系のWebアプリケーションを作成する際、悩むことの一つに、編集機能をどのように実装するかという点があります。
一般的な実装方法としては、一覧の各列に[編集]ボタンを用意して、それをクリックしたら編集用ページが開き編集できる、という流れが考えられます。この流れがなぜ一般的かと言えば、参照と編集で適切なデザインを使い分けられるからです。それ以外にも、編集画面を閉じるタイミングでサーバー側にデータを送信して保存することで、ブラウザを閉じてしまったとしても最後に編集中だったデータ以外は確実にサーバー側に保存できるという点も考慮してあるためだと思います。
しかし、一覧画面でどんどんとデータを更新していき、任意のタイミングでサーバー側に保存するような操作性を、Webアプリケーションで実現したい場合もあります。Visual Studioに添付されている標準Webコントロールでは実現が難しい、このような一覧更新画面も、MulitRow for ASP.NET 1.0Jを使えば簡単に実現可能です。
---引用終了
http://msdn.microsoft.com/ja-jp/windows/jpwin7cp01.aspx
Windows7らしいクライアントアプリ作ってみましょう
っていうキャンペーンがあった。
おもしろそうだけどなぁ・・・・
http://windowsteamblog.com/Windows_Phone/b/windowsphone/
本当にRTMですね。
ここからメーカーの最終組み立てですしw
日本語版は出ないらしいので初期ロットの英語版を輸入するしかないですね。どうやって買おうかなー
2010/08/20にbeta 1版の配布が開始されたLightSwitchに関連してSilverlight 4のランタイムが更新されていたそうです。そのため、LightSwitchをいれたPCで作成されたSilverlight 4アプリを配布しても配布先のランタイムと合わずに動作できないということがあったようです。
でも、US現地の2010/09/01から、日本でも本日からSilverlight更新プログラムの自動配布が動くようになったようなので安心ですね。
iPhone 4が壊れて、全然電源が入らなくなりました。
上下のボタンを同時長押ししても反応しないし、ホームボタンをしながらiTurnsが入ったPCにつないでもリカバリーモードで立ち上がってこないしどうにもなりません。これが2010/07/28のことです。
そこでやっぱり携帯なのですから購入したSoftBankショップに持ち込むことにしました。とはいっても行動範囲と行動時間内に立ち寄れるショップは限られているので2010/09/01になってやっといきました。
私:すいませーん。i Phone 4の電源がはいらなくなったんですが、一通りのことはやってもダメでした。
店員さん:店のPCにつないでちぇっくしてみますねー
(数分後)
店員さん:だめですねー。ここでできることはないので、ソフトバンク i Phoneテクニカルセンターに電話して聞いてみてください。ダメだったら代替機おかししますねー(と電話番号)
(でんわしてみる)
私:すいませーん。i Phone 4の電源がはいらなくなったんですが、一通りのことはやってもダメでした。
オペレータ:リカバリーモードをためしてみてください。電源はいらなくてもそれで大丈夫です。ただし、リカバリーモードだとデータとかは消えてしまいます。
私:バックアップから復元じゃだめなんですか?
オペレータ:そのバックアップの状態に故障の原因がふくまれているとやっぱりだめになるので、そのときは工場出荷状態にするしかありません。
私:リカバリモードも実は試していて反応なかったです
オペレータ:そうですかー。ではもうできることはないのでAppleStoreにもっていってください。修理には1週間とかかかると思います。
(店に戻る)
私:すいませーん。さっききたものですが、やっぱりだめだそうですー。
店員さん:そうですか、では、代替機だしますねー。
私:修理ってどれくらいかかりますか?
店員さん:一週間くらいでしょうか。ここでは分からないのですよ。お客様ご自分でApple Storeにもちこんでいただくので?
私:(あれ?ここで修理受付すらしてくれないの?)わかりましたー。
(なんとか時間を作ってApple Storeへ)
17:10
私:i Phone 4の修理ってどこでうけつけてますか?
店員さん:2階になります。予約が必要なので今おとりしますね(専用端末じゃなくてその辺のMacでWebサイトから予約)。15分からの回が空いていたので2階にどうぞー。
17:15
(2階で待つ)ジニアスバーじゃなくて i Pod bar。
17:39
店員さん:はつねさーん。はっつねっあっきらさーん(外国人な店員さんだったので)。
私:すいませーん。i Phone 4の電源がはいらなくなったんですが、一通りのことはやってもダメでした。
店員さん:ちょっとしらべてみますねー。あー、全然反応しませんね。いま、新しいのだしますね。
17:45
店員さん:液晶確認してください
私:OKです
店員さん:アクティベートできるかチェックしますね。OKみたいです。いま、書類だしますね
17:50
店員さん:ここと、ここにサインを。ありがとうございました。おまたせして申し訳ありませんでした。
.
.
.
.
そして、手元にネットにつながる代替機と、ネットにつながらない(代替機に切り替えられたSIMなので)iPhone 4があります。
次にSBショップにいけるのはいつなんでしょうか。。。。。。
http://windowsteamblog.com/windows_phone/b/windowsphone/archive/2010/09/01/windows-phone-7-released-to-manufacturing.aspx
---引用開始
Today is the day that the Windows Phone team has been driving towards, and we’re very excited to say that we’ve reached the biggest milestone for our internal team ? the release to manufacturing (RTM) of Windows Phone 7!
---引用終了
ということで、Windows Phone 7がRTMまできました。いよいよですね。
さて、日本ではいつ搭載携帯が発売されるんでしょうね。
ビデオ予約で、1時間番組が連続して(他チャンネル)放送される時の予約設定の仕様の件です。
Video業界の共通仕様なのか、我が家の機種固有の仕様なのか、知りません。
9時代の6Chと10時代の8chを連続して録画したいとき、
9:00~10:00 6ch , 10:00~11:00 8ch と指示すると、「時間が重複してます。」と叱られます。
9:00~ 9:59 6ch , 10:00~11:00 8ch と指示すると、正常にOKになります。が。9:59:00~9:59:59の1分間が抜けるようです。
開始<= 動作 <=終了 と解釈しているようです。
連続帯で指定すると、終了1と開始2が同じ時刻指定になります。
開始1 <= 動作 <= 終了1
開始2 <= 動作 <= 終了2
どちらにも、含まれてしまうので、エラーとしているのね。その結果、1分間の録画不能時間帯が生じることに...
単純に
開始1 <= 動作 < 終了1
開始2 <= 動作 < 終了2
にすれば、問題は発生しないと思うのですが、なぜそうしないのだろう。
録画と録画の連続してチューナーの切り替え作ができないから、ワザとGapを入れているのだろうか。それにしたら、1分間のギャップは大きいような。
プロダクト受け入れテストと次版の設計のため
急遽デッチ上げられたプロジェクトに飛び込むことになり、
机のお引越ししてました。
東京タワーすぐそば一等地26階角部屋、
こんなの↓を背にシゴトしてます。
右隅にスカイツリーがほんのり。
そゆわけで、先週日曜は兎さんとやきそば食って
悟空茶荘で茶ぁしばきながら愛と平和を熱く語るはずもなく、
GPGPUがどーしたこーしたなんつーおよそ茶席にはそぐわぬ
ネタで盛り上がったわけですが。
兎さん曰く:「ATI Streamてばホスト-デバイス間のデータ転送が速くねぇ」
...そぉなの?
GPGPUはホスト(マザボ)にぶっ挿したデバイス(グラボ)に対し
あれやこれやと命令投げて処理を行います。
で、ホストはデバイスの持ってるメモリに直接アクセスできません。
なので必要に応じてホスト→デバイス,ホスト←デバイスなメモリ転送
コマンドを発行し、その完了を待たにゃならんです。そのスピードがイマイチとのこと。
おうち帰ってやってみた。1024x1024個のfloat(=4MB)領域に対し1000回の
書き込み(ホスト→デバイス)と読み込み(ホスト←デバイス)にかかる時間を計ってみる。
#include <iostream>
#include <vector>
#include <string>
#include <utility>
#include <cassert>
#include <Windows.h>
#define __CL_ENABLE_EXCEPTIONS
#include <CL/cl.hpp>
using namespace std;
int main() try {
vector<cl::Platform> platforms;
cl::Platform::get(&platforms);
assert( !platforms.empty() );
cl_context_properties properties[] =
{ CL_CONTEXT_PLATFORM, (cl_context_properties)(platforms[0])(), 0};
cl::Context context(CL_DEVICE_TYPE_GPU, properties);
std::vector<cl::Device> devices = context.getInfo<CL_CONTEXT_DEVICES>();
assert( !devices.empty() );
const size_t N = 1024*1024;
vector<float> host_buffer(N, 0.0f);
cl::Buffer buffer(context, CL_MEM_READ_WRITE, N*sizeof(float));
cl::CommandQueue queue(context, devices[0]);
DWORD t0, t1;
// かきかき
t0 = GetTickCount();
for ( int i = 0; i < 1000; ++i ) {
queue.enqueueWriteBuffer(buffer, CL_TRUE, 0, N*sizeof(float), &host_buffer[0]);
}
t1 = GetTickCount();
cout << "Write 1000 times: " << (t1-t0) << "[ms]\n";
// よみよみ
t0 = GetTickCount();
for ( int i = 0; i < 1000; ++i ) {
queue.enqueueReadBuffer(buffer,CL_TRUE, 0, N*sizeof(float), &host_buffer[0]);
}
t1 = GetTickCount();
cout << "Read 1000 times: " << (t1-t0) << "[ms]\n";
} catch ( const cl::Error& err ) {
cerr << "OpenCL error " << err.err() << " :" << err.what() << endl;
}
ATI Stream SDK 2.2 / ATI Radeon HD5450 DDR2-512MB での結果:
Write 1000 times: 11766[ms]
Read 1000 times: 5313[ms]
ほほー、書き込みは読み込みの倍以上の時間がかかるですね。
ホスト-デバイス間のメモリ転送(特にホスト→デバイス)はパフォーマンスを落とすのか。
かつてやった、とっても怖いVisualBasicのお話。
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim constr As String = "なんか接続文字列があると思ってv"
Dim getTb As New DataTable
Using sqcm As SqlCommand = New SqlConnection(constr).CreateCommand
sqcm.CommandText = "select * from hoge"
Using myad As New SqlDataAdapter(sqcm)
myad.Fill(getTb)
End Using
End Using
End Sub
End Module
これのusingが終わった時、実は、生成されていたSQLConnectionが破棄されずに残ってしまう、という現象が起きたの。かなり、かなり、当時、悩んだ。
実はここにその答えがあって、
Using ステートメント (Visual Basic)
http://msdn.microsoft.com/ja-jp/library/htd05whh(v=VS.100).aspx
resourceexpression
必ず指定します。resourcetype の要件を満たすシステム リソースを参照する変数または式です。2 番目の構文を使用する場合は、制御を Using ステートメントに渡す前にリソースを取得する必要があります。
と書かれている2番目の構文、がさっきの10行目の構文。つまり、Usingに使用する前に必ずリソースを取得しておく、ってところがミソ。
Imports System.Data.SqlClient
Module Module1
Sub Main()
Dim constr As String = "なんか接続文字列があると思ってv"
Dim getTb As New DataTable
Using sqcon As New SqlConnection(constr)
Using sqcm As SqlCommand = sqcon.CreateCommand
sqcm.CommandText = "select * from hoge"
Using myad As New SqlDataAdapter(sqcm)
myad.Fill(getTb)
End Using
End Using
End Using
End Sub
End Module
こうすれば、usingステートメントで綺麗にオブジェクトは破棄されまする。
ちょっとした事なんだけどね。
Usingって聞いて、ちょっと、思い出した。
これが意外と使えたw
インテリセンスもちゃんと働くし、HTMLをセットにしたらちゃんとデバッグできたし。
eclipseプラグインのaptanaをつかってたんだけどeclipseマシンは非力だからちょっと重くて。
VisualStudio2010は専用環境(Windows7 64bit)をHyper-V上に構築してるから動作も快適で、スムーズ。
最初からここでやれば良かったorz
‘nowrap’属性を旧式の属性として扱っています。新しい属性仕様で構成する事をお勧めします。
だって。
ExpressionWEB4でHTMLサイトを作っていた時のお話。
まぁnowrapに限らず、時々、ときどぉき、叱られてしまうんだけれども、そもそも、WWWコンソーシアムって何ぞ?とおもって、この単語でぐぐってもびんぐっても答えはズバっと参上!してくれない(三味線BGM付き)
なので、ここは、素直に?「www Consortium」でぐぐってびんぐることをおすすめ。
探し求める答えは、
World Wide Web Consortium (W3C)
http://www.w3.org/
ここにあるから。
このサイトを1巡するだけで相当情報を得られるので、WEBサイト構築している人は知っておくといいかも
using ステートメント
の利点は、Dispose メソッドを確実に呼んでくれるということなんだと思う。
だから、極端な話、Dispose の実装が空っぽなら、アンマネージリソースは解放されない訳です。
もちろん、そんな実装しちゃダメなわけだけど、using ステートメント使っているから後始末が完璧って思っていると、ときどき痛い目にあったりするので、 MSDN ライブラリみたり、クラスの仕様書みたりした方がいいかもしんない。
作った人が、どういうつもりで作っているのかわかったもんじゃない。
ケント ベック
ピアソンエデュケーション
発売日:2003-09
「テスト」という単語から様々な誤解をされがちの「テスト駆動開発(TDD)」について、その根底に流れる思想からテクニックまで開設した入門書。
著者はまず第一に「TDDは「設計・開発手法」であり、決してテスト手法ではないということをあげています。そしてTDDを行うことで「ストレス」の少ない開発が行えると謳っています。
実際に本書では、Moneyクラスの実装、xUnit(テスティングフレームワーク)をTDDで行っていく様子が解説されているので、まずは自分の得意とする言語で写経してみることをお勧めします。
(私の場合、xUnitについては手元ですぐ動かせるという理由でVBScriptで実装してみました。)
また、Amazonのレビューでは翻訳がいまいち、という評価がちらほら見られますが、私はそれほど違和感なく読み進められました。おそらくコードを中心に見ていたので、気にしていなかったのかなと思ってます。
とにかく、TDDをやるなら一度は目を通すべき本だと思います。
※ブクログより転記
作成したVBSUnitは↓からダウンロードできます。(まだ途中です)
微分の性質
本項では微分の諸性質について確認する。これらの性質は具体的な関数の導関数を求める際に役立つことがある。

定理4 和と差の微分(加法性)
関数
に関して、
が微分可能ならば
も微分可能で、次の関係式を満たす。


定理3、定理4より、明らかに
系1 線型性

微分は線型性を満たすから、線型作用素の一種である。
定理5 積の微分(ライプニッツ則)
関数
に関して、
が微分可能ならば
も微分可能で、次の関係式を満たす。


定理3、定理4、定理5より、微分は線型性とライプニッツ則を満たすから、微分作用素の一種である。


と置くと、
である。
また、
は微分可能であるから
は連続であり、
も連続である。よって、

つまり、
ならば
であるから、


と置くと、
である。
また、
は微分可能であるから
は連続であり、
も連続である。よって、

つまり、
ならば
であるから、

(証明)
は微分可能であり、狭義単調関数であるから、
の逆関数
が存在し、
は
で微分可能であり、
である。
定理7と定理8より、

問題4
関数
に関して、
が微分可能であり、
ならば
も微分可能で、次の関係式を満たすことを示せ。

(解)定理6より、

問題5
関数
に関して、
が微分可能ならば
も微分可能で、次の関係式を満たすことを示せ。

(解)[1]
のとき、明らかに満たす。
[2]
のとき、

と仮定する。
のとき、定理5より、

[1]、[2]より、数学的帰納法により、
である(終)。
問題6
関数
に関して、
が
で微分可能であり、
が
で微分可能ならば、
の合成関数
は
で微分可能であり、次の関係式を満たすことを示せ。


(解)[1]
のとき、明らかに満たす。
[2]
のとき、

と仮定する。
のとき、定理7より、

[1]、[2]より、数学的帰納法により、
(終)。
最近に始まったことではないが、落ち着きがない。前エントリーの原因にしろ、昨日の妻からのメールにしろ、落ち着いて読んだら間違って解釈してるとわかろうものを、ススッと読んで、パパッと処理して間違っている。
今のところ、仕事ではやってなさそうなんだけど、点検し直した方がよさそう。
「そんな時間…」と言いたいが、後戻りの方が、時間食うからなぁorz
昨日か今日あたり、私から郵便が送られた人がいらっしゃると思います。
申し訳ありませんが、半分を送り返して下さい送信もと住所を書かず、切手無しで送れば、受取人支払いになるので、それでお願いします。
お手間をとらせて申し訳ありませんが、お願いします。
中さんにも、申し訳ない。
http://ja.uncyclopedia.info/wiki/%E6%A3%AE%E9%95%B7%E5%8F%AF
森長可(アンサイクロペディア)
森長可と言えば、蘭丸の兄ちゃんですな。
リンク先を読む限りだと、
ちょwww、森長可鬼畜杉www
とか思うわけです。
戦国ネタおもろい。
先日に行われたHaskell勉強会ではIOモナドの説明に入り、例題としてライフゲームが
ありました。http://gameage.blog58.fc2.com/blog-entry-1346.html
ライフゲームでは二次元のボードを用意し、1つのセルに対して周囲の八方向のセルを
チェックする必要があります。
ボードの角をチェックする場合でも、一貫性を持たせるためにボードは上下、左右が
つながっているようにすることで、周囲の八方向をチェック出来るようにしている。
そのボードの端をつなげる役割を果たす補助関数 wrap の中で剰余(Mod)を使用して
いたのですが、何故、それで出来るのか疑問に思ったわけです。
wrap :: Pos -> Pos
wrap (x,y) = (((x-1) `mod` width) + 1,(((y-1) `mod` height) + 1)
普段、私が使用しているVBやC#の言語仕様では、負数の場合 -1 mod 5 = -1 となるため
この式では成り立たないからです。
ところが、Haskellでは負数の場合 (-1) `mod` 5 = 4 となるため、反対側の位置を返す
ことが出来るわけです。
この負数の剰余について検索してみたところ、言語によって計算結果が違っています。
Modulo operation 言語ごとの一覧が書かれています。
http://en.wikipedia.org/wiki/Modulo_operation
■ C,VB,Java,JavaScript,VBA,Go (Dividend)
10 % 3 = 1
10 % -3 = 1
-10 % 3 = -1
-10 % -3 = -1
■ Perl,Ruby,Python,Lua,Haskell (Divisor)
10 % 3 = 1
10 % -3 = -2
-10 % 3 = 2
-10 % -3 = -1
※言語によっては両方に対応しているものもある。
負数の割り算が割りきれない
http://materia.jp/blog/20050803.html
剰余演算子の振る舞い
http://d.hatena.ne.jp/kazusato77/20080121/1200871085
負の数 余り 剰余系
http://oshiete.goo.ne.jp/qa/4051557.html
お仕事がドタバタしたり、子供が生まれたり、家買ったり
色々とあって1年以上もほったらかしに・・・(汗)
仕事で色々憂鬱になる事がありましたが、結局自分がプログラム・システムを作る
理由って何だろうと考えたら答えは単純でした。
「プログラムを作るのが好きだから」
これに尽きるようです。会社が同僚が、先輩がと思うより
「まだ知らない技術を知ろう!」
と思い今日の更新に至ります。1日1投稿を目標に頑張ります。
さて、本題です。
今はASP.NET(VB)を使って開発をしてます。
継続案件なので主に改定なんですが、これがまた今までやってきたクライアントの
アプリとは一味違う!w
Windowsアプリだったらすぐできるのに・・・とか思うことがいっぱいです。
そして今日新たに発覚した問題が2個あります。
1.ボタンを連打すると「ただいま沢山のユーザーが接続・・・」みたいな現象がでる。
2.検索条件にタグなどを入力すると落ちる・・・
(そんなに多くのユーザーが使わない+世間一般に公開されているわけではない)
上記理由からあまり大きな問題は起こっていないようですが、これらは普通大きな問題では・・・
とおもいます。今回お客さんの担当者に上の2点をテストしてね。と言われたようです。
さてさて、どうしたものかOrz
1はJavaScriptでフラグ的なものを付ける。がありますが、サーバー側でどうチェックするのだろうか^^;
今日色々ググってみたが答えは見つけられず(´Д⊂
2はWebアプリ(IIS?)の設定でリクエスト受信時にエラーにしているようなので「まだ」マシかと思いました。
これを防ぐにはやはりクライアントでチェックするしかないのかなぁと思ったりします。
Webアプリを作るのにはもっと知らなきゃいけない事がありましたね(汗)
久しぶりにCDとか見にいったとです。
「お、懐かしー、このCD再発されたんだ」とか思って、手にとって見てみると、『ボーナストラック10曲追加』。
……。
いや、あの、これって、もともとは6曲しか入ってないアルバムなんですが……。
ボーナストラックの方が多いだろと。もう、それならいっそ新譜として出せと。
やまだです。相変わらず投げっぱなしの前文です。
ふんっ、Tech・Ed なんか行けなくたって、悲しくなんかないもんっ、と虚勢をはる今日この頃だったりします。
で、前月の続きなんですが、ちょっとコンスタントープールをざっくり解説など。
……とはいっても、基本的に「その他のデータ(その1)」なんですよね。雑多なデータの集まり。
#やっぱり図が前月の使い回しですw
では先頭のエントリから見ていきましょうか。CONSTANT_Methodref、これは文字通りメソッド定義です。
で、その構成要素が、10 と 25。じゃあ、10番目は何かというと CONSTANT_Class、クラスですな。25番目は Constant_NameAndType つまり名前と型。
要するに、コンスタントプールのメソッド定義は、それが属するクラスと、名前と型から成っていますと。
で、この 10 番目のエントリ CONSTANT_Class にはデータとして何が入っているかというと、31。31番目を見ろということになります。
そこにあるのは CONSTANT_UTF8、つまり UTF8 形式で文字列が入ってます。じゃあ他の文字コードにも対応しているのか、ということになりますが UTF8 以外のタグは(少なくとも公式では)定義されていないようです。
で、その中身は、java/lang/Object これは、java.lang.Object クラスってことですな。なぜかパッケージのセパレータ文字が変わってたりします。
25番目の NameAndType を見ると、さらに 17 番目と 18 番目を見ろと。それぞれはやはり文字列。前者がメソッド名を示し、後者が型を示します。
ということで、このメソッド名は <init>。これはコンストラクタの内部名です。これと衝突しないように、Java では <init> メソッドは予約語扱いでソースコード上では記述できないようになっています。同様に、クラスの初期化メソッドは <clinit> という内部名になります。
で、型は ()V。()内に何もないので、引数はなし。()の後にあるのが、返値の型でVは Void を表しています。
では、引数がある場合はどう表現するんだと。その場合は22番目にあるような形になります。[ は配列を表し、Lはその後;までクラス名がつながります。
という形に、一か所からずるずるとその他の情報がぶら下がっている形になっているわけです。
というわけで、命令側からは一か所指定しとけば、そこからいくらでも必要な情報は辿っていけるということになるわけですが、今回はこの辺で。
#えーと、ある意味今更な解説なので、今後続くかどうかは、私の気分と、誰かからクレームがつくかどうかで決まります?
では。
高木浩光@自宅の日記 - 三菱図書館システムMELIL旧型の欠陥、アニメ化 - 岡崎図書館事件(7)
少し前に話題になった「岡崎図書館事件」に絡んで高木浩光氏が書いた記事ですが、事件のことを抜きにしても、WebアクセスとDBアクセスの関係が非常にわかりやすくFlashアニメで表現されています。(個人的にはコネクションプーリングの説明が秀逸だと思います。)
楽しかった Tech・Ed 2010 も終わってしまいました。
そこで、
Tech・Ed 2010 のおもひで
と題して、いくつか書きます。
思い切り内輪ネタな気もしますが、わかる人はわかると思います。
・船外パーティーで、S さんと密約を結んだ気がするが、どんな内容だったのか思い出せない件
・横浜勉強会に参加できなくて本当にごめんなさい。期間中、この件で何度チクチクいじめられたことか・・・の件
・Tさんお勧めのアイスモナカが食べられなかった件
・関内二郎の汁なしを食べる機会がなかった件
・Twitter のあの人は、この人だったのかっ!、という人が2桁もいた件
・Poken で誰もハイホーしていなかった件
・ドヤ顔の貴公子に「お前には何も教えん」と言われた件
・噂のSさんのツメを見ることができた件
・そこいら中に、兄者がいる件
・I社の社長は、見た目だけ外国人じゃないかと思った件
・わふー、な件
・Nさん絶賛リバウンド中の件
・Hさん来年は、爽快バブシャワーの MVP になると思う件
・実は、MS兄者は見た目ほどリア充ではない気がする件
・開発者系の人気伝道師さんが、雲の上の人になってしまった件
・ユンケルタワーが部室に2回も出現した件
・スピーカー弁当を、3度目にして初めて食べることができた件
・テーブルがお腹につっかえて使えなかった件
・平成なのに明治維新を迎えた人がいた件
・ビジュアルに問題のある、ビジュアルデブ系な人々の件
以上、何しに行ったんだ、というくらいに技術系の話題がない件
まぁ、ふつう、DVDディスク入れたら再生してOK、とか思うじゃない?
ところがね、うごかんかったのよorz
「ディスプレイの解像度を低くして、色数を減らしてみてください」的メッセージをだしまくって。600×800で16bitカラーにもしたのに同じメッセージ。これ以上低くならんっちゅうのorz
そりゃOSはWindowsXPのSP3、メモリは1Gの非力PCだけどさ。
色々と悩んだ結果、そのメッセージをさくっと無視して(笑)、DVDを再生するためのPC環境について勉強。真夜中なのに。
結局、DVDとか再生するには、コーデック(Codec)っていう仲介屋さんみたいな役割のライブラリというかフィルターが必要で、こいつがPCにいてくれないと、Windows Media Player さんは「あ、これ再生するね」となってくれないらしい。
今回の目的のDVDは
Browse GPL MPEG-1/2 DirectShow Decoder Filter
http://sourceforge.net/projects/gplmpgdec/files/GPL%20MPEG-1_2%20Decoder/
を入れることで解決した。
Windows Azureを使っていると
【重要】Microsoft Online Services の請求書が発行されましたのでご確認ください
というメールがmsonlineservicesteam@microsoftonline.comから飛んできます。
ほとんど使っていないので無料枠に収まっているので怖くありません。Microsoft Onlineのページに接続して確認してみましょう。

[オンライン請求書/納品書の表示]をクリックしてみましょう。
[利用回別の詳細]をクリックすればどのような課金対象の動作をしているかが分かります。
Windows Azureコンピューティングがほとんどのようですね。HelloAzureサンプルを動作させた結果のようです。
[Windows Azure 利用料金]の方をクリックすると次のような表示になります。12+24で36な気もするのですが使用量は17となっていますね。なぜなんでしょう。

西xx,東xxという地名は至る所にあるのですが、命名のルールに基準はありません。当初はそれなりの理由があったのでしょうが、今見ると、適当に映ります。
神戸市に東灘区がありますが、字面からは、「灘地域の東」とよめます。しかし、「灘地方」とは、神戸東部、芦屋、西宮、西尼崎の一体です。
もともと、「灘区」が存在していて、本庄村他を合併するとき、「灘区」の東ということで「東灘区」にしたようです。
安易なネーミングは、後日混乱の元になるのは、プログラムにも通じるものを感じます。原住民には馴染みがあり、誤解することはありませんが、他の地域の人のなかには、誤解する人もいるそうです。
誤解といえば、「上越市」に行くのに「上越新幹線」を乗った人がいるらしいです。
こんなのもあった。
大東西中の先生に言いたいことは
香西東町 ,香西西町,東葛西 西葛西 なども、「香西」「葛西」が大きくなったので、その地点を中心に東西南北を冠にしたのでしょうが、ややこしい。
「北広島市」は北海道...
大東市と東大阪市も、大阪市の東の意味..でも「大東文化大」は東京。
「西東京市」も最近できましたが、....
東西南北さんと書いて、「よもひろさん、ひがたさん」と読むらしいです。
字面はヤヤコシイですが、日常生活に支障がないのは凄いことだと、妙に感じる次第。
(*)以前類似のエントリーで「西中島南方」のコメントを頂きましたが、まさに安易。
ひさしぶりの茶ネタ。
今年の夏休みも終わったです。明日からおしごと、行きたくないよぅ...
わんくま同盟横浜勉強会、たくさんのオーディエンスに集まっていただきました。
懇親会も盛況でした、ホントありがとうございます。
勉強会当日夜行バスで岩手からすっ飛んで来てくれた兎さんに
何のお相手もできなかったので、今日のお昼はおもてなし。
つーてもいつものごとく茶ぁ買って茶ぁしばいただけですが。
昼飯はネタ度の高い梅蘭やきそばなどを。
兎さんの茶買い出しツアーのついでに僕もいくつか手に入れて、
その中の一つ:福建青茶「白牙奇蘭」

岩茶に仕立てたものもありますが、こいつはゆるく丸めたタイプ。
福建の茶らしく、鉄観音あるいは黄金桂系の香味です。
ぁー、ひっさしぶりに真面目に茶淹れた。ウマー
Visual StudioでのWindows Azureアプリの作成から発行までの流れを作成しました。
「Hello Azure - はじめてのAzureアプリ作成」
C#を選んでViewを追加しようとすると
ViewエンジンにRazorが選択できます。
VBを選んでViewを追加使用すると
Viewエンジンは従来のaspxのままです。
orz
最近、休みの日は美味しいおやつ(あえてスイーツ(笑)とは言わない)を食べながら仕事するのが定番。
スタバも家から100メートル以内にあるので、割と素敵な環境です。
土日でも結局仕事してるのがあれですが。。
今年もTechED参加してきました。
昨年は80%位BOFに参加していたのですが、今年はテクニカルセッションとハンズオンをメインに受講しました。
特に来年早々提供されるWindows2008R2SP1についての新機能「DynamicMemory」と「RemoteFX」についての情報収集が一番の目的でした。
今回は特にこの2つについて簡単に書いてみたいと思います。
ちなみに両方ともHyper-V関連の新機能になります。
まず「DynamicMemory」についてですが、2008R2 RTMではゲストOSで使用するメモリは、初期に設定したメモリ容量を固定的に使用していました。
たとえばメモリ2GBづつ割り当てたゲストOSを4つ起動した場合、ゲストOSを起動した時点で2x4の8GBのメモリが物理的に確保されます。(実際には+α少量)
ゲストOSの使用メモリ容量を変更するためには一度ゲストOSをシャットダウンし、設定の変更を行います。
これに対しDynamicMemoryでは、メモリの設定を「スタートアップ」と「最大」で設定します。①
この設定でのメモリ動作は、「スタートアップ」に設定した容量で起動し、「バッファとして予約しておくメモリ」で設定したメモリ確保条件に合わせて、不足分のメモリを自動的にわりあて追加していきます。
上記の例では残りメモリが768mbの20%に当たる153mbより少なくなった場合、動的にメモリが必要最低限のサイズだけ追加されます。(hot-add)
そこで気になるのが動的に追加されたメモリが不要になった場合にどうなるのかです。
ゲストOS上では、再起動するまで見た目(ゲストのタスクマネージャ等)で減ることはないのですが、実際にはホストOS上で管理され、未使用分はホストOSで確保し他のゲストOSで使用することが可能になります。(バルーニング)
といったメモリ管理を行うため、メモリ容量がネックになっていた環境ではDynamicMemoryを使用することにより、より多くのゲストOSを起動することが可能となります。
※正確には「可能な場合もあります」になると思います
といっても実際には物理メモリ以上を使用することはできません。
細かく書くと、ゲストOSが実際に使用しているメモリ量の相和+ホストOSのメモリが物理メモリを超えることはできません。
そのためやはりメモリのサイジングは重要です。
おすすめはやはり物理クライアントの計算方法と同じく、必要量の相和メモリを搭載することですが、落としどころは各ゲストOSの平均メモリ使用量+αといったところでしょうか。
続いて「RemoteFX」についてですが、RDS接続の際にホスト側のGPUを使用し、描画を拡張するものと、USBをリダイレクトする「RemoteFX USB Device Redirection」があります。
機能を有効にするためにはゲストOS側で「RemoteFX 3Dビデオアダプター」を追加します。
また、ホストOSには役割の追加でRemoteFXをインストールしておく必要があります。
後は接続にしていくクライアントがWindows7でSP1が適用済である必要もあります。
ここでは使用感についてのみ説明します。
私自身RDSを使用してWindows7を動かしていますが、メディアリダイレクト以外で特に3Dに関しては実用的ではないと感じていました。
しかし今回のRemoteFXではそれを払拭するほどのレスポンスを提供してくれます。
ローカル環境ではありますが、ExpressionBlendなどを使用したSilverLight開発などもできます。※実用的という意味で。
USB Device Redirectには複数のRDS接続クライアントに接続されているUSB機器を複数同時に扱えます。
ということですでに告知済ですが次回の勉強会でこのあたりをデモしたいと思います。
http://heroshima.jp
※あんまり書くと当日のネタがなくなるので、詳細はまたそのうちにしておきます。
といった2つの機能がWindows2008R2SP1の拡張における大きな機能です。
本当にSP1の提供が待ち遠しいです。
また去年と同様であれば期間限定でTechEDの資料・ムービーが公開される可能性があります。その際はT2-301,T2-401を参照するとよいと思います。
Windows Azureへの登録方法はクレジットカードが必要な事もありわかりづらさが不安に感じて途中でとまっている人もおおいんじゃないでしょうか。
また、MSDN特別導入プランはAzure Service Developer Portalから登録をしようと思うと登録を開始するところまでたどり着くのも難しいと思います。
Tech Ed 2010 Japanにいったときに担当の方とこのあたりをディスカッションさせて頂けたので、MSDN特別導入プランもわかりやすくなって、このコンテンツの内容が時代遅れになるといいなーと思います。
Windows Azure SDKをいれて「管理者として実行」で立ち上げたVisual StudioのプロジェクトでWindows Azure クラウドサービスを新規作成してIDEで実行すればDevelopment Fablic ServiceとDevelopment Storage Serviceを使ってローカル実行できます。
![image4[1] image4[1]](http://hatsune.wankuma.com/other/WLW/2010/WindowsAzureVisualStudio_9261/image41.png)
このとき、例えばWindows 7では、ローカルサービスとして次のサービスが事前に起動されている必要があります。
- SQL Server Express
- SQL Server Browser
これらのサービスが起動していないとDevelopment Storage Service(開発ストレージサービス)が起動できずに次のようなメッセージが表示されます。

ためしに次のように開発ストレージサービスの起動を行わないようにしたらどうなるでしょうか。

起動は始まりますが、開発ストレージサービス(127.0.0.1:10000)への接続がタイムアウトするまでまたされ、接続タイムアウト後も次のようなエラーが発生してブラウザに表示が行われません。
「SQL Server Express」と「SQL Server Browser」を起動した状態で、「開発ストレージサービスの起動」をTureにしてVisual StudioのIDEで実行を行えば次のような手順が内部的に実行されて、ASP.NET WebロールのDefault.aspxがブラウザ上に表示されます。
