はてなキーワード: パスワードとは
amazon.co.jp から2段階認証の SMS がきた。 0032064050 っていう正規のログインのときにも来る電話番号から。
Amazonコード:000000。心当たりがない場合はこちらから拒否: https://amazon.co.jp/z/xxxxxxxxxxxx
これ自体は本当にAmazonが出してるメッセージっぽいので、不正ログインされた?と思って調べてみた。
実験してみたらこのメッセージはパスワードが漏れていなくても、メアドか電話番号をパスワードリセットの画面で入力するだけで届くっぽい。現代人でメアドが漏れてない人はいないし、電話番号は総当たりでもアタックできるからそれをやったやつがいたんだろう。
私はその夜静かに関西国際空港に降り立った。携帯のSIMをカウンターと自販機でひとつずつ買い、空港内の一時預かり所ですぐに荷物を預け、翌日の午後遅くに取りに来る旨を伝えた。小さな鞄には電子機器が四つ入っている。身につけるものは、バッテリーを取り外しておいたSIMなし格安携帯(数日前に買ったばかりだ)とポーチひとつ。対岸の小さな町に飛び込みで宿をとることした。電車の降客は私と2、3人。地元の人間が見れば、私は関西人ではないとすぐ分かる顔をしている。うろうろしていると、早速「お出迎え」の車がメインストリートから細い路地へとわざわざ鋭角にターンして尾行してきたので、物陰に隠れる。目星をつけたホテルの前の駐車場には見張りの車が停車していたので、知らないふりをして行きすぎる。初めての町だが、行き当たりばったりに歩き回った挙句、駅から離れた場所に客のいない静かなバーを見つけ、ウィスキーを飲んで時間を潰す。
日付が変わる少し前にバーを出、宿のあるらしい方角へ歩く。宿に入ろうとした時、住宅街の十字路の向こうから、ボックスカーが一台、なにかを探しているかのように徐行してやってきて、止まった。生垣のそばに隠れたつもりなのだが、どうやらライトの向こうに見つかってしまったらしい。直進するそぶりだったのが、急に右折して去った。ナンバープレートを私に見られたくないのだ。別の宿を見つけ、この日は終わり、旅の疲れを癒そうとした。
翌朝、時差ぼけと寝不足の目をこすり、今年一番の早起きをして、再び空港に向かう。出張中のビジネスマン風の顔をして、通学中の小学生の後ろを歩く。預けた荷物を受け取り鉄道駅に向かおうと、空港ビルの吹き抜けの上階をふと見ると、手すりにもたれた男が下を見て何か携帯で指図をしていた。見張りだ。電車に乗り、念のため、中から隣の車両に移動した。すると、ひとりの男が目についた。まだ若さがかすかに残る、アメリカ人と思われ、こざっぱりした軽装で、イヤホンをつけ、手元の携帯を見ている。荷物はない。空港ホテルに泊まって文字通り手ぶらで観光に行く外国人はそうそういないだろう。この男は見張りの仲間と考えて差し支えない。おそらく携帯はグループ通話モードになっており、イヤホンから指図が流れるのだ。じっと見ていると、男は気まずそうに少し下を向いた。元の車両に引き返し、男から見えないことを確認する。予告は受けていたが、「今度のチーム」は手際がいい。これは逃げられないと思った。私はロンドンからの帰途アジア系の航空機で上海を経由したのだが、上海で乗り込んで来た20代のアメリカ人の男が私を見てニヤリとして着席したのを思い出した。
降車予定のいくつか前の駅に停車中に、ポケットの携帯が鳴った(機内モード)。私はここで降りることを迷っており、それを見透かされたかのように思い動悸がしたのだが、実は九時にセットしたタイマーだった。電車のドアが閉まる瞬間にホームへ身を投げ、私のせいでドアが再度開かなかったこと、および、隣の車両の男が降りなかったことを確認し、駅を出て停車中のタクシーに乗り込んだ。
「ヨドバシカメラへお願いします」先に着いたアメリカ人の男やその仲間がXY筋(どこだったのだろう?)を追尾する手筈は万全だろうと思ったが、仕方ない。タイミングよく開店と同時にヨドバシカメラに入り、入り口付近に電子機器の入った鞄を置いて、新しい携帯を買った。見上げると、レジの上の防犯カメラが意地の悪い目つきでこちらを見ていた。電源を切ってあるが、新携帯の設定を完了しないと機内モードにできないはずだ。警備員に見つかるかと思ったが、入り口に置いた鞄は盗まれず、日本は治安がいい。
大阪駅からP駅まで電車に乗る。P駅で電子機器を裸でロッカーに預ける。バスで役所の近くまで行く。降りると、大通りの路肩に車が止まり、私が近づくと発進した。役所の小さな駐車スペースにも見張りと思われる車がいた。海外勤務を終え、帰国手続きに本籍地発行の戸籍抄本が要るのは周知のことだと思う。
私は長期滞在のホテルを必死に探したのだが、残念ながらどれも予約で埋まっていた。仕方なく、この日の宿をオンラインで予約した(ウォークインで空きを尋ねるべきだった)。夕方、宿に着くと、部屋から大通りが見下ろせる。通りの両側には停車中の車が何台があり、気になる。例の格安携帯のバッテリーを入れ、しばらく設定をしていると、Bluetoothがオンになっていることに気づいた。先ほどまでオフにしていたにも関わらずだ。さらに、誰かの機器とBluetooth接続されていた。部屋に入った時には空いていた隣の部屋に、誰かいる。壁越しにキーボードを叩く音が微かに聞こえるのだ。「ようこそ日本へ」という訳だ。私はフロントに電話し、部屋を替えてもらった。階も違う。業務用階段の側だ。外の車が気になる。しばらくして、廊下に出たところ、ホテル従業員が業務用階段へと続く扉の向こうに消えるのを見た。客入りの良いこの時間帯に、妙ではないか。私は、ホテル従業員がグルである可能性を考え、ホテルを出ることにした。ロビーでソファに座り次の手を考えていると、20代の背の低いアメリカ人の男が宅配ピザの箱を抱えて外から入って来て、上階に向かった。つまり、「鳥が逃げた」という訳だ。通りに停めた車で見張っていたのだろう。ホテルを出て15mほど歩くと、近くの路肩の白いワンボックスカーが急発進した。私はこの時、2種類の人間に追われていることをまだ知らない。タクシーで警察署に向かう時、外国人の運転する高級車が二つ隣の車線にいるのを見た。
繁華街をぶらぶらして、カフェのテラス席で休憩したところ、側道から若い日本人の男の運転する車が目と鼻の先で停車した。通りに出るつもりはないらしい。私はこのときそのナンバープレートを新しい携帯で写真に撮ったのだが、交番で写真を警官に見せると、その写真は「画像が歪んで」番号が読めなかった。新しい携帯が、早速ダメになったのだ。
色々気にしても仕方がないので、適当な店に入り、久々の海鮮を楽しむことにした(中略)。ただし、押し入られて身の危険がないとも言えないので、他の客が引けたとき、すぐに出た。断言できるが、ほろ酔い未満だ。料理には満足した。
少し物足りなかったので、大通りから中に入ったところをほっつき歩いて、飲める店を見つけた。途中、誰かを探しているらしい様子のワンボックスカーを見つけた。カウンターで飲んでいい気分になった頃、一台の車が店の前で急に止まった。動かない。外は狭い一方通行の道で、しかも店の前を塞ぐように止まる車はタクシー以外通常ないはずだ。タクシーより車高が高い。これはまずい。逃げ場はない。私は、格安携帯の緊急通報ボタンを押した。すると、車は発進した。
携帯で調べるわけにもいかないので、酔い覚ましに、歩いて終夜営業のファミレスを探した。結局、マクドナルドに落ち着いた。この夜、私は初めて、なぜこのような不思議な目に自分が遭っているのかを知った。マクドナルドのwifiは無料で利用できるはずだが、「パスワード入力」を求められる。なぜか電波の入りが悪い。2階に上がる。どうやら、無料wifiを使わせまいとする勢力と、それを解除しようとする勢力が、電子的に腕相撲をやっているらしい。私は後者の「手助け」をしようとした。結局、早朝になってもwifiが使えることはなかった。
早朝、忠告に従い、急いで店を出る。危ないのだ。タクシーで向かう。預けた電子機器を回収しようと駅で待っていてもらった。ところが、引き出せない。預けたロッカーの番号を電子的に認証して鍵が開くのだが、「その番号が選択肢として存在しないため選べない」。どうやら、私の預けた荷物だけが引き出せないように電子的に操作されているらしい。見ると、他のロッカーは全て空だ。
あきらめて、コネのある長期滞在用のホテルにタクシーで向かう。
遠距離だ。
価格は調べたり当時から改定されていて記憶だったりいい加減です
280blocker (¥900 / 年) → AdGuard (¥4000円? / 年) → NextDNS (¥2,500 / 年) → ControlD ($40 / 年) → blocky
280blocker は企業に買われてからなんとなく使うのをやめてしまった
NextDNS は日本系のフィルタが弱く更新頻度も低い印象だったのでやめた
ControlD はよかったけどちょっと高かったのでやめた
今は VPS に blocky デプロイして家族で共有している。blocky はAdAway 記法のフィルタは使えないけどおおむね満足している。AdGuard Home を使用していた時期もあったが、重くて常用できなかった
1Password ($59? / 年) → iCloud+ (¥150 / 月) → Vaultwarden
iCloud+ は家族との共有ができないため不便が多くなり代替を検討
今は VPS に Vaultwarden デプロイして家族で共有している。今のところ満足している
ChatGPT ($20 / 月) → Gemini、Claude
ChatGPT は出始めは未来を感じ課金してガンガン使っていたが、GPT-4 の出来がいまいちに感じて他に乗り換えた
日常のあれこれは Gemini を使い、コード関係は Claude のほうがいい感じの答えが返ってくるので使い分けている
Google Photo (¥3500 / 年) → おもいでばこ → Synology NAS
Google Photo 無料時代に膨大な写真を放り込んでしまったため、有料化が発表されてから脱出するまでに時間がかかった
継続課金は嫌だったのでバッファローのおもいでばこを買ったが、アップロードした写真の日付がなぜか認識されないことが多く使い物にならなかった
Synology NAS についている Synology Photos はそんなことはなく今はこれを使用
Immich とかに乗り換えてもいいかと思うこともあるが、サポート (モバイルアプリなど) の面も考えると OSS に全部まかせるのも怖いなと思ってそのまま
Apple Music → Spotify → YouTube Music (YouTube Premium)
Apple Music がアーティストへの分配金が多いと聞いたためそれを使っていたが、Apple に端末代も出してサブスクでも課金してと金払いすぎではと冷静になり乗り換えを検討
Spotify に乗り換えたが、数年使っても新しい体験がまったく感じられないので失望して解約
今は YouTube Premium に付帯している YouTube Music を使っている。UX は過去使ってきたサービスの中でも最悪だと感じるが、音楽サブスクに金払うよりかは一回でもライブに行ったほうがいいかと割り切っている
Fastmail → NameCheap Private Email → mioセーフティメール
Fastmail は使いやすかったのだが、価格がちょっと負担になってしまい解約
NameCheap は買ってたドメインの管理してたついでに安かったので契約していたが、ドメインのトランスファーに伴い解約
mio セーフティメールは機能はスマートフォンへのプッシュとかは無く必要最低限って感じだけど、よく考えたらプッシュ来てもうざいだけだし値段なりのサービスかなと満足している
住信 SBI ネット銀行プラチナデビット (¥11,000 / 年) → 解約のみ
メインバンクだったこともあり、数年前からモバイル端末保険目当てでついでに加入していた
d NEOBANK になってしまいスマートプラグラムの改悪も発表され、見切りをつけてメインバンクを切り替え、それに伴い解約した
モバイル端末保険は結局一度も使わなかったのだが、これに関して代替が見つかっていないためどうしようかと考えているところ
(年間一万円程度なら、昨今のスマートフォン価格を考えると十年に一回程度の利用でも元が取れそうなため)
Zaim → 家族で銀行口座残高を共有したいニーズがあり (支出を家族デビットカードにまとめているため)、手軽かつ安くあげられるサービスが他に見つからない。Zaim 自体はもう創業者の方が関わっていないらしく、プロダクトとして今後新しい驚きはなさそうなのでできれば課金したくない気持ちがあるのだが
U-NEXT → 映像サブスクは大人の暇つぶしだったり子供のテレビ需要だったりで無いと困る場面が多い。y.u mobile 契約がありポイントで最新作もみられるので他は契約せずこれにしている
後半価格書くの面倒になった
昔よりは支出減らせてるかな
プログラミングとは、勉強も運動もスマブラも下手なクソ隠キャ中学生が「俺もパソコン1台で凄い技術者になって…!」とワクワクしながら始めるものの思ったより普通に難しいし学校の試験で出たような知識要求されるしで3日で放り投げ、10数年後にnoteで「お前らは絶望的にプログラミングに向いてないからやめろ」なんて記事を書くだけのザコに成り下がる、夢と希望に溢れた技術である。
近年ではパソコンのスペックの上昇にともないできることも増え、どこのご家庭にもあるRTX2080で簡単にディープラーニングもできるようになった。Unityで3Dゲームをバリバリ動かしてもブルースクリーンは出ない。やっぱ世界を広げるのは小賢しい知恵よりもスペックの暴力だぜ。
開発環境や言語も選択肢豊富で、エディタもかつては有料クラスでも手に入らなかったような贅沢な機能が満載のものが出回っている。Eclipseとか今考えるとよくあんなので開発できてたな。
いまや小学生からおばあちゃんまでアプリ作りに熱中し、高校生はIoTとかやり始め、大学生は商業レベルか?ってレベルのものをネットで発表し、私はウェブアプリのスマホでのレイアウト崩れひとつすら直せず静かにエディタを閉じてnoteで過激タイトル記事を書いている。
掛け算に順序があると思っているような知能の下級雑用係(自分のことを教育専門職だと思い込んでいる)ですら「小学生にプログラミングを教えるぞ!」と意気込んでいる。やめろ。お前らには無理だ。無理だからマジでやめろ。考え直せ。無理だって。掛け算に順序つけないと相手に教えられないレベルのやつがプログラミング教えるのマジで無理だって。算数とは次元が違うって。「ピーチ姫いつも簡単に誘拐できるし今度はベヨネッタも誘拐してみるか」ぐらいの無謀さだって。やめとけ。マジでやめろ。
まあそんなこんなで入り口はめちゃくちゃ広く、入門するのはマリオカートより簡単である。話逸れるけどSwitchのマリオカート、運転アシスト機能ついて初心者でもコース完走できるようになったから心折れちゃった人ももう一度チャレンジしてみてね。
それとは特に関係ないんだけど、大学行ってた時ティーチングアシスタント(TA)っていう授業のお手伝いさせられたのよね。ちゃんとお金出るやつ。
学部の3年か4年から始まって、院の1年か2年までやってて、途中で休学挟んだから、ええと、あー、うん、数年間TAやってたんよ。数学とプログラミングのコマ。CとOctaveとかいうやつ。Cのほうは情報学科で、Octaveは違う学科。JavaとかC++のコマはTA入れさせてもらえなかった。
プログラミングの実習は週2コマ(連続)あって、情報学科なら必修科目。なのでサポートは相当手厚く、先生とTAが絶え間なく机間巡視し、わからないことがあればセンパイがなんでも答えてくれるというわけだ。授業外でもサポートはしており、わからなければ先生や研究室にいる学生に好きなだけ聞きにいっても良いということになっていた。必修だから落とされたら困るしな。
2コマだから3時間 * 15回で、45時間。そして私の時は2年まででC/C++/Javaと必修だった(今はなんの言語かは知らない)ので、その3倍、135時間は最低やることになる。プログラミング実習以外にもプログラミング触る授業多いから実際はもっと多い。宿題やる時間もあるので実際はもっともっと長くプログラミングに触れることになる。卒論書く時期に入ると、テーマによっては書く人はさらに書くので、もっともっともっともっと長い。
これだけ時間をかければほとんどの人がプログラミングできるように……ならない。むしろできない人の方が多い。なんで。why。教えて。
会社になるとさすがにプログラミングできるできないは死活問題である。
「今日から入ったxxでーす。業界未経験ですがよろしくおねがしまーす。さっそくなんですけどPythonのここわかんないんですけどどうすれば……あっそうすればいいんですね。次はここなんですけど……なるほど!ありがとうございます。じゃあまた明日ー」
いやー社会人にもなると熱意が違うね。学生なんかわかんなくてもほとんど聞きに来ないのにな。こりゃガンガン伸びますわ。私も社会人1年生でPythonなんて3秒ぐらいしか触ったことないから適当答えてるけど。
「ちょっとお時間よろしいですか?」「いやちょっと今忙しいから後になっちゃいますわ。すんません……」
そんなこんなで1週間ぐらい放置してしまった。やべー絶対嫌われる。どこまで進んだかな……?えっまだそこ?進んでなくない?
もしかしてこれ全部教えないとダメなやつか。そりゃ大学4年間プログラミングやったやつでもプログラミングできないんだから、そうか。よく考えると当たり前だよな。
プログラミングをやめろ
大学4年間と大学院2年間プログラミングやったやつでもできないし、会社で毎日8時間を数週間プログラミングについやしてもできないやつはできないし、そもそも人類というのはプログラミングできない可能性がある。
少年少女たちに「プログラミングはいいぞ!自由にものが作れて達成感がある!頭が良くなった気分にもなれるし!」と吹聴してまわんのもいいけど、6年間情報科学について勉強したようなやつの大半がプログラミングできないんですよ。それもごくごく初歩的な部分。
野球とかサッカーなら、まあ友達との試合には参加できなくてもごく稀にバットにボールを当てたり、ボールを1回あらぬ方向に蹴ったり、ぶっちゃけ周りとのレベル差で楽しくなくてすぐやめちゃうだろうけど、なんとか基礎の一部ぐらいはできるじゃないですか。
ピアノとかダンスでも、猫踏んじゃったをごくごくゆっくり弾くぐらいはできるかもしんないし、学芸会の振り付けを10秒ぐらいは踊れたりできるかもしれない。その後やっぱ周りのレベル見て諦めちゃうかもしんないけどさ。
プログラミング、6年やってミットを頭にかぶってるバッターとか、鍵盤蓋の上から殴って音鳴らそうとするやつとか、まずそういうレベルのやつが大量発生するんですよ。だいたい7割ぐらいの率。どうすんだよこいつら。私の教育の問題か?マジで?本当に?
プロが練って考えて凝縮した本や授業、センパイたちによる指導。それらを結集して得られるはずのものが7割ぐらいどっかに消し飛んでる。無駄だろこれ。
今からプログラミングやろうとしてるやつ、お前は確実に向いてないからさっさと諦めて刺身にタンポポ乗せる仕事に戻ってくれ。参加しても鍵盤蓋叩き割るやつと同じ病室に入るだけだ。
プログラミングをやめろ。
ぼくはこう思うんですよ
そもそもなんで大の大人がそんな両手にバット持ってセカンドに立ったりゴールの方をボールのところまで動かす奇行に走るんだろうな。わかんねえや。
綺麗な分析はできないけど、いわゆる「できない」やつが共通して言ってたフレーズがある。
「ぼくはxxxだと思ってるんですけど、動かないんですよ」
うん、そうだね。そう思うんだ。でも動いてないじゃん。じゃあ違うんじゃない?モニターに「にらみつける」やってもバグは取れないし防御力下がるだけだぞ。
まず根本的に考えと事実が違ってるって結果出てるじゃん。じゃあもう考え変えちゃえば早くない?
名言の引用は好きではないけど、「プログラムは思った通りには動かない。書いた通りに動く」って言葉がある。実に名言だと思う。次点で好きなのが「ある問題を解決しようと正規表現を使うと問題が2つに増える」かな。
お前が何を思っているかはプログラミングにおいて一切影響しないんだよ。お前が何を書いて、コンピュータがどう処理したか、それが全て。
深く考えないことについてぎゃーぎゃーいうやつもいるけどプログラムなんてまず最初は動けばいいんだから何も考えずに次試せばいいだろ。んで3回ぐらいは自分で思い浮かんだの試して、全部ダメだったら調べるとか先生に聞いてみるとかさ。逆に1発で通ったら自分の思考見直して理解深めるとかさ。
ドキュメントとかあんまり理解できない初心者のうちは、とにかくお試しと修正のサイクル回すの重要で、「これがこうだから動くはず」というカードを3種類ぐらい作って全部片っ端から試すのが早いと思うよ。モニターをにらみつけるな。
お前がどう思ってるかよりも、まずはお前の書いたプログラムがどう動いているか(どう動いていないか)を確認するのが先だ。動かなかったら考えが違う、はい次のプラン、はいその次のプラン、はい次。
この「ぼくはこう思ってる」が出てくるの、なんの教育の成果なんだろうね。お前の気持ちなんてどうでもいいって現国でも数学で散々教えられただろ。
Error: variable 'a' is undefined, line 24
↑のエラーは架空のエラー文(英語下手でも許して)だけど、エラー、出るよね。プログラム組んでたら。んでやっぱいるのよ。エラーを「にらみつける」やつ。解決しねえって言ってんだろ。
「エラー出たんですけど、どうすればいいんですか」
「エラーにはプログラムがなぜコンパイル通らないかの原因がそのまま書かれている。例えば今出ているError: variable 'a' is undefined, line 24は、24行目の変数aが未定義ということを示している。事前に変数aを定義していないか、打ち間違えてsになっているとかではないのかな?」
だいたいが「腑に落ちねぇー」みたいな顔する。まあ、一気に喋りすぎたしな。疑問点1個1個潰していくか。
「何か疑問点ありそう?変数ってなにー、とか、定義ってなにー、とか」「ないです。わかりました!」
わかったのか。よかった。またモニターをにらみつける開始。なんでだよ!!!!「お前顔にチョコついてるぞ」って言われたらチョコ拭き取るだろ。変数aが未定義ですねって言われたら変数a定義すりゃいいだろ。
でもプログラミングド下手なやつ(全人類の7割ぐらい)は、エラーをにらみつけてる。ずっとにらみつけてる。防御力下限まで下がったかな。にらみつけてて何が変わるんだよ。
「英語読めなくて……」
いや「a is undefined」なんて「He is Superman」ぐらいの英語だろなんで読めないんだよ。お前この大学どうやって入ったんだよ。たしかどの入試方式でも英語あっただろ。単語わからんかったらググれ。
「aが未定義って書いてあるんですけど、ここのfor文の私の考えが間違ってるのでしょうか」
いや24行目のaって書いてるだろ。まずなんでそこ無視するんだよ。お前がfor文で使ってんの教科書通りのiだろ。24行目ってわかるか?for文あるの40行目あたりだよな?aとiが違う文字ってわかるか?
「さっきのエラー直したら新しいエラーが出たんですけど、どうすればいいですか」
千尋!贅沢な名だねえ
変数に名前をつけろ。関数に名前をつけろ。クラスに名前をつけろ。全てに名前をつけろ。
C言語の古い教科書だと「a」とか「b」とか「i」とかで書いてるけど、そんなの人間が読めるわけねえだろ。冷静に考えろ。「input」「output」「index」とかにしとけ。
2重for文の変数名i, jにしたら絶対途中で打ち間違えるだろ。お前は打ち間違える。そういうやつだ。2重ループなんてどうせ行列計算の課題だろ。rowとcolumnにしとけ。これで打ち間違っても気づくし、それぞれに意味が付いてくる。
ちなみに同じ長い名前にも優劣がある。「result」よりも「sum」のほうが強い。「result」はなんの結果かわからない(全ては結果であるので)が「sum」は合計値であることがわかるからだ。「password」と「plainPassword」なら「plainPassword」が勝つ。暗号化されていないパスワードであることがわかるので、情報量が多いからだ。
ただし例外はいくつかある。「tmp」は一時変数であることが(プログラマにとって)明らかだ。「dir」はディレクトリであることがわかる。「src」「dist」あたりもよく使われる。このあたりは短くていいんじゃねーかな。
でも、この前温度センサ扱うプロジェクトで「tmp」って変数名使って温度(temperature)と脳内で混線してバグって発狂してた同僚いたけど。そういうときは名前長くするか別の名前使おうな。
関数の名前なんて「calcAverageFromArray」ぐらい長くしていいから。「myFunc」とかしなくていいから。「fetchJsonDataFromUniversityInternalServer」とかでいいから。マジで。いやこれ本当に。
そもそも今時ディスプレイでかいし、識別子なんて先頭数文字打ったらエディタが補完してくれるし、短くするメリットがない。
それでも名前が長いと感じる?関数がでかすぎるんじゃないか。細かく処理を分けるとかしてみろ。「combineArrayAndFindMax」関数は「combineArray」と「findMax」に分割したらいいと思うぞ。名前が長いと思っても名前を削るな、機能を分割しろ。自然と名前が短くなる。
それかシンプルでかっこいい名前を見つける。「convertEvilHtmlToPeacefulText」は「sanitize」に置き換えることができる。イカす名前だ。
プログラミングできない奴はマジでこれらのことをやらない。ずっとaとかbとかzとか使ってる。お前それ自分で読めんのか。読めねえだろ。myfuncってなんだよ何するんだよ。お前自分で理解できてんのかそれ。
それでも頑なにaとかbとか使う。なんでだよ。
動作原理わからず書き散らすな。動作原理っつってもそんな深いところじゃなくて言語表面上レベルの動作な。
リテラルは値を作成して、代入は値に名前をつけている、とかその程度のレイヤー。メモリがどうこうとかはいらんと思う。あっでもポインタのときはいるか……。めんどくせえな。
まあ動作原理っていうか自分が何やってんのか理解してくれって程度の話になるんだが。
例えばfor文で処理50回まわすとき、「50回分の処理を行なっている」ではなく「ループ開始時に変数を初期化。条件判定して成立していれば文の中を実行する。条件変数の値を変化させてまた条件判定からやり直す」ぐらいの粒度で捉えててほしいかな、という気持ち。
これはfor文で詰まる人がやたら多かったからだ。彼らはfor文をアトミックな操作だと思っていた。つまりfor文はひとまとまりの命令であり、長いfor文とprintfの間に粒度の違いはないと思っていたらしい。
つまり、「for文の中でエラーが起こる」という事象がほぼ理解できない。forはアトミックであり、内部など見えないのだから。じゃあお前が今書いたfor文の中身はなんなんだってやんわり聞くと「さあ…?」みたいな反応が返ってくる。はあ。
関数についてもなかなか誤解が多かった。関数「sum_array(a, b)」と関数「average_three_numbers(a, b, c)」は全く別の原理で動いているのだと。ここでの「全く別の原理」というのはシグネチャが違うとか実装が異なるとかそういう意味ではなく、コーラを飲んでゲップが出る原理と糸電話で声が伝わる原理ぐらいの全くの別、という意味である。
彼らは関数ひとつひとつについて「新しく原理を学習」していたのだ。マジかよ……。どうやったらそんな発想に行き着くんだろう。そりゃ時間かかるわな。
そのため、関数が値を返す(または返さない)ということも理解できておらず、「関数の戻り値と関数の戻り値を足す」とか「関数の引数に関数の戻り値を直接渡す」とかやりだすと大パニックになる。メソッドチェーンとかやった日には大学潰れると思う。ただ、これはC言語が悪い部分もあると思う。配列とかいじりだすと、初心者が書けるレベルの関数だとあんまり値返さないしな。
たのむ、他のはできなくてもこれはできてほしい。自分が何をやりたいのかは理解してほしい。流石にお前のやりたいことなんて他人にはわからんぞ。
「配列の中の数値の合計値を求めたいんです」とか「名前と身長と体重をひとつにまとめた構造体が作りたいんです」とか。簡単なのでいいから。
「いま何やろうとしてどこで詰まってる?」って聞いても「……?」みたいな反応されたら困るんだよ。
例えば「キーボードから数値を10回入力し、それぞれの値を配列に格納して、最後に配列の値を逆順に表示せよ」みたいな問題が出てきたときに、「キーボードから値を入力する」「10回繰り返す」「配列に値を格納する」「配列の値を逆順に表示する」に分解できると思うんだけど、自分が何やりたいのかわからない奴はまずこれができない。
彼らには「キーボードカラスウチヲジュッカイニュウリョクシソレゾレヲハイレツニニュウリョクシテサイゴニハイレツノアタイヲギャクジュンニヒョウジセヨ」に見えている。
かろうじて「キーボード」「ハイレツ」あたりの単語は拾えるらしく、標準入力から値とったり配列を作ったりはしてるんだけど、そこから先に進まない。モニターにらみつけてる。またにらみつけるかよ。
あれだ、算数の文章題できなくてとにかく文章に出てくる数値足したり引いたりするやつ。あれのプログラミング版。文章が読めない。
こういう人にはメモ用紙取り出して、まず文章が何について言ってるのか、どういう工程に分けることができるのか、今後も同じことが起こったときにどうやって分けるのか。みたいなのを教えるんだけど、大抵あんまりしっくりこないらしく、成功したことは皆無。なんとかうまく教えたいんだが。
もうこのあたりになってくるとプログラミング関係なくね……?ってなるんだけど、意外とそういうプログラミング関係ないところで詰まる人めちゃくちゃ多いよ。
今すぐプログラミングをやめろ
https://b.hatena.ne.jp/entry/s/www.nikkei.com/article/DGXZQOUC205YN0Q5A021C2000000/
dollarss 「20年も前から言ってるのに…使える文字種を増やすより桁1つ増やす方が何万倍も固くなるのにと…。NISTももっと強く事業者に向けて強要してくれよ、ユーザ側はそれを利用するしかないんだからさ。」☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
ASCII印字可能文字94文字だけど、面倒だから128文字(2^7)とするじゃん?
買ったのは2017年の春。ボーナスをもらって、意気消沈してた心を奮い立たせるために、家電量販店のBTOコーナーに足を運んだ。
「ゲーミングPC欲しいんですけど」と店員に言った。すると、その兄ちゃんは、さらさらと何かのカタログをめくりながら、「RTX 1050搭載のやつですと、25万円でこちら。RTX 1060搭載ですと30万円。GTX 1070搭載ですと35万円」と説明してくれた。
値段をちらっと見たが、ボーナスのほぼ全部吹っ飛ぶ金額だ。「ああ、こんなもんなんだ」と思った。
そこで、店員は続けた。「ただ、CPUの内蔵GPU搭載版でしたら、GPUなしでも20万円で、GTX 1050相当くらいの性能が出ますので」と。
「あ、そっちでいいです」と即答した。「どうせゲーム楽しくないし」という思い込みがあった。俺はゲーマーじゃない。スペックなんて気にしない。安い方でいい。そう考えた。
その時、店員は何か言いかけた気がしたが、俺は「納期はいつですか」と聞いて、話を先に進めてしまった。
後になって思い出す。あの時、店員の口元が、微かに動いていた気がする。「あ、でもご注文内容を確認しますと」とか、そういう言葉が出かかってたのかもしれない。
でも、俺は聞かなかった。「内蔵GPU版で」と言ったつもりでいた。店員も、客の意向には逆らわない。営業トークも不要だと判断したのかもしれない。
実は、何が起きたのか。いまだに完全には理解していない。
おそらく、こういうことだったんだろう:
店員が「内蔵GPU搭載版」という言葉を聞いた時、「あ、この客は内蔵GPUの話をしてるな」と理解した。でも、同時にBTOカスタマイズの画面も見てたのかもしれない。「あ、このスペックなら、グラボ付きでも安いな」と思った。そして、何かの間違いか、設定ミスか、あるいは別の理由で、グラボ付きの構成で注文が入ってしまった。
その確認メールが来たはずなんだ。でも、当時の俺は、仕事が忙しかった。メール件名を見て、「PC注文確認」と書いてあるのを見て、「ああ、注文した」と思ってスルーした。内容なんか見ていない。価格もチェックしていない。ただ、「納期:3週間」ということだけを覚えていた。
3週間後、デスクトップPCが到着した。黒いケース。ATXサイズ。けっこう重い。
開けて、とりあえず立ち上げた。Windows 10が起動した。ドライバのインストール画面が出て、「NVIDIA GeForce GTX 1050」とかいう文字が見えたが、俺は「ふーん」くらいの感じで、スキップした。
「内蔵GPU版だし、そんなもんなんだろう」と思ってた。
完全に誤読していた。
Steamでゲームを買った。設定をいじる際に、「グラフィックス設定」というタブがある。「GPU選択」という項目があった。でも、俺は気にしなかった。勝手に選ばれてるんだろう、くらいの感じで。
実は、その時点で、マザーボードの設定で「BIOS起動時のプライマリGPU」が「オンボード」に設定されていたんだ。つまり、GTX 1050があるのに、BIOS レベルで「内蔵GPUを使え」という指定がされていた。
ゲームをやると、すごくもっさりだった。「ゲームってこんなもんなんだ」と思ってた。フレームレート表示を見ると、「25fps」とか「30fps」。カクカクしている。でも、「ゲームをやったことない俺には、この程度が標準なんだろう」と思ってた。
友人が遊びに来た時、「こんなんでゲームやってるの?」と言われた。「え、こんなもんじゃん」と答えた。その時、友人は変な顔をしてた。
「あ、デバイスマネージャーで確認しときなよ」と言われた。デバイスマネージャーを開いた。
「あ、GTX 1050ってのがあるな」と思った。
「それ、グラボじゃん」と友人が言った。
「え、グラボ?」と俺が返した。
……あった。
「ご注文ありがとうございます。以下の構成でお手配させていただきます。CPU:Core i7-7700K、メモリ:16GB、SSD:512GB、GPU:NVIDIA GeForce GTX 1050、電源:500W」
GPS。もちろん、GTXだ。グラフィックスプロセッシングユニット。アルファベット三文字。
8年。8年だ。8年間、俺はこのメールを読んでいなかった。
読んでいたのかもしれない。でも、認識していなかった。「GPU」という言葉が、脳に入ってこなかった。
「Integrated Graphics」という項目を探した。ありました。「Enabled」になってた。
そして、「PCIe Graphics」という項目も見つけた。こっちは「Disabled」になってた。
つまり、この8年間、マザーボードは「内蔵GPUを使え。GTX 1050は使うな」という指定をしていたわけだ。
これはもう、奇蹟としか言いようがない。
BTOショップのカスタマイズ担当者は、なぜこんな設定にしたのか。あるいは、出荷時にこういう設定が入っていたのか。理由は不明だ。
でも、その一瞬の選択(あるいは誤選択)が、俺の8年間を決定した。
フレームレート表示を見た。
「え、150fps?」
設定を最大にしてみた。
「えっ、100fps?」
何が起きたのか分からなかった。でも、分かった。
8年間、俺は内蔵GPUでゲームをやってたんだ。GTX 1050があるのに。
正直なところ、その後、割と虚しい気分になった。
8年間。8年間、俺は「ゲーミングPC、遅い」「ゲーム、難しい」「ゲームに向いてない」と思い込んでいた。
マザーボードの設定ミスなのか、BTOショップの誤設定なのか、あるいは、俺が注文した時点で「内蔵GPU版でお願いします」という意思表示をしていたのに、店員がそれを誤解して、結果的にグラボ付きで発送してしまったのか。真相は不明だ。
でも、その結果、8年間、俺はGTX 1050に無視され続けた。
ゲームはめちゃくちゃ快適だ。フレームレート安定。グラフィック設定も高設定で動く。新作ゲームもそこそこ動く。
なぜか。おそらく、理由はこれだ:
8年間、内蔵GPUで慣れていた。設定を落とす。グラフィック品質を諦める。低いフレームレートに耐える。そういう「制約の中での楽しみ方」を、体が覚えてしまった。
今、快適な環境でゲームをやっても、昔ほどの喜びがない。むしろ、「あ、こんなもんか」という感じで、すぐに飽きる。
逆に、昔やってた「Minecraft」とか「Terraria」とか「Stardew Valley」とか、そういった軽いゲームの方が、今でも楽しい。
心理学的には、これを何て言うんだろう。「獲得した効用よりも、失った効用の方が大きく感じられる」みたいな、何かそういうやつ。
あるいは、単純に、「8年かけて培った習慣」が、3年では変わらない、ということかもしれない。
「もし、あの時、GTX 1050を有効にしていたら」
そうしたら、ゲームにハマってたかもしれない。友人とマルチプレイをやってたかもしれない。ゲーミングコミュニティに入ってたかもしれない。人生が変わってたかもしれない。
でも、そうはならなかった。
8年間、内蔵GPUで、ゲームの世界を限定的に見た。その結果、「ゲームは、こんなもんだ」という認識が形成された。それが、今の俺を形作ってる。
最後に思うのは、人生って、案外、そういう小さなミスの積み重ねで決まるんだなってことだ。
メールを読まなかった。BIOSの設定を変えなかった。GTX 1050を有効にしなかった。
たったそれだけのことで、8年間が変わった。
今、新しいPCを買うことも考えてるが、BIOSの設定だけは、確認することにした。
もう二度と、隠れたGPUを見逃すまい。
あ、でも、設定を変えたからって、俺がゲーマーになるわけじゃない。
相変わらず、ゲームはヘタクソだ。フレームレート100fpsでも、敵にボコボコにされる。
それが、ある意味、救いなのかもしれない。
まず、やりとりが全てコールセンターに集約されてる。最初はそこに電話する以外の選択肢がない。
契約することになって、必要事項がメールで送られてくるという話に。
届いたメールを見ると、専用URLが記載されてて、また別のメールで送られてくるパスワードを入れると入力フォームみたいなのが開く。確認書類のアップロードとかあって、まあこれくらいまでは想定の範囲。
申込みが成立したあと、日程調整が始まるのだけど、これが電話でしかできない。
こちらにかかってくるのだが、日中はなかなか出られず留守電に入ってるので折り返し、コールセンターで担当は別件対応中です、でまた折り返しかかってくる、のループ。
この電話での調整がなかなか大変だったのだけど、なんとか終わった。
ところが後日変更が必要な項目があって、またコールセンターしか窓口がないので折り返しループの再調整。
ようやく話がまとまったと思ったら、先方からこちらへ確認書類を送りたいという。
メールしてくださいと伝えたら「FAXで送ります」とのこと。 ここでFAX???
どうもこのプロセスではメールが使えない決まりのようだった。コールセンターの人を詰めてもしょうがないので、めったに使わないFAX番号を伝える。
そうすると今度は、コールセンターとは別のところからまずテスト用FAXを送って、届いたかの確認電話が入ります、とのこと。
その確認がとれたら、本来送りたいFAXをあらためて送って、また確認電話しますと。
ちょっと面白くなってきて全部わかりましたって言って、結局また電話折り返しループを何度か経由したけど、どうにか手続完了。
セキュリティのためとかそういうことなんだろうけど、ちょっとここまで意味不明な方法なのは初めてでカルチャーショックだった。
自分、独自ドメインのメールアドレスで a@example.com みたいな1文字だけなんですけど、この例で言えば「a をパスワードに含めてはならない」という条件になっちゃって苦労するサイトがある。具体的には Evernote と eBay がそうだった。
とてもよいガイドラインが出ました。
NIST、新しいパスワードガイドライン公開 - これまでの常識を覆す新ルール
https://news.mynavi.jp/techplus/article/20251017-3548825/
早期にこのガイドラインに従うことはサービスのセキュリティを強化し、ユーザーの体験を向上させるはずです。
ですが、こんなガイドラインが出ても(特に日本の企業は)何年も無視することだと思います。
名指しされなきゃ気づかない面もありますしね。
そこで我々増田やブクマカたちが「貴社のことですよ」とお伝えしたく思います。