OmniAICreator/Qiita-1.07M huggingface dataset:
ChatGPT・Gemini・Claudeのセキュリティ機能比較：ビジネスに生成AI導入で失敗しないために

![ChatGPT・Gemini・Claudeのセキュリティ機能比較.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3544821/c0b00055-08f9-2cb7-e498-14cc5f885fb3.png)
<H2>初めに</H2>
近年、生成AIツールの普及が急速に進み、その中でも特に注目されているのが、文章生成やアイデア創出といった機能を持つ生成AIです。これらのツールは、多くの企業で導入が進み、クリエイティブな業務やマニュアル作成といった特定のタスクを効率化・自動化する役割を果たしています。

しかし、生成AIツールの導入には、多くのメリットがある一方で、セキュリティリスクへの懸念も少なくありません。特に、データ漏洩や情報管理の不備といったリスクは、企業がツール選定の際に慎重に考慮すべき重要なポイントとなっています。

そこで本記事では、生成AIツールを選ぶとき、ChatGPT、Gemini、Claudeのセキュリティ機能について徹底比較・解説していきます。
<H2>生成AIツールのChatGTP・Claude・Geminiとは？</H2>
<H3>ChatGTPとは</H3>
OpenAIが開発した生成AIで、自然な文章の生成や質問への回答が得意な対話型ツールです。業務効率化やアイデア創出に活用され、多くの企業で導入が進んでいます。
<H3>Claudeとは</H3>
Anthropicが開発したAIで、安全性が高く、誤情報や偏見を含む文章を生成する可能性が低いです。入力データが学習に使用される可能性がありますが、プライバシーポリシーに基づいて管理されています。セキュリティ面に配慮した利用が求められる場面で活用されています。
<H3>Geminiとは</H3>
Google DeepMindが開発した高度な生成AIで、文章生成や多言語対応に優れています。検索エンジンとの連携が強みで、情報収集や業務効率化に役立つツールとして注目されています。データの二次利用が行われる可能性がありますが、<a href= " https://support.google.com/gemini/answer/13594961?hl=ja "target="_blank"> Googleのプライバシーポリシー </a>に従って管理されています。

▶ 文章生成AIの詳細については、この記事からお読みいただけます。
https://hblab.co.jp/blog/text-generation-ai/ 
<H2>生成AIツールのChatGTP・Claude・Geminiの特徴</H2>
<H3>ChatGTPの特徴</H3>
<ul>
 	<li>開発企業：OpenAI</li>
 	<li>対応データ：幅広い分野のテキストに対応。</li>
    <li>メリット：</li>
自然な文章生成が可能

多様な質問やタスクに対応

カスタマイズ可能なAPIでビジネス導入が容易
    <li>デメリット：</li>
最新情報には対応していない場合がある

セキュリティやプライバシーに関する懸念

専門的な内容では不正確な回答をすることも
    <li>料金：</li>
無料版あり
有料プラン（ChatGPT Plus）は月額20ドル（※価格は変更の可能性あり）
</ul>
<H3>Claudeの特徴</H3>
<ul>
 	<li>開発企業：Anthropic</li>
 	<li>対応データ：主に公開データを基に学習。最新情報への対応は限定的。</li>
 	<li>メリット：</li>
安全性と倫理性を重視した設計

複雑な質問への正確な回答が得意

ユーザーデータの取り扱いに配慮
 	<li>デメリット：</li>
最新情報の対応が不十分な場合がある
実行速度が他のツールと比べて遅いことも
 	<li>料金：</li>
無料トライアルあり
有料プランは利用規模や機能に応じて異なる
</ul>
<H3>Geminiの特徴</H3>
<ul>
 	<li>開発企業：Google DeepMind</li>
 	<li>対応データ：Googleの豊富なデータセットと公開情報を基に学習。</li>
 	<li>メリット：</li>
多言語対応に優れ、検索エンジンとの連携が可能

高度な文章生成や情報検索が得意

最新情報へのアクセスが強み
 	<li>デメリット：</li>
一部の機能がGoogleサービスに依存
利用にはGoogleアカウントが必要な場合がある
専門性が高い質問で不正確な回答が出ることも
 	<li>料金：</li>
基本利用は無料
追加機能やビジネス向けプランは有料
</ul>
<H2>ChatGPT・Gemini・Claudeのセキュリティ機能比較</H2>
生成AIを利用する際には、以下のようなセキュリティリスクに注意が必要です：
<H3>クラウドサービスの利用</H3>
生成AIはクラウドサービスを通じて動作するため、ユーザーが入力した内容がログとして保存される可能性があります。このため、情報の取り扱いには十分な配慮が求められます。
<H3>データ利用の可能性</H3>
ユーザーが入力したデータは、AIモデルの改善やサービス向上のために利用される場合があります。特に、商業目的での利用が明記されている場合は注意が必要です。
<H3>プライバシーポリシーに基づく管理</H3>
各生成AIは、それぞれのプライバシーポリシーに基づいてデータを管理しています。利用前に、これらのポリシーを確認することが重要です。
<H3>情報漏洩のリスク</H3>
セキュリティの脆弱性や不正アクセスによって、情報が漏洩するリスクも否定できません。こうしたリスクに備えることが求められます。
<H3>推奨される対策</H3>
セキュリティリスクを軽減するためには、生成AIに機密情報や個人情報を入力しないことが推奨されます。情報の取扱いについて慎重に判断し、安全な利用を心がけましょう。
<H2>まとめ</H2>
生成AIツールは業務効率化に役立つ一方、セキュリティリスクへの注意が必要です。ChatGPT、Gemini、Claudeそれぞれの特徴やリスクを比較し、適切なツール選定と機密情報の管理を徹底することが重要です。

▶ ChatGPT・Gemini・Claudeの徹底比較について、詳しくは下記の記事もご参照ください。
https://hblab.co.jp/blog/chatgpt-gemini-claude-comparison/
AWS Certified AI Practitioner(AIF)に1日でギリギリ合格したので対策方法を紹介する



AWS Certified AI Practitionerに2日間の学習で合格することができたので、役に立てばと思い学習方法を共有させてい頂く。

コンサル業で主に活動しているが、クライアントからAIで何かできないですかね、といった相談をよく受ける。AIを体系的に理解しておかないといけない、あらゆるAIサービスの中でもかなり存在感の大きいAWSは理解しておく必要があると考えた。

AI系の資格は数多くあるがAI全般やAWSのサービスを体系的に学べる本資格は、実務でAIを活用する上で非常に有用だと感じている。

また今回ご紹介する方法で１日の対策で取ることができたので、かなりコスパの良い資格だと考えている。AI企業へ転職する際などは1日週末を使って対策するだけで評価されるのでおすすめだ。

## 執筆者のバックグラウンド

* 学生時代から研究で機械学習は触っていた
* 職歴：大手IT企業 → 外資系戦略コンサル → 独立


学生時代から触っていたことや新卒はIT業界で働いていたため、ある程度のデジタルやAIの知見があったことは理解頂きたい。

他にも戦略コンサル転職を目指す方に向けたメディア運営をやっている。最近は戦略コンサルでもAI関連の案件が増えておりAIの知見を持った人材が強く求められている。

