まるふく工房 /archive/ とにかく何か作ろう Tue, 28 Jan 2020 04:44:11 +0000 ja hourly 1 https://wordpress.org/?v=6.9.1 /archive/wp/wp-content/uploads/2019/09/cropped-shimato-32x32.png まるふく工房 /archive/ 32 32 週間進捗 018 (2020-01-20~2020-01-26) /archive/weelky-018-2020-01-20-2020-01-26/ /archive/weelky-018-2020-01-20-2020-01-26/#respond Fri, 24 Jan 2020 06:18:29 +0000 /archive/?p=220 Raspberry PI

jessie -> stretch

AWSを初期設定する

AWSアカウントを取得したら速攻でやっておくべき初期設定まとめ – Qiita

  • 初期状態では、「ルートアカウント」でログインしている。
  • 危ないようなのでIAMでユーザとグループを作成して、通常はそのユーザでログインするようにする。
  • ついでに二段階認証を設定する。

git LFSサーバを AWS S3に構築する

S3をLFSサーバにする

東京リージョンに作るには、上記のコメント欄にある以下のURLを使う。

https://console.aws.amazon.com/cloudformation/home#/stacks/new?region=ap-northeast-1&templateURL=https://hx-ebi.s3-ap-northeast-1.amazonaws.com/git-lfs/2.1.0/git-lfs.yaml

上記で使っている、LFSサーバのソースコードは以下にある。

LFSサーバを切り替えて、bitbucketから消す

1 リポジトリとLFSの中身をまるごと手元に持ってくる。

# まずは普通にmirrorでclone
git clone --mirror https://[user]@bitbucket.org/[user]/myrepo.git
cd myrepo.git
# LFSのファイルを全て取得
git lfs fetch --all

2 bitbucketから該当のリポジトリを消す

3 bitbucketに同名のリポジトリをまた作る。

4 lfsサーバをAWS S3の方にする。

git config lfs.url https://[user]:[pass]@XXXXXXX.execute-api.ap-northeast-1.amazonaws.com/lfs

※実際の値はCloudFormationのLfsEndpointにあるURLを持ってくる。

5 bitbucketにpushする。

git push --mirror https://[user]@bitbucket.org/[user]/myrepo.git
git lfs push --all https://[user]@bitbucket.org/[user]/myrepo.git

6 すでにcloneしている場合は、.lfsconfigを書き換える

remoteごとにlfsurlではなく、[lfs]のurlにまとめられるはず。

git config -f .lfsconfig lfs.url https://[user]:[pass]@XXXXXXX.execute-api.ap-northeast-1.amazonaws.com/lfs

作成される.lfsconfig

[lfs]
    url = https://[user]:[pass]@XXXXXXX.execute-api.ap-northeast-1.amazonaws.com/lfs

LFSファイルが古いLFSサーバから消えるタイミング

  • bitbucket
    • LFSを含むリポジトリの削除時にLFSサーバから消えている。
  • github
    • LFSを含むリポジトリの削除時には消えない。
    • 再度同名のリポジトリを作ってpushすると消える。

]]>
/archive/weelky-018-2020-01-20-2020-01-26/feed/ 0
週間進捗 014 (2019-12-16~2019-12-22) /archive/weelky-014-2019-12-16-2019-12-22/ /archive/weelky-014-2019-12-16-2019-12-22/#respond Wed, 25 Dec 2019 05:30:56 +0000 /archive/?p=211 Brave

Braveで動かないChrome拡張機能

Google Keep Chrome拡張機能

Copy URL+

  • 動かない、というよりChrome拡張から消えたっぽい。
  • 代替として以下を入れたが、URLのフォーマットをいじれないのでちと辛い(markdownのリンク形式とか作れない)。
  • 別解として、Chromeの機能拡張そのものは、$HOME\AppData\Local\Google\Chrome\User Data\Default\Extensions にあるので、Copy URL+のものを探してコピーすれば動く。

独自のChrome機能拡張の作り方

LINER – ウェブ/PDF 蛍光ペン

]]>
/archive/weelky-014-2019-12-16-2019-12-22/feed/ 0
週間進捗 013 (2019-12-09~2019-12-15) /archive/weelky-013-2019-12-09-2019-12-15/ /archive/weelky-013-2019-12-09-2019-12-15/#respond Tue, 10 Dec 2019 04:36:16 +0000 /archive/?p=206 GPG

Gpg4Win

Qiita記事

パスワード付きZipの危険性についての説明がわかりやすい。

公開鍵そのものの信頼性について

公開鍵の信頼性をTorの公開鍵をもとに説明。

PGP/GPG自体が不要なのでは、という記事

Gmail同士なら自動でTLS暗号化されている

TLS暗号化されているなら鍵マークが付きます。

SSL/TLSとは要はTLSのことである。

パスワード付きZip解凍

Pika Zip(Windows)

ちょっと時間かければ解凍できます。

fcrackzip(Linuxなど)

Linuxやmsys2ならコマンドで。文字種や文字数など細かな指定が可能。

msys2ならpacmanでインストール

% pacman -Syu mingw-w64-x86_64-fcrackzip
]]>
/archive/weelky-013-2019-12-09-2019-12-15/feed/ 0
Arduinoのプログラムを保護する /archive/arduino-lockbits/ /archive/arduino-lockbits/#respond Tue, 19 Nov 2019 05:48:25 +0000 /archive/?p=194 目的

Arduinoに書き込まれたプログラムやEEPROM内のデータを第三者に読み取られないように保護します。

ロックビット

Arduino UNO/NANOなどに載っているATmega328Pにはロックビットという施錠ビットがあります。ロックビットを操作することによって、プログラム領域(フラッシュ領域)、EEPROM領域、ブートローダーに対して読み書きの保護をすることができます。

  • ロックビットの設定によりフラッシュ領域などの読み書きが出来なくなります。
  • 再度読み出しができるようにするためには、ATmega328Pのフラッシュ領域など全消去を必要とします。

ロックビットの詳細については、ATmega328Pのデータシートの「31.1. プログラムメモリとデータメモリ用施錠ビット」を参照してください。

手順

ロックビットを使ってフラッシュ領域、データ領域の読み書きを禁止する手順を以下に示します。

1. 保護対象とするArduino(TARGET)と、TARGETのロックビット操作用に別のArduino(PROGRAMER)を用意します。

2. TARGETに、Arduino IDEを使って通常通りプログラムを書き込みます。

3. PROGRAMERに、Arduino IDEのサンプルプログラム「ArduinoISP」を書き込みます。

4. PROGRAMERとTARGETを、以下を参考に接続します。

Arduino UNOでの接続例

5. PROGRAMERとPCをUSBケーブルで接続します。

6. Arduino IDEに含まれるavrdude.exeをコマンドプロンプトから実行し、以下の結果になることを確認します。

$ cd "C:\Program Files (x86)\Arduino\hardware\tools\avr\bin"
$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

7. ロックビットの内容を確認します。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -U lock:r:con:h

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: reading lock memory:

Reading | ################################################## | 100% 0.01s

avrdude.exe: writing output file "con"
0xf

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

8. (省略可) この状態でフラッシュ領域(プログラム領域) が読み取れるか確認します。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -U flash:r:"C:\tmp\flach-l0f.hex":i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: reading flash memory:

Reading | ################################################## | 100% 19.98s

avrdude.exe: writing output file "C:\tmp\flach-l0f.hex"

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

ブートローダーとプログラムを書き込んだ状態では、ロックビットは0x0fになっています。

9. ロックビットを0x00に書き換えます。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -U lock:w:0x00:m

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: reading input file "0x00"
avrdude.exe: writing lock (1 bytes):

Writing | ################################################## | 100% 0.03s

avrdude.exe: 1 bytes of lock written
avrdude.exe: verifying lock memory against 0x00:
avrdude.exe: load data lock data from input file 0x00:
avrdude.exe: input file 0x00 contains 1 bytes
avrdude.exe: reading on-chip lock data:

Reading | ################################################## | 100% 0.01s

avrdude.exe: verifying ...
avrdude.exe: 1 bytes of lock verified

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

10. (省略可) フラッシュ領域をもう一度読み込み、読み取れなくなっていることを確認します。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -U flash:r:"C:\tmp\flach-l00.hex":i

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: reading flash memory:

Reading | ################################################## | 100% 19.94s

avrdude.exe: Flash is empty, resulting file has no contents.
avrdude.exe: writing output file "C:\tmp\flach-l00.hex"

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.
$ dir "C:\tmp\*.hex"
 ドライブ C のボリューム ラベルは OS です
 ボリューム シリアル番号は 5AB7-111D です

 C:\tmp のディレクトリ

令和1/11/19  11:31                13 flach-l00.hex
令和1/11/19  11:29            78,861 flach-l0f.hex
               2 個のファイル              78,874 バイト
               0 個のディレクトリ  126,325,178,368 バイトの空き領域
  • 78KBあったフラッシュ領域のダンプファイルが13バイトになっており読み取れなくなっていることが確認できます。

再度プログラムの読み書きができるようにする手順

ロックビットを0x00にすると第三者だけではなく、自分も読み書きできません。そこで、チップ消去をしてロックビットを初期化します。

1. Arduino IDEのツールメニューから「ブートローダーを書き込む」を実行します。書き込み装置は「Arduino as ISP」にします。

  • この際内部でチップ消去処理が実行され、ロックビットが初期化されます。

2. Arduino IDEで書き込みたいスケッチを開き、スケッチメニューから「書き込み装置から書き込む」を実行します。

  • USBケーブルをTARGETにつなぎ直して、通常のように「マイコンボードに書き込む」で書き込むこともできます。

(参考) 単独でロックビットを初期化する方法

avrdude単独でロックビットを初期化するには、-eオプションでチップ消去を実行します。
ブートローダーの書き込みを行うとチップ消去も同時に実行されるため以下の手順は不要ですが、参考として記載しておきます。

1. 現在のロックビットの内容を確認します。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.04s

avrdude.exe: Device signature = 0x1e950f (probably m328p)

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

2. -eオプションでチップ消去します。

これにより、フラッシュ領域とデータ領域の内容が値「0xff」にリセットされ、すべてのロックビットがクリアされます。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -e

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: erasing chip

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.

3. 再度ロックビットを確認します。

$ avrdude.exe -C "..\etc\avrdude.conf" -c avrisp -P COM9 -b 19200 -p m328p -U lock:r:con:h

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.03s

avrdude.exe: Device signature = 0x1e950f (probably m328p)
avrdude.exe: reading lock memory:

Reading | ################################################## | 100% 0.01s

avrdude.exe: writing output file "con"
0x3f

avrdude.exe: safemode: Fuses OK (E:FD, H:DE, L:FF)

avrdude.exe done.  Thank you.
  • この時点でロックビットは初期値の0x3fになっています。この後ブートローダーの書き込みを行うと0x0fになります。
]]>
/archive/arduino-lockbits/feed/ 0
週間進捗 009 (2019-11-11~2019-11-17) /archive/weelky-009-2019-11-11-2019-11-17/ /archive/weelky-009-2019-11-11-2019-11-17/#respond Thu, 14 Nov 2019 09:30:42 +0000 /archive/?p=183 Docker for Windows (Windows10 Professional)
  1. Hyper-Vの有効化
  2. Docker for Desktopのインストール

Docker Toolbox ( Windows10 Home, Windows8など )

  1. VirtualBoxのインストール(Docker Toolboxからも入れられる)
  2. Docker Toolboxのインストール

Docker入門

旧SMGの人のDocker入門を端から試す。

補足

ディレクトリ共有時のmsys2でのパス指定

ホストとコンテナでディレクトリ共有する際、msys2上でパス指定する場合、例の通りでは静かに失敗する。

# docker run -it -d -p 18080:8080 -v /c/users/myname/tomcat-container/logs:/share/logs --name tomcat centos

※上記例は、Windows10で指定する場合

ホスト側のパスの頭に/をもう一つつけると共有できるようになります。

# docker run -it -d -p 18080:8080 -v //c/users/myname/tomcat-container/logs:/share/logs --name tomcat centos

これに加えて、Windowsでは、Docker DesktopのSettingでShare Driveの設定が必要になる。

古いBash On Windowsを消したい

WSLをいれたけどよく見たら古いBash on Windowsが残っていたけど、lxrunはもう無い。
→ wslconfigで消します。

$ wslconfig /l
Windows Subsystem for Linux ディストリビューション:
Legacy (既定)
Ubuntu-18.04

$ wslconfig /u Legacy
登録を解除しています...

$ wslconfig /l
Windows Subsystem for Linux ディストリビューション:
Ubuntu-18.04 (既定)
]]>
/archive/weelky-009-2019-11-11-2019-11-17/feed/ 0
Mattermost (Slackクローン) をWindows10 Proのdocker上で動かす /archive/mattermost-install/ /archive/mattermost-install/#respond Wed, 13 Nov 2019 05:46:20 +0000 /archive/?p=176 インストール手順

前提条件

  1. Windows10 ProfessionalでHyper-Vを有効にしておく。
  2. Docker Desktop for WindowsをDocker hubからインストールしておく。

Mattermostのインストール

  1. コマンドプロンプトなどで、以下のコマンドを実行し、Mattermostをインストールする。
% docker run --name mattermost-preview -d --publish 8065:8065 --add-host dockerhost:127.0.0.1 mattermost/mattermost-preview

