2015-12-29

堀江貴文(2011)『お金はいつも正しい』双葉社

立ち読みで読了した。おもしろい。マネーリテラシーの本。お金の教科書。人生はお金で苦労するものだと思っている人は手に取るべき。いい本だよ。2-3万の靴を買うのに躊躇していた自分がバカみたいだ。

  • お金は信用。少しずつ背伸びして仕事をつかんでいくことで、信用を蓄積していく。
  • ただ貯金していても無駄。保守的に大人しく生きていると、あっという間に老いる。お金は使うことに意味がある。自己投資して、もっと稼げるようになること。
  • 無目的な自己投資は無駄。短期的にゴールを達成してゆけ。さもなくば、ただの趣味。


読んでいると、会社勤めをやめろとか、自己投資を怠るなとか、「金持ち父さん貧乏父さん」を思い出すところが多い。「金持ち父さん貧乏父さん」は自己啓発的な小説にすぎないが、こちらはホリエモンの本音が書いてあるので、読み応えが違う。

自分は小さいころから、「お金を稼ぐのは大変だ」、「自分にはお金を稼げない」、「がんばって貯金していかないと」などと思っていた。むしろ、それ以外の価値観を知らなかった。そして、それは溜めるべき考えだ。誤った価値観は人生を滅ぼす。お金にとらわれず自由に生きていこう。


一日一冊読書を始めました。

12/27に一日一冊読書を始めて三日目です。三日間というのは新記録。案外いける。

正直、自分の学歴とプライドのせいで、もう自分には学ぶことがないような錯覚を心の底でしていた――そんなこと自覚することはなかったのだが――。素直になって貪欲に本を読んでみると、学ぶべきことがたくさんあった。むしろ、今の自分の未熟さに気がつけたからこそ、学ぶべきことがあることに気づいたのだろう。これからもがんばっていこう。

Predict person in a webcam realtime with Opencv3.0 and Python3.4

I created iPython notebook. Here is a python script converted by iPython nbconvert.


aaa



# coding: utf-8



# In[ ]:



import cv2

import csv

import os

from PIL import Image

import numpy as np





# In[ ]:



os.chdir(os.path.dirname(__file__))





# In[ ]:



cascPath = r'/home/watanabe/opencv/data/haarcascades/haarcascade_frontalface_default.xml'

faceCascade = cv2.CascadeClassifier(cascPath)

video_capture = cv2.VideoCapture(0)





# In[ ]:



def crop_face(path):

    """

    path = foulder containing person photos. createfolder in the same level as path and save faces:

    dataset/cls/0.jpg,

    dataset/set/cls/1.pg

    ...

    """

    if(len(os.listdir(path))==0):

        print('No photos in path.')

        return False

    for i,f in enumerate(os.listdir(path)):

        f = os.path.join(path,f)

        image = cv2.imread(f)

        gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

        faces = faceCascade.detectMultiScale(

            gray,

            scaleFactor=1.1,

            minNeighbors=5,

            minSize=(30, 30))

        if(len(faces)==0):

            continue

        for (x,y,w,h) in faces:

            face_photo_path = os.path.join(path,'{0}-x{1}.jpg'.format(i,x))

            print(face_photo_path)

            cv2.imwrite(face_photo_path, image[y:y+h,x:x+w])

          

# crop_face(r'dataset/person3')





# In[ ]:



bugWords={}

# people.csv should contain a label and a name:

# 0,Alice

# 1,Bob

# 2,Carol

# ...

with open(r'dataset/people.csv','r') as f:

    reader = csv.reader(f)

    for row in reader:

        bugWords[int(row[0])]=row[1]

        print(int(row[0]),row[1])

    else:

        print('Bug words were loaded.')

      





# In[ ]:



def create_csv(path):

    """

    create dataset.csv in the same folder.

    path

    |--trainset.csv <- created

    |--0

    |  |--0.jpg

    |  |--1.jpg

    |--1

    |  |--0.jpg

    |  |--1.jpg

    ...

    """

    path = os.path.basename(path)

    with open(os.path.join(path,'trainset.csv'), 'w', newline='') as f:

        writer = csv.writer(f)

        folders = os.listdir(path)

        cls = [i for i in folders if i.isdigit()]

        for cl in cls:

            pics = os.listdir(os.path.join(os.getcwd(),path,cl))

            for pic in pics:

                writepath = os.path.join(os.getcwd(),path,cl,pic)

                row = [writepath,cl]

                writer.writerow(row)

        else:

            print('{} was created.'.format(os.path.join(os.getcwd(),path,'trainset.csv')))

create_csv('dataset')

          





# In[ ]:



recognizer = cv2.face.createLBPHFaceRecognizer()





# In[ ]:



# Train recognizer with csv file

X_path=[]

X_tr=[]

y_tr=[]

with open('dataset/trainset.csv', 'r') as f:

    reader = csv.reader(f)

    print('Here are trained dataset:')

    for row in reader:

        tr_img_path=row[0]

        tr_class=int(row[1])

        # Open i

        image_pil = Image.open(tr_img_path).convert('L')

        im_gray = np.array(image_pil, 'uint8')

        X_tr.append(im_gray)

        X_path.append(tr_img_path)

        y_tr.append(tr_class)

        print(row)

    else:

        y_tr = np.array(y_tr)

        print('Finished training.')

      

recognizer.train(X_tr,y_tr)





# In[ ]:



# Capture Webcam

print('Launching a webcam.')

while True:

    # Capture frame-by-frame

    ret, frame = video_capture.read()

    if ret==True:



        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)



        faces = faceCascade.detectMultiScale(

            gray,

            scaleFactor=1.1,

            minNeighbors=5,

            minSize=(30, 30)

#             flags=cv2.cv.CV_HAAR_SCALE_IMAGE

        )



        # Draw a rectangle around the faces

        for (x, y, w, h) in faces:

            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

            y_predicted, conf = recognizer.predict(gray[y: y + h, x: x + w])

            name_predicted = bugWords[y_predicted]

            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

            text='{}, {}'.format(name_predicted,int(conf))

            font_size=1.4

            cv2.putText(img=frame,text=text, org=(x,y-int(2.8*font_size)),fontFace=cv2.FONT_HERSHEY_PLAIN, fontScale=font_size, color=(0,255,0),thickness=2)

            print('{}, {}'.format(name_predicted,int(conf)))

