タグ

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

  • すべての開発者へ。すごいGitHubリポジトリ10選 - Qiita

    記事は、Simon Holdorf氏による「10 Extraordinary GitHub Repos for All Developers」(2021年4月4日公開)の和訳を、著者の許可を得て掲載しているものです。 こちらもどうぞ すべてのウェブ開発者へ。人気GitHubリポジトリ9選 面接のリソース、build your own X、優れたパブリックAPIのリストなど Photo by Vishnu R Nair on Unsplash はじめに GitHubは、あらゆる種類の技術、フレームワーク、ライブラリ、コレクションなどを共有するためのNo.1プラットフォームです。しかし、その巨大さゆえに、最も有用なリポジトリを探すのが難しいという問題もあります。そこで私は、すべてのソフトウェアエンジニアに大きな価値のある、素晴らしいリポジトリ10選を作ることにしました。すべてに多くのGitH

    すべての開発者へ。すごいGitHubリポジトリ10選 - Qiita
  • 英語力と技術力向上のための海外Tech系Youtuber10選 +n - Qiita

    身につまされる英語力問題。手っ取り早く英語を習得するなら海外に行ってしまうが最善なはずですがこのコロナ禍、身近なところで英語に触れつつ技術も勉強したい?といえば、動画です。 10 Developers You Should Follow to Improve Your Skills (スキルを上げるための、フォローすべき開発者10選) という記事があったので10人をまとめた。プラスオマケ。それぞれ実際に動画を見てみての補足付き。 1. Ben Awad (ベン・アワド) ソフトウェア開発者。ReactReact Native、GraphQLTypescript、Node.js、PostgreSQLPython、その他あらゆるコーディングについて紹介。React.jsやGraphQLの開発者にお勧め。ビッグ/テック コーディングインタビューの準備を手ほどきしている。「アルゴリズム形式の

    英語力と技術力向上のための海外Tech系Youtuber10選 +n - Qiita
  • 技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita

    はじめに 稿は、ソフトウェア開発を進める際に直面する様々な技術的な意思決定やライブラリ・フレームワーク・XaaS等を選択し正しく活用していくのかについての考え方をサポートすることを目的としています。「すべてにおいてこのようなワークフローを通じて検討すべきである」という主張ではありません。読者の抱える問題領域に応じて、必要な箇所を取捨選択するための1種の考え方を提供するものです。 そもそもアーキテクチャ・技術選定に時間をかけるべきか まず第一に伝えておきたいことは、技術選定やアーキテクチャ設計に常に慎重であるべきではないということです。ソフトウェアの規模やライフサイクルに応じて、そもそも時間をさく必要がないということも多くあります。書き捨てのシェルスクリプトにも読みやすいコードを求めて書くことは非常に重要ですが、だからといって組織だって議論・検討するようなものでもないのです。一方で、5年も

    技術選定/アーキテクチャ設計で後悔しないためのガイドライン - Qiita
  • エンジニアなら知っておきたい障害報告&再発防止策の考え方 - Qiita

    システムには障害がつきものです。どんなにしっかりと作られたサービスであっても思わぬところで、バグやミスが発覚して、トラブルになるものです。大事なのはこういった障害を次への糧にしていくこと。失敗というのは大事な資産なので、管理できるようにしましょうという話。 あわせて読みたい あきらめるにはまだ早い!ソースコードの品質向上に効果的なアプローチ メンタリングの方法について基礎をまとめました。内心でなく行動を変えることが障害報告とも共通します。 新入社員が来てメンターになれって言われたけど、どうすればいいのかという対話テクニック 半年で40kg痩せた!ダイエットでわかるリーンなプロジェクトマネジメント手法 心理的安全性ガイドライン(あるいは権威勾配に関する一考察) 障害の種類と障害報告について 障害には、小さなもの、たとえば画面に表示されているテキストの乱れから、すべての画面で50xエラーが発生

    エンジニアなら知っておきたい障害報告&再発防止策の考え方 - Qiita
  • パケットキャプチャツールをつくる - Qiita

    はじめに ネットワークと C 言語の勉強を兼ねて、簡易的なパケットキャプチャツールをつくってみました。参考にしたのは「ルーター自作でわかるパケットの流れ」という書籍です。 表紙に書かれている「ネットワークはどのようにつながるのかパケットの気持ちになって考えてみたことはありますか?」というコメントにが若干引いておりましたが、こういったディープな内容のは中々ないので有り難かったです。なお、このはタイトルのとおりルータを自作することがゴールになっていて、パケットキャプチャツールの作成はそのための練習という位置付けです。 また、特別講座 ネットワークプログラミング ( FWをつくろう )というサイトも非常に参考になりました。図入りで説明されていてとても分かりやすかったです。 ちなみに、C 言語は大学の時に少しかじったものの、ほぼ初心者に近い状態だったので Udemy の「イメージでわかる!基

    パケットキャプチャツールをつくる - Qiita
  • 画面をデザインするということ - Qiita

    この記事は社内の勉強会で話した内容を再編したものです。 私自身はPC/ブラウザ/スマホのアプリ開発をしている1エンジニアにすぎないのですが、対客や要件定義から開発、運用、そしてUIのデザインを担当しており、自分なりに伝えられるものがないかと試みたものです。 デザインとは デザインとは単に見た目だけの話ではなく、「ビジネス」と「ユーザーが得る体験価値」から始まり、それを実データと結びつけながら人の認知を通してどう見せるのかという作業です。 始まりの部分は最近だとUXデザイナー、終わりの部分はUIデザイナーとかグラフィックデザイナーとか呼ばれるような人の仕事です。そしてそれらを形にするのがエンジニアです。 画面を設計するまでの作業 ギャレットのUX5段階モデルに従って、どういったことを考えないといけないのか確認します。 (実際にUX5段階モデルを意識して仕事してるわけではありませんが、何かしら

    画面をデザインするということ - Qiita
  • 開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita

    はじめに ソフトウェア開発のチームの生産性や健全性というものは、内部の体感的として理解できるものの、外部の人間からは見えにくいものです。こういった情報の非対称性は開発チーム外の人々との関係の中での問題の原因になってきました。 また、複数の開発チームやプロダクトを束ねるEM、CTOや、管理職にとってそれぞれの状況を客観的な数字やグラフで可視化することは、全体的な戦略を考える上でも重要な参考情報になります。ですが、アンケートやプロジェクト管理を増やすほど、どんどんと開発メンバーに負担をかけてしまうことになり、計測のし過ぎによる疲れなども誘発してしまいます。 稿では、gitリポジトリのログ情報から、いくつかのグラフを生成し、チームの状況を可視化するためのツールgilotを作成したので、その目的と意図、そして使い方、注意点を解説します。 アプローチ方法 gilotのアプローチは、git log

    開発チームの生産性・健全性を客観的に知るためにリポジトリ履歴から機械的に可視化するツールを作った - Qiita
  • 転職したらKubernetesだった件 - Qiita

    TL;DR Kubernetes がどのように、人間の作業を自動化しているのかを、実際に Kubernetes がやっている作業を手作業で行なう ことで学びましょう。 このQiita の内容は、CloudNative Days Tokyo 2019 における発表の、「転職したらKubernetesだった件」を書き下ろし、実際にデモが行えるように修正を加えたものになります。 YouTube Speakerdeck この物語はフィクションであり、登場する団体名・会社名・人名等は架空のもので、実在する団体・会社・人物等とは、一切、関係がありません。 これまでのあらすじ ある日、某Z社に転職した稲津さんに与えられた仕事は、“Kubernetes の一員”になることだった!? 某Z社は、親会社からの依頼で Kubernetes クラスタを運用しなければならなくなりましたが、 「Kubernetes

    転職したらKubernetesだった件 - Qiita
  • AIに眼を書かせてみた👀 (無料でGPUを使ってpix2pixを試す) - Qiita

    ↑今回使う教師データ 概要 Google Colabを使うとGPUを無料で使えて,TensorFlowとかを使うのも超簡単! pix2pix使って遊んでみようぜ っていうお話 前提知識 ある程度Pythonがわかる →深層学習等の知識はほぼ0でできます Google Colabとは 別名は「Google Colaboratory」 Google Colabのチュートリアルページでの解説は以下の通り。 チュートリアルページ→Hello, Colaboratory - Colaboratory 箇条書きでまとめると Google Drive内でプログラムがかける プログラムはJupyterノートブックっぽくも書ける ブラウザ上で機械学習の開発環境を使える GPUが無料でつかえる(ただし連続使用12時間,マイニング等は禁止)() Jupyterノートブックでなく,いわゆる普通の***.pyのよう

    AIに眼を書かせてみた👀 (無料でGPUを使ってpix2pixを試す) - Qiita
  • 無人コンビニ「AmazonGo」を実現している技術について、どの日本語記事よりも詳しく調べてみる - Qiita

    記事の概要 巷で話題になっている無人店舗「Amazon Go」。「コンビニの店員いらなくなるんちゃう?」と話題になっているので、技術者の端くれとして、それを可能にしている技術について知るべく、日語でいろいろ調べてみたのですが、参考になる記事が全く出てきませんでした。 なので、Re:MARSというAmazonのカンファレンスイベントの記事や、その他英語・日語、さまざまな技術系記事を参考に、解説記事を書いてみました。(引用記事は一番下を参照) 技術系の話ですが、細かいことは端に置いて、大枠だけ理解できるように書いたので、ぜひ最後まで読んでみてください。 ※重要 記事内の情報は、Amazon Goの内外の方が発信してくださった情報をもとに僕が推測したものです。誤りがある可能性が十分にありますので、ご承知おきください。 また、著作権には最大限注意して執筆しましたが、もし万が一修正が必要な点があ

    無人コンビニ「AmazonGo」を実現している技術について、どの日本語記事よりも詳しく調べてみる - Qiita
  • JSON にもコメントを書きたい - Qiita

    JSON の構文は至ってシンプルです。 JSON は名前(キー)と値のペアがセットになった「オブジェクト」から構成されています。 キーはダブルクォートでくくられた文字列です。 値はダブルクォートでくくられた文字列、数値、真偽値、null 値、配列、またはオブジェクトです。 キーと値はコロン( : )で区切ります。 ペアとペアの間はカンマ( , )で区切ります。 前後を中括弧( { , })で挟みます。 { "文字列": "文字列", "数値": 0, "真偽値": true, "null値": null, "配列": [ "要素1", "要素2" ], "オブジェクト": { "キー": "値" } } そう、JSON にはコメントを記載するための構文がないのです。近年では設定ファイルなどで利用されることも多い JSON ですが、コメントによる説明が不要なキーを名付けることは現実的ではあり

    JSON にもコメントを書きたい - Qiita
  • 【SRE Next 2020】発表資料まとめ - Qiita

    Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark themeWhat you can do with signing up

    【SRE Next 2020】発表資料まとめ - Qiita
  • 2020年の開発者が知っておくべき11の必須スキル - Qiita

    以下はjavinpaul( Webサイト / Twitter / Facebook / dev.to )による記事、11 Essential Skills Software Developers should Learn in 2020の日語訳です。 なおリンク先URLは元記事のままであり、和訳にあたり変更などは行っていません。 11 Essential Skills Software Developers should Learn in 2020 注意事項:この記事にはアフィリエイトリンクが含まれています。 この記事に記載されているリンクを踏んで製品やサービスを購入すると、私が利益を受けとることがあります。 ソフトウェア開発を始めてしばらくすると、優れたプログラマになるには何をすればいいのかという考えが時によぎるでしょう。 より良い開発者になるために、2020年には何を学ぶべきでしょう

    2020年の開発者が知っておくべき11の必須スキル - Qiita
  • 典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita

    はじめに --- DP は役に立つ はじめまして。NTTデータ数理システムでアルゴリズムを探求している大槻 (通称、けんちょん) です。 好きなアルゴリズムは最小カットやマッチングですが、会社ではなぜか「DP が好きな人」と呼ばれています。 巷ではよく「DP なんて実務では使わない」といった言説が定期的に流れますが、そんなことはないです。僕自身この 2 年間で DP が使える実務案件に 3 件くらい関わりました! それはともかくとして、DP を学び立ての方がよく抱く悩みとして「バリエーションが多すぎて混乱するし、統一的なフレームワークがほしい」というのがあります。確かに DP のバリエーションは非常に多岐にわたるのですが、そのほとんどが以下の 3 つのフレームワークで説明できると思います: ナップサック DP 区間 DP bit DP 今回はこのうちのナップサック DP について、とにかく

    典型的な DP (動的計画法) のパターンを整理 Part 1 ~ ナップサック DP 編 ~ - Qiita
  • lodash やめ方 - Qiita

    みなさん、 lodash で消耗してますか? 私は消耗しています。 なぜ lodash で消耗するかというと、とにかく思考停止でインストールされ、 node_modules 下で大量に重複します。サイズが大きいlodashが複数バンドルされてビルドされると、重篤なパフォーマンス上の問題を引き起こします。 lodash には実装上の問題もあり、異様に丁寧に、そして富豪的に作られており、その結果ビルドサイズが無駄に大きいです。丁寧に作られて入るのですが、現代のフロントエンド水準や一般的なポリフィルと噛み合っていません。というわけで、常々やめたいと思っています。 ちゃんとES201xを追ってる人からすると、ほとんどの lodash のメソッドは不要に見えるはずです。エントリは、思考停止で lodash で実装しようとする人に、ちょっと考え直しては? と投げつける用の記事になります。 現代におい

    lodash やめ方 - Qiita
  • npmのパッケージグローバルインストールは憲法違反です。 - Qiita

    こんな感じでインストールすると、my_project/node_modules/の中にパッケージがインストールされます。 違い ローカルインストールの利点としては、プロジェクト毎にpackage.jsonで管理をするため、作ったプロジェクト番環境や他の人の環境に渡すことが簡単になります! そして、いろいろなプロジェクトに手を出す際に、バージョン管理が簡単になります! そしてグローバルインストールと違い、パソコンの環境を汚染しないため気持ち良いです! CLI系のパッケージはどうするの グローバルインストールをした場合のCLIパッケージの実行ファイルは皆さんがnode.jsをインストールした際にパスを通したディレクトリになります。 そして、ローカルインストールをした場合の実行ファイルのインストール先はmy_project/node_modules/.bin/ディレクトリになり、プロジェクト

    npmのパッケージグローバルインストールは憲法違反です。 - Qiita
  • 作業時間を簡単に可視化したい!! - Qiita

    シチュエーション 今日もいっぱい作業したな・・・あれもしたしこれもやったし・・・ でもあの作業はどれくらいかかってやったっけ・・・って時に役立つツールを紹介します。 使用するもの WakaTime これを使うことで自動でどのくらいの時間、どの時間帯に何の作業をしていたかを可視化してくれます!! 対応ソフト Plugin install instructions 現在これだけの数のIDE(一部ブラウザ等もあります)に対応しているためほとんどの方が使用できると思います!! アカウント作成 まずはアカウント作成をしましょう。GitHubアカウントでもログインできるのでそちらが楽かもしれません。 インストール方法 各エディタごとのインストール方法を書くととんでもない量になってしまうのでPlugin install instructions にある各エディタごとのインストール方法を見てください。 ち

    作業時間を簡単に可視化したい!! - Qiita
  • OpenCV をビジュアルプログラミングできるアプリを Electron + Vue.js で作成 - Qiita

    要約 Electron + Vue.js で、OpenCVをビジュアルプログラミング的に実行できるアプリ(仮称: OpenCVFlow)を自分の勉強がてら作ってみました。 上の動画のように、画像処理を定義したブロックを並べ、それをリンクでつなげることで、処理を順次実行して結果を確認、保存することができます。機能としてはそれほど多くなく、実用まではいかないかもしれませんが、なにか参考になれば幸いです。(個人的には、ElectronやVue.jsを格的に使用するのは初めてでしたが、それなりに動くものが作れて満足しています。) 採用技術 アプリケーションエンジン: Electron フロントエンドフレームワーク: Vue.js UIフレームワーク: Photon OpenCVライブラリ: opencv4nodejs デザインパターン: アトミックデザイン アトミックデザインについて 今回は、U

    OpenCV をビジュアルプログラミングできるアプリを Electron + Vue.js で作成 - Qiita
  • githubで最もやべー関数を発掘する - Qiita

    はじめに 先日、職場で「自分が 改修したor 書いちゃった いちばんやべー関数」ネタで盛り上がりました。 みんないろいろ話してくれましたが、やっぱり僕の書いた「コマンドパターンのメインループ関数(1500行)」の圧勝でした。 なんであんなコード書いたんだろ。 そこで、今日は僕の傷ついたプライド癒すべくgithubから「世界でいちばんやべー関数」を発掘します。 つまり、「俺が書いた関数よりやべー関数に会いに行く」 結論 マジでやべー関数は次の2つ 「opencvリポジトリのcv::agast_cornerScore<AgastFeatureDetector::AGAST_7_12s>関数」(複雑度1868) 「SuiteCRMリポジトリのOpenTag関数」(複雑度1509) 言語毎の傾向に着目すると... javascriptにはやべー関数が多い python/java/swift/rub

    githubで最もやべー関数を発掘する - Qiita
  • わかりやすいデザインを考える - Qiita

    若い頃、趣味でFlashサイト/ゲームを作って友達に見てもらい意気揚々と感想を聞くと、 「どうしたら良いかわからない」 「変わったデザインだね」 といった評価をもらい、「あんなの飾りです。偉い人にはそれが分からんのですよ。」という名言を思い出しながら憤りを感じつつも落ち込んでました。 言われてみると当たり前なんだけど慣れていない人だと結構失敗するかもしれないと思い、今回投稿してみました。 デザインにおける「わかりやすさ」とは 迷わないこと 何が起きるのか予想ができること 安心できること デザインにおける「わかりやすさ」を説明するとこんな感じでしょうか。 では、WEBやアプリでは具体的にどういったことを考えれば良いのでしょうか。 ユーザーの行動から順を追って考えてみます。 PCであればこんな行動をします。 画面を見る マウスを動かす クリックする それでは「画面を見て、次の動線までマウスを持

    わかりやすいデザインを考える - Qiita