タグ

ブックマーク / qiita.com (2,516)

  • デバッグ力を高める! ~5 年間の経験から学んだ、競プロ・アルゴリズム実装におけるバグ取りの戦略~ - Qiita

    こんにちは、大学 1 年になったばかりの E869120 です。 私は 5 年前に趣味競技プログラミングを始め、AtCoder や日情報オリンピックなどに出場しています。ちなみに、2021 年 5 月 5 日現在、AtCoder では赤(レッドコーダー)です。 今回は、アルゴリズムや競技プログラミングの問題を速く解くために必要な、効率的なデバッグの方法について記したいと思います。是非お読みください。 1. はじめに 皆さんがプログラミングの問題を解いていく際に、次のような場面に遭遇したことはありますでしょうか。おそらく、読者の大半が「はい」と答えると思います。 ソースコードに謎のミスを埋め込んでしまったせいで D 問題が解けない… ああ、プログラムを 1 文字変えただけで WA(不正解)が AC(正解)に変わった、悲しい… このように、プログラムにバグ(プログラム実装上のミス)を埋め込

    デバッグ力を高める! ~5 年間の経験から学んだ、競プロ・アルゴリズム実装におけるバグ取りの戦略~ - Qiita
  • シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita

    はじめに ことの始まりは「シェルスクリプトでツールを作ったけど速度が遅くて使い物にならなかったので供養」というツイートを見たからです。コードを見てみると、実例をあまり見ないシェルスクリプトのリファクタリング例として丁度良い内容と分量だったため記事にいたしました。記事を書くにあたりコードの利用を快く承諾していただいた @Hayao0819 様にはこの場を借りて御礼を申し上げます。 内容は章立てで構成しており、序章で事前調査をし、第一章で一般的なリファクタリング、第二章でパフォーマンスを重視したリファクタリング、終章で少し余談をして締めくくっています。最初はパイプは並列処理されるから速くなるというのは神話(そうとは限らない)についても書いていたのですが流石に長いので分けました。それでも書きたいことを色々書いていたらめちゃくちゃ長くなってしまいましたので読み物として私がどんなことを考えながらリフ

    シェルスクリプト リファクタリング ~遅いシェルスクリプトが供養されてたので蘇生して256倍に高速化させました~ - Qiita
  • 混沌を極めるWindowsのssh-agent事情 - Qiita

    どうしてこうなった。 何の話? WindowsでのSSH-AGENTとSSHの話です。 この記事での用語: SSHとssh, SSH-AGENTとssh-agent この記事では、SSH-AGENTと書いたときにはカテゴリとしてのSSHエージェントを意味します。 ssh-agentと書いたときには、実行プログラムとしてのssh-agentコマンドを意味します。 同様に、SSHと書いたときにはカテゴリとしてのSSHクライアントを意味します。 sshと書いたときには、実行プログラムとしてのsshコマンドを意味します。 SSH-AGENTって? SSH-AGENTは、秘密鍵での署名を代行1してくれるツールです。 SSH-AGENT に秘密鍵をロードしてしまえば、あとはパスワード(パスフレーズ)入力なしでSSH認証できる agent forward機能を使うことで、SSHした先でさらにSSHすると

    混沌を極めるWindowsのssh-agent事情 - Qiita
  • アルゴリズム・AtCoder のための数学【後編:数学的考察編】 - Qiita

    0. はじめに こんにちは、大学 1 年生になったばかりの E869120 です。記事は、 アルゴリズム・AtCoder のための数学【前編:数学的知識編①】 アルゴリズム・AtCoder のための数学【中編:数学的知識編②】 からの続きです!!! ※前編・中編を読んでいなくても理解できる、独立したトピックになっているので、ご安心ください。 後編から読む方へ 21 世紀も中盤に入り、情報化社会が急激に進行していく中、プログラミング的思考やアルゴリズムの知識、そしてアルゴリズムを用いた問題解決力が日々重要になっています。 しかし、アルゴリズム構築能力・競プロの実力は、単純にプログラミングの知識を学ぶだけでは身につきません。近年、数学的なスキルが重要になりつつあります。実際、私はこれまでの経験で「数学の壁で躓いた競プロ参加者」をたくさん見てきました。そこで記事では、 AtCoder のコン

    アルゴリズム・AtCoder のための数学【後編:数学的考察編】 - Qiita
  • オブジェクト指向プログラミングとドメイン駆動設計を学ぶのに適切な書籍とおすすめの読む順番 - Qiita

    オブジェクト指向プログラミングが学べる書籍たち もし私が今から最初から学ぶならこの順番でこの読むだろうという紹介です。 新人プログラマの方々は右も左も分からないというところからスタートとなるため、オブジェクト指向プログラミングを学ぶときに何から学べば良いか全くわからないという状況かと思います。 オブジェクト指向プログラミングを学んでいると自然と出会うドメイン駆動設計についても同様です。 そうした方々が書籍から学ぼうとした場合に、少しでも効率良く進められる順番を示してあげられれば良いなと思って紹介します。ただし、各書籍についての詳細な説明は書いていません(というか結構忘れててかけない)…。 なお、前提言語はJavaで言語構文にも十分詳しいことが大前提です。 以降、オブジェクト指向プログラミングはOOPと略します。 現場で役立つシステム設計の原則 OOPらしさの雰囲気がわかります 入り口に最

    オブジェクト指向プログラミングとドメイン駆動設計を学ぶのに適切な書籍とおすすめの読む順番 - Qiita
  • プログラマにも読んでほしい「QC検定にも役立つ!QCべからず集」OSEK(71) - Qiita

    QCの基はデータ解析。データ解析ばかりしていて、仕事に役立てない人をいっぱいみてきた。 ある日、ある人の言葉から、筋書きを考えていたら、それ自分かもってなった。 データサイエンティストの気づき『勉強だけして仕事に役立てない人。大嫌い』それ自分かもってなった。 https://qiita.com/kaizen_nagoya/items/d85830d58d8dd7f71d07 OSEK OSを利用するにあたって、設計にあたっての証明と、HAZOPによる安全分析と、成果に対する品質測定を行ってきた。 QC検定にも役立つ! QCべからず集 すごく内容がよい。 プログラマの方にも読んで欲しいと思い、筆をとりました。 はじめに(introduction) 統計、確率を学べば、因果関係が大事なのではなく、時系列の推移が大事だとわかる。 統計力学、量子力学、遺伝子工学、疫学などの分野で常識になると嬉し

    プログラマにも読んでほしい「QC検定にも役立つ!QCべからず集」OSEK(71) - Qiita
  • 無料になったIntel compilerをCentOS8にインストールしてみる - Qiita

    インテルのoneAPIのニュースとかは見ている方も多いかと思いますが、この流れで一番大きなインパクトは今まで高嶺の花だったIntel compilerが2021年になってから実質的に無料になってしまったということです。こうでもしないとNVIDIA1には対抗できないってことなんでしょうけど、このディープラーニングの思わぬ副産物に対して従来型HPCユーザーも恩恵にあずからずにいるわけにはいかないでしょう。 とりあえずCentOS8へのyum (dnf)を使ったインストールはとても簡単だったので、手順を紹介することにします。とりあえず家のガイドはこちらから。やるのはyumのリポジトリを作ってinstallコマンドを打つだけです(root権限で行います)。 yumでBase kitを入れる /etc/yum.repos.d/oneAPI.repoを以下の内容で作ります [oneAPI] name

    無料になったIntel compilerをCentOS8にインストールしてみる - Qiita
  • Java 16新機能まとめ - Qiita

    Java 16が2021/3/16にリリースされました。 多くのプログラマに関係ありそうな変更は、record、instanceofパターンマッチの正式化、Stream.toListです。またTLS1.0と1.1が無効になっているので古いMySQLなどへの接続でハマることがあるかもしれません。 詳細はこちら Java SE 16 Platform JSR 391 JDK 16 GA Release APIドキュメントはこちら Overview (Java SE 16) MacLinuxでのインストールにはSDKMAN!をお勧めします Oracle OpenJDK以外に無償で商用利用できるディストリビューションとしては、次のようなものがあります。 AdoptOpenJDK Liberica JDK Amazon Corretto 16 Microsoft Build of OpenJDK

    Java 16新機能まとめ - Qiita
  • エンジニアはどこまで勉強すればよいのか - スキルマップと生存戦略を考えた - Qiita

    最近自分の周りで「スキルマップ」というものを作ったり 新卒の子にどこまで勉強すれば良いですかね?と聞かれた件 ロシアの天才ハッカーによる【新人エンジニアサバイバルガイド】 というような記事を見つけたりしたので、考えたことを視覚化してまとめてみた。 ##スキルマップとは 人のスペックを表現する箱がこのようにあったとして ###図1. 箱 便宜上Frontend, Backendとかいう方向性があるとします。 ###図2. 分野、方向性 ###図3. 1年目- 例えば「バックエンドを1年位経験しました」。 ###図4. もっとやってる1年目- 例えば「『フルスタック』で1年位経験しました」。 ###図5. のらりくらりと5、6年- 例えば「バックエンドだけ5, 6年やっていました」。 などと表現されるとする。 実際は 濃淡があると思う。 ###図6. バックエンドの便利屋、3年選手- こんなだ

    エンジニアはどこまで勉強すればよいのか - スキルマップと生存戦略を考えた - Qiita
  • ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita

    また、この図の説明においては理想的なケースにおいても1つ前の工程に戻る事が述べられています。 " Hopefully, the iterative interaction between the various phases is confined to successive steps. " (投稿者訳) 理想的には、各段階において工程が前後する範囲は直近の工程に限られる。 理想的でない場合はどうかというと、テストから設計まで工程が戻りうると示唆しています。 "The testing phase which occurs at the end of the development cycle is the first event for which timing, storage, input/output transfers, etc., are experienced as dist

    ウォーターフォールを世に広めたとされる米軍がアジャイルに移行中という話 - Qiita
  • 言語規格、コーディング標準の使い方 - Qiita

    言語規格、コーディング標準の使い方を間違えていて、言語規格、コーディング標準を批判している書き込みにしばしば出会う。 その人の書いているコードがいいコードであれば、その人の言語規格、コーディング標準に対する意見はどうでもいい。 白いでも、黒いでも鼠を取るがいいだという言い伝えがある。 言語規格、コーディング標準の使い方を間違えているプログラマでも、 言語規格、コーディング標準をうまく使っているプログラマでも、 いいプログラムを書くプログラマがいいプログラマだ。 言語規格(language standard)、コーディング標準(coding standard) は、編集器(editor)、編纂器(compiler), 連携器(linker), 配置器(locator), 虫取り器(debugger), 設計環境(IDE:Integrated Development Environme

    言語規格、コーディング標準の使い方 - Qiita
  • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

    はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニア仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基は温かい目で見

    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
  • モダンプログラマになれない組込みプログラマの苦悩 - Qiita

    はじめに 10年以上組込みエンジニアをしている@yagisawaです。 Qiitaのトップ記事では新しいフレームワークの使い方とかモダン言語の新しい言語仕様の解説とかが流れてきて、いつも羨ましいなーと思いながら読んでいます。 記事は組込みシステム開発をしていて経験したこと・感じたことを自虐ネタとして書き連ねていこうと思います。他ITエンジニアの人に「うわっ、可愛そう」って思ってもらうのが目標です(ぇ 各業界それぞれに悩みはあると思うので、自分たちが一番不幸とかは思っていません。おそらく隣の芝が青く見えているだけです。それよりあまり組込みの記事は見かけないので、「組込みエンジニア仕事ってこんな感じ」というのを知ってもらう意図があったりします。 内容によっては「それはあなたの設計が悪いからです」と言われてしまうようなところもあるとは思いますが、建設的なご意見は大歓迎ですが基は温かい目で見

    モダンプログラマになれない組込みプログラマの苦悩 - Qiita
  • Slack社はSlackをどう使っているのか - Slack利用ガイドラインの話 - Qiita

    GitLab社のGitLab Handbookと徹底した文書化、組織的なオープンネス(?)を先日調べたのだが、じゃあ同じように見える化、透明性をアピールしているツールが何か?と考えた際ににSlackがあると思っている。SlackといえばDM禁止!オープンな職場が良し!風通し良し!なやつである。 しかしそれを実際会社で根付かせようとした時に、Slackの使い方を説くだけでは足りなくて、むしろ皆の意識改革みたいなものが必要だな~とひしひし感じさせられる。オープンな会社が良いかクローズドが良いか、「チームの風通しは良いほうが良いのか?」 世の中ひねた人も居るもんで風通しだけ良くてもこんなデメリットが有るなんて言われる 意見は増えても、内容が浅い 意見の浅い深いを確認する手間がかかる 浅い意見でも対応しなければならない 多数派の浅い意見に流されがちになる https://factory-learn

    Slack社はSlackをどう使っているのか - Slack利用ガイドラインの話 - Qiita
  • その「0」は何進数ですか? - Qiita

    十進数だろ JK はじめに C/C++ で 0 と書くと八進数として解釈されるため、十進数のゼロを書くことはできないという小ネタがありますが、では他の言語ではどうだろうと気になりうっかり調べてしまったので記事にしました。 まあ八進数だろうが十進数だろうが処理系の気持の話でしかなく何かが変わるというものでもありませんが…… 結果 概要 大まかに以下のグループに分けられました。 八進数として解釈される 十進数として解釈される (0 始まりの八進数リテラルもある) 十進数として解釈される (0o 始まりの八進数リテラルしかない) 十進数として解釈される (そもそも八進数リテラルがない) この他、 0 始まりの八進数リテラルがあるものの 0 が八進数扱いなのか十進数扱いなのか調べても分からなかったものもありました。 結果一覧 [2021-03-04 訂正: Go を 0o 始まりの八進数しかないグ

    その「0」は何進数ですか? - Qiita
  • アンチパターンから考える Salesforce ゲストユーザ問題 - Qiita

    記事の内容は可能な限り正確な情報を記載するよう努めていますが、 必ずしも内容の正確性や安全性を保証するものではありません。 当記事を参照・利用したことによってトラブルが発生しても一切の責任を負いかねます。 また、記事にて記載している検証行為はすべて筆者の developer 環境で行っております。 はじめに 2020年の末ごろから、Salesforce の設定不備による情報漏洩を伝えるニュースが立て続けに報じられるようになりました。 この問題を一番よく伝えているのは日経クロステックで、同紙によると現在までに、多数の企業で影響があったとされています。(注:ただし、報じられている企業の多くは、プレスリリースでは「クラウド型システム」というような表現に留めており、Salesforce のことであるとは発表しておりません) また、02/12には両備システムズから Salesforce を利用し

    アンチパターンから考える Salesforce ゲストユーザ問題 - Qiita
  • GitHubのawesomeリストが本当にawesomeなものばかりだから一度見てほしい - Qiita

    伝えたいことは全てタイトルに書いた。 動機 https://github.com/topics/awesome を眺めていて当にawesomeなものばかりだった (割にあまりどこにもそのawesomeさが書かれていないように見えた) ので書く。 awesomeリストとは GitHub で使われる慣習的なリポジトリについてまとめてみた#awesome より: 「特定テーマに関するキュレーションを行うリポジトリ。Markdown のリスト表記で一覧化するのが一般的。また、Contribution も受け付けている(人気のあるリポジトリはガイドラインも厳しめ)。」 Where? ここのことです: https://awesome.re/ 画像はリポジトリから引用。 What? What is an awesome list? よりDeepL翻訳 awesome マニフェスト もしあなたのリストを

    GitHubのawesomeリストが本当にawesomeなものばかりだから一度見てほしい - Qiita
  • [Java16]instanceofの型指定に追加される制約 - Qiita

    新しい構文 Java16(2021/3/16 GA予定) から正式導入される「instanceofのパターンマッチング」(JEP 394),便利そうですよね! よく知らない方のために簡単に紹介しますと,

    [Java16]instanceofの型指定に追加される制約 - Qiita
    alcus
    alcus 2021/02/15
  • 【個人開発】約25時間でバレンタインなTwitter webサービスの作成してリリースしました! - Qiita

    はじめに 2日くらい前に突然webサービスのアイデアが浮かびました。 バレンタインにも合いそうなwebサービスなので、とにかく速く製造してリリースするという目標でやってみました。 どんなwebサービス chocopoi 「ちょこぽい」というwebサービスです。 twitterで見かけた気になる人にchoco(≒いいね)をひそかに送るサービスです。 (twitter認証が必要です) ※ホントのチョコを渡すわけではありません。「いいね」を送るとお考え下さい。 バレンタインに、下駄箱を開けるとチョコが入っててドキドキみたいなのが体験できないかな? という思いつきから作ったwebサービスです。 chocoを渡す方法は簡単! まず送りたい相手のユーザー名や@の名前を入れて、検索してください。 送りたいユーザーがでたら選択し「chocoをあげる」ボタンを押すだけ! これでchocopoiちょこぽいアカ

    【個人開発】約25時間でバレンタインなTwitter webサービスの作成してリリースしました! - Qiita
    alcus
    alcus 2021/02/15
  • もう puts/p をデバッグに使わない! デバッグライブラリ IceCream の Ruby 版 - Qiita

    先日、Python 向けのデバッグライブラリ IceCream が話題になっていました。 Python 以外にもいくつかの言語版があるようですが、残念ながら Ruby 版が無い。というわけで作ってしまいました。 Ricecream (icecream-ruby) はじめに まず、このライブラリはいわゆる「print デバッグ」1の代替となるものです。 そもそも格的にデバッグを行う場合、print デバッグではなく Byebug 等のデバッガを用いるべきです。 参考:printデバッグにさようなら!Ruby初心者のためのByebugチュートリアル とはいえ print デバッグが非常に手軽なものであることは間違いなく、ちょっとしたデバッグにはいちいちデバッガを使うより print デバッグで済ませてしまうという方も多いでしょう。 しかし print デバッグは手軽な分そのままでは困ることも

    もう puts/p をデバッグに使わない! デバッグライブラリ IceCream の Ruby 版 - Qiita