メディア: [外資戦略コンサル内定・ケース面接対策のためのメディア「Strategy Career」](https://mbb-tenshoku.com/)
Xアカウント: [ぺんぎん@MBB戦コンのケース面接対策](https://x.com/mbb_penguin)

## 使用した教材

使用した教材はこのudemyの教材のみ

①【最新】AWS認定AIプラクティショナー試験突破講座＋模擬試験２回分付き！ 
https://www.udemy.com/course/aws-ai-practitioner/

②AIF-C01 / AWS Certified AI Practitioner 対策テスト4回＋補足問題 
https://www.udemy.com/course/aws-certified-ai-practitioner-certification-55-4/

## 勉強方法

やり方としては、
まずざっと2倍速で講座を聞く→問題を解く→間違えたところだけを復習するといった流れ

基本udemyの対策だけでOKです。他の方はAWSが公式で出している問題を推奨して居たりしますが、英語が全くできないので、udmeyに限ります。

##直前対策・最後の追い込み

直前はこういう感じでAWSの主要サービスを整理してくれている人の記事を読んだりしてました。ざっくりAIに関する基礎的な知識も聞かれますが、AWSサービスの内容に関する質問も多く最終チェックとして覚えておくのには便利です。
https://qiita.com/mapami/items/ec1909e6ab71182b3aab

## 結果連絡
合格は受験日の19時ごろにメールで届きました。
ギリギリ何とか合格・・・

![スクリーンショット 2025-01-15 123205.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3986287/6228b73d-8703-d97c-6da9-97a3da53f74b.png)
rex0220 計算式プラグイン テーブル行の自動追加・更新

[計算式プラグイン](https://qiita.com/rex0220/items/ae83c6d5ce50ff7a9a73)で、テーブル行の自動追加・更新を行ってみます。

※参考 [rex0220 一括更新プラグインと計算式プラグインの連携 テーブル行の自動追加・更新](https://qiita.com/rex0220/items/17820477cb5d4ac4ec7c)

# 概要

日付項目の変更時に、テーブル行の追加・更新を行います。
テーブルに該当日付が無い場合は、行追加。ある場合は更新します。
テーブルは、日付順にソートします。

- 編集画面

![2025-01-15_12h07_20.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/7dc6ff17-fadb-c952-2558-4ab14b8e6177.png)

- 一覧画面

一覧画面でレコード編集する場合、日付の変更でテーブル行の追加・更新が行われますが、テーブル表示にはレコード保存後に反映されます。

![2025-01-15_12h29_32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/25182fdc-de02-bca1-4ccf-bc6fbb3036a5.png)

# 操作例

![2025-01-15_12h34_21.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/914d0322-5c3d-2755-c4f4-9be742be77bc.gif)

# アプリ設定

テーブルの追加更新の制御用に「計算処理用」文字列項目を追加します。

![2025-01-15_12h27_30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/4fef8a97-fb61-84f8-d0f4-c2033bab658a.png)


# 計算式プラグイン設定

「循環参照を許可」をチェック

- 出欠一覧テーブル
    - TABLE_SORTで、日付順に
    - 日付未設定の行は、削除
- 計算処理用
    - テーブル行追加・更新の計算を行います。

![2025-01-15_12h23_07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100572/ad01aa98-df6c-479c-1dfe-9caa9ff5e239.png)

```.js
OPTION: 循環参照を許可

// 出欠一覧 SUBTABLE (editable)
TABLE_SORT(出欠一覧,
  TPFILTER(日付_一覧),
  TPSORT(日付_一覧)
)

// 計算処理用 SINGLE_LINE_TEXT (hide)
IF(日付,
  LET(
    rno, FIRSTIF(日付_一覧==日付,ROWNO(出欠一覧)),
    IF(rno === "",
      LET(
        row, JSON_S(ARRAY(DIC(
          "日付_一覧",DATE_FORMAT(日付),
          "出欠_一覧",出欠
        ))),
        FSET_TADD(出欠一覧, row)
      ),
      FSET(出欠_一覧, 出欠, rno)
    )
  )
)
```
簡単AWS　Outposts

AWS Outposts は、AWSのクラウドサービスをあなたのオフィスやデータセンターに直接持ち込むサービスです。簡単に言うと、AWSのコンピュータやストレージなどのハードウェアを、あなたの所在地にインストールすることで、クラウドの便利さと自分のデータをローカルで管理することを両立させることができるサービスです。

どういう仕組みか？
1.AWSハードウェアがあなたのデータセンターに
AWSが、あなたのオフィスやデータセンターに必要なコンピュータやストレージ、ネットワーク機器などを専用に提供します。これらのハードウェアは、AWSのクラウドで使っているものと同じなので、同じAWSサービスを利用できます。

2.クラウドと同じ環境をローカルで管理
Outpostsを使うと、AWSのサービスをローカルで利用しながら、クラウドと同じ管理ツールやインターフェースを使って管理できます。AWSのコンソールやAPIを使って、クラウドと同じ感覚で設定や運用を行えます。

3.データセンターをクラウドと一体化
Outpostsでは、あなたのデータセンターとAWSのクラウド環境が1つにまとまるため、両方をシームレスに使い分けることができ、運用が楽になります。

何が良いのか？
・低遅延でデータを管理したい: データをクラウドに送る必要がなく、物理的に近くにあるサーバーで処理できるため、すぐにデータにアクセスできます。
・安全性やプライバシーを守りたい: セキュリティやデータのプライバシーを重視する業界でも、データを自社内で保持しながらクラウドの利便性も享受できます。
・拡張が簡単: 初めは少しの設備で始めて、後からクラウドに簡単に拡張できるので、ビジネスの成長に合わせて柔軟に対応できます。

例えて言うと：
もしあなたが料理をしたいレストランを経営しているとします。クラウドは外部の巨大キッチンのようなもので、必要なときにすぐ食材や道具が届きます。しかし、お客様のリクエストで素早く料理を出さなければならない場合、自分の店にも高性能な小さなキッチン（つまりOutposts）を作ることができます。これにより、どちらの場所でもスムーズに料理（データの処理）ができるわけです。

まとめ：
AWS Outposts は、AWSのクラウドの便利さを物理的にあなたの場所に持ち込み、自社で管理しながらクラウドと連携できるサービスです。これにより、データの処理をよりスムーズに、安全に行うことができるのです。
簡単AWS　CloudFront

Amazon CloudFrontは、**コンテンツ配信ネットワーク（CDN）**のサービスです。簡単に言うと、CloudFrontは、ウェブサイトやアプリのデータを世界中にあるサーバーで保存して、ユーザーがデータをより速く受け取れるようにするサービスです。

どういう仕組み？
1.データを世界中にコピー
CloudFrontは、あなたのウェブサイトやアプリの画像、動画、ファイルなどを複数の場所（例えば東京やニューヨーク、ロンドンなど）にあるサーバーにコピーします。

2.ユーザーに近いサーバーからデータを届ける
例えば、あなたのサイトの利用者が日本にいるとき、CloudFrontは日本にあるサーバーからデータを提供します。これによって、データが遠くのサーバー（例えばアメリカ）から送られるよりも、アクセスが速くなります。

3.もし近くのサーバーが壊れても安心
万が一、特定の地域のサーバーがダウンしても、CloudFrontは自動的に別の近くのサーバーからデータを提供してくれるので、サービスが止まることがありません。
何が良いの？

・速いアクセス：データをユーザーの近くのサーバーから送るので、ウェブページや動画などが早く読み込まれます。
・コスト削減：データが直接原本サーバーに行く回数が減るため、インターネットのトラフィック費用も抑えられます。
・信頼性：複数のサーバーが世界中にあるので、障害が起きても他の場所でデータを届けることができ、サービスが止まりません。

例え話：
もし、あなたが世界中にいる友達に動画を送るとしたら、サーバーが遠いとすごく時間がかかります。でも、CloudFrontを使うと、世界中に小さな“データの配達員”がいて、友達の近くに住んでいる配達員が素早く動画を渡してくれるイメージです。

これがCloudFrontの働きです。
7日目

# Dataikuドキュメントのチャットボット開発：RAGシステムの構築と直面した課題

## はじめに
Dataikuのドキュメントに対して質問応答できるチャットボットの開発を試みましたが、いくつかの技術的な課題に直面し、完全な実装には至りませんでした。この記事では、実装過程で遭遇した問題と、その教訓を共有します。

:::note alert
全然うまくいかなかった
:::

## 実装で直面した主な課題

### 1. 環境構築の問題
- Azure OpenAIの認証情報の設定（これは事前にまとめておかないと不便）
- 必要なライブラリのバージョン互換性（新しい技術はClaude-3.5 sonnetが意味不明な実装ループに陥るので、ここの実装の仕方は適宜適切なフォローを入れないと）
- パス指定の問題（絶対パスと相対パス　なんかComposerがバグってDockerの外に実装しまくってました。）

:::note alert
ライブラリのエラードキュメントに基づく実装は読み取ってくれても、
最新の実装方法は別の手段で渡しておかないとよくわからんことになる？
:::


### 2. ベクトルDBに関する問題

:::note alert
そもそもここは一度ドキュメントを読んで、もう少し理解を深めて
手元で機能の実行から試すべきだった。
:::


```python
self.vector_store = Chroma.from_texts(
    texts=[t["page_content"] for t in texts],
    embedding=self.embeddings,
    metadatas=[t["metadata"] for t in texts],
    persist_directory="/Users/imanos19/Desktop/Cursor/dataiku-docs-chatbot/data/vector_store"
)
```
- Chromaデータベースの永続化に関するエラー
- メモリ使用量の問題
- データの整合性の確保

### 3. テキスト処理の課題
```python
text_splitter = MarkdownTextSplitter(chunk_size=3000, chunk_overlap=100)
```
- 大量のテキストデータの効率的な分割
- Markdownフォーマットの適切な処理
- 文脈の保持と分割の最適化

## 主な学びと反省点

### 1. アーキテクチャ設計
- **問題点**: RAGだからと最初からUIとエンべディングとチャット機能まとめて実装を試みた
- **改善案**: マイクロサービス的なアプローチで、機能ごとに分離して開発すべきだった

:::note alert
新しいものはテストして実装するを当たり前の所作としてやれるように。
:::

### 2. エラーハンドリング
- **問題点**: 包括的なエラーハンドリングがうまく掴めてない。
  - Dockerで都度実行は前レビューを受けた通り環境構築・実行に時間がかかる
  - 手元ファイルで実行しようとする場合のpip3などでどの程度インストールしていいのかわからん
- **改善案**: 
  - より詳細なログ出力
  - エラーの種類に応じた適切な処理
  - リトライメカニズムの実装
:::note alert
とりあえずやらせてみて、期待する挙動をしなかったら、
最小限で試して、動くものにして、スケールさせるを最速で
:::


### 3. テスト戦略
- **問題点**: 単体テストが不十分
- **改善案**: 
  - テストファーストの開発アプローチ
  - モックを使用した依存関係の分離
  - 段階的なテスト実装

:::note alert
どのタイミングでローカルからDockerにうつしたらいいの？
ある程度アプリケーションができて、仮想環境でみんなが実行できるようにするタイミング？
:::


## 技術的な教訓

### 1. 依存関係管理
```python
from langchain_openai import AzureOpenAIEmbeddings
from langchain_openai import AzureChatOpenAI
```
- ライブラリのバージョン互換性を事前に確認
- requirements.txtの適切な管理
- 仮想環境の使用の重要性

:::note alert
この辺はEmbedding用にまとめておいていつでも使えるように
:::


### 2. 設定管理
```python
load_dotenv()
```
- 環境変数の適切な管理
- 設定の外部化
- デプロイメント環境との整合性

## 今後の改善案

1. **段階的な実装アプローチ**
   - 小さな機能から始める
   - 各段階でのテストを充実させる
   - フィードバックループを短くする

2. **エラー対策の強化**
   - 詳細なエラーログの実装
   - 自動リカバリーメカニズムの導入
   - 監視システムの構築

3. **スケーラビリティの考慮**
   - データ量増加への対応
   - パフォーマンスチューニング
   - キャッシュ戦略の検討

## まとめ

このプロジェクトは完全な実装には至りませんでしたが、RAGシステムの実装における重要な教訓を得ることができました。特に、以下の点が重要だと感じました：

1. 事前の十分な設計と計画の重要性
2. 段階的な実装とテストの必要性
3. エラーハンドリングの重要性
4. スケーラビリティを考慮した設計の必要性
休日にしょうもないことで電話しないで！！　不良品があったときの連絡先を教えるＬＩＮＥＢｏｔを作った

　こんにちは。最近**ＬＩＮＥＢｏｔ**を習い始め、まだ数日なんですが、試しに自分で作ってみました。

# 早速LINEBotが動いている様子から・・・
https://x.com/yukiyori030523/status/1879412105298034956

商品のバーコードを入力すると、商品名と連絡すべきメールアドレスを返してくれる仕様で作成しました

# なぜこのテーマでＬＩＮＥＢｏｔを作ったか？
　私はとあるスーパーの店舗でデリカ部門の責任者をしております。店舗自体は基本定休日はなく、毎日営業しています。そのため休日も部門の人間が交代交代で取っています。
 　そこでいざ責任者の私が休日を迎えると、休日中でも店舗は営業しているのでいろいろな事が起こります。その中の１つに不良品が納品されていることがあるんです・・・。
  　不良品が納品されていた場合、連絡窓口がありそこへメールするという流れがあるんですが、連絡窓口が商品によって異なるので、判断に迷う事があるんです。責任者である私は、どの窓口へメールすればよいかすぐに判断できますが、責任者不在の日だとどこの窓口へメールすればいいか、分かる人がいなくなり、結局休日の私に電話がかかってきます。
   　電話にすぐに出られない時もありますし、心の中では、どこにメールすればいいかだけ分かれば、難しいことはないので出勤してる人たちでやってほしいという気持ちはありました。
    　そこで、責任者不在でも連絡窓口のわかるツールを今回作ってみました！
     
# 使用したツール
・make
・LINEBot
・Google スプレッドシート

# 手順

## Googleスプレッドシートの準備


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3961319/616447aa-39f3-a12e-f07b-2b4b4be2ecd7.png)
商品一覧がありましたので、そちらを使用しました。連絡先欄は仮で打ち込んだものです。

## 各モジュールを繋ぐ
スプレッドシートの準備が終わったらいよいよ各モジュールを繋ぎます。

↓　スプレッドシート側の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3961319/812fe497-2b33-240f-ed5a-ee6b5437f86a.png)

↓　ＬＩＮＥ側の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3961319/b23c649b-b3a5-b715-fe4a-40e0397a7e57.png)

## makeシナリオ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3961319/5a9093c2-467b-34d1-947f-571cfbace01f.png)

初めての作成なので、登場人物の少ないシンプルな形になっています。

# 作ってみた感想
初めて作ったので、シンプルなものになり、完成品は面白味のないものだと思います。
いろいろ接続させるのに習ったことを復習しながら資料を行ったり来たりで、時間もかかりました(^_^;)
でも、仕事で使えるちょっとした事をLINEBotで解決していければ、より必要なことに時間も使っていけるのではないかと感じました。
今後も何か役に立つことはないのか？を考え形にしていきたいと思っています。
react-loader-spinnerのサンプル

react-loader-spinnerで利用できる全ローダーを一覧表示しました。自分用メモ。
https://www.npmjs.com/package/react-loader-spinner


![loader.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2445858/76d19cb3-9a34-bfcf-7997-22e8283be04a.gif)



```   
import {
  Audio,
  BallTriangle,
  Bars,
  Circles,
  CirclesWithBar,
  Grid as LoadGrid,
  Hearts,
  InfinitySpin,
  LineWave,
  MutatingDots,
  Oval,
  Puff,
  RevolvingDot,
  Rings,
  RotatingSquare,
  RotatingLines,
  TailSpin,
  ThreeCircles,
  ThreeDots,
  Triangle,
  Watch,
  FallingLines,
  Vortex,
  RotatingTriangles,
  Radio,
  ProgressBar,
  MagnifyingGlass,
  FidgetSpinner,
  DNA,
  Discuss,
  ColorRing,
  Comment,
  Blocks,
  Hourglass
} from 'react-loader-spinner'
            
          <Box className={"Test"}>
            <Audio/>
            <BallTriangle/>
            <Bars/>
            <Circles/>
            <CirclesWithBar/>
            <LoadGrid/>
            <Hearts/>
            <InfinitySpin/>
            <LineWave/>
            <MutatingDots/>
            <Oval/>
            <Puff/>
            <RevolvingDot/>
            <Rings/>
            <RotatingSquare/>
            <RotatingLines/>
            <TailSpin/>
            <ThreeCircles/>
            <ThreeDots/>
            <Triangle/>
            <Watch/>
            <FallingLines/>
            <Vortex/>
            <RotatingTriangles/>
            <Radio/>
            <ProgressBar/>
            <MagnifyingGlass/>
            <FidgetSpinner/>
            <DNA/>
            <Discuss/>
            <ColorRing/>
            <Comment/>
            <Blocks/>
            <Hourglass/>
        </Box>
```
Remote Lockのwebhookが頻繁に停止する


## Remote Lockとは

https://remotelock.kke.co.jp/?utm_source=Google&utm_medium=cpc&utm_campaign=P-MAX_%E5%95%86%E5%93%81%E7%94%BB%E5%83%8F&utm_term=&utm_campaign=P-MAX_%E5%95%86%E5%93%81%E7%94%BB%E5%83%8F&utm_source=adwords&utm_medium=ppc&hsa_acc=1744005690&hsa_cam=21374415976&hsa_grp=&hsa_ad=&hsa_src=x&hsa_tgt=&hsa_kw=&hsa_mt=&hsa_net=adwords&hsa_ver=3&gad_source=1&gclid=Cj0KCQiAs5i8BhDmARIsAGE4xHwvplkTBvGi3ZH-vGGlEGiZTIKFTh_dVuuodgmEL9XCWKuAJoz7Hy0aAsq_EALw_wcB

よくジム等でQRコードをスキャンして入退室することがあると思います。
そのサードパーティーの一つです。

## webhookとは？

webhook自体の説明は簡略化します。以下が参考になると思います。

https://udemy.benesse.co.jp/development/system/webhooks.html

> Webhooks（ウェブフック）とは、Webアプリケーションやサービスで特定のイベントが発生した際に、HTTPプロトコルを使用してリアルタイムで自動的に通知を行うシステムです。
> 
> 例えば、GitHubでコードがプッシュされたり、Slackで特定のメッセージが投稿されたりした瞬間に、別のアプリケーションに即座に情報を伝達することができます。Webhooksを活用することで手動での作業を大幅に削減し、業務プロセスの自動化と効率化を実現できます。
> Webhooksの特徴は、事前に設定した特定のイベントをトリガーに、自動的に処理を実行できる点です。Slack・LINE・Zoom・Dropbox・Githubなど、多くの主要サービスがWebhooksに対応しており、企業のデジタルワークフローを劇的に改善する可能性を秘めています。


## Remote Lockのwebhookの特殊な仕様

https://remotelocksupport.kke.co.jp/hc/ja/articles/31736022114329--%E3%83%AA%E3%83%AA%E3%83%BC%E3%82%B9%E3%83%8E%E3%83%BC%E3%83%88-%E7%84%A1%E5%8A%B9%E3%81%AAwebhook%E3%81%AE%E5%81%9C%E6%AD%A2%E5%87%A6%E7%90%86%E3%81%AE%E8%BF%BD%E5%8A%A0-2024-04-23

> 送信が成功しない下記の条件でWebhookの通知が停止されるようになりました。
> 
> [ 無効なwebhookなdeactivateの処理]
> 
> - webhookの通知が失敗する通知先について、合計5回でのリトライで成功が確認できない場合、当該の通知先を無効化( webhookの送信を停止 )します。
> 
> - webhookの送信は、送信先サーバーから httpsステータスコードが2XX系の応答が３秒以内が返却されることで成功となります。


つまり、webhookでAPIをコールし、それが400, 500系エラーとなった場合webhookが停止してしまう場合があります。

## Remote Lockのwebhookのバグ？

webhook起因でエラーが発生し、webhookが停止する事象が頻発していました。
原因は、`1 ~ 2週間前の過去のイベントデータが飛んでくる`ということでした。

そのため、この謎事象に対するハンドリングをすべきでした。
正確にいうと、APIの内部でそのような不適切なイベントは400エラーを返しているのですがそれだとRemote Lockの仕様でwebhookが停止してしまいます。

そのため、`「webhookが止まっても構わない」`というハンドリング以外は200エラーで返し、エラーログだけ出すようにしておくのがよいでしょう。
また、エラーログはSlackに通知されるような設定をしておけば検知自体はしやすいと思います。
kintone でレコードのフィールド値を取得、更新する Python プログラム

kintone でレコードのフィールド値を取得、更新する Python プログラムを作りました。編集不可にした項目を更新するときに使用します。または、添付ファイル情報を取得します。

#### 実行

```console
python 31_get_record.py
```

#### 取得

```python:31_get_record.py
import base64
import urllib.request
import json
from pathlib import Path

appno = 123
#appno = 124
#appno = 125

recid = 55 # レコードID
fldnm = "住所" # フィールド名

uri = "https://sample.cybozu.com/k/v1/record.json"

username_password = "UserName:YourPassWord"
auth_header = base64.b64encode(username_password.encode())

headers = {
    "Host": "sample.cybozu.com:443",
    "X-Cybozu-Authorization": auth_header,
    "Content-Type": "application/json",
}

body = {
    "app": appno,
    "id": recid
}

req = urllib.request.Request(
            url=uri,
            data=json.dumps(body).encode(),
            headers=headers,
            method="GET",
            )

response = urllib.request.urlopen(req)
res_dict = json.load(response)

# JSON を整形して表示する
#print(json.dumps(res_dict, indent=4, ensure_ascii=False))

# 値を表示する
fldnm_value = res_dict['record'][fldnm]['value'] # 値
#fldnm_value = res_dict['record'][fldnm]['value'][0] # 配列の値
print(json.dumps(fldnm_value, indent=4, ensure_ascii=False))

```

#### 実行

```console
python 32_update_parameter.py
```

#### 更新

```python:32_update_parameter.py
import base64
import urllib.request
import json
from pathlib import Path

appno = 123
#appno = 124
#appno = 125

recid = 55 # レコードID

uri = "https://sample.cybozu.com/k/v1/record.json"

username_password = "UserName:YourPassWord"
auth_header = base64.b64encode(username_password.encode())

headers = {
    "Host": "sample.cybozu.com:443",
    "X-Cybozu-Authorization": auth_header,
    "Content-Type": "application/json",
}

body = {
    "app": appno,
    "id": recid,
    "record": {
        "住所": {  #  文字列（1行）
            "value": "東京都千代田区麹町"
        }
    }
}


#        "確認作業": {  # チェックボックス
#            "value": ["確認"]
#        }

#        "確認作業": {  # チェックボックス
#            "value": [ ]
#        }


# 添付ファイル
# 直前に curl でファイルをアップロードして、そのレスポンスの fileKey をメモする
# curl -X POST 'https://sample.cybozu.com/k/v1/file.json' -H 'X-Cybozu-API-Token: xxxxxxxxxxxx' -F 'file=@test.xlsx'
# 既に添付ファイルがある場合は、その fileKey を取得して、それも一緒に追加する
# python 31_get_record.py （同じ recid と fldnm を指定）

#        "写真": {  # 添付ファイル
#            "value": [
#                {
#                    "fileKey": "123456-abcd-efdh-7890-123456789"
#                }
#            ]
#        }

#        "写真": {  # 添付ファイル（既に添付ファイルがある場合）
#            "value": [
#                {
#                    "fileKey": "123456789012345678901234567890"
#                },
#                {
#                    "fileKey": "abcdefghijklmnopqrstuvwxyz"
#                }
#            ]
#        }

#        "写真": {  # 添付ファイル（削除）
#            "value": []
#        }


req = urllib.request.Request(
            url=uri,
            data=json.dumps(body).encode(),
            headers=headers,
            method="PUT",
            )

response = urllib.request.urlopen(req)
res_dict = json.load(response)

# JSON を整形して表示する
print(json.dumps(res_dict, indent=4, ensure_ascii=False))

```
iPhone 15シリーズのUSB-Cポートに見つかった脆弱性を解説

先日、iPhone 15シリーズに採用されたUSB-Cポートのコントローラチップ「ACE3」に脆弱性が見つかったことがニュースになりました。この脆弱性はセキュリティ研究者のトーマス・ロス氏により発見され、ドイツのハンブルクで開催された「第38回Chaos Communication Congress (38C3)」で公開されました。この脆弱性がどのように発見されたのか、およぼす可能性がある影響は何なのかを分かりやすく解説します。
※この記事は、ChatGPTの出力を基に作成しています。

https://news.yahoo.co.jp/articles/f6fd781e3114584ea8ca20725bd226f7db8a66b9


---

### 脆弱性の概要
#### 影響を受けるデバイス
- 対象: iPhone 15シリーズ
- 問題の箇所: USB-Cポートのコントローラチップ「ACE3」
※ACE3：iPhone 15シリーズに使われている「USB-Cポートを動かす小さなコンピュータのようなもの」で、充電やデータ転送を正しく動かすために大事な役割をしている。

#### 脆弱性の内容
- 発見:
    - セキュリティ研究者のトーマス・ロス氏（別名「stacksmashing」）によって特定。
    - ドイツ・ハンブルクでの「第38回Chaos Communication Congress（38C3）」で公開。
- 詳細な問題点:
    - コード実行の可能性:
        - ACE3チップ内で任意のコードを実行できる脆弱性が見つかった。
        - 本来は操作できないチップ内部の機能を制御可能。
    - ROM解析の成功:
        - ACE3チップの中にある「ROM（Read-Only Memory）」のデータを読み取ることに成功。
        - デバイスの内部構造や設計が詳細に解析された。

---

### この脆弱性はどのように見つけられたの？
トーマス・ロス氏は、下記のような高度な技術を駆使して、この脆弱性を解明しました。
1. **リバースエンジニアリング**:
   - 「反転解析」とも呼ばれる手法で、チップの内部構造を分解してその仕組みを解明しました。
2. **フォールトインジェクション**:
   - 「電磁波」を用いてチップに一時的にエラーを起こし、普段は見られない情報を添え入れることに成功しました。

---

### 脆弱性がもたらす可能性のある影響

1. **データの抜取**:
   - USB-Cポートを使ってプライベートな情報が抜き取られる可能性があります。

2. **デバイスの操作**:
   - 脆弱性が悪用された場合、デバイスを遠隔で操作されることも考えられます。

3. **セキュリティ機能の無効化**:
   - デバイスの保護機能を乗っ取られる可能性があります。

---

### 対策と予防法
現時点では、研究者が脆弱性を発見しただけで、悪用された例はまだ確認されていません。しかし、Appleが対応策（ソフトウェアの更新など）を出すまでは、対象ユーザーは気を付けておいた方が良いでしょう。

- 信頼できない充電器やケーブルの使用は避けましょう。
- 怪しいデバイス（公共のUSBポートなど）に接続することは避けましょう。

---

### 最後に

このような脆弱性の発見は、デバイスの安全性を高めるための重要な活動です。セキュリティ研究者がこのような弱点を探し出すことで、補修の可能性を提供しています。

これらの情報を先を見た自分の保護に活用しましょう。
リモートデスクトップ DWService を使ってみた

## はじめに
普段、WindowsからMacをリモートで使うのにParsecを導入しています。
家族向けの遠隔サポートを目的として、新たに、linux(mint)デスクトップを操作対象に加えようと思ったのですが、Parsecのlinux版にはホスト機能がありません。
色々と模索する中で、DWServiceを試してみた記録です。

### Parsec
Parsecは、元々はゲームをターゲットにした低遅延のリモートデスクトップで、現在はUnityファミリーです。

https://parsec.app/

私的で非商用であれば無料で使用できます。

https://unity.com/legal/parsec-additional-terms

### Linux Mint
Linux Mintは、Debian/Ubuntu系のディストリビューションで、Windowsユーザには馴染みやすいと言われています。
Windowsが重くなってしまった古いPCの再生で使っています。

https://linuxmint.com/

## DWService
DWServiceは、ブラウザをクライアントにするオープンソースでマルチプラットフォーム対応のリモートコントロールシステムです。

https://www.dwservice.net/en/home.html

https://github.com/dwservice/agent

接続中は、近隣のノードを経由しますが、特に意識することはありません。

https://www.dwservice.net/en/contribute-nodes.html

無料では帯域幅が制限されますが、サブスクリプションで緩和できます。

https://www.dwservice.net/en/contribute-subscriptions.html

私の目的では、無料の範囲で十分でした。
また、現時点で国内にはノードがありませんが、遅延は気になりませんでした。

## 導入
クライアント側はブラウザを使うので、通常、必要な作業はありません。
ホスト側には、デバイスに適した`Agent`をインストールします。
あらかじめ、サービスサイトでアカウントを作成し、ターゲットデバイスを登録します。

### アカウント作成
サービスサイトで`Sign up`します。

https://access.dwservice.net/login.dw?localeid=en#s

アカウントを作ったら、二要素認証を有効にしておきます。

### デバイスの追加
メニューから`Agents`を選び、`＋`を押して、`Name`を決めます。
`Group`や`Description`はオプションです。
生成されたデバイス(`Agent`)は、`To Install`(未導入)に振り分けられ、「コード」が表示されます。
この「コード」は、以降のターゲットデバイスへの導入で使用します。

### `Agent`導入
ターゲットデバイスでサービスサイトを表示します。
ログインする必要はなく、単に、トップページの`Download`からインストーラをダウンロードします。

linuxの場合は、バイナリ付きのシェルスクリプトになっているので、`sudo bash download/dwagent.sh`などとして実行するとウィンドウが開きます。

https://docs.dwservice.net/docs/site/agent-installation-step-by-step/linux/linux-install-the-agent-with-code-gui/

:::note warn
ダウンロードしたサイトやファイルに間違いはないですか?
偽のファイルは、あなたのPCをどのようにでもできます。
:::

導入の最後で先ほどの「コード」を入力します。

:::note alert
電話で「コード」を伝えられたら、サポート詐欺を疑ってください。
相手は、あなたのPCを遠隔で監視・制御できるようになります。
:::

導入が完了したら、念のためにデバイスを再起動しておきます。

## 接続
サービスサイトにログインして、メニューから`Agents/All`を開くと、デバイス名と状態が表示されます。
接続すると、`Files and Folders`、`Text editor`、`Log watch`、`Resources`、`Screen`、`Shell`といったアプリケーションが表示され、`Screen`を使えば、GUIで操作可能になります。

## 設定
`Shell`のユーザは、デフォルトでは`root`になります。
`Text editor`、または`Shell`を使って、`/usr/share/DWAgent/config.json`を編集することで、`Shell`のユーザを制限することができます。

https://docs.dwservice.net/docs/site/remote-access/how-to-use-the-shell-application/

以下の例では、接続時に認証が求められて`user_id`以外は拒否されます。

```diff_json:/usr/share/DWAgent/config.json
 {
+ "shell.enable_authentication": true,
+ "shell.users_allowed": [{"name": "user_id", "enable": true}],
  "enabled": true,
  "key": "~",
  "listen_port": 7950,
  "password": "~",
  "url_primary": "https://www.dwservice.net/"
 }
```

## おわりに
最後までお読みいただきありがとうございます。
どちらさまも、サポート詐欺他のリスクにはご留意ください。
kintone でレコードのフィールド値を取得、更新する PHP プログラム

kintone でレコードのフィールド値を取得、更新する PHP プログラムを作りました。編集不可にした項目を更新するときに使用します。または、添付ファイル情報を取得します。

#### 実行

```console
php 31_get_record.php
```

#### 取得

```php:31_get_record.php
<?php
$appno = "123";
//$appno = "124";
//$appno = "125";

$recid = "55"; // レコードID
$fldnm = "住所"; // フィールド名

$text = 'UserName:YourPassWord';

$body = json_encode([
    "app" => $appno,
    "id" => $recid
]);

$option = [
    'http' => [
        'method' => "GET",
        'header'=> "X-Cybozu-Authorization: " . base64_encode($text) . "\r\n" .
                  "Content-Type: application/json\r\n",
        'content' => $body,
    ]
];

$context = stream_context_create($option);

$response = file_get_contents("https://sample.cybozu.com/k/v1/record.json", false, $context);

$data = json_decode($response, true);

// レスポンスを表示する
//echo $response;

// JSON を整形して表示する
//echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);

// 値を表示する（不要のときは ／＊ ＊／ で括る）
if (isset($data['record'][$fldnm]['value'])) {
    echo $data['record'][$fldnm]['value']; // 値
//    echo $data['record'][$fldnm]['value'][0]; // 配列の値
//    var_dump($data['record'][$fldnm]['value']); // 配列
} else {
    echo $fldnm . "の値が見つかりません。";
}
?>

```

#### 実行

```console
php 32_update_parameter.php
```

#### 更新

```php:32_update_parameter.php
<?php
$appno = "123";
//$appno = "124";
//$appno = "125";

$recid = "55"; // レコードID

$text = 'UserName:YourPassWord';

$body = json_encode([
    "app" => $appno,
    "id" => $recid,
    "record" => [
        "住所" => [ // 文字列（1行）
            "value" => "東京都千代田区麹町"
        ]
    ]
]);


//        "確認作業" => [ // チェックボックス
//            "value" => [ "確認" ]
//        ]

//        "確認作業" => [ // チェックボックス
//            "value" => [  ]
//        ]


// 添付ファイル
// 直前に curl でファイルをアップロードして、そのレスポンスの fileKey をメモする
// curl -X POST 'https://sample.cybozu.com/k/v1/file.json' -H 'X-Cybozu-API-Token: xxxxxxxxxxxx' -F 'file=@test.xlsx'
// 既に添付ファイルがある場合は、その fileKey を取得して、それも一緒に追加する
// php 31_get_record.php （同じ recid と fldnm を指定）

//        "写真" => [ // 添付ファイル
//            "value" => [
//                [
//                    "fileKey" => "123456-abcd-efdh-7890-123456789"
//                ]
//            ]
//        ]

//        "写真" => [ // 添付ファイル（既に添付ファイルがある場合）
//            "value" => [
//                [
//                    "fileKey" => "123456789012345678901234567890"
//                ],
//                [
//                    "fileKey" => "abcdefghijklmnopqrstuvwxyz"
//                ]
//            ]
//        ]

//        "写真" => [ // 添付ファイル（削除）
//            "value" => []
//        ]


$option = [
    'http' => [
        'method' => "PUT",
        'header'=> "X-Cybozu-Authorization: " . base64_encode($text) . "\r\n" .
                  "Content-Type: application/json\r\n",
        'content' => $body,
    ]
];

$context = stream_context_create($option);

$response = file_get_contents("https://sample.cybozu.com/k/v1/record.json", false, $context);

$data = json_decode($response, true);

//echo $response;
echo json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
?>

```
Account Engagement（旧 Pardot）で作ったフォームを申し込み不可状態にする（力技）

## 概要
フォームの非表示項目を必須にすることで無理やり「申し込みフォームを通過出来ない状態にする」という力技です。
**操作方法スクリーンショットあり**
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/d6cfa128-4666-67d1-e088-3ac3255ef099.jpeg" width=70%>

:::note info
以下、本記事内ではAccount EngagementはPardotと表記します。
:::

## ユースケース
* フォームをPardotフォーム機能で作成している（フォームハンドラーでない）
* 標準機能フォームを一旦申し込み停止したい

:::note warn
### デメリット
* あまり良い方法ではありません（EFOがよろしくない）
* ユーザーが入力後送信ボタンを押してしまうとフォーム通過が失敗する判定になる（＝スコアリング等に影響するかも）
* ユーザーにややストレスを与えるかもしれません
:::

:::note info
### メリット
* 標準機能だけで動作します
* タグの張替え等は必要ありません
* どうしようもない時の緊急対応として
:::

## Pardot内操作

フォーム編集画面画面に入り、項目とデザインを編集していきます。
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/fc55d54a-c3c1-49ad-4e11-894543bc7f87.jpeg)

