Page List

Search on the blog

2018年12月23日日曜日

reason about computer programs

 以前「Functional Programming in Scala」という本を読んでいたときに「reason about」という表現が出てきた。そのときはしっくりとくる和訳を見つけられずにいた。

Because of their modularity, pure functions are easier to test, to reuse, to parallelize, to generalize, and to reason about.

The use of throw and catch means we can no longer reason about our program purely locally by substituting terms with their definitions.

 どうやら純粋関数でプログラムを書くと reason abount しやすいらしい。最近読み出した「AN INTRODUCTION TO PROGRAMMING IN GO」という本でも同じ表現が出てきた。

You'll spend a large amount of your time just trying to fix your program so that it finally compiles. But types help us reason about what our program is doing and catch a wide variety of common mistakes.

 改めて辞書を引いてみると、「〜について論理的に考える、判断する」というのが妥当な和訳っぽい。そういえば日本語でも、ものごとについて論理的に考えて推論することをリーズニングというなぁ。

 ということで、reason about program でググっていたら面白い記事を見つけた。

 reason about という表現はバズワード的に使われるが、実は重要な意味がある。リーズニングしやすいコードとは以下の特性を持っている。
  1. 意図しない副作用を持たないこと
  2. 外部の状態に依存・影響しないこと
  3. 参照透明性
上記の特性を保証するには様々な方法がある。
  1. ユニットテスト
  2.  型
  3. イミュータビリティ
ユニットテストはコードが正しく動くことを保証してくれるしドキュメントとしても利用できるが徹底的に考えないとエッジケースを取りこぼしてしまう。型・イミュータビリティはコードに制約を課すが様々なエッジケースを防いでくれる。

2018年10月14日日曜日

Full Houseで学ぶ英語表現

Full Houseで学んだ英語表現をメモしていきます。

日本語訳は英語の後に白字で書いています。
マウスで領域選択すると確認できます。

6-20 アダになった贈り物
ジョーイがDJに車をプレゼントしますが、その車が盗難車であることが分かり・・・

You bought a lemon, huh?  欠陥車を買ったんでしょ?
Do you have a pink slip? 車の所有権証明書はもってる?
It's an open-and-shut case. 極めて明白な事件です。

6-21 生放送は大混乱
3人目の子供を欲しいと思うジェシーだったが本当にそんな余裕あるのか・・・

Nicky used the baby pottyニッキーがおまるを使ったよ
I'm fresh out of slops. 残飯を切らしています。
I think all that mousse is seeping into your brain. ムースが全部あなたの脳みそに染み
Is his nose still all stuffed up? まだ彼は鼻詰まりなの?
Get off your butt. ケツを(床から)あげろ!
You got a heck of honk there. すごい鼻息だな。
That was way out of line. 言いすぎた。
Zip it. 黙れ。
Now works for me. 今が都合いい。

6-22 ユーワクの夜
DJとスティーブはプロムに参加するが、そこにはスティーブの元カノがいて・・・

Do you have any queens? Go fish. クイーン持ってる?ないよ。
You are on. その話、のった。
It's really uncool to be seen with chaperons. 保護者と一緒にいるのを見られるのはかっこ悪い。
I'll just go over there and straighten out my support hose. あの辺でストッキングのシワを伸ばしてるわ。
I've never seen him go five minutes without at least a Tic Tac. タブレットのお菓子なしじゃ5分ともたないわ。
Let me take a wild shot here. 当ててみましょうか。
I'm robbing the cradle. ずっと年下の若い子と恋人関係だ。
The truth is I was off by two years. 本当は2才サバを読んでるの。
My agent suggested that I drop a few years. 事務所が2,3才サバを読むように提案したの。
It's not my kind of thing. 私の好きなこと(やりたいこと)ではない。

2018年9月27日木曜日

implicationとはどういう意味か

 最近何度か implication という単語を耳にして、イマイチしっくり来なかったので調べてみた。暗示、含蓄という意味の他に、結果、影響、関連事項という意味があるらしい。

Privacy Implications of the Internet of Things
IoT技術のプライバシー影響

Performance implications of the architecture
そのアーキテクチャのパフォーマンス影響

The Security Implications of Open Data in Healthcare
ヘルスケアにおけるオープンデータのセキュリティ影響

〜によって引き起こされる影響、懸念事項くらいの意味があると覚えておくとよさそう。

以下の単語が同様の場面で使われる。

conclusion(結果)
ramification(予期しない結果・影響)
link(関連、関係)
entanglement(もつれ、絡み合い)

2018年9月16日日曜日

アメリカ就労ビザについて

 アメリカの就労ビザをとるのがどれくらい大変なのか調べてみた。


ソフトウェアエンジニアとしてアメリカで働きたい場合は、高度な専門知識を要する職業につくための「H-1B visa」というのを取るらしい。

  • 毎年4月に応募が開始される
  • 結果がでるのは10月
  • 期限は3年
  • 期限が切れたら再申請が必要
  • 取得時の専門分野と異ならなければ転職も可能
  • 応募数がvisa発行可能数を超えた場合は抽選が行われる
    • アメリカの大学院を卒業した人には優先枠が設けられている
  • 抽選に当たる確率(2018)は
    • アメリカの大学院を卒業していれば55%くらい
    • そうでなければ35%くらい
  • 年度によって応募数は変わり、抽選がない年もある
なるほど〜、入社試験をパスしてもvisa取れなかったら多分見送りとかになるのかな・・(よっぽど優秀な人であれば待ってくれるのかもしれないが)。

参考

Type I/II/III error

まえがき

先日参加したニューヨークのカンファレンスのキーノートで、あるデータサイエンティストが以下のように話し始めた。

「みんなご存知のとおり、検定には3つのエラーがあります。Type I error、Type II error、Type III errorです。」

あれ、Type III errorって何だっけな?となったので調べてみた。

TLDR

Type I error
  • 偽陽性
  • 帰無仮説を誤って棄却してしまうこと

Type II error
  • 偽陰性
  • 帰無仮説を誤って採用してしまうこと

Type III error
  • 帰無仮説を誤った理由によって正しく棄却すること

易しい解説

実験によってえられた結果が統計的に正しいかどうかを検証する作業を「検定」と言います。たとえば、「セミのオスとメスの平均寿命は異なる」という主張を証明するために実験をしたとします。

 このとき「セミのオスとメスの平均寿命は異なる」のように実験の結果として主張したい内容を「対立仮説」と呼びます。これに対し、主張したい内容と反対の仮説「セミのオスとメスの平均寿命に差はない」を「帰無仮説」と呼びます。

