- 1. 同一アドレスに複数の同一メール送ろうとしてませんか?
- 2. ISUCON13で遭遇したTypeScriptとES Modulesにまつわるエラーとその解決
- 3. シェルを使ってSymbolノードを簡単構築
- 4. Docusaurus – Meta が開発した超高速な静的サイトジェネレータ
- 5. Solved “Cannot find module ‘fs/promises’” in Node.js
- 6. IGRの時刻表をスクレイピング
- 7. 月曜日をもっと楽しく迎えるbot
- 8. 【Node.js】REPLを活用したインタラクティブなプログラミング学習方法
- 9. ESLint + Prettierの代わりにBiomeを試す
- 10. ラズベリーパイでPlaywrightを使い検索のスクリーンショットを取りまくった話
- 11. Vitest 1系がリリースされたので0系からマイグレーションしてみた
- 12. Node.jsモジュール読み込みフックの新時代 node:moduleのregister APIについて
- 13. 【Bun】readdir が Node.js より 40 倍高速ってホント?
- 14. 文化祭で使うウェブシステムを作ってる話
- 15. DiscordBot 機能制作の流れ
- 16. Docker で nmv を使うと docker exec で node コマンドが使えない時の対処法
- 17. VSCodeからチケット管理する拡張機能を作ってみる(1)
- 18. IBM i 上でNode.jsのWebアプリを動かす その4 (QR読み取りとアプリ詳細)
- 19. IBM i 上でNode.jsのWebアプリを動かす その3 (ExpressとEJS)
- 20. IBM i 上でNode.jsのWebアプリを動かす その2 (概要とDBアクセス)
同一アドレスに複数の同一メール送ろうとしてませんか?
# いきさつ
Aさん「katahiroさんに作ってもらったツール、設定されてるメールアドレスにメールが飛ぶはずだけど、今日のは届かないです」
katahiro「??確認してみますね」こちらの記事の流れに近いですが、また別の話です。
https://qiita.com/katahiro/items/881bd52163d1f4c7c43c
# 原因調査
組織に提供しているツールは`Slack`でBotとして機能しますが、以下のような流れで動きます
1. Slackの[ワークフロー](https://slack.com/intl/ja-jp/features/workflow-automation)が起票されて、特定の情報がチャンネルに書き込まれる
1. ワークフローの書込みをBotが検知して、書き込まれた内容を取得
1. 書き込まれた情報に対して採番を行い、以降の書込みを管理
1. 採番が完了した後に、設定されているメールアドレスに対して起票された内容を `Sendgrid`のメール配信にて周知
1. 以後書き込まれたメッセージでCloseの指示があれば、起票内容がCloseした
ISUCON13で遭遇したTypeScriptとES Modulesにまつわるエラーとその解決
この記事は、株式会社ビットキー Developer Advent Calendar 2023 19日目の記事です。
https://qiita.com/advent-calendar/2023/bitkey
## tl;dr
ISUCON13で実際に遭遇した問題を題材に、tsconfig.jsonの`lib`に設定を追加してECMA Scriptの新しい機能を追加する方法と、Node.jsをNative ES Modulesとして動かすために、必要な設定変更と修正が必要なアプリケーションコードについてまとめました。
## あらすじ
先月、ISUCON13に同僚とチームを組んで参加して来ました。実装言語は日々の業務で利用しているNode.jsを選択したのですが、構成の変更中にTypeScriptのコンパイルとES Modulesに関連した問題が発生し、苦戦しつつも解決できたので、備忘録的に共有します。
なお、この記事ではISUCON自体の解説はしませんので、ISUCONが何かを知りたい方は[ISUCON公式ホームページ](https://isucon.net/)を参照してくだ
シェルを使ってSymbolノードを簡単構築
## メインネットでノードを構築・運用しよう!
みなさんこんにちは。あきまるです。
今回はアドカレということですが、過去に書いた簡単ノード構築記事を再度こちらに掲載しようと思います。
現在は、モバイルノード構築が流行していますが、基本は自鯖またはVPSでのノード構築かなと思っております。特にトラブった時にこのノード構築を経験しているかどうかでかなり差が出るとは思います。
また、構築するコードも全て掲載しているので、ノードトラブル時に細かく点検していくことも可能だったりします。
ということで、この記事がお役に立てることがあれば嬉しいなと思います。ノード構築に関しては、私も2021年のローンチ時にメインネットでノードを立てましたが、結構苦労しました。
そしてかなり打ち間違えてはリセットを繰り返しました。
そんな苦い経験から、今回は簡単に構築できるよう、普段から使用しているシェルスクリプトを活用した構築・ノード更新方法を紹介します。わかってしまえば、コピペでぱっぱといけます。だめならOSの入れ直しをして最初からやってしまう荒技だって出来ます。
参考資料として、づ~大先生の資料を最下部
Docusaurus – Meta が開発した超高速な静的サイトジェネレータ
Docusaurus は、 Facebook が開発した静的サイトジェネレータで、サクッと高速な Web サイトを作成することができるのが特徴です。
2023/12 時点での GitHub スター数は ⭐️ **49.9k** です。
![](https://docusaurus.io/img/docusaurus_keytar.svg)
### Links
– 公式ページ: [docusaurus.io](https://docusaurus.io/)
– GitHub: [facebook/docusaurus](https://github.com/facebook/docusaurus)### 特徴
公式がトップページに掲げている 5 つの特徴です。
– MDX: [MDX](https://mdxjs.com/) というマークダウンと React が合体したファイル形式を利用できるので、 React 単体で作るときのように、ページを作成するのにわざわざ React を書く必要がありません。マークダウンを描くだけでページを作成できます。逆に、マークダウンで書い
Solved “Cannot find module ‘fs/promises’” in Node.js
In this post, we’ll investigate the reasons behind this error, look at the modifications made to early versions of Node.js, and talk about fixes.
IGRの時刻表をスクレイピング
Functionノードを使わないでスクレイピングに挑戦します。
@n0bisuke さんのNodeREDで[みんな大好きIGRの時刻表をスクレイピング](https://qiita.com/n0bisuke/items/bd5329296fc188199993)のインスパイア記事です。
## 作ったフロー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266424/0af95753-8b30-c315-7dc0-87035e7a19c5.png)
### injectノード(タイムスタンプ)
特にプロパティは変更していないです。
フローを発火します。### httpノード(滝沢駅)
URLに以下を入力します。### HTMLノード(上り/下り)
Httpノードで取得したHTMLをHTMLノードで必要な箇所のみ抽出します。
抽出する要素は以下の様に指定します。#### 上り
`#igr-eki-diau
月曜日をもっと楽しく迎えるbot
# はじめに
こちらは[長野高専 Advent Calendar 2023](https://qiita.com/advent-calendar/2023/nnct) 17日目の記事です!
@shun-shobon さんが開催するNNCTアドカレもこれで3回目の参加ですね〜。現在後続の主催者を探しているみたいなので、来年度以降も在籍予定の方はぜひ!## 自己紹介
卒業してしまった身なので書いておきます!
18sで昨年電子情報工学科を卒業した**Bony_Chops**と申します!現在は大学に3年次編入して、各所でインターン等々をやっています。https://bonychops.com
# 明日は月曜日
長野高専電子情報工学科18生のDiscord鯖には **月曜日を楽しく迎えるため** に作られた **#明日は月曜日** というチャンネルがあります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/601799/70859d47-a009-d0d3-7eae-f6d6049658d
【Node.js】REPLを活用したインタラクティブなプログラミング学習方法
# Node.jsのREPLを活用したインタラクティブなプログラミング
Node.jsの`REPL(Read-Eval-Print Loop)`は、即時フィードバックを得ながらプログラミングを行う強力なツールです。
https://nodejs.org/docs/latest-v21.x/api/repl.html
`REPL`は略称で、ユーザーがコマンドを入力すると、そのコマンドを読み取り(Read)、評価(Eval)、結果を出力(Print)し、次の入力を待つ(Loop)という一連のプロセスを繰り返します。
(ちなみに他言語のREPLはといえば、Rubyなら`irb`、Pythonなら`python`でお馴染みですね)
Node.jsの標準ライブラリの機能や、サードパーティ製ライブラリを試すのに`REPL`はとても便利です!
## REPLの基本的な使用方法
Node.jsのREPLを起動するには、ターミナル画面で`node`と入力します。
“`terminal: terminal
$ nodeWelcome to Node.js v18.18.0.
Type
ESLint + Prettierの代わりにBiomeを試す
この記事は [ここのえ Advent Calendar 2023](https://qiita.com/advent-calendar/2023/99no_exit) Day 17の記事です。
# Biomeって何?
[**Biome**](https://biomejs.dev/) は2023年9月にリリースされたばかりの **Linter** + **Formatter** みたいなツールです。公式では「Toolchain of the web」と謳っています。
`Rust`製、処理が高速、`Typescript`, `TSX`の標準サポートなどが特徴です。
以前 `Rome` というツールがあり、そちらが開発終了となりました。
その`Rome`開発チームの一人が `Biome` を作り始めた、という流れです[^1]。記事を書いている2023年11月現在、まだサポートされている言語は`Javascript`, `Typescript`, `JSX`, `JSON`で、`Vue`などはまだです。
本番環境に採用するのは現時点では難しいかもしれませんが、近いうちにサポート
ラズベリーパイでPlaywrightを使い検索のスクリーンショットを取りまくった話
ラズベリーパイだとPlayWrite対応してなさそうだったけど色々やったら動いた
https://github.com/microsoft/playwright/issues/4984
## やり方
### chromiumのインストール
https://raspida.com/install-chromium
“`
$ sudo apt install chromium
$ which chromium
/usr/bin/chromium
“`後でNode.jsのコードにいれます。
## Node.js側コード
“`json
{
“name”: “piapp”,
“version”: “1.0.0”,
“description”: “ラズベリーパイに利用するアプリケーション”,
“main”: “index.js”,
“scripts”: {
“start”: “NODE_ENV=production forever start -vc ts-node src/index.ts”,
“stop”: “NODE_E
Vitest 1系がリリースされたので0系からマイグレーションしてみた
# はじめに
2023年12月5日にVitest v1.0.0 がリリースされました。https://github.com/vitest-dev/vitest/releases/tag/v1.0.0
それまで自分は0系を利用していたので、こちらのガイドを参考にマイグレーションしてみます。
https://vitest.dev/guide/migration.html#migrating-from-vitest-0-34-6
# 開発環境
マイグレーション前の開発環境は以下の通りです。– Windows11
– VSCode
– TypeScript 4.9.5
– React 18.2.0
– yarn 1.22.19
– Node.js 20.5.0
– Vite 4.1.5
– Vitest 0.34.6
– @testing-library/react 14.0.0
– jsdom 22.1.0また、Vitest 及び React Testing Library を利用した自動テストが正常に動作していることをマイグレーション前に確認しています。
# マイグレ
Node.jsモジュール読み込みフックの新時代 node:moduleのregister APIについて
皆さんこんにちは。先月リリースされた[Node.js 18.19.0](https://nodejs.org/en/blog/release/v18.19.0)の更新内容の一つに、`node:module`組み込みモジュールの`register` APIがあります。これは、Node.js 20.6.0で先行実装されていたものが、Node.js 18系にバックポートされたものです。
これにより、現在サポートされているすべてのメジャーバージョンでこの機能が利用可能になりました。筆者は、このことによるインパクトは大きいと考えています。そこで、この記事では`register` APIについて解説します。
## `register` APIについて
この記事で`register` APIと読んでいるのは、Node.jsの組み込みモジュールである`node:module` からエクスポートされる関数を指しています。
インパクトが大きいとは言いましたが、実は皆さんが日頃のアプリ開発で使うようなAPIではありません。このAPIは、**ts-node**や**esbuild-register**
【Bun】readdir が Node.js より 40 倍高速ってホント?
今日(2023/12/15)現在、Bunのバージョンは v1.0.18まで行ってますが(速いっ)、遅ればせながら2023/12/2 にリリースされた Bun v1.0.15 を眺めていたら、
>「recursiveはfs.readdir()Node.js より 40 倍高速です」と書いてあったので確かめてみました。
https://bun.sh/blog/bun-v1.0.15#recursive-in-fs-readdir-is-40x-faster-than-node-js
recursive (リカーシブ) は「再帰的」という意味なので、まぁそういう機能ですね。下のディレクトリまで順にみに行ってくれます。
Bunでは、v1.0.15 からですが、Node.js ではリファレンスによると v20.1.0, v18.17.0 と2つ書かれています。(Node.js の方は見ていなかったので詳細は判らないです。)
まずディレクトリをサーチするので、その前に mydir ディレクトリを作り、その下にdir1からdir100までのサブディレクトリを用意して、それをサーチする
文化祭で使うウェブシステムを作ってる話
こんにちは、Yunamakiと申します。とある千葉県高校に通っている高校2年生(16歳)です。
この記事はProgate Path コミュニティ Advent Calendar 2023 11日目の記事です。:::note alert
本記事には所属高校の文化祭に関する情報が記載されておりますが、個人的な開発の記録や発見の共有を目的として執筆したものです。本記事に関して、学校及び学校関係者への問い合わせはご遠慮ください。
:::# はじめに – きっかけ
所属高校は中高一貫校で、筆者は中1~高1まで文化祭実行委員として働き、高2では文化祭執行役員会事務局長となりました。そして、自分がトップになって業務を行ってみて **「なんちゃってデジタル化」** に気づいたのです。
例えば、
* スプレッドシートで提出された企画書を印刷して使用
* 会議資料は実行委員の人数分を印刷して使用などなど未だに紙を使用しています。参加団体は50を超えますし、企画書は1団体当たり8ページなので…企画書を印刷するだけでも400枚以上の紙を使うのです。しかも、それを先生方に配布して回収する労力が必
DiscordBot 機能制作の流れ
# 「プログラミングしてみよう!!」
## 1\.はじめに
こんにちは。 アドカレと言う文化をついこないだ知った人です。
N中等部生です。今回は私がいつもDiscordのBotを作る時の機能面で気をつけていることなどを、できるだけわかりやすく初心者の解説をつけながら話したいと思います。
#### ※この記事はJavaScriptを使用していますが、JavaScriptがわからなくても読めるような解説を目指していますプログラミングをあまり知らない人向け
以下はほぼ全てのプログラミング言語に共通することです。
### 1\.ドット
ドット(.)は「その中の」みたいな意味で
“`js:dot.js
root.image()
“`
は“rootの中のimage()“
という感じ。
これを覚えとくだけでプログラム大体読めるって言っても過言なぐらいです。
### 2\.コメントアウト
“//“はコメントアウトと言い、プログラムの処理から除外されます
コード内に書けるメモです
“`js:commentout.js
con
Docker で nmv を使うと docker exec で node コマンドが使えない時の対処法
[Fusic Advent Calendar 2023](https://qiita.com/advent-calendar/2023/fusic) の15日目の記事です。
弊社での数年ぶりのアドベントカレンダーですが、昔はWeb系一色だったのに今ではバリエーション豊か~~カオス~~でとても嬉しいです。今回はNode14を使う古めの環境をDockerfileで再現しようとしたときのTipsです。
# Setupスクリプトは非推奨になっていた
特定バージョンのnodeをインストールするときに使っていた `https://deb.nodesource.com/setup_X` がいつの間にか非推奨になっていました。
最後の60秒を待つとインストールできるようにパッチでレポジトリを登録してくれますが、あまりお行儀が良くなさそうなのでnvmで入れるようにします。
“`bash
curl -fsSL https://deb.nodesource.com/setup_14.x | bash –============================================
VSCodeからチケット管理する拡張機能を作ってみる(1)
# VSCodeからチケット管理する拡張機能を作ってみる(1)
ネタが無いのでまぁまぁでかくなりそうなものをシリーズにして投稿する作戦です。
今回は、VSCode上からBacklogやJira等のチケット管理システムを操作する拡張機能を作って行こうと思います。
## 構成
一旦は
– VSCodeExtention
– Yeoman
– TypeScriptのみです。
どのチケット管理システムにアクセスするかは次回以降で決めていこうかなと思います。
(Gitlab好きなので最初はGitlabにするかもしれません)## 開発環境を作っていく
ChatGPT様に聞いたところ、Yeomanという雛形作成ツールみたいなのを利用すると楽ちんらしいです。
早速DevcontainerでYeomanが動く環境の構築をしていきます。
devcontainer.json
“` json
{
“name”: “ticket-manager-client”,
“dockerComposeFile”: [
“.
IBM i 上でNode.jsのWebアプリを動かす その4 (QR読み取りとアプリ詳細)
# はじめに
「IBM i 上でNode.jsのWebアプリを動かす」3つ目の記事です。
– 1つ目の記事はこちら
IBM i 上での Node.js の動かし方を簡単に紹介しています。https://qiita.com/tom_m_m/items/5cd480eb1aad35a6a6dc
– 2つ目の記事はこちら
環境情報や作成したWebアプリの概要はこちらをご覧ください。https://qiita.com/tom_m_m/items/1d0139cc8b507be4b591
– 3つ目の記事はこちら
Express, EJSについてまとめています。
https://qiita.com/tom_m_m/items/8bc53ae27a396946c614作成したコードはこちらにおいています。
https://github.com/tom-m-m/ibmi-nodejs-qr-detection
この記事の中では、こちらのアプリを「QRコードアプリ」と記載しています。
Node.jsでのWebアプリ制作に関しては手探りで行っていますの
IBM i 上でNode.jsのWebアプリを動かす その3 (ExpressとEJS)
# はじめに
「IBM i 上でNode.jsのWebアプリを動かす」3つ目の記事です。
– 1つ目の記事はこちら
IBM i 上での Node.js の動かし方を簡単に紹介しています。https://qiita.com/tom_m_m/items/5cd480eb1aad35a6a6dc
– 2つ目の記事はこちら
環境情報や作成したWebアプリの概要はこちらをご覧ください。https://qiita.com/tom_m_m/items/1d0139cc8b507be4b591
作成したコードはこちらにおいています。
https://github.com/tom-m-m/ibmi-nodejs-qr-detection
この記事の中では、こちらのアプリを「QRコードアプリ」と記載しています。
Node.jsでのWebアプリ制作に関しては手探りで行っていますので、荒いところがあるかもしれません。# Express について
前回につづいて、アプリ内で使っているパッケージについて書いていきます。
まずは、`Express` についてで
IBM i 上でNode.jsのWebアプリを動かす その2 (概要とDBアクセス)
# はじめに
「IBM i 上でNode.jsのWebアプリを動かす」2つ目の記事です。
– 1つ目の記事はこちら
IBM i 上での Node.js のインストール方法と簡単な実行をしました。https://qiita.com/tom_m_m/items/5cd480eb1aad35a6a6dc
今回は、作成したWebアプリに関連して、概要とDB周りの操作について書いていきます。
作成したコードはこちらにおいています。https://github.com/tom-m-m/ibmi-nodejs-qr-detection
この記事の中では、こちらのアプリを「QRコードアプリ」と記載しています。
Node.jsでのWebアプリ制作に関しては手探りで行っていますので、荒いところがあるかもしれません。# どんなものを作るか?
QRコードを使った入出管理を行う簡単なアプリを作成してみました。
概要はこちらの画像の通りです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazo