SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
Web技術勉強会
                                        2011/07/23
       Ryuichi TANAKA/@mapserver2007/summer-lights.jp

         JavaScriptでプロトタイプベースオブジェクト指向プログラミング
~続々・親子関係を維持してクラスを使わないオブジェクト指向プログラミング手法~
これまでの内容
JavaScriptのプロトタイプベースOOPライブラリ
「mix.js」を開発を開始
mix.jsの初期バージョン完成
 バグあり。IEで動かない。
バグ修正版mix.jsをリリース
 バグなし、IEでも動作。
mix.js用ライブラリの開発
 前回一部紹介。
順調に育ってます
開発から約2ヶ月。
mix.js本体:213行
 コメント、改行のみの行を含んでいるので実質190行くらい。
mix.modules.js:743行
 モジュール群。実質680行くらい。
 Utils、Cache、Cookie、Http、Design
アプリケーションにも現在適用中(RankForce3, Rails製の
アプリ)。
ライブラリ開発でレベルアップ
これまで触ったことのない深い知識が必要
 プロトタイプチェーンのつなぎ替え
 クロージャ連発
 厳密なエラー処理
 テスト
このライブラリ開発でかなり詳しくなれた、と自負。
 JavaScriptに関しては中級者以上の実力があると、勝手に自負し
 てるが、このライブラリは我ながらかなり使えると思ってる。な
 ので、これからどんどん使っていく予定。
ライブラリ開発は大変
使う側から、使わせる側へ
IEで動かすことが特に大変
 Chromeでは動くが、IEで動かないことはざら。だが、IEを簡単
 に切り捨てることは負けを認めたことになる。
テストがないと本当に死ねる
 テストをつねに通る状態にしておかないと、機能追加や仕様変更
 で地獄を見る。
 通常のアプリと違って、影響範囲がほぼコード全域に及ぶ。した
 がって、使い捨てのテストコードで都度確認するわけにはいかな
 い。常に過去に正しく動いていて、かつ、変更後も正しく動くこ
 とを保証し続けないといけない。
 テストがなかったら途中で投げてたかも。
 おかげで、機能変更がまったく怖くない。
閑話休題
ここから本題
今回の内容
まずはこのコードをみてほしい。
 Child.java
    package jp.sample;

    public class Child extends Parent {
        public void caller() {
            super.caller();
        }

         public void name() {
             System.out.println("name is child");
         }
    }
今回の内容
 Parent.java
   package jp.sample;

   public class Parent extends GrandParent {
       public void caller() {
           super.caller();
       }

        public void name() {
            System.out.println("name is parent");
        }
   }
今回の内容
 Parent.java
   package jp.sample;

   public class GrandParent {
       public void caller() {
           name(); // これがどこを指すか?
       }

        public void name() {
            System.out.println("name is grand parent");
        }
   }
これを実行すると
Test.java
    package jp.sample;

    public class Test {
        public static void main(String[] args) {
            Child child = new Child();
            child.caller();
        }
    }




問題:
 これを実行すると、何と表示されるでしょう?
クラス図だとこんな

      手順:
      ・Childをインスタンス化
      ・Child#callerを実行する。
      ・Child#callerはParent#calerを呼び出す
      ・Parent#callerはGrandParent#callerを呼び出す
      ・GrapndParent#callerはGrandParent#nameを
       呼び出す。

      GrandParent#nameはどこを指す?
答え
答え。
     $ > java Test
     $ > name is child

だからどうした、Javaじゃねえか!
はい。でも、なんで「name is grand parent」じゃない
のか。なんとなく不思議に思わないかい?
レシーバを意識してみる

      child.super()super().caller()

               イメージとしてはこんな感じになる。
               (あくまでイメージ)

               レシーバは常にchildになるので、
               GrandParent#callerが呼ばれても
               childとして呼ばれることになる。
               したがってname()はChild#name。

               ちなみにレシーバはRuby用語。

    child.super().caller()
だが、JavaScriptだとこうはならない
JavaScriptで同じことをやると…

          child.super().super().caller()
          ↓
          parent.super().caller()
          ↓
          grandparent.caller()


           継承をうまいことやってあげたとする。
           Javaと同じ呼び出し方をしても、
           親を呼び出した時点でレシーバが親のレシー
           バに変化してしまう。
           最終的にはGrandParent#callerは
           Grandparent#nameを実行する。

       ※というかこういう継承関係をとれるライブラリがほとんど
        ないわけだが。
call, applyを使うと同じことはできる
同じことは実はできる

        child.super().super().caller()
        ↓
        super.apply(child)
        ↓
        child.super().caller()
        ↓
        super.apply(child)
        ↓
        caller.apply(child)
        ↓
        child.caller()
