CodeBuild の実行環境のタイムゾーンは標準では UTC になっているようだが、これを JST に変更したい。 イメージ: aws/codebuild/amazonlinux2-x86_64-standard:3.0 解決策 buildspec.yml の pre_build 内に、export TZ="Asia/Tokyo" を追記する。 因みに Co…
概要 Express の Session ストアとして、MySQL などのデータベースを TypeORM (v0.2) 経由で利用する場合の備忘録です。 TypeORM 設定 Modules express-session と connect-typeorm をインストールします。 https://github.com/expressjs/session https://gi…
Intel Mac で動作する Dockerfile を、Apple Silicon Mac (M1) で利用したら、イメージのビルドが失敗したり、docker 内の node のアプリ (react, gatsby, puppeteer) が動作しなくなったりしたので、その際に行った対処を書き残す。 サマリ node のイメージ…
React hooksで絞り込み検索機能を実装してみます。 今回は、データの配列に対して、入力フォームの値とチェックボックスの状態との複合条件で絞り込みができるようにします。 リストを表示 まずは簡単なデータの配列を用意し、全容をリストとして画面表示し…
Gatsby + Contentful で作成したブログを VPS で運用しています。Contentful で記事を作成したり、コードを github に push したときに自動でデプロイするようにしたかったので、その仕組みを Github Actions を使って構築しました。 前提 以下の状態である…
gatsby-starter-blog をベースに作成したブログの記事一覧ページにページネーションを導入してみました。 ページネーションは、gatsby-awesome-pagination というプラグインを使うことで簡単に実装できます。 インストール gatsby-awesome-pagination プラグ…
セキュリティ対策のため "root"@"%" を削除し、特定のユーザを追加する。 確認 > select user, host from mysql.user; +-------------+------------+ | User | Host | +-------------+------------+ | root | % | | root | localhost | +-------------+-----…
現状 $ sudo sudo: /usr/bin/sudo は所有者が uid 0 である必要があり、かつ setuid が設定されている必要があります $ ls -l /usr/bin/sudo -rwxr-xr-x 1 pi root 147560 2月 2 2020 /usr/bin/sudo やったこと // rootユーザーに変更 $ su // 権限変更 # ch…
事象 電源ランプの点滅と、ファンの瞬断/回転を繰り返している状態になった。 ACアダプタを変更すると電源ランプやファンの瞬断はしなくなった。 モニターを繋ぐと emergency mode で起動している。 → おそらくACアダプタの問題。以下を参考に修復を行った。…
システム起動時に自動実行したいアプリについて、各アプリ毎に実行用のシェルスクリプトを作成する。 /usr/local/bin/startup/app1.sh #!/bin/bash cd /home/pi/app1/ nohup npm start & これらをまとめて実行するスクリプトを作成する。 /usr/local/bin/sta…
設定ファイル 作業フォルダを作成し、Dockerfileとdocker-compose.ymlを作成する。 Dockerfile # hub.docker.comから公式で用意されたイメージをベースとする FROM node:10.13-alpine # カレントディレクトリを app に WORKDIR /app # デフォルトで node が…
インストール npm init した上で、パッケージをインストールする。 $ npm install sequelize --save $ npm install mysql2 --saveコマンドもインストールしておく。 $ npm install -g sequelize-cli 設定ファイルの編集 必要なディレクトリ /config, /migrat…
MySQL インストール // MySQL Yum リポジトリをシステムのリポジトリリストに追加 $ sudo yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm // リポジトリの確認 $ ls /etc/yum.repos.d/mysql-* /etc/yum.repos.d/mys…
事前準備 // node.js のインストール $ yum install node ... $ node -v v8.17.0// npm のインストール $ yum install npm ... $ npm -v 6.14.11 パッケージのインストール // 作業ディレクトリの作成 $ mkdir node01 $ cd node01// package.json の作成 $ n…
VirtualBox & vagrant のインストール これは事前に N予備校 の講座で実施済み。 $ vagrant -v Vagrant 2.2.9 vagrant の設定 Host - Guest 間の共有フォルダ構成のため GuestAddition を導入する。 $ vagrant plugin install vagrant-vbguestプラグインの…
外付け HDD のデータを別の外付け HDD にバックアップを取る。 rsync コマンドが使えそうなので、これを cron で定期実行するスクリプトを作成する。 流れ バックアップ用の HDD を接続する 指定のディレクトリにマウントする 同期先のディレクトリを作成し…
で囲むとエスケープしない。 // エスケープする <%= <p>テキスト</p> %> // <p>テキスト</p> // エスケープしない <%- <p>テキスト</p> %> // テキスト
Vagrantfileの設定変更 ローカルIPアドレス:192.168.33.10 ポートフォワード:27017 # VagrantのローカルIPを設定 config.vm.network "private_network", ip: "192.168.33.10" # ポートフォワード config.vm.network "forwarded_port", host: 27017, guest:…
Node.jsからデータを投入 db.collection.initializeOrderedBulkOp()を使う。 const MongoClient = require("mongodb").MongoClient; const url = "mongodb://user:password@127.0.0.1:27017/sample"; // db名: "sample" const connectOption = { useNewUrlPa…
インストール 公開鍵のインポート wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add - MongoDBのリストファイル作成 echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" |…
モジュールの取得 const path = require('path') 使用例 const filePath = '/aaa/bbb/ccc/ddd/index.html'; path.dirname(filePath); // /aaa/bbb/ccc/ddd path.basename(filePath); // index.html path.extname(filePath); // .html path.basename(filePath…
chokidarというライブラリを利用する。 $ npm install chokidar --saveNode.js コード 'use strict'; const chokidar = require("chokidar"); const do = require('/[何かするdo.jsの格納先]/do').do; //chokidarの初期化 const watcher = chokidar.watch('.…
概要 過去記事で、ffmpegを実行するシェルスクリプトを作成した。 utamt.hatenablog.comしかしシェルスクリプトの独特な記法は扱いづらく、今後の拡張性を考えると別の方法を考えたい。ということで、今回は馴染みのあるnode.jsで同じ処理を作る。幸いにも、…
エンコードの種類 ソフトウェアエンコード(-c:f libx264) CPUのみで処理 --> CPU負荷が高い。ラズパイ4で350%とかになる。 圧縮率は高いが、変換速度は遅い(1.0x以下) -crf, -preset で 画質や圧縮率、変換速度を調整する。 ハードウェアエンコード(-b:…
# CPUの温度 vcgencmd measure_temp # プロセスの監視 top
libx265ではエンコード速度に難あり(crf:28 --> speed=0.0392x) 圧縮するとしたらlibx265だが、実用上で最適な変換方法を分析する結論、crf 18-23程度, preset veryfast が良いかも。 環境 RaspberryPi4 サンプル動画:mt2s形式(5分) コマンド $ ffmpeg …
以前、ffmpegでm2tsからmp4(H.265)にエンコードするコマンドを作成した。 utamt.hatenablog.com 今回はこれをシェルスクリプト化し、cronで定期実行させる。 シェルスクリプトの作成 chinatsuで録画したm2tsファイルの保存フォルダに、下記の mp4encode.sh…
DLNAの構築 raspberryPi の動画ファイルをPS4経由でテレビ再生したい。 「miniDLNA」というソフトで構築できそう。 miniDLNAインストール # インストール $ sudo apt-get install minidlna # 動作確認 $ chkconfig --list minidlna minidlna 0:off 1:off 2:o…
元動画:input.m2ts -> 変換後:output.mp4 圧縮効率の高いH265がおすすめ。 # H264(デフォルト)に変換する $ ffmpeg -i input.m2ts output.mp4 # H265に変換する $ ffmpeg -fflags +discardcorrupt -i input.m2ts -c:a copy -bsf:a aac_adtstoasc -c:v li…
# 作成 $ vi testscript.sh#!/bin/bash echo hello-world # 実行権限の付与 $ chmod 755 testscript.sh # 実行 $ ./testscript.sh hello-world