[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
だいぶ前に ASUS VivoBook E200HA というノート PC を買ったのだが、ディスク容量が 32GB と小さかった。「まぁ、なんとかなるだろ」と思ったらディスク不足で Windows Update すらできなかった。
Windows Update できないマシンなんて使えないので OS を入れ替えてみることに。最初は Ubuntu 18 を入れてみたのだが家族に不評だったので悩んでいたところ Chromium OS はどうかな、と考えて試してみた。実際、私の家族はブラウジングと Google Spread Sheets 位しか使わないので十分だろう、と考えたのである。結果、結構良い。
インストール手順は CloudReady でググると大変に簡単な手順が紹介されているので調べてみてほしい。インストール後に CloudReadyのインストール後にやっておきたいこと:3点 を参考にドライバーとかを入れておくこと。
しかし、ドライバーを入れても本体内蔵のマイクやスピーカーは認識してくれなかった。USB 外付けのマイク・スピーカー(ヘッドフォン)は反応してくれたのでそういうものを調達しておくとよい。
一応今回私が入れてみた感じではサクサク動いてくれたので良い感じだった。他所では「使い物にならなかった」という話も聞けるが、OS の改善でいくつかの問題が解決したのだろう。
最近はやりのテレワーク向けに AWS WorkSpaces のクライアントも入れてみたがキーボードの一部が上手く反応してくれずイマイチ動作しない。今度キーボードを換えて試してみようと思うが実用にはちょっと足りない印象を受けた。
少し苦労したので備忘。実際に作ってみたときのソースコード
const getPicture = (src) => {
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.open('GET', src, true);
xhr.responseType = "blob";
xhr.onload = (e) => {
// 画像が取得が終わったらここに来る
const fileName = src.slice(src.lastIndexOf("/") + 1);
// jsSHA を使ってハッシュ値を計算する
// jsSHA がないようならば警告を出して reject しちゃう
if(! Boolean(jsSHA)) {
const errorMessage = 'To calculate SHA256 value of the picture, jsSHA is required: https://github.com/Caligatio/jsSHA';
console.warn(errorMessage );
reject({ event:e, data: e.currentTarget.response, fileName: fileName, hash: '', error: errorMessage });
return;
}
// onload イベントの currentTarget.response に画像データが入っている
// これを arrayBuffer 関数で Array Buffer に変換
e.currentTarget.response.arrayBuffer().then((arraybuffer) => {
const sha = new jsSHA("SHA-256", 'ARRAYBUFFER');
sha.update(arraybuffer);
const hash = sha.getHash("HEX");
resolve({ event:e, data: e.currentTarget.response, fileName: fileName, hash: hash });
return;
});
};
xhr.onerror = (e) => resolve(reject({ event:e, data: null, fileName: '', hash: '', error: 'error in getting picture process' }););
xhr.onabort = (e) => resolve(reject({ event:e, data: null, fileName: '', hash: '', error: 'getting picture process is aborted' }););
xhr.ontimeout = (e) => resolve(reject({ event:e, data: null, fileName: '', hash: '', error: 'getting picture process is timeout' }););
xhr.send();
});
};
// 実際には同一ドメインじゃないと無理なので注意
const pictureUrl = 'http://blog.cnobi.jp/v1/blog/user/dae47eb5ba97f522fac369dd34ed4c62/1453740726';
getPicture(pictureUrl).then((result) => {console.log(result.hash)});
L5 を blob じゃなくて array buffer にすればすぐに計算できるのでは?と思ったのだがなぜか値が少しだけ違っていてうまくハッシュ値を計算できなかった。この辺の事情もちゃんと調べようと思ったのだがよくわからず。
キャラクターシートの管理ツールがオンライン上にある場合、それがダウンすることがしばしばあるし、サービス提供者の都合でサービスが突然止まってもしょうがない。となればバックアップをどこかに取っておきたいものである。
そういうバックアップ保存ツールやバックアップ機能、ないしシートのローカルへの保存機能といったものをつけるとして、どんな方法で保存するのかを考える。
これを全部満たすツールものができるのか、はちょっとノーだと思う
家族から「携帯の機種変しようぜ」と言われて憂鬱になっていた。Google Authenticator に大量の二段階認証用情報が入っており、それを全引継ぎするのが面倒だなぁと思っていたのである。
しかし、Google Authenticator の画面右上のメニューから「アカウントを移行」なることができるようになっていた。この機能で簡単に Google Authenticator の内容を別機種に移行できる。
なお、移行すると移行元の方の画面には「最近移行が発生したよ!!」と警告が表示されるので危ない事象が発生していたとしても気付ける。
(雛´-`).。oO(#SW25 向けにゆとシート2からユドナリウムの駒を作るツールを作ってみた。ゆとシート2で作ったシートの URL を入れると XML ファイルを吐き出してくれるので XML ファイルをユドナリウムに Drag/Drop すれば動く。魔物データにも対応)https://t.co/SZ22ATtg87
— しゅんしゅんひよこ (@Shunshun94) June 7, 2020
タイトルまんま。実のところそんなに難しくはなかった。
JS だけで動かしているのでゆとシート2にそのまま組み込んでもらうのもありかもしれない?