screw-witted

なんであれ、ご指摘いただけると幸いです。

System of a down - Chop suey! : 和訳

m.youtube.com

キリスト教くささがあるけど、やっぱ神さまって無理ある気がする。

Wake up
起きろ
Grab a brush and put a little (makeup)
Grab a brush and put a little
ブラシで少しは身だしなみをマシにしろ
Hide the scars to fade away the (shakeup)
Hide the scars to fade away the
ビクビクしないで済むように傷は隠せ
Why'd you leave the keys upon the table?
なんで、鍵束をテーブルに置いたままどっか行っちまったんだ?
Here you go create another fable
あんたが寓話を作る番か
You wanted to
やりたがってたもんな
Grab a brush and put a little makeup
筆を手にとってちょっと大筋でも書いてみろよ
You wanted to
Hide the scars to fade away the shakeup
You wanted to
Why'd you leave the keys upon the table?
You wanted to
I don't think you trust
あんたは信じないと思うけど
In, my, self righteous suicide
独善的な自殺という私の経験から言わせて貰えば
I, cry, when angels deserve to die, die
天使どもが堕ちるとこまで堕ちたときってのは涙が出てくるんだ
Wake up
Grab a brush and put a little (makeup)
Grab a brush and put a little
Hide the scars to fade away the (shakeup)
Hide the scars to fade away the
Why'd you leave the keys upon the table?
Here you go create another fable
You wanted to
Grab a brush and put a little makeup
You wanted to
Hide the scars to fade away the shakeup
You wanted to
Why'd you leave the keys upon the table?
You wanted to
I don't think you trust
In, my, self righteous suicide
I, cry, when angels deserve to die
In, my, self righteous suicide
I, cry, when angels deserve to die
Father, father, father, father
主よ!
Father into your hands, I commend my spirit
あんたの両の手に、私の魂をあずけるよ
Father into your hands
why have you forsaken me
なぜ私を見放したのか?
In your eyes forsaken me
目をはなし
In your thoughts forsaken me
考えもせず
In your heart forsaken, me oh
思ってなんかいやしない、はぁ
Trust in my self righteous suicide
私の独りよがりな言い分を信じろよ
I, cry, when angels deserve to die
てめぇの下っ端どもが腐りきったとき私は涙がでるんだ
In my self righteous suicide
I, cry, when angels deserve to die

基本、同じセンテンスの繰り返しなので、色々と解釈の広さがありそう。

追記:この動画の訳の方が正しいかも。

www.youtube.com

Blur - Country House : 和訳

www.youtube.com

And so the the story begins
物語の始まりはこんな感じ

City dweller, successful fella
都会に住む成功者
Thought to himself oops I've got a lot of money
「おっと、大金を手にいれちゃった」なんて思ったのも束の間
I'm caught in a rat race terminally
生活は自転車操業に陥った
I'm a professional cynic but my heart's not in it
俺は皮肉を生業にしてるけど、根は違う
I'm paying the price of living life at the limit
いつも崖っぷちで生きるために必要な経費を払い続けている
Caught up in the centuries anxiety
It preys on him, he's getting thin
世紀のツケの返済の喰い物にされた彼はやつれていく

He lives in a house, a very big house in the country
彼は田舎の大きな、クソ馬鹿でかい家に住む
Watching afternoon repeats and the food he eats in the country
午後の再放送でも眺めながら食事を口に運ぶ
He takes all manner of pills and piles up analyst bills in the country
田舎のでかい家の中で、彼はあらゆる種類の処方箋を摂って精神分析士からの請求書を積み上げている
It's like an animal farm lot's of rural charm in the country
これが、のどかな牧場のような、農村の魅力溢れるスバラシイ田舎暮らし

