trinoの走り書き RSSフィード

プログラム・数学・物理の他、音楽・ゲーム・評論・戯言・絶叫などがあります。

2018-11-19 娘が生まれて3カ月が経ちました

順調に育っています。3歳の息子がやや赤ちゃん返りしているようです。

今回、育児のため、1カ月休みました。当初は育児休暇を取得しようと思ってました。ちなみに数年前からうちの会社でも男性でも育児休暇がとれるようになりました。なので取得しようと思ったのだが、考えてみたら1カ月くらいなら育児休暇より普通に有給休暇を取得したほうが得だということに気がついてそちらに変更しました。というわけて1カ月専業主夫をやってました。仕事のほうはあらかじめ伝えていたので特に問題はなかったです、グループ内部では・・・。しかし他部署はそんなことお構いなしなので何回か在宅勤務でフォローしていました。なかなか大変でした。

10月半ばあたりに異動になりました。いや正確にはグループごとオフィス移転になりました。少し遠くなったけど駅から近くなったのでトータルはあまり変わらず。それどころか帰りも座れるようになったのでむしろ楽になりました。当分の悩みは昼食をどうするか。また弁当を復活させたいです。

トラックバック - http://d.hatena.ne.jp/n-trino/20181119

2018-08-13 突然ですが

娘が生まれました

トラックバック - http://d.hatena.ne.jp/n-trino/20180813

2018-04-25 3世代を超えた送金

ゆうちょの定期貯金の満期の知らせが来て普通貯金に移動させた。

はるか昔、私がもらったお年玉を親が毎年定期貯金に入れていた。それが満期を迎えたのだ。明らかに長すぎるのでおそらく2回目か3回目の満期かと思われる。

現在ゆうちょの口座は娘の給食費の支払いにしか使われていないのでいずれそちらに支払われるだろう。

お年玉は主に祖父母や親せきからもらったものだ。なので祖父からもらったお金が娘の給食費に充てられていることになった。

祖父母もまさか自分のひ孫の給食費を払っているとは夢にも思わなかっただろう。

私も既にお年玉をあげる側になって久しいが、渡しているお年玉が今後どのように使われていくのだろうか想像もつかない。

トラックバック - http://d.hatena.ne.jp/n-trino/20180425

2018-04-03 あけましておめでとうございます(違)

新年どころか新年度も明けてしまいました。半年程過ぎてしまいました。いつもながらの生存確認更新です。

まあ実際、この1年ほど死にそうな程きつかったです。真面目に退職を考えていたのですがなんやかんやと結局辞めずに続けています。ただし上司と半分喧嘩状態で話し合いになり、結果、仕事の内容が大きく変わりました。おかげで大分余裕が出てきました。今年度から少し生活スタイルが変化するのではないかと考えています。

ここのところ、仕事pythonを書きまくっている。とりあえず単純なプログラムを書く際には何も見ずに書けるようになったので初心者から初級者にUPしたかなと考えている。

一方、趣味swiftを書いている。趣味時間殆ど取れないのでswiftはまだまだ初心者のまま。もうすこし頑張りたい。しかしpythonswift微妙に似ているから紛らわしい。

本業C++最近simdゴリゴリ書いた。実に10年ぶりであるVisualStudioが2010から2015に移行したのでC++11を本格的に使い始めた。まだまだ知らない文法ライブラリが多い。初心に帰った気分である

さて少し余裕が出てきたしここももうちょっと報告を増やせればよいなと考えています。ここのところ、意識改革の一つとして仕事の日誌をつけている。誰に見せるというわけでないが書いていると割と捗るような気がする。同様にここももう少し更新を増やしたらいろいろ捗るのではないだろうか。何が捗るかはよくわからないがなんとなく捗りそうな気がする。

そういうわけでせめて週1くらいを目指して頑張ってみます。

トラックバック - http://d.hatena.ne.jp/n-trino/20180403

2017-10-17 iPhoneを更新しました。

iPhone5sがお亡くなりになりました。約5年程持ったのでまあ十分でしょう。iPhoneXまで粘れるかなと思ったが無理でした。というわけでiPhone8を購入しました。