call, applyを使うと同じことはできる
call, applyは外部のオブジェクトを第一引数のオブジェク
トとして呼び出すことができる神メソッド。
 callとapplyの違いは第二引数で渡す引数の形式の違い。
 callは個別に渡す(いくつでも渡せる)
 applyは配列で渡せる(1つだけ)。argumentsをそのまま渡すと
 きはこっちを使う。
つまり、第一引数のオブジェクトをレシーバとして指定で
きる。指定しない場合は呼び出し先のオブジェクト。
これを利用するとさっきJavaでやったことと同じになる。
ここでmix.jsの話にようやく入る
mix.jsでもまったく同じことが起きる
回避方法も全く同じで、call, applyを使う



が、これはない!!!
なぜか。継承するたびに、レシーバを子供に戻す作業が毎
回発生する。
つまり、mix.jsを使う開発者に余計な手間をかけさせるこ
とになる。
普通、Javaなどと同じ挙動になるだろうと思うはず。でそ
のとおりにならないのでバグになる、と。
ライブラリとは、こういうことを全部よしなにやってあげ
るためにあるわけで。故にこれはない。
要するに今回の内容は
親メソッドでthisを使っている場合、自動的にcall, apply
をラップしてあげるよ、という実装の話。
動作イメージ
 var Psp = Module.create({
     name “psp”,
     getName: function() { return this.name; }
 });
 var PsVita = Module.create({
     name: “psvita”,
     getName: function() { return this.parent.name; }
 });
 var obj = PsVita.mix(Psp);
 obj.getName(); // psvita
とりあえずなにも考えずに実装
これまでは親を「parent」プロパティで参照していた
 obj.parent.getName();
parentを挙動を変えて実装してみた。
が、失敗。
 常に子をレシーバにして呼び出すことはできたが、既存の処理が
 正常に動作しなくなった。
 具体的にはhasメソッド。テストが軒並みこけるように。
一旦白紙に戻し方針転換。
いっそ、既存の処理に影響がでないようにプロパティを新
たに追加することにした。
parentと__parent__
 あらたに「__parent__」を定義。
  parentは「外部用親参照プロパティ」と定義
  __parent__は「内部用親参照プロパティ」と定義
 parent経由で親を参照するとレシーバは常に子になる
 __parent__経由で親を参照するとレシーバは現在参照して
 いるオブジェクト(モジュール)。
 ルール上、__parent__の仕様は非推奨とした。
  __parent__はあくまで「内部」で使う目的で定義したため
  「__」をつけているのは通常のプロパティとは違う、という意味
  を含めている。
  mix.jsの作り上、特定のプロパティを非公開(private)にはできな
  いので、参照自体は可能。
実装の肝
実装の肝はどうやってレシーバを子に変換するか。
parentに継承したモジュールのメソッドをチェーンさせる
ときに、メソッドをfor-inでバラして、メソッドをフック
する。
   // これまではだいたいこんな感じ
   for (var prop in parent) {
       child[prop] = parent[prop];
   }

   // 今はこんな感じ
   for (var prop in parent) {
       child[prop] = hook(child, parent[prop]);
   }
実装の肝
    function hook(self, f) {
        return funciton() {
            f.apply(self, arguments);
        };
    }

applyを使ってレシーバを子供にしつつ、処理自体は委譲
してあげる
この機能によって得られる物
同じような画面がある場合、ほとんどの処理を委譲できる
ためコード量を大幅に削減可能
 処理が似ているけどちょっとだけ違う場合
  オーバーライドが可能なので加工処理などを行える
 処理が全く同じ場合
  サブモジュール(サブクラスに相当)にメソッド定義しなくてすむ=そ
  のままスーパーモジュール(スーパークラスに相当)を「自動的に」
  コールするため不要
この機能によって一般的なOOPと同じ利点が得られる
まとめ
mix.jsに内部親参照用プロパティ「__parent__」、外部親
参照用プロパティ「parent」を実装
 コードの重複を排除できるようになった
 オーバーライドを自然にできるようになった
今後は
 実装はほぼ終了
 mix.js用モジュールはつくるかもしれない
 Webアプリケーションに適用して評価する

Contenu connexe

En vedette

Web技術勉強会 第37回
Web技術勉強会 第37回Web技術勉強会 第37回
Web技術勉強会 第37回龍一 田中
 
Web技術勉強会 20110611
Web技術勉強会 20110611Web技術勉強会 20110611
Web技術勉強会 20110611龍一 田中
 
Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門龍一 田中
 