He's got morning glory, life's a different story
モーニンググローリーを取っていたら人生も違ってた
(モーニンググローリー:敵対する”Oasis”というバンドのセカンドアルバム、または字の通り)
Everything going jackanory, in touch with his own mortality
生きている限り、すべて程々に成功するだろうね
He's reading balzac, knocking back prozac
彼はバルザックを読みながら、抗うつ剤をがぶ飲み
It's a helping hand that makes you feel wonderfully bland
それは素晴らしい退屈を感じる手助けになってる
Oh it's the centuries remedy
あーこれこそ今世紀への救済
For the faint at heart, a new start
弱った心の新しい門出に

He lives in a house, a very big house in the country
彼は田舎の大きな、クソ馬鹿でかい家に住む
He's got a fog in his chest so he needs a lot of rest in the country
彼は胸の中にモヤがあるから死ぬほど休まないと
He doesn't drink smoke laugh, takes herbal baths in the country
彼は酒もタバコやらず、笑いもせず、ハーブのお風呂に浸かっている
Says she's come to no harm on an animal farm in the country
彼女いわくその田舎の牧場で傷つく動物は存在しないんだって
In the country, in the country
牧歌的な田舎暮らし、田舎暮らし

Blow, blow me out I am so sad, I don't know why
Blow, blow me out I am so sad, I don't know why
私を吹き消してくれ、すっげぇ悲しいけど原因がわからないんだ

He lives in a house, a very big house in the country
彼は田舎の大きな、クソ馬鹿でかい家に住む
Watching afternoon repeats and the food he eats in the country
田舎のでかい家でゴロゴロ昼ドラの再放送でも眺めて
He takes all manner of pills and piles up analyst bills in the country
田舎のでかい家の中で、彼はあらゆる種類の処方箋を摂って精神分析士からの請求書を積み上げている
Oh, it's like an animal farm lot's of rural charm in the country
あー、これが、のどかな牧場のような、農村の魅力溢れるスバラシイ田舎暮らし

He lives in a house, a very big house in the country
He's got a fog in his chest so he needs a lot of rest in the country
He doesn't drink smoke laugh, takes herbal baths in the country
And she's come to no harm on an animal farm in the country

1950年から1970年にかけての日本の景気、とその後。

半年くらい前にググって書いたメモ書き。

90日間以上更新していない云々という文言が目についたので、ここに置いておこ。

日本の景気

このページが手頃な具合にまとまっていると思うので、おすすめです。
日本の景気循環 1950年(昭和25年)~2009年(平成21年)

朝鮮特需:1950年〜1954年

概要戦後不況から脱出

朝鮮特需 - Wikipedia

神武景気:1954年11月〜1957年6月

朝鮮特需によって日本の経済規模が拡大したため

神武景気 - Wikipedia

なべ底不況:1957年7月〜1958年6月

経常収支赤字、外貨準備高が底をつきそうだったため、公定歩合を引き上げた

なべ底不景気に陥った産業

  • 石炭
  • 海運産業等

なべ底不景気に陥らなかった産業

  • 電気機械
  • 精密機械
  • 自動車

なべ底不景気から脱出した産業

  • 鉄鋼
  • 化学
  • 石油精製等

なべ底不況 - Wikipedia

岩戸景気:1958年7月〜1961年12月

  • 重化学工業の技術革新
  • 民間の設備投資加熱
  • 産業の高度化
  • 証券市場の急速な成長
  • 「銀行よさようなら、証券よこんにちは」というフレーズが流行るほど
    投資信託の残高は1961年に4年前の約10倍となる1兆円を突破

岩戸景気 - Wikipedia

オリンピック景気:1962年11月〜1964年10月

  • 新幹線や高速道路などの交通網・会場施設などのインフラへの投資
  • オリンピックに起因するTVや旅行の需要増

オリンピック景気 - Wikipedia

証券不況:1964年11月〜1965年10月

  • オリンピック終了
  • 金融引き締め
  • 重工業の不振の煽りをうけて証券市場もハイレバ運用で自爆

証券不況 - Wikipedia

いざなぎ景気:1965年11月〜1970年7月

