Node.js
ChatGPTのAPIでHello worldするまでの備忘録。 といっても思ったよりも簡単だった。 なお、Open AIのアカウントはChatGPTを利用するためにすでに作成済みだったので、アカウント作成はすでにしてある前提。 またChatGPT APIの詳細な内容なども省略する。 Cha…
メインの作業マシンはすでにM1以降のMacBook Airに移行しているが、唯一Gatsby関連のプロジェクトではまだIntelチップのMacBook Proでないと yarn install が成功しない状態となっていた。 今回は重い腰を持ち上げて、M1以降のmacでもGatsby関連のプロジェク…
タイトルはネタであり、このあとに書く文章も適当な文章です。 まえがき 昔々、フォロー返しという文化がありました。Twitterで誰かをフォローするとお返しにフォロー返しをするというやつです。 その文化を利用してたくさんのアカウントがフォロワー数を増…
下記の記事でTwitter API v2を用いてツイートをするプログラムを書いてみた。 shinshin86.hateblo.jp 上の記事の中では既存のサンプルを参考にしつつ、結構色々と試行錯誤しながらサンプルコードを書いていたので、もう少し頭の中を整理したいと思い、CLI上…
これはNetlify Functionsでexpressを用いたAPIを作成するまでの備忘録となる。 今回始めてNetlify functionsを触ってみたが依存関係のパッケージ等をいくつかインストールしているので、そちらの簡単な説明とともに、実際にNetlifyにデプロイするまでの過程…
pugを使ってレンダリングしている、とあるサイトがあるのだが、ここにmarkdownを使ってコンテンツを追加したくなった。 ただし土台はpugで作ってしまっているし、私自身もこの作業にそこまで時間は割けないので、今の状態からうまーくmarkdownをpugの中に埋…
子供のイヤイヤ期が想像以上に大変! 少し前から子供がイヤイヤ期に突入しています。 何もかもが嫌になってしまったようで、思い通りにならないことがあると遊んでいたものを突如破壊しだすという、なかなかなサイコパスっぷりを日々披露しています。 私もす…
ちょっと気になったので備忘録として書き残しておく。 Node.jsにある、node:というprefix Node.jsでライブラリをimport/requireする際に node:というprefixをつけることが可能になっている。 これは Version 14.18.0 からついているもので、以下のように2種…
下書きに放り込んだまま忘れていたので、ポスト。 Node.jsのrequireを用いてJSONファイルを読むときに気をつけること Node.jsのrequireを用いてJSONファイルをそのまま読み込むことができる。 const json = require('./sample.json'); consle.log(json); こ…
WordPressの記事の文字数を一覧で取得するためのライブラリをバージョンアップした WP REST APIを用いてWordPressの公開されている全記事の文字数をゲットするnpmライブラリ。今まで自分用にずっと使っていたやつですが、今回コードを整えてバージョンアップ…
前提 サーバのプロセス管理に PM2 を使うことにした。 github.com 依然触ったことのあるツールだったが、もう何年も触っていなかったので素振りとしてプロジェクトにインストールして動かしていた (yarn add pm2 して動かしていたということ)。 素振り期間も…
自分用メモです。 Node.jsを用いて自分のPCのローカルのIPアドレス(IPV4)を取得したくなったので調べてみた。 結論、以下のスクリプトを作成し、実行すればローカルIPアドレス(IPv4)が取得できる。 const os = require('os'); (async () => { const netInfos…
Node.jsで実装したft-js 以前Goで書かれたファイル転送のためのCLIツール、ftについて書いた。 shinshin86.hateblo.jp 相変わらず今も利用させていただいているのだが、自分自身でも勉強のためにftのNode.js実装を作成してみようと思い、最近作ってみたのが…
Node.js(Express)でサーバアプリケーションを書くことになった。 せっかくなので今まで利用したことのないloggerを利用してみたくなり、pinoを試してみることにした。 getpino.io expressでpinoを利用する場合は pino-http を利用するらしい。 github.com pi…
gRPCで処理を書いていて下記のようなエラーメッセージが表示された。 Received message larger than max (<やり取りしようとしたファイルのサイズ> vs. 4194304 これはエラーメッセージの通りで、gRPCではデフォルトでやり取りできるファイルサイズの上限が…
Node.jsでファイルを再帰的に探索する際、投げっぱなしの処理はすぐに書けたが、投げっぱなしではなくすべてのファイルの探索を終了したあとで特定の処理を行いたいとなったときにどうすれば良いのか調べてみたので、そちらの内容をメモする。 色々と考えて…
自分向けの割合がだいぶ高い備忘録。 gRPCを扱う際に時刻を利用する場合、protocol bufferでは時刻を表す型として google.protobuf.Timestamp が利用できる。 これが個人的にはちょっと癖のある感じで、今のところは使いづらい。 ひとまず概要についてはGitH…
実は何度目かの入門。 普段から使わないとすぐ忘れてしまうのでHello worldなサンプルを動かすまでの過程をメモで残すことにした。 なるべくコードはシンプルになるように意識している。 目次 書いていたら長くなってしまったので目次つけます 目次 自身の環…
todoistのAPIを用いることでプログラムを通じて操作をすることが可能。 ※開発者向けドキュメントはこちら developer.todoist.com 今回はこちらのAPIを用いて日付を指定してタスクを追加するサンプロをこちらに書き残しておく なおAPIを操作するにはトークン…
colors というnpmパッケージの最新versionについて意図的に悪意のあるコードが実行されるようになっている。 こちらの問題のあるversionなどの具体的な内容についてはazuさんが分かりやすくまとめてくれているので、こちらを参照してみるのが良い。 zenn.dev…
Denoを使ってスクレイピングする処理を書いていた際に、データ取得元のサイトがEUC-JPだったため文字化けを起こしていました。 Denoを使っている場合、こういうケースはどうすれば良いのか調べたので備忘録として残しておくことにします。 (というか、Deno特…
Node.jsの標準入力で1文字ずつの入力に対して処理を発行したいケースがある場合のメモ。 stdin.setRawMode(true) にすることでキー入力に対してイベントを発行できるようになる。 (これをつけない場合、Enterキーが押された場合のみ on('data', () => ... …
以前から気になっていたことの一つに、mochaやjestなどのテストライブラリはどういう動きをしているのだろうか?というのがあった。 describe や it や expect などなど、独自の関数をテストコード内に書いてテストを実行していくが、別にこれらのコードは直…
トップレベルawait(Top level await)について改めて自分の中で整理することにした。 これはその際の備忘録的なものとなる。 目次 目次 Top level awaitとは? Top level awaitをブラウザで試すシンプルな方法 実際に読み込まれたJSファイル上でTop level awa…
作ってみた報告です(まだAlpha版ですが)。 Expressのappモジュールを元にして簡単にSitemapを生成するためのnpmパッケージを作りました。 名前はeasy-express-sitemap-generatorといいます。 github.com インストールする際は npm install easy-express-site…
音声認識した声を、ゆっくりの声に吹き替えるツール 音声認識した声を、ゆっくりの声に吹き替える yukkuri-hukikae-on-mac というツールを作りました。 github.com 詳細はこちらにも書いているので、ぜひ読んでみてもらえたらと思います。 free-sound.shinsh…
ようやくM1のMacBook Airでもプログラミング環境を整えることにしました。 Node.js環境が必要なので、下記のようにインストールを行いました。 なお、Node.jsのLTSを入れておきたかったので、v14をインストールしました。 少し前の記事だとまだv14には対応し…
以前、物凄くシンプルなnpm packageを作っていた。 random-fruits-name.js という名前のpackageである。 GitHubはこちら。 github.com READMEにも書いているが、ReactでもNode.js環境下でも動くものになっている。 Reactでのコードサンプルはこちら。 import…
開発をしていて必要になったので、書いた。 1回使えば役目を終えるコードだったため、使い捨てスクリプト的な形で書いている。 今後もまたどこかで使用するシーンがでてくると思ったので、こちらに書き残しておく。 なお、このスクリプトはこちらのQiitaで…
一月の成果として振り返ることで来月も頑張れる気がしたので、振り返ります。 確認については下記のシェルコマンドを叩きました。 curl https://api.github.com/users/shinshin86/repos?sort=created | jq -r '.[] | { full_name: .full_name, created_at: .…