スキップしてメイン コンテンツに移動

投稿

2013の投稿を表示しています

.NETのシリアライズに関して

DataTableをsessionに突っ込んでいた。 Ajaxでリクエストされた処理内でそんな処理がありちょいとハマる。 Azureの場合、 session への値の格納は、 実装したコードの処理が全て実行された後に、 Azure上のキャッシュに格納しようとする為、 そこでエラると、しかもAjaxだと 検知しにくい。 ➡ Grobal.aspx.vbにロギングの処理を実装して未処理エラーを拾うべし。 未処理の エラーが発生し、クライアントサイドが通信を打ち切り 通信を打ち切られたサーバサイドがシステムエラーをはく。 エラーの場所を特定しさあ本題が待ってました。 DataTableを session に入れようとして タイムアウトになっていました。 これまでは発生しなかった現象でしたが、DataTableの容量が増えた際に発生しました。 DataTableのサイズはおよそ9M 10Mbps の回線なら、1秒で転送するはずなので、 容量が問題とは考えにくい。 色々ためした結果、 シリアライズの速度がネックなんじゃないかという推論に落ち着きました。 つまりDataTableをシリアライズするのはやたら時間がかかるという事。 結果的にほぼ同じサイズのデータがXElement または Stringの場合は、すんなり session に格納できました。 Azureのキャッシュに値を格納するためにAPIを実行すると、おそらく シリアライズしながら逐次的にAzure上のサーバに転送をしているのではないかと思う。 XElementの場合は、中身は「XElementオブジェクトとその子要素」と断定的で静的に近い形になっているため、シリアライズの処理内での判定が早いのでは? また、Stringの場合のシリアライズもほぼそのままの形なのでは? それに比べ.NETのDataTableには、行に対して動的にオブジェクトを突っ込む事もできる。 行のカラム毎に型情報を持っていて汎用的な構造になっているので、 きっとシリアライズにはもの凄く時間がかかるじゃない? っていう話でした。 ちなみに、.NETではシリアライズの方法がいくつか提供されているようです。 また、Xml形式のデータでは、値をattributeに格納すると高速化するようで

Git の メリット

1. 早い branch の作成やマージが早い。 いかに早く、branch を作って、マージするかにポイントが置かれて作られてるのではないでしょうか。 SVNで、ブランチのソースをTrunkにマージなんかすると、結構時間かかるけど、 Git だとサッといける。 2. 不完全な状態のソースを管理できる local リポジトリがあるので、 開発途中のソースを管理できます。 svn だと開発途中のソースを commit する事はもちろん出来ませんが、(branch を切るなどすれば可能だが面倒) Git だとこれが可能です。定期的に local リポジトリに commit して 完成したら、中央リポジトリに push 。 チームで開発をしていても、個人的にソース管理ができるので便利 3. GitHubなんかでソースを管理できる 気軽にソースの共有ができる。 ドットファイルなんかを管理しとけば、 会社と家のMacで同じドットファイルを楽に管理できる。 以上、3点が僕が感じているメリット。

Mac Windows7 iCloud ファイル共有

Mac と Windows7 でファイル共有をし、かつ iCloud でも共有します。 やり方としては、 Mac 上のディレクトリを共有して、Windows7 から 参照、上書きできる様にするのですが、その Mac 上のディレクトリを iCloud 上で共有して、他のデバイスからも見れる様にします。 1. Mac 側の設定  ①  System Preferences から  File Sharing を行う。システムフォルダを対象とする。  ② optionボタンをクリックして、SMBを選択し Windows からアクセスできる様にする。  ③ System Preferences から iCloud共有の設定を行う。  ④ Finder をアクティブにして、ツールバーの 「Go」を   クリックして alt を押すと Library が表示されるのでクリックする。   そうすると Library以下が見れますので、「Mobile Documents」を確認して下さい。   そこが iCloud で共有されるフォルダです。    ⑤ 次の Windows 側の設定で ④で確認した ディレクトリを Windowsと共有します。 2. Windows 側の設定   ① エクスプローラーを起動し、Mac にアクセスします。  ② Mac に繋いでも、なぜか 「 Mobile Documents」が表示されないので、下記のパスを直で指定する。    \\Macのコンピュータ名\Macのユーザディレクトリ名\Library\Mobile Documents   ※エクスプローラの検索機能で「 Mobile Documents」を検索してもOK。  ③ ②で指定したパスをネットワークドライブに設定する。         僕は、GoodReader 用のフォルダを指定して、GoodReader での共有も有効にしました。 以上で、共有の設定は完了です。

diffで改行を無視

diff で差分をみると、全行!!!変わっとる!なんて事がたまにありますが、 LFとCRLFの差分による場合がほとんど。 僕が直した変更だけである事を確認したかったのにぃ!!! そんな時は差分を無視するオプションを使ってdiff LFと CR LF の差分を無視するoption diff --strip-trailing-cr aaa.txt bbb.txt ディレクトリの差分 diff -qr --strip-trailing-cr aaa bbb infoで確認 info diff

はてなブックマークをRSSリーダーでチェック

Google Reader を使ってはてなブックマークをRSSでチェックします! ■はてブ数が10件以上の記事のみをフィード! http://b.hatena.ne.jp/entrylist?sort=hot&threshold=10&mode=rss ■はてなブログのカテゴリ毎にフィード! テクノロジーの場合 http://b.hatena.ne.jp/entrylist/it?sort=hot&threshold=&mode=rss その他のカテゴリにする場合は最後の/の後ろの「it」の部分を下記の文字列にする 世の中 social 政治と経済 economics 生活 life 学び knowledge テクノロジー it エンタメ entertainment アニメとゲーム game おもしろ fun 動画 video ■ 10件以上のはてブのテクノロジーが見たい僕の設定 http://b.hatena.ne.jp/entrylist/it?sort=hot&threshold=10&mode=rss 参考URL :  http://idejun.com/archives/3501