火曜日, 5月 13, 2025
No menu items!
ホーム ブログ ページ 2241

大谷翔平 4試合ぶりの4号2ラン



大谷翔平 4試合ぶりの4号2ラン

大谷翔平 4試合ぶりの4号2ラン

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

GitHub のセキュリティ改善



先日 tj-actions/changed-files などの人気の GitHub Actions のセキュリティインシデントがありました (CVE-2025-30066)。

https://zenn.dev/shunsuke_suzuki/articles/tj-actions-incident-2025

自分は OSS の開発者として様々な OSS を公開しており、こういったセキュリティインシデントは他人事ではありません。
そこでこの 1 ヶ月弱セキュリティ周りを見直し、かなり改善することが出来ました。

本記事では GitHub のセキュリティを改善する方法について紹介します。
主なターゲットしては自分のような OSS の開発者ですが、 GitHub を使っている方全てに参考になる内容かなと思います。

皆さんが本記事を参考にセキュリティを改善し、セキュリティインシデントを未然に防ぐことが出来れば幸いです。

先日登壇した GitHub Actions 関連の資料

先日 2025-03-11 に GitHub Actions のベストプラクティスについて登壇しました。
資料を公開しているのでこちらもご参照ください。

https://findy.connpass.com/event/346633/

https://suzuki-shunsuke.github.io/slides/github-actions-best-practice-2025

セキュリティ周りでは主に以下のようなことを話しました。

先日のインシデントでは tag の書き換えが行われましたが、これは action のバージョンを hash で固定しているだけでかなりリスクを軽減できたはずです。

本記事では上記の内容に加えて更なる対策を紹介します。

  • リポジトリの整理
    • 不要な fork の削除
    • 不要なリポジトリの archive
    • 不要なリポジトリを別の org に移行
  • サードパーティの OAuth App や GitHub App の整理
  • Personal Access Token (PAT) や GitHub App を極力使わない
    • 必要な場合は、本当に必要か見直す
    • GitHub App の用途の整理
    • GitHub App を autofix.ci に置き換える
    • Homebrew tap や Scoop manifest などを CI で生成してローカルからリリース
    • 他のリポジトリの GitHub Pages へのリリースを pull 型方式にする
    • 不要な GitHub App や PAT の削除
  • gh auth refresh -r で不要な権限の削除
  • GitHub App から不要な権限の削除
  • GitHub App を不要なリポジトリから uninstall
  • 用途に基づく GitHub App の分離
  • Rulesets の設定
    • 全ての branch で署名を必須化
    • 全ての tag の作成を禁止 (organization admin や repository admin のみ bypass を許可)
    • 全ての tag の更新・削除を禁止
  • secret の管理
    • Repository Secrets を Environment Secret に置き換えてアクセス制限
    • secret を laptop から消す
  • Renovate の minimumReleaseAge を設定
  • public repository で 極力 pull_request_target を使わない

リポジトリの整理

まず、自分は大量にリポジトリを作っているのでそれの整理をしました。
大量にリポジトリがあると、一括で修正をしたいときに無駄に時間がかかりますし、修正すべき箇所を検索したりする際にノイズにもなります。

  • 不要な fork の削除
  • 不要なリポジトリの archive
  • 不要なリポジトリを別の org に移行

自分は検証とかのために test-* みたいなリポジトリを作ることがあるのですが、新しく GitHub Organization を作ってそれらを全部そこに移しました。
今後同じようなリポジトリを作るときもこの org 配下に作ることになるかと思います。

OSS に PR を投げる際に fork を作りますが、 PR がマージされた後も fork が放置されることがあるので、そういった fork を削除しました。
簡単なスクリプトで PR のない fork の一覧を生成し、一部を除いて一括で削除しました。

サードパーティの OAuth App や GitHub App の整理

不要な OAuth App などは削除するようにしましょう。

PAT や GitHub App を極力使わない

PAT や GitHub App は便利ですが、セキュリティリスクにも繋がります。
実際 tj-actions のインシデントも PAT の流出によるものです。
PAT や GitHub App が本当に必要か見直しましょう。

