Mirror, mirror on the wall (Nomad PHP US 2015)

James Titcumb
James TitcumbFreelance at Roave, LLC
Mirror, Mirror on the Wall
James Titcumb
NomadPHP December 2015
James Titcumb
www.jamestitcumb.com
www.roave.com
www.phphants.co.uk
www.phpsouthcoast.co.uk
@asgrim
Who is this guy?
Reflection
Mirror, mirror on the wall (Nomad PHP US 2015)
© 1937 Disney’s Snow White - disneyscreencaps.com
Mirror, mirror on the wall (Nomad PHP US 2015)
● Structure
● Metadata
● Values
● Type introspection
● Modification
Reflection
How does it work?
GET_REFLECTION_OBJECT_PTR(ce);
lc_name = zend_str_tolower_dup(name, name_len);
if ((ce == zend_ce_closure && (name_len == sizeof(ZEND_INVOKE_FUNC_NAME)-1)
&& memcmp(lc_name, ZEND_INVOKE_FUNC_NAME, sizeof(ZEND_INVOKE_FUNC_NAME)-1) == 0)
|| zend_hash_str_exists(&ce->function_table, lc_name, name_len)) {
efree(lc_name);
RETURN_TRUE;
} else {
efree(lc_name);
RETURN_FALSE;
}
Okay. What now?
github.com/ /BetterReflection
Better Reflection!
Mirror, mirror on the wall (Nomad PHP US 2015)
What?
Why?
How?
Magic of the AST
source: http://goo.gl/HORwLQ
WTF is AST?
use PhpParserParserFactory;
$parser = (new ParserFactory)
->create(ParserFactory::PREFER_PHP7);
print_r($parser->parse(
file_get_contents('ast-demo-src.php')
));
<?php
echo "Hello world";
AST
`-- Echo statement
`-- String, value "Hello world"
<?php
echo "Hello " . "world";
AST
`-- Echo statement
`-- Concat
|-- Left
| `-- String, value "Hello "
`-- Right
`-- String, value "world"
AST to Reflection
Benefits?
ReflectionProperty->getDocBlockTypes()
Types!
Using Better Reflection
$reflection = new ReflectionClass(
'BetterReflectionTestFixtureExampleClass'
);
$this->assertSame(
'ExampleClass',
$reflection->getShortName()
);
$reflection = ReflectionClass::createFromName(
'BetterReflectionTestFixtureExampleClass'
);
$this->assertSame(
'ExampleClass',
$reflection->getShortName()
);
// In ReflectionClass :
public static function createFromName($className)
{
return ClassReflector::buildDefaultReflector()->reflect($className);
}
// In ClassReflector :
public static function buildDefaultReflector()
{
return new self(new AggregateSourceLocator([
new PhpInternalSourceLocator(),
new EvaledCodeSourceLocator(),
new AutoloadSourceLocator(),
]));
}
(don’t try this at home kids!)
Some voodoo...
Mirror, mirror on the wall (Nomad PHP US 2015)
class MyClass
{
public function foo()
{
return 5;
}
}
// Create the reflection first
// ***BEFORE*** class is loaded
$classInfo = ReflectionClass::createFromName('MyClass');
// Override the body...!
$methodInfo = $classInfo->getMethod('foo');
$methodInfo->setBody(function () {
return 4;
});
// Save the class and require it
$classCode = (new CodePrinter())->prettyPrint([$classInfo->getAst()]);
$tmpFile = tempnam(sys_get_temp_dir(), 'br-monkey-patching');
file_put_contents($tmpFile, '<?php ' . $classCode);
require_once($tmpFile);
unlink($tmpFile);
// Now create an instance, and call the function...
$c = new MyClass();
var_dump($c->foo()); // will be 4!!!
Mirror, mirror on the wall (Nomad PHP US 2015)
What’s in it for me?
The future...
● DONE Currently: rewriting the internals
○ SourceLocators “might” return some code ?!
● DONE Returning AST/Code for method/fn
Ideas/plans - DONE
● WIP More compatibility core reflection
● WIP Reflect core fns with default params
○ This is not currently possible with core reflection
● WIP Modification & exporting
● WIP Reflecting on closures
Ideas/plans - WIP
● Adding a getColumn() function
● PHP 7 compatibility
● @inheritDoc traversal (to inherit type hints)
● Make it faster
Ideas/plans
¯_(ツ)_/¯
github.com/ /BetterReflection
Better Reflection
Any questions? :)
https://joind.in/16523
James Titcumb @asgrim
1 of 46

Recommended

Mirror, mirror on the wall (PHPem Unconf 2015) by
Mirror, mirror on the wall (PHPem Unconf 2015)Mirror, mirror on the wall (PHPem Unconf 2015)
Mirror, mirror on the wall (PHPem Unconf 2015)James Titcumb
545 views46 slides
Divided difference Matlab code by
Divided difference Matlab codeDivided difference Matlab code
Divided difference Matlab codeTaimoor Muzaffar Gondal
4.1K views1 slide
graficas matlab by
graficas matlabgraficas matlab
graficas matlabxavelu
97 views5 slides
ตัวแปรชุดและตัวแปรกลุ่มอักขระ by
ตัวแปรชุดและตัวแปรกลุ่มอักขระตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระJiraporn Chaijaroen
231 views37 slides
AST + Better Reflection (PHP Benelux 2016 Unconference) by
AST + Better Reflection (PHP Benelux 2016 Unconference)AST + Better Reflection (PHP Benelux 2016 Unconference)
AST + Better Reflection (PHP Benelux 2016 Unconference)James Titcumb
994 views47 slides
ตัวแปรชุดและตัวแปรกลุ่มอักขระ by
ตัวแปรชุดและตัวแปรกลุ่มอักขระตัวแปรชุดและตัวแปรกลุ่มอักขระ
ตัวแปรชุดและตัวแปรกลุ่มอักขระJiraporn Chaijaroen
228 views37 slides

More Related Content

Viewers also liked

Hubbard exteriors by
Hubbard exteriorsHubbard exteriors
Hubbard exteriorsHubbardexter
152 views3 slides
Responding to literature by
Responding to literatureResponding to literature
Responding to literatureliisamurphy
840 views8 slides
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str... by
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...Matt Brown
471 views27 slides
Aula nefropatias agudas e cronicas 2 by
Aula nefropatias agudas e cronicas 2Aula nefropatias agudas e cronicas 2
Aula nefropatias agudas e cronicas 2Ana Carolina Simoneti
603 views54 slides
Marcelle poirier by
Marcelle poirierMarcelle poirier
Marcelle poiriermarcellepoirier
309 views10 slides
immunotherapy for multiple myeloma by
immunotherapy for multiple myelomaimmunotherapy for multiple myeloma
immunotherapy for multiple myelomaspa718
2.7K views40 slides

Viewers also liked(20)

Responding to literature by liisamurphy
Responding to literatureResponding to literature
Responding to literature
liisamurphy840 views
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str... by Matt Brown
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...
How to launch a event ticketing sales business on mobile [Part 1 - Mobile Str...
Matt Brown471 views
immunotherapy for multiple myeloma by spa718
immunotherapy for multiple myelomaimmunotherapy for multiple myeloma
immunotherapy for multiple myeloma
spa7182.7K views
Michael Durante EBITDA Shortcomings by Michael Durante
Michael Durante EBITDA ShortcomingsMichael Durante EBITDA Shortcomings
Michael Durante EBITDA Shortcomings
Michael Durante384 views
Marcelle Poirier is a Reputed Avocat Francophone in Miami by marcellepoirier
Marcelle Poirier is a Reputed Avocat Francophone in MiamiMarcelle Poirier is a Reputed Avocat Francophone in Miami
Marcelle Poirier is a Reputed Avocat Francophone in Miami
marcellepoirier233 views
Informatica solidale - cooperazione internazionale 9 aprile 2015 by Claudio Tancini
Informatica solidale - cooperazione internazionale 9 aprile 2015Informatica solidale - cooperazione internazionale 9 aprile 2015
Informatica solidale - cooperazione internazionale 9 aprile 2015
Claudio Tancini374 views
Open source e cloud per il non profit - settembre 2016 - by Claudio Tancini
Open source e cloud per il non profit - settembre 2016 -Open source e cloud per il non profit - settembre 2016 -
Open source e cloud per il non profit - settembre 2016 -
Claudio Tancini953 views
Guy Ros dédicace son dernier livre by Guy Ros Agency
Guy Ros dédicace son dernier livre Guy Ros dédicace son dernier livre
Guy Ros dédicace son dernier livre
Guy Ros Agency 205 views
1 orlowski targeted-therapies by spa718
1 orlowski targeted-therapies1 orlowski targeted-therapies
1 orlowski targeted-therapies
spa7181.4K views
Nikolai angelov-gary-2015-1 by Sim Aleksiev
Nikolai angelov-gary-2015-1Nikolai angelov-gary-2015-1
Nikolai angelov-gary-2015-1
Sim Aleksiev669 views
Marlynne Grant researchED conf. 6th Sept 2014 - 30 minutes by researchED
Marlynne Grant researchED conf. 6th Sept 2014 - 30 minutesMarlynne Grant researchED conf. 6th Sept 2014 - 30 minutes
Marlynne Grant researchED conf. 6th Sept 2014 - 30 minutes
researchED269 views
Slide show intro by kpitman22
Slide show introSlide show intro
Slide show intro
kpitman22324 views
Dip Your Toes in the Sea of Security (DPC 2015) by James Titcumb
Dip Your Toes in the Sea of Security (DPC 2015)Dip Your Toes in the Sea of Security (DPC 2015)
Dip Your Toes in the Sea of Security (DPC 2015)
James Titcumb584 views

More from James Titcumb

Living the Best Life on a Legacy Project (phpday 2022).pdf by
Living the Best Life on a Legacy Project (phpday 2022).pdfLiving the Best Life on a Legacy Project (phpday 2022).pdf
Living the Best Life on a Legacy Project (phpday 2022).pdfJames Titcumb
58 views66 slides
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021) by
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)James Titcumb
170 views66 slides
Climbing the Abstract Syntax Tree (Midwest PHP 2020) by
Climbing the Abstract Syntax Tree (Midwest PHP 2020)Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)James Titcumb
199 views125 slides
Best practices for crafting high quality PHP apps (Bulgaria 2019) by
Best practices for crafting high quality PHP apps (Bulgaria 2019)Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)James Titcumb
254 views122 slides
Climbing the Abstract Syntax Tree (php[world] 2019) by
Climbing the Abstract Syntax Tree (php[world] 2019)Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)James Titcumb
160 views126 slides
Best practices for crafting high quality PHP apps (php[world] 2019) by
Best practices for crafting high quality PHP apps (php[world] 2019)Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)James Titcumb
260 views125 slides

More from James Titcumb(20)

Living the Best Life on a Legacy Project (phpday 2022).pdf by James Titcumb
Living the Best Life on a Legacy Project (phpday 2022).pdfLiving the Best Life on a Legacy Project (phpday 2022).pdf
Living the Best Life on a Legacy Project (phpday 2022).pdf
James Titcumb58 views
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021) by James Titcumb
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
Tips for Tackling a Legacy Codebase (ScotlandPHP 2021)
James Titcumb170 views
Climbing the Abstract Syntax Tree (Midwest PHP 2020) by James Titcumb
Climbing the Abstract Syntax Tree (Midwest PHP 2020)Climbing the Abstract Syntax Tree (Midwest PHP 2020)
Climbing the Abstract Syntax Tree (Midwest PHP 2020)
James Titcumb199 views
Best practices for crafting high quality PHP apps (Bulgaria 2019) by James Titcumb
Best practices for crafting high quality PHP apps (Bulgaria 2019)Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)
James Titcumb254 views
Climbing the Abstract Syntax Tree (php[world] 2019) by James Titcumb
Climbing the Abstract Syntax Tree (php[world] 2019)Climbing the Abstract Syntax Tree (php[world] 2019)
Climbing the Abstract Syntax Tree (php[world] 2019)
James Titcumb160 views
Best practices for crafting high quality PHP apps (php[world] 2019) by James Titcumb
Best practices for crafting high quality PHP apps (php[world] 2019)Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)
James Titcumb260 views
Crafting Quality PHP Applications (PHP Joburg Oct 2019) by James Titcumb
Crafting Quality PHP Applications (PHP Joburg Oct 2019)Crafting Quality PHP Applications (PHP Joburg Oct 2019)
Crafting Quality PHP Applications (PHP Joburg Oct 2019)
James Titcumb263 views
Climbing the Abstract Syntax Tree (PHP Russia 2019) by James Titcumb
Climbing the Abstract Syntax Tree (PHP Russia 2019)Climbing the Abstract Syntax Tree (PHP Russia 2019)
Climbing the Abstract Syntax Tree (PHP Russia 2019)
James Titcumb195 views
Best practices for crafting high quality PHP apps - PHP UK 2019 by James Titcumb
Best practices for crafting high quality PHP apps - PHP UK 2019Best practices for crafting high quality PHP apps - PHP UK 2019
Best practices for crafting high quality PHP apps - PHP UK 2019
James Titcumb324 views
Climbing the Abstract Syntax Tree (ScotlandPHP 2018) by James Titcumb
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
Climbing the Abstract Syntax Tree (ScotlandPHP 2018)
James Titcumb181 views
Best practices for crafting high quality PHP apps (ScotlandPHP 2018) by James Titcumb
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
Best practices for crafting high quality PHP apps (ScotlandPHP 2018)
James Titcumb322 views
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP South Africa 2018)
James Titcumb637 views
Best practices for crafting high quality PHP apps (PHP South Africa 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP South Africa 2018)Best practices for crafting high quality PHP apps (PHP South Africa 2018)
Best practices for crafting high quality PHP apps (PHP South Africa 2018)
James Titcumb122 views
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018) by James Titcumb
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
Climbing the Abstract Syntax Tree (PHP Developer Days Dresden 2018)
James Titcumb133 views
Climbing the Abstract Syntax Tree (Southeast PHP 2018) by James Titcumb
Climbing the Abstract Syntax Tree (Southeast PHP 2018)Climbing the Abstract Syntax Tree (Southeast PHP 2018)
Climbing the Abstract Syntax Tree (Southeast PHP 2018)
James Titcumb233 views
Crafting Quality PHP Applications (PHPkonf 2018) by James Titcumb
Crafting Quality PHP Applications (PHPkonf 2018)Crafting Quality PHP Applications (PHPkonf 2018)
Crafting Quality PHP Applications (PHPkonf 2018)
James Titcumb209 views
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
James Titcumb264 views
Crafting Quality PHP Applications: an overview (PHPSW March 2018) by James Titcumb
Crafting Quality PHP Applications: an overview (PHPSW March 2018)Crafting Quality PHP Applications: an overview (PHPSW March 2018)
Crafting Quality PHP Applications: an overview (PHPSW March 2018)
James Titcumb210 views
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018) by James Titcumb
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
Kicking off with Zend Expressive and Doctrine ORM (PHP MiNDS March 2018)
James Titcumb197 views
Climbing the Abstract Syntax Tree (PHP UK 2018) by James Titcumb
Climbing the Abstract Syntax Tree (PHP UK 2018)Climbing the Abstract Syntax Tree (PHP UK 2018)
Climbing the Abstract Syntax Tree (PHP UK 2018)
James Titcumb520 views

Recently uploaded

VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueShapeBlue
207 views54 slides
Optimizing Communication to Optimize Human Behavior - LCBM by
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBMYaman Kumar
38 views49 slides
Initiating and Advancing Your Strategic GIS Governance Strategy by
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance StrategySafe Software
184 views68 slides
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...ShapeBlue
196 views62 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
139 views15 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
65 views27 slides

Recently uploaded(20)

VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue by ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlueVNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
VNF Integration and Support in CloudStack - Wei Zhou - ShapeBlue
ShapeBlue207 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
Initiating and Advancing Your Strategic GIS Governance Strategy by Safe Software
Initiating and Advancing Your Strategic GIS Governance StrategyInitiating and Advancing Your Strategic GIS Governance Strategy
Initiating and Advancing Your Strategic GIS Governance Strategy
Safe Software184 views
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P... by ShapeBlue
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
Developments to CloudStack’s SDN ecosystem: Integration with VMWare NSX 4 - P...
ShapeBlue196 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue139 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty65 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li91 views
Digital Personal Data Protection (DPDP) Practical Approach For CISOs by Priyanka Aash
Digital Personal Data Protection (DPDP) Practical Approach For CISOsDigital Personal Data Protection (DPDP) Practical Approach For CISOs
Digital Personal Data Protection (DPDP) Practical Approach For CISOs
Priyanka Aash162 views
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ... by Jasper Oosterveld
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
ESPC 2023 - Protect and Govern your Sensitive Data with Microsoft Purview in ...
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue by ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlueWhat’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
What’s New in CloudStack 4.19 - Abhishek Kumar - ShapeBlue
ShapeBlue265 views
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT by ShapeBlue
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBITUpdates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
Updates on the LINSTOR Driver for CloudStack - Rene Peinthor - LINBIT
ShapeBlue208 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue152 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue171 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue247 views
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R... by ShapeBlue
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
Setting Up Your First CloudStack Environment with Beginners Challenges - MD R...
ShapeBlue178 views
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And... by ShapeBlue
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
Enabling DPU Hardware Accelerators in XCP-ng Cloud Platform Environment - And...
ShapeBlue108 views
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue by ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlueCloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
CloudStack Managed User Data and Demo - Harikrishna Patnala - ShapeBlue
ShapeBlue137 views
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ... by ShapeBlue
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
Live Demo Showcase: Unveiling Dell PowerFlex’s IaaS Capabilities with Apache ...
ShapeBlue129 views

Mirror, mirror on the wall (Nomad PHP US 2015)