タグ

ブックマーク / kazu-yamamoto.hatenablog.jp (25)

  • 幅80cmで作る在宅勤務環境 - あどけない話

    都会のマンション暮らしだと、どうしても手狭になります。 多くの人がそう感じていると思いますが、リモートワークするには一部屋足りません。 (二部屋かも。)— 山和彦 (@kazu_yamamoto) 2020年4月12日 ウチは6人家族なので、コロナ禍での在宅勤務は当に手狭です。最終的には、あまり人の来ない寝室の敷布団の上に座って壁に寄りかかり、MacBook Proを膝に置いてプログラミングをしていました。 会社では標準的なオフィスチェアに座り、iMacの広い画面を見ながら、Happy Hacking Keyboard(HHKB)を2枚使って腕を肩幅に開いて快適に作業していました。布団に座っているのだと腰は痛くなるし、キーボード1枚では肩はこるし、仕様書を見ながらプログラミングするにはMacBook Proの画面は小さくて苦しいしで、「なんとかならないかなぁ」という状況でした。 最近、

    幅80cmで作る在宅勤務環境 - あどけない話
  • Haskell ポインタープログラミング - あどけない話

    早いもので、今年も12月25日となりました。メリークリスマス! うちのちびっ子怪獣たちも、サンタさんに書いた手紙通り、レゴをもらってご満悦のようです。 そして今日は、Haskell Advent Calendar 2013 の最終日でもあります。 Haskellらしい? 「純粋なコードで構成するのが Haskell らしいプログラムであり、IOはHaskellらしくない」という発言をよく耳にします。 確かに、命令プログラミングの世界から関数プログラミングの世界にやってきたとしたら、 不変データを使った永続データプログラミング 部品プログラミング 純粋なコードに対する性質テスト などには、衝撃を受けることでしょう。 でも、純粋なコードは、Haskell の世界の半分でしかありません。そこは、コンパイラーという保護者に守られた未成年の世界です。Simon Peyton Jones さんの言葉を

    Haskell ポインタープログラミング - あどけない話
  • Real World Haskell の古いところ - あどけない話

    Real World Haskell の内容が古くなってきたので、どこが古いかとか、それに変わる新しいものは何とか、まとめたいと思う。 Real World Haskell―実戦で学ぶ関数型言語プログラミング 作者: Bryan O'Sullivan,John Goerzen,Don Stewart,山下伸夫,伊東勝利,株式会社タイムインターメディア出版社/メーカー: オライリージャパン発売日: 2009/10/26メディア: 大型購入: 8人 クリック: 245回この商品を含むブログ (76件) を見る 1章 始めましょう 今でも通用する。 2章 型と関数 今でも通用する。 3章 型を定義し、関数を単純化する 今でも通用する。 4章 関数プログラミング ghc に --make オプションはもう不要。 5章 ライブラリを書く 5.14節では、"runghc Setup build" の

    Real World Haskell の古いところ - あどけない話
    mas-higa
    mas-higa 2014/07/23
    電子書籍なら、こういうのバージョンアップされるんだろうか。それとも次の版が出るんだろうか。
  • RSSリーダ BazQux と DNS キャッシュ - あどけない話

    BazQux(バズクックス)は、Google Reader の代替として密かに注目されている RSS リーダです。実装と運用を一人でやっている Vladimir Shabanov さんによると、BazQux のウリは、 高速である ブログのコメントも表示できる 複数のビューがある モバイルに対応している などらしいです。 BazQuxフロントエンドは、Ur/Web で記述されたコードから生成された JavaScript、バックエンドは Haskell だそうです。高速なのは、Haskell のおかげであると Vladimir さんは言っています。我々が開発している HTTP エンジンの Warp も使われているそうです。 現在、僕は Haskell 用の HTTP/2 ライブラリの作成に取り組んでおり、必要な技術を調べている過程で、redditでの議論のことを思い出しました。今回、よく

    RSSリーダ BazQux と DNS キャッシュ - あどけない話
  • 来る Emacs 24.4 を Mac で安定させる - あどけない話

    もうすぐリリースされる Emacs 24.4 を Mac で使うと、ほんとうにイライラします。 なぜなら、 落ちる 中国語のフォントを読もうとしてしばらく待たされる が頻発するからです。NEWS を読んでいて、以下を見つけました。 ** New Core Text based font backend for Mac OS X 10.5 and newer. To use the old font backend, use the following on the command line: % defaults write org.gnu.Emacs FontBackend ns GNUstep and Mac OS X 10.4 use the old font backend.新しいフォントバックエンドを使うのが問題かもしれないと思い、defaults を変え古いバックエンドで暮らし

    来る Emacs 24.4 を Mac で安定させる - あどけない話
  • Emacs 24.3/24.4 on Mac のフォント設定 - あどけない話

    Emacs で一番難しいのはフォントの設定です。特に Mac では地獄のように難しいです。とうわけで、Emacs 24.3 と来る Emacs 24.4 でうまくフォントを使うための設定を公開しておきます。 なお、Mac では素の Emacs を使ってはいけません。Emacs Mac port を使いましょう。パッチを当てるのは面倒なので、早く github なんかで公開されるといいですね。 ちなみに、素の Emacs を Dock から起動すると PATH を引き継がないので、はまります。Emacs Mac port なら PATH を引き継いでくれます。 フォントの設定 以下をお好みに合わせて変えて .emacs などに入れて下さい。 ;; 以下はフレームの設定 (defvar my-frame-parameters '((height . 40) (width . 80) (top

    Emacs 24.3/24.4 on Mac のフォント設定 - あどけない話
  • Git に関する良記事 - あどけない話

    適宜追加します。 Pro Git 僕が読んだ Git の書籍の中では、一番分かりやすいと思いました。日語版の書籍はありませんが、オンライン版が翻訳されています。 Pro Git 図解 Git Git の初心者が動作を理解するのにおススメ。 図解 Git こわくない gitランチとマージの考え方がよく分かるスライド(@methaneさんから教えて頂きました)。 こわくない git あなたの知らないGit Tips 書籍には載ってない Tips の解説。知らないと損するかも。 あなたの知らないGit Tips ワークフロー、あるいはブランチング チームでブランチを使う際の取り決め。自分のチームで一から議論するより、すでにあるものを参考にしましょう。 git-flow github-flow Github Enterprise Github Enterprise は、企業内に設置して使うこ

    Git に関する良記事 - あどけない話
  • Haskellの単体テスト最前線 - あどけない話

    この記事の最新版は、githubで管理されています。 これはHaskell Advent Calendar 2012の5日目の記事です。 Haskellで作成したパッケージに対して、単体テストを書くための最新情報をお届けします。 要約 要点は4つです。 利用者に見せたい振る舞いは、doctest で書く 利用者に見せたくない振る舞いは、hspec で書く テストを自動化するフレームワークとしては Cabal を使う doctest でも hspec でも、純粋なコードに対しては、できるだけ QuickCheck などの性質テストを書く この記事で一番伝えたいのは、3) です。例題としては、Base64 という符号化を取り上げます。Base64 は知っていると仮定して話を進めますので、知らない人はあらかじめ Wikipedia の Base64 の説明でも読んで下さい。 この記事で利用するコ

    Haskellの単体テスト最前線 - あどけない話
  • Haskell から見た node.js - あどけない話

    誤訳 以前、「サーバサイドJavaScriptのNode.js、最初はCやHaskellを検討し失敗。開発者ライアン・ダール氏へのインタビュー」という記事が twitter で話題になっていました。 ―― なぜJavaScriptを選んだのでしょう? ダール氏 実は最初は違いました。最初はC、Lua、Haskellなどで失敗していました。そんなときV8(Chromeが採用しているJavaScriptエンジン)に気がついて、やろうとしていることに対してJavaScriptが完璧な言語だと突然ひらめいたのです。 ただでさえ、Haskell は遅いと誤解されているのに、このような悪意さえ感じらえる訳だと、さらに誤解が深まりそうです。原文にはこう書かれています。 Dahl: Originally I didn’t. I had several failed private projects doi

    Haskell から見た node.js - あどけない話
    mas-higa
    mas-higa 2011/08/26
    Haskell 速いらしい。
  • 例として推奨されているドメイン名とIPアドレス - あどけない話

    解説記事や発表資料で、ドメインの例を出す場合、example.jp等を使うことが推奨されているのを知っている人は多いでしょう。しかし、IPアドレスの方は知らない人もいるみたいです。ここでは両方について出典を示しながらまとめます。 知っていて別の例を使うのはいいのですが、知らないで別の例を使うのはよくないです。 gTLDのドメイン名の例 RFC2606で以下のように定められています。 3. Reserved Example Second Level Domain Names The Internet Assigned Numbers Authority (IANA) also currently has the following second level domain names reserved which can be used as examples. example.com exa

    例として推奨されているドメイン名とIPアドレス - あどけない話
  • 祝 「Scheme 手習い」復刻 - あどけない話

    めでたい! 「Scheme 手習い」が復刻しました。正確に言うと、復刻ではなく、新しい版に基づいた新しい訳です。 Scheme手習い 作者: Daniel P. Friedman,Matthias Felleisen,元吉文男,横山晶一出版社/メーカー: オーム社発売日: 2010/10/22メディア: 単行(ソフトカバー)購入: 5人 クリック: 129回この商品を含むブログ (34件) を見る 以前、マグロウヒル出版から出版されていた「Scheme手習い―直感で学ぶLisp」は、"The Little Lisper" の訳です。内容が、Common Lisp でもなく、Scheme でもない Lisp の方言によって書かれているのに、邦題に Scheme が入っていたのは、このの唯一の欠点だと僕は感じていました。 今回は、"The Little Schemer" の訳です。原書も訳

    祝 「Scheme 手習い」復刻 - あどけない話
  • Haskell で Y コンビネータ - あどけない話

    Haskell では、Y コンビネータが作れないと誤解している人がいるので、できることを示すと同時に、これまで学んだことをまとめてみます。 遅延評価を活かした Y コンビネータ 関数名を用いた再帰を使ってよいなら、Haskell では遅延評価のおかげで、Y コンビネータを定義である Y x = x (Y x) の通りに書けます。 y :: (a -> a) -> a y x = x (y x) Y コンビネータ用の階乗を定義してみましょう。 fact :: Num a => (a -> a) -> a -> a fact = \f n -> if n == 0 then 1 else n * f (n-1) 以下のように動きます。 y fact 4 → 24 でも、この階乗は Haskell っぽくないので、入り口で分岐するように書き直してみます。 fact :: Num a => (a

    Haskell で Y コンビネータ - あどけない話
    mas-higa
    mas-higa 2010/05/21
    いつか読む
  • Emacs で Haskell の補完 - あどけない話

    Emacs の haskell-mode は、補完がないので使いにくいです。 という訳で、Haskell の予約語とモジュール名を補完する elisp を書いてみました。haskell-mode と共存します。 モジュール名は、ghc-pkg dump を解析して入手します。このパーサーは、Haskell で書きました。 で、需要があるようなら、整形してリリースしますが、どんなもんでしょう? あと、各モジュールが export している関数名を補完したいんですが、どうやったら関数名を簡単に入手できますかね?

    Emacs で Haskell の補完 - あどけない話
  • Mac の GIMP を使い易くする - あどけない話

    Mac の GIMP は使い物にならなかった。なぜなら、GIMP のあるウインドウから、他のウインドウにカーソルを移動させても、自動的にフォーカスされないからだ。そのウインドウを選択するには、クリックする必要がある。たとえば、ペンの太さを変えようとすると、二回クリックしてペンの太さを選び、さらにキャンバスをクリックして選択し直さないといけない。 以前から思い出しては検索し、解決方法を探していたのだが、今日ようやく見付かった。見付かった方法は古いため、そのままではうまくいかない。そこで、最新の情報を載せておく。 まず、XQuartzを入れる。これを入れると、X11.app のアイコンがかっこよくなるので、X11.app が適切に上書きされたと分かる。 心配になって、MacPorts で gnuplot や ghostscript を入れ直したところ、何も問題は発生しなかった。 次に、コンソー

    Mac の GIMP を使い易くする - あどけない話
    mas-higa
    mas-higa 2009/08/28
    あとでやる。XQuartz は入れてるけど、アイコンかっこよくなったっけ?
  • POPとIMAP - あどけない話

    ようやく IMAP も普及したようで、POP から IMAP に乗り換える人が増えています。僕の周りのインターネット技術者も、ぼちぼち乗り換え始めました。(gmail が IMAP をサポートしたことが大きな要因でしょうか?) 彼らは優秀なのにも関わらず、こんな間違った表現を使います。 POP はメールをメールリーダに取ってくるもので、IMAP はサーバ側のメールを読むものだ POP だとよかったけど、IMAP は常にネットワークにつながっていないと辛い POP だとよかったけど、IMAP はフォルダ内のメールの数が多くなると辛い その度に、「そうじゃない」と言ってきたのですが、もうそう説明するのにも疲れてきました。そこで、正しいことを書いて、この説明はもう二度としないことにしようと思います。(DRY: Don't Repeat Yourself ですね。) 間違いの根源は、おそらく二つで

    POPとIMAP - あどけない話
  • load-path などの設定 - あどけない話

    ruby-modeの話で、append ではなく cons を使うべきだと書いたところ、使い方に悩んでいる人がいるようです。 たとえば、cons で2 つパスを追加しようとすると、 (setq load-path (cons "foo" (cons "bar" load-path))) となって見にくいです。append なら、 (setq load-path (append '("foo" "bar") load-path)) と書けます。でも、セルを無駄遣いします。こういう場合は、禁断の nconc を使うという手もあります。 (setq load-path (nconc '("foo" "bar") load-path)) しかし、"n" から始まる関数がどういう副作用を持っているのか理解していなければ、使わない方がいいでしょう。 というわけで、僕はこんなことをやっています。 (de

    load-path などの設定 - あどけない話
  • Cocoa Emacsでのフォント設定 - あどけない話

    Cocoa Emacs をそのまま使うと、等幅フォントの設定が使い物になりません。日語文字の幅は、英語文字の倍であるべきです! Web を調べても、みんな困っていることが分かっただけ。そこで自分でハックしてみましたが、到底手に負えないことが分かりました。(フォントEmacs の最も難しい部分です!) という訳で、Cocoa Emacs の Adrian Robert さんにメールしたところ、「フォント周りは半田さん」とのこと。結局、半田さんに質問しました。 そしてついに、Carbon な Emacs 22 でも CocoaEmacs 23 でも、希望通りにフォントを設定することができました。 以下がそうです。僕は、ヒラギノ丸ゴを使っています。 (setq my-font "-*-*-medium-r-normal--14-*-*-*-*-*-fontset-hiramaru")

    Cocoa Emacsでのフォント設定 - あどけない話
  • 動的型付言語とデザインパターン - あどけない話

    「具体例で説明するデザインパターン」は、よく使われている JavaScript のデザインパターンについて分りやすく説明しています。 そもそも、僕がこのブログを始めた理由は、JavaScript のデザインパターンを議論したいからでした。(今では、全然違う内容になっていますが。^^;) そして、その議論を止めたのは、動的型付言語では、デザインパターンはそんなに重要でないと気付いたからです。 きっかけは、「ハッカーと画家」です。このの 201ページには、以下のような脚注があります。 ピーター・ノーヴィッグは『デザインパターン』に挙げられた23のパターンのうち16はLispでは「全く見えないか、あるいはより簡潔である」ことを見出した。 これは、「Design Patterns in Dynamic Programming」というスライドのことです。 Java でデザインパターンがもてはやされ

    動的型付言語とデザインパターン - あどけない話
  • State モナドと疑似乱数 - あどけない話

    State モナドの利用例として疑似乱数が挙げられることがあります。たとえば、以下のように。 モナドのすべて Haskell/Understanding monads でも、State モナドの例として、疑似乱数は適切ではないと分りました。 疑似乱数は、単なる数列ですから、リストとして生成し、欲しい分だけ先頭から使えばいいんですね。Haskell は遅延評価なんですから。 rand x = (x * 7 + 5) `mod` 17 randList = iterate rand 8 take 20 randList → [8,10,7,3,9,0,5,6,13,11,14,1,12,4,16,15,8,10,7,3] まだまだ頭が命令型だと思う今日この頃。。。

    State モナドと疑似乱数 - あどけない話
  • Emacs Lisp の構造化 - あどけない話

    忌み嫌われているグローバル変数/関数をなるべく使用しないために、もう一つ小さな空間を用意している言語があります。僕のイメージでは、この空間はゆりかごです。ゆりかごの実現方法として、以下のようなものが挙げられるでしょう。 C++Java ならクラス JavaScript なら関数、あるいはオブジェクト・リテラル Scheme なら手続き(関数) Emacs Lisp も Lisp なんですから、ある関数をゆりかごにして、中に関数を定義したいところです。でも、これはできません。さて、どうするかという話です。 defun で defun defun の中で defun したいところですが、これはうまく行きません。外側の関数が実行されると、内側の関数がグローバル空間に定義されてしまうからです。 (defun foo (n) (defun bar (n) (1+ n)) (bar n)) (fbo

    Emacs Lisp の構造化 - あどけない話