ブックマーク / camlspotter.hatenablog.com (13)

  • コードレビューについて - camlspotter’s blog

    このところ立て続けにコードレビューについて話をする機会があったので 私が経験した最高のレビュー体制を簡単にまとめておこうと思います。 利点 何故必要か 何が嬉しいのか コスト うまく回すためには何が必要か 細かい運営方法 はっきり言って当たり前の事しか書きません。 私も当時は当たり前のことだと思っていましたから、特に気にもしていなかったのです。 ただ見聞するところによると、これをちゃんとやっているところはとても少ないようです。 ウォールストリート系のファンドでもろくにレビューしてないとかどういうことなんでしょう。 だから時々会社が吹っ飛ぶんですね… 結局は、ああだ、こうだ各論を言っても、ちゃんとやれるのか、それ一点に尽きてしまう話なのですが… 利点 レビューを何のためにするか、それはまず第一に自分達の書いているコードに潜在するバグによる損失をできるだけ少なくすることでしょう。 型システムや

    コードレビューについて - camlspotter’s blog
    s1061123
    s1061123 2022/03/16
  • 大事なことは全部MLが教えてくれた 〜 Apple の Swift の mutability 周りの件を理解する - Oh, you `re no (fun _ → more)

    開発者アカウントに金が出せない貧乏人の方々が、次の AppleSwift のコードの挙動がわからない、というので盛り上がっております: let a = [1,2] // a = [1,2] var b = a; // b = [1,2] b[1] = 3; // a = [1,3] b = [1,3] b.append(5); // a = [1,3] b = [1,3,5] b[1] = 4; // a = [1,3] b = [1,4,5]もちろんわたしも貧乏ですからわかりやすい炎上案件を待っておるわけです。これはわかりやすいわからないが来たね。 だいたい b[1] = 3 とやると a[1] も変化する、これがわからないという人 b[1] = 4 とやると a[1] が変化しない、これがわからないという人 二種類いるようです。私はまず、 b[1] に代入できることがわかりません

    大事なことは全部MLが教えてくれた 〜 Apple の Swift の mutability 周りの件を理解する - Oh, you `re no (fun _ → more)
    s1061123
    s1061123 2014/06/12
  • OutsideIn(X) と OCaml - camlspotter’s blog

    Haskell の実装 GHC の新しめのバージョンでは 多相let の型付けが今までの HM (Hindley Milner) 方式から新しい OutsideIn(X) に変わっています。(言語拡張でどうたらあるらしいがシラネ) 詳しい動機はまあいろいろあるみたいですが GADT とか Type family の型推論の効率とか完全性とかそういう方面らしいです。正直両方とも使わないのであまりありがたみがわかりません。で、世の中 Haskell のやることは外でも全て正しいという考えの方がおられまして、 OutsideIn(X) は Haskell で問題ないのだから他でも問題が無いはずだとかおっしゃるわけです。 あんまり科学的な態度じゃないですよね。まあプログラミング言語論のこれは便利だ便利じゃないなんて思想であって自然科学じゃあないので究極的には好き嫌いの問題だと私は思うからまあいいっ

    OutsideIn(X) と OCaml - camlspotter’s blog
    s1061123
    s1061123 2014/01/06
  • Real World OCaml が出ました - camlspotter’s blog

    一昨年から少しずつ書かれていた OCaml プログラミングの、 Real World OCaml (以下 RWO)がついに public beta になり公開されました。 ( https://realworldocaml.org/beta1/en/html/ ) 版元の O'Reilly ではこのベータ版の状態の e-book が 今なら安く手に入ります。完全版には後から無料でアクセスできるように なるそうです。( http://shop.oreilly.com/product/0636920024743.do ) !!!!!安く買いたい人は http://shop.oreilly.com/category/deals/early-release.do?code=WKERRLS をよく読んでね!!!!! このは、今まで外に伝わりづらかった OCaml プログラミングの最前線の一面を 伝

    Real World OCaml が出ました - camlspotter’s blog
    s1061123
    s1061123 2013/06/26
  • Planck という monadic parser combinator を公開しました - camlspotter’s blog

    Planck: A Small Parser Combinator Library for OCaml I have released Planck, a small monadic parser combinators for OCaml. It includes a proof of implementation: OCaml syntax lexer and a parser which create 100% identical AST as the original OCaml's lex+yacc, and available at https://bitbucket.org/camlspotter/planck . http://camlspotter.blogspot.com/2011/05/planck-small-parser-combinator-library.ht

    Planck という monadic parser combinator を公開しました - camlspotter’s blog
    s1061123
    s1061123 2011/06/01
  • OCaml で LLVM -- 事始め - camlspotter’s blog

    この記事は LLVM-2.8 とその OCaml binding を使った LLVM プログラミングの始め方について、良く判らないという声を聞いたので、理屈はともかく、どうやって始めるかを主眼に書いた物です。OCaml や Makefile を全く書いた事が無いし知りたくも無い、でも LLVM を使いたいという方にはちょっと無理な内容になっています clang とか LLVM とかこの頃よく聞きますよね。Apple が製品に結構使っているという話ですし、気になっている人もいるでしょう。私も LLVM、気になりました。要するに、プログラム内で Cみたいな言語(語弊がありますが)の構文ツリーを動的に生成して、それを、はいお願いと LLVM のエンジンに投げるとアーラ不思議、各アーキテクチャ用にいい感じで JIT コンパイルしてくれてスイスイ動く、という魔法のような話です。 マシン語は Z80

    OCaml で LLVM -- 事始め - camlspotter’s blog
    s1061123
    s1061123 2011/02/10
  • キャミバ様が id:ymotongpoo を木人形にされるようです - camlspotter’s blog

    事の次第 @camlspotter「めんどくせ、あいつに押し付けよ… @camloeba「おれには強く型付けされたコードが必要だ! あらゆる実験にたえうる木人形がな!ぶつぶつ‥ @camlspotter: 「キャミバ様、実はこんなものが… @camloeba「ほう… … ||||||:::::::;:::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::::::|     | |::::::;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::::::::::::::||||||| |||||::::::::::/   ●   \:::|    |:::/   ●   \::::::::::||||||| |||::::::::;;;;;;;──────;;;;;;;;|    |;;;;;;──────;;;;;;;;;;:::::|||||| |;;;;;;;

    キャミバ様が id:ymotongpoo を木人形にされるようです - camlspotter’s blog
    s1061123
    s1061123 2010/12/16
  • Effective ML 9ヶ条 - camlspotter’s blog

    私の前のボスのハーバードでの講演のビデオが公開されました: http://ocaml.janestcapital.com/?q=node/82 彼は早口ですが、まあ頑張って聞いてください。普通に判れば、アメリカで普通に仕事できます。判らなくても仕事できますから安心してください。 正直、この Effective ML 9ヶ条と Jane Street Core のソースコードを見れば、 Jane Street での関数型プログラミングの秘訣は大体抑えられると言ってよいでしょう。学問的には新しいことは何もありませんが、徒党を組んで関数型言語によるプロジェクトを行うには重要な物ばかりです。 この、Effective ML 9ヶ条をまとめておきました。これを見ながら視聴すると良いかもしれないです。オリジナルは 00:47:13 で見れますね。 コードライタよりもリーダの意見を尊重せよ。大体において

    Effective ML 9ヶ条 - camlspotter’s blog
    s1061123
    s1061123 2010/08/25
  • Tuareg 2.0.1 が出ましたが、まだ時期尚早かな。 - camlspotter’s blog

    もう干からびていたとうわさの OCaml のための emacs mode、Tuareg が新しくなりました。オリジナルは 1.45.x 以降、1.46.2 あたりまで出たものの、何かエンバグして 1.46 系は取りやめ、そして作者が興味を失った?のか、そのままでしばらーく乾燥状態だったのです。2.0系のリリースは社内で 1.46 系に手を入れて使っていた Jane Street から行われます。彼らが元気で OCaml を使い続ける限り Jane Street では tuareg を使い続けますので、メンテされるでしょう。 で、現在の 2.0.1 はどうかというと、ちょっと、、、機能的には 1.45 から抜けているものがあり、中身を綺麗にした、という側面が強いです。function や match の -> でインデントが入らないのがキツイですね、、、Jane Street で使っているバ

    Tuareg 2.0.1 が出ましたが、まだ時期尚早かな。 - camlspotter’s blog
    s1061123
    s1061123 2010/06/15
  • Haskell のたった一つ、確実に優れているところ - camlspotter’s blog

    それは、 偉大なるジョン・ハロップ師が既に去られた言語 その事に尽きる。師が興味を持たれた言語コミュニティーは荒れる。何故かは判らない。乱あるところすべからく師あり。師の去るところ平和あり。そう、Haskell は既に解放されたのだ。 OCaml も数年前は大いに荒れていたが、師が F#界にその活動拠点を移されてからは少し落ち着いてきた感がある。その分、F#界では今下克上の時代なのであろう。もちろん、今でも時々 「OCamlは F# の8倍遅い(8 core マシン上で)」という波が立つ事もあるが、そんな時には、師の息遣いを感じる事ができる。まだOCaml界には平和は訪れていないと感じる時だ。 Haskell は平和だと書いたが、やはり世の常である。全く平穏と言うわけでもない。時々愚かな若者が愚かな質問をする: It is a wonderful, very fast, mature an

    s1061123
    s1061123 2010/06/04
  • offside-trap.el : for Haskell block indentation - camlspotter’s blog

    前回までのあらすじ: Haskell など OCaml に毛が生えたようなもの、ふふん、と、転職した俺様だったが、なんということだ、Haskell が、というか、インデントが読めない。深すぎて。どうしたらいいんじゃー!! http://d.hatena.ne.jp/camlspotter/20100520/1274369338 http://d.hatena.ne.jp/camlspotter/20100521/1274446264 「この一週間で TAB を 3000回叩きました」、とか、そんなことをレポートしていては試用期間中に解雇されるかもしれない、と焦った訳ではありませんが、あまりにも空しい。ブログや呟きでいろいろとネガティブな事ばかり言っていてもしょうがねぇ。Cry baby なのは駱太郎だけで十分。俺は、大人だし、この状況をなんとなくなんとかするぜ!! てな訳で、なんとなくなん

    offside-trap.el : for Haskell block indentation - camlspotter’s blog
    s1061123
    s1061123 2010/06/02
  • XML をなんとなく OCaml のデータに落とすお手軽な方法をお手軽に解説する - camlspotter’s blog

    うん、何かちょうどこういうやっつけ仕事をしていたらセックスがピー (http://twitter.com/chunjp/statuses/6523318056) とかいうのが多方面から聞こえてきたんよ。それで。若い人はなかなかそういうの恥ずかしくて話せないでしょ、だからアラフォーのおっちゃんがちょっとしたるわ。 目的 何か XML で書かれたデータがあって、何となくどういうデータ構造になってるかは理解できる。あー、ここはリストだな、とか、ここは OCaml でいうレコードっぽいとか。そういうデータを読み込んで OCaml の型に落とし込むという作業、これをできるだけお手軽にしたい。スキーマとかガン無視。そういうのでやりたい人はがんばってください。できるだけお手軽にが基。 材料 xml-light : XML をさくっと読み込んだりプリントしてくれるライブラリ。軽いのでそんだけ。 sexp

    XML をなんとなく OCaml のデータに落とすお手軽な方法をお手軽に解説する - camlspotter’s blog
    s1061123
    s1061123 2009/12/15
  • Concurrency - camlspotter’s blog

    Concurrent ML の ivar in OCaml, Concurrent Cell: http://d.hatena.ne.jp/osiire/20081011 ウチでも同じようなことをしております(が、クローズドなので)。なのでこれには注目していきたい! OCaml で multi thread なプログラムを書くと、初めのころは、大抵、 Thread.create! 媚びろ〜!! 媚びろ〜!! 俺は天才だ ファハハハ!! な感じで初期アミバ様状態なのですが、油断していると、というか、大体すでに CAMLC=ocamlc -thread としている時点でアミバ的に油断しているのですが、 お前(のプログラム)はもう死んでいる。もう1000行書いてみろ 心配するな おれは天才だ おれに不可能はない!! Mutex.lock! Segmentation fault うわっ うわああ 

    Concurrency - camlspotter’s blog
  • 1