- 1. Hello World!
- 1.0.1. 複数のサーバーでobnizが動いてしまっている時
- 1.0.2. JavaScriptのコードをobnizノードで使えるように書き換える
- 1.0.3. カニ🦀になって絵日記書くSNSつくったので技術まとめ
- 1.0.4. npm run(npm scripts)を経由すると200msから300msぐらい遅いので対策する
- 1.0.5. docker + nextjs + React + typescriptで開発環境を整える
- 1.0.6. Node-REDでobnizが繋がらない時のトラブルシューティング
- 1.0.7. obniz x Node-REDで停止処理
- 1.0.8. Node.js 日時のフォーマット・妥当性チェック
- 1.0.9. nodebrewがinstallされているのにnode -vでエラーになる時
- 1.0.10. Mac Book Proでnodebrew installをしたらcurl: (23)エラーになった時
- 1.0.11. npm-check-updatesで簡単npm package管理生活
- 1.0.12. Windows 11 に Node.js をインストール
- 1.0.13. 【Nodo.js】Macでnpmが使えなかった時の対処法
- 1.0.14. Expressの起動方法(npm run ってなに?)
- 1.0.15. ExpressでWebサーバーを立ててみる
- 1.0.16. Node.jsの対話環境
- 1.0.17. Node.jsを私用パソコンで始めてみる
symbol-sdk@3.2.1でオフラインでアグリゲートコンプリートを完成させる
# はじめに
今回は、オフラインで、自分と他者の署名が必要なアグリゲートコンプリートトランザクションを作成してみようと思います。
登場人物はこんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172833/95bee689-05a2-7e17-0ddd-519e8d8e88f1.png)
この場合、アリスとボブの署名が要ります。
今回のシナリオでは、アリスがトランザクションを作成してボブに渡し、ボブが連署してネットワークに送信するような感じでやっていきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172833/c40d92bc-61cb-effa-2008-4d84f4161c30.png)
アリスからボブへ渡すデータの形式は、16進数文字列のトランザクションデータにします。
![image.png](https://qiita-image-store.
Goでwebアプリケーションを作成してみよう! ~サーバーの立ち上げ~
この記事では4回に分けてwebアプリケーションの作り方を説明していく
第1回
[ webアプリケーションの構成、仕組み](https://qiita.com/Yutosaki/items/0c6f9349b427d4aee08e “第1回”)
第2回
サーバー立ち上げ(この記事)
第3回
フロントエンドの実装
第4回
バックエンドの実装実際に作ったアプリケーション
https://github.com/Yutosaki/WiFiRader
# やること
今回のではサーバーの立ち上げ、アプリケーションサーバー(Go)に情報を送る。そして、以下のような画面構成にする。これらについて解説していく。![今回作成した画像](https://github.com/Yutosaki/WiFiRader/assets/129819607/ace28799-3184-4718-8f1d-dc611beeeb6e “今回作成した画像”)
# 実際に書いていく
まずサーバーの設定と立ち上げ、その後、地図の初期化やバックエンドの情報を送るためのコードを書いていく。では、
Node.jsによるHTTPサーバの基本
# 完成系
“`main.js
“use strict”;const http = require(“http”);
const port = 3000;const server = http.createServer((request, response) => {
response.writeHead(200, {
“Content-Type”: “text/html”
});const responseMessage = “
Hello World!
“;
response.write(responseMessage);
response.end();
console.log(`Sent a response : ${responseMessage}`);
});server.listen(port);
console.log(`The server has started and is listening on port number: ${port}`);
console.log(`
複数のサーバーでobnizが動いてしまっている時
Node-REDでobnizを使っていると、obnizがこんな感じでconnecting…から動かないってことがたまにあります。
> ![スクリーンショット 2024-05-11 22.52.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/c133058c-8f59-15f8-9263-b19c8defa417.png “スクリーンショット 2024-05-11 22.52.29.png”)
他のサーバーを見てみるとつながっていることが分かりました。
> ![スクリーンショット 2024-05-11 22.52.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/fde3a773-7b8c-7dc4-1b2a-ad06d6e3e5b0.png “スクリーンショット 2024-05-11 22.52.32.png”)
これをどうやって見つけるか。
## obnizのコンソールか
JavaScriptのコードをobnizノードで使えるように書き換える
Node-REDのobnizノードの使い方は少しクセがあるのでクセを把握しておきましょう。
## obnizノードの使い方概要
– 設定ノードという裏側のノードがいて、ここでピンアサイン(各ピンに何を設定するのか)などの初期化処理を記述すること
– 表側に見えて使えるノードは`obniz repeatノード`と`obniz functionノード`の2種類
– 2種類のノードは使い分けが必要で、それぞれのノードの中にJavaScriptノードを記載する
– センサーなどの数値を常に取得したいインプット系の処理はobniz repeatノードを使う
– LEDやスピーカーなどアクチュエーターやインジケーターを操作したいアウトプット系の場合は`obniz functionノード`を利用といった流れです。
## 書き換え例
### 例1. スピーカーの利用
例えば以下のようなスピーカーを扱うコードがあった場合
#### 元のスピーカー利用のコード
[公式ドキュメント](https://docs.obniz.com/ja/sdk/parts/Speaker/README
カニ🦀になって絵日記書くSNSつくったので技術まとめ
# カニ🦀になって絵日記書くSNS作ったので技術まとめ
## はじめに
タイトル通りのSNS作りました🦀
みなさまは、slackなんかで「たしかに」の意味合いで🦀のスタンプでリアクションとったりしませんか?そんな、エンジニアのみなさまに馴染みのあるカニのサービスをリリースしました!
– サービスURL: https://diary-crab.com
– 気が早いけど公式インスタは[こちら](https://www.instagram.com/diary_crab?igsh=MW9xd2R2ZG9kNmV2dw%3D%3D&utm_source=qr)
– 怪しい人じゃないことが分かるようにという意図もありますどんなサービスか少しでも気になっていただけたら是非インスタ覗いてみてください🦀
## 技術まとめ
本サービスで活躍した技術たち🦀– バックエンド
– TypeScript, Node.js, Express, prisma
– フロントエンド
– TypeScript, Next.js, tailwindcss
– インフラ
– AWS Copilot
npm run(npm scripts)を経由すると200msから300msぐらい遅いので対策する
“`package.json
“scripts”: {
“sleep”: “sleep 1”,
“`“`sh:npm run sleep
real 0m1.365s
user 0m0.238s
sys 0m0.066s
“`“`sh: sleep 1
real 0m1.008s
user 0m0.001s
sys 0m0.004s
“`環境によりますが200msから300ms程度オーバーヘッドが増えます
開発者体験のほか、CI/CDにも影響が出てきます。塵も積もればコストとなります気になる方は自分たちのscriptsで検証してみましょう
# 対策
npm scriptsを使わず、直接実行しましょう。
単純なコマンドならscriptsに記述したものを直接実行する。
npmでインストールしたパッケージをcliで使う場合、
`./node_modules/.bin/各種パッケージ`で実行できます
もしくは`./node_modules/.bin`にPATHを通しましょうもちろん高速化と引き換えに運用管理面で手間が増えるのでトレードオフです
docker + nextjs + React + typescriptで開発環境を整える
# 開発環境を作る
## dockerでnodeの開発環境を作成する
### 任意のフォルダの以下のsrcディレクトリとdocker-compose.yamlを作成する
#### 以下の作業はWindows上の作業
—
├ src/
├ docker-compose.yaml“`docker-compose.yaml
version: ‘3’services:
app:
image: node:lts # バージョン指定も可能 ex. node:12.16.1
container_name: nextExpressTest # コンテナ名は任意
environment:
– DEBUG=app:*
tty: true
# ホスト側のポート:コンテナのポート
ports:
– ‘3000:3000’
# ホスト側のsrcをコンテナのappにマウント
volumes:
– ./src:/app
working_dir: “/app
Node-REDでobnizが繋がらない時のトラブルシューティング
こんにちは、のびすけです。
某授業でNode-REDからobnizを制御しましたが、Node-REDでプログラムが動いてるはずなのにobnizが動いていない、逆にNode-REDでプログラムを切っているはずなのにobnizが稼働しっぱなしになっている。といった事象が多発してしまったのでトラブルシューティング記事を書いておきます。
> ![スクリーンショット 2024-05-11 1.29.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/35387/cd5fe0d0-9c9c-2aba-117c-cef349516fe5.png “スクリーンショット 2024-05-11 1.29.54.png”)
## おさらい: obnizが起動しているかどうか
前提として、obnizはプログラムが起動して(しまって)いるときと、起動していない(正常に処理を止めらている)ときとでディスプレイの表示が違います。
– プログラムは起動していないけどWi-Fiには接続できている状態
これが通常に他のプロ
obniz x Node-REDで停止処理
obnizをNode.jsで使う時は、毎回プログラムを起動してシャットダウンしてが行われますが、Node-REDの場合Node.jsのプロセスは起動し続ける仕様なため、プログラムの起動ではなく接続の解除を行って停止を行うという仕様になっています。
obnizノードを使ってプログラムの接続解除に使えるフローを置いておきます。
– コピペ参照用
“`json
[{“id”:”cb1d6d3a.017e1″,”type”:”debug”,”z”:”b3ffc87e7885414e”,”name”:””,”active”:true,”tosidebar”:true,”console”:false,”tostatus”:false,”complete”:”payload”,”targetType”:”msg”,”statusVal”:””,”statusType”:”auto”,”x”:490,”y”:320,”wires”:[]},{“id”:”11a346f0.5a4c19″,”type”:”obniz-function”,”z”:”b3ffc87e7885414e”,”obni
Node.js 日時のフォーマット・妥当性チェック
# 日時の妥当性チェックしなくていいの?
ユーザーから送られてきたリクエストボディの日時のフォーマットを正規表現を用いてチェックする機能を追加したときに頂いたコメント。
確かに正規表現だけだと`2月30日`を`false`にすることやうるう年の判断が出来ない。
機能を追加しなければ!と調べた結果を忘れないようにまとめます。### 前提
今回のリクエストボディは`YYYY/MM/DD HH:mm`の形式で送られてきます。
そのため日付のフォーマットが`/`区切りになっているかの判断も重要になってきます。
※今回実装している機能がリクエストボディの日付を外部APIに連携し、外部APIの指定で`/`区切りとなっているためリクエスト時点でこのフォーマットにして欲しいためフォーマットも固定にしております。### Moment.isValid()
まず最初に見つけた方法は、`moment`パッケージに規定されているisValid関数を用いた方法。
参考にさせていただいた[stackOverflow](https://ja.stackoverflow.com/questions/6841
nodebrewがinstallされているのにnode -vでエラーになる時
# はじめに
“`
$ node -v
“`と打ったら
“`
zsh: command not found: node
“`となった…。
“`
$ nodebrew -vnodebrew 1.2.0
〜
〜
“`
nodebrewは入っているのに。。# PCスペック
| 項目 | 情報 |
| — | — |
| OS | macOS Sonoma 14.4.1 |
| ハードウェア | MacBook Pro 16inc 2023 |
| プロセッサ | Apple M2 pro |
| メモリ | 32GB |# 解決法
### patyを通せばOKです。
“`
$ cat ~/.zshrc
“`
と実行してみましょう。
中身が見えるはずです。以下を実行して設定を追記します。
“`
$ echo ‘export PATH=$HOME/.nodebrew/current/bin:$PATH’ >> ~/.zshrc
$ source ~/.zshrc
“`“`
$ node -vv21.5.0
“`
Mac Book Proでnodebrew installをしたらcurl: (23)エラーになった時
# はじめに
“`
$ nodebrew install v21.5.0
“`コマンドを打ったらエラーになった。
その解消方法を紹介する。# PCスペック
| 項目 | 情報 |
| — | — |
| OS | macOS Sonoma 14.4.1 |
| ハードウェア | MacBook Pro 16inc 2023 |
| プロセッサ | Apple M2 pro |
| メモリ | 32GB |“`
$ nodebrew install v21.5.0
“`実行すると
“`
Fetching: https://nodejs.org/dist/v21.5.0/node-v21.5.0-darwin-arm64.tar.gz
Warning: Failed to open the file
Warning: /Users/{ユーザーID}/.nodebrew/src/v21.5.0/node-v21.5.0-darwin-arm64.tar.gz:
Warning: No such file or directory
curl: (
npm-check-updatesで簡単npm package管理生活
# はじめに
package.jsonに羅列されたnpm packageのバージョンを新しくしたい時に使用する**npm-check-updates**。
意外とやりたいタイミング多そうなユースケースの解説の記事がすぐ見つからなかったので、自分用メモ的に。
# 全ライブラリの更新
一番基本の使い方。
グローバルインストールしたくないのでnpxから。“`bash
# チェック
npx -p npm-check-updates -c “ncu”# 更新
npx -p npm-check-updates -c “ncu -u”
“`# 特定ライブラリの指定
“`bash
npx -p npm-check-updates -c “ncu {パッケージ名}”
# e.g.
npx -p npm-check-updates -c “ncu prettier”
“`# wildcardによる指定
アスタリスクを使用してwildcard指定が可能です。
“`bash
# e.g.
npx -p npm-check-updates -c “ncu aws
Windows 11 に Node.js をインストール
# Windows 11 に Node.js をインストールしよう
## 目次
– [ダウンロード](#nodejsをダウンロードする)
– [インストール](#nodejsをインストールする)
– [確認](#インストールの確認)
– [まとめ](#まとめ)## Node.jsをダウンロードする
まず、公式の [Node.js](https://nodejs.org/en) のウェブサイトにアクセスしてください。最新の安定版をダウンロードするには、『Download Node.js(LTS)』をクリックしてください。
![node-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3788028/8cf66780-8dbb-906a-d09f-49829a75edb9.png)
—–
## Node.jsをインストールする
ダウンロードされたインストーラを起動する。本的にインストーラに従って『 Next 』ボタンを押すだけでよい。![node-install-1.png](h
【Nodo.js】Macでnpmが使えなかった時の対処法
:::note warn
エンジニア初心者の投稿であるため、間違っている箇所が多くあるかと思います。
何かお気づきの点がありましたらご教授いただけると幸いです。
:::## はじめに
Macにパソコンを変えてからNodo.jsを使用したかったため、Node.jsをインストールしようとコマンドと戦った出来事をまとめます。## やってみたこと
ターミナルで以下のコマンドを入力した。
“`terminal:terminal
$ nodebrew install-binary stable
“`以下のエラーがコマンドさんから返ってきた。
“`terminal:terminal
Fetching: https://nodejs.org/dist/v20.12.2/node-v20.12.2-darwin-arm64.tar.gz
Warning: Failed to open the file
Warning: /Users/ユーザー名/.nodebrew/src/v20.12.2/node-v20.12.2-darwin-arm64.tar
Warning: .gz: No