使うとしたら優先順位的には以下の通りになります。
GitHub Actions token 以外を使っている箇所ではより安全な token に置き換えられないか検討しましょう。

  1. GitHub Actions Token
  2. GitHub App
  3. Fine-grained PAT
  4. Classic PAT

まずは CI などで PAT や GitHub App を使っている箇所を検索し、用途を洗い出しましょう。
そして用途ごとに見直し、 PAT や GitHub App なしで実現できないか検討しましょう。

自分の場合、以下のような改善をしました。

  • public repository の PR のコード修正を GitHub App から autofix.ci に置き換え
  • GoReleaser で生成した Homebrew tap や Scoop manifest などを CI でリリースする代わりにローカルからリリース
  • 他のリポジトリの GitHub Pages へのリリースを pull 型方式にする

これらの改善により、 PAT の利用を完全にやめることが出来ましたし、 GitHub App の利用もほぼやめることが出来ました (残っている App はインストール範囲や権限が限定的なので悪用されてもリスクが低い)。
GitHub App や PAT の利用を見直したら、不要なものを削除しましょう。

public repository の PR のコード修正を GitHub App から autofix.ci に置き換え

autofix.ci も GitHub App だろと言われればそのとおりですが、 autofix.ci であれば fork からの PR であっても安全にコードを修正できます。

https://autofix.ci/

GoReleaser で生成した Homebrew tap や Scoop manifest などを CI でリリースする代わりにローカルからリリース

自分は Go を使って多くの CLI を OSS として公開しており、 CI で GoReleaser を実行してリリースしています。
Homebrew tap や Scoop Bucket, Winget Manifest は別のリポジトリで管理されているため、従来は GitHub App を使っていました。
また、 Winget の場合リリースのたびに microsoft/winget-pkgs に PR を投げなければならず、このために PAT を使っていました。
しかし、これはセキュリティ的によろしくないため、 GoReleaser で生成したファイルを GitHub Actions Artifacts に upload し、 workflow 完了後にローカルから push する方式に切り替えました。
GoReleaser の Homebrew, Scoop, Winget などの設定には skip_upload という設定があり、 これを true にするとファイルを生成するだけになり、自分で push できるようになります。
e.g. https://goreleaser.com/customization/homebrew/

  1. ローカルから tag を push
  2. workflow が実行される
  3. workflow の完了を gh run watch で待つ
  4. workflow で GoReleaser が実行され、ファイルが生成される
  5. workflow で GoReleaser が生成されたファイルを GitHub Actions Artifacts に upload
  6. workflow が完了したら GitHub Actions Artifacts から file をダウンロードし、各リポジトリに push

これらを自動化する簡単なスクリプトを書きました。
現状自分以外が使うことはあまり想定していなくて、汎用的な作りになっていません。

https://github.com/suzuki-shunsuke/rgo

このアプローチのもう一つ良い点は、 commit に署名ができるようになったことです。
CI で GoReleaser を使って commit を生成する場合は commit に署名をするのが困難でした。
このアプローチではローカルから commit を生成するため、問題なく署名が出来ます。
そのため、対象リポジトリの全 branch で署名を必須化することができるようになりました。

他のリポジトリの GitHub Pages へのリリースを pull 型方式にする

github-comment, tfcmt, tfaction などは GitHub Pages を公開しているリポジトリとドキュメントのコードを管理しているリポジトリが別になっています。

e.g.

従来はドキュメントを管理しているリポジトリから GitHub App を使ってドキュメントをリリースしていました。
しかし、これはセキュリティ的によろしくないため、 GitHub Pages を公開しているリポジトリで schedule event で workflow を実行しドキュメントを定期的に更新する方式に切り替えました。
現状 30 分毎に実行しています。すぐに更新したければ workflow_dispatch で更新もできます。
workflow が失敗したら専用の issue が open され、問題に気付けるようにしています。

PAT や GitHub App の permissions や repositories の見直し

PAT や GitHub App がどうしても必要な場合、 permissions や repositories を見直し、不要な権限を削除しましょう。