Web技術勉強会 20120728
Web技術勉強会 20120728Web技術勉強会 20120728
Web技術勉強会 20120728龍一 田中
 
Web技術勉強会 20111112
Web技術勉強会 20111112Web技術勉強会 20111112
Web技術勉強会 20111112龍一 田中
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609龍一 田中
 
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドするWeb技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする龍一 田中
 
WebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をするWebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をする龍一 田中
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホンYou_Kinjoh
 

En vedette (9)

Web技術勉強会 第37回
Web技術勉強会 第37回Web技術勉強会 第37回
Web技術勉強会 第37回
 
Web技術勉強会 20110611
Web技術勉強会 20110611Web技術勉強会 20110611
Web技術勉強会 20110611
 
Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門Web技術勉強会 20130525 - Google Cloud Messaging入門
Web技術勉強会 20130525 - Google Cloud Messaging入門
 
Web技術勉強会 20120728
Web技術勉強会 20120728Web技術勉強会 20120728
Web技術勉強会 20120728
 
Web技術勉強会 20111112
Web技術勉強会 20111112Web技術勉強会 20111112
Web技術勉強会 20111112
 
Web技術勉強会 20120609
Web技術勉強会 20120609Web技術勉強会 20120609
Web技術勉強会 20120609
 
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドするWeb技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
Web技術勉強会 20120114 - JenkinsでJava/PHP/Ruby/JavaScriptをビルドする
 
WebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をするWebSocketでリアルタイム処理をする
WebSocketでリアルタイム処理をする
 
WebSocketのキホン
WebSocketのキホンWebSocketのキホン
WebSocketのキホン
 

Similaire à Web技術勉強会 20110723

夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門Katsumi Honda
 
Web技術勉強会 20110528
Web技術勉強会 20110528Web技術勉強会 20110528
Web技術勉強会 20110528龍一 田中
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数Altech Takeno
 
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係JavaとRubyのすてきな関係
JavaとRubyのすてきな関係garden_tree
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門Yasuko Ohba
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4Shingo Inoue
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoTsuyoshi Yamamoto
 
名前空間.php @Nagoya.php 2013.01.19
名前空間.php @Nagoya.php 2013.01.19名前空間.php @Nagoya.php 2013.01.19
名前空間.php @Nagoya.php 2013.01.19Hitoshi Asano
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Yukiko Kato
 
Mavenへのはじめの一歩
Mavenへのはじめの一歩Mavenへのはじめの一歩
Mavenへのはじめの一歩祐理 大野
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsShogo Sensui
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyYasuharu Nakano
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまでMugen Fujii
 

Similaire à Web技術勉強会 20110723 (20)

夏だからJava再入門
夏だからJava再入門夏だからJava再入門
夏だからJava再入門
 
Web技術勉強会 20110528
Web技術勉強会 20110528Web技術勉強会 20110528
Web技術勉強会 20110528
 
Go guide for Java programmer
Go guide for Java programmerGo guide for Java programmer
Go guide for Java programmer
 
RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数RubyとJavaScriptに見る第一級関数
RubyとJavaScriptに見る第一級関数
 
JavaとRubyのすてきな関係
JavaとRubyのすてきな関係JavaとRubyのすてきな関係
JavaとRubyのすてきな関係
 
Ruby on Rails 入門
Ruby on Rails 入門Ruby on Rails 入門
Ruby on Rails 入門
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4そしてjsの基礎へ戻る#4
そしてjsの基礎へ戻る#4
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
 
名前空間.php @Nagoya.php 2013.01.19
名前空間.php @Nagoya.php 2013.01.19名前空間.php @Nagoya.php 2013.01.19
名前空間.php @Nagoya.php 2013.01.19
 
Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】Javaプログラミング入門【第8回】
Javaプログラミング入門【第8回】
 
Mavenへのはじめの一歩
Mavenへのはじめの一歩Mavenへのはじめの一歩
Mavenへのはじめの一歩
 
Functional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.jsFunctional JavaScript with Lo-Dash.js
Functional JavaScript with Lo-Dash.js
 
Java開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovyJava開発の強力な相棒として今すぐ使えるGroovy
Java開発の強力な相棒として今すぐ使えるGroovy
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
Cve 2013-0422
Cve 2013-0422Cve 2013-0422
Cve 2013-0422
 
第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで第4回勉強会 Groovyの文法からSpockまで
第4回勉強会 Groovyの文法からSpockまで
 
Ruby test double
Ruby test doubleRuby test double
Ruby test double
 
Rspec
RspecRspec
Rspec
 
Haikara
HaikaraHaikara
Haikara
 

Plus de 龍一 田中

