ターミナルで base64 エンコードが失敗すると思ったら echo が改行を吐いてた
タイトルで言い切りました。
TL;DR
good
echo -n Aladdin:OpenSesame | /usr/bin/base64 QWxhZGRpbjpPcGVuU2VzYW1l
bad
echo Aladdin:OpenSesame | /usr/bin/base64 QWxhZGRpbjpPcGVuU2VzYW1lCg==
Basic認証・Authorizationヘッダー・文字コードについて
なぜか開発環境のWebサイトへの外形監視が失敗するので困ったのがことの始まりです。
一番初めに疑ったのは文字コードでした。Basic認証が必要なWebサイトでは、レスポンス時にBasic認証に用いる文字コードを指定できます。
WWW-Authenticate: Basic realm="User Visible Realm", charset="UTF-8"
でもBasic認証で使う範囲の文字って ASCII だろうが UTF-8 だろうがバイト表現は同じになりません?
console.log(Buffer.from("Aladdin:OpenSesame", "ascii")) // <Buffer 41 6c 61 64 64 69 6e 3a 4f 70 65 6e 53 65 73 61 6d 65> console.log(Buffer.from("Aladdin:OpenSesame", "utf-8")) // <Buffer 41 6c 61 64 64 69 6e 3a 4f 70 65 6e 53 65 73 61 6d 65>
なりますね。
そこで base64decodeしたら改行が見つかって問題解決しました。
unzip コマンドで warning: stripped absolute path spec from / と表示されたら zipファイルの中身を unzip -l で確認する
結論から言うと、Dropboxが自動生成したZipファイルはルートディレクトリのパスが含まれるらしい。
unzip -l
で中身を確認しよう。( zip -sf
でもいいが、 unzip
だとファイルサイズも確認できて嬉しい)
詳細
具体的には以下のエラーが出た。
$ unzip resources/worldometers.zip Archive: resources/worldometers.zip warning: stripped absolute path spec from / mapname: conversion of failed replace worldometers.zip? [y]es, [n]o, [A]ll, [N]one, [r]ename: $ unzip -l resources/worldometers.zip Archive: resources/worldometers.zip Length Date Time Name --------- ---------- ----- ---- 0 09-17-2019 10:27 / 119574 09-17-2019 10:26 worldometers.zip --------- ------- 119574 2 files
mapname: conversion of failed
については、Zipファイルの中に同名のZipファイルが含まれていることで解答に失敗しているエラー。 -d
オプションで解凍先を指定すればOK。
チーム開発で JetBrains/Youtrack を利用する際の私的注意ポイント
justInCase で開発にJetBrainsの製品を利用しています。
チームで利用する際に気を付けたいポイントをまとめました。なお、私も勉強中なので誤っている点があるかもしれません。ご指摘いだければ幸いです。
[JetBrains] OrganizationとTeamの違いを理解する
会社に相当する Organization と、プロジェクトやチーム相当する Teamの二つの概念があります。
Organiztion には クレジットカードを登録できるが、チームにはクレジットカードを登録できない、といった違いがあります。
(なお、直接支払いに利用されるクレジットカードはサブスクリプションごとに管理されている)
注意したいのは、Organizationのメンバーがライセンスを購入する際、新しいEメールアドレス(おそらくOrganizationのAdministratorではないアドレス?)で購入を行うと新たにチームが作成されることです。 たくさんTeamができて混乱するので、早めに社内購入フローを作りましょう。
ちなみにトリビアですが、TeamのAdministratorをOrganizationのAdministratorに指定するとTeamのAdministratorから消えます。
[JetBrains] Startup割引の利用を検討する(Youtrackの場合は年払いのみ)
設立5年以内のスタートアップはStartup割引が利用できます。
IntelliJ Ulitimate のみならず Youtrackも対象です。ただし、Youtrackの場合は年払いのみが対象とのこと(セールスの方に確認)
[Youtrack] 課金対象になるユーザーの範囲を理解する
YoutrackにはユーザーのStatusを変更できる機能があります。
banされていないユーザーが課金対象なので、月払いかつその月に利用されていないユーザーがいる場合は積極的に banした方が良さそうです。
なお、ban以外のステータス(inactiveなど)が課金対象かは未検証です。
[Youtrack] 年払いの仕様を理解する。
簡単に言うと、年払い対象に指定した人数のみが年払い対象であり、それ以外は月払いになるようです。
以下の『年間「"True-Up"(調整)」払い』を参照。
Mac mini 2011 の HDD交換
Mac miniのHDDを交換しました。
組み込みのHDDはTOSHIBAの500GBのモデルですが、いま入っているのはWestern Digitalの4TBのモデルです。
Mac miniの処分のため元の500GBのHDDに戻すことにしました。その作業レポです。
手順
基本的にiFixed の手順を参考にしました。
ただし、取り付けてあるWestern Digitalの4TB HDDはデフォルトのHDDより厚みがあるため、基盤を取り外してからHDDの換装をします。
購入したもの
レンチやドライバー、ケースから基盤を取り出すための部品が一揃いになったツールキットです。
レポ
チーム開発でコミットを公私混同しないための Git/GitHub 設定3選
最近PCを新しくしたので、チーム開発でGitを使う場合にやっておきたい設定をまとめました。
前提
GitHubはプライベートとチーム開発で同じアカウントを利用します。
一人で2つ以上のアカウントを持つことは利用規約違反だし、これから紹介する設定を利用すれば困ることは少ないはずです。
設定
[Git] コミット時のメールアドレスをチームのメールアドレスにする
リンク先で説明されているように、リポジトリごとにユーザー情報を設定することで可能です。
私はリポジトリ数が多くて面倒なのでシェルで一括設定しています。(macOSのfindで動くようになっています。Linux等の場合は自分で書き直してください)
/usr/bin/find ./*/.git/config | xargs -I {} git config -f {} user.email "$EMAIL"
[GitHub] チームのメールアドレスによるコミットを、GitHub上で自分のコミットとして表示する
Emails から Add email address を設定してください。
[GitHub] Organizationのリポジトリの通知はチームのメールアドレスで受け取る
Notification の Custom routing を設定することで可能です。
IntelliJでTool WindowのCommitウィンドウとGitウィンドウを統合する
統合方法
Commitウィンドウのどこかにある "Switch to commit dialog" というメニューを選択すると、Commitウィンドウがなくなります。
それまでCommitウィンドウにあった Local ChangesタブはGitウィンドウに移動し、GitウィンドウでLocal Changes, Log, Consoleのすべてを参照できるようになります。
この方法で2つのウィンドウを接続すると、たとえ Command + 0 (macOS標準のCommitウィンドウを開くショートカット) も効かなくなります。
解除方法
分かりません。
関係するか分かりませんが、私の環境だと Gitプロジェクトにも VCSウィンドウが出てきません。代わりにGitウィンドウが出ています。
まとめ
なんなんだろう?
Amplify Console 豆知識(Amplify Console 実践入門 第1.2版のアップデート)
(2版→1.2版に修正)
2020年9月に「Amplify Console 実践入門」という本を出品しました。
それ以降に業務でAmplify Consoleを使っていて得た知識をまとめました。いくつかは第2版にも記載しています。
ほお〜と思っていただければ幸いです。
ブランチの接続を解除するとWebサイトは403エラーになる
Amplifyアプリからブランチの接続を解除すると、ホスティングされているコンテンツが削除されます。結果、Webサイトが403 Errorになります。
とはいえ、ブランチ切断の確認画面だとそれって分からないんですよね。よく考えれば確かに予想できるんですが...
こちらはIssueにまとめているので、よければUp Voteをお願いします! github.com
DockerHubへのログインはできない。
以下のIssueで言及されている通り、DockerHubのRate Limitに引っかかってビルドができないことがあります。
そして2020-11-08現在、ログイン手段はありません。カスタムイメージを利用されている方は、こちらもIssueのUpVoteを是非お願いします。
CFn, CDKでは DependsOn を設定しよう
ブランチが存在しない状態で AWS::Amplify::Domain
が先に作成されようとした場合、 SubDomainSetting
に指定されているドメインが未接続のため CloudFormation/CDK のデプロイが失敗します。
DependsOn属性で明示的に指定してあげましょう。
GitHubのWebhookとIncoming Webhookは別物
形式がちょっと違うので、Incoming Webhookを再発行してもGitHub側に登録することはできません。
リポジトリの再接続でOK。
まとめ
以上、Amplify Consoleの豆知識でした。Issueに関しては今後のアップデートに期待ですね!
その他の豆知識も気になる方は、本をご覧いただければ幸いです。