昨年あたりから電池が膨張しだしたのか、フロントパネルが浮きあがってきました。ちょうどiPhone7が出たところだったのだが「来年iPhone8が出るから待った方がよいよ」という話を聞いたので粘ることにしました。日ごとにどんどんフロントパネルが浮きあがってはがれそうな勢いでした。最終的にはおそらく浮きあがりすぎて接続不良になったのか、画面がおかしくなって操作もおかしくなり、そして映らなくなりました。

完全に操作不能になったのでデータ移行の殆どが間に合いませんでした。一番痛いのが連絡先。すべてなくなってしまったのでまた作り直し。現在、連作先には妻のしかありません。まあそれでも殆ど困っていない悲しさかな

トラックバック - http://d.hatena.ne.jp/n-trino/20171017

2017-07-27 また間が空いてしまった

最近引っ越ししました。

いや、自宅ではなく会社のオフィスがです。

入社10年程経っていますが珍しく部署の移動が一度もありません。会社によって違うとは思うが私のいる会社では非常に珍しいです。そんな稀な経歴故、オフィス移動もすくないです。

入社して次の年に会社単位で大規模引っ越しがありました。それに伴い私が通っていたオフィスビル単位で移動しました。それから数年後、フロア内で席替えがあり場所微妙に変わりました。

そして今回、今のフロアが手狭になってきたので下の階に引っ越すことになりました。今いるビルは少し特殊な形をしており、上の階に行くごとにフロアが狭くなっています。なので下の階に行けば広くなります。というわけでめでたく広くなったのだが・・・一人当たりのデスクは少し狭くなっておりましたorg まあ会議室がすごい増えたのは助かる。

引っ越し先が同じビル内の違う階なのでまだよく間違える。エレベータで前の階を押す。そして部屋に入る。そこで初めて間違えたことに気がつく。習慣は恐ろしい。まだしばらく続きそうです。

さて、次に移るのは何年後になるかな。

トラックバック - http://d.hatena.ne.jp/n-trino/20170727

2017-05-18 交通費を見直した

先月から在宅勤務を開始して1ヶ月半ほど経った。今のところトラブルはなく順調に実施できている。家事実施もうまくできており、有効活用できている。現在は週1ペースで取っているが、もし問題なければ週2ペースに増やしていきたいところである

さて、在宅勤務を開始して少し疑問に思ったことがある。交通費だ。現在は6カ月定期券を購入しているが、週1ペースで在宅勤務をとっていると実質週に4回しか通勤していない。ひょっとしたら定期券より普通に購入した方が安いのではないか?というわけで計算してみました。そしたら週4通勤だと6カ月でほぼ同じ金額になりました。なお、定期券の値段は鉄道会社によって違うらしいので他の鉄道会社では違う結果がでるかもしれません。ほぼ同じ金額なので定期でも切符でもよいのだが、有給を取ったり出張に行ったりしたらさらに日数が減るのでそう考えると切符の方がお得である。さらに、回数券という手を使えば実質1割引きなのでさらにお安くなる。

というわけで定期券もちょうど切れたので回数券での通勤を開始しました。タッチ式で慣れてしまうと切符というのは不便を感じるがまあそのうち慣れるであろう。最初に戸惑ったのが切符を受け付ける改札が結構少ないこと。最初は探してしまった。場所を覚えたのだがそこしか使えないのはやはり少し不便。前の人がエラー起こしても他の改札に回ることもできずひたすら待つことに。まあでも慣れたら何とかなるものでしょう(適当)

なお「それは交通費の不正受給ではないか?」と疑問に持つ人もいるかもしれませんが「浮いた交通費の返金は不要」と人事部から説明があったので問題ありません。

トラックバック - http://d.hatena.ne.jp/n-trino/20170518

2017-04-25 在宅勤務始めました

昨年あたりから会社が在宅勤務制度を開始した。素晴らしい制度である。私も条件に合うので本年度より開始するよう申請しました。人事部の担当者との面談を済まし、無事承認がおりました。人事部の話では積極的に勧めていきたいようで、面談も厳しい質問等は一切なく、制度の内容や注意点を確認する程度でした。

私は共働きな上、夫婦そろって通勤距離が長い。おかげで結構家事等の家庭事情が圧迫されていた。子供習い事も基本土日にしか入れられず、娘が文句を言っていた。在宅勤務が実現できればこのあたりが改善される。なにより往復3時間という無駄に長い時間が浮き、土日に回していた家事(主に掃除)も勤務前に済ましてもなお通常より早く業務を開始できます。まだ2日しか実施していないがこれから毎週取る予定なので妻と話し合って有効な使い方を考えていきます

