2018年12月31日月曜日

2018年が....!!!

2018年が終わる.....


ぬぁぁぁぁ!!!


(何かしら残しておきたかった。)


絶対に毎日とか、何日おきと決めても投稿サボるのが目に見えているけれど、1年に一回は更新したいよね。

今年もあと少しで終わり。来年に期待ということで。

お蕎麦をずるずる。

2017年12月30日土曜日

2017年がおわるわけですが。。。

ものぐさな性格なので、前の更新が実に1年以上前。

意外にもコンスタントにアクセスがあるこのブログ。
皆さんの目当てはgnuplotで縦線を引くことみたいですね。
頑張っていっぱい縦線をグラフの中に引いてください。
ちなみに記事を公開したのは2013年なので、gnuplotのバージョンが上がれば使えなくなっちゃうかもしれません。

そんな2013年にはなかったネットサービスがたくさん増えてきましたね。
instagramとかあったんだろうけど、知らなかったし。。。
まだ、youtubeよりniconicoの方が優勢な時代だったかな?どうだろう?
(つい先日niconicoで色々あったようですね。⇨ これを見ろ!
ちなみに私がniconicoに登録したのはニコニコ動画(RC2)という時代の時です。古いね。)

プログラミング界隈ではswiftとかいう言語が登場してきました。
Objective-Cはもうなくなってしまったの?
iOS向けのアプリの開発はやりやすくなってきたのでしょうか?
(一度も作ったことないんだけどね!)

いろんなプログラミングが流行る中、台頭してきたのはPythonでしょうか?
AI技術に後押しされて、続々とPythonianが増えているような気もします。
私も、別にAIのためではなく、簡単なプログラムを描くときはpythonを使っています。
悩みのタネはfor分をいかに回避するかですね。
forを含む項目はC++で書いてlibraryにしてしまうのがbestなのでしょうけど。

プログラマのための技術共有サービスであるQiitaには一時期AI系の記事が連日のように投稿されていましたね。
私もAIというか、機械学習について勉強してみようと思ってはいるのですがなかなか手を付けられずにいます。
いつか、勉強できたら自身の理解度をお披露目していけたらと思います。

さてさて、目的もなくダラダラと書いてきましたが、多分だーれも読んでいないのでしょう。
なぜそんなことを言うのかというと、gnuplotの記事などプログラミングの記事以外ではほとんどアクセスがないから!
寂しいですが、日記ということで付けておきましょう。
多分googleが滅ばない限りはこの内容は一生残るのでしょうね。

久しぶりに管理者画面にloginしてみたら、domain買わないかと言われました。
1年に1回更新するかしないかのブログなのにね。
料金表を下に貼っておきましょう。
.digitalとか4000円もするのはなぜ?
そんな人気なdomainなのかな?



2017年最初にして最後になるであろう記事。
2018年はどんな年になるのかな。良い年?悪い年?
ちなみに今年は良い年だったかな?
大きなポカをやらかしたけど、まぁ好き勝手やった結果だから、あまり後悔はなかったからね。
それじゃ。


2016年7月29日金曜日

matplotlibでx軸を経過時間で表示したいんだ!!

pythonのmatplotlibを使ってお絵描き。

