vr chat!
xr業界に身を置いた自分ですが、現実世界でゲームをしない自分にとってイマイチ、コンテンツを楽しめない。
そこで、こんな発言を見かけ、この人の思想に非常に共感した。
vrのキラーコンテンツは何かって、現実世界と同じだから友達とパブてわいわいすることだよ
なるほど、おっしゃる通り。この発言は、vr chatを手がける社長の発言。つまり、ソーシャル性がキラーコンテンツになっていくと。
このvrchatが何ができるかというと、
1.友達ができる 全世界の人とvr空間で出会える
2.自分の世界が作れる vr chat用のsdkが提供されており、自分の世界を作ってvr chatで公開することができる
3.見た目をカスタムできる 自分のアバターを作る、選べる
privateメソッドについて考えてみる
覚えるべき二つのルール
1.privateメソッドを呼び出す時は、レシーバは指定できない 2.自分(self)以外のオブジェクトのメソッドを呼び出すには、レシーバを指定する必要がある
privateメソッドを用いることで結果的に外部のクラスのメソッドを呼び出すレシーバが指定できなくなり、private以下のメソッドは外部からの呼び出しに対応できなくなるのである。
rubyの継承とオーバーライドについてまとめて見た
オーバーライドとは?
オーバーライドとは、親クラスで定義しているメソッドを子クラスで上書きすること 例
class Human
def eat
puts "ご飯を食べた"
end
end
class Programmer < Human
def work
puts "コードを書いた"
end
def eat
puts "急いでご飯を食べた"
end
end
programmer = Programmer.new
programmer.eat #=> 急いでご飯を食べた
親クラスのメソッドを呼ぶ方法
親クラスのメソッドを上書きせずに、子クラスで使用する方法 superを用いる!!
class Human
def sleep
puts "寝た"
end
end
class Programmer < Human
def sleep
<b>super</b>←親クラスのsleepを実行
puts "しかし何故かぐっすり眠れない"
end
end
programmer = Programmer.new
programmer.sleep
#実行結果
#寝た
#しかし何故かぐっすり眠れない
superに引数を渡す
class Foo
def plus_5 num=0
puts num + 5
end
end
class Bar < Foo
def plus_5 num
<b>super num</b>
<b>super</b>
end
end
bar = Bar.new
bar.plus_5 3
#実行結果
#8
#8
superに引数を渡さなくてもおんなじ出力結果になっている!! つまり、superで親クラスのメソッドを呼ぶ際、わざわざ引数を渡さなくてもよい。
Railsで他のControllerのactionを呼び出す
Railsで他のControllerのactionを呼び出す
privateを使うと、他のクラスから呼び出されないようにと出てくる、、うむ、そもそも他のクラスからコントローラから呼び出した経験がないぞ!どういうことだ!!ということで他のコントローラからアクションを呼び出して見ます。
renderでやる場合
元になるコントローラ
users_controller.rb
class UsersController < ApplicationController
def index
@users = User.all
end
end
呼び出すやつ
hoge_contoller.rb
class HogeController < ApplicationController
def users
@users = User.all
render template: 'users/index'
end
end
templateオプションは別のコントローラから呼び出す際に利用します。
だが、これだと変数が多い時にコントローラの処理が冗長になるのがきになる
元になるコントローラを親クラスにしてしまう
hoge_contoller.rb
# 親classをUsersControllerに
class HogeController < UsersController
def users
# 親のindexを呼び出す
public_method(:index).super_method.call
end
end
Oyo rooms
三度の飯より好きスタートアップが好き。 Imotanです。
紹介するのは、oyoというインドのスタートアップ。 ソフトバンクビジョンファンドより出資を受け、知っているひとも多いと思う。
事業は、宿泊施設予約サイトのoyo roomsを運営。掲載ホテルの設備に対し、一定の要件を科し、オペレーションシステムが統一させていることが特徴である。
インドの宿泊予約サイトが、掲載写真と実物が違いすぎる、ホテルの品質に差があるため、ホテルを選ぶのに手間がかかるという課題を見事に解決。
利用者は、oyo roomsを通せば、同じインターフェースのホテルを選ぶことができるというわけだ。
日本でも流行りの思考停止サービスの一種であるが、日本にはその課題はない。ブランド、同品質のホテルチェーンが数多く存在する。
と思いきや、年度内ならオープンらしい。ただ、5000〜10000円とインドでの価格より少し高めの価格設定。日本では、十分低価格ホテルだが。
インド 13万3千 中国 12万9千 ネパール、マレーシアなどを含め合計で全世界27万室
倍々で伸びる化け物スタートアップ。
高速成長率の秘訣は、itを駆使した高速運営。ぜんじゅうきょういんの8%を占めるエンジニアによって、地域のホテルとの需給による価格調整。タブレット1つでホテル運営が可能な工数削減。
つまり、ホテルオーナーは、工数をかけずに空き時間を増やすことで次の投資へと動くことができるようになってくのである。
CEOのアガルワルは大学を中退し、ピーターティールのプログラムに参加。 1000万円もらえるやつ。
もともとやっていた旅行サービスからピポッドして現在に至る。
早く泊まってみたい。笑
arクラウド
arクラウドについて勉強してみる
最近、xr領域のアクセラレータプログラムを運営している会社でインターンをしているのですが、意識高い系の僕には、技術のことはさっぱりでちょっと勉強しています。
面談する人から、「arクラウドの思想に惹かれて、、」と言われたのですが、そもそもあんまり理解できていないので、一旦まとめてみる
arクラウドとは?
時間、空間、ディバイスを超えて、一貫したAR体験を提供するためのリアルタイム空間マップ情報
Facebookのソーシャルグラフ、グーグルの検索インデックスに匹敵するほどのインフラになるらしい
ARのDBってことか、それをクラウドで、、なんだか今っぽい
ARクラウドが生まれた背景
過去のAR体験はソーシャルな要素が欠如していた、ユーザ同士のインタラクティブ性を得るため!
全員が同じ体験をできないと交流ができないから、クラウド上で共通のDBを設けたのか、、わかるようでわからん
ARクラウドを開発しているスタートアップのSuperVenturesのOriが三要件を定義していた
1.実世界の座標に紐づく、永続的かつ、共有可能な点群(ポイントクラウド)の保有。
ようは、現実世界のコピーを点群レベルで所有するってこと、
その難易度は非常に高く、ARクラウド関連のスタートアップは現実世界の情報を収集するために、APIやSDKを活用したり、3Dモデルの情報をプロバイダから購入したり、スマホの深度カメラを活用したりと様々なアプローチを模索しているのが現在です。
やっぱむずいんか
2.複数デバイスが瞬時に、正確に点群の絶対位置を把握(ローカライズ)出来る機能。
ようは、ディバイスに関わらず情報とのやりとりができるかってこと
デバイスの向きをGPSによる位置情報やWi-Fi信号を用いた三角測量などを用いて特定して行く必要がありますが、これらは今後のコンテキストデータをAIに学習させ続けることで、精度は高まって行くと見られています。
ハードの進化が求められるってことか、なる
3.オブジェクトをクラウド上の点群に配置し、リアルタイムかつインタラクティブに共有出来る機能。
これは、そのまま。ユーザがオブジェクトを配置できる機能が必要ってこと
この機能に対応することもARクラウドに求める要件なのか、意外やな
まあ、ソーシャルな体験のためのクラウドだから当然か
API
自分:apiあるんだ、めっちゃいいねー、んんん?apiてよく考えれば理解できないかも
APIとは
Application Programing Interfaceの略
プラットフォーム側の汎用性の高い機能を外部から手軽に利用できるように提供する仕組みのこと。
サービス提供者側で特定の指示や命令などのプログラムをAPIで公開しておくことで、利用者であるソフトウェア開発者がすべての機能を最初から開発する手間がなく、開発工程の大幅短縮が可能です。
サービス提供者もどうやって自分のサービス(DB)を使ってもらうかの工夫のための仕組みを作るんだな
近年ではWeb APIが普及しています。これはAPIをHTTPなどのWeb技術を用いて構築されたものです。クライアントのコンピュータのプログラムからWebサーバーに対して必要なデータをHTTPリクエストの形で送信すると、目的のものが受け取れます。クライアントは、これをブラウザで表示したり、CSV形式等に変更して使用することができます。
逆にwebAPI以外のapiを知らないww