Secret 管理の見直し

  • マシン上の secret の削除
  • Repository Secrets を Environment Secret に置き換えてアクセス制限
  • 不要な GitHub Secrets の削除

普段使っているマシン上に平文のまま雑に扱われている secret の管理を見直しましょう。
.bashrc や .zshrc, direnv の .envrc などに PAT がそのまま書かれている場合、流出の恐れがあるので見直しましょう。
GitHub App の Private Key なども削除したほうが良いでしょう。

GitHub の Repository Secrets で管理する場合、可能であれば Environment Secrets に置き換えてアクセス制限をかけるようにしましょう。

GitHub App や PAT の利用を見直すことで不要になった GitHub Secrets は削除しましょう。

Rulesets の設定

ほぼすべてのリポジトリに API で一括で Rulesets を設定しました。

  • 全ての branch で署名を必須化
  • 全ての tag の作成を禁止 (organization admin や repository admin のみ bypass を許可)
  • 全ての tag の更新・削除を禁止

新規でリポジトリを作る際はスクリプトを実行することで上記の Rulesets を含む基本的な設定をするようにしています。
特に重要なのは tag の作成・更新・削除の禁止です。
これによりセキュリティリスクをかなり軽減できます。
tag の作成も admin にのみ許可することで GitHub Actions token や GitHub App, write 権限を持つ collaborator の PAT が悪用されても tag を作成することが出来ません。
ただし、リリース時に tag の作成を GitHub Actions token などで自動化している場合は動かなくなるので注意が必要です。
自分の場合、今回の取り組み以前から tag は必ず自分で作成しています。
上記の Ruleset で攻撃者が tag を作成するのを防ぐためというのもありますし、そもそも自動で tag を作成した場合、 tag の署名が困難だからです。
commit の署名は GitHub Actions token や GitHub App を使って API で commit を生成すればできるのですが、自分の認識では tag はどうもできないようです。

commit の署名を必須にすることでなりすましも防ぐようにしました。
元々 default branch では署名を必須化していましたが、全 branch で必須にしました。
CI で署名付きの commit を生成する際は ghcp, commit-action, gh-pages-action が便利です。

Renovate の minimumReleaseAge を設定

Renovate を使っている場合、 minimumReleaseAge を設定し、リリースされてから数日後に PR が作られるようにしました。
これは、対象のバージョンがリリースされてから指定した期間後に update されるようにする設定です。
期間をどの程度置くかは難しいですが、自分は全ての update に対して 3 days に設定しました。
大きなインシデントは 3 日もあれば見つかるだろうという想定です。
期間を空けると安全になる分更新が遅れるのでトレードオフですが、やはり安全側に倒して 3 日くらいは空けるのが良いのかなと思いました。
自分の場合はほぼすべてのリポジトリに適用する Renovate Config Preset を管理しています。

public repository で 極力 pull_request_target を使わない

tj-actions のインシデントでは pull_request_target が悪用されました。
https://zenn.dev/shunsuke_suzuki/articles/tj-actions-incident-2025 にも書いた通り、 public repository では pull_request_target は基本使うべきではありません。
PR のコードなどを一切参照しないような安全なケースに限って使いましょう。

課題

上記のような改善によってだいぶセキュリティは改善しましたが、まだ課題も幾つかあります。

  • GitHub CLI の OAuth App が強い権限を持っている
  • 異常なアクティビティの検知

GitHub CLI の OAuth App が強い権限を持っている

自分は普段 GitHub CLI を良く使っています。
GitHub CLI では通常 OAuth App を使って GitHub と連携します。
gh auth token コマンドを実行すると access token を生成することも出来ます。
ただこの access token は classic PAT 並に強い権限を持っていて、流出すると大変危険です。

普段は権限を最小限にしつつ必要に応じて一時的に権限を付与する (無条件に付与してたら意味がないので MFA を挟む感じになる) のがセキュリティ的には理想ですが、それは結構利便性を損なうことになるかと思います。

異常なアクティビティの検知