### 項目
「新しい項目を追加」ボタンからフォーム項目を追加します。「基本」タブが開くので、設定項目を入れていきます。
プロスペクト項目は任意の項目を選択してください。（comment等を推奨）
**種別を非表示にし、必須のチェックを入れます。（画像参照）**
![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/8c5283d9-f52e-f881-052f-1bfa69cc433e.jpeg)

「詳細」タブを選択しエラーメッセージを設定してください。「現在お申し込みできません」等。
**事前入力しないにチェックを入れ、変更を保存。**
![003.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/5bc1d7ed-e376-15b9-575d-58c6a14470a1.jpeg)

下記画像のように非表示項目が設定できました。
![004.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/a83ec378-2108-c987-8d06-634b3d96dafd.jpeg)

### デザイン

送信ボタンのテキストを変えておきます（現在お申し込みできません等）
**フォーム上部にわかりやすく「現在お申し込みできません」表記を入れ、ユーザーが混乱しないようにしておきましょう。**
さらに、他のページへのリンクをつけるなどしても良いと思います。（TOPへ戻る等）

![005.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/bb72dec8-b6e2-c60c-705a-852aafabda3b.jpeg)

完了アクションはいじらなくてもOKです。
**「確認して保存」を押してフォームを保存します。**

## フォームの実際の挙動
入力して送信ボタンを押してもエラーメッセージが表示され、申し込み完了できなくなります。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3979801/d6cfa128-4666-67d1-e088-3ac3255ef099.jpeg" width=100%>

