OmniAICreator/Qiita-1.07M huggingface dataset:
Databricks年次イベントData + AIサミット2023のセッションのハイライト

2023/6/26-29にサンフランシスコ+バーチャルでDatabricks年次イベントData + AIサミットが開催されます。

Apple、アクセンチュア、Amazon、EY、アディダス、マイクロソフト、NVIDIA、John Deere、インテル、AT&T、Github、Grammarly、Adobe、スタンフォード大学、Akamai、コロンビア大学、MongoDB、アメリカン航空、グッチ、日立ソリューションズ、ボルボ、Citrix、Instacart、Avanade、Discovery、AWS、HSBC、ナイキ、S & P GLOBAL、Disney Streamingなどなど、様々な業界の企業によるセッションが目白押しです！そして、オンライン視聴は無料です！

https://www.databricks.com/dataaisummit/jp/japan

本記事では、いくつかのセッションをハイライトします。

セッションカタログはこちらです。

https://register.dataaisummit.com/flow/db/dais2023/sessioncatalog23/page/sessioncatalog

# NTTデータ

NTTデータ齋藤 祐希様にご登壇いただけることになりました！

**タイトル：** なぜ、日本のメジャーな金融機関はデータ&AIジャーニーを加速するためにDatabricksを選んだのか(Why A Major Japanese Financial Institution Chose Databricks To Accelerate Its Data And AI-Driven Journey)

このセッションでは、日本最大のデータ分析基盤をDatabricksに移行したケーススタディをご紹介します。

# アメリカン航空

**タイトル：** モバイルデバイスを提供することで旅行をよりアクセス可能なものに(Making Travel More Accessible for Customers Bringing Mobility Devices)

データエンジニアリング、アナリティクスチームとして、我々アメリカン航空はフロントラインチームメンバーが乗客にシームレスな旅行体験を提供できるように、それぞれの空港において予想されるモバイルデバイスのトラフィックに関するタイムリーな洞察を提供する乗客サービスリクエストに関するデータ製品を構築しています。

# ナイキ

**タイトル：** Unity Catalog: ご自身の組織にフィットする柔軟性(Unity Catalog: Flexibility to Fit Your Organization)

Databricks Unity CatalogはスタートアップからNikeのような企業に至るいかなる規模の組織の要件に合致する柔軟性を提供します。Unity Catalogとレイクハウスアーキテクチャは、すべてのNikeのデータを格納、処理するためにNikeによって採用されています。Unity Catalogはデータレイクのシステム上の課題を解決し、よりシンプルで透明性のあるデータレイクを実現し、優れた効率性で大規模データの分析ユースケースを可能としています。

# ディズニー

**タイトル：** Disney+はパーソナライズされた顧客体験を提供するために、どのようにAmazon KinesisとDatabricksを活用しているのか(How Disney+ Uses Amazon Kinesis And Databricks To Deliver Personalized Customer Experience)

Disney+では、お客様へのタイトルレコメンデーションの提供やお客様トレンドの特定のようなリアルタイムアクションをドライブするため、顧客体験を改善するためのオペレーション分析のためのデータウェアハウスの構築するために、Amazon KinesisやDatabricksのApache Spark™を活用しています。

このセッションでは、統合されたストリーミング、分析プラットフォームにおいてDisney+がどのようにリアルタイム、データドリブンの機能を構築したのかを学びます。

# グッチ

**タイトル：** グッチにおけるMLOps: ゼロからヒーローに(MLOps at Gucci: From Zero to Hero)

近年、ソフトウェア開発におけるDevOpsと同じような原則が、自動化されたソリューションを本格運用する目的のもと、機械学習プロジェクトにも適用されています。しかし、多くの場合、これらは複雑なアーキテクチャにおいていくつかの異なるツールを組み合わせる必要があるため、機械学習オペレーション(MLOps)のプラクティスは複雑な実装になることが示されています。

本セッションでは、メディア予算の割り当てに関する意思決定をサポートするデータサイエンスツールのデプロイメントに関するユースケースが説明されます。

# アディダス

**タイトル：** DatabricksにおけるMLOpsがどのようにアディダスのMLプロジェクトの本格運用のスピード改善に貢献したのか(How MLOps On Databricks Helped Adidas To Gain Speed In Productionizing ML Projects)

本セッションでは、我々のチームがモデルのデプロイメントのためにどのようにMLテンプレートを活用し、自分たちのユースケースをライブに移行するスピードの改善に寄与したのかを説明します。

# ボルボ

**タイトル：** Delta Live Tablesのモニタリング(Monitoring Delta Live Tables)

本セッションでは、変化に先んじるためにVolvoグループがどのようにDatabricksジョブやDLTを監視しているのかを共有します。


### Databricksクイックスタートガイド

[Databricksクイックスタートガイド](https://www.amazon.co.jp/dp/B09V1YXFVQ/)


### Databricks無料トライアル

[Databricks無料トライアル](https://databricks.com/jp/try-databricks)
【Unity】Xcode 14.3 でビルド出来なかったら

:::note info
環境
Unity 2021.3.22f1
Xcode 14.3
:::
# Minimum Deployments を iOS 11.0 以上に

CocoaPods などで外部ライブラリを入れていると起こるのですが、Xcode 14.3 では /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/lib/arc/ ディレクトリがそっくり無くなっていて、それに依存しているとビルド出来ません。
これは Pods のフレームワークの Minimum Deployments を iOS 11.0 以上にすると解決します。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1772485/4d59e6fb-5369-9c38-96e9-2378c7e58767.png)


# ソースコードのパスを変更

これは Xcode で recommended settings をアップデートすると起こるらしいのですが、Unity のソースコードで
```cpp
#include "UndefinePlatforms.h"
```
などとなっているところでエラーが出ます、これを
```cpp
#include <UnityFramework/UndefinePlatforms.h>
```
などに書き換えます。

# 追記
Minimum Deployments を手動で変更すると、ビルトは通るのにアーカイブでエラーになることがあるようです。
Podfile を編集して自動でやるとアーカイブが通ることもあるようなので追記します。
'12.0'のところは'11.0'以上の任意の最低対応バージョンにします。
自動にしたからアーカイブが通ったのか、何度もやってるうちにアーカイブが通ったりエラーになったりするので原因は不明です。


```
post_install do |installer|

↓↓↓↓↓↓↓↓↓↓ ここから　↓↓↓↓↓↓↓↓↓↓

  installer.generated_projects.each do |project|
   project.targets.each do |target|
     target.build_configurations.each do |config|
       config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
      end
   end
  end

↑↑↑↑↑↑↑↑↑↑ ここまでを追加　↑↑↑↑↑↑↑↑↑↑

  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
  end
end
```
UiPath Studio - Office 365を利用してSharePointにファイルをアップロード

# 前提条件
- 本記事で記載の実装が正しく動作するためには、Studio v21.10以上が必要です。
- また、アクティブディレクトリなどを導入されている環境では、アカウント情報の外部アプリアクセスを許可している必要があります。
- 必要なOffice 365バージョンをインストールするために以下を確認ください。
    - Studioスタート画面 > [設定] > [パッケージ ソースを管理] >　https://www.myget.org/F/workflow にチェックが入っていること。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/373b668c-3645-ff8a-0d1b-4e958d799a37.png)

# Office 365パッケージのインストール
- OneDriveやSharePointをUiPathで利用する場合は、Office365のアクティビティパッケージを活用します。
- Office365のアクティビティパッケージは、既定ではStudioにインストールされていないため、パッケージをダウンロードしてインストールすることが必要です。
- [デザイン] > [パッケージを管理] > [すべてのパッケージ] > Office 365を検索 > [Microsoft Office 365 作成者：UiPath]　をインストールします。ここでは v1.11.1を利用します。
<font color="Orange">※ Office365のv1.14.1以降では、包含するライブラリの依存関係により Studio v22.4以降でのみ動作します。サポート中の最古ver (20.10) も網羅するために本記事では1.11.1を利用しています。(執筆時 2023年月現在) </font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/3bf0b342-5ca1-68b9-954b-c78d5ff2a3f2.png)

# Microsoft アカウントの連携
- Studioの [連携] > [Microsoft] > [Office 365] > [ファイル] > [One DriveとSharepointを使用] アクティビティを配置します。
- [OneDriveとSharePointを使用] アクティビティで、[新しいアカウントを追加] を選択し、WebブラウザーよりMicrosoftアカウントにログインすることでアカウントとの接続を行います。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/fa037c8a-ecb3-5f9e-caa1-ec1dac197f98.png)

# アップロード先情報を取得
1. [OneDriveとSharePointを使用]の中に[ファイル/フォルダーを取得] アクティビティを配置します。
1. [ファイル/フォルダーを参照] から、OneDriveやSharePoint上のアップロード先フォルダーを選択します。
1. [参照名] の入力枠に右クリックし、[変数を作成] を選択して、フォルダー情報を格納する変数を作成します。
この例では「UL親フォルダー」という変数名にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/b22e6aaf-1b72-63b5-a7da-1d2617973a57.png)

