タグ

ブックマーク / qiita.com (7,959)

  • 線形代数学+Rustで画像圧縮のアルゴリズムを実装する - Qiita

    こんにちは👋 長く暑い夏が終わろうとしている今ですが、筆者は秋の季節を満喫しております。 LabBaseでは線形代数学の基礎を使って検索エンジンを構築していますが、レコメンド、検索アルゴリズムによく使われる王道の手法について記事を書くことにしました。 概要 線形代数学の特異値分解(SVD)の知識を活かして、原始的な画像圧縮アルゴリズムをRustで実装します。 SVDとは? SVDは、線形代数学でよく使われる行列の分解です。行列の分解は、同じマトリックスを他のマトリックスに分けて表現することです。SVDの他に、LU三角分解、QR分解などがあります。 SVDは、あるAというマトリックスの列空間と行空間の固有ベクトルを計算して、それぞれをUとVというマトリックスに収めます。さらに、Σという対角行列に、固有値の平方根を入れます。Vの転置行列をV'と定義しますが、以下の分解になります。 Σの体格行

    線形代数学+Rustで画像圧縮のアルゴリズムを実装する - Qiita
    peketamin
    peketamin 2024/09/25
  • プロジェクトにおける見積もり方法の種類と比較 - Qiita

    例えば要件定義の期待値は、上記の計算式に当てはめると (0.5 + 4×1 + 2) / 6 = 1.17時間になります。 類推見積もり 具体例 「Aという機能を持ったシステムを開発するのに、前回は3ヶ月かかった。今回のシステムも機能が似ているので、今回も3ヶ月程度で開発できるだろう。」 特徴 過去の類似プロジェクトのデータに基づいて見積もるため、迅速に概算を出すことができます。 (これ、実はみなさん日常で何気なくやっているのではないでしょうか??) 注意点 今回のプロジェクトと過去のプロジェクトが完全に同じであるとは限らないため、誤差が生じる可能性があります。 ボトムアップ見積もり 具体例 システム開発プロジェクトの場合 要件定義:1週間 設計:2週間 プログラミング:4週間 テスト:2週間 総合計:9週間 特徴 プロジェクトを細分化して見積もるため、より詳細で正確な見積もりが可能です。

    プロジェクトにおける見積もり方法の種類と比較 - Qiita
    peketamin
    peketamin 2024/09/24
  • Pythonによる重複の確認方法とデータ匿名化の方法 - Qiita

    概要 目次 Pythonでデータに重複があるか確認する方法 PyCon JPが不正をしていない理由の解説 記事では、Pythonで重複したデータを集約する方法、及び、機密情報を隠して集計をするための手法について解説します。 記事で紹介するコードは投票結果の集計やアイデアの集計などで有効に使うことができます。 内容に誤りがありましたらご指摘ください。 記事は、今後の健全なコミュニティの発展に必要不可欠な情報であるため、健全な技術コミュニティの発展を目指す情報交換プラットフォーム、Qiita.comにて公開します。 Pythonでデータに重複があるか確認する方法 リスト形式の場合 Pythonでリストから重複があるか確認する3種類の方法を紹介します。 重複の有無をbool値で出力します。 外部ライブラリ、cythonを使わない場合、データの分布に関する事前情報がない場合はこれらの方法が有

    Pythonによる重複の確認方法とデータ匿名化の方法 - Qiita
    peketamin
    peketamin 2024/09/24
  • 要件定義|3分で読める非機能要件について - Qiita

    はじめに エンジニアのみなさま、日々の学習当にお疲れ様です! また記事まで足を運んでいただき当に感謝です。 約3分程度で読めるので最後まで読んでもらえると幸いです。 要件定義関連の記事の投稿をしました。時間あればぜひ読んでみてください。 今回は「非機能要件」の 可用性 性能・拡張性 運用・保守性 移行性 セキュリティ システム環境・エコロジー の6項目について理解を深めてアウトプットしようと思います。 非機能要件|6項目について 1. 可用性 システムが継続して利用可能な状態を維持する能力を指します。『稼働率』 で表現されます。システムは定期メンテナンスや予期しない障害により、一時的に利用できなくなることがあります。可用性は、稼働している時間と停止から復旧までの時間の割合で決まります。たとえば、Amazonの「Amazon ECS」サービスは 『99.99%』 の稼働率を保証しており

    要件定義|3分で読める非機能要件について - Qiita
    peketamin
    peketamin 2024/09/24
  • 結局 Git のブランチ戦略ってどうすればいいの? - Qiita

    1つのIssueが大きくなると1 Pull Requestで大量の差分が発生します。 そうなるとレビュワーに負担がかかり、コンフリクトの可能性も高まり、コードレビューを効率よく進めることができません。 このINVEST原則を守ることでチームはより効果的に作業を進め、柔軟に対応して開発を進めることができます。 Git Flow Git Flowは5種類(main, hotfix, release, develop, feature)のブランチを運用するブランチ戦略です。 2010年に提唱された有名なブランチ戦略です。 オンラインサービスのように継続的デリバリーするコードを想定して作られた戦略ではないです。 main ブランチ 常にリリースできる状態を保つ hotfix, develop へ切り出す このブランチへの直pushはNG hotfix ブランチ バグ修正など緊急時に対応するためのブ

    結局 Git のブランチ戦略ってどうすればいいの? - Qiita
    peketamin
    peketamin 2024/09/23
  • 私がマージンをできるだけ使いたくない理由 - Qiita

    はじめに 突然ですが、皆さんはCSSのmargin(マージン)をよく使いますか? 私はマージンを多用しないように気をつけています。というより、あまりマージンと関わりたくないと思っています。今回の記事では、「どうして避けているのか」について自分なりの考えをまとめてみたいと思います。 あくまでも個人の意見なので、こういう考えの人もいるのだなと捉えていただけますと幸いです。もっとこうしたら良くなるのに!というご意見は大募集しているので、どんどん教えてください。 マージンを使いたくない理由 マージンを使いたくない一番の理由に、スタイルが崩れるというものがあります。「崩れる」と一言で言っても、わかりずらいと思うので落ち着いて考えをまとめてみました。その結果、下記の2パターンに分かれるという結論に行きつきました。 マージンが不可解な挙動をする コンポーネントとして使い回しずらい この二つの観点から、マ

    私がマージンをできるだけ使いたくない理由 - Qiita
    peketamin
    peketamin 2024/09/22
  • PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘 - Qiita

    概要 文章は、一般社団法人PyCon JP Associationが主催したPyCon APAC 2023の開催に際し、そのプロポーザル選考過程において行われていた不正行為の告発を目的とするものです。 文章が対象とする読者は技術者、及び、公衆です。技術者は技術『愛好家』との付き合い方について一考をするべきであり、公衆は「専門家ではないにも関わらず技術の専門家のフリをする不正な愛好家」に対して無自覚であるべきではない、という警鐘を鳴らすため、並びに、一般社団法人PyCon JP Associationの公衆に対する不正を告発するため、文章を公開します。 文章は、Qiitaが目指す、学びのある情報を技術者に共有することで、よりよい技術者コミュニティの形成を目指す内容であるため、Qiitaのガイドラインに沿った形式でQiita.com上で公開します。 告発する内容 PyCon APAC

    PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘 - Qiita
    peketamin
    peketamin 2024/09/22
  • なぜエンジニアのあなたの質問は伝わらないのか? - Qiita

    はじめに 包み隠さずオープンに伝えると、投稿主は質問が全然上手ではありません。 多分、この記事を読んでいる皆さんの方が何倍も上手です。 ということで記事は以上です(冗談です) こちらでは誰よりも質問下手だった投稿主が試行錯誤した結果、導き出した良い質問・悪い質問それぞれの共通点や法則性を提唱します(単なる一般論でしたらすみません) あなたの質問はなぜ伝わらないのか 結論? それは、あなたの質問に愛がないからです。 というのは半分冗談として(笑)、よくありそうな悩みを以下に記載します。 拙い文章ですが、皆さんのお役に立てれば幸いです。 テクニックに走ることによる弊害 「をたくさん読んだり、質問フォーマットで文章を丁寧に書いてみたけど、全然伝わらない!」 生成AIに聞いてみたりしたら、たとえばこんな答えが返ってくると思います。 Q. 私はエンジニアなのですが、質問はなぜ伝わらないのでしょう

    なぜエンジニアのあなたの質問は伝わらないのか? - Qiita
    peketamin
    peketamin 2024/09/17
  • エンジニアとして働く中で気づけた大切だと思うこと - Qiita

    はじめに 自分がIT業界に携わって5年ほどが経過しました。 この5年間、SIerからフリーランスエンジニアに転身し、様々なプロジェクトに参加する中で、数々の失敗と成功を経験しました。特に心構えやマインドの部分で多くを学ぶことができました。 未熟だった自分を振り返って、今では改善できた点が多くあると思います。同じ失敗を繰り返さないように、自分の経験が少しでも役立てば幸いです。 また、気付きを与えてくれた方々にこの場を借りて感謝します。 感謝を忘れない 進捗報告やコードレビュー、質問対応など、感謝の気持ちを忘れないようにしています。感謝は、コミュニケーションを円滑にし、相手の意欲を引き出す力があると思います。 たとえば、昔の自分はバグ報告を受けるとろくに文章も読まず「影響範囲は? 再現する条件は? 原因は? 解決策は?」などと質問攻めにしてしまっていました。 報告しただけなのに色んなことを聞か

    エンジニアとして働く中で気づけた大切だと思うこと - Qiita
    peketamin
    peketamin 2024/09/17
  • role 属性とは、aria-* 属性とは、WAI-ARIA とは、いったい何なのか、いつ使うべきなのか - Qiita

    role 属性とは、aria-* 属性とは、WAI-ARIA とは、いったい何なのか、いつ使うべきなのかHTMLアクセシビリティWAI-ARIA 最近、いくつかの場面でWebアクセシビリティについて、コーディングに関する技術的な説明をする機会がありました。そのなかで、そもそもWAI-ARIAというものが、どういう立ち位置のものなのかがわかりづらい状態にあるということに気付きました。その結果として、WAI-ARIAの活用を含めたWebアクセシビリティ向上に取り組むことへのネガティブな印象が生まれてしまったり、理解が足りないままWAI-ARIAの属性を使うことでかえって問題が発生しやすくなってしまったりしている現状があるのではないかと思うようになりました。 そこでこの記事では、なるべくわかりやすい形で、WAI-ARIAそのものや、その中で登場する role 属性や、名前に aria- のプレフ

    role 属性とは、aria-* 属性とは、WAI-ARIA とは、いったい何なのか、いつ使うべきなのか - Qiita
    peketamin
    peketamin 2024/09/17
  • AWSを不正利用された際の反省と教訓 - Qiita

    反省 被害 AWSSESを利用され、約5万通のメールが不正に送信され、約10ドルの使用料が発生しました。また、焦ってルート権限のMFA設定時にアプリ(別のアプリ用の番号を選択し続ける)の選択を誤り、余計に焦ることになりました。 頭によぎった過去の悪夢 症状 DKIM設定成功通知: 不審なDKIM設定完了の通知を受け取りました(9月12日7時ごろ) 料金アラート: AWSからSESの使用料金が閾値に達したアラートが送信されました(9月13日9時ごろ) 不正なメール送信: 数万通の不正メールが送信され、料金が急増しました ドメインの登録と削除: 知らないドメインがAWSに登録されていました。至急登録されていたドメインを削除しました(9月13日11時ごろ) IAMユーザーでのログイン失敗: 一旦削除したのでホッとした1時間後、IAMユーザー権限でのログインができなくなり、焦りが増しました(9月

    AWSを不正利用された際の反省と教訓 - Qiita
    peketamin
    peketamin 2024/09/17
  • Pythonで作るポップなポモドーロタイマー - Qiita

    はじめに こんにちは!今回は、Pythonを使ってポモドーロタイマーを作成する過程を、要件定義から実装まで詳しく解説します。このプロジェクトを通じて、以下のスキルを身につけることができます: ソフトウェア開発のプロセス(要件定義、仕様策定、設計、実装) Pythonの基的な構文とオブジェクト指向プログラミング Tkinterを使ったGUIアプリケーションの作成 時間管理の基概念とその実装方法 それでは、プロジェクトの各段階を見ていきましょう。 1. 要件定義 まず、ポモドーロタイマーの基的な要件を定義します。 1.1 機能要件 25分の作業時間を計測するタイマー機能 5分の短い休憩時間を計測するタイマー機能 15分の長い休憩時間を計測するタイマー機能(4回の作業セッション後) タイマーの開始、一時停止、再開、リセット機能 現在のフェーズ(作業、短い休憩、長い休憩)の表示 完了したポモ

    Pythonで作るポップなポモドーロタイマー - Qiita
    peketamin
    peketamin 2024/09/16
  • テストカバレッジ100%を追求しても品質は高くならない理由と推奨されるカバレッジの目標値について - Qiita

    皆さんは 「カバレッジが高ければ、ソースコードの品質が高い」という誤解 をしていませんか?少なくとも私は今までテストカバレッジ100%を追求していました。「C0/C1カバレッジ100%」がユニットテストの完了条件として含まれているプロジェクトも多いかと思います。 稿では、「カバレッジが高ければ、ソースコードの品質が高い」という命題がなぜ誤っているのかを論理的に証明し、カバレッジを計測する当の目的、そして推奨されるカバレッジの目標値について紹介したいと思います。 「カバレッジが高ければ、ソースコードの品質が高い」はなぜ間違っているのか? カバレッジを計測する当の目的 バグを潜在させてしまう恐怖のテストケース・アンチパターン カバレッジの目標値は100%にするべきではない カバレッジの目標値は何%にするべきなのか? (テストカバレッジの種類については『ホワイトボックステストにおけるカバレ

    テストカバレッジ100%を追求しても品質は高くならない理由と推奨されるカバレッジの目標値について - Qiita
    peketamin
    peketamin 2024/09/15
  • WordPressのuploadsにあるファイルへの直接アクセスを制限(WP新仕様対応) - Qiita

    WooCommerceというWordPress用プラグインでショップを構築している。最近、デジタル商品(PDF)の販売もやり出しているのだが、一つ問題があって、WordPressはメディアファイルをアップロードすると/wp-content/uplaods/というディレクトリ以下にファイルが置かれるのだが、これには何も制限がかかってなくて、直接URLを入力したらファイルが表示されてしまう。これじゃ販売してる意味がないし、検索エンジンクローラーにも引っかかってしまう。 まぁFTP使って、直接アクセスできない領域に置けばいいじゃないかという話もあるのだが、諸事情からそれは見送り(詳細省きます)。次のような要件を.htaccessで実現することにした。 要件 デジタル商品(.pdf、.mp3、.zip)へのアクセスは禁止 ただし拡張子の前に_sampleと着いているものはアクセス可能。 e.g.

    WordPressのuploadsにあるファイルへの直接アクセスを制限(WP新仕様対応) - Qiita
    peketamin
    peketamin 2024/09/15
  • o1-preview大実験!ChatGPT o1は競プロの問題を解けるのかAtCoder (2024年9月版) - Qiita

    # Problem Statement Mr.LLM bought N items in a supermarket. The price of i-th item was A[i] dollars. Write a program that outputs the total price. # Constraints - 1 <= N <= 100 - 1 <= A[i] <= 100 (1 <= i <= N) - All input values are integer # Input N A[1] A[2] A[3] ... A[N] # Output Print the answer. # Sample Input 1 5 3 1 4 1 5 # Sample Output 1 14

    o1-preview大実験!ChatGPT o1は競プロの問題を解けるのかAtCoder (2024年9月版) - Qiita
    peketamin
    peketamin 2024/09/14
  • AWS PrivateLinkの真実:VPCエンドポイントとの関係性を徹底解説 - Qiita

    1. 背景 VPCエンドポイントを紹介する記事で「インターフェース型エンドポイント (AWS PrivateLink)」のような表現や、「PrivateLinkとは、AWSへのAPIアクセスをインターネットを経由せずに行えるインターフェースタイプのVPCエンドポイントです。インターフェースタイプはPrivateLinkと呼ばれています」といった説明をよく目にしたことがあるのではないでしょうか。 このような説明により、PrivateLinkがインターフェースVPCエンドポイントと同義だと誤解してしまう方が多いのではないかと懸念されます。 記事では、AWS VPCエンドポイントの種類、その使い分け、そしてVPCエンドポイントとPrivateLinkの関係について整理します。 AWS VPCエンドポイントには以下の3種類があります。 ゲートウェイエンドポイント(Gateway Endpoint

    AWS PrivateLinkの真実:VPCエンドポイントとの関係性を徹底解説 - Qiita
    peketamin
    peketamin 2024/09/11
  • Onenoteをmarkdown形式でエクスポートする - Qiita

    2025年にストアアプリ版のサポートが終わるらしいOneNoteユーザーの皆様、いかがお過ごしでしょうか。 OneNoteはとても良くできたツールですが、プログラムコードのシンタックスハイライト機能もなく、かといってペンツールや音声読み上げは使い所が分からない。 帯に短し襷に長しというツールであります。 今回、6年使用したOneNoteから移行する決心を固めたところ、markdownにエクスポートするツールを知ったのでその使い方を記事にします。 変換ツールと必要アプリのインストール Powershellスクリプトです。OneNote側で1ページ1docxに変換したあとpandocでmarkdownに変換しています。 githubからDLします。 pandocをインストールします。Chocolateyを使いました。 OneNote 2016をインストールします。アプリストア版では使えません。

    Onenoteをmarkdown形式でエクスポートする - Qiita
    peketamin
    peketamin 2024/09/10
  • [備忘録] iCloud上のディレクトリをgit管理すると痛い目にあう話 - Qiita

    出力したファイルの中から,バージョンファイルを抜き出し,バージョンファイルとオリジナルファイルの内容が同じであればバージョンファイルは心置きなく消していいことになる.内容が異なっている場合のみ,中身を確認して消すべきかそうでないかを確認する必要がある. そのため,消しても良いファイル一覧を取得するプログラムを作成する.例えば以下のように. (バージョンファイルは間にスペースがあるため少し面倒.ファイル出力するときに,一つのファイルとして表現するためにクォーティングする必要がある.) import re from typing import Optional, Tuple import filecmp with open("ls-files.txt") as f: files = f.readlines() pattern = r"(^.+)(\s[0-9]+)(.*$)" pattern

    [備忘録] iCloud上のディレクトリをgit管理すると痛い目にあう話 - Qiita
    peketamin
    peketamin 2024/09/10
    “絶対にiCloud上でコードを管理するな!!! ”
  • 「絶対にdisabled属性を避けて、aria-disabled属性を使わなければならない」わけではありません - Qiita

    「絶対にdisabled属性を避けて、aria-disabled属性を使わなければならない」わけではありませんHTMLアクセシビリティWAI-ARIA 最近、「アクセシビリティを向上させたいなら、HTMLの disabled 属性ではなく、aria-disabled 属性を使うべき」という主張を見かけますが、当にそうなのでしょうか? disabled属性を使っていても、スクリーンリーダーで要素を知覚できる そのような主張をしている人、それを受け止めた人の中には「 disabled 属性を使った要素はスクリーンリーダで読めなくなる」と誤解している人が少なからず存在するように思われます。しかしこれは正しい理解ではありません。 たしかに、disabled属性を付加している button 要素や input 要素、 select 要素、 textarea 要素は、Tabキーによるフォーカスはでき

    「絶対にdisabled属性を避けて、aria-disabled属性を使わなければならない」わけではありません - Qiita
    peketamin
    peketamin 2024/09/07
  • RAGは検索エンジンが命!Azure AI Search初心者入門 - Qiita

    はじめに こんにちは! AI エンジニアのヤマゾーです。 近年、生成 AI の進化が目覚ましく、生成 AI を活用したシステムの開発が盛んに行われています。その中で最も有名なテクニックが RAG です。RAG というのは検索拡張生成 (Retrieval Augmented Generation) の略で、質問の関連情報を検索し、質問と関連情報をセットで入力して回答させる技術のことです。 各企業ではこの RAG システムを積極的に導入していますが、ほぼ確実に課題になるのが検索部分の精度です。そして検索精度を上げるためには検索エンジンの知識が必要不可欠です。 記事では検索エンジンの筆頭サービスである Azure AI Search を題材に、検索エンジンの基的な仕組みや検索クエリの書き方について初学者向けに解説します。 RAG の検索部分を "Retriever" と呼びますが、この語源

    RAGは検索エンジンが命!Azure AI Search初心者入門 - Qiita
    peketamin
    peketamin 2024/09/05