所得水準の向上によって、エアコン(クーラー)の購入も増加し、車 (car)、エアコン (cooler)、カラーテレビ (color TV) が3C(新・三種の神器)と呼ばれ、消費の大幅な伸びも見られた。いざなぎ景気の間に日本経済は大きく拡大し、世界第二の経済大国となった。

1960年代アメリカドルはベトナム戦争等によって弱体化の一途をたどり、ついに71年8月、金とドルの交換を停止し、同年12月スミソニアン合意で1ドルが308円の新為替レートになった。

しかしドル危機は解消せず、73年2月変動相場制に移行して現在に至る。

いざなぎ景気 - Wikipedia

円高不況:1970年代以降

円高不況 - Wikipedia

そして『失われたn0年』に至る、と。

Silver Fins - Waiting So Long : 和訳

www.youtube.com

Looking back and morning comes
思い返していたら朝がきた
Don't find your face in your glass
窓ガラスからあなたの顔は見えない
Take the moonlight by the tail
月明かりが長く射し込む
It's a rainy sight You're shading
雨のせいであなたの姿がにじんでしまっている

What is that It's just the same?
何も変わらないことってなんだろうね?
What is trying in your crown
あなたは行き着いた先で何をしようとしているの?
I'm spending in my glass, walking back
私は窓の側を日々行ったり来たり
So wear my glass You're fading
窓がすり減ってあなたの影も薄れていく

I'm waiting so long...
私はずっと待っている
I'm waiting so long...
I'm waiting so long...
I'm waiting...

Blowing up The storm's around
嵐が辺りを吹き上げても
Don't turn your face to your back
あなたは振り返りもしない
In a silence Have a better dream
静かに良い夢を
Sing into the wind You're shading
風に歌うあなたは消えていく

The rainy winds will wash away
吹き付ける雨が洗い流そうとしている
All what your want in your crown
あなたは行き着いた先に何を求めているの?
There is an end but it's endless
いつか終わるけど、切りがない
Though any wise we're fading
どんなに考えを廻らせたとしてもいずれ私たちは消えていく

I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting...

What is that It's just the same
何も変わらないってなんだろうね?
What is trying in your crown
あなたは何処で何をしているの?
I'm spending in my glass walking back
私は窓のそばでずっと
So wear my glass You're fading
窓がすり減ってあなたは消えていく

I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting so long...
I'm waiting...

かなり意訳というかこじつけに近い気がしていて、少し不安です。何かお気付きの方はご指摘お願いします。

Crown: 王冠→頂点:到達点:たどり着いた先という意味合いもあるそう

Wear:船の帆を操作し方向転換をするという意味合いや、すり減らすという意味合いもあるそう

Mac 最初にやる設定

macOS Sierra 10.12.2 on Macbook Pro 2013 late で個人的に最低限行っておく設定の備忘録。

ディスクフォーマット

Journaled (Case-sensitive にしない)、必要に応じて暗号化。

コンピュータ名

設定→共有→コンピュータ名

ドラッグの有効化

設定→アクセシビリティ→マウスとトラックパッドトラックパッドオプション

ドラッグを有効化して、スクロール速度を最速にする。

トラックパッド

設定→トラックパッド

全てのジェスチャを有効化する。軌跡の速さを最速にする。

キーボード

設定→キーボード→修飾キー

CapsLockとCtrlを入れ替える。

入力ソースに日本語を追加して『ひらがな』と『英字』だけにした上で、入力ソース『US』を除去。

通知

設定→通知→カレンダー

バナーにする。

Spotlight

設定→Spotlight

『”調べる”でSpotlightの検索候補を許可』のチェックを外す。

Dock

設定→Dock

『Dockを自動的に隠す/表示』にチェックを入れる』

Terminal

開いてプロファイルのProを複製して文字サイズを12pt.に変更した上でデフォルトに指定。

Xcode

インストールしたら、CommandLine Tools をインストールする。他にインストールする必要のあるアプリも一緒に入れとく。

