タグ

ブックマーク / dev.classmethod.jp (31)

  • 【VS Code】tasks.jsonで決まった作業を自動化する | DevelopersIO

    はじめに VS Codeでコーディングをするとき、Gitの操作やビルド、デプロイなど、決まった処理を手動で実行するのが面倒だなと思ったことがあるのではないでしょうか。tasks.jsonというファイルを使えば、そういった面倒な手順を自動化し、開発効率を上げることができます。 この記事でやること この記事では、作業ブランチにmainブランチの取り込みを行うGitコマンドを自動化してみます。mainブランチを取り込むために、以下のコマンドを毎回手で実行しているとします。 git stash git pull origin main git stash pop これをtasks.jsonに定義して自動化したいと思います。 タスクの作成 タスクを作成するには、VS CodeのメニューのTerminal⇒Configure Tasksを選択します。 Create tasks.json file fr

    【VS Code】tasks.jsonで決まった作業を自動化する | DevelopersIO
  • ChatGPTに要件定義をお願いしたらハンパなかった | DevelopersIO

    架空の営業管理システムを作ってもらう前提で、ChatGPTに要件定義をお願いしてみました。 実験として軽く試すレベルで始めてみたのですが、予想を超えるクオリティでしたので、一部始終を皆様にもご紹介します。 ChatGPTとのやりとり まず、ざっくりと必要な機能の洗い出しをお願いしてみました。 あっという間に必要な機能を網羅的にリストアップしてくれまた。私自身、SFA/CRMをいくつか触った経験がありますが、適切な内容だと思います。 中には、「データのインポート・エクスポート機能」のように、検討初期段階ではつい忘れそうな機能も含まれています。さらに頼んでもいないのにオススメの検討プロセスまで教えてくれました。気が利いてます。 機能ベースだと要件の妥当性が判断しにくく思ったので、画面ベースで要件定義してもらことにしました。 「図で教えて」とできないことをお願いしたところ、やんわり断りつつ、意図

    ChatGPTに要件定義をお願いしたらハンパなかった | DevelopersIO
  • 【あなたのことを】 GitHubの設定でmainブランチの誤更新を防止しよう 【守りたい】 | DevelopersIO

    「よし、修正完了!」 「作業ブランチにpushしてプルリク作成するかー」 「git push っと」 「あ、やべ、今mainブランチだわ。。pushちゃった。。」 こんなことってありませんか? 自分が進めているプロジェクトでは、基的にプルリクエストが承認されなければmainブランチにマージできない運用となっています。 しかし、GitHubの設定によっては上記のようなミスが起こりうるので、あらためて設定を整理してみました。 プルリクエスト作成時に特定の人物をレビュアーに指定する GitHubのcode ownersという機能を使い、プルリクエスト時にチームメンバーなどをレビュアーに指定できます。 リポジトリに.github/CODEOWNERSというファイルを作成し、レビュアーに指定したいアカウント名を指定します。 .github/CODEOWNERS # @hoge, @fuga, @f

    【あなたのことを】 GitHubの設定でmainブランチの誤更新を防止しよう 【守りたい】 | DevelopersIO
  • 【ネタ】VS Code の統合ターミナルはビープ音は鳴らないけどベルマークは出せるよ? | DevelopersIO

    テスト終了時に音を鳴らしたかった それとは関係ないんですが、ベル文字って知っていますか? ベル文字を使用してターミナルで printf '\a' とか echo -ne '\007' と入力すれば音を鳴らすことができます。 これを利用し、以下のように VS Code の統合ターミナルでテストを実行し、終了時にビープ音鳴らして通知しようとしたところ音が鳴りませんでした。 yarn test; printf '\a' 同じようなことで悩んでいる issue を発見し、どうやら現時点で VS Code の統合ターミナルでは音が出ないようです。 https://github.com/microsoft/vscode/issues/47711 ベルマークは出せるよ その代わり(?)なのかは分かりませんが、VS Code の統合ターミナルではビープ音の代わりにベルマークを表示させることができます。 ま

    【ネタ】VS Code の統合ターミナルはビープ音は鳴らないけどベルマークは出せるよ? | DevelopersIO
  • [小ネタ]forEachではasync/awaitが使えない | DevelopersIO

    IoT事業部の木村です。 DynamoDBからGetItemをするという処理を書いていて、forEachの中でasync/awaitが効かないということに気づかず非常に多くの時間を使ってしまいました。大変基礎的でお恥ずかしい内容ですが、今後の備忘のために書き記しておきます。 Array.prototype.forEach() 実行環境 node.js v12.22.1 準備 「test」という名前のDynamoDBテーブルを作成して、idだけの単純なデータを1000件入れておきます。 動かなかったコード ということで、動かなかったコードは以下の通りです。 forEachは非同期処理に対応した設計をされていないようです。 const AWS = require('aws-sdk'); AWS.config.update({ region: 'ap-northeast-1' }); const

    [小ネタ]forEachではasync/awaitが使えない | DevelopersIO
  • Windows 環境から Node.js を完全に削除する方法をやってみた | DevelopersIO

    Microsoft 公式ドキュメントを読んでみる Windows に Node.js をインストールする方法は Microsoft 公式ドキュメントに記載されています。 上記に Node.js バージョン管理ツールの nvm のインストール手順も記載されており、その中で既存の Node.js の削除について Stack overflow を参照するようにリンクされています。 Stack Overflow を読んでみる How to remove Node.js from Windows: 0.Take a deep breath. 1.Run npm cache clean --force 2.Uninstall from Programs & Features with the uninstaller. 3.Reboot (or you probably can get away wit

    Windows 環境から Node.js を完全に削除する方法をやってみた | DevelopersIO
  • CORS(Cross-Origin Resource Sharing)について整理してみた | DevelopersIO

    ブラウザからAmazon S3に直接ファイルをアップロードしたい 先日、Amazon S3にファイルをアップロードするWebアプリを作ろうとして色々調べていたところ、S3にCORSという仕様のクロスドメインアクセスの設定をすることによって、ブラウザから直接S3にアップロードをする方法にたどり着きました。ただ、この方法を使うにあたってはCORSというクロスドメインアクセスの仕様をきちんと理解しておいた方が良さそうでしたので、まずはCORSについて自分なりに整理してみました。 なお、弊社の横田がCORSとS3についての記事を以前書いていますので、S3のCORSサポートに関する概要を知りたい方はそちらをご覧下さい。 CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 CORS ブラウザでAjax通信を行う際には、同一生成元ポリシー(Same

  • Windows版「rm -rf /*」の「cmd /c rd /s /q c:\」を実行してみた | DevelopersIO

    よい子(大人を含む)はマネしないでね。 この記事に書いてある内容を、自分が所有するPC以外(業務用PC、公共のPCなどで)で行った場合、 電子計算機損壊等業務妨害罪(刑法234条の2)に問われ、5年以下の懲役または100万円以下の罰金の可能性や損害賠償を求められる可能性があるらしいです。 Windows版「rm -rf /*」を実行してみたくなった つい先日、Amazon Linux 2でrm -rf /*を実行して、OSを破壊してみました。そちらの様子は以下記事をご参照ください。 Linuxを破壊してみると、何だか次はWindowsも破壊したくなってきました。 そこで、Windows Server 2019に対して、Windows版rm -rf /*と呼ばれるcmd /c rd /s /q c:\を実行してみて、どこまで壊れるのか確認してみます。 いきなりまとめ cmd /c rd /s

    Windows版「rm -rf /*」の「cmd /c rd /s /q c:\」を実行してみた | DevelopersIO
  • curlでパフォーマンス測定 | DevelopersIO

    コマンドラインツールのcurlを用いてHTTPによる通信のパフォーマンスを調べる方法を考えていこうと思います。 curlとは curlはURLを用いてデータをやりとりするためのコマンドラインツールもしくはライブラリです。 コマンドラインツールとしてはcurl、ライブラリとしてはlibcurlがあります。 HTTPだけではなくFTPやSMTPなど様々なプロトコルに対応しています。 自分は主にCLIからHTTPリクエストを送りたい時などに使っています。 使ってみたい方は以下の方法でインストールできると思います brew brew install curl apt apt install curl --write-outを使ってパフォーマンス測定 curlには様々なオプションが用意されていますが、今回、主に用いるのはこの-w, --write-outオプションです。 このオプションは指定したフォ

    curlでパフォーマンス測定 | DevelopersIO
    klim0824
    klim0824 2021/06/02
  • Google発のJavaScriptで書けるシェル 「zx」 | DevelopersIO

    Introduction シェルを書きたいときにBashは手軽に使えるけど、 少し込み入ったスクリプトを書こうとするとちょっと面倒。 NodeいれてJavaScript書くのもいいけど、 いろいろセットアップが手間。 そんな人にピッタリはまるかもしれないのがzx。 Google発、JavaScriptで記述できるシェルです。 Top Level await使ってシェルコマンドがそのまま使用可能です。 また、Promise.allでコマンド並列実行ができたりするので便利です。 Environment OS : MacOS 10.15.7 Node : v14.16.1 Top Level awaitがサポートされたNode(v14.8)以降が必要ぽい? Setup では早速セットアップしてみます。 npmでzxをグローバルインストール。 % npm i -g zx % zx usage: z

    Google発のJavaScriptで書けるシェル 「zx」 | DevelopersIO
  • コードの視認性アップ!? VS Code 拡張機能「Bracket Lens」で閉じ括弧のスコープを見える化しよう | DevelopersIO

    はじめに 前回書いた VS Code 拡張機能vscode-random」紹介記事がビックリするほどバズったので、今回もまた拡張機能の紹介します✌ 今回紹介するのは10/21にリリースされたばかりの拡張機能の「Bracket Lens」です。v1.0.0 の出来立てほやほや拡張機能です。 https://marketplace.visualstudio.com/items?itemName=wraith13.bracket-lens 機能説明 ざっくり機能説明しますとタイトル通り「閉じ括弧のスコープを表示してくれる拡張機能」です。 下記のスクリーンショット(GitHub リポジトリより引用)の四角で囲まれた部分の閉じ括弧の後ろに、開始行の情報が付与されているのがお分かりいただけると思います。 これによりネストの深くなってしまい、コード後半が閉じ括弧まみれになってしまっても、スコープが見え

    コードの視認性アップ!? VS Code 拡張機能「Bracket Lens」で閉じ括弧のスコープを見える化しよう | DevelopersIO
  • Gitのサブモジュールで発生した変更を親リポジトリで無視する2つの方法 | DevelopersIO

    Gitのサブモジュール内で何か変更などがあると親リポジトリ側でコミットができません。解決方法は主に2個あるようです。実際に再現させつつ、その解決方法を紹介します。 こんにちは。サービスグループの武田です。 バージョン管理システムであるGitはソースコードなどをリポジトリという単位で管理します。さらにGitにはサブモジュールという機能があり、これを利用することで別のリポジトリを自身のリポジトリ内で再利用できます。 とても便利なサブモジュール機能なのですが、サブモジュール内で何か変更などがあると親リポジトリ側でコミットができません。たとえばサブモジュール内でビルドなどをして成果物が生成され、それが.gitignoreに書かれていない場合などが該当します。とはいえ、サブモジュールでそれをコミットするわけにもいきません。 解決方法は主に2個あるようです。実際に再現させつつ、その解決方法を紹介します

    Gitのサブモジュールで発生した変更を親リポジトリで無視する2つの方法 | DevelopersIO
    klim0824
    klim0824 2020/07/19
  • MacのTerminalでsudo実行時にタッチIDを使用する方法 | DevelopersIO

    こんにちは、CX事業部の夏目です。 MacのタッチバーのタッチIDが非常に便利なのですが、Terminalsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。 使う方法 /etc/pam.d/sudoにauth sufficient pam_tid.soを追加します。 書き込みには管理者権限が必要になるので次のようにして編集します。 # 自分の環境では最初管理者でも書き込みができないようになってたので、できるようにする $ sudo chmod +w /etc/pam.d/sudo $ sudo vi /etc/pam.d/sudo もともとはこんな感じになっていると思うので、 # sudo: auth account password session auth sufficient pam_smartcard.so auth required pam_ope

    MacのTerminalでsudo実行時にタッチIDを使用する方法 | DevelopersIO
  • 「VirusTotal」でドメインの健全性を定期的に自動でチェックする | DevelopersIO

    はじめに こんにちは。大阪オフィスの林です。 「VirusTotal」とはファイルやウェブサイトのマルウェア検査を行うウェブサイトです。ファイルをVirusTotalにアップロードしたりウェブサイトのURLを指定すれば、そのファイルやウェブサイトが「マルウェアを含むかどうか」検査することが出来ます。今回はドメインに対しての健全性をチェックするような仕組みを作る機会がありましたので実装までの内容をまとめておきたいと思います。 構成概要 今回の構成概要をご説明します。詳細は後述します。 ① Lambda呼び出し 今回はCloudWatchEventsのスケジュール実行をトリガーとしてLambda(Python3)を呼び出すよう実装します。 ② ドメインのリストを取得 チェックしたいドメイン名のリストを予めS3に格納しておきます。取得したリストの先頭から順にドメイン名を取得し、次工程以降のチェッ

    「VirusTotal」でドメインの健全性を定期的に自動でチェックする | DevelopersIO
  • Windows、Linux、Macの各環境にnvmを使用してNodeの実行環境を構築する | DevelopersIO

    フロントエンドの開発やAWS CDKを用いた開発など、最近はNodeの実行環境を求められるケースが増えてきました。このエントリでは、WindowsLinuxMacという3つの異なる環境で、nodeとnpmコマンドが使えるようになるところまでの手順を解説します。 こんにちは。サービスグループの武田です。 フロントエンドの開発やAWS CDKを用いた開発など、最近はNodeの実行環境を求められるケースが増えてきました。このエントリでは、WindowsLinuxMacという3つの異なる環境で、nodeとnpmコマンド(もちろんnpxも *1)が使えるようになるところまでの手順を解説します。 目次 nvmって必要なの? 検証環境 Windows Linux Mac まとめ nvmって必要なの? そもそもnvmが何かというと、Nodeの複数のバージョンを管理し、切り替えたりするためのソフトウ

    Windows、Linux、Macの各環境にnvmを使用してNodeの実行環境を構築する | DevelopersIO
  • [小ネタ]Javascriptで大きい桁の整数をJSONパースする時の注意点 | DevelopersIO

    JavascriptでJSONにパースしたいデータに大きい桁の整数があった場合は注意が必要です。 16桁を超えた数値を含む場合、超えた桁数分端数が丸め処理されてしまいます。 その場合、json-bigintを使って回避できます。 例 JSONとして解析する文字列 const jsonStr = '{"id": 6476060033855273896}'; Javascript標準ビルトインのJSON.parseでパースすると以下のようなデータになります。 JSON.parse(jsonStr); > { id: 6476060033855274000 } // (_□_;)!! 桁はそのままですが数値が変わってしまいました。エラーは出ていません。 json-bigintを使うと、 const JSONbig = require('json-bigint'); const jsonStr =

    [小ネタ]Javascriptで大きい桁の整数をJSONパースする時の注意点 | DevelopersIO
  • ブラウザのテキストエリアでNeovimを使う | DevelopersIO

    はじめに 皆さんNeovim使っていますか!! Vimキーバインドに慣れるとブラウザのテキストエリアにカーソルを入れて、iボタンを押したとき世の中の非情さに涙を流します。なので仕方なく、「Terminalに戻りVimを起動して文章書いてコピー」→「ブラウザのテキストエリアにペースト」という生産的なのかよく分からない行動をとることになります。 Firenvimを使うと、ブラウザに自環境のNeovimを起動することが出来ます。ちょっと何言ってるかわかりませんね?試してみましょう! プラグインは、2019年11月3日に開催されたVimConf 2019のJustin M. Keyes様のセッションにて紹介されたものとなります。Neovimがどういうプロジェクトなのかも含め大変勉強になりました。 インストール 公式の手順の参照を推奨します。 プラグインのインストール 私はdein.vimのtom

    ブラウザのテキストエリアでNeovimを使う | DevelopersIO
    klim0824
    klim0824 2019/11/04
  • オリジナルカレー作りから見る標準化の進め方 | DevelopersIO

    一口に標準化と言っても、まずは、何かの作業が発生した時に、自分自身が同じ手順を反復し、結果を再現できる状態にすることが標準化の第一歩になります。 それでは、オリジナルカレー作りのステップとともに、標準化の進め方をご紹介していきたいと思います。 オリジナルカレー作りから見る標準化の進め方 私は、以下のようなステップでオリジナルカレーレシピ研究をしていました。 ステップ 0 からステップ 1 へ 前職の同僚が作ったカレーを味見させてもらったり、レシピをもらったりしているうちに、自分もカレーが作りたくなり、レシピ研究を始めることにしました。 仕事に置き換えると、作業依頼がきた、作業が必要な状況になった…などのきっかけでプロセスが存在しない状態から初期状態へ移行します。 ステップ 1 : とにかく作ってみる(初期) 料理などでレシピや、大まかな調理工程を調べつつ、まずは、とにかく作ってみました

    オリジナルカレー作りから見る標準化の進め方 | DevelopersIO
    klim0824
    klim0824 2019/10/31
  • 無料JSONストレージjsonboxを試してみた! | DevelopersIO

    昨夜Github Trendsを眺めていたら、jsonboxというリポジトリを見つけ、面白そうだったので試してみました。 そもそもjsonbox jsonboxは公開された無料のJSONストレージです。制限事項の範囲で自由に使っていいよ!というサービスです。制限事項に関しては後述しています。 README.mdのサービス説明を引用、翻訳します。 HTTP APIを介してJSONデータを無料で保存、読み取り、変更できます。小規模なプロジェクト、プロトタイプ、またはハッカソンに理想的で、独自のデータストアを作成する必要はありません。 基機能を試してみる Create https://jsonbox.io/${BOX_ID}へのPOSTリクエストをすることで、レコード作成できます。同じメッセージでも一意な_idがjsonbox側で振られるので、同じJSONメッセージでも新規レコードとして作成さ

    無料JSONストレージjsonboxを試してみた! | DevelopersIO
  • 改めてAWSの「無料利用枠」を知ろう | DevelopersIO

    それぞれの無料利用枠については、次から詳しく解説していきます。 12ヶ月無料枠 冒頭で軽くお話しした、AWSアカウントを 新規作成した日から1年間 有効な無料枠です。 例えば、EC2インスタンスを 750時間/月 無料で利用できるといったものがあります。 ただし、使用できるリソースについては制限がある事があり、EC2インスタンスの場合ですと インスタンスタイプは t2.micro OSは Amazon Linux 1,2、Windows Server、Red Hat Enterprise Linux、SUSE Linux、Ubuntu Server を指定する必要があります。 ▲ コンソール上で対象のAMIを確認できます 「月に750時間」と言われると、「そもそも1ヶ月は何時間存在するんだ」という疑問が湧くので調べてみます。 1ヶ月が28日(最短): 24時間/日 × 28日 = 672時

    改めてAWSの「無料利用枠」を知ろう | DevelopersIO
    klim0824
    klim0824 2019/09/23