サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
WWDC25
qiita.com/kidach1
この記事は Akatsuki Advent Calendar 2017 の21日目の記事です。 背景 最近はARにおける3Dグラフィックスをテーマとして取り組んでいます(具体的なアウトプット事例はこちら)。AR上での写実性の向上に関する論文を読んでいると、レンダラのアルゴリズムとしてラスタライズではなくレイトレーシング(をベースとする写実的な描画手法)を採用している研究が複数見つかります*1 。今回はそのキャッチアップを兼ねて、実際に手を動かして基本的なレイトレーサーを実装してみました。 先にレンダリング結果 ゲームエンジンやライブラリ未使用、スクラッチのC++コードのみで描画。 レイトレーシングについて カメラから画素を経由してレイ(視線)を飛ばし、レイの物体との衝突や反射状況などを調べ経路を計算していき、最終的な画素色を決定していく手法。 メリット 写実的な描画が可能 鏡面反射表現に優
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 2017/1/28開催の VR Tech Tokyo #5 での発表と試遊会(プロダクトを参加者の方々にプレイしてもらう場)でかなり多くの学びが得られたので、整理を兼ねてまとめます。 ※ 今回の話の前段に OculusTouch対応アプリMikuTimeVRをPreview公開で育てている話 があります。 (自分の)発表内容のまとめ 試遊会での学び 全体の感想 という構成です。 発表内容のまとめ 話したこと MikuTimeVRとは? 開発時大事にしていること #MikuTimeVR とは? 前記事 にも書いたので、アップデー
この記事は Akatsuki Advent Calendar 2016 の20日目の記事です。 はじめに 先日12/6(火)にOculusTouchが正式ローンチされました。 HTC ViveのViveコントローラーやPSVRで使うPSMoveと比較してもそのクオリティは高く、そこに未来を見出した方々のツイートで(自分のTLは)溢れています。 そんな中この波に乗らないわけにはいかんということで、自分もTouch対応VRアプリケーションをPreview公開しました。今回はその #MikuTimeVR について、開発プロセスで得られた知見を交えつつ話します。 ※ Disclaimer たまたま会社のアドベントカレンダーへの投稿になりますが、今回の内容は全て個人的活動によるものであり、所属する企業のプロジェクトとは何の関係もありません。ならびに、MikuTimeVRで利用しているTda式初音ミク
概要 Rubyによるデザインパターン第5章。 Observer Pattern。 Rubyによるデザインパターン5原則に則って理解する。 どんなパターンか あるオブジェクトの状態に関心のあるオブジェクトに、都度通知を送る。 ニュースの発信源(Subject)とニュースの消費者(Observer)間に綺麗なインターフェイスを用意する。 Subject あるニュースを配信するクラス Observer あるニュースを得ることに関心があるクラス メリット ニュースの発信者と受信者の間の依存関係を排除する。 問題のあるコード 従業員の給与の変化を経理部門に伝えるシステム 従業員クラス class Employee attr_reader :salary attr_accessor :title, :name def initialize( name, title, salary, payroll)
東京Node学園祭2015事前まとめその2。 大規模Node.jsを支えるロードバランスとオートスケールの独自実装(FRPもあるよ) - Qiita でインフラ制御にFRPを適用した話の深掘りです。 前提知識 Reactive Programming in JavaScript 【翻訳】あなたが求めていたリアクティブプログラミング入門 個人的には、FRPは あらゆるイベント/データを時間軸上に連続する一つのリスト(実際はストリーム)と捉えることで、 関数型のパラダイムを適用出来る 強力なオペレータ群が使える・コードの見通しが向上する 「時間軸上に連続したイベント」という概念が本質的にAsynchronous 非同期処理(エラーハンドリング含む)を抽象度高くスマートに書ける といったメリットがあると理解しています。 今回実現したかったこと Redis内で刻々と更新されていくインスタンス毎のコ
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? というテーマで東京Node学園祭2015でセッションさせて頂くことになったので、先に整理/メモ的ななにかを。 (追記)以下資料で発表しました。 大規模Node.jsを支える ロードバランスとオートスケールの独自実装 http://www.slideshare.net/kidach1/nodejs-54841327 作ったもの ・スマホゲーム(マルチプレイアクション) 【公式】メザマシフェスティバル(メザフェス) | 株式会社アカツキ https://mezamashi-festival.aktsk.jp ・2D横スクロール ・マルチプレ
DNSリバインディング攻撃とは 概要 罠サイトと罠DNSサーバを運営する攻撃者が、 短期間にドメイン(FQDN)に対応するIPアドレスを変更することで SameOriginPolicyの範囲内で脆弱性サイトへjsによる攻撃を行う。 ステークホルダー 攻撃者 攻撃者運営のDNS(TTL/キャッシュ生存期間を5秒程度に設定) 攻撃者運営の罠サイト(evil.example.com)(192.0.2.1) 脆弱性サイト(weak.example.jp)(198.51.100.1) 被害者 攻撃の流れ 被害者が罠サイト(evil.example.com)を閲覧 攻撃用JavaScript(※)が被害者に送信される ※例えば「evil.example.com」上の特定コンテンツにアクセスし、得られた情報を192.0.2.1(evil)に返す、など。 攻撃者がDNSのAレコードを操作し、evil.ex
何も考えないで作ると、rock/pops/jazzそれぞれのモデル、ビュー、コントローラに 似たような記述・コピペが増えそうな予感を感じて頂けたでしょうか。 では、それを防ぐために、まずはSTIから。 (※追記) 実は上記だけの要件であれば userテーブル、musicテーブル、genreテーブルのみを用意して user has_many genres through musicsのassosiationでも実現可能 (そもそもrock/pops/jazzモデルを用意する必要がない)だったりします。 実際は「今後それぞれのgenreごとに特有な処理を複数追加していきたい」というケースを想定して、 各genre個別のモデルを用意することを前提にしています。 ちょっと要件の例がいまいちだったかもしれず、申し訳ありません。。 STI(Single Table Inheritance/単一テーブル
(2014/1/30追記) Yahoo!のWebAPIやOpenIDでも同様の事象があったようです。 かなり影響の大きい問題だったのですね。 WebAPIやOpenIDでSSLエラーが起きる現象につきまして http://techblog.yahoo.co.jp/maintenance/4/ 問題 curlでとあるhttpsスキームのAPIを叩いたら、こんなエラーが。 後付けで分かりましたが、原因は以下でした。 RHEL5/CentOS5でGlobalSignのルート証明書が有効期限切れで大騒ぎ http://heartbeats.jp/hbblog/2014/01/rhel5centos5globalsign.html 記事内にもある通り、取り急ぎの対応は 接続側で証明書検証をしないようにする(curlコマンドなら -k をつける) だったりするのですが、はじめは 証明書切れた癖に検証ス
概要 Rubyのprivateメソッドを支える、2つのルール ルールを知る事によるメリット ※前者はメタプログラミングRubyより。 2つのルール privateメソッドを呼び出す時は、レシーバは指定できない 自分(self)以外のオブジェクトのメソッドを呼び出すには、レシーバを指定する必要がある ルール1 privateのついたメソッドを呼び出す時は、レシーバは指定できない 例として、レシーバ指定しないパターンと、 明示的にレシーバ指定してしまうパターンを試してみます。 class Sample1 def s1_call_private s1_private # 通常の呼び出し end def s1_call_private_with_receiver self.s1_private # あえてレシーバ(self)を明示して指定 end private def s1_private p
# 適用したいrubyバージョンが既にインストール済みの場合は一度uninstall $ rbenv uninstall 2.1.1 # readlineのinstall $ brew install readline $ brew link readline --force # readlineを利用してruby再install $ RUBY_CONFIGURE_OPTS="--with-readline-dir=$(brew --prefix readline)" $ rbenv install 2.1.1
Ruby on Rails Tutorialのエッセンスを自分なりに整理11 [Rails][RSpec] Capybaraでフォーム入力をシミュレートしてテストする http://qiita.com/kidachi_/items/b0e607c83e9da9380d7e の続き。 Ruby on Rails Tutorial(chapter8) http://railstutorial.jp/chapters/sign-in-sign-out?version=4.0#top 概要 普通はDeviseなどの便利なgemやライブラリを使うのだろうが、 内部動作を知るためにまとめる。 ※ あくまでRails上での「ベタ」です。 セッション管理の流れ 新規登録時 ユーザ作成にあわせて、remember_token(セッショントークン)生成 暗号化の上dbに保管 ログイン時 新たにremember
「Rubyならこう書く」あれこれ Arrayオブジェクト Rangeオブジェクト ブロックとProcオブジェクト シンボルとハッシュ クラスとコンストラクタ (追記) ブロックとProcオブジェクトについては、長くなったので以下に分離しました。 [Ruby基礎] ブロックとProcをちゃんと理解する http://qiita.com/kidachi_/items/15cfee9ec66804c3afd2 配列(Array) 要素の操作 # 配列要素の分割 > "foo bar bazz".split => ["foo", "bar", "bazz"] # 配列要素の指定文字列での分割 > "fooxbarxxxxbazz".split('x') => ["foo", "bar", "", "", "", "bazz"] # 配列要素の順番入れ替え > "foo bar bazz".spli
Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる7 Railsにおけるリンクの記述方法とそのテスト http://qiita.com/kidachi_/items/d704e7eb63513c3831ae の続き。 Ruby on Rails Tutorial(chapter5) http://railstutorial.jp/chapters/filling-in-the-layout#sec-layout_exercises Rspecのリファクタリング 指定のページが指定の要素を持っている(もしくはいない)かをチェックするテストコード。 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the h1 'Sample App'"
次のページ
このページを最初にブックマークしてみませんか?
『@kidach1のマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く