#             print('{name} in ({x1},{x2})x({x2},{y2}) with conf = {conf}'.format(**{'x1':x,'y1':y,'x2':x+w,'y2':y+h,'name':name_predicted,'conf':conf}))

        # Display the resulting frame

        cv2.imshow('WebCam', frame)



        if cv2.waitKey(1) & 0xFF == ord('q'):

            break

    else:

        break





# In[ ]:



# When everything is done, release the capture

video_capture.release()

cv2.destroyAllWindows()


  1. First, you have to collect photos to train. crop_faces allows you to crop and save faces from a photo. 
  2. You have to filter them manually. Create "dataset" foulder in the same directory as .py file. In a "dataset" foulder, foulder "0" contains face photos of person0, and foulder "1" contains face photos of person1, and so on. foulder name is later used as the y labels.
  3. create_csv allows you to create csv file containing a face photo location and a label pair.
  4. Train data by loading csv file you have just created.
  5. Loanch a webcam. You can quit by typing "p". 
csv file contains something like
dataset/0/photo0.jpg 0
dataset/0/photo1.jpg 0
dataset/1/photo0.jpg 1
dataset/1/photo1.jpg 1
Executing on iPython Notebook was not stable in my environment, so I would recommend to do it on terminal like "sudo python3 face_prediction.py."

シイタケ栽培キットでしいたけ育ててみた

森産業株式会社さんのシイタケ栽培キットを買ってみた。ネットの評判を見ると、容器もついていた方がよいらしいので、プラス約1000円の容器も買ってみた。届いたものを見ると、ペラいプラスチックだったから、もうちょっと安くてもいいと思った。容器は容器の中の湿気が確保するので大事だ。容器内はいつも蒸発した水が付着していた。


19日: やってきた。小さな芽がある。名前はコジロウにした。ゼルダの伝説時のオカリナから名前をとった。大きさの比較のためボールペンを置いた。でかいな。



20日 もう芽が育ってきたのが目に見える。




22日赤ちゃんしいたけができた。早い。かわいい。




24日すごい。密集しすぎて水やりにくい。



ボスニア・ヘルツェゴビナのモスタルにある建築物を思い出した。



25日 立派なしいたけになった。自然はすごい。しいたけはどこから何のために来たのだろうか。



26日 初収穫。8個とった。栽培開始から一週間かかった。バター醤油にしてみた。ほんとうに美味しい。



27日 残りもどんどん成長した。しいたけは毎日成長していて偉い。見習わないといけない。



27日 もう食べきれないってぐらいできた。30個ぐらいかな。こんなにたくさん神様ありがとう。幸せだ。


後で知ったけど、傘のヒダを少し巻いてるくらいが一番いいらしいです。

試したのですが、しいたけは生で食べるより冷凍した方が風味も味も強くなっておいしい!冷凍や乾燥によって細胞壁が壊れることが原因らしい。

しいたけは成長がとても早い。菌から一週間で収穫できる。毎日成長してるのがひと目でわかる。すごく励まされる。お前もがんばれよって言われてる気分になる。しいたけがいてよかった。

それに、しいたけは一週間すごい勢いで収穫したあと、二週間ほど休養に入る。そして、また成長を始める。全力で生きて、疲れたらちゃんと休む。こんな模範的な生き方を体現したものは他にあるだろうか。ひょっとして、しいたけは僕達の先生なんじゃないだろうか。







基本情報の勉強始めました

生徒が情報で入試受けるので、自分もまとまった勉強が必要になりました。とりあえず過去問を解いてみたところ。いくつかのプロトコルや方式を覚えれば十分そう。ついでに春の情報セキュリティを受けようかな。

絶品チャーハン


今まで失敗続きのチャーハンに初めて成功した。まさに金裹銀。金の卵で銀の米を包む。

温かいご飯で卵かけごはんを作り、フライパンの中であまり混ぜないのがコツだった。

下記レシピとの相違点は、次の通り。即ち、冷凍シイタケとベーコンはごま油で熱したフライパンに最初に入れた。シイタケの水が油ではねて大変だった。ある程度の火が通ったら卵かけごはんを入れた。炒めてる途中でウェイパー加えた。

陳建一は偉大だ。

黄金チャーハン(2人分)
ご飯 2膳(400g) 卵 2個 塩・コショウ 少々 昆布茶 少々 チャーシュー 100g ネギ 10cm
酒 大1 オイスターソース 小1/2 しょう油 小1/2
◯ネギはみじん切りにする
◯チャーシューは、ご飯とのバランスを考えて、2~3mm角に切る
◯酒、しょう油、オイスターソースを合わせて、合わせ調味料を作る
しっとり感を持たせるためと、香りを良くするための2つの役割があるそうです
◯卵はコシがなくなるまでよく溶いてから、温めたご飯と混ぜる
ご飯を温めると、卵がキレイに混ざるそうです
ヘラですし飯を作るようにご飯を切る
ご飯の粘りが出ない程度に混ぜること!
◯フライパンに油を入れて強火で熱し、温まったら卵と混ぜたご飯を入れる
ポイントは、混ぜすぎないこと!
火が通ってくると、自然にパラパラになってくるそうです
艶がなくなったら油を少し足す
◯パラパラになったら火を弱め、塩、コショウ、隠し味の昆布茶を入れる
◯チャーシューを入れて強火にする
◯仕上げにネギを入れて混ぜ合わせたら、合わせ調味料を鍋肌から回し入れ、5秒くらい置いてから混ぜたら出来上がり!

引用元: 陳建一さん直伝!家庭で絶品「黄金チャーハン」!! | はなまるマーケットの気になるレシピ

2015-12-27

第五回ヨーロッパ土産パーティを開きました。


ワインとチーズの土産パーティを2015年12月20日に催しました。帰国の翌日でした。これまでスイス渡航から帰るたびに開いていたパーティで、今回で第五回を迎えました。僕以外に18人が参加しました。

今回も、日本では高額なことが多いワインやチーズを愛する人が喜ぶ会にしようというコンセプトは相変わらず変わりません。ただし、今回は、もうスイス出張がないのではという予想から最後の企画のつもりだったので、自身がフランスでワインを勉強していたことから、次のようなコンセプトも加えました。
  • 商売抜きにみんなが楽しい思い出を持ち帰る
  • 参加者がフランスワインについて造詣を深め、明日からワインをより身近に感じる
