タグ

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

  • 毎朝5時に起きてコードを書くソフトウェアエンジニア - higepon blog

    毎朝5時に起きて出勤前にコードを書くという習慣を始めた。2週間経ったのでまとめてみようと思う。この記録が小さい子持ちの30代パパ・ママエンジニアに役立つとうれしい。多分独身で若い人には役に立たない。 始める前に抱えていた問題 好きなコードを書きたい。勉強したい。そう思っても以下の理由により以前とは比べられないほどに時間がとれなくなってしまった。 子供に可能な限り時間を使いたい。結果的に自分の時間は減る コードを書く自由時間が極端に少ない 1人になれる時間がほとんど無い 家で10分以上集中できない。こどもが遊ぼう!って誘ってくるとか 子供に話かかられたり質問されたら出来る限り応えたい とにかく疲れやすい 以下のような典型的な1日。 朝は 6:30 頃に早起きの息子に起こされる。1人で起きて絵などを読める歳だが、静かに起きることは稀だ。トイレに行きたいとか。何かが見つからない。何だかんだで同

    毎朝5時に起きてコードを書くソフトウェアエンジニア - higepon blog
    tyru
    tyru 2014/06/24
    前やってた。最近遅寝遅起に戻っちゃってるなぁ…/やっぱどっかでリセットしないと、遅く起きても間に合っちゃうって思うとズルズルいっちゃうんだよね…
  • 実際に英語を仕事で使うようになって、英語の勉強について分かったこと1つ - higepon blog

    実際に英語を使う機会がほとんどないときに、将来の備えとして英語を勉強していた(シャドーウィング、ディクテーション、単語)。その時には必要そうだと思ったこと、人に勧められたモノに必死に取り組んでた。それらは全て役だっているし力のかけ具合も適切だったと思う。 ただし他にもやっておいたほうが良かったことと思っていることが1つあるので紹介。 それはコミュニケーションの中で発生する短いやりとり(同意、意見を聞く、質問)などに使われる表現の勉強。 例)Sure. Go ahead. Looks good to me. I don't think so. I guess ... I would say that ... Let me confirm ... などなど。 これらがとっさに出てくるようになるとうれしい(まだ出てこない)。 ので以下2冊で勉強中。まだ道のりは長い。経験者の方はいい勉強方法・

    実際に英語を仕事で使うようになって、英語の勉強について分かったこと1つ - higepon blog
    tyru
    tyru 2012/09/12
  • Twitter に入社しました - higepon blog

    Twitter に入って 1 ヶ月が経ちました。現在研修やらでサンフランシスコに来ています。小さいながらも自分が書いたコードが Twitter 上で動いているのを見るのはとても不思議な感じ。 Twitter の Username は @higepon なのでぜひフォローしてね。

    Twitter に入社しました - higepon blog
  • もう flex 使わない、これからは re2c - ひげぽん OSとか作っちゃうかMona-

    flex & bison をやめて re2c & bison にしたらパーサが速くなった。re2c は UTF32 の入力に対応しているので非常にすっきり書けるし設計も歪まない。 re2c is a tool for writing very fast and very flexible scanners. Unlike any other such tool, re2c focuses on generating high efficient code for regular expression matching. re2c は flex とは互換がなく独自のマクロなどを定義しなくてはいけないので注意。サンプルとドキュメントの少ないのもマイナスポイント。 それこそ UTF32 を利用している例なんて見つけられなかった。 re2c で多分難しいのは YYFILL (flex でいうところ

    もう flex 使わない、これからは re2c - ひげぽん OSとか作っちゃうかMona-
    tyru
    tyru 2012/02/17
  • ディレクトリを fopen の "r" で開く - higepon blog

    「ディレクトリを fopen の "r" で開く」事が成功する前提のコードを見かけた。 Unix 系だとたまたま動くという理解で良いんだよね? コード if ((ffp = fopen(fn, "r")) == NULL) { if (errno == ENOENT) return (FIOFNF); return (FIOERR); } /* If 'fn' is a directory open it with dired. */ if (fisdir(fn) == TRUE) return (FIODIR);

    ディレクトリを fopen の "r" で開く - higepon blog
  • 日本人の一週間 by Google さん - higepon blog

    曜日で Google 検索した場合のサジェストを並べてみました。素晴らしい結果。 おまけ ブラウザの言語をEnglish(US) にした場合。

    日本人の一週間 by Google さん - higepon blog
  • lambda 式を短くする shorten ライブラリを公開 - higepon blog

    lambda 式を短くするshorten ライブラリを公開しました。 このライブラリは元々 Shiro さんが「Gauche Devlog - Shorter names」で公開されていたアイデアを R6RS ライブラリとして実装したものです。実装は id:mjt さんの「Gaucheのlambda shorter-namesをR6RSで実装する - .mjtの日記復帰計画」が元になっています。 なお元々のアイデアであった ^ や ^a 以外に、(lambda a* body ...) に相当する (^a* body ...) が追加されています。 使い方 (import (rnrs) (shorten)) (map (^(x y) (+ x y)) '(1 2 3 4) '(1 2 3 4)) ;; (map (lambda (x y) (+ x y)) '(1 2 3 4) '(1 2

    lambda 式を短くする shorten ライブラリを公開 - higepon blog
  • operator newとoperator deleteを書くときは規約を守ろう 8項 - higepon blog

    operator new を自分で作成するならば、いろいろ約束を守ろうという話。 自分もMonaでなんとなく new をユーザーランド向けに実装しているが以下のルールを一部守っていない気がする。 newのお約束 0byteの要求に対しても正規のポインタを返さなければならない(実装例では0byte要求は1byte要求として扱っている) エラー処理関数を呼ばなければならない std::bad_allocを投げないといけない Monaは例外をサポートしていないので今のところ無理p deleteのお約束 NULLポインタのdeleteを安全に行わせる。 つまりこれは よく見かけるコード if (somePointer != NULL) delete somePointer; は これでよい delete somePointer;ということになる。 追記: Monaのユーザランドで、newの0割り当

    operator newとoperator deleteを書くときは規約を守ろう 8項 - higepon blog
  • Autotools の configure.ac と Makefile.am をさらしてみる - higepon blog

    多くの方に助けていただきながら、Autotools と格闘し何とか動くようになりましたので configure.inconfigure.ac と Makefile.am をさらします。 公開の意図ですが 初級以上の中級以下のサンプルがとても少ない(初級だと物足りず、オープンソースの大きなプロジェクトのものは読めない) 特殊な事情をどう乗り切ったかも合わせて分かる 実際に動いている新しいものである(Autotools はバージョンアップが激しく Web 上の資料が古くなっている場合が多い) 参考になるドキュメント 以下のドキュメントを参考にしました。 資料を読んでいて手元のものと動作が違うようでしたら資料が古いことを疑った方が良いです。 新しめの Autotools (Autoconf&Automake) を使ってみよう Automake の index Autoconf の index h

    Autotools の configure.ac と Makefile.am をさらしてみる - higepon blog
  • C++ で virtual public - higepon blog

    virtual public な継承。初めて使った。 class BinaryInputPort : virtual public BinaryPort class BinaryOutputPort : virtual public BinaryPort class BinaryInputOutputPort : public BinaryInputPort, public BinaryOutputPort 合ってる?それにしても見事な菱形継承だ(良いのか?)

    C++ で virtual public - higepon blog
    tyru
    tyru 2009/06/20
    virtual public。仮想基本クラスとか言うらしい。
  • ひげぽん OSとか作っちゃうかMona- - ハッカー養成塾:ハッカーへの遠回り

    オープンソースマガジン2007年1月号に向けて書いた記事の元の原稿です。 前回のアルファギーク舘野君から、バトンを渡されたひげぽんです。 Mona OSというオープンソースOSを開発しています。 僕はハッカーと呼ばれるには実力不足ですが、知り合いのスゴ腕ハッカーに少しでも追いつこうと日々実践していることをいくつか紹介します。 ハッカーに学ぶ オンラインでもオフラインでも構いません、自分よりも優れているハッカーを探してお手とすることから始めましょう。 彼(または彼女)が何を勉強し、発言し、考えているかを観察することで多くのことを学べるはずです。 周りにハッカーがいなければ、勉強会・カンファレンスに参加したり、ブログを利用してコミュニケーションをとるのもひとつの方法です。 「ハッカーに交わればハッカーになる」とまではうまくいきませんが、周りは自分より優秀な人ばかりであるという環境を作り上げる

    ひげぽん OSとか作っちゃうかMona- - ハッカー養成塾:ハッカーへの遠回り
  • 出産後に必要な手続きまとめ 2009年 - higepon blog

    手続き 届け出場所 期限 必要なもの 備考 出生届 市町村役場 14日以内 母子手帳、印鑑、出生証明書 なし 出生の連絡 はがき投函か、市町村役場 なるべく早く 母子手帳に付いているはがき なし 出産一時金 勤め先 なるべく早く 母子手帳、印鑑 なし 児童手当 市町村役場 出生届けと同時 印鑑、通帳 1人につき5000〜10000円/月。所得制限あり、東京都渋谷区の例。国の制度らしい。 健康保険加入被扶養者へ 勤め先など なるべく早く 印鑑、申請書類 児童医療費助成 市町村役場 なるべく早く 所得制限あり。東京では乳幼児医療費助成? 入院助産費用 市町村役場 出産費用にお困りのかた。所得制限あり 育児休業給付金 勤務先またはハローワーク 関連:育児休業中の保険料免除、育児休業中の厚生年金保険料の免除、育児休業者職場復帰給付金 確定申告(医療費控除) 税務署 確定申告時期 医療費・交通費のレ

    出産後に必要な手続きまとめ 2009年 - higepon blog
    tyru
    tyru 2009/06/14
    とりあえずlifeタグ
  • /*NOTREACHED */の効果を知らなかった件 - higepon blog

    がある。だから、コメントのかたちで /* NOTREACHED */ と書いてやると、コンパイラはこのコメントを認識し、このコメントには制御が移らないことを理解する。だからlongjmp 呼び出しをするユーザ関数の呼び出しの後には、このコメントを入れておくべきであるし、また、同様な戻らない関数 exec() などにもこれは有用なわけである。 noreturnな attributeとかなら知っていたけど、これは知らなかったな。 知らずに他のソースの真似して、それっぽく書いていたんだけど意味ねぇええ。 nobita% fxgm "cpp" "not reached" ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* not reached */ ./core/kernel/Mutex.cpp: /* n

    /*NOTREACHED */の効果を知らなかった件 - higepon blog
    tyru
    tyru 2009/06/13
  • gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-

    以前同僚の光成さんが、以下の warning オプションを使っていると書かれていたのが気になったので調べてみました。 -Wall -W -Wformat=2 -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wfloat-equal -Wpointer-arith もし上記以外にも良さげなオプションがありましたら教えてください<(_ _)> 情報源 man と info と http://sugarpot.sakura.ne.jp/yuno/?gcc%2Fwarning 。 最初は日語版の man だけを見ていたのですが、id:kazuhooku に info を見るべしと教わりました。 man も info もそうですが、日語版は情報が少なかったりするので注意。 LANG=C man gccなどとしましょう。 -Wforma

    gcc の -Wall 以外の警告オプション - ひげぽん OSとか作っちゃうかMona-
  • プログラミングErlang 読了 - higepon blog

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

    プログラミングErlang 読了 - higepon blog
  • Emacs + GDB チートシート - higepon blog

    Emacs + GDB を利用したいならば、何よりも GNU Emacs Manual: Debuggers(英語) を読むことを強くおすすめします。 和訳も存在しますが内容が古く、マウスを利用した操作やグラフィカルな機能についての記述がありませんでした。 マニュアルを読んで理解したあとは実践で覚えていくわけですが、以下にまとめたチートシートを利用すれば時間が節約できるかもしれません。 もしも便利な機能に関して漏れがあれば是非教えてください。 .emacs ;;; GDB 関連 ;;; 有用なバッファを開くモード (setq gdb-many-windows t) ;;; 変数の上にマウスカーソルを置くと値を表示 (add-hook 'gdb-mode-hook '(lambda () (gud-tooltip-mode t))) ;;; I/O バッファを表示 (setq gdb-use

    Emacs + GDB チートシート - higepon blog
  • 良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog

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

    良いプログラマを目指すなら「Java並行処理プログラミング」は今すぐ読むべき - higepon blog
  • OnLisp を読んで Scheme と Common Lisp の違いにはまる - higepon blog

    On Lispの、とある Common Lisp のコードを Scheme に変換して打ち込んでいたのですが if の違いに気づかずハマりました。 if は Scheme でも Common Lisp でも (if test consequent alternate) のような形式です。 ただ alternate が省略されたときの振舞いが違うようです。 Scheme では R5RS でその場合の戻り値は未規定であると明記されています。 Gauche の場合は gosh> (if #f #t) => #<undef> #が返ります。 Common Lisp は全然詳しくないのですが手元の gcl では >>(if nil t) NIL NIL が返るようです。 これが何で問題かというと NIL は明らかに「偽」なのですが、未規定な値は「真」とも「偽」とも決められず実装依存です。 実際 Ga

    OnLisp を読んで Scheme と Common Lisp の違いにはまる - higepon blog
  • マインドマップの例 - higepon blog

    id:rdera さんからリクエストを頂いたのでマインドマップの例を公開します。他の方からも見たいと言われていたのですが気恥ずかしくて断っていましたが、このようなものでも参考になるのであればと思い公開。 サイズを小さくしていますがご容赦ください。これはパタヘネの CPU パイプラインの解説をマインドマップにしたものです。今数えたら 110 枚ほどマインドマップが手元にありました。思ったよりも少ないですね。(復習するのには多いのですが)

    マインドマップの例 - higepon blog
  • オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-

    オンラインで授業を公開している大学とその講義の一覧のまとめです。 もし他にもご存知の方がいらっしゃれば、コメントやトラックバックなどで教えていただけるとうれしいです。 まとめ 英語ができるならば MIT 最強。国内は東大が比較的がんばっています。 (追記)国内ではWIDEのSOIががんばっているとのご指摘をいただきました。確かに素晴らしい講義がたくさんです。(表に追加しました) 講義はすぐそこに開かれているので、あとは「勉強方法」に従い講義を受けるだけだと思いました。 大学名のリンク先が講義公開 URL になっています。([高等教育シリーズ] 大学で勉強する方法) 大学名 公開形式 講義の例 備考 MIT 動画、講義資料 East Asia in the World、Japan in the Age of the Samurai 1800以上の講義が公開。中国語やポルトガル語に翻訳されてい

    オンラインで動画・音声・教科書を無料で公開している大学の講義・授業まとめ - ひげぽん OSとか作っちゃうかMona-