Sun, 10 Oct 2010

娘さんからのメッセージ

上の娘さんがお手紙風のメッセージを口頭で伝えるっていう遊びをしていて、 お父さんあてのメッセージには、

おとうさん、いつもお仕事がんばってるね。

早く帰ってきて一緒に御飯食べたり走り回って遊んだりしようね。
一緒に暮せるといいね。

ってあった。。。(T_T) 一緒に暮してるんだけど。。。

最近の平日の朝と週末しか会ってないからそんな風に思われてたんだな。


下の娘さんには、

おとうさん、きょうもおそいねー(゜ε゜) ぶー

やら、

おとうさんあしたはくるんじゃない?

やら言われてるらしい。


娘さん達に会える時間に帰るようにしなきゃなー。


Mon, 28 Jun 2010

初めてのお泊り保育

今日は、上の娘さんの初めてのお泊り保育。

昨夜は大雨だったのでどうなることやらと思っていたけど、無事に雨も止んでほっとした。

娘のお泊まり保育というと、下記を思いだす。

すごく、父親が娘を思ってる気持が伝わってきて素敵だ。

うちの場合は、

いつも寝相の悪い娘さんは周りで寝てる子達に迷惑かけてないかな。

かな。

明日元気に帰ってくるのが楽しみだ。


Wed, 07 Apr 2010

Programming in Luaプログラミング言語Lua公式解説書

最近Luaの復習をしてるので、すごいこの本が欲しくなってるんだけど

Programming in Luaプログラミング言語Lua公式解説書

ASIN: 4048677977


冷静に考えると、これって、洋書の

Programming in Lua

ASIN: 8590379825


の翻訳なんだよね?amazon見てもちゃんと書いてないけど。まぁ翻訳者名がある時点で気 付けよって話なのかもしれませんが。

危うく買うとこだった。4850円もするのに。

以前購入して数ページしか読んでいない洋書を読むことにします。


Thu, 01 Apr 2010

Luaで空テーブルかどうか判定する

先日の梅.py mini-hackathon にて、ちらっとLuaの紹介をさせてもらったのですが、 その際に、

不満3. tableが空かどうかわかりにくい。

python風に

data = {}
if data == {} then
  print("table is empty")
end

って書くとはまるよ。比較は値ではなく参照先を比較しているので、data == {} は
Trueにならない。

って話をしていて、そういえば、じゃぁそれに対してどうしていたのかっていうのが 見つけられなかったけど、当時書いたコードを見つけたのでメモ。

table.empty =
  function (tabledata)
    if not next(tabledata) then
      return true
    else
      return false
    end
  end

と、テーブル用関数にemptyを追加して、

if table.empty(data) then
  print ("table is empty")
end

とやっていました。empty()の中身は、引数で与えられたtableデータに対してイテレータ 関数が値を返すかどうかで、tableデータに中身があるかどうかを判定していました。

当時は結構はまってたので下記のような関数を自分で書いていました。

  • builtin関数
    • map
    • filter
    • any
  • table関数
    • iter
    • find
    • sub
    • reverse
  • string関数
    • split
    • list
  • system関数にアクセスするC拡張
    • open
    • fdopen
    • seek
    • read
    • write
    • close
    • sendto
    • recvfrom
    • bind
    • connect
    • listen
    • accept
    • setblocking
    • select
    • gethostbyname
  • system関数を使ったhttpアクセスモジュール

って感じです。


Fri, 19 Mar 2010

Git hookと、HgからGitへの変換

gitのhookを使ってみた

やりたいのは、下記の3つのリポジトリがあって、

  • bare
  • remote1
  • remote2

remote1を編集してbareにpushしたらremote2にもその変更を反映させたい。

bareからremote-bにpushする方法だと、remote2側でreset等を実施しない限りファイ ルが更新されないので、その方法ではうまくない。

ということで、bareリポジトリにpushされたらそれをトリガに、remote2側からpullす ることにする。

bare/.git/hooks にあるpost-receive.sampleをpost-receiveに名前を変える。 hookのタイミングとしてはpost-updateでもいいらしいが、こっちは使うなと書いてあ るのでpost-receiveを使うこととする。

# post-receive
BARE_DIR=$PWD
cd remote2_dir
git --git-dir=.git pull $BARE_DIR

--git-dir=.git 重要。これでかなりはまった。

参考: @ Git で集中リポジトリーに push したら、自動でワーク・ディレクトリーにも反映させる

追記:今探したらそのものずばりのがみつかった。。。なんという。

フック(hook)を使ってコミットしたら自動的にデプロイするようにする - チナミニ


Hgからgitへの変換

ちょっと前までMercurialを使ってきたが、最近をgitを使うようになったらMercurial の使い方を忘れてきてしまって使いにくくなってしまったので、Mercurialのリポジト リをGitのリポジトリに変換してみた。

hg から git へファストエクスポート にあった"fast-export" を使ってみた。

最初Mercurialのリポジトリで、git initして、そこでhg->git変換を実施したらファイ ルがざくざく消えていってびっくりした。

なので、Mercurialのリポジトリとは別の場所にgit用のディレクトリを作って、そこに 変換した方がいい。

hg-fast-export.txtには、hg-reset.shがどうとか書いてあるけどこれはよくわからな いし、使わなかった。

> hg clone xxxx-hg
> mkdir xxxx-git
> cd xxxx-git
> git init
> hg-fast-import.sh -r ../xxxx-hg

> ls
.git

.git以下が作成されるだけなので、以下の用にcloneして使った。

> cd ..
> mkdir git-remote
> cd git-remote
> git clone ../xxxx-git

と、まぁこんな感じ。