SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Apache Tapestry
-- Open-source framework for creating dynamic,
      robust, highly scalable web applications --
自己紹介
名前
   片山 暁雄
ID
   id:c9katayama
    c95029@gmail.com
所属
  株式会社キャピタルアセットプランニング
   http://www.cap-net.co.jp
  チームT2Framework
   http://code.google.com/p/t-2/
Agenda

Tapestryとは
基本的な仕組み
Pageとtml
Component・ Mixin
IoC ・Module
その他機能
利点欠点
まとめ
Tapestry




Tapestryとは
Tapestryとは

Apach傘下で開発中のWebフレームワーク
 トッププロジェクト
Servlet・JSPは使用しない
イベントドリブン
HTMLテンプレート・コンポーネント
JSFに似てる(?)
IoCコンテナ内臓
Tapestryとは

2001年ごろに開発開始
現在バージョン5
 後方互換性なし
JDK5以上
Apache2.0 License
Tapestry




基本的な仕組み
基本的な仕組み
                     Tapestry                        USER

                           Registry                  Service

                            Module                   Module

                                            URL

                          HttpServlet             Page
Browser   Tapestry      RequestHandler
           Filter
                          Filter                   .tml
                            Filter
                                Filter
                                                  Component
                                   Filter
パッケージ構成

    USERクラスの登録
      ルートパッケージをweb.xmlで指定
      他の設定ファイルなし
<context-param>
    param-name>tapestry.app-package</param-name>
   <param-value>org.apache.tapestry5.tutorial</param-value>
</context-param>
パッケージ構成
ルートパッケージ以下
 pages
 services
 components
 mixins
 base
  特別なフォルダ
  このフォルダからの
  パッケージ階層も重要
Tapestry




Pageとtml
Pageとtml

Pageクラス
 画面の情報を保持したり、画面からのアクショ
ンを受け取ったりするクラス
 URLと1対1でひも付け
tml(TapestryMarkupLanguage)ファイル
 HTMLテンプレートファイル
 Pageと1対1でひも付け

  URL = Page = tml
Pageとtml
 Pageクラス
public class GameStart{
  @Property
   private int guess;
  @Persist
  private int target;
  @InjectPage
  private GameOver gameOver;
  void initialized(int target){
    this.target = target;
  }
  @OnEvent(component=“ansLink”)
  Object handleAnsLink(int guess) {
    return target==guss ? gameOver. : null;
  }
}
Pageとtml

      tml
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
  <head>
     <title>Guess A Number</title>
  </head>
  <body>
     <p>Make a guess between one and ten:</p>
     <p>${message}</p>
     <t:loop source="1..10" value="guess" xml:space="preserve">
        <t:actionlink t:id=“ansLink" context="guess">${guess}</t:actionlink>
     </t:loop>
  </body>
</html>
Pageとtml

                      レンダリング時
Page(hoge/Foo.java)   にPageから値を   .tml(hoge/Foo.tml)
                          取得
@Property
String message                         ${message}

@OnEvent(
  component=“ansLink”)            <t:actionlink
Object handleAnsLiks(){}                  t:id=“ansLink“>
                           画面アクション時に
                           Pageのメソッドを
                             コールバック
Pageとtml

Pageクラス
 POJO(クラスアノテーションもなし)
 ${app-package}.pagesパッケージに格納
   自動登録
  URLと1対1のマッピング
例えば${rootpkg}/pages/hoge/Foo.javaの場合、
http://host/context_root/hoge/foo
とマッピングされる
Pageとtml

フィールドアノテーション
@Property
  アクセサを自動生成
  宣言しないで自分でアクセサをつけてもOK
@Persist
  他の画面に行っても持ち越す値に付与
  セッションに値が入る
@Retain
  リクエスト間で値を保持したい場合に付与
Pageとtml
@Inject
  コンテナからDIしてほしい場合に付与
@InjectService
  名前指定でサービスをDIしてほしい場合に付与
@InjectPage
  次の画面のインスタンスが欲しい場合に宣言
  イベントハンドラーから返すと、その画面に遷移
Pageとtml

メソッドアノテーション
@OnEvent
  「value=EventConstantsの定数」で、各イベント発
 生時のハンドル可能
  component=コンポーネントidで、指定のコンポーネ
 ントのアクションをハンドル可能

  ACTION    ACTIVATE    PASSIVATE
  PREPARE_FOR_RENDER PREPARE_FOR_SUBMIT
  PREPARE    SUBMIT     VALIDATE_FORM
  SUCCESS    FAILURE    SELECTED
  PARSE_CLIENT    TO_CLIENT
  VALIDATE    REMOVE_ROW      ADD_ROW