上記のような対策は攻撃を未然に防ぐのには役立ちますが、攻撃されたときの検出にはなっていません。
理想を言うと異常なアクティビティを検知したいです。

  • 異常な tag の作成 (tag が署名されてない)
  • 異常な tag の修正・削除
  • 異常な release asset の更新
  • 異常な Rulesets の修正
  • etc

補足: ツールのインストール時の検証

Release Asset の改竄については、以下のような検証が役立ちます。

  • checksum
  • Cosign, Minisign, slsa-verifier, GitHub Artifact Attestations

自分が公開している Go 製の CLI では Minisign 以外はサポートしています。
各ツールの install guide をみてください。

https://github.com/suzuki-shunsuke/pinact/blob/main/INSTALL.md#verify-downloaded-assets-from-github-releases

CLI version manager の aqua はこれらの検証をサポートしています。

https://aquaproj.github.io/docs/reference/security/

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

命名、タイル、シンプルさ – Codepen


彼らは言います 「物事を命名するのは難しい」 ol ‘nameを選ぶのが難しいからではなく、便利で長持ちする、意味のある、理解しやすく、深くコミュニケーションのある名前を選ぶのが難しいからです。それを台無しにすると、あなたは自分自身や他の人を不必要に混乱させることができます。

私たちは今、CodePen自体で開発されている自体のサイクルにあります。これは、私たちのためにもうそれをしていないので、大胆にAPI全体とそれらのすべての使用法を大胆に再名称するPRSをレギュラーに見ています。私たちは悪い名前で生きるつもりはありません。

しかし、あなたが名前、または一連の名前のテーマを選ぶことにこだわっているなら、ポール・ロバート・ロイドはあなたの背中をここに持っています。設計システムに取り組んでいますか?多分 アーキテクチャからの名前 インスピレーションになる可能性があります。おそらくあなたのCMSプロジェクトは可能です ジャーナリズムから学ぶ

あなたが理解できる良い名前、そしてすぐに。 CSSカスタムプロパティの場合、名前を選ぶ以外に選択肢がないので、名前をつけることを考えるのに興味深いスペースです。ジョナサンダラスは素晴らしい仕事をしています。 CSSの命名変数。単独の名前が大丈夫であっても、それはグループとしてOKを読みますか?よりよく読むために再ケースまたは再配置することはできますか?ジョナサンの素晴らしい例:

:root {
  /* Harder to scan: */
  --system-control-accent-color: blue;
  --system-focus-ring-color: cadetBlue;
  --system-label-color-quaternary: lightGray;
  --system-heading-title-font-size: 1.5rem;
  --system-subheading-font-size: 1.2rem;
  --system-caption-font-size: 0.65rem;


  /* Easier to scan: */
  --system-color-controlAccent: blue;
  --system-color-focusRing: cadetBlue;
  --system-color-labelQuaternary: lightGray;
  --system-fontSize-headingTitle: 1.5rem;
  --system-fontSize-subheading: 1.2rem;
  --system-fontSize-caption: 0.65rem;
}

ジョナサンは区別します 記述 名前と 価値ベース 名前。どちらが望ましいとは異なる意見があり、両方を使用すべきだと思う人でさえ(例:値ベースの変数を参照する記述変数)。それは依存します、あなたは言うことができます。

CSSのいくつかの色がすでに名前が付けられていることを知っていると確信しています。ジョナサンは使用します CadetBlue 何度も、これはCSSで完全に有効な色です。しかし、あなたは何がないか知っていますか? TheSoulOfChris。それは明らかに激しいオレンジ色であるにもかかわらず、その名前はCSSで何もしません。しかし、それを自由に作ってください --system-color-accent

名前を付けてください 全て 色? できた 私たちは? David Aerneは、に基づいてそう考えなければなりません カラー名 プロジェクト。これまでのところ、彼らはRGBで16,777,216色のうち30,200を指定しています。 0.18%。それでも、印象的です(しかし、P3について誰も彼らに話しません)。


Deepak Gulatiを楽しんだ 19世紀の装飾用タイルイラストを21世紀のWebアプリに持ち込む。結果として生じました 小さなアプリ それはタイルの仕組みを示しています。フリップ/ミラーリングされた1つのタイルは、面白いことをすることができます!デザインはクールです!

