- 1. CloudFunctionsアプリをDevContainerでさくっと開発する
- 2. Node.jsを安全にアップデートするためにやったこと
- 3. 領域展開「Gradle」で Node.js を制する
- 4. 文系卒の新人が伝えたいエンジニアへの道 社内新人研修編
- 5. Node.jsのeventemitterとそのデザインパターンについてまとめてみた
- 6. 【Node.js】ExpressとFirebaseで画像アップロードを実装する
- 7. ServerlessFrameworkでDynamoDBLocalを使う
- 8. 【準備時間5分】JavaScriptを学びつつ戦う!RoboCodeやろうぜ!
- 9. discord.js 連投対策をする
- 10. npm実行時に /usr/bin/env: ‘bash\r’: No such file or directory
- 11. 卒業した推しメンに電話して次の推しメン候補をSMSで教えてもらう
- 12. SHARPのCOCORO AIR対応家電を、Node.jsから操作する話
- 13. Node.jsをモダンなJSで実装する JavaScriptの歴史も理解しながら
- 14. メモ:Windows上でapache kafka+kafka-node
- 15. 草を生やしてこどものモチベーションを上げる【その1】仕様〜設計編
- 16. 最もLGTMを獲得したのはあの記事!プロトアウトスタジオ2021年のアウトプットを振り返る
- 17. Reactのコンポーネントを生成するCLIアプリをNode.jsの標準機能のみで作ってみた話
- 18. 【FlutterFire × StripeAPI】簡易版メルカリのようなCtoCプラットフォームアプリを作ってみた
- 19. LINEで画像を集めて、素敵なモザイクアートを作ろう
- 20. FirebaseAuthを使った自作APIの認証
CloudFunctionsアプリをDevContainerでさくっと開発する
クラウドコンピューティング、とりわけサーバーレス環境は
周りのめんどくさい事に煩わされずに「提供するモノの中身に注力できる」という点でより素早く、品質の良いサービスを提供できるシカケでもあります。本稿では、開発環境でも「より中身に注力」するためにさくっと環境を立ち上げてデプロイする事について触れようと思います。
##TL;DR
– VisualStudioCodeのDevContainerでコンテナ内に開発環境を作る
– ローカルでCloudFunctionsを実行する
– 開発環境からCloudへデプロイする##想定環境
– Windows10
– GoogleCloud(CloudFunctions)
– node.js
– VisualStudioCode##ローカルマシンにインストールするのはふたつ
クラウドのアプリケーション開発に携わる方にとって、同時に複数のサービスを開発したりメンテナンスする必要に迫られる事はありませんか?それぞれのアプリケーションが違うバージョンのフレームワークやプラグインを使っていたり、そもそも稼働するクラウドやリ
Node.jsを安全にアップデートするためにやったこと
# はじめに
はじめまして、リンクアンドモチベーションのプラットフォームチームに所属している菊池です。
弊社で開発しているモチベーションクラウドのフロントエンドビルド環境は長らくNode.js 8を使っており、「さすがにやばい」という感覚と、シンプルにモダンなライブラリをインストール出来ない、セキュリティリスクなどの観点から当時のActive LTSである14系へのアップデート作業をすることになりました[^1]。[^1]: 2021年12月現在のActive LTSは16となっています。https://nodejs.org/en/about/releases/
しかしながら、(みなさんもご存知の通り)Node.jsのアップデート作業は簡単には終わりませんでした。
今回は1度の失敗を経て、安全にアップデートするためにやったことを紹介したいと思います。※ この記事は[モチベーションクラウドシリーズアドベントカレンダー2021](https://qiita.com/advent-calendar/2021/mcs)の3日目の記事です。
# 1度目のアップデート
1度目のアップ
領域展開「Gradle」で Node.js を制する
失礼しました…
# はじめに
オークファンの大きめのデータを担当するバックエンドシステムでは Kotlin + Spring Boot + Gradle の構成がよく採用されています。少し前まではこの構成で作成されるのは、バッチプログラムや Web API がほとんどでしたが、最近さらに Vue.js を追加して UI を持った Single Page Application (SPA) の Web アプリも作成するようになってきました。
Spring Boot のプロジェクトを [Spring Initializr](https://start.spring.io/) で作成すると、Gradle Wrapper が付属しています。これにより、開発環境では JDK のみ用意するだけでプロジェクトのテストやビルドな
文系卒の新人が伝えたいエンジニアへの道 社内新人研修編
# はじめに
ここでは僕が新人研修で学んだことを伝えたいと思います。研修期間は3ヶ月です。会社としては上流工程から下流工程までの案件を引き受けている SIer 企業です。その企業がどのような新人研修をしたかというのを参考にしていただけたらなと思います。# 新人研修新人研修で行ったことは以下の通りです。
– 基本的な知識のインプット(SQL, Java, Git, etc..)
– 社内サービス改善
– 社内サービス作成そしてここでは3つ目の社内サービスの作成について話していきたいと思います。
# サービス概要
– サービスの内容
– 社内向け書籍購入ウェブアプリケーション
– 使用用途
– 社員が読んだ書籍のレビューをし書籍の情報共有をしあう
– 使用した言語
– JavaScript
– フロントエンド:React
– バックエンド:Node.js
– インフラ環境
– AWSこの開発は新人8人(フロントエンド:4人、バックエンド:4人)で行いました。僕はバックエンド側の担当していたためバックエンド側の話
Node.jsのeventemitterとそのデザインパターンについてまとめてみた
# はじめに
この記事ではeventEmitterとeventEmitterに関わるデザインパターンについて紹介しています。
evenEmitterをマスターすることで、よりプロのプログラマー(略してプロプロ)になれると思います。# eventemitterとは
まずイベントエミッターとはなにか説明します。
これ、独自にイベントを作成し、指定したタイミングに関数を発火することができます
イベント駆動開発でよく用いられます。イメージで言うと、フロントエンドでいうと、ボタンを押したときにonpushに登録された関数が発火しますよね。それです!
eventemitterを用いると、自作でイベントを作って、好きなタイミングで発火することができるようになります。
Node.jsではeventemitterがストリームの裏側で作られ、実行されています。# EventEmitterの実行例
“`js
const EventEmitter = require(“events”)
const eventEmitter = new EventEmitter()const bakuhats
【Node.js】ExpressとFirebaseで画像アップロードを実装する
# ■はじめに
普段はVue.js, Nuxt.jsを使っているのですが、Expressで画像アップロードを実装しようとしたらいつもと勝手が違ったのとサーバー側でFirebaseを使う時はFirebase SDKではなくFirebase Admin SDKを使わないといけないことを理解しておらず詰まったのでメモ。“`plugins/firebase.js:
const admin = require(“firebase-admin”);
require(“dotenv”).config();
const ServiceAccount = require(“../ServiceAccount.json”);if (admin.apps.length === 0) {
admin.initializeApp({
credential: admin.credential.cert(ServiceAccount),
storageBucket: process.env.FIREBASE_ADMIN_STORAGE_BUCKET
});
}module.ex
ServerlessFrameworkでDynamoDBLocalを使う
今更ですが、[Serverless Framework](https://www.serverless.com/)でDynamoDBのローカル開発環境を構築するために、[DynamoDB Local](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html)を導入したので、その記録です。
## はじめに
[DynamoDB Local](https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/DynamoDBLocal.html) 自体は、そもそも aws 公式のツールです。
DynamoDB をローカル環境で利用できるように用意されています。
JRE 上で動作するので、Java6以上の実行環境が必要です。[^1]
それを Serverless Framework で使うための [Serverless DynamoDB Local](https://www.server
【準備時間5分】JavaScriptを学びつつ戦う!RoboCodeやろうぜ!
#JavaScriptを学びつつ戦う!RoboCodeやろうぜ!
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/524081/8cd86f77-d8d7-730d-c7b9-b020511eaf42.png)
※Windows + Node.js環境を想定して書いています。
Git
https://github.com/mokemokepyonpyon/robocode-js/tree/gh-pagesDownload
https://github.com/mokemokepyonpyon/robocode-js/archive/refs/heads/gh-pages.zip##RoboCodeとは
Robocodeとは元々Java言語でプログラミングする対戦型ロボットシミュレータです。
自分プログラミングしたロボットを、世界中のプログラマが開発したロボットと闘わせることができるんです!youchenleeさんが作成したJS言語バージョンを
更に初心者向けに改良し
discord.js 連投対策をする
今回はDiscord.jsで連投対策をしていきます
#必要なもの
discord.js@12(改良すれば13でもいい)
Node.js12以降#コード
“`js
const discord = require(‘discord.js’);
const client = new discord.Client()const spam = [];
//spamオブジェクト作るconst maxtime = 1;
//時間を定義しておくclient.on(“message”, message => {
//メッセージイベントを発火if (message.author.bot) return;
//BOTの場合は処理を実行しないif (new Date() – spam[message.author.id] <= maxtime * 1000) { //現在の時刻から保存された時刻を引いた数がmaxtime(ミリ秒なので*1000している)以下だった場合実行 //ここから下が連投された場合の処理
npm実行時に /usr/bin/env: ‘bash\r’: No such file or directory
# 事象
WindowsでWSLでnpm実行時に下記エラーが発生。“`
$ npm -v
/usr/bin/env: ‘bash\r’: No such file or directory
“`コマンドプロンプトでは問題ない。
“`
>npm -v
8.1.0
“`# 原因
WSL上では、Windowsにインストールしたものは稼働せず、WSL実行用にインストールが必要。# 対応
https://docs.microsoft.com/ja-jp/windows/dev-environment/javascript/nodejs-on-wsl上記リンクに従い実行
nvmのインストール
“`
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
“`確認
“`
$ command -v nvm
nvm
“`Node.js LTS版 インストール
“`
$ nvm install –lts
“`確認
“`
$ nvm
卒業した推しメンに電話して次の推しメン候補をSMSで教えてもらう
長らく応援してきた乃木坂46の大園桃子さんが2021年9月4日にグループを卒業、そして芸能界を引退しました。毎回全力投球していた握手会(最近ではオンラインのお話し会)もなくなってしまい、今は推しロスで夢も希望もない毎日を過ごしています。
**次の推しメンは見つかるのだろうか。。。**
そんな気持ちになれないよ…と未練たらたらな自分から脱却するためにTwilioで**「推しメンに電話すると卒業の旨が告げられて次の推しメン候補が送られてくる」サービス**を作りました。デモはこちら(音声Onにしてください)。
SHARPのCOCORO AIR対応家電を、Node.jsから操作する話
この記事は記事は[道メン(身内向け)アドベントカレンダー](https://adventar.org/calendars/6306)の2日目の記事です。
## はじめに
Qiitaの記事投稿は100万年ぶりです。なずなです。
ある程度いろいろなプログラムを書けるようになってきたので、そろそろアウトプットが必要な頃合いでしょうということで投稿します。空気清浄機が欲しかったので買いました。
購入したのはシャープの加湿空気清浄機 [KI-LS40-W](https://jp.sharp/kuusei/products/kils40/)です。![130567.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306146/ccbb7a95-de7b-468c-c336-2a5082ce3a6d.jpeg)
特徴は気化式の加湿機能を備えている点と、COCORO AIRに対応にしており、外部から操作が可能な点です。
…今、「__外部から操作が可能__」と言いました。
つまり、APIが存在してるということ
Node.jsをモダンなJSで実装する JavaScriptの歴史も理解しながら
## はじめに
Node.jsでは`require/module.export`を使うが、フロントエンドだと`import/export`を使うのがほぼであるのに、なんでそうなるの?と思う事があるかもしれない。
その辺りについてきちんと理解してみたのでそれの備忘録を残す。https://github.com/yuta-katayama-23/node-express/tree/d3224ed684d0a96894fd112b049d4ca8db9ef776
## JavaScriptの歴史からNodeとは何か?とNode.jsでimpoert/exportを使うにはwebpack/babelが必要になる事を理解する
最近(2015年以降)にフロントエンドをやり始めると、モダンな書き方でES6(ECMAScript2015)でJavaScriptを書くと思うが、その状態でNode.jsも書き始めると、なんか書き方が違うな~と感じると思う。
分かりやすいのがモジュール管理(他のファイルに実装した関数を使う、他のライブラリを使う、をする時の呼び込み方法)で、“`js
import
メモ:Windows上でapache kafka+kafka-node
分散メッセージキューkafkaそのものについては[ここ](https://qiita.com/sigmalist/items/5a26ab519cbdf1e07af3)の解説が詳しい。
あとは[これ](https://qiita.com/YutaSaito1991/items/214ee6d5a81ac4436cd4)とか。
AWSのAmazonMSKのようなフルマネージドが楽そうだが、まずはWindows上でどんな感じか試してみる。
環境は少し古いWindows Server 2012
node.jsは16.x# kafkaインストール
[ここ](https://towardsdatascience.com/running-zookeeper-kafka-on-windows-10-14fc70dcc771)とか[ここ](http://java-study.blog.jp/archives/1075373530.html)を見ながら。* とりあえず[https://kafka.apache.org/downloads](https://kafka.apache.org/d
草を生やしてこどものモチベーションを上げる【その1】仕様〜設計編
# 前書き
去年から、AtCoderにどハマりしています。
毎日精進して、草を生やすのが楽しいです。
![スクリーンショット 2021-12-01 15.41.36.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74969/bb5dd9b0-a24c-e3cc-d941-b354c0499d18.png)この精進、こどもにも応用できないのかな?と考えたのがきっかけ。
# 課題
子供(特に長男)が、「今何をやっているか?」を忘れがちで、宿題や準備が進みません。
宿題の途中で何か別のことをしたり、、、、# 解決方法
子供用のToDoリストを見える化してみます
ポイントで釣ってどうにかならないだろうか、、、、と思っている– 仕様
– タスクを完了にするとポイントが貯まる
![スクリーンショット 2021-12-01 16.29.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/74969/28f80
最もLGTMを獲得したのはあの記事!プロトアウトスタジオ2021年のアウトプットを振り返る
## 今年も始まりました!アドベントカレンダー!
この記事は[プロトアウトスタジオのカレンダー | Advent Calendar 2021 – Qiita](https://qiita.com/advent-calendar/2021/protoout)の1日目の記事です。
みなさんこんにちは。[プロトアウトスタジオ](https://protoout.studio/)講師の光岡([@mitsuoka0423](https://twitter.com/mitsuoka0423))です。
今年も残すところ1ヶ月ですね。今年はどのような1年でしたでしょうか??
毎年恒例のアドベントカレンダーもスタートしました。プロトアウトスタジオも毎日投稿していきますので、ぜひご覧ください。## プロトアウトスタジオのQiita記事が1000件に到達しました!
2021年もプロトアウトスタジオ学生によるたくさんのアウトプットが行われ、Qiita記事の投稿数が1000件に到達しました!祝
(10000LGTMも目の前ですね!)
Reactのコンポーネントを生成するCLIアプリをNode.jsの標準機能のみで作ってみた話この記事は[TDU CPSLab Advent Calendar 2021 – Adventar](https://adventar.org/calendars/6489)の1日目の記事です
https://adventar.org/calendars/6489
前の記事はありません、次の記事は[こちら](https://qiita.com/narusei/items/03d1630533c8ab56bf53)から。
#### 追記
研究室で共有したところ、
Typescriptでのリファクタリングを[narumincho](https://github.com/narumincho)が早速してくれました!!!シンプルに自分が知らなかったNode.jsの機能使っていたり、
Typescriptの型定義の工夫も学べるかと思いますので、
是非[こちら](https://github.com/narumincho/narusei-code-gen/pull/1/files)から御一読ください!!## はじめに
“`
amplify codegen
“`
(生成されるファイ
【FlutterFire × StripeAPI】簡易版メルカリのようなCtoCプラットフォームアプリを作ってみた
# はじめに
はじめまして、[ダイゴ](https://twitter.com/Mamushi_journey)と申します。
Flutter × Firebase × StripeAPIで、CtoCプラットフォームアプリを作ってみました。– ユーザーの登録
– クレジットカード情報の登録・削除
– 本人確認
– 決済しかできない簡易的なアプリですが、
難しいイメージのある「決済機能」をできるだけミニマルに実装してあるので、
個人開発などでサクッと導入してみたい場合などの助けになれば幸いです。本記事では **StripeAPI を FlutterFire アプリに組み込む方法**と、**決済を成立させるまでの実装方法**について解説していきます。
# サンプルアプリ
| ログイン | 商品一覧 | アカウント |
|:———–|:————|:————|
| ![IMG_1615.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/639342/0
LINEで画像を集めて、素敵なモザイクアートを作ろう
## はじめに
まもなく年末が近づいてきました。
今年の思い出にモザイクアートなどを作ったら盛り上がるんじゃないかといった提案です。
クリスマスパーティーとか年賀状とか、いろんなところで友達や家族、クラスで集めた画像を一つにまとめて、みんなでいい思い出を作れると楽しいですよね。## 以前挑戦して大成功した
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488939/cc928a92-0e1b-20b8-6a4d-3e5ef02de32e.png)こちらは今年の頭に、高校の卒業記念に卒業生みんなで作ったモザイクアートです。
8700枚ぐらいの画像を使って作ったのですが、すごくいいものが出来上がってみんな喜んでくれました。メインになっている画像は、母校の校舎です。## 今回の特徴
高校の公式イベントとして行ったため、いくつかの制約がありました。
– みんなが簡単にかつ大量に提出できること
– 集めた画像は学校が管理するサーバーなどで管理すること
– モザイクアートにする前に、
FirebaseAuthを使った自作APIの認証
現在Flutterアプリを開発中です。自前のサーバーを立ててAPIを作成するということが良くあると思います。その中でAPIに正規のユーザーしか受け付けないように認証を実装します。FirebaseでFlutterアプリの認証を行なっているのでAPIの認証もFirebaseに任せたいと思います。今回の構成図は以下の通りです。
![jwt.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1295942/4e459602-d5f2-3ec9-bad9-add7a6d7888f.png)
# JWTとは
Json Web Tokenの略で読み方はジョット。JSONデータ構造で表現したトークンの仕様です。
JWTは長い文字列になっていますが . によって3つに分割することができます。構成は<ヘッダー>.<ペイロード>.<署名>となってます。JWT実際にデコードしていってみます。色々検証してみたい方はこちら↓↓↓https://jwt.io/
## ヘッダー
ヘッダーはJWTの署名検証を行うために必要な情