Programming Self-Study Notebook

勉強したことを忘れないように! 思い出せるように!!

package.json内のバージョン番号の書き方

f:id:overworker:20200927105912p:plain:h150

npm auditでバージョン更新する際のメモです。
以下の表記の違いについて記載します。

{{
  サンプル:{ 
    "a":"1.2.3",
    "b":"<1.2.3",
    "c":"<=1.2.3",
    "d":">1.2.3",
    "e":">=1.2.3",
    "f":"1.2.x",
    "g":"1.2.X",
    "h":"1.2.*",
    "i":"1.2.3-1.4.5",
    "j":"^1.2.3",
    "k":"~1.2.3",
  }
}

特徴的な記号

~ (チルダ) とは?

  • バージョン番号に~が添えられている場合、メジャーバージョンまでしか記載されていない場合と、マイナーバージョン以下が記載されている場合で振る舞いが変わります。
    • マイナーバージョンが指定されている場合、パッチレベルの変更を許可
    • メジャーバージョンまでが指定されている場合、マイナーレベルの変更を許可

      表記 更新の範囲 解釈
      ~1.2.3 1.2.3以上、1.(2+1).0未満 マイナーバージョン以下まで記載
      (パッチバージョンまで)
      ~1.2 1.2.0以上、1.(2+1).0未満 マイナーバージョン以下まで記載
      (マイナーバージョンまで)
      ~1 1.0.0以上、(1+1).0.0未満 メジャーバージョンまで記載
      ~0.2.3 0.2.3以上、0.(2+1).0未満 マイナーバージョン以下まで記載
      (パッチバージョンまで)
      ~0.2 0.2.0以上、0.(2+1).0未満 マイナーバージョン以下まで記載
      (マイナーバージョンまで)
      ~0 0.0.0以上、(0+1).0.0未満 メジャーバージョンまで記載

^ (キャレット) とは?

  • 0以外の左端の数字を変更しない範囲での更新を許可する。
    • 互換性がなくなる可能性があるバージョンアップ(メジャーバージョンアップ)を回避する範囲でバージョンアップが可能

      表記 更新の範囲 解釈
      ^1.2.3 1.2.3以上、2.0.0未満 メジャーバージョンアップしない範囲
      ^1.2. 1.2.0以上、2.0.0未満 メジャーバージョンアップしない範囲
      ^0.2.3 0.2.3以上、0.3.0未満 マイナーバージョンアップしない範囲
      ^0.2. 0.2.0以上、0.3.0未満 マイナーバージョンアップしない範囲

その他の記号

  • そこそこ登場しそうな表記をリスト化します。(感覚的に理解できると思いますが)

    表記 更新の範囲 解釈
    1.2.3 1.2.3 完全一致
    >1.2.3 1.2.3より新しい 不等号と一緒
    >=1.2.3 1.2.3以上 不等号と一緒
    <1.2.3 1.2.3未満 不等号と一緒
    <=1.2.3 1.2.3以下 不等号と一緒
    1.2.x 1.3.0未満 パッチバージョンがワイルドカード
    1.2.X 1.3.0未満 パッチバージョンがワイルドカード
    1.2.* 1.3.0未満 パッチバージョンがワイルドカード
    1.2.3 - 1.4.5 1.2.3以上、かつ1.4.5以下 範囲指定

公式ドキュメント

  • 参考文献として以下のドキュメントを記載します。

package.json

セマンテックバージョニングの基本

  • 公式サイト(、、、だと思う)
    • セマンティック バージョニング 2.0.0 | Semantic Versioning

      バージョンナンバーは、メジャー.マイナー.パッチ とし、バージョンを上げるには、

      1. APIの変更に互換性のない場合はメジャーバージョンを、
      2. 後方互換性があり機能性を追加した場合はマイナーバージョンを、
      3. 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます。

      プレリリースやビルドナンバーなどのラベルに関しては、メジャー.マイナー.パッチ の形式を拡張する形で利用することができます。

その他

overworker.hatenablog.jp

Androidの開発環境構築② (AndroidStudioの日本語化)

f:id:overworker:20210622233128p:plain:h200

AndroidStudioを日本語対応する方法を調べましたので記載させていただきます。

サイトへ移動

f:id:overworker:20210629230416p:plain:w400

ダウンロードする

  • トップ画面内で少し下にスクロールするとPleiades プラグイン・ダウンロードという欄が表示されます。ご自身の開発環境にあったダウンロードボタンをクリックしてください。(私はWindowsを選択しました。)
f:id:overworker:20210629230702p:plain:w400
  • 上記をクリックすると一般的には自動でダウンロードが開始されるようです。私の環境では自動でダウンロードが開始しませんでしたので以下をクリックしました。(30秒程度でDLが完了しました。)
f:id:overworker:20210629231423p:plain:w400
  • pleiades-win.zipというzipファイルがダウンロードされました。

pleiades-win.zipを解凍する

  • ダウンロードしたpleiades-win.zipを解凍します。どこで解凍しても良いと思います。
f:id:overworker:20210629232121p:plain:w150

インストーラーの実行

  • 解凍したフォルダ内にあるsetup.exeのショートカットを実行します。
f:id:overworker:20210629232659p:plain:w300

アプリケーションの選択

  • 選択を選択します。
f:id:overworker:20210629234514p:plain:w400
  • studio64.exeを選択する。
    • 私の環境では「選択」クリック直後はC:\Windows\System32というディレクトリを指示していましたが、実際に選択すべきstudio64.exeC:\Program Files\Android\Android Studio\binというディレクトリにありました。
f:id:overworker:20210629233758p:plain:w400

日本語化実行

  • 日本語化するをクリックします。(私は、一瞬で終わりました)
f:id:overworker:20210629234044p:plain:w400

完了画面

  • OKをクリックします。
f:id:overworker:20210629234151p:plain:w300
  • 終了をクリックします。
f:id:overworker:20210701074242p:plain:w400

確認

  • AndroidStudioを起動すると日本語になっていることが分かります。
f:id:overworker:20210629234824p:plain:w500

Androidの開発環境構築① (AndroidStudioのインストール)

f:id:overworker:20210622233128p:plain:h200

マシン設定

PCの必要スペック

  • 公式サイトにOS毎の必要条件の記述がありますので最初に子確認ください。
f:id:overworker:20210622234228p:plain:w500

私のPCはWindowsなのでWindowsの必要条件を抜粋します。

64-bit Microsoft® Windows® 8/10

x86_64 CPU architecture; 2nd generation Intel Core or newer, or AMD CPU with support for a Windows Hypervisor

8 GB RAM or more
→最低限8 GB システム メモリ(RAM)

8 GB of available disk space minimum (IDE + Android SDK + Android Emulator)
→8 GB の空き容量のあるハードディスク(最低限)

1280 x 800 minimum screen resolution
→1280 x 800 以上の画面解像度

その他注意事項

PCを起動する際のユーザー名に日本語が入っていると、IDEのいくつかの機能が正しく機能しない可能性があるそうです。

環境構築

AndroidStudioのインストール

インストーラーのダウンロード

f:id:overworker:20210622235527p:plain:w500
  • Download Android Studioをクリックする。(規約同意画面に遷移します。)
f:id:overworker:20210622235627p:plain:w500
  • 一番下までスクロールする
f:id:overworker:20210622235947p:plain:w500
  • 上記の利用規約を読んだうえで利用規約に同意しますにチェックを入れる。
  • ダウンロードする:Android Studio(Windows用)をクリックする。
    • ダウンロードが開始します。(私のネットワーク環境では30秒程度でダウンロードが完了しました。)
    • android-studio-ide-202.7351085-windows.exeというファイルがダウンロードされました。

インストール(インストーラの実行)

  • 上記でダウンロードしたexeを実行します。
    • Nextを選択する。
f:id:overworker:20210625235714p:plain:w350
  • インストールするコンポーネントを選択する。(デフォルト)
    • Nextを選択する。
f:id:overworker:20210625235917p:plain:w350
  • インストールロケーションの設定する。(デフォルト)
    • Nextを選択する。
f:id:overworker:20210626000201p:plain:w350
  • スタートメニューへのショートカットの追加を選択する。(デフォルト)
    • Installを選択する。
f:id:overworker:20210626000238p:plain:w350
  • インストールが完了しましたが、終わりではありません。
    • Nextを選択する。
f:id:overworker:20210626000314p:plain:w350
f:id:overworker:20210626000343p:plain:w350
  • Android Studio の Setupが終了
    • 継続してAndroidStudioの初期設定を実施したいのでStart Android Studioのチェックを入れる。
    • Finishを選択する。
f:id:overworker:20210626001057p:plain:w350

  • AndroidStudioを使ったことが或る場合、以前の設定を取り込むことができます。
    • 私は初めてAndroidStudioをインストールしたので Do not import settings を選択しました。
f:id:overworker:20210626001421p:plain:w250
  • 利用状況の送信に対する同意を求められます。
    • どちらを選択しても良いと思います。
f:id:overworker:20210626003401p:plain:w300

Allow Google to collect usage data for Android Studio and its related tools, such as how you use features and resource usage allow with software identifiers such as package name and class names and plugin configuration.
パッケージ名やクラス名、プラグイン構成などのソフトウェア識別子を使用して、機能の使用方法やリソースの使用許可など、AndroidStudioとその関連ツールの使用状況データをGoogleが収集できるようにします。

This data helps improve Android Studio and is collected in accordance with Google's Privacy Policy.
このデータはGoogleのプライバシーポリシーに従って収集され、AndroidStudioの改善に役立てられます。

Anonymous and aggregated usage data may be shared with Google's partners to improve Android Studio.
匿名の集計された使用状況データは、AndroidStudioを改善するためにGoogleのパートナーと共有される場合があります。

  • セットアップを開始します。
    • Nextを選択します。
f:id:overworker:20210626004219p:plain:w450

Welcom! This wizard will set up your developmet environment for Android Studio.
ようこそ! このウィザードは、AndroidStudioの開発環境をセットアップします。

Additionally, the wizard will help port existing Android apps into Android Studio or create a new Android application project.
さらに、ウィザードは、既存のAndroidアプリをAndroid Studioに移植したり、新しいAndroidアプリケーションプロジェクトを作成したりするのに役立ちます。

  • 開発の対象にするAndroid機器のバージョンに合わせて、必要な部品(SDK)とAndroid仮想デバイス(AVD)をダウンロードする画面が表示されます。
    • 後からでも追加が可能らしいので、私はStandardを指定したうえでNextを選択します。
f:id:overworker:20210626004758p:plain:w450
  • 画面のThemeを聞かれます。
    • お好みで選択してください。
f:id:overworker:20210626005012p:plain:w450
  • 設定確認画面が表示されます。
    • Finishを選択します。
f:id:overworker:20210626005232p:plain:w450
  • ダウンロードが開始します。(Finishまで5分程度だと思います。)
  • 途中で「このアプリがデバイスに変更を加えることを許可しますか?」と聞かれます。
    • セットアップを継続するためにははいを選択してください。
f:id:overworker:20210626005410p:plain:w450
  • ダウンロードが終了するFinishがアクティブになります。

  • そのままSDKの追加を実施します。

AndroidSDKのインストール

  • Configure内のSDK Managerを選択します。
f:id:overworker:20210626010419p:plain:w500
  • 対応するAndroidのバージョン範囲を指定します。
f:id:overworker:20210626011504p:plain:w500
  • 確認画面が表示されます。
    • OKを選択します。
f:id:overworker:20210626011624p:plain:w500
  • 規約に対する同意が求められます。
    • 問題なければAcceptをチェックしたうえでNextを選択します。
f:id:overworker:20210626011828p:plain:w500
  • SDKのインストールが開始します
    • 完了したらFinishを選択します。
f:id:overworker:20210626012039p:plain:w500
f:id:overworker:20210626012239p:plain:w500

SDK Toolsを追加する

  • Configure内のSDK Managerを選択します。

    • SDK Toolsを選択します。
      • 以下の二つに対しチェックを追加します。
        • Google Play services
        • Google USB Deriver
  • 確認画面が表示されます。

    • OKを選択します。
f:id:overworker:20210626013018p:plain:w500
  • インストールが完了したらFinishを選択します。
f:id:overworker:20210626013152p:plain:w500

娘に「色紙(しきし)」ってなんで白いの?と聞かれたので調べてみたら、、、

f:id:overworker:20210627231822p:plain:h200

小2の娘と漢字ドリルを進める中で、『漢字を知らない以前に、そもそも問題に登場する言葉(単語)を知らない』という場面に立ち会います。その都度、ヒントを出したり、画像を見せたりしながら考えさせているのですが、そんな中『色紙(しきし)』を教える中で子供の素直な疑問に答えるために、少し調べてたことを記載します。

漢字ドリル内の例文

○○(しきし)にサインする。

  • 以下のドリルに掲載されていた問題文になります。

問題に対する親としての感想

『色紙にサインをする』という行為は一般人とは無縁だと思うし、主語が有名人だったとしても『色紙にサインをする』という文化自体が廃れてきているように感じます。そういった状況を踏まえると良い問題とは言えないと思いますが、知らない言葉を覚えることが認知の幅を広げることにつながると思うので積極的に漢字ドリルをやらせています。

娘の疑問

娘:ヒントちょうだい!
私:サインをするっていうのは名前を書くことだよ。何に名前を書くか考えてごらん。
娘:あっ!片方はだと思うんだけど、もう片方は?
私:大ヒント!色のついた紙って書くんだよ!
娘:これ(色紙)でいいの?
私:正解!色紙の画像見てみる?これだよ!
娘:色紙(しきし)ってなんで白いの?いろはどこにあるの?
私:...なんでだろうね?

ということで色紙について調べてみました。

色紙について調べてみました

色紙はいつから?

もとは料紙と呼ばれる染色した紙のことで、奈良時代から存在していたようです。

平安時代になると、金・銀での装飾が施されるなど、華やかな加工が施されるようになたそうです。

平安中期から鎌倉時代にかけて、和歌を書いた料紙を屏風や障子に張り付けて装飾とするようになり、それが色紙形と呼ばれたそうです。(色紙形以外に短冊形があったようです。)

昔は身分が高い人ほど大きな色紙を使用していたそうです。

色紙の表と裏

歴史的には装飾が施された面に、和歌等が書かれていた事実はありそうですが、その当時の人が装飾面を表裏のどちらと認識していたかは不明です。

現代だと、色紙製造メーカーが白い面を表と言っていることもあるようですが詳細は不明です。

感想

色紙(しきし)を作っている人に表裏を決定する権利がありそうですが、歴史的な表裏と一致していなければ「それは色紙とは言わない」というような意見も出てきそうです。 ただ私がネットで調べた程度では奈良時代平安時代の人たちが、どちらの面を表と認識していたかにはたどり着けませんでした。

表裏は分からないままですが、私の今後の人生で色紙に何かを記載する場合は白い面に記載すると思います。 (送別時の寄せ書きくらいだとおもいますが、、、)

まとめ

色紙の表裏にはこだわる必要はない!

Amazon DynamoDBについて調べてみた。

f:id:overworker:20210304234231p:plain:h200

Amazon DynamoDBの基本を調べてみました。

DynamoDBの特徴

  • フルマネージド型のデータベースサービス
    • フルマネージド型:AWS側でいろいろやってくれるから、利用者側の管理範囲が少なくてよい。
  • NoSQL型のデータベースサービス
  • リージョンを指定して利用する
    • AZを意識しなくてよい(自動的に複数のAZに同期される)。
  • データ容量は無制限

DynamoDBのTable構造

f:id:overworker:20210618002937p:plain:h300
  • Table:データを管理する際のまとまり
  • ItemsTable内で管理される要素
  • AttributesItem内で管理される属性
    • PartitionKeyAttributesの一種。唯一の必須キー。
    • SortKeyAttributesの一種。Queryによる探索に利用可能。

Itemの操作

読み込み操作 書き込み操作
GetItem

TransactGetItems
BatchGet
Query
Scan
PutItem
Update
TransactWriteItems
BatchWriteItem
Delete
 

補足

  • GetPutUpdateDeletePartisionKeySortKayを指定してItemを決定する。
  • QueryPartisionKeyのみを指定したうえで、SortKayの内容で絞り込みを実施する。
  • Attributesは、「既存のAttributesにのみ書き込む」や「Attributesが存在しない場合のみ書き込む」等の操作が可能。

DynamoDBの機能

DynamoDB Transactions

  • DynamoDBで複数のItem/複数のTableに対する読み込み、書き込み操作でASIDトランザクション操作が可能。

Local Secondary Index

  • PartitionKeyが同一でSortKey以外の他のattributesを絞り込み検索のために利用する。
  • あらかじめ設定をしておく必要がある。

Global Secondary Index

  • PartitionKeyをまたいで検索を行うためのインデックス

ポイントインタイムリカバリ (PITR)

  • オペレーションによって DynamoDB テーブルが誤って上書きされたり削除されたりしないようにできる。
  • DynamoDB テーブルデータを連続バックアップすることができる。
  • 過去 35 日間の特定の時点に 2 つ目まで復元できる。

DynamoDBの設定項目・管理項目

フルマネージドサービス(≒メンテナンスフリー)

以下の項目は、AWS側で管理対象項目(※)となります。

ジャンル AWS管理対象項目
セキュリティ OSパッチ適用
DBパッチ適用
アクセスコントロールリスト、監査、コンプライアンス対応
耐久性 サーバー、ラック、データセンターの維持
W障害にともなうデータコピー
バックアップ・リストア
可用性 高可用性を実現する設計
モニタリング
クロスリージョンレプリケーション
性能 パフォーマンスチューニング
インデックス設計、作成
In-memory上でキャッシュ維持
拡張性 キャパシティープランニング
ホスト構築・投入作業
障害ホストの修復、撤去作業

AWSが管理内容の詳細を公開しているで、公開内容で不足がある場合は別途自分での管理が必要になります。

DynamoDBの設定項目

キャパシティ

  • キャパシティーモード選択
    • オンデマンドモード
    • プロビジョンドモード
      • リードキャパシティユニット(RCU):オートスケールも選択可能
      • ライトキャパシティユニット(WCU):オートスケールも選択可能
BurstCapacity(プロビジョンドモード)
AutoScaling
  • ターゲット使用率と上限、下限を設定するだけ
    • リクエスト数に応じて自動的に容量の拡大、削減を実施
パーティションスループットRCU/WCU
Adaptive capacity
  • パーティション全体としてのキャパシティのリミットには到達していないが、パーティション種毎に均等に分割した際のキャパシティのリミットには到達した場合、他のパーティションから余力の部分を均等に集めアクセスが集中しているパーティションにキャパシティを集中的に割り当てることができる。
    • ディレイがなくなった(昔は発動までの期間が5分~30分かかっていた(2018~2019)。)

データへのアクセス

テーブル構造 特徴 使用するAPI
リレーション
キー・バリュー型
PartitionKey、またはGSI GetItem
BatchGetItem
N:リレーション
親子関係
PartitionKeyとSortKeyを使ったテーブル、またはGSI Query
N:M tableとGSIを使用してPartitionKeyとSortKeyの要素をスイッチして設計 Query

設定崩壊!?アンパンマンのおもちゃ勝手にランキング

みんな大好きなアンパンマンですが、どうしても我慢できなくなったので記事にさせていただきます。 大人になるってこういうことなのかもしれません。

アンパンマンの気になるおもちゃランキング

水やお風呂が苦手な子供たちが、少しでも楽しめるようにという願いが込められた商品だと信じています。 設定崩壊させてまで商売がしたいわけではないはずです。(たぶん、、、)

第4位:アンパンマン 遊びいっぱい! おふろでアンパンマン

この商品は乾電池で動く商品です。

なんといっても一番の特徴はシャワーを握りしめたアンパンマンばいきんまんに対し水をかけるという、通常では考えられないシチュエーションをお風呂で毎日見ることがあできるところです。

ばいきんまんはシャワーをかけてもらい気持ち良さそうですが、その際の水しぶきがアンパンマンにかかりそうでかからない。

いつも本気で命を狙ってくる相手に対し、一途にハイリスク・ローリターンな行動をとってしまう姿から、人を信じる心を学びます。

※ ばいきんまんがシャワーで汗を流すことを喜ぶキャラかどうかは定かではありません。

第3位:アンパンマン NEWスプラッシュおふろスライダー

この商品はなんと電池(単1アルカリ×2本)で動くお風呂おもちゃです。

起動すると、『くみ上げポンプ』が浴槽内の水を最上部のばいきんまんの秘密基地まで吸い上げます。 くみ上げられた水は、本物のウォータースライダーのように、一気にスロープ状のコースに注がれます。 そのコースを楽しそうに滑るのは『ばいきんまん』『ドキンちゃん』そして『アンパンマン』です。

本当は『水が苦手』ってことを言いそびれてしまったようです。 ばいきんまんドキンちゃんに誘われたときに、上手く断れなかったのかな!?

第2位:アンパンマンとだだんだん ジャバジャバおふろスライダー

これは、いたずら心に拍車をかけた商品です。

付属のコップで『だだんだんバケツ』に水を入れると、『だだんだん』の下側からスライダーに水が注がれるのですが、その際にスタート地点で待機するアンパンマンの頭部に水が直撃します。

顔が濡れて力が出ない』といういつものセリフが聞こえてきそうですが、それでも絶対にフロート(浮き輪)を離さない様子が『恐怖の大きさ』を物語っています。その後も数々の難所をくぐり抜け、ゴールをするのですが、ゴールの直後に待ち受けているのは浴槽へのダイブ。

顔が笑っているからと言って、相手が喜んでいるとは限りません。 そのことに気が付いたとき、子供たちは相手の気持ちを考えるやさしさを身につけるのです。

第1位:アンパンマン クルクルふろっピュー

適材適所という言葉がありますが、彼が持つ身体能力と正義感を最も生かせない職業の一つが『消防士のホース担当』ではないでしょうか?

燃盛る炎に対し『ホースを構える姿』から、男の覚悟を感じます。

しかし、握りしめたホースの先端から少しで水しぶきが飛び散ると、いつものように『顔が濡れて力が出ない』と人命救助どころではないはずです。
(消防士からそんなセリフは聞きたくなかった、、、。)

彼は火の中に飛び込んだとしても、焦げ目がついて香ばしくなる程度なので、 せめてホースを置いて人名救出に専念してほしいものです。

「サクラクレヨン」と「サクラクレパス」??

f:id:overworker:20210618081916p:plain:h200

妻に「サクラクレパスの赤を買ってきて!」と言われたので、近所の文房具店に行ったのですが、サクラクレパスの隣にサクラクレヨンが並んでいたので、一瞬「??」となってしまいました。 とりあえず買い物は済ませたのですが、気になったので調べてみました。

比較表

比較項目
名称 サクラクレヨン サクラクレパス
16色セットの価格(Amazon 531円 500円
製造元 株式会社サクラクレパス 株式会社サクラクレパス
素材 着色顔料
 
固形ワックス
 
着色顔料
体質顔料
固形ワックス
液体油
特徴(得意な表現) 線描
 
 
 
 
面描
混色
重色

買い物の結果

私:「サクラクレヨンサクラクレパスがあったけどサクラクレパスでよかったんだよね?」
妻:「クレヨンだよ!なんで間違えるの?(怒)」
私:「サクラクレパスって言ったじゃん!」
妻:「クレパスなんて買わないよ!」
私:「言われた通りに買ってきたのに何で文句言われなきゃいけないの(怒)」
妻:「もっと考えて行動してよ!(怒)」
私:「出かける前に画像(楽天)で確認したでしょ!それと同じの買ったんだから俺のせいじゃないよ!」
(画像を見せる)
妻:「クレパスでよかったみたいだね(笑)」
私:「(泣)」

公式サイトでの比較

以下のページで製造元による特集が組まれていました。
画法の違い等も写真付き、動画付きで解説されていたので、興味がある方はご確認ください。
www.craypas.co.jp

Amazon