Una panoramica su Net::Amazon::EC2 e Net::RackSpace::Servers. Potete trovare la presentazione con le note qui: http://polettix.s3.amazonaws.com/IPW2011/nubilus-perl-1.1-note.pdf
Teaching Your Machine To Find FraudstersIan Barber
The slides from my talk at PHP Tek 11.
When dealing with money online, fraud is an ongoing problem for both
consumers and sellers. Researchers have been developing statistical
and machine learning techniques to detect shady sellers on auction
sites, spot fraudulent payments on e-commerce systems and catch click
fraud on adverts. While there is no silver bullet, you will learn to
flag suspicious activity and help protect your site from scammers
using PHP and a little help from some other technologies.
Go beyond the documentation and explore some of what's possible if you stretch symfony to its limits. We will look at a number of aspects of symfony 1.4 and Doctrine 1.2 and tease out some powerful functionality you may not have expected to find, but will doubtless be able to use. Topics covered will include routing, forms, the config cache and record listeners. If you're comfortable in symfony and wondering what's next, this session is for you.
Una panoramica su Net::Amazon::EC2 e Net::RackSpace::Servers. Potete trovare la presentazione con le note qui: http://polettix.s3.amazonaws.com/IPW2011/nubilus-perl-1.1-note.pdf
Teaching Your Machine To Find FraudstersIan Barber
The slides from my talk at PHP Tek 11.
When dealing with money online, fraud is an ongoing problem for both
consumers and sellers. Researchers have been developing statistical
and machine learning techniques to detect shady sellers on auction
sites, spot fraudulent payments on e-commerce systems and catch click
fraud on adverts. While there is no silver bullet, you will learn to
flag suspicious activity and help protect your site from scammers
using PHP and a little help from some other technologies.
Go beyond the documentation and explore some of what's possible if you stretch symfony to its limits. We will look at a number of aspects of symfony 1.4 and Doctrine 1.2 and tease out some powerful functionality you may not have expected to find, but will doubtless be able to use. Topics covered will include routing, forms, the config cache and record listeners. If you're comfortable in symfony and wondering what's next, this session is for you.
Design Patterns avec PHP 5.3, Symfony et PimpleHugo Hamon
Cette conférence présente deux grands motifs de conception : l'observateur et l'injection de dépendance. Ce sujet allie à la fois théorie et pratique. Le composant autonome EventDispatcher de Symfony ainsi que le conteneur d'injection de dépendance Pimple sont mis à l'honneur avec des exemples pratiques d'usage. Ces cas pratiques combinent du code de l'ORM Propel ainsi que le composant autonome Zend\Search\Lucene du Zend Framework 2
Silex is a brand new PHP 5.3 micro framework built on top of the Symfony2 de decoupled components. In this session, we will discover how to build and deploy powerful REST web services with such a micro framework and its embedded tools.
The first part of this talk will introduce the basics of the REST architecture. We fill focus on the main concepts of REST like HTTP methods, URIs and open formats like XML and JSON.
Then, we will discover how to deploy REST services using most of interesting Silex tools like database abstraction layer, template engine and input validation. We will also look at unit and functional testing frameworks with PHPUnit and HTTP caching with Edge Side Includes and Varnish support to improve performances.
Persistence is one of the most important part in a PHP project. Persisting data to a database came with PHP/FI and its MySQL support. From native extensions and PHP4 database abstraction libraries to PDO and modern ORM frameworks, you will (re)discover how persistence has evolved during the last decade. This talk will also introduce the future of data persistence with the growing success of alternative storage engines.
This session introduces most well known design patterns to build PHP classes and objects that need to store and fetch data from a relational databases. The session will describe the difference between of the Active Record, the Table and Row Data Gateway and the Data Mapper pattern. We will also examine some technical advantages and drawbacks of these implementations. This talk will expose some of the best PHP tools, which ease database interactions and are built on top of these patterns.
Models and Service Layers, Hemoglobin and HobgoblinsRoss Tuck
As presented at ZendCon 2014, AmsterdamPHP, PHPBenelux 2014, Sweetlake PHP and PHP Northwest 2013, an overview of some different patterns for integrating and managing logic throughout your application.
From ReactPHP to Facebook Hack's Async implementation and many more, asynchronous programming has been a 'hot' topic lately. But how well does async programming support work in PHP and what can you actually use it for in your projects ? Let's look at some real-world use cases and how they leverage the power of async to do things you didn't know PHP could do.
Symfony components in the wild, PHPNW12Jakub Zalas
Symfony is a set of reusable and decoupled PHP components designed to solve common web development problems. While as a framework it might not be the best for some of your projects, you can always build on top of its solid foundation of well written, tested and flexible components.
Original presentation: https://docs.google.com/presentation/pub?id=136blt1DWJ95yuEdpmjz9dIqgg38VwEXBQlY7bu0Op8w&start=false&loop=false&delayms=3000
As presented at Dutch PHP Conference 2015, an introduction to command buses, how to implement your own in PHP and why they're both useful but unimportant.
UK Symfony Meetup, November 2012
Original presentation: https://docs.google.com/presentation/pub?id=1PLcqTby6yqSbfWlMIDHknH852DU6DO6OAgQJOtSEdsg&start=false&loop=false&delayms=3000
Design Patterns avec PHP 5.3, Symfony et PimpleHugo Hamon
Cette conférence présente deux grands motifs de conception : l'observateur et l'injection de dépendance. Ce sujet allie à la fois théorie et pratique. Le composant autonome EventDispatcher de Symfony ainsi que le conteneur d'injection de dépendance Pimple sont mis à l'honneur avec des exemples pratiques d'usage. Ces cas pratiques combinent du code de l'ORM Propel ainsi que le composant autonome Zend\Search\Lucene du Zend Framework 2
Silex is a brand new PHP 5.3 micro framework built on top of the Symfony2 de decoupled components. In this session, we will discover how to build and deploy powerful REST web services with such a micro framework and its embedded tools.
The first part of this talk will introduce the basics of the REST architecture. We fill focus on the main concepts of REST like HTTP methods, URIs and open formats like XML and JSON.
Then, we will discover how to deploy REST services using most of interesting Silex tools like database abstraction layer, template engine and input validation. We will also look at unit and functional testing frameworks with PHPUnit and HTTP caching with Edge Side Includes and Varnish support to improve performances.
Persistence is one of the most important part in a PHP project. Persisting data to a database came with PHP/FI and its MySQL support. From native extensions and PHP4 database abstraction libraries to PDO and modern ORM frameworks, you will (re)discover how persistence has evolved during the last decade. This talk will also introduce the future of data persistence with the growing success of alternative storage engines.
This session introduces most well known design patterns to build PHP classes and objects that need to store and fetch data from a relational databases. The session will describe the difference between of the Active Record, the Table and Row Data Gateway and the Data Mapper pattern. We will also examine some technical advantages and drawbacks of these implementations. This talk will expose some of the best PHP tools, which ease database interactions and are built on top of these patterns.
Models and Service Layers, Hemoglobin and HobgoblinsRoss Tuck
As presented at ZendCon 2014, AmsterdamPHP, PHPBenelux 2014, Sweetlake PHP and PHP Northwest 2013, an overview of some different patterns for integrating and managing logic throughout your application.
From ReactPHP to Facebook Hack's Async implementation and many more, asynchronous programming has been a 'hot' topic lately. But how well does async programming support work in PHP and what can you actually use it for in your projects ? Let's look at some real-world use cases and how they leverage the power of async to do things you didn't know PHP could do.
Symfony components in the wild, PHPNW12Jakub Zalas
Symfony is a set of reusable and decoupled PHP components designed to solve common web development problems. While as a framework it might not be the best for some of your projects, you can always build on top of its solid foundation of well written, tested and flexible components.
Original presentation: https://docs.google.com/presentation/pub?id=136blt1DWJ95yuEdpmjz9dIqgg38VwEXBQlY7bu0Op8w&start=false&loop=false&delayms=3000
As presented at Dutch PHP Conference 2015, an introduction to command buses, how to implement your own in PHP and why they're both useful but unimportant.
UK Symfony Meetup, November 2012
Original presentation: https://docs.google.com/presentation/pub?id=1PLcqTby6yqSbfWlMIDHknH852DU6DO6OAgQJOtSEdsg&start=false&loop=false&delayms=3000
[PL] Jak nie zostać "programistą" PHP?Radek Benkel
Po sieci krąży wiele opinii, jak to programiści PHP nie są prawdziwymi programistami i że PHP to w ogóle nie jest język programowania, etc.
A winni takiego stanu rzeczy są sami programiści bądź właśnie „programiści”. Dlaczego? W każdym języku da się napisać kod zły jak i dobry. A w świecie PHP niestety dużo jest tego złego – choć trend ten zmienia się na lepsze.
Celem wykładu jest zapoznanie uczestników z rzeczami, na które należy zwrócić uwagę podczas tworzenia aplikacji w języku PHP. Druga (krótsza) część prezentacji będzie poświęcona ogólnym dobrym praktykom programistycznym, nie związanym z żadnym konkretnym językiem.
Storing all of the reply content is usually not possible: it may be dynamic. A proxy allows directing only the content that needs to be handled locally to the test server, other content can go to the cloud. The final step, closing the loop between client and server, requires wapping LWP::UserAgent to direct locally handled requests to the test server.
Welcome to the Program Your Destiny course. In this course, we will be learning the technology of personal transformation, neuroassociative conditioning (NAC) as pioneered by Tony Robbins. NAC is used to deprogram negative neuroassociations that are causing approach avoidance and instead reprogram yourself with positive neuroassociations that lead to being approach automatic. In doing so, you change your destiny, moving towards unlocking the hypersocial self within, the true self free from fear and operating from a place of personal power and love.
https://bit.ly/BabeSideDoll4u Babeside is a company that specializes in creating handcrafted reborn dolls. These dolls are designed to be incredibly lifelike, with realistic skin tones and hair, and they have become increasingly popular among collectors and those who use them for therapeutic purposes. At Babeside, we believe that our reborn dolls can provide comfort and healing to anyone who needs it.
The Healing Power of Babeside's Handcrafted Creations
Our reborn dolls are more than just beautiful pieces of art - they can also help alleviate stress, anxiety, depression, and other mental health conditions. Studies have shown that holding or cuddling a soft object like a stuffed animal or a reborn doll can release oxytocin, which is often referred to as the "love hormone." This hormone helps us feel calm and relaxed, reducing feelings of stress and anxiety.
In addition to their physical benefits, reborn dolls can also offer emotional support. For many people, having something to care for and nurture can bring a sense of purpose and fulfillment. Reborn dolls can also serve as a reminder of happy memories or loved ones who have passed away.
51. use URI;
use URI;
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $uri = URI->new(
'http://roma.pm.org/cerca.pl');
$uri->query_form(%parametri);
52. use URI;
use URI;
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $uri = URI->new(
'http://roma.pm.org/cerca.pl');
$uri->query_form(%parametri);
53. use URI;
use URI;
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $uri = URI->new(
'http://roma.pm.org/cerca.pl');
$uri->query_form(%parametri);
54. use URI;
my $uri_string =
$uri->as_string();
my $risposta =
$ua->get($uri_string);
# oppure...
my $risposta =
$ua->get("$uri");
55. use URI;
my $uri_string =
$uri->as_string();
my $risposta =
$ua->get($uri_string);
# oppure...
my $risposta =
$ua->get("$uri");
56. use URI;
my $uri_string =
$uri->as_string();
my $risposta =
$ua->get($uri_string);
# oppure...
my $risposta =
$ua->get("$uri");
57. use URI;
my $uri_string =
$uri->as_string();
my $risposta =
$ua->get($uri_string);
# oppure...
my $risposta =
$ua->get("$uri");
58. POST
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $risposta = $ua->post(
'http://www.perl.it/post.pl',
%parametri,
'X-New' => 1);
59. POST
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $risposta = $ua->post(
'http://www.perl.it/post.pl',
%parametri,
'X-New' => 1);
60. POST
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $risposta = $ua->post(
'http://www.perl.it/post.pl',
%parametri,
'X-New' => 1);
61. POST
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $risposta = $ua->post(
'http://www.perl.it/post.pl',
%parametri,
'X-New' => 1);
62. POST
my %parametri = (
nome => 'Flavio',
cognome => 'Poletti',
);
my $risposta = $ua->post(
'http://www.perl.it/post.pl',
%parametri,
'X-New' => 1);
109. $mech->images()
for my $immagine ($mech->images()) {
$mech->get($immagine->url());
my $filename =
$mech->response()->filename();
$mech->save_content($filename);
}
110. $mech->images()
for my $immagine ($mech->images()) {
$mech->get($immagine->url());
my $filename =
$mech->response()->filename();
$mech->save_content($filename);
}
111. $mech->images()
for my $immagine ($mech->images()) {
$mech->get($immagine->url());
my $filename =
$mech->response()->filename();
$mech->save_content($filename);
}
112. $mech->images()
for my $immagine ($mech->images()) {
$mech->get($immagine->url());
my $filename =
$mech->response()->filename();
$mech->save_content($filename);
}
152. callback
sub produci_callback {
my ($filename) = @_;
open my $fh, ’>’, $filename
or die "open(’$filename’): $!";
binmode $fh;
return sub {
my ($data, $response, $protocol) = @_;
print {$fh} $data;
};
}
153. :content_cb
my $response = $ua->get(
'http://roma.pm.org/roma.pm.png',
':content_cb' =>
produci_callback('logo.png'));
159. Upload di un file
my $uri =
'http://localhost/upload.pl';
my %parametri = (
blah => ’questo-server’,
data => scalar(localtime()),
file => [ ’/etc/passwd’ ],
);
160. Upload controllato
my $r; # per la risposta
{
local $HTTP::Request::Common::DYNAMIC_FILE_UPLOAD;
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1;
my $request = HTTP::Request::Common::POST($uri,
%parametri, ’Content-Type’ => ’form-data’);
# ...
161. Upload controllato
my $r; # per la risposta
{
local $HTTP::Request::Common::DYNAMIC_FILE_UPLOAD;
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1;
my $request = HTTP::Request::Common::POST($uri,
%parametri, ’Content-Type’ => ’form-data’);
# ...
162. Upload controllato
my $r; # per la risposta
{
local $HTTP::Request::Common::DYNAMIC_FILE_UPLOAD;
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1;
my $request = HTTP::Request::Common::POST($uri,
%parametri, ’Content-Type’ => ’form-data’);
# ...
163. Upload controllato
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
164. Upload controllato
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
165. Upload controllato
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
166. Upload controllato
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
167. Upload controllato
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
168. Upload controllato
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
169. Upload controllato
my $content_closure = $request->content();
$request->content(sub {
my $porzione = $content_closure->();
return unless defined $porzione;
# ...
return $porzione;
});
173. Upload controllato
my $r; # per la risposta
{
local $HTTP::Request::Common::DYNAMIC_FILE_UPLOAD;
$HTTP::Request::Common::DYNAMIC_FILE_UPLOAD = 1;
#...
$r = $ua->request($request);
}