Avira antivirus

Avira Free Antivirus Mac - The best antivirus for Apple OSX

インストールしたら、Threat Scan を Scan all files に、Heuristic Detection Level を High に設定しとく。

homebrew

Homebrew — macOS 用パッケージマネージャー

インストールしたら、ひとまず Git と Vim だけインストールしとく。

cocoapods

CocoaPods.org

インストールする。

Fails to install cocoapods on Ruby 2.4 · Issue #6299 · CocoaPods/CocoaPods · GitHub

Ruby周りで頑張るのは嫌なので素直に App をインストールした。この方が管理も楽できそう。

karabiner

GitHub - tekezo/Karabiner-Elements: Karabiner-Elements is a powerful utility for keyboard customization on macOS Sierra (10.12) or later.

必要に応じてインストール。

辞書

辞書を起動して、好みの辞書を追加する。

vim

" 右下に表示される行・列の番号を表示
set ruler

" 自動インデントを有効にする
set autoindent

" タブではなくスペースを入れる
set expandtab

" タブを表示する時の幅
set tabstop=4
 
" 自動で挿入されるインデントの幅
set shiftwidth=4
 
" タブ入力時の幅を2に設定
set softtabstop=4
 
" 閉じ括弧入力時に対応する括弧の強調
set showmatch
 
" showmatch設定の表示秒数(0.1秒単位)
set matchtime=4
 
" インクリメンタルサーチを行う(検索文字入力中から検索)
set incsearch
 
" 文字列検索で大文字小文字を区別しない
set ignorecase
 
" 文字列検索でマッチするものをハイライト表示する
set hlsearch
 
" 検索文字に大文字が含まれる場合にignorecaseをOFFにする(大文字小文字を区別する)
set smartcase
 
" コマンドラインにおける補完候補の表示
set wildmenu
 
" Deleteキーを有効にする
set t_kD=^?
 
" バックスペースキーの動作を普通のテキストエディタと同じようにする
set backspace=indent,eol,start
 
" 見た目によるカーソル移動をする(1行が複数行に渡って表示されている時に表示上の行ごとに上下移動させる)
nnoremap j gj
nnoremap k gk
 
" シンタックスを有効にする(コードをカラーを付けて見やすくする)
syntax enable
 
" カラー設定
colorscheme desert

" エンコーディングをutf8に設定
set encoding=utf8

" ファイルエンコードをutf8に設定
set fileencoding=utf-8

" 編集中のファイル名を表示
set title

" ウィンドウの幅より長い行は折り返して表示
set wrap

http://kenchan0130-aki.hatenablog.com/entry/2013/10/06/035023

.bashrc とか

$ touch .bash_profile
$ touch .bashrc
$ chmod 744 .bash_profile
$ chmod 744 .bashrc
$ vim .bash_profile
---
#!/bin/bash

export PATH="${PATH}"

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi
---
$ vim .bashrc
---
#!/bin/bash

alias ll="ls -l"
alias la="ls -la"
---

本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita

ハロー"Hello, World" 第1章 - 読書メモ

gcc オプション

$ gcc hello.c -o hello -Wall -g -O0 -static

-o : 実行ファイル名
-Wall: 警告をすべて表示する
-g: デバッグ情報を表示する
-O0: 最適化しない(gdbでデバッグするため、-O1:最適化を行う、-O2:更に最適化を行う)
-static: スタティックリンクでコンパイルする(この方が解析が楽になるらしい)

スタティックリンクってなに?

www.atmarkit.co.jp

実行ファイルを実行する際に、共有ライブラリ(.so: shared object file, .dll: dynamic link library)がなくても動くようにするためのオプション。

アセンブリ言語ってなに

こんなの