# [任意] フォルダーを作成
※アップロード先でフォルダーを作成したい場合にこの手順を実施ます。不要な場合は任意です。
1. [フォルダーを作成] アクティビティを配置し、[フォルダー名]に新規で作成したい名前を設定します。
1. [ターゲットフォルダー] に親フォルダー（この例では「UL親フォルダー」）を設定します。
1. [参照名] の入力枠に右クリックし、[変数を作成] を選択して、フォルダー情報を格納する変数を作成します。この例では「UL結果フォルダー」という変数名にします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/94d16403-aa16-2a86-a98d-f02e42c7f359.png)

# ファイルをアップロード
- [ファイルをアップロード] アクティビティを配置し、[アップロードするファイル]にローカル端末のファイルを指定します。
- [ターゲットフォルダー] にアップロード先フォルダー変数（この例では「UL結果フォルダー」）を指定します。
- [新しい名前] に以下のような式を記述し、日付のついたファイル名を指定し、以下のようなファイルをアップします。
```vb
DateTime.Now.ToString("yyyyMMdd") + "_result.pdf"
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/9d0a9bfa-6b86-fa91-bb02-7ddf3f5ff16e.png)

# ワークフローの最終形
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3302318/d925014a-1a11-5d3b-10dc-cb4809b9c848.png)
GitHub Actionsのタイムアウト設定をChatGPTに相談した

## 事件

GitHub Actionsで実行しているジョブが終了せずに6時間消費してしまう事件がありました。
ログを見たところ`dotnet test` の実行中で止まっていたようです。
根本法な原因はわかりません。

## 知りたいこと

GitHub Actionsは使用時間によって課金されます。
度々起きて、実際の恩恵以上にコストが掛かるのはうれしくありません。
一定時間を過ぎたらエラーになるように、タイムアウトを設定したいです。
時間で課金するサービスなので、タイムアウトの設定はできるはずです。
しかし、どこにどうやって設定するのかわかりません。

## ChatGPTを使って調査

今までは公式ドキュメントを探したり、技術ブログを探したりしていました。
今回はChatGPTに質問してみます。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15964/2fb84b2c-ff43-c684-401e-d33c90912873.png)

`timeout-minutes`というプロパティを使えばよさそうです。
ChatGPTは時々嘘をつきます。
公式情報をみて確認してみましょう。
つづけてChatGPTに聞いてみます。

![image (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15964/8cbf922f-f048-5f9f-5617-b2103ad2e98b.png)

https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepstimeout-minutes を見ると良いようです。
URLを開きます。
英語です。
DeepLで翻訳します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/15964/591a55cf-27c6-2983-cb75-c2d167ec5859.png)

確かに`timeout-minutes`というプロパティを使えばよさそうです。

ついでにデフォルト値が360であることがわかりました。
なるほど、それで件のジョブ6時間で終了したようです。

## 動作確認

設定方法がわかったので、実際にGitHub ActionsのYAMLファイルを書き換えて動作するか確かめてみます。
確かめると言ってもタイムアウトすることを確認するのは難しいです。
エラーが起きないことを確認します。
タイムアウト時間が設定通りになるかは、ジョブがいくつか実行されるうちにいつか今回と同じ事象が起きて確認できるでしょう。

## まとめ

ここまで30分掛かりました。
従来通り公式ドキュメントを探したり、技術ブログを探したりしたら1時間掛かったのではないでしょうか？
知りたい内容に当たりがついていて、確認するだけの調査にはChatGPTが有効に使えそうです。
DBに接続する既存のSpring Bootプロジェクトを Github Codespaces で動かす

# Github Codespacesとは?
- Github が提供するクラウド開発環境
    - https://github.co.jp/features/codespaces
- ローカルではなく、クラウド上で以下の様なことができる
    - ソースコードのビルド、アプリケーション実行
    - ポート転送によりブラウザからアクセス
    - コミット前の修正ソースコードを保持
    - ブラウザのみで、ソースコードの修正・実行ができる

# やりたいこと
- Codespace で立ち上げたアプリケーションをデータベースに接続させる

# 前提プロジェクト
- Spring Boot で PostgreSQL に接続しているアプリケーション
    - データベースは別環境に接続していた

# 手順
## Codespace の作成
1. github のリポジトリのページから Codespace を作成する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/a84e6d0c-1b2b-3234-4738-cc10b0daae15.png)

## 開発用コンテナの設定を行う
1. ブラウザ上で vscode が開く
1. 左下をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/7f97fb12-a5ce-674f-bafd-307dacb0aef4.png)
1. `Add Dev Container Configuration Files..` をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/09ebcf17-8b00-a7a5-8d42-5c266943d8b0.png)
1. `Create...` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/f53ec858-2fb7-e7ac-86e9-cf913dac0ec0.png)
1. `post` を入力し、`Java & PostgreSQL...` を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/bb94f317-b029-9d08-bebb-74b959700768.png)
1. java のバージョンは適当なものを
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/32f19c26-5644-fedb-deb9-1b17df7f14b3.png)
1. 必要ならビルドツールも選択してインストール。ラッパーを使うなら不要
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/1912a4db-acb3-8560-f96d-367cc7012af3.png)
1. 必要なものがあれば選択。未選択でも OK。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/d81a2304-244f-c6c7-be31-5b6c0316f049.png)
1. 通知が出てくるのでコンテナをリビルド
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/c66ca915-b671-0e99-c956-a91825b23447.png)
1. .devcontainer フォルダに設定ファイルが作成される

## application.properties の DB 接続先情報を修正する
1. .devcontainer/docker-compose.yml の情報を参考に applicaiton.properties の DB 接続情報を修正
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517184/164df332-2f9b-1d63-8494-8544dedabfe6.png)
```
spring.datasource.url=jdbc:postgresql://postgresdb:5432/postgres
spring.datasource.username=postgres
spring.datasource.password=postgres
```

## アプリケーションを起動して動作確認
1. ターミナルからコマンド実行 `./gradlew bootRun` 
1. ポートタブなどからブラウザでアプリを開く

# まとめ
- Codespaces では Visual Studio Code Dev Containers をサポートしている
    - https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers
    - 活用することで接続するデータベースなども用意できる
Salesforce認定アソシエイト試験の公式練習問題解説してみた-16

こんにちは
本橋孝昭です。

Salesforce認定アソシエイト試験の公式練習問題があるのはご存じでしょうか。
Trailheadにフラッシュカードとして何度も解ける練習問題がございます。

今回は
認定資格試験の準備: Salesforce 認定アソシエイト＞
レポートとダッシュボードについて確認する

の問題4問目を解説します

今回の内容は動画でも解説しています

https://www.youtube.com/watch?v=I47lCvMfFDk

<iframe width="560" height="315" src="https://www.youtube.com/embed/I47lCvMfFDk" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>


https://trailhead.salesforce.com/ja/content/learn/modules/cert-prep-salesforce-certified-associate/review-reports-dashboards


正解はAです

ダッシュボードであれば複数のレポートの図を１つに表示させることが可能です

![2023-04-06 18_49_53-testのコピー _ Salesforce.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/531631/39aea705-4de0-a09c-2621-82effff94429.png)

レポートやダッシュボードの作成方法の商大はこちらのTrailheadをご確認ください

Lightning Experience のレポートおよびダッシュボード
https://trailhead.salesforce.com/ja/content/learn/modules/lex_implementation_reports_dashboards


## 他の認定アソシエイトの勉強方法について

他の勉強方法についてはこちらをご確認ください

https://qiita.com/Takaa/items/d35c9955fe8eb889d76b
Next.js: getServerSidePropsでの細かいエラーハンドリング(404と500以外のエラーハンドリングをする方法)

本稿では、Next.jsのgetServerSidePropsでエラーハンドリングを行う方法について基本的なことを解説し、その上でより細かいエラーハンドリングを行う方法について説明します。

## Next.jsが世話してくれるのが404と500だけ

Next.jsのgetServerSidePropsは、ページコンポーネントをレンダリングする前に、サーバーサイドで任意の処理を行える機能です。getServerSidePropsではさまざまな処理を行えますが、たとえばAPIを実行してページに必要なデータを取得するといったケースでも使われるかと思います。

データの取得がいつもうまくいくといいのですが、実際はエラーが起きることもあるので、エラーのハンドリングを考慮しなければなりません。たとえば、データを取得しようとして404ならNot Foundページを出す、401ならログインフォームを出すといったニーズもあるかと思います。

getServerSidePropsにて、404ページを出す指示は簡単で、`{ notFound: true }`を返すだけです。

```ts
export const getServerSideProps: GetServerSideProps<PageProps> = async () => {
  return { notFound: true };
};
```

そして、500ページを出すのも簡単で、例外を投げるだけです。

```ts
export const getServerSideProps: GetServerSideProps<PageProps> = async () => {
  throw new Error("something wrong");
};
```

しかし、404と500以外の処理は簡単ではありません。なぜかというと、getServerSidePropsで返せる値に制限があるためです。次はgetServerSidePropsの戻り値の型ですが3種類しかありません。

```ts
export type GetServerSidePropsResult<Props> =
  | { props: Props | Promise<Props> }
  | { redirect: Redirect }
  | { notFound: true }