X軸を基準からの差分で表示したいけど、データ内に収められていた基準点、つまり第一点、から表示されてしまう(・ω・`)

そこで色々探したらあったあった。

これでできる!!

使い方は、何かをplotして、

import matplotlib.plot as plt
.....
locs,xlabel = plt.xticks()
plt.xticks(locs,map(lambda x : "%g" %x, locs-locs[0]))
plt.xlabel("Elapsed Time from %d [sec]" %locs[0])

でok.

2016年4月28日木曜日

読んだ本 2016/4/28

読んだ本をメモしておこうかと。。。

記録に残っているのは1/7に森博嗣の「まどろみ消去」を読み終わっている。
そこから何を読んだのかを残しておく。(と言ったものの、次はいつの更新になるやら…)
S&Mシリーズを読み始めたのは2015年の10月くらいかな?
アニメで「すべてがFになる」をやっていて、見ていたのがきっかけです。
…と言いたい所だが、読みたいと思っていたのはずっと前から。伏線が張られていて、面白いミステリ(のばし棒はいりません)を読んでみたいと思ってググったら出てきたのがこの作品。なんやかんやで読まずにいたら、アニメが始まり「おお、この作品は!!面白そうじゃないか!!」という事で読み始めた。

12月末までに読んだのは、
・すべてがFになる
・冷たい密室と博士たち
・笑わない数学者
・詩的私的ジャック
・封印再度

以降は2016年に読み終わった物たち。

1. まどろみ消去 (amazon)
作者:森博嗣
内容は短編集。キシマ教授の話が収録されている
S&Mシリーズの封印再度の次に読むべき本かな?

2. 幻惑の死と使途
作者:森博嗣
題名はダジャレかな?読めばわかるかもしれない。
マジシャンが出る。萌絵の友達も凄い。次の作品とパラレルに進む。

3. 夏のレプリカ
作者:森博嗣
読んだのは2月くらいかな?本文から夏の暑さが伝わってきた。
しかし事件の解決は秋が深まり始めた頃。那古野の気温は分からないが、萌絵の悲しみが冬の前触れのよう。(なに言ってんだ?)

4. 今はもうない
作者:森博嗣
ないんだよ。もう。(何がだっけ、、、?)
読んでて違和感しかなかった。そしてまた騙された。

5. 数奇にして模型
オタクの分類はむずかしい。コスプレ趣味か、模型趣味か。
どちらにしても、偶像を具現化し、自分の満足を得る事を趣味としている。
度が行き過ぎると…

6. 有限と微小のパン
有限ってことは有るんだ。でも微小ってなるとほとんどないに等しい。
パン屑なんてそんな物かもしれない。
その人が存在していることが、ある人に取っては非常に大きな問題になる事もある。
いてほしいのか、いてほしくないのか、どちらがよいか。
犀川先生は憧れるのだ。萌絵は犀川先生に憧れる。

7. 地球儀のスライス
短編集。イギリスのマン島にいってみたいね。
メシはともかく鉄道を見てみたい。
小鳥遊なんて読めないよ。練ちゃんは女の子かな?可愛いかっこしちゃって。

ここで少し時間が空く。なぜなら、2週間も鹿児島の薩摩半島と反対側、大隅半島に出張で出かけていたから。本は持っていたのだけれども、読まなかった。
黒潮に乗りはるばる日本にやってきた魚はおいしいですね。名物の伊勢エビは食べず。
民宿でおいしいご飯をいっぱい食べて、深夜勤務をこなしたので、少し太りました。

8. 黒猫の三角
Vシリーズになりました。なぜVなのでしょう?Veniko?
練ちゃんは女の子でした。女装子というのでしょうか?1999年の本とは思えない。(携帯に関する記述はすくないか)
人が決めたルールは何のために決めたのでしょう?ルールに反すれば罰せられるのです。
そのルールは自分の利益を守るために。。。

9. 人形式モナリザ
操ってるのはだれ?操られているのはだれ?
細かい所ばかり見ていると、大きな波に気づかずのまれてしまいますよ。
答えを知っていても、満足はさせてくれません。
これは、2016/4/25くらいに読み終わった。

10. 月は幽咽のデバイス
今読んでるから、次回に持ち越し!


ってことで、今年になって4ヶ月ほどで9冊読んだことになる。
これらは(大抵)書店で買って読んでいるが、まだまだ先はある。

2015年9月30日水曜日

名前空間

C++を使用するときに、include文の後に
using namespace std;
と宣言していた。
これは、C++を学び始めた頃に
"おまじないとして宣言しておくこと"
といわれたので何も考えずに宣言していた。
けど、namespaceってなんだ?

名前空間

namespaceは日本語では名前空間と言われている。
じゃーその実態はなんなのか?

簡単にいうと、
(複数のファイルで構成される)プログラムを書いたときに、名前(関数でも変数でも)の衝突を避けるためのもの
と言う事らしい。

coutって何となく使っていたけれど、これはiostreamをincludeしたら使用できる関数。
けれど、ただ
cout << "hogehoge";
では使用できない。
std::cout << "hogehoge";
とする必要がある。これは、iostream内でcoutがstdという名前空間の中で書かれている事が原因である。

いちいちstd::coutと書いていたら面倒なので、そのファイル内ではcoutと書かれたらstd::coutを使用すると宣言していたのが、
using namespace std;

これによって、
cout << "hogehoge";
としても、そのファイル内ではstd::coutの事なのね、とコンパイラーさんは理解してくれる。







2014年11月11日火曜日

TSplineの境界条件の設定の方法

ROOTで点を補間しようと思った時に、点のある区間はスプライン補間で行い、その外は別の関数で補間することを考えた。
その際に、端点でスプラインと任意の関数が滑らかにつながるようにしたい。
このとき、TSplineに境界条件を入れることを考える。
CernのTSpline3の説明を見ると、

TSpline3(const char* title, const TGraph* g, const char* opt = 0, Double_t valbeg = 0, Double_t valend = 0)

となっており、valbegとvalendに端点の1階微分を境界条件として入れてあげれば良さそう。
デフォルトでは0となっているoptを設定しなければならない。
このoptに何を設定するかがわかりづらかった。
どうやらこのページを見ると、optにcharで"b1e1"と入れると、1階微分の境界条件が設定されるようだ。

試しにやってみたのが以下のプログラム(pythonで動かしてみた)。
ここでは、外の点は端から2点をつないだ直線でつなぐことを考えて、境界条件として端から2点の傾きを求めた。

>>> import ROOT as pR
>>> import array
>>> a = array.array("d",[1,2,3,4,5]) 
>>> b = array.array("d",[10,3,7,4,8])
>>> g = pR.TGraph(len(a),a,b)
>>> g.SetMarkerStyle(2)
>>> s = pR.TSpline3("s",g) # 境界条件を設定しないスプライン
>>> s.SetLineColor(2) #赤色
>>> tmp = [pR.Double(),pR.Double(),pR.Double(),pR.Double()]
>>> # 左端の傾き
>>> g.GetPoint(0,tmp[0],tmp[1]) # 始点
>>> g.GetPoint(1,tmp[2],tmp[3]) # 始点のお隣
>>> derF = (tmp[3]-tmp[1])/(tmp[2]-tmp[0])
>>> # 右端の傾き
>>> g.GetPoint(g.GetN()-2,tmp[0],tmp[1]) # 終点一つ前
>>> g.GetPoint(g.GetN()-1,tmp[2],tmp[3]) # 終点
>>> derE = (tmp[3]-tmp[1])/(tmp[2]-tmp[0])
>>> s2 = pR.TSpline3("s2",g,"b1e1",derF,derE) # 境界条件を設定したスプライン
>>> s2.SetLineColor(3) # 緑色
>>> 
>>> g.Draw("AP")
>>> s.Draw("same")
>>> s2.Draw("same")


2014年10月22日水曜日

gnuplot小技

gnuplotでの小技のまとめ

1, エラーバーの端っこ消す

set bar 0

2, 2つの関数で囲んだ部分をfillする

plot "+" us 1:(f(\$1)):(g(\$1)) with filled curves closed

注意すべきことは、関数f(x), g(x)を括弧でくくること。
そうしないと、undefined value といわれる。