タグ

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

  • C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita

    これは、 C++ でコンパイル時に出力まで済ませようとした話です。 コンパイラは GCC に限ります。 はじめに もうすぐクリスマスですね! クリスマスにすることといえば……、 そう、コンパイル時処理ですね!! コンパイル時処理 C++ のコンパイル時処理は非常に強力で、様々なことがコンパイル時にできてしまいます。 普通はコンパイル時に決まる定数の計算に使われますが、これを悪用利用してコンパイル時に処理がすべて終わるようなものも書くことができます。 例として、コンパイル時 FizzBuzz を書いてみます。 #include <array> #include <string_view> #include <algorithm> #include <concepts> #include <iostream> template <std::unsigned_integral T> conste

    C++ コンパイル時「出力」 ~C++にできないことはない~ - Qiita
  • 「技術的には可能です」と発声するその前に - Qiita

    技術者はよく、実装可否の問い合わせに対して当はやりたくない・すべきでないと思っているのにやればできることだからと「技術的には可能です」と答えてしまいハマる⋯って当ですか? 私は最低でもここ10年は「技術的には可能です」と発言した記憶がありません。なぜそう言うことがないかというと、可否の問い合わせを受けた時点で次のようなことを考えてしまうからです。 運用は回る? 人力操作が絡むフローがあるけど利用数が増えたときにちゃんとスケールする? 休日深夜対応が必要になりそうだけど要員と人件費コストは確保できてる? カスタマーサポート対応激増しそうだけど(以下同文 誤操作があったりしてデータの修正依頼が来たときに訂正しようがない要件っぽいけど大丈夫? エンジニアDB直操作対応するサービスメニューが存在するけど事故リスク、工数コスト、今後の開発停滞リスクは織り込み済み? 事故の際の責任はエンジニア

    「技術的には可能です」と発声するその前に - Qiita
    iww
    iww 2022/12/09
    技術的には可能じゃん
  • 【GIT】差分ファイル一覧を作成 - Qiita

    GITでコミットAからコミットBまでの間で、削除・追加・変更されたファイルについて、それぞれの一覧を取得する方法です。 git diff は --name-only を付けると、ファイルのパスを返してくれるのです。 git diff は --name-status を付けると、ファイルのパスとステータス(削除・追加・変更)を返してくれるのです。 差分ファイル一覧を出力

    【GIT】差分ファイル一覧を作成 - Qiita
  • 僕の考えたさいきょうのインスタンヌ - Qiita

    今1からセキュリティを考慮したEC2環境作るならどうするか?というのを考えて色々妄想したもの。 とりあえずオープンソースで考えてみたが、多すぎて業務用なら市販のパッケージとか使ったほうが良いのかもしれない。 それSecurityOnionで出k ※2022/01/08 脆弱性スキャン関係を修正 ※2022/01/17 Wazuhログ集約関係を修正・追記, 詳細ページへのリンクを追加 前提 Ubuntu 20.04LTS on AWS EC2 Apache 2.4 + mod_php クライアント証明書使用可能 ←特殊条件 結論 OSレベルアクセス制御: AppArmor WAF: ModSecurity アンチウイルス: ClamAV HIDS / EDR: Wazuh 脆弱性スキャン: Wazuh SCA SIEM: Wazuh + Elastic Stack NIDS: AWS Net

    僕の考えたさいきょうのインスタンヌ - Qiita
  • ゆめみの Flutter の研修課題を公開しました - Qiita

    はじめに 株式会社ゆめみの Flutter の研修課題を公開しました ゆめみは、2022年1月に Flutter ギルドを立ち上げたばかりで、これまでドキュメント整備やテンプレートプロジェクトの作成、採用コーティング試験の作成など、少しずつギルドの体制を整えてきました。 そして、2023年4月に入社予定の方々のために、育成体制も着々と整えていっており、そのひとつとして研修課題を作成しました。 すでに、11月中旬から2名の内定承諾者アルバイトの方に取り組んでいただいており、今のところ「楽しい」「学びが多い」などの反応をいただけており嬉しい限りです まだ作成したばかりで至らぬ点もあるかと思います。 何か気づいた点や改善点などありましたら、優しくご指摘いただけますと幸いです 内容 用意されている課題を順番にクリアして、天気予報アプリを開発していきます。 おおまかな内容は、ゆめみの iOS ギルド

    ゆめみの Flutter の研修課題を公開しました - Qiita
  • systemdのUnitファイルのパスを知らなくともUnitファイルを編集する方法 - Qiita

    systemdのUnitファイルの配置先パスはいっぱいあり、正直どこに置いていいのかわかりづらいです。 systemdを制御するsystemctl(1)にはeditというサブコマンドがあり、Unitファイルのパスを知らなくともUnitファイルを編集できます。 systemctl edit の利点は2つです。 今使っているシステム内で利用すべきパス上でエディタが立ち上がる Unitファイルの場所を知らなくても編集できる 編集後に systemctl daemon-reload を自動実行してくれる 反映し忘れが無くなる 試しに以下のようにすると ssh.service のUnitファイルのパスを知らなくとも、エディタが立ち上がって編集できるようになります。 この時のエディタは SYSTEMD_EDITOR 環境変数、もしくは EDITOR 環境変数で指定されたものになります。 nano が立

    systemdのUnitファイルのパスを知らなくともUnitファイルを編集する方法 - Qiita
    iww
    iww 2022/11/14
    実験中は便利そう。 本番環境では怖いので使えない
  • [Linux] inotifywaitを使ってファイル更新時に任意のコマンドを実行する - Qiita

    [2016/07/29 追記] systemd.pathを使えば同じことができそうなことが判明・・・orz [2016/07/29 さらに追記] systemd.pathからUnitにファイルパスを渡す方法が不明。できないのかな。 できないのならこのスクリプトも意味があるけど。 どなたかご存知でしたら教えてください。 事前準備 inotify-toolsをインストール (Redhat系) #!/bin/bash -eu trap "exit 0" 3 # QUITシグナルで停止 WATCH_DIR=$1 # 監視するディレクトリ FILE_PATTERN=$2 # ファイル名正規表現 COMMAND=$3 # ファイル更新時に実行するコマンド # --formatで"ディレクトリ ファイル名 イベント"の形式で出力するように指定 inotifywait -e CLOSE_WRITE -m

    [Linux] inotifywaitを使ってファイル更新時に任意のコマンドを実行する - Qiita
    iww
    iww 2022/11/14
    systemd.path みたいなことを手作りする
  • もう絶対迷わないエラーレスポンスの作り方【RFC7807】 - Qiita

    この記事は「ゆめみ その2 Advent Calendar 2019」の5日目の記事です。 ある日のこと… 「いきなりそんなこと言われても…」 上司「ついでにいろんなところで使いまわせるように普遍的なのにしてね」 「えぇ…」 「こういう時にエラーレスポンスが標準化されてRFCでまとめられてたらいいのになぁ…」 ありました RFC7807 : Problem Details for HTTP APIs RFC7807では開発においてHTTP APIのために新しくエラーレスポンスを定義するのを避けるために、プログラムが読み取れるような問題詳細(Problem Details)をapplication/problem+jsonまたはapplication/problem+xmlで定義しています。 問題詳細(Problem Details)ってなんぞや? type, title, status,

    もう絶対迷わないエラーレスポンスの作り方【RFC7807】 - Qiita
    iww
    iww 2022/10/26
    『「こういう時にエラーレスポンスが標準化されてRFCでまとめられてたらいいのになぁ…」 ありました』
  • port111がListenしていたので止めた - Qiita

    自鯖にnmap -Fしたらタイトル通りだったのでぐぐってみた。 弁財天: rpcbindの111番ポートのsystemd脆弱性 update2 どうやらsystemdが111番ポートでLISTENしてる実装が脆弱性らすい。rpcbindのポートはNFSを動作させるのに必要だったのはNFSv3までの話で、いまのNFSv4では不要。 以下の設定をして再起動。 # cp -a /usr/lib/systemd/system/rpcbind.socket /etc/systemd/system/ # vi /etc/systemd/system/rpcbind.socket [Unit] Description=RPCbind Server Activation Socket [Socket] ListenStream=/var/run/rpcbind.sock #ListenStream=[::

    port111がListenしていたので止めた - Qiita
  • timesyncdのFallbackNTPは「予備サーバー」ではない - Qiita

    環境 Ubuntu 20.04LTS(デスクトップ版)などtimesyncdで時刻合わせをしているOS。 要約 FallbackNTPの設定はNTPに「アクセスできない」時ではなく、NTPが「定義されていない」時にのみ使用される。 FallbackNTPを設定しても使用されない? Ubuntu(デスクトップ版)は18.04以降、時刻合わせにtimesyncdを使うようになっているが、/etc/systemd/timesyncd.confの設定項目にFallbackNTPというものがあり大抵の解説サイトで「予備サーバー」といった説明がされている。 NTPの設定方法がサーバーをスペース区切りで複数記載できるようになっていることもあり、ntpdの動作になまじ詳しかったりすると以下のような動作をしていると思い込むかもしれない。 NTPにリストされているNTPサーバー「すべて」にアクセスして得られた

    timesyncdのFallbackNTPは「予備サーバー」ではない - Qiita
    iww
    iww 2022/10/24
    FallbackNTPいらないじゃん・・・
  • /var/cache 下のファイルは消して良いのか - Qiita

    結論 実践的には「ダメ絶対」 詳細 個人的にはむしろ「rsyncレベルのバックアップ対象に/var/cacheを含めるべきか」という話で少し興味があった。関連して、ディスク圧迫時に /var/cache/ 下のファイルで大きい物を消してよいか、というのも興味がある人もいるのかもしんない。 まずFilesystem Hierarchy Standardによる、「良い」ことになっている。最新の3.0より引用する /var/cache is intended for cached data from applications. Such data is locally generated as a result of time-consuming I/O or calculation. The application must be able to regenerate or restore t

    /var/cache 下のファイルは消して良いのか - Qiita
    iww
    iww 2022/10/24
    /var/cache のファイルは消してはダメという話
  • shell : catコマンド 最後に改行を入れて表示 - Qiita

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

    shell : catコマンド 最後に改行を入れて表示 - Qiita
    iww
    iww 2022/10/17
  • たぶんエンジニアには64GB(以上の)メモリのPCを与えた方が生産性が上がると思う件 - Qiita

    会社で支給するPCのスペックについて、どういうものが良いのか、よく思案します。(僕は情シスではないのですが) 要は、エンジニアの生産性です。 最近はなんでもブラウザを利用するようになっていて、例えばクラウドを利用した開発や運用ならそのクラウドのWebページを複数開く必要があるし、システムによっては監視アプリケーションや運用に使うアプリや開発自体もWebでやる場合があると思います。 で、私のローカル環境について言うと、今使っているのは32GBメモリのPCなのですが、ブラウザって、タブごとに数十MB~数百MB(大体200~300MB, 大きいときは500MBなど)使ってて、ブラウザだけでめっちゃメモリうんですよね。 以下は、FirefoxでAWSの開発/ステージング/番環境の検証や運用を1日やっていたときの、タスクマネージャでのfirefox.exeの各タブ(=プロセス)でのメモリ消費です

    たぶんエンジニアには64GB(以上の)メモリのPCを与えた方が生産性が上がると思う件 - Qiita
    iww
    iww 2022/10/16
    24GBで足りちゃってるわ・・・ 正直、ディスプレイが3枚あればあとはそんなに求めない
  • PhpStorm 2016.2でPHPUnitのアサーションの補完が効かない問題 - Qiita

    8/26 追記:PhpStorm 2016.2.1がリリースされました。2016.2.1ではPHPUnitのアサーションの補完が効かない問題は修正されています。 PhpSrotm 2016.2では、コード補完の挙動が変わりました。 この結果、$this->assertSame()のような形でPHPUnitのメソッドを呼び出す際、$this->までを入力した段階でCtrl + Spaceを押してもassertSameが補完されなくなりました。 なお、この問題はPhpStorm 2016.2の初期バージョンにのみ存在し、2016.1や2016.2.1には存在しません。 TL;DR 解決策は以下の3パターン PhpStorm 2016.2.1を使う 2016.1以前のバージョンを使う アサーションメソッドを関数または静的メソッドとして呼び出す assertSame() または self::ass

    PhpStorm 2016.2でPHPUnitのアサーションの補完が効かない問題 - Qiita
  • シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita

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

    シェルスクリプトで安全簡単な二重起動防止・排他/共有ロックの徹底解説 - Qiita
  • TOPPERS/ASPをLinux(i386 / x86_64)で動かす - Qiita

    はじめに 組み込み機器向けRTOSのひとつ TOPPERS/ASP を Linux に移植しました。 TOPPERS/ASPは、個別のプラットフォーム向けに移植されるとともに、シミュレータ環境として Mac OS X で動作するものが公式から提供されています。しかし、Linuxで動作するものは用意されていません。 Mac OS X ターゲット依存部をもとに Linux ターゲット依存部を作成しました1。Mac OS X版と同じく、シミュレータ環境としての位置づけです。TOPPERS付属サンプルの sample1 は動作します。 コード https://github.com/morioka/toppers-asp-for-linux に置いています。 対象 Linux (i386, x86_64) Ubuntu 15.10 (x86_64)で確認しています 使い方 TOPPERS/ASPに添

    TOPPERS/ASPをLinux(i386 / x86_64)で動かす - Qiita
  • PSRの誤解 - Qiita

    先日のPHPerKaigi 2018はPHPに興味がある多くのひとびとと直接コミュニケーションがとれる貴重な機会でした1。その中でPSRシリーズへの誤解が聞かれたので一度整理します。 最初にまとめ 「PSRはモダン、準拠しないのはレガシー野郎」といったものではない 相互運用させることを想定しないのなら、100%準拠することに利点はない PSR-2は、それ自身を厳守させるためのコーディングスタイルではない PSRは参考するには値するが、自分たちの事情に合ったものを取り込むべし 後述しますが、筆者の所属するチームではPSR-1, PSR-2を参考にしつつ破って使ってます。 PSRは誰が作ってるの? PSRを管理するのはPHP-FIG (The PHP Framework Interoperability Group、PHPフレームワーク相互運用グループ)です。この組織はPHPのフレームワーク・

    PSRの誤解 - Qiita
  • systemdのsocketを使ってserverを作る - Qiita

    論よりコード TCP localhost:18080 で待ち受けて、 implementation.bash を実行した結果を journal に書き込む例です。 ※ systemd は一般ユーザ権限でも利用可能です。今回は一般ユーザ権限で行いました。 その際、systemd 関連のファイルは $HOME/.config/systemd/user/ に配置する必要があります。ない場合は mkdir -p $HOME/.config/systemd/user/ として作ってからファイルを配置してください。 → 実は systemctl --user enable $PWD/server.socket と、パスを指定すれば自動的にディレクトリを作ってくれてsymlinkでファイルを配置してくれることがわかりました。 server.socket ファイル server.socket ファイルはS

    systemdのsocketを使ってserverを作る - Qiita
  • ソートしないで重複行を削除する - Qiita

    uniq コマンドは事前にデータをソートしておく必要がありますが、ソートされていないデータから重複する行を削除したいこともありますよね。そんなときは これだけです。 解説 a は連想配列の変数で名前は何でもいいです $0 には行全体が格納されています つまり各行をキーとする連想配列を作成し、同じ行が現れるたびに値をインクリメントします ! により値が 0 のとき、つまり最初にその行が現れたときだけ条件が真になります アクション部分は省略されているので行全体が表示されます Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read back useful informationYou can use dark them

    ソートしないで重複行を削除する - Qiita
    iww
    iww 2022/09/15
    awkで重複除去。 $1を使えば先頭の要素をキーとして重複除去できる
  • SQLite3 で created_at, updated_at - Qiita

    CREATE TABLE test ( test TEXT, created_at TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')), updated_at TEXT NOT NULL DEFAULT (DATETIME('now', 'localtime')) ); CREATE TRIGGER trigger_test_updated_at AFTER UPDATE ON test BEGIN UPDATE test SET updated_at = DATETIME('now', 'localtime') WHERE rowid == NEW.rowid; END; テーブル名やトリガー名の test の部分を必要に応じて書き換えてください。 2. 説明 2.1. DEFAULT 制約で DATETIME 関数を使える 「DEF

    SQLite3 で created_at, updated_at - Qiita
    iww
    iww 2022/09/09
    SQLiteにはtimestampの機能が無いのでトリガーで頑張るしかない という話