イベントを無事に終え、参加者のみなさんも楽しかったようですし、ワインも身近になったようなので、大成功です。食べきれなかったものは友人の家に持って行き二次会もひらきましたが、ほとんどの方が来てくださりました。一次会が楽しかったことの傍証かと思って嬉しい限りです。

苦労の多い準備

正直なところ、毎回、準備が大変で嫌になることもあります。自転車でスーパーを駆けずり回るのですが、特に冬は自転車が濃霧と寒さで凍り付けになっていて動かないこともありました。冬は気温が2/6度という寒さ。日本まで持ち帰るのも大変です。キャリーケースの中はほとんどお土産です。それでも、これはフランス出張の自分にできる数少ないことですし、しかも日本で期待して待ってくれる人がいたので、苦労しても実現する価値はありました。

人から感謝されることの喜びを噛みしめる

毎回イベントを終えると、開いてよかったと思うのです。回を重ねるごとによくなっていますし。来てくれた人が「こんなもの食べたことない」、「開いてくれてありがとう」と言ってくれることが感無量です。人に心から感謝されるようなことを今まであまりしてこなかったせいか、いちいち感動にふけってしまいます。人から尊敬と感謝をもらうことに最大の喜びを感じる才能があるのかもしれないです。



人を雇ってみた

第一回や第二回は、自分がみんなのために一生懸命働くばかりで、せっかく来てくれた人や会いに来てくれた人と話す時間がなくなってしまいました。そのとき驚いたことに、みんな手伝いたがっていて、やるべきこと与えられたら率先して協力しようとするのです。僕は、自分が一生懸命働くことでみんながくつろいでくれたら、みんなが喜んでくれるのかと思っていたので、衝撃的でした。それに、みんな経費の割り勘分とはいえ参加費払ってるから、それに見合う労動しないといけないとも思っていましたから。

そこで、考え方を変えて、自分にできることは数少ないので、みんなに作業予定や意思を伝えて積極的に手伝ってもらうことにしました。今回の第五回は、初めて人を雇いました。具体的には、買い出し、会計や料理してくれた友人は参加費を安くすることで報酬としました。友人と、パーティの成功という同じゴールに向かって金銭的に対等な立場で取り組むのは気持ちのよいものでした。

実際、テーブルに並ぶ料理はすばらしいもので、自分が作るより、はるかによいものでした。その仕事が得意で好きな人に任せるのが一番なのです。

フランスワイン入門のプレゼンしてみた

せっかくフランスでワインについても学んできたので、みんなにもフランスワインを馴染み深いものに思って帰ってもらおうと思い、プレゼンしました。実は、自分は普段は強制されないとプレゼンしません。正直、みんなの時間を少しずつ奪う点に申し訳無さを感じてしまっていたのです。10分のプレゼンに10人きたら、総計100分間の時間を人類から奪うことになってしまいますし。もしプレゼンが価値のないものだったら、有限な人生から奪った時間をどう返したらよいのだろう。そんなことを思って、プレゼンを避けていたのでした。こういうとき、「嫌なら見なければいい」と心から言える人当はすごいと思います。今回、イベント開催前、友人に「ワインについてプレゼンするつもり」と話したら、わりと期待してくれ、背中を押されました。

今回つかったスライドはこちらに上げました。


実は、当日はほとんどアドリブで、事前練習もしていませんでした。しかし、やはり人は自分が好きなモノは饒舌になりますね。発表中、みんなの表情をうかがうと、とても楽しそうで、興味津々な様子でした。それを見て自分もわくわくして、みんなにもっと教えたい、伝えたいとより一層思いを深めてプレゼン続けました。質疑応答もちゃんと済ませ、拍手までしていただき、その後は世界が違って見えました。

挑戦できた

自分が何かを成功させるために人を雇うのは初めてでした。自分一人でがんばろうとせず、一人でできることが限られていることをよく理解し、目的意識の合致する人と協力してゴールを目指すことの大事さを痛感しました。何のためにチームを組むのか、その答えが見えました。人にはそれぞれ向き不向きがあり、一人でできることは限られているというのは、文にすると当たり前すぎて、何も新しくないのですが、それを理解して行動するのは簡単ではないのです。エゴや自意識が邪魔することもありますから。

また、日頃、自分から率先してプレゼンすることがないので、本当によい挑戦でした。「挑戦」という言葉は辞書をひくと「困難なことに挑むこと」などとありますが、何が困難かは人それぞれ。この第五回のパーティは自分にとって大きなイベントでした。怖くてできなかった困難に挑んだのですから。

人を雇ってプログラムを成功させたこと
仕事でも学校でもないのにプレゼンして成功したこと


ぼくと話すために10分間だけ来た友人に感動

ほかに感動的なこともありました。10分間ほど顔を見せに、いや、僕と話すために、忙しい予定の合間を縫ってやって来た友達が二人いました。自分がそれほど大事に扱われるのは予想外ですし、人生の中でも類まれにみることで、本当にうれしい。もはや感動だった。自分の中に自信がふつふつと湧き上がり、その瞬間から世界がすばらしいものに見えました。これは大げさに言っているつもりはないのですが、自分が世界に存在する価値を自分で認められました。同時に、自分で今まで気づかなかった承認欲求にも気が付きました。もちろん、彼らが友人を大事にする性格をしてることも一因ですし、それはわかっています。それでも、自分についての認識が180度変わるような、大変な喜びでした。

黒字化の難しさ

今までのイベントは、黒字だったり赤字だったりとギリギリのラインでした。「自分だったらこのイベント、いくらまで出すかな」と考えて適正価格を決めていたのですが、客観的に見て、大サービスにの参加費でした。

特に今回は、経費がかさみました。フランスで厳選したワインは空港で没収されてしまいました。帰国日、20回近く利用したジュネーブ空港が見たことのない混雑でした。後で聞いてわかったのですが、年末年始なのでジュネーブで勤務している人たちが祖国に帰るらしいです。いつもならゲートまで5分もかからないのですが、この日は荷物を預ける列に30分以上並びました。並んでいたらゲートの時間となってしまい、スタッフに助けを求めたところ、スイスインターナショナルの窓口へ案内されました。これで助かったのかと思いきや、窓口は

"You are too late. Why are you here ? You can't get on the flight. What do you need ?"