ここには、私が見たペンの小さな走りで、いくつかの興味深いタイミングがあります。ビデオゲームが非常に奇妙な面白いUIを持っていることを知っていますか?慎重に様式化されたメニューやボタンなどのように。 Baldur’s Gateは古典的な例であり、誰かがCSSでかなり近くで延期する例をいくつか見たので、ある種の挑戦を提案したに違いありません。これらがどのように「コーナーをデザインし、必要に応じて回転/ミラーリングするか」を持っていることを見ている間、あなたは想像できると思います:

アーロン・アイカー:

ニコラス・ジェセンバーガー:

ジェーン・オリ:

あなたが私に尋ねると、彼らは皆それを釘付けにしました!


Webの最高のアニメーションフレームワーク、 GSAP、新たに再設計されたWebサイトがあります。

おめでとうギャング – 素晴らしく見えます!嗅ぎますか Docusaurus それらのドキュメントのフックの下?


私はかつて、抱きしめることについての記事を書きました シンプルで退屈 テクノロジーは、私は同意しますが、それは主にそれらの原則を称賛する他の人々のコレクションでした。それはあなたがあなた自身のために学ばなければならない教訓である傾向があります。十分な期間にわたってテクノロジーに責任を負うことになった場合、それはあなたの背中を持つ最も派手な技術であり、安定していて、メンテナンスが最も少ない傾向があります。したがって、あなたとユーザーの両方を支援します。

ダン・マッキンリーは、これについて素晴らしい話をしています 退屈なテクノロジーを選択してください。いいことは、ダンが私が上で吐き出した種類の漠然とした純粋な模範ではなく、強力な現実世界の例を持っているということです。 Etsyでは、ダンは「アクティビティフィード」に取り組み、スタックにRedisを追加してそれらを処理することを検討しましたが、…

しかし、アクティビティフィードの構築に着手したとき、Redisはありませんでした。私たちはMemcachedをしました。それらは、あなたがそれらに塊を押し込み、同様のAPIでそれを取り戻すことができるという意味で一種の似ています。しかし、それらは非常に異なる保証を持っています。ここで私たちに最も関連する違いは、Redisが持続的であり、Memcachedがはかないものであることです。

つまり、Memcachedでアクティビティフィードを構築したい場合は、余分な作業を行う必要があるということです。 Memcachedがあなたが望む瞬間にあなたのデータを取り除いた可能性に対処する必要があります。

これにより、機能を配信するためのコードを作成する際に、さらに作業が作成されます。しかし、新しい種類のデータベースを操作するための永続的なコストに反して、弾丸を噛んでMemcachedの機能を構築することを決定しました。

次に何が起こったのですか?彼らはテクノロジーについて考えていませんでした 。結局のところ、機能20x’dの使用と、この機能は非常に安定していて、誰も触れる必要がありませんでした。彼らがスタックに新しいテクノロジーを追加した場合、それは起こりますか。ダンの答えは明確です:いいえ。

今年初めに、デイブ・ルパートは、退屈性について守備設計システムのかなり具体的な美徳について話しました。潜在的な属性を約20枚リストした後 コンポーネント、彼は言う:

このコンポーネントは、著者がサポートするコンテンツの順列に対して防御的に設計および構築する必要があります。かつて謙虚な視覚的なディスプレイコンポーネントだったものは、現在コンテンツの主力です。どのコンポーネントも、無数のルールと要件で満たされた小さなマシンになる可能性があります。多目的コンポーネントになるための重力があります。

これらすべての複雑さは、コンテンツのすべての可能な順列に対して平均化して、コンポーネントを当たり障りのない防御デザインに向けて希釈します。ユーティリティが上がると、そうです 設計システムの退屈さ。そして、それは良いことかもしれません!

設計システムの退屈さ

色のコントラストは、全体としてWebサイトの主要なアクセシビリティ障害の1つです。幸いなことに、自動テストで障害を検出するのはかなり簡単です。確かに、それらを修正することは、仕事を少し退屈にすることができます。私はここでマグナスランドのポイントを取ります: コントラストは退屈です – 他の誰かがそれをすることはできませんか?

