タグ

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

  • Javaで実装する再帰の末尾呼び出し最適化 - Qiita

    再帰は強力なアルゴリズムであり、様々な実装に用いられていますが、現実では間違った実装をしてしまうとメモリが枯渇してしまうことなどの問題があり、あまり好まれていないことも多いアルゴリズムだと考えています。 ですが、正しくプログラミングする方法を知っていれば、再帰を使うことのメリットを享受できるとも思っています。 フィボナッチ数列をJavaでプログラミングしながら、スタックオーバーフローが発生しない再帰のプログラムを書いてみようと思います。 よくあるフィボナッチ数列の実装 以下にフィボナッチ数列の簡単な実装をしてみました。 public class Fibonacci { public int fibonacci(int n) { if (n <= 0) { return 0; } else if(n == 1) { return 1; } else { return fibonacci(n

    Javaで実装する再帰の末尾呼び出し最適化 - Qiita
    cknbstr
    cknbstr 2023/01/17
  • I/O負荷の正確な状況はiowaitでは分かりません - Qiita

    さくらインターネットのアドベントカレンダー9日目として、サーバ屋らしく、運用に関するコマンドの使い方を紹介します。 サーバの負荷が高まってきたときに、vmstatやtopなどのコマンドで調査する事が出来ますが、I/O負荷をwa(iowait)によって判断する人も多いと思います。 ただ、結論から言うと、iowaitは正確にI/Oの負荷を表しているわけではありません。 これらを、実際に演習をしながら見ていきたいと思います。 iowaitとidle iowaitとはあくまでも、CPUが空いているのにI/Oがボトルネックになっているプロセスを示しているだけで、CPUの利用率が高いときにはI/Oがボトルネックになっていてもiowaitが上がりません。 同様に勘違いされがちなのが、id(idle)はCPUの空きを示しているというものですが、idleは必ずしもCPUの空き時間を示しているものではありませ

    I/O負荷の正確な状況はiowaitでは分かりません - Qiita
    cknbstr
    cknbstr 2022/12/29
  • Ruby で ES7 の async/await を超絶簡単に実装する - Qiita

    Introduction 突然ですが、皆さん async/await は知っていますか!? async/await といえば ES7 での仕様策定に向けて議論が進められている ECMAScript の新機能で、非同期処理を同期処理っぽく書く事ができます(ルーツは C# のasync/await らしいです)。 async/await について理解を深める為に、実際に(現在提案されてる仕様での)使い方を見てみましょう。 以下は http://wiki.ecmascript.org/doku.php?id=strawman:async_functions からの抜粋です。 1 var request = require('./request.js'); 2 var headers = { 'User-Agent': 'lukehoban', 'Authorization': 'token 66

    Ruby で ES7 の async/await を超絶簡単に実装する - Qiita
    cknbstr
    cknbstr 2022/12/25
  • Jupyter Notebookでモジュールをデバッグする(Visual Studio Code) - Qiita

    Visual Studio Codeを使って、ローカルのJupyter ServerにアタッチしてPythonモジュール(.pyファイル)をデバッグする方法を説明します。前半はVS Codeからリモートサーバー上のJupyterLabにアタッチしてデバッグを行う手順を参考にさせていただきました。 1. アタッチって? Visual Studio Codeのデバッグには2種類があります: 起動(Launch): デバッガーがプロセスを起動し、その上でデバッグを行う 接続(Attach): 既に実行しているプロセスにアタッチし、その上でデバッグを行う 今回は先にJupyter Notebookを開き、そのサーバーにアタッチしてデバッグしますので、後者になります。アタッチによるデバッグの詳細はこちらやこちらで丁寧に解説されています。 2. 手動でアタッチ 2.1. フォルダー構成

    Jupyter Notebookでモジュールをデバッグする(Visual Studio Code) - Qiita
    cknbstr
    cknbstr 2022/04/06
  • VSS, RSS, PSS, USS についての説明 - Qiita

    メモリ調査 Androidアプリにおける性能測定の一環として、メモリ調査をすることがある。CPUの使用率だとパーセンテージでよくわかるんだけど、メモリ調査は指標が特殊なこともあって、ちょっととっつきにくい。 参考 まずは公式サイトを参照してみる。 debugging-memory | Android Developer 日語だとatmarkITが詳しい Android 4.4のメモリ使用状況を把握する3つのツールの使い方|atmark IT ルートをとってやると、procrankなんかを使うこともある Android Memory Usage|elinux.org どれを使えばいいんだ.. 一般的な調査だとMAT(Eclipseに付属のもの)なんかを使ってみたり、adbで見てみたりすると思う。でも、これがメモリ消費量だ!みたいなものが出てこない。だいたいのものがpssを出力してくれるんだ

    VSS, RSS, PSS, USS についての説明 - Qiita
    cknbstr
    cknbstr 2022/03/16
  • sporkでNameError: uninitialized constant RSpec::Core::CommandLineになる時の対処法 - Qiita

    sporkでNameError: uninitialized constant RSpec::Core::CommandLineになる時の対処法RubyRailsRSpecSpork

    sporkでNameError: uninitialized constant RSpec::Core::CommandLineになる時の対処法 - Qiita
    cknbstr
    cknbstr 2022/01/07
  • VSCode で最高の LaTeX 環境を作る - Qiita

    はじめに レポートや論文の作成には $\LaTeX$ は欠かせないですよね。卒業論文や修士論文を書き始める方も多い時期だと思うので、今回は LaTeX と Visual Studio Code を使い、レポートや論文を快適に書ける環境を構築していきたいと思います。 必要なツールのインストール ここはあまり詳しい解説は行いません。 LaTeX と Visual Studio Code がインストール済みの人はこの節は読み飛ばしてください。 LaTeX TeX Live がおすすめです。 TeX Wiki に詳細な説明があります。 コマンドラインで platex や latexmk が実行できれば成功です。 Windows 公式の install-tl-windows.exe をクリックしてダウンロード、GUIのインストーラーに従ってください。 Mac

    VSCode で最高の LaTeX 環境を作る - Qiita
    cknbstr
    cknbstr 2021/09/17
  • 【翻訳】"Factory Girl"が"Factory Bot"に変わった理由(と移行手順) - Qiita

    2017年10月に、Rubyのライブラリ(gem)である"Factory Girl"が"Factory Bot"に変わりました。 名前が変わった理由が以下のページに記載されていたので、翻訳してみます。 プロジェクト名の歴史 Factory Girl このライブラリはもともと2008年に"Factory Girl"という名前でリリースされました。 この名前を選んだ理由は書籍「デザインパターン」に載っていたファクトリメソッドパターンとオブジェクトの母(Object Mother)パターンに従っていたことと、ローリング・ストーンズに同じ名前の曲があったためです。 Factory Bot "Factory Girl"という名前はこのライブラリの存在を知った一部の開発者を混乱させました。また、不快で問題があるように感じる人々もいました。そのため、2017年10月に私たちはこのライブラリの名前を"Fa

    【翻訳】"Factory Girl"が"Factory Bot"に変わった理由(と移行手順) - Qiita
    cknbstr
    cknbstr 2021/08/27
  • WireMockをスタンドアローンで使うときの基本的なメモ - Qiita

    概要 WireMockをスタンドアローンで使うときの基的なメモです。大概のことは公式のドキュメントで説明されています。 環境 Windows 10 Professional WireMock 2.20 curl 参考 WireMock WireMock User Documentation 準備 WireMockのGetting StartedページからStandaloneで実行できるjarファイルをダウンロードします。 この記事ではwiremock-standalone-2.20.0.jarを利用しました。 プロジェクトルートとなるディレクトリを作成してその直下にjarを配置し、起動用と停止用のbatファイルを作成しました。 Project-Root/ | +--- wiremock-standalone-2.20.0.jar | +--- startup.bat +--- shutd

    WireMockをスタンドアローンで使うときの基本的なメモ - Qiita
    cknbstr
    cknbstr 2021/08/26
  • データ競合(data race)と競合状態(race condition)を混同しない - Qiita

    T/O マルチスレッド・プログラミングの文脈では、「データ競合(data race)」と「競合状態(race condition)」は直交した異なる概念を表す1。両者ともに回避すべき事象だが、問題を取り扱うレイヤは明確に区別されるべき。 データ競合(data race)は、マルチスレッド・プログラム実装上の問題である。 競合状態(race condition)は、並行処理システム設計上の問題である。 ここではJava, C#, C++あたりのマルチスレッド対応手続き型ベースのプログラミング言語を取り上げるが、言語パラダイムによらずマルチスレッド処理(共有メモリ型の並行処理機構)ならば広範に適用可能である。また言語仕様として両者を明確に区別するRust言語も取り上げる。 「データ競合(data race)」が何であるかは、それぞれのプログラミング言語仕様にて定義される。競合状態(race c

    データ競合(data race)と競合状態(race condition)を混同しない - Qiita
    cknbstr
    cknbstr 2021/08/17
  • 本家Rustコンパイラのソースを読もうとしてみる(4) - Qiita

    前回までのあらすじ Guide to Rustc Developmentという便利なガイドに沿って、Rust家コンパイラであるrust-lang/rustのソースコードを読んでみようという試み。なかなか終わらない「Source Code Representations」の、MIRのあたりから。 目次(初回) Source Code Representations Token列、AST、HIRときたので、今回はMIR生成を見ていく。このあたりからQuery systemがガンガン使われるので、シーケンシャルな感覚でいると流れが追いづらい。内容的にもこれまでより難しいので、前提となる知識から整理していこう。 CFG MIRの構造はControl-flow graph(CFG)をベースにしている。私は詳しくないが、最適化コンパイラではそれなりに使われるデータ構造と思われる。MIRにおいてCF

    本家Rustコンパイラのソースを読もうとしてみる(4) - Qiita
    cknbstr
    cknbstr 2021/06/25
  • vimで設定可能な色の種類を一覧で確認する方法 - Qiita

    はじめに vimを使う上で色の設定は不可欠ですよね。でも.vimrcを設定する時、どういう色設定が現在されていて、どういう色が設定できるのか確認したいなーと思うことが多々あるので紹介します。 何色が設定出来るか確認 以下のコマンドをvimで実行。

    vimで設定可能な色の種類を一覧で確認する方法 - Qiita
    cknbstr
    cknbstr 2021/06/11
  • vimで検索してから行削除する(globalコマンドを覚える) - Qiita

    → やはり、やや入力が手間 グローバルコマンド 調べたら組み合わせによりもっといろいろできる。 ヤンクする場合 → qレジスタにヤンクした結果が格納される :g//yだけだと最後にヒットした行しか"0に格納されない 末尾Qをつけると大文字レジスタなので"qに追記されていく qqqであらかじめ"qレジスタの内容を消去している(空のマクロを書き込んでいる) ファイル末尾に移動する場合

    vimで検索してから行削除する(globalコマンドを覚える) - Qiita
    cknbstr
    cknbstr 2021/05/20
  • VyOS - Qiita

    VyOS検証 昨今クラウドの台頭からかソフトウェアルータであるVyOSの利用用途が増えてきている。 VyOSはLinuxベースのソフトウェアルータだが、ネットワークルーティング、ファイアウォール、Webプロキシ、VPNまでハードウェアルータが持っている機能を数多く再現可能。今回はNWの勉強がてら、VyOSの使い方をまとめたいと思う。 参考 https://wiki.vyos-users.jp/index.php/%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E3%82%AC%E3%82%A4%E3%83%89 1.初期システム設定 VyOSではシステムの各設定をする際にvyosユーザで以下特別なコマンドで実施する。 OSの基的な設定を行う。 #バージョン表示 show system image #設定モード config (configure) # メモリ上で

    VyOS - Qiita
    cknbstr
    cknbstr 2020/12/29
  • keepalivedのインストール&設定方法 - Qiita

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

    keepalivedのインストール&設定方法 - Qiita
    cknbstr
    cknbstr 2020/10/27
  • 2台でHA構築 (CentOS6.9) 2018年追記 - Qiita

    CentOS6.9 x86_64 pacemaker-1.1.17 corosync-2.4.2 crmsh-2.1.9 drbd84-utils-8.9.8 kmod-drbd84-8.4.9 DRBD構築支援サービス|サービス紹介|株式会社コンバージョン 参考 @takehironetさんのCentOS 6でPacemaker 1.1をつかう - Qiita Linux-HA Japanのすぐに始められる!最新のPacemakerで始める高可用クラスタ入門 corosyncについて corosyncはheartbeatの代わりとして使用されている。 CorosyncはHeartbeatよりも設計が新しいため、通信効率が優れています。 memberで書いているのは古い。(corosync.conf) nodelistを使う。 service corosync startは古い。 /sbi

    2台でHA構築 (CentOS6.9) 2018年追記 - Qiita
    cknbstr
    cknbstr 2020/10/27
  • docker-composeでコンテナの初回起動時に特定の処理を行う方法 - Qiita

    TL; DR docker-composeでコンテナの初回起動時に特定の処理を行う方法を簡潔にまとめました。 初回起動判定付きのシェルスクリプトを作成する docker inspect コマンドでベースイメージのENTRYPOINTとCMDを調べる シェルスクリプト → ENTRYPOINT → CMDの順で実行するように設定する 経緯 Dockerfile内でコンテナ初回起動時のみ特定の処理を行うように設定する場合、初回起動判定を仕込んだdocker-entrypoint.shをENTRYPOINTに指定するのが一般的ですが、docker-composeの設定だけでコンテナ初回起動時に処理を挟みたいときにはどうしたら良いのか気になったので試してみました。 ※ docker-entrypoint.shについてはこちらの記事の解説が分かりやすいです。 dockerで初回起動時のみ特定の処理を

    docker-composeでコンテナの初回起動時に特定の処理を行う方法 - Qiita
    cknbstr
    cknbstr 2020/10/16
  • SchemaSpy6.1.0でPostgreSQLからER図を出力する - Qiita

    コマンド一発でSchemaSpyを使ってER図を出力する方法が記載されていますので、こちらの方が便利だと思います! https://qiita.com/ap8322/items/b93dfb2ff29b026ffa72 (2020/5/25 更新) はじめに SchemaSpyでER図を出力することがあったので、出力方法を残しておきます。 またSchemaspy6.1.0(2019年3月12日時点で最新)からGraphvizのインストールが不要になり、-vizjs オプションを付けるだけでER図の出力が可能になりました。 前提環境 macOS Mojave 10.14.3 Java 1.8.0_121 PostgreSQL 11.2 SchemaSpy6.1.0をダウンロード Githubの「Latest Build」から6.1.0をダウンロード https://github.com/sc

    SchemaSpy6.1.0でPostgreSQLからER図を出力する - Qiita
    cknbstr
    cknbstr 2020/10/13
  • まだER図の管理で消耗してるの? SchemaSpy でER図を自動生成して管理する  - Qiita

    はじめまして。謎の集団ZeneloでDBAやらSREの見習いをやっている者です。 初めてQiitaを書くので、煽りタイトルの割には駄文かつかなり内容が薄いですがご了承ください。 ER図を手で管理するのはつらい 現在、謎の集団zeneloではER図を ERMaster というツールで管理している。 ERMasterは細かい部分までER図を表現できる素晴らしいツールではあるが、Json型やDatetime(6)など対応していない為表現できない型があったり、Eclipseを開かなければならないなどいくつかの課題があります。 何より手で管理するのがつらく、 ER図を作成するのは、SRE用語で言うトイルにあたる作業である為、 SREを志す身としては、このトイルを撲滅したいと思い、何か良いツールがないかを探していました。 そこでSchemaSpyの登場 SchemaSpyとは、指定したDatabase

    まだER図の管理で消耗してるの? SchemaSpy でER図を自動生成して管理する  - Qiita
    cknbstr
    cknbstr 2020/10/13
  • VSCodeからRemote SSHで接続しようとすると「UNPROTECTED PRIVATE KEY FILE!」と言われる場合の対処法 (windows10) - Qiita

    VSCodeからRemote SSHで接続しようとすると「UNPROTECTED PRIVATE KEY FILE!」と言われる場合の対処法 (windows10) @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'C:\\Users\\ユーザー名\\.ssh\\秘密鍵名.pem' are too open. It is required that your private key files are NOT accessible by others. This private key

    VSCodeからRemote SSHで接続しようとすると「UNPROTECTED PRIVATE KEY FILE!」と言われる場合の対処法 (windows10) - Qiita
    cknbstr
    cknbstr 2020/09/24