- 1. twitter-api-sdkを使ってツイートの画像を日次で自動取得する
- 2. 【Node.js】Expressのroutesをいい感じにする(ディレクトリ・ファイルを追加するだけでrouteに登録されるようにする)
- 3. AWS SDK V3 のDynamoDBで、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
- 4. Deno を使って Node でも Deno でも動くライブラリを作る
- 5. 誰でも作れるBetterJSONトランスパイラを作ってみる
- 6. TypeScriptでサーバーもフロントも書いてGraphQLするやつアドカレ25記事書ききった
- 7. ゆるやかにオンプレAPIをNestJS on ECSに移行して
- 8. Yarnのバージョンによってnode_modulesが作成されない件について(voltaを使用)
- 9. キャンパス内の独自通貨をオンライン化した話
- 10. Ubuntu22.04でのMineOS環境構築
- 11. AppsFlyer Push APIからのJSONデータを、Cloud Functionsで受け取り、Cloud Firestoreに流し込むまで
- 12. ワンコマンドで立ち上がるDApp開発環境をDockerで生成する(Truffle&Ganache)
- 13. 【完走賞ゲット-24】OpenAI の ChatGPT の API を公式ライブラリの JavaScript版 を試す(使い方を ChatGPT に聞いてみたりも)
- 14. ReactとGraphQLを使って作るTODOアプリ
- 15. Node.js ってなんだ?
- 16. PostgreSQL/PostGIS データベースからnodejsでデータを読み込む(pgモジュール)
- 17. web-ifcでIFCファイルを読み込む
- 18. 彼女の怒りを早急に鎮火。むしろ怒りを遊びに転換したい。〜obnizで早押しゲームつくり〜
- 19. Playwright と Artillery によるパフォーマンステスト
- 20. Discord jsの最小構成(メモ)
twitter-api-sdkを使ってツイートの画像を日次で自動取得する
## はじめに
Twitterに上がっている推しの画像を保存したい!好きな絵師さんのイラストを毎回保存するのが面倒・・・
そんな悩みを持つ皆さんに朗報です。
TwitterAPIを使えば毎日自動で推しの画像を保存してくれるスクリプトを簡単に組めてしまうんです!## 1. TwitterAPIの申請
~~TwitterAPIは無料で始めることができますが、利用するには申請を行う必要があります。~~
Twitter API V2が標準となった今は申請不要、サインアップのみで利用を開始することができます。
既に利用可能なTwitterAPI開発者アカウントを持っている方はこのセクションは飛ばして大丈夫です。### 必要なもの
* Twitterアカウント
いわゆる鍵垢ではないパブリックなアカウントが必要です。
また、メールアドレス、電話番号の登録も必須となっています。
* やる気
~~申請周りは割と面倒なので頑張りましょう!~~### ~~いざ、申請~~ Let`s サインアップ!
まずは[Twitter 開発者プラットフォーム](https://developer.twitt
【Node.js】Expressのroutesをいい感じにする(ディレクトリ・ファイルを追加するだけでrouteに登録されるようにする)
## はじめに
Expressで実装する際、以下のようにrouterの実装を`src/routes`などに分けて実装する事はままあると思う。ただこの実装だと、`routes`を増やすたびに`app.user()`も必要になり、手間かつ冗長に思える。
“`js:./src/index.js
import express from ‘express’;// 省略
import router from ‘./routes/index’;
import shopsRouter from ‘./routes/shops’;
import searchRouter from ‘./routes/search’;
import accountRouter from ‘./routes/account’;// 省略
const app = express();// 省略
app.use(‘/account’, accountRouter);
app.use(‘/search’, searchRouter);
app.use(‘/shops’, shopsRouter);
app.us
AWS SDK V3 のDynamoDBで、いくつか動作確認した話(AWS SDK V2 → V3 移行Tips)
# はじめに
https://qiita.com/Syoji_Yonemoto/items/e619d8199b7c8354248f
V3移行の動作確認の初手に、Firehoseを選んだせいかもしれないですが、V2で使ってたメソッドの互換があるか保証がないことが分かったので、普段、Lambdaで利用するAPIについては一通り、動作確認をしていっています。
今回は、DynamoDB編です。
# 結論
DynamoDBに関しては、私が普段使うメソッド群については、問題ありませんでした。
# V2 と同じ使い方で問題なく動作確認できたメソッド
+ putItem
+ batchGetItem
+ query
+ updateItem
+ updateTable# 余談
性能試験や、TTL未実装の時などには、createTableやdeleteTableも実行していた時もありましたが、日常的に使う物でもなく、その時がきたら追試をします。# まとめ
DynamoDBくらい主要どころになると、しっかり下位互換もされているようです。
引き続き、小ネタシリーズとして、
Deno を使って Node でも Deno でも動くライブラリを作る
Deno アドベントカレンダー 24日目の記事です。
今日は Deno を使って Node でも Deno でも動くライブラリ(もしくはツール)を作成する方法を紹介します。
Deno 界隈では最近 npm 互換性機能がリリースされて、Deno から使えるツールが一気に増えたということで話題になっていますが、逆に Deno で作ったツールを Node/npm に対応させるという逆向きの互換性についても開発が進んでいます。
この記事では、Deno が公式で提供している [dnt](https://github.com/denoland/dnt) というツールを使う方法を紹介します。
https://github.com/denoland/dnt
dnt を使った場合の、Node と Deno 両対応の主な流れは次のようになります。
– まずは Deno で動くようにツールを作る (Deno に対応)
– dnt を設定して、ツールのエントリーポイントを Node 用に変換出来るように準備する
– dnt を実行して Node 用モジュールを指定のディレクトリに書き出す
– 書き
誰でも作れるBetterJSONトランスパイラを作ってみる
# 概要
(厳密な)JSONはイメージとは裏腹に手で書くには思ったより不便な仕様になっています。
– コメントが書けない。
– Trailing comma(末尾のカンマ) は認められていない。(=手で追加する際にカンマを意識する必要が出て面倒)
– (ダブルコーテーションの代わりに)シングルコーテーションは使えない。
– キー名もダブルコーテーションで囲む必要がある。などなど・・・
というわけで、JavaScriptのオブジェクト表記のようにゆるく書けてなおかつそのままJSONに変換できるトランスパイラを作ってみる。
# 誰でも作れる
ちょこっとコードを付けて`eval(new Function)`して`JSON.stringify`で出力するだけです。
node.jsなら追加のモジュール一切不要で実現できます。
“`bjson.js
const fs = require(‘fs’);if(process.argv.length < 3) { const path = require('path'); jsfile = path.basenam
TypeScriptでサーバーもフロントも書いてGraphQLするやつアドカレ25記事書ききった
[Next.js + サーバーサイドTypeScript + 関数フレーバーでクリーンなアプリを作ったので実装意図とか書く Advent Calendar 2022](https://qiita.com/advent-calendar/2022/shwld)
の**25日目**。[株式会社mofmof](https://www.mof-mof.co.jp/)に生息している[shwld](https://twitter.com/shwld)です。前日は[Next.jsとgraphile-workerをRailwayにデプロイする](https://qiita.com/shwld/items/49a310aadc0a34e2a721)について書きました
# TypeScriptでサーバーもフロントも書いてGraphQLするやつアドカレ25記事書ききった25記事を書ききったので、ふりかえって感想を書きます。
## 良かったこと
学んだ内容を無理やりアウトプットできた。
アドベントカレンダー25日分最初に埋めたので後戻りできないなという気持ちに
普段アウトプットあんまりしてないのでい
ゆるやかにオンプレAPIをNestJS on ECSに移行して
この記事はアイスタイル [Advent Calendar 2022](https://qiita.com/advent-calendar/2022/istyle) 25日目の記事です。
# はじめに
じゃんたま 雀士★1になりました。
はじめまして、アイスタイルT&C部に所属している[okashitay](https://qiita.com/y_okasuke)というものです。今回の記事では、こないだまでNestJSどころかNode.jsアプリケーションでの開発実績も特別ない者でしたが、ここに実体験を元に知見をいくつか残していこうと思います。
# NestJS採択の経緯
商品データ基盤APIは何らかの事情でPHP版とGO版が存在しています。
両方とも言語・フレームワークともEOL(End Of Life)に近い状態…2つのAPIのバージョンアップしつつAWSへ移行する労力、2種類の言語のAPIに機能追加・メンテナンスしていくことは開発者の負荷とAWS移行コスト&運用コストも高まるという状況を解消するため1つの言語に統一する方針へ、言語とフレームワークの最終的な決め手は公式ド
Yarnのバージョンによってnode_modulesが作成されない件について(voltaを使用)
## 起こった現象
* voltaでNext.jsの環境構築をした時、自動で作成されるindex.tsxで、import部分にエラー
* 「対応する型が見つかりません」ってずっと出る?
* node_modulesフォルダではなく、**「.yarn」フォルダが作成される**## 早速ですが結論から
エラーが起きた原因は、やはり**node_modulesが作成されていないから**みたいですすごくシンプル
本来は作成されるはずなんですが、なぜ作成されなかったか追っていきましょう!
## yarnのバージョンを確認
まずはyarnのバージョンを確認してみましたyarn -v
// 3.3.0バージョンは3.3.0と確認できました
yarnは、Home Brewで既にinstall済みの状態です
今回使用したかったバージョンは「1.22.19」だったので、voltaでyarnのバージョンを指定してみました
エラーが起こる段階でyarn installした時は、voltaにyarnのバージョンはしてしてなかったです
“`package.js
キャンパス内の独自通貨をオンライン化した話
# はじめに
この記事は、[N・S高等学校 Advent Calendar 2022](https://qiita.com/advent-calendar/2022/n-s-highschool)の25日目です。
はじめまして、N中等部通学コース4期生のTakuといいます。
今回は、キャンパス内で使われている独自通貨「吉」をオンライン化してみた話を書きまとめてみました。
ぜひご覧ください。
# 独自通貨とは
まず最初に、キャンパス内で実装されている独自通貨について説明していきます。
上の画像が紙幣の独自通貨で、一ヶ月に一回紙幣のデザインが変わっています。
# 完成品
できたものについて紹介します。
## Web UI
Ubuntu22.04でのMineOS環境構築# 初めに
MineOSというMineCraftサーバー管理ツールをご存じでしょうか?
WebUI上からサーバーの新規作成、起動、停止、定期バックアップなどいろいろできる便利ツールです。
昔から利用しているのですが毎回構築するたびにやり方を忘れるのでメモ程度に手順を残しておきます。以下公式サイト
https://wiki.codeemo.com/# 環境
今回はESXi8.0上のVMに構築
|項目|詳細|
|–|–|
|OS|Ubuntu22.04LTS|
|CPU|6vCPU|
|RAM|30GB|
|Storage|SAS HDD 100GB|# 構築
基本的には公式ドキュメント通りに進める
## UbuntuOSのインストール
割愛## curlのインストール
“`shell-session
user@localhost:~$ sudo apt -y install curl
[sudo] password for user:
Reading package lists… Done
Building dependency tree… Done
Re
AppsFlyer Push APIからのJSONデータを、Cloud Functionsで受け取り、Cloud Firestoreに流し込むまで
## 自己紹介
AppsFlyerというモバイル広告計測ツールの会社のソリューションアーキテクトです。前職ではIBMでデータエンジニアをやっており、DWHの構築などをネットワークやOSレベルのインフラレベルのこともやっていましたが、基本的にはオンプレだけでしたので、Google CloudやAWSのことをキャチアップしたいと考えているところです。参考: [AppsFlyerとそのアトリビューションの仕組み](https://qiita.com/maktag/items/0a6d9a3969393aa8dcb4)
AppsFlyerは計測ツールですので、そのローデータをお客様側に持ち出していただいて保管・分析いただくことは通常のユースケースになります。その連携方式の一つがPush APIという機能で、AppsFlyerから発生したイベントをリアルタイムで指定のエンドポイントにデータを送信できるというものなのです。
ただ、対面のお客様はエンジニアではなくマーケターの方だったりしますので「エンドポイントってそもそも何?」というような質問を多々受けることもあります。
「Googl
ワンコマンドで立ち上がるDApp開発環境をDockerで生成する(Truffle&Ganache)
# はじめに
DApp開発を学習するうえで簡易なものを作ってみようということで、環境構築から。
思っていたよりも簡単にできた。WSL2&docker環境を想定。
dockerの使い方的な説明には触れない。## 完成品のリポジトリ
https://github.com/PokoPoko2ry/dapp-sample
# 環境概要
Dockerでワンコマンドで立ち上がるよう各コンテナの定義をする。調べてみると、Solidity開発ならフレームワークとしてTruffleと
ローカルのブロックチェーンネットワークにGanacheがよいということで
これらを利用した環境を作成してゆく。
最終的な構成はこのような形“`
.
├── app
│ ├── build
│ │ └── contracts
│ │ ├── ConvertLib.json
│ │ └── MetaCoin.json
│ ├── contracts
│ │ ├── ConvertLib.sol
│ │ └── MetaCoin.sol
│
【完走賞ゲット-24】OpenAI の ChatGPT の API を公式ライブラリの JavaScript版 を試す(使い方を ChatGPT に聞いてみたりも)
## はじめに
こちらは、[完走賞ゲットのため小ネタを毎日投稿しようとチャレンジする Advent Calendar 2022](https://qiita.com/advent-calendar/2022/youtoy) の 24日目の記事です。今月のアドベントカレンダー用記事で、以下の 3記事で扱った OpenAI の ChatGPT の話です。
– [【KDDI Engineer&Designer】AI にブラウザ用の JavaScript のプログラムをいくつか作ってもらった話 ⇒ OpenAI の ChatGPT で生成されたプログラムの解析も少々 – Qiita](https://qiita.com/youtoy/items/8eacb1af28ac18301b74)
– [【完走賞ゲット-4】続・OpenAI の ChatGPT のネタ:JavaScript の特定の技術仕様を教えてもらう – Qiita](https://qiita.com/youtoy/items/a4d9f3b0736475d0770a)
– [【enebular 2022】ChatGPT用ノ
ReactとGraphQLを使って作るTODOアプリ
# はじめに
こんにちは,ペンギン丸です.学生兼フロントエンドエンジニアをしています.
本記事は私が来年からお世話になるDMM様の23卒アドベントカレンダー24日目です.何か書けるような技術無いかな〜っと考えたところ何も思い浮かばなかった為,
逆に全然分かってない技術(GraphQL)を使ってTODOアプリを作ることにしました.最近はお絵かきにかまけて技術の勉強をしてなかったので,手を動かして行きます!
# 本記事の目標「GraphQL? 何それ美味しいの?」って方でも
この記事通りに作業すればGraphQLを用いてTODOアプリが作れてしまい,何となくGraphQLが分かった気になれることを目標にします.GraphQLそのものに関する説明や,細かな用語の説明は他の方の記事に任せ,なるべく少ないコードで必要最低限のTODOアプリが作れたら良いなと思います.
張り切って行きましょう!# 前提条件
Node.jsとnpmは既にインストールされている前提で作業します.
また,本記事の大部分はApolloの公式チュートリアルを参考にしています.https://apo
Node.js ってなんだ?
「Node.js って結局なに?」
って急に聞かれても答えられない気がします。私は Node.js = JavaScript をサーバーで動かす環境、くらいの認識だったのですが、きちんと調べてみると間違っていたのでまとめていきます。
## Node.js とは
[公式ドキュメント](https://nodejs.dev/en/learn/) には以下のようなことが書かれていました。
– JavaScript の実行環境
– 拡張性の高いネットワークアプリケーションを構築できる
– Google Chrome のコアとなっている、(高速に動作する) V8 エンジンをブラウザの外で動かすことで高いパフォーマンスを実現している
– ほとんどの種類のプロジェクトに対応できる
– クロスプラットフォーム
– オープンソース
– スレッドを複数立ち上げることが重大なバグの原因となるため、シングルプロセスであり、非同期処理に対応
– JavaScript を書いていた人にとっては別言語を勉強せずにサーバーサイドの開発ができるメリットがある
– ブラウザのアップデートを待たずに新しい ECM
PostgreSQL/PostGIS データベースからnodejsでデータを読み込む(pgモジュール)
# はじめに
これまで使っていたベクトルタイル作成のプログラムについて、nodejsのバージョンアップが必要なこともあり、主要なnodejsモジュールがnodejs v18でも動くか試してみる必要がありました。この機会に、改めてPostgreSQL/PostGISからのデータ読み込み、GeoJSON sequenceでの書き出しについてメモを書いておこうと思ってこの記事をまとめました。
今回の練習レポジトリはここです: https://github.com/ubukawa/ex-postgis
なお、現在、実際に動いているプログラムはnodejs v.16で動かしていますが、レポジトリはここ https://github.com/unvt/produce-gsc-6 にあります。このプログラムは @hfu さんの開発をベースにしています。
## 注意点
今回の練習用では、pgモジュールをつかってPostgreSQLデータベースでのアクセスするところを中心にみるため、childプロセスを使ってベクトルタイル変換ツールにデータをパイプすることや、better-queueを使って
web-ifcでIFCファイルを読み込む
# はじめに
[前回の記事](https://qiita.com/kiyuka/items/00434f1b8e0b38c621fb)ではIFCファイルのテキストを見て手作業で解読しました。まあなんというかとてもめんどくさい作業でした。~~もうやりたくないです。~~
そんなわけで今回はJavaScriptライブラリの [IFC.js](https://ifcjs.github.io/info/) を使って解読していきたいと思います。# IFC.js とは
IFC.jsが何かというと、[公式ドキュメント](https://ifcjs.github.io/info/ja/docs/Introduction)より
> IFC.jsは、IFCファイルの読み書きを非常に簡単に行うことができるJavaScriptライブラリです。
とのことです。わざわざ手作業でIFCファイルを読み解く必要はないってことですね!やったー!!
# web-ifcでファイルを読み込む
IFC.jsは `web-ifc`, `web-ifc-three`, `web-ifc-viewer` の3つのレイヤー
彼女の怒りを早急に鎮火。むしろ怒りを遊びに転換したい。〜obnizで早押しゲームつくり〜
# 続・彼女のブチギレ案件
どうもこんにちは。
以前、トイレの蓋を閉め忘れて彼女にブチギレられたので、obnizでアラート機能をつくった者です。https://qiita.com/atoms50/items/81a401fa705937746900
その後、トイレの蓋の閉め忘れはなくなり、トイレ文脈で彼女にキレられることはなくなりました。
一方で、これは根本的な解決ではありません。
彼女がブチギレる火種は生活の中に溢れているのです。
最近だと、こんな事象が発生し、ブチギレられてしまいました。
– 氷結とスルメイカの食べ残しを机に放置してブチギレられたり
– プレゼントでもらった財布をタクシーに置き忘れてブチギレられたり毎度毎度、事象に対して対策をあてていってもキリがありません。
なので、今回は彼女のブチギレに対して根本的な解決をはかりました。# 彼女の怒りの鎮火作業は「業務」
僕にとって、彼女の怒りを鎮火する行為は「業務」です。
鎮火作業において最も重要なことは、炎上する前に、火種を消すことです。 炎上してしまったら最後、取り返しがつかないことになってしまうからです。
Playwright と Artillery によるパフォーマンステスト
# 要約
– DevOps や SRE を実践する人向けに、Playwright による E2E テストを Artillery の負荷掛けシナリオとして利用する手法についてハンズオンを交えて紹介します。
– 課題としては、Playwright で自動生成したスクリプトを手直ししないと難しいパターンがあることを挙げています。
– その他、Tips もあります。# はじめに
[NSSOL Advent Calendar 2022](https://qiita.com/advent-calendar/2022/nssol) の 13 日目にも[投稿](https://qiita.com/BlueTofuchic/items/57e54875d6f45eccb28c)しました、とうふです。
先の記事で軽く説明した通り、私がいま参画している案件では
> E2E テスト用のスクリプトを流用したパフォーマンステストを行なっています。
本記事では、Playwright で作成した E2E テストスクリプトを使って負荷掛けを行うことでパフォーマンステストを実施する手法について紹介します。
Discord jsの最小構成(メモ)
最近またDiscord jsにハマり出したのでメモとしてコードを貼っておきます
discord jsをインストールするコマンド:
“`powershell
npm install discord.js
“`dotenvをインストールするコマンド:
“`powershell
npm install dotenv
“`bot本体
“`index.js
const { Client, GatewayIntentBits } = require(“discord.js”);
require(‘dotenv’).config();const GatewayIntents = [GatewayIntentBits.MessageContent];
const client = new Client({
intents: GatewayIntents,
});client.on(“ready”,(client)=>{
console.log(“Ready!”);
});client.login(process.env.TOKEN);
“`