Pageとtml

@OnEventアノテーションは、
 onアクション
 onアクションFromコンポーネントid
でも代用可能
  @OnEvent(
          value=EventConstanst.ACTION,
          component=“ansLink”)
  public Object hoge(){}

  public Object onActionFromAnsLink (){
  }
Pageとtml

tml
 XHTML形式
 ドキュメントルート以下、もしくは
      ${pkgbase}.pagesパッケージに格納
 独自タグ、もしくはHTMLの要素で、コンポーネ
ントを記述
  <a t:type="pagelink" t:page="address/create">

  <t:pagelink page=“address/create”>

  いずれも同じ
Pageとtml
タグ部分はレンダリング時にHTMLに置き換わる
${value}を使って、Pageクラスから値を取得
リンク、フォームなどのクリックで発生する
リクエストを、Pageに通知
Tapestry




Component・Mixin
コンポーネント

Component
 Javaクラス、tmlファイル、リソース
(js,image,CSS)をひとまとめにしたもの。
 ${tapestry.app-package}.componentsパッケー
ジに格納
コンポーネント

作り方
  Javaクラスを作成
  必要ならtmlを作成
  画像・JavaScript・CSSなどが必要な場合は
Javaクラスに宣言
実際のコード
コンポーネント

 使い方
  tml内でコンポーネントを宣言

<t:hoge.foo.Component
          id=“mycmp” bar=“XXX” />
コンポーネント
コンポーネントツリー
  Pageをルートとしたツリー
  ツリーに従いレンダリングやイベント伝播を行う

                     Page



           layout           Page



pagelink            form
コンポーネント

組み込みComponent
 Form,Label,TextField
 PageLink,ActionLink,LinkSubmit
 If,Unless
 Grid
 BeanDisplay,BeanEditor
コンポーネント

Mixin
 既存のComponentに対して、機能を追加する
ためのもの
 Componentの各処理に割り込む
 作り方はComponentと一緒
 ただしtmlは使用不可
コンポーネント

 使い方
   コンポーネント宣言に使用するmixinを宣言

<t:TextField
    t:mixins=“autocomplete" id=“mytxt” />
コンポーネント

組み込みMixin
 Autocomplete
 RenderDisabled
 RenderInformals
Tapestry




IoC・ Module
IoC・Module

IoC
  Tapestry組み込みのIoCコンテナ
  tapestry5-ioc.jarで提供
      本体はtapestry5-core.jar
                                  bind
 Registry         ServiceBinder          Module
                                         Service1
Service1
 Service2
                                         Service2
IoC・Module

Registry
  Serviceの集合体
  インターフェースとその実装クラス、及び設定
  (contribute、decorate)の情報を保持
  コアコンポーネント・ユーザーコンポーネント
  すべてをこのRegistryから取り出す
  @Inject,@InjectServiceのついたフィールドに
  インジェクション
IoC・Module

Module
 Serviceと設定をRegistryに登録する役割
 ${app.package}/services/アプリ名Module.class
 がTapestryFilter初期化時に自動的に呼ばれる
 すべてstaticメソッド
   bind()で、サービスをbind
   contributeサービス名()で、そのサービスの設定
   decorateサービス名()で、サービスデコレーターの設
   定
Tapestry




その他機能
その他機能

オートリロード機能
 pages、components、mixins、baseパッケージ
 内のクラスやリソースをリロード
Ajax対応
 zone機能(指定の<div>の中身だけを書き換え)
詳細なエラーページ
Tapestry




利点・欠点
利点

HTMLテンプレートが利用できる
URLとクラス・テンプレートの位置関係
が明確
コンポーネント作成が容易・再利用が可
能
IoCコンテナ内臓 カスタマイズが柔軟
オートリロード機能でAPサーバ再起動な
しの開発が可能
欠点

学習コストが高い
 機能が多いので、すべて知るに時間がかかる
ソースが追いくい
 匿名クラスやエンハンスされたクラスが多い
ライフサイクルがわかりにくい
Seasar2,Guiceは使用不可
 今出ているのはHiveMindとSpringのアダプタ
 だけ
ORマッパー・トランザクションとの連携
 Hibernate連携以外は?
Tapestry




まとめ
まとめ

Tapestryは、イベントドリブン・コンポー
ネント指向・HTMLテンプレート
IoCコンテナ・リロード機能つき
結構すごいが学習コストが高め
とりあえず 抱かれてみよう Tapestry
まとめ