```

自由なエラーハンドリングを行うには、`props`にエラー情報を格納し、ページコンポーネント側で処理する必要があります。

## ページコンポーネントでエラーハンドリングできるようにpropsを返す

ページコンポーネントでエラーハンドリングできるようにするためには、getServerSidePropsで例外を投げるのではなくpropsを返すようにする必要があります。たとえば、

```ts
type PageProps = { data?: string; error?: string };
```

のようなデータとエラーのプロパティーをページのPropsとして宣言しておき、getServerSidePropsでは、次のようにエラーのときは`error`プロパティーを返すようにします。


```tsx
export const getServerSideProps: GetServerSideProps<PageProps> = async () => {
  try {
    const data = await fetchData();
    return { props: { data } };
  } catch (e) {
    return { props: { error: "Error message" } };
  }
};
```

一方のページコンポーネント側では、次のように`error`プロパティがセットされているかをチェックし、エラー用のレンダリングを行うようにします。

```tsx
const DemoPage: NextPage<PageProps> = ({ data, error }) => {
  if (error) {
    return <div>Error: {error}</div>;
  } else {
    return <div>Data: {data}</div>;
  }
};
```

こうしておくと、404か500の二択ではなく、細かいエラーハンドリングができるようになります。


## HTTPのステータスコードでも表現する

上で書いたgetServerSidePropsの処理は、エラーの内容をページコンポーネントに渡すことに注目して書いたものです。propsでエラー情報を渡すだけでは、ページのHTTPステータスコードは200のままです。もしも、HTTPのステータスコードもエラーに合わせて変更したい場合は、getServerSidePropsの引数に入っている`res`オブジェクトに`statusCode`をセットすることで対応可能です。たとえば、400をセットするなら次のようなコードになります。

```ts
export const getServerSideProps: GetServerSideProps<PageProps> = async ({
  res,
}) => {
  try {
    const data = await fetchData();
    return { props: { data } };
  } catch (e) {
    res.statusCode = 400; // ここ
    return { props: { error: "Error message" } };
  }
};
```
【コマンド】ネットワーク上の共有フォルダ一覧を取得する

windowsコマンドプロンプトを使ってネットワーク上の共有フォルダの一覧を取得した際に調べた内容

----------------------------------------------------------------------------------

### 共有フォルダへ移動
```
C:¥> pushd ¥¥マシン名¥共有名¥……
Z:¥¥共有名¥……＞ 
↑
こんな感じになる
```


### 一覧を取得
```
Z:¥¥共有名¥……> dir /s /b >出力ファイル名.txt
```

/s　指定されたディレクトリおよびそのサブディレクトリのすべてのファイルを表示
/b　拡張子とディレクト付きのファイル名を表示

### 一覧をツリー構造で取得
```
Z:¥¥共有名¥……> tree 一覧取得したいフォルダ名 /f >出力ファイル名.txt
```

/f　各ファイルやディレクトリを指定したディレクトリからのパスを付けて表示
　（指定なしはカレントディレクトリから表示）

-------------------------------------------------------------------------
#### 参照
[コマンドラインからネットワーク上の共有フォルダーにアクセスする](https://news.mynavi.jp/article/win10tips-459/)
[【 tree 】コマンド――ディレクトリをツリー状に表示する](https://atmarkit.itmedia.co.jp/ait/articles/1802/01/news025.html)
Next.jsでのエイリアス設定とModule not foundエラーの解決方法

# 現象
Next.jsの書籍で勉強しながら開発を進めていたところ、エイリアスを使用してモジュールをインポートしようとしたが、Module not found: Can't resolve '@/styles/globals.css' のようなエラーが発生した。
ずっと正常に動いており、cssファイルは一切触っていなかったがこのエラーが起き、とても戸惑った。
同じ現象で困っている人の解決に費やす時間を少しでも短くできたらと思う。
# 結論
1. tsconfig.jsonにエイリアス設定が不足していた。
2. エイリアスの設定が正しく機能していなかった。
# この現象が起きた原因
私が書籍の通り進めていくうちに、TypeScriptを設定する章に入り、書籍通りに進めていたところ、「このコードをtsconfig.jsonを作成して貼り付けろ」という指示が出た。
このコードを貼り付けてからyarn devをすると、エラーを吐く様になった。

原因としては、書籍からコピーしたtsconfig.jsonにエイリアスの指定がなかったからだ。
エイリアスとは絶対指定の@のことを指す。

ならなぜ初めの方は動いていたのかというと、初めはTypeScriptは使用していなかったため、create-next-appの際に作成されたjsconfig.jsonにエイリアスを指定する記述があったからだ。

当たり前のことだが、どうやら開いているページに使っているファイルの拡張子が「.jsまたは.jsx」の場合はjsconfig.jsonを読み込み、「.tsまたは.tsx」の場合はtsconfig.jsonを読み込んでいるようだ。
# 解決方法
**エイリアスの設定をtsconfig.jsonに追加する**

tsconfig.jsonにbaseUrlとpathsオプションを含めることで、エイリアスが正しく設定される。
エラーを吐いている文の@のすぐ後ろのフォルダを以下の様に指定してあげることで直すことが出来た

```
{
  "compilerOptions": {
    // ...その他の設定
    "baseUrl": ".",
    "paths": {
      "@/styles/*": ["styles/*"], //stylesフォルダのエイリアスを追加
      "@/utils/*": ["utils/*"] //utilsフォルダの追加
    }
  },
  // ...その他の設定
}

```
# 上記の対処法でダメな場合
**エイリアスを使わずに相対パスを使用する**

好みによっては嫌な方がいるかもしれないが、もしエイリアスが上記の対処法で機能しない場合は、相対パスを使用してインポートを試みると改善されるはずだ

例
```
import styles from "../../styles/globals";

