SlideShare uma empresa Scribd logo
1 de 135
Baixar para ler offline
Testing CPAN
in the
21st Century
Mike Friedman
(friedo)
YAPC::NA 2013
Austin,TX
Tuesday, June 4, 13
A lengthy series of bad
ideas and stupid
questions.
Tuesday, June 4, 13
Tuesday, June 4, 13
Stupid Question No. 1
Tuesday, June 4, 13
Tuesday, June 4, 13
Stupid Question No. 2
Tuesday, June 4, 13
What’s this about,
anyway?
Tuesday, June 4, 13
What’s this about,
anyway?
CPANci
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•December 18, 1987
Tuesday, June 4, 13
A Brief History
•December 18, 1987
•Perl 1.000 released.
Tuesday, June 4, 13
A Brief History
•December 18, 1987
•Perl 1.000 released.
•TAP invented.
Tuesday, June 4, 13
The Test Anything Protocol
Tuesday, June 4, 13
The Test Anything Protocol
1..42
ok 1 the thing looks good!
ok 2
ok 3 $beer isa $drink
not ok 4 too much $beer
not ok 5 $me->vomit( 'now' )
...
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•October 17, 1994
Tuesday, June 4, 13
A Brief History
•October 17, 1994
•Perl 5.000 released.
Tuesday, June 4, 13
A Brief History
•October 17, 1994
•Perl 5.000 released.
•Perl has a module system.
Tuesday, June 4, 13
Tuesday, June 4, 13
# from this
require "funcs.pl";
Tuesday, June 4, 13
# from this
require "funcs.pl";
# to this
use My::Module;
Tuesday, June 4, 13
Tuesday, June 4, 13
# but under the hood
BEGIN {
require My::Module;
My::Module->import;
};
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•October 26, 1995
Tuesday, June 4, 13
A Brief History
•October 26, 1995
•CPAN established.
Tuesday, June 4, 13
A Brief History
•October 26, 1995
•CPAN established.
•Perl modules are available.
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•May 15, 1997
Tuesday, June 4, 13
A Brief History
•May 15, 1997
•Perl 5.004 released.
Tuesday, June 4, 13
A Brief History
•May 15, 1997
•Perl 5.004 released.
•CPAN.pm is in the core.
Tuesday, June 4, 13
Tuesday, June 4, 13
# the dark art
$ perl -MCPAN -e 'install Foo'
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•May, 1998
Tuesday, June 4, 13
A Brief History
•May, 1998
•CPAN Testers conceived
Tuesday, June 4, 13
A Brief History
•May, 1998
•CPAN Testers conceived
•Automated feedback for authors
Tuesday, June 4, 13
Tuesday, June 4, 13
Tuesday, June 4, 13
Tuesday, June 4, 13
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•November 15, 2003
Tuesday, June 4, 13
A Brief History
•November 15, 2003
•Perl 5.6.2 released.
Tuesday, June 4, 13
A Brief History
•November 15, 2003
•Perl 5.6.2 released.
•Test::More is in the core.
Tuesday, June 4, 13
Tuesday, June 4, 13
use Test::More tests => 3;
ok( 42 );
is( $foo, 'my value' );
isnt( 'foo', 'bar' );
Tuesday, June 4, 13
A Brief History
Tuesday, June 4, 13
A Brief History
•August 6, 2012
Tuesday, June 4, 13
A Brief History
•August 6, 2012
•Mike goes to work for 10gen
Tuesday, June 4, 13
Tuesday, June 4, 13
Tuesday, June 4, 13
WEB SCALE!!!!11
Tuesday, June 4, 13
WEB SCALE!!!!11
LOL
Tuesday, June 4, 13
Tuesday, June 4, 13
Bad Idea No. 1
Tuesday, June 4, 13
Bad Idea No. 1
Come up with a cool Perl MongoDB project
to show off atYAPC!
Tuesday, June 4, 13
Bad Idea No. 1
Come up with a cool Perl MongoDB project
to show off atYAPC!
It'll be fun!
Tuesday, June 4, 13
Bad Idea No. 1
Come up with a cool Perl MongoDB project
to show off atYAPC!
It'll be fun!
promise!
Tuesday, June 4, 13
CPAN Testers is Wonderful and
Amazing
Tuesday, June 4, 13
Tuesday, June 4, 13
Disadvantages:
Tuesday, June 4, 13
Disadvantages:
Not real time
Tuesday, June 4, 13
Disadvantages:
Not real time
Not consistent
Tuesday, June 4, 13
Disadvantages:
Not real time
Not consistent
Polluted / Inconsistent environments
Tuesday, June 4, 13
Disadvantages:
Not real time
Not consistent
Polluted / Inconsistent environments
Not all versions on all platforms
Tuesday, June 4, 13
I want Continuous Integration
for the entire CPAN.
Tuesday, June 4, 13
Tuesday, June 4, 13
Bad Idea No. 2
Tuesday, June 4, 13
CPANci.org
Bad Idea No. 2
Tuesday, June 4, 13
Tuesday, June 4, 13
Stupid Question No. 3
Tuesday, June 4, 13
Stupid Question No. 3
How can we test CPAN without the
disadvantages of CPAN Testers?
Tuesday, June 4, 13
Postulate:
Every CPAN distribution must be tested in isolation, on a
virgin Perl installation untouched by human hands.
Tuesday, June 4, 13
Postulate:
Every CPAN distribution must be tested in isolation, on a
virgin Perl installation untouched by human hands.
So how do we do that?
Tuesday, June 4, 13
perlbrew
Tuesday, June 4, 13
Virtualization
Tuesday, June 4, 13
Virtualization
Whoa!
Tuesday, June 4, 13
Tuesday, June 4, 13
Bad Idea No. 3
Tuesday, June 4, 13
Tuesday, June 4, 13
•Create an EC2 image
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
•Run the tests and report the results
Tuesday, June 4, 13
•Create an EC2 image
•Put perlbrew on it
•Install every Perl locally
•Boot an instance for every uploaded
distribution
•Install needed dependencies for the
distribution
•Run the tests and report the results
•Shut down the instance
Tuesday, June 4, 13
Tuesday, June 4, 13
Tuesday, June 4, 13
Stupid Question No. 4
Tuesday, June 4, 13
Stupid Question No. 4
How can we do this on one instance?
Tuesday, June 4, 13
local::lib
cpanminus
Tuesday, June 4, 13
App::cpanminus
Tuesday, June 4, 13
App::cpanminus
•Self-contained
Tuesday, June 4, 13
App::cpanminus
•Self-contained
•That is, the cpanm script is self-contained
Tuesday, June 4, 13
App::cpanminus
•Self-contained
•That is, the cpanm script is self-contained
•via App::FatPacker
Tuesday, June 4, 13
App::cpanminus
Tuesday, June 4, 13
App::cpanminus
That means the same cpanm can be run by any perl
Tuesday, June 4, 13
App::cpanminus
That means the same cpanm can be run by any perl
perlbrew switch master
curl -L http://cpanmin.us/ | perl - App::cpanminus
ln -s ~/perl5/perlbrew/perls/master/bin/cpanm ./cpanm
~/perl5/perlbrew/perls/perl-5.8.9/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.10.1/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.12.5/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.14.4/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.16.3/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.18.0/bin/perl cpanm
~/perl5/perlbrew/perls/perl-5.19.0/bin/perl cpanm
Tuesday, June 4, 13
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
•Run tests and report results
Tuesday, June 4, 13
•Use perlbrew to install a "master" perl
•Use it again to install "virgin" perls of every
major version
•Use the master perl to install everything
from CPAN that makes CPANci work
•For each distribution, create a temp
directory
•Tell cpanminus to install dependencies
there, as if for local::lib
•Run tests and report results
•Delete temp directory, leaving each perl
untouched!
Tuesday, June 4, 13
What does that look like?
The "fetcher" grabs the latest distribution URLs from
MetaCPAN's RSS feed.
Tuesday, June 4, 13
What does that look like?
We retrieve the distribution metadata from
the MetaCPAN JSON API and saved it to
MongoDB.
Then we start the Installer.
Tuesday, June 4, 13
What does that look like?
We download the distribution tarball to a temp file.
Then the fun stuff starts to happen.
Tuesday, June 4, 13
What does that look like?
We extract the archive in a specific "work" directory
for each perl.
Then create a temp directory for building and installing
dependencies.
Tuesday, June 4, 13
What does that look like?
Use a specific perl binary to run cpanm and
install dependencies, with no tests, to the temp
directory.
Then we parse the cpanm log on stderr
Tuesday, June 4, 13
What does that look like?
	 "deps" : {
	 	 "log" : [
	 	 	 {
	 	 	 	 "indent" : 0,
	 	 	 	 "type" : "working-on",
	 	 	 	 "line" : "--> Working on .n"
	 	 	 },
	 	 	 {
	 	 	 	 "line" : "Configuring Lingua-EN-NamedEntity-1.92 ... OKn",
	 	 	 	 "type" : "config",
	 	 	 	 "indent" : 1
	 	 	 },
	 	 	 {
	 	 	 	 "type" : "found-deps",
	 	 	 	 "indent" : 1,
	 	 	 	 "line" : "==> Found dependencies: Lingua::Stem::En, DB_File, LWP::Simplen"
	 	 	 },
	 	 	 {
	 	 	 	 "indent" : 1,
	 	 	 	 "type" : "working-on",
	 	 	 	 "line" : "--> Working on Lingua::Stem::Enn"
	 	 	 },
	 	 	 {
	 	 	 	 "indent" : 2,
	 	 	 	 "type" : "fetch",
	 	 	 	 "line" : "Fetching http://www.cpan.org/authors/id/S/SN/SNOWHARE/Lingua-
Stem-0.84.tar.gz ... OKn"
	 	 	 },
Tuesday, June 4, 13
What does that look like?
Use a specific perl to run each test file,
save the TAP output and any errors, and
use the exit status to determine if it passed.
Tuesday, June 4, 13
What does that look like?
Parse the TAP output of each test into a
structure which can be saved in MongoDB
Tuesday, June 4, 13
What does that look like?
	

 "name" : "t/05depth.t",
	

 "lines" : [
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "1..12",
	

 	

 	

 "type" : "plan"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 1,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "new object",
	

 	

 	

 "text" : "ok 1 - new object"
	

 	

 },
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 2,
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "text" : "ok 2 - depth"
	

 	

 },
	

 	

 {
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 3 - depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "number" : 3,
	

 	

 	

 "ok" : true
	

 	

 },
	

 	

 {
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 4 - depth",
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 4
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 5,
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "ok 5 - depth",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 6,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 6 - depth"
	

 	

 },
Tuesday, June 4, 13
What does that look like?
	

 "name" : "t/05depth.t",
	

 "lines" : [
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "1..12",
	

 	

 	

 "type" : "plan"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 1,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "new object",
	

 	

 	

 "text" : "ok 1 - new object"
	

 	

 },
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 2,
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "text" : "ok 2 - depth"
	

 	

 },
	

 	

 {
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 3 - depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "number" : 3,
	

 	

 	

 "ok" : true
	

 	

 },
	

 	

 {
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 4 - depth",
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 4
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 5,
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "ok 5 - depth",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 6,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 6 - depth"
	

 	

 },
