bleis-tiftのブックマーク (1,049)

  • Optionalは引数に使うべきでない、という幻想について - ぐるぐる~

    継続渡しすると戻り値は引数になるから「Optional は戻り値にのみ使うべき」というルールは無意味だよ、という話。 あ、そういう話ね、と分かった方はこれ以上読む必要はありません。 Mono が Async + Optional + 例外という欲張りパック状態なのも問題ですが、それについてはまた今度(Mono<Optional<T>> 使わずに Mono<T> を使え、という指摘があり得る。ただ、そっちもそっちで言いたいことはある、という程度)。 今回は、 Mono は Async くらいの意図として使っています*1。 まず、こんなメソッドがあったとします。 Mono<Optional<String>> f(); これ自体は戻り値に Optional を使っているだけなので、「Optional は戻り値にのみ使うべき」は守っています。 しかし、これを使う側はそうはいきません。 例えば、値が

    Optionalは引数に使うべきでない、という幻想について - ぐるぐる~
  • 多値について本気で考えてみた - ぐるぐる~

    先日のエントリの反応として、多値の批判をしているように受け取られた方がいました。 実際には、多値の批判をしているのではなく、Go言語の「多値とそう見えるけど違うものがある」という仕様を批判したものでした。 また、タプルにこだわっているという受け取り方をした方もいました。 このエントリでは、「タプルにこだわっているのではない、多値にこだわっているのだ」ということを説明しようと思います。 このエントリで出てくるコードは言及がない限り妄想上のもので、実際の言語のコードではありません。 長いから3行で。 スタックマシンと多値は仲良し。継続と多値も仲良し。 多値は多値、タプルはタプル、みんなちがってみんないい。 多値とは、カンマで区切られた単なる複数の値だよ。妄想だけどね。 これで満足して仕事に戻っていただいて構いません。以下オマケ。 多値とタプルの違い まず、多値とタプルの意味的な違いについてをは

    多値について本気で考えてみた - ぐるぐる~
    bleis-tift
    bleis-tift 2018/11/12
    多値に対する関心のなさよ・・・
  • Go言語のイケてない部分 - ぐるぐる~

    最近色々あって仕事Go言語を使っています。 色々割り切っている言語なので、こんなこと言ってもしゃーないんですが、言語設計はミスってるんじゃなかなぁ、と思わざるを得ない点が多々あります。 使い始めて1か月くらいなので間違ったことを書いているかもしれませんので、何かあれば指摘していただけるとありがたいです。 文ではネガばかり羅列していますが、ランタイムとツール周りは気に入っています。 Goのランタイムを使う、もっと洗練されたAlt Go的なものがあるといいのに(もしくはジェネリクスのったGo2を早くリリースしてほしい)、と思う日々です。 追記: なんか意図とは違った受け取られ方をしている方もいるので追記します。 この記事はあくまで、「Go言語を学ぶにあたって躓いた点」を列挙し、まとめ、理由を考えてみる(教えてもらう)ために書いたものです。 Go言語自体はDisってますが、Go言語ユーザーを

    Go言語のイケてない部分 - ぐるぐる~
    bleis-tift
    bleis-tift 2018/11/08
    > id:sin20xx 多値をその名の通り複数の値と考えると、可変長引数関数に固定値を渡しても、残りを多値で埋めてもいいと思いませんか。多値も関数呼び出しの引数もスタックに積む値なら、自然な拡張に思えます。
  • ScalaMatsuri 2018トレーニングデイの感想。またはチュートリアルがひどかった件 - うさぎ組

    ScalaMatsuri2018というScala言語のカンファレンスに参加してきました。といっても3日間のうちの1日目(というか0日目みたいな位置づけ)のトレーニングデイというものだけですが。 最近Scalaを使っているし、Scalaユーザーにいくつか聞けたらなぁーとかちょっと勉強したいなーって感じで。 2018.scalamatsuri.org 運営の方はおそらく大変だったと思いますがいろいろ対応してくださって助かりました。 ただ、自分が参加したチュートリアルセッションはひどかったです。自分もハンズオンで教えることがあり、失敗を幾度かしてフィードバックをもらっては改善してきました。ので、今回は私がフィードバックをする番だと思いましたので、このエントリにさせていただきます。 トラックとかモチベーションについて Scala入門ハンズオンのタイムライン Implicit入門 CTO座談会 まと

    ScalaMatsuri 2018トレーニングデイの感想。またはチュートリアルがひどかった件 - うさぎ組
    bleis-tift
    bleis-tift 2018/04/13
    初心者向けハンズオンで初心者に対して「初心者わかってくれない」って言っちゃうのはありえない。来年以降はそういうことがないように徹底すべきですね。 #scalamatsuri
  • 動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD

    私はSkienaの『Algorithm Design Manual』 (訳注:『アルゴリズム設計マニュアル』 上巻 ・ 下巻 ) を読んでいました。ところでこのは素晴らしいで、連結リストと配列についてこんな比較をしていました(chapter 3.1.3)。 連結リストが静的配列に勝る相対的な長所には以下のものがあります。: • メモリが当にいっぱいにならない限り、連結構造にオーバーフローが生じない。 • 連続的な(配列)リストに比べて、挿入と削除が単純である。 • 大きなレコードを扱う場合、要素自体を動かすよりもポインタを動かすほうが容易かつ高速である。 一方で、配列の相対的な長所には以下のものがあります。 • 連結構造には、ポインタのフィールドを格納するための余計な領域が必要となる。 • 連結リストでは、要素に対する効率的なランダムアクセスができない。 • 配列は、ランダムなポイン

    動的配列について – JavaのLinkedListとArrayListを分析・比較する | POSTD
    bleis-tift
    bleis-tift 2017/03/03
    id:masaru_b_cl ランダムな挿入が遅いのは、Listインターフェイス使ってるから当然ですよ。 http://bleis-tift.hatenablog.com/entry/20090708/1246979161
  • 続・そろそろPower Assertについてひとこと言っておくか - ぐるぐる~

    3年前にこんな記事をあげました。 bleis-tift.hatenablog.com 3行でまとめると、 Power Assertはユニットテストのためにほしかったものではない 欲しいのは結果の差分 誰か作って! というエントリでした。 そしたら id:pocketberserker が作ってくれました! github.com PowerAssertより強そうな名前でいい感じです。 Power Assertは時代遅れ、今はMuscle Assertだ!的な話かな?— 裸のWPF/MVVMを書く男(マン) (@gab_km) 2016年6月1日 MuscleAssertの使い方 このライブラリは、PersimmonというF#用のテスティングフレームワークを拡張するライブラリとして作られています。 ただ、ざっくり概要をつかむだけであればどちらも知らなくても問題ありません。 このライブラリででき

    続・そろそろPower Assertについてひとこと言っておくか - ぐるぐる~
    bleis-tift
    bleis-tift 2016/09/13
    筋肉
  • The trips and traps of creating a Generative Type Provider in F#

    The trips and traps of creating a Generative Type Provider in F# This isn't the story I was originally intending to write for 2015’s F# advent calendar. I was originally going to talk about my currently ongoing adventures with F# vs. Linux vs. Azure, but it doesn't yet have a satisfactory ending — so stay tuned! This is the story of how I came to write a generative type provider for Neo4J and the

  • 汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ

    あらすじ ソフトウェアの中の依存関係について 正規表現で抽出できることとその限界 コードの依存関係を抽出するツール rexdep を作りました ソフトウェアの構造を概観するには あなたは、大きなソフトウェアを目にした時、何をしますか? ファイルが何十、何百もある時、どこから読みますか? ソフトウェアが巨大になると、そのコードの構造を把握するのは難しくなります。 特にプロジェクトに入りたての人にとって巨大なコードベースを一目で理解することは難しく、細かなタスクをこなしていく中で徐々に「どこに何が書いてあるか」を理解していくしかありません。 ソフトウェアによってはモデルとコントローラ、データベースとビューと言った具合にコードが分かれており、これくらいの分類はディレクトリ名を見れば理解できるかもしれません。 しかしそのようなざっくりとしたコードの分類が分かったところで、ソフトウェアの構造を理解し

    汎用的なコードの依存関係の抽出ツール rexdep を作りました! ― 正規表現で依存関係を大雑把に抽出しよう! - プログラムモグモグ
    bleis-tift
    bleis-tift 2015/11/19
    コマンドラインツールとしてではなく、ライブラリにすると正規表現部分をパーサーコンビネータで指定できるようになってより適用範囲が広がりそう。コマンドラインツールはそのラッパーにすれば簡単に実現できるし。
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • Documenting Your Code With XML Comments

  • なごやかJavaで発表してきた - ぐるぐる~

    .NET系開発者から見たJava from bleis tift なごやかJava第一回で、「.NET系開発者から見たJava」というタイトルで発表してきました。 Javaのこの機能って.NET開発者から見てどうなの?というような内容です。 大阪から参加してくれた方の感想を載せておきます。 おかしい、終わった後の感想が「F# すごい!」だ…… #ngojava— irof@Javarista (@irof) 2014, 11月 30

    なごやかJavaで発表してきた - ぐるぐる~
    bleis-tift
    bleis-tift 2014/12/09
    id:pochi-mk 資料ではそう見えるかもしれないですけど、ちゃんとJavaを中心に話をしたんですよ!よ!
  • 札束でExcelを殴る

    This document provides an introduction to Cloud Foundry. It discusses why PaaS is useful, describes the key components of Cloud Foundry including the Cloud Controller, Cells, Buildpacks, and Services. It then provides instructions on how to deploy applications to Cloud Foundry including Java applications using Spring Boot or Java EE, as well as applications in other languages. It also covers scali

    札束でExcelを殴る
    bleis-tift
    bleis-tift 2014/12/09
    id:nekora 期待に添えず申し訳ない。でも、それだと札束でMSを殴るってタイトルになると思うんですよ。
  • bwin·必赢(中国)唯一官方网站

    bleis-tift
    bleis-tift 2014/12/08
    MSBuildやFAKEも、成果重視というよりはタスク重視な気がする。
  • 難しいプログラムでは自分がいままで書いたコードが正しく動くと信じて残りのコードを書く必要がある | by Rui Ueyama | Medium

    Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

    難しいプログラムでは自分がいままで書いたコードが正しく動くと信じて残りのコードを書く必要がある | by Rui Ueyama | Medium
    bleis-tift
    bleis-tift 2014/11/20
    「テスト書けばいい」って言ってる人が、再帰のロジックをくみ上げるときに果たしてどのようなテストを書くというのか、それによって問題がどう解決されるのか、教えてほしい
  • Javaによる関数型プログラミング | nagaseyasuhito Daily works.

    @skrbより献いただいた「Javaによる関数型プログラミング」を、ちまちまと通勤時間などを利用して読了しました。 今年はどのJava関連の勉強会に行っても「ラムダ式とStream APIで関数型プログラミングで安心安全!」という話がされていて耳タコな人も多いのではないでしょうか。 とは言え勉強会で聞くのは関数型プログラミングの”さわり”だけの場合がほとんどです。書はそんな関数型プログラミングの”さわり”から、後半は実践的な例までひと通り書かれているため、書を読んでおけばJava8での開発にも、とりあえず臆することはなくなるはずです。 関数型プログラミングの質は1章の「まるで要求仕様を述べるようにロジックが流れていきます」という一文に込められています。入力と出力を関数(function)によって簡潔に記述し、連鎖することで目的の値を求める数学的なアプローチと言えるでしょう。 それに

    bleis-tift
    bleis-tift 2014/11/07
    クヌース「プログラミングは、芸術であり、文学である」
  • Ruby嫌いがアンダースタンディングコンピュテーションを読んで - ぐるぐる~

    アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで 作者: Tom Stuart,笹田耕一(監訳),笹井崇司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型この商品を含むブログ (2件) を見る 一番最初にはっきりさせておきますが、Rubyは嫌いな言語です。 が、このRubyが嫌いな自分でもいいだと言える*1でした。 自分が対象読者に入っているかどうかは実際に読んでみるまで微妙かな、と思っていましたが、とても楽しめました。 以下、書評です。 Rubyという選択 説明用のコードとして書はRubyを使っていますが、 これに関してはその理由が1章にあります。 私はその明瞭さと柔軟さに魅かれてRubyを選びました また、続けて 書にはRuby独自の機能に依存しているところはありません。 そのため、もしあなたにとってわか

    Ruby嫌いがアンダースタンディングコンピュテーションを読んで - ぐるぐる~
    bleis-tift
    bleis-tift 2014/09/21
    沖縄旅行楽しいです^q^
  • Lv1から始めるWebサービスのインフラ構築

    2014年9月9日開催の"AWS Cloud Storage & DB Day"で使用した講演資料です。 以下のURLからもダウンロードすることができます。 http://iy-h.com/03/aws-storage-day-2014-09-09.pptx

    Lv1から始めるWebサービスのインフラ構築
  • プログラミング言語の比較

    一口に「比較する」といっても色々な観点が考えられますが、ここでは、コードの読みやすさという点に注目して比べてみます。 人間が考えた処理内容・データ構造などを直訳的な表現で書けるか。(0は1月、1が2月、…なんてのは勘弁) 冗長な記述が少なくて済むか。 これらの点で言語ごとの違いが見えるような題材をなるべく選び、それぞれの言語で実装したサンプルコードを以下のページに並べてあります。 カテゴリ別 サンプルコード 基的な処理 数値、日時 リスト(または配列) マップ(または連想配列、ハッシュ) クラスとインスタンス ファイルとディレクトリ、通信 並列処理(スレッド) その他 このサイトで取り上げている言語 言語名 サンプルコードの凡例 参考サイト

    bleis-tift
    bleis-tift 2014/09/05
    ほぇー、こんなサイトが。
  • 型プロバイダー(TypeProviders)のちょっとしたアレコレ - Bug Catharsis

    一応、型プロバイダー(TypeProvider)のとりとめもない話 の続き。 ちょっと草植えときますね型言語Grass型プロバイダーを作った後、少し思い違いをしていた事に気付いたのが事の発端。この記事では、FsBulletML.TypeProvidersを作成する過程で得た、型プロバイダーについてのちょっとしたアレこれについて書いてみる。 オレは型プロバイダーに対する思い違いをしていた(雑魚) FsBulletMLという弾幕記述言語ライブラリを作っています。このライブラリでは、弾幕記述言語BulletML(XML形式等)を読み込んで弾幕を表現する判別共用体(内部DSL)の型を生成するということをやっています。構想の段階で BulletML(XML形式等) に判別共用体(内部DSL)の型を付ける型プロバイダーの提供も考えていたが、型プロバイダーでは判別共用体を作ることができないという理由から

    型プロバイダー(TypeProviders)のちょっとしたアレコレ - Bug Catharsis
    bleis-tift
    bleis-tift 2014/08/27
    うひょ~、@zecl さんさすがっす!
  • C#のジェネリクスで型クラスを真似る - 平々毎々(アーカイブ)

    id:Nagise さんのJavaジェネリクス記事を読みながら、C#ではどうかな、とあれこれ考えているわけです。 型に属する情報をジェネリックに扱う試み ... のC#版 ジェネリクス型変数と型階層 ... のC#版 再帰的ジェネリクスの代入互換性 ... のC#版 ジェネリクスの基礎とクラス設計への応用 ... のC#版 Javaによる高階型変数の実装 ... のC#版(序) Javaによる高階型変数の実装 ... のC#版(文) そんな時に、ジェネリクスのカリー化 - プログラマーの脳みその話を振られて。 真の高階型引数、つまり、型パラメータを取る型パラメータは実現できないです。が、型クラス的なものであればエミュレートできるらしい。 もちろんCLRにもILにも型クラス的なものなんかないわけで、オダスキー教授が言うところの「貧者の型クラス(pdf)」を使う、つまり型に適合するメソッド群

    C#のジェネリクスで型クラスを真似る - 平々毎々(アーカイブ)
    bleis-tift
    bleis-tift 2014/04/29
    おおお?