全体的にわかりやすい。込み入った説明になってくると難しくなってくるけどGeometryで問題になることがよくカバーされているので知識欲が刺激される。pseudocodeもあるのでこれをもとにプログラミングするときにも一助になりそう。pseudocodeはかなり文章よりだけどね。ゲーム作るときの参考になるかなと思って購入。色々な撮影テクニックが簡潔に説明されていてわかりやすいし面白い。遠近法を勉強するのに。読んだだけだけど良い。あとは実践あるのみなんだけどその時間がなかなかとれない。久方ぶりにVirtualBox上でUbuntuを起動したところセキュリティアップデートがこんもり溜まっていたり、UbuntuのLTSが16.04まであがっていたり、またVirtualBox自体も5.2.2にあがっていたりしたので数時間かけてまとめて更新していったところ無事に本記事タイトルの状況になったのでその際の対処法を記しておく。状況としてはVirtualBoxでUbuntuを起動してもブラックスクリーンが表示され、そのまま何も起こらない、になる。screen」でGoogleするとフォーラムやらで質問している結果が出るわ出るわ。みなさん、同じ状況に陥っているらしくこれは解決は早いかなと思ったところ、ほとんどの提案は何の効果もない。accelerationがないと玉音放送をもってしても耐えがたいほどに遅く使い物にNothing。いうわけでトライアンドエラーを盲目的に繰り返すことしばし、なんの光明も見いだせないので、こりゃログでも見るしかないかなとVirtualBoxのログを見てみたところ何やら怪しい文言を発見。・・・、これじゃねーの?という勘に従いGoogleしたところドンピシャの質問を発見。extension(s):」ではなくもっと下の方にある「VERR_CR_PKCS7_KEY_USAGE_MISMATCH」が問題らしくそれのせいで「supR3HardenedErrorV」が発生している模様。/scannow」を実行し、念のため再起動してからVirtualBoxからUbuntuさんを起動したところ、先ほどまで死亡遊ばされていたUbuntuさんがついに3dブーストとともに正常起動。今回の教訓はログはすぐにチェックしろ、です。VirtualBox2016年11月9日水曜日async、await、CancellationTokenについて職場でasync、await、CancellationTokenの実装方法についてまとめたので同じ内容をまとめておく。DBアクセス部分はDapperを使用している。awaitについての詳細は下記のリンクを参照してもらいたい。日本語翻訳されていないので英語。下記のような状況ではWebサーバのパフォーマンス向上が見込めるので積極的に使ったほうが良い。awaitの非同期処理で知っておくべきことは「awaitされている処理も呼び出し元のThreadと同一のThreadで処理される」ということにある。awaitキーワードは呼び出されたメソッドを呼び出し元のThread上で必要に応じて適時処理するだけであり、新規にThreadを作成するわけではないからだ。Threads(詳細説明)つまりDBやファイルIOなどの別プロセスの結果待ちが発生する処理などでは非常に有用ではあるけれど、非同期処理になることを期待して単純に処理を二分しても実際には同一のThread上で二つの処理が適時行われるだけなので意味がないということ。awaitとTask.Runを組み合わせると良い。Task.RunはThreadpoolへ処理を投げるのでパフォーマンス向上が見込める。下記リンク先にある解説図を見ると一連の動きが良く分かるので是非参照してもらいたい。awaitキーワードの使い方が動作原理を含めて理解できたと思う。使い方を誤らなければ簡易な記述で容易にパフォーマンス向上が見込めるので使える状況では積極的に使っていくべきだとは思うけれど、ともすると処理フローは複雑化しやすく、関連する箇所全体で非同期処理を念頭に置いた実装にしなければならないので使いどころは慎重に見極めないといけない。非同期リクエストのクライアントからのキャンセル方法こここらは非同期リクエストをクライアントからキャンセルする方法を解説する。alert('処理を中断しました。alert('処理中にエラーが発生しました。}});ページ遷移時に非同期リクエストが処理されている場合は明示的にリクエストをabortしないとキャンセルされない。重たい処理などを実行する場合はキャンセル処理を実装しておくと不要な処理の実行を防ぐことによってパフォーマンス向上が見込めるので(エンドユーザがレスポンスを待たずにページ遷移してしまったとき用などに)積極的にキャンセル処理は実装したほうが良いだろう。2のバグで非同期処理中にAbortするとOperationCanceledExceptionが発生するのでそれを抑制する必要がある。下記コードをGlobal.asax.csに追加してほしい。Appなどで多量のAjaxリクエストを行っている最中にエンドユーザがページを離れてしまうとサーバサイドで行っている処理はすべて無意味になってしまうので、そのようなときのためにもキャンセル処理を組み込んでおくと良いだろう。ASP.NET2016年9月15日木曜日ユニットテストでlog4netのログを出力する方法いまさらな内容だけど備忘録としてユニットテストでlog4netのログを出力する方法を記しておく。constructorで下記設定を行っておけばユニットテストの結果Windowの下にログが出力される。Japanチヌかかり釣りMEGA(閉鎖)の開発者。企業向けのウェブまたはデスクトップアプリケーションやモバイルアプリ、ゲームなどを開発しています。ITに関する相談・質問にも答えたりしています。ご質問・ご相談などありましたらお気軽に@yoomatsuoまでtweetしてください。(1)RSS投稿Atom投稿すべてのコメントAtomすべてのコメント。