私の場合ソフトウエア開発なので在宅勤務でも基本的問題がありません。会社支給ノートPCから社内ネットワークVPN接続メール等の社内システムを利用する分には全く問題ない。また、本業の開発に関しても開発用マシンリモートアクセスすることにより実施。会社で開発しているのと基本かわりない。ただVPN経由でリモートアクセスなのでレスポンスがやや良くないです。最初は少しイライラしましたが慣れればなんてことはありません。他の社員とのコミュニケーションは基本電話です。これは少し不便なこともありますが、毎日在宅勤務というわけではないので別の日に出勤したときコミュニケーションをとればよい。

在宅勤務の懸念点としてはやはり効率が落ちてしまわないかということがあります。自宅だからサボってしまわないか?他の社員とのコミュニケーションが取りづらくなるのではないか?等々。私の場合、前者は特に問題はないが後者電話しかないのでこの先、少し不便になる可能性があるかもしれませんが、次の日に通常出勤した際に直接会えばよいわけですからせいぜい1日ロス程度で済みます、その間は別の仕事をすればよいだけです。

もっと全国的に広まっていくべきだと思います。もちろん業種によっては在宅勤務が無理な場合もあるが、そうでなければ本人が希望すればどの会社でも取れるようになればいいなと思います

トラックバック - http://d.hatena.ne.jp/n-trino/20170425

2017-04-04 年度が変わったので不定期更新

特に面白いトピックがあるわけではないのですがいつまでたっても更新しなさそうなので一応更新

年度が明けて仕事特にかわりなく。ガチな開発仕事がなくイマイチつまらないです。

3月末は私が永年勤続ということで特別休暇がもらえた&嫁が遅い夏休み(?)をとれたので家族旅行に行ってまいりました。

明日は娘の入学式です。気が付いたら小学生です。光陰矢のごとし。

今年度の目標はもう少し仕事に集中することです。サボりすぎorg

トラックバック - http://d.hatena.ne.jp/n-trino/20170404

2017-02-21 面白いゲーム(?)見つけた

https://geoguessr.com/

開始すると世界適当なところに放置されますグーグルストリートビューなので移動することができます。色々動いて周りをみて最初位置を推測します。推測した地点が近ければ近いほど点数が高くなります

私の場合はあらゆる情報を駆使してピンポイントにその場所を当てて遊んでいます。えらい時間がかかりますが今のところかなり高い確率ピンポイントにあてています。たまに店の中だったりして極端に動けるところが少ない場合はどうしようもないですがそれ以外はほぼ確実に当てています。ただ、アメリカとかは数十マイルも直線が続いていたりしてそのど真ん中に放置されたらかなり大変ですが・・・。あと、マップが古くて道路案内が見えなかったりした場合も割と絶望的ですね。苦労して見つかったと思ったらキリル語だったことも何度もあり。今のところ、タイ語が一番苦労しました。

面白くてはまってしまいますが無尽蔵に時間を取られてしまうので何とか制御しなければ・・・

トラックバック - http://d.hatena.ne.jp/n-trino/20170221

2017-02-17 ペンシルパズルsolver開発はプログラミングのよいトレーニングになり

最近はまってました。楽しかった。もう飽きたけどorz

