- 0.0.1. Alexa SmartHomeSkillの開発 公式チュートリアルに加え、アカウントリンクの実装、ModeControllerの追加
- 0.0.2. Gatsbyでreact-modalを使う方法について
- 0.0.3. 【メモ】LambdaからgoogleDriveAPIを操作する
- 0.0.4. json-serverでREST APIをmockする
- 0.0.5. 初めてのクラウド、初めての Azure -簡単なサーバーアプリをオンプレから移行-
- 0.0.6. Githubのプロフィールをカッコよくさせる画像を動的に生成する
- 0.0.7. 【Typescript】 Error: Cannot find module ‘express’ の解決
- 0.0.8. node.jsで集計処理をしてみた。
- 1. 初めに
- 2. 今回すること
- 3. 要件定義
- 3.0.1. corrs について 猿でもわかる
- 3.0.2. Slackの今日のチャンネル内容をLINEに送信する(Google Cloud Functions)
- 3.0.3. sam local start-apiでヘッダーが勝手にキャメルケースになるんだが?
- 3.0.4. Azure IoT Hub の イベントハブ互換エンドポイントに Node.js で subscribe
- 3.0.5. 2021年、gulp-sassをインストールしようとして躓いた
- 3.0.6. Node.jsのmodule.exportsの仕組みを理解する
- 3.0.7. MQTTによるIoT制御を無料でやってみる
- 3.0.8. node.jsやnodebrewなどをインストールし.bash_profileで設定完了→次の日できなくなってたの巻/Mac OS X 10.15
- 3.0.9. [Node.js]docker-compose upで気楽に開発環境構築
- 3.0.10. Azure IoT Hub に Node.js で subscribe
- 3.0.11. Express Tour #2 Express application generator
- 3.0.12. Node.jsをWindows10にインストールして詰まったこと
Alexa SmartHomeSkillの開発 公式チュートリアルに加え、アカウントリンクの実装、ModeControllerの追加
# はじめに
AlexaのSmartHomeSkillは、照明や扇風機などの家電を、Alexaを使って操作するための機能です。PowerOnOffやModeControllerなどのあらかじめ決められたインターフェイスがあり、それらを利用して機能を組み立てていきます。
SmartHomeSkillでは、音声認識から意図解釈まではAmazon側でビルドされたモデルによって実行するため、開発者が意図解釈のために対話エージェントを訓練する必要はありません。
CustomSkillでは、意図解釈は、開発者が、Dialogflowのようなエージェントを訓練する必要があります。# 目指す姿
スマートフォンのAlexaアプリから、SmartHomeSkillを呼び出します。
SmartHomeSkillを使って、PowerOnOffおよび、ModeControllerを使えるようにします。
本記事では、Alexaを通じて、洗濯機のオン、オフ、および、洗濯モードをデリケートモードに設定するのを目指します。
基本的には、公式のチュートリアルに従って進めます。
https://developer.am
Gatsbyでreact-modalを使う方法について
最近Gatsbyを使って勉強をしてみています。
Reactを素で使うよりもとっかかりやすく、StarterやPluginの充実、GraphQLの標準装備と個人的には学習コストが少ないし、Reactを最初にやるには良いんじゃないかなとは思ってます。
[Gatsby](https://www.gatsbyjs.com/)
今回は、Gatsbyを使ってページにモーダルウィンドウの機能を実装するために使えるreact-modalをGatsbyで使う場合に結構ハマってしまったので、備忘録を兼ねてメモです。
[react\-modal documentation](https://reactcommunity.org/react-modal/)
## react-modalのセットアップ
react-modalの初期設定は簡単です。
npmなりyarnなどを使ってreact-modalをインストールすればOKです。“`terminal:command
npm install react-modal
“`## react-modalを使う(1ページに1つのモーダルのみを表示
【メモ】LambdaからgoogleDriveAPIを操作する
##はじめに
LambdaからgoogleAPIでGooglDriveをいじりたかったのですが、サービスアカウントを用いた参考文献が少なく、理解するのに時間がかかったのでメモ感覚で書いておきます。##本題
###Googleデベロッパーコンソールに行く,プロジェクトを作成
[Googleデッッベロッパーコンソール](https://console.developers.google.com/)にログイン
![スクリーンショット 2021-01-23 0.32.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/488939/380e136c-fe39-9a18-45db-29a94f2563a2.png)###APIの有効化>APIライブラリから`Google Drive API`を有効化させる
![スクリーンショット 2021-01-23 0.33.27.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4889
json-serverでREST APIをmockする
# はじめに :sleepy:
#### JSON Server
[https://github.com/typicode/json-server](https://github.com/typicode/json-server)* 簡単なものならコーディング不要でサクッとAPIをモックできるNode.jsのライブラリ
* 詳しく使い方を知りたい場合は上記リポジトリのREADMEを読んだほうが良い#### まえがき
まだAPIが用意できていないけど、フロント側の実装を進めたいときに便利です。
本記事ではサクッと使える簡単なモックと、応用として以下2つの方法を記載したいと思います。1. POSTリクエストで任意のレスポンスを返す
2. サーバーサイドエラーのモックする# サクッと使う
任意のディレクトリを作成し移動後、 json-server をインストールする
“`zsh
$ npm install json-server –save-dev
“`db.json を作成し、モックしたいデータを挿入
“`json:db.json
{
“molc
初めてのクラウド、初めての Azure -簡単なサーバーアプリをオンプレから移行-
# 初めに
*以下の記事を Qiita へ移植したものです。普段使用する技術情報プラットフォームが Qiita な方もいるかもということで。
(あとは単純に反応の違いとかあるのかという興味本位で)https://zenn.dev/minominominoru/articles/fc40d09d89d24f
## 概要
皆さん、クラウド使ってますか?実際のところ使ったことはないという方も多いんじゃないかなと思ってたりします。そして使ってみたい、学んでみたいけど最初の一歩や学び方が分からない方も多いかなと思います。やっぱり技術は実際に触ってみた方がイメージ掴みやすいし、学びやすいと(個人的に)思います。
なので、**手元の PC でプログラムを実行した後に、クラウドに移行してみるまでの簡単なハンズオン**を用意してみました。なお、ちょっとしたツールのダウンロードや、アカウントの作成等は必要ですが、プログラミングの経験がない方でもできる限り簡単にできるように心がけて書いてみました。(指定したコマンドを入力するだけで試せますし、そんなに打つこともないです。)
所要時間はアカウン
Githubのプロフィールをカッコよくさせる画像を動的に生成する
巷ではGithubのプロフィールをデコるのが流行っています。
具体的には[GitHub Readme Stats を利用してGitHubプロフィールをカッコよくする](https://qiita.com/zizi4n5/items/f8076cb25bbf64a9bc1c)のような記事を読んでもらえばいいんですが、ここで紹介されている物以外を載せたい場合があると思います。そこで、今回は試しにTwitterのプロフィール情報を取得し画像にして返す[twitter-profile-card](https://github.com/ivgtr/twitter-profile-card)というものを書きました。
`Vercel`にデプロイされており、`URL`にidのクエリを付けて叩くとTwitterのプロフィールの画像が返ってきます。
Twitterの情報を取得する手順で他のデータを取得すれば応用が利くはずです。記事では書いたCSSの詳細は省いていますが、この様な感じで表示されます。(画像はpngにした物ですが、リンク先は生成された物になっています。)
詳しくはリポジトリを見て下さ
【Typescript】 Error: Cannot find module ‘express’ の解決
あるファイルを読み込もうとしたら、エラーメッセージが出た。
“`typescript
node index.jsinternal/modules/cjs/loader.js:638
throw err;
^Error: Cannot find module ‘express’
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.(/home/ec2-user/environment/photo/realitycapture/realit
node.jsで集計処理をしてみた。
初めに
node.js の学習のために集計をしてみました。
実際のコードです。
https://github.com/shohei-lob/adding-up.git環境はLinuxです。
今回すること
「2010 年から 2015 年にかけて 15〜19 歳の人が増えた割合の都道府県ランキング」作成。
地域経済分析システム(RESAS:リーサス)で提供されている2010 年と 2015 年の都道府県別 10 代の人口データを集計していきます。データはCSV方式のものです。要件定義
1.ファイルからデータを読み取る
2.2010 年と 2015 年のデータを選ぶ
3.都道府県ごとの変化率を計算する
4.変化率ごとに並べる
#ファイルからデータを読み取る
“`app.js
‘use strict’;
//ファイルを読み込む
const fs = require(‘fs’);
const readline = require(‘readl
corrs について 猿でもわかる
バックエンド側でnode,expressを触っている人向け
CORRS とは、API通信で値(param)など、バックエンド側のデータを表示させるために
バックエンド側で設定するための物です。なので、今回は設定方法だけ記載します。
これを書いておけばHTTP通信は正常に行われます。
バックエンド側に
app.use((req, res, next) => {
// res.header(“Access-Control-Allow-Origin”, “http://localhost:4200”);
res.header(“Access-Control-Allow-Origin”, req.headers.origin);
res.header(“Access-Control-Allow-Headers”, “Origin, Authorization, Accept, Content-Type”);
// res.header(“Access-Control-Allow-Headers”, “*”);
res.header(‘Acc
Slackの今日のチャンネル内容をLINEに送信する(Google Cloud Functions)
表題の内容を試す機会があったので、作業内容とサンプルコードを紹介したい思います。
###環境
– Slack: フリープランでOK
– LINE
– GCP Coud Functions
– 実行環境はNode.js*各サービスのドキュメントはすでにネットに豊富にあるので、今回は細かい設定方法の解説を省きます
###サービス設定
####Slack
#####slack api 設定
https://api.slack.com/apps で
“Create New App“ から新規appを作成。その後以下を設定。– Features -> OAuth & Permissions でBot Token Scopesに以下の権限を付与
“channels:history“
“chat:write“
“commands“
“groups:history“
“im:history“
“mpim:history“
“users:read“– Features -> OAuth & Permissions -> OAuth Tokens & Re
sam local start-apiでヘッダーが勝手にキャメルケースになるんだが?
表題の通り、sam local start-apiでヘッダーが勝手にキャメルケースになる問題についてです。
こちらにドンピシャの回答があるのですが、内部で使っているFlaskの仕様だそうです。
[Headers are received in Camel\-Case · Issue \#1860 · aws/aws\-sam\-cli](https://github.com/aws/aws-sam-cli/issues/1860)仕方ないのでNode.jsでは下記ワークアラウンドをしてヘッダーをすべて小文字にして対応しましょう。
(Pythonならissueのコメントにサンプルコードが載っています)“`javascript
const toLowerCaseKey = function(object) {
let newObject = {};
for (let key in object) {
if (object.hasOwnProperty(key)) {
newObject[key.toLocaleLowerC
Azure IoT Hub の イベントハブ互換エンドポイントに Node.js で subscribe
次のプログラムを改造して、イベントハブ互換エンドポイントを使うようにしました。
[Azure IoT Hub に Node.js で subscribe](https://qiita.com/ekzemplaro/items/9933236f6c2ab3dee121)
Hub に subscribe しているので、その Hub 内の Device に届いた総てのメッセージが表示されます。Device の認証が、SAS トークンでも、CA 証明書でも、どちらも表示されます。“`js:azure_endpoint_subscribe.js
#! /usr/bin/node
// —————————————————————
// azure_endpoint_subscribe.js
//
// Jan/21/2021
//
// —————————————————————
‘use strict’
const
2021年、gulp-sassをインストールしようとして躓いた
この度完全新規のコーディング案件に携わることになったため、久しぶりに1年前まで使用していたpackage.jsonを引っ張りだし`npm intall` を実行したところ、gulp-sassのインストールでエラーを吐いてしまい躓きました。
3時間調査したり悩んだりした結果、解決しましたので備忘録として残します。# エラー状況
Windows10環境で `npm install gulp-sass –save-dev` すると、下記の通りログが出力され、インストールできない。
私のPCにはNode.jsの【最新版(v15.5.0)】がインストールされておりました。## エラーのログ
“`cmd:cmd
PS G:\data\html> npm install gulp-sass –save-dev
npm WARN deprecated fsevents@1.2.13: fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.> node
Node.jsのmodule.exportsの仕組みを理解する
# はじめに
こちらは、[エンジニアの新たな学びキャンペーン](https://qiita.com/official-events/716dbcb617afc83e9555)に向けた記事となります。
[Node.js + Express で作る Webアプリケーション 実践講座](https://www.udemy.com/course/web-application-with-nodejs-express/)を参考にしながら、
`module.exports`について理解を深めたことを記事にします。# 実行環境
– Node.js v12.16.3
– Express 4.16.1
– 10.4.11-MariaDB# 本記事の概要
私は今現在、Webアプリケーションの開発をしていますが、ある問題を抱えています。
その問題とは、1つのファイル内のソースコードが膨らみすぎて可読性が落ちているというものです。
これはデータベースへの接続、ミドルウェアの呼び出し、レスポンスの処理内容など、あらゆる情報を`app.js`内に書き込んでいることに由来します。そこで、`app
MQTTによるIoT制御を無料でやってみる
# 前置き
※途中まで頑張りましたが、断念したため供養記事となります。m..m
## 背景
IoTの制御としてArduino, Raspberry Piなどを用いて各種センサー情報を収集、又はアクチュエータの制御などを想定する。## MQTTとは
– ネットワークプロトコルの一種
– HTTPと比較すると以下が特徴的
– 一対多, 多対多で情報のやりとりが可能
– リアルタイムでの通信が可能
– ヘッダー情報が少なくHTTPの10分の1と軽量 など詳細はIBMのサイトに記載されています。
[MQTT の基本知識](https://www.ibm.com/developerworks/jp/iot/library/iot-mqtt-why-good-for-iot/index.html)基本的に Subscriber(受け手), Publisher(送り手), Broker(中継点)の3者で構成します。
![base.png](https://qiita-image-store.s3.amazonaws.com/0/172077/c0cd5daa-3e2f-ce35-
node.jsやnodebrewなどをインストールし.bash_profileで設定完了→次の日できなくなってたの巻/Mac OS X 10.15
正確には次の日ではなくターミナル落として再度開いたら、でしたが、、
mac OS 10.15での環境構築のお話です。
nodeやnodebrewをインストールし、bash_profileに環境設定pathを通します。homeの中の「.bash_profile」 ファイルには
“`shell
export PATH=/usr/local:$PATH
export PATH=$HOME/.nodebrew/current/bin:$PATH
“`
と記述済み。念のためターミナルでも“`shell
export PATH=$HOME/.nodebrew/current/bin:$PATH
“`と実施。
で、ターミナルで
node -v
などを実行してちゃんとバージョンが見れておりました。ーーーーーーーーー
が、時間を開けてもう一度ターミナルを開き、同じ操作をすると
「zsh: command not found: node」となります。“`shell
export PATH=$HOME/.nodebrew/current/bin:$PATH
“`をタ
[Node.js]docker-compose upで気楽に開発環境構築
# 前提
– 筆者はMac環境(試してないがWindowsでも動くと思う)
– dockerコマンドが使える状態
– npmコマンドが使える状態
– nodeコマンドが使える状態
– Dockerの基本的知識(イメージやコンテナの概念)を有する# 対象
– 環境構築を手っ取り早くしたい人
– Node.jsをdockerで動かしたい人# 環境
“`bash:bash
$ docker -v
Docker version 20.10.2, build 2291f61$ npm -v
6.14.5$ node -v
v13.11.0$ pwd
~/{project_name}
“`# ファイル構成
“`bash:project
{project_name}
├─ node_modules
| └─ …
├─ src
| └─ index.js
└─ docker-compose.yml
└─ Dockerfile
└─ package.json
└─ package-lock.json
“`
`node_modules`の中身は割
Azure IoT Hub に Node.js で subscribe
Ubuntu 20.10 で確認しました。
“`js:azure_subscribe.js
#! /usr/bin/node
// —————————————————————
// azure_subscribe.js
//
// Jan/19/2021
//
// —————————————————————
‘use strict’const { EventHubConsumerClient } = require(“@azure/event-hubs”);
const eventHubsCompatibleEndpoint = “sb://ihsuprodkwres017dednamespace.servicebus.windows.net/”
const eventHubsCompatiblePath = “iothub-ehub-iot-aa-344012-58f0095d47”
const
Express Tour #2 Express application generator
素早くExpressアプリケーションのスケルトンを作るために、express-generatorを使いましょう。
##検証環境
lubuntu 20.04
node.js 14.15.3## express-generator のインストール
まず下記コマンドでexpress-generatorをグローバルインストールします。
“`
$ npm install -g express-generator
“`## アプリの作成
次にアプリケーション用のディレクトリを作ってそこに移動しましょう。
“`
$ mkdir exg-test
$ cd exg-test
“`express -h コマンドを打つと各オプションについて確認できます。
“`
$ express -h
“`実行結果
“`
Usage: express [options] [dir]Options:
–version output the version number
-e, –ejs add ejs
Node.jsをWindows10にインストールして詰まったこと
#背景
AWSでNode.jsを触ってみようと思い立ち、まずはAWSの開発者ガイドに従って開発環境を構築してみた。
## 参考にしたURL
https://docs.aws.amazon.com/ja_jp/elasticbeanstalk/latest/dg/nodejs-devenv.html
https://qiita.com/taiponrock/items/9001ae194571feb63a5e#詰まったこと
Node.js&npmをインストールしたので、動作確認(npm start)するとエラーが出てしまった。“`
node:internal/modules/cjs/loader:928
throw err;Error: Cannot find module ‘http-errors’
Require stack:
– hoge\app.js
– hoge\bin\www
“`
##エラーの出た環境
OS:Windows10 Pro(バージョン2004 OSビルド19041.746)
node.jsインストーラ:node-v15.6.0-x64.