検定では「帰無仮説」が正しいとした場合に実験結果が観測される確率を計算し、その確率が十分に低い場合は「帰無仮説」が間違っており「対立仮説」が統計的に正しいだろうという結論付けをします。逆に実験結果が観測される確率が十分に低くない場合は、「帰無仮説」を棄却できず「対立仮説」が正しいとは言えないという結論付けをします。

セミの例で各種エラーを説明してみます。
本当はどうなのか分かりませんが、仮に「セミのオスとメスの平均寿命に差はない」というのが真実だったとします。

本当はオス・メスの差はないにも関わらず、たまたま実験結果に差が現れて帰無仮説が棄却されたとします。このような状況を「Type I error」と呼びます。

次に仮に「セミのオスの方がメスより平均寿命が長い」というのが真実だったとして話を進めます。

たまたま実験結果ではオス・メスの寿命に大きな差が見られず、本来棄却されるべき帰無仮説をたまたま棄却できなかったとします。この状況を「Type II error」と呼びます。

また、たまたま実験結果ではメスの方がオスよりも平均寿命が長く、帰無仮説を棄却したとします。帰無仮説を正しく棄却はできましたが、平均寿命の大小関係が真実と逆になっています。このような状況を「Type III error」と呼びます。

2018年7月21日土曜日

español 29


¿En qué puedo ayudarle?

「いらっしゃいませ」という表現だが、ayudarleとは何なのか?
辞書を引いてもayudar = to help という動詞は見つかるが、ayudarleという動詞はない。

同様に、

En qué puedo servirle?

という表現もある。

どうやら、不定詞、動名詞の場合は、動詞の後に目的語をくっつけてもいいらしい。

たとえば上の例だと、

¿En qué le puedo ayudar?

という風に目的語を動詞の前にもってくることもできるし、

¿En qué puedo ayudarle?

という風に動詞とつなげてもいい。

そもそもスペイン語の目的語を知らなかったので、この機会に覚えておく。
スペイン語の場合は、直接目的語/間接目的語で表現が違うらしい。

直接目的語
me nos
te os
lo/la los/las

間接目的語
me nos
te os
le les

español 28

 Hola a todos. Esta semana hace demasiado calor.

今日は買い物をするときに使える表現の続きを復習した。

市場にて
Quisiera cuatro lonchas de jamón.
ハムを4切れください。
- loncha = slice
- jamón = ham

Póngame un trozo de queso por favor.
チーズをひとつください。
- poner = to put, to give
- trozo = piece
- queso = cheese

Deme medio kilo de queso por favor.
チーズを500gください。
- deme = give me
- medio = half

¿Puedo probarlo?
味見しえてもいいですか?
- probar = to test, to taste

Está riquísimo.
美味しいです!
- riquísimo = delicious

服屋にて
Quiero este bolso.
このバッグが欲しいです。
- bolso = bag

¿Puedo probarme esto, por favor?
これを試着できますか?
- probar = to test, to taste

¿Dónde están los probadores?
試着室はどこですか?
- probadores = fitting room

¿Me queda bien este vestido?
このドレスは私に似合ってますか?
- quedar = to fit, to suit
- vestido = dress

¡Me lo llevo!
買います!
- llevar = to take

Es demasiado caro. ¿Tiene algo más barato?
それは高すぎます。もっとやすい別のものはありますか?
- barato = cheap

両替所にて
Quisiera cambiar dinero.
両替したいです。
- cambiar = to change
- dinero = money

¿Se puede cambiar dinero aquí?
ここで両替できますか?

¿Cuánto quiere cambiar?
いくら両替したいですか?

Quisiera cambiar cien dólares.
100ドル両替したいです。

¿Puedo sacar dinero con mi tarjeta de crédito?
クレジットカードでお金を引き出せますか?
- sacar = to take out, to remove

Necesita firmar aquí.
ここにサインしてください。
- necesitar = to need
- firmar = to sign



2018年6月30日土曜日

español 27

スペイン語の所有形容詞(adjetivo posesivo)について勉強した。

代名詞
まずは代名詞の復習から。
yo nosotros/nosotras
vosotros/vosotras
él/ella/usted ellos/ellas/ustedes

所有形容詞
mi nuestro/nuestra
tu vuestro/vuestra
su su

注意点
  • 所有されるものが複数の場合は、所有形容詞の後にも"s"がつく。
  • 所有されるものが女性名詞の場合は、nuestro -> nuestra, vuestro -> vuestraとなる。
例文

Mi casa es tu casa. 僕の家は、君の家だよ。(気楽にくつろいでね)

Ellos son mis amigos. 彼らは私の友達だ。

¿Este es tu libro? これは君の本ですか?

Nuestra casa es muy grande. 私たちの家はとても大きい。

Escriba su nombre aquí, por favor. あなたのお名前をこちらにご記入ください。


español 26

Hola. Buenas tardes.

買い物をするときに使う表現を勉強したのでメモしておく。

Bienvenido a nuestra tienda.
ようそこ、私たちの店へ。
- bienvenido = welcome
- nuestra = our
- tienda = store

¿En qué puedo ayudarle?
いらっしゃいませ。(何かお手伝いしましょうか)
- ayudar = to help
- le = you (formal)

Sólo estoy mirando.
見ているだけです。
- sólo = just
- mirar = to look at

¿Lo quiere?
それを欲しいですか?
- lo = it

Me lo llevo. ¿Cuanto cuesta?
それを買います。いくらですか?
- llevar = to take

No estoy seguro. Volveré más tarde.
まだわかりません。あとでまた来ます。
- seguro = sure
- volver = return
- más tarde = later (more late)

¿Puedo pagar con tarjeta de crédito?
クレジットカードで支払いできますか?
- pagar = to pay
- tarjeta = card
- crédit = credit

¿Puedo ver su pasaporte?
パスポートを拝見できますか?
- ver = to see
- su = your (formal)
- pasaporte = passport

Aquí tiene.
はい、どうぞ。
aquí = here

¿Me puede dar un recibo?
レシートをください。
- dar = to give
- recibo = receipt

¿Me puede dar una bolsa?
袋をください。
- bolsa = bag


2018年6月23日土曜日

español 25

¡Hola a todos! ¿Como están?
Hoy voy a aprender la pronunciación de "R" y "RR".


RとRR
アルファベットの読み方は"アール" ではなく、"エレ" というらしい。
Rは "エレ"、RRを "ダブルエレ" という。

Rの発音
Rの発音は2種類ある。
  • soft sound: 英語の "d" に近い音
  • strong sound: ヘリコプターの振動音
語頭の "r" および、"l", "n", "s" の後に続く "r" はstrong soundになる。