•This is JSON
Tuesday, June 4, 13
What does that look like?
	

 "name" : "t/05depth.t",
	

 "lines" : [
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "1..12",
	

 	

 	

 "type" : "plan"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 1,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "new object",
	

 	

 	

 "text" : "ok 1 - new object"
	

 	

 },
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 2,
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "text" : "ok 2 - depth"
	

 	

 },
	

 	

 {
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 3 - depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "number" : 3,
	

 	

 	

 "ok" : true
	

 	

 },
	

 	

 {
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 4 - depth",
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 4
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 5,
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "ok 5 - depth",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 6,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 6 - depth"
	

 	

 },
•This is JSON
•Stored in MongoDB
Tuesday, June 4, 13
What does that look like?
	

 "name" : "t/05depth.t",
	

 "lines" : [
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "1..12",
	

 	

 	

 "type" : "plan"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 1,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "new object",
	

 	

 	

 "text" : "ok 1 - new object"
	

 	

 },
	

 	

 {
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 2,
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "text" : "ok 2 - depth"
	

 	

 },
	

 	

 {
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 3 - depth",
	

 	

 	

 "type" : "test",
	

 	

 	

 "number" : 3,
	

 	

 	

 "ok" : true
	

 	

 },
	

 	

 {
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 4 - depth",
	

 	

 	

 "ok" : true,
	

 	

 	

 "number" : 4
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 5,
	

 	

 	

 "ok" : true,
	

 	

 	

 "text" : "ok 5 - depth",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "type" : "test"
	

 	

 },
	

 	

 {
	

 	

 	

 "number" : 6,
	

 	

 	

 "ok" : true,
	

 	

 	

 "type" : "test",
	

 	

 	

 "desc" : "depth",
	

 	

 	

 "text" : "ok 6 - depth"
	

 	

 },