という冷たい態度。しかも"What do you need ?"を連呼してきて煽られてるみたいだ。バカみたいに列に並んでいたばかりに飛行機乗れないなんて信じられない。驚愕しつつ、大学にどう言い訳しようか、今ならまだ搭乗に間に合うかなど頭をフル回転させ、ゲートまで全力で急ぐことにした。幸い、自分のキャリーケースは機内持ち込みサイズだった。このとき、出発まで15分しか残ってなかった。荷物検査の行列は、なんらでいる人々に事情を説明して抜かせてもらった。そして、当然のことながら、荷物検査ではワインをすべて没収された。もう自分が搭乗することしか考えていなかったので、ワインが没収されることに驚きつつ (ようやく、当初何のため荷物預けようと並んでいたのか、ようやく思い出した)、為す術がなかった。

一時間後、チューリッヒ空港でワインを調達することにした。もはや第五回のイベントを中止にするか、みんなに謝罪しようかとも思ったが、嬉しいことにイベントの開催を心待ちにしている人もいるし、期待してくれる人がいたので、この仕事は責任を持って成し遂げるしかないと思った。チューリッヒ空港のワインは、高いものばかりだった。自分が揃えていたワインの最高の価格は、チューリッヒ空港で購入した最低価格より低かった。空港のワインは格付けものも揃っており、自分がフランスでワインを購入したお店にはないレベルのものもあった。このイベントは当初、自分がワインに詳しくなったこともあり、フランスでも入手困難で珍しいが、とてもおいしいワインを揃えていた。だが、それら個性的なワインは没収され、そのショックでもはやお金のことがどうでもよくなっていた。空港にある格付けワインを買っていった。

また、イベントが最後ということもあり、フォア・グラやマグレカナール (フォア・グラ用に飼育された鴨の胸肉) も買っていた。そのせいで、経費はかさんでいた。

さらに、予想外だったのが、当日借りていた貸しスペースが値上がりしていた。今まで四回のイベントは、みな同じ貸しスペースで催されていた(階の違いはあるが)が、いつの間にか一時間あたり一千円の値上がりしていた。

これらの原因が重なって、自分の損益は1万7千円の損失だった。今回のイベントに限って言えば、最初に書いた通り、商売を持ち込まないつもりでいたので、構わないのだが、イベント後に勘定して驚いた。

今後のためには、といっても今回が最後のつもりだが、会場を借りる時間を短くし、社会人の参加費をあげるなど考える必要がある。

終わりに

学部のころも飲み会をよく開いていた。それはオフ会で、趣旨のないものだった。それに比べ、今回のイベントは趣旨やコンセプトがわかりやすくていいと友人に言われました。自分の催すイベントも、ペースは遅いながら、よくなっていることを感じました。今後も、何か自分にできること、自分が情熱を注げるものを発見して企画していきたいと思う。






人が写ってる写真は避けました。


2015-12-26

今日は帰国後の大学の手続きしました

2005/12/25
搭乗券による渡航手続きや、再インストールしたOSで東京大学の無線LANに接続するための証明書、また東京大学ライセンスのMicrosoft Officeの入手を済ませました。
また、修士論文の審査予定についても教授と相談を済ませました。
貴国パーティについては後日書きます

2015-12-23

愛を耐えぬくこと

人に無償の愛と慈しみを与えること

それはよいことだとされているけれど、果たして本当だろうか。慈しみはまだよいとしよう。しかし、たとえば、重たい愛や自己本位な愛など、受ける側はたまったものではない。時として愛情はエゴであり、受ける側は耐え抜かなければならない。

だから、ただ愛するだけじゃダメなのだ。一個人として尊重していないと。そうしないと、「こんなに愛しているのに」といった独りよがりな思い込みにはまってしまう。これは、子どもに英才教育を詰め込ませる親にありがちな話だ。

Adobe Reader 画面右側の「pdfに書き出し」などが邪魔→上の「ツール」を押すと消える

メニューバーではなく、画面右側にあるツールを押してください。

2015-12-18

CÔTES DU JURA ワイン225本目


値段を忘れてしまった。ジュラのTrousseauという個性的なワイン。値段を失念したが10EURもしなかった。酸味がきいたジュースのようだ。

チーズ Perail


Perailというフレッシュチーズ。100gで2€。ブルーチーズのロックフォールと同じ産地の羊乳チーズ。ロックフォールの生産後に作られているらしい。ちょっとしたクセとトロトロ感がおいしい。






Face regocnition in a webcam with opencv3.0 and Python3.4


Here are the code. A notebook is also available. cv2.VideoCapture doesn't work on the iPyton notebookso I needed to create .py file and run it on a terminal.

import cv2
cascPath = r'/home/watanabe/opencv/data/haarcascades/haarcascade_frontalface_default.xml'
faceCascade = cv2.CascadeClassifier(cascPath)
video_capture = cv2.VideoCapture(0)

while True:
    # Capture frame-by-frame
    ret, frame = video_capture.read()
    if ret==True:

        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

        faces = faceCascade.detectMultiScale(
            gray,
            scaleFactor=1.1,
            minNeighbors=5,
            minSize=(30, 30)
#             flags=cv2.cv.CV_HAAR_SCALE_IMAGE
        )

        # Draw a rectangle around the faces
        for (x, y, w, h) in faces:
            cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)

        # Display the resulting frame
        cv2.imshow('Video', frame)

        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        break

# When everything is done, release the capture
video_capture.release()
cv2.destroyAllWindows()



Here is a screenshot.


2015-12-17

Bourgogne Hautes-Côtes de Beaune 2014 226本目


1€オリーブも添えて。

オート・コート・ド・ボーヌのワイン。薄いルビー色が赤く輝く。苦さはなく、すっぱい。むしろ、ただの酸っぱいジュースだ。調べると、他のボーヌに比べて標高が高く、いまいちなものが多いらしい。7.5 €.

SAVOIE MONDEUSE 2013 ワイン225本目


SAVOIE MONDEUSE 2013。6.19EUR。MONDEUSEはサヴォアの固有品種だ。
とてもフルーティで軽やかな口当たり、飲みやすい。フランボワーズやいちじくのようだ。商品だなの端っこにあったわりに、割りおいしい。サヴォアやジュラはフランスでも入手困難で、日本で手に入りにくいのは言うまでもない。

Cafe Place モリーユのフェットチーネ、ポルチーニのピッツァ ワイン223-224本目