〜前略〜
080482bc <main>:
 80482bc:       55                      push   %ebp
 80482bd:       89 e5                   mov    %esp,%ebp
 80482bf:       83 e4 f0                and    $0xfffffff0,%esp
 80482c2:       83 ec 10                sub    $0x10,%esp
 80482c5:       8b 45 0c                mov    0xc(%ebp),%eax
 80482c8:       8b 10                   mov    (%eax),%edx
 80482ca:       b8 0c 36 0b 08          mov    $0x80b360c,%eax
 80482cf:       89 54 24 08             mov    %edx,0x8(%esp)
 80482d3:       8b 55 08                mov    0x8(%ebp),%edx
 80482d6:       89 54 24 04             mov    %edx,0x4(%esp)
 80482da:       89 04 24                mov    %eax,(%esp)
 80482dd:       e8 7e 10 00 00          call   8049360 <_IO_printf>
 80482e2:       b8 00 00 00 00          mov    $0x0,%eax
 80482e7:       c9                      leave  
 80482e8:       c3                      ret    
 80482e9:       90                      nop
 80482ea:       90                      nop
 80482eb:       90                      nop
 80482ec:       90                      nop
 80482ed:       90                      nop
 80482ee:       90                      nop
 80482ef:       90                      nop
〜後略〜

・・・これを読むのか、パーになりそうだ。

レジスタってなに

CPUに備えられてる(グローバル?)変数の様なもの。
x86には下記のレジスタがある。

X86アセンブラ/x86アーキテクチャ - Wikibooks

  • EAX
    アキュムレータレジスタ
    算術演算操作の結果が格納される

  • EBX
    データレジスタ
    算術演算操作とI/O操作に使用される

  • ECX
    カウンタレジスタ
    シフトローテート命令(?)とループ命令に使用される

  • EBP
    スタックベースレジスタ
    スタックのベースを指し示すのに使用され

  • ESP
    スタックポインターレジスタ
    スタックのトップを指し示すポインタ

アセンブリ言語を読んでみる

レジスタの使い方

%eax
  レジスタが保持する値

(%eax)
  レジスタが保持する値(アドレス)が指すメモリに格納された値

0xc(%ebp) 
  EBPレジスタが保持する値に 0xc(12) を加算した結果をアドレスとして扱い、
  そのアドレスに対応するメモリ上の値

アセンブラ読解

push %ebp
  EBP(スタックベースレジスタ)に値を積む
  具体的にはスタックポインタを 4 だけ減算(スタックを 4byte 拡張)して
  スタックポインタのさす先のメモリ上にスタックベースレジスタの値を書き込む

mov %esp,%ebp
  スタックポインタの値をスタックベースレジスタに代入

and $0xffffff0,%esp
  ESP(スタックポインタ)の値に 0xFFFFFFF0 を論理積を掛け、ESPに代入する
  スタックポインタを16バイト境界に(16の倍数に)そろえている

sub $0x10,%esp
  スタックポインタの値から 0x10 を減算し、スタックポインタに格納する
  (16byteのスタックフレームを獲得している: ESP値 - 10 = 16byte 確保?減算する値はESPの値に応じて変わる?)

mov 0xc(%ebp),%eax
  スタックベースポインタの値に 12 を加算したアドレスの値
  (一区切り目の末尾1byte:関数(printf?)からの戻り先アドレス)をアキュムレーターに代入する

mov (%eax),%edx
  関数からの戻り先アドレスを
  データレジスタに代入する

mov $0x80b360c,%eax
  アキュムレータに
  $0x80b360c という値を代入する

mov %edx,0x8(%esp)
  スタックポインタが持つ値に 8 を加算したアドレスに
  データレジスタが持つ値を代入する

mov 0x8(%ebp),%edx
  スタックポインタが持つ値に 8 を加算したアドレスが持つ値を
  データレジスタに代入

mov %edx,0x4(%esp)
  データレジスタが持つ値を
  スタックポインタが持つ値に 4 を加算したアドレスに代入する

mov %eax,(%esp)
  アキュムレータが持つ値($0x80b360c)を
  スタックポインタが持つアドレスに代入する