あなたのウェブサイトに十分なコントラストを持つことは、特にあなたのサイトが複数の背景色を使用している場合、非常に重要ですが、それでも非常に退屈なものの1つです。

マグナスは面白いものです。彼は「他の人間が私の仕事をしてください」と言っているのではなく、彼は私たちがより自動的に正しいことをするのに役立ついくつかの新しいCSSテクノロジーを導入しています。

.text {
  background: var(--bg-color);
  color: color-contrast(var(--bg-color) vs navy, lightseagreen to AA););
}

ドラフト仕様と初期のフラグ付き実装がありますが、残念ながらまだ急いで使用することはありません。私は大ファンです。私はあなたが常にこの関数を与えているデザインシステムから色のリストを持っているというアイデアが好きで、それはに応じて最高のものを選ぶでしょう どれでも 変更されたとしても、背景色があります。それは良いことです。

ルークプラントのシンプルさのアイデアに関するもう少し最近の投稿で終わります。

もちろん、私たちは皆、複雑さを嫌うと主張していますが、実際には私たちが嫌いな他の人々によって追加されたのは単なる複雑さです。私たち自身のバグベアは常に免除されており、私たちが理解するために、私たちはすぐに他の人に潜在的な問題があることさえ見ることができません。

誰も実際にシンプルさを望んでいません

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

スマホ向けゲームのグラフィックスを改善する「Tile Based Rendering」での新テクニックとは? ArmのGPUアーキテクトが語る



スマホ向けゲームのグラフィックスを改善する「Tile Based Rendering」での新テクニックとは? ArmのGPUアーキテクトが語る

 GDC2025でArmは,GPUアーキテクトのPhillipGarcia氏による講演を行った。この講演は,PCやゲーム機のGPUと比べて非力なスマートフォン向けGPUの消費電力を減らしながら描画効率を上げるのに役立つ,非常に興味深い内容だったので,解説したい。

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

Microsoftの創業50周年を祝いビル・ゲイツが「Microsoft最初の製品」を作った当時を回想 – GIGAZINE



メモ

by OnInnovation

2025年4月4日にMicrosoftが創業50周年を迎えたことを記念し、Microsoft創業者のビル・ゲイツ氏が自身のブログで「Microsoft最初の製品」を作り上げた時のことを回想しています。

Celebrating 50 years of Microsoft | Bill Gates
https://www.gatesnotes.com/microsoft-original-source-code


Microsoftが創業される少し前の1975年1月、アメリカの電子工学系雑誌「Popular Electronics」の表紙に、個人用コンピューターのAltair 8800が掲載されました。当時はまだ「個人がコンピューターを持つ」という概念が一般的ではありませんでしたが、これを見たゲイツ氏とポール・アレン氏は「PCの革命は急速に起きる」と考え、その波に乗ろうと試みました。

そこでゲイツ氏とアレン氏は、Altair 8800を開発したMicro Instrumentation and Telemetry Systems(MITS)の創業者であるエド・ロバーツ氏に接触し、「Altair 8800のチップ向けのBASICインタプリタがある」と売り込みをかけたとのこと。

by Matthew Ratzloff

BASICは1964年に開発されたプログラミング言語であり、コンピューター経験が浅い人でも学習が簡単であり、比較的容易にソフトウェアコードが書けるとして広く使われていました。実際、ゲイツ氏とアレン氏が最初に学習したプログラミング言語もBASICだそうですが、BASICには「コンピューターそのものはBASICを理解できない」という問題がありました。コンピューターの内部ではもっと複雑な言語が用いられており、BASICとコンピューターの橋渡しを行い、コードを実行するものとしてインタプリタが必要となります。

ゲイツ氏とアレン氏が売り込んだのは、Altair 8800においてBASICで記述されたコードを実行するインタプリタというわけです。問題は、2人がMITSに売り込みをかけた段階ではまだ、Altair 8800向けのBASICインタプリタを開発していなかったという点です。

