SlideShare uma empresa Scribd logo
1 de 105
Baixar para ler offline
2013.05.24
Takashi Ohida
LARAVEL4
HAPPY HACKING
13年5月29日水曜日
目次
自己紹介
PHP / フレームワーク歴
Laravel4でつくってみた
Laravel4のすごいところ紹介
13年5月29日水曜日
自己紹介
13年5月29日水曜日
自己紹介
名前:大日田 貴司(オオヒダ タカシ)
所属:都内ウェブ系企業
職業:開発、企画
コード書いてません(^_^;)
サービス設計とかUI/UXとか
13年5月29日水曜日
PHP歴
PHP歴 8年くらい
Python / Rubyとかなんとなくわかる
GAE / Railsとか少し触ったことある
色々あるけどPHPはかわいい
13年5月29日水曜日
フレームワーク歴
僕がPHPをはじめた頃
外の会社からできるプログラマが手伝いに来て
言った
「まずフレームワークをつくりましょう」
13年5月29日水曜日
フレームワーク歴
「フレームワーク?なにそれ?おいしいの?」
13年5月29日水曜日
フレームワーク歴
当時はまだRailsなど存在せず
PHP界隈には、JavaのStrutsに影響をうけたフレー
ムワークが出てきた頃かもという時代
13年5月29日水曜日
フレームワーク歴
フレームワークとは何かがんばって調べた
MVC、アーキテクチャ設計、デザインパターン、
etc ...
13年5月29日水曜日
フレームワーク歴
概念のすべてを理解しきれなかったけど
「フレームワークってなんだかかっこいい!」
13年5月29日水曜日
フレームワーク歴
二人でフレームワークをつくった
今思えばとても原始的なものだったけど
フレームワークをつくるのはすごく楽しかった
し、勉強になった
13年5月29日水曜日
フレームワーク歴
そんなこんなでフレームワークに関心を持つよう
になった
13年5月29日水曜日
フレームワーク歴
Railsが出た頃さわってみて、超すごい!と興奮した
PHPでいいのないのか
なかった
つくった
Railsのソースを読んでPHPでそれっぽく実装
13年5月29日水曜日
フレームワーク歴
自作フレームワーカーだったので
CakePHPとか
CodeIgniter / FuelPHPとか
Symfonyとか
ちゃんと使ったことない
自作も大変なのでイイのに乗り換えたい願望
13年5月29日水曜日
フレームワーク歴
PHP歴 ≒ フレームワーク歴
自作フレームワーク()
メジャーどころはなんとなく知ってる
けどちゃんと使ったことは無い
まとめ
13年5月29日水曜日
LARAVEL3
13年5月29日水曜日
LARAVEL3
去年のちょうど今頃、HackerNewsでみかけた
https://news.ycombinator.com/item?id=4029427
13年5月29日水曜日
LARAVEL3
シンプルでクリーンな設計思想
軽量だがひと通りの機能は っている
拡張性(bundles)もある
が、
13年5月29日水曜日
LARAVEL3
Staticメソッド多用
新しいフレームワークって色々不安
命名規則が好みではない
function action_index()とか
13年5月29日水曜日
LARAVEL3
なんか惜しいというか
そんなにビビビッとこなかった
名前はかわいいのだけれど・・・
13年5月29日水曜日
LARAVEL3
(́・ω・`)
13年5月29日水曜日
LARAVEL3
そして、ときは流れ…
13年5月29日水曜日
LARAVEL4
13年5月29日水曜日
LARAVEL4
最近、ふと思った
ブログでも書こう
どうせなら自分でつくろう
全然プログラミングしてないし
リハビリもかねて
13年5月29日水曜日
LARAVEL4
フレームワーク何にしよう?
13年5月29日水曜日
LARAVEL4
軽量系のフレームワークをいくつか試した
Slim
Silex
Phalcon(micro)
FuelPHP
...
13年5月29日水曜日
LARAVEL4
Laravel4のベータが出ていた
ので試した
13年5月29日水曜日
LARAVEL4
3の思い出
(使ってないけど)
13年5月29日水曜日
LARAVEL4
4をみてみたらびっくり
3でイケてなかった点が
悉く「解消」していた
13年5月29日水曜日
LARAVEL4
もちろん良かった点はそのままに
13年5月29日水曜日
LARAVEL4
「ららべる子?」
「顔はかわいいんだけど」
「ちょっとおてんばな性格がなぁ…」
13年5月29日水曜日
LARAVEL4
そんなららべる子と1年ぶりに偶然再開したら
13年5月29日水曜日
LARAVEL4
かわいらしさはそのままに
とても品のよい子に成長していた ...!
13年5月29日水曜日
HAPPY HACKING
with Laravel4
13年5月29日水曜日
HAPPY HACKING
楽しいって何か
書いてて楽しい、嬉しい
ラクに書ける、シンプルで書きやすい
わかりやすい、悩まない
思い通りに操れる
13年5月29日水曜日
HAPPY HACKING
楽しいって何か
プログラマーズハイ・高揚感
スーパーハカーな気分
マジカルな感じ・支配感
ゆけおれのコードよ
13年5月29日水曜日
HAPPY HACKING
Laravelにあるもの
しっかりした枠組み
プログラミングを楽しくしてくれる仕組み
プログラミングのレベルを
底上げしてくれるような思想
13年5月29日水曜日
HAPPY HACKING
IoC Containerによるパワフルで賢い依存性解決
シンプルでクリーンな設計思想・記述
軽量で追いやすいコアコード
実績のある基盤(symfony component)
柔軟性、拡張性
13年5月29日水曜日
HAPPY HACKING
Staticメソッド多用
IoC Container x Facadeにより解決しました
新しいフレームワークって色々不安
信頼と実績のSymfony Componentが基盤になりました
命名規則が好みではない
好みな感じ(PSR-1準拠)になりました
Laravel3のとき気になってたあれらはどうなったのか
13年5月29日水曜日
HAPPY HACKING
もはやハッピーな感じしかしない
13年5月29日水曜日
HAPPY HACKING
ということで
Laravel4でブログをつくってみました
13年5月29日水曜日
POCHIKA
ポーチカ
13年5月29日水曜日
POCHIKA
Laravel4でつくった軽量ブログエンジン
データベースは使わず、markdownファイルを変換
jekyll風味(けどstatic file generatorではない)
php的に動的に動作する
キャッシュとかプラグインとか
13年5月29日水曜日
POCHIKA
使ってる機能
Routing
Config
Controller
Error & Logging
Cache
Events
IoC Container
View / Templates / Blade
Unit Testing
Artisan CLI
まだ使ってない機能
Forms & HTML
Database
Eloquent ORM
Localization
Queues
Mail
Security
Session
Validation
13年5月29日水曜日
http://github.com/ohida/pochika
POCHIKA
13年5月29日水曜日
LARAVEL4
13年5月29日水曜日
LARAVEL4
IoC Container / Facade
Illuminate / composer / symfony components
psr-0(autoload) / psr-1(coding standard)
その他色々パワーアップ
3からの変更点
13年5月29日水曜日
LARAVEL4
IoC Container
... どのように依存性を解決するか
Facade
... シンプルで強力なインターフェイス
おまけ:UnitTest
... IoC ContainerとFacadeが必要な理由
13年5月29日水曜日
IOC CONTAINER
13年5月29日水曜日
IOC CONTAINER
IoC ... Inversion of Control
制御の逆転
13年5月29日水曜日
IOC CONTAINER
“The IoC container is at the
heart of the entire application
and all dependencies are
resolved through that.”
Taylor Otwellさん
IoC Containerはアプリケーション全
体における心臓部で、すべての依存
性を解決します。
13年5月29日水曜日
IOC CONTAINER
The Laravel inversion of control container is a powerful tool for managing class
dependencies. Dependency injection is a method of removing hard-coded class
dependencies. Instead, the dependencies are injected at run-time, allowing for
greater flexibility as dependency implementations may be swapped easily.
http://four.laravel.com/docs/ioc
LaravelのIoCコンテナはクラス依存性解決のためのパワフルなツールです。
DI(依存性の注入)はコードによるクラス解決を取り除き、代わりにアプリ
ケーションの実行時に依存性を注入します。このことにより依存の実装を容
易に入れ替えられるという柔軟性を得ることができます。
13年5月29日水曜日
IOC CONTAINER
Basic Usage
13年5月29日水曜日
IOC CONTAINER
$foo = new Foo;
13年5月29日水曜日
IOC CONTAINER
$foo = App::make('Foo');
13年5月29日水曜日
IOC CONTAINER
App::bind('foo', function() {
	 return new Foo;
});
$foo = App::make('foo');
13年5月29日水曜日
IOC CONTAINER
$view = new SmartyView;
"
App::bind('view', function() {
$smarty = new SmartyView;
$smarty->..
return $smarty;
});
$view = App::make('view');
13年5月29日水曜日
IOC CONTAINER
$view = new TwigView;
"
App::bind('view', function() {
return new TwigView([
..
]);
});
$view = App::make('view');
13年5月29日水曜日
IOC CONTAINER
クラスを「直接」呼ぶのではなく
IoC Containerを通して「間接的」に呼び出す
13年5月29日水曜日
IOC CONTAINER
クラスが必要になった時
IoC Containerさんがよしなにつくってくれる
13年5月29日水曜日
IOC CONTAINER
僕:IoCさん、僕がfeedくれっていったらAtomFeedのこと
ですからよろしくですよ
IoCさん:(o e o)アイヨ
∼そしてその時がきた∼
僕:「feedくれ!」
IoCさん:(o e o)つ アイヨ ∼【AtomFeed】
13年5月29日水曜日
IOC CONTAINER
登録
App::bind('feed', function() {
	

 return new AtomFeed;
});
使う
$feed = App::make('feed');
echo $feed->generate(); //render xml/atom
13年5月29日水曜日
IOC CONTAINER
登録
App::bind('feed', function() {
	

 return new RssFeed;
});
使う
$feed = App::make('feed');
echo $feed->generate(); //render xml/rss
13年5月29日水曜日
IOC CONTAINER
singletonもIoCが解決
App::singleton('foo', function()
{
return new FooBar;
});
13年5月29日水曜日
IOC CONTAINER
既にあるインスタンスを登録することも
$foo = new Foo;
App::instance('foo', $foo);
13年5月29日水曜日
IOC CONTAINER
Automatic Resolution
The IoC container is powerful enough to resolve
classes without any configuration at all in many
scenarios.
IoCコンテナは強力なので、多くの場合においてクラス解
決のために何かをする必要はありません。
13年5月29日水曜日
IOC CONTAINER
class FooBar {
public function __construct(Baz $baz)
{
$this->baz = $baz;
}
}
$foobar = new FooBar(new Baz);
13年5月29日水曜日
IOC CONTAINER
class FooBar {
public function __construct(Baz $baz)
{
$this->baz = $baz;
}
}
$foobar = App::make(‘FooBar’);
13年5月29日水曜日
IOC CONTAINER
class FooBar {
public function __construct(PiyoInterface $baz)
{
$this->baz = $baz;
}
}
IoCさん (o e o)Interfaceかー 解決できねー...orz
なんていうことはなく
13年5月29日水曜日
IOC CONTAINER
App::bind(‘PiyoInterface’, Poyo);
# PiyoInterfaceが呼ばれたらPoyoのことなんだからね
13年5月29日水曜日
IOC CONTAINER
class FooBar {
public function __construct(PiyoInterface $baz)
{
$this->baz = $baz;
}
}
App::bind(‘PiyoInterface’, Poyo);
App::make(‘FooBar’);
(o e o)/
13年5月29日水曜日
IOC CONTAINER
class Eva {
public function __construct(PilotInterface $pilot)
{
$this->pilot = $pilot;
}
}
App::bind(‘PilotInterface’, ‘Ayanami’)
$eva = App::make(‘Eva’);
# get_class($eva->pilot) == ‘Ayanami’
13年5月29日水曜日
Practical Usage
実用例
IOC CONTAINER
13年5月29日水曜日
IOC CONTAINER
class OrderController extends BaseController {
public function __construct(OrderRepository $orders)
{
$this->orders = $orders;
}
public function getIndex()
{
$all = $this->orders->all();
return View::make('orders', compact('all'));
}
}
13年5月29日水曜日
IOC CONTAINER
$orders = new OrderRepository();
new OrderController($orders);
App::bind(‘OrderRepository’, ‘MockOrders’)
App::make(‘OrderControler’)
普通に書くとデータベースへの接続が発生
IoCを使うとスタブで置き換えられる
13年5月29日水曜日
IOC CONTAINER
In this example, the OrderRepository class will automatically be injected
into the controller. This means that when unit testing a "mock"
OrderRepository may be bound into the container and injected into the
controller, allowing for painless stubbing of database layer interaction.
この例では、OrderRepositoryクラスは自動的にコントローラーに注入され
ます。このことは、ユニットテストの際にモックのOrderRepositoryクラスを
コントローラに注入することができ、データベース操作部分のスタブ化が容
易になることを意味しています。
13年5月29日水曜日
IOC CONTAINER
まとめ
IoCとは、Inversion Of Control(制御の逆転)
よしなにクラスをつくってくれる
よしなに依存関係を解決してくれる
テストもしやすくなる
13年5月29日水曜日
FACADE
13年5月29日水曜日
Facade(ファサード)とは
「建物の正面」を意味する。
(wikipediaより)
FACADE
13年5月29日水曜日
FACADE
なんの正面か = クラス
13年5月29日水曜日
FACADE
Page::find('about');
13年5月29日水曜日
FACADE
Behind the scene
13年5月29日水曜日
FACADE
class Page {
private static $pages;
public static function find($name)
{
return self::$pages[$name];
}
}
# なるほどstaticね。Pageクラスの中身はこんな感じかな
Page::find('about');
13年5月29日水曜日
FACADE
Page::find('about');
class Page {
private $pages;
public function find($name)
{
return $this->pages[$name];
}
}
# ちがうよ。Pageクラスはstaticメソッド持ってないよ
13年5月29日水曜日
FACADE
Page::find('about');
Pageクラスではなく、実は
Facadeが呼ばれている
13年5月29日水曜日
FACADE
Page::method()って書いたら、
普通はPageクラスがよばれる
そして ”そのメソッドはstaticに呼べません”
というエラーが出る
Facadeを介すには?
13年5月29日水曜日
FACADE
Page::method()って書いたら、
Facadeの方よんでねとLaravelに教える
app/config/app.phpに書く
aliases = [
‘Page’ => ‘FacadesPage’,
];
13年5月29日水曜日
FACADE
<?php namespace PochikaFacades;
use IlluminateSupportFacadesFacade;
class Page extends Facade {
/**
* Get the registered name of the component.
*
* @return string
*/
protected static function getFacadeAccessor()
{
return 'page'; // IoC Containerが解決できる名前
}
}
13年5月29日水曜日
FACADE
Page::find(‘about’);
"
Pageファサード
"
App::resolve(‘page’)->find(‘about’);
13年5月29日水曜日
FACADE
$this->input->get(‘hoge’);
"
Input::get(‘hoge‘);
13年5月29日水曜日
FACADE
$view = new View;
$view->render(‘index.html’);
"
View::make(‘index.html’);
13年5月29日水曜日
FACADE
どこからでも単独で呼び出せる
$thisって誰?を意識しない
誰でもいいしいなくてもいい
疎結合
依存性、コンテキストの排除
統一されたクリーンなインターフェイス
$this->hogeだったりnew Fuga()だったりしない
13年5月29日水曜日
FACADE
まとめ
Facadeを利用することで、シンプルで強力な
インターフェイスでクラスを扱うことができる
13年5月29日水曜日
FACADE
Laravel4はIoC ContainerとFacadeがキモ
Laravel4使うなら最初に理解するべきポイント
13年5月29日水曜日
FACADE
Router
Router::get(‘/’,‘IndexController@index’);
Event
Event::fire(‘post.converted’);
View
View::make(‘index.html’, $payload);
13年5月29日水曜日
UNITTEST
13年5月29日水曜日
UNITTEST
テストしやすい/しにくいってなにか
Staticメソッドでテストが難しいのはなぜか
13年5月29日水曜日
UNITTEST
UnitTestではテスト毎に初期化されることが前提
前のテストの影響をうけるとまともなテストにな
らない
13年5月29日水曜日
UNITTEST
staticオブジェクトにはconstructorとdestructorが
ない
初期化処理と終了処理が行われない
始まりと終わりがない
ひとつのテストによって生じた状態をクリアで
きない
13年5月29日水曜日
UNITTEST
function testEach()
{
PostRepository::each(function($post) {
$post->title .= ‘:hoge’;
});
$this->assertHoge(..);
}
function testHoge()
{
$posts = PostRepository::load();
↑ testEachの処理を経た状態になっている
..
}
class PostRepository {
private static $posts = [];
public static function load()
{
return self::$posts;
}
public static function each ($func)
{
array_walk(
self::$posts, $func
);
}
}
テストクラス
13年5月29日水曜日
まとめ
13年5月29日水曜日
まとめ
Laravel4は3のときのよさ(クリーンさとか)はその
ままに
IoC Containerとかcomposerで中身がおとなになった
テストもしやすい(規模に関わらずテストは必要)
PHPもここまで来たかくらいイケてる感じで書ける
13年5月29日水曜日
LARAVEL4たのしい☆彡
のでみんなつかおう
(自分に合うかは見極めよう)
13年5月29日水曜日
13年5月29日水曜日
http://solvalou.net/
http://twitter.com/ohida
http://www.facebook.com/takashi.ohida
http://github.com/ohida
Takashi Ohida
13年5月29日水曜日

Mais conteúdo relacionado

Semelhante a Laravel4 Happy Hacking

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13Seiei Higa
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13hanachin
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuMasafumi Ohta
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionSatomi Tsujita
 
プログラミングの基礎振り返りスライド1
プログラミングの基礎振り返りスライド1プログラミングの基礎振り返りスライド1
プログラミングの基礎振り返りスライド1sunotora
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習siranon *
 

Semelhante a Laravel4 Happy Hacking (8)

Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
Ojag naha vol13
Ojag naha vol13Ojag naha vol13
Ojag naha vol13
 
はかどるChefの小ネタ集
はかどるChefの小ネタ集はかどるChefの小ネタ集
はかどるChefの小ネタ集
 
Getting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsuGetting started raspberry pi osc hamamatsu
Getting started raspberry pi osc hamamatsu
 
WCO2012「PHP教室」
WCO2012「PHP教室」WCO2012「PHP教室」
WCO2012「PHP教室」
 
Rails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2editionRails初心者レッスン lesson5 2edition
Rails初心者レッスン lesson5 2edition
 
プログラミングの基礎振り返りスライド1
プログラミングの基礎振り返りスライド1プログラミングの基礎振り返りスライド1
プログラミングの基礎振り返りスライド1
 
プログラミング学習のための学習
プログラミング学習のための学習プログラミング学習のための学習
プログラミング学習のための学習
 

Último

20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdfAyachika Kitazaki
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)ssuser539845
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法ssuser370dd7
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor arts yokohama
 
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
 
「今からでも間に合う」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
 
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
 

Último (12)

2024 03 CTEA
2024 03 CTEA2024 03 CTEA
2024 03 CTEA
 
20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf20240326_IoTLT_vol109_kitazaki_v1___.pdf
20240326_IoTLT_vol109_kitazaki_v1___.pdf
 
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
IFIP IP3での資格制度を対象とする国際認定(IPSJ86全国大会シンポジウム)
 
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
情報処理学会86回全国大会_Generic OAMをDeep Learning技術によって実現するための課題と解決方法
 
2024 01 Virtual_Counselor
2024 01 Virtual_Counselor 2024 01 Virtual_Counselor
2024 01 Virtual_Counselor
 
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
ARスタートアップOnePlanetの Apple Vision Proへの情熱と挑戦
 
2024 04 minnanoito
2024 04 minnanoito2024 04 minnanoito
2024 04 minnanoito
 
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdfTaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
TaketoFujikawa_台本中の動作表現に基づくアニメーション原画システムの提案_SIGEC71.pdf
 
「今からでも間に合う」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へ
 
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?
 
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
持続可能なDrupal Meetupのコツ - Drupal Meetup Tokyoの知見
 
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~
 

Laravel4 Happy Hacking