•This is JSON
•Stored in MongoDB
•But it's also TAP!
Tuesday, June 4, 13
Tuesday, June 4, 13
Bad Idea No. 4
Tuesday, June 4, 13
Bad Idea No. 4
LIVE DEMO!
Tuesday, June 4, 13
The future?
Tuesday, June 4, 13
The future?
•Integration with Pinto
Tuesday, June 4, 13
The future?
•Integration with Pinto
•Integration with Stratopan
Tuesday, June 4, 13
The future?
•Integration with Pinto
•Integration with Stratopan
•All kinds of cool statistics on the website
Tuesday, June 4, 13
The future?
•Integration with Pinto
•Integration with Stratopan
•All kinds of cool statistics on the website
•Organizations using CPANci for their
internal DarkPANs
Tuesday, June 4, 13
Final
Thoughts
Tuesday, June 4, 13
Final
Thoughts
•Play with new toys.
Tuesday, June 4, 13
Final
Thoughts
•Play with new toys.
•Think before you code.
Tuesday, June 4, 13
Final
Thoughts
•Play with new toys.
•Think before you code.
•Have bad ideas.
Tuesday, June 4, 13
Final
Thoughts
•Play with new toys.
•Think before you code.
•Have bad ideas.
•Ask stupid questions.
Tuesday, June 4, 13
Final
Thoughts
•Play with new toys.
•Think before you code.
•Have bad ideas.
•Ask stupid questions.
•Have fun.
Tuesday, June 4, 13
Stupid Questions?
Mike Friedman
(friedo)
friedo@friedo.com
https://github.com/friedo/cpanci
Tuesday, June 4, 13

