タグ

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

  • アルゴリズム本、書きました! - Qiita

    最後に、17 章で PとNPに関する話題を解説し、世の中には「効率的に解くアルゴリズムを設計することができそうにない難問」が多数あることを見ます。18 章で、これらの難問に取り組むための方法論をまとめます。 競プロをやっている方向け 扱っている題材の難易度については、こんな感じのイメージです! チーター < 書 = 螺旋 < 蟻 難易度が近い螺旋は、スタンスが異なる部分もありますので、よい形で共存できたら、という想いです。 螺旋と比べると、「動的計画法」「貪欲法」「二分探索法」などの設計技法に関する話題をより重視しています 螺旋は「ライブラリを揃えていく」という思想なので、設計技法よりもライブラリになるものを重視する立場です 書では、紙面の都合で「計算幾何学」と「整数論」には触れられませんでしたが、これらは螺旋には載っています 2-2. 書の対象読者 書は、「アルゴリ

    アルゴリズム本、書きました! - Qiita
  • GitHub Readme Stats を利用してGitHubプロフィールをカッコよくする - Qiita

    はじめに GitHubの統計情報を動的生成してくれる GitHub Readme Stats1 を利用して、GitHubプロフィール2をカッコよくする方法を紹介します。 具体的には、以下のようにGitHubプロフィールの上部に統計情報を表示できるようになります。 公式のREADME には以下のように記載されており、元々GitHubプロフィール用README.mdでの利用を想定して作られたサービスですので、みなさんもGitHub Readme Statsを利用してGitHubプロフィールを充実させてみましょう Get dynamically generated GitHub stats on your readmes! DeepL翻訳。 あなたの readmes に動的に生成された GitHub の統計情報を取得しましょう! 動的に生成できる統計情報 GitHub Readme Stats

    GitHub Readme Stats を利用してGitHubプロフィールをカッコよくする - Qiita
  • ボーイスカウト・ルールってご存じですか? - Qiita

    はじめに プログラマ向けの格言っていっぱいありますよね。 その中でも好きな格言の一つである「ボーイスカウト・ルール」をご紹介したいと思います。 とてもよい考え方なので、普及すると嬉しいです。 ボーイスカウト・ルールとは? ボーイスカウトのルールには、大切なことがあります。 それは、「来た時よりも美しく」です。 たとえ自分が来た時にキャンプ場が汚くなっていたとしても、 そしてたとえ汚したのが自分でなかったとしても、綺麗にしてからその場を去る、というルールです。 そうやって、次にキャンプに来る人達が気持ちよく過ごせるようにするのです。 (プログラマが知るべき97のことより抜粋) 同じことがプログラマの世界でも言えるのではないでしょうか。 プログラムの世界では? 新規開発もありますが、エンハンス等で他のエンジニアが作成したソースコードに 機能拡張したり、修正したりすることも多いのではないでしょう

    ボーイスカウト・ルールってご存じですか? - Qiita
    ikajigoku
    ikajigoku 2020/08/03
    社会
  • 糞コードは直すな。 - Qiita

    とりあえず落ち着け。 みなさん、毎日なにかしらのコードを読み、開発する日々を送っていると思います。そんな中で、 糞コードは死ぬべきである!!絶対に直すべき!! という感情に取りつかれてしまうことがあると思います。自分の技術力に自信のある人ほど、無理やりにでも直そうと試みると思います。それがどんな修羅の道か。そして、糞コード修正がどんな道を歩むのか。この記事では糞コード修正の罠とありがちなストーリーについて書きたいと思います。 ビジネスとしてのプログラムは質的に糞である 例えば、「携帯電話の利用料金」のプログラムがあります。 「携帯電話 透明性高め料金値下げを」という記事もあるように世の中の携帯電話の料金プランはかなり複雑です。例えば、auだと「auでんき」といった電気料金とパックされた電話料金プランがあります。また、「auスマートバリュー」といったプランもあり、家のインターネット回線をa

    糞コードは直すな。 - Qiita
    ikajigoku
    ikajigoku 2020/08/03
    社会だ
  • 822823回マクロを展開するとGCCが死ぬ - Qiita

    はじめに Rui UeyamaさんのCコンパイラ作成集中講座 (2020) 第14回を聞いて知ったのですが、GCCは「同じマクロ」が定義された時に、マクロの再定義警告をしないんですね。例えばこんなコードです。 #include <cstdio> #define A 1 #define B 1 #define A 1 // No warning #define B 2 // test.cpp:7:0: warning: "B" redefined int main() { printf("%d %d\n", A, B); }

    822823回マクロを展開するとGCCが死ぬ - Qiita
  • 【一問一答】マヅコの知らない「異常検知」の世界 - Qiita

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

    【一問一答】マヅコの知らない「異常検知」の世界 - Qiita
  • Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita

    PythonGo に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較KotlinRustベンチマークJuliaDijkstra これは何 最短経路探索のアルゴリズムを使っていくつかの言語の性能がどれくらい違うかを調べてみました。 Python は手軽に実装できるけど遅い、Go は 早いけど C++ よりは遅い? 当? のような疑問を一定解消したかったというのが動機です。 前提条件など 対象とする言語 Go, Rust, C++ 興味Julia Python より段違いに早ければもう少し掘ってみたい 興味Kotlin 意外とトップ集団に肉薄するのではないか 参考 Python JavaScript 性能差のイメージとしては Rust == C++ > Go >> Kotlin >>> JavaScript > Python == J

    Python を Go に書き換えるとどれくらい速くなる? 7つの言語で Dijkstra の実行速度を比較 - Qiita
  • ルービックキューブを解くプログラムを書いてみよう(中編:IDA*探索) - Qiita

    はじめに この記事はSpeedcubing Advent Calendar 2019の17日目の記事です。 [連載]ルービックキューブを解くプログラムを書いてみよう(前編) の続きをやっていきます。 前編では、ルービックキューブの状態/操作を表現するクラスを作り、状態を操作するメソッドを書きました。 これで、キューブをプログラム的に自由に回せる状態になったので、探索を進めていきましょう。 中編では単純な総当りで探索するので、計算量的な問題でまだ任意の状態のルービックキューブの解を見つけられるようにはなりませんが、ピラミンクスや2x2x2キューブなどの小さいパズルならこの方法でも解くことができます。 追記: 後編を書きました ルービックキューブを解くプログラムを書いてみよう(後編:状態のindex化, Two-Phase-Algorithm) 環境 環境については、前編と同様Python3.

    ルービックキューブを解くプログラムを書いてみよう(中編:IDA*探索) - Qiita
  • ルービックキューブを解くプログラムを書いてみよう(前編:キューブを操る実装) - Qiita

    はじめに この記事はルービックキューブ Advent Calendar 2018 の14日目の記事です。 昨日の記事は望月さんの「ラノベで覚えよう!目隠しキューブ。「恋するイヤーマフ」」でした。 連載では、ルービックキューブを解くプログラムをPythonで実装しながら、その仕組みを勉強します。 ルービックキューブを解くプログラムと言っても、どれくらい頑張って高速化・効率化するかなどあると思うので、今回の記事では、大体1秒位 & 20手強くらいで解くプログラムを書くのを目標に、コードのわかりやすさ重視でやっていきましょう。 ルービックキューブを効率よく解くアルゴリズムとしてTwo-Phase-Algorithmというものが広く使われています。 連載でも、Two-Phase-Algorithmを実装します。 まだ、前編しか書けていないので、内容は変わるかもしれませんが、 前編と中編では、実

    ルービックキューブを解くプログラムを書いてみよう(前編:キューブを操る実装) - Qiita
  • OSS活動をはじめて5ヶ月の振り返りと学んだこと - Qiita

    OSS活動をはじめて5ヵ月が経過したのでその振り返りと、OSS活動での学びを書きます。 「OSS活動ってハードル高そう。。」と躊躇している方に読んで貰えると嬉しいです。 自己紹介 最初に誤解のないように自分のスペックを。 消防士歴6年、エンジニア歴2年半、PC持つよりホース持ってた期間が長いエンジニアです。 28歳の年にエンジニア転職し、今は茨城県からフルリモートで働いています。 ※ 消防士からエンジニアへの転職経緯などは以前こちらに書きました OSSとは? OSSの定義をWikipediaより。 オープンソース・ソフトウェア(英: Open Source Software、略称: OSS)とは、利用者の目的を問わずソースコードを使用、調査、再利用、修正、拡張、再配布が可能なソフトウェアの総称である また、文中でのOSS活動はGitHubに公開されているOSSに対してプルリクエストやイ

    OSS活動をはじめて5ヶ月の振り返りと学んだこと - Qiita
  • 家の中のセンサデータをRaspberryPiで取得しまくり、スーパーIoTハウスを実現 - Qiita

    はじめに 巷ではスーパシティ法によるデータ管理が話題ですが、 インドア派な私はシティの前にハウスで時代の波に乗ろう!と思い立ち、 大量のセンサデータをリアルタイムでダッシュボード表示する仕組みを作りました。 結論から言うと、センサデータを安定して見える化できるシステムが構築できたと感じています。 初心者の方でもわかりやすいよう、説明の飛躍のない記事作成を心がけたいと思います。 飛躍、間違い等あれば、ご指摘頂けるとありがたいです! 2021/12追記 さらに進化?したので以下の記事もご参照ください 必要なもの ・RaspberryPi(今回はPi3Model Bを使用) ・Python実行環境(今回はプリセットのPython3.7.3使用) ※RaspberryPiでのPython開発環境は試行錯誤の結果、こちらに落ち着きました ・Googleアカウント(スプレッドシートを使うのに必要) ・

    家の中のセンサデータをRaspberryPiで取得しまくり、スーパーIoTハウスを実現 - Qiita
  • 私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita

    内容 以下記載のURLを参考にロードマップをJavaバージョンにしてみた。 初心者から立派なJava エンジニアになる方への学習の道しるべになれば。 また自分自身すべてできるわけではないので、できるようにするためのメモ書きとして。 (ただ以下をなんとなく理解するだけで2,3年以上かかった。。。) 参考 ※ 会社の同期から基文法についてレベル別記載のアドバイスをいただいたので修正(2018/4/9) 学習方法 1.Hello World どのプログラミング言語でもそうですが、まずは動かし方を学びましょう。 ゲシュタルト崩壊するくらいHello Worldは書きましょう。 最初のうちはstatic void mainの意味も分からなくて大丈夫です。徐々に理解できるはずです。 2.基を学ぶ 以下のサイトや書籍を使用してプログラミングの基礎を知りましょう。 文法の書き方やメソッドの使い方、アク

    私からあなたへ 一人前のJavaエンジニアになるためのロードマップを送ろう - Qiita
    ikajigoku
    ikajigoku 2020/05/20
    好きなところから学べばいいと思う
  • 7年間使ってきたWordPressを捨ててContentful+Gatsby+Netlifyにしたら爆速になったし経緯とか教訓とか語る - Qiita

    7年間使ってきたWordPressを捨ててContentful+Gatsby+Netlifyにしたら爆速になったし経緯とか教訓とか語るWordPressReactNetlifygatsbycontentful こんにちは、古都ことと言います。普段はブログやらなんやらをやっているのですが、今回ブログのお引っ越しをしたのでその経緯などについてお話ししたいと思います。 先にまとめ ブログをVPSWordPressで7年間運営してきた 速度面やメンテナンス面でそろそろガタがきていた Contentful+Gastby+Netlifyの構成に移行した Lighthouseで高スコア叩き出せた 技術選択って難しいね 運営しているブログ Subterranean Flower Blogというブログをやってます。 主にフロントエンド周りのことを取り扱っており、たまにマリオ64の記事や、転職の記事などでも

    7年間使ってきたWordPressを捨ててContentful+Gatsby+Netlifyにしたら爆速になったし経緯とか教訓とか語る - Qiita
  • Web開発者がスマートコントラクト開発で戸惑いがちなポイント8個 - Qiita

    戸惑いポイント その1: アプリケーションサーバーがない Webだとアプリケーションサーバーを立てて、そこにコードをデプロイして、アプリケーションが動くという一連の流れがあります。それに対し、EthereumのスマートコントラクトはEVMと呼ばれる「すべてのEthereumノードが構成するブロックチェーンネットワーク上に構成された単一のVM」上にデプロイされ動作するため、特定のサーバーで動くというわけではありません。つまり、スマートコントラクトを動作させるのに自前のサーバーを持っておく必要もありません。 このような特徴を持っているため、Ethereumは「ワールドコンピュータ」と呼ばれることもあります。 その2: デプロイ=インスタンス化 スマートコントラクトは"コントラクト"と言う単位でデプロイを行います。コントラクトはクラスのようなもので、変数やメソッドが含まれたまとまりです。 コント

    Web開発者がスマートコントラクト開発で戸惑いがちなポイント8個 - Qiita
  • Hadoop利用者ならきっと知ってる、Hive/Prestoクエリ関数の挙動の違い - Qiita

    HiveQLではスピードに難を感じていたため、私もPrestoを使い始めました。 MySQLやHiveで使っていたクエリを置き換える時にハマったTipsをまとめていきます。 AWS AthenaでPrestoを使っている方も増えてると思うので、Presto標準関数での記述例も拡充していきます。 Prestoとは Prestoはオンメモリで動く分散SQLエンジンで、その進化は目を見張る物です。 発表された当時は色々な成約があり使うことを躊躇していましたが、2015年頃からはもう使わない理由はなくなりました。 アドホックに使えるとても高速なSQLエンジンですので、バッチ向けのHiveのように実行結果を待つ時間はほとんどありません。 Hiveですと1つ1つの実行に時間が掛かるので、クエリに慣れていない新参者には辛い物がありました。 しかしPrestoではインタラクティブに実行できますので、トライ

    Hadoop利用者ならきっと知ってる、Hive/Prestoクエリ関数の挙動の違い - Qiita
  • 4歳娘「パパ、具体的な名前をつけないで?」 - Qiita

    ↓新作もよろしくやで! ジェネリクスをもう少しだけ使いこなす。 コロナウィルス対策でリモートワークしてみたらReduxVuexのメリットが分かった 36歳ザコーダーの休日 ワイ「何やこのコード、全然動かへんやん」 ワイ「怖いな~怖いな~…なんか嫌だなあ~」 よめ太郎「(何で自分が書いたコード見て稲川淳二みたいに怯えとんねん・・・)」 よめ太郎「(そんな鳥肌立つようなクソコード書いてんのかいな・・・)」 娘(4歳)「ねぇ、パパ」 ワイ「なんや、娘ちゃん」 娘「ちょっと、作ってほしい関数があるの」 ワイ「またかいな」 ワイ「娘ちゃんはホンマに関数が大好きやなぁ」 ワイ「しゃあない、パパはプログラミング苦手やけど、頑張って作ったるわ」 娘「ありがとう、パパ」 今回の要件 ワイ「ほんで、今回はどんな関数を作ればええんや?」 娘「えっとね」 娘「'あ'という文字列を渡したら」 娘「['あ', 'あ

    4歳娘「パパ、具体的な名前をつけないで?」 - Qiita
  • 2020年はsystemd-homedの登場でLinuxのユーザー管理が大きく変わるぞ - Qiita

    これまでのLinuxでは、ユーザーの追加はuseraddで行われ、ホームディレクトリは/home以下にディレクトリとして作られ、ユーザーのアカウントは/etc/passwd、/etc/group、/etc/shadowで管理されていました。 これからは、systemd-homedがその全ての仕事を置換することになります。 ※タイトル詐欺感がありますが、従来の方式も並行して使えます。安心してください。 systemd-homedとは? systemd バージョン245で追加された、ユーザー管理デーモン。実体はsystemdのサービスユニットファイルで、systemd-homed.serviceとして起動されます。 今後、ユーザーの管理や認証はsystemd-homed(以下、 homed )によって行われることになるようですね。 出典が無く間違いだったため、訂正しました。systemd-ho

    2020年はsystemd-homedの登場でLinuxのユーザー管理が大きく変わるぞ - Qiita
  • 東京都 新型コロナウイルス対策サイトへの貢献方法を解説 - Qiita

    目次 はじめに この記事は Slackチャンネルへの参加 環境構築 GitHubリポジトリをFork ローカルにCloneしてくる yarnによる環境構築 yarnのインストール 必要なパッケージのインストール サーバー起動 GitHubのissueを見てみる 開けてみる ラベルを見てみる 気になったissueを改善してみる 自分で改善したものをプルリクエストする ForkしたリポジトリにPush プルリクエストを送る テンプレートに沿った文章を書く マージされるの待つ その他の注意事項 さいごに はじめに この記事を見ている人は少なからず東京都の新型コロナウイルス対策サイトへの貢献に興味を持っているのではないでしょうか。 「ガチガチのプロしか参加しちゃいけないんでしょ?」 「OSSにプルリクなんて敷居高そう...」 そんなことありません!現に私は高校2年生ですが、対策サイトのGitHub

    東京都 新型コロナウイルス対策サイトへの貢献方法を解説 - Qiita
    ikajigoku
    ikajigoku 2020/03/11
    すごい!
  • 「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita

    この記事の目的 「Javaの環境構築」で絶対にハマったり、錯綜する情報にいつも惑わされる人に向けた記事です。 2017年以降のJavaは、移り変わりが激しい世界になりました。このことを認識し、「軸となる考え方」や「重要な動向」を把握できるように、調べた情報をまとめました。 「5年ぶりに(Java|JVM言語)触るんだけど環境周りが全然わからん」とか、「CorrettoとかAdoptOpenJDKとか、みんな何を言っているんだ」という人(つまりちょっと前の筆者)が、「今後に渡って2度とハマらないための基礎知識を得られること」を目的にしています。以下の3立てです: ざっくりとした歴史 2020年におけるローカル開発環境構築 情報源と参考URL APIや言語仕様の変更点には触れません(他の良い記事があります)。 I. ざっくりとした歴史 2017年9月、OracleJavaのリリース・モデル

    「Java8からJava11」で何が起きたのか、どう環境構築すればいいのか - Qiita
  • プロジェクトリーダーというお仕事 - Qiita

    概要 そろそろ年度末だし、新年度からプロジェクトリーダーとしてやっていく人もいるかと思うので、プロジェクトリーダーはどういうことをしないといけないかと、心得的なものを投稿しようと思います。今業界全体的にリーダー不足になってるんで、プロジェクトリーダーという役割について興味持ってくれる人が増えると嬉しいです。 ※ここでのプロジェクトとはシステム開発等IT関連のプロジェクトを指すものとします。 軽く自己紹介 2013年頃から7年くらいプロジェクトリーダーとして請負業務などの仕事をしてきました。最近はプロジェクトマネージャーも兼ねてやっていたり、うまくいっていないプロジェクトコンサルとして入って立て直すというようなこともしています。 レジュメ https://www.resume.id/branch まずは結論から プロジェクトリーダーの使命 「担当するプロジェクトを成功へと導く」 「プロジェ

    プロジェクトリーダーというお仕事 - Qiita