タグ

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

  • GoogleのShell Style Guideの邦訳 - Qiita

    背景 (Background) どのシェルを使うか (Which Shell to Use) Bash は実行が許可された唯一のシェルスクリプト言語である。 実行可能ファイルは #!/bin/bash と最小限のフラグで始めなければならない。シェルオプションの設定に set を利用することで、 スクリプトを bash script_name として呼び出してもその機能を損なわないようにせよ。 全ての実行可能シェルスクリプトを bash に制限することで、全てのマシンにインストールされた一貫したシェル言語を得る。 これに対する唯一の例外は、コーディング対象によって強制される場合である。この1つの例として、Solaris SVR4 パッケージは、どんなスクリプトにも plain Bourne shell であることを要求する。 いつシェルを使うか (When to use Shell) シェル

    GoogleのShell Style Guideの邦訳 - Qiita
  • [Doc] 要件定義書テンプレート・要件定義書の書き方 - Qiita

    下記ドキュメントバージョンに関する注意点です。 バージョン番号のルールを定める:バージョン番号は、どのようにつけるかルールを定め、チーム全員が同じ理解で使用するようにする必要があります。たとえば、変更内容によって数字がどのように増えるか(major, minor, patch)、何桁で表現するかなど、具体的に決めておくことが重要です。 変更履歴を明確にする:どのような変更があったのか、それがどのバージョンで実施されたのかを明確にすることが必要です。これにより、何らかの問題が発生した場合に、どのバージョンから問題があるのか特定することができます。 ドキュメントの保存場所を一元化する:ドキュメントのバージョン管理には、ドキュメントを保存する場所を一元化することが重要です。それにより、異なるバージョンのドキュメントが、複数の場所に分散してしまい、誤ったバージョンが使用されることを防ぐことができま

    [Doc] 要件定義書テンプレート・要件定義書の書き方 - Qiita
  • 今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita

    はじめに 1992 年に POSIX でシェルが標準化されて以来、シェルスクリプトの数値計算に expr コマンドは使いません。expr コマンドを使って計算していたのは Bourne シェル(古い UNIX の sh)時代の話で、現在の POSIX sh (dash、bash、ksh 等)時代では数値計算に expr コマンドは不要です。今どきはシェルの機能だけで整数の計算を行うことができます。「今どき」って一体いつからだって話なわけですが……。 注意 シェルスクリプトでパフォーマンスの話をするとすぐに「他の言語で〜」という方がいますが、私はどんなことにでもシェルスクリプトを使えなんて一言も言っていません。パフォーマンスを気にしている理由は、そこが実際にシェルスクリプトのボトルネックになるポイントだからです。そもそもシェルスクリプトと一般的な言語は言語設計レベルで得意なことが違います。ユ

    今どきのシェルスクリプトは数値計算にexprを使わない(POSIX準拠) - Qiita
  • Deno のめっちゃ難しいバグを修正した - Qiita

    2022年4月、Deno に以下のバグが報告されました。 fetch API を使って 300KB ぐらいあるファイルをアップロードすると、一定確率でアップロードされたファイルが壊れるというバグの報告です。 報告者によれば、1.20.6 まではバグは発生しておらず、1.21.0 から発生するようになったという事です。1.20.6 の次のリリースが 1.21.0 なので、パッチバージョン1個分まで、バグの発生時期が特定されている状態です。 fetch 周りは自分はほぼ実装していないので「担当範囲ではない」感覚だったので、普通にスルーしていました。 自分に限らず、Deno Land コアチームの誰もこの issue にピンと来る人が居なかったようで、stale ボット (数ヶ月進捗の無い issue を自動的にクローズしようとするボット) に2回もクローズされかけていました。Deno の st

    Deno のめっちゃ難しいバグを修正した - Qiita
  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

    はじめに シェルスクリプトで二重起動防止やロックをする方法を検索すると、いろいろな方法や書き方が見つかりますが、どれを使えばよいのか、当に正しく動くのか、不安になりますよね? ディレクトリ (mkdir) やシンボリックリンク (ln) を使った独自実装の例も見かけますが、エラー発生時や予期せぬ電源断、CTRL+C で止めたときなどでも問題は発生しないのでしょうか? まず、ディレクトリやシンボリックリンクを使った独自実装はしない。これを肝に銘じてください。シェルスクリプトでのロック管理はとても難しく、一般的な排他制御の知識に加えて、シェルスクリプト特有の問題、シグナルやトラップ、サブシェルや子プロセスの問題、さらには特定のシェル固有の仕様やバグなどさまざまな問題に対処する必要があり大変です。独自実装の例では古いロックファイルが残ってしまい、それをいつどのタイミングで片付ければ安全なのか?

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • 納品ドキュメントの作成にMarkdown+Vivliostyleを採用した話 - Qiita

    こんにちは、製造業でソフト開発エンジニアをやっているとみー(@tommyecguitar)です。 会社で納品物の説明ドキュメントを作ることがあり、その時にMarkdownでの組版をやってみたので、どう運用したか、困ったところ、いい点、悪い点をまとめてみようと思います。 Vivliostyleで組版したブログはたくさんあるので、見た目がどんな感じにできるかなどはそちらを見ていただくか、Vivliostyleのサイトをご覧ください。 Wordじゃだめなのか。 製造業で何かしら長大なドキュメントを作るとなったら、大抵はWordを複数人数で編集するという運用をしているところが多いと思います。 しかし、Wordにはいろいろと悪いところがあります。 チーム内で共同編集すると、編集したところが消えたり、フォントやデザインがなぜか統一されなかったりする。 セクションごとに担当を分けても、マージが手作業にな

    納品ドキュメントの作成にMarkdown+Vivliostyleを採用した話 - Qiita
  • 【絶対に観るべき】英語のYoutubeチャンネル集【プログラミング】 - Qiita

    こんにちは。masakichiです。 わたしはプログラミングの学習をしたり、情報収集をする時に好んで動画を閲覧することが多いです。 そんな中、最近英語圏のYoutubeチャンネルのクオリティが有料級並みに高いことに気づきドハマりしています。 ぜひ、プログラミングを学ぶ同志にも視聴してほしいと思い、おすすめのYoutubeチャンネルをまとめました。 なお、わたしはフロントエンドを主としていますので、紹介するチャンネルにも偏りがあります。予め、ご了承のほどよろしくお願いいたします。 The Coding Train 所感 スネークゲームやパズルゲームなどクリエイティブなチュートリアルがたくさんあるチャンネルです。運営者が教育仕事もしているようなので、説明がわかりやすいと思いました。また、語学学校の先生みたいなノリで喋るので、聞き取りやすく親しみを感じることができると思います。 技術範囲 p5

    【絶対に観るべき】英語のYoutubeチャンネル集【プログラミング】 - Qiita
  • React大好き侍が、「もうSolidJSでいいじゃん...//」ってなったワケ。 - Qiita

    Reactが好きです。 Reactが好きです。コンポーネントを関数として扱うのが好きです。 SolidJSReactそっくりの書き心地(DX)を保ちつつ、Reactに足りない要素を兼ね備えた期待の新人です。 コードの比較 React const Counter = () => { const [count, setCount] = useState(0) useEffect(() => { console.log(`Count: ${count}`) }, [count]) return ( <div> <div>{count}</div> <button onClick={() => setCount(prev => prev + 1)}>Add</button> </div> ) } const Counter = () => { const [count, setCount] =

    React大好き侍が、「もうSolidJSでいいじゃん...//」ってなったワケ。 - Qiita
  • console.log(); しか使えなかった自分へ。。。 - Qiita

    この記事について Webエンジニアになって早1年半。railsのデバッグをする時にはエディターのデバッガーでスマートにできていたが、javascriptになるといつもconsole.log();ばかりを使って原始的なデバッグをしていた。。。 そんな脳筋な過去の自分に教えてやるための記事です。 console.log({変数名}); 「いきなりconsole.log();の紹介かい!!!」って思われるかもしれませんが、この技を知ったときは「なんで知らんかったんや。。。」って思うくらい便利だったので最初に紹介します。 以下のようなHTMLがある場合 <form> <input type="text" value="名無しの権兵衛" id="name"> <input type="text" value="80歳" id="age"> <input type="text" value="バスケ"

    console.log(); しか使えなかった自分へ。。。 - Qiita
  • C++ Core Guidelinesのすすめ - Qiita

    気になる点あればバンバン修正申請ください。 追加で紹介したいことや補足したいことなども全然構いません。 はじめに C++は非常に複雑で難しく、何でもできる言語として発展しています。 古い言語仕様からモダンな言語仕様まですべてを何でも扱うことが出来ます。 それが時に最も好かれる部分でもあり、最も嫌われる部分でもあることは事実です。 C++はより安全で効率的なコードを書けるように機能を提供しますが、 それを全員が理解して使うことは難しいです。 古のプログラマにとっては、今までの慣習から離れなければなりませんし、 生まれたてのプログラマにとっては、最新のC++の前に過去のC++から一通り学ばなければなりません。 C++登場の1983年から、C++98, C++11, C++14, C++17, C++20と進化を続けていくたびに、教科書もどんどん分厚くなっていきます。 C++はこのまま過去の古い

    C++ Core Guidelinesのすすめ - Qiita
  • AWS公式の「Infrastructure as Code 談議 2022」がすごく勉強になったのでまとめてみた - Qiita

    この前AWS公式のYouTubeチャンネルにて、面白そうなライブ配信がありました AWSの動画コンテンツといえば、BlackBeltのようなサービス紹介の動画が真っ先に思い浮かぶ方も多いと思います。 自分もその一人ですが、この動画はプロダクトではなく「Infrastructure as Code(IaC)という概念」にフォーカスしたコンテンツです。 Twitterで学びメモを書きましたが、ちゃんと記事として学びをまとめておこうと思います。 また、動画の内容に関連した補足事項を記事の後半にまとめておきました。 ↓動画編はこちら↓ ↓資料はこちら↓ IaCをなぜ使うのか 純粋にIaCは楽しい、手順書作成は楽しくない リリースのたびに手順書更新 or 新規作成するのは、果たして楽しいのか IaCのほうがリリースまでのリードタイムが短い 運用する上での教育はどうする? そもそも「教育」はIaCじ

    AWS公式の「Infrastructure as Code 談議 2022」がすごく勉強になったのでまとめてみた - Qiita
  • シグナルハンドラにprintf()を書いてはいけない - Qiita

    三行でまとめると シグナルハンドラ内でprintf()してはいけない というより、余計な処理を書いてはいけない もう一度言う、シグナルハンドラで余計なことをするな、非常に大事なことだ はじめに シグナルハンドラでやってよい処理は非常に限られるのに、全くルールを守らないサンプルコードが世の中に大量に出回っている。printf()するなんてもってのほかなのだが、カジュアルにそこらじゅうで見かけて非常に悲しい。 この記事では、そんな状況を少しでも改善したいと思い初心者向きに書いたものだ。そのため、下記では、回避するにはどう実装すればよいのか、ルールを破るとどうなるのか、といった点を先に簡潔に記述する。 なぜしてはいけないのか、POSIXだとかリエントラントだとか、は下の方に追いやっている。玄人は読んでてウズウズするだろうが、細かい話はできるだけ目につかないような構成としたため了解いただきたい。

    シグナルハンドラにprintf()を書いてはいけない - Qiita
  • VSCodeおすすめ設定大公開!!おすすめ拡張機能も - Qiita

    はじめに 皆さんVisual Studio Code(以下VSCode)使ってますか? 私はメインで使っているのですが、自分なりにしっくりくる設定や拡張機能がある程度揃ってきたので公開しちゃいます。 おすすめ設定だけではなく、おすすめの機能もできる限り紹介したいと思いますので、最後までぜひお付き合いください。 ※プログラミング言語固有の設定の解説は軽めですのでご了承ください。 GIF画像が小さい場合は、クリックして頂けると拡大して表示が可能です デフォルト機能編 Local History機能 Gitは非常に便利なので、皆さん使われていると思います。 Gitはコミット単位で履歴が管理できますが、保存単位で履歴が見れると嬉しいな、保存単位で復元できると嬉しいな、と思うことはないでしょうか。 私はVSCodeは自動保存をオフにして、手動で保存するので、保存単位で履歴が見れると嬉しいなと思うこと

    VSCodeおすすめ設定大公開!!おすすめ拡張機能も - Qiita
  • 競プロで役立つC++20新機能 - Qiita

    はじめに 競プロのコーディングが快適になるC++20新機能をまとめました!! C++20の豊富な新機能から競プロで便利な機能を合計で16個紹介します. ※(2023/8/7追記) AtCoderでは2023年の言語アップデートにより、ほとんどの機能が使用可能となりました。新バージョンのgcc12.2では、紹介されている機能のうち <format> を除くすべての機能が使用可能です。 参考文献 https://cpprefjp.github.io/lang/cpp20.html https://en.cppreference.com/w/cpp/20 を参考にしました. cpprefjp以外をあまり見ていないので,間違っているところがあるかもしれません. 誤りに気づいたら指摘していただけると幸いです. 標準ライブラリの新機能 1. コンテナのメンバ関数の追加 1-1. 連想配列に conta

    競プロで役立つC++20新機能 - Qiita
  • 脱ExcelしたいMarkdownテンプレート目次 - Qiita

    Markdownテンプレート」シリーズの目次です。 Markdownで全ての社内文書 GitHub Flavored Markdown推し 段落 Markdownで設計 Markdownでリリースノート Markdownで報告書 Markdownで職務経歴書 Markdownでスライド Markdownで会議 Markdownで校正 終わりに 以上、各記事が参考になれば幸いです。

    脱ExcelしたいMarkdownテンプレート目次 - Qiita
  • 結局UMLとかシーケンス図とかAWSの図とかどれで描くと良いのよ?と思ったときの選択肢 - Qiita

    自身のプライオリティによりますが、いくつか。 Markdownで幅広く再利用性を利かせたい、長期的に丁寧に版管理したい 自分自身の操作性、描きやすさと、見た目 俄然手軽に、短期的に、Onlineでいつでもどこでも いずれかという視点で考えると良いのかなと思い、並べてみました。 1. 長期的に: Markdownで幅広く再利用性を利かせたい、丁寧に版管理したいなら Markdownで描くことのメリットは再利用性。 将来的に追記・編集、自分以外の誰かが手を入れる可能性が高い。 現在のドキュメントだけでなく多種説明資料、媒体に転用する可能性がある。 ...という点で差分管理をしたいなら、以下。 VSCodeでPlantUML、Mermaid 上記参考で以下。 Alt+D でプレビュー起動。 Ctrl + Shift + P でコマンドパレットを起動し、出力。 png, svg, eps, pdf

    結局UMLとかシーケンス図とかAWSの図とかどれで描くと良いのよ?と思ったときの選択肢 - Qiita
  • RSAに対するフェルマー攻撃 - Qiita

    はじめに(Introduction) RSAの鍵ペアの生成方法にミスがあり脆弱性となってしまった実装例があったようです。 元の文献を機械翻訳(ちょっと修正)してみます。 原文のデモをやってみたところ、案外動いたので先にデモを記します。 デモ(Demo) まずは、素数$p$と$q$を生成して$N$を求めるところです。 ※:鍵長が2048bitなので多少時間がかかります。 問題となったライブラリがこのようなロジックであったかは不明ですが、翻訳した資料を参考に作成しています。 import random as rnd import sympy key_length = 2048 distance = 10000 p = 0 q = 0 # 乱数Xを生成する。 X = rnd.randrange(2, pow(2, key_length)) for i in range(distance): #

    RSAに対するフェルマー攻撃 - Qiita
  • 新人エンジニアはnewsletterを読もう - Qiita

    エンジニアには「技術的な議論についていけるようになりたい」とか「自分が伸ばしたい分野の最新情報をちゃんと追いかけたい」とか悩んでいる人が多いと思う。 例に漏れず私も悩んでいて、以前からいろいろ試していたが、同僚が紹介していた「newsletterを購読する」方法が一番ためになった。 まず不足しがちな情報として、コミュニティの最新動向をキャッチアップするためにはnewsletterを購読している。 newsletterとは有志がある技術に関する最新動向をまとめて定期的に配信するメディアで、僕が購読しているものだと https://this-week-in-rust.org/ https://www.cncf.io/kubeweekly/ などがある。 大体は「<技術名> newsletter」で検索するとそれっぽいものが引っかかるのでそれをsubscribeすればよい。 まともなnewsle

    新人エンジニアはnewsletterを読もう - Qiita
  • 【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita

    2023AtCoder言語アップデートにより、Rustの環境は大きく変化しました。そのため、記事はフリーズさせ、後日、2023年版に対応した記事を新規作成したいと思います。 筆者は、競プロのアルゴはPythonを使いつつ、マラソンはRustを使っております。前者は発想を短時間にコードにすることを重視し、後者はコーディングに時間をかけてでも高速性を確保したいからです。 その際、Pythonでできたアレを、Rustでどう書くんだっけ、と悩むことが多く、悩んだ結果を自分メモを兼ねてTipsにすることにしました。競プロに出てくるパターンを多く収録していますが、競プロ目的以外でも参考になるかと思います。とりありず、ざっと記述してみましたが、そのうち増やしたり、章立てを変えたりするかも知れません。 なお、参照がーとかトレイトがーとか、Rustそのものの入門には言及していませんので、適宜、別の記事や

    【競プロ】Python使いがRustを「完全に理解する」までのTips - Qiita
  • 自己署名証明書(CA 含む)を簡単に作成する方法 - Qiita

    $ openssl x509 -text -noout -in minica.pem Certificate: Data: Version: 3 (0x2) Serial Number: 6b:f5:aa:ab:5d:00:bc:34 Signature Algorithm: sha256WithRSAEncryption Issuer: CN=minica root ca 6bf5aa Validity Not Before: Nov 9 03:25:39 2018 GMT Not After : Nov 9 03:25:39 2118 GMT Subject: CN=minica root ca 6bf5aa Subject Public Key Info: Public Key Algorithm: rsaEncryption RSA Public Key: (2048 bit) M

    自己署名証明書(CA 含む)を簡単に作成する方法 - Qiita