タグ

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

  • 「住所は英数字もすべて全角で入力してください」はなぜそうなったのか - Qiita

    Webサービスのフォームに住所を入力するとき、丁目や番地などを入れる欄について、数字やハイフンを全角で書かなければいけない「全角縛り」をやっているフォームをよく見ます。半角文字を入力してしまってエラーになったり、咄嗟に変換方法を思い出せなかったり、全角と半角の見分けが付きづらかったり、「全角縛り」であることが明示されていなかったり、「ハイフン」としてどの文字を使うべきかわからなかったり……と、陶しさを感じることが多くあります。 「住所は全角のみ」(数字やハイフンも絶対に半角を受け付けない)という仕様がどういう経緯で生まれて、どう広まっていったのかが気になってる。いま存在しているのは過去の仕様や慣習の踏襲として理解できても、そもそもなぜそれらが生まれたのかが理解できない。 https://t.co/ZLz0Pw9GOK — ymrl (@ymrl) July 29, 2024 これについて

    「住所は英数字もすべて全角で入力してください」はなぜそうなったのか - Qiita
    letsspeak
    letsspeak 2024/08/04
  • ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita

    はじめに はじめまして、セキュリティエンジニアのSatoki (@satoki00) です。今回はブラウザの開発者ツールのネットワークタブから隠れて、Webサイト内の情報を送信する手法をまとめます。所謂Exfiltrationというやつです。中にはCSPの制限をBypassするために用いられるテクニックもあります。CTFなどで安全に使ってください。 前提 発端はWeb上でテキストの文字数をカウントできるサイトが閉鎖する際の話です。カウント対象のテキストデータがサイト運営 (やサイトを改竄した攻撃者) に盗み取られていないかという議論が巻き起こっていました。「盗み取られていない」側の主張は、ブラウザの開発者ツールのネットワークタブにリクエストを送信した形跡がないというものでした。ここで ブラウザの開発者ツールのネットワークタブに表示がなければ外部へデータを送信していないのか? といった疑問が

    ブラウザ開発者ツールのネットワークタブに表示されない情報送信手法 - Qiita
    letsspeak
    letsspeak 2024/07/15
  • 【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita

    はじめに こんにちは、kenです。みなさんコンフリクト解消してますか! チーム開発をしているとコンフリクトとは嫌でも向き合うことになりますが、コンフリクト解消って緊張感のある作業なのでやりたくないですよね。 そんなコンフリクト解消をちょっぴり楽にする(かもしれない)コマンドを最近知ったので今回はそれを紹介します、その名もgit rerereです。 git rerereとは Gitの公式ドキュメント(日語版)には次のように記載されています。 git rerere コマンドはベールに包まれた機能といってもいいでしょう。これは “reuse recorded resolution” の略です。その名が示すとおり、このコマンドは、コンフリクトがどのように解消されたかを記録してくれます。 そして、同じコンフリクトに次に出くわしたときに、自動で解消してくれるのです。 ここに書かれているように、git

    【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita
    letsspeak
    letsspeak 2024/07/07
  • 【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita

    この書き方でも for 文は正常に動作します。 しかしながらこの書き方は 以下の書き間違いが生じることがあります。 for(var i = 0; i < array1.length; i++) { //長い処理 for(var i = 0; i < array2.length; i++) { } } 長い処理の中で i を宣言したことを忘れて 再び i を宣言してしまうことで 外側の for 文のカウントにバグが発生し 期待した動作にならない例になります。 私も他の人が作成した web アプリで このバグを見かけたことがあります。 for の変数を宣言する場合 必ず let で宣言して下さい。 var でなければ正常に動作しないのは 構造的欠陥のハズです。 let array1 = [1, 2, 3]; let array2 = [4, 5, 6]; for(let i = 0; i <

    【熱望】javascript の for 文で var i を宣言するのはやめて下さい - Qiita
    letsspeak
    letsspeak 2024/04/21
  • 初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita

    この記事について この記事では、プログラミング初心者の大学生である(であった)私が試行錯誤しながらなんとかスター数300越えのOSSライブラリを作った過程をまとめたものです。ライブラリ自体はまだまだ発展中のためこの記事も適宜更新してく予定です。ライブラリ自体の詳細というよりも、自作OSSの認知度を上げで他の人に使ってもらうために有用そうな知見をまとめていこうと思います。 ライブラリの概要 今私が作っているのは、AIJackという、機械学習モデルがもつセキュリティ・プライバシー上の脆弱性についての各種攻撃・防御手法を実験するためのPythonツールです。既存のライブラリの多くは特定の種類の攻撃や防御に特化したものが多く、複数のタイプの攻撃・防御を組み合わせて実験するためにはいくつものライブラリを組み合わせる必要がありました。そこでAIJackでは、できる限り統一的なAPIで様々な攻撃・防御手

    初心者大学生が作った機械学習ライブラリがGitHubでスター数300を超えた話 - Qiita
    letsspeak
    letsspeak 2024/04/21
  • データベースに接続するテストの仕組みを整備した話 - Qiita

    はじめに かれこれ1年以上前のことになりますが、今の開発組織でデータベースに接続するJunitを使ったIntegrationTest1 を開発者のPCとCIで実行できる仕組みを作りました。 トライしたきっかけと想い 仕組みの設計・導入をする時に気を付けたこと 具体的な実現方法 トライしてみて感じたこと を記載します。 トライしたきっかけと想い 私が保守開発を担当しているプロダクトは20年近く運用されているWebアプリケーションです。(サーバーサイドはJava) 単体テストの仕組みと文化が無いまま長期間運用されており、大半のコードがレガシーコードという状態でした。 一部テストが書かれている箇所もありましたが、CIでの実行の仕組みはなく腐ってしまっているものも多い状態でした。 そこに @autotaker1984 さんがCIでの単体テスト実行の仕組みを作ってくれて、単体テストを書くべきというマ

    データベースに接続するテストの仕組みを整備した話 - Qiita
    letsspeak
    letsspeak 2024/04/05
  • IT契約入門〜雇用契約、請負契約から準委任まで - Qiita

    この記事は? 著者は、エンジニアにとって最も大事なものの一つは契約であると考えます。なぜなら、契約によって我々はお金を得ることができ、労働対価を受け取って生きていくことができるからです。プロジェクトにおいてトラブルが発生すると、契約はメンバーを守ってくれるものになります。したがって、雇用契約、請負契約、準委任契約など何の契約であっても隅々まで確認し、不利にならないようにしないといけません。社員であれば誠実に職務に向き合う必要があります。請負契約であれば対価を得るために納品する必要がありますし、準委任契約であれば善管注意義務を背負いプロとして日々業務を行なっていく必要があります。一方で、著者は長くにわたって業務委託契約でパートナーとして参加してくださっているエンジニアたちと長らく協働してきた経験がありますが、ユーザーとしてもベンダーが妨害要素なく働けるように、協力義務を果たす必要があります

    IT契約入門〜雇用契約、請負契約から準委任まで - Qiita
    letsspeak
    letsspeak 2024/03/30
  • 機械学習による株価予測 - Qiita

    こんにちは。私がAidemyでデータ分析講座コースを受講いたしました。今回は学んだスキルを活用して、上場企業を株価予測をしてみました。 ※私の環境: Python3 Chrome Google Colaboratory Windows 10 目次 1.目的 2. データセット 3. 機械学習モデル 4. 予測モデルの構築と検証 5. 結果 6. 反省 1.目的 上場会社の株価データセットを用いて、株価予測するLSTMの機械学習モデルを構築すること。 2.データセット Yahoo Financeである上場企業Lasertec(6920.T)の時列データ 3.機械学習モデル LSTM(Long Short-Term Memory: ニューラルネットワークの一種で、長期的な依存関係を学習することができる特徴ある。 4.予測モデルの構築と検証 4-1. ライブラリのインポート import ker

    機械学習による株価予測 - Qiita
    letsspeak
    letsspeak 2024/03/26
    株価に直接影響するのは投資家心理だとあれほど
  • 特定のページが更新されたら通知する仕組みを作ってみた - Qiita

    はじめに RSS対応のサイトだと、更新情報追いやすいけど、RSS非対応のページも追いたいよね。って人向けの記事です。 RSS対応しているサイトなら、RSSリーダーを使った方が早いです また、Discordのチャンネルにも通知がしたかったので、メールとDiscord両方に通知を行っています。 Discord側にWebhook用のURLが必要ですが、記事では紹介しません 参考サイトのZennの記事が細かく書かれていますので、そちらをご覧ください なお、この仕組みは更新を検知したいサイトに確認リクエストを送ります。 高頻度で設定してしまうと、サーバーに負荷がかかる為、 高頻度での設定はしないようにお願いします 参考サイト 構成図 コードについて(Lambda) コードについては、基的に、クラスメソッドさんの記事を参考にしています Discordの通知部分については、AmazonBedrock

    特定のページが更新されたら通知する仕組みを作ってみた - Qiita
    letsspeak
    letsspeak 2024/03/24
  • TCP/IP構造と通信 - Qiita

    OSIとTCP/IP構造 OSI参照モデルとTCP/IPプロトコルスタックの対応関係を示しています。 OSIモデルはデータ通信のための抽象的なモデルで、7つの階層(レイヤー)から成り立っています。 一方、TCP/IPプロトコルスタックはインターネットで実際に使用されているプロトコルの集まりで、4つの階層から構成されています。 TCP/IPの4層構造 アプリケーション層:OSIモデルのアプリケーション層、プレゼンテーション層、セッション層に相当します。HTTP、FTP、SMTPなどのプロトコルが含まれます。 トランスポート層:OSIモデルのトランスポート層に相当します。TCPやUDPがこの層で動作します。 インターネット層:OSIモデルのネットワーク層に相当します。IPプロトコルがこの層で主に使用されます。 ネットワークインターフェース層:OSIモデルのデータリンク層と物理層に相当します。E

    TCP/IP構造と通信 - Qiita
    letsspeak
    letsspeak 2024/03/24
  • インデックスを理解したい - Qiita

    はじめに みなさんはDBのインデックスを正しく使えていますか? 私はなんとなく「DBのパフォーマンスを向上するためのもの」という認識はあったのですが、 どのような場面で使うものなのか、逆にどのような場面では使うべきでないのかなど 明確に理解できていませんでした。 今回はそんなインデックスについての理解を深めたいと思います。 インデックスとは インデックスとは、その名の通り「索引」です。 表現の仕方と変えると、(x, a)という形式の配列であるとも言えます。 xというキー値とそれに結びつくaというデータ情報があり、 これを利用することですべてのデータを網羅して見ることなく、 まさにの索引のように目的のデータにたどり着くことができます。 インデックスはSQLのパフォーマンスを改善するための非常にポピュラーな手段であり、 理由としては下記の3点が挙げられます。 アプリケーションのコードに影響を

    インデックスを理解したい - Qiita
    letsspeak
    letsspeak 2024/03/21
  • 半角スペースを表示したいなら&nbsp;ではなくwhite-space: pre;を使いましょうという話 - Qiita

    はじめに 連続する複数の半角スペースは1つにまとめられたり、先頭末尾の半角スペースは省略される これははじめてHTMLに触れた人が戸惑う部分だと思います。 ではその半角スペース分の空白をどのようにして表示すればいいのかと調べれば、&nbsp;などの特殊文字を紹介する記事が数多くヒットします。 HTMLでの半角スペースは&nbsp;なんだと強引に表現するサイトもありますが、半角スペースと&nbsp;が異なることは調べればすぐわかります。 もう文字コードから違います。 半角スペースと&nbsp;は別物なのに、半角スペースを表示するために&nbsp;を使っていいのでしょうか? 答えはNoだと思います。 結論 半角スペースを半角スペースとして表示するにはwhite-space: pre;を使います。 preはおそらくpre要素のpreですね。 white-spaceはCSSプロパティです。 つまり

    半角スペースを表示したいなら&nbsp;ではなくwhite-space: pre;を使いましょうという話 - Qiita
    letsspeak
    letsspeak 2024/03/18
  • コンマ演算子の使い道の話 - Qiita

    これは何? return の後ろにカンマ演算子で区切ったステートメントを記述し、最右のステートメントを返すことに有用性があるかどうか知りたいのです。 という記述を読み、そこに限定せずに コンマ演算子が役に立つパターンについて考えた。 とはいえ、 return 式, 式; が念頭にある。 そもそも そもそも、コンマ演算子は C 言語に由来する。 と言いたいところだけど、よく知らない。BCPL には無かったようなので、B言語か C言語なのかな。 いずれにせよ、C言語がきっかけで広まったと思う。 可読性の低下に寄与 コンマは演算子以外の用途でも使われるのでコンマ演算子なのかそうじゃないのかを判断するのがめんどくさく、可読性の低下に寄与しやすい。 a=(b,c); // コンマ演算子 a=f(b,c); // 引数区切り a=g((b,c)); // コンマ演算子 a=typeof(b,c); /

    コンマ演算子の使い道の話 - Qiita
    letsspeak
    letsspeak 2024/03/10
  • 1行で発狂するコード - Qiita

    人は1行の記述で死ぬこともある 公開からコンスタントに閲覧をいただいている以下の記事。需要がありそうなので、もう1つ記事を書いてみようと思う。 題材は前回同様のJavaScriptのクソコードではあるが、前回は冗長を極めたクソコードであるのに対し、今回はたった1行である。 1行なのに、なんと示唆深いに富む(決してほめていない)コードだろうか。 不可思議なコード では、実際に見てみよう。 return a = a >= 10 ? 10 : a >= 5 ? 5 : a >= 3 ? 3 : a >= 2 ? 2 : 1, z * a; これを見て、何が return で返されるかわかります? 代入演算子 最初見たとき、代入文 a = ××× の評価値って何になるのかな? a が return されるのかなと思いました。 割り当て操作は、割り当てられた値として評価されます。 JavaScrip

    1行で発狂するコード - Qiita
    letsspeak
    letsspeak 2024/03/08
  • 自作した時間割アプリが大学の公式アプリに採用された話 - Qiita

    記事の概要 私(芝浦工業大学学部4年生)が大学2年時に1人で制作した、大学のポータルアプリ(ポータルサイトからスクレイピングして時間割などを表示する)が、大学に正式採用され、公式アプリ"ScombApp"としてリリースされるに至った経緯を時系列順に説明します。 ホーム画面 時間割画面 制作の動機 大学のポータルサイト使いにくいがち。 ポータルサイトのスマホアプリ版があれば便利そう。 他にやってる人いなさそうだし、最初に作ったらみんな使ってくれそう。 ポータルサイトの問題点 大学ポータルサイトで使いにくかった点を挙げていく。 とりあえずこれを克服することを目標にした。 ログインの時に自動補完が使えない 制作当時はBASIC認証で、スマホからだとログインの自動補完ができなかった。 毎回手打ちでパスワードを入力している人がほとんど ←!? 次の授業や教室を確認するだけでも、毎回手打ちログインが必

    自作した時間割アプリが大学の公式アプリに採用された話 - Qiita
    letsspeak
    letsspeak 2024/01/15
  • ほんとうにあった開発生産性が爆下がりする話 - Qiita

    昨今、継続的にプロダクト開発していくことが主流となり、Four Keysなどの開発パフォーマンスを測る指標なども出てきており開発生産性を向上させることが注目されています。 しかし、かつての開発現場では今では信じられないような開発生産性を爆下げするようなことをやっていました。 この記事では10年以上前に私が経験した開発生産性を爆下げする事例を書いていこうと思います。 (私が体験したことをベースに書いているので10年前は全てがこうだったということではないのでご留意ください ) 修正前のコードはコメントアウトで残す 当時、ウォーターフォールで開発していました。 ウォーターフォールでは開発工程とテスト工程が分かれています。 開発工程で一通りコーディングして、テスト工程で動作確認を行いバグを潰します。 問題はここからです。 とある現場では、テスト工程でバグを直すときにコードを破壊的に直すのではなく、

    ほんとうにあった開発生産性が爆下がりする話 - Qiita
    letsspeak
    letsspeak 2023/09/12
    日本語コーディングはラムダや無名関数の考え方とか効率性に対応できてないのを残念に感じたなあ
  • strlen() の深淵 - Qiita

    あらまし strlen() という関数がある。御存知の通り、文字列の長さを算出する標準 C ライブラリの関数だ。 やってることは単純で、例えば以下のように実装できる。 size_t strlen_simple(const char* str) { const char* p = str; while (*p) ++p; return size_t(p - str); } '\0' が見つかるまでポインタを進め、初期位置との差分を返すだけだ。これで機能的には std::strlen() と同等である。 では、速度的にはどうだろう?適当にベンチマークを書いて MSVC 2022 でコンパイル&実行するとこうなった。

    strlen() の深淵 - Qiita
  • フリーランス歴20年の強強エンジニアからのガチコードレビュー集 - Qiita

    はじめに こんにちは、まつけんです。 早いもので、Webエンジニアになって、10ヶ月経とうとしています。 先月末、僕の職場に参画していたフリーランス歴20年の強強エンジニアCさんが卒業されました。(以降Cさんと称します) Cさんには、いつも迅速かつ丁寧なレビューをしていただいてました。 たまに補助で僕のプルリクにコミットを積んでもらうことなどもあり、お世話になった記憶が大半です。 今回はそんなCさんから受けたコードレビューから、今後どう改善していくのかアウトプットして学びを深めたいため、こちらの記事を書きました。 ペアプロしている時の参考になったこともおまけで書いてます。 ※こちらの記事に出てくるコードに関しては全てRubyです。実務で学んだことなので、出てくるコードは全てフィクションです。(実際のサービスのコードではないです) レビュー1: migrationファイルを追加する時「db:

    フリーランス歴20年の強強エンジニアからのガチコードレビュー集 - Qiita
    letsspeak
    letsspeak 2023/07/15
    この中でちゃんとマイグレーションを一番上に持ってきたのはイイね!
  • いちいちシェルコマンド思い出せないので、ChatGPTで自然言語からスクリプトを生成するツールつくった - Qiita

    いちいちシェルコマンド思い出せないので、ChatGPTで自然言語からスクリプトを生成するツールつくったPythonOpenAIChatGPTlangchain はじめに ChatGPT APIが出たので早速さわってみました。せっかくなので何か便利なものをということで自分向けに使えそうなツールをつくっていたら 良いかんじに動作したのでご紹介します。 つくったものは、「ChatGPTを用いた自然言語によるシェルコマンドランチャー」です。百聞は一見にしかずと言うことでまずは動作するところをみてください。 概要 wannaコマンドは、ChatGPTを用いた自然言語によるシェルコマンドランチャーです。自然言語によって、bash scriptを生成し、名付けし、管理できます。 コマンドライン上での操作は簡単に多くのことを行うことができるため、非常に便利です。しかし、多くのコマンドやオプションの組み合わ

    いちいちシェルコマンド思い出せないので、ChatGPTで自然言語からスクリプトを生成するツールつくった - Qiita
    letsspeak
    letsspeak 2023/03/04
  • お前らのpandasの使い方は間違っている - Qiita

    この記事は株式会社Nuco Advent Calendar 2022の9日目の記事です。 はじめに いきなりお馴染みの「キャッチーでウィットでセンセーショナルな」タイトルで失礼します。 私自身、業務の中でpandasに大変お世話になっており、自戒も込めてpandasの「アンチパターン」をまとめてみました。 この記事を読んで、より快適なpandasライフを送っていただけると嬉しいです。 対象読者 Pythonを使ったデータ分析機械学習に携わる方 この記事はpandasの基的な使い方を解説するものではないので注意してください。 表形式ファイルを加工する必要がある方 pandasの強みはリレーショナルなデータ全般です。必ずしもデータ分析機械学習だけが守備範囲ではありません。 pandasとは pandasの公式ドキュメントの概要には、以下のように記載してあります。 pandas is a

    お前らのpandasの使い方は間違っている - Qiita
    letsspeak
    letsspeak 2022/12/10