```
# 最後に
書籍の通り進めても、今回の様な書籍に書かれていないエラーが発生するため、ここを調べて乗り越える力が、書籍で勉強するには必要な力のようだ...
リモートリポジトリを新規追加する際にremote origin already existとエラーで出たときの対処法

```
error: remote origin already exists.
```

まずこのエラーは "origin"という
同じリモートの名前が
既にあるということを指しています。
※ 特に命名を気にしない場合、大抵が名前をoriginにしたかと思います。


ちなみにここでいうリモート名は、
このようにgit hubに載せている
リポジトリ名ではありません。
<img width="300" alt="Github.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3113349/9068a6de-42a0-bae2-a4fd-4ddeab0825f3.png">

【解決方法】
名前を変えるという方法もあるかと思いますが、
既存のリポジトリが不要だったので、削除するようにやってみました！:point_up:

git remote -vコマンドを使用して、
現在リモートリポジトリとして
設定されているものを確認します。
```
git remote -v
```
すると、このような感じで出てくると思います。
```
origin  https://github.com/"ユーザー名"/"Git hub上で作成したリポジトリ名".git (fetch)
origin  https://github.com/"ユーザー名"/"Git hub上で作成したリポジトリ名".git (push)
```
ここで左側にoriginという
リモート名が確認されたので、
git remote removeコマンドを使用して、
リモートリポジトリを削除していきましょう。
```
git remote remove <リモート名>
```
ここでいうリポジトリ名は
git remote -vで確認したoriginを指します。

それではoriginの名前で
リモートリポジトリを追加しましょう:ok_hand:
```
git remote add origin <リモートURL名>
```

お疲れ様でした:relaxed:
他にも方法はあると思いますが、
今回は既存のもの削除して追加するという方法になりました！
週一でPython勉強会やってみる①

## はじめに
社内の有志で行っている勉強会のまとめを記載していきます。
教材は「Python自動処理の教科書」です。
開発環境はGoogle Colaboratoryを使用します。
レベルは全く触ったことない人、少しだけ触ったことある人だけなので手探りでやっていきます。
※ざっくりなまとめです。また、教材と少しそれたこともやります。

以下箇条書き
## Pythonについて
Pythonは幅広く使われている言語。（自動化やデータ分析等多方面）
ライブラリが充実しているオープンソースなので比較的とっつきやすい。
{}で囲うというスコープの概念が異なる。（JS習得済みのため比較対象）

## Pythonのインストール
省略。Google Colaboratory使うので不要。

## 触ってみる
**ライブラリのインポート方法**
※hogeモジュールのfugaオブジェクトを使う例で
「import hoge」→ベーシックなライブラリインポートの書き方
　例：hoge.fuga.get()
「from fuga import hoge」→　hogeモジュールないのfugaオブジェクトをインポート
　例：fuga.get()
「import hoge as hg」→インポートライブラリのエイリアス設定
　例：hg.fuga.get()

**変数宣言**
JSのように「var/let/const」がない。
　例：t = fuga.get()
型宣言もない。

**暗黙的型変換**
JSと違い暗黙的な型変換はない。型は揃えないとエラー。
　例：〇JS→print("apple" + 2 + "個")
　　　×Py→print("apple" + 2 + "個")
型は「str」や「int」がある。
LocalStorageはの使い方

# LocalStorageの使い方


LocalStorageは、ブラウザにデータを保存するためのWebストレージAPIの1つです。LocalStorageは、セッションやクッキーとは異なり、データの保存期間が長く、ブラウザを閉じても保存されます。

LocalStorageを使用すると、JavaScriptを使用して簡単にデータを保存および取得できます。データは、キーと値のペアとして保存されます。キーは一意であり、値は文字列である必要がありますが、JSON.stringifyを使用してオブジェクトを文字列に変換し、JSON.parseを使用して文字列をオブジェクトに変換することができます。

LocalStorageに保存できるデータの量には制限がありますが、通常は5MB程度です。また、同じオリジンのページ間でのみアクセスできます。別のオリジンのページからアクセスしようとすると、セキュリティ制限によりアクセスできません。

## LocalStorageの基本的な使い方
LocalStorageの基本的な使い方は、以下のようになります。

// データを保存する
localStorage.setItem('キー', '値');

// データを取得する
var value = localStorage.getItem('キー');

// データを削除する
localStorage.removeItem('キー');

// すべてのデータを削除する
localStorage.clear();

以上のように、LocalStorageを使用すると、ブラウザ上で簡単にデータを保存および取得できます。ただし、機密情報や重要な情報を保存する場合には、暗号化を行ったり、サーバー側でデータを管理するなど、セキュリティを考慮する必要があります。

## 使用例

LocalStorageは、ブラウザ上での簡単なデータ保存に便利です。以下は、LocalStorageを使用した使用例です。

1. ログイン情報の保存
ログイン情報をLocalStorageに保存することで、次回アクセス時にログイン情報を再入力する必要がなくなります。ただし、機密情報を保存する場合には、暗号化を行う必要があります。

1. 言語設定の保存
ユーザーの言語設定をLocalStorageに保存することで、次回アクセス時に自動的に言語が設定されます。

1. ショッピングカートの保存
ショッピングカートの情報をLocalStorageに保存することで、ユーザーがサイトを離れてもカートの中身が保持され、次回アクセス時に継続してショッピングを続けることができます。

1. ゲームの進行状況の保存
ゲームの進行状況をLocalStorageに保存することで、ユーザーがゲームを中断しても、再開時に続きからプレイすることができます。
これらはLocalStorageを使用した一般的な例であり、他にも様々な使い方があります。しかし、LocalStorageはセキュリティ上の制限があるため、機密性の高い情報の保存には適していません。

## コード例
以下は、LocalStorageを使用した基本的なコード例です。

- ログイン情報の保存
```JavaScript
// フォームから入力されたログイン情報を取得する
var username = document.getElementById('username').value;
var password = document.getElementById('password').value;
// ログイン情報をLocalStorageに保存する
localStorage.setItem('username', username);
localStorage.setItem('password', password);
```
- 言語設定の保存
```JavaScript
// 言語設定を取得する
var language = document.getElementById('language').value;
// 言語設定をLocalStorageに保存する
localStorage.setItem('language', language);
```
-  ショッピングカートの保存
```JavaScript
// ショッピングカートの情報を取得する
var cart = [{id: 1, name: '商品1', price: 100}, {id: 2, name: '商品2', price: 200}];
// ショッピングカートの情報をLocalStorageに保存する
localStorage.setItem('cart', JSON.stringify(cart));
```
- ゲームの進行状況の保存
```JavaScript
// ゲームの進行状況を取得する
var progress = {level: 5, score: 1000};
// ゲームの進行状況をLocalStorageに保存する
localStorage.setItem('progress', JSON.stringify(progress));
```
上記の例では、LocalStorageに値を保存する方法を示しています。データを取得する場合には、localStorage.getItem('キー')メソッドを使用します。データを削除する場合には、localStorage.removeItem('キー')メソッドを使用します。また、すべてのデータを削除する場合には、localStorage.clear()メソッドを使用します。
NTP St1モジュールのステータス

FON2405で動かしているNTP St1でステータスをLEDで出すようにしました。

JJYのntpq

```
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*JJY(0)          .JJY.            0 l   63   64  377    0.000   -3.536   2.998
```

GPSのntpq

```
# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
oGPS_NMEA(0)     .GPS.            0 l    1   16  377    0.000   +0.001   0.015
```

スクリプト

```
#!/bin/sh

ST1=`ntpq -p | tail -1 | sed -e '/^[\*o]/s/^.*$/OK/'`

if [ "${ST1}" == "OK" ]; then
# LED ON
gpioctl 11 0
else
# LED OFF
gpioctl 11 1
fi
```

これをcronで1分おきに実行します。

三つあるLEDで左のは[PINコントロール](https://qiita.com/yamori813/items/4fcb3a784f13e328917b)でUARTにしているので使えません。11は真ん中のLEDです。右のLEDはstatusで点滅するようにしています。点滅で正常動作が確認できるので、便利です。

このモジュールはRalinkのRT3050というSOCを使っていて、watchdogdを使っていたところ、かなりの頻度で再起動していたため、少し様子を見たところ、どうも寒い時期には不調になりやすいようで、3月くらいからはいたって安定している。

どうもntpのリリースによって安定しないものもあって、これの影響の可能性があるようだ。ntpはここのところはpatchレベルのリリースになっているが、大きく挙動が変わる事も多く、不思議な感じもする。

JJYのモジュールは2週間に一度くらい落ちて、落ちた時にpsを見るとntpqの実行していたので、いったんこの処理は止めてある。(2023/7)
Powerpointで保存先がd.docs.live.netになってしまう問題

Powerpointでファイルの保存先がデフォルトで d.docs.live.net となっており、保存時に認証を求められたり保存に失敗したりします。

厄介なのでオフにしてしまいます。

# OneDriveの設定をリセットする

理由がわからんのですが、後続の「クラウドフォルダに保存しないようにする」だけ対応してもうまく行きませんでした。

以下のコマンドを実行して、設定をリセットします。リセット自体はバックグラウンドで行われますが、ファイルの同期を一通りやり直すようで、結構な時間がかかるので注意。

```powershell
cd 'C:\Program Files\Microsoft OneDrive\'
.\OneDrive.exe /reset
```

https://www.ebugg-i.com/office365/how-to-fix-onedrive-error-connecting-to-ddocs-live-net/

https://support.microsoft.com/ja-jp/office/onedrive-%E3%82%92%E3%83%AA%E3%82%BB%E3%83%83%E3%83%88%E3%81%99%E3%82%8B-34701e00-bf7b-42db-b960-84905399050c

# クラウドフォルダに保存しないようにする

OneDriveの設定で「ファイルのコラボレーション」をオフにします。

![2023-04-07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147207/4adf2d71-69bd-65ed-5d1f-793e953f1c92.png)

https://www.youtube.com/watch?v=5yUVMOT8KDQ
AWSの構成図自動生成サービスまとめメモ

# はじめに
既に運用されているAWSのWEBアプリの、リソースを読み込んで構成図を自動生成してくれるサービスまとめメモになります😃

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1455073/e6bb1b7a-8490-5013-62e2-2b85ce13ffb7.png)

# 一覧

## [Cloudcraft](https://www.cloudcraft.co/ "Cloudcraft")
- 年490ドル

## [SmartDraw](https://www.smartdraw.com/ "SmartDraw") 
- 月9.95ドル
    - 個人アカウントの場合。
    - 年単位払いのため最低でも9.95*12=119.4ドル

## [Cloudockit](https://www.cloudockit.com/ "Cloudockit")
- 年1250ドル
    - 1ユーザープランの場合。

## [Lucidscale](https://lucidscale.com/ "Lucidscale")
- 年269,000円

## [hava](https://www.hava.io/ "hava")
- 1ソース 無料
    - 無料版で自動生成が可能か~~未確認です🙇~~
      - →可能です！ただし、png形式などでのエクスポートは不可です
- 5ソース 月59ドル

## [AWS でのワークロード検出 (旧称: AWS Perspective)](https://aws.amazon.com/jp/solutions/implementations/workload-discovery-on-aws/ "AWS でのワークロード検出 (旧称: AWS Perspective)")
- 月535.85ドル(くらい)

# その他、おまけ

## [AWS CloudFormation Designer](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/working-with-templates-cfn-designer.html "AWS CloudFormation Designer")
- 無料
- サービス全体の構成図ではなく1つのCloudFormationスタックについて表示、画像保存はできます

### 手順
1. AWSコンソールのCloudFormation
1. スタック
1. スタックの詳細（スタックの名前をクリック）
1. テンプレート タブ
1. デザイナーで表示
1. 右上の「図をイメージとしてダウンロード」

## [CloudMapper](https://github.com/duo-labs/cloudmapper "CloudMapper")
- 無料
- レポート機能はまだサポートされていますが、構成図の自動生成サービスはメンテナンスされなくなっています
    - 試したところ自分は使えませんでした


# おわりに
お読みいただきありがとうございました。
どなたかの参考になれば嬉しいです。
Developer Intermediate >  Asynchronous Apex > Use Future Methods


# Use Future Methods
+ [Use Future Methods](https://trailhead.salesforce.com/content/learn/modules/asynchronous_apex/async_apex_future_methods?trail_id=force_com_dev_intermediate)

+ [Methods defined as TestMethod do not support Web service callouts on using future method tests](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000Jgl1Q)

:::note
Please check this article.

https://developer.salesforce.com/forums/?id=906F0000000BaG9IAK
:::
Herokuのまとめ

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめA～M](https://qiita.com/Keiji_otsubo/items/f3ddedee6793bf1576f8)


# 無償プランがない？

+ [Is there a way create a free Postgres database in Heroku?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Jgklr)

:::note
As of November 28th, 2022, Heroku is no longer offering free dynos, hobby-dev Heroku Postgres, or hobby-dev Heroku Data for Redis plans.

Free Heroku Dynos, Heroku Postgres and Heroku Data for Redis are no longer available
https://devcenter.heroku.com/changelog-items/2502
:::


# 私の記事の中で関連しそうなもの

+ [イベントログファイルのまとめ](https://qiita.com/Keiji_otsubo/items/2735a15e52e56ec0f281)
+ [Knowledge Import/Export Tools](https://qiita.com/Keiji_otsubo/items/8deed6e368d37ad672ec)
+ [Salesforce Knowledgeの一括更新](https://qiita.com/Keiji_otsubo/items/a29ae9f1724b8ed36cbf)
+ [ナレッジ記事関連の覚え](https://qiita.com/Keiji_otsubo/items/3e5dcc478cb65b0d432c)
+ [開発関係,Apexの事例](https://qiita.com/Keiji_otsubo/items/fbbf7b9b1733aabb4e75)
+ [Apex Wrapper Salesforce Metadata API Part 1](https://qiita.com/Keiji_otsubo/items/6291a4f116efb8c46efc)

# ライセンス

+ [Is there a way create a free Postgres database in Heroku?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Jgklr)

:::note
As of November 28th, 2022, Heroku is no longer offering free dynos, hobby-dev Heroku Postgres, or hobby-dev Heroku Data for Redis plans.

Free Heroku Dynos, Heroku Postgres and Heroku Data for Redis are no longer available
https://devcenter.heroku.com/changelog-items/2502
:::

# Heroku ナレッジ記事のエクスポート/インポートは機能しますか?

+ [Does Heroku Knowledge article Export/Import working?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007AkznG)


# unsupported_grant_type - grant type not supported 

+ [Configure Org Registration in Heroku](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007RgHEZ)

:::note
At the end I solved it going to App Manager =>  looking for ProjectService connected app => Manage =>  check: IP Relaxation
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/9885473e-3f0a-1412-a9d2-b97469401498.png)
:::
pi picoでmicropython その35

# 概要
picoでmicropythonやってみた。
練習問題やってみた。

# 練習問題
俺言語インタープリタを拡張しLチカを実行せよ。

# 方針
- gpioの初期化
- 変数lの導入　LEDを操作する。
- 変数"の導入　sleepを実装する。

# Lチカのコード

l=0　LED点灯
l=1　LED消灯
"=1　1秒待つ

```
10 a=0
20 a=a+1
30 l=1
40 "=1
50 l=0
60 "=1
70 #=a<10*20
80 #=300
```
1秒、点灯、1秒、消灯を10回。


# サンプルコード

```
import time
import sys
led = machine.Pin(25, machine.Pin.OUT)

