タグ

ブックマーク / nobuhisa.hatenablog.jp (7)

  • はじめての Azure "F#" Notebooks - Nobuhisa's diary

    Azure Notebooksを試してみました。*1 Azure Notebooks(Jupyter)は来、検証や実験の結果を共有したり、試行錯誤の記録を残す目的で使われることが多いのではないかなと思いますが、技術的なドキュメントを対話的に作成する際にも便利そうな予感がビシビシバシバシしています。 ということで、試しにF#の列挙体の解説ノートを作成してみました。*2 https://notebooks.azure.com/Nobuhisa/libraries/fsharp の中にあるenum.ipynbというノートがそれです。(ノート単位での共有の仕方が分からない。。) Azure NotebooksもまだPreview段階ですので突発的にUIや仕様が変わったりすることもありましたが、やはりドキュメント作成はとてもラクでした。 HTMLMarkdownでの出力もできます。PDFで出力し

    はじめての Azure "F#" Notebooks - Nobuhisa's diary
    hikazoh
    hikazoh 2017/04/13
  • 実行制限付きの並列計算 - Nobuhisa's diary

    個人的にご質問をいただいたので、簡単なサンプルを書いてみました。 「たくさんの処理を並列に実行したいのだけど、同時に走るスレッド数は制限したい」というプログラムです。 let worker (id: int) = async { System.Console.WriteLine("Worker:{0}", id) // 並列環境ではprintfnは使用しない do! Async.Sleep(1500) } [<EntryPoint>] let main argv = List.init 15 worker // 15個の処理をしたい |> List.chunkBySize 3 // 3つずつ並列化したい |> List.iter (Async.Parallel >> Async.Ignore >> Async.RunSynchronously) printfn "completed" 0

    実行制限付きの並列計算 - Nobuhisa's diary
    hikazoh
    hikazoh 2017/03/12
  • ワーカープロセスとstatic変数に関してのメモ - Nobuhisa's diary

    asp.net - IIS app pools, worker processes, app domains - Stack Overflowより: In a server you can have many asp.net sites that runs together. Each one site is an app domain. You must assign to each of them one application pool. Many application domains (sites) can have the same application pool, and because they have the same application pool they run under the same processes, and under the same acco

    ワーカープロセスとstatic変数に関してのメモ - Nobuhisa's diary
  • ASP.NET Web API でファイルをアップロード - Nobuhisa's diary

    Web API経由でファイルをアップロードするサンプルをGitHubにpushしました。 自分用の備忘録も兼ねて。。(たまにやり方を忘れる) https://github.com/Nobuhisa/FsWebApiSample メインとなるファイルは以下の2つ。 サーバ : FileController.fs クライアント : Program.fs 今回、サーバサイドではファイルを保存する際に MultipartFormDataStreamProviderを使用していますが、 例えばAzure Storageに保存したい場合は MultipartFormDataRemoteStreamProvider を継承して GetRemoteStream メソッドをオーバーライドします。 ※ BlobのストリームをRemoteStreamInfoで包んで返してやる感じ クライアントのほうは、 Mul

    ASP.NET Web API でファイルをアップロード - Nobuhisa's diary
  • F# Quiz : プロパティ - Nobuhisa's diary

    F# Advent Calender 2015の4日目の、ぐるぐるさんの記事を拝見していました。 F#のクラス(の主に定義する部分)についてまとめ - ぐるぐる~ 僕はお仕事で F# + ASP.NET MVC の組み合わせを使うことが多いのですが、やはりC#/V○前提のフレームワークを用いる時はどうしてもクラスをモリモリ使うことになってしまいます。その辺が少しもどかしい。 さて、記事の中ではメンバーの定義についてはあまり触れられていませんでしたが、F#にはプロパティの実装方法が沢山あります。そして厄介なことに、アクセスした時の振る舞いなどが異なります。でも、手のかかる子ほど可愛い。(?) そこで、ちょっとF#クイズを用意してみました。 以下の4つのプロパティ*1を評価した時に、それぞれどのような結果となるか考えてみてください。 まずは脳内のF# Interactiveで実行してみてね。

    F# Quiz : プロパティ - Nobuhisa's diary
  • Singletonパターンの「だらしない」実装 - Nobuhisa's diary

    Singletonパターンに限らず、「初回アクセス時に初期化するプロパティ」などは比較的よく実装しますよね。 これを在り来りな方法で書けば、およそ以下のようになることと思います。 type Singleton private () = do printfn "生成されました" static let mutable instance = None static member Instance = match instance with | Some x -> x | None -> let x = Singleton() in instance <- Some x ; x > Singleton.Instance ;; 生成されました val it : Singleton = FSI_0007+Singleton > Singleton.Instance ;; val it : Single

    Singletonパターンの「だらしない」実装 - Nobuhisa's diary
    hikazoh
    hikazoh 2015/12/03
  • 恐怖のおやすみエラー - Nobuhisa's diary

    F# Advent Calender 2015の2日目の記事を拝見していました。 同名の型などを定義することによって、既存の型の使用を制限する方法が紹介されていました。 使いたくない型を見えなくする #FsAdvent - 2つのアンコール ふと、 「そういえば、CompileMessage属性なんてものがあったなぁ」 と思い出したので、別パターンを書いてみました。 以下のようにすると、(1)XmlDocumentクラスがインテリセンスに表示されなくなり、(2)それでも自力でインスタンスを生成しようとするとコンパイルエラーが発生するようになります。*1 namespace System.Xml module private AA = [<Literal>] let oyasumi = """ _____ (^o^)ノ < おやすみー \⌒⌒⌒ \ \|⌒⌒⌒⌒|  ̄ ̄ ̄ ̄ ̄ """ //

    恐怖のおやすみエラー - Nobuhisa's diary
    hikazoh
    hikazoh 2015/12/03
  • 1