Mattermostへのアクセス

  1. http://localhost:8065 にアクセスする。 アクセスできない場合は、ファイアウォールの設定を見直す。
  2. Docker ToolboxでDockerを動かしている場合
  • Docker Desktopではなく、Docker ToolboxなどHyper-Vが使えない環境でDockerを起動している場合は、localhostではアクセスできない。
  • Docker EngineのIPアドレスを docker-machineコマンドで確認する。
  • 確認したIPアドレスの8065ポートにアクセスする。下記の場合は http://192.168.99.100:8065 となる。
$ docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER     ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v19.03.4

Mattermostの停止

  1. docker ps -aで確認
% docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED
STATUS                     PORTS                                         NAMES
505d4db20909        mattermost/mattermost-preview   "/bin/sh -c ./docker…"   2 hours ago
 Up About an hour           3306/tcp, 33060/tcp, 0.0.0.0:8065->8065/tcp   mattermost-preview
  1. docker stop [CONTRAINER ID]で停止
% docker stop 505d4db20909
505d4db20909

Mattermostの開始(二回目以降)

% docker start 505d4db20909

設定

日本語表示

  1. Account Settingsをメニューから選択

2.Display > Languageから日本語を選択

参考

Mattermost

Docker for Windows

]]>
/archive/mattermost-install/feed/ 0
週間進捗 005 (2019-10-14~2019-10-20) /archive/weekly-005-2019-10-14-2019-10-20/ /archive/weekly-005-2019-10-14-2019-10-20/#respond Mon, 21 Oct 2019 07:13:36 +0000 /archive/?p=136 Oculus Quest

公式サイト

ブラウザーをアップデートしてください
  • 注文から4営業日で香港から到着

Virual Desktop

Home | Virtual Desktop
  • PCの画面をそのまま、仮想空間上に表示。
  • Oculusのコントローラでマウス操作も可能。
  • 文字入力は、仮想キーボードで入力。
]]>
/archive/weekly-005-2019-10-14-2019-10-20/feed/ 0
git サーバーの容量制限 /archive/git-server-capacity-limit/ /archive/git-server-capacity-limit/#respond Thu, 10 Oct 2019 02:01:36 +0000 /archive/?p=129 各サーバーでのgitリポジトリの容量制限を調べました。

Github

GitHub

  • 制限なし。といいつつ、1GB未満推奨。
  • 1GB超えるとサポートからメールが来ることがある。
  • ハードリミットは実際にあり、100GB。75G超えるとpush時に警告が表示。
  • 100MBを超えるファイルはpushできない。
  • 50MBを超えるファイルはpush時に警告表示。

参考

Bitbucket

Bitbucket

  • 1GBを超えると、メールと通知。
  • 2GBでハード制限。pushできなくなる。
  • ファイル制限は不明。

参考

Backlog

Backlog

  • フリープランの場合、ストレージ100MB制限。
  • ストレージは、gitリポジトリ、課題、ファイルなどの総容量。
  • 一番安いスタータープラン(\2,400/月)の場合、ストレージ1GB制限。

参考

]]>
/archive/git-server-capacity-limit/feed/ 0
週間進捗 004 (2019-10-07~2019-10-13) /archive/weekly-004-2019-10-07-2019-10-13/ /archive/weekly-004-2019-10-07-2019-10-13/#respond Wed, 09 Oct 2019 06:32:47 +0000 /archive/?p=124 Unity

Humble Unity Bundle 2019

$1,039分のアセットが「$15ドル」

購入後の登録について

購入後の画面からvoucherコードを取得して、Asset Storeから有効化します。

ただし、以下は購入したAssetのvoucherコードでは有りません。
よく見ればちゃんと書いてあるのですが「Ultimate Guide to Game Development」のvoucher codeです。

Asset Storeで入力するのは以下の「Key」で出てくるASVで始まる「Key」です。
voucher codeなのに「Key」です。

購入後の画面からvoucherコードが取得できるが、以下は購入したAssetのvoucherコードでは有りません。

git

gitサーバーの容量制限

]]>
/archive/weekly-004-2019-10-07-2019-10-13/feed/ 0
週間進捗 003 (2019-09-30~2019-10-06) /archive/weekly-003-2019-09-30-2019-10-06/ /archive/weekly-003-2019-09-30-2019-10-06/#respond Tue, 01 Oct 2019 02:46:05 +0000 /archive/?p=119 WordPress

サイトマップ作成

  1. Yoast SEOインストール
  2. XML サイトマップができる
    XML Sitemap
  3. Google Search Consoleに送信する

Google AnalyticsとGoogle Search Consoleの関連付け

アナリティクスでサーチコンソールの追加ができない – Search Console ヘルプ

  • URLプレフィックスで登録されたものしかGoogle Analyticsに登録できない。
]]>
/archive/weekly-003-2019-09-30-2019-10-06/feed/ 0