def ordr():# siki hyouka
   global Ptr, Val, C, Adr
   getvr()# hidari
   Ptr = Ptr + 2
   if READB(Ptr) == ord('"'):
      Ptr = Ptr + 1
      putlp(ord('"'))
   elif READB(Ptr) == ord('!'):
      print()
   else:
      expr()# migi
      if C == ord('?'):
         put(Val)# print
      elif C == ord('l'):# led
         led.value(Val)
      elif C == ord('"'):# sleep
         time.sleep(Val)
      else:
         WRITEB(Adr, Val)# dainyuu
```


# 実行結果

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/4e69ba6c-f1aa-0341-9673-5455bf4aff81.png)

以上。
フローを使ってユーザ、リードのNameフィールドを参照できない


+ [リードで登録されている情報を、別オブジェクトに登録する際の不明点](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000OtBxKSAV)

何故かFirstNameとLastNameを使わないと参照できないですね。

入力するときにはこの２つのフィールドが表示されるので特殊なフィールドかもしれません。
しかしSOQLでは問題なく表示できます。

+ [レコードトリガーフロー - ケースの更新 - 開始の設定 - ユーザーがゲストではないことを確認する条件を追加する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ifmlC)

# メールのテンプレートでも機能しない感じです

+ [Pardot HML fields](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Jgkzj)

差し込み項目は、Lightning メール テンプレートの取引先責任者およびリード オブジェクト (これは Salesforce のロードマップにあります) ではまだ使用できません。


参照 : https://www.salesforceben.com/your-complete-guide-to-salesforce-lightning-email-templates/ 


はい、ここでも受信者の差し込み項目が機能しないことがわかりました。 

電子メールの受信者は連絡先になるため、従来の電子メール テンプレートでは、連絡先の差し込みフィールドを使用して、連絡先の氏名を戻すことができます。 

```
{!Case.Contact}
``` 

ただし、Lighting メール テンプレートでは、連絡先の名前のみを表示するテキスト式フィールドをケースに作成する必要があると思います。何かのようなもの： 

```
Contact.FirstName & " " & Contact.LastName
``` 

次に、Lightning メールテンプレートでこの項目を使用します。 

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000GeNIV

# これも同じかもしれない

+ [WooCommerce issue with "name" field.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000HEdEe)

:::note alert
{"success":false,"errors":[{"statusCode":"INVALID_FIELD_FOR_INSERT_UPDATE","message":"Unable to create\/update fields: Name. Please check the security settings of this field and verify that it is read\/write for your profile or permission set.","fields":["Name"]}],"message":"Created","post_id":34696}
:::

:::note
 you should use FirstName and LastName fields rather than Name over Person Account enabled org
:::

+ [フローにてレコード作成を行なう際の動作について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007OtA5o)
「バッテリー残量のアニメーション」を作る1(STM32G071)(SSD1306(128x32))

完成図

![o_cop457.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/f2c5cf07-107e-dfe2-aea3-1114161482f4.jpeg)


開発目的

小型で視認性の高い表示装置を作る
全体は、白で図は、黒

開発要件

128x32サイズの画面を5から6枚程度使い
交互に切り替えてアニメーションする

0が空でnが満充電

満充電から減っていくアニメーション


Adafruit_GFX.hとAdafruit_SSD1306.hを使用

![o_cop458.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/8da5d523-33bc-715e-68bd-df3007b2af43.jpeg)
JetBrains系IDEを使っているなら「InlineError」を入れておくと便利ですよ

本稿では、JetBrains社のIDE（IntelliJ IDEA, PyCharm, WebStorm, PhpStormなど）を使っている開発者の皆さんに、とても便利なプラグイン「InlineError」を紹介します。このプラグインを使うことで、エラーや警告の情報がすぐに確認できるようになります。それでは、導入方法と使い方を見ていきましょう。

## インストール方法 

1. JetBrains IDEを開いて、`File` > `Settings`（Macの場合は`Preferences`）を選択します。 
2. 左のメニューから`Plugins`を選択し、検索ボックスに「InlineError」と入力して検索します。
3. 検索結果から「InlineError」を選び、「Install」ボタンをクリックしてインストールします。
4. インストールが完了したら、プラグインが自動的に有効になります。

![](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889/2cf87680-b585-3b88-386a-16956cf72c54.png)

## 使い方

インストールが完了したら、InlineErrorプラグインが自動的に機能し始めます。エラーや警告があるコードの行には、その行の右側に赤文字でエラーメッセージや警告内容が直接表示されます。これにより、問題の箇所をすぐに把握し、修正作業を効率化できます。

例えば、以下のようなTypeScriptコードがあるとします。

```typescript

