タグ

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

  • Linuxカーネルパラメータのチューニング&設計 - Qiita

    Linuxカーネルパラメータのチューニング&設計 0.目的 【カーネルパラメータのチューニング】を修得する目的は、サーバの特性を理解し、それぞれに合ったカーネルパラメータのチューニングすることでリソースの有効活用をできるようになることを目的とし、私個人の経験を元にした見解を以下の記事に掲載します。 1.最初に サーバには、それぞれ必要なリソース特性があり、それに合わせたカーネルパラメータのチューニングが必要となります。 世の中の流れはオンプレよりクラウドに移行してはいるので、カーネルパラメータのチューニングよりスケールアップなりスケールアウトするなりの対応をすべきなのでしょう。 ですが、カーネルパラメータのチューニングを知らないとどちらを選択すべきかも理解しずらいと思いますので軽率には出来きません。(待ち行列理論もしらないといけませんが) また、最近のLinuxはデフォルト値が大きくなって

    Linuxカーネルパラメータのチューニング&設計 - Qiita
  • 次世代エディタ6選 - Qiita

    ⚪︎ : 無制限のBasic、限度ありのAdvance △ : 限度ありのBasic Zed Atomの製作者達によって作成されたOSSのRust製エディタ。現状はMacOSのみで使用可能。そのほかのOSも現在対応中。パフォーマンスを重視しているので軽い。AIは搭載していないが、Copilotを使用することは可能。 Github : zed-industries/zed インストール方法 https://zed.dev/download からインストールしてください。(MacOSのみ) 使用方法 以下に詳しく書かれていました。 思考のスピードでコードを書け!!Rust製の次世代エディタ「Zed」 Positron VSCodeをベースにした次世代データサイエンスIDE。 インストール方法 https://github.com/posit-dev/positron/releases からイン

    次世代エディタ6選 - Qiita
  • Rust と OS の知識 0 からはじめるRustで始める自作組込みOS入門 - 前半(スケジューラの実装まで) - Qiita

    きっかけ・読んでいく うさねこらーじの Discord サーバーで、いろいろな先輩たちに技術のことを教えてもらっています。 https://discord.gg/RMq7e5qbQj このなかで、著者の garasubo さんにサポートしてもらいながら以下のの内容を実装しているのですが、 Rust の知識も OS の知識もない私にとっては内容がかなり高度なので、補助のためにこのブログを作成しています。 Rustで始める自作組込みOS入門 https://amzn.asia/d/ebuOUM1 ぜひこのを読みながらこのブログを参照していただけると嬉しいです。 第 2 章 ベアメタルで Hello World 単語のかみくだいた説明 ベアメタルプログラミング OSのない環境で実行するためのプログラムを書くことです。この環境下では CPU ごとに決まった動作(たとえば、決まったアドレスにあ

    Rust と OS の知識 0 からはじめるRustで始める自作組込みOS入門 - 前半(スケジューラの実装まで) - Qiita
  • 【日本人エンジニア必携】英語命名規則の決定版 - Qiita

    弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 はじめに 英語での適切な命名は、コードの可読性や保守性を向上させるために重要です。適切な命名規則を守ることがコードの理解や共有において不可欠です。 英語での命名規則を学び、適切な命名を行うことで、コードの読みやすさや保守性を向上させ、チーム全体でのコードの理解を促進する手助けとなります。 この記事では、日エンジニア英語での命名規則を理解し、適切な命名を行うための指針を提供します。 命名フローチャート 変数 関数 クラス 1. 変数 1-1. boolean 1-1-1. 存在するかどうかのフラグ 名詞 + exists

    【日本人エンジニア必携】英語命名規則の決定版 - Qiita
  • AWSエンジニアロードマップ2023 - Qiita

    AWSの学習順序を「路線図風」にまとめました。 ・黄色の丸は重要な項目です。 ・「AWS完全未経験」の方であれば、目安は「3ヶ月」の学習期間で「SAA資格に合格」が標準です。 (経験者であれば、より短い期間で合格が可能です。) ・SAA合格後は他資格の学習と合わせて、ハンズオンを中心に手を動かす学習を推奨します。 ChatGPTでも、ここまでのロードマップは出せないはず⛅️ 1週目:AWS基礎知識(AWS Basics) まずは「AWS」と「従来型のITインフラ環境」について整理していきましょう。 なぜAWSがこれほど世間から求められているのか?AWSのどのような点がメリットなのかについて理解するのが大切です。 オンプレミスのデメリットは ・多額の初期費用が必要 ・キャパシティの予測が必要 ・通常、サーバー購入から設置まで1ヶ月程度かかる などがあります。 一方、AWSは利用した分だけ支

    AWSエンジニアロードマップ2023 - Qiita
  • Rustプログラムのデバッグ辛すぎ問題 - Qiita

    この記事は Rust Advent Calendar 2023 シリーズ2 の1日目の記事である。 Rustは良くも悪くもシステムプログラミング言語なので、何も工夫しなければデバッグの体験がC言語と同じレベルになってしまう。例えば「rust lldb」でググると上位に Debugging Rust programs with LLDB is a nightmare というスレッドが出てきてしまう。 使うべきツールを知っていれば幾分かマシな体験にできる。Rustコンパイラはデバッガとして LLDB, GDB, WinDbg/CDB をサポート していて、僕はWinDbGは10年くらい触ってないので、この記事ではLLDBとGDBについて書く。 LLDB Apple SiliconのMacだとGDBが使えないので、必然的にLLDBを使うことになる。 CodeLLDB GDBと同じく、LLDBにも

    Rustプログラムのデバッグ辛すぎ問題 - Qiita
  • 【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita

    はじめに もう文字列の置換で sed コマンド使うの禁止して良いんじゃないですかね? 言いすぎだとわかってあえて言っていますが。 悪い書き方(外部コマンドに頼る方法) # 変数 line に入ってる文字列を echo コマンドで出力して sed コマンドに渡し、 # sed の s コマンドで "from" を "to" に置換して出力したものを ret 変数で受け取る ret=$(echo "$line" | sed "s/from/to/")

    【脱sed】いい加減シェルスクリプトで文字列をsedで置換するなんてやめよう - Qiita
  • ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita

    pictBLandとpictSQUAREに対する不正アクセスがあり、パスワードがソルトなしのMD5ハッシュで保存されていたことが話題になっています。 2023年8月16日に外部のフォーラムにpictSQUAREより窃取した情報と主張するデータ販売の取引を持ち掛ける投稿が行われた(中略)パスワードはMD5によるハッシュ化は行われているもののソルト付与は行われていなかったため、単純なパスワードが使用されていた29万4512件は元の文字列が判明していると投稿。(それ以外の26万8172件はまだMD5ハッシュ化されたままと説明。) 不正アクセスによるpictBLand、pictSQUAREの情報流出の可能性についてまとめてみた - piyolog より引用 これに関連してMD5ハッシュやソルトに関するツイート(post)を観察したところ、どうもソルトの理解が間違っている方が多いような気がしました。

    ソルト付きハッシュのソルトはどこに保存するのが一般的か - Qiita
  • strlen() の深淵 - Qiita

    あらまし strlen() という関数がある。御存知の通り、文字列の長さを算出する標準 C ライブラリの関数だ。 やってることは単純で、例えば以下のように実装できる。 size_t strlen_simple(const char* str) { const char* p = str; while (*p) ++p; return size_t(p - str); } '\0' が見つかるまでポインタを進め、初期位置との差分を返すだけだ。これで機能的には std::strlen() と同等である。 では、速度的にはどうだろう?適当にベンチマークを書いて MSVC 2022 でコンパイル&実行するとこうなった。

    strlen() の深淵 - Qiita
  • シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita

    この中で私が特に気に入ったコマンドは dateround です。次点は dategrep です。この二つは特に強力で、awk やその他のコマンドを使って日時をこねくり回すような「無駄に難解なコード」を書かずに Dateutils のコマンド群だけで大抵のことはなんでもできてしまいます。専用のことをするには専用のコマンドを作ることが重要であることを思い出させてくれるでしょう。 Dateutils の重要な特徴と使用例 大抵のコマンドは機能の説明から想像できると思いますし、公式サイトにも例があるので詳細を一つ一つ説明することはしません。その代わりに「Dateutils の使いこなしに必要な考え方」が分かるような例をいくつか紹介します。 重要な注意点ですが Dateutils はロケールをサポートしていますが、原則としてシステムのロケール情報やユーザーの環境変数には依存していません。内部にロケー

    シェルスクリプトで日付処理ならdateコマンドは投げ捨ててDateutilsを使おう! - Qiita
  • LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita

    nextauth.js でシングルサインオン機能を実装する場合、SlackなどはアプリケーションがHTTPS接続をサポートしていることが前提となっており、開発時にもHTTPSのサポートが必要となる場合があります。このような場合には、local-ssl-proxyを利用して、リバースプロキシのようにする方法が簡単で便利です。 以下、LOCAL環境=Windows PC、という前提です。 local-ssl-proxyのインストール local-ssl-proxyはグローバルインストールしかサポートしていません。ので、グローバルインストールします。

    LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita
  • 君はVS Codeのデバッグの知られざる機能について知っているか - Qiita

    はじめに こんにちは、kenです。 GWに「暇だな~~、こんな日はVS Codeの公式ドキュメントを読むか!w」と思って何気なく読んでたらデバッグに関して知らない機能がいくつかあったので、今回はそれをご紹介したいと思います。 おそらく今から紹介する機能はあまり知られてないと思います。もし全部知ってたらVS Code完全理解者なので誇ってください。(!?) 以下に記載する内容はVS Codeの公式ドキュメントのDebuggingという章を参考にしています。 注意 これから紹介する機能は言語によって使えたり、使えなかったりします。 今から紹介する機能のデモはすべてPythonで行おうかと思ったのですが、上記の理由からPythonではサポートされていない機能についてはJavaScriptC++で代用しました。 デバッグで使える便利な機能 ログポイント機能 行を指定しログポイントを追加すると、そ

    君はVS Codeのデバッグの知られざる機能について知っているか - Qiita
  • 名前解決サービスを自作する - Qiita

    はじめに 名前解決サービスって? 皆さんが今お使いのネットワーク(LAN)には、「example」という名前のPCは接続されているでしょうか? 臨時使用の仮想マシンを作る際に foo とか hoge の様な名前のマシンを構築することはあるかもしれませんが、普通はそんなコンピューター名にはしないと思います。また、/etc/hostsに「example」という名前に関する定義はあるでしょうか? たとえば、127.0.0.1 exampleと書かれていれば、ping exampleを実行すると、自マシンからのping結果が返ってくるはずです。 ここから先は、「example」という名のホストは存在せず、/etc/hostsにもそのような定義はなく、ping exampleを実行すると、ping: unknown host exampleという結果が表示される前提で話を進めます。 ホスト名からIP

    名前解決サービスを自作する - Qiita
  • 【AtCoder】中卒の主婦が青コーダーになったおはなし【競技プログラミング】 - Qiita

    はじめまして。mayocornです。 先日のABC281で青コーダーになりました! 経歴 20代の主婦。旦那は競プロやってないです。 中学卒業→高校入学→高校中退→バイトを転々とする(ITに関してはSESで半年ほど働いた経験あり)→今の住所に引越してきてからは無職 趣味ゲームで、最近やっているタイトルはファイアーエムブレムエンゲージ、Splatoon3です。音ゲーやカードゲームに熱中してた時期もありました。CHUNITHMは旧レートでベスト枠15.3くらい。でものめりこむほどお金がかかるのでやめました。競技プログラミングは何問解いても無料なので続けられてます。 学力に関して話すと、高校数学は確率、論理と集合がちょっとわかるくらいで三角関数、微分積分、行列あたりは全然分かりません。青パフォーマンスをとるのにこのへんの知識が必要になったことはなかった気がします。(私が参加した回の中では) 競

    【AtCoder】中卒の主婦が青コーダーになったおはなし【競技プログラミング】 - Qiita
    MonMonMon
    MonMonMon 2023/02/12
  • Linuxの新しいsandbox機構「Landlock」 - Qiita

    はじめに この記事ではLinuxの新しいsandbox機構であるLandlockのサンプルの使い方を概説します。 詳細で正確な情報は公式のページ https://landlock.io/ やLinux kernelのソースコード中にありますので、必要な場合はそちらを参照してください。 サンドボックスが欲しいわけ 一般的なLinuxディストリビューションとスマートフォンOSの両方を使い、それぞれで様々なアプリを使っている方は大きな違いに気付くと思いますが、前者はユーザーのデータはホームディレクトリと呼ばれる共通のディレクトリに格納され、他のアプリのためのデータを自由に参照できます。それに対し、スマートフォンの場合は各アプリが独自のデータ領域を持ち、他のアプリのデータを参照するには手間のかかるプログラミングとユーザーの同意が必要になります(バイパスできてしまう場合は脆弱性とみなされます)。 L

    Linuxの新しいsandbox機構「Landlock」 - Qiita
  • RSAの終わりの始まり - 暗号移行再び - Qiita

    前振り 全国の暗号を使うエンジニアの皆さんこんにちは。今日は暗号移行とRSA暗号の話をしたいと思います。まず暗号を利用している皆さんであればCRYPTRECの「電子政府推奨暗号リスト」のことはご存じですよね!(言い切るw) CRYPTRECから2022年7月(昨年夏)に暗号強度要件(アルゴリズム及び鍵長選択)に関する設定基準(PDF直リンク)が公開されました。この中では暗号のセキュリティ強度で各種暗号と鍵長が整理されています。セキュリティ強度はビットセキュリティと呼ばれるビットサイズ(共通鍵暗号の場合のビット長)で区分されます。暗号アルゴリズムが違ってもセキュリティ強度で比較ができるということですね。例えば現在一般的に良く使われているセキュリティ強度は112ビットセキュリティが多く、これにはデジタル署名であればRSA暗号の2048ビットやECDSAのP-224等が含まれます。今日は公開鍵暗

    RSAの終わりの始まり - 暗号移行再び - Qiita
  • それ、非再帰で書けます - Qiita

    この記事は再帰自体を全否定する趣旨ではありません。 両方の良さを理解した上で非再帰で書きたいと思ったときの参考にしていただければと思います。 まだ再帰関数書いてるの? 再帰関数はプログラミング言語の有用な機能で、深さ優先探索をベースとする様々なアルゴリズムの実装として有用です。 その一方で、関数呼び出しはオーバーヘッドが大きく、定数倍が弱くなります。また、JavaPythonなどのスタック領域の制限が厳し目の言語では深すぎる再帰のせいでRuntime Errorが発生する場合があります。 C++などのコンパイル言語ではインライン展開によって関数呼び出しのオーバーヘッド解消されることもありますが、再帰関数は中でもインライン展開の難易度が高く、深い再帰ではそのまま実行せざるを得ない状況になります。 ところが、再帰関数は生のスタックを自分で用意するなどして非再帰に書き直すことができます。(「停

    それ、非再帰で書けます - Qiita
  • RFC 8725 JSON Web Token Best Current Practices をざっくり解説する - Qiita

    ritou です。 今回は RFC 8725 JSON Web Token Best Current Practices を紹介します。 みんな大好き JWT (JSON Web Token) の BCP ときたらチェックせずにはいられないでしょう。 概要 JWTは 署名/暗号化が可能な一連のクレームを含む、URLセーフなJSONベースのセキュリティトークン です JWTは、デジタルアイデンティティの分野および他のアプリケーション分野の両方の多数のプロトコルおよびアプリケーションにて、シンプルなセキュリティトークンフォーマットとして広く使用/展開されています このBCPの目的は、JWTの確実な導入と展開につながる実行可能なガイダンスを提供することです ということで、何かのフレームワークでもプロトコルでもなければJWTを使ったユースケース考えたよって話でもなく、JWTを導入する上で基的な部

    RFC 8725 JSON Web Token Best Current Practices をざっくり解説する - Qiita
  • Bash シェルスクリプトのデバッグや入力補完ができる Visual Studio Code 拡張機能(WSL2,mac,Linux対応) - Qiita

    Bash シェルスクリプトのデバッグや入力補完ができる Visual Studio Code 拡張機能WSL2,mac,Linux対応)ShellScriptBashdebugVSCodeWSL2 シェルスクリプトにも統合開発環境を Bash のシェルスクリプト (shell script) は Linux はもちろん macWindows でも動作します。 シェルスクリプトの文法にはかなりクセがありますが、仕様が安定しているために移植する必要がないという大きなメリットがあります。ただ、一般的なプログラミング言語と異なり、デバッガーが使えないため期待した動作と異なるときに動きが分かりづらいという弱点がありました。 しかし、それはもう過去の話です。 Visual Studio Code の Bash Debug 拡張機能を使えば、シェルスクリプトでもステップ実行や環境変数の値のウォッ

    Bash シェルスクリプトのデバッグや入力補完ができる Visual Studio Code 拡張機能(WSL2,mac,Linux対応) - Qiita
  • Rust Memory Container Cheat-sheet - Qiita

    Repos: https://github.com/usagi/rust-memory-container-cs 文字で読み書きするとやや大変です。しばらく間を開けてRustを触ったりするとスコシ混乱するかもしれません。と、いうわけでRustでメモリーコンテナー系に触れるモードになった時用に1枚絵のチートシートを整理しました。 文字を書けるQiitaにポストするのでちょっとだけチートシートの解説も乗せます。 おまけ解説 Threads; スレッド群 (rev.0 -> rev.1 でこのチートシート上で最初に現れる選択肢に切り替わりました ⇔ Ownership; 所有権) Rustではマルチスレッディング実行の安全性を向上するため、 適当に確保したメモリーをスレッド間でうっかり共有できない(少なくとも簡単にはうっかりできない程度に難しい)仕組みがあります。その仕組みの核心は標準ライブラリ

    Rust Memory Container Cheat-sheet - Qiita