タグ

C#に関するmoritataのブックマーク (45)

  • C# で、同じソースコードから常に同じバイナリを生成する

    昔、gist にだけ置いてて、そういえばブログに書いてなかったものを思い出したので書いておくことに。 (一応、部分的には言及したことがあるんですけど、ちゃんとした話はしたことがなかったはず。) 決定論的ビルド 3年くらい前まで、C# コードをコンパイルすると、ソースコードを一切書き換えていなくても、生成結果の exe/dll や pdb のバイナリが変化していました(決定性(deteminism)がない)。 原因は以下の2つです。 バイナリ中に埋め込まれる GUID にタイムスタンプと乱数から生成される値を使っていた デバッグ用のファイル情報がフルパスで埋め込まれていた GUID の方はタイムスタンプと乱数なので当に致命的で、ローカルで再コンパイルしても毎回バイナリが変化していました。 フルパスの方は基的には pdb (デバッグ用シンボル情報)だけの問題なんですが、 exe/dll で

    C# で、同じソースコードから常に同じバイナリを生成する
  • Kubernetesでステートフルなゲームサーバを動かした思い出

    とあるスマートフォン向けMMORPGプロジェクトで、アプリケーションサーバをほぼすべてGKE(Google Kubernetes Engine)に乗っけて動かしていました。 このゲームは、モバイル向けながら、複数プレイヤ間でそこそこリアルタイム性の高い同時プレイができるものでした。同じフィールドを誰かが歩けば、自分が見ている画面でもほぼ同時にそいつが歩いて横切っていく、同じ敵と皆で一緒に戦えば、誰かが繰り出した攻撃が参加者全員の画面に即同期される、もちろんチャットもできる、そんな具合です。今ではさほど珍しくないのかもしれませんが、PCのオンラインゲームのような機能を搭載した、リアルタイム性の高いモバイルゲームでした。 さて、こうなってくると、オーソドックスなWebサーバのような、HTTP/1でリクエスト/リプライを捌く、というサーバだけでは要件を満たすことができません。 複数プレイヤ間で

    Kubernetesでステートフルなゲームサーバを動かした思い出
  • C# と Polly を使って回復力の高いアプリケーションを書く - しばやん雑記

    昔のように高い信頼性を持つオンプレのハードウェア上で動いていたアプリケーションとは異なり、昨今のクラウド上で動いているアプリケーションは障害が発生する前提でコードを書く必要があります。クラウドのハードウェアは毎日どこかで壊れるので、それを前提にソフトウェアで高可用性を担保しているわけです。 最近は Microservices の流行もあって 1 つのアプリケーションを構成するコンポーネントが増えているため、実装によっては 1 つのコンポーネントで発生した障害が全体に波及してしまい、アプリケーション全体が停止してしまうこともあり得ます。例としてよく挙げられるのがリコメンド周りでしょう、リコメンドサービスの障害でアプリケーション全体が落ちてはいけないのです。 今のアプリケーションは障害時には敢えてサービスレベルを下げてでも、全体としての可用性を維持することが必要です。そして復旧時には人の介入な

    C# と Polly を使って回復力の高いアプリケーションを書く - しばやん雑記
    moritata
    moritata 2019/01/04
  • 引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita

    この記事は C# その2 Advent Calendar 2018 の第一日の記事である。 はじめに この記事では、主にエンタープライズアプリケーション(SI、企業向けの業務システムやパッケージ製品)の開発に於いて、新規開発ではなく修正や拡張を行うようなシーンを想定して、無駄な工数をなるべく削減すべく自分なりに考えて実践しているベストプラクティスを書いている。 新規開発の場合でも、将来の拡張や修正が見込まれるはずなので、考慮すべき事は同じだ。 競技プログラミングや、組み込み開発の場合でも基的な考え方は適用可能だが、メモリ効率やパフォーマンスを考慮する必要もあるので、あえて配列を使ったり、逸脱するようなケースもあるだろう。 対象とする読者層は、C#プログラミング歴1年以上、SIer やユーザー企業に所属(もしくは常駐)し、特に複数人チームでの開発に携わる若手プログラマ、初級から中級へのステ

    引数の型を何でも List にしちゃう奴にそろそろ一言いっておくか - Qiita
  • Microsoft Quantum Development Kit および量子プログラミング言語Q#の解説 - Qiita

    Microsoft Quantum Development Kitって? Microsoftの量子プログラミング用のフレームワーク 今週(12/12)リリース 後半のスライドは長いのでスライドモードで見ない方がいいかも 内容物 量子プログラミングを行うための環境一揃い 量子プログラミング言語 Q# シミュレータ デバッグ(Visual Studio拡張) (量子コンピュータの実物はまだ) 量子プログラミング言語 Q# 量子コンピュータのコントローラ用言語と考えると分かりやすい 量子プログラミング言語 Q# 量子ビットを操作する量子デバイスに(古典コンピュータの)コントローラを接続して制御する 量子プログラミング言語 Q# コントローラは量子デバイスに対し,命令を送ったり測定結果を受け取ったりする 量子プログラミング言語 Q# コントローラの動作をプログラムすることで量子プログラミングする→

    Microsoft Quantum Development Kit および量子プログラミング言語Q#の解説 - Qiita
  • 日本にchokudai先生以外に乱数を力説できる人は限られている

    Imagine Cup 2008のアルゴリズム部門で世界3位のchokudai先生ならVimにrand()とsrand()の必要性を力説してくれるはずだ。 あとは数学バカとかセキュリティエンジニアも力説できる? その筋の人ならbramを説得できるはずだ 残念な事にchokudai先生はVimを使ってない。 我々はchokudai先生を早急にVimワールドに引きずり込むべきだ。 vimmer「Vim使ってみませんか?おすすめのエディタです」 chokudaiVim?Visual Studioで間に合ってま〜す」 vimmer「vimプラグインのomnisharp-vimを入れたらVimでC#書けますよ」 vimmer「中でもおすすめなのがShougoさんのVimプラグインです。これがあれば暗黒の力が簡単に手に入りますよ」 vimmer「neobundle.vimを入れるとプラグイン管理が

    日本にchokudai先生以外に乱数を力説できる人は限られている
  • neue cc - ZeroFormatter - C#の最速かつ無限大高速な .NET, .NET Core, Unity用シリアライザー

    (現状は)C#専用の、新しいシリアライズフォーマットを作りました。アセットストアには置いてないんですが、GitHubで公開しています。ReadMeが超書きかけですが明日ぐらいには全部書き終わってるはず……。 neuecc/ZeroFormatter 特徴はデシリアライズ速度がゼロなので、真の意味で爆速です。そう、無限大高速。 嘘くせー、って話なんですが、実のところこれは類似品があって、Googleの出してるFlatBuffersと基的な考えは同じです(他にCap'n Protoというのもあります、こっちも元Googleの人ですね)。デシリアライズ「しない」から速い。つまるところ必要になるときまでパースを先送りするってことです。これは、アプリケーションの作りにもよりますが非常に効果があって、例えばデカいマスタデータをドバッと取得するなんてときに、その場で必要なデータってその巨大データのごく

  • Unityゲーム開発でVisual Studioを使わないと損する3つの理由

    Unityゲーム開発でVisual Studioを使わないと損する3つの理由:無料のCommunity版でC#コーディングを超高速に マイクロソフトでは、Visual Studio向けの無償の拡張機能として「Visual Studio Tools for Unity」(以下、VSTU)を提供している。ゲーム開発の分野でシェアの高い「Unity」と「Visual Studio」を連携させるVSTUによって、開発者は標準のUnityと比べて、より生産性の高い開発環境を実現できる。2014年11月に公開された無償の「Visual Studio Community」では、VSTUの利用が可能となっている。そこで、あらためて「Unity」でのゲーム開発に「Visual Studio」を活用するメリットについて、日マイクロソフトのエバンジェリストである大西彰氏に聞いた。 無償のVisual Stud

    Unityゲーム開発でVisual Studioを使わないと損する3つの理由
  • 社会人10年目から始める競技プログラミングのすすめ - kuuso1のブログ

    これは、Competitive Programming Advent Calendar 2014の17日目の記事です。 競技プログラミングという世界を知って1年がたちました。結構飽きやすい性格の自分が1年ほどコンスタントに参加するという充実したプロコン(プログラミングコンテスト)ライフを送ることができた記念に、これからプロコンに参加してみようという方向けの記事を書かせていただきます。CPAC2014参加諸氏のような技術的に高度な内容は残念ながらなさそうですが(書けるものなら書きたい)、10年目エンジニア的視点で自分が感じたことを踏まえて「これはいいものだ」と思えたところなどを中心に振り返ることで、なんとかタイトル詐欺を回避したいと思います。中盤はお目汚し感が強いかも。。 経緯や参加したプロコンなど 半導体関連のメーカーで開発の仕事に従事していますが、2012年に職場都合で富山県に引っ越すこ

  • 非同期処理の基礎知識

    CPUとかOSレベルな話から」という意味で「基礎知識」。べたに、「『こう書け』とだけ言われても、中の仕組みを知らないと納得いかないですよね」という話。 CPUの構造がどうとかいう話だけとか、OSスレッドの話だけとか、I/Oの話だけとか、個別にはちらほら見るものの、非同期処理って観点からこの辺りを通して説明してる資料って少ないなぁと常々思っていたので。「こう書いた方がいいよ」事例サンプルはC#ですけども、他の言語、他のOSでも通じる話だと思います。 ぶっちゃけ、C# 5.0のasync/awaitを使うとほとんど内部で解決してくれるような話ではあります。ただ、もちろん、「async/await使えば同期っぽく書けるといっても、非同期特有のはまりどころにははまるでしょ?」といわれるとその通り。でも、じゃあ、非同期処理を避けれるかというといまどき無理な話で、「非同期処理が避けようないんだったら

    非同期処理の基礎知識
  • EvernoteのAPIまとめ - .h2oのお気楽日記

    最近なにかまとめる時はEvernoteばっかり使うようになってた。 それにともなっていくつかやりたい事、作りたい物のアイデアが出てきたのでAPI情報をメモ。 (残念ながらJavascriptAPIを利用するのは難しそう) ホームサーバーで動かす事を想定するとrubyあたりで作成するのが有望かもしれない。 コマンドライン http://www.evernote.com/about/developer/win_scripting.php これだけでも結構出来そう。 C# http://htakeuchi.offtheball.jp/archives/2620 iPhone Evernote APIを使うiPhoneアプリの作りかた - the time ship ruby Evernote APIを使ってアプリケーションを作る例 (Ruby) - Masatomo Nakano Blog

    EvernoteのAPIまとめ - .h2oのお気楽日記
  • 「数年後のゲーム開発はこうなる」CESAがゲーム開発技術ロードマップを発表

    「数年後のゲーム開発はこうなる」CESAがゲーム開発技術ロードマップを発表 編集部:aueki コンピュータエンターテインメント協会(CESA)は,将来的なゲーム開発技術の動向予測をロードマップとしてゲーム開発者向けに公開した。将来的なゲームの展開と密接に関連してくる部分なので,ちょっと取り上げて紹介してみたい。 ロードマップは,プログラミング,ビジュアルアーツ,ゲームデザイン,サウンド,ネットワークという5種類の分野に分けて記述されているのだが,細目も多く,興味深い内容も記載されている。 プログラミング系では,従来の一般的なCPU向けの処理系以外に,並列処理用の言語やシステム(CUDAやOpenCLなど)が入ってくるとの予想。まあ,現状のグラフィックスハードウェアの傾向から見ると,次世代のハードウェアでは当然のように利用されるのは間違いない。 主力言語は,C++からC#やJavaに移行す

  • オープンソースのライブラリ「SDL.NET」で始める ゲームプログラミング ~前編~

    SDLはオープンソースで開発されている、シンプルな構成のマルチメディアプログラミング向けライブラリで、その手軽さから多くのプログラミング言語向けに様々な実装が存在しています。その中から稿では、「SDL.NET」というSDLの.NET Framework向け実装の一つを、ゲームの実装例を交えて紹介します。 はじめに SDLというライブラリをご存知でしょうか。「SDL(Simple DirectMedia Layer)」はオープンソースで開発されている、シンプルな構成のマルチメディアプログラミング向けライブラリです。手軽さから多くのプログラミング言語向けに様々な実装が存在しています。 その中から稿では、2回に分けて「SDL.NET」というSDLの.NET Framework向け実装の一つを紹介しようと思います。SDL.NETはSDLの機能をほとんど内包しているほか、全体がクラスとしてほどよ

    オープンソースのライブラリ「SDL.NET」で始める ゲームプログラミング ~前編~
  • Gaming

    Game development tools and resources Games are the fastest growing category on all Microsoft's platforms. Building great games that attract players and keep them engaged can be tricky. Luckily all the Windows phones, tablets, and desktops run the same software—making it easier to develop compelling, interactive experiences that span all form-factors including the Xbox with Microsoft's game develop

    Gaming
  • xna/必要なソフトウエア

    2:Windows LIVE ID にサインイン。 Windows Live ID を持っていない場合は、「今すぐ登録」をクリックして新しく取得します。 3:Visual C# 2005 Express の登録をはじめる (1)自分の「姓名」を入力 (2)電子メールアドレスを入力 (3)「地域/国」が「日」になっていることを確認 (4)「勤務先会社/組織名」を入力 (5)「国/地域の選択」が「日」になっていることを確認 (6)「勤務先住所(郵便番号、都道府県、市町村区、町〜番地、ビル/マンション名)を入力 (7)「国/地域の選択」が日になっていることを確認 (8)勤務先の電話番号を入力 (9)職種を選択 (10)所属部門を選択 (11)「システムを導入するにあたっての、あなたの立場」を選択 (12)「お客様の会社または組織が保有する総PC台数」をプルダウン

  • XNA Game Studio Expressを触ってみよう!(1/4) - @IT

    前回はXNAについての概要と、XNAが誕生した背景について紹介した。今回はXNA Game Studio Expressベータ版(Beta 1)のインストール・レポートと、XNAプログラミングの初歩について紹介しよう。 1. XNA Game Studio Expressベータ版のインストール それではさっそくXNA Game Studio Expressベータ版をインストールしてみよう。「XNA Developer Center : XNA Game Studio Express (Beta) Download」からダウンロード・ページへジャンプすることができる。 稿執筆時の最新版は2006年8月末に公開されたXNA Game Studio Express Beta 1だが、11月上旬中にBeta 2が公開される見込みである。以下の内容はBeta 1に基づくものであることに注意していた

  • NEOZC - C#/環境構築

  • C#でゲームプログラム講座

    講座はMicrosoft Visual C#.NET Ver 2003 + Managed DirectXおよびMicrosoft Visual C#2005 + Managed DirectXを基準に進めていきます。 学校でとりあえずC言語を習ったんだけど、実際なんの役に立つの?と言う方はかなり多いはず。そんな方を対象にVC#とManaged DirectXを使って、ハイクオリティーなゲームを作ろうと言うのがこの講座です。もちろん、自分の好きなようにゲームが作れるようになれば、プログラムの実力も相当ついているはず。(多分…そのハズ…) 妙に学生向けな感じがかなりすると思いますが、とにかく今ゲームを作りたいという方の手助けになれば幸いです。 この講座について はじめに… この講座の目標。 C#基事項 VisualC#.NETの使い方についての簡単な講座です。 細かな文法事項 : 講座内

  • C# + OpenGL - 肉とビールとパンケーキ by @sotarok

    まぁちょくちょく追い詰められつつ、ということで。 ウィンドウ生成やレンダリング部分で、Win32APIなんて叩いてられるかー!ということになり、C#を使わせていただくことになりました。(ぉ 実は、C++でWin32API叩いたり、C++/CLIのウィンドウズフォーム使ったり、それこそWinBilderとか使ったりしたけど*1(ココは笑うところですよ)、なかなかコレ!ってものが見つからなくて迷ってました。 というのも、正直ウィンドウ生成とか、研究の筋から外れる部分のコストはできる限り削減したいと思っていたからで。まぁそういうことで、C++/CLIのウィンドウズフォームアプリで作ってみたけど、コードが変態的すぎてなじめず(^ってなんだばーか!)、2年くらい前に一度手を出して挫折してて敬遠してたC#を使ってみたら、これが驚くほどしっくりきてしまいまして。コード全体が見渡せるというか、コードがも

    C# + OpenGL - 肉とビールとパンケーキ by @sotarok
  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。