function add(a: number, b: number): string {
    return a + b;
}
```

このコードでは、関数の戻り値が`string`型と指定されていますが、実際には`number`型の値が返されているため、型エラーが発生します。InlineErrorを使っていると、その行の右側にエラーメッセージが表示されます。

![InlineErrorにより、a+bの行の右側に「Type 'number' is not assignable to type 'string'.」と赤字で表示されている様子](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889/9fb5d6e2-3220-ce52-b15e-f13a0d8e2d88.png)

このように、InlineErrorプラグインを導入することで、エラーや警告の情報がすぐに分かるようになり、開発効率が向上します。

## まとめ

JetBrains系のIDEを使っている開発者には、InlineErrorプラグインが大変便利です。エラーや警告の情報がすぐに確認できるため、問題箇所の特定や修正作業が効率的に行えます。ぜひ、試してみてください。
よくわからないでは駄目：システムの脆弱性について

未経験からエンジニアになりたい人は、プログラミングから始める人が多いと思いますが、
エンジニアの仕事は、プログラミングだけではありません。そして、プログラミングだけでは、エンジニアになれません。同時にプログラミングが苦手でも、システム構成や開発の流れを理解するとエンジニアに近づきます！
今回は具体的なシステムの脆弱性について更に詳しく調べてみましょう！
![インスタスライド_2023031707.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/23130/11af208d-58bc-8a4c-66db-68eaa017c461.gif)


# システムの脆弱性とは
脆弱性 (vulnerability) とは、ソフトウェア、ハードウェア、ネットワーク、システムなどのセキュリティ上の問題や欠陥のことを指します。

脆弱性がある場合、攻撃者がシステムに不正にアクセスし、機密情報を盗み出す、システムを破壊する、ウイルスを拡散させる、などの攻撃を行うことができます。

# 攻撃者の種類
## ■ハッカー：
特定のシステム、プラットフォーム、あるいはネットワーク向けのソフトウェアコードを書くことに習熟している人達。
## ■クラッカー：
犯罪的にコンピュータへ侵入する人。セキュリティを破る（クラック）事から転じたものと思われる。ハッカーに比べると軽蔑的意図が含まれる。
## ■Script Kiddy ：
インターネット上で公開されている操作が簡単なクラックツールを利用して、興味本位の不正アクセスを試みる「幼稚な」クラッカー。

# 攻撃者の動機

- 過失
- いたずら
- 知的好奇心・自己顕示
- 金銭・復讐・サイバーテロ

# まとめ
ーシステムの脆弱性とは、セキュリティ上の問題や欠陥のことを指す。
ー攻撃者には、ハッカー、クラッカー、Script Kiddy 等がいる

# 最後に
未経験の皆さん、若手エンジニアの皆さん、勉強方法について悩みがあればなんでも気軽に質問して下さい！
これからも記事を書いていきますので、モチベーションアップのためフォロー、イイねお願いします。
Power Automate for desktopでWebの操作を自動化してみる

こちらの記事の内容は、以下の書籍の勉強の記録です。
書籍の内容を合わせてご確認いただくと、分かりやすいものと思われます。

https://www.amazon.co.jp/%E3%81%A7%E3%81%8D%E3%82%8BPower-Automate-desktop-%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E3%81%82%E3%83%BC%E3%81%A1%E3%82%83%E3%82%93/dp/4295015938/ref=sr_1_6?keywords=power+automate+%E6%9C%AC&qid=1680744459&sprefix=Power+Automate%2Caps%2C163&sr=8-6

基本的には、私の勉強記録ですので気楽にご覧いただければと思います。
最初からご覧になりたい方はこちら。▼

https://qiita.com/inaho3517/items/c1e702f763631d3fd081

# 勉強内容の確認

書籍について公開されている目次は以下の通りです。

　＜基本編＞
　　　第１章　[Power Automate for desktopの基本を学ぼう](https://qiita.com/inaho3517/items/c1e702f763631d3fd081 "Power Automate for desktop を勉強する話")
　　　第２章　[業務の自動化に必要な基本操作を覚えよう](https://qiita.com/inaho3517/items/d5f770c3e278d6b626e1 "Power Automate for desktop の基本操作を覚える")
　＜活用編＞
　　　第３章　[Excelの作業を自動化しよう](https://qiita.com/inaho3517/items/490fe4e36b981ea2b135 "Power Automate for desktopでExcelの作業を自動化してみる")
　　　**第４章　Webフォームへの入力を自動化しよう**　　　◀ 本日はこちら！
　　　第５章　業務シーン別のテクニックを覚えよう

今日からは、どんどん活用方法を覚えていきます！💪

# Webの活用も自動化したい
RPAツールを使った自動化で、次にご要望が多いのが「**Webの自動化**」ですね。
最近はクラウドサービスを利用されている方もいらっしゃるので、こちらも必須の処理。
頑張って覚えていきますよ～😄
# 本日の勉強メモ
いつもどおり、書籍にそって勉強開始！
## 作成フローの確認
作業の全体像を解説してくれています。
ここで何の作業を自動化していくのか全体像を説明していくことで、頭の整理ができるよう構成されています。
## Webの自動化
今回はレコーダーの機能を利用したロボットの作成方法でした。
どのアクションを組合わせればいいかが分からなかったので、操作しながら自動配置されるのはとっても便利。
もちろん繰り返しや条件分岐までは自動取得できないので、１データ分の操作を行ってから手動で繰返し処理を追加する方法を学習していきました。
今回は一発で処理を完了することが出来ましたよ👍
自動で作成される変数の名称変更やテキストの編集方法なども勉強になりました！

こちらも、第２章の[業務の自動化に必要な基本操作を覚えよう](https://qiita.com/inaho3517/items/d5f770c3e278d6b626e1 "Power Automate for desktop の基本操作を覚える")で、基本をしっかり身につければ、難なくこなすことが出来ました！

# 本日のまとめ
Webの操作について学ぶことが出来ました。
こちらも、メインで使用するアクションについて学べました！
Webの部品は種類が多くあるので、レコーダーの機能でサクッと調べるのが近道ですね。

今回も納得の内容でした！次回もお楽しみに！😄
2023/4/7主にITとかセキュリティの記事

ウェブ会議システム「Apache OpenMeetings」に深刻な脆弱性
https://www.security-next.com/145089

元職員が患者情報を持ち出し、他医療機関に勧誘 - 松本市内の病院
https://www.security-next.com/144934

総務省名乗り住民税の督促などと金銭だまし取る詐欺SMSに注意
https://www.security-next.com/145130

国交省の「国土数値情報データ変換ツール」に脆弱性 - 削除呼びかけ
https://www.security-next.com/145112

兵庫県、「Active Directory」のセキュリティ強化にサイバーエクスポージャー管理を活用(4/5)
https://japan.zdnet.com/article/35202152/

2022年、ダイレクトパス攻撃が急増 DDoS攻撃全体の半数を占める NETSCOUT DDoS脅威インテリジェンスレポートより(4/5)
https://www.jiji.com/jc/article?k=20230404005297&g=bw

悪質化するランサムウェア、多層的なセキュリティ対策を - 週末や休日も要注意(4/5)
https://boxil.jp/mag/a7921/

2023年第1四半期の合計損失額は4.37億ドル、Immunefiが報告(4/5)
https://crypto-times.jp/news-immunefi-report-q1/

JPRSがJPドメインのレポートを公開、JPドメインは170万件を超える(4/5)
https://scan.netsecurity.ne.jp/article/2023/04/05/49159.html

カード不正利用436億円　22年最大、偽サイト誘導で被害(4/5)
https://www.nikkei.com/article/DGXZQOUB041XU0U3A400C2000000/

何かあってからでは遅いと思いつつ「何かあってからに動こう」という企業が6割　WithSecureがセキュリティ調査結果を発表(4/5)
https://atmarkit.itmedia.co.jp/ait/articles/2304/05/news039.html

Wi-Fi対応ガレージにハッキングして誰でも開けられる欠陥が発覚、メーカーは何ヶ月も修正対応せず(4/5)
https://gigazine.net/news/20230405-hackers-smart-garage/

品質だけでない現場のコンプライアンス違反リスク、複雑な要請にどう対応するか(4/5)
https://monoist.itmedia.co.jp/mn/articles/2304/05/news014.html

スマートフォンをハッカーから守る--5つの簡単な対策で保護を強化(4/5)
https://japan.zdnet.com/article/35202100/

アップグレードの繰り返しで無駄に増えたWindowsの回復パーティションを“スッキリ”と削除する方法(4/5)
https://atmarkit.itmedia.co.jp/ait/articles/2304/05/news008.html

【SNS炎上の企業事例】SNSで企業が炎上する原因と過去の炎上事例まとめ(4/5)
https://gaiax-socialmedialab.jp/post-45809/

FISC調査報告会（4月27日）開催のご案内
オープンAPIをめぐるわが国の動向　～現状・課題・展望～
https://www.fisc.or.jp/event/event/005741.php

日本のAI（人工知能）導入状況と導入の必要性、業界別の活用事例を解説(4/5)
https://aismiley.co.jp/ai_news/ai-adoption-status-and-use-cases-in-japan/

報道発表資料　個人情報（電子メールアドレス）の流出について （第一報）(4/4)
https://www.city.toyota.aichi.jp/pressrelease/1053884/1053940.html

第214回：欧州の運輸業界におけるサイバー・インシデントの実態(4/5)
https://www.risktaisaku.com/articles/-/78163

全PCが乗っ取られる？『体験型』サイバーセキュリティ研修を実施(4/5)
https://japan.cnet.com/release/30845866/?ref=rss

AOSデータ社「AIデータフォーラム」開催レポート(4/5)
https://prtimes.jp/main/html/rd/p/000000232.000040956.html

新たなmacOSマルウェア「MacStealer」登場、Keychainのデータなど窃取(4/5)
https://news.mynavi.jp/techplus/article/20230405-2644371/

iOS 17、サポートが外れるのはiPhone 8シリーズとiPhone X？毎年恒例の噂が登場(4/5)
https://corriente.top/ios-ipados17-drop-support-197753/

総務省を騙るフィッシングサイトに関する注意喚起(4/5)
https://www.soumu.go.jp/menu_kyotsuu/important/kinkyu02_000511.html

反撃能力、「存立危機」でも発動可能＝岸田首相、サイバー対策で行程表―安保戦略巡り国会質疑(4/4)
https://www.thenews.ne.jp/detail/1493362

高校生や大学生がサイバー犯罪の捜査に挑戦 警察の職業体験会【佐賀県】(4/5)
https://news.yahoo.co.jp/articles/0f43a97214a4bdeee4d7dce9d2e0085021e7b599?source=rss

日本IBMが医薬品の流通経路を可視化する検証開始、ブロックチェーン技術を活用(4/6)
https://xtech.nikkei.com/atcl/nxt/news/18/14912/

「困っていない」と言う現場　その勘違いを気付かせる方法(4/6)
https://xtech.nikkei.com/atcl/nxt/mag/nc/18/020900021/040300135/
You are unlikely to be verified until you have completed your GitHub user profile with your full name as it appears in your academic affiliation document plus a short bio...を解決したい方へ

# この記事の対象者
GitHubの学生申請の際、学生証のアップロードすると登録した（大学の）メールアドレスに以下のメールがでてしまい、登録ができず困ってる人。

> Unfortunately, we were unable to verify your academic affiliation based on the information you submitted on Apr 5, 2023 for @"GitHubのユーザーネーム"
You are unlikely to be verified until you have completed your GitHub user profile with your full name as it appears in your academic affiliation document plus a short bio.
Please consider using your device camera to submit academic affiliation documents. Uploaded images are more easily manipulated and are therefore less trustworthy.
Once you have resolved the issues with your sumbission, visit us again and reapply.
Have questions? Join the GitHub Education Community for answers.
:sparkling_heart: The GitHub Education Team

~~ハートがあって可愛いですが３回目ぐらいからイラっとしてきます~~

# 原因と解決策
早速結論からいきます！

:::note warn
あくまで自分の場合ですmm
:::

### 原因
- スマホで撮った写真をアップロードしていたこと

### 解決策
- 「Upload an image」を使わず **「Take a picture」を使用しPCで撮影する**
- PCに向かって学生証を突き出しましょう！

以上です。
自分の場合はこれだけで申請通りました〜

# 執筆理由
GitHubの学生登録すれば、なにかと話題のgithubcopilotを無料で使えるとのことで、以下の記事を参考にして登録を進めていたところ詰まってしまいました。自分が調べた限り解決策がなかったので書きました。

https://qiita.com/SNQ-2001/items/796dc5e794ac3f57a945

ちなみに上記の記事で自分とは異なっていたことが二点あったので、一応書きます。
>日本語の学生証では英訳したものと一緒にアップロードする必要があるようです

不要でした。（学生証のみでいけました）
>:::note warn
>`.jpg`のみアップロード可能です
>:::
`.jpeg`もいけました

# さいごに
以上です！ありがとうございました！
Power Automate for desktop でExcelの作業を自動化してみる

こちらの記事の内容は、以下の書籍の勉強の記録です。
書籍の内容を合わせてご確認いただくと、分かりやすいものと思われます。

https://www.amazon.co.jp/%E3%81%A7%E3%81%8D%E3%82%8BPower-Automate-desktop-%E3%81%A7%E3%81%8D%E3%82%8B%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-%E3%81%82%E3%83%BC%E3%81%A1%E3%82%83%E3%82%93/dp/4295015938/ref=sr_1_6?keywords=power+automate+%E6%9C%AC&qid=1680744459&sprefix=Power+Automate%2Caps%2C163&sr=8-6

基本的には、私の勉強記録ですので気楽にご覧いただければと思います。
最初からご覧になりたい方はこちら。▼

https://qiita.com/inaho3517/items/c1e702f763631d3fd081

# 勉強内容の確認

書籍について公開されている目次は以下の通りです。

　＜基本編＞
　　　第１章　[Power Automate for desktopの基本を学ぼう](https://qiita.com/inaho3517/items/c1e702f763631d3fd081 "Power Automate for desktop を勉強する話")
　　　第２章　[業務の自動化に必要な基本操作を覚えよう](https://qiita.com/inaho3517/items/d5f770c3e278d6b626e1 "Power Automate for desktop の基本操作を覚える")
　＜活用編＞
　　　**第３章　Excelの作業を自動化しよう**　　　　　　◀ 本日はこちら！
　　　第４章　[Webフォームへの入力を自動化しよう](https://qiita.com/inaho3517/private/3eb2edd276b9c8222f97 "Power Automate for desktopでWebの操作を自動化してみる")
　　　第５章　業務シーン別のテクニックを覚えよう

今日からは、どんどん活用方法を覚えていきます！💪

# とはいえExcelの活用が多いよね
RPAツールを使った自動化で、ご要望が多いのが「**Excelの自動化**」ですよね。
私としては「Excelの機能や関数を活用しまくれば、ある程度自動化できる」という持論があります。

ですが、世の中にはいろんな方がいらっしゃるようで……

「いくら注意喚起してもテンプレートのExcelファイルを削除してしまう担当者がいまして……。」とか
「手動だと計算式を崩されてしまって毎回エラーが発生してしまうんです……。」などのエピソードをお伺いするたび、「さすがにそれはロボットに頑張ってもらった方がいいですよね💦」と思ってしまいます。

書籍に話を戻すと、今回は請求書作成を通じて、**Excelの操作のアレコレ**を学んでいくようです！
自動化で困っている事務員さんにとっては一番知りたい内容！楽しみですね！
# 本日の勉強メモ
今日も書籍通りに勉強開始！
## 作成フローの確認
作業の全体像を解説してくれています。
ここで何の作業を自動化していくのか全体像を説明していくことで、頭の整理ができるよう構成されています。
## Excelの自動化
こちらも丁寧に解説されています！
書いてある通りに作成して、いざ実行……あれ？データの転記はうまくいってもファイルが保存されない！
エラー内容を確認すると、変数の設定を間違えていました😓
設定し直して、無事請求書の作成が完了♪

第２章の[業務の自動化に必要な基本操作を覚えよう](https://qiita.com/inaho3517/items/d5f770c3e278d6b626e1 "Power Automate for desktop の基本操作を覚える")で、基本をしっかり身につければ、難なくこなすことが出来ました！

あとは、実作業で応用できるかどうか……転記するデータは書籍と同じように用意されているわけではないので、それぞれ工夫して作れるように継続して学ぶ必要はあるなと感じました。
習得したあとでも、いろんなパターンが学べる場があるといいのかな～。
# 本日のまとめ
Excelの操作について学ぶことが出来ました。
いろんなアクションが用意されているので、もっと使い分けたいな～。
でもまずは、ニッチなものよりメインで使用するアクションを身につけるのが一番……ですね！

次回もお楽しみに！😄
No10_ググったこと投稿(5分)_NoSQLとSQLの違い 

気になったので調べました〜

## SQLとは
- Structured Query Languageの略で、関係データベース管理システム(RDBMS)で使用される技術のこと
データの関係性を表現するために、テーブルと列の形式を使用し、データの整合性と一貫性を保つことができる
データを正確に管理するために、主キーや外部キーなどの機能を使用して、データの一貫性を維持する。
主キーは、テーブル内の一意の識別子であり、データの重複を防ぎ、データの一貫性を確保し、
また、外部キーは、異なるテーブルの間でのデータの関係を定義するために使用されます。

## NoSQLとは
- Not Only SQLの略で、非関係型データベース管理システムで使用される＊スキーマレスな技術で
データを柔軟に管理でき、*大量の非構造化データの処理や、リアルタイム処理などに使用される。
*水平方向のスケーラビリティに優れており、システムを迅速かつ容易にスケールアップできる。
RDBではないものがNoSQLとされる（下記）

　・キーバリュー型：キーとバリューのみのシンプルな組み合わせのモデル
　・カラム指向型：キーバリュー型にカラムの概念をもたせたモデル
　・ドキュメント指向型：JSONやXML形式で記述されたドキュメントの形で管理するモデル
　・グラフ指向型：データとデータ間のつながりを管理するモデル

----
### 単語
＊非構造化データ
- テキストファイル、画像ファイル、音声ファイル、動画ファイル、センサーデータなどが

＊ 水平方向のスケーラビリティ
- システムの処理能力を向上させるために、複数のコンピュータを使用してシステムを拡張する方法の一つ。
水平方向のスケーラビリティでは、システムに負荷がかかると、新しいハードウェアを追加することで、システムの処理能力を簡単に拡張することができ
⇄ 垂直方向のスケーラビリティ
システムの処理能力を向上させるために、単一のコンピュータをアップグレードする方法が使用されます。
例えば、CPUやメモリ、ストレージなどのアップグレードを行うことで、システムの処理能力を向上させることができ

＊ スキーマレス
- データベースやストレージシステムが、あらかじめ定義されたスキーマ（データの構造や属性を定義するもの）を必要としないこと
例）MongoDB
ドキュメント指向のデータベースで、フィールドの追加や変更が容易に行える。
また、JSON形式でデータを格納するため、Webアプリケーションなどでよく使われる
git commitで「dquote>」と表示されたときの解決方法

# 概要
git commitした際に **dquote>** が表示されました。
何を打っても**exitできないエラー**となりました。

```
$ git commit -m "xxxxyyyyzzzz
dquote>
dquote>
```

# 原因
「"」の記述が正しくなかったのが原因でした。

# 解決方法
Ctrl + g を打つことで、再度git commitできるようになりました。
Spring Boot で h2database の Embedded モードを使うときはこんな感じ

# 前提

h2database には、3種類の起動モードがある

https://www.h2database.com/html/cheatSheet.html

* Embedded: データがファイルに保存される
* In-Memory: データがメモリに保存される（再起動すると消える）
* Server Mode

この記事は、Embedded を使うときの話。

# こんな感じ

```properties:application.propeties
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.url=jdbc:h2:file:./data/todo
spring.datasource.username=sa
spring.datasource.password=
spring.sql.init.mode=always -- h2database が embedded mode のときはこれを付ける
```

```sql:schema.sql
-- 再起動時の対策でテーブルが存在するなら DROP してから CREATE する
DROP TABLE IF EXISTS memo;
CREATE TABLE memo
(
    id      BIGINT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    content TEXT,
);
```

```sql:data.sql
-- schema.sql でテーブルを DROP -> CREATE しているので、再起動しても以下の INSRERT でデータが重複登録されることはない
INSERT INTO memo (content) VALUES ('hoge');
INSERT INTO memo (content) VALUES ('fuga');
```

## ちなみに

ログを出す設定ができるらしい。

https://www.h2database.com/html/features.html

```properties:application.propeties
spring.datasource.url=jdbc:h2:file:./data/todo;TRACE_LEVEL_FILE=2;TRACE_LEVEL_SYSTEM_OUT=2
```

> Trace Options
The simplest way to enable the trace option is setting it in the database URL. There are two settings, one for System.out (TRACE_LEVEL_SYSTEM_OUT) tracing, and one for file tracing (TRACE_LEVEL_FILE). The trace levels are 0 for OFF, 1 for ERROR (the default), 2 for INFO, and 3 for DEBUG. A database URL with both levels set to DEBUG is:
jdbc:h2:~/test;TRACE_LEVEL_FILE=3;TRACE_LEVEL_SYSTEM_OUT=3
[要約]ビジネス力養成大全

## 課題と仮説を見出し、活用する発見力

課題を発見する力を身につけるためには、日頃から関心を持つ癖を持つことが重要

- ある一点のみにフォーカスする

例えば、原宿で流行っている色は何か？など

一点のみにフォーカスすることで他の点も自ずと見えてくることがある。

- 普通のものをたくさん見る

普通のものをたくさん見ることで、問題をすぐに発見することができる

- 関心の幅を広げる

人は関心のあるものしか目に入らないそのため、関心の幅を広げることで他のことにも目を向けられるようになる。

## 勉強力
### 論理的思考を鍛える
- 最終的なイメージを描いて徹底的に考える習慣をつける
- かつ知識を増やす
### 経営の勉強をする
過去に成功した会社の例などを研究する、あくまでも過去の分析
### 人生観や人間観を磨く
これらが磨かれると世の中の道理がわかってくる
- 長く読まれている本、古典を読む
    - 難しければ、松下幸之助さんなどの正しく成功した人の本をたくさん読む
    - 何が正しいのかという倫理観・道徳観を常に勉強し続けていく
- 得する相手より、人間性の良い人と付き合う
社内外において、良い人、良い会社と付き合う、
良いとは儲かるではなく、正しい価値観を持っていると言うこと
- 素直な姿勢を持つ
人の話を聞くこと。まず受け入れること。
そこからいいなと思ったうちでリスクの小さいものをやってみる
最後に結果が出るまでやり続けること
### 勉強を続けるためのコツ
- 問題意識を持ち調べる
わからないことがあったら、まず自分で考えるそしてググる
そして関心があれば深ぼればいい。
- インプットをルーティン化する
- アウトプットし続ける
仕事で成果を上げるためのインプット目的を忘れてはいけない。
アウトプット力をつけるためにメモをする癖をつける。
- あと一歩踏み込んでみる
小さな積み重ねが成功する人とそうでない人の違い
## 解決力
問題の特定が何よりも大事
- 起きた事象について正確に事実を把握する
- 対応すべきことの優先度を設ける
    - 日頃から基準を頭に入れておく
- ダウンサイドリスクを測る
    - 失敗した時の最大限の損失
    - 日頃から常に考えることでも問題の優先順位づけの能力は上がる
根本的な問題を探り出す
- ロジカルツリーなどにして、問題を因数分解する
解決策を策定する
他社や過去の事例をできる限り調査してから解決策を策定する
- プロコン・リスト
    - メリット・デメリットを書き出す
- ダウンサイドリスクを検討する
    - リスクが小さいものは素早くやってみる
- ディシジョンツリーで期待値を計算する
    - 解決策に対して、Aが起きる確率など利益や被害が出る可能性を洗い出す
### 解決策を高める習慣
- なぜ、本当、それからを繰り返す
- 常識を働かせる
    - 会社の常識は社会の非常識のことが多い
- 常識を疑う
- 価値観に基づく直感を磨く
    - ディシジョンツリーを作成するなど、データを収集したらあとは直感
## 本
[どんな時代もサバイバルする人の「ビジネス力」養成大全](https://amzn.to/3zDGDnK)
GitHub Codespacesで並列コンテナ ボリュームをリセットする

DevContainer と Docker Compose を用いることで、同じネットワーク上にコンテナを複数立てることができます。
例えばメインコンテナと同じネットワーク上にDBを立てることができます。

GitHub Codespaces や DevContainer になじみがなければ、現実世界の同じネットワーク上に開発PCとDBサーバーがあるイメージ。
```mermaid
graph LR
PC(("PC"))
subgraph CODESPACES["Codespaces"]
  subgraph COMPOSE["Compose"]
    APP("app")
    DB("db")
  end