roca  岩
rico  金持ち
alrededor  まわり 
sonrisa  笑顔 
israel  イスラエル

それ以外の "r" はsoft soundになる。
aire  風
verde  緑
tres  3
habla話す

RRの発音
Rのstrong soundと同じでヘリコプターの振動音っぽい音になる。

arroz  米
carro  車
correr  走る
horror  ホラー

日本語との比較
RRの発音を「巻き舌」のRと言うことがあるが、実際の違いは舌を巻いてるかいないかではなく、何回上下に動かしたの違いなので、single tap "r"、multi tap "r" という表現の方がいいらしい。

日本語の "r" は single tap "r" に近いらしい。

"water" はカタカナで"ウォーター"というより"ワラ"と発音すると方が通じるという話があるが、英語の母音の間のtはsingle tap "r"っぽいし、日本語の"r"もsingle tap "r"っぽいので、確かにその方が近く感じるのかもしれない。

2018年6月17日日曜日

español 24

 最近billboardのランキングを見ていると、スペイン語の曲が結構あることに気づいた。

ということで、

たまにはスペイン語の曲の歌詞からスペイン語の勉強をするのもいいだろうということで、 Becky G, Natti Natasha の 「Sin Pijama」 という曲の歌詞を見てみた。


まずは歌い出し。

Solo, sólito en la habitación.
Lonely, lonely in the room.

habitaciónはホテルの予約の仕方を勉強したときに出て来たので分かった。
sólitoも英語のsolitudeに似てるので、なんとなく寂しいという意味だろうと分かる。女性が歌っているけど、sólita ではなく sólito なので男性目線のフレーズだと分かる。

一気に飛んでサビ。

Si tú me llama'
Nos vamo' pa' tu casa
Nos quedamo' en la cama
Sin pijama, sin pijama

If you call me
We'll go to your house
We'll stay in bed
Without pajamas, without pajamas

省略形が多用されていて一瞬「??」となるが、省略しない形で書くと、

Si tú me llamas
Nos vamos para tu casa
Nos quedamos en la cama
Sin pijama, sin pijama

となる。

初めて見た単語は quedar = (to stay) だけだった。
これはar動詞で、念のため活用形を復習しておくと、

quedo quedamos
quedas quedáis
queda quedan

のようになる。

どうでもいいけど、Becky Gの前歯の隙間がいつの間にか埋まっていて、ちょっと残念。昔はこんな感じだった。

2018年6月16日土曜日

発音がしっくり来ない英語

上手く発音できないな〜と思った英単語や英語表現をリスト化したやつ。
なぜうまく発音できてないと感じたのか、どうしたら自分なりにしっくりくる発音ができるのかをメモしておく。

automatically
母音に挟まれたtをdっぽくしたり、iのところをəっぽくしたりしてみたが、どうもしっくりこない。
発音記号を見るとどこがしっくり来ていないか分かった。

[ɔːtəˈmætɪkli]

オートマティカリーではなく、オートマティクリーのように発音すると発音しやすくなった。

mathematically、typicallyも同じように、カリーではなくクリーと発音するらしい。

transferred to 
トランスファードトゥのように発音するのはかなり不自然な感じがしていた。ネイティブの人は音を同化させて、トランスファートゥのように発音してるっぽい。

そういえばこのパターンは学校でも習っていて、used to = ユーストゥ、supposed to = サポーストゥと発音するな〜と思い出した。

probabilistic
プロバビリスティックではなくプロババリスティック。
以下のようにschwaを意識するとよい。

[prɑːbəbəˈlɪstɪk]

はっきりと「ビ」と発音すると口元がもたついて、真ん中の音節にかける時間が長くなってしまってスムーズに発音できていなかったのではと考えられる。

ちなみに、probabilityの場合はアクセントがのっているので、バビと「i」をしっかり発音する。

generalization
ジェネラリゼーションではなく、ゼネララゼーション。

[dʒenərələˈzeɪʃən]

schwaを意識する。

category
アクセントがどこにあるか分かってなかった。アクセントは第一音節にある。

[ˈkæt̬.ə.ɡri]

アクセントのある第一音節の母音は æ で、アクセントのない第二音節の母音は ə になる。よって、カタカナで書くと「カテゴリ」ではなく、「ケタゴリ」の方が近い音になる。

necessarily
ネセサリリーと発音していると舌がもたついてしまう。
スムーズに発音するためには、母音をschwaにする必要がある。

[ˈnesəsərəli]

最初の音節はアクセントがくるので、「エ」だが、残りは「ア」と「ウ」の間っぽい感じ。
カタカナで書くと、「ネセサリリー」ではなく「ネススルリ」。

area
エリアと発音すると何かが足りてないような感覚があった。

[ˈeəriə]

なので、「エアリア」のようにに「ə」の音を入れないといけない。

imperative
「インペアレイティブ」と思ってたけど、「インペアラティブ」。
アクセントの位置が分かって無かった。

[imˈperətiv]

similarly
rを発音するのが難しいと思っていたら、イギリス発音の場合はrは発音しないっぽい。
ということで、rは発音しなくても通じるはず。

[ˈsɪmələli]

comparatively
アクセントは第二音節なので第二音節の母音ははっきりと発音する。
tiveのところはアクセントがないのでschwa。
[kəmˈpærətəvli]

whereas
後ろにアクセントがある。
[weərˈæz]

walk
ウォークと思っていたがアメリカ英語だとワークに近い。
[wɒːk]

これだとworkとの区別が難しいがworkは
[wɜːrk]

walkの場合は口を縦に開いて顎が落ちるが、workの場合は顎が落ちない。

pattern
アクセントが頭にくるので最初の母音ははっきりと発音する。「あ」と「え」の間の「æ」という音。
[ˈpætərn]

poverty
アクセントが頭にくるので最初の音節は長め。"r" は発音しない。
「パーバティ」みたいな感じ。
[ˈpɑːvərti]

statically
「スターティクリ」
第一音節にアクセントがあるのがポイント。

mechanics
「ミケニクス」
第二音節にアクセントがある。

analogous
第二音節にアクセントがある。

parallelism
第一音節にアクセントがある。

endeavor
第二音節にアクセント。ɪnˈdevər

consequence
第一音節にアクセント。ˈkɑːnsə-kwens

mechanism
第一音節にアクセント。ˈmekənɪzəm

economist
第二音節にアクセント。ɪˈkɑːnəmɪst

