タグ

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

  • forEachでawaitを使おうとしたら怒られた - Qiita

    はじめに forEachでawaitを使おうとしたら、エラーになり、どうやったらループでawaitを使えるか調べたので、簡単に記載します。 await とは? awaitは非同期処理が終わるまで処理を止めておいてくれる便利なもの jsはawaitやpromiseを使わないと、処理が終わる前に他の処理を実行してしまうので、直列に処理を実行したいときなどは利用すると良い // 非同期関数 async function asyncTask(name) { console.log(`Task ${name} started.`); await new Promise(resolve => setTimeout(resolve, 2000)); // 2秒間スリープ console.log(`Task ${name} completed.`); } // メイン処理 async function m

    forEachでawaitを使おうとしたら怒られた - Qiita
    knjname
    knjname 2024/09/18
    解決策4/5はタスクの実施が並行するから意味合いが違う / コメントの Array.fromAsync(tasks, asyncTask) はタスクの順序を保持する
  • WordPressのuploadsにあるファイルへの直接アクセスを制限(WP新仕様対応) - Qiita

    WooCommerceというWordPress用プラグインでショップを構築している。最近、デジタル商品(PDF)の販売もやり出しているのだが、一つ問題があって、WordPressはメディアファイルをアップロードすると/wp-content/uplaods/というディレクトリ以下にファイルが置かれるのだが、これには何も制限がかかってなくて、直接URLを入力したらファイルが表示されてしまう。これじゃ販売してる意味がないし、検索エンジンクローラーにも引っかかってしまう。 まぁFTP使って、直接アクセスできない領域に置けばいいじゃないかという話もあるのだが、諸事情からそれは見送り(詳細省きます)。次のような要件を.htaccessで実現することにした。 要件 デジタル商品(.pdf、.mp3、.zip)へのアクセスは禁止 ただし拡張子の前に_sampleと着いているものはアクセス可能。 e.g.

    WordPressのuploadsにあるファイルへの直接アクセスを制限(WP新仕様対応) - Qiita
    knjname
    knjname 2024/09/15
    order deny,allow deny from allはもう呪いみたいなもので無意味だろうけど残っていくんだろうなあ
  • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう!ShellScriptBashLinuxUNIXmacOS はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
    knjname
    knjname 2024/08/21
    普通に記事のように書いてたので特に違和感なし ShellCheckいいね
  • C言語の知られザル・許されザル仕様 - Qiita

    はじめに どうも、y-tetsuです。 かれこれC言語には、10年以上携わっているのですが、最近ふと学びなおしをしています。 「Cクイックリファレンス第2版」これを完走めざして読み始めました。全816ページの超大作! 先は長いので、日頃からかたわらに置いておき、表紙の牛さん(雌牛)と目が合ったら黙って少し読むようにしています。 言語の"歴"だけは長い筆者ですが、このをちらっと読んだだけでもいまだに知らなかったことが結構潜んでいました。意外と己の"目"ってザルでした。 そんなこんなで学びなおしのため、今回は筆者が感じたままの知られザルそして許されザルなC言語の仕様について、備忘録を残します。 知られザル仕様 恥ずかしながら、今まで存じ上げザルだったシリーズ。 ダイグラフ 名前からして???だったんですが、キーボードによっては存在しない記号を別の2文字で表わすためのものだそうです。 !?…っ

    C言語の知られザル・許されザル仕様 - Qiita
    knjname
    knjname 2024/07/29
    関数の引数の評価順序が不定とかのほうが辛い
  • TeamsのIncomming Webhookコネクタが廃止されるようなのでPowerAutomateのワークフローに移行してみる - Qiita

    TeamsのIncomming Webhookコネクタが廃止されるようなのでPowerAutomateのワークフローに移行してみるMicrosoftTeamsTeamsPowerAutomate 要約 2024-07-24追記: 廃止スケジュールが少し緩和されましたが、廃止されることは変わっていません TeamsのIncomming WebhookやRSSなどのO365系のコネクタが 最短 2024-12-31 に廃止される 2024-12-31までにURL変更を行うことで 2025-12 まで延長できるようになった (2025-12で廃止なのかは明言されていない) 作成自体は 2024-08-15 から作成できなくなる 代替としてPowerAutomateのワークフローが案内されている ワークフローは個人の所有として作られ、変更できない。(ライセンス次第では所有者を変更できるようですが、

    TeamsのIncomming Webhookコネクタが廃止されるようなのでPowerAutomateのワークフローに移行してみる - Qiita
    knjname
    knjname 2024/07/11
    こういう変更、殺意しか沸かないよ
  • SSH接続を10倍速くするたった3行の設定 - Qiita

    今回は、SSH接続を劇的に高速化する方法をご紹介します。たった3行の設定を追加するだけで、接続時間を10分の1に短縮できます。しかも、2回目以降の接続では認証も自動的に行われるので、パスワードやパスフレーズの入力も不要になります。 要点 .ssh/configファイルのHost *セクションに以下の3行を追加するだけです。 詳しい説明 1. ControlMaster auto この設定で、1つのSSH接続で複数のセッションを共有できるようになります。新しくSSH接続を確立するたびに認証情報を入力し直す手間が省けて、接続がぐっと速くなります。具体的には: 初回の接続時のみ認証が必要 2回目以降は既存の接続を再利用するため、認証プロセスをスキップ パスワードやパスフレーズの入力が不要になり、接続がほぼ瞬時に完了 2. ControlPath ~/.ssh/mux-%r@%h:%p Contr

    SSH接続を10倍速くするたった3行の設定 - Qiita
    knjname
    knjname 2024/07/08
  • 祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita

    FreeBSD では 2024-05-31 に 200112 から 200809 への変更がようやく行われました(一度間違えて 200808 と書いてしまっていますが)。 https://cgit.freebsd.org/src/commit/?id=2e30926a68 https://cgit.freebsd.org/src/commit/?id=6e0278408e macOS は FreeBSD のユーザーランドのコマンドを使用しているため、そのせいで 200112 のままだった可能性も考えられますが、シェルやカーネルは FreeBSD のものではないため、FreeBSD が変更になったからと言って macOS が更新されるとは限らないでしょう。Solaris 10 と 11 ではディレクトリごとに準拠バージョンが異なるバイナリが配置されており以下のようになります。Solaris

    祝🎉 POSIX.1-2024 (Issue 8) 改定!16年ぶりの大幅改定でシェルスクリプトはどう新しくなるのか? - Qiita
    knjname
    knjname 2024/06/15
  • 新人が1on1に来ない - Qiita

    新人が1on1に来ない。その原因を考察する。 ここで出てくる新人の情報は以下である。 年齢: 30代前半 エンジニア歴: 5年 入社して半年 1on1を行うに至った経緯: 1年前、私と同じ時期に入社した同期Aが退職した。 詳細はよく分からないが、どうやらチームの先輩の1人と相性が悪いとの事だった。 尚、Aが退職したのは上記の理由だが、退職したいからこれを名目上の理由にしているのであって、原因は他にある可能性はあるが、この際それは考慮しない。 会社の人員構成: ほとんどがエンジニア歴10 ~ 20年のベテラン。平均年齢は30代後半。 Aは30代前半。 周囲の反応: Aが退職を告げた時、周囲はうろたえた。事前に相談は無かったし、特に問題はないように思われていた。 何より30過ぎた社会人は、問題があれば自分から話して来るという思い込みが、既存社員にあったもしれない。 年齢は関係あるか: ないと考

    新人が1on1に来ない - Qiita
    knjname
    knjname 2024/04/27
    部下への不満はすぐ本人に言え 部下も業務を遂行するのが難しい理由かあるならすぐ言え そこは仕事としての線引きだ ちゃんとやれ
  • AWS Lambda Function URLs(関数URL)がCloudfrontのOACに対応したので試す - Qiita

    はじめに AWS LambdaのFunction URLs(関数URL)は、Lambda単体でHTTPSのURLを発行し、HTTPリクエストをトリガーにLambdaを実行出来るようになる、非常に便利な機能です。 API Gatewayと統合せずともLambdaのみでWebAPIを構築出来るようになり、プロトタイピングやマイクロサービスに有用です。 関数URLの制限 ところで、関数URLの実行の認可は、IAMを用いた方法しかありませんでした(IAMロールベースの認可か、認可なししか無かった)。 Cloudfrontをリバースプロキシ的に前段に配置し、関数URLと繋ぐことで、ドメインを当てたりキャッシュを活用したり、便利な訳ですが、その際に上記が問題となります。というのは、CloudfrontからIAMベースのリクエストを行うには、Lambda@Edgeを利用するしかありませんでした(オリジン

    AWS Lambda Function URLs(関数URL)がCloudfrontのOACに対応したので試す - Qiita
    knjname
    knjname 2024/04/13
  • 超簡単にChromeの拡張機能を作ってみる【誰でもできるよ】 - Qiita

    はじめに みなさんはChrome拡張機能を使っていますか? 僕も使っていますが、案外Chrome拡張機能を作るのは簡単です。 今回は、普段の業務の効率を上げるのも兼ねて自作してみました! 最低限準備するもの manifestファイル Javascriptファイル ぶっちゃけ、これだけで動きます。 実際に作ってみよう それでは実際に作成していきましょう。 今回はDとVを押すだけで、Markdownのリンクを作成する拡張機能を作成していきます。 まずは、manifestファイルから設定していきます! manifestファイル を参考にして、備忘録も兼ねて説明していきます。 今回は、最低限の設定を行います。 { "manifest_version": 3, "name": "Create markdown link", "version": "1.0.0", "icons": { "16":

    超簡単にChromeの拡張機能を作ってみる【誰でもできるよ】 - Qiita
    knjname
    knjname 2024/03/31
  • 技術雑誌が減ってしまった - Qiita

    はじめに 近年、技術雑誌が次々廃刊になっているのを憂いている私が、昔はよく購入していた技術雑誌を挙げて行こうと思います。 Linux、Unix編 ・日経LinuxLinux World ・UNIX Magazine ・BSD magazine 等あり、インフラエンジニアには重宝されていました。全て廃刊になって寂しいですね。 開発系 ・JAVA WORLD ・Web DB Press ・C Magazine ・マイコンBASICマガジン ・Visual Basic Magazine 今では日経ソフトウエアとSoftware Magazineだけになりました。 DBDB Magazine 一番読んでいた雑誌。休刊になった時は悲しかったですね。 現在も継続して出版されている雑誌 ・日経ソフトウエア ・Software Design ・Interface 最後に 電子書籍の時代になってしま

    技術雑誌が減ってしまった - Qiita
    knjname
    knjname 2024/03/20
    まさにこの記事を書いているようなサイトが原因の一端では
  • 1行で発狂するコード - Qiita

    人は1行の記述で死ぬこともある 公開からコンスタントに閲覧をいただいている以下の記事。需要がありそうなので、もう1つ記事を書いてみようと思う。 題材は前回同様のJavaScriptのクソコードではあるが、前回は冗長を極めたクソコードであるのに対し、今回はたった1行である。 1行なのに、なんと示唆深いに富む(決してほめていない)コードだろうか。 不可思議なコード では、実際に見てみよう。 return a = a >= 10 ? 10 : a >= 5 ? 5 : a >= 3 ? 3 : a >= 2 ? 2 : 1, z * a; これを見て、何が return で返されるかわかります? 代入演算子 最初見たとき、代入文 a = ××× の評価値って何になるのかな? a が return されるのかなと思いました。 割り当て操作は、割り当てられた値として評価されます。 JavaScrip

    1行で発狂するコード - Qiita
    knjname
    knjname 2024/03/07
    特にカンマ演算子が良いコードとは思わないが普通に読めた
  • イベントハンドラの関数名についての雑記 - Qiita

    今日のXでは、イベントハンドラの関数名についての話題を見ました。元の投稿はこちらです。要するに、次のhandleClickのようなhandleイベント名という命名は良くないということです。 const handleClick = () => { ... }; <button type="button" onClick={handleClick} /> これについて少し考えたので、せっかくなのでアウトプットしておくことにしました。 この記事の目的 考えたことを頭の中に残しておくのがもったいないので、文章の形にしておく。 色々な意見が出る問題であり、ベストな答えは無いので各々好きにすれば良いということを、読者に理解してもらう。 とはいえ、筆者の考えに納得して同じ考えの人が多いと嬉しいので、なるべく納得してもらう。 筆者の考え 自分の考えとしては、むしろhandleClickいいじゃん! どんど

    イベントハンドラの関数名についての雑記 - Qiita
    knjname
    knjname 2024/01/27
    onAddUserは意味あるよねという話は同意
  • HTTPSは安全なのか? - Qiita

    いきなり追記 2024-01-09 この記事にはまともな結論がありませんし論点も定まっていません この記事には批判が多いので、こちらの素敵な記事をぜひお読みください。 Free Wi-Fi(00000JAPAN)は安全なのか? コメントで不愉快とされたところを削除しました。 徳丸さんのツイート の写真 素人というエクスキューズ (編集履歴はqiitaの機能で見れると思います) 信頼できるサービスであれば Free Wi-Fi に限らず被害に遭う可能性はとても低いと思います。気にせず使ってください。 気分を害された方にお詫び申し上げます。 ここから元記事 お正月休みは卒業した大学の記事を書く予定でしたが、ちまたで話題の「httpsなら安全」について攻撃的なツイートを散見どころかめっちゃ見たのでこの記事を書いています。httpsを盲信されるならまだしも、無知の斧で攻撃を振るう方に悲しみを覚え

    HTTPSは安全なのか? - Qiita
    knjname
    knjname 2024/01/04
    冒頭の結論は正しいでしょう 普通なら攻撃に遭わない確率は高いけど別にそれは完璧でもない 個人的にはTLSの前にDNSが嘘を付いていたりCookieが不適切だったりするケースとか気になるが
  • DBeaverでやらかした話 - Qiita

    DBeaver最強 DBeaverは無料で使えるDBクライアントツールです。 めちゃめちゃ高機能なので、使っている人も多いのではないでしょうか。 ツールのバグが怖いから、コンソールでのコマンドでしかDBには接続しない 派の人もいるかと思いますが、私の場合は使いやすいSQLエディタや、見やすい結果セットがあった方が作業ミスが起きにくいと思っているので(むしろコマンドの方がミスる)、DBeaverは開発にも番メンテナンスでもフル活用しています。 番メンテナンス ある時、イレギュラーな作業で、DBを直接いじることになりました。 大した作業ではなかったので手順書も作らずサクッとやることにしました。 エディタでクエリを準備 SELECTで現在のデータを確認と念のため記録 DBeaverの場合、エディタに複数SQLが書いてある場合、全て実行することもできますが、実行したいSQLのどこかにカーソ

    DBeaverでやらかした話 - Qiita
    knjname
    knjname 2023/12/30
    記事のコメントにある通り、WHERE句無しでUPDATE/DELETEしたらDBeaverに文句言われるよ
  • Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話 - Qiita

    こちらは 「番環境などでやらかしちゃった人 Advent Calendar 2023」 22 日目の記事になります。 はじめに Happy Coding!🤶 みなさん年末いかがお過ごしでしょうか。 私は卒論の抄録執筆が終わらないし、今年体調崩しまくってるしで泣きそうです😭 この記事では「Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話」について述べていきたいと思います。 ※所属団体の関係で、技術的な話以外のところの一部で詳しく話せないところはぼかしたり、デタラメなことで置き換えたりしています。ご了承ください。 背景 私は大学 4 年で、働いているという訳でもなく、 個人やちょっとした団体で Web アプリや API サーバなどを作って、みんなが使えるようにしています。 今回は数年前に起こった、とある団体でのお話です。 サービス構成 そこではオンプレ

    Docker が俺の Postgres を勝手に全世界に公開しやがって色々怒られた話 - Qiita
    knjname
    knjname 2023/12/22
    OSのファイアウォールしか防波堤がない状況がそもそも危険 OSの構成で頑張るとまた同じこと起こる
  • 不用意にサーバーでアプリを起動してハングアップさせてしまった話 - Qiita

    はじめに この記事は、番環境などでやらかしちゃった人 Advent Calendar 2023の18日目です。 もう何年も前のことなのでもうそろそろ時効だろうと思い、誰かの学びになればとここに供養します。 やらかしちゃった出来事 ある日の保守作業 保守管理しているWebシステムの調査のためにOracle Databaseが動いているWindows Serverにリモートデスクトップ接続していました。 調査の過程でデータベースインスタンスにアクセスして状態を確認する必要が生じました。 普段は自分のクライアントPCにインストールしたデータベースクライアントツールでつないで確認していたのですが、その時は横着してサーバーにインストールされていたSQL Developer(OracleGUIデータベースクライアントアプリ)を起動してしまいました。 固まる画面 じんわり起動していくSQL Deve

    不用意にサーバーでアプリを起動してハングアップさせてしまった話 - Qiita
    knjname
    knjname 2023/12/18
    SSHポート転送的なものが無いのもWindowsサーバでGUIしたくなる原因だと思う
  • 転職活動を10年続けてたら人生行き詰ってきた話 - Qiita

    この記事はエンジニア転職 Advent Calendar 2023の11日目になります。 10日目はnewtaさんの「やりたいことをするための環境を探そう」でした。「野球をやっててもサッカーはうまくならない」というのには膝を叩いて納得してしまいました。確かにその通りですね。今後の参考にしたいと思います。 さて、この記事はアラフィフのおっさんエンジニアによる転職失敗談です。皆様の成功談のなかで恐縮ですが、他人の失敗から学べることもあると思いますので、よろしければご覧ください。 ざっくり自分の経歴 新卒でベンチャー企業に就職。約10年働くも倒産で解雇フリーランスエンジニアになる。約10年働くも諸事情で廃業。 派遣でエンジニアとして働く。合間に転職活動も行って、何度か転職したこともあるけれど諸事情で数年で退職を繰り返すこと約10年。現在も転職活動中。 トータルで約30年のキャリアがあるわけ

    転職活動を10年続けてたら人生行き詰ってきた話 - Qiita
    knjname
    knjname 2023/12/13
    高齢技術者はマネージャーじゃなければ案件のヌシになってほしいから転職癖は評価下がる気はする
  • WebGLからWebGPUにステップアップしよう! - Qiita

    はじめに この記事はHIKKYアドベントカレンダー2023の10日目の記事です。 こんにちは、 @emadurandal と申します。HIKKYのエンジン開発部でメタバースエンジンの開発に従事しています。 今回は、WebGLからWebGPUへのステップアップについての記事を書いてみようと思います。 なぜWebGPUが登場したのか WebGLはOpenGL ESのAPI体系をブラウザに移植したものです。 そのOpenGLですが、歴史的経緯により、GPUCPUの性能を完全に引き出しきれないレガシーな部分を引きずっていました。 詳しくはこちらの記事をご覧ください。 そのため、WebGL2の次はWebGL3というわけにはいかなかったようです。 よりGPUの性能を引き出せる、よりモダンなAPI体系が必要でした。ネイティブにはVulkan APIがありますが、それをそのままブラウザに持ってくるには、

    WebGLからWebGPUにステップアップしよう! - Qiita
    knjname
    knjname 2023/12/11
  • Twitterカードが貼られたツイートはすべて詐欺です、という時代 - Qiita

    最近見つけた現象で既に論じられているかと思ったがちょっと解説が見つからなかったのでまとめておく。 手短に X(旧Twitter)クライアントで表示されるTwitterカードについてカードに表示されるドメインとは違うページにリンクさせる手法が存在する この手法は第三者のTwitterカードを利用することができる つまり悪用者は第三者のTwitterカードを表示させながら自身の意図するページに閲覧者を誘導することができる これはフィッシングの手法になりうる 見つけたツイート 以下のツイートはGoogleBloomberg、日経ビジネスのTwitterカードが添付されているがクリックするとそれらとは異なる情報商材サイトにジャンプする。リンク先に危険な仕組みはないと思われるがクリックは自己責任で。念を入れたい人は curl -L で。 PCブラウザでカーソルを合わせてもXの短縮URLサービスであ

    Twitterカードが貼られたツイートはすべて詐欺です、という時代 - Qiita
    knjname
    knjname 2023/12/07
    リダイレクトを許容するとこうなるわな しかも相手からボットを確認できる親切ぶり