2015年12月15日

2015-12-16

就活体験談2015 (2016卒)

今更ですが就活について振り返っておきます。自分の職種選びの軸は次のようなものでした。
  • 研究・開発が尊重されるところ
  • 多様性のあるところ
  • 仕事に社会的意義を感じられるところ


また、7月20日には日本を出国して12月中旬までスイスで駐在研究をしているため、選考スケジュールと合わない会社も多くありました。

プロクター・アンド・ギャンブル (P&G)

早くも12月に行われた性格検査で落ちました。

BNP PARIBAS

ここの募集も早く、正月明けには締め切っていました。ぼくは書類で落ちました。友達も書類で落ちてた。落ちても連絡こないからそわそわする。説明会で社員や他の志望者と話した感じ、合わないと感じていたので、構わないのですが。

高頻度取引や最近のハードウェアについてITの社員に質問したら、「何のことそれ」といった顔をされた。説明すると、そういうのは時流じゃないと窘められた。なぜか初対面の、そこに居合わせただけの学生も一緒になって説教してきた。

証券部門はおもしろそうでした。変な人ばかりで動物園みたいらしい。

Google

エンジニア職。英語の履歴書は通ったが、最初のオンライン・コーディングで落ちた。

モルガン・スタンレー

IT部門です。最終面接で落ちました。たしかに、ぼくも最終面接で違和感があった。
ここの選考過程は

エントリーシート、WEB試験
集団面接
社員面接*n


集団面接は12人ほどしかいませんでした。書類で落としすぎだろ。まず、その場で会社説明を受けました。そして、社員とグループ面接をしました。開発経験、最近の気になったITのニュースを聞かれ、半分は外人と英語で行われました。最後に、グループワークでした。紙とホチキスを渡され、東京オリンピックに向けて建築物を考えてくださいとのこと。これは楽しかったです。英語が話せず、開発経験ゼロで、作りたいアプリを聞かれても答えられなかった同期はここで落ちてました(寧ろなぜ受けた)。

個別面接では、もし採用されたらともに働くであろうITの写真と一人20分ずつ話し、一日3人ほどとローテーションしました。一日目の選考は無事終わり、選考に通り、次の二次選考も無事通りました。というより、その二次選考が最終面接のはずだったのですが、最も偉い人が欠席していたらしく、その人と話すために、また呼ばれました。それまでの社員とは話が盛り上がったのですが、偉い人との会話は難しかった。自分の開発経験や意思決定のプロセスについて、圧倒的WHY思考でさんざんに突っ込まれ、ぼくはタジタジ。機械学習を使った株価平均をどのように行ったかについて話していたときでした。

「なぜその手法を選択したの?」
「じゃあ、どういう仮説をたてて、その結果何がわかって、その後どうしたの?」

開発しているときは、自分なりに考えていたはずですが、面接中は実際どうであったか思い出せませんでした。そのため、自分が阿呆に映ってしまったのは間違いない。こういった形で、人の行動原理を聞いて、その人がどんな人物かを探っていくのはとても大事。自分もよくやる。でも、自分がされることはあまりなかった。

最後に、「何か私におすすめしたいことありますか?ご自身が大好きなものでもいいです。ぜひ教えて下さい」みたいな質問が来て、不意を食らった。何をすすめたらいいかわからず、クラシック音楽がいいですよとか言ってしまった。その理由をうまく説明できなかったのが致命的だと感じた。おみやげに、人にものを説明するときのオススメのスタイルまで教えてもらってしまった。会話のスタイルや作法が合っていなかった。

ちなみに、個別面接の半分以上は外人を相手に英語です。

ゴールドマン・サックス

IT部門です。最初の試験は会場での適正試験、およびエントリーシートです。外資のエントリーシートは書類選考では学歴の足切りに使われ、読まれるのは面接の場が初めてでしょう。むしろ、どこでもそうですが、面接はエントリーシートに書いてあることについてまず話すのです。

学部3年のときにGSの投資銀行部門でインターンして、そのときはオラオラ系の人ばかりでした。一方、ITは柔和な方が多くて、その対照に驚きました。

土曜日にも関わらず、20人ほどの学生が六本木ヒルズに呼ばれ、複数の社員とローテンション式に面接を受けました。相手は半分以上が外人で英語面接でした。応募者はおもに東大や京大に準ずる大学や、留学生でした。確認はできませんが、話した感じ、情報科学選考の大学院生ばかりだったと思います。この総当り式の面接は三日間にわけて行われました。しかし、ぼくは最終日の最終選考には呼ばれませんでした。人事からのメールでは、選考が難しいので結果を待ってくれとのことだったので、みな接戦だったらしいです。

面接の内容は、志望動機、何をしたいか、コンピュータネットワークの素養がどの程度あるか、基本的なアルゴリズムを知っていてコーディングできるか、そしてレドモンド式面接でした(例えば、15個のコインのうち一枚が重い。天秤に最低何回乗せればいいか)。僕の場合、整数の問題に数学で答えを出したのが僕だけだったらしく、他のみなはアルゴリズムで解いていたのがポイントだったかもしれません。また、機械学習を使った株価予想を行っていたことも話題になりました。しかし、コーディングの腕も鈍っていて、ITの素養が弱かったのと、これが恐らく最大の理由ですが、志望動機として高頻度取引をやりたいと話したこと、および金融の仕事の意義がわかってなかったことが最大の失点だったと思います。

キーエンス


性格検査で落ちました。関西弁の調子のいい友人が内定もらっていました。

シンプレクス社

金融サービスの会社です。オフィスは虎ノ門ヒルズにあります。求人転職会社リンク・アイの前社長にすすめられ、受けてみました。ここは2015年からクオンツの新卒採用が始まりました。入社すると、まずは金融工学の知識および数値解析について学んでいくらしく、教育にも力を入れている姿勢が伝わりました。また、給与は実力主義だと公言しており、数年目から差が開くらしいです。社員はゴールドマンやJPモルガンを経てきたオラオラした人や、採用される人も東大や京大を出ている高学歴の人が多く、エリート集団を維持しようとしているのは明らかでした。

選考過程は長かったです。役員は、「うちはポテンシャル採用だから。地頭だよ。」と謳っていました。地頭って何だ。

会社説明会・小論文テスト
JAVAプログラミングテスト
数学の試験
一次面接
二次面接
最終面接

