タグ

ブックマーク / higepon.hatenablog.com (41)

  • 毎日やると決めたことを休んで良いのはどういう時だろうか? - higepon blog

    何かを「毎日やる」と決めたことは誰でもあると思う。ジョギング、ウォーキング、ストレッチ、筋トレ、勉強。僕の場合は英語の勉強。それぞれ決めた内容によって「続ける」ことの困難さには違いがある。ただし継続の難しさは理解してもらえるだろう。朝起きたらだるかった。何となくサボってしまった。飲み会があったのでできなかった。いくらでも「できない」理由は見つかる。僕がよく考えるのはどういう場合に「毎日やる」ことをサボってしまっても自分で自分を許せるだろうかという疑問。 まずは簡単な計算をしてみよう。飲み会のある日にはやらなくてよいとする。仮に飲み会が2週間に1回ほどだとすると月に2回。1年だと 12/365*100 = 3.2% にあたる 12 日は「やらない」ことになる。飲み会の回数が週1程度だと 6.4 % になる。何となくだが「飲み会のある日にやらなくてよい」というルールはサボり過ぎのように感じてし

    毎日やると決めたことを休んで良いのはどういう時だろうか? - higepon blog
    joan9
    joan9 2014/03/11
    毎日やると決めたことを休んで良いのはどういう時だろうか? - Higepon’s blog
  • TaPLを買うか迷い中 - higepon blog

    id:alohakunさんに進められた、「Types and Programming Languages」を買うか迷い中。 9000円と値が張るため、自分が読みきれるかが心配。 計算論 計算可能性とラムダ計算は図書館で予約した。 読んでみて良さそうなら購入して手元に置く。 追記 計算論 計算可能性とラムダ計算、借りてきた。これは厳しい。。

    TaPLを買うか迷い中 - higepon blog
  • Emacs の sorter.el を OSX で動かす - higepon blog

    dired を拡張する sorter.el を便利に使っているのだが sort by 拡張子が動かなくて不便。 OSX の ls は GNU ls と違い、拡張子によるソート -X オプションをサポートしていないのが原因。 解決策は GNU coreutils をインストールし gls を使うこと。 % brew install coreutils .emacs に (setq insert-directory-program "gls")

    Emacs の sorter.el を OSX で動かす - higepon blog
  • OSX に Mosh をインストール - higepon blog

  • 楽しいプログラミング - higepon blog

    最近やっと Mona 上でコードが書けるようになってきた。長いときは1-2時間 Mona の上だけでコーディング。Mona API のプリミティブである monapi-name-xxx, monapi-message-xxx, monapi-stream-xxx 系を整備したのでマイクロカーネルで言うところの server を Scheme で書ける。 今やってるのは shell を Mosh で置き換える作業。Mosh で shell server を書く。Mosh で書いたクライアントからサーバーにつないで意図した動作かテストしてる。 コードを直してテストの繰り返し。ときどき Mosh に足りない API が見つかるのでそのときは OS を落としてカーネルや API を書き換えてリビルド再起動。 編集再開。ここまで来るのは当に長かったけど楽しい。楽しすぎる。

    楽しいプログラミング - higepon blog
    joan9
    joan9 2011/05/28
  • 分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました。(mio-0.0.1-alpha.tar.gz) Mio とは何か? 範囲検索(range query) が出来る KVS です。例えば「key が "1000"〜"2000" にあるものを昇順に10件取り出す」という検索が可能です。 Mio は memcached 互換プロトコルを実装しているので、多くのプログラミング言語から簡単にアクセスする事が可能です。(後述のコード例参照) Mio のアーキテクチャ Mio は Skip Graphs(スキップグラフ)というアルゴリズムに基づいて実装されています。詳細はErlang 分散システム勉強会での発表資料 Mio - a distributed Skip Graph based orderd KVSをご参照ください。 インストール 最新の Erlang をイ

    分散 Key-Value ストア mio-0.0.1alpha をリリースしました - higepon blog
  • ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-

    前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹

    joan9
    joan9 2010/06/10
    python勉強仕様と思ってるから、こういう風にpython本読んで書いてみようかな
  • Scheme コードバトンまとめページ - higepon blog

    バトン参加表明中 emasaka さん[done] leque さん[done] Kazuhiro MUSASHI (kazu634)さん[done] naoya_t さん @nkoguro さん(2月ならOK) Scheme id:higepon: 第1回 Scheme コードバトンのお知らせ gist: 273431 - GitHub id:yad-EL さん: Schemeコードバトンに参加しました - ヤドカリデンキ商会(第一倉庫) gist: 273551 - GitHub さっそくバトンの醍醐味であるダイナミックな書き換えが発揮され Gauche 向けに書き換えられました。second -> cadr ですが個人的には first, second が好き。 Gauche なら (use srfi-1) 。入出力のバッファリングは確かにはまるポイントかも。call/cc はわざと

    Scheme コードバトンまとめページ - higepon blog
    joan9
    joan9 2010/01/12
  • shell-command-to-string - higepon blog

    昨日作ったLispで困っていたのが、実行した外部コマンドの出力を変数に入れる部分です。 結局*perldoc*というバッファを経由したのですが、shell-command-to-stringというfunctionがあることが通りすがりさんの改良版を見ていて気づきました。 M-x describe-functionとM-x describe-key, M-x describe-bindings以外に、こんな関数ないかなぁとかって調べる方法を確立できていないのが問題だなぁ。 通りすがりさん提供版はモジュールが存在しないばあいのエラー処理や、モジュール文字列の範囲判定などが改善されているようです。 (put ’perl-module-thing ’end-op (lambda () (re-search-forward ”??=[a-zA-Z][a-zA-Z0-9_:]*” nil t))) (

    shell-command-to-string - higepon blog
  • 必要のないときは migemo をOFFにしたい - higepon blog

    語でない文書では isearch 時に migemo をオフにするを設定してみました。 自分の場合は utf-8 もON対象にしないといけないので、ちょっとだけ改造。 mule-utf-8を入れました。 (defun my-language-check (lang) (let ((coding (coding-system-base buffer-file-coding-system))) (memq coding (cons 'mule-utf-8 (cdr (assoc 'coding-system (assoc lang language-info-alist))))))) ;; 日語じゃないときは migemo を使わない (eval-after-load "migemo" '(progn (defadvice isearch-mode (before my-migemo-o

    必要のないときは migemo をOFFにしたい - higepon blog
  • プログラミングErlang 読了 - higepon blog

    プログラミングErlang を読み終えた。読んだきっかけは、rui さんによる Erlang のすすめだったと思う。 java.util.concurrent に感動して、Shibuya.lisp の宴会で、同じくJava並行処理プログラミングを読んだ ruiさんと「あれすごいよねー。という話に」。 Mosh のスレッド対応は java.util.concurrent のようなものにしたいと考えていると話したところ、「 それならば、まずその前に Erlang のプロセスモデルを勉強した方がいいよ」と教えてくださったのだ。 期待値がとても高かったのだが、それを上回って当にすばらしいと言語だった。一時期皆を熱くさせた理由もよく分かる。 Erlang は関数言語なのもあって、万人向けのではないが、自分が作るものには大きな影響を与えることは間違いない。 特にメッセージパッシングスタイルを採用

    プログラミングErlang 読了 - higepon blog
    joan9
    joan9 2009/05/10
  • Mosh 0.1.0 をリリースしました - higepon blog

    Mosh 0.1.0 をリリースしました。これは大きな一区切りとなる安定版のリリースです。 Mosh は R6RS 完全準拠となりました。*1 ソースコードダウンロード。 Windows 用インストーラ。 追加・変更点は以下の通りです。 新しいリファレンスマニュアルを追加 Socket API を追加 詳細はリファレンスマニュアル Socketまたは、example/irc-client.ss を参照ください FFI (Foreign Function Interface) を追加 FFI は Mosh から C 言語のライブラリを呼び出す仕組みです リファレンスマニュアル Foreign Function Interface または test/ffi.scm を参照ください R6RS の以下の仕様を実装(ココサブさん、ひげぽんによる) 数値(複素数含む)、算術計算。 ファイル I/O パ

    joan9
    joan9 2009/05/05
  • SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-

    計算機プログラムの構造と解釈posted with amazlet on 06.04.15 Gerald Jay Sussman Julie Sussman Harold Abelson 和田 英一 ピアソンエデュケーション (2000/02) 売り上げランキング: 56,404 Amazon.co.jp で詳細を見る 自分が「計算機プログラムの構造と解釈」というを勉強していった過程をまとめています。 この質は、翻訳の悪さでも難しい数学でもないです。 なんと伝えたらよいのだろうか。 全部読み終えたときにまとめたいと思います。 →読み終わったのでまとめました。「「計算機プログラムの構造と解釈(SICP)」を読み終えて」 読み終えたら次のステップとしてはOn Lispなどがおすすめです。 目次 関数型言語の勉強にSICPを読もう - (1) SICPを読み始めた理由 関数型言語の勉強に

    SICP関数型言語の勉強に「計算機プログラムの構造と解釈」を読もう - ひげぽん OSとか作っちゃうかMona-
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

    Java並行処理プログラミングを読み終えた。ここ 1 年に読んだ技術書の中でダントツのベスト。(2位はWorking Effectively With Legacy Code) 「Javaだから関係ない」と思った人にこそ読んで欲しい。僕もここ数年 Java のコードなど一切書いていないが、このを読んで得たものは非常に大きかった。 このでは マルチスレッドプログラミングにおける問題と背景、その対処方法 Java が提供している API の設計と実装 を解説している。分かりやすさとレベルの高さを兼ね備えたとても良い。翻訳も最高。 僕はこのを読んで、Java の並行処理プログラミングは、想像を遙かに超えて進化している事に驚きを隠せなかった。何回も twitterJava すげーと叫んだ。 これを読んでしまうと、最近僕が熱心な Scheme も含めて、自分の身の回りにあるプログ

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • 聞いてくれ Mosh に信じられないことが起きたんだ - higepon blog

    shiro さんにアドバイスいただいた件。top-level の束縛の lookup を Gloc 方式に変更。 そして make bench (ベンチマーク)。 グラフは Y 軸が msec 、x 軸は revision 番号。 リリース当初から計測している fib(31), tak, triangle, takl において Gauche より速くなった。グラフの角度おかしいだろ。常識的に考えて。Ypsilon には tak で負けているがそれは問題ではない。 当に驚いて腰を抜かしそうになった。この事件の衝撃度が伝わるだろうか。この日を夢見てずっとチューニングしてきたのだがこんな展開が待っていようとは。 いずれ抜かれるのかもしれないが、当にこれはすごい事なんだよ。そう叫びたい。

    聞いてくれ Mosh に信じられないことが起きたんだ - higepon blog
  • ひげぽん OSとか作っちゃうかMona- - Emacs + GLOBALでソース読みを快適に

    ネットワークサーバー実装のためにuIPのソースを読もう。 NICドライバの移植のためにFreeBSDのソースを読もう。 ということで以前使っていた etags を使おうと思ったがキーバインド忘れた。 そして etags はなんだかいろいろ不満点があった気がするので GLOBALを使ってみることに。 以前GLOBALは出力をHTMLにして使ったことがあるのだが、最近EmacsにどっぷりなのでEmacsから使ってみることに。 0.GLOBALって何? GNU GLOBAL は、ソースコードに索引付けを行うことで、大規模システムのハックやレビューを効率化するソフトウエアです。 ソースファイル中の指定したシンボルを高速に見つけ出し、素早くその場所に移動することができます。多くのサブディレクトリからなり、#ifdef や main() 関数を沢山含んでいるような、いわゆる巨大なプロジェクトをハックす

    ひげぽん OSとか作っちゃうかMona- - Emacs + GLOBALでソース読みを快適に
  • 英語の文章を読むスピードを上げたい - higepon blog

    Working Effectively Legacy Code を読んだり、comp.lang.scheme で盛り上がっている長いスレッドを読んだりするうちに英語の文章を読むスピードを上げたいと強く思うようになった。 日常的に英語の文章を読むような習慣はない。必要に迫られて論文を読んだり、英語技術記事やドキュメントを読んだり書いたりする程度。 しかし Working Effectively Legacy Code を読み(2ヶ月かかった)、次に読もうと思っているもその次も英語で書かれていることを考えると、英語の文章を読むスピードが重く効いてくることは間違いない。ということは自分の成長速度は英語の文章を読むスピードにかかっていると言っても言い過ぎではない。 読んでいる技術書なので、サマセット・モームの文章(高校の時に読まされた)のように「この表現全然分からない。」なんてことはなくて

    英語の文章を読むスピードを上げたい - higepon blog
  • 渋谷とScheme - higepon blog

    そろそろ shibuya.pm 的な Scheme or Lisp コミュニティを立ち上げる時期かもしれないと。 今日の宮川さんの発表を聞いていて思った。 という話を #Lisp_Scheme で相談した。 意外と好感触。 Scheme/Lisp の人口は都心部に集中しているのだけど、主要活動者が意外と東京にいないのがネック。こういう活動に興味のわいた人は #Lisp_Scheme かコメントで教えてくださいー。 もしくはスターでその気持ちを。 最初は20-30人の集まりで良いと思うのだよなー。 追記 盛り上がってきた。 追記2 今日 freenode の #Lisp_Scheme で 9:30 頃に話し合いが行われますー。

    渋谷とScheme - higepon blog
  • 机の上に紙とペンを広げられるかで勝負が決まる - ひげぽん OSとか作っちゃうかMona-

    そういえば昨日の飲み会で誰かが言っていて同意したのがプログラマの机の話。 机の上に紙とペンをどれだけ広げられるかで勝負が決まる。 せまい机に押し込まれて隣の人と触れ合うほど、近かったりするともうだめ。 デュアルディスプレイで得られる効率はコーディングの効率なのだけど、机に広げたノートで得られるのは考えをまとめる効率。 脳の中に展開できない何かをノートに展開ですよ。 紙とペンとか言うと、うげー古いぜとか思うかもしれないですが僕より若い優秀なエンジニアは良く紙に何か描いているなあ。(上の世代は言うまでもない)。 今使っているノートとペンを教えてくれたのは僕よりずっと若い id:kambara氏 だし。

    机の上に紙とペンを広げられるかで勝負が決まる - ひげぽん OSとか作っちゃうかMona-
    joan9
    joan9 2008/05/07
  • Re:我々全員の知的生産性を10桁上げる方法 - higepon blog

    ダシにして申し訳ないが、典型的なLisperからみたかつてのid:higeponや、現在のid:amachangの「知力」は高いとはとても言えない。例えば遅延評価のことは、SICPを読めばちゃんと書いてある。そしてこれはまともなComputer Scienceがある大学なら、一番最初に使う教科書の一つなのだ。「まとも」に教育を受けた人なら、「遅延評価童貞が許されるのは、小学生までだよねー」とか言うかもしれない。 しかし、彼らの知的生産力は10倍どころでなく高い。その過程を逐次晒しているからだ。その過程で「知力」豊かな人々の助言も得られるし、彼らの「失敗」を通して彼ら自身だけではなく、彼らのblogの読者もそこから学ぶことができる。もし読者の知的生産力の向上も彼らの知的生産力の方にカウントしたら、知的生産力の差は十倍どころか数千倍、いや数万倍のオーダーだろう。これを繰り返しているうちに、今度

    Re:我々全員の知的生産性を10桁上げる方法 - higepon blog
    joan9
    joan9 2008/05/07