ブックマーク / qiita.com (61)

  • 美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita

    記事は、技術的な視点から情報を提供することを目的としております。内容については可能な限り正確性を期しておりますが、記事内の見解は執筆者の意見や理解に基づいており、すべての方にとって普遍的な結論を示すものではありません。技術の分野は常に進化し、新たな知見が追加されることもあります。ご意見がある場合には、建設的な対話を歓迎いたしますが、批判的な意見を展開する際も、お互いの尊重を大切にしたコミュニケーションを心がけていただけると幸いです。」 タイトル: 「東京プログラマー リスプを書かずにはいられない物語」 新宿の夜景を見下ろすカフェで、主人公の大輔は、ノートパソコンに向かって静かにキーボードを叩いていた。彼は東京で働くプログラマー。コードの世界に浸り、特に最近夢中になっているのが関数型言語LISPだった。 LISPは、数学のように純粋で美しいロジックが展開できる言語。大輔は「この関数型の世

    美しすぎる。神の言語といわれるLISPは、数学のように純粋で美しいロジックが展開できる言語。オシャレな LISP インタプリタ。 - Qiita
    megumin1
    megumin1 2024/10/29
    コードが末尾再帰(trail recursion)になっていない。マクロに触れていない。この人は、Lispも再帰もLispの真の力も1mmも理解していないエアプです。Lispガチ勢は石を投げたら当たるくらいいるので舐めないほうがいい。
  • 自作 Set ライブラリ提供 : C++ の std::set が残念な件 - Qiita

    はじめに C++ の std::set は素晴らしいライブラリです。自前でこれを実装しようとしてもなかなかここまで速いものは作れないでしょう。 std::set の代替手段として tatyam さんのライブラリが有名ですが、これは std::set がない Python のためのやつなので、Python ユーザー限定です。 Python に順序付き集合がないことはよく話題に上がることなのですが、C++ の順序付き集合である std::set も競プロをする上ではなかなか残念なので、C++ 用の順序付き集合ライブラリを公開すればみなさん嬉しいかもと思い、公開するに至りました。 競技プログラミングにおける活用 std::set にもつけ入る隙があります。 要素アクセスが線形時間 集約や遅延評価が載っていない 値の重複を許さない(これは std::map と併用するなどで解決できますが) これら

    自作 Set ライブラリ提供 : C++ の std::set が残念な件 - Qiita
    megumin1
    megumin1 2024/08/24
    「std::setの要素アクセスが線形時間」とは?そんなstd::setの実装見たことないです。
  • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう!ShellScriptBashLinuxUNIXmacOS はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
    megumin1
    megumin1 2024/08/21
    全くその通りだけど記事の内容が冗長すぎ。5行で書ける内容を500行かけて書いている感じ。 あと一部のブコメのまぬけな反論は論外。if foo() {...} でなく let result = foo(); if result {...} と書くような初心者じゃあるまいし。
  • 顔写真から自閉症を判別してみた - Qiita

    はじめに この記事では今回開発したWebアプリ、自閉症識別(後に理由を説明しますが、動作が大変モッサリです)を公開するまでの経緯や考え・思いをまとめた。 6月中旬に差し掛かる頃から、Aidemy PewmiumのAIアプリ開発コースで、Pythonを用いてアプリ開発を行えるようになることを目標に学んできた。その成果として開発したのが、顔写真から自閉症を判別するWebアプリだ。 この記事では私自身がプログラミング超初心者として、そしていち支援者として感じたことも多く綴っているため、必要に応じて適宜読み飛ばしてもらえると良いかもしれない。 開発開始に至るまで 私はこちらの記事にあるように、保育士として児童発達支援に関わってきた。大変ではあるが非常に楽しい仕事だった。とはいえAidemyの講座受講中、成果物を何にするかをずっと考えていたが、この領域で何かやろうなんてことは全く考えていなかった。

    顔写真から自閉症を判別してみた - Qiita
    megumin1
    megumin1 2024/08/03
    現代の価値観では「完全にアウト」な案件です。「統計的差別」というキーワードで検索するように。過去の事例もたくさんあります。やらかしてしまったことはしょうがないので、以降は気をつけましょうね。
  • 初めてのGitは電車で例えて学ぼう!初学者向け基本Gitコマンド入門 - Qiita

    Gitを学びたての人へ Gitを学びたての皆さん、こんにちは!今年の4月よりエンジニアとして新卒入社した k_uki512です!🎉 会社の新人研修や、プログラミングスクールでGitを初めて触り始めた方もいらっしゃるのではないでしょうか。そんな方が「分からない」という状態に陥りやすいのが "Git" のコマンドだと思います。 分からない理由を分析してみた Gitのコマンドが分かりづらい理由として以下のような原因があると考えました。 データをコマンドでやり取りすることがなかった 用語いっぱい。違いが分からない、、(add,commit…) データ(変更履歴)の流れが見えづらい つまり変更履歴という概念が抽象的かつ、pushまでのステップが多いことが原因だと考えました。 そこで、この記事ではGitの一連の流れを、わかりやすく電車に例えて解説していきます! この記事を通じてGitの流れを学び、会

    初めてのGitは電車で例えて学ぼう!初学者向け基本Gitコマンド入門 - Qiita
    megumin1
    megumin1 2024/07/10
    Gitを理解している人は、絶対にこんな例え話をしない。例えても理解の助けには1mmもならずにむしろ遠回りになるだけだと理解しているので。理解するには、抽象度を高めるのはなく逆に一つ下のレイヤーを理解すること。
  • インシデント発生時に電源を入れたままにすべきか問題 - Qiita

    更新履歴 2024/6/28 ネットワーク遮断の是非について追記しました。 はじめに とあるセキュリティインシデントにおいて、サーバを電源ケーブルごと引き抜いたという対応が行われ、X(Twitter)ではこの対応について賛否両論が見られました。このうち電源を入れたままにすべきという人の意見には、「マルウェアの中にはシャットダウンすることで自分自身を削除し、感染痕跡を削除するものがある」「メモリを調査すべきなのでシャットダウンすべきではない」のような意見が見られました。 記事では実際にメモリからどのような情報がわかるか、そしてメモリダンプを解析することの有用性と課題について記載します。 また、インシデント発生時の特に封じ込めフェーズについても考察します。 メモリフォレンジック セキュリティインシデントにおいてはフォレンジック調査が行われる場合があります。フォレンジック調査には、HDDやSS

    インシデント発生時に電源を入れたままにすべきか問題 - Qiita
    megumin1
    megumin1 2024/06/17
    すでに乗っ取られている以上、メモリダンプどころかすべてのコマンドの実行結果は信頼できないですよ。rootがとられているなら、なんでも偽装・改ざんが可能。
  • decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita

    みたいなのが挙げられます。これが話題になった時にSNSで見かける言説が「十進小数 (decimal) 型ならこういう問題はない」です。 ですが、decimal型は十進小数を正確に表現できるという話でしかなく、全ての実数を正確に表現できるわけではありません。例えば、 1.0 / 3.0 * 3.0 の計算を考えてみましょう。数学的には、これはちょうど 1.0 になるはずです。 C#の場合 C#には標準の decimal 型があります。これで 1.0 / 3.0 * 3.0 を計算してみましょう。

    decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita
    megumin1
    megumin1 2024/06/09
    「decimal型は全ての実数を正確に表現できる」といっている人なんて見たことないです。これは架空の藁人形を相手にした記事にしか思えないです。
  • Linuxの面白いコマンド9選 - Qiita

    はじめに Linuxの面白い(あんまり使い道のないどうでもいい)コマンドを9個まとめてみました。暇な時ぜひ試してみてください! ※環境によっては、コマンドのインストール方法が異なる場合があるので、記事ではインストール方法を記載しません。 1.メッセージをつぶやくウシ cowsay cowsayは、メッセージをつぶやくウシ(オプションで他の動物を指定することも可能)のアスキーアートを生成するプログラムです。 下記コマンドを実行すると、「Hahaha」というセリフを言うウシが表示されます。 $ cowsay Hahaha ________ < Hahaha > -------- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || $ cowsay -f turtle Hahaha ________ < Hahaha > -------- \ __

    Linuxの面白いコマンド9選 - Qiita
    megumin1
    megumin1 2024/06/06
    スシローで醤油ペロペロした人と、やっていることは同じ。本人だけが面白いと思っているけど、周りはどん引き。バカはどこにでも、NTTデータ先端技術の中にも、いるってことですね。
  • 面接官「0.1 + 0.2 == 0.3 が成立しない理由を説明せよ」 - Qiita

    なぜか これは、計算機が浮動小数点数を2進数で表現する際に、特定の小数は正確に表現できず、誤差が発生するためです。10進数の0.1や0.2は、2進数では無限に続く循環小数となるため、これらの数値を正確に表現することができません。その結果、0.1 + 0.2 は 0.3 と等しくならないことがあります。 小数点以下の数値→2進数へ変換する方法 CSを修めていればご存知方と思いますが、復習します。 小数点以下の数値を2倍する 結果の整数部分を取り出し、それを2進数の桁として記録する 小数部分だけを次のステップに持ち越す 小数部分が0になるか、所定の精度に達するまで1〜3を繰り返す 0.1 × 2 = 0.2 整数部分: 0 小数部分: 0.2 0.2 × 2 = 0.4 整数部分: 0 小数部分: 0.4 0.4 × 2 = 0.8 整数部分: 0 小数部分: 0.8 0.8 × 2 = 1.

    面接官「0.1 + 0.2 == 0.3 が成立しない理由を説明せよ」 - Qiita
    megumin1
    megumin1 2024/05/26
    IEEE 754の説明をすれば終わる話。「処理系と言語仕様・型による」は答えになっていないですよ。きちんと理解していないのをごまかしているだけ。floating pointのRepresentationを説明できないなら、この筆者と同じレベル。
  • なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita

    Unix 哲学的に考えれば、行を並び替える sort コマンドと重複行を取り除く uniq コマンドは別のコマンドであるべきなように思えます。しかし sort コマンドには -u オプションとして uniq コマンドに相当する機能が組み込まれています。なぜそうなっている(そうなってしまった)のかを「ソフトウェア作法(さくほう)」を参照しながらこの記事で明らかにしたいと思います。 関連記事 Unix哲学「一つのことをうまくやる」は単機能のコマンドを作ることではない 「誰」がuniq機能をsortコマンドに組み込んだ!? 熱烈的な Unix 哲学の信者は「どうせ Unix 哲学を理解しない GNU が便利だと思ってオプションを追加したのだろう」と考えるかもしれません。しかし uniq 機能が組み込まれたのは Version 7 Unix、つまり Unix の開発者が組み込んだのです。これは 1

    なぜsortコマンドはuniq機能を含んでいるのか?(Unix哲学はどこ行った!?) - Qiita
    megumin1
    megumin1 2024/05/17
    sortに-uがあっても「効率のためでしょ」って潜在意識レベルで当たり前のことすぎて普通はスルーすると思いますが、こんな当たり前のことに長い記事を書ける情熱はすごいですね。
  • 「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita

    TL;DR Shift_JISにしただけでコンパイラが通らなくなる恐ろしい事件とその回避法について。 \ (¥)のASCIIコードは0x5c 表、能は良くない UTF-8は神 2023/12/06追記 誤りがあったので訂正します。こんな読まれると思ってなかったので正直ちょっとびっくりしていますが、いろいろコメントありがとうございました。(ツイート等全て拝見しました。) Shift_JISが悪いわけではない(デフォルトのエンコーディング設定の問題)→追記しました UTF-8にはUTF-FSSという仕様でこの問題が回避されている→マジでタメになる知識ありがとうございます OSによってデフォルトのエンコーディング設定が異なるせいで、デフォルト環境での動作がOSにより異なる→なるほど?(調査中) CRLFとLF問題では→なるほど?(調査中) そんな問題何を今更→UTF-8が出てから生まれたからです

    「//このコメントを消したら動かない」は大体Shift_JISの2バイト目が原因で発生する - Qiita
    megumin1
    megumin1 2023/12/06
    「コンパイルできない」のことを「動かない」という人には出会ったことがないので嘘松呼ばわりされてもしょうがない案件です。名誉挽回のために次は「コメントを消したら動かない」例をもってきてね。結構あります。
  • 【JavaScript】読みやすいコードの書き方 - Qiita

    はじめに 私は他人のコードをレビューしたことも自身のコードを他人にレビューしてもらったこともない初学者として現在のプロジェクトに加わりました。そこから現在までの2年間毎月10から20ほどのプルリクエストをレビューし、またチームメンバー内で読みやすいコードについて議論することで、徐々に読みやすいコードを書くためのポイントが掴めてきました。 これらの経験を通じて、私が現在考えている読みやすいコードを書くためのポイントを記事にまとめていきます✍️ 前提 言語はJavaScriptで、レガシーな環境での手続き的なJavaScriptを想定しています。 「JavaScriptの文法やメソッドは理解してきたけど、より読みやすいコードの書き方がわからない」と感じている初学者向けです。 筆者は一般的なコーディング規約や設計原則についての書籍や資料をほとんど参照していません(読んだことがあると言えばリー

    【JavaScript】読みやすいコードの書き方 - Qiita
    megumin1
    megumin1 2023/10/25
    一箇所でしか利用されない処理を細かい関数にわけるのはむしろアンチパターン。 「関数は短いほうがよい!」に暗黙的に従うとこういう余計なことをしてリーダビリティを損なう。この目的ならただのコメントで十分。
  • なぜハッシュ値は元の値を復元できないのか、SHA-256を実装してみる - Qiita

    はじめに ハッシュ関数はデータの整合性確認や暗号学的な用途でよく使用されます。この記事では、ハッシュ関数の中でもよく使われるSHA-256を自分で実装しつつ、なぜ元の値を復元できない(非可逆性)の性質を持つのか確認します。 結論はハッシュ関数の非可逆性は、情報の喪失により実現されています。 また、今回sha256を実装したRustのコードは以下です。 https://github.com/akira-19/algorithms_rust/tree/main/sha-256 SHA-256のフロー 非可逆性がわかるところまでのSHA-256のフローは以下のようになっています。 "msg"という文字列をハッシュ化します。 まずmsgという文字列を文字コードに置き換えます。(16進数表記) 次に、メッセージを64バイトの1つのまとまりにします。この際に、元のメッセージのすぐ後ろに0x80を追加し

    なぜハッシュ値は元の値を復元できないのか、SHA-256を実装してみる - Qiita
    megumin1
    megumin1 2023/10/16
    ハッシュ値は固定長なのだからそれは自明であり、記事の内容は正直全部無駄。あと一般的に「ハッシュ値の元の値を復元」というのはそういう意味ではなく、元の値をひとつでも見つけることができるかどうかの話。
  • 【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita

    理由 びっくりした。対話シェルで実行してパフォーマンス測定すると何故かめちゃくちゃ時間がかかる。これではデータにならない。 追記 よくよく考えたらパフォーマンス測定だけの問題ではなく実際に遅くなるのだから、対話シェルから「このようなコード」を実行してはいけないということを意味しています。「このようなコード」がどのようなコードなのか発生条件はまだ特定できていませんが、少なくともシェルスクリプトにしていれば問題は発生しません。また bash 以外のシェルでも問題は発生しません。 検証結果が気になった方は、ぜひ試してみて、この話を広めてください。 証拠 実行環境: Ubuntu 22.04.3 LTS、bash 5.1.16

    【衝撃の罠】bashスクリプトのパフォーマンス測定は、対話シェルでやっても無意味だ! - Qiita
    megumin1
    megumin1 2023/09/30
    一般にはfdがterminalだと行単位でflushされる、結果write等のsyscallの回数が増えるなどの違いがありますよ。まずはその辺りから疑うべき話だと思うのですが、記事中で一切言及がないのはつまりはそういうことでしょうか?
  • Amazon の 2段階認証 突破の噂についての仮説 と 2段階認証で意識すること【2FA/2SV/MFA】 - Qiita

    Amazon2段階認証(2SV)が突破された? Amazon2段階認証(2SV) が突破されたのではないかという件が話題になっています。 私もこれについてはとても気になっており、できるだけ早く真相が解明されることを願っています。 そこで、ふと疑問に感じたことが、2SV は何をどの程度防いでくれるのかということです。 ここでは、Amazon を例に、いろんなことを考えていきたいと思います。 フィッシングの前には無力 まず、2SVの突破と言っても様々な手口があります。 徳丸先生の動画が示す通り、中継型フィッシングであれば、自ら正しい認証情報を入力することになるので、2SVを設定していようがいまいが突破されてしまいます。 フィッシングではなく、かつ、TOTPでも突破されたケースも 今回の被害者には、中間者攻撃やフィッシングを受ける状態になかったと仰っている方がいました。 なので、何か

    Amazon の 2段階認証 突破の噂についての仮説 と 2段階認証で意識すること【2FA/2SV/MFA】 - Qiita
    megumin1
    megumin1 2023/09/20
    99%「フィッシングでした」というオチだと思いますよ。 私だって「過去に一度もフィッシングにかかっていない」と断言はとてもできないのに、何故か断言している被害者が多いのでそういう人たちなんだと思っています
  • ITエンジニアなのにまだ投資やってないの?ChatGPTでクオンツシステム作って儲けようぜpart4 - Qiita

    前回まで ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜ ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜpart2 ITエンジニアなのにまだ投資やってないの?ITエンジニアならChatGPTでクオンツシステム作って儲けようぜpart3 Bloombergは要チェック 面白いので見ておくといいです。 論文でもテクニカル分析の有用性が実証されている これは筑波大学で2017年に行われた検証実験ですが、TOPIXに対して過去の変動パターンから未来予測が出来るという事が実証されています。 ランダムウォーク理論など世の中的には「予測なんて不可能」と言われてきているものが違っていたということを実証したわけですね。 https://www.jstage.jst.go.jp/arti

    ITエンジニアなのにまだ投資やってないの?ChatGPTでクオンツシステム作って儲けようぜpart4 - Qiita
    megumin1
    megumin1 2023/09/04
    過去の「学習期間」と「検証期間」の両方でたまたまうまくいく戦略なんて、それこそ探せばいっくらでも見つかります。その「意味」を理解しないとこの記事の筆者のようにしょうもない記事を量産してしまいます。
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
    megumin1
    megumin1 2023/09/02
    記事の内容は極めてまともです。それに対して、難癖をつけたいだけのアンフェアなコメントが溢れていて、はてぶの技術的民度の低さがあらわれているコメント欄ですね。記事を書いた方、お疲れ様です。
  • 半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita

    はじめに こんにちは、kenです。 今回は「プログラミングで区間を扱いたいときは半開区間が良いよ」という話をします。 もしかしたら有名な事実かもしれませんが、友達にこの話をしたら知らなかったという顔をされたので、自分の理解を深めるためにも記事にすることにしました。 数学で区間を扱う際は実数上で考えることが多いかと思いますが、この記事では区間を考える際、整数全体の集合上での区間を考えることにします。 また以下ではleft(またはl)とright(またはr)という文字式を使って説明しますが、このときleft $ \leq $ rightという関係性は常に満たされているものとします。 半開区間とは? 半開区間の前に、開区間と閉区間についておさらいしておきます。 開区間は(left,right)のように表され、両端点を含まないleftからrightまでの区間を表します。 一方で閉区間は[left,

    半開区間の魅力 〜プログラミングでのスマートな区間の扱い方〜 - Qiita
    megumin1
    megumin1 2023/06/26
    この記事の説明もイマイチかと。定番の説明は[left, right)のleft,right等は「要素を指す」ではなく「要素と要素の間の境界・区切り線の位置を表す」です。これで一生悩まなくてすみます。[left,left)が空なのもこれで自明。
  • 【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita

    背景(誰のための記事?) JavaScriptプログラマのみなさまこんにちは。 最近のお仕事の傾向として、マイクロサービス化といいいますか、オブジェクト指向の延長といいますか、MVVM化といいますか、下回りは速度&効率重視でC++で構築し、中間は保守(メンテ)&書きやすさ+ちょっぴり速度も重視で node.js(JavaScript)、上層のUIはなるべく広範囲で使えるように考慮して HTMLCSS 、という3層構造 ・上層:HTML + CSS ・中層:node.js(JavaScript) ・下層:C++ が流行っていまして、今回の事件は中層の node.js スクリプトの部分で発生した問題でした。しかも、下層で生成された巨大なデータを中層で処理し、上層で表示しようとするとある条件で遅延が発生し、表示がカクつくという問題で、その「ある条件」が長期間に渡って特定できない、、、といった難

    【JavaScript】実数から整数への変換に parseInt() を使ってはいけない2つの理由🙅‍♀️ - Qiita
    megumin1
    megumin1 2022/01/08
    浮動小数を整数にするのにparseInt()を使用する発想がなぜでてきたのかまったく理解できないです。"parse" の意味を理解していないってこと? "parseInt( u16 / 256 )" には1秒で違和感をもてるようになるとよいですね。
  • JKが接触確認アプリ「COCOA」の開発に貢献した話。〜1日でXamarinを学びアプリ改善〜 - Qiita

    こんにちは、あんはるです。 接触確認アプリ「COCOA」の開発に貢献したこと、そして、簡単に開発に参加する方法を紹介します。 みなさんに接触確認アプリ「Cocoa」の開発の参加は簡単にできるということを伝えたくて書きました 実際自分で改善してみた経験も書いています cocoaが使いにくい!と思ったら是非この記事を読んで改善してみるといいと思います👍 是非読んでみてください🙇‍♂️https://t.co/3G1UEL9Rb2 — あんはる@アプリ作れるJK (@_anharu) June 26, 2020 追記 7/12 この記事見て実際に接触確認アプリを改善してみました!っていう方 いらっしゃったらご連絡ください 追記 7/23 この記事見て実際に接触確認アプリを改善した方々🎉🎉🎉 この記事によって、実際に接触確認アプリにコミットする方が増えたらいいな!という目的で書いたので少

    JKが接触確認アプリ「COCOA」の開発に貢献した話。〜1日でXamarinを学びアプリ改善〜 - Qiita
    megumin1
    megumin1 2020/06/27
    細かいアドバイスですが、テック業界はダイバーシティ問題に真剣に取り組んでいるので、必要性がない限りできるだけgender-neutral, inclusiveなワードを使ったほうがいいです。例: タイトルは「JKが」じゃなくて「高校生が」