OmniAICreator/Qiita-1.07M huggingface dataset:
Apple Intelligence を Dify や Cursor のモデルプロバイダーに設定する

## 背景
WWDC25 の発表で、Apple の次期 OS (iOS/iPadOS/macOS) で、Foundation Models Framework が導入されました。これにより、Apple Intelligence という ローカルで動作する LLM がより簡単に利用可能になります。今までの LLM 利用の課題として、アプリケーション内部での AI 利用は、こんな感じでした

- 商用LLMのAPIを使用 (要登録)
- 従量課金モデル (要お金)
- クラウドへのリクエスト送信(要ネットワーク)

これが、Foundation Models Framework を利用することで、オフラインだったり、従量制のコストをかけずに実現できるようになるわけです。

で、これをアプリ内だけで使うのは「もったいない」と、Foundation Models Framework の実装を OpenAI API の仕様に変換できれば、Apple Intelligence を Dify や Cursor のモデルプロバイダーとして使えるのでは？と言うことで、Claude Code と一緒に作ってみました。

:::note warn
本記事は技術的な概念実証を目的としており、実装の詳細やソースコードは含まれておりません。また、macOS 26 は開発者向けプレビューであり、正式リリース時には仕様が変更される可能性があります。
:::

## 仕組み
仕組みは至って簡単。
1. HTTP サーバーを起動する macOS アプリ
2. OpenAI API 互換の JSON を受け取る
3. Foundation Models Framework に渡す
4. 結果を OpenAI API 形式で返す

めっちゃシンプル。

## バイブコーディング開始
早速 Claude Code に指示

> このプロジェクトは、Mac OS アプリのプロジェクトです。アプリ構成はシンプルで、起動したらリッスンポートを指定するだけで、そのポートでHTTPをサーブします。エンドポイントはOpenAI APIに準拠して、macOS 26 の Foundation Models Framework の推論結果を OpenAI API に準拠した形式で応答するだけのプロキシのようなものです。遠慮せず全力を尽くして下さい。

プロンプトはこれだけですが、Foundation Models Framework 以前に HTTP サーバやストリーミングレスポンス、あと、アプリのパーミッション的なところで結構つまずきました。

ソースを公開できないのが残念ですが、下記の実装を伝えれば、バイブコーディングで誰でも作れると思います。

- BSD Socket を使用した低レベルな HTTP サーバー
- OpenAI API 仕様に完全準拠
- ストリーミングレスポンス対応
- エラーハンドリング
- CORS 対応


## Dify のモデルプロバイダーに登録
Dify 側は、OpenAI-API-compatible で登録します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6102/8ef4d6f6-7bc3-40da-ac36-624a1f1dac03.png)


## いざ通信！
アプリ側のスクショやソースコードは諸事情あって公開できませんが、Dify から投げた質問はこんな感じ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/6102/14369cd3-9435-4032-9358-24d5f345b5e8.png)

いや、ナスタシアって誰！？
アニメはあまり得意じゃないっぽいです。

パフォーマンス的には、M1 MacBook Air で測定したのですが、ローカルで動く他の OSS の LLM に比べてかなり速いです。（この辺もNDAに抵触する可能性があるのであまり記載はできませんが、もしかしたらローカルではなくプライベートクラウド上で動いているのかも？）

全てはお見せはできませんが、Dify のナレッジをベースに質問するとそれなりに良い回答が得られました。

## まとめ
NDA があるので歯切れの悪い記事になりましたが、現時点では技術的には可能のようです。
今後制限される可能性はありますが、これができればさらに AI アプリの可能性が広がりそうですね。正式公開が楽しみです！
パッケージシステムの保守　SAPのHCM（人事システム）のアプリ保守とは

**はじめに**
私は、７年間パッケージシステム（SAPのHCMモジュール）の開発保守を行うチームで
業務をしてきました。後半３年間は、チームリーダーとして、
チームの指揮をとっていました。
開発業務では、プロジェクトを立ち上げ、プログラム改修をしていく、
保守業務では、アプリ観点で安定稼働のための作業と、ユーザ支援を行いました。
人事・給与を扱うパッケージシステムの保守業務は、どんな業務があるのか、
私の経験を書いていきます。

パッケージシステムの保守では、アプリ担当として、どのような業務を行うのか、
どのようなスキルが身につくのか、の参考になればと思います。

# パッケージシステムの保守業務とは
保守フェーズに入って長いシステムは、安定稼働しており、
大規模な改修を行うことが少ないため、地味な業務と思われがちです。
ただ、大規模案件やシステム導入案件に関わりたいけど、
経験が浅いため、なかなかアサインされない場合や、スキルアップしたい場合に、
経験を積み、スキルアップする１ステップになると思います。
私のチームでは、主に次のような業務を行っていました。
（定例的業務は割愛）

### ユーザからの問い合わせ対応
ユーザからの問い合わせを受け、調査等を実施します。
設計書を確認する、ソースコードを読む、テスト環境で事象を再現する、等
システムエンジニアとしての、基礎的な能力が必要です。
基礎的能力の習得だけでなく、パッケージの仕様理解、問題の分析力が、
鍛えられます。
また、システムに詳しくないユーザからの質問を受け、回答するため、
人にわかりやすく説明する力がつきます。
（資料作成・回答メール作成・電話対応等）

### パッチ適用に伴う検証対応
SAPでは、サポートパッケージと呼んでいますが、俗に言うパッチ適用です。
パッケージ製品の不具合修正、新機能の追加、法改正対応、等の内容が含まれます。
パッチ適用しても、既存と同じように使えるのか、自社独自で導入している機能や、
周辺システム（インターフェース等）へ影響を与えないか、を検証します。
パッチの内容によって、テストシナリオを組みますので、
影響範囲を分析して、テストケースを検討する力がつきます。

### 軽微なマスター修正対応
法改正、制度改正、ユーザ要望、等に伴い、システムのマスター値変更を行います。
例えば、人事システムの場合、健康保険料率の変更や、ベースアップによる
給与額の変更等があります。
パッケージの仕様理解が進みます。

### 法改正の情報収集
人事システム特有かもしれませんが、税制改正が毎年あり、
給与に関する税制が、毎年変わります。
法改正の内容を分析し、事前に影響範囲を確認することで、
業務計画に反映します。
法改正は、必ず期限までに対応する必要があるため、事前に業務調整を行います。
様々視点でシステムの影響調査を行う力、工数算出の感覚、が身につきます。

余談ですが、今年の税制改正で、所得税の基礎控除額と給与控除額が変更となると
一時期ニュースでも取り上げられましたね。103万円の壁問題です。
一納税者としては少しうれしい話ではありますが、
人事・給与システムを保守している人は大変だろうと思います。。。
私が、開発保守を行うチームリーダーの時だったら、と考えるとゾッとします。

### システムを使ったユーザ業務支援
システムのデータを使って、とある業務をしたいが、どうしたら良いか
のような相談が来るケースです。
既存機能やエクセル等を駆使して、どう効率よく対応できるかを検討します。
例えば、「１年前の残業時間誤りが発覚したため、追給したい」
この場合は、既に登録されているデータへの影響を考えながら、
誤ったデータを上書きするべきか、別途差分のみを投入するべきかや、
人数規模によっては、作業量が現実的なものか、を検討する必要があります。
広い視野で影響を見極め、効率よく対応できるフローを検討する力がつきます。
将来コンサルタントになって、システムを使った業務フローの構築をするための
第１歩にもなります。

### 最後に
保守と聞くと地味に感じますが、システムエンジニアとしての基礎を磨くには、
とても恵まれた環境です。
また、関わる業務によっては、コンサルタントへの道も開けるかもしれません。
システム開発を行う業務に関わることが、システムエンジニアの花方ではありますが、
基礎を磨く、基礎知識を応用する力をつける、には良い環境かもしれません。

一方で、ある程度キャリアを積んだ状態かつ、将来コンサルタントや、
プロジェクトマネージャーを目指す、キャリアを描いている場合、
保守案件はおすすめできないことがあります。

迷ったら周りのキャリア相談できそうな人に相談してみてください。
Pythonハッシュ解析ツール