説明会後、役員が「ここまでの説明を受けて、まだ選考を受けたいと思う人は残ってください。ここが合わないと思った人は、お帰りの支度をしてください。」と単刀直入に言ったのが印象的でした。

小論文は、その場で読んだ社説について思うことを書くよう要求されました。僕は、その社説がとても腹が立つものだったので、反対意見とその理由を理路整然と述べました。

プログラミング試験は未経験者も必須です。みな、その場でJAVAの分厚い入門書と課題を渡されました。さすがに初心者は通過できないだろう。

数学は、簡単な微積、微分方程式、金融工学のマルコフ連鎖、統計学などでした。見たことない問題もありましたが、基本的な微分方程式あたりは完答しておきました。このテストは、数学の素養を見るもので、全ての問題を解ける必要はないと思われます。

ぼくは、一次面接まで通過したのですが、二次面接の都合が合わず、また社風も合わないと判断し、また虎ノ門ヒルズへ行くことはありませんでした。社員は、高慢で人をお高くとまっている人が多い印象でした。これは外銀や外コンでもよく見られるが、自分の身内以外に対して、その身振りや話しぶりからバカにしているのが伝わる。ただ、創業者のうちの一人のおじさんは感じよかったです(これも社長によくある話で、第一印象は柔和だが、裏では厳しいタイプかもしれない)。

また、基本理念が「顧客の利益最大化」というのも、好きになれませんでした。何のために働いているのか自分にはわかりませんでした。金融インフラは大事で必要だとはわかりますが、この会社で働くことの意義が見えなかったのです。あと、社名があまりかっこよくないかなって。

リクルート・ホールディングス

ここはITしか募集していません。Indeed部門は東大の理学系研究科情報科学専攻の人たちが多くいくらしいです。Indeedは選考過程もオフィスも人事も給与も他の部門と全く違います。一年目の給与が他の部門は30万円/月ほどに対して、Indeedは60万円/月を超えると聞きました。その代わり、昇給しにくいらしいですが。ぼくも第一志望にしましたが、面接前のオンライン・プログラミング・テストで失敗し、専攻から外れました。エンジニア部門の茶髪の調子のよさそうなお兄さんから電話がきて、時差を考慮したSkype面接が行われ、その後も連絡はきていたのですが、着信をキャッチできずにいたら、連絡がこなくなりました。

NTT研究所

横須賀研究所の見学に当選し、見に行きました。メディア関係の研究をしている何もない田舎にある研究所で、本当に研究以外にすることがない土地でした。終バスは10時に終わるし、よいレストランもない。研究員の方々は、恬淡、無欲で穏和な印象を受けました。研究所は国営だったころの牧歌的な名残があるのかもしれません。
その後、ウェブテストの案内がきましたが、無視していました。すると、電話がきて面接を案内されました。マジかよ。WEB試験いいのか。しかし、面接予定日は既に僕はスイスにいる予定だったので、面接日を早めるか、Skypeでできないかと尋ねました。一週間後、電話がきて、調整できなかったそうです。

マッキンゼー・アンド・カンパニー

何となく受けてみました。エントリーシートを出した後は、貸会場でのマークシート試験でした。会場には東大、海外大学など300人近くいましたが、ぼくは時間を半分以上残して一番に終え、飲み会に向かいました。落ちてました。鉛筆を忘れてしまい、受付から借りたのがまずかったのだろうか。

IBM

開発職の応募でした。最初はエントリーシートとWEB試験です。また、一定以上のTOEICやTOEFLスコアの提示も必須でした(しかし夏頃には英語は不問になったらしい)。

一次面接は貸会場で行われ、グループワークでした。四人の共同作業がうまく協調しないと完成できないパズルです。
二次面接も同じ貸し会場で行われ、は2人相手に60分間の個人面接。モルガン・スタンレーやゴールドマン・サックスと異なり、面接の相手がローテーションすることはありませんでした。志望動機や、実現したいこと、大学時代に何を意識してきたかなどの会話でした。自分が行った機械学習の話や、仕事上の軋轢などについて話し合いました。わりと盛り上がり、あっという間に1時間が経ちました。面接相手が配属先チームのリーダーだったらしいです。後日、内定でした。

ガイア

興味関心から行ってみた説明会のみです。その記録は→株式会社GAIAの説明会で驚いた - パチンコホールの売上や給与 -

面接を重ねるうちに思ったもの

外コンや外銀に落ちたから優秀でないわけではない。彼らの面接は自分たちと同様の思考様式にあてはまるかを見ている。WHYベースで仮説と検証を用いた意思決定を常日頃から下しているか。そして、その様式は、訓練すれば誰でも身につくものだ。たとえば、君が突然彼らのオフィスで半年間過ごすことになったら、嫌でもその会社文化に染まっていく。つまり、外資や外コンに通る人は、日頃からWHYベースができている人であり、彼らの環境にすでに順応できる人だ。

また、面接はお互いがお互いを面接しているのです。基本的に、対話してみて、引け目を感じたりせず、居心地良く対等に話せる相手が今の自分の実力なのだと思います。また、そのような一元的な尺度が全てだけではないです。合う、合わないというのは慥かにあります。GSの人が言っていましたが、採用面接はお見合いのようなものですね。価値観の合わない人とは、あなたも働きたくないでしょう。だから、面接は質問に答えるだけのものではなくて、会話なのです。時間があっという間にすぎるほど楽しく会話が弾んだときは選考を通過してました。

共通して聞かれるもの

  • なぜ博士課程に行かずに就職するのか
  • 志望動機
  • 会社に入ったら何をしたいか
  • 将来のビジョンや実現したい夢はあるか
  • あなたの強みは何か
  • あなたが会社に入ったら会社にどのような貢献ができるか
  • 自分が率先してチームを引っ張った経験 (外資)
これらは、WHYベースによく考えておくとよいです。自分自身をよく知ることにもつながります。チームリーダーの経験については、自分がチーズやワインを土産にして主催するイベントのことを主に話しました。強みとそれを会社でどう活かすかは、今でもちょっと答えるのが難しい。

フランスで買い物したある日のレシートの一例

フランスといっても、ジュネーブ郊外にあたるSaint-Genis Puillyでの買い物。単位は€。


  • ボルドーのワイン 9.5
  • ロワールのワイン 4.9
  • トマトピューレ 0.6*2
  • クスクス1kg 1.3
  • きのこ100g 1.0*2
  • モッツァレラ125g 0.5
  • ゴルゴンゾーラ 2.2
  • ミモレット 2


