
米Metaは9月25日(現地時間)、自社カンファレンス「Meta Connect 2024」にて、開発中のARグラス「Orion」を発表した。同社が10年の歳月を経て作り上げたARグラスで、広視野角ディスプレイや、EMG(筋電図)で操作できるニューラルインタフェースを搭載しながら、単体動作するメガネサイズのデバイスに仕上げた。さながら、アニメ作品「電脳コイル」に登場する「電脳メガネ」のようだ。
「電脳メガネ」ついに実現? Meta、真のARグラス「Orion」を披露 “筋肉の信号で操作”も可能に - ITmedia NEWS
一方で「消費者向けの製品として出荷するにはまだやらないといけないことがある」(ザッカーバーグ氏)としており、ディスプレイのチューニングやデザインに改善の余地があるとしている。OrionはデモキットとしてソフトウェアやAR体験の発展に使い、将来的には「最初のコンシューマ向けのフルホログラフィックARグラスにしたい」と述べている。
「電脳メガネ」ついに実現? Meta、真のARグラス「Orion」を披露 “筋肉の信号で操作”も可能に - ITmedia NEWS
そのため、現時点で販売の予定はなく「Orionはタイムマシンとしてみてほしい。エキサイティングな未来を見せるもの」(ザッカーバーグ氏)と語った。
「電脳メガネ」ついに実現? Meta、真のARグラス「Orion」を披露 “筋肉の信号で操作”も可能に - ITmedia NEWS
⇧ 販売はまだなのね...
Rubyは全てオブジェクトとは言うが、moduleとclassの区別は意識する必要がある気がする
Rubyの公式のドキュメントによると、
オブジェクトとは
Ruby で扱える全ての値はオブジェクトです。 Ruby のオブジェクトに対して可能な操作はメソッド呼び出しのみです。あるオブジェクトが反応できるメソッドは、そのオブジェクトが所属するクラスによって一意に決定します。所属するクラスはオブジェクト生成時に決まり、その後は特異クラスの導入以外、所属クラスが変わることはありません。またオブジェクトは、特定のクラスに対比して、その「インスタンス」とも呼ばれます。
オブジェクトの生成は、一般には、別のオブジェクトのメソッドを呼び出すことによって行われます。
⇧ とありますと。
- Ruby で扱える全ての値はオブジェクトである。
- Ruby のオブジェクトに対して可能な操作はメソッド呼び出しのみである。
- あるオブジェクトが反応できるメソッドは、そのオブジェクトが所属するクラスによって一意に決定する。
つまり、何だかんだで「クラス」に帰結しておりますと。
のはずなんですが、
⇧ ここで、「モジュール」という概念が出てくるのだけど、説明が雑過ぎて、よく分からんことになってきますと。
何となくだが、
- module
- class
の区別は意識しておいた方が良さそうな気がする、多分...
その割には、公式のドキュメントの「モジュール」の説明の適当さよ...
Rubyでload、require、include、usingなど使い分けがよく分からんので調べてみた
で、前に、
⇧ Rubyのクラスについて、調べてみたものの、詳細がいまいち分かっておらず、その後、ネットの情報で、
- load
- require
- include
- using
などというキーワードが出てきて、わけ分からん、な感じなので、整理してみます。
ちなみに、Ruby初学者なので、情報が錯綜してることは、予めご了承ください。
で、こ奴らを考える上で、
- module
- class
を意識する必要が出てきますと。
と言うのも、ChatGPTに確認したところ、大きく分けると、
| No | 機能 | 所属 | メソッド種類 | Rubyバージョン |
|---|---|---|---|---|
| 1 | autoload | module Kernel | モジュール関数 | 1.9 |
| 2 | load | module Kernel | モジュール関数 | 1.8 |
| 3 | require | module Kernel | モジュール関数 | 1.8 |
| 4 | require_relative | module Kernel | モジュール関数 | 1.9 |
| 5 | ancestors | class Module | インスタンスメソッド | 1.8 |
| 6 | include | class Module | インスタンスメソッド | 1.8 |
| 7 | prepend | class Module | インスタンスメソッド | 2.0 |
| 8 | extended | class Module | privateメソッド | 2.0 |
| 9 | included | class Module | privateメソッド | 2.0 |
| 10 | prepended | class Module | privateメソッド | 2.0 |
| 11 | refine | class Module | privateメソッド | 2.1 |
| 12 | using | class Module | privateメソッド | 2.0 |
| 13 | extend | class Object | インスタンスメソッド | 1.8 |
⇧ 上記の表のような感じで、
- module Kernel
- class Module
- class Object
のように、「モジュール」か「クラス」のどちらかに分かれるっぽいので。
で、使い分けについては、Ruby初学者である私に分かるわけもないので、ChatGPTに確認したところ、
| No | 機能 | 目的 |
|---|---|---|
| 1 | autoload | 遅延読み込み。 |
| 2 | load | ファイルを毎回読み込む。 |
| 3 | require | 外部ファイルやライブラリの読み込み。 |
| 4 | require_relative | 相対パスでファイルを読み込む。 |
| 5 | ancestors | クラス、モジュールのスーパークラスとincludeしているモジュールを優先順位順に配列に格納して返す。 |
| 6 | include | モジュールのメソッドをインスタンスメソッドとして取り込む。 |
| 7 | prepend | モジュールのメソッドを優先してインスタンスメソッドとして取り込む。 |
| 8 | extended | モジュールがextendされた際の処理。extend実行時にコールバックされる。 |
| 9 | included | モジュールがincludeされた際の処理。include実行時にコールバックされる。 |
| 10 | prepended | モジュールがprependされた際の処理。prepend実行時にコールバックされる。 |
| 11 | using | モジュールの機能を特定のスコープで使用。 |
| 12 | refine | 特定のスコープ内でクラスやモジュールのメソッドを一時的に変更する。制約在りoverrideみたいなもの。usingされた範囲内でのみ効力を発揮する。 |
| 13 | extend | モジュールのメソッドをクラスメソッドとして取り込む。 |
⇧ というような回答が提供された。
うむ、分からん。
何やら、
⇧ 上記サイト様によりますと、
- include
- prepend
は使い分けする関係になるらしい。
何と言うか、Rubyの仕組み、いまいち、よく分からん...
Rubyのコーディングのお手本が欲しいところですな...
毎度モヤモヤ感が半端ない…
今回はこのへんで。