# 主な機能
- ユーザーが入力したハッシュの形式を判別
- John the Ripperとrockyou.txtを使用してクラック
# 前提条件
- Python 3.6+
- John the Ripper (`john`コマンドが使用可能なこと）
- ワードリストを用意すること（デフォルトでは`/usr/share/wordlists/rockyou.txt(.gz)`を参照

# 使用方法
```bash
python3 hash_cracker.py
```

# 使用例
```bash
> python3 hash_cracker.py

Mode:
1: Analyze hash type
2: Analyze hash type and Crack it
> 2

Enter a hash:
> 5f4dcc3b5aa765d61d8327deb882cf99

[*] Cracking hash using format: raw-md5
==================================================
5f4dcc3b5aa765d61d8327deb882cf99:password
==================================================
[+] Password found: password
```

# 対応しているハッシュ形式
| ハッシュ形式         | 判定正規表現                   | JohnのFormat名  |
| -------------- | ------------------------ | ------------- |
| MD5            | 32文字16進数                 | `raw-md5`     |
| NTLM           | 32文字16進数                 | `nt`          |
| SHA-1          | 40文字16進数                 | `raw-sha1`    |
| SHA-256        | 64文字16進数                 | `raw-sha256`  |
| SHA-512        | 128文字16進数                | `raw-sha512`  |
| MD5crypt       | `$1$` で始まる形式             | `md5crypt`    |
| bcrypt         | `$2a$` や `$2b$` で始まる     | `bcrypt`      |
| SHA-256crypt   | `$5$` で始まる               | `sha256crypt` |
| SHA-512crypt   | `$6$` で始まる               | `sha512crypt` |
| NetNTLMv1      | `:` 区切りの32文字×2           | `netntlm`     |
| NetNTLMv2      | `:` 区切りの3〜4項目（MS-CHAPv2） | `netntlmv2`   |
| Kerberos 5 TGS | `$krb5tgs$` で始まる         | `krb5tgs`     |

# 補足
rockyou.txt が .gz のままだと解凍を促します。
```bash
Please extract rockyou.txt.gz at /usr/share/wordlists/rockyou.txt.gz
```

# GitHub
https://github.com/sup0gari/CTF_TOOLS/blob/main/hash_cracker.py
【生天目佳高】マーケターこそGA4を使いこなせ：非エンジニアのための導入ガイド


はじめに

フリーランスSEの生天目佳高です。スタートアップの技術支援をしていると、
「GA4の設定をお願いします」という依頼をよく受けます。
しかし、設定後に「使い方が分からない」と相談されることも多いです。

実は、GA4は非エンジニアでも十分活用できるツールです。
今回は、マーケター向けにGA4の基本的な導入と活用方法を解説します。

GA4とユニバーサルアナリティクス（UA）の違い
まず、従来のUAとGA4の主な違いを理解しましょう。
データモデルの変化

UA: セッションベース
GA4: イベントベース

主な改善点

プライバシー保護の強化
アプリとWebの統合分析
機械学習による予測機能
BigQueryとの連携（無料）

基本設定の流れ
1. GA4プロパティの作成
javascript// Google Tag Manager使用時の基本設定
gtag('config', 'GA_MEASUREMENT_ID', {
  page_title: 'ページタイトル',
  page_location: 'URL'
});
2. 重要なイベントの設定
GA4では、以下のイベントを最初に設定することを推奨します：

page_view（自動収集）
scroll（拡張計測で有効化）
click（カスタムイベント）
form_submit（カスタムイベント）

3. コンバージョンの定義
マーケティング活動の成果を測定するため、コンバージョンイベントを明確に定義します：
javascript// 購入完了イベントの例
gtag('event', 'purchase', {
  transaction_id: '12345',
  value: 25.42,
  currency: 'JPY',
  items: [{
    item_id: 'SKU123',
    item_name: '商品名',
    category: 'カテゴリ',
    quantity: 1,
    price: 25.42
  }]
});

マーケターが注目すべき機能
1. 探索レポート
従来のカスタムレポートに相当する機能です。

経路データ探索: ユーザーの行動フローを可視化
ファネル探索: コンバージョンプロセスの離脱点を特定
コホート探索: ユーザーのリテンション分析

2. オーディエンス機能
高度なセグメンテーションが可能です。
javascript// カスタムオーディエンスの例
// 「過去30日間に3回以上訪問したユーザー」
conditions: [
  {
    parameter: 'session_count',
    comparison: 'GREATER_THAN',
    value: 3
  }
]

3. アトリビューション分析
マルチチャネルでの貢献度を正確に測定できます。

実装時の注意点
データの保持期間

GA4はデフォルトで2ヶ月間のデータ保持です。必要に応じて14ヶ月に延長しましょう。

プライバシー設定
GDPR対応のため、適切な同意管理を実装してください。
javascript// 同意管理の例
gtag('consent', 'default', {
  'analytics_storage': 'denied',
  'ad_storage': 'denied'
});

// ユーザー同意後
gtag('consent', 'update', {
  'analytics_storage': 'granted'
});
スタートアップでの活用事例
私が支援しているスタートアップでは、GA4を以下のように活用しています：
A社（SaaS）の場合

無料トライアル登録率の改善
機能別の利用状況分析
チャーン率の予測

B社（EC）の場合

商品カテゴリ別の売上分析
カート放棄率の改善
LTVの予測


まとめ
GA4は確かに学習コストが高いツールですが、マーケターにとって強力な武器になります。重要なのは：

段階的な導入: 基本設定から始めて、徐々に高度な機能を活用
目標の明確化: 何を測定したいかを事前に定義
継続的な改善: データを基にした仮説検証サイクルの構築

技術的な設定で困った場合は、エンジニアと連携しながら進めることをお勧めします。GA4を使いこなして、データドリブンなマーケティングを実現しましょう。
Azure AI Language の Custom question answering の API をPowerShell  で実行する

# この記事の目的
公式ドキュメントにはリファレンスが記載されているが、実行するとき毎回変換する必要があるため、備忘の為、記載する

# 実行するAPI
Azure AI Language / Custom question answering のREST API である Question Answering - Get Answers APIを実行する

https://learn.microsoft.com/en-us/rest/api/language/question-answering/get-answers?view=rest-language-2021-10-01&tabs=HTTP

https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/quickstart/sdk?tabs=windows&pivots=rest

[Language Studio](https://language.cognitive.azure.com/) のテスト時に実行されているAPI
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/232184/8cd9b234-c148-4990-a269-97f73fe8ed57.png)

# 実行方法
PowerShell の Invoke-RestMethod を使用して実行する

https://learn.microsoft.com/ja-jp/powershell/module/microsoft.powershell.utility/invoke-restmethod?view=powershell-7.4

# 実行例

```Powershell
$key = "<api key>"
$Resource = "<Resource 名>"
$ProjectName = "<プロジェクト名>"
$DeploymentName = "<デプロイメント名>" #Studioと同じなら"test"
$apiversion = "<REST APIのバージョン>" #Stuioと同じなら"2021-10-01"
$url = "https://$Resource.cognitiveservices.azure.com/language/:query-knowledgebases?projectName=$ProjectName&api-version=$apiversion&deploymentName=$DeploymentName"
$headers = @{}
$headers["Content-Type"]  = "application/json"
$headers["Ocp-Apim-Subscription-Key"] = "$key"
$body = '{
  "question": "How do I setup my surface book?"
}'

$response = Invoke-RestMethod -Uri $url -Method POST -Headers $headers -Body $body
$response | Format-List
```

key などの取得方法はこちらを参照

https://learn.microsoft.com/en-us/azure/ai-services/language-service/question-answering/quickstart/sdk?tabs=windows&pivots=rest#query-a-project

APIのバージョンはREST APIのリファレンスを参照

https://learn.microsoft.com/en-us/rest/api/language/question-answering/get-answers?view=rest-language-2023-04-01&viewFallbackFrom=rest-language-2021-10-01&tabs=HTTP
AIに仕様を思い出させる方法──ChatGPT × Pythonによる長期設計管理のすすめ


# ChatGPTはすぐ忘れる。その記憶を、私はコードに託した。

## はじめに
https://qiita.com/Hiroki_Azuma/items/db97bf02979dd180a9f0
↑この記事の続きを書いています。

ChatGPTを使って複雑な設計や仕様策定を進めていると、「前回のやり取りが引き継がれていない」「少し構成を変えただけで、一から説明し直さないといけない」といった場面によく出会います。

そのたびに、「あのとき苦労して作ったロジックや前提、もう一度言うのか…」とため息をついた経験は、私だけではないはずです。

そんな課題を感じた私は、ChatGPTとの会話の中で得た仕様や構造、未完の構想までも含めて、**すべてをPythonコードという形式で残す**という方法を取るようになりました。

これは、単にコードとしてロジックを完成させることが目的ではなく、**ChatGPTとの会話そのものを体系的に、再現可能な形で記録する手段**としてコードを位置づける試みです。

## コードは「実行可能な会話ログ」になる

ChatGPTとの対話では、その場で得られた回答を保存することはできますが、スレッドをまたいだり、新しいやり取りに移ったりすると、前回の前提や流れがきれいに忘れ去られてしまいます。

そこで私は、会話の一時的なやり取りを「設計書」「進行状況」「未完成の構想」などを含む**構造化されたPythonスクリプト**として保存することにしました。

このとき、コードの実行可能性や完成度は重要ではありません。重要なのは、ChatGPTに渡したときに**前回の意図や背景が即座に再現されること**です。いわば、「会話の記憶をコードに託す」という発想です。

## 実際に使用したコード構成

今回のプロジェクトは、NISAやiDeCoの積立、長期的な支出・収入をもとにした「ライフプラン資産運用シミュレータ」の設計を目的としたものでした。プロジェクト進行は段階的で、各要素が複雑に絡むものであったため、単なるプロンプト指示だけでは限界がありました。

そのため、次のようなコード構成で、会話の意図・進捗・仕様をすべて残すようにしました。

```python
# プロジェクト進行を記録するマイルストーンの定義
@dataclass
class Milestone:
    id: str
    name: str
    status: Literal['未着手', '進行中', '完了']
    description: str

# データ構造や設計対象のモデル定義（積立設定、年齢記録など）
@dataclass
class SavingSetting:
    person: str
    product: str
    saving_type: Literal['月額', 'スポット']
    start_year: int
    monthly_amount: float
    spot_limit: float
    stop_age: Optional[int] = None
    cap_amount: Optional[float] = None
    initial_principal: float = 0.0

# 実装が完了したロジックには具体的な関数、
# 未実装のものには構想とともにpassを記述
def simulate_asset_growth():
    """
    実装予定：
    - 前年残高 + 積立 + 利回り反映
    - 年金/収入反映 → 支出引き → 取り崩し
    - 優先順: 年金 > 現金 > NISA > iDeCo
    - シナリオ選択による利回り分岐
    """
    pass
```

このようにしておくことで、次回ChatGPTとやり取りを始める際にこのコードを丸ごと読み込ませれば、「前回のテーマ」「進行状況」「未実装の構想」がそのまま再現されます。

ChatGPTはこちらの文脈を即座に理解し、「未完成の関数をどう埋めるか」「設計に何を追加すればよいか」といったアシストを、前回と同じ前提で提供してくれるようになります。

## 実行可能性よりも「文脈の記述」が大切

プロンプトという人間主導の話法より、GPTが得意とするPythonコードのほうが**読み手（AI）にとっての会話として成立しやすいと考え、たとえば、次のような観点を意識しています。

- クラスや関数に“何を意図しているか”を明示的に記述する
- コメントやdocstringに「まだ何を考えているか」「次に何をしたいか」を書き残す
- 実装済みかどうかは関係なく、構造が“そのまま意図を持つ”ように整理する

こうすることで、コードが単なる処理記述ではなく、**ChatGPTとの会話構造そのもの**として機能してくれます。

## 会話は消えるが、構造は残る

私たちは、ChatGPTとの会話を通じてさまざまな知見や工夫を得ています。しかし、そのやり取りは保存しなければ失われ、保存しても“文脈を持った形”ではありません。

だからこそ、私は「コードに託す」という方法を選びました。コードは会話を保存するだけでなく、再び読み込むことで**記憶を呼び戻す**媒体になります。しかも、それは“機械に理解されやすい形”でもあります。

## おわりに

AIと継続的なプロジェクトを進めたいと考えている方にとって、コードを会話のログとして使うという発想は、大きな助けになるかもしれません。実行可能性を重視するのではなく、**会話を再現するための構造化された記述**としてコードを活用する。これは、ChatGPTのような言語モデルとの協働を“その場限り”ではなく、“育てていくもの”へと変えるひとつの方法だと思っています。

もし、ChatGPTとのやり取りにおいて「また一から説明し直すのが面倒だな」と感じたときは、ぜひ一度コードという記憶媒体を試してみてください。意外なほど、会話の精度と再現性が変わってくるはずです。
微分・積分・三角関数・ネイピア数とLLM



## 1. 自己回帰型生成モデル（Autoregressive Language Modeling）

$$
P(x_1, x_2, \dots, x_T) = \prod_{t=1}^{T} P(x_t \mid x_1, \dots, x_{t-1})
$$

* 各トークンは時系列で積み重ねる自己回帰的構造。


---

## 2. ニューラルネットワークによる確率推定

$$
x_t \sim \mathrm{Softmax}(f_{\theta}(x_{<t}))
$$

* $f_{\theta}$：パラメータ付き関数（ディープネットワーク）
* 出力 $z = f_{\theta}(x_{<t})$ に Softmax を適用。

---

## 3. Softmaxとネイピア数（自然対数の底 $e$）

$$
P(x_t \mid x_{<t}) = \frac{\exp(z_{x_t} / T)}{\sum_i \exp(z_i / T)}
$$

* Softmax関数は**ネイピア数 $e$** を底にした指数関数。
* 温度 $T$ により分布の**滑らかさ**を制御（指数関数の「傾き」調整に対応）。

---

## 4. 条件付き確率による応答生成

$$
P(y_1, \dots, y_n \mid x_1, \dots, x_m) = \prod_{t=1}^{n} P(y_t \mid x_1, \dots, x_m, y_1, \dots, y_{t-1})
$$

* プロンプト入力によって確率分布を**条件付き**に。

---

## 5. Attention機構と三角関数

$$
\mathrm{Attention}(Q, K, V) = \mathrm{Softmax}\left( \frac{QK^\top}{\sqrt{d_k}} \right) V
$$

* 内積類似度を正規化して重み付け。
* Positional Encodingにより**系列順序**を導入（下記参照）。

---

## 6. モデル出力関数

$$
\hat{y} = \mathcal{M}(x; \theta, T)
$$

* $x$：入力トークン列、$\theta$：学習済みパラメータ、$T$：温度（多様性制御）

---

## 7. 損失関数とネイピア数（クロスエントロピー）

$$
\mathcal{L}(\theta) = - \sum_{t=1}^{T} \log P(x_t \mid x_1, \dots, x_{t-1}; \theta)
$$

* $\log$ は**自然対数（底 $e$**）、Softmaxとの相性が良い。
* これは**情報理論的損失**（エントロピー）に一致。

---

## 8. プロンプト生成関数

$$
\text{Prompt} = f(\text{Instruction}, \text{Input}, \text{Constraint})
$$

* 構文関数 $f$ により構成。

---

## 9. 出力関数

$$
\text{Output} = \mathcal{M}(\text{Prompt}; \theta, T)
$$

---

## 10. プロンプト最適化：スコア最大化

$$
\underset{\text{Prompt}}{\arg\max} \; \text{Score}(\mathcal{M}(\text{Prompt}))
$$

* 指定関数スコアに対する**最適化問題**（argmax）

---

## 11. Few-shot Learning構文

$$
\text{Prompt} = \sum_{i=1}^{k} \left( \text{Example}_i^{\text{Input}} + \text{Example}_i^{\text{Output}} \right) + \text{Instruction} + \text{NewInput}
$$

---

## 12. Chain-of-Thought（思考の連鎖誘導）

$$
\text{Prompt} = \text{Instruction} + \text{Input} + \text{"Let's think step by step."}
$$

---

## 補足：位置エンコーディング（Positional Encoding）と三角関数


$$
\text{PE}_{(i,2k)} = \sin\left(\frac{i}{10000^{2k/d_{\text{model}}}}\right), \quad
\text{PE}_{(i,2k+1)} = \cos\left(\frac{i}{10000^{2k/d_{\text{model}}}}\right)
$$


* $\sin$, $\cos$ による周期関数。
* 周期性により**トークン間の距離**を連続的に表現。
* 三角関数で構築されるため、**微分・積分可能な連続空間上の位置情報**を付与。

---

## 関連：三角関数・ネイピア数の導関数（微分）とLLM

| 関数          | 導関数           | LLMにおける対応例               |
| ----------- | ------------- | ------------------------ |
| $\sin(x)$   | $\cos(x)$     | Positional Encodingの偶数次元 |
| $\cos(x)$   | $-\sin(x)$    | Positional Encodingの奇数次元 |
| $e^x$       | $e^x$         | Softmax内の確率分布操作          |
| $\log_e(x)$ | $\frac{1}{x}$ | クロスエントロピー損失              |

---

## まとめ：LLMと解析数学の接続

| 数学的対象     | LLMにおける役割                    |
| --------- | ---------------------------- |
| 微分        | 勾配降下法（学習時）・変分法的最適化           |
| 積分        | Attention重み付き和、期待値的処理        |
| 三角関数      | Positional Encoding（周期性の符号化） |
| ネイピア数 $e$ | Softmax・クロスエントロピーの基礎         |

---
Power Automateでスケジュールを自分に飛ばす


# Power Automateで48:notesを使って平日定期リマインダーを自動送信する方法

## はじめに

Power AutomateとMicrosoft Teamsを連携して、平日の指定時間に自分だけにリマインダーメッセージを送信する方法を解説します。Microsoft 365 E5契約環境での実装例です。

## 48:notesとは

**48:notes**は、Microsoft Teamsの「自分自身とのチャット」機能の会話ID（conversation ID）です。2022年6月にTeamsに追加された機能で、自分だけに表示される専用チャットスペースです。

## 実装方法

### 基本設定（1つのフローあたり）

**フロー構成**
- ノード数: 2個（トリガー1個 + アクション1個）
- 必要フロー数: 8個（各時間帯用）

**送信対象時間**
- 10:30, 11:30, 12:30, 13:00, 14:00, 15:00, 16:00, 17:00（平日のみ）

### ステップ1: スケジュールトリガー設定

```
トリガー: Recurrence
設定項目:
  - Frequency: Day
  - Interval: 1
  - Time zone: Asia/Tokyo
  - On these days: Monday, Tuesday, Wednesday, Thursday, Friday
  - At these hours: 10（例：10:30用フローの場合）
  - At these minutes: 30（例：10:30用フローの場合）
```

### ステップ2: Teamsメッセージアクション設定

```
アクション: チャットまたはチャネルでメッセージを投稿する
設定項目:
  - 投稿者: ユーザー（重要：Flow botは選択不可）
  - 投稿先: Group chat
  - Group chat: 48:notes（カスタム値で手動入力）
  - Message: テスト - 10:30（時間に応じて変更）
```

## 重要な注意点

### 投稿者設定について

**❌ 避けるべき設定**
```
投稿者: Flow bot
理由: フローボットはプライベートチャットに参加していないためエラーになる
```

**✅ 正しい設定**
```
投稿者: ユーザー
理由: 個人なのでプライベートチャットへのアクセスが可能
```

### Group chat設定について

```
Group chat欄: 「48:notes」を手動入力
注意: 選択肢には表示されないため、必ずカスタム値の入力を使用
```

## 作成手順詳細

### 1. Power Automateでのフロー作成

```
1. Power Automateにサインイン
2. 左メニュー「マイフロー」を選択
3. 「新しいフロー」→「スケジュール済みクラウドフロー」
4. フロー名: 「平日リマインダー 10:30」
5. 「作成」をクリック
```

### 2. スケジュール詳細設定

```
1. Recurrenceトリガーを選択し「編集」
2. 「詳細オプションを表示する」をクリック
3. タイムゾーン: (UTC+09:00) 大阪、札幌、東京
4. 間隔: 1
5. 頻度: 日
6. 実行曜日: 月、火、水、木、金を選択
7. 実行時刻設定（時間・分）
```

### 3. Teamsアクション追加

```
1. 「+ 新しいステップ」をクリック
2. 「チャットまたはチャネルでメッセージを投稿する」を検索・選択
3. パラメータ設定（上記の設定表を参考）
4. 「保存」をクリック
5. 「テスト」で動作確認
```

### 4. 複数時間対応

```
必要な作業: 上記手順を8回繰り返し
対象時間: 10:30, 11:30, 12:30, 13:00, 14:00, 15:00, 16:00, 17:00
変更点: Recurrenceトリガーの時間設定のみ
```

## フロー共有方法

### 所有者追加による共有

```
手順:
  1. フロー選択 → 垂直省略記号(⋮) → 「共有」
  2. 共有相手のメールアドレス入力
  3. 8つのフロー全てに実行
メリット:
  - 共有相手による編集・管理が可能
  - 実行履歴の確認可能
  - 業務継続性の確保
```

### テンプレート化による共有

```
推奨方法:
  1. 代表フロー（例：10:30用）を選択
  2. 「コピーの送信」をクリック
  3. フロー名・説明・送信先を入力
受信者作業:
  1. 受信したフローを8つに複製
  2. 各フローの時間設定を変更
```

## トラブルシューティング

### 通知が来ない場合

```
現象: デスクトップ通知が表示されない
原因: 「チャットまたはチャネルでメッセージを投稿する」アクションの仕様
対策: Teamsアプリの通知設定を確認
```

### インポートエラーの回避

```
❌ 避けるべき方法:
- Microsoft Copilotで手動作成したZIPファイル
- 正規でないZIP構造

✅ 推奨方法:
- Power Automate標準のエクスポート機能使用
- 「パッケージ(.zip)」による正規エクスポート
```

## ライセンス要件

```
必要ライセンス: Microsoft 365 E5（またはPower Automate有償ライセンス）
フロー制限: 1ユーザーあたり600フローまで（8フローは問題なし）
接続制限: Teams接続は標準で利用可能
```

## まとめ

この方法により、平日の業務時間内に定期的なリマインダーを自動送信できます。各フローが独立して動作するため、1つが失敗しても他に影響せず、メンテナンスも容易です。

48:notesを活用することで、他のユーザーに影響を与えずに個人的なリマインダーシステムを構築できます。
`
【Supabase初心者メモ】認証メソッド

認証メソッドとは、アプリケーションにおいてユーザーの「本人確認（Authentication）」を行うために用意された一連の関数や API のことを指します。Supabaseにもいくつかの認証メソッドが用意されおり、簡単にユーザー登録やログイン、ログアウト、セッションの取得・検証をワンストップで実装できます。

# supabase.auth.getSession()
現在のセッション情報（アクセストークン／リフレッシュトークン）を取得するためのメソッド
```
const { data, error } = await supabase.auth.getSession()

if (error) {
  console.error('GetSession Error:', error.message)
} else if (data.session) {
  console.log('Current access token:', data.session.access_token)
} else {
  console.log('No active session')
}
```

# supabase.auth.getUser()
現在ログイン中のユーザー情報を取得するためのメソッド
```
const { data, error } = await supabase.auth.getUser()

if (error) {
  console.error('GetUser Error:', error.message)
} else if (data.user) {
  console.log('Logged in user:', data.user.id, data.user.email)
} else {
  console.log('No user logged in')
}
```

# supabase.auth.signUp()
メール／パスワードで新規登録するためのメソッド
```
const { data, error } = await supabase.auth.signUp({
  email,
  password,
  options: {
    emailRedirectTo: 'https://your-app.com/welcome'
  }
})

if (error) {
  console.error('SignUp Error:', error.message)
} else {
  console.log('Confirmation email sent to:', data.user?.email)
}
```

# supabase.auth.signInWithPassword()
メール／パスワードでサインインするためのメソッド
```
const { data, error } = await supabase.auth.signInWithPassword({
  email,
  password
})

if (error) {
  console.error('SignIn Error:', error.message)
} else {
  console.log('Signed in! Session:', data.session)
}
```

# supabase.auth.signInWithOAuth()
Google／GitHub 等の OAuth プロバイダでサインインするためのメソッド
```
const { data, error } = await supabase.auth.signInWithOAuth({
  provider: 'google',
  options: {
    redirectTo: 'https://your-app.com/dashboard'
  }
})

if (error) {
  console.error('OAuth SignIn Error:', error.message)
} else {
  // data.url に OAuth 認証ページの URL が入るのでリダイレクト
  window.location.assign(data.url!)
}
```

# supabase.auth.signOut()
サインアウト（セッション破棄）するためのメソッド
```
const { error } = await supabase.auth.signOut()
if (error) {
  console.error('SignOut Error:', error.message)
} else {
  console.log('Successfully signed out')
}
```
PHPのドットは消える！？$_GETの意外な落とし穴

# はじめに
こんにちは！高校生でプログラミング勉強中のCureSabaです。

今回はPHPでWeb APIの開発をしている中で、「なぜかクエリパラメータが取得できない！」という悩みにぶつかり、調べてみたら意外な落とし穴があったので共有します。

---

# PHPで「.」(ドット)を含むGETパラメータが取得できない!?

最近、YouTubeのPubSubHubbub（WebSub）仕様に沿って、  
`hub.mode` や `hub.topic` などのパラメータをGETで受け取るサーバー側コールバックをPHPで作っていました。

ところが、次のようなコードでリクエストした場合：

```
https://example.com/callback.php?callback_token=tokentest&hub.mode=subscribe&hub.topic=https%3A%2F%2Fwww.youtube.com%2Fxml%2Ffeeds%2Fvideos.xml%3Fchannel_id%3DUCxxxx&hub.challenge=abcdef123456&hub.lease_seconds=864000&hub.verify_token=vtoken
```

PHP側で

```php
$mode = $_GET['hub.mode'] ?? '';
```

と書いても、**$modeが空文字になってしまう……**  
他の`hub.topic`や`hub.challenge`も全て同じ現象で、まったく値が取れません。

---

# 原因は「.は_に変換される」仕様だった！

調べてみたところ、PHPの`$_GET`や`$_POST`は  
**パラメータ名にドット（.）がある場合、自動的にアンダースコア（_）に変換される**  
という仕様になっていました。

つまり、  
- `hub.mode` → `$_GET['hub_mode']`
- `hub.topic` → `$_GET['hub_topic']`
- `hub.challenge` → `$_GET['hub_challenge']`
- `hub.lease_seconds` → `$_GET['hub_lease_seconds']`
- `hub.verify_token` → `$_GET['hub_verify_token']`

としてアクセスしないと値が取れません！

## 公式ドキュメント
- [PHP: $_GET - Manual（パラメータ名の変換について）](https://www.php.net/manual/ja/reserved.variables.get.php)
- [Stack Overflow: Handling dots in incoming variable names in PHP](https://stackoverflow.com/questions/68651/handling-dots-in-incoming-variable-names-in-php)

---

# 解決方法

単純に「.」を「_」に変えて取得するだけでOKです！

```php
$mode = $_GET['hub_mode'] ?? '';
$topic = $_GET['hub_topic'] ?? '';
$challenge = $_GET['hub_challenge'] ?? '';
$lease_seconds = $_GET['hub_lease_seconds'] ?? '';
$verify_token = $_GET['hub_verify_token'] ?? '';
```

これでパラメータがちゃんと取得できるようになりました！

---

# まとめ

- PHPはクエリ/POSTパラメータ名の「.」(ドット)を「_」(アンダースコア)に自動変換する
- APIや外部サービスで「.」入りのパラメータが来る場合は`$_GET['xxx_yyy']`でアクセスする
- ドキュメントをしっかり読むことの大切さを痛感しました！

---

# 終わりに
もし、この記事が役に立ったと思ったら、ぜひコメントやシェアをお願いします。また、質問や改善点などがあれば気軽にコメントしてください！

それでは、良いプログラミングライフを！
外部実体がリモートにあるXML文書をPythonのlxmlで解析する

Pythonのライブラリーであるlxmlは(lxmlも[^qiita-vscode-xml-jats])、デフォルトでは外部実体(外部エンティティ、external entity)を読みに行きません。

解決方法が公式に書いてあって[^lxml-url-resolving]、XML Catalogsによる方法も紹介されてるのですが、URI Resolversを書く方法を使ってみました。この方法で、取得した外部実体をファイルとして保存しておけば、問題があって調べるときなどいろいろ便利かな…ということで。

以下は、JATS XMLをバリデートしてみたとき[^qiita-vscode-xml-jats]のスクリプトです。

lxmlに対して外部実体を解決しながら、あわせて次を行います: `entity`というフォルダが既にある前提で
- 取ってきた外部実体を`entity`フォルダの下に保存しておきます
- 標準出力(`print()`)に外部ファイルのURL、公開識別子、保存したファイル名(URLの`basename`)をカンマ区切りで出力します

```python
from lxml import etree
import argparse
import os
import sys
import requests

arg_parser = argparse.ArgumentParser()
arg_parser.add_argument("file", help="XML file to validate.")
args = arg_parser.parse_args()
print(f'start parsing {args.file}')

count = 0
entity_folder = 'entity'

print("url,id,basename")
class DTDResolver(etree.Resolver):
    def resolve(self, url, id, context):
        if url.startswith('http'):
            global count
            count += 1
            res = requests.get(url)
            # 読み込んだリモートのファイルを保存しておく
            file_name = os.path.basename(url)
            with open(f"{entity_folder}/{file_name}", mode='w') as f:
                f.write(res.text)
            print("'%s','%s,'%s'" % (url, id, file_name))
            return self.resolve_string(res.text, context)
        else:
            f = open(url, 'r')
            return self.resolve_file(f, context)

parser = etree.XMLParser(dtd_validation=True, no_network=False)
parser.resolvers.add( DTDResolver() )

try:
    tree = etree.parse(args.file, parser=parser)
except etree.XMLSyntaxError as e:
    print(f'etree.XMLSyntaxError: {e}')
finally:
    print(f'Loaded {count} remote entities and stored under the "{entity_folder}" folder.')

```

[^qiita-vscode-xml-jats]: 外部実体の解決 - 無料のVisual Studio CodeとXML拡張機能でJATS XMLを編集する https://qiita.com/yamahige/items/c25f10f2177cc4d9df90#%E5%A4%96%E9%83%A8%E5%AE%9F%E4%BD%93%E3%81%AE%E8%A7%A3%E6%B1%BA
[^lxml-url-resolving]: Document loading and URL resolving - lxml https://lxml.de/resolvers.html
山本和佳Tips: ChatGPTに「バズる投稿」を考えてもらったら、予想以上にエグかった話


SNS運用の山本和佳です。
最近、ChatGPTを使ったSNSコンテンツ作成が話題ですが、実際に試してみたら
衝撃的な結果になったので共有します。

実験内容
クライアントのInstagram投稿でChatGPTを活用。以下のプロンプトを試しました

あなたは22歳女性向けコスメブランドのSNS担当者です。
以下の条件でバズりそうな投稿文を5パターン作成してください
- ターゲット：20代前半女性
- 商品：新作リップ
- 目標：1000いいね以上
- トーン：親しみやすく、共感を呼ぶ
結果：予想以上の「エグさ」とは
1. 感情煽りが異常にうまい
ChatGPTが提案した投稿例：
「また可愛い子にリップ褒められちゃった😭
このリップつけてると、なぜか男子の視線が...？
偶然？それとも...🤔✨」
分析: 承認欲求と恋愛要素を巧妙に組み合わせ、共感と嫉妬を同時に刺激。エンゲージメント爆上がり確実だが、ちょっと怖い。
2. データ分析が的確すぎる
ChatGPTの投稿タイミング提案：

21:00-22:00投稿推奨
#金曜日の夜 #お疲れ様 などのハッシュタグ併用
ターゲットの「週末前のテンション上昇」を狙い撃ち



注意点
1. ブランドイメージとの乖離
ChatGPTの提案は確かにバズりますが、ブランドの世界観から外れることも。人間の編集・調整が必須です。
2. 倫理的な境界線
「バズる」を追求しすぎると、炎上リスクのある内容も提案されます。最終判断は人間が行うべき。
3. フォロワーの質
ChatGPT投稿でフォロワーは増えましたが、ブランドに真剣に興味のないユーザーも多数。質と量のバランスが課題。




# より安全で効果的なプロンプト例
商品の特徴を活かした投稿アイデアを5つ考えてください。
条件：
- ブランド価値を損なわない
- 過度な煽りは避ける  
- 実用的な情報を含む
- ターゲット: [具体的なペルソナ]
まとめ
ChatGPTのSNS活用能力は予想以上でした。
特に
心理学的なアプローチの精度が人間レベル
データ分析に基づく提案が的確
文章の自然さが向上している

ただし、ツールはあくまでツール。最終的には人間の判断力と倫理観が重要です。
ChatGPTを「アイデアの壁打ち相手」として使いつつ、ブランドの世界観と責任を持って運用していくのがベストプラクティスだと感じました。
プロジェクトマネージャー目線！　課題管理でメンバーに求める動き方

**はじめに**
開発プロジェクト、保守プロジェクトのいずれにおいても、課題管理が行われます。
課題管理は、プロジェクトマネージャーや、リーダーで行うことが多いと思います。
将来、リーダーを目指したい人、そうでない人でも一定の評価を得たい人は、
メンバーだからと人任せにするのではなく、
主体的に課題管理へ関わってほしいと思っています。
そこで、私の考える、課題管理でメンバーに求める動き方を解説します。
ただし、私の独断と偏見で書いているため、プロジェクトによって求められるものが、
異なる可能性があるので、参考にしていただきながらも、
プロジェクト内のリーダーに、方針の確認することをおすすめします。
（まず、マインドとして持ってもらえたら、それだけで違うはずです！）

# 課題管理とは
課題管理の定義は、各プロジェクトによって様々だと思います。
動き方を解説するにあたって、ここで言う課題管理とは、を定義しておきます。
（例えば、遅延は進捗管理に含むことも多いですが、
　色んな場面でこの動き方を実践してほしいので、
　ここでは敢えて課題管理の定義を広めに設定します。）

* プロジェクトにおける、QCDに影響する課題を管理して、解決していく
　【Q（Quality）への影響】
 　　不具合、技術的課題、等
　【C（Cost）への影響】
 　　工数超過、要件変更、等
　【D（Delivery）への影響】
 　　遅延、要員不足、等


# 課題管理でメンバーに求める動き方
課題が発生した場合、優先度と影響度の大小で対応方法や、
対応実施のタイミング等を決めていきます。
また、決定権限は、プロジェクトマネージャーもしくは、プロジェクトマネージャーから
委任されたプロジェクトリーダーにあります。
これは大前提として、おさえておいてください。
**メンバーの独断で対応しないこと！**

一方で、メンバーがプロジェクトマネージャーへ頼りきりになり、
指示待ちになると、それはそれでうまくいきません。
またメンバーが、成長できません。
プロジェクトルールの範疇で、如何に**主体的な動き**をして、
プロジェクトマネージャーに信頼されるか、
自らの引き出し（経験）を増やしていけるか、
これが重要だと考えています。私の考える動き方を解説します。

### 第1報は素早く
これは自身が成長するためではなく、プロジェクトを円滑に進めるためです。
課題と思われる事象が発生、もしくは発生の予兆を検知した場合は、
速やかにプロジェクトで定められた、リーダー等にエスカレーションしましょう。
影響が広がる前に、報告することが大切です。

### 影響度優先度の低い課題の対応策を検討する
影響度優先度が低い課題は、解決に時間をかけることのできる場合が多いです。
第１報は素早く行いつつ、それが影響度優先度の低い課題、と判断された場合には、
自分自身で対応方法の提案を行いましょう。
すぐに思いつかない場合は、リーダーに検討してみたい旨を伝え、
時間をもらうのも効果的です。
自分自身の対応方法が、採用されるかは、二の次で良いです。
まず考えることが大切です。そして、自分自身の考えと、最終的に決定した対応方法とが、
異なる場合は、何が違うのか、なぜその対応方法が採用されたのか、を確認しましょう。
そのギャップを知ることで、課題対応の引き出しが増え、次に活きます。
プロジェクト管理をする立場の人から見ても、色んな意見をもらえると
新たな発見があったり、メンバー視点での見え方が知れて、
今後の運営に活かしていけたりと、ありがたいものになります。


### 影響度優先度の高い課題の対応策を考察する
影響度優先度が高い課題は、どう対応するかがプロジェクトの成功を左右します。
経験の浅いメンバーで、対応方法を検討することは、ほとんどなく、
有識者で検討を進めることになります。

この場合も、自分自身でなぜ、その対応方法になったのかを考えてください。
そして、それを書き留めておいてください。
恐らく、課題発生後は、プロジェクトマネージャーやプロジェクトリーダー、
その他の有識者は、忙しい場合が多いため、答え合わせをすることは、
難しいかもしれません。
落ちつた後からでも、確認できるようにしておきましょう。
わからないことがある場合は、何がわからないのかも書き留めておいてください。

# まとめ
色々書きましたが、まとめると、下記の２点を意識しましょう。

* **課題に関する報連相は、迅速に！！**
* **課題解決の対応について、どんな形でも自分自身で頭を使う！！**

以上のことを意識して、日々の業務に取り組みましょう。
当たり前と思うかもしれませんが、意外とできていないことが多いです。
これを意識するかで、成長スピードは雲泥の差が出ます！！
M365 CopilotとNotion AIを実際に使ってみた比較レポート（2025年6月時点）

こんにちは！NECソリューションイノベータの齊藤です！

もはや毎日のように生成AIと会話しながら仕事をしています。色々な生成AIツールがある中で、M365 CopilotとNotion AIの使い所を模索していて、ちょっと意識して比べてみた経験をシェアしたいと思います。

## M365 Copilotはどうだった？

### 会議の要約で使ってみた

Teamsを使って会議をすることが多いので、この用途が一番便利そう！ということで使ってみました。

#### 良かった
- 1アクションで要約が見られるのがとても良い。文字起こしのダウンロードとか要らない。
- 会議の途中でも要約できるので話題に追いつくことができる。

#### いまひとつ・・・
- Teamsの書式の問題も大きいと思うが、ごちゃごちゃして見づらい・・・。
- 箇条書きで短くまとめられているだけで話題のカテゴリは読む側の思考が求められる印象。
- 文字起こしの精度がそんなに高くない。（決して低くはない）

#### 結論
短時間で内容をサラッと知っておく用途には十分便利。深く理解する前にちょっと確認する用途が自分の使い所です。

### Copilot Chatでナレッジ検索

Copilot Chatを使ってM365内に保管されているナレッジにアクセスしやすいかどうかを確かめました。例えばなかなか探すのに苦労しがちな社内ルールを探す場面ですね。

#### 良かった
- 自然言語で聞けるので、目的の情報がM365内にある場合は探しやすい。

#### いまひとつ・・・
- チームやチャネルの情報にはたどり着けなかった。（これは弊社の契約形態によるかもしれません）

#### 結論

とりあえず聞いてみる、という用途には十分使えると思いました。ただ、情報はM365にだけ保管されているのではないので、そこは課題ですね。

### その他UI/UXで感じたところ

筆者はMacBook Proを使っていますが、私のTeamsでは変換確定でEnterを押すとチャット内容が送信されてしまったり、スレッドでCopilotに聞いたときは前の会話を覚えていないような気がしたり・・・。
使っていてちょっとストレスを感じることがあるので、ここが解決するといいなと思います。

## Notion AIはどうだった？


これが意外と優秀なんです！最新のGPT-4.1搭載で、組織の文脈も理解してくれるし、会話内容もそのままページとして保存できます。

ChatGPTと同じくらいの回答レベルで、文脈理解力はむしろ上かも？URLでスレッド共有できないのは残念ですが...

### ミーティングノートによる会議要約

Notion AIにAIミーティングノート機能が追加されたので早速使ってみました。

https://www.notion.com/ja/help/ai-meeting-notes

#### 良かった
- 要約ではトピックごとに見出しをつけて整理してくれるので読みやすい
- さすがNotionというべき適切なホワイトスペースで視認性良し
- 文字起こしも話したそのままではなく、前後の文脈によって適切な単語に変換している（ように見える）
- 文字起こしした内容に対して「この部分についてもう少し詳しく説明して」といった質問ができる

#### いまひとつ・・・
- 話者識別ができない

#### 結論
個人的に「読む気になる」見た目とまとめ方で会議の要約はNotion AI一択です。ただ、話者識別ができなく、発言者が重要な会議には向かないのでケースバイケースだと思います。

### ChatGPTの代替として使う

普段、ChatGPTにアイデアの壁打ちなどしながら仕事をしているのですが、Notion AIで最新のLLMが使えるということもあり、ChatGPTの代替になるのかどうかも試しました。（いわゆる「Notion AI縛り」を自分に課しましたｗ）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3879270/e61cb58b-653a-4b66-b2d5-b4604caa30aa.png)

#### 良かった
- 回答の精度や内容はChatGPTと変わらず（当たり前ですね）
- 応答も速い
- 結果をすぐにNotionにページとして保存できるのでナレッジがどんどん貯まっていく

#### いまひとつ・・・
- スライドの生成や画像の生成はできない（仕方ない）
- スレッドをURLで共有できないので、検討の経緯を他者に知らせるのが面倒
- GPTsのようなものは使えない

#### 結論
普段使いでは十分にChatGPTの代替になります！ただし、GPTsとかChatGPT特有の機能をいざ活かしたくなった場合にはNotion AIでは難しいのでChatGPTの契約を止めることは現時点では難しいなぁと思います。

## 最後に

お金を払わなくてはいけないのでできればツールは少なくしたいところではありますが、それぞれに得手不得手がありその願いは実現しませんでした。お互いの特徴は当然理解されていると思うので、今後の機能強化などに期待ですね。
【合格体験記】Salesforce認定Platformアプリケーションビルダー合格しました！！


こんにちは、Atsushiです。  
Salesforce認定アドミニストレーター(以下アドミン)を取得した流れのまま、**約2週間**の学習で「Salesforce認定Platformアプリケーションビルダー」に合格しました！

## 📅 学習期間  
アドミン試験合格後すぐに着手し、**約2週間**で学習を完了しました。アドミン試験の知識が残っているうちに一気に取り切ろうという思いで始めました。


## 🧰 使用教材と学習方法

### 🔹 [Trailhead公式トレイルミックス](https://trailhead.salesforce.com/ja/users/welcome4/trailmixes/prepare-for-your-salesforce-platform-app-builder) 
- アドミン取得時と同様にまずはハンズオンにて触れてみることがイメージをつかむうえでとても大切だと思いました。
- **ハンズオン中心のモジュールが豊富**で、動的フォームやアプリ構築に実際に触れることができました。アドミンのTrailmixと被っている部分もあり、そこまで時間はかかりませんでした。  
- 試験範囲全体の基礎固めにちょうどよかったです。

### 🔹 [Tysonblog問題集（全276問）](https://tysonblog-whitelabel.com/salesforce-app-builder-practice1)
- 本番形式に近い一問一答問題。  
- **実際の出題傾向や言い回しに慣れるのに最適**でした。私は2周して、間違えた問題はExcelに記録して復習。  
- アドミン試験と被らないアプリケーションビルダー特有の領域（ページレイアウト、動的フォーム、Lightning App Builderなど）を重点的に繰り返しました。

### 🔹 ChatGPT
- 苦手な用語や設定の意味を都度質問して確認。  
- 正しい回答も多いですが、**誤答も含まれているため内容をしっかり精査する必要があります**。実際に数回、誤った説明に引っかかりかけたこともありました。  


## 🧪 本番の出題傾向

アドミンでも記載しましたが、実際の試験では、設問の言い回しがやや独特（直訳調）であるため、**「何を聞かれているか」を冷静に読み取る力が求められます**。アプリケーションビルダーも同様でした。  

## 📊 スコア結果

| セクション名 | 正答率 |
|--------------|--------|
| Salesforce Fundamentals | 78% |
| Data Modeling and Management | 92% |
| Business Logic and Process Automation | 88% |
| User Interface | 80% |
| App Deployment | 83% |

**正答率約84%!!!**
アドミンはぎりぎりでしたが、こちらは余裕持って合格できました🎉

![Cert6257564_PlatformAppBuilder_20250613_page-0001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4105095/e4184e30-4e4b-4b89-b5ba-e66b9425e463.jpeg)

## ✍️ 感想とアドバイス

- アドミン試験と被る範囲もあるものの、**より設計・構成寄りの内容が多いため、ページ構成や動的フォーム周りはしっかり理解が必要**です。
- Trailheadで全体像を掴み、Tysonblogで出題傾向に慣れ、ChatGPTで理解を補強する流れが効率的でした。
- ただ問題を解くだけではなく、なぜこの選択肢では間違いなのか？もしっかり考えるようにしてください。知識の定着度が段違いで上がります。
- **試験中は冷静に設問を読み、選択肢の中で「確実に誤っているものを消す」消去法も有効**です。(消去するためにもやはり基礎固めは大事でした。)

## 🎯 最後に

アプリケーションビルダー試験は、あどみｎ試験より一歩進んだ構成設計の理解が問われますが、きちんと対策すれば短期間でも合格可能です。  
これから受験される方の参考になれば幸いです。

アドミンの記事はこちら↓
https://qiita.com/bay07ifff/items/6bd62f9d0efb3eee7841
Amazon Q CLI でゲームを作ろう Tシャツキャンペーンに参加してみた話

# Amazon Q CLI でゲームを作ろう Tシャツキャンペーンに参加してみた話

AWSのキャンペーンで、AWSのAIコーディングアシスタントを体験し、Amazon Q CLIを使ってゲームを作るとTシャツがもらえるキャンペーンです。
夏が近づいていることもありパジャマとしてTシャツが欲しかったので応募してみました笑


---

## 今回作ったゲーム

なんのゲームを作ろうか迷っていたところ、ちょうどKerberos認証についてのブログを書いたところだったので、せっかくなのでKerberos認証を可視化してみようと思い、作ってみました。

https://qiita.com/shogo-3345/items/18138d29f42ad2af82fd


---
## 作成までの流れ
まずは、下記キャンペーンサイトにアクセスします。

https://aws.amazon.com/jp/blogs/news/build-games-with-amazon-q-cli-and-score-a-t-shirt/

以下内容サイトにもステップが書いてありますが補足的に説明していきます。

---

## ✅ Step1：AWS Builder IDを登録し、community.awsユーザー名を取得

私はAWS Builder IDを持っていなかったので、新規で作成しました。

https://docs.aws.amazon.com/signin/latest/userguide/create-aws_builder_id.html

IDを作成後、下記サイトからCommunityに参加します。私は一人で作成したので、名前は適当につけました。

https://community.aws/builderid?trk=b085178b-f0cb-447b-b32d-bd0641720467&sc_channel=el

---

## 🔑 Step2：自身のマシンにAmazon Q CLIをインストール
次に、Amazon Q CLIをインストールします。
私はUbuntuにインストールしました。

ちなみに、
```
sudo dpkg -i amazon-q.deb
```
:point_up:コマンドを打つ際にエラーが出ました。

エラー内容は、libayatana-appindicator3-1、libwebkit2gtk-4.1-0、libgtk-3-0などのパッケージが不足しているとのことでした。
これは私がUbuntuを長らく使っていなかったので、アップデートすることで解決しました:sweat:

https://docs.aws.amazon.com/amazonq/latest/qdeveloper-ug/command-line-installing.html

---
## :pick: Step3：ゲームライブラリをインストール
次に、なんらかのゲームライブラリをインストールしてください。
私はPygameをインストールしました。

下記サイトにも書いてありますが、
```
python3 -m pip install -U pygame --user
```
:point_up:コマンドでインストール可能です。

https://www.pygame.org/wiki/GettingStarted

---
## :keyboard: Step4：Amazon q にログイン
インストールが完了したら、Ubuntuターミナルに
```
q login
```
と入力してください。

すると、URLが表示されます。
それをコピーし、アクセスすることで認証が成功します。


---
# :computer: ステップ4：実際にゲームを作ろう
Amazon qにログインが完了したら、
```
q chat
```
と入力します。
すると、こんな感じの画面が表示されるので、いよいよチャットを打てばゲームを自由に作ることができます！！

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4084675/5976b54c-4eee-4f8a-bbfb-023a922e2357.png)

---
# ✅ ステップ5：私が打った命令

最初の命令:point_down:
```
-Kerberos認証を可視化できるゲームを作って
-クライアント、AS、TGS、サーバの要素を表示し、クライアントから要求ベースにしてください。
```

この時点で一応形として有識者ならギリギリ理解できるほどのゲームでした。

2回目以降の命令:point_down:
```
-先ほど作ったkerberos認証視覚可能ゲームだけど、いくつか改善点があります。
-最初のクライアントからASへの認証の時に矢印を表示させてその上にAS-REQと書いて
-応答の時も矢印を表示して、その上にAS-REPと表示させよう。矢印をチケットが通っていくようなイメージで
-ST要求の時も同様にTGS-REQと、応答もTGS-REPと表示
-で最後に認証完了したら認証完了！と画面に表示させよう

-日本語だと文字化けするから、略称も全部英語のフルネームで表示しよう。例えばASならAuthentication Serverといった風に
-TGSにSTを要求するときに、クライアントはTGTも一緒に送るから、それも可視化させよう
-最後の認証完了を変更して、Authentication completeに変更して

-TGSにTGTを送付する機能がまだつけれてないです。つけてください
-Application Serverに行くときもSTを送付して送ることを追加
-矢印の線上に文字があるとみにくいから少し文字を配置して
```

※意外とエラーが出るときもあります。
その時は、エラー文そのまま貼り付ければ勝手にデバッグしてくれます。

---
# :computer: ステップ6：実際に作ったゲーム


![KerberosGamegif.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/4084675/59938bc9-2ec0-4740-b340-d93336739bf5.gif)


ゲームというよりか可視化するためのプログラムみたいになってしまいましたが...:sweat:

---
# 💬 まとめ
AIを使ってのゲーム制作は初めてだったので新鮮で楽しかったです！
それと同時にいよいよプログラマーの時代が終わりかねないと改めて実感しました...

少しでも参考になれば幸いです！
今回もありがとうございました～～
ブラウザではアクセスできるが、nslookupだとQuery refusedされる場合の名前解決

## 背景
Udemy講座
【ネットに流れる情報(パケット)を見る】パケットキャプチャソフトを使って、生データを解析して、一段上の技術者になろう。
の事前準備２にてnsloolupコマンドの使用方法で躓いた箇所のまとめを記載する。
※個人的なドメイン名、IPアドレスは\*\でマスキングしている。

## 問題
nslookupコマンドでサイトのIPアドレスを取得しようとした場合にQuery refusedがでる。
~~~ :qiita.rb
C:\Users>nslookup searchman.info
サーバー:  \*******\.com
Address:  \*******\

*** \*******\.com が searchman.info を見つけられません: Query refused
~~~

### 検証１
インターネットには繋がっており、ブラウザからであれば表示できるため、nslookup時にのみうまくいかない。

検索でIPv6が優先されている場合のケースの解決があったため試すも結果は変わらず。
https://endok.hatenablog.com/entry/2018/01/21/000501

### 検証2
社用PCのため、社内サイトで試してみると通った。

~~~ :qiita.rb
C:\Users>nslookup
既定のサーバー:  \*******\.com
Address:  \*******\

> ex
サーバー:  \*******\.com
Address:   \*******\

名前:    ex.\*******\.com
Address:  \*******\
Aliases:  \*******\.com
~~~

仮説：DNSサーバー上の設定で特定のサイトのみ名前解決するようになっているのでは？

### 検証3
社用のためDNSサーバー自体の設定を変える前に、名前解決で使用するDNSサーバーを変えてみる。

~~~ :qiita.rb
C:\Users>nslookup
既定のサーバー:  \*******\.com
Address:  \*******\

> server 8.8.8.8           #Googleの公式DNSサーバー経由に切り替え
既定のサーバー:  [8.8.8.8]
Address:  8.8.8.8

> searchman.info
サーバー:  [8.8.8.8]
Address:  8.8.8.8

権限のない回答:
名前:    searchman.info
Address:  157.112.176.48

~~~

## 結論
使用しているDNSサーバーの設定によって名前解決ができない場合、Query refusedがでるため、Serverコマンドで既定のDNSサーバーをパブリックDNSサーバーにする。
【Python/AI】「CNNわからん…」で挫折した僕が、"手を動かして実感"できる画像認識の本をZennで書いた話

### はじめに：こんな経験ありませんか？

こんにちは！
AIやディープラーニングの世界に足を踏み入れたとき、誰もが一度は「画像認識」にワクワクしますよね。でも、いざ学習を始めると…

* AIの専門書を開いたけど、数式のオンパレードで心が折れた…
* CNNの「畳み込み」の図を見て「ふむふむ」と分かった気になったけど、いざコードにすると手が止まる。
* とりあえず動くサンプルコードをコピペしたけど、結局「何がどう動いているのか」はブラックボックスのまま。

これは、かつての僕自身が通ってきた道です。
理論と実装の間に横たわる、この大きな溝。この溝を埋め、「**自分の手で動かしながら、AIが画像を"見る"仕組みを直感的に理解できる本**」を作りたい。

その想いから、この度Zennで技術書『**手を動かして完全習得！CNN実装入門**』を執筆しました。

この記事では、本書がどのような本で、なぜAI初学者や再挑戦する方にとって「最高の最初の一冊」だと信じているのか、そのこだわりについてお話しさせてください。

### この本が「挫折させない」ための2つのこだわり

僕が目指したのは、単なる知識の羅列ではありません。「なるほど！」という**納得感**と、AIが動く**感動**をセットで提供することです。そのために、2つのことに徹底的にこだわりました。

#### こだわり①：徹底的な「ハンズオン」形式

理論を読んだら、すぐ実践。本書は、ほぼ全ての章に手を動かす演習（ハンズオン）を用意しています。

:::message
**理論 → 実践 → 確認** のサイクルを繰り返すことで、知識が体験として定着します。
:::

ただライブラリの関数を呼び出すだけではありません。「なぜこの関数を使うのか」「このパラメータは何を意味するのか」を丁寧に解説しながら、一歩一歩進みます。

#### こだわり②：面倒な準備は一切不要！「Google Colab」で即スタート

「AI開発って、環境構築が大変そう…」
ご安心ください。本書は、Googleアカウントさえあれば無料で使える**Google Colab**上で、全ての演習を行います。GPUも無料で利用できるので、複雑な環境構築でつまずくことなく、すぐにAI開発の面白い部分に集中できます。

### 本書を読み終えたあなたの姿 (Before → After)

この一冊を通して、あなたは単にコードが書けるようになるだけではありません。

**【BEFORE】**
* AI、CNNは、自分には縁遠い「魔法の箱」。
* エラーが出るのが怖くて、コードを書くのに苦手意識がある。
* 「画像認識すごい」とは思うけど、その仕組みは説明できない。

**【AFTER】**
* **CNNの仕組みを、自分の言葉で同僚や友人に説明できる**ようになる。
* 自分で書いた手書き数字を、自作AIが90%以上の精度で認識する様子に感動する。
* 「犬と猫」を見分けるような、**オリジナルの画像分類AI**を驚くほど短時間で作れるようになる。
* AI開発の楽しさに目覚め、次のステップへ進む**自信とロードマップ**が手に入る。

### 本書のロードマップ（全8章の冒険へご招待！）

本書は、あなたをAI開発の冒険へいざなう全8章の物語です。

- **第1章：はじめに - コンピュータは世界をどう「見る」のか？**
  - あなたの冒険の目的（ゴール）を明確にし、モチベーションを高めます。
- **第2章：準備運動 - Google ColabでAI開発環境を整えよう**
  - 面倒な準備はゼロ。冒険の武器と防具をサクッと揃えます。
- **第3章：CNNの前に - ニューラルネットワークの基本**
  - 本番前の基礎トレーニング。AIの基本的な仕組みを復習します。
- **第4章：CNNの心臓部！「畳み込み層」と「プーリング層」**
  - 【本書のハイライト】AIの"目"の秘密に、図とコードで迫ります。
- **第5章：実践！はじめてのCNNモデル構築 - 手書き数字認識 (MNIST)**
  - ついにあなたの手でAIが誕生！モデル構築の全工程を体験します。
- **第6章：もっと賢く！転移学習でオリジナル画像分類器を作ろう**
  - 巨人の肩に乗る！少ない労力で、超強力なAIを作る現代の錬金術を学びます。
- **第7章：精度をさらに上げるテクニック**
  - AIを育てる職人技。「データ拡張」や「ドロップアウト」でモデルを磨き上げます。
- **第8章：おわりに - CNNのその先へ**
  - 冒険の終わり、そして新たな旅へ。次の学習に繋がる道しるべを手に入れます。

### おわりに

もしあなたが、かつての僕のようにAIの学習で足踏みしていたり、これからAI開発の第一歩を踏み出したいと願っているなら、本書はきっとあなたの力になれるはずです。

**「AIを消費する側」から、自らの手で「AIを創り出す側」へ**
その面白さと興奮を、ぜひ体験してみてください。

この本が、あなたの新しい冒険のきっかけとなれば、著者としてこれ以上嬉しいことはありません。

---
**▼ ご購入はこちらから**

**Zenn Books: 『手を動かして完全習得！CNN実装入門』**
(https://zenn.dev/sakai13/books/d6b97316a617a6)
アリババとSAP、戦略的パートナーシップを拡大し、AI搭載のエンタープライズソリューションを中国およびグローバル市場に提供

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/alibaba-and-sap-expand-strategic-partnership-to-bring-ai-powered-enterprise-solutions-to-china-and-global-markets_602284?spm=a2c65.11461433.0.0.4ee353556l0cON)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# SAPとアリババクラウドが戦略的パートナーシップを拡大、AI駆動型の企業ソリューションを中国およびグローバル市場に提供

![1](https://yqintl.alicdn.com/9544eaec47001d8132dcf84bfe9fd6941ca4c256.jpeg)

SAPは、中国におけるSAP AI Core内のジェネレーティブAIハブへのQwenの統合を模索しています。このパートナーシップは、中国のお客様に対応し、徐々に東南アジア、中東、アフリカにも拡大していく予定です。両社は協力して、RISE with SAP、GROW with SAP、Integrated Business Planning (IBP) といったSAPの企業資源計画ソリューションを、まずは中国のお客様に提供し、その後、東南アジア、中東、アフリカへと展開していきます。これらの地域では、認定ハイパースケーラーとしてAlibaba Cloudを通じてSAPのクラウドネイティブ技術を利用できるようになります。この提携の重要な柱の一つは、ジェネレーティブAIの統合です。SAPは、中国のSAP AI Core内にあるジェネレーティブAIハブにアリババの大型言語モデルであるQwenを統合することを模索しています。これにより、顧客はSAPのアプリケーション内でローカライズされたAI駆動型アナリティクスを活用し、生産性、分析、意思決定を強化できるようになります。また、SAPは自社のSAP AI FoundationをAlibaba Cloud上に展開する計画も立てており、中国で事業を行う顧客に対してスケーラブルで企業向けのAIサービスを提供します。「SAPとの協力は、世界クラスのテクノロジーでグローバルビジネスを支援するという私たちのコミットメントをさらに強化するものです」とアリババグループ会長の蔡崇信（Joe Tsai）氏は述べました。「SAPの企業ソフトウェアとAlibaba Cloudの堅牢なインフラストラクチャおよびAI機能を組み合わせることで、顧客がよりスマートで俊敏な運用を構築できるようにします」と蔡氏は続けました。

![2](https://yqintl.alicdn.com/f4c4f41e15134414959b8865315d16d081f53c83.jpeg)

SAP SEのCEOであるクリスチャン・クライン（Christian Klein）氏は、マドリードで開催されたサファイアでの基調講演で、アリババとの戦略的パートナーシップを発表しました。SAPは、中国のSAP AI Core内のSAPジェネレーティブAIハブにアリババの大型言語モデルであるQwenを統合することを模索しています。「私たちの共同のマーケット参入戦略は、包括的なツールやサービスへのアクセスを提供することで、企業に新たな機会を解き放つことができます」とSAP SEのCEOであるクリスチャン・クライン氏は述べました。「共に、私たちは共同のお客様が革新を促進し、業務パフォーマンスを向上させ、新しい競争優位性を創出し、クラウド主導のデジタルトランスフォーメーションの未来を形作るためにアリババと協力できることを楽しみにしています。」

Alibaba Cloudは、SAPのInfrastructure as a Service (IaaS) 認証プログラムに参加し、企業がプラットフォーム上でSAPソリューションを展開できるようにします。さらに、アリババグループは自社のエンタープライズインフラストラクチャのためにSAP Cloud ERP Private Editionを採用します。今回の発表は、両社の長期的な関係に基づいています。2018年には、アリババクラウドが中国初のパブリッククラウドプロバイダーとして、SAP S/4HANA CloudやSAP Cloud PlatformなどのSAPの企業アプリケーションを提供しました。最新の拡大されたパートナーシップは、グローバルにAIファースト、クラウドネイティブな革新を企業に提供するという共有された野心を反映しています。

この記事は、もともと<a href=https://www.alizila.com/alibaba-and-sap-expand-strategic-partnership-to-bring-ai-powered-enterprise-solutions-to-china-and-global-markets/ target=_blank>Alizila</a>にてAlizilaスタッフによって公開されました。
FizzBuzzを解くためのステップ問題集

# FizzBuzzの要件
- 数字を1から順に出力する（一般的には1から100まで）．  
- その数字が3の倍数のとき，`Fizz` を出力する．  
- その数字が5の倍数のとき，`Buzz` を出力する．  
- その数字が3の倍数かつ5の倍数のとき，`FizzBuzz` を出力する．  
- 上記のいずれにも当てはまらないときは，数字そのものを出力する．  

---

# FizzBuzzを解くための段階的なステップ問題
## 問題1：1から10までの数字を表示しよう
1から10までの数字を，1行に1つずつ出力するプログラムを書いてください．

## 問題2：3の倍数に`Fizz`を表示しよう
1から20までの数字について，3の倍数のときに`Fizz`を出力し，それ以外は数字を出力してください．

## 問題3：5の倍数に`Buzz`を追加しよう
1から20までの数字について，  
- 3の倍数のときは`Fizz`  
- 5の倍数のときは`Buzz`  
- どちらでもないときは数字  
を出力してください（3と5両方の倍数はまだ無視してよい）．

## 問題4：3と5の両方の倍数を`FizzBuzz`にしよう
問題3に加えて，3の倍数かつ5の倍数（15の倍数）のときは`FizzBuzz`を出力するようにしてください．

## 問題5：任意の範囲でFizzBuzzを表示しよう
整数`n`を入力として受け取り，1から`n`までFizzBuzzを出力するプログラムを作成してください．

---

# FizzBuzz問題
1から100までの整数に対して，次のルールに従って出力するプログラムを作成してください．  

| 倍数の条件 | 出力 |
|------------|------|
| 3の倍数     | Fizz |
| 5の倍数     | Buzz |
| 3と5の両方の倍数 | FizzBuzz |
| 上記以外    | 数字 |

### サンプル出力（1〜15）
```
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
```
デザインができるエンジニアと、できないエンジニアの違い

## はじめに

「デザインは苦手です」「センスがなくて」

エンジニア界隈で、何度も聞いたこの言葉。
でも本当に“センス”の問題なんだろうか？

この記事では、私が実務や現場で見てきた **「デザインができるエンジニア」と「できないエンジニア」の違い** を、実体験ベースでまとめていきます。

「デザインができるエンジニアになりたい」と思ってる人に、少しでもヒントになればうれしい。

---

## 違い①：目的からUIを逆算してるか？

**できるエンジニア**は「誰が・何を・どの文脈で見るか？」を聞く。
**できないエンジニア**は「パーツ単位の見た目」から入る。

例えば：

* できる人：「この入力欄って何文字ぐらい入る？」「ユーザー、焦って入力してない？」
* できない人：「なんかデフォルトの青ダサいな、影つけとくか」

→ **目的と文脈を読まずに、CSSだけいじっても“気持ちよくはならない”**

---

## 違い②：「余白」や「文字サイズ」に気づけるか

**デザイン力＝色や形のセンス**じゃない。
本当に差が出るのは、

* 行間の気持ちよさ
* コンポーネント間の“間”
* フォントサイズやweightの階層感

✅ **できるエンジニアは「違和感に気づく能力」が高い**
→ そしてそれを「構造」や「コンポーネント設計」で直す

→ センスじゃなくて、**“観察力”と“構造化能力”**

---

## 違い③：「デザイン＝UIだけ」だと思っていない

実は：

> **デザインとは、“選択と制限”の設計である。**

できる人は、

* 入力パターンを減らす
* 説明文を省略する
* 状態が伝わるような“色以外の情報”を使う（形・位置・余白）

つまり、「どうすれば迷わせずに操作できるか」を考えてる。
→ UIを美しくするんじゃなく、**“思考コストを減らす”ための仕組みを作ってる。**

---

## 違い④：FigmaやXDを「触れる」だけじゃなく「読み取れる」

デザインツールを開いて、

* 余白設定が何pxか
* line-heightの比率が揃ってるか
* 色が意味に応じて使われてるか

…そういった **「ルール性」や「一貫性」を読める人は、コーディングで迷わない。**

✅ コードに“設計の意図”が乗る人は、結果としてデザインが上手くなる。

---

## 違い⑤：「仕組み化」まで考える

「デザインができるエンジニア」は、1回の見た目じゃ終わらない。

* 「このルール、`tailwind.config.js`に切り出しとくか」
* 「このパターン、コンポーネントにして再利用しとくか」
* 「この間隔、変数で定義した方が良さそう」

→ これは完全に **“デザインを設計として扱えるか”** という話。

見た目を再現するだけで終わる人と、仕組みにまで昇華できる人。
これが圧倒的な違いを生む。

---

## おわりに：デザイン力は“スキル”であって“才能”じゃない

何度も言いたい。

> デザインができるエンジニアは、センスがあるんじゃない。
> 「見る→気づく→直す」を繰り返してきただけ。

見た目じゃなく、目的・構造・文脈・選択・再利用。
それが“デザインができる”ということの正体。

CSSの記事を書いてはいるが、あくまで技術的な観点でしか書いていない。
デザインをする意味をもう一度考えて、UI/UXを見直してみてほしい。
自己満足のデザインじゃなく、ユーザー視点のデザインができるようになれば立派なUI/UXデザイナー。
GoToとアリババクラウド、GoTo Financialのクラウド移行を完了し、戦略的パートナーシップを推進

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/goto-and-alibaba-cloud-complete-cloud-migration-for-goto-financial-advancing-strategic-partnership_602287?spm=a2c65.11461433.0.0.4ee353556l0cON)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# インドネシアのGoTo Financial、アリババクラウドのジャカルタデータセンターへインフラを移行

杭州、中国、2025年6月5日 — インドネシア最大のデジタルエコシステムであるGoTo Groupと、アリババグループのデジタル技術およびインテリジェンスの中核を担うAlibaba Cloudは本日、GoTo FinancialのインフラをインドネシアのジャカルタにあるAlibaba Cloudのデータセンターに移行したことを発表しました。GoTo Financialは同グループのデジタルファイナンス部門であり、インドネシアで人気のある決済ソリューションであるGoPayを提供する企業です。このマイルストーンは、2024年9月に締結された戦略的パートナーシップにおける重要な成果を示すものであり、インドネシアで最も複雑で大規模なクラウド移行プロジェクトの一つの重要な構成要素を表しています。また、すべてのデータが国内に保持されることで、インドネシアのデータ主権目標を支援します。Alibaba Cloudの安全で高性能なインフラへの移行により、数百万のGoPayユーザーに対して運用の効率化、コスト削減、およびサービス向上が期待されます。現在、GoTo Financialは毎月2,000万人以上の取引ユーザーに対してシームレスなデジタル決済を提供しています。

GoTo GroupのCEOであるPatrick Walujo氏は次のように述べています。「Alibaba Cloudとの協力でこの移行を完了したことにより、GoTo Financialのサービスを支える基幹インフラを強化することができました。また、この移行はインドネシアのデータ主権に対する我々のコミットメントを再確認するものであり、すべてのデータがインドネシア国内に保持されています。その結果、当社は信頼できる地元の金融ソリューションを通じて、引き続き何百万人ものインドネシア人をサポートする準備が整いました。」

Alibaba Cloud Intelligenceの南太平洋・日本地域ゼネラルマネージャーであるSean Yuan氏は次のように述べています。「今回の成功した移行は、Alibaba Cloudの技術が大規模なデジタルトランスフォーメーションをどのようにサポートできるかを示しています。GoToと共にインドネシアのデジタル未来を形作る取り組みができることを誇りに思い、今後もパートナーシップを深めていきたいと考えています。」

![1](https://img.alicdn.com/imgextra/i1/O1CN01RShQvm1VNAfyBpBLf_!!6000000002640-0-tps-1600-1061.jpg)

GoTo Group CEOと上級管理職がアリババ西渓キャンパスを訪問

## インドネシアで最も複雑なクラウド移行プロジェクトの一つを支援

このプロジェクトでは、GoTo FinancialのコアアプリケーションをAlibaba Cloudに移行しました。これにより、インドネシアで最も技術的に要求の高いデジタルインフラプロジェクトの一つとなりました。毎月2,000万人以上の取引ユーザーを抱えるGoTo Financialは、極めて高いシステム安定性と大量の同時トランザクションを処理する能力を必要としています。スムーズな移行を確保するために、Alibaba CloudとGoToのチームは密接に連携し、フルスタックの技術ソリューションを開発しました。これにより、ビジネス継続性とシームレスで中断のないユーザーエクスペリエンスが保証されました。

移行中、Alibaba Cloudは包括的な製品群を提供し、独自のツールであるLanding ZoneやTerraformを活用して、GoToが100% Infrastructure as Code (IaC) の展開を達成できるようにしました。これにより、数千のマイクロサービスのための安定した基盤が構築されました。両チームはデュアルコアアーキテクチャを採用し、トラフィックを段階的にAlibaba Cloudに移行することで、ユーザーへの影響をゼロに抑えたシームレスな移行を実現しました。

さらに、Alibaba Cloudのインドネシア国内の3つのデータセンターと、コンピューティング、コンテナ、データベース、ネットワーキング、セキュリティの各分野の製品が、GoToが高度に自動化され、安全で信頼性の高いクラウドインフラを最適なコスト効率で構築することを強力にサポートしました。

インフラだけでなく、このパートナーシップは人材育成と革新にも焦点を当てています。2025年5月には、Alibaba CloudはGoToおよびインドネシア通信・デジタル問題省（Komdigi）と協力して「Alibaba Cloud GenAI Hackathon」を開催し、地元のデジタル人材を加速させ、経済成長を支援しました。

2024年にパートナーシップが始まって以来、Alibaba Cloudの技術はGoToのデジタルエコシステムを強化する上でますます戦略的な役割を果たしてきました。今後、両社は新たな商業的取り組みを通じて協力を拡大し、インドネシア企業を支援し、国のデジタル経済をサポートする計画です。

## GoTo Groupについて

GoToはインドネシア最大のデジタルエコシステムです。GoToの使命は、誰もがアクセスでき、デジタル経済の中で繁栄できるよう、技術インフラとソリューションを提供し、進歩を促進することです。GoToエコシステムは、モビリティ、配送、決済、金融サービス、および販売者のための技術ソリューションなど、幅広いサービスを提供しています。また、Tokopediaを通じて電子商取引サービスを、Bank Jagoとの提携を通じて銀行サービスを提供しています。
### 翻訳に関する備考:
- 画像リンクはそのまま保持しています。
- 固有名詞やIT用語、プロダクト名は翻訳せずそのまま記載しています。
- マークダウン形式に整形し、ブログ投稿用に調整しています。
第1回アリババクラウドAIハッカソンマレーシアがイノベーション、協働、デジタルリーダーシップを触発

> 本記事は[こちらのブログ](https://www.alibabacloud.com/blog/inaugural-alibaba-cloud-ai-hackathon-malaysia-sparks-innovation-collaboration-and-digital-leadership_602288?spm=a2c65.11461433.0.0.4ee353556l0cON)を参考にしています。
> 翻訳にはアリババクラウドの[ModelStudio](https://www.alibabacloud.com/en/product/modelstudio)([Qwen](https://www.alibabacloud.com/en/solutions/generative-ai/qwen))を使用しております。

# アリババクラウドグローバルAIハッカソンがマレーシアで盛大に開催

![O1CN01kEEArQ289g1KHxASm_!!6000000007890-](https://img.alicdn.com/imgextra/i2/O1CN01kEEArQ289g1KHxASm_!!6000000007890-0-tps-2048-1152.jpg)

クアラルンプール、マレーシア、2025年6月5日 — アリババクラウドグローバルAIハッカソンがシンガポールでのキックオフに続き、2025年のグローバルシリーズの一環としてマレーシアで盛大にデビューしました。AGMOと共同開催されたこのハッカソンでは、250人のマレーシアの開発者、大学生、起業家が集まり、現地の課題に対応するための実用的なAIソリューションを構築しました。48時間という激しいスプリントの中で、75チームが保険請求の非効率性、小規模ビジネスの資金調達ギャップ、税務コンプライアンスの障壁など、マレーシアの産業界から直接提供された現実の問題に取り組みながら競い合いました。参加者は、アリババクラウドの高度なAIプラットフォームであるModel Studio、Quick BI、Lingma、PAIを使用して、マレーシアのニーズに合わせたソリューションを作成しました。特に、マラヤ大学のチームが技術的に優れたアリババのAIツールを駆使した革新によって、上位3つの賞を全て獲得し、表彰台を独占しました。

ハッカソンには、業界のリーダーやテクノロジーのエグゼクティブで構成される卓越した審査員団が参加しました。審査員には、アリババクラウドマレーシアのソリューションアーキテクトヘッドであるLin En Shu氏や、アリババクラウドインテリジェンスのデータおよびAI（東南アジアおよび中東・アフリカ地域）のソリューションアーキテクト地域ディレクターであるSijukumar Kumaran氏が含まれます。また、パネルにはYTL AI LabsのCEOであるFoong Chee Mun氏、Agmo Groupの創設者兼最高経営責任者であるTs. Tan Aik Keong氏、TNG Digitalの最高技術責任者であるLeslie Lip氏も含まれました。さらに、ナショナルAIオフィス（NAIO）のAIイノベーションエクスチェンジディレクターであるMohd Alhafidz Bin Yahya氏も審査員として加わり、パネルの強化に貢献しました。

「アリババクラウドでは、AIを単なる技術ではなく、意味のある問題解決のためのツールと見ています」と、アリババクラウドインテリジェンスマレーシアのゼネラルマネージャーであるKun Huang氏は述べました。「このハッカソンは、開発者が実験し、協力し、現実世界のニーズに対応する新しいアイデアを引き出すことを目的としています。私たちは、未来を形作る人々に高度なツールとリソースを提供することで、マレーシアの革新の旅をサポートできることを誇りに思っています。」

「アリババクラウドAIハッカソンは、地元の人材育成において重要な役割を果たし、同時にマレーシアが人工知能分野で地域リーダーになるという野心を後押ししています」と、ナショナル人工知能オフィスのAIイノベーションエクスチェンジディレクターであり、最終審査の審査員も務めたMohd Alhafidz bin Yahya氏は述べました。「フリーランサーのための税務処理の簡素化から中小企業の資金アクセスの改善まで、これはまさに、我が国がAI導入を加速させるという目標に向かって進む上で必要な影響です」と彼は付け加えました。

このイベントは、政府機関、スタートアップ、学術機関など、14のパートナーから幅広い支援を受け、20人以上の業界リーダーがハッカソンを通じて専門知識を共有し、国内のAI革新の進展に対する共通のコミットメントを示しました。目覚ましいエネルギーと創造性が披露されたこのハッカソンは、ただの競争ではなく、より深い協力と継続的な革新を促進する触媒となりました。アリババクラウドがグローバルな旅を進める中、地元の人材、スタートアップ、そして広範なAIエコシステムを支援することで、マレーシアのデジタル革新を内側から推進することに引き続き尽力しています。

## 参考資料:
### アリババクラウドマレーシアAIハッカソン2025 優勝プロジェクト

**1位 – チーム: Hokkien Mee is Black and Red**  
プロジェクト名: InsureScan  
AIを活用した保険請求プロセスの高速化と詐欺防止を目的としたソリューション。文書を分析し、車両の損傷を検出し、請求の妥当性をスコアリングします。

**2位 – チーム: 214**  
プロジェクト名: フリーランス向け経費管理＆税務申告アシスタント  
OCRとQwenを活用して領収書のスキャンを自動化し、マレーシアのForm BEに基づいて経費を分類し、QuickBIを使用して個別に税務サマリーを生成する税務アシスタント。

**3位 – チーム: Ah Lee Papa**  
プロジェクト名: FundSight  
中小企業向けに適切な助成金を推薦し、データ主導型の洞察を提供して財務意思決定を改善する金融データプラットフォーム。