フォーム通過のテストは必ず行ってください。（通過出来てしまう時は必須チェックや事前入力チェックが外れていないかご確認ください）
**注意：入力しても通過できないというユーザーをイライラさせるフォームになってしまうので、あくまでも緊急避難的にご使用ください。**

ここまで読んでいただき、ありがとうございました！
AI駆動開発 実際に行ってみた感想

生成AIが2024年冬からさらに加熱しましたね。OpenAI１２日間に渡る発表を機に多くの会社様でAIが取り上げられていますね。
そんな中、その波に乗ろうかと私も
2025年 1月よりAIツールを使って実際に開発してみたので紹介したいと思います

※前提 複数機能を実装しなければならない中でAIツールを使ってみました
※もしPJTで使用する際は責任者に許可を取って使用するようにしてください。
個人開発で使うのもありですが程々の仕様が良さそうです。スキルが向上しないからです。

- 開発しなければならない機能一覧
  - 認証機能
  - ユーザーが入力したデータを保存し画面に表示
      - CRUD処理
      - テーブル定義
      - DBに保存

  - 管理者側機能など ...etc

## 使ったツール

- デザインAIツール 
  - [galileo ai](https://www.usegalileo.ai/explore)
   - AIがデザインを作成してくれる
     - 案外使えます。 綺麗にシンプルなデザインを作成してくれました
     (内容がシンプルだったかもしれませんけど) 
- コーディング
  - CoolClineは[Cline](https://github.com/cline/cline)というツールの仲間(説明省略)
    - 役割はコード実装
  
  - [devin](https://devin.ai/)
    - 役割はコード実装
    - 自然言語処理が良さそう！日本語を的確に理解してくれる
    - devinの良さはいまだにこれという決定的なものは見つからない。しかしエンジニアを1人採用してる感覚はある！
    - PR作成してくれる
    - envファイルはpushしなくて良いなどの指示にも応えてくれる

では、devinとcline, cursor(未使用)と何が違うのか？についてはいまだに言語化できない!こちらについては理解する必要がありそうだ。
いずれにしてもこれらの自律型AIには感心する！指示を理解して私が寝ても自律的に動いてくれるから！
- devinについては個人的にはまだまだな部分があるかと思います
  - devinは技術顧問として雇用したい 
   - (ディスカッションと実装エンジニアとして雇用したい)

- CoolClineとgalileo aiについてはプロンプトは英語の方が伝わりやすいこと
- markdown形式で書くことを推奨します。

## 私の学習方法
- これからAI駆動開発について学びたい方の参考までに私の学習方法
 - コード×AIーソフトウェア開発者のための生成AI実践入門
   - こちらの書籍でAI駆動開発の基礎知識を習得
   - 生成AIで 「~教えて」投げてうまく回答得られなかった人は必読です
   - プロンプトテクニックが生成AIを駆使するコツ?? Yes or No??
     - Yesと答えた人は必読です
 - 諸々AIツール
   - 諸々AIツールを使って試す

  このサイクル(書籍とAIツールを使い回しながら)で私は学習しました。
  
## 感想
AIツールを使う目的を明確にしよう
なぜ、そのAIツールを使うのかより具体的に答えられるのであれば使って良いと思います。
逆に無闇に目的もなく使うのはスキルを伸ばす機会を失うことや工数(時間損失)にもなりかねるので注意が必要です

一応私が現在使っているAIツールは以下
 - Cluade 3.5 
 - Cline
 - API課金
    - DeepSeek ver3
    - claude 
 - devin
 - galileo ai

 過去に使ったことのあるAIツール(有料)
  - Cody
shellのviモード

# 概要
shellでのカーソル移動等でも使いなれたVimの操作を仕様したいですよね。Vimと完全に同じとはいきませんが、おおむね実現できます。
ここでは簡単な紹介をします。より詳細な説明は

https://qiita.com/Pseudonym/items/2cb442ff257a2f9f9d70#bash%E3%82%92vi%E4%BB%95%E6%A7%98%E3%81%AB-set--o-vi

に詳しいです。

# キーバインドの変更
~/.bashrcまたは~/.inputrc、に
```.bashrc
set -o vi
```
若しくは
 ```.bashrc
set editing-mode vi
```
とする。これでTerminalでもviのキーバインドで操作できる。
しかし、このままでは現在のモードが表示されない。

# モード表示のしかた
~/.bashrcまたは~/.inputrcに
```.bashrc
bind 'set show-mode-in-prompt on'
bind 'set vi-cmd-mode-string "\1\e[36m\2(cmd)\1\e[0m\2 "'
bind 'set vi-ins-mode-string "\1\e[36m\2(ins)\1\e[0m\2 "'
```
とする。

# 参考

https://qiita.com/Pseudonym/items/2cb442ff257a2f9f9d70

https://github.com/calid/bash/blob/modestrs/README.md

https://unix.stackexchange.com/questions/533509/how-to-display-the-current-mode-of-vi-command-line-editing-set-editing-mode
ワードクラウドを表示する(SPSS Modeler データ加工逆引き10-22)

# ワードクラウドを表示する（新グラフ/テキストマイニング）

![スクリーンショット 2025-01-06 13.09.26.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/1b774e31-95e4-0d12-6a17-bc4abdd224ef.png)


この記事はSPSS Modeler Premium Ver18.6から追加された日本語テキスト機能を利用して書いています。SPSS Modeler Professionalをお使いの方はアップグレードするかPython連携を用いて実現します。

Python連携を紹介する記事はこちら

https://qiita.com/harrowharrow16/items/248ff8fe3879b63e7ae3

## 1.想定される利用目的

・多頻度ワードの視覚化

## 2.サンプルストリームのダウンロード

ストリーム

https://github.com/yoichiro0903n/blue/raw/refs/heads/main/word_cloud.str

データ

https://github.com/yoichiro0903n/blue/blob/b02b11130c8c35ff26b8f2336d1aa8001374316a/comments2024_mac.csv


## 3.サンプルストリームの説明

![スクリーンショット 2025-01-06 11.59.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/632470b5-5095-0c13-7499-8a6039d2ea64.png)

a.入力データは以下の通りです。[comment]列の文章から頻出ワードを列に展開します。

![スクリーンショット 2024-12-13 10.41.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/5e740adc-dfde-7dfd-f7b6-6a51676d053c.png)

b.[テキストリンク分析]ノードを編集します。
![スクリーンショット 2025-01-06 11.59.48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/2699ea11-492d-2323-b85f-e910f8f331af.png)

[テーブル]を実行します。コメント内から抽出された頻出ワードを縦持ちで表示しています。
![スクリーンショット 2025-01-06 12.00.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/19800355-bfcf-be20-edf1-0ad318028edb.png)

[テキストリンク分析]ノードを右クリックして[データの表示]を選択します。
![スクリーンショット 2022-11-11 14.15.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/1ef9f2d0-77cb-20ba-4894-df147b7e4b05.png)

ワードクラウドを選択します。
![スクリーンショット 2025-01-06 11.57.45.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/73701a8e-c245-2f5f-e605-237ee3a49d73.png)

以下の画面左の設定に従い[適用]ボタンを選択します。
![スクリーンショット 2025-01-06 11.58.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/286322/3b0890f0-76f2-0bdf-8302-3922608a8084.png)

#### 注意事項

新グラフ機能はバージョン18.1以降で装備されました。
日本語テキストマイニング機能はPremium版バージョン18.6で装備されました。

## 4.参考情報

#### 新グラフを解説した記事

https://www.ibm.com/blogs/solutions/jp-ja/learn-modeler-04/

#### SPSS Modeler ノードリファレンス目次

https://qiita.com/416nishimaki/private/503037195081d3323eee

#### SPSS Modeler 逆引きストリーム集（データ加工）

https://qiita.com/416nishimaki/private/4bf813e6cba84b2a1008
Nutanix AHVの機能について

みなさん、こんにちは！
先日のブログ「Nutanix AHVとは」で、VMwareとの機能の比較を簡単にしました。

https://qiita.com/ReQ_HY/items/a797b201e9c349fbf106

今回はNutanix AHVの独自の機能について紹介したいと思います。

## Nutanix Kubernetes Engine(NKE)
これまでKubernetesクラスタを利用するには、複雑すぎてオンプレミスでの運用や管理が難しくクラウドサービスを利用することが一般的でした。
Nutanix Kubernetes Engineは、オンプレミス上でKubernetesクラスタの作成、アップデート、削除といったライフサイクルをシンプルな手順で管理できる機能となります。
アプリケーション開発者は、インフラ担当者への依頼も必要なく、YAMLファイルやKubernetesのUIからの利用が可能となります。
なお、NDK(Nutanix Data Services for Kubernetes)を使用することで、アプリケーション単位でスナップショットを取得しバックアップ・復元・ディザスタリカバリを実現できます。
| 機能一覧 | 機能内容 |
|:-----------|:-----------|
|  自動スケーリング |  利用状況により、コンテナとコンテナのリソースのスケールアップ、スケールダウンを実現する |
|  ライフサイクル管理 |  デプロイメントの中断、継続、前バージョンへのロールバックを実現する |
| 望ましい状態の定義  |  必要な状態を定義し、Kubernetesをその状態にする |
|  自己修復とレジリエンス |  再起動、配置、レプリケーション、スケーリングを自動化する |
|  スケーラブルなストレージ | 必要に応じて動的にストレージを追加する  |
|  負荷分散 |  内部および外部で負荷を分散する |
| DevSecOps のサポート  |  コントローラのライフサイクル全体とクラウド全体で、コンテナ運用のセキュリティを簡素化し、セキュアなアプリの市場投入までの時間を短縮する |
| ディストリビューション  | NKE・OPENSHIFT・RANCHER・AmazonEKS、AKS、GoogleCloudAnthos  |

## Nutanix Database Service(NDB)
Nutanix Database Serviceは、DBaaS(（サービスとしてのデータサービス）)プラットフォームを提供する製品となります。
DBをワンクリックでオンプレやクラウド上に展開し、バックアップ／リストアやパッチ適用といったDBのライフサイクル全般をGUIやAPI操作によって簡単に行うことができる機能です。

これにより、データベース管理者はNDBのUIやAPIからセルフサービスでDBをデプロイし利用することができます。
| 機能一覧 | 機能内容 |
|:-----------|:-----------|
| 対応DB | 	PostgreSQL、MongoDB、MySQL、Microsoft SQL Server、Oracleをサポートする |
| ワンクリックプロビジョニング | DBの種類やパラメータ、仮想マシンのリソース、接続するネットワークを定義した「データベースプロファイル」を選択し、ユーザーから接続可能なDBを自動で展開できる |
|コピーデータマネージメント(CDM)| スナップショットとDBのトランザクションログを用いたNDBの「タイムマシン機能」により、DBのクローンを作成することができる|
| データベースプロテクション | NDBの「タイムマシン機能」によって取得したスナップショットを、DBのバックアップとして使用できる|
| ワンクリックパッチ | DBのライフサイクルを管理し、DBのマイナーバージョンへのアップグレードや、DBがインストールされたLinux OSへのパッチ適用もワンクリックで実施できる |

## Nutanix Prism Central
Nutanix Prism Centralは、複数のNutanixクラスタを集中管理する機能です。
これにより、マルチクラウドやオンプレなどいろいろな環境にあるNutanixを一元管理ができます。
機能は多岐にあるため、以下では一部を紹介します。
| 機能一覧 | 機能内容 |
|:-----------|:-----------|
| レポート機能 | 運用レポートをカスタマイズして自動生成したりメールで送信できるため、作業負荷軽減・工数削減が可能|
| キャパシティプランニング | リソース使用量の将来予測やワークロード追加時の必要ノード数を自動計算でき、PDFでのエクスポートも可能 |
| リソースの非効率性の検出/適正サイジング | リソースの非効率なVMや異常な行動をしているVMを検出できるため、原因となるVMを特定可能 |
| ローコード/ノーコード運用のオートメーション| トリガーや自動実行するアクションをプレイブックとして定義し、運用の自動化ができる|

## Flow Virtual Networking(FVN)
Flow Virtual Networkingは、仮想プライベートクラウド（VPC）やその他の高度なネットワーク構成をAHVで提供し、分離、自動化、マルチテナンシーを強化することができる機能です。
| 機能一覧 | 機能内容 |
|:-----------|:-----------|
| 外部接続  | 	NATおよびNo-NAT、NATまたはNo-NAT  |
| VPC  | 分離ゾーン(名前空間)  |
| サブネット  | IPプレフィックス付きブロードキャストドメイン(RFC1918)  |
| ハイブリッドクラウド接続  | レイヤ2を他のVPCに拡張  |
| ネットワークACL  | サブネット間で許可または拒否するポリシー  |
| 複数の外部ネットワーク  | 2つの異なる外部ネットワークに同時に接続可能  |
|  フローティングIP |  外部IP1:1 NATted to UVM on VPC |
| ポリシーベースルーティング  | サブネット間のトラフィックのルーティングまたはリダイレクト  |
| VPN  | リモートサイトまたはVPCへの暗号化された接続  |

## 最後に
今回は、Nutanix AHVの独自の機能について紹介させていただきました。
私個人としては、Nutanix Prism Centralにより複数のNutanixクラスタ(AHV、クラウド含む)を一括で統合管理できるのは、とても便利なもので、運用面でもレポート機能やキャパシティプランニングなど、地味に運用者の負担となっていた工数の削減に役立つものかと思います。

また、NKEやNDSなど、今までオンプレミスでの運用が難しかったことが、クラウドと同じようにオンプレミス上でも簡単に管理することができ、オンプレミス回帰やNewオンプレミスの流れにものすごくマッチしている機能だと思いました。

次回は、Nutanix AHVのストレージ関連の機能について紹介します。
Nutanixについてご質問等ありましたら、是非お問い合わせください！
DifyとollamaでGraniteモデルをWebアプリ化してみた

# 初めに
以下の投稿にて、ollamaでGraniteモデルをローカルで動かしてみた記事（※1)を投稿しましたが、そのままではユーザーに公開できないため、Dify（※2）でWebアプリ化してみたので、紹介します。

参考
※１：「Graniteモデルをローカルで動かしてみた」

https://qiita.com/ac_qiita/items/252683af4c8fa4c277c5

※２：Dify
LLMアプリ開発プラットフォーム。ローコード/ノーコードでLLMアプリを作成可能

https://dify.ai/jp

# 前提条件
・dockerおよびdocker-composeが導入済みであること
・ollamaでgraniteモデルを実行済みであること

# 手順
#### 1.以下のコマンドを入力し、GitHubからソースコードをクローン
```
git clone https://github.com/langgenius/dify.git
```

#### 2.以下のコマンドを入力し、ディレクトリを移動
```
cd dify/docker
```

#### 3.以下のコマンドを入力し、環境設定ファイルを配置
```
cp .env.example .env
```

#### 4.以下のコマンドを入力し、コンテナを起動
```
docker compose up -d
```

#### 5.WEBブラウザを開き、下記URLにアクセス
```
http://172.16.185.32/install
```

#### 6.管理者アカウントを設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d900bd7b-b2ab-c82f-aa19-c08f014a498c.png)


#### 7.上記で作成した管理者アカウントでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/c805375e-5e76-af7d-6f6b-53e440f7abae.png)


#### 8.画面右上のユーザーアイコンから、「設定」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/af07dce8-1413-3577-974f-a15f95d17c8a.png)


#### 9.設定画面にて、「モデルプロバイダー」を選び、出てきたリストから、「Ollama」を選択し、「モデル追加」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/a8b53f19-78d1-54fa-7692-b50fe08447d5.png)


#### 10.以下のように、各項目を入力し、「保存」をクリックします。
Model Type: LLM
Model Name: granite3.1-dense:2b
Base URL: http://<IPアドレス>:11434
Completion Mode: Completion
Model context size: 任意の数値(初期値：4096)
Upper bound for max tokens: 任意の数値(初期値：4096)
Vision Support: No
Function call Support: No
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d6ff815c-474f-ac18-503b-58894bcf86e7.png)


#### 11.モデルが追加されたことを確認し、設定画面を閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/d76be195-d54b-0cd3-bd11-3857ce8c348c.png)


#### 12.「アプリを作成」の中から「最初から作成」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/e800091a-b574-9882-b7eb-2aede56a6b69.png)


#### 13.以下のように、各項目を入力し、「作成」するをクリックします。
アプリの種類： チャットボット
アプリのアイコンと名前：任意の文字列とアイコン
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/62d6075f-2ebd-1330-a477-d204e0cfe5d0.png)


