タグ あどけない話
新着順 10 users 50 users 100 users 500 users 1000 users文章の書き方 - あどけない話
2006年に IIJ の新人研修で「文章の書き方」という講義を担当しました。そのときの資料を何人もの人に個別に差し上げていたのですが、それも面倒になってきました。新人研修の担当者に問い合わせたところ、公開しても問題ないとのことでしたので、資料を公開します。「文章の書き方」の資料 続きを読む
Git に関する良記事 - あどけない話
適宜追加します。Pro Git僕が読んだ Git の書籍の中では、一番分かりやすいと思いました。日本語版の書籍はありませんが、オンライン版が翻訳されています。Pro Git図解 GitGit の初心者が動作を理解するのにおススメ。図解 Gitあなたの知らないGit Tips書籍には載ってない Tips の解説。知らないと損するかも。あなたの知らないGit Tipsワークフロー、あるいはブランチング... 続きを読む
プログラマの壁 - あどけない話
プログラミングプログラマに向いている人と向いていない人がいるそうです。Jeff Atwood さんの「どうしてプログラマに・・・プログラムが書けないのか?」:プログラムを書ける者とプログラムを書けない者の間にある大きな溝についてはよく知られているが、プログラマの職に応募してくる人間は、すでにこの溝を飛び越えているものだとばかり思っていた。明らかにこれは妥当な仮定ではないらしい。プログラムを書けない... 続きを読む
例として推奨されているドメイン名とIPアドレス - あどけない話
解説記事や発表資料で、ドメインの例を出す場合、example.jp等を使うことが推奨されていることを知っている人は多いでしょう。しかし、IPアドレスの方は知らない人もいるみたいです。ここでは両方について出典を示しながらまとめます。知っていて別の例を使うのはいいのですが、知らないで別の例を使うのはよくないです。gTLDのドメイン名の例RFC2606で以下のように定められています。 3. Reserv... 続きを読む
静的型付き言語プログラマから見た動的型付き言語 - あどけない話
およそ20年前にAlan Kay の講演をきいたことがある。印象に残ったのは、彼が引き合いに出した McLuhan の言葉だ。 I don't know who discoverd water, but it wasn't a fish. (拙訳)誰が水を発見したかは知らないが、発見者が魚でなかったことは確かだ。 誰しも信念という水の中を泳ぐ魚のような存在だ。思い切って飛び跳ね空気に触れてみなれば... 続きを読む
HTTP/2から見えるTLS事情 - あどけない話
これは HTTP/2 アドベントカレンダー19日目の記事です。この記事はたくさんの資料を読んだ上で書きましたが、間違いとか勘違いとかがあるかもしれません。もしあれば、指摘していただけると幸いです。実質的に必須となったTLSHTTP/2は、HTTP/1.1と同じく、暗号化なし/ありのポートとして、80と443を使います。そのため、通信開始時にHTTP/1.1とHTTP/2をネゴシエーションするための... 続きを読む
Real World Haskell の古いところ - あどけない話
Real World Haskell の内容が古くなってきたので、どこが古いかとか、それに変わる新しいものは何とか、まとめたいと思う。1章今でも通用する。2章今でも通用する。3章今でも通用する。4章ghc に --make オプションはもう不要。5章5.14節では、"runghc Setup build" のように Setup.hs を実行しているが、現在では "cabal" コマンドを使うのが一... 続きを読む
Haskell から見た node.js - あどけない話
haskell,llplanets誤訳以前、「サーバサイドJavaScriptのNode.js、最初はCやHaskellを検討し失敗。開発者ライアン・ダール氏へのインタビュー」という記事が twitter で話題になっていました。―― なぜJavaScriptを選んだのでしょう?ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。そんなときV8(Chromeが採... 続きを読む
QAで学ぶMonad - あどけない話
Haskellこれは、Monad でつまづいた Haskeller のための Monad 入門です。Monadとは何ですか?Monad とは、単なる型クラスの一つです。難しいという風評もありますが、それ以上でもそれ以下でもありません。この型クラスのメソッドは、return と >>= です。 class Monad m where (>>=) :: m a -> (a -> m b) -> m b... 続きを読む
書評「型システム入門」 - あどけない話
端的に説明するなら「正しく型付けされた項はおかしくなることがない」ことを学ぶための壮大な本。型に関する圧倒的な知識を持ち、説明がうまく、根気づよい人にのみ記すことができた英語の良書が、型システムを愛する訳者と完訳者、および(書中に名前が出てくる方も含む)豪華なレビュアの情熱によって翻訳された記念すべき書籍。税抜きで6,800円と高いが、それ以上の価値がある本である。型システム入門 −プログラミング... 続きを読む
私とテストと自動化と - あどけない話
何度か講演でこの話をしたのだが、気が向いたのでエッセンスを書き下しておこうと思う。 テスト駆動という言葉が流行る前にプログラマとなった私は、当初どのようにテストを書いてよいのか分からなかった。そんなとき、(当時はオーム社で現在はラムダノートの)鹿野さんから「ビューティフルコード」を献本していただいた... 続きを読む
カリー化談義 - あどけない話
Haskell最近、スタートHaskellで「カリー化された関数のメリットは何か?」という質問が出た。そのすぐ後に、kmizuさんがカリー化の誤用に対して警鐘を鳴らしてしていた。僕からするとkmizuさんの「カリー化の定義」も誤用に思えたので、調べるとともに考えたことのまとめ。いろんな定義「カリー化する」という用語は、すくなくとも以下の3つの意味で使われているようだ。部分適用という意味 これは明ら... 続きを読む
2011年に Haskell を始める人のために - あどけない話
適切な一歩を踏み出すか否かは、大きな違いを生みます。この記事では、2011年に Haskell を始める人のために、著者が考える最適な入門方法を示します。Haskell Platform をインストールする昔人気のあった Hugs は、もう保守されていません。現在は、GHC の時代です。GHC とライブラリをパッケージ化した Haskell Platform をインストールして下さい。インタープリ... 続きを読む
Haskell でのデバッグ - あどけない話
「純粋関数型言語はデバッグしにくい。だって純粋な関数で printf デバッグできないから」とつぶやいている人をよく見かけます。これまで放置してきましたが、リツイートが50を超えたので、Haskellでのデバッグについて書きます。例外処理と同じように、Haskell でのデバッグでは、純粋な関数と IO を分けて考える必要あります。 IO での printf デバッグIO では、putStrLn ... 続きを読む
コンパイルは(テストではなく)証明である - あどけない話
「プログラムのテストはバグの存在を示すことにかけてはとても効率的な方法ですが、バグの不在を示すことにかけては絶望的なほどに不適切です。プログラムの信頼性を顕著に向上させる唯一の方法は、その正当性に対して説得力のある証明を与えることです」 -- Edsger W. Dijkstra静的型付き言語では、コンパイル時に型が検査される。この型検査に関連して型推論という機能を持つ言語がある。型推論は、大きく... 続きを読む
Haskell の Monad とは言語内DSLのフレームワークである - あどけない話
この記事は、Haskellを勉強してある程度分かったけど、Monadで挫折した人のための記事です。10分間で、Monadに対する納得感を得ることを目的としています。他の言語でいう「モナド」にも通用する内容ですが、Haskell の文法や用語を用いますので、他の言語の利用者に分かるかは不明です。Haskellを勉強したのですから、代数データ型 型クラスは分かっていることにします。Monad は、単な... 続きを読む
さようなら遅延評価 - あどけない話
Haskellがとっつきにくい原因の一つに遅延評価がある。入門書では、無限リストと遅延評価がことさら強調される。しかし、Haskellを業務で使ってみると、遅延評価が煩わしくなってくる。遅延評価なしでもほとんどのことは実現できるし、メモリーの使用量は推測できないし、あまりいいことはない。 Haskellの評価戦略が、... 続きを読む
Haskellライブラリ入門 (2011年版) - あどけない話
この記事では、基本ライブラリである Prelude の関数をだいたい理解した人が、次に知るべきライブラリを紹介します。自由自在にリストを使いこなせ、正規表現がなくてもプログラミングができるんだなと実感した人を対象にしています。この記事のテーマは、脱リストです。リストはとても柔軟ですが、リストで表現されている文字列は、メモリーをたくさん消費しますし、なにより遅いのです。実用的なプログラムを書くために... 続きを読む
Haskell での例外処理 - あどけない話
「よく分かってないことはうまく書けないし,もう分かっちゃったことは書くのが面倒臭い.」 @nom4476リツイート数が30を超えたので、Haskell での例外処理について説明します。僕が思うに、Haskell での例外処理が分かりにくいのには、2つ理由があります。ライブラリの混乱パラダイムの違い歴史的経緯により、Prelude にも Control.OldException にも Control... 続きを読む
Emacs 24.3/24.4 on Mac のフォント設定 - あどけない話
Emacs で一番難しいのはフォントの設定です。特に Mac では地獄のように難しいです。とうわけで、Emacs 24.3 と来る Emacs 24.4 でうまくフォントを使うための設定を公開しておきます。なお、Mac では素の Emacs を使ってはいけません。Emacs Mac port を使いましょう。パッチを当てるのは面倒なので、早く github なんかで公開されるといいですね。ちなみに... 続きを読む
Haskellの開発ツール (2011年版) - あどけない話
Haskell開発に関係するツールをとりとめもなく列挙してみます。エディタ/IDE僕は、Emacs と haskell-mode と ghc-mod を組み合わせて使っています。haskell-mode は、行頭揃えの機能がしょぼいので、作り直したいと思っています。IDE のバックエンドとしては、scionがありますが、使ったことがないので説明できません。(僕は ghc-mod で十分だと思ってい... 続きを読む
Haskell ポインタープログラミング - あどけない話
早いもので、今年も12月25日となりました。メリークリスマス! うちのちびっ子怪獣たちも、サンタさんに書いた手紙通り、レゴをもらってご満悦のようです。そして今日は、Haskell Advent Calendar 2013 の最終日でもあります。Haskellらしい?「純粋なコードで構成するのが Haskell らしいプログラムであり、IOはHaskellらしくない」という発言をよく耳にします。確か... 続きを読む
我田引水的な「関数プログラミングの入門」資料紹介 - あどけない話
これは、Haskell Advent Calendar 2021の2日目を埋めるために書いた記事です。実は単に僕が作った「関数プログラミングの入門」の資料の宣伝です。 ちなみに、僕の関数プログラミングの定義は「不変データプログラミング」であり、おそらく最も厳しい定義です。なので内容が分かれば、関数プログラミングに入門できた言... 続きを読む
Haskellの文法 - あどけない話
haskell僕が Haskell を学び始めた頃、Haskell の文法はすんなりとは頭に入ってきませんでした。もともと僕はプログラミング言語の学習能力が低いので、僕だけかもしれませんが、「はじめからこう言ってもらえれば分かったのにぃ」ということを書きます。 はじめの一歩分岐は case で書きます。以下に Maybe a に対する例を書きます。 case mx of Just x -> ...... 続きを読む
Haskell Relational Record をリリースしました - あどけない話
Haskell Relational Record (HRR)尻叩き担当の山本です。この記事では、HRR のリリースについて説明します。なお、これは Haskell Advent Calendar 2014 の25日目の記事です。 HRR とは何か?HRRは、日比野さんが中心となって開発が進められている関係代数ライブラリです。Haskellで式を書くと、それがSQL文に変換され、データベースに問い... 続きを読む