以前、JavaScriptでカメラを操作し写真を撮影するサンプルコードを作成しましたが、今回はそこにフォトフレームを合成してみたいと思います。
プリクラやスマホアプリでよくある見かけるやつですね。撮影した画像をダウンロードすることもできます。
続きを読む
以前、JavaScriptでカメラを操作し写真を撮影するサンプルコードを作成しましたが、今回はそこにフォトフレームを合成してみたいと思います。
プリクラやスマホアプリでよくある見かけるやつですね。撮影した画像をダウンロードすることもできます。
続きを読む
canvasタグに現在描画されている内容を画像としてクライアントにダウンロードしてみます。
Webブラウザなどのクライアントだけで完結するためサーバの負荷などを気にする必要がありません。
今回はひたすらカウントアップするcanvasを、ボタンを押したタイミングでダウンロードできるサンプルです。
続きを読む
今回は複数のcanvasタグを合成し、最終的に1つのcanvasに画像として結合する処理を取り上げたいと思います。
↑こんな感じで画像を表示したcanvasと、キャプションを表示したcanvasを合成します。
続きを読む
小ネタです。
例えばsplit
コマンドなどで分割したファイルをダウンロードした際に、一つ一つMD5の値を確認するのはダルいですよね。md5sum
コマンドでは、予め検証したいファイルのパスとそのMD5の値をペアで記述されたファイルを用意しておくと、一発で確認することでができます。
定義ファイルは以下のようにMD5値と、ファイルのパスを半角スペースなどで区切って書きます。
$ cat MD5SUM
f64062373f79e3fdabed57f6aec6d54d data/foo.zip.1
89063c79371e866afe627ddc221d3a9e data/foo.zip.2
993e1252af0e1fbd2435dcadd2a9fead data/foo.zip.3
あとは-c
オプションでこの定義ファイルを渡せば自動的にチェックしてくれます。
$ md5sum -c MD5SUM
data/foo.zip.1: OK
data/foo.zip.2: OK
data/foo.zip.3: OK
小ネタです。
Linuxなどで利用するmd5sum
をmacOSで利用するには別途インストールする必要があります。
結論から言うと以下で一発です。
$ brew install md5sha1sum
今回はv0.9.5が入りました。
$ md5sum --version
Microbrew md5sum/sha1sum/ripemd160sum 0.9.5 (Wed Dec 6 12:48:56 EST 2006)
Compiled Aug 19 2018 at 22:25:20
Written by Bulent Yilmaz
Copyright (C) 2004,2006 Microbrew Software
小ネタです。
シェルスクリプトを書いている際にwget
で正常にファイルをダウンロードできた場合のみ処理を継続したい場合には次のようなコードを書きます。
#!/bin/bash
wget 'https://example.com/foo.zip'
if [ $? -ne 0 ]; then
echo "[ERROR] 正常にダウンロードできませんでした"
exit 1
fi
$?
は直前のコマンドの実行結果が自動的に入ります。-ne
はnot equal
の略で、値が等しくない場合に使用します。Node.jsでは、ファイルにデータを書き込む様々な方法が用意されています。今回はよく使われる方法についてまとめてみます。
続きを読む
Node.jsでは、ファイルからデータを読み込むだけでも様々なアプローチが用意されています。
今回はよく使われる方法についてまとめてみます。
JavaScriptで乱数を利用したい場合はMath.random()
を使うことがほとんどだと思いますが、内部のロジック的に暗号などセキュアな用途には向いていないとされています。Node.jsでは標準モジュールであるcryptoを利用することでこの問題を解決することができます。
結論から言うと具体的なコードは以下になります。getSecureRandom()
関数を実行する度にランダムな整数を取得できます。
const Crypto = require("crypto");
function getSecureRandom(){
const buff = Crypto.randomBytes(8); // バイナリで8byteのランダムな値を生成
const hex = buff.toString("hex"); // 16進数の文字列に変換
return ( parseInt(hex,16) ); // integerに変換して返却
}
最近のGitHubでは、リポジトリ上で依存している外部のライブラリやモジュールが古いままだと警告を出してくれる機能が追加されました。Webページ上でも表示されますし、git push
などremoteと通信した際などにも確認できます。
$ git push
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: GitHub found 6 vulnerabilities on katsube/gpwd's default branch (2 high, 4 moderate). To find out more, visit:
remote: https://github.com/katsube/gpwd/network/alerts
remote:
To github.com:katsube/gpwd.git
35f20ab..5b85229 master -> master
これらを放置しておくとセキュリティホールの原因にもなりかねないので、定期的にpackage.jsonで指定しているバージョンを更新し、動作確認をする必要が出てきます。しかし1つつずつ最新のバージョンを手作業で確認するのは地獄ですよね。
そんなわけで今回はNode.jsで動作するプロジェクトで利用しているライブラリを簡単にアップデートする方法についてまとめたいと思います。
続きを読む