Friday, October 30, 2020

エンジニアが、アルゴリズムを学習しなければいけない理由

 実は一ヶ月ほどまえに嫁に10000円以上する分厚いアルゴリズムの教科書を買ってもらった。

MIT Press の Introduction to Algorithm という本である。技術書については日本語だと読解力が極端に落ちるし苦痛なので、オリジナルのものを海外から取り寄せてもらった。

ちょうど今350ページくらいのところで、4分の1以上は読破したんだけどそれでも分厚い。分厚すぎて死ぬ.... つうかこの本で筋トレできるぞ....

と思っていた。正直、アルゴリズムとかCSってそもそもエンジニアやるうえで役に立つのかよ、と思っていたし、数式とかをひたすら追っかけるよりもコードをやったほうがいいんじゃ... と思った時期もあった。


だがそれは違っていた。


今日、あるバグが起こって、もちろん細かいことは言えないんだけど仕様として、


.sort { x -> "{x.attr1}-{x.attr2}" }


という記載があった。{} のところは String interpolation として、こいつによってソートにバグが起こってて、つまり


5001-1

50011-1

5002-2


みたいな3つのデータがあったときに、上記ソートだと 5001-1, 50011-1, 5002-2 みたいな順列になり、本来数字の順番からいえば 5001-1, 5002-2, 50011-1だからおかしい。

じゃあフォーマットするか、という発想になるがそれはおおよそ「愚か」で、桁数なんていくつまで増えるかわかんないし、そもそもそういうのは文系SE的な発想でそもそもいけてない。


ここで僕は一瞬思いとどまった。アルゴリズムの教科書の内容を思い出したのである。


radix sort だ!!!!!


radix sortってのは例えば日付データなんかをプログラミング言語がソートするときに使うんだけど、例えば、


123, 67, 12, 55, 4, 999 っていう数字があり、これを小さい順に並べ替えたい。

この際この数を縦に並べて(そして2桁目3桁目がないところは0、として)


123

067

012

055

004

999


ってなる。まずこれについて、一の位だけをみてソートする。


012

123

004

055

067

999

そうすると、1の位だけにフォーカスしてるから、 2 < 3< 4< 5 < 7 < 9で上になる。

次は、2の位だけをみてソートする


004

012

123

055

067

999

0 < 1 < 2 < 5 < 6 < 9 でこの組み合わせになる。次に3の位をみて、


004

012

055

067

123

999

 0 < 0 < 0 < 0 < 1 < 9

でフィニッシュである。

見るとわかると思うけど、きちんと小さい順に並んでいることがわかる。

ちなみに radix の一つの位自体をソートするのにどのソートをかませるかは作る側に選ぶ権利が与えられているが、例えば counting sort を使ったりするらしい。


日付で考えてみよう


1992/12/13

2020/1/8

2001/5/2

2019/5/12

2001/1/1

1992/1/1


まず日付でソート


2001/1/1

1992/1/1

2001/5/2

2020/1/8

2019/5/12

1992/12/13


次に月でソート


2001/1/1

1992/1/1

2020/1/8

2001/5/2

2019/5/12

1992/12/13


最後に年でソート


1992/1/1

1992/12/13
2001/1/1

2001/5/2

2019/5/12

2020/1/8


無事、日付が昔の順に並んだ。


さて、今回私が業務でぶち当たった問題についても、


.sort { x -> "{x.attr1}-{x.attr2}" }


こんな愚かなハイフン区切りの文字列で実装するのではなく、


.sortBy(x -> x.attr2)

.sortBy(x -> x.attr1)


とすればよかったのでした。重要なのは、一番下の位からソートしていくこと。計算量も爆発的に増えることはないので、まあよしというところでしょう。


このように、問題とか複雑系について、いろいろな困難にぶちあたったときに、まるで格闘技の型みたいに脊髄反射で適切な対処を一発で当てることができる.... そういう意味でアルゴリズムは貴重だと思いましたし、やっぱり1万円の本って1万円の価値があるねんなあ。。。。と思ったわけです。


まあ、そんなかんじで。











Wednesday, October 28, 2020

Red-Black-Tree algorithm: About the RB-INSERT-FIXUP(T, z)

 The insertion procedure in red-black-tree, the insertion algorithm is something like,

1. hey, here is the newbie z!

2. are you smaller than this newbie? (z) 

    yes -> okay, next (smaller guy)

    no -> okay, next (bigger guy)

then finally, find the correct location on which a < z < b. 

plus, since does not have it's children, z.left and z.right is assigned nil, plus it's color is assigned as RED.

However, this is not the end of insertion. Actually, the insertion procedure of the red-black-tree causes the corruption of the color pattern rule that red -> black -> red -> black so that we need to fix the color pattern corruption with the function called


RB-INSERT-FIXUP(T,z)


Okay, let' have a look:

So, I do not provide the code details here (if you are interested, please have a look at this

Initially, we have node z and it's parent Q, it's grand pa A. then:


secondly, we confirm if the z.grandpa's right child (y) is RED, then Q (its bro) should be black as well (since the child nodes of the red node should always be black), and y should be BLACK as well, and A should be converted to BLACK. then we move the pointer of Z to A, so now A is going to be Z.


The other case: if Z is position at the right of its daddy (Q), then we move Z pointer to Q and Left-rotate.


Left rotate, as explained earlier brings the straight line(BLUE) part (W-O) part and leave the others (P-D: yellow as GARBAGE). So it is transformed like this:


Then, we make W as black and A as red, then right-rotate for A:


here is right rotate:

Yeah it's bit complicated but if you understand well on the rotation, this function is not that intimidating.


thanks

About the rotation of the Red Black Tree

The red black tree, is bit difficult algorithm (at least for me) to understand at the first glance. Initially personally thought of writing this article in my mother language but to be honest Japanese is pretty complex (inefficient) language to express (because i need to switch to and fro between alphabet and kanas, plus kana IME is pretty stupid such that I feel like smashing my corporate PC with hammer so...).

Okay, the reason why red-black tree exists, aside from the binary search tree is for the tree data set of which its hight h is pretty high, then the runtime of binary search tree is not that fast. (O(n) ? correct me if i'm wrong), meanwhile the red black tree is much faster (O(lgn) time for any actions).

The red black trees are different from binary search ones for it has the following properties:

color(red | black), key, left, right, and p (parent)

It has the following rules:

1. every node must be either red or black.
2. the root node must be black.
3. every leaf(NIL) is black.
4. if a node is red, then the both its children are black.
5. The same layer (height) of node should have the same amount of black nodes.

(Referenced from mit press Introduction to algorithms.)

The feature of this tree structure is sentinel, since it ends with NIL, plus in order to save memory space, all the leaves (NIL) are deducted to a single NIL node.


Okay, then let me explain about the rotation:

there is left_rotate and right_rotate.








And left_rotate and right_rotate makes to transform the tree into the counter part.

Yet can you directly understand how it works? Since I am not that smart guy as you, I'm not.
So I decided to find two patterns here.




The blue line is TAKE-LINE (blue: stupid name I personally created so you don't need to remember this) and GARBAGE (yellow) node.

TAKE LINE is one single line which connects Y and A (or C) and the line is one straight line, not twisted.

Then, forget about the top node of the TAKE LINE and just focus on the bottom two (on the left Y, C and on the right X, A).

You take this (left)X-A or (right)Y-C with you. 

On the other hand, the yellow GARBAGE node is the miserable node which regarded by its parent node as garbage, so it is split (unfortunately) from its parent node and given to the counter parts.

Then the idea which child node is going to be given to the parent node and which is taken is clear.

Then, let's look at the pseudo code given by the Introduction to Algorithms:

Left-Rotate(T, x)
    y = x.right
    x.right = y. left
    if y.left != T.nil
        y.left.p = x
    y.p = x.p
    if x.p == T.nil
        T.root = y
    elsif x == x.p.left
        x.p.left = y
    else x.p.right = y
    y.left = x
    x.p = y

Let me go through this code.

    x.right = y. left  .... (1)

y want to give its GARBAGE (y.left = B node) to x. x already has its kid on its left A such that x can only accept the new child to its right. So y gives its unwanted GARBAGE to the y's right.

    if y.left != T.nil
        y.left.p = x  .... (2)

This means the same thing to (1), just this is reiteration of (1), then why this is needed? It is because this is GARBAGE's view (B node).  
The (1) says, 

I am B's parent. I don't want B (= GARBAGE) so that I give it to the other guy (x).

The (2) says,

I am B. If I exist, my new papa is x. 😂

So this means the same thing. Yet, as the other linked-based structures, (such as linked-list) the same relation ship should be stated in both A and B. For instance, if A is the father of B, then A need to say "I'm A, B is my son." And B need to say "I'm B, A is my daddy" as well. Neither of these statements should be absent, this is what is going on in (1) and (2).

Okay, then

    y.p = x.p

says about the R. since y is going to be the parent of the x now, 

R-x-y...

must be changed to the

R-y-x...

To say it in one word,

R-x-y.. → R-y-x..

In other words,

[x.p]-x-y..→ [y.p]-y-x..

pretty obvious.

Yet as I stated earlier, this is the viewpoint of only x and y. x gave up saying his father is R, and y now proclaims its dad is R.

Now it's R's turn:

    if x.p == T.nil ... (3)
        T.root = y
    elsif x == x.p.left ... (4)
        x.p.left = y
    else x.p.right = y ... (5)

If there is no R, then y is the top of the hierarchy. ... (3)
Or, if the x used to be the left of the R, then y should be located at the left of the R.
Or, if the x used to be the right of the R, then y should be located at the right of the R.

Finally, we need to define on which direction x (as kid of y) should be located under the y, and since y already TAKEN C to it's right, so the only left of the y is available, 

    y.left = x ... (6)

and since in (6) y has admitted that its left child is x, then it's x's turn to admit that its daddy is now y.

    x.p = y


Something like this.

Yeah since the algorithm around here is hard to get at the first glance, but if you dig deeper, maybe sometimes you can be enlightened.  

Thanks for the read.











テキトーにSFかく

※この記事はフィクションです。

よくある風景。例えば、80年代のような少し後進性のある建物やトタン、それから世話焼きのおじさん....
そういったレトロな世界から、ほぼ完全に電子化されたこの時代に産み落ちた。

サイボーグ・ボーイと呼ばれる世代な僕らは、人口減少対策として内閣府が出した指針により、神経系を人口の生体量子回路、とよばれる
第二世代コンピュータ端末に体の細胞を入れ替えることをやるのが普通だった。

はじめは世論はこれに反対したが、如何せん人口が少なすぎた。僕らの今いる2040年は国際情勢も悪化し、(ここで具体的なことをいうのは控えるが)
なんどか戦争も起こった。やはりそういうなかで右派勢力は台頭し、また和魂洋才ならぬ和魂電才のスローガンで、これまでの生命倫理は覆された。

まずクローンが許可された。IPS細胞もより実用化されており、臓器の単体生成も可能になったほか、「人工の人間」が「ファクトリー」という政府公認の機関によって量産されることになった。

ファクトリーで生産された人間は、当初それこそただの「人間」だった。それでも、より高IQの人間や経済的成功者、政治家・スポーツ選手などのDNAを水平展開させるという強い動機が働いたのか、そのようなクラスタの人間から優先的にクローンされた。

クローン後のアフターケアとして(すなわち愛情とか教育とかがなければそもそも劣性なものを世に出すことになるから)「擬似記憶」というプリセットのプログラムを海馬に埋め込む(injection)する技術がロシアのイヴァナチオ・ツロシキーという科学者が理論として提唱したが、これを東京大学が実用化させた。

ままの記憶。

ままに愛され、家族で一緒にピクニック。

授乳から、小学校〜高校まで、これらの記憶は電子的な配列としてセットされ、それを海馬内部でニューロンの組み合わせとして再現させる、その際に「パラメータ」という変数が用意されてあって、そこにランダムな数値(これはまず機械学習によってランダムに生成された親A、親B、またオプションで兄弟の顔と、声、名前、などである)

なぜこのパラメータが必要かというとクローンは、1時間単位で100人生成される。これは、24時間稼働で 1日2400人、1年で 876,000人が生産されるということだ。彼らの記憶がバッティングするというのは、混乱をもたらす。また、これは一つのファクトリーでの話であって、ファクトリーは全国で10箇所あるので、8,760,000人が(これはほぼ1000万人ということだ)生産される。

このクローンは、政府によって公式に人口としてカウントされ、戸籍も与えられる。ただ、一部は右翼政党の利用価値のある「兵隊」として、肉弾戦の道具に使う、というのが政府の意図らしい。それだけこの年には日本国憲法は形骸化していたし、誰も政府には逆らえないでいた。

「ミヤ」

原地が声をかけてきた。同じ秘密警察部隊「日生」の同期である。

「きみは人間なんだってね。こっちがわかとずっと思ってたけど」

「はは。人間じゃないさ。セミ・ヒューマンだよ。だから」

そういって僕はおどけるように壁に蹴りをいれてみた。コンクリートの壁が、大きな爆発音を出した後えぐられるようにめくれた。

「ボーグか!!!」

同期なのになんにもしらねえんだな。

「だって君だってそうするだろう。今の時代人間になんのメリットがあるんだ。ボーグのほうがはるかにやりやすい、寿命ものびるしね。」

なんどかスキップして首をひねってみる。

「人間でもボーグにはなれるよ。公表はされてないけど、部隊では愛国心が評価基準だから、バカな上官をだませばそれなりに優遇されるのさ。ぼくは考課でAもらったから」

「すげえ!」

「まず生体コンバータっていうのを経口薬みたいなので飲む。その後少し意識が遠くなって.... まず血管を人工ワイヤへの置き換えが行われる」

「メス入れないの」

「入れない。医学は進歩したんだよ。一般の人間には公開されてないけどね。この人工ワイヤへの置き換えがおよそ人体へのショックを最小限にするために2週間、その後脳細胞の人工生体コンピュータへの置き換えが一ヶ月」

「歯の矯正より早いな」

「そう。で、筋肉の置き換え、これは最初硬直して悲鳴が出るくらい痛かったけど、これもだいたい1週間。臓器や肛門も人工生体におきかえ」

「そもそも人工生体ってなんだっけ」

「人工生体はA-G-C-Tの遺伝子配列まで生物のそれそっくりの、ただ外部からそれをプログラミング可能な細胞さ。」

「ミトコンドリアもある?」

「擬似ミトコンドリアがある」

「はぇー。」

「脳が置き換わるときに、脳自体はどうなるの」

「例えばこれは時空間集合Xがあったとして、そこにベクターが集まってる。これらをキャプチャして、そこを細胞ひとつひとつ並列処理で焼き切る。焼き切るのと同時にその脳細胞の丸コピの人工生体細胞が置き換わるから、つまり意識も連続してる。シナプスとかも問題ない」

「すごいな」

「それに、この人工生体細胞にはガン、ってのがありえないんだよ。新しくボーグにおきかえるときに中央処理装置が脳梁に組み込まれていて、バグを出した細胞を0.003秒以内にX線で死滅させる」

「その電気はどうするの」

「血液が流れてるから、そのエネルギーを一部貯蔵して作る」

これは実際革命的だった。鉄腕アトムみたく、例えば5メートルくらいだったら軽く飛ぶことができる。

例えば実際の戦闘シーンになったときに、腕が一つ吹っ飛んでも止血は即時に行える。これはそういう処理系が「プログラミング」されているからだ。C++でできているらしい。

ただ、人工生体細胞とはいえ脳がふっとばされたら、終わりだけど。

でも、この人工生体細胞は即時的に硬質化が可能で(進撃の巨人みたいだけど)そもそも骨はセラミックレベルの硬さにすでになっているし、筋肉や皮膚を固めることで今みたいにコンクリートを粉砕することもできる。もちろん、意図しなければ、その肉の感触は、しなやかだ。


続く.... (かもしれない)











Monday, October 26, 2020

くたばれTwitter(ダメ押しMIX)

Saturday, October 24, 2020

Thursday, October 22, 2020

On patriotism

Many people, especially when the tensions between nations increase, tend to become patriotic.

It is partially because patriotism is sort of negation of the external enemy as a threat. As the well-known-fact, a government or any subsidiary organizations does educate (a.k.a brainwash) its people with the story that

1. there is an evil trying to harm your people

2. our government (organization) and its great soldiers are fighting against it

3. we need to overcome this threat such that we need to be assembled together and provide consent and power to the government(organization)

This propaganda is used everywhere to control people, in free country via the socially hacking of the SNS, such as the reason (partially) why Trump won the election and the existence of C.A. , and in CCP this is via the anti-Japanese education which persistently broadcasting 'good soldiers of ours beating the bad Japanese soldiers', in order to preserver their power and authority. 

However, for the latter part I personally cannot simply demonize them because actually Japan contemporarily / in the world war 2 also brainwashed people to sacrifice themselves in any form, saying the 'evil United States should be beaten by our great Japanese soldiers'. There is a famous Japanese proletarian novelist Takiji Kobayashi, who has been brutally tortured and has been dead by the local police.

The patriotism is mandatory in order to protect it's people, but also this is useful for military to harm the people outside, as history proves in the former Nazis or Japanese Imperial Army.

The pain Jewry people went through is because of the jealousy (partially) that politically powerless non-local people/race has extreme amount of capitals and for instance they financially supported Napoleon, the Fugger/Rothschild, and it means, even though in reality there were successful/non-successful Jews, people regarded Jewry itself as part of the conspiracy theory which is correlated to the decline of the West (and the chief cause why they are not doing well, such as the hyper-inflation), and therefore the minority Jewry was the easy strata to push all `non-good` thing.

Probably in the war time Japanese in China can be of that position, and in Japan probably minority Chinese and Korean can be in this position: 'the reason why we are not going well is because of these evil foreigners'.

Of course, any ongoing atrocities should be prevented as soon as possible, and the power-relations and the result of the fight between each nations/sub-groups are unknown.

However, we all agree that the tragedy what happened in former Nazis must be prevented again. One of my Chinese friends asked me why post-war Japan didn't resisted GHQ and she acclaimed that Japanese could resist against it, but I replied we cannot.

Maybe she misunderstand ours, (even though she is pretty smart person) that how is the fact that the atomic bomb dropped. There are no choices. Of course, how U.S treated post war Japan was very 'nice', different from what they did in Iraq, but anyway the multiple factor caused post-war JP government forced them to obey, because we lost the war to the U.S.

Patriotism might be necessary, but we all need to keep in mind that it is a double-edged sword. This can harm the ordinary people, father, mother, kids via your justice.

binary search tree: tree search


まあざっくりいうと binary search tree では左の子ノードが必ず小さく、右の子ノードが必ず大きく、という相関関係があるので、探索が O(h) (hは木の高さ)でわりと早い、という法則があります。

例えば、

fun searchTree(x, k) {
    if x.key == k or x == null
        return x
    if x.key < k {
      searchTree(x.right, k)
    } else {
      searchTree(x.left, k)
   }
}

こんなかんじで、再帰的に探索したり、または whileかなんかでループで実装もできます。

まあそんなかんじで。

漫画をようやく再開できそう

Monday, October 19, 2020

結婚式をしました

先週の金曜日、コロナ禍でなかなかできなかった中、ついに結婚式をしました。

父親が牧師だったので、お願いしたのですが、とてもいい形で式を進行してくれました。

また、弟君も参加してくれました。

嫁のほうのみんなも、みんな祝福してくれ、本当に素晴らしい結婚式になりました。

また、日曜日に、披露宴を中国人と韓国人の教会のみなさんが企画してくれ、準備やいろいろなことを尽くしてくれ、

とても楽しい披露宴になりました。

参加してくださった方々、また準備をしてくださった方々、

本当にありがとうございました。











ツイッターを断ってみてわかったこと

何度も繰り返し主張するのも憚られるが、しかしそれは自分の中でインパクトの大きな出来事であったゆえに、ある程度は不可抗力なところがある。

ツイッターは、情報発信のメディアとしてすでに既成事実(de-facto)であり、そういう意味ではその事実を覆すことは困難であろう。なので、事実ツイッターを使用している人を一般的に否定する、ということはここではしない。

「否定」というのはある意味では人間の業に紐づいた美酒である。気に入らないあいつをやっつけてやろう、あいつよりも俺の方が優れている.... そういう生理的心理学的な欲求で人は無意識のうちに誰かを「否定」しがちである。無論、「否定」というのに執着するのは個人の弱さであるから、否定とはどちらかといえば生産的な行為ではないし、多くの場合実を結ばない。ダンテのように「言わせておけ」、というのが本質で、「言う」よりも「言わせておいた」ほうが長い目では勝つことが、私の観測範囲では多い。(カタルシスというのは手近な支配欲であり、手近なものに慣れてしまうと大きなものを成し遂げる、ということができなくなる)

そのうえで、今回のツイッターにかんする一連の「否定」はある意味では歪んだバイアスがかかっていないこともないが、これは特定のケース(ただし相当数当てはまるケース)として考察に値すると考えるのである。社会目的論的に、ツイッター使用は控えた方がいい人間が多数いて、その中に自分もいる。

その基準は、「依存性」であるし、「手近なアウトプットが可能になってしまうこと」、また、「手近なアウトプットの観照が可能になってしまうこと」、である。

つまり、例えば社会関係のなかで生きているとやはり嫌な目には遭うわけであり、どうみても道理に合わない... ということも、おそらくは全体主義の為政者とかでない限りはありうるわけである。(全体主義の為政者なら、気に入らない奴は強制収容所か秘密警察で排除できるが、これは民主主義の政体とは相容れない)

このさい、「衝動的な刺激」に対して「衝動的な出力(リアクション)」をしてしまう、すなわち何かしらの嫌なやつに遭遇してしまった場合とか、「あいつはクソだ」みたいなことを衝動でつぶやいてしまう.... または、好意を抱いている相手に対してなんらかの誤解を与え、そのことに対して弁解をしたい...

ないしは、社会関係の実体験の範疇とは別に、流れてくるスクラップの情報に対する嫌悪感や、または「この話題には関連して言ってやりたいことがある!言ってやろう」のようなノリで「衝動的な出力」をしてしまうこと。

どちらにしろ、この「衝動的な短い出力」というのが相当個人の生産性とか、または社会性にとってすらも、マイナスなのではないか... ということを考え始めた。

また、この「気に入らないやつ」というのはもしかしたら数ヶ月後には「本当は好きなやつ」になるかもしれないし、ならないかもしれないが、どちらにしろフラストレーションや陰口を安易に吐いてしまえる場所、というのはいろいろな意味でよくない。

それは、前回も触れたけれども、「ブロック単位の情報」でないからであり、もし出力する情報がブロック単位であることをほぼほぼ強制するような「ブログ」であれば、推敲したり、衝動的に書いたとしてもあとでそれを俯瞰して「ん.... これはやはりやめたほうがいいんじゃないか」と内省してそれを取り下げたり.... といったことが可能だが、ツイッターは基本ツイートという情報発信の単位が短くかつイミュータブル(不可変)であるというところからも、知性に対してマイナスな影響を与えかねない。

ツイートの頻度が少なかったり、依存性が低い人ならばそこまで心配はないけれど、多くの人はやはり依存しやすいし、依存させるようなプラットフォームになることが対顧客向けのビジネスモデルであって、まあ「踊らされている」感は否めない。

人間はやはり弱い存在であるし、外敵とみなした相手を否定したりマウント取ったりして自己の精神的安全性を確保したいようなしょうもない生き物であるから、やはり自分にとって嫌な経験があった個体に対してずっと仮想敵として批判や否定をループする(僕もまあその一員であるわけであるが)わけで、そういうのを安易に吐いてしまえるプラットフォーム、というのも負の影響があると思う。

話が散らかったが、いずれにせよ、ツイッターを断つことによって衝動的な批判をアウトプットする回路がなくなった。

もちろん、批判はしたい。だが、その批判は「ロット」として芸術に昇華されるべきである。まがりなりにも、まだ、往生際が悪いことに僕は自分を「クリエイター」だと思い込んでいる自称クリエイターである。

クリエイターにとって、アウトプットというのは洗練され、推敲され、消化された結晶でなくてはならない。それは「安易な出力=発信」とはまるで対極のものであり、そしてそれはそのアウトプットによって誰かに共感とか救いを与えるものでなくてはならない。

まあ、これも「否定」の部類に入ってしまうのだが、アートやクリエイターにおける「商業主義への否定」というのは安直であり、それは甘えであると思う。

根拠として、結局表現というのをする以上、それは誰かにとって「よし」とされるものでなくては生きる糧として成立しないのであって、どうあがいても、日本が王政とかそんなんじゃないかぎり、「消費者」に気に入ってもらえる、ということがアートやエンターテインメントにとっては生命線であり、必須だからである。

王政のばあい、もっと表現の制約が強いわけだから、「消費者」のかわりに「ヒエラルキーの上の人」、つまり貴族とか華族とか王に気に入ってもらわなければならない。

こういった努力をなしに、野放図に、自分を本質で世界の中心だと錯覚するようなケースというのは、そのアートの未熟的な段階に往往にして多い、というのは私個人の意見である。

ツイッターは表現にとってはほぼほぼ「害」になるような誘惑がこの上なく多いのであって、それは例えば承認欲求を、作品でなくツイートで満たそうとしてしまうこと.... といったことがあげられる。

長い文章であればそれは詩になったりエッセイや論文になりうることはあるかもしれないが、ツイッターというのは構造上そういう練ったりアップデートしたり、ということを許していない。

インフラとして非常に野放図で楽な方法を許してしまう。

これは、私が若い青少年たちをフォローしていて観察していた時もよく思っていて、

「絡みなければ外す」

とか

「フォローまた減った。傷ついた」

もうなんかすごいこじらせたような、承認欲求が永遠に行き場を失ったような、ただただSNSが個々人に対して手枷足枷として機能しているようにしかみえないのである。

これは、彼らが悪いというよりも、「そもそも人間性というのは本来悪いどうしようもないもの」で、そういうどうしようもない人間性にうまく取り入った媒体がツイッターである、というように感じる。

いくらフォロワーが5000人超えても、売るものがなければ価値はない。

「短いヘッドラインでみんなを脊髄反射させてRTを稼ぐ」ことをバズる、と定義した場合、

やはりそこには情報の「質」の劣化が待ち受けてるようにもみえ、(またそれゆえにフェイクニュースが拡散されやすい土壌もあり.... またプロパガンダを流したい企業や法人が一生懸命投資をして世論の声を偽装しているようにもみえる。)

もちろん、ツイッターを使っている人を全否定しているわけではないけれども、ただただそれがパチンコのように、「依存性の害悪」として個々人の時間を「奪う」ワークフローがありうる、ということだけは考察に値すると思った。

ツイッターを断ってみて、というより、「スマホ、おもんない」という臨界点をなるべくはやく出すようにスマホ上のアプリを整理して見たところ、やはりスマホ以外についやす時間が大幅にふえたことは事実だし、それは自分にとってプラスになったと思う。

また、安易に批判できない、ということ(ブログなら可能だけど、でもそれでも大きな情報のブロックとして構成できなければ批判できない.... ということは少なくとも1クッションあり、しかもそれはあとで観照して編集もできるので)も大きなプラスで、SNSで批判を衝動的にしてしまえばそのときはスッキリするが、結局は社会関係的な負債を産むだけであり、そういうものは隠した方がはるかに有利なのである(減点がないから).... という当たり前のことをなかなか気づけていなかった気がする)

今のところ、脱ツイッターは正解だ、といえそうです。

追記----------------------------------------------------------------------------

もう一つ、ツイッターやSNSが人間そのものの精神性にもたらす負の影響の懸念事項として、

「美徳(よい行い)のマイクロ化、消費化、SNS化」


という問題があると思う。


マタイの福音書6:3-4

『あなたは、施しをするとき、右の手のしていることを左の手に知られないようにしなさい。

あなたの施しが隠れているためです。そうすれば、隠れた所で見ておられるあなたの父が、あなたに報いてくださいます。』

 
例えば、もっとも病的だと思うのは、例えば家族(子供や親や兄弟)の、その個人に対して向けた手紙や言葉にたいして、それをSNSに食わせる材料にしてしまう、というフローである。

また、自分が誰かを公共の場所で助けた(つまり、平たく日本の土着の庶民感覚レベルの精神性で言い換えれば、「善行をした」「いい人をやった」)ときにこれを「つぶやいて」しまう。

それに対して、それがバズり、みんなに賞賛され、承認欲求を「みたして」しまう。

こういった「病理」は、とくにSNS過渡期以降、すなわちよりSNSが民主化した近年により顕在化したようにも思え、より(キリスト教的な宗教的言い方をすれば)「パリサイ人」的な、みんなのいる場所で大声で自分の(本来隠されるはずの)善行をアピールする、という場所によりなりやすくなっているきらいがある。

これは全ての個々人の「家族同士のコミュニケーション」や「善の衝動」を「SNS化・マイクロ化」させ、より、「陳腐化」させ、より、精神を「劣化」させているような気がする。

これは日本特有の問題ではなく、非常に「アジア的」だと思うし(中国にもこういう劣化版社会実験的な番組がある)、こういうのに「毒されていく」ことで、これは前述した「否定・批判のはけ口的」SNSの作用と対をなす「悪の作用」であるが、人間の精神性に大きな負の影響を与えると思われる。また、その負の影響により、長期的に精神が「侵食される」。そうすると、私が前にのべた「馬鹿野郎」層、「脊髄反射層」、「読解力の低下した層」というのがやはり比較的に「増えていってしまう」と思われ、そう考えた時にSNSは、今の座組みだと、よほど注意して使わないと思わぬトラブルに巻き込まれる可能性もあるし(事実そういう悪質なDMを受けるユーザーは後を絶たない)、であれば、割り切って一切使わない、というのもかなり賢明な方法だと個人的には思う。










If you need to create sequence of data with incremental digital indices

Recently, vim/emacs are regarded as too old-school text editor nobody wants to use as a development tool, instead VS code etc... or IDE are sort of de-facto among engineers for coding.

Many people misunderstand vim, the reason why vim is powerful is because by using vim we are using the entire Unix OS ecosystem as a single IDE.

The .vimrc allows you to configure and create the editor itself (https://github.com/keitaroemotion/my-vim-configs/blob/master/.vimrc), which allows you to automate and customize your editor to satisfy your needs. 

Plus bash commands, are easily called in vim buffer with

![command]

or

.![command]

(the latter for putting the console output of the command called).


For example, when you need to implement the 500 records, which appears like:

SAMPLE_CODE("INDEX_1") THE NUMBER 1 IS REFERRED.

SAMPLE_CODE("INDEX_2") THE NUMBER 2 IS REFERRED.

....

SAMPLE_CODE("INDEX_N") THE NUMBER N IS REFERRED.

Then for those 500 records, you are going to elaborate on making the entire 500 records? 

The bash script / python script etc helps you to create any functionality you want to integrate with your editor,:

https://github.com/keitaroemotion/sugautil/blob/master/scripts/bunshin

So the bunshin script solves this issue like this:



The above picture generates only upto 40, but for any arbitral template, as long as you define the formatting target as "{}", then you can make 10,000 sequences for seconds. 

Of course, maybe some of these functionality already prepared in the plug-in market, but I think it's really tedious and inefficient you rely on the market each time and also your entire plugin data is in the hand of gigantic corporation Microsoft. 

Though not criticizing the IDE users, the vim editor gives you much insight into how to automate/effectively give solution to your problems, and combined with your own bash scripts/python scripts/ vimscript then you maximize the productivity on your own, and handling large amount of data is not that scary for you any more.










Wednesday, October 14, 2020

反省しています


 ここ... 特におそらく10年の漫画の作り方の傾向として、というか命題として、


女の子をどうやって魅力的に描くか


というものがあって、これがウェイト的には大きかった。これは、学生時代秋田書店に持ち込んでいた時期、「それの感触が圧倒的によかった」というのもあるし、

結局ライトユーザーを取り込めるようなものを作るとすると競争では勝つ見込みがないから、であればオタクのリビドーに訴えかけよう、とかそういう後ろめたいものを刺激して注目してもらう、という方向性に必然的に方針をシフトしていった。


アルゴリズムとしては、


読者が読む → キャラの女の子を好きになる


なぜ好きになる?

キャラの女の子が魅力的だから


どう魅力的?

エロスが際立っているから、主観的に感情移入をさせる


といったステップを踏ませて、自分の女子キャラのファンになってもらう、そうすることで支持をえようとする考え方だった。

こういう作り手側のアプローチは、というより漫画をかくというのは落書きではないので、相当な労力を費やしてどうやって自分の作品のファンになってもらうか、を考えている。

オタクとしての消費者層は、まあ事実一部に作者ですらドン引きする「やべーやつ」がいるんだけど、でも肌感として8−9割はまあ気の弱い(=内向的な)やさしいやつで、現実で実現できなかった恋愛経験とかそういうのを疑似恋愛として漫画作品やアニメから「なぞりたい」と考えている寂しがり屋さんが多いわけだ。

もちろん、その消費者がそのまま作者にまわることもあるが、

外野が思っているよりもこういう世界は一枚岩ではなく、「やべーやつ」が一部混じっているから全体を揶揄される、反社会的とされる、というのは結構な偏見(バイアス)だと思っている。

つまり、ブロックチェーン界隈について、一部のICO詐欺やらマネーロンダリングのやつらから全体を決めつけられるくらいには、あっていない。(が、おおよそ偏見とはそのようなものだ)


ただし、そういう方向で、つまり


キャラが性的なリスクに直面する=外的刺激によりキャラの性的魅力が目立つ


のような方程式そのものが、つまりそのような作品のアプローチそのものが単調であり、また無教養だったのだ.... というようにも反省するようになった(もちろんそういう作品を批判しているわけでは断じてない、ホーリーランドですら大団円で使ってるし)


これは、太宰治の「パンドラの匣」を読んで気づかされたし、また、最近の「結婚できない男」の最終回より一個手前をみてもそう思った。


パンドラの匣では、マァ坊という看護婦さんがでてくる(時代を考えて、あえて看護婦とここではいう)。彼女はいわゆる少しヤンキー女気質で育ちが悪いように描かれているのだが、最後主人公(結核で療養している)の雲雀に対して、すこしずつその気持ちをサイコロの立方体を展開するように仄めかしていき、距離をつめていく。

シドニイシェルダン的な露骨な性描写も一切なく、ただの言葉の綾や表情、仕草だけが羅列されていくのだが、これが妙にぞくっとするくらい艶っぽく、読んでいる方にもそのマァ坊の「悪魔のようなエロさ」が伝わってくるのである。

結婚できない男の場合、桑原が隣人のストーカーに詰め寄って「二度と彼女に近づくな」、と言って追い払ったあと(その言葉の重みも印象的だったが)、隣人が一周回遅れて桑原に対する恋愛感情が急激に前景に押し出され、隣人のメインの意識がそれに一周回遅れて、まるで恋愛感情をもった自分とそれを観照している別の自分がいて、後者が前者に慌てふためいてすごいことになっている.... という内部の心理的コンプレクスが奥ゆかしく、下手なエロビデオよりもはるかに「エロい」感じになっていた。

つまり、これらは(後者はストーカーが怖い、という外的刺激がありつつも)原則は単調な「性的危機を介して性的魅力をあぶり出す」、というような表現のアプローチではなく、

もっと多種多様な魅力の伝え方があり、どちらかというとよりコンプライアンスとして健全であるがゆえにタチが悪く、いろんな意味で考えさせられるものであった。

まとめると、これまでの自分の描写やストーリーの組み立て方、キャラの表現の仕方が浅はかだったのではないか、というスキルの問題を痛感したのである。


まあその他のことについては、ご想像にお任せする。


ただ、ここ最近で表現について痛切に感じていることは、


「セックスから離れれば離れるほどエロい」


ということくらいだろうか。もちろん、金太郎飴みたいに機械的に顔を赤らめさせてみたり、非現実的なくらいに女の子を積極的で男の都合のいいものとして動かすのでもダメで(まあそういうのは事実そこそこ2次元でも3次元でも売れるのだろうが、ただただ美しくない)、そのあたりの機微というかそういうのを描けるのがアートなんだろうな.... とは思う。


アートは現実よりもエロいからね....











妻に誕生日プレゼントを買ってもらいました

 


ついこの間までピチピチの20才だった気がするんですが、今日をもって立派に35歳の中年男性になりました💓💓💓💓 


うれしいな!重低音カバーできるイアホンが長いこと使えなかったんで、これからどんどんラップ録音しまくるぞ!!!


ありがとう!ちび子!!!!!😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉😉











ぼく、Youtuberになろうと思うんです

 Youtube の、ぼくのチャンネルのレイアウトを変えてみました....

も、も、も、もしよかったらみてやってください。(コンピューター系と、ラップ系を細々とやっていく予定です....)




https://www.youtube.com/channel/UCk-yoIrNiUoD5_SSTJdRFcg

「結婚できない男」について

阿部寛主演の「 結婚できない男」というドラマがある。ハマりすぎて阿部寛の妻になり、さらに夫婦喧嘩をしたというひどい夢まで見てしまったのだが、このドラマ、人間心理をものすごく解像度の高いレベルで描写できていて、下手な心理学の本よりも心理を学ぶのに適したマテリアルである。


特に最終回とその一個前の回。


女性心理だけにフォーカスすると、(言語化すると無粋なんだけど)例えば「女性は身なりで喋ってる」とか、声のトーンに情報量が凝縮されている箇所、感情の消費量をきちんと描写しているところとか、女性心理(これは面白いことに国籍や人種民族関係なく同じなので、まるで「女性」という一つの人種が存在しているようにすら思われるが)をデモンストレーションする上で、女優さんもものすごく優秀なので、学習材料になる。

また、大事なことをのべる場面でBGMという「雑音」をある程度カットできていることも好感である。

あと、これもよく知られている事実すぎてここで書くことすら憚られるが、女性は言語だけでしゃべっているわけではないので、言葉だけ追っかけていても言っている内容からずれて解釈していくだけで、これもわかっているかわかっていないかで女性とのコミュニケーションに障害をきたすか、きたさないかが変わる(ちなみに日本は古い世代はここが全部女性の我慢と妥協によって女性側があわせていたので、男性がアスペ全開でも成立していた)

言葉だけ追っかけてるとコミュニケーションは対女性では成立しえないので、そのためきちんと「コミュニケーション」できる、「気が利く」男性に好印象を女性が抱くのはわりと当たり前である。(これも当たり前すぎて書くのも恥ずかしいが、まあ女性心理を整理するという意味で。)

まあ、とにかく面白かった。妻もそこそこハマっていた。


以上!

Monday, October 12, 2020

マルコによる福音書1-8

ポエム

 滴る水が葉脈を鶯色に光らせる 燻んだ瑪瑙とジーパンのようなトタン

目を見張る白い乳色の蜜が樹木より流れ出て 虫たちが喉を潤している

風の匂い。透き通った空気をガムのように咀嚼する 土を踏みしだく。数多の生物たちよ

心から笑った。いつぶりだろう。 君はいつも可憐で、白い翼を休めている。

男女が惹かれ合う。まるで子供が、ショー・ウィンドウ越しに宝石のおもちゃを眺めるように。

君の一挙一動は、映画のワンシーンみたいさ。ピグマリオンの具現化したような繊細な指。

高嶺の花。眺めとかなきゃ。麗しいすみれに蝶が停まるように、

つまらない僕は。その花に吸い寄せられた。


自己採点の低い個体は選好性の対象にならない。ここは競争社会。

みんな身の程をしらない夢をみて、川のように流れていく。

感情を消費したが、藪の中の羽虫みたいに、僕は死んだんだ。その他大勢として。

土に還り、分解をまつ。

それは恐怖じゃない、元に戻ることは平安。

宇宙と一つになる。僕は無という神秘に戻るんだ。


そう念じて目を閉じた。

本質的に人間は孤独だから、孤独を噛み締めて毎日をただ生きるしかない。

時間を消費して壊れていく悲しい動物。

でも、僕に手を差し伸べてくれたね。

君のうしろに光が見えた、君はあるときは小さな火山で、あるときはまるで3歳の女の子だ。


愛しているよ。


ちび

Saturday, October 10, 2020

algorithm: counting sort explained

ツイッターをやめて2週間がたったんだが

 9/25 日にツイッターをやめてから、自分の生活にどういう影響がでたか、について軽く記したい。

そもそも、SNSを持っていてもそこまでアクセスしていないSNS不精の人は、この記事を読む必要はあまりなく、SNSにどっぷりな人が参考として読んでくれればいいと思う。


結論から言うと、時間の質が変わった


もう少しいうと、時間が増えた。とくに、スマホを手に取る頻度が減り、スマホを手に取っても Hacker News, Aljazeera, BBC, CNN, Tech News, RT, CNBC などいわゆる「信頼性・有責性がある(RTはいわばロシアのプロパガンダだが、その前提で読めばロシアの主張が掴める)」ブロック単位の記事を読む時間が全てになった。

スマホを手に取る、SNSのTLを延々と繰る、という不毛な時間の消費、すなわちそういう脳の回路が遮断された。

「スマホを手に取っても手軽な報酬系がない」

という回路を脳に学習させ、これによって生活習慣がすこしずつ改善した。

特に技術書とか、小説とか、新書とか哲学書とか諸々を読むことがエンターテインメントの大半をしめるようになった。たまに自分の曲や人の曲をきく。音楽の時間に占める比率は減ったが、ただ時間の濃度はあがった。

こうしてブログを書くのもある意味では不毛な時間に属するかもしれないが、少なくとも質の低い・いたずらに刺激だけで中身のないTL(情報のフラクション=嘘)から自由になった。ものを書く、というのはあとで編集したり推敲したりできるから、まあこれはこれで建設的だ、と思う。

SNSは危険だ。とくに、福田直子さんの言葉を借りれば、「バブルフィルター」という現象が起こりやすい。つまりこれはトランプ(まあそれ以前からだが)の選挙対策としてアメリカ市民の個人情報を「搾取」していた、という表現ができるからであり、すなわち「マイクロプロパガンダ」という、機械学習で個々人のネット検索履歴や人間関係、みた記事の傾向などなどからその個人の嗜好性を抽出し、その個々人に沿った「フェイクニュース」を流す。という形でSNSは民主主義をハイジャックする手段として使われている。

NSAが相当悪質だっていうのは今に始まったことではなく、アサンジもスノーデンも再三言ってきたことだ。FBがミャンマーで何をしたのか。ロヒンギャの虐殺はFBの、「刺激的な、保守層を刺激する歪められた情報」から起きた。

SNSはプロパガンダで汚染されている。刺激的な、憎悪や恐怖を煽るようなタイトルと記事。そしてそれをリピートして消費し、人々は自分たちの「みたい情報」だけを偏って摂取し、どんどん似たような人間と「共鳴し」バイアスを強化させていく。

それでなくても、とにかく資本を持った巨悪っていうのはどこにでもいるので、そういう人間がボットまで動員して(少数なのに多数に見せる構図で)メガホン垂れ流してみんなを洗脳するっていう、

そういうものからも自由になった。

一つの物事を正しく知るためには、命題(A=ジャニーズは悪である)と待遇(A' =ジャニーズは善である)の双方の意見の専門家やコミュニティをどちらも同程度の深さで研究しなければいけないが、


A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!A!


みたいなかんじでインプットがA固定でひたすらループしていく感じ、これがSNSだ。

なるべくいろんな角度の本や資料を読みあさること。敵がいたら、敵を(言語、文化、最低1000年前後の歴史、実際の該当者との交流)よく知ることだ。

この教訓から、僕自身いままでずっと逃げ続けてきたコンピュータ・サイエンスを学び始めた。そう、学ぶ時間が確保できるようになったのだ。


学び続けることをやめて、自分の意見が絶対だと思ってしまったら、そこからさきは退化しかないのだ。

SNSの奴隷になるのをやめてから、接する情報の質がどんどん上がっている気がする。


まあそんなかんじで。


(とりあえず、個人情報ってのはおおよそ搾取されているし、その個人情報にそってどういったニュースを流すか制御しているから、そう言う意味では RMSの言っていることは正しい。日本もプロパガンダ天国であり、日本の場合その主体が国... とまたはもう少しちゃっちい)