call 8049360 <_IO_printf>
  関数呼び出し
  〜前略〜
  08049360 <_IO_printf>:
    レジスタの値でなんかやってる
  〜後略〜

leave
  関数のexit 的な何か(?)

ret
  return

nop
  なにもしないなにか

メモリのイメージ(2命令目以降)

合っているのか不安です

関数戻り値(第一引数のアドレス) 第三引数 第二引数 第一引数
スタック(4byte) スタック(4byte) スタック(4byte) スタック(4byte)
esp +12 +8 +4 +0

なんとなく、わかったような気がするだけで、全然わかってない気がする。

トレース慣れるまで苦労しそう・・・まだ第一章・・・ついていけるのだろうか。

詳しく(かつ正しく)は本に載ってる。

Mac と VirtualBox で、ハロー "Hello, world" を始めてみる

www.shuwasystem.co.jp

↓途中までなら Google Books にも公開されているようです。

ハロー“Hello,World”OSと標準ライブラリのシゴトとしくみ - 坂井弘亮 - Google ブックス

私の環境

  • Mac
  • Virtual Box

Virtual Machine のインポート

ハロー・ワールド入門 サポートページ

まずは上記のサイトから CentOS6 のVMイメージを落とす。

VM イメージのダウンロード〜リネーム

なぜかファイル名が Unknown になっているので md5 チェックサムを確認してからリネームする。

$ openssl md5 ~Downlaods/Unknown
MD5(Downloads/Unknown)= dc6fd334b809372eb8e4809150100648

$ mv ~Downlaods/Unknown ~Downlaods/helloworld-CentOS6.ova

Virtual Box にインポートする

『ファイル』→『仮想アプライアンスのインポート』を開き、『helloworld-CentOS6.ova』を選択してポチポチするだけ。

sshログインして作業をしたいので、ホストオンリーアダプターの追加とネットワークの設定をする

ホストオンリーアダプターの追加

仮想マシンの『設定』→『ネットワーク』を開き『アダプター 2』に『ホストオンリーアダプター』を割り当てる

仮想マシンNICの設定

IPADDRとかの設定は環境に合わせて適当に。

$ su -

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
下記のように設定
-----
DEVICE=eth0
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=10.0.2.150
PREFIX=24
GATEWAY=10.0.2.2
-----

# vi /etc/sysconfig/network-scripts/ifcfg-eth1
下記のように設定
-----
DEVICE=eth1
NM_CONTROLLED=no
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.56.35
PREFIX=24
-----

# service network restart
# ifconfig -a | less
-----
eth0      Link encap:Ethernet  HWaddr 08:00:27:60:5E:9D  
          inet addr:10.0.2.150  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe60:5e9d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:256 (256.0 b)  TX bytes:1978 (1.9 KiB)

eth1      Link encap:Ethernet  HWaddr 08:00:27:77:C5:FE  
          inet addr:192.168.56.35  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe77:c5fe/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1353 errors:0 dropped:0 overruns:0 frame:0
          TX packets:758 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:117391 (114.6 KiB)  TX bytes:124113 (121.2 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:44 errors:0 dropped:0 overruns:0 frame:0
          TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3744 (3.6 KiB)  TX bytes:3744 (3.6 KiB)

-----

sshd自動起動、ネットワークマネージャーの自動起動無効化、ネットワークの自動起動、の設定

# chkconfig sshd on
# chkconfig --list sshd
-----
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
-----

# chkconfig NetworkManager off
# chkconfig --list NetworkManager
-----
NetworkManager  0:off   1:off   2:off   3:off   4:off   5:off   6:off
-----

# chkconfig network on
# chkconfig --list network
-----
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
-----
# service sshd start

# netstat -ant
-----
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 192.168.56.35:22            192.168.56.1:54109          ESTABLISHED 
tcp        0      0 :::22                       :::*                        LISTEN 
-----

これでホストから ssh でログインできたら完了。