analytics
第三音節にアクセント。æ`nəlítiks

yesterday
rの音は無くてもいいっぽい。ˈjestədeɪ
"イエスタ"までで一つの音節になっているくらいの気持ちで発音する。

video
ビデオじゃなくてビディオウみたいな感じ。
[ˈvɪdioʊ]

interesting
音節4つあると思い込んでいたが、実は3つしかない。
[ˈɪntrəstɪŋ]

temporarily
テンポラリリーと発音しようとすると"rily"のところが難しい。
"ra"のところにアクセントを置いて、次のriはschwa。
[tèmpərérəli]

2018年6月10日日曜日

español 23

¡Hola a todos!

今日はホテルで使える表現を勉強した。

予約・チェックインするとき

Tengo una reserva.
予約してます。

No tengo reserva.
予約していません。

Quiero una habitación individual, por favor.
シングルルームを1室お願いします。
- quiero(querer) = to want, to love

Quisiera una habitación doble con cama de matrimonio.
ダブルルームを1室お願いします。
- quisiera = I would like
- con = with
- cama = bed
- matrimonio = marriage

¿Tiene una habitación doble con dos camas?
ツインルームはありますか?

?Para cuántas noches?
何泊ですか?
- para = for
- cuánto = how much

Para dos noches.
2泊です。

Para una semana.
1週間です。
- semana = week

¿Cuánto cuesta por noche?
1泊いくらですか?
- cuesta(costar) = cost
- por = by, because of

¿Cuánto cuesta por persona?
1人いくらですか?

トラブル対応

Hay un problema con la habitación.
部屋に問題があります。
- hay(haber) = to have, to be

La habitación es demasiado pequeña / ruidosa / cara.
部屋が小さ/うるさ/高すぎます。
- demasiado = too
- pequeño = small
- ruidoso = noisy
- caro = expensive

La habitación está sucia.
部屋が汚いです。
- sucio = dirty

Hace demasiado frío/calor en la habitación.
部屋が寒/暑すぎます。

La ducha/La televisión/El aire acondicionado no funciona.
シャワー/テレビ/エアコンが動作しません。
- ducha = shower
- televisión = television
- aire acondicionado = air conditioning
- funciona (funcionar) = to work

No puedo abrir la ventana.
窓を開けられません。
- abrir = open
- ventana = window

No puedo encender la luz.
電気をつけることができません。
- encender = to turn on
- luz = light

No puedo acceder a Internet.
インターネットに接続できません。
- acceder = to access

No hay toallas/jabón/papel higiénico/agua caliente.
タオル/石鹸/トイレットペーパー/お湯がありません。
- toalla = towel
- jabón = soap
- papel higiénico = toilet paper
- caliente = hot

El baño huele mal.
トイレ(浴室)が匂います。
- baño = bath, bathroom
- huele (oler) = to smell
- mal = bad

ホテルで質問する

Se puede alquilar una toalla?
タオル借りれますか?
- alquilar = to rent

¿Donde está el supermercado?
スーパーマーケットはどこにありますか?
- supermercado = supermarket

¿Donde está los servicios?
トイレはどこにありますか?
servicio = service, rest room

¿Dónde se puede comprar leche?
牛乳はどこで買えますか?
- comprar = to buy

Muchas gracias.
Hasta luego.

2018年6月2日土曜日

español 22

Hola, buenas tardes. ¿Como estas?


今日は、天気に関する表現を勉強した。

¿Qué tiempo hace hoy?
今日の天気はどうですか?
- tiempo = weather
- hacer = to do
- hoy = today

Hace sol.
晴れです。
- sol = sun

Hace viento.
風が強いです。
- viento = windy

Hoy hace calor.
今日は暑いです。
- calor = heat

Hoy hace mal tiempo y llueve.
天気は悪く、雨が降ります。
- mal = bad
- llover = to rain

Nieva.
雪が降っています。
nevar = to snow

¿Qué tiempo va a hacer mañana?
明日の天気はどうなりますか?
- ir = to go
- a = to

Mañana va a hacer frío.
明日は寒いです。
- frío = cold

Hoy hace buen tiempo, pero mañana va a nevar.
- buen = good
今日は天気が良いですが、明日は雪が降るでしょう。

2018年5月13日日曜日

español 21

Hola. ¿cómo estás?

esta, este, estoなどの違いがよくわからなかったのでまとめてみた。

Thisに対応するもの
esto = これ
este = この(男性名詞につける)
esta = この(女性名詞につける)
estos = esto, esteの複数形
estas = estaの複数形

Thatに対応するもの
eso = あれ
ese = あの(男性名詞につける)
esa = あの(女性名詞につける)
esos = eso, eseの複数形
esas = esaの複数形

例文
Esto es tu regalo de cumpleaños.
これはあなたの誕生日プレゼントです。
- regalo = present 
- cumpleaños = birthday

Este libro es mía.
この本は私のものです。
- libro = book
- mía = mine

Me encanta esta canción.
私はこの歌がすきです。
- encanta (encantar) = love
- canción = song

¿Puedes ver esa pequeña casa?
あの小さな家が見えますか?
- puedes (ponder) = to be able to
- pequeño = small
- ver = to see

Yo soy una de esas personas.
私はあの人たちの一員です。

¡Quiero eso!
あれが欲しい!
- quiero(querer) = want

español 20

¡Hola, buenas noches!

今日は前回の続きでレストランで使える表現を勉強した。

Soy vegetariano.
私はベジタリアンです。

No como carne.
肉は食べません。

No como marisco.
シーフードは食べません。

Soy alérgico a los productos lácteos.
私は、乳製品アレルギーです。

Esto está demasiado frío.
これは冷たすぎます。
- esto = this
- está (conjugated form of "estar")  = is
- demasiado = too
- frío = cold

Esto está demasiado caliente.
これは熱すぎます。
- caliente = hot

Esto está quemado.
これは焦げています。
- quemado = burnt

Esto está demasiado picante. Nos trae más agua, por favor.
これは辛すぎます。水をもってきてください。
- picante = spicy

Esto está buenísimo.
これはとても美味しいです。
- buenísimo = really good

¿Quieres más?
もっと欲しいですか?

No gracias. Estoy satisfecho.
結構です。満腹です。
- satisfecho = satisfied, full


2018年4月27日金曜日

español 19

¡Hola, amigo!
Me llamo Kenji. Estoy aprendiendo español.

今日は、mi amigaとレストランに行くことを想像しつつ、レストランでの会話の練習をした。

Tengo hambre.
お腹すいたよ。
- tengo = (I) have

Tengo sed. ¿Tienes algo de tomar?
喉が乾いた。何か飲み物もってる?
- algo = something
- tomar = drink

¿Tiene una mesa para dos?
二人ですが、テーブル空いてますか?
- mesa = table

¿Fumadores o no fumadores?
喫煙席ですか?禁煙席ですか?
- o = or

Lo siento. Hemos cerrado.
ごめんなさい。閉店しています。
- hemos = (we) have
- cerrado = closed

Estamos llenos. Hay que esperar.
満席です。待たないといけません。
- llenos = full
- hay que = one must
- esperar = wait

¿Cuánto hay que esperar?
どれくらい待たないといけませんか?
- cuánto = how long

¿Tiene un menú en inglés?
英語のメニューはありますか?

Quiero esto.
これください。
- quiero = (I) want
- esto = this

¿Qué me recomienda?
何がオススメですか?
- qué = what

¿Que están comiendo ellos?
彼らは何を食べているのですか?

¿Qué lleva este plato?
この料理には何が入っていますか?
- lleva = (it) carries
- este = this
- plato = dish


2018年4月21日土曜日

A Survey on Real Time Bidding Advertising

元ネタ
A Survey on Real Time Bidding Advertising

気付き
- DSPはSSPから広告枠を買い付けていると思っていたが、厳密にはAd Exchangeから買っているらしい。SSPと思っていたサービスのサイトをよく見ると、確かにAd Exchangeと書いていた。

- 広告主からマージンをもらって儲けるOpen DSPと、自社の様々な事業の広告を配信して事業の売り上げ増加を目指すNative DSPでは戦略が違うので、その辺りを意識してサーベイする必要がある。

メモ
RTB広告の成長
- 2017年にはディスプレイ広告予算の29%を占める見込み
- 昔: プレミアムな在庫はオフラインで、残りはRTBで
- 最近: プレミアムな在庫もRTBで

DSPでは効率的な入札アルゴリズムが重要
- 最適な広告を選択する
- 最適な入札額を決める

DSPが目指すパフォーマンスの最大化
- インプレッション数
- クリック数
- コンバージョン数

DSPの時間制約
- 10〜100 milli sec
- 入札戦略を最適化するオフラインコンポーネント
- 前もって最適化された戦略を実行するオンラインコンポーネント

予算配分
- 複数の媒体
- DSP業者
- キャンペーン

オークション方式
- Vickery (セカンドプライス)
- OSP (オプショナルセカンドプライス)

フリークエンシーキャップの最適化
- RTBでは個々のクッキーに対してフリークエンシーを制御できる
- 広告主の予算の浪費を抑える

2018年4月18日水曜日

Apache Beam: 正常データ、異常データを別々に処理

 Beam 1.xのときは、side outputを使って異常系のデータをDLQに別途出力するということができた。Beam 2.xになってからside outputがなくなっていたので、どうやるかを試してみた。以下のようにPTransformの中でタグをつけて出力すれば良さそう。

 今回はDLQとしてキューじゃないけどGCSを使ってみた。UnboundedなデータをBoundedな場所に格納することになるのでややこしそうだけど、windowを使えば簡単に実現できる。

サンプルコード

package com.kenjih.sample.side_output;

import org.apache.beam.runners.dataflow.options.DataflowPipelineOptions;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.TextIO;
import org.apache.beam.sdk.io.gcp.pubsub.PubsubIO;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.ParDo;
import org.apache.beam.sdk.transforms.windowing.FixedWindows;
import org.apache.beam.sdk.transforms.windowing.Window;
import org.apache.beam.sdk.values.PCollection;
import org.apache.beam.sdk.values.PCollectionTuple;
import org.apache.beam.sdk.values.TupleTag;
import org.apache.beam.sdk.values.TupleTagList;
import org.joda.time.Duration;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * GCS-based Dead letter queue example
 *
 * @see <a href="https://stackoverflow.com/questions/45173668/gcp-dataflow-2-0-pubsub-to-gcs/45256314#45256314">GCP Dataflow 2.0 PubSub to GCS</a>
 * @see <a href="https://cloud.google.com/blog/big-data/2016/01/handling-invalid-inputs-in-dataflow">Handling Invalid Inputs in Dataflow</a>
 */
public class Main {

  private static final Logger LOG = LoggerFactory.getLogger(Main.class);

  private static class ParseToIntDoFn extends DoFn<String, String> {

    private final TupleTag<String> successTag;
    private final TupleTag<String> invalidTag;

    public ParseToIntDoFn(TupleTag<String> successTag, TupleTag<String> invalidTag) {
      this.successTag = successTag;
      this.invalidTag = invalidTag;
    }

    @ProcessElement
    public void processElement(ProcessContext c) {
      String s = c.element();
      try {
        Integer i = Integer.parseInt(s);
        c.output(successTag, i.toString());
      } catch (Exception e) {
        LOG.error("cannot convert {} to an integer", s);
        c.output(invalidTag, s);
      }
    }
  }

  private static String createTopicPath(String projectId, String topicName) {
    return String.format("projects/%s/topics/%s", projectId, topicName);
  }

  public static void main(String[] args) {
    LOG.info("begin the application");

    DataflowPipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation()
        .as(DataflowPipelineOptions.class);
    options.setStreaming(true);

    Pipeline pipeline = Pipeline.create(options);
    String projectId = options.getProject();

    final TupleTag<String> successTag = new TupleTag<String>() {};
    final TupleTag<String> invalidTag = new TupleTag<String>() {};

    PCollection<String> input =
        pipeline.apply("read",
            PubsubIO.readStrings().fromTopic(createTopicPath(projectId, "kh-test-in-1")));

    PCollectionTuple outputTuple =
        input.apply("parse", ParDo.of(new ParseToIntDoFn(successTag, invalidTag))
            .withOutputTags(successTag, TupleTagList.of(invalidTag)));

    // write successful data to PubSub
    PCollection<String> success = outputTuple.get(successTag);
    success
        .apply("success-write", PubsubIO.writeStrings()
            .to(createTopicPath(projectId, "kh-test-out-1")));

    // write invalid data to GCS
    PCollection<String> invalid = outputTuple.get(invalidTag);
    invalid
        .apply("windowing", Window.into(FixedWindows.of(Duration.standardMinutes(1))))
        .apply("invalid-write", TextIO.write()
            .to("gs://kh-test/dead-letter/")
            .withNumShards(3)
            .withWindowedWrites());

    pipeline.run();

    LOG.info("end the application");
  }


}

Dataflow Runnerでの実行した結果

2018年4月17日火曜日

español 18

¡Hola a todos!


今日はバールに行って注文する表現を勉強しました。
よく使いそうな単語には個別でメモをつけるようにしました。

Qué van a tomar?
注文は何にしましょうか?
  - qué = what
  - van (3rd person plural of "ir") = go
  - a = to
  - tomar = to take, to drink

Un café con leche, por favor.
ミルクコーヒーをください。

Para mí un té con limón y para mi amigo una limonada.
私はレモンティーで、友達にはレモネードをください。
  - para = for
  - con = with

Quiero un vino tinto (blanco).
赤(白)ワインが欲しいです。
 - quiero (1st person singular of "querer") = want, love

Otro zumo de naranja, por favor.
オレンジジュースをもう一つください。
  - otro = another

Otra Coca Cola, por favor.
コカコーラをもう一つください。
  - otra = otroの女性形

¿Se puede comer aqui?
ここで食べれますか?
  - puede (3rd person singular of "poder") = can

Nos (Me) trae la carta, por favor.
私たちに(私に)メニューを持ってきてください。

Quieren algo más?
他にも注文はありますか?
  - algo = something
  - más = more 

Nos trae más agua con (sin) gas, por favor.
炭酸の入っている(いない)水をもっとください。
  - con = with
  - sin = without

Nos trae la cuenta, por favor.
お会計お願いします。

Gracias y hasta pronto.

2018年4月16日月曜日

Apache Beam: 複数のパイプラインをあげる

 Apache Beamで構築するグラフはDAGじゃないといけないという縛りがありますが、DAGであれば連結なグラフじゃなくてもいいらしいです。(これに気づかなくて数ヶ月悩んでました。)
 
 実際にそのようなサンプルを書いて動作確認してみました。

package com.kenjih.multiple_pipe_line;

import org.apache.beam.runners.dataflow.options.DataflowPipelineOptions;
import org.apache.beam.sdk.Pipeline;
import org.apache.beam.sdk.io.gcp.pubsub.PubsubIO;
import org.apache.beam.sdk.options.PipelineOptionsFactory;
import org.apache.beam.sdk.transforms.DoFn;
import org.apache.beam.sdk.transforms.ParDo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class Main {

  private static final Logger LOG = LoggerFactory.getLogger(Main.class);

  private static class AddPrefixDoFn extends DoFn<String, String> {

    private final String prefix;

    private AddPrefixDoFn(String prefix) {
      this.prefix = prefix;
    }

    @ProcessElement
    public void processElement(ProcessContext context) {
      String element = context.element();
      context.output(prefix + element);
    }
  }

  private String createTopicPath(String projectId, String topicName) {
    return String.format("projects/%s/topics/%s",
        projectId,
        topicName);
  }

  public void run(DataflowPipelineOptions options) {
    Pipeline pipeline = Pipeline.create(options);
    String projectId = options.getProject();

    // a data pipeline
    pipeline
        .apply("read-1",
            PubsubIO.readStrings().fromTopic(createTopicPath(projectId, "kh-test-in-1")))
        .apply("transform-1",
            ParDo.of(new AddPrefixDoFn("transform-1: ")))
        .apply("write-1",
            PubsubIO.writeStrings().to(createTopicPath(projectId, "kh-test-out-1")));

    // another data pipeline
    pipeline
        .apply("read-2",
            PubsubIO.readStrings().fromTopic(createTopicPath(projectId, "kh-test-in-2")))
        .apply("transform-2",
            ParDo.of(new AddPrefixDoFn("transform-2: ")))
        .apply("write-2",
            PubsubIO.writeStrings().to(createTopicPath(projectId, "kh-test-out-2")));

    // yet another data pipeline
    pipeline
        .apply("read-3",
            PubsubIO.readStrings().fromTopic(createTopicPath(projectId, "kh-test-in-3")))
        .apply("transform-3",
            ParDo.of(new AddPrefixDoFn("transform-3: ")))
        .apply("write-3",
            PubsubIO.writeStrings().to(createTopicPath(projectId, "kh-test-out-3")));

    pipeline.run();
  }

  public static void main(String[] args) {
    LOG.info("begin the application");

    DataflowPipelineOptions options = PipelineOptionsFactory.fromArgs(args).withValidation()
        .as(DataflowPipelineOptions.class);
    options.setStreaming(true);

    new Main().run(options);

    LOG.info("end the application");
  }

}

GCPのコンソール画面で見ると以下のようになっています。
BigQueryIOのDynamicDestinationsのようなものがPubSubIOにはなくて困っていましたが、上のように独立したパイプラインを作ることができるので、それを応用することでDynamicDestinations的なことができそうです(パイプライン生成時に静的に決めないといけないのでDynamicとは違いますが、複数の可変的な汎用パイプラインをうまく扱えそうという意味です)。

2018年4月12日木曜日

español 17

Hola a todos.
Me llamo Kenji. So de Japón.
Estoy aprendiendo español.


今日は場所に関する表現を勉強した。
これでスペイン語圏に旅行に行っても迷子になることはないはずだ。

Dónde está el museo?
博物館はどこですか?

¿Por favor, dónde está el baño?
すみません。トイレはどこですか?

Siga todo recto.
まっすぐ行ってください。

Doble a la derecha.
右に曲がってください。

Doble a la izquierda.
左に曲がってください。

¿Hay un restaurante por aquí?
近くにレストランはありますか?

Mi casa está cerca del mercado.
私の家は市場の近くにあります。

El hotel está lejos del aeropuerto.
ホテルは空港から遠いです。

El banco está frente a la cafetería.
銀行はカフェテリアの前にあります。

El bar está al lado de la farmacia.
バーは薬局の隣にあります。

Adiós y gracias.

2018年4月11日水曜日

español 16

¡Hola, buenas noches!

今日は、曜日、月、季節の単語を勉強した。

曜日
月曜日: lunes
火曜日: martes
水曜日: miércoles
木曜日: jueves
金曜日: viernes
土曜日: sábado
日曜日: domingo

Hoy es lunes. 今日は月曜日です。


1月: enero
2月: febrero
3月: marzo
4月: abril
5月: mayo
6月: junio
7月: julio
8月: agosto
9月: septiembre
10月: octubre
11月: noviembre
12月: diciembre

Mi cumpleaños es el doce de abril. 私の誕生日は4/12です。

季節
春: primavera
夏: verano
秋: otoño
冬: invierno

La primavera empieza en marzo. 春は3月から始まる。

2018年4月7日土曜日

GCP上に無料でプロキシーサーバを立てる

 GCPの無料枠が余っていたので、プロキシーサーバを立てて遊んでみた。

1. VMインスタンスを作る
- VMの名前はsquidとしておく
- ゾーンはus-east1-bにしておく

2. 作成したVMにログイン
- gcloud compute ssh squid --zone=us-east1-b

3. squidをインストール
- sudo yum install -y squid

4. 設定ファイルを変更
- sudo diff -u /etc/squid/squid.conf.default /etc/squid/squid.conf

--- /etc/squid/squid.conf.default
+++ /etc/squid/squid.conf
@@ -10,6 +10,7 @@
 acl localnet src fc00::/7       # RFC 4193 local private network range
 acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
+acl myhome src xxx.xxx.xxx.xxx  # my home IP

 acl SSL_ports port 443
 acl Safe_ports port 80  # http
@@ -51,6 +52,7 @@
 # from where browsing should be allowed
 http_access allow localnet
 http_access allow localhost
+http_access allow myhome

 # And finally deny all other access to this proxy
 http_access deny all
@@ -71,3 +73,14 @@
 refresh_pattern ^gopher: 1440 0% 1440
 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
 refresh_pattern .  0 20% 4320
+
+# prevent squid from being detected
+forwarded_for off
+request_header_access Referer deny all
+request_header_access X-Forwarded-For deny all
+request_header_access Via deny all
+request_header_access Cache-Control deny all
+
+# hostname
+visible_hostname squid
+

5. squidを起動
- sudo systemctl start squid

6. firewallの設定
- tcp:3128を開けておく

7. ブラウザ(chrome on Mac)の設定
- 設定 >詳細設定 >プロキシ設定を開く >Webプロキシ(HTTP)
- squidサーバのパブリックIP、ポート(3128)を入力

8. アクセス確認
- ブラウザから適当なサイトにアクセス
- squidのログ確認
- sudo tail -f /var/log/squid/access.log


español 15

¡Hola a todos!


今日はスペイン語の動詞の活用について勉強しました。
スペイン語の動詞は以下の3種類があります。

- ar動詞
- er動詞
- ir動詞

それぞれの動詞で活用形が異なります。

ar動詞
arで終わる動詞です。

hablar(話す)を例に活用形をみてみます。

hablo hablamos
hablas habláis
habla hablan

例文
Yo hablo español.
hablas español.
El habla español.
Nosotros hablamos español.
Vosotros habláis español.
Ellos hablan español.

er動詞
erで終わる動詞です。

comer(食べる)を例に活用形をみてみます。

como comemos
comes coméis
come comen

例文
Yo como.
Tú comes.
Él come.
Nosotros comemos.
Vosotros coméis.
Ellos comen.

ir動詞
irで終わる動詞です。

vivir(住む)を例に活用形をみてみます。

vivo vivimos
vives vivís
vive viven

例文
Yo vivo en Japón.
Tú vives en Japón.
Él vive en Japón.
Nosotros vivimos en Japón.
Vosotros vivís en Japón.
Ellos viven en Japón.

規則的な動詞の活用パターンはそれほど複雑ではないですね。

¡Muchas gracias y hasta luego!

español 14

¡Hola, buenos días!

スペイン語では英語のbe動詞に対応するものが2つあります。
今日はその使い分けについて勉強しました。

Ser
Serの活用形
soy somos
eres soís
es son

Serを使う場面
- 永続的なことについて話すとき
- 職業について話すとき
- 出生地/国籍について話すとき
- 特性について話すとき

Serの例文
- El es abocado. (彼は弁護士です)
- Yo soy de japon. (私は日本出身です)
- ¡Eres alto! (君は背が高いね!)

Estar
Estarの活用形
estoy estamos
estás estáis
está están

Estarを使う場面
- 一時的なことについて話すとき
- 場所について話すとき(※ 永続的な場所について話すときもEstarを使うことに注意)

Estarの例文
- Ella está triste. (彼女は悲しい)
- ¿Estás lista? (準備はいい?)
- Tokio está en Japón. (東京は日本の中にある)


2018年4月4日水曜日

español 13

¡Hola a todos!
Yo soy Kenji. 
Estoy aprendiendo español y me gusta aprender español.

今日は、9999までの数え方を勉強した。
1-99までの数え方を知っていれば、規則性があるので青字のところだけ覚えればOK。
1-99までの数え方はこちらを参照。

999までの数え方

100: ciento
200: doscientos
300: trescientos
400: cuatrocientos 
500: quinientos
600: seiscientos
700: setecientos
800: ochocientos
900: novecientos

十の位以下はそのままつなげて読むだけでOK。

101 ciento uno
125: ciento veinticinco
555: quinientos cincuenta y cinco

9999までの数え方

1000: mil
2000: dos mil
3000: tres mil
4000: cuatro mil
5000: cinco mil
6000: seis mil
7000: siete mil
8000: ocho mil
9000: nueve mil

百の位以下はそのままつなげて読むだけでOK。

9999: nueve mil novecientos noventa y nueve

2018年3月29日木曜日

español 12

¡Hola a todos!
Me llamo Kenji.
Soy de Japón. Me gusta comer y me gusta aprender español.



今日はスペイン語でコミュニケーションをとるときに使える便利なフレーズを勉強した。

¿Hablas español?
スペイン語は話せますか?

¿Hablas inglés?
英語は話せますか?

Hablo un poco de español.
私は少しだけスペイン語を話せます。

¿Entiendes Ingrés?
英語は分かりますか?

Lo siento, no entiendo.
ごめんなさい、分かりません。

Estoy aprendiendo español.
私はスペイン語を勉強中です。

¿Puedes hablar más despacio por favor?
もう少しゆっくり話してくれますか?

¿Puedes repetir por favor?
もう一度言ってもらえますか?

¿Cómo se escribe?
それはどのように書くのですか?

¿Cómo se dice en español?
それはスペイン語で何というのですか?

これだけ覚えておけば、スペイン語圏の国に旅行に行っても何とかなりそうだ。

Muchas gracias y hasta pronto.

2018年3月21日水曜日

español 11

¡Hola! Me llamo Kenji.
Yo soy ingeniero. Me gusta mi trabajo.

今日は「〜が好き」というスペイン語の表現を勉強しました。

”もの”が好き
el/laをつけるのを忘れないようにする。

¿Te gusta la música?
音楽は好きかい?
Si, me gusta la música.
はい、私は音楽が好きです。

¿Te gusta la literatura?
文学は好きかい?
No, no me gusta la literatura.
いいえ、文学は好きではありません。

¿Te gusta el cine?
映画は好きかい?
Si, me gusta mucho el cine.
はい私は映画がとても好きです。

”〜すること”が好き
不定詞を使えばOK。

Me gusta cantar. 
私は歌うのが好きです。

Me gusta comer.
私は食べるのが好きです。

Me gusta salir.
私は外出するのが好きです。

”相手の○○”が好き
どこの国でもとりあえず相手を褒めとけばいいはず。

Me gusta tu cara.
あなたの顔が好きです。

Me gusta tu voz.
あなたの声が好きです。

Me gusta tu ropa.
あなたの服が好きです。

Gracias y hasta luego.

2018年3月13日火曜日

español 10

Hola a todos, me llamo kenji.

今日は仕事に関する表現を勉強した。

仕事は何をしているか聞く
¿En qué trabajas?
仕事は何してるの?

¿En qué trabaja usted?
お仕事は何をされているのですか?

「私は〜です」と答える
Soy profesor/profesora.
私は教師です。

Soy estudiante.
私は学生です。

Soy abogado/abogada.
私は弁護士です。

Soy ingeniero/ingeniera.
私はエンジニアです。

「〜で働いています」と答える
Trabajo en una tienda.
私はお店で働いています。

Trabajo en una fábrica.
私は工場で働いています。

Trabajo en una oficina.
私はオフィスで働いています。

Trabajo en un hospital.
私は病院で働いています。

働いていない場合
No trabajo.
私は働いていません。

Estoy jubilado/jubilada.
私は退職しました。

¡Muchas gracias y hasta pronto!

2018年3月11日日曜日

español 9

¡Hola, me llamo Kenji! Yo soi de Japon.

1から99までの数え方を勉強した。


お姉さんによると、4つのパートに分けて覚えるのがいいらしい。
¡Muchas gracias señorita!

まずは1-10までを覚える。
1: uno
2: dos
3: tres
4: cuatro
5: cinco
6: seis
7: siete
8: ocho
9: nueve
10: diez

次に11-20までを覚える。
16-19はdieciのあとに一の位の値を加えただけなので覚えやすい。

11: once
12: doce
13: trece
14: catorce
15: quince
16: dieciséis
17: diecisiete
18: dieciocho
19: diecinueve
20: veinte

21-29まではパターン化されているので簡単。
veinti + 一の位の値となっている。

21: veintiuno
22: veintidós
23: veintitrés
24: veinticuatro
25: veinticinco
26: veintiséis
27: veintisiete
28: veintiocho
29: veintinueve

最後に30-99。
31の場合は treinta y uno (30と1)、45の場合は cuarenta y cinco (40と5)のように表現する。

よって一の位が0のときの表現を覚えてしまえばよい。

30: treinta
40: cuarenta
50: cincuenta
60: sesenta
70: setenta
80: ochenta
90: noventa

Adiós. Hasta mañana.

2018年3月8日木曜日

español 8

Hola, Buenas noches.

今日は、兄弟、子供が何人いるかを伝える表現を勉強しました。

Tengo un hermano.
私には兄弟が一人います。

Tengo una hermana.
私には姉妹が一人います。

Tengo una mujer.  Se llama Camila.
私には妻がいます。彼女の名前はカミラです。

tengoはtenerという動詞の一人称単数現在形です。
un/unaは不定冠詞で、それぞれ男性名詞/女性名詞に対して使われます。

兄弟、子供が2人以上いるときは数 + 名詞の複数形を使います。

Tengo dos hijas.
私には2人の娘がいます。

Tengo tres hijos.
私には3人の息子がいます。

Muchas gracias.
Hasta pronto.

2018年3月7日水曜日

español 7

今日は人称代名詞について勉強した。

単数 複数
一人称 yo nosotros / nosotras
二人称 tú / usted ustedes
三人称 él / ella ellos / ellas

以下補足
  • túはインフォーマル、ustedはフォーマルな場面で使う
  • élは男性、ellaは女性に対して使う
  • nosotros, ellosは男性の集団に対して使う
  • nosotras, ellasは女性の集団に対して使う
  • 男性、女性両方いる集団の場合は、nosotros, ellosを使う

2018年3月6日火曜日

español 6

¡Hola! Buenas noches.
Yo soy Kenji. Vivo en Japón.

今日は家族を紹介する文章の練習です。

Este es mi hermano. Se llama Tom.
こちらは私の兄弟です。彼の名前はトムです。

Esta es mi hermana. Se llama Rebecca.
こちらは私の姉妹です。彼女の名前はレベッカです。

男性名詞/女性名詞かによって、主語がeste/estaに変わるのがポイントです。

madre 母親
padre 父親
mujer 妻
marido 夫
hija 娘
hijo 息子
abuela 祖母
abuelo 祖父

スペイン語ではhの音は発音しないっぽいです。
代わりにjの音がhに近い(フランス語のrっぽい感じ)気がします。

Adiós. Hasta pronto.

2018年3月4日日曜日

español 5

¡Hola! ¿Qué tal?

スペイン語でたまに現れる¡と¿、いったい何やねんと気になっていたので調べてみた。


  • 疑問文の場合は文末のクエスションマークに加えて、文頭に逆さのクエスションマークを付ける。
  • 感嘆文の場合は文末のエクスクラメーションマークに加えて、文頭に逆さのエクスクラメーションマークを付ける。
ということらしい。
お姉さん、可愛いなあ。。

ちなみにキーボードで入力するとき(Mac OS)は、
¡: Option + 1
¿: Option + ?
のように入力すればよい。

Adiós. Hasta luego.

2018年2月21日水曜日

español 4

Hola, buenas noches. Soy Kenji. ¿Qué tal?

¿Eres de España?
あなたはスペイン出身ですか?

¿Es usted de España?
あなたはスペイン出身ですか?(丁寧バージョン)

Sí, soy de España.
はい、スペイン出身です。

No, no soy de España.
いいえ、スペイン出身ではありません。

¿Dónde vives?
どこに住んでるの?

¿Dónde vive usted?
どこに住んでるのですか?(丁寧バージョン)

Vivo en Tokyo, Japón.
私は日本の東京に住んでいます。

Soy de Japón, pero ahora vivo en Inglaterra.
私は日本出身です。でも今はイギリスに住んでいます。

Adiós, hasta luego.

2018年2月20日火曜日

español 3

Hola, buenas noches. ¿qué tal?

最近飲み会ばっかりで肝臓がやばいです。
暴飲暴食はやめて「より少なく、しかしより良く」でいきたいです。

下の写真は「より良く、そしてより多く」なやつです。



Me llamo Kenji. ¿Y tú? 
私の名前はけんじです。君は?

Me llamo Kenji. ¿Y usted?
私の名前はけんじです。あなたは?(丁寧バージョン)

¿Cómo te llamas?
君の名前は?

¿Cómo se llama usted?
あなたの名前は?(丁寧バージョン)

¿De dónde eres?
どこ出身ですか?

¿De dónde es usted?
どこ出身ですか?(丁寧バージョン)

Soy de Japón. 
日本出身です。
※注意 "Japón" は "はぽん"と発音する。

Soy de los Estados Unidos. 
アメリカ出身です。

Adiós, hasta pronto.