2人は同年3月にロバーツ氏へデモを見せることを約束しましたが、その時点ではAltair 8800に用いられているプロセッサのIntel 8080を持っていませんでした。そこで、アレン氏がハーバード大学の研究室にあったメインフレームの「PDP-10」でAltair 8800のシミュレーション用コードを書き、ゲイツ氏がメインのコードを書くという分担で開発を進めました。この際ゲイツ氏は、同級生のモンティ・ダビドフ氏に浮動小数点演算ルーチンを書いてもらったとのこと。

by Victor R. Ruiz

また、Altair 8800向けBASICインタプリタ開発における障害のひとつとして浮上したのが、当時のコンピューターメモリは非常に高価であり、Altair 8800に追加のメモリを搭載するわけにはいかなかったという点です。BASICインタプリタに与えられたわずか4キロバイトにすべてのコードを納めるため、データ構造のコンパクト化やアルゴリズムの効率化など、さまざまな技術や最適化を行ったそうです。ゲイツ氏は当時のことを回想して「楽しい挑戦でした」と述べていますが、それはそれとしてストレスはたまったそうです。

約2カ月にわたり昼夜を問わず開発作業を続け、ようやく「存在すると言っていたのに実は存在していなかったコード」が完成しました。このコードは「Altair BASIC」と名付けられ、ロバーツ氏の前でのデモンストレーションが見事に成功したことを受けて配布が決定しました。当時はまだMicrosoftという社名はありませんでしたが、これがMicrosoftにとって初の製品となりました。

なお、ポール氏はMITSの本社があるニューメキシコ州アルバカーキに向かう飛行機の中で、Altair BASICの最後のコードを書き上げたとのこと。この詳細については、2025年2月4日(火)に発売されたゲイツ氏の回顧録「Source Code: My Beginnings(ソースコード:私の始まり)」に記されているとのことです。


なお、Microsoft初の製品「Altair BASIC」のソースコードは、ブログ下部の「DOWNLOAD」をクリックするとPDFファイルでダウンロードすることができます。


また、テクノロジー系メディアのThe VergeもMicrosoft創業50周年に際し、50年もの長きにわたりMicrosoftが生き残ってきた理由について考察しています。

How Microsoft made it through 50 years | The Verge
https://www.theverge.com/microsoft/643246/microsoft-50-business-model-cloud-ai


Microsoftはこれまでにモバイルデバイスの展開やWindows 8などで数々の失敗を経験し、それらによって多額の損失を被ってきましたが、The VergeはMicrosoftにとって「何か新しいことへの真剣なチャレンジ」が肝心だったと述べています。The Vergeのインタビューに対し、Microsoftの応用科学グループ責任者のスティーブン・バティッシュ氏は、「私たちは変化を受け入れるからこそまだ存在しており、物事をリードしているのです。これがMicrosoftの真骨頂であり、急速に変化する業界では古い私たちのような会社にとって、ユニークなものです」と語っています。

また、さまざまな失敗がその後の製品で役立つというケースもあります。たとえば、音声アシスタントのCortanaやWindows Phoneは大きな失敗となりましたが、これらの製品で培われたテクノロジーは、Surface Pro XやWindowsにおける初期のAIエクスペリエンスに役立ったとのことです。

この記事のタイトルとURLをコピーする

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

AWS SAP合格しました



AWS SAP合格しました

はじめに
今回は初めてprofessionalに挑戦し合格しました!
過去3年間で、Cloud Practitioner, SysOps,DVA,SAA,MLS,SCSを取得しました。
SAPの勉強…

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

『Schedule I』アプデ内容を一足先に遊べるベータ版を配信。壁かけ家具や時計を多数実装し、質屋のインターフェースを改善


4月7日(月)より、植物を栽培して麻薬を密売するシミュレーションゲーム『Schedule I』の開発元であるTVGSは近日中にリリースされる『Schedule I』のアップデート内容を一足先に体験できる「v0.3.4 Open Beta」を配信した。Steamプロパティにて、バージョンを選択できる。

Steamストアページによると、るベータ版にはフルリリース版で追加される予定の機能が100%含まれていないが、新たな壁掛けオブジェクトや質屋のインターフェースが正しく機能するか試験するために配信したとのこと。

