- 1. 【Node.js】JavaScriptで組み合わせ,順列を列挙する (npmモジュールあり)
- 2. Deno v1.0.0 がリリースされたということでマニュアルページを翻訳ッ?
- 3. Azure画像認識系の機能をいくつか試してみた(Face API / Custom Vision API / Computer Vision API)
- 4. electron-react-boilerplateのpackage.jsonを理解する
- 5. RaspberryPiで撮った写真をCustom Vision Serviceで画像判定してどの猫がいるかLINEに返す
- 6. Win10 + node.js + SQL Server 2019 Express で Tedious Request を少し試してみる
- 7. Slack SDKの公式ドキュメントのコードをそのまま利用したらサーバー障害で地獄を見た
- 8. 【Slack】レガシーテストトークンを使わずに絵文字を一括でエクスポートする
- 9. 【Node.js】node-mysqlをたった3行で操作する
- 10. 画像分析サイトを20分で立ち上げる
- 11. この解決策→nvm:854: no such file or directory: /Users/suin/.nvm/nvm-exec
- 12. Node.jsでDiscordBotを作る
- 13. 【axios】axiosを使用してLiquid APIを叩き、node.jsで実行
- 14. Netlify Functionsのローカル環境をyarn startで起動する設定
- 15. Promise async function result / return value VS then result / #javascript #node
- 16. Promise { } in Javascript / async await function / return value VS then result #node #javascript
- 17. Build an app using SQL Server 目次
- 18. GASでReactを実行するテンプレート
- 19. マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合
- 20. Puppeteerの上位互換?自動テストにPlaywrightを使ってみる
【Node.js】JavaScriptで組み合わせ,順列を列挙する (npmモジュールあり)
## JSで組み合わせと順列を列挙する標準メソッドはない
Rubyだと
“`Ruby:index.rb
array = [1,3,5];#組み合わせ
p array.combination(2).to_a # => [[1, 3], [1, 5], [3, 5]]#順列
p array.permutation(2).to_a # => [[1, 3], [1, 5], [3, 1], [3, 5], [5, 1], [5, 3]]“`
こんな感じで簡単に組み合わせ、順列の列挙ができるのにJavaScriptだとこれがない。**Mathオブジェクトのメソッドにあってもいい気がするんだけど。。。**
とにかくこのままだとpaizaで組み合わせ、順列の問題が出てくるたびにrubyで一から書き直す羽目になるので、JavaScriptで順列と組み合わせを列挙するコードを考え、ついでにrubyのコードより分かりやすく記述できるnpmモジュールも作りました。
# コード
これから載せるのは実際にモジュールを作る際に書いたコードなのでしっかり動くはずです。### 組み合わ
Deno v1.0.0 がリリースされたということでマニュアルページを翻訳ッ?
[Deno v1.0.0 がリリースされた](https://deno.land/v1) ということで、Deno Manual のページを翻訳してみました。
Qiita に翻訳記事を掲載するのは適さないのかもしれませんが、日本では一番エンジニアにリーチしそうに思いましたので Qiita に投稿させて頂きました。ベースにしたバージョンとコミットは以下のものになります。v1.0.0 のものではないですが、ご了承くださいmm
* version: v1.0.0-rc1
* commit: https://gith
Azure画像認識系の機能をいくつか試してみた(Face API / Custom Vision API / Computer Vision API)
私自身初めてMicrosoftのAzureを使ってみました。
ここでは、Azureを使う為にやることと、Face API / Custom Vision API / Computer Vision API の使い方や応用サンプルをまとめます。# 1.Microsoft Azureを使ってみる
初めて使う人のための手順を簡単にメモ。
## 1-1.outlook アドレスを取得する
持ってない場合は下記を参考にアドレスを取得する。
https://qiita.com/TomoyoH/items/fca3f49729d82d9884eb## 1-2.Microsoft Learnページにサインインする
下記ページにサインインする。
https://docs.microsoft.com/ja-jp/learn/## 1-3.Azureアカウントを作成する
下記ページを参考にAzureアカウントを作成する。
https://docs.microsoft.com/ja-jp/learn/modules/create-an-azure-account/3-exercise-creat
electron-react-boilerplateのpackage.jsonを理解する
electronのボイラープレートの中でもシェアが高く使い勝手の良いelectron-react-boilerplate
https://github.com/electron-react-boilerplate/electron-react-boilerplatetypescriptビルド環境からreact/redux react-routerなどのライブラリ群も入っていて尚且つテストツールやpre-commitまで入って至れり尽くせり。
そのまま使えばリッチな環境で開発が行えるが故に、定義ファイル群を理解せずに使いがち
あれこれディレクトリ構成を変えてるうちに動かなくなった なんてことにならないように一つ一つ読んで理解していこうと思う。この記事ではpackage.jsonに書かれている定義から読み解いていく。
# この記事で書かないこと
「electron-react-boilerplateの」package.jsonの機能的な部分だけに触れていくので以下のようなpackage.json自身のフィールドには触れない
repository, author contribu
RaspberryPiで撮った写真をCustom Vision Serviceで画像判定してどの猫がいるかLINEに返す
### はじめに
[LINEBotからRaspberryPiで写真を撮ってLINEにおくる!](https://qiita.com/3yaka4/items/ddeaaa746976327f236e#%E6%84%9F%E6%83%B3)で作ったLINEBotにAI機能を追加してどの猫がいるか教えてくれるものを作りました。
### 概要
LINEBotからRaspberryPiを動かして写真を撮り、Gyazoに送って画像判定で何が映っているかと撮影した写真をLINEに送るものです。
### 画像判定
画像判定は[Microsoft Custom Vision Service](https://docs.microsoft.com/ja-jp/learn/modules/classify-images
Win10 + node.js + SQL Server 2019 Express で Tedious Request を少し試してみる
Win10 + node.js + SQL Server 2019 Express で Tedious Request を少し試してみる
#目的
・[Tedious Request](https://tediousjs.github.io/tedious/api-request.html)
・[Package – mssql-tedious-int64](https://developer.aliyun.com/mirror/npm/package/mssql-tedious-int64)
を参考に少し試してみる(select count(*) & select ~ order by)
対象はWin10 + node.js -> Ubuntu 18.04 + SQL Server 2019 Express
#対象テーブル
データの並びは以下に準拠
郵便番号データの説明
対象データにユニークキーになりそうなデータが無いので
8桁のテキストを追加する“
Slack SDKの公式ドキュメントのコードをそのまま利用したらサーバー障害で地獄を見た
#Overview
みんな大好きSlack、私ももれなく処理結果等の通知で使用しています。
今まで何の不具合もなく使っていたはずなのですが、障害発生によってSlack SDKがやらかしてくれたので残しておきます。(今まで発生していたのを見逃していたのかもしれない)最初に言っておきますが、***絶対にドキュメント読むことなく公式ドキュメントのコードを使用することは避けてください。***
#Target reader
– Slack SDKを利用していて、Slack SDKのリトライポリシーを理解していない方。
#Prerequisite
– Node.jsのバージョンはGoogle Cloud Function(GCF)に依存し、現時点ではV10系とする。
– Node.jsの例ではあるが、各SDKでも`WebClient`を利用していることから恐らく同様と考えられる。
– Node.jsのソースコードはesmというパッケージを導入し、import/exportで記述している。
– `@slack/web-api`: “5.8.0”#Body
##何が起きたのか?
【Slack】レガシーテストトークンを使わずに絵文字を一括でエクスポートする
# はじめに(対処した問題)
Slackの新しいワークスペースを作成するに伴い,現在使用しているワークスペースから絵文字を一括でエクスポート&インポートしようと企てていました.
参考サイトを基にエクスポートしようとしたら,Slackのトークン作成のところで躓きました.参考にさせていただいたサイト↓
[Slackの絵文字(emoji)を一括エクスポート&インポートする](https://qiita.com/ne-peer/items/cbdef4f02b1bb6103e51)というのも,今まで紹介されているエクスポート方法ではSlackのレガシートークンが使われているものが主でした.
しかし,2020/5/5にレガシーテストトークンが作れなくなりました.(すでに作成されているレガシートークンは使用&再生成できますが,新規作成ができないようになっています.)
[The creation of legacy test tokens is deprecated](https://api.slack.com/changelog/2020-02-legacy-test-token-crea
【Node.js】node-mysqlをたった3行で操作する
#はじめにNode.jsでmysqlを使おうとした時、大体はnode-mysqlかpromise-mysqlを使うと思うのですが、どちらにしても大変面倒くさいのでnode-mysqlをラップしてmysqlを簡単に操作するためのコードを書いてみました。
結論から言うと、ネストをほぼ発生させずに処理を3行~にまとめる事が出来ました。モジュールにしたら保守とか色々面倒くさそうなのでコードのままここに上げておきます。promiseを返したかったり、足りない部分があった場合は各位で調整してください。
また動作確認はしていますが、下記コードを使用したことによる損害等は一切保証しませんので悪しからず。
~~「これコピペしても動かないんだけど!」とか言う輩はNode.js向いてないので辞めたほうが良いと思うよ~~#使い方
“`js:test.js
var test = require(“./DbAdapter”);
var hoge = new test();
hoge.getData(“select * from ?”,”hoge”,functio
画像分析サイトを20分で立ち上げる
IBM Cloud を使って、画像分析サイトを瞬時に立ち上げる方法をお伝えします。
デプロイまで15分前後でだいたいあげられてます。この内容を実行するには、IBM Cloudアカウントが必要になります。
ライトアカウント(クレカ登録不要、期限なし)で実行可能です。
[→登録はこちら]()**この手順で作成されるのは、次のサービスです。**
– Cloud Foundry Application Node.js
– Service(Continuous Delivery, Visual Recognition)
– Cloud Application(Visual Recognition)
– Toolchain
*ライトアカウントの方は、メモリの制限にかからないか事前に確認してください
この解決策→nvm:854: no such file or directory: /Users/suin/.nvm/nvm-exec
Homebrewでインストールしたnvmで下記のようなエラーが出た場合、
“`
nvm:854: no such file or directory: /Users/suin/.nvm/nvm-exec
“`シンボリックリンクを作り直すと治る:
“`bash
mkdir -p ~/.nvm
cd ~/.nvm
ln -s $(brew –prefix nvm)/nvm.sh
ln -s $(brew –prefix nvm)/nvm-exec
“`## バージョン情報
“`
nvm –version
0.35.3
“`
Node.jsでDiscordBotを作る
初の記事ですねはい。
今回は、Node.jsを使ってDiscordでBotを作っていこうと思います。インストールするもの、必要なもの
—
node.js(https://nodejs.org/ja/)
discord.js
VScode(エディタならVScodeである必要はありません)
discordBotのTOKEN
(当たり前だけどDiscordのアカウント)node.jsをインストールする
—
https://nodejs.org/ja/
ここへ行くとこのような画面になると思います![キャプチャ.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/636708/70474f37-d9e5-42f9-13cc-1b5942860818.png)
(2020/5/13現在の表示です。この画像とバージョンが変わっている可能性があります)
今回は、左の「推奨版」でいいかと思います
するとインストーラーがダウンロードされると思うので、実行しましょう
(インストーラーでダウンロードする手順はそこ
【axios】axiosを使用してLiquid APIを叩き、node.jsで実行
初学者ですが自分のメモの意も含め、誰かのお役に立てたらと思い執筆します。
タイトルの通りaxiosを使用して、APIを叩き、node.jsで実行してBTC/JPYをコンソール上に出力します。
今回は認証不要なPublic APIを使用。
補足情報やアドバイスがあれば、ぜひコメントいただければ幸いです。##参考元
Liquid API ドキュメント:https://developers.liquid.com/
https://kennejs.com/entry/2019/01/23/001715
https://qiita.com/shisama/items/61cdcc09dc69fd8d3127##環境
macOS Mojave 10.14.6##事前準備
node.jsのインストール
https://qiita.com/oreo3@github/items/622fd6a09d5c1593fee4yarnのインストール
https://classic.yarnpkg.com/ja/docs/install/#mac-stableaxiosのインストール
http
Netlify Functionsのローカル環境をyarn startで起動する設定
Netlify Functionsの開発、検証用としてローカルでの実行環境が用意されている。netlify-lambdaパッケージをローカルにインストールしている場合、以下のコマンドを実行することで`http://localhost:9000/.netlify/functions/ファンクション名`にアクセスできるようになる。
“`sh
% npx netlify-lambda serve src/lambda
“`通常は、ファンクションだけではなく、webページとあわせて起動する必要がある。たとえばwebページをVue.jsで開発している場合、webページは以下のコマンドで起動する。
“`sh
% vue-cli-service serve
“`これらをpackage.jsonに登録することで、npmあるいはyarnコマンドで実行できるようになる。さきにファンクションの環境を起動して、しばらくしてからwebページを起動しないと、ファンクションが起動できない。startにwebページの起動、prestartにファンクションの起動と3秒の待機(sleep 3)を設定す
Promise async function result / return value VS then result / #javascript #node
“`js
async function f() {
return “XXX”;
}const result = f()
console.log(result)
// Promise { ‘XXX’ }f().then(result => {
console.log(result)
});
// XXX“`
# Original by Github issue
https://github.com/YumaInaura/YumaInaura/issues/3164
Promise { } in Javascript / async await function / return value VS then result #node #javascript
非同期の関数 ( async ) では返り値が ` Promise` となるので、直接返り値を利用できない
then で結果が出たことを待ち受けて、その中で関数の返り値を利用する“`js
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}async function f() {
await sleep(1000);
return “XXX”;
}const result = f()
console.log(result)
// Promise {} f().then(result => {
console.log(result)
});
// XXX“`
# Original by Github issue
https://github.com/YumaInaura/YumaInaura/issues/3163
Build an app using SQL Server 目次
# はじめに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/348116/03ede4a6-fec4-b30f-6a73-24ea953d00b9.png)
今回は、SQL Server を使ったアプリを開発しようということで、[Building an app using SQL Server][Link1] の内容をベースに、SQL Server を使ったアプリ開発関連の記事を一元管理できるように目次ページを作成しました。
※ページは、随時更新予定です。# C#
– [Create C# apps using SQL Server on Windows][Qiita-C#Win]
—
[Qiita-C#Win]:https://qiita.com/ymasaoka/items/944e8a5f1987cc9e0d37[Link1]:https://sqlchoice.azurewebsites.net/en-us/sql-server/developer-get-
GASでReactを実行するテンプレート
## はじめに
最近Google Apps ScriptでWebアプリを作ることが多いです。無料で作れるWebサーバー的用途で使えるので便利なんですよね。ただGoogle Apps Scriptで構築する際に諸々制限も発生します。これを回避したテンプレートの開発環境を公開します。## GASでReactを使う制限と対策
– WebpackでバンドルしたHTMLをUpload出来ない制限はこれにつきます。普通にGoogle Claspでアップロードすると重すぎてブラウザが固まっておちるのと何とかWebアプリケーションとして公開しても全く動きません。よってWebpackバンドル時に各々node_moduesをバンドルしないようにしてReactがうまく動くような環境にします。
## 前提
– Google ClaspでGASの開発を既に行なっている方を対象とします## 開発環境構成
– Node.js 13.13.0
– Visual Studio Code
– 利用モジュールは以下
–
“`
{
“name”: “web-app-template”,
“main”:
マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合
# マイクロサービス?(AWS Lambda)のログの運用監視する際のツール ※Node.jsの場合
便利なツールは以下の通り
* DAZN Lambda Powertools
関連性のあるLambda同士を紐づけるIDをログに出力してくれます。
LambdaからLambdaの呼び出しが複雑になる場合に、関連性のあるログを一括して検索した場合に活用できます。参考URL:https://dev.classmethod.jp/articles/dazn-lambda-powertools/
* AWS X-Ray
AWSのサービス(Lambdaもできる)の関連性を可視化でき、分析もできます。
※画面イメージ的には、JP1とか、Jenkinsのパイプライン的な感じ。Lambdaのジョブフローが見える感じ。
※内部的には、上記で紹介した「DAZN Lambda Powertools」と同じようなことしてます。参考URL:https://docs.aws.amazon.com/xray/index.html
DAZN Lambda Powertools&AWS X-Rayどち
Puppeteerの上位互換?自動テストにPlaywrightを使ってみる
# はじめに
みなさんはE2Eテストを行う時にはライブラリに何を使用していますでしょうか?
僕は普段Google謹製のPuppeteerを利用しているのですが、ちょっと前に話題になってから常に動向を気にしていたPlaywrightが最近バージョン1.0.0のメジャーリリースが行われたということもあって、「これは実際に触ってみたい!」と思い触ってみましたので、備忘録としてここに記そうと思います。# Playwrightとは
PlaywrightとはMicrosoftが提供しているChrome、Safari、Firefoxに対して、CLI上で実行できるNodeのライブラリです。
かなり簡単な記述で対象ページに対してテストを実施することができます。
後述するコードを見てもらえるとすぐわかるかもしれませんがPuppeteerを知っている人はほぼ同じなので読みやすいかもしれません。
もともとPuppeteerを開発していたGoogleの開発チームがMicrosoftに移動して作成したライブラリのようなので、非常に似ているのかもしれないです。公式github: [Playwright](h