参考文献
 Apache Tapestry
   http://tapestry.apache.org/
 有志の日本語訳
   http://kuramo.ch/tapestry5/ja/
まとめ




ご静聴ありがとうございました

Weitere ähnliche Inhalte

Andere mochten auch

Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3redthistle
 
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Marcelo Rodrigues
 
Tapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting EaseTapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting EaseHoward Lewis Ship
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング勲 國府田
 
REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')Sabin Buraga
 

Andere mochten auch (6)

Apache Tapestry
Apache TapestryApache Tapestry
Apache Tapestry
 
Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3Tapestryin talentsanjose1977july3
Tapestryin talentsanjose1977july3
 
Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5Rapid Application Development com Tapestry 5
Rapid Application Development com Tapestry 5
 
Tapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting EaseTapestry 5: Java Power, Scripting Ease
Tapestry 5: Java Power, Scripting Ease
 
中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング中小規模サービスのApacheチューニング
中小規模サービスのApacheチューニング
 
REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')REST and some Python (or 'Python "sinners" must REST')
REST and some Python (or 'Python "sinners" must REST')
 

Ähnlich wie Apache Tapestry

Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Damper Matsu
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へDevelopers Summit
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applicationstotty jp
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Hajime Fujimoto
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)Teruaki Kinoshita
 
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8Akira Onishi
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revShotaro Suzuki
 
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチクラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチTomoharu ASAMI
 
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会Jumpei Ogawa
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略takezoe
 
HTTPとサーブレット
HTTPとサーブレットHTTPとサーブレット
HTTPとサーブレットTakashi Makino
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 miso- soup3
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」Kohsuke Kawaguchi
 

Ähnlich wie Apache Tapestry (20)

Android Architecture Componentsの新機能
Android Architecture Componentsの新機能Android Architecture Componentsの新機能
Android Architecture Componentsの新機能
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
Vue入門
Vue入門Vue入門
Vue入門
 
Html5 Web Applications
Html5  Web ApplicationsHtml5  Web Applications
Html5 Web Applications
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
20081003
2008100320081003
20081003
 
Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本Movable TypeのWebアプリケーションフレームワークの基本
Movable TypeのWebアプリケーションフレームワークの基本
 
Using the Fragments(Android)
Using the Fragments(Android)Using the Fragments(Android)
Using the Fragments(Android)
 
CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8CEDEC 2013 Unity on Windows 8
CEDEC 2013 Unity on Windows 8
 
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 revWindows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
Windows ストア lob アプリ開発のためのガイダンスとフレームワークのご紹介 rev
 
クラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチクラウド・アプリケーション・モデリングへのアプローチ
クラウド・アプリケーション・モデリングへのアプローチ
 
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
QML を用いた YouTube クライアントの作成 - 関東 Qt 勉強会
 
Dynamic Data
Dynamic DataDynamic Data
Dynamic Data
 
Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略Seasarプロジェクト徹底攻略
Seasarプロジェクト徹底攻略
 
SimpleModeler
SimpleModelerSimpleModeler
SimpleModeler
 
Ajax basic
Ajax basicAjax basic
Ajax basic
 
20091207
2009120720091207
20091207
 
HTTPとサーブレット
HTTPとサーブレットHTTPとサーブレット
HTTPとサーブレット
 
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825 Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
Hokuriku.NET ASP.NET MVC入門 「実践」 20120825
 
ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」ホット・トピック・セミナー「Metro」
ホット・トピック・セミナー「Metro」
 

Mehr von Akio Katayama

Awsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-publicAwsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-publicAkio Katayama
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -Akio Katayama
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireAkio Katayama
 

Mehr von Akio Katayama (7)

Awsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-publicAwsではじめるgluster fs 20120726-public
Awsではじめるgluster fs 20120726-public
 
AWS SDK for Java
AWS SDK for JavaAWS SDK for Java
AWS SDK for Java
 
Amazon Web Services
Amazon Web ServicesAmazon Web Services
Amazon Web Services
 
Amazon EC2
Amazon EC2Amazon EC2
Amazon EC2
 
FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -FxUG in Toyama - ASphalt2 container -
FxUG in Toyama - ASphalt2 container -
 
SDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 WhireSDLoader SeasarCon 2009 Whire
SDLoader SeasarCon 2009 Whire
 
SpringMVC
SpringMVCSpringMVC
SpringMVC
 

Kürzlich hochgeladen

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Kürzlich hochgeladen (10)

TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

Apache Tapestry