Mais conteúdo relacionado

Mais procurados

Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl ProgrammerJohn Anderson
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFSTim Pettersen
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxPhilip Tellis
 
Chef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & ChefChef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & Chefice799
 
Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tim Pettersen
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015ice799
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015ice799
 
Attacking open source using abandoned resources
Attacking open source using abandoned resourcesAttacking open source using abandoned resources
Attacking open source using abandoned resourcesAdam Baldwin
 
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaOrganizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaAEM HUB
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet codeJulien Pivotto
 
Using software modules welcome to hell!
Using software modules   welcome to hell!Using software modules   welcome to hell!
Using software modules welcome to hell!Baruch Sadogursky
 
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음Covenant Ko
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry DogRoss Tuck
 
Infrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleice799
 
JPA Week3 Entity Mapping / Hexagonal Architecture
JPA Week3 Entity Mapping / Hexagonal ArchitectureJPA Week3 Entity Mapping / Hexagonal Architecture
JPA Week3 Entity Mapping / Hexagonal ArchitectureCovenant Ko
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortestingKazuhiro Oinuma
 
DO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSDO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSSeongJae Park
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonPhilip Tellis
 

Mais procurados (20)

Modern Perl for the Unfrozen Paleolithic Perl Programmer
Modern Perl for the Unfrozen Paleolithic  Perl ProgrammerModern Perl for the Unfrozen Paleolithic  Perl Programmer
Modern Perl for the Unfrozen Paleolithic Perl Programmer
 
Tracking large game assets with Git LFS
Tracking large game assets with Git LFSTracking large game assets with Git LFS
Tracking large game assets with Git LFS
 
Frontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou FurieuxFrontend Performance: De débutant à Expert à Fou Furieux
Frontend Performance: De débutant à Expert à Fou Furieux
 
Chef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & ChefChef Conf 2015: Package Management & Chef
Chef Conf 2015: Package Management & Chef
 
Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016Tracking huge files with Git LFS - LinuxCon 2016
Tracking huge files with Git LFS - LinuxCon 2016
 
Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015Puppet Camp LA 2/19/2015
Puppet Camp LA 2/19/2015
 
Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015Package manages and Puppet - PuppetConf 2015
Package manages and Puppet - PuppetConf 2015
 