3月25日(火)にPC(Steam)に向けてリリースされた『Schedule I』は、最大同時接続者数45万人を突破する人気作だ。Steamレビューでは記事執筆時点で7万5299人から口コミが寄せられており、約98%のユーザーから高く評価され「圧倒的に好評」を獲得している。

ゲームを開始すると、荒野の田舎町で車椅子の老人から麻薬栽培のノウハウを伝授されるシーンから始まる。ハッパを袋に詰め、ささやかな成果を挙げて帰ると老人が警察に検挙されてしまうシーンを目撃してまい、急遽キャンピングカーで逃亡。町へ逃げ延びる。

しかし、行きついた町では車が爆破されてしまい、コネも現金もほぼ0の状態からスタートすることになる。そこからはある程度自由にプレイが可能となっている、プレイヤーは主人公を操作して町で麻薬密売人として成り上がることができる。

なお、麻薬密売は違法行為【※】にほかならず、街には警察が徘徊しており、密売現場が発見されると逮捕されてしまう。プレイヤーは法的機関の取り締まりをかいくぐり、顧客を依存させてライバルのカルテルとの抗争を生き延びることとなる。

【※】覚醒剤をはじめとする薬物の乱用は、乱用者本人の精神や身体の健康を害するだけではなく、薬物乱用による交通事故や薬物に起因する犯罪など、社会全体に悪影響を及ぼすことから、国民の健康と安全を守り、健全な社会の実現のため、法律で厳しく規制されています。(警視庁の公式サイトより引用)

なお、「v0.3.4 Open Beta」では、金庫や壁掛けの灯り、時計などが追加。バグ調整や画面の表現を改善する模様だ。

『Schedule I』はPC(Steam)に向けて早期アクセス版が発売中だ。

本ページはアフィリエイトプログラムによる収益を得ている場合がございます

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

『メトロ』シリーズにも携わったスタジオ手がける近未来FPS『La Quimera』発売日決定!




ゲーム中盤の重要ミッションの一部にアクセスできるクローズドベータテストも4月12日23時より24時間限定で開催。

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

ETC利用再開「応急復旧」の現状



ETC利用再開「応急復旧」の現状

ETC利用再開「応急復旧」の現状

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0

『ぴちぴちピッチ』e-pitchマイクが大人向けに登場!各キャラクターのソロ曲&ユニット曲を収録


『ぴちぴちピッチ』Special Memorize e-pitchマイクピュア

『ぴちぴちピッチ』e-pitchマイクが大人向けに登場!

『ぴちぴちピッチ』Special Memorize e-pitchマイクピュア

 

本商品では、主人公・七海るちあをはじめ、宝生波音・洞院リナの3種類がラインナップ。

 

片手に収まるサイズ感ながらも、劇中に登場したマイクが高いクオリティで再現されています。

 

さらに各バージョンごとにキャラクターのソロ曲&ユニット曲を収録!本体のボタンを押すだけで懐かしの劇中曲を聴くことができますよ。

 

 

収録曲

七海るちあver.

ソロ曲「MOTHER SYMPHONY」

ユニット曲「KODOU ~パーフェクト・ハーモニー~」

 

 

宝生波音ver.

ソロ曲「水色の旋律」

ユニット曲「七つの海の物語 ~Pearls of Mermaid~」

 

 

洞院リナver.

ソロ曲「Piece of Love」

ユニット曲「希望の鐘音 ~Love goes on~」

 

 

商品概要

『ぴちぴちピッチ』Special Memorize e-pitchマイクピュア

 

商品名:Special Memorize e-pitchマイクピュア 七海るちあ/宝生波音/洞院リナ
価格:各5,280円(税込・送料/手数料別途)
予約期間:4月4日(金)16:00~5月25日(日)23:00
商品お届け:9月予定
販売店舗:「プレミアムバンダイ」にて予約受付中

 

詳しくは公式サイトを確認してください。

 

フラッグシティパートナーズ海外不動産投資セミナー 【DMM FX】入金

Source link

Views: 0