「HAtena」を含む日記 RSS

はてなキーワード: HAtenaとは

2020-11-18

愚かなプログラミング学習

テキスト説明理解できないとき学習者がすべきなのは自身理解を正すことであって、自己流の解釈を思い付くことではない。つまり

といったことをすべきなのであって、自分の腑に落ちるQiita記事とかを探すことは、全く理解に近づいていない。むしろ遠ざかっている。

というか、「明らかにからない用語などがあるのに、そこを回避して全体を理解しようとする」のは、プログラミングに限らず勉強法として根本的に間違っている。

かつて、どうしても「コメント」の意味理解できない新人がいた。

要するに彼は、プログラムの処理に関係の無い機構存在する意味理解できなかったらしい。

コメントは、コードでは表現できない実装意図ソースコード中に記述するときに用います

などと説明してみても、

...
// 15の倍数を先に判定しないと、たとえば15がFizzになってしまう
if (n % 15 == 0) {
    return "FizzBuzz";
} else if (n % 3 == 0) {
    return "Fizz";
...

みたいな簡単な例を示しても、一向に理解できない。

結局彼は、ネット解説記事をググった挙げ句に、

コメントは、処理をコメントアウトしてデバッグするための機構である

と言う結論に達したようだった。勿論、普通プログラマなら誰でも知ってるように、そういう使い方は良くない。

彼が本来すべきだったことは、まず

プログラミング言語のあらゆる機能が、プログラムの何らかの処理と対応している」

という誤ったメンタルモデルを正すことである。それを放棄して、自分にとって都合の良い出典不明情報鵜呑みにしたのが、そもそもの間違いである。

こういうことは、何も新人に限った話ではない。自分では一丁前のつもりのプログラマにも、ライブラリ等の全く見当違いな使い方をしてくる奴がよくいるのである

そういうのは、自分経験のある別の言語の○○という機能対応している、と勝手に思い込んでいたり、あるいは、実装とセマンティクスの区別ができず、インタフェースのような処理と直接関係ない機能理解できなかったりする。

要するに、不明点を正しく理解することを放棄して、自分に都合の良い解釈を得て早合点しているのである

そういう人はプログラマには向いていない。

2020-11-14

同人女感情増田長文腐女子(の一人)が読むとこんな感じ

結論から先にいうと、

増田長文腐女子のほうが原液から濃くてヒドくて面白いよ(宣伝)。

2chネタ商業化されてから原文の2ch読みにきてハマる人もいたのだから、そういう意味での存在意義はあるけどね。

 

・本文

私は「同人女感情」をネットで全部読んだ同人女です。「わたしジャンルに神がいます」もコンセプトカフェの帰りにアニメイトで買いました。最近角川は腐女子ネタ頑張ってるね。たしかつづいさんもだっけ。お布施がてら、私は知ってるけど家族にもよませるために買える絶妙立ち位置の本うまい最近の角川。(家族に読ませない本は電書が重くなくて楽)

増田にもそれに先んじてネット掲載最終話アンチの話がリツイート数がもりあがらなかったって投稿 anond:20201110232328 がブクマをあつめておりました。

盛り上がらなかったのは、私の見たところ単純に、冒頭で一度綾城本人でなく取り巻き中島アンチ?の話をやってて、繰り返しになっちゃったからかとおもいます理由はどうあれ、神にとってどう対処しようもないことを目障りな行動とうけとめ嫉妬してアンチになる構造は同じです。

(実際は本当に作風があわない場合アンチというより地雷になるケースがありますし、真田氏最終話では最初そちらを狙ったのだけれど商業化のせいでそこまで踏み込まなかったのかもしれません。し、最初から再話になってでもアンチ感情主題として繰り返し突き詰めたかったのかもしれません。)

また、書籍化にあたり綾城がどのように中島と付き合い出したか、その同人最初期のようすが描き下ろしで追加されています

からみると、あ~まぁだいたいそんな感じですよねぇ、という人物造形です。特に絵師場合専門学校芸大などで一緒だったとかいうつながりも多いし、めちゃくちゃ馴れ馴れしい取り巻きがおるとおもったら家族だったり幼馴染な場合も。

から綾城と中島の間には神も生育歴をもつタダの人間である以上どうにも他人には割って入れないんですよね。嫉妬するだけ無駄だったんだよというネタバラシ(もちろん創作情熱を落とし込めたことは彼女の今後の人生によい影響があることでしょう)。

表紙4だったか帯だったか実家猫写真といい、本人はあまり神の自覚がない、ごく普通の、一分野だけセンスちょっといいだけの女性が綾城ですし取り巻き意識のない仲良しさんが中島です。(そういえば、この自覚がないまま神に祭り上げられる同人書きの「嫉妬信仰勝手に向けられる気持ち悪さ」の吐露増田記事でなら読めるよ!宣伝

 

ところで角川は「同人女のクソデカ感情」を帯の惹句に使うことにしたようですが、クソデカ感情って一体なんだろと思ってしまいました。

感情って表出しないとなかったも同然のものなのですよね。登場人物はどの人物も最終的に同人創作に手を染めるくらいなので作品へのクソデカ感情はある。そしてその創作に至るきっかけの部分で、綾城の文に出会い、それを書いた「神」へのクソデカ感情ももつわけです。作品のみならずそれを解釈する先達への感情も表出しているってのが主題なわけです。ただし綾城「神」本人以外。神は創作するのですごい感情を持っているのですがそれを全部作品昇華した上、真田氏はその創作を直接は書かないので神がどういう感情をもっているかは読者からは徹底的に隠されています。それがまずおかしいわけです。

結局、人は、創作か行動で表すかしか感情を表出できないし、他人からみても感情サイズをクソデカと計測できる部分はない。そして創作も行動もできない人のほうが世の中は多いわけです。

同人、それも文章でクソデカ? いやいやこんなものじゃないでしょう、って思うんですよね。

鬼滅のなんとかを見てたらわかるじゃないですか。普通の善良なおとうさんおかあさんが子供を喜ばせたい感情動機に、同人女が欲しくても手を出さないよう自制しているまがいもの商品を買ってしまったり。出版社のえらいひとも混乱してわけのわからないものを独占商標として出願しようとしてあわてて取り下げたり。

プリミティブなだけに行動は繊細さがなくドカドジャンルを踏み荒らしていく。それをみてもともとジャンルにいた人がジャンルが売れたと喜んだり、新規ファンが粗暴だ公式が横暴だと悲しんだり、繊細に毎日時間ツイッターを見ながら感情うごかしていますが、そんなもの世間ではなかったも同然なんですよね。

世間のほうが同人女なんかよりクソデカ感情によるクソデカ行動をツイッターの外でやってるんですよ。やらかしですよ。

さらにいうと、人はファンである自分自覚し始めるとクソデカ感情(? 「私腐女子から」「オレオタクだから」)を動機簡単に法を踏み越えるケースがあるし、ネット創作からむとより簡単にやれてしまます。そんなもん合法○○マニュアルみたいなもの商業誌に出すわけにいかないですが、2話3話あたりの垢移動先突き止め作業なんか出版会議ですれすれだったんじゃないかなとおもいます

その暴れん坊の感情面をいい感じに抽出してここまでが合法ですよという綱渡り創作としてはお仲間からみて、さじ加減が見事で面白いってのはあります

ただし感情創作行為になんとか落とし込めている人たちは本当にレアケース、くそエリートです。同人やってたらねほりんぱほりんに招かれた人くらいレアエリートです。

実際は真田さんは絵かきですよね(文章書きと兼任する人も多いですしよく調べてますちょっと違うなと思う部分も)。

絵かきより文かきは個性が表出しづらいです。読みやすさ追求により互いに似てくる傾向があり、二次創作を追求するだけのことでも非常にこじれやすいケースがあります。というか、どうしても同じキャラ同じ性格を下敷きにするので同じシチュ流行る。再話に再話を重ねてしまう。伏線自分発見したのに~なんて嫉妬するのはものすごく流行ってるジャンルだと全監視できるわけないんで無理なんですよね。てか実況ツイでみんな同時に同じようなこといいだしますよ。今日もフォロイーさんが今日嬉しくなってツイした「今日発見した伏線かもしれないフカヨミ」、一応ググったら2年前の過去ツイに同案が居らしたって落ち込んでらした。ジャンル10年、ミニジャンルでも5年以上超えるとまあ誰かがどこかで同じことをお考えですね。もはやだれが考えついたのか区別がつかないくらいみんなでツイのまな板にのせてこね回した共有幻想ですから二次創作自分個性を出すことってものすごく難しいですよ。

そういえば増田anond)では同人盗作騒ぎについても興味深い腐女子長文投稿がありました(宣伝

他にも人は様々な理由同人を始め、心をへし折られ、敗れてジャンルをさります

そういえば一時期、増田マキシ丈云々とかやってたのなんか単なる容姿が原因ですもんね(宣伝

真田さんのマンガに出てくるクソデカ感情女さんはピアスの似合うセミロング美人ばかり。(いやよく見ると髪型が一時期の少年漫画みたいなお方もいらっしゃいますし、綾城は法則の外にいます

から物理でいえば等速直線運動くらい初歩の初歩のモデルケースなんです。「ただし弾性率は100%、摩擦は0とする」みたいな。

もっと複雑化された人間模様とクソデカ感情がみたければ増田腐女子長文とかうんことかついてるやつ読むとめちゃくちゃおしろいですよ。「1年前から増田にきてください、本当のクソデカ感情ってやつをお見せしますよ」とおりすがりの山岡くんもこういうはず。

はてなもね、なぜかジャンルを去る腐女子がちょくちょく長文捨て台詞を落としに来るという利点を自覚してまとめて本でも出せばいいのに。

(q.hatenaで2冊も商業出版されたことがあるじゃないですか)(知らないの? きみはもしかしてはてな初心者?)

 

腐女子のクソデカ感情がみたければ増田も濃くて面白いんですよというお話でした。

ついでにorangestarさんの801ちゃんコミックよろしくね。あれもいにしえの腐女子のクソデカ感情(びたーんびたーん)が本当におもしろいしはてなブログから同人版買えるからね(宣伝

2020-11-11

はてなスター爆撃

柳の下のどじょう

蓮舫氏が立民新ポスター発表「国籍を問わず私たちが届けるあなた方の政治に変わりありません」(東スポWeb) - Yahoo!ニュース

https://b.hatena.ne.jp/entry/s/news.yahoo.co.jp/articles/01a6aeafc71b0edf84e1c054b424d8781feebf91

この記事ブコメはてなスターを投げていたユーザーを集計したんだけども

リストAの21人のユーザーリストBの15個のブコメはてなスターを投げていたのが判明した

これらのユーザーは(このエントリーでは)他のブコメにははてなスターを投げていない

21人が全く同じ組み合わせの15個のブコメはてなスターを投げている

いくらなんでもこれは偶然とは言えないだろ

このエントリーブコメに投げられたはてなスターには他にも不自然な点はあったが

とりま最もわかりやすものとして報告しましま

A. ユーザ…21人

B. ブコメ…15個

2020-11-08

anond:20201108093817

安全


                                             .:-.                                                                                 
                                           :+*+=*-                                                                                
                                        .-**+---=#-                            ..                                                 
                                       .+*=-----=*#====+++++++++==-::.   ..-=+++*=                                                
                                      -*+-:.-=+*+=-:::.........::::-==+++#*=---:=%-                                               
                                     :*==+*+=::.........................:-+**-...#=                                               
                                    =*=**=:..............................:.:-++-.#+                                               
                                   =#*#=:.....................................:=*#%.                                              
                                  :##+:.........................................-#%.                                              
                                  *%+.................:=+-.....................:.:#=                                              
                                 :#*:................:=*#+--......................:#:                                             
                                 :%=................:+*###*+:.....................:++                                             
                                .+*:..................-**=::.......................=#.                                            
 -+++++++=.                  .:+*=-::::::::...........::::.........................=#.                                            
 ::---:-#%.  . .       .--.  .:-*#*++*******##*****++++======-------:::::::::::..:.=#:                                            
 =######%%. +##*.   .  :%#.   .=#=--------=+%*#%#+%*====::---=+++#%#%%%*+#%###*++**+##+:                                          
 .::::::#*..====. .=%= :%-    +#==--------+%+-@@#:+#=--:     .--+%+:#@*..-%+----------+#*.                                        
 =#******: .-==-..+%+. =*.   -%=----------+%--%%+.:#+--.      :-*%::%%+..:#=---------=-=%+. .:-+****+=:.                          
           .+++++*%=  :+-.  .#+=----------=***%%=--+=::. ..    .-#+=##-..:=--==++++++==-#%+*%#*+=====+*#*+:                       
            ------:   .:.   =#=---========----==---:     .--.    .-=*#**+******++===+=-=%@#+==-------:..:+##-.                    
                           .#*-=*###########**=:.                   .=*#*+==-----------+@#=--=----==--.   .-*#=.                  
                           .%+====-------====-=+=:        =*:      :-.=*---------------+@*---------::.      .-*#=:.               
                           .%+=------------.  ..-#=     :+###=.    .=##*++********+----+@+--------+###+.      .-*####+:           
                           .#*--=---==--====+++=.-#*:..=#*=-=*#*=--=#*:  ..:-======----+@+-----=*#=..:+#+.        ..:+%*:         
                            =%=--------=*+-..     .=**#%*------=+##=:.     .:----------#%=---=+%+.     :*#-           :##:        
                            .*%+=-----=--:           ..+%+------=#:         :---------=%#=--=#@@-       :@*.           :%*.       
           .-=++++++*****+**+-+%*==-------             .+%+-----#*.         :---------*@+---+#*#%=      -%-            .#@.       
          .*%*=-=-::..... ..=#-:+*=-=--=--.             .-##+--#*:          :-----=-=+%*=----=-=*%-     -%=            :##.       
          .#%=:..            :#= :+**=----:               .-***+.          :-------+#%*=-=------=#%:    .+#-. :.      :*#:        
           .=#%%*.           .+%-   :+**+=-:                  .           .------+#%*=-----------+%*.    .=##+%#=..:=*#+.         
              :%*.            :*%*:    .-+#*-.                           .-=--=*#%*=--------------*@=      .-+==*##*=:.           
               =%-             .:-**- :=+*%#**=:.                       .-==+#%#+=----------------=%#.                            
                -#+.               .---====--=+*#**+=====++++++++++++++*###**+=-------------------=#%:                            
                 :+#*=-::-=-:    .:-------------===++***++++++====++=+++===-----:-----------------=*@+                            
                   .:-=+++==*#+-:.----------------=*#%#=------------------::..    .-=--------------+@*                            
                             .:=+**#*++=---=--=+*#%*%%=----------::...             .---------------+%*                            
                                  .:-+########%#=:. -@*--------..                   :--------------=%*                            
                                       ..:--:.      .#%=------.                     .--------------+%*                            
                                                     *%=-----.                      .--------------+%*                            
                                                    .#%=----:                       .-------------=+@+                            
                                                   .=@*=----.                       .--------------*%:                            
                                    .:=******##*****%*=-----.                       .-------------=##.                            
                                  .+#*+=========+++++=------.                       .-------------=%+                             
                                 .##:.----------------------                        .-------------+@-                             
                                 .%*.-----------------------                        .-------------##.                             
                                 .##:-----------------------.                       .------------+%+                              
                                  =%=------------------------.                     .-------------*%*:                             
                                  .*%-------------=++==---=---.                    :-------------%#+*+:                           
                                   .+#::---------=%%*#%%#*+===-:                 .:------------:#@+--=**:                         
                                    .+%-.:------.:%#. .:-=+*#%##+=-:.          ..-------------:=@#=----=**-.                      
                                      -#*:..:::.  -#*:..     .:-=+*####**+========-----------:-%%=-------=+*=.                    
                                       .+#*-..    ..=*###+.          ..:-==++***#%+---------:.*%#*=--------=+*+:                  
                                         .=##+:         .+#-                    -@+--------..=@=.:+#+=-=------=*+-.               
                                           -%#-          .##.                   -@=.:----:. -%+    :=**==-------=+*+:             
                                         .+%+.           -%+                    -@=        :%+.      .-**==--=----::+=:           
                                         -%=            -#*.                    =@-       :##.          :+*=-----:.  :==:         
                                        .*#.          .+%+.                   .+%*.      :##:             .-++-..      :+=.       
                                         +%:       .-+#*:                     +%-.      :#*.                 :=+-.      .=+.      
                                         .+#*+===+*#+-.                      -%+        .*%-                   .-*=.     .*-      
                                           .:=++=-.                          -@+         .=%-                    .:++:.  .+:      
                                                                             .##:         .+%-                      :+*++*=       
                                                                              -%*.         -%+                                    
                                                                               -%*.        :%*                                    
                                                                                :*#=.      =%=                                    
                                                                                  :+#*=-:-*%+                                     
                                                                                    .:=+=+-.                                      
                                                                                                                                  
                                                                                                                                  



2020-11-07

お前はATSUGI炎上した理由理解できない

炎上というのをどうイメージしているだろうか。現実の、キャンプで見る炎は、木材を燃料として燃えるしかし、ネット上での炎上は、その発端を燃料としていない。

ここで言いたいのは、この炎上に、炎上したたった一つの理由存在しないということだ。

ここ数日で、「タイツの件が炎上した理由は...」のような記事に、「炎上した理由はそうではなくて、...したのが原因」のようなブコメがつき、そこに星が集まっているのを観測した。(下記2つ以外にも見かけたが忘れた)

b.hatena.ne.jp/entry/s/b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20201104101226[メタブ] 黒タイツエロい常識になることの脅威、母親としての思い
b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20201103224649例の絵師先生ファン女性だけどツラくて憂鬱

要は、炎が批判意見集合体虚構であることは理解しているのに、それに自分が含まれていることを理解していない。「私はタイツが嫌いだから批判します」というような、訳がわからない意見あなた意見も、同等に炎上の一部だと理解しなければいけない。

タイトルの「お前はATSUGI炎上した理由理解できない」というのは何の煽りでもなく、本当に理解できないのだ。私にも理解はできないし、一つの答えなどない。真に理解したいなら、Twitterをはじめとするネット上のすべての批判意見に目を通す必要があるだろう。そのすべてが理由である

ATSUGIツイートを燃料にしているのは、炎上が始まる前にそのツイート違和感を持ち、批判した人のみだ。その批判意見リツイートされ、炎上状態になれば、第三者炎上しているということを前提として、燃料と離れた空中から自然発火する。その意見は、炎上への後付けであるので、発端となった意見と関連はない。

狭義の「炎上した理由」というのなら、発端となった批判ツイートの内容と、それがツイートされてしまたこ自体炎上理由なのではないだろうか。

理解できないということは

私も広告担当すれば、炎上するかもしれないし、あなたもそう。

TODO:

本当は全種類の意見コンプリートして、分類もしたかったが、モチベーションが保てなかった。

誰か暇だったらやって。

批判的な意見のほんの一部

あくま批判的な意見多様性を示すためのものなので、内容は適当に要約している。

言った人内容の要約
b.hatena.ne.jp/s194959/google検索してAV女子高生レイプ画像ゴロゴロ出てくる社会ではダメから
b.hatena.ne.jp/brightsoda/おっぱいエロという考えが広まり隠すようになったのと同じように、タイツもそうなる可能性があるから
b.hatena.ne.jp/nekokujira/安全性を脅かす様な広告出したから。
b.hatena.ne.jp/vndn/安全性を脅かすもの」ではなく「安全性が脅かされてることを明らかにしてしまったもの」だから
b.hatena.ne.jp/tGsQqV/変に性的キモいあんなの手に取りたくない思う人も多かったか炎上した。
b.hatena.ne.jp/njgj/性的アピールをする側面もある女性と、性的にみる男性棲み分けがなされなかったか炎上した。
twitter.com/okayuaaラブコメでありそうなイラストにしたのがまずい。女性向けのPRで谷間を出すのはまずい。ATSUGIの人は性癖と好みを出しすぎて失敗した。
togetter.com/id/Lafiell萌え絵」は幅広い年代女性ターゲットとする、日用品広告としては不適切
togetter.com/id/LafielliPhoneの新型機種の発表会に水着姿のキャンギャルが登場して、新しいiPhoneキスしてみせる、ようなものから
togetter.com/id/1WCzPF0jcLKan43機能性や商品説明が何もなかったというか、紹介する気ゼロな所も炎上した要因。
togetter.com/id/aro_wtATSUGIは「日用の肌着メーカー」であり、「従来のATSUGIイメージ」への配慮が足りなかったから。
togetter.com/id/mutsuko_themoon描かれてる女性特定キャラクターじゃなかったから。
togetter.com/id/Ldc_316萌え絵に慣れてない一般女性が見たらやっぱりキモイから
togetter.com/id/cgpr4イラストキモいキモくない」ではなくて、 このイラストを「企業PRとして採用」したのが不適当
togetter.com/id/bbs_teck_shye強烈なミスマッチを受け取って気持ち悪いと思った。
togetter.com/id/peipei999性的女性向けのキャンペーンには向かない絵だから
togetter.com/id/bbs_teck_shyeアツギは“女性に向けたタイツ広告イラスト”として出したこと問題
togetter.com/id/da3_vx胸の谷間を強調しているものローアングルのもの女性向けに広告として出てきたら嫌な気持ちになる。
togetter.com/id/FzzVkスカートまくり上げやまんぐり返しを下着メーカーツイートRTするのは気持ち悪いと思われるのは妥当
togetter.com/id/bbs_teck_shye日常の中で【タイツを着用する女性に訴求するような】とコンセプトを打ち出して絵師オファーしなかったから。
twitter.com/GnNvIkekfPzP38x/status/1323551212587773953性的イラスト問題ではなく、男性目線のマーケティングをしたから。
twitter.com/kurodewa女の子タイツを履かせて扇情的ポーズをさせたイラストを使って、「なにを」「どの層に」アピールたかったのかが分からいから。
twitter.com/_wa______オタク世間一般感覚はだいぶズレているのが原因。
twitter.com/end_clash_dia/status/1323546792730918913尊い」「エモい」のような感情に、性的意味合いが付随していることを担当者と絵師理解していなかったから。
twitter.com/mahironoame広告写真からイラストになった途端それは主体的でなくなってしまうから
twitter.com/0721_gg女性嫌悪感を示しただけ。
twitter.com/pecorino1512スカートたくし上げースカートの中の股見えてるーな「いかにも」エロ匂いするのは普通にキモいから
twitter.com/MyoyoShinnyo/status/1323569829673017344萌え絵の是非ではなく、本来顧客層と違うニーズ広告を打ったのが原因。
b.hatena.ne.jp/nowa_s/担当者がラフ段階での指示等も碌にせず、絵師に丸投げしたから。
twitter.com/scriptforus/status/1323827959346573313ATSUGIタイツ日用品であって、セクシーランジェリーじゃないから。

2020-11-03

anond:20201102113231

こうですか?わかりません ><

function pair(psns) {
  var i = -1;
  var cnt = 0;
  var flg = psns[0] && psns[0].sex;
  // modified on 2018-12-31 by XXXX
  // var flg psns[0].sex;
  var j = -1;
  var tmp = null;
  // modified on 2020-12-31 by XXXX.
  // var k = -1;
  for(i = 0; i < psns.length; i++) {
    //console.log('■■■■■■■■■■■■■■■■■■■■ BEGIN ■■■■■■■■■■■■■■■■■■■■')
    //console.log(psns, 'i=' + i, 'cnt=' + cnt, 'flg=' + flg);
    if(psns[i].sex == flg) {
      //console.log('cnt: ' + cnt + '->' + (cnt+1));
      cnt++;
    } else {
      j = i - cnt + 1;
      // j = i - cnt;
      // j = i - cnt - 1;
      //console.log('swap ' + i + '<-->' + j);
      tmp = psns[j];
      psns[j] = psns[i];
      psns[i] = tmp;
      i = j - 1; // <- 理由は分からないが、i = jだと上手くいかない(by XXXX)。
      cnt = 0;
      // flg = !flg; // これはなぜか上手くいかない (by XXXX)
      flg = flg == MALE ? FEMALE : MALE;
      while(j > 1) {
        if(psns[j].height < psns[j-2].height) {
          //console.log('swap ' + j + '<-->' + (j-2));
          tmp = psns[j-2];
          psns[j-2] = psns[j];
          psns[j] = tmp;
        }
        j -= 2;
      }
      // modified on 2018-12-31 by XXXX.
      // 
      //for(k = 0; k + 2 < j;) {
      //  if(psns[k].height > psns[k+2].height) {
      //    tmp = psns[k+2];
      //    psns[k+2] = psns[k];
      //    psns[k] = tmp;
      //  }
      //  k += 2;
      //}
    }
    //console.log(psns, 'i=' + i, 'cnt=' + cnt, 'flg=' + flg);
    //console.log('■■■■■■■■■■■■■■■■■■■■ END ■■■■■■■■■■■■■■■■■■■■')
    //console.log('')
  }
  for(i = 0; i < psns.length; i++) {
    //console.log('■■■■■■■■■■■■■■■■■■■■ BEGIN ■■■■■■■■■■■■■■■■■■■■')
    //j = i / 2;
    j = Math.floor(i / 2);
    //console.log(psns, 'i=' + i, 'j=' + j);
    tmp = psns[i];
    if(!(i % 2)) {
      psns[j] = [null, null];
    }
    if(tmp.sex == MALE) {
      psns[j][0] = tmp;
      psns[j][1] = psns[i+1];
    } else {
      psns[j][0] = psns[i+1];
      psns[j][1] = tmp;
    }
    // modified on 2018-12-31 by XXXX.
    // 
    //psns[j][0] = tmp;
    //psns[j][1] = psns[i+1];
    i++;
    //console.log(psns, 'i=' + i, 'j=' + j);
    //console.log('■■■■■■■■■■■■■■■■■■■■ END ■■■■■■■■■■■■■■■■■■■■')
  }
  psns.splice(psns.length / 2, psns.length);
  // modified on 2020-12-31 by XXXX.
  // return psns.slice(0, psns.length / 2 + 1);
  // return psns.slice(0, psns.length / 2);
}

2020-11-02

anond:20201030201448

最近ブチ切れたコードの一部

public virtual class DataInfo {
    public Integer p;
    public Integer c;
    public Integer r;
    public Integer v;
    public String name;
    public DateTime time;
    // ...
}

public class CellInfo extends DataInfo {
    public String stl;
    public Integer cntl;
    public String[] lines;
    // ...
}

public class FormInfo extends CellInfo {
    public Integer err;
    public String org;
    public String mod;
    public String type;
    public Integer size;
    public Integer step;
    // ....
}

2020-10-30

お願いだからセンスの無い人はプログラマにならないで下さい

プログラミングセンスです。センスの無い人がプログラマになると、他のすべての人に迷惑がかかります。だからセンスの無い人は絶対プログラマにならないで下さい。

プログラミングセンスが無い人や、プログラミングをやったことの無い人は、知識を得たり経験を積んだりすれば、誰でも「良いプログラマ」になれると思っているようですが、無理です。

というのも、センスの無いプログラマ問題は、知識経験の不足ではないからです。センスの無いプログラマの救いようの無い問題は「頭がおかしいこと」なのです。

題材は何でもいいのですが、具体的なコードを見た方がイメージがつきやすいと思いますので、とりあえず以下の問題を考えます

問題

住民リストが与えられるので、背の低い順に男女ペアにしたリストを作って下さい。ただし、男女の数は同数であるします。

コード

ふつうの人は、難しく考えずに以下のようなコードを書きます

const makePair = (persons) => {
  const males = persons.filter(person => person.sex === MALE)
  const females = persons.filter(person => person.sex === FEMALE)
  const compareHeight = (a, b) => a.height - b.height
  males.sort(compareHeight)
  females.sort(compareHeight)
  return males.map((male, idx) => [male, females[idx]]) // 男女の数は同数
}

この例はJavaScriptなので高階関数を使っていますが、仮にそういう機能が無かったとしても、

というコード構成は大きく変わらないでしょう。

一方、センスの無いゴミプログラマは、以下のような名状しがたきコードを書いてきます

function pair(psns) {
  var i = -1;
  var cnt = 0;
  var flg = psns[0] && psns[0].sex;
  var j = -1;
  var tmp = null;
  for(i = 0; i < psns.length; i++) {
    //console.log('■■■■■■■■■■■■■■■■■■■■ BEGIN ■■■■■■■■■■■■■■■■■■■■')
    //console.log(psns, 'i=' + i, 'cnt=' + cnt, 'flg=' + flg);
    if(psns[i].sex == flg) {
      //console.log('cnt: ' + cnt + '->' + (cnt+1));
      cnt++;
    } else {
      j = i - cnt + 1;
      //console.log('swap ' + i + '<-->' + j);
      tmp = psns[j];
      psns[j] = psns[i];
      psns[i] = tmp;
      i = j - 1; // <- 理由は分からないが、i = jだと上手くいかない(by XXXX)。
      cnt = 0;
      flg = flg == MALE ? FEMALE : MALE;
      while(j > 1) {
        if(psns[j].height < psns[j-2].height) {
          //console.log('swap ' + j + '<-->' + (j-2));
          tmp = psns[j-2];
          psns[j-2] = psns[j];
          psns[j] = tmp;
        }
        j -= 2;
      }
    }
    //console.log(psns, 'i=' + i, 'cnt=' + cnt, 'flg=' + flg);
    //console.log('■■■■■■■■■■■■■■■■■■■■ END ■■■■■■■■■■■■■■■■■■■■')
    //console.log('')
  }
  for(i = 0; i < psns.length; i++) {
    //console.log('■■■■■■■■■■■■■■■■■■■■ BEGIN ■■■■■■■■■■■■■■■■■■■■')
    j = Math.floor(i / 2);
    //console.log(psns, 'i=' + i, 'j=' + j);
    tmp = psns[i];
    if(!(i % 2)) {
      psns[j] = [null, null];
    }
    if(tmp.sex == MALE) {
      psns[j][0] = tmp;
      psns[j][1] = psns[i+1];
    } else {
      psns[j][0] = psns[i+1];
      psns[j][1] = tmp;
    }
    i++;
    //console.log(psns, 'i=' + i, 'j=' + j);
    //console.log('■■■■■■■■■■■■■■■■■■■■ END ■■■■■■■■■■■■■■■■■■■■')
  }
  psns.splice(psns.length / 2, psns.length);
}

こんなコードメンテナンスは御免被りたいです。一見して配列の要素を入れ替えていることが分かるだけで、実装を全て読まなければ(いや読んでも)処理の意図が全く分かりません。また、たとえば「i = j - 1」が間違って「i = j」などと書かれていてバグを起こしたとしても、原因を突き止めるのは困難を極めます

さて、このコードは具体的に何がいけないのでしょうか。長すぎることがいけないのしょうか。変数名が分かりにくいのがいけないのでしょうか。引数破壊的に変更しているのがいけないのでしょうか。不要コメントが残っているのがいけないのでしょうか。よく見ると、ソート処理で車輪の再発明をしていたり、「j」や「tmp」などが場所によって意味が違うカメレオン変数になっていたりしますが、それがいけないのでしょうか。どれも正しいですが、それらを逐一直したところで、本質的解決にはならないでしょう。

後者コードはもはや「ここを直したら良くなる」とかいレベルを超えています。たしかに、問題を具体的に挙げることはできます。このコードの致命的な問題が、凝集度の低さと、単一責任原則(SRP)違反にあるのは間違いありません。しかし、後者コードを書いてくる人に、

住民リストを男女に分ける処理や、リストソートをする処理、2つのリストをまとめる処理は、この問題とは独立して意味のある操作から、別の関数として抽出しましょう。その方がコードの見通しがよくなるし、一部の処理を修正したときの影響も小さくなるし、単体テストも書きやすくなります

なんて言ったって聞く耳を持たないでしょう。

そもそも、こういうコードを書く人は、この処理自体を「pair」なんて関数抽出すらしません。まだこの問題では入出力のフォーマットが明確に定義されているので、他人が1から書き直せますが、実際のプロダクトでは、無数の副作用を起こす数千行のコード迷路を彼の脳内フォーマットデータが通るわけです。もちろん、テストコードなんてありません。

まり、指摘をしても絶対に直らないのです。いくら言語の優れた機能ベストプラクティスを紹介しても、馬の耳に念仏。それらの利点を理解できるだけの脳みそが足りていないのです。

どうして、同じ処理を実装するのに、ここまでの違いが生じるのでしょうか。

これは、プログラミング技術問題ではありません。既に述べた通り、ふつうの人なら、特定機能の有無とか知識の程度にかかわらず、ふつうコードを書くのです。なぜなら、ふつうの人にはそちらの方が楽だからです。つまり、前者のコード別に何か卓越した技術を身につけた結果書けるようになるものではなく、まともな感覚さえ持っていれば、プログラミング初心者にとっても前者のコードの方が書きやすいのです。

まり後者のようなコードを書いてくる奴というのは、現実世界の捉え方が常人とは著しくずれているのです。要するに、「頭がおかしい」のです。この病気はもう直りません。だからセンスの無い人は絶対プログラマにはならないで下さい。

anond:20201024194203

ありがとう!!感謝

平成30特(わ)211  法人税法違反,消費税法違反,地方税法違反 平成30年9月20日  東京地方裁判所

間違いなく脱税していることは確定だ。しかし億単位とは…

係争中でも検察庁に出向いて手続きすれば、閲覧できるようです

流石に面倒なのでそこまではしないが、感想としては怒りしか無い。社員生活のためとは言えこれを擁護するのは反社会的だと思うし反省して出直すぐらいのことは言えたのでは。

2020-10-22

anond:20201022005749

AにBを持たせる

class A {
    private B b;
    // 実装
}

AをラップしてBと共通インタフェース実装する

interface IB {
    // Bのメソッド
}

class AWrapper implements IB {
    private A a;
    // 実装
}

class B implements IB {
    // 実装
}

2020-10-21

東証障害富士通はケシカラン!

品質どうなってんだ。

全然関係ないですが、cf.takeover.on_panicというパラメータについてNetApp社のサイトを調べました。

すると、リリース日が違うけどタイトルが同じな2つのマニュアルを見つけました。

富士通東証の人が信じていた挙動

https://megalodon.jp/2020-1021-2016-08/https://library.netapp.com:443/ecm/ecm_download_file/ECMP1210206

Data ONTAP(R) 8.2 High Availability and MetroCluster Configuration Guide For 7-Mode

Part number: 215-07985_A0

May 2013

Enable or disable automatic takeover on panic by entering the following command:
options cf.takeover.on_panic {on|off}

on  enables immediate takeover of a panicked node. This is the default value.

off disables immediate takeover of a panicked node. If you disable this option, normal takeover
procedures apply: if a node panics and stays down without sending messages to its partner for 15
seconds, the partner then automatically takes over the failed node.

オフでも15秒後には切り替わるよ!

実際の挙動

https://megalodon.jp/2020-1021-2017-57/https://library.netapp.com:443/ecm/ecm_download_file/ECMP1368831

Data ONTAP(R) 8.2 High Availability and MetroCluster Configuration Guide For 7-Mode

October 2020 | 215-08524_B0

Enable or disable automatic takeover on panic by entering the following command:
options cf.takeover.on_panic {on|off}

If the cf.takeover.on_panic option is set to on, a node panic will cause an automatic takeover.

If the cf.takeover.on_panic option is set to off, a node panic will not cause an automatic takeover.
You should not turn this option off unless you are instructed by technical support to do so.

オフだと切り替わらないぞ! オフにするな!

ちなみに、下のあたらしいマニュアルは、2020年10月リリースされている

2020-10-20

似た曲を検索するサービス教えてくれ

たとえば、堀江晶太のI'veのパクリみたいな曲(走れ、走れ ストーリーテラー)が好きで、逆に単なるロキノンやってる曲(HATENA)はどうでもいいとするよな?

でも、堀江晶太検索したら両方出てくるだろ?

そんで似た傾向で検索しても出てくるのは歌手が似てる(ロキノンまたはアイドル)だけで曲が似てるわけじゃねーのよな。

そういうときどうすればいい?

2020-10-19

スーパーpre記法テスト

https://anond.hatelabo.jp/20201019173130

青13 
赤12 緑11 白18 緑14 緑23 緑15 緑 8 白 6
青 1 白16 緑 3 緑21 緑22 青 2 緑17 白19
白 7 青25 青20 緑 ×  
白 4 >  1
赤 1 赤 5 緑 9 白10 赤 ×  緑24 


+--+--+--+--+--+
|赤|赤|赤|赤|赤|
|白|青|白|白|白|
|白|白|緑|白|緑|
|白|緑|白|青|青|
|緑|緑|緑|緑|青|
赤:  5枚 o ○ 3 × 1
緑:  7枚  ○ 11 × 1
白:  9枚  ○ 7 × 0
青:  4枚  ○ 5 × 0
問題数: 28   スルー:  0

2020-10-15

poetry cache clearの仕様おかし

% poetry cache clear --help
USAGE
  poetry cache clear [--all] <cache>

ARGUMENTS
  <cache>                The name of the cache to clear.

OPTIONS
  --all                  Clear all entries in the cache.

GLOBAL OPTIONS
  -h (--help)            Display this help message
  -q (--quiet)           Do not output any message
  -v (--verbose)         Increase the verbosity of messages: "-v" for normal output, "-vv" for more verbose output and "-vvv" for debug
  -V (--version)         Display this application version
  --ansi                 Force ANSI output
  --no-ansi              Disable ANSI output
  -n (--no-interaction)  Do not ask any interactive question

これ見ると

poetry cache clear pypi

で動きそうじゃん?

% poetry cache clear pypi

  RuntimeError

  Add the --all option if you want to clear all pypi caches

  at /usr/local/lib/python3.8/site-packages/poetry/console/commands/cache/clear.py:44 in handle
      40│         )
      41│ 
      42│         if len(parts) == 1:
      43│             if not self.option("all"):
    → 44│                 raise RuntimeError(
      45│                     "Add the --all option if you want to clear all "
      46│                     "{} caches".format(parts[0])
      47│                 )
      48│ 

ブブー

動きません

正しくはこう

poetry cache clear pypi --all

オプションって何だよ哲学か?

直感的には--allをついてたら全てのキャッシュを消すべきだと思うが

% poetry cache clear --all 
Not enough arguments (missing: "cache").

ブブー

動きません

`--allって何だよ哲学か?

意味不明に思ったのは俺だけではないらしくIssueが出ている

https://github.com/python-poetry/poetry/issues/521

opened this issue on 19 Oct 2018 · 18 comments

2年前ですよ2年前!

Issue700個も溜まってます

ちゃんメンテしてるぅ?

pipenvもアレだったけどpoetryもアレだな

もう少しマシな奴が欲しい

2020-10-14

https://anond.hatelabo.jp/20201014120509

話を戻すと「左で当然」みたいなカルチャーは、後から入ってきた、どうしようもないブクマカが作っていいて。

ISDN時代を知っている人からすれば、そもそも hatena というのは、そういうサイトではなく。

昔と違って今のトップページは、とうとうカラッポなっちゃった

https://www.hatena.ne.jp/

hatenaウンコを集めてPVを稼ぐ、ヤフコメNAVER路線になったのが残念。

https://anond.hatelabo.jp/20201014063925

なんだかね、「hatenaやってれる人なら、左で当然」という風潮になってるのが不思議だよ。

hatenaも、はてなブックマークが無かったころは、CSSについて語るような技術サイトだったのに。

perlのすごい人、naoyaさんとかいたもんね。

はてブ増田ができてからは、殺人犯も生まれるような、次の2ちゃんねるになってる。

2020-10-11

エンドツーエンド暗号化(通称: E2E)について解説する

[B! セキュリティ] フェイスブックの暗号化、日米英などが見直し要求へ (写真=AP) 日本経済新聞

エンドツーエンド暗号化という技術がある。

暗号とは

平文一定アルゴリズムに従って暗号から生成したノイズデータを掛け合わせ、意味が読み取れない暗号を作るのが暗号化である。逆に意味が取れない暗号から平文を求める操作復号と呼ぶ。アルゴリズムがよく知られていながら暗号鍵が無ければ復号できないものがよい暗号と言われる。一般には256bitAESでも使っておけばまずパッと見ても聞いても数学的にもほぼ乱数区別できなくなる。

ノイズデータの生成方法には色々あり、事前に送り付けた乱数表を使い使用後は破棄するもの、事前に送り付けた共通鍵や公開鍵を使うもの、都度生成するものなどがある。掛け合わせる方法も色々あり、乱数表に書いてある数字暗号文を足し合わせると平文になるもの共通鍵を暗号文に使うと平文になるもの公開鍵を使うと平文になるものなどがある。

共通鍵を平文に使うと暗号文になり、共通鍵を暗号文に使うと平文になるものを、対称暗号とか共通暗号と呼ぶ。

公開鍵を平文に使うと暗号文になり、暗号文に秘密鍵を使うと平文になるもの公開鍵暗号と呼ぶ。非対称暗号ともいう。

ノーマルモードコモンモードみたいで意味不明だが耐えろ。

共通暗号でも公開鍵暗号でも「平文が、暗号文になり、平文に戻る」というところは同じだが、

共通鍵では「平文→   鍵→暗号文→鍵   →平文」と同じ鍵を使い、

公開鍵では「平文→ 公開鍵暗号文→秘密鍵 →平文」と二種類の鍵を順に使う。

なお、この二種類の鍵は順に使えば順序はどっちでも良い。先に秘密鍵で処理して公開鍵で処理することも可能だ。とにかく2種類両方を使えば良い。

共通暗号は分かりやすい。zipパスみたいなもんだ。Wi-Fiパスワードも同じだ。だが公開鍵暗号については、二種類の鍵を順番に使うと何が良いのかと思う人も多いだろう。どうせ暗号で読めないのだからいいじゃないかと思うだろう。実は名前の通り鍵を公開しても全くノーダメージというところがメリットなのだ。書かなかったが公開鍵から秘密鍵数学的に求めることは不可能である。逆も不可能である。そして処理する順番もどっちでもいい。つまり適当暗号文と鍵の片割れを公開しておくことで、もう片割れの所有を証明できるである。これが公開鍵暗号醍醐味である

この技術HTTPS証明書に使われている。というかすべての公開鍵基盤で使われている。.pemとか.cerとかid_rsa.pubはこの片割れであり、ウェブブラウザの「証明書の検証」とは、ネットを見てる時にサーバが送ってくる「適当暗号文」として"*.hatena.ne.jp"のハッシュを知らん鍵で暗号化したものハッシュを知らん鍵で暗号化したものハッシュ暗号化したものに対して、事前にWindowsインストールした時に付いてきたHatena-Masuda Ultra Global Root CAかいったけったいな鍵の片割れを使ってみてちゃんと復号出来てるかチェックしているのである

ここまでが暗号技術のおさらいである。

暗号化通信とは

暗号化通信を行うには、暗号鍵でデータ暗号化すればいい。暗号化には共通暗号を使うのが高速で便利だ。公開鍵暗号原理的に計算量が多く低速であるしかし、どうやって共通鍵を事前に知らせればいい? 公開鍵暗号共通鍵を暗号化すれば、受け取り手自分秘密鍵で復号できるだろう。しかし、秘密鍵は本当に秘密か? 暗号文と秘密鍵が手に入れば、公開鍵暗号でも解読できてしまうのではないか? HTTPS化しているウェブサービスでも、TLSロードバランサで終端してデータセンタ内は平文だったりするのではないか? そこで鍵交換、セッション鍵生成の議論が登場する。

Diffie-Hellman-Merkle鍵交換方式

Diffie-Hellman-Merkle(Diffie-Hellman)鍵交換方式とは、ディッフィー君とヘルマン君が下宿階段をドタドタやってる時に天啓のように降ってきたと言われる、ネット上に数字のものを公開することなく、2者間で同じ1つの乱数を得る方法である

送信者と受信者の間で共通の1つの乱数を得ることができ、その乱数第三者に知られることがない。

上で何度か「公開鍵暗号秘密鍵公開鍵は、平文に対して両方使えば平文に戻り、順序は関係ない」と書いたのを覚えているだろうか。Diffie-Hellmanはこれに似た方式だ。まず、AさんとBさんは送信者がお互い本人であることを証明できるようにする(公開鍵基盤を使う)。そして、それぞれ手元で乱数AとBを生成する。次に、鍵用の乱数Aを適当乱数暗号化した鍵Aと、鍵用の乱数Bを適当乱数暗号化した鍵Bを計算し、お互いに送り付ける。この暗号Aと暗号Bは盗聴されているものとする。

Aさんの手元には乱数A、適当暗号Bがある。

Bさんの手元には乱数B、適当暗号Aがある。

AさんとBさんはそれぞれ鍵Bと鍵Aに対して暗号化を行う。すると鍵BAと鍵ABが生まれる。このとき数学的な都合により鍵BA == 鍵ABである

では、暗号A、暗号B、適当A、適当Bのみから鍵ABや乱数Aを求めることはできないのか? 可能だが式変形などで「解く」ことができず、総当たりになるため計算量が膨大になる。従って実質的にはできない。

或は、暗号A、暗号Bを掛け合わせれば、鍵ABになるのではないか? これもできない。暗号AまたはBと掛け合わせるのは生の乱数AまたはBでなければ意味がない。第三者乱数Cを作って暗号AやBと掛け合わせても、鍵ACや鍵BCになってしまい、鍵ABと一致しない。

これにより、手元で生成した乱数以外のすべての情報が公開で既知で盗聴されているにもかかわらず、2者間で秘密暗号鍵用乱数を得ることができる。

原始的Diffie-Hellman鍵交換の実際の計算は非常に簡単であり、この「暗号化」は事前に決めた別の方法で生成する既知の2つの整数X, Yと乱数A, Bに対して、

暗号A = XをA乗してYで割った余り、

暗号B = XをB乗してYで割った余り、

鍵AB = 暗号BをA乗してYで割った余り、

BA = 暗号AをB乗してYで割った余り

である

なお、くれぐれも簡単と聞いてPython 2.7とかで実装しようとしないように。算数の上手い人が作ったライブラリを使え。暗号処理の自作絶対バグらせて割られるのがオチだ。ちなみにDiffie-Hellman-Merkleの三人目のマークル氏というのは両名と何のゆかりもないので普通名前に入れないのだが、Merkle氏の先行研究が直接の元ネタなので入れるべきだと主張する派閥もある。俺はどっちでもいいと思うが折角なので入れておく。

End-to-End(E2E) 暗号化

ここでやっとE2E暗号化が登場する。上のセクションでしれっと書いたが、DH鍵交換が完了した時に送信者と受信者が得る共通乱数は、各々ローカルで都度生成する乱数を元にしている。身許保証公開鍵によるが、鍵は公開鍵に縛られないのだ。つまりSNSメールサーバその他、身許を保証する機能文章をやり取りする機能があるツールと、そのツールで間違いなく本人にDH鍵交換の暗号を送れるクライアントアプリがあれば、その経路で本人同士の間だけで共通乱数を生成し、それを「セッション鍵」として共通暗号方式による通信経路が設定できる。

この「公開鍵認証基盤で本人確認し、DH鍵交換でセッション鍵を設定し、鍵を端末に出し入れすることなく、受信側端末のメモリに入るまで暗号化を解くこともないまま、共通暗号通信する」のがいわゆる「End-to-End 暗号化である

E2E暗号化を行うと、鍵はDH鍵交換で生成され、端末の外に出ないし書き出す必要もなく、通信の中で割り出す事もできず、通信が終われば破棄してもよい。好きなだけ定期再生成してもよい。認証に使う公開鍵数学的な関係もない。一度設定してしまえば、SNS運営チャットログを出させても鍵交換した意味不明な履歴意味不明な暗号文が出てくるのみで、盗聴者をなりすまさせて鍵を再設定させても前の鍵と何も関係のない新しい鍵が出てくるだけで、意味不明な暗号文の解読の助けにはならない。ちょっと量子コンピュータめいているが、端末となりすましの両方で鍵を一致させることもできない。

ざっくり言えば送信側端末と受信側端末に残っている平文か鍵をバレる前にぶっこ抜く以外に解読方法がない。

これは盗聴関係者にとって非常に大きな問題で、米国FBIなどは盗聴能力を維持するには法規制以外に策がないと考えている。DH鍵交換のアルゴリズムは上に書いた剰余以外にも楕円曲線を用いた数学的に更に複雑なものもあり、ソースネットいくらでも転がっているし、電子計算機アルゴリズムの常でやたら強力な癖に計算量的には全然負担にならない。NSAなどは数学者を揃えて最高のアルゴリズム提供する振りをして、規格書で事前に決めた一定数学的特徴を備えているべき定数に備えていないもの指定するとか、実装ミスが出やす関数を選ぶなど小細工を入れているが俺は二次関数分からんので詳しいことは知らん。しばしば政府陰謀にキレた若いITキッズが小細工を抜いて差し替えた再実装を公開したりして揉めている。

実際にSNSなどでE2E暗号化実装する上での問題点は、本人確認機種変マルチデバイス嫌がらせ対応がある。まず本人確認コケればMITMは可能だ。E2Eでは鍵を外に出さないのがメリットなので複数端末ログインができず(鍵が変わって別端末で書いたメッセージは解読できなくなる)、運営で常時メッセージ監視できない(したら意味がない)ので嫌がらせ対応が多少困難になる。またMITBというか、改造偽アプリで抜かれる可能性は、まあ、ある。

まとめ

  • 平文を鍵で暗号化するのが暗号である
  • DH鍵交換では、信頼されない通信路を使って2者間で鍵を生成できる。
  • E2E暗号化では、端末上で鍵を都度生成し、その端末以外での復号を防げる。

終わりに

時間もかけてこの程度かもうちょっと短く書けるだろボケ🍆と思ったので投稿する。

2020-10-09

学問価値は役に立つことにある

よく「学問は役に立つことが重要なのではない」などと嘯く人がいるが、これは間違っている。学問価値は役に立つかどうかで決まる。

まあ、大人になる過程でこういう「他人と違うことを言ってみたくなる時期」があるのは、別に悪いことではない。

しかし、高校生大学生1, 2年生ならともかく、もうすぐ社会人になる人や既に就職している人がこういうことを言っているのは恥ずかしいことだ。

実際、プロ研究者なら誰でも知っていることだが、学問世界ではその研究が役に立つかどうかは常に重視される。

自身研究既存研究とどのように関連し、他の研究いかに貢献するかを示すのは、論文を書く際の一般的マナーである。他にも、研究予算申請大学教員採用などのあらゆる場面で、「役に立つか」は重視される。

大学などの研究機関や国は別にボランティア教員採用したり予算を出しているわけではないのだから、これは当然のことである

たとえば、以下のPythonスクリプトを実行すれば、1億個の定理証明した数学論文が作れるが、それを投稿しても受理してくれる学術誌はひとつも無いだろう。学問的に何の価値も無い、つまり役に立たないからだ。

[print(f'{n} · {m} = {n * m}') for n in range(1, 10001) for m in range(1, 10001)]

要するに、研究者はこういうクズ論文ではないきちんとした研究をする必要があるし、その研究価値がある、つまり役に立つことを必ずしも専門家とは限らない人に示さなくてはならない。

これが学問世界の正しい常識である

2020-10-02

てか、なんでハイク殺したんだろうなHatena

anond:20201001230933

botスパムほぼほぼ放置してたんだから手間かかってなかったと思うんだけどな。

2020-09-22

不正アクセスユーザートップ20公開!

467 admin

238 pi

119 oracle

102 user

86 test

69

62 postgres

60 guest

57 ubnt

47 support

42 nagios

42 ftpuser

32 ftp

29 git

28 cablecom

26 user1

25 deploy

24 teamspea

24 osmc

24 Administ

ftp よりも ftpuser のほうがアクセスいのちょっとおもしろ

pi が2位なのもラズパイ人気とかが反映してて面白いNE

git ユーザーは弊社プロダクトにありますわ。流石にパスワードではアクセスできないけども。

deploy も居そうー

admin 堂々の1位。正直 admin っていうユーザーのあるシステムたこと無い。確かにわざわざ admin ユーザー運営しているサーバーセキュリティ低そう

scott は 4 アクセスしかなくて圏外でした。

lastb --file btmp --file btmp.1 | cut -d " " -f 1 | sort | uniq -c | sort -nr -k 1

2020-09-01

はてブログインできないんだが?

ログイン画面で

www.hatena.ne.jp ページが見つかりません

とか出てくるんだが?

2020-08-16

人間の脳に乗算回路はあるのか

割り算ができない専業主婦

計算できない人多いよね。ただ今まで会った計算できない人はかわりに文系能力が突出してたなあ。私は九九暗記してなくて毎回暗算してる。特に不便はない。まあ増田もなんか一つ位苦手なことあるんだろうしいいじゃん2020/08/16 08:20

九九暗記してなくて毎回暗算してるとはどういうことだろうか

3x3 だったら 頭の中で 3+3+3 を実行しているということだろうか

人間の脳に 3x3=9 を直接算出する回路は無い気がする

少なくとも自分の脳はそうだ

2020-08-14

anond:20191230095754

2020-08-14 "テイルズオブサイゼリヤ" 約 822 件 (0.23 秒)

ブコメにあったが、 2020-08-14 の 17 時位には About 14,200 results (0.26 seconds) だった。

不思議に思って -site:hatena.ne.jp -site:hatelabo.jp したら 5,140 results まで減った。はてな情報を拾っているだけのサイトも除いたらもっと減りそう。

検索汚染 ... 絨毯 SEO ....

ログイン ユーザー登録
ようこそ ゲスト さん