Attacking open source using abandoned resources
Attacking open source using abandoned resourcesAttacking open source using abandoned resources
Attacking open source using abandoned resources
 
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz KitaOrganizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
Organizing the world of CQ rest infinitive possibilities by Arkadiusz Kita
 
Testing your puppet code
Testing your puppet codeTesting your puppet code
Testing your puppet code
 
Using software modules welcome to hell!
Using software modules   welcome to hell!Using software modules   welcome to hell!
Using software modules welcome to hell!
 
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
GREAT STEP 1. 테스트 코드를 향한 위대한 발걸음
 
Logstash and friends
Logstash and friendsLogstash and friends
Logstash and friends
 
Git and Unity
Git and UnityGit and Unity
Git and Unity
 
HTTP and Your Angry Dog
HTTP and Your Angry DogHTTP and Your Angry Dog
HTTP and Your Angry Dog
 
Infrastructure as code might be literally impossible
Infrastructure as code might be literally impossibleInfrastructure as code might be literally impossible
Infrastructure as code might be literally impossible
 
JPA Week3 Entity Mapping / Hexagonal Architecture
JPA Week3 Entity Mapping / Hexagonal ArchitectureJPA Week3 Entity Mapping / Hexagonal Architecture
JPA Week3 Entity Mapping / Hexagonal Architecture
 
20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting20120524 english lt2_pythontoolsfortesting
20120524 english lt2_pythontoolsfortesting
 
DO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCSDO YOU WANT TO USE A VCS
DO YOU WANT TO USE A VCS
 
Frontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy PersonFrontend Performance: Beginner to Expert to Crazy Person
Frontend Performance: Beginner to Expert to Crazy Person
 

Semelhante a CPANci: Continuous Integration for CPAN

Ab(Using) the MetaCPAN API for Fun and Profit v2013
Ab(Using) the MetaCPAN API for Fun and Profit v2013Ab(Using) the MetaCPAN API for Fun and Profit v2013
Ab(Using) the MetaCPAN API for Fun and Profit v2013Olaf Alders
 
A Big Look at MiniTest
A Big Look at MiniTestA Big Look at MiniTest
A Big Look at MiniTestMark
 
CakePHP the yum & yuck
CakePHP the yum & yuckCakePHP the yum & yuck
CakePHP the yum & yuckmarkstory
 
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensedzznate
 
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013cordoval
 
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David BlevinsApache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevinsjaxconf
 
Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet KeynotePuppet
 
Unmoderated User Testing
Unmoderated User TestingUnmoderated User Testing
Unmoderated User TestingZURB
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...Pablo Godel
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...NETWAYS
 
Puppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Puppet
 
Unit testing like a pirate #wceu 2013
Unit testing like a pirate #wceu 2013Unit testing like a pirate #wceu 2013
Unit testing like a pirate #wceu 2013Ptah Dunbar
 
Cooking an Omelette with Chef
Cooking an Omelette with ChefCooking an Omelette with Chef
Cooking an Omelette with Chefctaintor
 
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...NETWAYS
 
Keeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesKeeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesXamarin
 
Just What Is This Continuous Delivery Thing, Anyway?
Just What Is This Continuous Delivery Thing, Anyway?Just What Is This Continuous Delivery Thing, Anyway?
Just What Is This Continuous Delivery Thing, Anyway?eshamow
 
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERENuxeo
 

Semelhante a CPANci: Continuous Integration for CPAN (20)

Ab(Using) the MetaCPAN API for Fun and Profit v2013
Ab(Using) the MetaCPAN API for Fun and Profit v2013Ab(Using) the MetaCPAN API for Fun and Profit v2013
Ab(Using) the MetaCPAN API for Fun and Profit v2013
 
Understanding JVM
Understanding JVMUnderstanding JVM
Understanding JVM
 
A Big Look at MiniTest
A Big Look at MiniTestA Big Look at MiniTest
A Big Look at MiniTest
 
CakePHP the yum & yuck
CakePHP the yum & yuckCakePHP the yum & yuck
CakePHP the yum & yuck
 
