タグ

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

  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
  • 本番環境でsudo yum updateしてサービスが動かなくなった - Qiita

    環境 EC2 (Amazon Linux) Apache php7.1 私がやってしまったこと この事件が起きたのは2020年6月。既に稼働しているWebサービスでとあるデータ取得の処理が止まってしまっているので調査してほしいと頼まれました。また、サービスに影響が出るものだからなるべく早めに対処してほしいと言われました。 マネージャー 「今日の夕方までにはお願いね。もし難しそうだったら午後イチで一旦MTGしよう。14時までに連絡をください。」 わたし 「任せてください!」 ・・・・ とは言ったものの、番サーバーで起きている障害の調査は今までやったことがありませんでした(もちろん番サーバーにログインしたこともない)し、進め方も全く思いつきませんでした。しかも、対応するサービスの開発には携わったことがなく、sshログインの設定から行う次第でした。 まあ、今まで頼まれたタスクを期限内に終えら

    本番環境でsudo yum updateしてサービスが動かなくなった - Qiita
    jacoby
    jacoby 2020/12/02
    本番環境で変更(追加、削除含む)は、事前に手順書レビューや検証してないことはやらないほうが無難。不慣れなメンバなら特に。これは体制の問題だろ。
  • 本番環境でやらかしちゃった人 - Qiita Advent Calendar 2020 - Qiita

    昨年非常に盛り上がっていましたので作成させていただきました。 番環境でやらかしちゃった人のアドベントカレンダーです。 例) DB吹き飛ばした 番サーバをデストロイした ネットワーク設定をミスって番サーバにアクセス出来なくなり、サーバが世界から孤立した などなど... 以下の2点については必須項目なので、記述お願いします。 惨劇はなぜおこってしまったのか 二度と惨劇を起こさないためにどうしたのか もう二度とあの惨劇を繰り返さないために、みなで知見を共有しましょう。 過去 番環境でやらかしちゃった人 Advent Calendar 2019

    本番環境でやらかしちゃった人 - Qiita Advent Calendar 2020 - Qiita
    jacoby
    jacoby 2020/11/27
  • Pythonのオブジェクト指向プログラミングを完全理解 - Qiita

    オブジェクト指向 1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++Javaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++Javaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Cl

    Pythonのオブジェクト指向プログラミングを完全理解 - Qiita
    jacoby
    jacoby 2020/11/02
  • ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 最近、あまりプログラミングが得意でない人のサポートをする形で、長い時間にわたってペアプログラミングを行っている。そのなかで、気がついた悪い習慣と成長するための良い習慣というものをまとめてみる。 この記事のバックグラウンドとなる体系的知識がになりました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング あわせて読みたい 経営者マインドが足りない!vs. 現場に任せてくれない!の対立をなくすカードゲームをつくった話 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマ

    ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習
    jacoby
    jacoby 2020/10/21
  • 画像認識の大革命。AI界で話題爆発中の「Vision Transformer」を解説! - Qiita

    0. 忙しい方へ 完全に畳み込みとさようならしてSoTA達成したよ Vision Transformerの重要なことは次の3つだよ 画像パッチを単語のように扱うよ アーキテクチャはTransformerのエンコーダー部分だよ 巨大なデータセットJFT-300Mで事前学習するよ SoTAを上回る性能を約$\frac{1}{15}$の計算コストで得られたよ 事前学習データセットとモデルをさらに大きくすることでまだまだ性能向上する余地があるよ 1. Vision Transformerの解説 Vision Transformer(=ViT)の重要な部分は次の3つです。 入力画像 アーキテクチャ 事前学習とファインチューニング それぞれについて見ていきましょう。 1.1 入力画像 まず入力画像についてです。ViTはTransformerをベースとしたモデル(というより一部を丸々使っている)ですが、

    画像認識の大革命。AI界で話題爆発中の「Vision Transformer」を解説! - Qiita
  • Python初学者のためのPandas100本ノック - Qiita

    Information 2024/1/8: pandas , Polars など18を超えるライブラリを統一記法で扱える統合データ処理ライブラリ Ibis の100 ノックを作成しました。長期目線でとてもメリットのあるライブラリです。こちらも興味があればご覧下さい。 Ibis 100 ノック https://qiita.com/kunishou/items/e0244aa2194af8a1fee9 2023/2/12: 大規模データを高速に処理可能なデータ処理ライブラリ Polars の 100 ノックを作成しました。こちらも興味があればご覧下さい。 Polars 100 ノック https://qiita.com/kunishou/items/1386d14a136f585e504e はじめに この度、PythonライブラリであるPandasを効率的に学ぶためのコンテンツとして

    Python初学者のためのPandas100本ノック - Qiita
    jacoby
    jacoby 2020/09/26
  • 良いコードの書き方 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 チームによる継続的開発を前提としたコーディングのガイドライン。 特定の言語を対象としたものではないが、主に静的型付けのオブジェクト指向言語を想定している。 サンプルコードは別段の定めがなければSwiftで記載。 ガイドラインの目的 生産性を高め、メンテナンスコストを下げる バグが生まれづらくする 開発メンバー(特に新規参加者)がコードを理解しやすくする 初心者プログラマー教育 内容の説明 タイトルの頭についた【数字】は重要度。 高いほどシステムに与える影響が大きいが、低いものの方が影響が小さく改修しやすいものが多い。 【5】変数

    良いコードの書き方 - Qiita
  • 徳丸試験(ウェブ・セキュリティ基礎試験)の試験情報と勉強方法 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    徳丸試験(ウェブ・セキュリティ基礎試験)の試験情報と勉強方法 - Qiita
    jacoby
    jacoby 2020/08/17
  • 最近のポケモンはデジモンっぽいのか、ディープラーニングに聞いてみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに ポケモンについて何となく知っている人向けの記事です(デジモンは知らなくてOK) 3月ごろにポケモンたかさおじさんが集計したアンケートの分析をお手伝いしたところ、アンケートの自由記述回答の6353件中、155件もデジモンについて言及するコメントがあった。 「デジモンと区別付かないよね」 「もはやポケモンじゃない…。デジモン…。昔のデザインに戻ってほしいなぁ…。。。」 「主観ですが、伝説のポケモンが角張った印象で、デジモンのような印象を受ける。」 「全体的に毛がなさそうなツルッとしたフォルムの子達が増えた気がします。デジモンっぽい

    最近のポケモンはデジモンっぽいのか、ディープラーニングに聞いてみた - Qiita
  • ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita

    概要 pythonからOpenCVのテンプレートマッチ及びGUI操作モジュールを使うことで、 webブラウザ上の麻雀牌をBOTに認識・クリック操作させることができ、プレイの自動化ができました。 また、どの麻雀牌をクリックするかのロジック部分には機械学習を用いました。 テンプレートマッチの探索用画像を差し替えれば雀魂に限らず他の麻雀ゲーム全般で利用可能であり、機械学習の部分を変えれば、特定条件下で合理的選択を繰り返し求められるようなゲーム全般で応用が可能です。 ※内容理解の一助とするために記事内随所に雀魂のゲーム内画像を利用していますが、著作権保護等の観点から強いボカシを入れています。 対象読者 (麻雀が好きで)機械学習を触ってみたい人 WindowsGUI操作の自動化に興味があるけどOpenCVって何だろうって人 雀魂は好きだけど試練イベント走るのがマジ試練すぎて心が折れた人 過去に大学

    ネット麻雀(雀魂)をOpenCVと機械学習で自動化した話 - Qiita
    jacoby
    jacoby 2020/08/14
    そういやプラウザ三国志の自動化でバンされてた人いたね。このゲームは自動化ありのゲームなの?
  • 【一問一答】マヅコの知らない「異常検知」の世界 - Qiita

    これから異常検知を勉強される初心者、中級者の方のために一問一答集を作ってみました。 実際にあった質問も含まれますが、ほとんどの質問は、私が勉強しながら疑問に思ったことです。 なお、各質問には私の失敗談を添えております。皆さんは私のような失敗をしないよう 祈っております(^^)。異常検知に特化した内容となっておりますので、ご了承ください。 初心者の方向け 勉強の仕方編 Q:異常検知を勉強したいのですが、何から手をつけて良いのか分かりません。 A:書籍を買って読むのがおススメです。 最初、私はネット情報で勉強していました。しかし、それにも限界があります。 ところが、書籍(入門 機械学習による異常検知)を買って読んだところ、かなり知識を 得ることができました。最初から、書籍を買っていれば、一年くらい得することができたのに... と思うこともあります(^^; ただ、こちらのはディープラーニング系

    【一問一答】マヅコの知らない「異常検知」の世界 - Qiita
  • だから僕はpandasを辞めた【データサイエンス100本ノック(構造化データ加工編)篇 #1】 - Qiita

    データサイエンス100ノック(構造化データ加工編)のPythonの問題を解いていきます。この問題群は、模範解答ではpandasを使ってデータ加工を行っていますが、私達は勉強がてらにNumPyの構造化配列を用いて処理していきます。 次回記事(#2) はじめに Pythonでデータサイエンス的なことをする人の多くはpandas大好き人間かもしれませんが、実はpandasを使わなくても、NumPyで同じことができます。そしてNumPyの方がたいてい高速です。 pandas大好き人間だった僕もNumPyの操作には依然として慣れていないので、今回この『データサイエンス100ノック』をNumPyで操作することでpandasからの卒業を試みて行きたいと思います。 今回は8問目までをやっていきます。 今回使うのはreceipt.csvだけみたいです。初期データは以下のようにして読み込みました(データ型

    だから僕はpandasを辞めた【データサイエンス100本ノック(構造化データ加工編)篇 #1】 - Qiita
    jacoby
    jacoby 2020/07/01
  • 【VS Code + Marp】Markdownから爆速・自由自在なデザインで、プレゼンスライドを作る - Qiita

    TL;DR Visual Studio Code上で、Markdownから、こんな感じのデッキを生成できるようにします。 使用したファイル類は、GitHub tomo-makes/marp-styles にまとめました。 きっかけ 叩き台となる資料がなく、急ぎプレゼンをする機会があり、Marpで作成した 内輪では使っていたが、多くの目に触れるのは初めてで、もう少しデザインを調整したいと思った 今後も使いまわせるものを、スニペット、およびサンプルテーマ化しておこうと思い立った ついでにいろいろな図表の生成とデッキへの入れ方、必要そうな配色、素材のリンクをまとめておきたい Marpとは Marp: Markdown Presentation Ecosystem Markdownから、プレゼンスライドを生成してくれるツールです。 当初Electron製アプリとして開発されました。その後、より汎用

    【VS Code + Marp】Markdownから爆速・自由自在なデザインで、プレゼンスライドを作る - Qiita
    jacoby
    jacoby 2020/06/29
    Kroki.io便利そうだけど、WebAPIなので僕の職場ではNGだな。
  • 機械学習で使われる評価関数まとめ - Qiita

    はじめに 評価関数(評価指標)についてあやふやな理解だったので、代表的な評価関数をまとめてみました。 評価関数とはそもそもどんなものなのか、それぞれの評価関数はどんな意味を持つのか、実際に使う時のサンプルコードを簡単にまとめています。 評価関数の追加や内容の修正は下記でしています。 評価関数とは 評価関数とは学習させたモデルの良さを測る指標を指します。 目的関数との違い 機械学習を勉強していると、目的関数や損失関数、コスト関数などいろいろな名前を目にします。 まずは、目的関数との違いについて確認します。 目的関数 モデルの学習で最適化される関数 微分できる必要がある つまり、学習中に最適化されるのが目的関数、学習後に良さを確認するための指標が評価関数ということになります。 損失関数、コスト関数、誤差関数は目的関数の一部になるそうです。 (いくつか議論がありそうなのですが、ほとんど同じものと

    機械学習で使われる評価関数まとめ - Qiita
  • Raspberry Pi4 単体で TensorFlow Lite はどれくらいの速度で動く? - Qiita

    1. はじめに 世の中にはDeepLearningの学習済みモデルを公開してくださっている方がたくさんいらっしゃいます。記事は、そのうちのいくつかをラズパイ4で動かしてみて、いったいどれくらいの速度で動くのかを検証したものです。 計測対象モデルとして、Mediapipe および TensorFlow.js、TensorFlow Lite models で公開されている学習済みモデルを利用させて頂きました。またモデル実行フレームワークとしては、モバイル向けに整備が進む TensorFlow Lite (C++) を用いました。 計測にあたっては、公開されているモデルをそのまま動かすだけでなく、一般的な高速化手法である下記の2手法を両方試し、その効果も計測しました。 [1] モデルをint8量子化する方法 演算精度に多少目をつぶる代わりに、NEON等のSIMD演算器による並列処理の並列度をさ

    Raspberry Pi4 単体で TensorFlow Lite はどれくらいの速度で動く? - Qiita
    jacoby
    jacoby 2020/06/06
    やっぱJetsonすごいな。
  • Google社のテクニカルライティングの基礎教育資料がとても良かったので紹介したい - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに エンジニアにとって、仕様書などの技術的な文章を書くこと(テクニカルライティングとも言います)は避けて通れません。ただ20年来多くのエンジニアの方々と同僚として接してきて思うことは、エンジニアの方の中には「文章を書く」ということに苦手意識がある方が一定数いるということです。 でもこの「テクニカルライティング」のスキルは、才能というよりは一種の「技能」だと思うんです。ある一定の原理原則を理解して実践を繰り返すことで、必ず一定レベルで習得できるものだと著者は信じています。 もしこのテクニカルライティングの原理原則をまだ体系的に学習し

    Google社のテクニカルライティングの基礎教育資料がとても良かったので紹介したい - Qiita
    jacoby
    jacoby 2020/05/25
    基本的にドットリストは使わずナンバーリスト使用するようにしていた。「項番1は~」と指定して議論したり、あとの文章で補足できるから。
  • これがなくては生きていけないVS Codeエクステンション10選 - Qiita

    VisualStudioCodeは大人気なだけあって、有能なエクステンションが次から次へと出てきますね。 色々とっかえひっかえ試して遊んでいる人も多いのではないでしょうか。 なんかMinecraftのMOD環境構築と同じ空気を感じますね。 (環境ができたところで飽きて遊ばなくなる) まあ一番手っ取り早いのは、既に評価の固まっている手堅いエクステンションを導入することです。 ということで以下はSahil Bondre( Twitter / GitHub / LinkedIn / Instagram / 個人HP )による記事、💡 10 VS Code extensions I can't code withoutの日語訳です。 💡 10 VS Code extensions I can't code without VSCodeは私のお気に入りのエディタです。 存在するコードエディタの

    これがなくては生きていけないVS Codeエクステンション10選 - Qiita
    jacoby
    jacoby 2020/05/19
  • ビジネスで使えるPythonを使った統計的データ分析手法まとめ - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    ビジネスで使えるPythonを使った統計的データ分析手法まとめ - Qiita
    jacoby
    jacoby 2020/03/22
  • 製造現場向けの自動化ツールをPythonで作る時に留意すること - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事のモチベーション 昨年、生産技術職からデータ分析業に転職し、Pythonを書く機会が多くなりました。今は機械学習用の前処理ツールを開発する案件に携わっています。そんな中、生産技術者として働いていた時のことを顧みると自動化できた作業が色々あったなーと思いました。転職後に得たPythonの知識と生産技術者時代の知見を踏まえて、再び製造現場で働く際に使えそうなネタを記載します。同じようなニーズに直面している方の参考にもなれば幸いです。 記事は既存技術を組み合わせてこうしたら良さそう!ということを記載したものであり、技術的に目新しいこ

    製造現場向けの自動化ツールをPythonで作る時に留意すること - Qiita
    jacoby
    jacoby 2020/03/21