#### 14.画面右上の「公開する」をクリックし、「アプリを実行」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/af8f2380-e02e-73d5-6acb-4709e62cf140.png)


#### 15.チャットボットのWEBアプリのページが表示されるので、チャットを始めることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/e41681c0-e73a-635f-259e-9f2e08e4be2d.png)

※チャット実行例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1740352/e48acd36-e9aa-4e94-9a36-1085f00ee318.png)


# 最後に
上記の手順で見てきた通り、Difyを使用すると、ノーコードでLLMアプリを作成することが可能です。
Difyにはいろいろな機能がありRAGを使用したアプリを作成することも可能です。
Configure organization-wide defaults


このモジュールですが、2025年1月時点では少し課題が変わったようです。

https://trailhead.salesforce.com/content/learn/modules/data_security/data_security_records

+ [Configure organization-wide defaults](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000BqbOpSAJ)

Create a custom object:
+ Label: Project
+ Plural Label: Projects
+ Object Name: Project
+ Record Name: Project Name
+ Record Name Data Type: Text

Configure organization-wide default sharing settings for the Project object so that Project records are visible only to the record owner and to users above them in the role hierarchy.

+ [I need help in finding the correct organization-wide default sharing setting for Referral.](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000Kfs8o0AB)

Create a custom object:
+ Label: Referral
+ Plural Label: Referrals
+ Object Name: Referral
+ Record Name: Referral Name
+ Record Name Data Type: Text