計23(3,000円)

フランスで手に入りやすく物価も安い、特産チーズやワインを積極的に買い、他はケチってます。クスクス、モッツァレラとマッシュルームの安さ、はんぱない。

[FPGA,Vivado] Implementationがなかなか終わらないのはタイミング制約が原因だった

非同期クロックドメイン間の遅延解析をfalthにしたらimplementationがすぐに終わりました。非同期間は遅延解析などさせる必要はなく、メタステーブルが発生しないように上手に回路を設計、デザインすることが大事です(二段FFやハンドシェイキングなど)。

report_timing_summeryを実行して、エラーの出ている箇所について、右クリックで信号を、もしくはクロック間をfalthにすればよいです。それでxdcに書き込むだけ、たとえば、次のような一文が追加されます。

set_false_path -from [get_clocks gtx/gtx12lines_i/inst/gtx12lines_i/gt0_gtx12lines_i/gtxe2_i/TXOUTCLK] -to [get_clocks clk_out1_mmcm40et160]

ぼくの周りにはFPGAおよびVivadoによるデザインに優れた人がいなくて、先輩はいつもimplementationに一時間近くかけてました。そんな先輩から引き継いだプロジェクトファイルはクリティカルエラーが100個以上。この環境で気づくのは苦労した。

2015-12-15

iPython Notebook の使い方 リンク



【チュートリアル】IPython... | DERiVE コンピュータビジョン ブログ


これらが非常にわかりやすかった。今までCELLが何なのかすらよくわからず使っていて、Pythonには使えるIDEがないのかと思っていたけど、これはすごい。強力だ。

GitHub + nbviewr

GitHubアカウント作り、iPython notebookを公開してみました。これで作業効率が上がる。

http://nbviewer.ipython.org/github/asterisk37n/test/blob/master/git_test.ipynb

優れたBOOK、、例えば書籍の付録のMining-the-Social-Web-2nd-Editionのようなものがどうやって作られているのか、やっとわかった。

Anime-face recognition with opencv3.0 and Python3.4

 

Xilinx FIFO GENERATOR v.12 同期FIFOにしてもテンプレートには非同期が表示される。

シミュレーションでも、Standard FIFOのはずが、FWFTの挙動でした。
プロジェクトを新しく作り直して、ファイルを新規作成、中身だけコピペし、IPを作りなおしたらなおりました。

Standard FIFOのre=0時のデフォルトdout値って0でいいのでしょうかね。ミュレーションでも最後にre=1だったときのdoutを垂れ流しますね。実機では0になるっぽいけど、たまに0101...が出たりしていて、わからない。自分のコードのバグか。

Restaurant de la Place 黒トリュフのメッツェルーネ ワイン222本目

2015年12月13日

ジュネーブ Restaurant Auberge de Savièse ヤギチーズのフォンデュ ワイン221本目

2015年12月12日

Face recognition in a video with opencv3.0 and Python3.4


2014-2015年 海外旅行記事一覧

2015-12-14

Face regocnition in a photo with opencv3.0 and Python3.4

Opencv provides the cascade which has already learnt the human face. Cool.


image = cv2.imread(r'path/to/image')
image = cv2.resize(image,(0,0), fx=0.1, fy=0.1) // resize image if the image is too big to take long time for the face detection
faceCascae = faceCascade = cv2.CascadeClassifier(r'/home/watanabe/opencv/data/haarcascades/haarcascade_frontalface_default.xml') // set your cascade path
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) // turn image into gray scale
                                                 
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.02,
    minNeighbors=5,
    minSize=(30, 30)
#    flags = cv2.cv.CV_HAAR_SCALE_IMAGE
)

print("Found {0} faces!".format(len(faces)))

# Draw a rectangle around the faces
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)

cv2.imshow("Faces found" ,image)
cv2.imwrite('/home/watanabe/Pictures/facefound.png', image)
cv2.waitKey(0)








https://realpython.com/blog/python/face-recognition-with-python/

未踏募集中

「未踏事業」は、ITを駆使してイノベーションを創出することのできる独創的なアイディアと技術を有するとともに、これらを活用する優れた能力を持つ、突出した若い人材を発掘・育成することを目的としています。
https://www.ipa.go.jp/jinzai/mitou/portal_index.html
(応募締切 2016年3月9日正午まで。※但し事前エントリ要)

未踏の募集中ですね。25歳未満のみが応募できます。

僕も何か考えて応募しようかと思いましたが、年齢がアウトでした。自分も何かイノベーティブなことしていきたいな。

2015-12-13

MOUTON CADET 2013 220本目

深みがあって飲みごたえがある。タンニンがきいていて後味もよい。それなりの品質を保っていて典型的なボルドーらしい。9..55EUR。スーパーにあるワインの中では高めの価格。MOUTON CADETはBARON PHILIPPE DE ROTH CHILDによって作られた有名なブランドです。

Problems when Installing opencv3.0 in Ubuntu14.04LTS, Python3.4 with vertualenv

For the most parts, you should follow the advices in

http://www.pyimagesearch.com/2015/07/20/install-opencv-3-0-and-python-3-4-on-ubuntu/,

but I encounterd some problems. For example, I don't have site-packages (I have one only in my virtual environment). I show you how I addressed them in this article.

When CMake Cannot Find Python Library 

Add the line
set(Python_ADDITIONAL_VERSIONS 3.4)
in CMakeLists.txt in opencv. You may edit it with vim:
$sudo vim ~/opencv/CMakeLists.txt
. Then, CMakeLists.txt should be like this:

# ----------------------------------------------------------------------------
#  Root CMake file for OpenCV
#
#    From the off-tree build directory, invoke:
#      $ cmake <PATH_TO_OPENCV_ROOT>
#
# ----------------------------------------------------------------------------

set(Python_ADDITIONAL_VERSIONS 3.4)
include(cmake/OpenCVMinDepVersions.cmake)

if(CMAKE_GENERATOR MATCHES Xcode AND XCODE_VERSION VERSION_GREATER 4.3)
  cmake_minimum_required(VERSION 2.8.8 FATAL_ERROR)
Then, try cmake again.
 You can check in the cmake log if Python3 library was successfully detected.

