タグ

2020年1月23日のブックマーク (12件)

  • neue cc - MessagePack for C# 1.4.1 - JSONサポート強化, dynamic対応, Typelessシリアライズなど

    さて、題。MessagePack for C#の1.4.1をリリースしました。ちなみに表記する際 MessagePack-CSharp と呼ぶべきか MessagePack for C# と呼ぶべきかが悩ましいですね。1.0.0の時から、特に機能追加でのアナウンスをしていなかったので、一挙紹介したいと思います。かなり強化されています……! もともとToJsonだけだったのですが(MessagePackBinaryをJSON形式に変換、バイナリなので中身がわかりにくいmsgpackの中身を解析するのに便利)、FromJsonが追加されています。 // JSON文字列をMessagePackバイナリ(byte[])に変換 var msgpackBin = MessagePackSerializer.FromJson(@"{""hoge"":""foo"",""huga"":2000}");

  • TCPを利用した複数クライアント接続可能なチャットアプリケーションを作る

    ここでは、複数のクライアントが同時に接続できる、TCPを利用したクライアントサーバー型チャットアプリケーション(僭越ながら、「DOBON Chat」と命名させていただきます)のサンプルを示し、その要点を解説します。 「DOBON Chat」の実行ファイル(バイナリファイル)とソースファイル(プロジェクトファイル)は、記事の最後(こちら)からダウンロードできます。 必要な環境サンプルはVisual Studio .NET 2003で作成され、.NET Framework 1.1で動作確認をしていますが、.NET Framework 1.0でも問題なく動作するでしょう。 基的な方針.NET FrameworkではTCPを利用したデータ通信を行うためのクラスとして、TcpClientクラス及びTcpListenerクラス(共にSystem.Net.Sockets名前空間)が用意されています。こ

    TCPを利用した複数クライアント接続可能なチャットアプリケーションを作る
    ryskosn
    ryskosn 2020/01/23
  • 手続き記憶 - 脳科学辞典

    川﨑 伊織* 東北大学高次機能障害学 藤井 俊勝 東北福祉大学 DOI:10.14931/bsd.2596 原稿受付日:2016年1月24日 原稿完成日:2016年4月12日 担当編集委員:田中 啓治(国立研究開発法人理化学研究所 脳科学総合研究センター) *corresponding author 手続き記憶は、非陳述記憶のひとつで、自転車に乗れるようになるとか、うまく楽器の演奏ができるようになるというような記憶で、同じような経験の繰り返しにより獲得される。一旦形成されると、意識的な処理を伴わず自動的に機能し、長期間保存される。内容によって運動性技能、知覚性技能、認知性技能 (課題解決)の3種が区別されている。大脳基底核や小脳が中心的役割を果たす。 手続き記憶は、自転車に乗れるようになるとか、うまく楽器の演奏ができるようになるというような記憶で、同じような経験の繰り返しにより獲得される。

  • 中指と薬指の分離動作の練習法を教えて。

    トレモロはなかなかツブが揃わないですね。各指を独立させる非常に効果的な練習方法を紹介いたします。 運動生理学専門の医者であり、ピアニストでもある叔父に教わった方法です。 まず、人間の手は、「親指・人差指・その他の指」の3だというのです。 大昔から人間の日常は、粗野な仕事も細かい仕事もその3の連携で作業をしてきたので、「その他の3」の指が独立して動かすことはなかった。またその必要もなかったというのです。その結果、その他の3の指を動かす筋肉は、腱鞘という筋肉を包むさやに入れられ前腕にまとめられてしまったというのです。 そのため、指を独立して動かす場合は、楽器の練習の前にそれらの筋肉の分離独立を促すストレッチをすれば効果が高いということです。 具体的な方法は簡単です。2種類あります。 1.右腕を、床に対して水平に前方に出します。ヒジは90°位に曲げます。手のひらは天井に向けます。 2.そ

    中指と薬指の分離動作の練習法を教えて。
    ryskosn
    ryskosn 2020/01/23
    タイピングにも効果あるらしい
  • プログラマ向け!タイピング速度を2倍に引き上げる練習方法 | SiTest (サイテスト) ブログ

    タイピング速度は勉強の効率 日語とプログラミング言語の違い タイピング速度の指標 タイピング速度が向上するメカニズム 練習方法: 認識力 練習方法: 指のストレッチ まとめ 結論からいうと、写経が速くなるので勉強効率が良くなります。 また対話シェルを使ってビルトイン関数の動作を簡単にチェックできるようになり、プログラミングの作業中も効率が良くなります。 私は以前から電車内で技術書を読むという習慣付けを行っていましたが、新しい技術に対して覚えが悪いと感じていました。 自分で打ち込んで結果を確認した数行のほうが物覚えが良いのです。 プログラミング言語は黙って写経 とはまさにこのことだったのです。 しかし、わざわざコマンドを入力して確かめることはとても億劫なものです。 新しいツールやプログラミング言語のサイトにはチュートリアルがありますが、当たり前に動作する四則演算のコマンドは打ちたくありませ

    プログラマ向け!タイピング速度を2倍に引き上げる練習方法 | SiTest (サイテスト) ブログ
    ryskosn
    ryskosn 2020/01/23
    内部モデルの話、面白い
  • is、switch の拡張 (型スイッチ)

    C# 7.0 時点では「型パターン」が主だった機能だったため、 isやswitchの拡張を指して「型スイッチ」(type switch)と呼ばれたりもしました。 項では、まずはisやswitchがC# 6.0以前と比べてどう変わったかについて焦点を当てます。 例なども、主に型パターン(C# 7.0)で説明していきます。 パターン自体の詳細については次項の「パターン マッチング」を参照してください。 is演算子の拡張 C# 7では、is演算子で以下のような書き方ができるようになりました。 型を調べたい変数 is 型 新しい変数 (正確に言うとisの後ろに新たに書けるようになったのは「パターン」で、 これはそのうちの「型パターン」と呼ばれるものです。) C# 6以前のis演算子は少し使い勝手が悪い面がありました。型の一致を判定するだけならいいんですが、 型変換も絡むといまいちです。 例えば、

    is、switch の拡張 (型スイッチ)
    ryskosn
    ryskosn 2020/01/23
    is で判定してキャストもできるようになっているのか
  • .NETで名前付きパイプを試す(3) - クライアントサーバ間で送受信する - いちろぐ

    前回に続いてもう少しNamedPipeClientStreamとNamedPipeServerStreamを使った名前付きパイプを試します。 ichiroku11.hatenablog.jp 今回はクライアント側のプログラムからサーバ側のプログラムにリクエストを送ってレスポンスを受け取るようにしてみます。クライアント側、サーバ側それぞれのプログラムの動きは次のようにしたいと思います。 クライアント側のプログラムの動き サーバに接続 サーバにリクエストを送信する サーバからレスポンスを受信する サーバ側のプログラムの動き クライアントからの接続を待つ クライアントからリクエストを受信する リクエストを処理してレスポンスを作る クライアントにレスポンスを送信する これでちょっとはクライアントサーバっぽくなってくるかなと。 クライアント側のプログラム まずはクライアント側からです。ReadObj

    .NETで名前付きパイプを試す(3) - クライアントサーバ間で送受信する - いちろぐ
    ryskosn
    ryskosn 2020/01/23
  • Domain Modeling Made Functional まとめ - Qiita

    Domain Modeling Made Functional』という関数型ドメインモデリングのを読んでみた。とても面白かったので紹介したい。 はじめに 著者について 『Domain Driven Design with the F# type System』 という面白いスライドで、関数型のテクニックを使って BLOBA1 をエレガントにコーディングする技法を提案していた Scott Wlaschin という人。 おすすめしたい人 特に次のような人は、きっと面白く読めるのではないかと思う。 ふだん純粋関数型言語を使っていて計算機科学的な面での良さは理解しているが、応用範囲としては特定用途のライブラリ(パーサライブラリなど)やミドルウェアなどに留まったままで、従来オブジェクト指向が扱ってきたような、大規模&複雑なビジネスドメインでの活用がイメージしにくい人。 オブジェクト指向ベースの従

    Domain Modeling Made Functional まとめ - Qiita
  • 関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog

    オブジェクト指向言語でドメインモデルを実装することが当然のように行われていますが、Go で開発したり、Haskell で遊んだりしている中で、他のパラダイムの言語で実装するのはどうなんだろうかという想いがありました。 そんな時に出会ったのが、Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# というです。 概要 構成 ドメインを理解し、モデリングする 端的なフレーズ Database-Drive-Design や Class-Driven-Design との違い 型、型、型 関数型言語による実用例 恐怖のモナド さいごに 参考 概要 書は、とある会社の受注とその関連業務をドメインとし、モデリングして、実装していくという内容です。紙ベースで行われている業務

    関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog
  • 快適キーボード操作のためのキーカスタマイズ 〜Windows編〜 | さくらのナレッジ

    記事の後半で紹介しているAutoHotKeyの設定については、連載の第3回「快適キーボード操作のためのキーカスタマイズ 〜AutoHotKeyのキー押しっぱなし問題とScrollLockの非推奨~」もご参照ください。 はじめまして。ごまなつと申します。 ご縁がありまして、この度キーバインド設定についての記事を執筆いたします。皆さんにキーバインド設定のやり方と利点を伝えたいと考えております。 自己紹介 普段はC#と.NETWindowsアプリを作成する仕事をしています。趣味では自作キーボードや配列変更をするなど、キーボードに関することやマウスについて調べるのが好きです。 キーボードに関する不満 唐突ですが、あなたはキーボードに対して不満はありませんか?筆者は、以下のような不満を持っていました。 (JISキーボードのみ)押しやすい位置にあるがローマ字入力時になかなか使わない:無変換キー、

    快適キーボード操作のためのキーカスタマイズ 〜Windows編〜 | さくらのナレッジ
    ryskosn
    ryskosn 2020/01/23
    Windows ではずっと「のどか」を使っている。作業効率が上がることを考えたら 1,800 円は格安。 https://appletllc.com/web/nodoka.htm
  • 快適キーボード操作のためのキーカスタマイズ ~Mac編~ | さくらのナレッジ

    ごまなつと申します。キーバインド設定で快適なキーボード操作をするお手伝いをいたします。 前回のWindows編に続いて、記事ではMacのキーバインド設定について紹介します。用いるソフトはKarabiner-Elementsです。Karabiner-ElementsはmacOS Sierra以降に対応しています。Sierra未満の方はKarabinerを使ってください。 Karabiner-Elementsとは Karabiner-Elementsとは、Sierra以降のmacOSのキーボードをカスタマイズするためのツールです。Sierraからキーボードドライバの構成が変更されたため、Karabiner-Elementsが開発されました(それより前はKarabinerが開発されていました)。この記事では、Karabiner-Elementsを扱います。 キーマップの変更はもちろん可能です。

    快適キーボード操作のためのキーカスタマイズ ~Mac編~ | さくらのナレッジ
  • F#でソケットプログラミング入門 - Qiita

    F#とソケットプログラミングを勉強中なので両方を使って何か作ってみたい。 定番のEchoサーバと、コンソールで使えるチャットサーバも挑戦してみた。 Echoサーバ サーバ open System.IO open System.Net open System.Net.Sockets open System.Text [<EntryPoint>] let main _argv = let endPoint = new IPEndPoint(IPAddress.Any, 8080) let server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp) server.Bind(endPoint) server.Listen(10) printfn "server started (%s)"

    F#でソケットプログラミング入門 - Qiita
    ryskosn
    ryskosn 2020/01/23