Configure organization-wide default sharing settings for the Referral object so that Referral records are visible only to the record owner

Configure the sharing settings so that Referral records aren’t visible to users above the owner in the role hierarchy. (We won’t check for this.)
【個人開発】AIの最新情報・プロンプトを「知る」「使える」サイトを開発

# はじめに

はじめまして！初めて記事を投稿させて頂きます。
ちょうど1年前からAIの面白さを知り、今では月に1万円ほどAIに貢いで遊んでいます。
最近はSoraを使って動画生成で遊んでいますが、難しいですね。思った通りの動画になりません。。。
とはいえ、やはり面白いことに変わりはありませんね。今後が楽しみです！

現在主に使用しているAIツール：
- Claude
- MidJourney
- Sora(ChatGPT)
- perplexity
- tl;dv

# 目的

今回このサイトを作った理由は個人的にAIの情報を知り、使いやすいプロンプトをすぐに使いたいと思ったので開発しようと思いました！

2024年9月にサイトをリリースし、エラーなどを修正してやっと紹介できるレベルになったので、ご紹介させて下さい。

# サービスの概要

サービスのURL：[AI Hack](https://ai-hack.jp/AIHack/prompt?action=list)

## AIの最新情報
![スクリーンショット 2025-01-14 16.20.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/8c65dc68-5f47-077a-be41-5f142a514435.png)
PerplexityというAIを使って、海外の最新情報である記事を探し、それを翻訳。その後日本人目線でどのように理解したら良いのか、どのように今後を過ごしたら良いかなどを記事にしています。
 AI先進国である、「アメリカ」「中国」の情報をいち早く知り活用することで、第四の波に乗り遅れることはないと思います。
 
> # 産業革命の歴史

> ## 第一の波: 機械化（18世紀後半から19世紀初頭）
> 
> 蒸気機関の発明による産業の機械化。これにより製造業が効率化され、鉄道や工場が発展しました。

> ## 第二の波: 大量生産と電力の利用（19世紀後半から20世紀初頭）
>
> 電力、化学、鉄鋼産業の発展により、大量生産の時代が到来。フォードの自動車生産ラインが代表的です。

> ## 第三の波: 情報技術とコンピュータ革命（20世紀後半）
>
> コンピュータ、インターネット、通信技術の発展。これによりデジタル化、グローバル化が進み、産業全体が情報技術を中心に進化しました。

> ## <font color="red">第四の波: AI（人工知能）と自動化、IoT（モノのインターネット）（現在進行形）</font>
>
> <font color="red">AI、ロボティクス、IoT、ビッグデータ、クラウドコンピューティング、バイオテクノロジーなどの技術が融合し、産業全体が高度に自動化され、人工知能が意思決定や創造活動にも関与するようになっています。製造業やサービス業の効率化に加え、医療、交通、エネルギー分野でも革命的な変化が見られます。</font>

## AIツールのランキング
![スクリーンショット 2025-01-14 16.22.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/80298809-cbb3-8b90-396f-e058dca7e467.png)
一目見てAIのランキングが分かるように作りました。
正直まだ途中なので、今後完成させたいです。

管理者画面ですが、楽にするためにJavascriptを使ってドラックすることで位置を変更できるようにしています。
![kanri.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/e0630e72-493d-21a8-996a-5aef07e73b6a.gif)




## プロンプト紹介
![スクリーンショット 2025-01-14 16.33.13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/d114f939-57d6-0749-3137-0e1e184c29a0.png)
![スクリーンショット 2025-01-14 18.04.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/fda2e37f-4ffe-1583-ae8c-6f2723d47103.png)

キーワードに文字を入力するだけで、コピペですぐに使えるプロンプトができあがります。
![cook_prompt.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/1de795af-4081-9e9c-9e85-63cdc312612f.gif)

![cook_gpt.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2706173/d71d8d68-cb9a-d748-2fa1-05d6c8e9710c.gif)

# 構成

**使用言語：**
- Java
- Javascript

**AWSアーキテクチャ：**
- Route 53 - ドメイン名の管理
- Elastic Load Balancer (ELB) - トラフィックをEC2インスタンスに分散
- EC2 - アプリケーションのホスティング環境
- RDS - データベースのホスティング
- S3 - 静的コンテンツ（画像、CSS、JavaScriptなど）の保存
- IAM - サービス間のアクセス権限管理
- Certificate Manager - SSL証明書の管理

# おわりに

私がAIの面白さを知ってから1年が経ちましたが、その進化の速さには本当に驚かされます。
最初はChatGPTで簡単な会話を楽しむ程度でしたが、今では動画生成AIのSoraや、画像生成のMidJourneyなど、想像もしていなかった技術が次々と登場し、私たちの創造力の可能性を広げてくれています。

特に最近感じるのは、AIは単なるツールではなく、新しいパートナーになっているということです。主に自分が楽になるのが良いですよね。
このサイトを作る過程でも、AIの可能性に期待しっぱなしでした。

そして、これはまだ始まりに過ぎないと考えています。今後さらにAI技術は進化し、私たちの生活や仕事をより豊かにしてくれると思っています。
この急速な変化の波に乗って、皆さんと一緒に新しい可能性を探っていけたらと思います。

最後までお読みいただき、ありがとうございました。
このサイトがAIに興味を持つ方々の一助となれば幸いです。今後も新しい機能の追加や改善ができればと考えています！
(QA) IBM i のWeb Enablement for i ライセンスとは何ですか？インストール済みか調べる方法は？

## Q1. Web Enablement for i とは何ですか？

[こちら：IBM i がサポートするWebSphere Application Server, Javaバージョンのリスト](https://qiita.com/gomAnomalocaris/items/b714e79383500a051513)　にも記載しましたが、IBM i で稼働するWAS（WebSphere Application Server, tWASともよばれます)には、他のプラットフォームと同じ有償のPAパスポートアドバンテージ版と、IBM i OSの無償オプションとして提供されるものの2種があります。この**IBM i 無償オプションのtWASを提供しているライセンスプログラムをWeb Enablement for i と呼びます。**

## Q2. Web Enablement for i がインストールされているか？を確認する方法はありますか？

IBM i システムに上記Web EnablementのWASが導入されているかを確認するコマンドは
***GO LICPGMコマンドから10.導入済みライセンス・プログラムの表示***を実行すると表示されます。
**またはDSPSFWRSCコマンド**でも表示できます。

表示の見方は、Web Enablementは 5733-Wxxが導入されていればWeb Enablement (WAS)が導入されています。xxはWASのバージョンです。

下記のGO LICPGM -> 10. の画面コピーの例ですと、5733W90＝WAS V9.0が導入済みです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1011394/a6ec4438-796e-29b0-d99a-498e227e2e1c.png)

## IBM i ではWAS Libertyもサポートされています。

LibertyはIWS（統合APサーバー）等で使用されており、IBM i OS標準で導入されます。
ライセンスプログラムとしては、**57XX-DG1  *COMPATIBLE  IBM HTTP SERVER FOR I **がインストールされていれば使用可能です。（確か・・・確認します。）
あなたのキャリアはここから始まります - 新卒者にとって可能性に満ちた企業環境！

## こんにちは！私たちはBrycenで9ヶ月間働いている新卒社員です。私たちの会社と現在の仕事について少しシェアさせてください！
1. Hさん（ベトナム）
  こんにちは、私はベトナムから来たHです。新卒社員であり、外国人として日本で働くことに対して、入社前はたくさんの不安がありました。しかし、Brycenで新卒社員として働き始めてから、その不安は徐々に消え、代わりに毎日努力し続けるためのモチベーションが湧いてきました。現在、私は以下のような素晴らしい体験をしています。
■ 待遇について
住居サポートや外国人へのサポートなど、多くの福利厚生があります。また、年に2回の旅行や年2回のボーナスも支給されます。
■ 働く環境について
フレックスタイム制度を導入しており、柔軟な勤務時間を選べます。さらに、多国籍な環境で、同僚はみんな親切です。
■ 研修期間について
JavaやSQL、必要なソフトスキル、会社の規則や制度について多くを学びました。
■ 現在の業務内容について
現在、COOOLaのプロジェクトに参加しています。多くのことを学び、さまざまな仕事に取り組むことで、ITプロジェクトの全体像を理解することができました。
■ 専門技術について
Javaについては知識が深まり、さらにSQLについても学んでいます。加えて、新しい知識に触れる機会も増えました。
■ ソフトスキルについて
人とコミュニケーションを取ることに自信がなかったのですが、仕事を通じて徐々に積極的に話したり、仕事の内容について同僚とディスカッションすることができるようになりました。
私にとって、Brycenは新卒のような若い社員に素晴らしい環境と仕事の内容を提供してくれる会社です。これからもBrycenに貢献し、長く働きたいと考えています。皆さんもぜひ一緒に働きましょう！
2. Yさん
  こんにちは、2024年新卒入社のYです。
就職活動で自分に合う会社選びで悩まれているかと思います。
私からはブライセンに入社してよかったこと、
現在の仕事についてお話しさせていただき、少しでもブライセンを知っていただけたらと思います。
■ 入社してよかったこと
・様々な国籍の方たちとコミュニケーションをとることができることです。
  色々な文化に触れることができるため、新しい気付きなどもありました。
  また、皆さん日本語が上手で話がスムーズにできることにも驚きました。
  他国の価値観を知れるのも面白いです。
・要件定義から保守まで携わる機会があることです。
  本人のやりたいことを尊重してくれます。
・悩み、相談に対して、先輩、上司の方々が真摯に向き合ってくれることです。
  仕事に関してうまくいかない時や、ミスへの対策の仕方等いろいろと相談させていただきました。
■ 現在の仕事
  新規の仕事（案件）に最初から参画させていただいています。
  最初は要件定義等、上流工程を経験し、現在はテスト用のデータづくりを行っています。
  プログラムの技術を磨くだけでなく、お客様との打合せや設計書の作成など、
  学ぶことが多く大変ですがいい経験ができています。
  ブライセンは失敗を恐れず取り組むませてくれるいい会社です。
  少しでも興味を持っていただけたら幸いです。
3. Mさん
   ミャンマーから参りました。
  2024年新卒としてブライセンに入社しました。
  外国人として入社前は不安や悩みも多かったのですが、ブライセンでは多国籍な環境で働けることに
とても感謝しています。仕事を通じてさまざまな文化背景を持つ仲間たちと学び合い、共に成長できるのは大きな魅力です。
■ 福利厚生について
　・フレックスタイム制度やリモートワークが導入されているので社員が自分のライフスタイルに
合わせて働ける柔軟性があります。
　・社宅補助が提供されており、生活のサポートも充実しています。
■ 職場の雰囲気と文化
　・性別、年齢、国籍、文化などの違いを尊重する職場です。多様性が受け入れられており、
互いに学び合う環境が整っています。
■ 現在の業務内容について
　・現在、仕様書作成やテスト、お客様との打ち合わせ、POWER BIを使って帳票作成を行っています。
　  主にJavaを使用するプロジェクトに携わっています。
　・分からないことがあれば、先輩たちがサポートしてくれるので、安心して作業を進めます。
新人にとっては、さまざまな経験や学びを得ることができる環境です。
皆さんもぜひ、ブライセンに少しでも興味を持っていただければと思います。
新しい挑戦が待っている職場で、共に成長できる機会がたくさんあります！
4. Sさん
 こんにちは！私は2024年新卒としてブライセンに入社したSです。
ベトナムの出身です。外国人として日本で働くことに対して不安もありましたが、
ブライセンでは多国籍な環境でたくさんの学びと成長の機会を得ることができ、日々充実した時間を過ごしています。
■ 多国籍な職場環境
ブライセンでは、さまざまな国籍や文化背景を持つ仲間たちと一緒に働くことができます。
異なる視点を持つ仲間と協力することで、多様性の大切さを学びました。 特に、日本語が上手な外国籍の同僚たちから刺激を受けています！お互いに学び合える環境がとても魅力的です。
■ ブライセンでの学びと成長
ブライセンでは、失敗を恐れず挑戦する姿勢を大切にしており、新人であっても積極的に意見を出し、自分のやりたいことに挑戦するチャンスがあります。 また、周囲の方々はいつも親身になってサポートしてくださるため、安心して新しいことに取り組むことができます。
私は新人1年目もお客先で勤務させていただきました。いろいろなことを学ぶことができました。
みんなの優しいご指導をいただき、大変助かりました。仕事も徐々に成長できています。
ブライセンで一緒に働きましょう！
私にとってブライセンは、成長できる環境と安心して働ける職場が揃った素晴らしい会社です。 多国籍な仲間と協力し合いながら新しいことに挑戦することで、自分自身を成長させることができます。
もし少しでも興味を持っていただけたら、ぜひ一緒に挑戦してみませんか？ みなさんと働ける日を楽しみにしています！