end

PC .-> APP
%% 「invisible link」に対応したらコメントを外す
%% PC ~~~ DB
APP --> DB
```

https://code.visualstudio.com/docs/devcontainers/create-dev-container#_use-docker-compose

```yaml:(Example) docker-compose.yml
version: '3.8'

services:
  app:
    build: 
      context: .
      dockerfile: Dockerfile

    volumes:
      - ../..:/workspaces:cached
      
    # Overrides default command so things don't shut down after the process ends.
    command: sleep infinity

    # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
    network_mode: service:db

    # Use "forwardPorts" in **devcontainer.json** to forward an app port locally. 
    # (Adding the "ports" property to this file will not forward from a Codespace.)

  db:
    image: postgres:latest
    restart: unless-stopped
    volumes:
      - postgres-data:/var/lib/postgresql/data
    environment:
      POSTGRES_PASSWORD: postgres
      POSTGRES_USER: postgres
      POSTGRES_DB: postgres

    # Add "forwardPorts": ["5432"] to **devcontainer.json** to forward PostgreSQL locally.
    # (Adding the "ports" property to this file will not forward from a Codespace.)

volumes:
  postgres-data:
```

ある時このDBデータをリセットしたくなります。
名前付きボリューム（この例では `postgres-data`）を削除してDevContainerを再起動すればよさそうですが、GitHub Codespaces のようなホストのDockerにアクセスできない場合は削除する方法に困りました。

## （解決策）名前付きボリュームを削除
「**Full** Rebuild Container」することで名前付きボリュームなしの状態で起動できます。
※「Rebuild Container」では削除されませんでした。

1\. `Shift` + `Command` + `P` (Mac) または `Ctrl` + `Shift` + `P` (Windows/Linux) で「VS Code Command Palette」を開く
2\. 「Rebuild」と入力し、「Codespaces: **Full** Rebuild Container」を選択

:::note info
> Rebuilding recreates your codespace. Your code and any current changes will be preserved, but all your currently cached images will be cleared. Your codespace will be rebuilt using your working directory's dev container.
> 再構築は、あなたのコード空間を再作成します。あなたのコードと現在の変更は保存されますが、現在キャッシュされているイメージはすべてクリアされます。コードスペースは、作業ディレクトリのdevコンテナを使用して再構築されます。

とある通りコードの変更は**保持されます**。未コミットのファイルがあっても安心ですね。
`/workspaces` ディレクトリ（リポジトリがクローンされる場所）以外はリセットされます。
:::
https://docs.github.com/ja/codespaces/developing-in-codespaces/rebuilding-the-container-in-a-codespace
[メモ] docker-composeのnpmでpackage not foundが出るときの解決法

## エラーの内容
 - dockerのコンテナ内部で、特定のパッケージについて、package not foundのエラーが発生する
 - 内部を確認すると、node_modulesが見当たらない

## その他の状況
 - Dockerfileにて、npm install は実行されている
 - Dockerfileに、package.json は含まれている
 - docker-composeにて、package.jsonのあるフォルダをマウントしている

## エラーの原因
 - Dockerfileにて、インストールされたnode_modulesが、docker-composeのマウントによって上書きされていること

## 解決策
 - 以下の記述を追加して、node_modulesのみマウントが行われないようにする
 - 左を空白にすることで、マウントを行わないようにすることができる
     ``` 
    volumes:
        - /app/node_modules
        - ./app: /app
    ```
TravisCIで"This repository may not exist or you may need to use another account to have access to it"というメッセージが出た




# 起きたこと
2023年3月、GitHubのprivateなリポジトリ（以下、「リポジトリA」）のCI結果を確認するためにTravisCIにアクセス（`https://app.travis-ci.com/github/{organization}/{repository}/builds/{id}`）したら、以下のメッセージが出ました。

>This repository may not exist or you may need to use another account to have access to it




* 以前はリポジトリAのCI結果を確認できた。
* リポジトリA以外のprivateリポジトリでCI結果が確認できたものもあるし、確認できないものもあった。
* publicなリポジトリでは、CI結果はすべて確認できた。
* 同僚はリポジトリAのCI結果を確認できた。



# どのように解決したのか
ログアウトして再度ログインしてから数分待ったら、リポジトリAのCI結果を確認できました。
TravisCIの認証周りがおかしいのかもしれません。