作ったのは数独お絵かきロジック、スリザーリングカックロです。ソースの公開予定はないです(^^;

この手のパズル基本的に総当たりで試してあっている入力を返します。ただし本当に総当たりだととんでもない組み合わせになるので動的計画法や枝刈りで総数を減らします。この総数をどうやって減らすかが高速化のカギになっていると思います。ちなみに後から知ったのですがこの方法、「バックトラッキング」という名前が付いていました。そーなのかー

実際、これらのプログラムは既にいっぱい作られているのでほしければ持ってくれば良いだけですが実際に自力で作ることはアルゴリズムプログラミングのいいトレーニングになると思います。また如何に効率化を考えればより一層、論理的思考トレーニングになります。もちろん、その言語そのものの実装力のトレーニングにもなります。今回でも少し技術力UPした・・・と思いたいです(^^;

[][]数独solverの最小コードに挑戦

数独solverは昔作ったことがあるのでsolver作成という点では再挑戦ということになる。しかし今回少し趣を変えてコード量を減らすことに重点を置いた。なので速度と可読性はとりあえず度外視した。とはいえ、有用時間に解けなければ意味がないのである程度速度も考慮に入れる。あとあんまり暗号化が酷いのも何なのである程度可読性も考慮しました。まあ中途半端です。

そして出来上がったコードが以下の通り。

bool Sudoku3x3(int* t, int i = 0){
	const static int b_[] = { 0, 1, 2, 9, 10, 11, 18, 19, 20 };
	for (; i < 81; ++i) {
		if (t[i] == 0) {
			bool c[10] = {};
			int h((i / 9) * 9), v(i % 9), b((i % 9 / 3) * 3 + (i / 27) * 27);
			for (int j = 0; j < 9; ++j, ++h, v += 9) {
				c[t[v]] = c[t[h]] = c[t[b + b_[j]]] = true;
			}
			for (int n = 1; n <= 9; ++n) {
				if (!c[n]) {
					t[i] = n;
					if (Sudoku3x3(t, i + 1)) return true;
				}
			}
			t[i] = 0;
			return false;
		}
	}
	return true;
}

実際に動かす場合は以下の通り

int table[] = {
	8,0,0, 0,0,0, 0,0,0,
	0,0,3, 6,0,0, 0,0,0,
	0,7,0, 0,9,0, 2,0,0,

	0,5,0, 0,0,7, 0,0,0,
	0,0,0, 0,4,5, 7,0,0,
	0,0,0, 1,0,0, 0,3,0,

	0,0,1, 0,0,0, 0,6,8,
	0,0,8, 5,0,0, 0,1,0,
	0,9,0, 0,0,0, 4,0,0,
};

Sudoku3x3(table);//上書きされる

20行程で完成。まあ改行はいくらでも減らせるので行数での比較意味ないですけど。

本当に総当たりなので結構重いと思いきや、意外と速かった、ていうか以前作った物より速いんだけど・・・。ただし、試しに4x4や5x5を作ったらやっぱり重かった。しかし3x3なら十分実用的(?)な速度だと思います。

ついでに練習のためにswift3.0でも書いてみました。少し可読性を上げています。

func Sudoku3x3(table t:inout [[Int]], _ index:Int = 0)->Bool{
	//サイズ取り出し。9x9のはず
	let sy = t.count
	let sx = t[0].count
	//総当たり
	for i in index..<sy * sx{
		//現在の座標
		let y = i / sx
		let x = i % sx
		//0以外は既に埋まっているので飛ばす
		if t[y][x] == 0 {
			//縦と横とブロック内で存在する数値を調べる
			var c = [Bool](repeating: true, count:10)
			let bx = x / 3 * 3//ブロックの左上
			let by = y / 3 * 3
			for j in 0..<9{
				c[t[y][j]] = false//横チェック
				c[t[j][x]] = false//縦チェック
				c[t[by+j/3][bx+j%3]] = false//ブロック内チェック
			}
			//存在しなかった数値を順番に入れてみる。
			for (n, test) in c.enumerated(){
				if test {
					t[y][x] = n
					//次に進む
					if Sudoku3x3( table:&t, i+1 ){
						//最後まで埋まった
						return true
					}
				}
			}
			//どの数値もダメだった。前に戻る。
			t[y][x] = 0
			return false
		}
	}
	//最後まで埋まったので成功
	return true
}

なにげに初めてのswiftプログラミングです(^^;たったこれだけだけどえらい苦労しました。でもおかげさまでswift開発力が格段に上がりました。

ところでシンタックスハイライトswiftはないんだな・・・

トラックバック - http://d.hatena.ne.jp/n-trino/20170217

2017-01-31 11月も12月も2016年も終了し、1月も終了しそうです

忙しすぎて書けませんでした。まあいつものことですが。

最近にしては珍しく、開発で忙しかったのでそこそこネタはたまっています。ですがまとめる時間がありません。もう少し余裕が出始めたらちょくちょくネタだしします。

最近の変化としてはswift勉強を始めました。そのうちiPhoneアプリを作ろうと考えておりますMac Book Proを購入しようか考えていたところ、不具合ニュースを見て早速頓挫しましたが。

Macがなくてもswift勉強はできますIBMがなかなかいいものを用意してくれました。

https://swiftlang.ng.bluemix.net

ここで適当プログラムを書いて練習しております

一通り文法が使えるようになったら本格的に始めようと思います

しかし、肝心の作るアプリアイデアがない・・・。まあとりあえず既存アプリでもなんでもよいから粗製乱造して経験を溜めるところからスタートですね。

今年中にそこそこ実用的なアプリがUPできるといいなー。

トラックバック - http://d.hatena.ne.jp/n-trino/20170131

2016-11-01 9月も10月も終了しました

さて、この2カ月で私はどれだけ成長できたか?何の進歩もしていない気がして残念。

仕事微妙に忙しくて帰る時間が酷いことになっており、特に面白そうな進捗はありません。残念。

11月もまだまだ微妙に忙しそうです。お手伝い仕事、引き受けるんじゃなかった。失敗。

[][]浮動小数比較落とし穴

業務リファクタリング実施していた。演算結果が変わらないように毎回比較して違っていればエラーを吐くようにして、改良を進めていた。

if( std::abs( result - test ) > std::numeric_limits< double >::epsilon() ){
	std::cout << "error : " << result << " , " << test << std::endl;
}

浮動小数点は演算が一致する保証がないので、その差が非常に小さい値であるかどうかで評価する、まあ数値計算での基本ですね。

何の変哲もない上記のコード、実は大きな落とし穴があった。私はこれにはまってかなりの工数無駄にしてしまった。

double型には普通の数値以外にいくつか特別表現がある。例えば0割をした場合に∞になったりする。その特別表現の一つにNaNがある。NaNとは、Not a Numberという意味で、つまりは「数値ではない」という意味です。数学的には0/0等の不定形演算を施すと出てくるおうです。

今回、改良中に何を間違ったのか結果がNaNを返すようになっていた。NaN演算規則はよくわからないが、とりあえず数値比較演算相手が何であれすべてfalseを返すっぽいです。なので上記のコードはresultとtestが異なるにも関わらずifをすり抜けてしまいますエラーが出ないから演算結果が一致していると思って進めていて結果、全部やり直しになってしまいました。orz

とうわけで、上記コードNaNにも対応できるように少し修正してみました。

if( !( std::abs( result - test ) <= std::numeric_limits< double >::epsilon() ) ){
	std::cout << "error : " << result << " , " << test << std::endl;
}

数学的には全く同じですが、NaN場合は不等号が必ずfalseになるので、不等号の向きを逆にすることによりNaN場合もifに入ることになります

次回から気をつけます

トラックバック - http://d.hatena.ne.jp/n-trino/20161101

2016-09-01 8月も終了しました

8月第一週に夏休みがあった。ただし会社から付与されているのは1日だけ。残り4日は有給休暇を強制消化させられた。労基法的にどうなんだろうと思うのだがまあ仕方がない。

今年の夏休みはきつかった。いや、人の親になった時点で自分休みなどなくなるものだからそれは仕方がないが今年は格別だった。

うちには現在、6歳の娘と1歳の息子がいる。普段、上の子幼稚園の預かり保育で下の子が認可保育園に通っている。上の子は預かり保育を嫌がっているので私の夏休み中は行かなかった。下の子はそもそも制度として預かれなかった。市の方針なのかその保育園方針なのかわからないが、親が休みの日は預かれないそうだ。そして妻は産休明けということで今年の夏休みはなし。ただし6カ月経った10月以降に休みを取ることが可能だそうだ。なかなか厳しい会社である。そういうわけで夏休み中は2人の子供を私が一人で見ることになった。昨年は妻が産休中で常に下の子を見てくれていたので上の子だけを見ていればよかった。それ以前も上の子だけ見ていればよかったしそもそも保育園で預かってもらえたので適度に休むことができた。というわけで二人同時に見るのは今年が初めてである

ただでさえ子供を2人見るのは大変な上に困ったことに2人は年が離れている。一緒に遊ぶこともできなければどこかに連れていくにもかなり制限がかかる。例えば昨年は上の子プールに連れていったのだが、下の子はまだプールに入れないから二人同時に見ることができない。下の子が騒ぐので映画館も無理。遊園地も上の子が一人で乗れる乗り物が少ないので難しい。というわけで下の子を見ながら上の子を退屈させないで色々な場所に連れていくのは骨が折れました。

実家に帰るにも下の子はまだ卒乳していないので泊まれない。日帰りで行くには少々遠いので今年は帰りませんでした。

さて、ただでさえ見るのに忙しいのに私の体にだんだん異変が起き始めていた。最初は胃に違和感があったのだがだんだん痛さがひどくなってきた。かなり痛くなってきて流石にこれはおかしいと思い病院に行ってきた。ちなみに病院に行くのにも一苦労。子供を連れていくわけにもいかないし預ける場所もないので、妻に少し早く帰ってきてもらって病院の受付終了ぎりぎりに行きました。そして診断結果は・・・結論からいうとよくわからかった。腹部の検査を行ったがすべて正常、しょうがないから一応整腸剤が処方されました。このときは私も医師根本的に勘違いしていました。その後、痛みはさらに強くなっていき、さらに広範囲になってきた。さらにある日、風呂に入るために服を脱いでいたら後ろにいた娘がすさまじい顔で見ていた。どうしたのか尋ねたら何か出来ているという。鏡で頑張って見てみたら見事な発疹ができていました。そして次の日に病院に行って診断結果は「帯状疱疹」でした。そう、最初は痛みが局所的だったので場所的にも胃の病気だと思ったのだが実は皮膚の病気でした。検査しても何も出ないはずでした。無事診断も出来て投薬治療が始まったわけでしたが2週間くらいは強い痛みに悩まされました。そんな痛みの中、二人の子供を見るのはかなりきつかったです。

来年以降は下の子卒乳して行ける範囲も広がるだろうし、上の子小学生なので友達の家に行ったりもう少し一人で行動もできるようになるだろう。そして妻も休みがとれるはずなので四六時中私が見る必要もなくなるだろう。ましてや帯状疱疹にまたなることは・・・

おそらく今年は人生で最大な苦難の夏休みであっただろう。ていうかあってくれ。

トラックバック - http://d.hatena.ne.jp/n-trino/20160901

2016-07-26 久々の2日連続更新

書き溜めってすばらしい

[][]テンプレート引数自身継承したクラスのみ受け付ける方法

昨日のトピックの例のように、継承して自身を基底クラステンプレートに渡すというタイプのライブラリはしばしば見かけます。

//あるライブラリにおいて・・・
template< class T >
class Library;

//継承してから自分自身をテンプレート引数に渡す
class MyClass:public Library< MyClass >

こういったライブラリ場合テンプレートに異なるクラスを渡されたら困ります。なのでその場合にわかやすエラーが返ってくることが望ましいです。

C++11からtype_traitsというライブラリが入りました。最初、これを見たとき一体何に使うのか全く分からなかったのですが(いや今でもよくわかってないですが)今回のような場合にとりあえず使えます。

リファレンスを調べたらありました、継承関係にあるかどうかを調べるライブラリが。

http://www.cplusplus.com/reference/type_traits/is_base_of/

こいつを使えばわかりやすエラーを返せるような実装ができそうです。

template< class T >
class Library
{
	static_assert( std::is_base_of< Library, T >::value, "template T must be base of this" );
};

これで適切なコンパイルエラーを返すことができるようになりました・・・。と思ったのですが正しく使っても出るようです。

error C2139: 'MyClass' : 定義されていないクラスは、コンパイラ組み込み型の特徴である '__is_base_of' への引数として使用できません

VisualStudioでの例ですがおそらく他のコンパイラでも同様かと思います。

要するに自作クラスMyClassは少なくともこの時点(is_base_of)では不完全でありますよと。確かに継承最中なので不完全でしょうね。というわけで他の実装方法必要なのですが・・・。あまり綺麗ではないかもしれないがコンストラクタに入れるという策をとりました。

template< class T >
class Library{
public:
	Library(){
		static_assert( std::is_base_of< Library, T >::value, "template T must be base of this" );
	}
};

これでコンストラクタを呼ばれる場所まで評価されないので継承先のクラスも完成した後なので問題がない。

ただしこれ別の問題があって、コンストラクタが呼ばれるような実装でないと評価されない、つまり継承先のクラスを実際に使うような実施になっていなければテンプレート引数が間違っていてもエラーを返しません。

自作クラスで使う分には問題ないでしょうが、さらにライブラリを作る場合問題になる場合があるかもしれませんね。

トラックバック - http://d.hatena.ne.jp/n-trino/20160726