Just adding  following satements was not effective.
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
export WORKON_HOME=$HOME/.virtualenvs
export PYTHON_INCLUDE_DIRS=/usr/include/python3.4m
export PYTHON_LIBRARIES=/usr/lib/python3.4/config-3.4m-x86_64-linux-gnu/libpython3.4m.so
They might be needed but not enough just by them. I'm not sure if you must add them in CMakeLists.txt.

See also: https://github.com/SFTtech/openage/issues/12

When Opencv Installed but Can't Find It.

Try locating it in python console. Don't do this in the virtual environment as you still cannot import opencv in your virtual environment.
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> print(cv2.__file__)
/usr/local/lib/python3.4/dist-packages/cv2.cpython-34m.so
Then, you can make sym-link to import opencv in the virtual environment.
cd /usr/bin/myenv/lib/python3.4/site-packages
sudo ln -s /usr/local/lib/python3.4/dist-packages/cv2.cpython-34m.so
Finally, check out if opencv can be imported in your virtual environment
(myenv)watanabe@watanabe-HP-Pavilion-dm1-Notebook-PC:/usr/bin/myenv/lib/python3.4/site-packages$ python3
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>> cv2.__version__
'3.0.0'
>>> cv2.__file__
'/usr/bin/myenv/lib/python3.4/site-packages/cv2.cpython-34m.so'

Felicitations ! :D

FIFO間の転送では順次処理

この一ヶ月間、データが出力されないことに悩んでいました。原因はFIFO間の転送にありました。always文を使わずassign文を書くことが多い人は気をつけてください。

原因: はFIFO間がwireで直接つながっていたこと


次のようにFIFO1からFIFO2に転送します。

FIFO1 (読み出し150MHz)

FIFO2 (書き込み150MHz)

問題だったのは次のコードでした。自分はタイミングについて無知で、ワイヤ間など一瞬で転送されると思っていたのですが、実際には、クロック周波数が高い場合、ワイヤ間のdriveや転送にかかる時間、遅延が無視できなくなります。
assign pass = !empty1 && !full2;
assign rd_en1 = pass;
assign wr_en2 = pass;

解決策: データをいったんレジスタに格納する

これは次のように直すことで解決されました。150MHzが450,000クロック動き、見たところエラーゼロでした。rd_enからwr_enまでの立ち上がりは4クロック離れています。FIFO間のデータは一旦regに格納した方がよいと聞いているので。非同期間の通信にも使えるように、二段FlipFlopにしました。

FIFO1

reg data_middle1

reg data_middle2

FIFO2


    reg [7:0] data8_middle1,data8_middle2;
    reg [2:0] sreg;
    assign re32to8 = SiTCP_READY && !empty32to8;
    always @(posedge clk150) begin
        sreg <= {sreg[1:0], re32to8};
        SiTCP_WE <= sreg[2];
        data8_middle1 <= data8_out;
        data8_middle2<= data8_middle1;
        data8_in <= data8_middle2[3:0];
    end
 

ただし、上記のコードでは、FIFOはStandard FIFOにしてIP生成してください。FWFTとStandardはempty時の読み出しデータやフラッグのタイミングが異なります。FWFTはデータが入ると、rd_enを立ち上げなくても、最初のデータがdoutから常に出され、rd_en<=1にすると次のデータに切り替わります。Standardはempty時は0を出力します。自分は最初、FWFTのFIFOを生成したのに、Standardのタイミングチャートを見て設計して失敗し、原因に気がつくのに手間取りました。

FIFO Generator v12.0 (P.95-101) はFIFOの読み書きのタイミングを考えるのに必須です。
http://www.xilinx.com/support/documentation/ip_documentation/fifo_generator/v12_0/pg057-fifo-generator.pdf

wireとregの違い

単にそれらがwireと記憶処理だと聞いていましたが、どう使い分けるかは難しいものでした。たとえば、次の2つの処理は、当初、1クロック遅れるかどうかの違いしか生まないと思っていました。

assign y = c ? x : 1'b0;

always @(posedge clk) y <= c ? x : 1'b0;

また、always文だからといって順次回路だとも限りません。いずれも、yのブロッキング代入の右辺にはyがないので、以前のyの値を使っていないのですから、組み合わせ回路として論理合成されると聞きました

基本的にはalways文を使って書き、インスタンシエートされたモジュールのinput, outputをつなぐのにwireを用いるのがよさそうです。

2015-12-11

2015-12-04

FPGAのタイミング制約が難しい

とてもむずかしい。クロック間が全然うまくいかない。スラックなどの言葉の意味はわかったが、どうやって解決したらいいのやら。

レストラン Coq Rouge ワイン218-219本目

12月2日

Saint-Genis Pouillyにあるフレンチレストラン Coq Rouge へ行きました。

食前酒にシャンパン。

見かけの割に、入ってみたらきれいな内装で、給仕までもキレイ方たちばかりで戸惑った。

スターター2, メイン、チーズ、デザートのメニューで43ユーロ。
キャビアがのってる。


Sant-Émilion Grand Cru。芳香が強いがタンニンの渋みでバランスがとれてる。これはよい。


スターターのフォアグラのフライ。果実が合う。

Bourgogne premier Cru。これは重さがなく、ブルゴーニュらしい軽やかさだった。

メインは Fillet Mignon 。以前 Boeuf Rouge で食べたシャトーブリアンよりもおいしい。

 チーズもメニューに含まれていた。

ミモレットやトム・ド・サヴォアなど。羊のチーズは強烈だった。

デザートにりんごのタルト。


ワインも含めて一人あたり70ユーロでした。この質にしてはリーズナブルだ。お昼はプレート11EURでやっているらしいので、また来たい。

ホームページ: http://www.restaurantlecoqrouge.fr/fr/
tripadvisor: http://www.tripadvisor.fr/Restaurant_Review-g675074-d2357111-Reviews-Restaurant_Le_Coq_Rouge-Saint_Genis_Pouilly_Ain_Rhone_Alpes.html

アクアリウムはじめました

通りすがりのアクアリウムショップで、ボトルアクアリウムを衝動買いしました(2月5日)。アカヒレ二匹がいます。コンラッド・ローレンツが『ソロモンの指輪』の中でアクアリウムをおすすめしていたので、試してみたかったのです。今回が初めてのアクアリウムなので簡単なものにしたく、また手間をか...