espio999.tumblr.com
アクセス確認
impsbl.hatenablog.jp
再び、日本からの不審アクセスが活発になっていた。特定できたのは、
- 10分ごとの定期アクセス
- 1時間ごとの定期アクセス
前者は、シンガポールからの不審アクセス同様、このブログだけをターゲットとして特定しているもの。後者については、アクセスごとに他のサイトもアクセスしている様子があるため、広範な情報収集を目的として、本格的なボットのようだ。
いずれもシンガポールの不審アクセスを実行しているのとは異なるユーザーだろう。ボットの実行環境がPCということに加えて、参照方法が効率的だ。定期的に参照しているのはトップURLのみで、各アーカイブの参照は1日に1度だけ実行している。無駄が少ない。
シンガポールの不審アクセスが、ここまで目立つ理由の一つは、その非効率さだ。各アーカイブだけでなく、aboutページまで、不必要に何度も繰り返し参照している。もしPCと同じように効率的な参照ができるならば、すでに実施していることだろう。
端的に、力技に依存して、改善する気配も皆無という特性を前提に、同じユーザーの仕業とは思えない。
前日比順 | 年初来順 |
日興・海外新興国 |
1.21% |
123.23 |
TOPIX |
0.92% |
122.48 |
日経平均 |
0.82% |
122.26 |
さわかみ |
0.76% |
118.27 |
ひふみ投信 |
0.75% |
119.69 |
eMAXIS Slimオルカン |
0.67% |
128.39 |
ポートフォリオ |
0.66% |
112.25 |
MSCIコクサイ |
0.58% |
128.74 |
ひふみワールド |
0.45% |
129.83 |
ひふみらいと |
0.40% |
100.01 |
大和・グローバルREIT |
0.12% |
110.63 |
|
ひふみワールド |
0.45% |
129.83 |
MSCIコクサイ |
0.58% |
128.74 |
eMAXIS Slimオルカン |
0.67% |
128.39 |
日興・海外新興国 |
1.21% |
123.23 |
TOPIX |
0.92% |
122.48 |
日経平均 |
0.82% |
122.26 |
ひふみ投信 |
0.75% |
119.69 |
さわかみ |
0.76% |
118.27 |
ポートフォリオ |
0.66% |
112.25 |
大和・グローバルREIT |
0.12% |
110.63 |
ひふみらいと |
0.40% |
100.01 |
|
海外
impsbl.hatenablog.jp
中国、インド、ブラジル
香港 |
0.01 |
0.29 |
1.18 |
0.28 |
上海 |
0.92 |
0.08 |
-0.49 |
-0.83 |
ムンバイ |
0.56 |
-0.04 |
0.69 |
0.08 |
1309 乖離率 |
-1.05 |
-1.14 |
-2.14 |
-1.23 |
1325 乖離率 |
2.61 |
2.90 |
3.67 |
0.89 |
1678 乖離率 |
0.60 |
0.83 |
1.71 |
0.82 |
F#
impsbl.hatenablog.jp
メモ化
thesharperdev.com
let memoize f =
let dict = Dictionary<_, _>();
fun c ->
let exist, value = dict.TryGetValue c
match exist with
| true -> value
| _ ->
let value = f c
dict.Add(c, value)
value
- 関数memoizeは、引数として関数fを受け取る。
- ジェネリック型のkey、valueを持つディクショナリーを定義する。
- 引数cを受け取る、無名関数を定義する。
- 引数cを使って、ディクショナリーからキーと値を取得する。
- キーが存在したら、値を返す。
- キーが存在しなかったら、関数fに引数cを与えて実行する。
- 引数cをキー、実行結果を値として、ディクショナリーに追加する。
- 実行結果を返す。
例えば、フィボナッチ数列を求める再帰関数を引数fに指定すれば、メモ化再帰として実行できる。