タグ

ブックマーク / qiita.com (1,104)

  • 浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita

    どうも、浮動小数点数オタクのmod_poppoです。 昨日開催された ABC169 の C 問題が浮動小数点数の罠な問題だったらしいので、どこが罠なのか、そしてどうすれば罠を回避できるのかを解説してみます。 また、典型的な誤答に対しては、それを落とすためのテストケースも用意しました。 問題文(引用) まず最初に問題文を引用しておきます。 AtCoder Beginner Contest 169 | C - Multiplication 3 問題文 $A\times B$ の小数点以下を切り捨て、結果を整数として出力してください。 制約 $0\le A\le 10^{15}$ $0\le B<10$ $A$ は整数 $B$ は小数第 2 位まで与えられる 入力 入力は以下の形式で標準入力から与えられる。

    浮動小数点数オタクが AtCoder Beginner Contest 169 のC問題をガチで解説してみる - Qiita
    rydot
    rydot 2020/06/10
  • C++コルーチン拡張メモ - Qiita

    次期標準 C++20 に向けて導入が検討されている「コルーチン(Coroutine)」のお勉強メモ。 2020年6月現在、C++20 言語仕様へのコルーチン導入は正式に決定している。https://cpprefjp.github.io/lang/cpp20/coroutines.html 参照。 2018年4月現在、プログラミング言語C++の正式機能としてではなく、コルーチン拡張(Coroutines TS)として仕様定義される。Clang 5以降でサポート(要-fcoroutines-tsオプション)。 遅延実行 #include <future> #include <iostream> // 通常関数の定義 int AtLtUaE() { std::cout << "answer to life the universe and everything" << std::endl; re

    C++コルーチン拡張メモ - Qiita
    rydot
    rydot 2020/06/05
  • Linuxディレクトリ構造 - Qiita

    Linuxディレクトリ構造とファイルの種類 Linuxのディレクトリ構造もまともに把握できないまま開発をしていたのでこの機会に勉強してみました。 Linux入門者は、まずLinuxの構造について先に習得し、Linuxに適応するのに早いです。 Linuxファイルシステム構造 [全体構造図] 🚩me/はただのユーザー名の例として認識してください。 / (root) 最上のディレクトリであるルートディレクトリを意味。リナックスのすべてのディレクトリたちのスタート地点。すなわち、すべてのディレクトリを絶対経路で表記する際にこのディレクトリから始める必要がある。 /bin /binフォルダはBinary Folderの略で、OSの最小限の正常な駆動のため、すべてのユーザーが使用する実行ファイルが入っているフォルダ。 つまり、基的なコマンドが保存されたディレクトリで、cat、chmod、chown

    Linuxディレクトリ構造 - Qiita
    rydot
    rydot 2020/06/04
  • 独学者が気付きにくいこと(実践振り返り) - Qiita

    はじめに こんにちはばーんです! 今回は案件をこなすうちにレビュー(指摘)頂いた内容をまとめました。 1人で学習していると気付きにくい事が多くあるなぁ…と感じました。 実務に携わっていない方 実務経験はあるけど、チーム開発など他者と組んで仕事していない方 は見ていただけると気付きがあるのかなと思います。 結論 最初に書きますw 1. 独学だけでやりきらない方が良い メンターでなくとも、コミュニティなどで他者と交わりながら進めた方が絶対いいです。 独学だけだと知り得ない情報が沢山あるなぁと今回気づきました。 2. Gitお金払ってもいいので覚える 神ツールなので。これも独学でやり切るのは厳しいかも… GitHub PR(プルリクエスト)のお作法 できる限りわかりやすく これはなにもIT業界だけに限った話ではありません。上司に資料を見せる時、お客様に見せる時なるべくわかりやすい説明を心がけま

    独学者が気付きにくいこと(実践振り返り) - Qiita
    rydot
    rydot 2020/06/04
  • 2020年5月におけるPython開発環境の選択肢 - Qiita

    はじめに インストールすればすぐに書けて動かせるのが魅力のPythonですが、 実際に業務などでキチンと書こうと思ったら Pythonのバージョン管理ツール パッケージマネージャー エディター(IDE) リンター フォーマッター 型チェッカー くらいは最低限用意する必要があります。 しかしこの界隈、怒涛の勢いで日々新しいものがリリースされていて一概に「これがベストプラクティス」を提示するのが難しいんですよね。そこで今回は上記それぞれのツールについて「こんなものがあるよ」というのをご紹介したいと思います。 TLDR バージョン/パッケージ管理はpyenv + Pipenvがスタンダードだった時代は終わった VS CodeかVimを使うなら型解析にPyrightを導入するとよい テンプレートを用意しました 1. バージョン/パッケージマネージャー プロジェクトごとに異なるPythonのバージョ

    2020年5月におけるPython開発環境の選択肢 - Qiita
    rydot
    rydot 2020/06/04
  • Google社のテクニカルライティングの基礎教育資料がとても良かったので紹介したい - Qiita

    はじめに エンジニアにとって、仕様書などの技術的な文章を書くこと(テクニカルライティングとも言います)は避けて通れません。ただ20年来多くのエンジニアの方々と同僚として接してきて思うことは、エンジニアの方の中には「文章を書く」ということに苦手意識がある方が一定数いるということです。 でもこの「テクニカルライティング」のスキルは、才能というよりは一種の「技能」だと思うんです。ある一定の原理原則を理解して実践を繰り返すことで、必ず一定レベルで習得できるものだと著者は信じています。 もしこのテクニカルライティングの原理原則をまだ体系的に学習したことがない、または過去学習したが改めて再学習したいという方に、お勧めのコンテンツを見つけたのでご紹介します。 https://developers.google.com/tech-writing Every engineer is also a write

    Google社のテクニカルライティングの基礎教育資料がとても良かったので紹介したい - Qiita
    rydot
    rydot 2020/06/03
  • 深層学習界の大前提Transformerの論文解説! - Qiita

    この例に関する質問への回答を補足の項に記載しましたので、より良い理解のためにご参照ください。 1.3 モデル構造 トランスダクションモデル(ある文章を他の文章に変換するモデル(翻訳など))において主流なのは以下のようなエンコーダ-デコーダモデルである。 エンコーダ: 入力の文 $(x_1,\ldots,x_n)$ を $\boldsymbol{z}=(z_1,\ldots,z_n)$ へ変換 デコーダ: $\boldsymbol{z}$ から単語 $(y_1,\ldots,y_m)$ を出力。 ただし、1時刻に1単語のみで、前時刻のデコーダの出力を現時刻のデコーダの入力として使う。 Transformerは基的な大枠はエンコーダ-デコーダモデルでself-attention層とPosition-wise全結合層を使用していることが特徴。 つまり、以下の3つ(+2つ)のことが分かればモデル

    深層学習界の大前提Transformerの論文解説! - Qiita
    rydot
    rydot 2020/05/30
  • 英語の技術文書を早く読むには - Qiita

    英語技術文書を早く読むにはどうしたらいいでしょうか。 注意: この記事の目的は「技術文書について」「早く大意を読み取る」ことを目的としています。 技術文書でないもの,例えば,小説や詩には当てはまりません。 技術文書を読む場合でも,例えば,「論文を批判的に読むとき」や「扱いが悪いと故障する可能性のあるハードウェアのマニュアルを読むとき」には精読すべきですので,この記事は当てはまりません。 頻出英単語を覚える もし「英語技術文書を早く読みたい!」と悩んでいるとしたら,多くの場合,英語技術文書を読むのに,英単語をほぼ全て辞書を引いている,という状況だったりするのではないでしょうか? もしそうでしたら,正攻法となる主な対策は,頻出英単語を覚えるということだと思います。 例えば英語で書かれた論文があったとします。聞いたところによると, 70%は頻出英単語トップ1500(だったと思います。うろ覚

    英語の技術文書を早く読むには - Qiita
    rydot
    rydot 2020/05/30
  • 論文の読み方 [和訳] - Qiita

    はじめに この文章のターゲット この記事は、S. Keshav 著の How to Read a Paper という論文をラフに日語に訳してまとめたメモです。基的な文章の流れや内容はそのままですが、ところどころ改変 (表現を柔らかくフランクにしたり削ったり) していますので、原論文と見比べながら読んでください。 論文の読み方がイマイチ分からない人が読むと絶対に何かの発見があると思います。 論文の読み方 和訳 タイトル、著者 タイトル: How to Read a Paper バージョン: 2016年2月17日 著者: S. Keshav 所属: David R. Cheriton School of Computer Science, University of Waterloo Waterloo, ON, Canada Introduction 研究者であれば、毎年ものすごい時間を割

    論文の読み方 [和訳] - Qiita
    rydot
    rydot 2020/05/29
  • 第一回 WebGLスクール 「WebGLの概念」 - Qiita

    このたびwgld.orgの管理人であるdoxasさん主催のWebGLスクールに参加しました。 毎週火曜日の19:30〜22:00の全12回の講座となっています。 記念すべき第一回はWebGLの概念についてのお話でした。 WebGLとは何か ざっとWebGLとはなんなのか GPUに直接アクセスできるブラウザに組み込まれたAPI 来JSからOpenGLを呼び出すことはできない JSとOpenGLの間に入って、OpenGLを呼び出せるのがWebGL 直接GPUを利用できるので、とても高速 ブラウザが対応していても、OSやハードウェアが対応してなければ動作しない WebGLで作られたもの 3dbricks Urban Galaxy Online G-Star RAW | New Denim Arrivals FishGL thisway.js by stravaganza WebGL Fluid

    第一回 WebGLスクール 「WebGLの概念」 - Qiita
    rydot
    rydot 2020/05/29
  • サイゼリヤの間違い探しをロバストな画像処理で解く - Qiita

    幾何形状マッチングはOpenCVには非実装だったため、自動的に候補から除外されます。個人的にはかなり便利なマッチング方式だと思うので、実装してほしいんですけどね…。 次に、形状変化への強さは特徴点マッチングが優秀です。 テンプレートマッチングと幾何形状マッチングは、マッチングの元画像と対象画像が拡大・縮小・回転を用いて一致するものしか対応できません。 一方の特徴点マッチングは、拡大・縮小・回転に加え、せん断・歪みまで対応できます。冒頭にもあるように斜めから見た画像(=歪み変形した画像)同士を比較したいので、特徴点マッチングを採用しました。 ちなみに、拡大・縮小・回転・せん断が可能で、更に移動を実現できる変形をアフィン変換(変形)、このアフィン変換に歪み変形を加えたものを射影変換(変形)と呼びます。 画像の多くの箇所が同時に色味の変化を起こすことはないだろうと予想し、特徴点マッチングで問題な

    サイゼリヤの間違い探しをロバストな画像処理で解く - Qiita
    rydot
    rydot 2020/05/28
  • なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita

    Rust 1.0がリリースされたのは2015年の5月で、5年前のこととなります。自分は1.0 betaのころにRustを始めたので、なかなか感慨深いものです。この5年の間に、いくつもの企業でRustを採用、もしくはその検討がされるようになり、ゆるやかであるもののRustの普及が進んでいると感じます。 そこで、1.0から5年経ち、だんだんと普及しつつあるこの時期に、なぜRustを使うべき、学ぶべきなのか、改めてまとめてみようかと思います。Rustを簡単に紹介する場合、メモリ安全とパフォーマンスの両立、高い生産性をもたらす言語機能などが挙げられることが多いですが、自分なりにRustを学ぶ意味を掘り下げてみようと思います。 なお、以下の文章はほとんど個人的な経験に基づいて書かれたものですので、その点はご注意下さい。 Rustはほどよい機能を提供する言語である 世の中には様々なプログラミング言語が

    なぜRustを学ぶべきなのか 〜 5年経った今改めてまとめてみる - Qiita
    rydot
    rydot 2020/05/27
  • これがなくては生きていけない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
    rydot
    rydot 2020/05/27
  • Webサービスによくある各機能の仕様とセキュリティ観点(ユーザ登録機能) - Qiita

    この記事の目的 課題: Webサービスの各機能の仕様に関するセキュリティ情報があまりない Webサービスを設計するにあたり、よくある機能というのが存在するかと思います。 ユーザ登録 ログイン・ログアウト パスワード復旧 URLで共有 SNSログイン お気に入り登録 いいねボタン マイページ 通知 等・・・ これらに関して、自分の認識をまとめておきたい・意見をもらってブラッシュアップしたいと思い、記事を書きます。 大きい記事たくさん書くの大変なので、機能ごとに書こうかな・・・と思ってますが一つを育てていくかもしれないです。 前書いた記事が個人的には好評だったことも受けて、書いています。 ユーザ登録機能の仕様とセキュリティ toC向けサービスならかなりの割合で存在する機能です。よくある仕様パターンについて考えてみます。 この機能でユーザから取得するもの 認証情報(ID/パスワード) 連絡手段

    Webサービスによくある各機能の仕様とセキュリティ観点(ユーザ登録機能) - Qiita
    rydot
    rydot 2020/05/27
  • 不思議の国のSE用語 - Qiita

    不思議の国 SEが住んでいるところ、そこは不思議な不思議なお国柄です。 新たな国民として移住してきた人、特産物のシステムを買いに来た人など色々な人がこの国には存在します。 しかしこの国で話される言葉は 独特 です。 ぱっと聞いただけでは意味がわからなかったり、よく似た表現であっても微妙にニュアンスが違っていたり。 似たような表現を使い分けるその裏に、その人の意図や省略された文脈が隠されていたりもします。 どこの国でもコミュニケーションを間違うと非常に厄介ですが、そんなことにならぬよう、 お国言葉らしきもの をまとめてみました。 SEを代表例として、このお国言葉を話す人も、話される人も、改めて言葉の意味合いを見つめなおしてみると新たな気付きが得られるかもしれません。 なお、そんなことから 「絶対にSEしか使わない用語」を集めたわけではない のでその点ご了承くださいませ。 他言語版 @micr

    不思議の国のSE用語 - Qiita
    rydot
    rydot 2020/05/27
  • vulkan入門(目次) - Qiita

    はじめに 2018年12月 現在、vulkan apiができてから、2年の時間が経ちました. 英語で書かれた書籍、ドイツ語で書かれた書籍は数冊程度ですが、出版されています。 しかし、日語で書かれた書籍は、いまだ出版されていません。 すらりんラボ様から発売いたしました。 https://slash-labo.booth.pm/items/1572740 この記事では、最新のgtx1080を搭載したwindows10を使ってvulkanを使った、ゲームを作る方法を解説していきます。 (2018年12月 現時点でさえ,rtx2080, tensorCore, etc...といった 新しいハードウェアと新しい技術があるため最新とは言えないですが) この記事を読むことで、現代的なvulkanを使ったグラフィクスの作成が理解できるようになることを目的としています。 必要なコードは、なるべく自前で実装

    vulkan入門(目次) - Qiita
    rydot
    rydot 2020/05/27
  • C++で使える、クロスプラットフォームな低レベルグラフィックスライブラリ比較 - Qiita

    (英語版も書きました: Comparison of C++ Low-Level Graphics, Cross-Platform Frameworks and Libraries) 最近OpenGLばっかり書いていて、ふと、MetalやDirectXでも動くクロスプラットフォームなアプリも書きたいなと思ったので調べてみた。 今回調べてみたライブラリの特徴は、 C++で実装されている ( C++14/17 など詳細は別記 ) 低レベルグラフィックスAPIに対応 ( Vulkan、DirectX11/12、Metal など ) クロスプラットフォームで動く ( Win/Mac/Linux、iOS/Android など ) UnityやUE4に比べて、軽量もしくは拡張性・組み込み性が高く、フレームワークやライブラリとして自由に使えるもの。 なお、今回は低レベルグラフィックスAPIへの対応を重視し

    C++で使える、クロスプラットフォームな低レベルグラフィックスライブラリ比較 - Qiita
    rydot
    rydot 2020/05/22
  • GitHubをむっちゃ多機能にするためのChrome拡張を紹介するぜ - Qiita

    概要 GitHub上で動作するChrome拡張についてざっくばらんに紹介 検証をChromeで行っただけで、他ブラウザでも使えるものも含む ご注意 紹介してるもの同士の互換性は考慮していません。組み合わせによって動作しなくなる拡張もあります 拡張機能GitHubの変更を強く受けるため、突如使えなくなるリスクがあることをご認識ください プライベートリポジトリでは使用できない、あるいはAPIトークンを渡したり認可する必要があるものを含みます 記事で紹介している拡張はいずれも2020/05/03時点の最新版をChrome81系で動作確認済み Refined GitHub 説明不要なレベルで、これを入れておけばまず外れないので迷ったらコレ 詳細は別途紹介記事を書いてます GitHubを圧倒的に便利にするRefined GitHub のTips集 Octotree サイドバーにディレクトリツ

    GitHubをむっちゃ多機能にするためのChrome拡張を紹介するぜ - Qiita
    rydot
    rydot 2020/05/20
  • もうこれでVIM学習は最後にしよう! VIMチュートリアルと入門 - Qiita

    こちらの記事は、Daniel Miessler 氏により2020年03月に公開された『 Learn vim For the Last Time: A Tutorial and Primer 』の和訳です。 記事は原著者から許可を得た上で記事を公開しています。 Vim を学ぶ上での問題は、それが難しいということではなく、ずっとやり続けなければならないということです。このガイドでは、そのサイクルを断ち切り、今度こそ完璧にVim学習を完了できることをゴールにしています。 Vim 学習のリファレンスはオンラインで何十件もありますが、ほとんどのものは、すぐに超絶技巧を要求するか、あるいは基的なことだけ触れてあまり深く踏み込まないかのどちらかです。 このチュートリアルは、まずvim の思想を理解すること(これは永遠に皆さんの心の中に残ります)から始まり、現在お使いのエディタのスキルを超越して、VI

    もうこれでVIM学習は最後にしよう! VIMチュートリアルと入門 - Qiita
    rydot
    rydot 2020/05/20
  • C++コンパイラはあなたよりも良いコードを書く - Qiita

    最適化 皆さんご存じの通りC++という言語は速度しか取り柄がありません。複雑怪奇な構文、異常量のコンパイルエラー、何が起きるかわからない未定義動作たち、、、それでもなお私たちがC++を使い続けるのは、そう、極めて速いからです。ちょっと前に流行ったD言語や最近流行りのRustが速いという噂ですが、結局ほとんどの場面で速度においてC++に勝ててはいません。個人的な偏見ですがC++のように速度のみを重視し、安全性を捨てない限りRustに未来はないでしょう。まあ、人から聞いた噂によるとRustの標準ライブラリの中身はunsafeなコードが敷き詰められているらしく、なかなか速いようですが。いずれRustが廃れてUnsafe Rustの方が人気が出たりするかもしれませんね。とりあえず、最も速度面で優れている言語はC++といっても過言ではないでしょう。 そして、その圧倒的な速度を支えるのが何といってもC

    C++コンパイラはあなたよりも良いコードを書く - Qiita
    rydot
    rydot 2020/05/20