タグ

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

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

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

    毎朝5時に起きてコードを書くソフトウェアエンジニア - higepon blog
  • 海外ドラマ「フレンズ」のディクテーションとフレーズの暗記を1ヶ月続ける方法 - higepon blog

    ちょうど1ヶ月前。フレンズのディクテーションとフレーズの暗記を毎日やることを決心した。その成果を1か月後にブログに書くというイベントをカレンダーに登録した。なのでこのブログを書いている。 なぜやるのか? 1:1 ではなく大人数での会話の聞き取りについていけないことがよくあるから。特に仕事とは関係のない話題の場合に顕著。これはリスニング能力の問題。 日常のふとした言い回しのストックが足りないと感じていたから。例えば「病院どうだった?」「あ。僕がそっちに行くよ」「もったいないねー」など。 これらのフレーズは聞き取ることは簡単。そして意味も簡単に類推できる。しかし自分の口からは出てこない。なぜなら知らないから。 なぜフレンズか? 英語の先生、英語がネイティブではない外国人の同僚、多くの人がすすめてくれたから。そしてDVD 全巻持っているくらいフレンズが好きだから。 工夫した点 続けられる仕組みづ

    海外ドラマ「フレンズ」のディクテーションとフレーズの暗記を1ヶ月続ける方法 - higepon blog
  • 2.Trueオブジェクト Oddball など - v8 ソースコードリーディング - higepon blog

    include/v8.h プリミティブ型の定義があるので見てみよう。 Handle GC で追跡できるようにオブジェクトをハンドルで管理する。 GC がオブジェクトを移動する可能性があるので参照ではなくてハンドル。 Handle は値渡しで使われ heap に確保されない Handle は Local と Persistent 2種類ある 後述 Local 軽量な Handle スタックに allocate される HandleScope で寿命管理される Persistent Handle HandleScope scope とは Handle のコンテナ スタックに allocate される Script コンパイル済み JavaScript 。 Script::compile でコンパイル。 Run New で作られた Script は Context independent Com

    2.Trueオブジェクト Oddball など - v8 ソースコードリーディング - higepon blog
    nsyee
    nsyee 2011/07/27
  • 1.ディレクトリ構成 - v8 ソースコードリーディング - higepon blog

    nsyee
    nsyee 2011/07/27
  • Facebook アプリを作ってみて感じたこと - higepon blog

    M さんから >ところでfacebookアプリづくりはどうですか?どのへんがfunでなにがugly? と聞かれたので書いてみました。アプリを作ってまだ数週間なのでしばらく経つと考えが変わるかもしれませんが。 fun 自由(開発言語、サーバー、やれること) Graph API はとても簡単。OAuth 2.0 もすべてのオブジェクトが id を持つみたいな思想も。 ユーザーが思っているよりも簡単・気軽にユーザーのデータが取れる。 いいねとの連携 実名っぽい使われ方をしているならではのアプリが作れる これは結構大きい。SameAge もユーザーが入力している誕生日を信用している。 今までのウェブサービスだったら登録時に警戒してある程度うそユーザー情報を入力していた。 ugly ドキュメントがリンク切れとかよくある FB 独自テクノロジで何が推奨で、何が非推奨か分かりづらい(FBML使ってなくて

    Facebook アプリを作ってみて感じたこと - higepon blog
  • C++で関数呼出しを視覚化 コールグラフを出力してみよう - higepon blog

    「Graphvizによるファンクション・コールの視覚化」を参考に、今開発中の Scheme インタプリタのコールグラフを出力してみた。 pvtrace のインストール http://www.mtjones.com/developerworks/pvtrace.zip 大きめの trace をしたいのであらかじめいくつかソースを書き換える。 symbols.h #define MAX_FUNCTIONS 2000 // 元は 200 だった stack.c #define MAX_ELEMENTS 50000 // 元は 500 だった インストール $ make $ sudo make install graphviz のインストール $ sudo apt-get install graphviz ターゲットのコンパイル 今回は Scheme のインタプリタがターゲット。 CXXFLAGS

    C++で関数呼出しを視覚化 コールグラフを出力してみよう - higepon blog
  • Foreign Function Interface をいくつか見てまわる - higepon blog

    動機 VM を C++ に移植開始したのだけど、以前 M さんから指摘のあった C/C++ を呼び出すインターフェースもしくはその逆、つまりForeign Function Interface について考えるなら今しかないので考えよう。 同年代のスーパープログラマ M さんに「どうやって勉強したら良いだろうか?」と問うたら即答。 まずは、CommonLispのdefun-c-callableとchunkあたりを調べて 次にJavaのJNIとC#のP/Invoke周り(特にcustomのmarshalerとか)を調べて 後はrubyとかgaucheの共有ライブラリあたりしっときゃいいんじゃね? だそうです。 ひぇ。まだまだ彼には追いつける気がしない。 Common Lisp の defun-c-callable defun-c-callable は obsolete で defun-fore

    Foreign Function Interface をいくつか見てまわる - higepon blog
  • Erlang の logger の謎が見えてきた - higepon blog

    Erlang で書かれたアプリケーションの logger 。使っていると色々と疑問がわいてくる。 今思いつくだけでも error_logger という名前なのに設定で sasl とか log_mf_h など違う名前が出てくるの? error_logger の吐くログはなぜ rb で見るの?面倒だよね。 数々のプロジェクトが独自 logger を実装しているのはなぜ? など。 背景 error_logger は event manager として実装されている。ロギングは error_logger に登録された event handler が行う。 これが分かればあとは簡単。 デフォルトの event handler はログを tty に出力するだけ 起動中に Kernel Application が上記 handler を standard event handler に置き換える。同様に

    Erlang の logger の謎が見えてきた - higepon blog
  • Erlang プロジェクトの配布形態などを見る - higepon blog

  • PostgreSQL のアップグレード方法について - higepon blog

    背景 PostgreSQL はメージャバージョンアップでデータレイアウトが変更される事がある。そのため動いている PostgreSQL のアップグレード時には、サーバーを一旦停止して dump & restore しなければならない。 大量のデータがある場合は、数時間/数日かかることもあり、長時間のダウンタイムが発生してしまう。 他に良い方法はないだろうか? pg_migrator http://pgfoundry.org/projects/pg-migrator EnterpriseDBに所属する、PostgreSQL のコアメンバーである、Bruce Momjian 氏や、 Heikki Linnakangas 氏によるプロジェクト。 仕組みは簡単。データレイアウトの変更影響を受けないテーブルは、そのままコピーするというもの。 変更は、型のデータレイアウト変更が多いので、その型を含まな

    PostgreSQL のアップグレード方法について - higepon blog
  • PostgreSQL の PITR(ポイントインタイムリカバリ) を試してみる - higepon blog

    PostgreSQL の PITR(ポイントインタイムリカバリ) を試してみる。 大まかな流れ 事前設定 WAL archive 設定 ベースバックアップの作成 事件発生! リカバリ WAL archive の設定 通常の WAL は不要になったら(commit/abort 時に)消えてしまうのだが、PITR のために archive directory にためるような設定にする。 通常は耐障害性を考えて、archive ディレクトリは data ディレクトリと別のディスクにすべき。 ディレクトリを作り % mkdir archive dbdata/postgresql.conf に archive directory 指定。 ファイルが決して上書きされないように test でチェックしてから archive するように書く。(マニュアル通り) archive_mode = on arch

    PostgreSQL の PITR(ポイントインタイムリカバリ) を試してみる - higepon blog
  • Ctrl-D の話 - ひげぽん OSとか作っちゃうかMona-

    Mosh の REPL が Ctrl-D で抜けられないとご指摘いただいていた件。 そもそも Ctrl-D って何だっけ?と立ち止まり調べましたが当たり前すぎて(?)記事にすらなってないので書いておきます。 ユーザーから見た Ctrl-D 入力終了を対話型のプログラムにしらせることに使う。 例えば irb から抜けるとき。 dekisugi% irb irb(main):001:0> puts "Hello" Hello => nil irb(main):002:0> # Ctrl-D で irb から抜ける その対話型プログラムが持つ exit や quit などの終了コマンドを入力するよりも楽ですね。 人によっては Ctrl-C を使う場合もあるかもしれません。(そのプログラムが SIGINT をどう扱っているかに依存するので、Ctrl-c で終了しない場合もよくあります。) 追記 i

    Ctrl-D の話 - ひげぽん OSとか作っちゃうかMona-
  • Ubuntu 用に ATOK X3 for Linux をインストール - higepon blog

    Ubuntu 用に ATOK X3 for Linux買いました。 これで話すように書けるぞ。(今までは書くように書くだった。) とってもとっても快適だ。UbuntuでSCIM+Anthy とか使っている人は買うと良いかも。 長い文章を書くと快適さが全然違います。 最近の ATOK はほぼ初体験なので、こういう使い方しているよなんてのを教えてもらえるとうれしいです。 ここにまとめていこうと思います。 インストール 自分はダウンロード版を購入したのですがインストールの手順をまとめておきます。 ダウンロードした atokx3.tar.gz を解凍します。 tar zvxf atokx3.tar.gz ATOKX3 にある以下のマニュアルを読みます。 readme.html install_guide.pdf 同梱されている install_guide.pdf は古いので[037228]Ubun

    Ubuntu 用に ATOK X3 for Linux をインストール - higepon blog
  • 小黒さんのSchemeにおける glint + Emacs + flymake を試してみた - ひげぽん OSとか作っちゃうかMona-

    id:koguro:20080309:1205012807 で公開されている小黒さんの glint を試してみました。 昨日の Gauche.night で発表されていたのものですがこれを待っていました!。 こんな便利なものを作ってくれ小黒さんに感謝。 何ができるか? glint は Gauche 用に書いたソースコードの syntax チェックをしてくれます。 これと Emacs の flymake (Emacs22 からは標準で付属)を組み合わせるとソースの編集中に syntax エラーが分かります。 インストール Gauche 0.8.13 をあらかじめインストールしておいてください。他のバージョンでは動作しない可能性があるので注意してください。 wget http://homepage.mac.com/naoki.koguro/prog/codecheck/codecheck-0.

    小黒さんのSchemeにおける glint + Emacs + flymake を試してみた - ひげぽん OSとか作っちゃうかMona-
  • どこでもゆびピアノ ドレミくんが我が家にやってきた - ひげぽん OSとか作っちゃうかMona-

    小学一年生 2008年 04月号の付録がやばい。(楽天Booksだとまだ買えるようです) 「どこでもゆびピアノ ドレミくん」が付いてくるんだ。これは欲しいがさすがに買えないと思って帰宅した。 するとが「今日買ったんだけど。」と言うので見てみたら が、パソコンデスクの上に!!!!。感動した。 一方で冷静な自分もいて「屋にたくさん在庫あった?」と聞いたらまだいっぱいあったとのこと。当の読者である新小学一年生に届かなかったらまずいから。 今も昔も開けるときはどきどきする。 しっかり包装されているな。 来たー。これは。水色のバンドが短そうなんですが大丈夫ですか。 指にはめてみた。大人の指でもちゃんと入るが、2つほど問題が。 1つは指先と体を結ぶ線が短いこと。もうひとつは手首に留めるためのバンドの長さが足りない。 各指先はド〜ソの後が割り当てられていて、指を下に押し付けると電子音が鳴ります

    どこでもゆびピアノ ドレミくんが我が家にやってきた - ひげぽん OSとか作っちゃうかMona-
  • Gauche(Scheme) でデバッグをする4つの方法 - higepon blog

    Gauche でコードを書いているときにコードが意図どおりに動かないことがあります。そのような場合にデバッグする方法を4つ紹介します。 前提 まず Gauche はリリースされている最新版を使った方が良いでしょう。Linuxのディストリビューションによってはパッケージが古い場合あります。 またScheme は関数型言語なので、デバッグの単位は関数(手続き)ごとに行うことが多いです。一つ一つの手続きが意図どおり動いているのか?を調べながら進めるのが基になります。 方法1 print デバッグ Gauche には今のところデバッガがありませんから基的には print デバッグがメインとなります。単純な print デバッグから見ていきましょう。 以下のような sum という手続きで print デバッグしてみましょう。 (define (sum n) (if (= n 1) 1 (+ n

    Gauche(Scheme) でデバッグをする4つの方法 - higepon blog
  • Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-

    昨日、「test* に与えるテスト名の命名が面倒だ」と書いた所、naotoさんから gca.el という koguroさん作の Emacs Lisp を教えていただきました。 これは便利。 gca.el テストケース作成支援のためのツールを作りました(拙作のEmacs用のユーティリティに含めてあります gca-20060903.tar.gz)。 単体テストをきちんと書くのは面倒ですが、通常コードを書くときは、無意識のうちにgosh上で動作確認をしつつコードを書き進めているかと思います。この動作確認の結果を基に単体テストを作成してしまおうというのがこのツールです。 デモ 実際に動作しているデモムービーを見るとわかりやすいです。(GaucheFest:koguroにあります) デモムービー(mov形式) 4.8MB デモムービー(wmv形式) 2.4MB インストール gca.el の先頭に書

    Gauche でテスト作成支援 gca.el - ひげぽん OSとか作っちゃうかMona-
  • ひげぽん OSとか作っちゃうかMona- - Subversionの話

    Subversion を使うようになって数年が経ちますが、最近 svn diff/status/log/merge などのコマンドに熟達してきた。 気軽に ブランチを作る マージする コードを元のバージョンに戻す 問題となるコードを diff で調べる などができるようになって、作業効率が上がったり、こまめにコミットさえしておけば、あとからどうにでもなるので精神的にもかなり楽になった。 この「気軽に」ってのがとても重要。 以前だって、マージの概念やいつでも好きなバージョンに戻せること、diff を表示することが出来るのは知っていたし、たまに使っていたりもした。 ただ使う場合は コマンドをWebで調べる おそるおそる試してみる 失敗して check out しなおしで時間をロス などがありストレスがたまりがちで、結果的にこれら有用な機能を使うのを無意識に避けていたなと、振り返ってみると気づく

    ひげぽん OSとか作っちゃうかMona- - Subversionの話
  • USBキーボード ウルトラナビ付き - ひげぽん OSとか作っちゃうかMona-

    会社用にUSBキーボード ウルトラナビ付を買ってもらいました。 マウス不要になり、ウィンドウズキーもない、ホームポジションから手が動かなくて快適。 Ubuntu用の設定はUbuntuでのトラックポイント最適化 - Voxを参考に。 /etc/X11/xorg.conf Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" Option "SendCoreEvents" "true" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "HorizScrollDelta" "0" Option "SHMConfig" "true" Option "EmulateWheel" "true" Option "EmulateWhe

  • 1