Web技術勉強会 20110514
Web技術勉強会 20110514Web技術勉強会 20110514
Web技術勉強会 20110514龍一 田中
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925龍一 田中
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424龍一 田中
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回龍一 田中
 
Web技術勉強会 第34回
Web技術勉強会 第34回Web技術勉強会 第34回
Web技術勉強会 第34回龍一 田中
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回龍一 田中
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回龍一 田中
 
Web技術勉強会 第30回
Web技術勉強会 第30回Web技術勉強会 第30回
Web技術勉強会 第30回龍一 田中
 
Web技術勉強会 第29回
Web技術勉強会 第29回Web技術勉強会 第29回
Web技術勉強会 第29回龍一 田中
 
Web技術勉強会 第28回
Web技術勉強会 第28回Web技術勉強会 第28回
Web技術勉強会 第28回龍一 田中
 
Web技術勉強会 第26回
Web技術勉強会 第26回Web技術勉強会 第26回
Web技術勉強会 第26回龍一 田中
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回龍一 田中
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目龍一 田中
 
Web技術勉強会 第19回
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回龍一 田中
 
Web技術勉強会 第18回
Web技術勉強会 第18回Web技術勉強会 第18回
Web技術勉強会 第18回龍一 田中
 
Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目龍一 田中
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目龍一 田中
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)龍一 田中
 
Web技術勉強会9回目2(Slideshare用)
Web技術勉強会9回目2(Slideshare用)Web技術勉強会9回目2(Slideshare用)
Web技術勉強会9回目2(Slideshare用)龍一 田中
 
Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)龍一 田中
 

Plus de 龍一 田中 (20)

Web技術勉強会 20110514
Web技術勉強会 20110514Web技術勉強会 20110514
Web技術勉強会 20110514
 
Web技術勉強会 20100925
Web技術勉強会 20100925Web技術勉強会 20100925
Web技術勉強会 20100925
 
Web技術勉強会 20100424
Web技術勉強会 20100424Web技術勉強会 20100424
Web技術勉強会 20100424
 
Web技術勉強会 第38回
Web技術勉強会 第38回Web技術勉強会 第38回
Web技術勉強会 第38回
 
Web技術勉強会 第34回
Web技術勉強会 第34回Web技術勉強会 第34回
Web技術勉強会 第34回
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Web技術勉強会 第31回
Web技術勉強会 第31回Web技術勉強会 第31回
Web技術勉強会 第31回
 
Web技術勉強会 第30回
Web技術勉強会 第30回Web技術勉強会 第30回
Web技術勉強会 第30回
 
Web技術勉強会 第29回
Web技術勉強会 第29回Web技術勉強会 第29回
Web技術勉強会 第29回
 
Web技術勉強会 第28回
Web技術勉強会 第28回Web技術勉強会 第28回
Web技術勉強会 第28回
 
Web技術勉強会 第26回
Web技術勉強会 第26回Web技術勉強会 第26回
Web技術勉強会 第26回
 
Web技術勉強会 第25回
Web技術勉強会 第25回Web技術勉強会 第25回
Web技術勉強会 第25回
 
Web技術勉強会23回目
Web技術勉強会23回目Web技術勉強会23回目
Web技術勉強会23回目
 
Web技術勉強会 第19回
Web技術勉強会 第19回Web技術勉強会 第19回
Web技術勉強会 第19回
 
Web技術勉強会 第18回
Web技術勉強会 第18回Web技術勉強会 第18回
Web技術勉強会 第18回
 
Web技術勉強会12回目
Web技術勉強会12回目Web技術勉強会12回目
Web技術勉強会12回目
 
Web技術勉強会11回目
Web技術勉強会11回目Web技術勉強会11回目
Web技術勉強会11回目
 
Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)Web技術勉強会10回目(Slideshare用)
Web技術勉強会10回目(Slideshare用)
 
Web技術勉強会9回目2(Slideshare用)
Web技術勉強会9回目2(Slideshare用)Web技術勉強会9回目2(Slideshare用)
Web技術勉強会9回目2(Slideshare用)
 
Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)Web技術勉強会9回目(Slideshare用)
Web技術勉強会9回目(Slideshare用)
 

Dernier

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~arts yokohama
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-LoopへTetsuya Nihonmatsu
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見Shumpei Kishi
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦Sadao Tokuyama
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfMatsushita Laboratory
 

Dernier (12)

2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
2024 02 Nihon-Tanken ~Towards a More Inclusive Japan~
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
「今からでも間に合う」GPTsによる 活用LT会 - 人とAIが協調するHumani-in-the-Loopへ
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?What is the world where you can make your own semiconductors?
What is the world where you can make your own semiconductors?
 

Web技術勉強会 20110723