- 1. fondesk のメンション機能を Slack Bolt Framework を使っていい感じにした話
- 2. Node.jsとnpmとは?
- 3. パソコン初心者がおうむ返しlinebotを作ってみた話
- 4. 12月なのでクリスマスソングにノるテンアゲなキーボードliteを実装!【WebHID API】 #iotlt
- 5. GitHub Actions で Firebase の Deploy をする
- 6. Backstageを完全に理解した
- 7. Steinの仕様メモ 条件にハマる行が複数あっても1行だけ対応。どうやらLookUpみたい
- 8. User-Agentと私
- 9. 【覚書】YouTube Data API で特定のチャンネルの動画情報を全取得
- 10. Ethereum(ブロックチェーン)のスマートコントラクトの処理履歴を取得する方法
- 11. Flash Advent Calendar 1日目 – JavaScriptでの開発環境の構築 –
- 12. 時間起動を試作。ドラクエの宿屋の曲をObnizの圧電スピーカーで流してみた。
- 13. 【TypeScript】ObjectのKeyに変数でアクセスする
- 14. 俺のNode.jsでTop-Level awaitが動かない!!なぜだ!?
- 15. Node.jsでOpenCVを使おう! 〜インストール編〜
- 16. そろそろNode.js 14へ移行せな (新機能まとめ)
- 17. SteinでSpreadSheetからデータを複数条件(AND)でとって動的にメッセージを作成
- 18. node.jsとserverlessを使ってlambdaでアプリを動かす -複数の関数をlambdaにアップする-
- 19. 電車好きの子供からの猛攻に耐える妻を救うLINE Botを作る
- 20. node.jsとserverlessでローカル環境のコードをlambdaにアップする
fondesk のメンション機能を Slack Bolt Framework を使っていい感じにした話
# はじめに
この記事は前回取材してもらった記事 [社内部活動でfondeskのカスタマイズ版とSlackチャンネル「TLけいさつ」を作った僕の野望](https://note.com/tambourine_75/n/n2163b752786e) から技術的な要素をもっと細かく書いたものです# 使用技術
– 言語
– NodeJS
– TypeScript
– FrameWork
– [Slack Bolt for JS](https://github.com/SlackAPI/bolt-js)
– PaaS
– [Goole App Engine a.k.a. GAE](https://cloud.google.com/appengine/?hl=ja&utm_source=google&utm_medium=cpc&utm_campaign=japac-JP-all-ja-dr-bkws-all-super-trial-e-dr-1009137&utm_content=text-ad-none-none-DEV_c-CRE_31471231
Node.jsとnpmとは?
Nodo.jsは『サーバーサイドのJavaScript』
npm(Node Package Manager)はNode.jsのパッケージを管理するもの。
パソコン初心者がおうむ返しlinebotを作ってみた話
##はじめに
これは
この記事はこちらの記事を参考してかいています。
詳しくはこちらまでhttps://qiita.com/inoue2002/items/a87df2b520f8b6e37f42
##目次
1 環境構築(必要なものをダウンロード)
>ngrok
node.js
git
VScode##環境構築(ngrok)
[ngrok](https://ngrok.com/download)をダウンロードします。
↑こちらからサイトに飛べます。
![5DC24C03-CAE7-4AE0-999D-3AAC0D000A2A.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/763535/d726b334-f324-fbef-b775-5788fd673c41.png)
下の方にこちらがでてきます。あとは解凍するだけ。![6F4250F8-367F-4386-952D-6A3065A0EAC8_4_5005_c.jpeg](https://qiita-image-store.s3.ap-northe
12月なのでクリスマスソングにノるテンアゲなキーボードliteを実装!【WebHID API】 #iotlt
この記事は[IoTLTアドベントカレンダー1日目](https://qiita.com/advent-calendar/2020/iotlt)です!(先に断っておきますが自作キーボード話ではないです) 先日のIoTLT vol69で話したネタをアップデートした感じです。
関係ないけどついに、この季節がやってきましたか〜 2020年めち> IoTLT vol69 https://iotlt.connpass.com/event/192582/
## テンション爆上がりなキーボードがこちら
クリスマスソングに合わせてキーボードを光らせる! #iotlt の GitHub Actions で Firebase の Deploy をする
# はじめに
こんにちは!
この記事は GameWith アドベントカレンダーの2日目の記事になります!
https://qiita.com/advent-calendar/2020/gamewith
# GitHub Actions
https://github.co.jp/features/actions
GitHub Actions は GitHub の CI/CD サービスです。
GitHub Actions にはマーケットプレイスがあり、他の人が作成した便利な Action が利用できます。
https://github.com/marketplace/actions/github-action-for-firebase
Firebase の Deploy は上記 Action を利用すれば簡単にできます。
“`yml
name: Build and Deploy
on:
push:
branches:
– masterjobs:
build_and_deploy:
name: Build&Deploy
rBackstageを完全に理解した
# はじめに
[Ateam Group Manager & Specialist Advent Calendar 2020](https://qiita.com/advent-calendar/2020/ateam)の2日目は株式会社エイチームライフスタイル 執行役員CTOの @tsutorm がお送りします。例年マニアックなネタで好評を頂いておりますので、今年もマイペースで行こうと思います。 🙂
一応 完全に理解した[^1] はネタです。
# この記事の概要
* エンジニア向けポータル [Backstage](https://backstage.io/) をうまく使って社内外サービスの “あれどこ / これ誰が見てるの / 詳しいのだれ” を減らせそうだよ
* [Spotify社が作ったOSS](https://github.com/backstage/backstage)でpluggableなreact-appとして見てもとっても勉強になるよ# Backstageとは
![Backstage logo](https://github.com/backsta
Steinの仕様メモ 条件にハマる行が複数あっても1行だけ対応。どうやらLookUpみたい
削除するメソッド
今日の
“`javascript
await store
.delete(tranSheet, {
search: { date: today, user_id: event.source.userId }
})
.then(res => {
console.log(res);
});“`
削除前
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737206/97205d6e-9fcf-f7d2-d112-d0269474bf75.png)削除後
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/737206/112c8ee7-fd33-0748-6efd-d8d2894ac427.png)一番上が消えただけ!!笑
同じ日に同じIDの人が参加することはないから、
仕様上は大丈夫だけど、SQLのDELETE文とは違うということを意識して
User-Agentと私
この記事は、[mediba Advent Calendar 2020](https://qiita.com/advent-calendar/2020/mediba) 2日目です。
[auスマートパス](https://pass.auone.jp/home)のバックエンドエンジニア(BE)、アーキテクト担当をしている北田です。
みんな大好き[User-Agent(以下UA)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent)を通して今年を振り返り、来年を展望してみようと思います。## User-Agentは便利
auスマートパスでは、auブランドで提供している多彩な端末(以下デバイス)をサポートしています。
– 参考: [Android\(TM\) 技術情報 \| 開発者向け技術情報 \| au](https://www.au.com/developer/android/)
そのため、開発プロジェクトではデバイス要件を必ず確認するようにし、デバイス種別も定義していす。
これまでは、Web
【覚書】YouTube Data API で特定のチャンネルの動画情報を全取得
## 50 個まではこれでいける
“`js
const API_KEY = “”;const getYouTube = async (api, query, cooldown = 3000) => {
await new Promise((r) => setTimeout(r, cooldown));
return await (
await fetch(
`https://www.googleapis.com/youtube/v3/${api}${Object.entries(
query
).reduce((p, [k, v]) => `${p}&${k}=${v}`, `?key=${API_KEY}`)}`
)
).json();
};const getVideos = async (channelId, pageToken = “”) => {
const playlistId = (
await getYouTube(“channels”, {
part: “conten
Ethereum(ブロックチェーン)のスマートコントラクトの処理履歴を取得する方法
# はじめに
この記事では、Ethereumのスマートコントラクトの実行結果の履歴を取得する方法について解説していこうと思います。自身でdApps(スマートコントラクトを活用したアプリケーション)を作る場合は、スマートコントラクトの処理の状態を確認するために、スマートコントラクトの実行結果を監視したりします。それ以外にも、他者が作ったdAppsの利用状況を把握するといった目的で、スマートコントラクトの実行結果の履歴を取得することもできます。
今回は、dAppsの利用状況を把握するケースを例に解説していきます。
# 環境
この記事では、下記を利用します。
– 言語:Javascript
– 実行環境:Node.js
– 接続先ブロックチェーンノード:Infura# 利用状況を確認するdApps
今回はRaribleというdAppsを対象にスマートコントラクトの実行結果を取得します。Raribleは、デジタルアート(NFT)を売買できるdAppsで、2020年12月現在、利用量で世界トップクラスのdAppsです。
https://rarible.com/
![スクリーンショット
Flash Advent Calendar 1日目 – JavaScriptでの開発環境の構築 –
当時は`grunt`が主流で、`gulp`が出始めた頃でした。
JSで本格的な開発をするにあたってどちらで進めるか悩んだのですが
折角だから新しい`gulp`を使ってみようという安易な理由で`gulp`を選びましたwまた、当時はJSでテストを全然書いてなかったので
デグレに苦しめられていて。。。この機会にテスト駆動で開発してみようと思ったのも`gulp`を選んだ理由の一つでもあります。# 目次
1. Node.jsを準備する
2. gulp & karmaを準備する# 1 Node.jsを準備する
nvmでNode.jsは管理する
※バージョンが古いですが、2015年位のお話なので、悪しからず“`linux
cd ~
git clone https://github.com/creationix/nvm.git ~/.nvm
source ~/.nvm/nvm.sh
nvm install v8.9.3
nvm alias default v8.9.3
“`
自分のhomeディレクトリにnvmをcloneして起動
macを起動した時に自動でNode.jsが起動す
時間起動を試作。ドラクエの宿屋の曲をObnizの圧電スピーカーで流してみた。
Obnizの時間起動のテストとして、ドラクエの宿屋の曲を圧電スピーカーで流してみた。起動したい時間をDB登録しておいて、その時間になったら曲を流す。(曲のチョイスはただの遊び。あと、音飛びはただのテストなので勘弁して。)
#obniz #protoout
時間起動の試作で、ドラクエの宿屋の曲を圧電スピーカーで。(テストなので音飛びは勘弁…) pic.twitter.com/HtZ2sgG4BB
【TypeScript】ObjectのKeyに変数でアクセスする
# 1. はじめに
こんにちは!みなさま楽しいプログラミンライフをお過ごしでしょうか?
最近TypeScriptでのReact開発を勉強しています。**ObjectのKeyに変数でアクセス**しようとしたときに、
**型付けのところでハマったポイントがあったので**、備忘録として残しておきたいと思います。| | Version |
|:-:|:-:|
|node.js|14.12.0|
|yarn|1.22.7|
|TypeScript|3.8.3|# 2. やりたいこと
以下のような、
object2のcategoryのvalueと、object1のkeyが一致するvalueの配列に、object2をまるっとpushしたい。object3のようになるイメージ。“`javascript
const object1 = {
category1: [],
category2: []
}const object2 = {
id: 1,
title: “nazeudon”,
category: “category1”,
}const object
俺のNode.jsでTop-Level awaitが動かない!!なぜだ!?
# 事象
俺の環境でTop-Level awaitが動かない!!なぜだ!?
# 原因
`Top-Level await`は`ES Module`の機能で`Common JS`は未対応なので動かない。> The await keyword may be used in the top level (outside of async functions) within modules as per the ECMAScript Top-Level await proposal.
訳:awaitキーワードは、ECMAScriptトップレベルawaitプロポーザルに従って、モジュール内のトップレベル(非同期関数の外部)で使用できます。
[出典:Node.js v15.3.0 Documentation
](https://nodejs.org/api/esm.html#esm_top_level_await)# Node.jsのバージョン
v14.15.1
# サンプルコード
“`
function wait(time) {
return new Promise
Node.jsでOpenCVを使おう! 〜インストール編〜
Node.js それはJavascriptであんな事やこんな事ができる素敵なプラットフォームですよね!
最近お仕事で「Node.jsでカメラ画像をとって、WebRTCに載せて発信する」という案件が出てきましたしかし、意外にNode.jsからカメラ画像を取得する用途に需要がないらしく、しっかり資料がまとまっていて扱いやすそうだったのがOpenCVくらいでした
それでも導入に詰まってしまったので備忘録がてらまとめていこうと思います# Node.jsでカメラ画像を取得する時の選択肢
あまり選択肢的には多くありません。代表格として扱われている印象の強かった2つをあげておきます。– [OpenCV4Nodejs](https://www.npmjs.com/package/opencv4nodejs)
– [node-webcam](https://www.npmjs.com/package/node-webcam)タイトルにあるとおり、今回はOpenCVラッパーであるOpenCV4Nodejsを使用します。
# 準備/必要な物
インストール前に何が必要かを確認しましょう!
こ
そろそろNode.js 14へ移行せな (新機能まとめ)
# はじめに
* 2020/4/22にNode.js14がリリースされました。
* また、2020/10/27にNode.js14のActive LTSが開始され、2020/11/30にNode.js12のMaintenance LTSに移った為、そろそろ切り替え時かなということで、この記事を残します。[参考: Node公式リリース時期](https://nodejs.org/en/about/releases/)
![スクリーンショット 2020-11-30 13.03.47.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/563635/3fc0ca82-7c67-ad89-09be-178aeeef12a4.png)## LTSってなんだ??
LTSとは、[Long Term Support]の略を指し、長期の保守運用が約束されているバージョンになります。### Current LTS
* 最新版だが、安定性を約束しないことで機能追加を盛り込んだバージョン### Active LTS
SteinでSpreadSheetからデータを複数条件(AND)でとって動的にメッセージを作成
#「今日飲みに行きたい人」を募るLINE Botを作っています
タイトルを汎用的なものに言い換えると、
__「DBからデータを抽出して、配列を作るよ。」__
です。飲みに行く人を誘いにくい状態が続きますが、
もう少し落ち着いたら、対策はしたうえで飲みに行くこともありそうですね。
社内など、__知らない人もある程度混じっているコミュニティ__で、
「今日飲みたい」と思ったときに誘えるLINE Botを作っています。こんなサービスを実際に__誰かに動くところを見ていただきたく__て、
__使う人が「飲みに行きたい」とやったら、その人の名前(あらかじめ登録した)が出る。__
という基本部分だけとりあえず動的に動くようにしました。今までは、固定の人に対して送るようにしていましたが、
実際に自分の名前が出たほうが楽し
node.jsとserverlessを使ってlambdaでアプリを動かす -複数の関数をlambdaにアップする-
## 前回までのあらすじ
[node.jsとserverlessでローカル環境のコードをlambdaにアップできましたとさ](https://qiita.com/udonnamerou/private/734a35bf94af4dcdecbb)## 目的
ローカル環境で作成した複数の関数をLambdaにアップして動かしたい## 実践
#### 環境
node.js v12.18.2#### ディレクトリ構成
“`
ls -a
. .gitignore node_modules package.json
.. handler.js package-lock.json serverless.yml
“`#### package.jsonの確認
“`
{
“name”: “application-no-namae-desu”,
“version”: “1.0.0”,
“descriptio
電車好きの子供からの猛攻に耐える妻を救うLINE Botを作る
こちらの記事に発想を得て、自分でもLINE Botを作った。
誰が使うかわからないけど、膝のレントゲン写真を送ったら、その膝がどの程度痛んでいるのか教えてくれるラインbotを作ってみた
https://qiita.com/Teru_3/items/80cecd138860fbd0c924Qiitaで公開していただいたことにとても感謝いたします。
# 仕様
「LINEから電車の画像(写真でも絵でも)を送ると、その系統・形式を教えてくれる」という、至ってシンプルなもの。うちの子供が電車をとてもだーーい好きなのだが、普段から
「(駅のホームに入ってきたのを指しながら)あの電車なーんだ?」
とか
「(自分が描いた絵を見せながら)何系描いたかわかる?」
といった質問を、(子供にとっては残念なことだが)電車に全く興味のないママに対して飽きもせず浴びせまくっており、ママがほとほと疲れている・・・というのを科学の力で助けてあげよう!ということで手がけてみた。
なお
node.jsとserverlessでローカル環境のコードをlambdaにアップする
## はじめに
node.jsで作成したアプリをサーバーレスで動かしたい。## 環境
node.js v12.18.2## Lambda関数の作成
#### ディレクトリ作成
“`
mkdir serverless-node-sample
cd serverless-node-sample
“`#### npmの初期化
“`
npm init
“`#### Serverlessのインストール
“`
npm install serverless –save
“`#### Serverlessの動作確認
バージョン確認“`
sls -v
“`以下のように表示されればOK
“`
Framework Core: 2.13.0 (local)
Plugin: 4.1.2
SDK: 2.3.2
Components: 3.4.2
“`#### Serverlessのテンプレート生成
今回はnode.jsを使うので `aws-nodejs`を使用、他にも[pythonやruby用のテンプレート](https://www.serverless