Intravert atx meetup_condensed
Intravert atx meetup_condensedIntravert atx meetup_condensed
Intravert atx meetup_condensed
 
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
Specking Interactors with PHPSpec and YOLO (DDD) at PHPConference Argentina 2013
 
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David BlevinsApache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
Apache TomEE, Java EE 6 Web Profile on Tomcat - David Blevins
 
Puppet Keynote
Puppet KeynotePuppet Keynote
Puppet Keynote
 
Unmoderated User Testing
Unmoderated User TestingUnmoderated User Testing
Unmoderated User Testing
 
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
PHP Conference Argentina 2013 - Independizate de tu departamento IT - Habilid...
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
 
Writing the docs
Writing the docsWriting the docs
Writing the docs
 
Puppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet DesignPuppet Camp Berlin 2014: Advanced Puppet Design
Puppet Camp Berlin 2014: Advanced Puppet Design
 
Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...Building scalable applications while scaling your infrastructure by rhommel l...
Building scalable applications while scaling your infrastructure by rhommel l...
 
Unit testing like a pirate #wceu 2013
Unit testing like a pirate #wceu 2013Unit testing like a pirate #wceu 2013
Unit testing like a pirate #wceu 2013
 
Cooking an Omelette with Chef
Cooking an Omelette with ChefCooking an Omelette with Chef
Cooking an Omelette with Chef
 
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...
OSDC 2013 | PostgreSQL im Jahr 2013. Wo sind wir? Wohin geht die Reise? by Mi...
 
Keeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesKeeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg Shackles
 
Just What Is This Continuous Delivery Thing, Anyway?
Just What Is This Continuous Delivery Thing, Anyway?Just What Is This Continuous Delivery Thing, Anyway?
Just What Is This Continuous Delivery Thing, Anyway?
 
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
[Nuxeo World 2013] MARKETPLACE PACKAGES - THIBAUD ARGUILLERE
 

Mais de Mike Friedman

Basic Symbolic Computation in Perl
Basic Symbolic Computation in PerlBasic Symbolic Computation in Perl
Basic Symbolic Computation in PerlMike Friedman
 
Make Your Own Perl with Moops
Make Your Own Perl with MoopsMake Your Own Perl with Moops
Make Your Own Perl with MoopsMike Friedman
 
The Perl API for the Mortally Terrified (beta)
The Perl API for the Mortally Terrified (beta)The Perl API for the Mortally Terrified (beta)
The Perl API for the Mortally Terrified (beta)Mike Friedman
 
Data Modeling for the Real World
Data Modeling for the Real WorldData Modeling for the Real World
Data Modeling for the Real WorldMike Friedman
 
MongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMike Friedman
 
Building a MongoDB App with Perl
Building a MongoDB App with PerlBuilding a MongoDB App with Perl
Building a MongoDB App with PerlMike Friedman
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDBMike Friedman
 
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientBuilding Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientMike Friedman
 

Mais de Mike Friedman (8)

Basic Symbolic Computation in Perl
Basic Symbolic Computation in PerlBasic Symbolic Computation in Perl
Basic Symbolic Computation in Perl
 
Make Your Own Perl with Moops
Make Your Own Perl with MoopsMake Your Own Perl with Moops
Make Your Own Perl with Moops
 
The Perl API for the Mortally Terrified (beta)
The Perl API for the Mortally Terrified (beta)The Perl API for the Mortally Terrified (beta)
The Perl API for the Mortally Terrified (beta)
 
Data Modeling for the Real World
Data Modeling for the Real WorldData Modeling for the Real World
Data Modeling for the Real World
 
MongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World ExamplesMongoDB Schema Design: Four Real-World Examples
MongoDB Schema Design: Four Real-World Examples
 
Building a MongoDB App with Perl
Building a MongoDB App with PerlBuilding a MongoDB App with Perl
Building a MongoDB App with Perl
 
Building Your First App with MongoDB
Building Your First App with MongoDBBuilding Your First App with MongoDB
Building Your First App with MongoDB
 
Building Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::ClientBuilding Scalable, Distributed Job Queues with Redis and Redis::Client
Building Scalable, Distributed Job Queues with Redis and Redis::Client
 

Último

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 

Último (20)

EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 

CPANci: Continuous Integration for CPAN