SlideShare a Scribd company logo
From: YAPC::EU@SLC.pm
atoomic@cpan.org
From: YAPC::EU@SLC.pm
1. Web Scrapers
2. Platform incompatibilites
3. Compiler status
4. WebService::Simple
5. Server::Starter
6. Starlet
7. Cookie::Baker
8. Gazelle
9. Furl
10. Riki
11. Perl::Lint
12. Carmel
Granada ?
Granada, Spain
YAPC::EU 2015 - Perl Conferences
Web Scrapers
from @Sawyer
Web Scrapers
• What is it ? 

application to extract content from a webpage….
1. Crawl
2. Parse
3. Extract content
• But Why ?
1. Website without API…
2. Website with an API…
Html code can change…

but api also…
Web Scrapers
Scrapers for dummies
Web Scrapers
Two tools for scrapping:
	•	WWW::Mechanize

browser in an object

forms, links, “back button”, 

“reload button”

	•	Web::Query

selector based
Web Scrapers:
WWW::Mechanize
Web Scrapers:

Web::Query by Tokuhiro Matsuno
Platform incompatibilities
Talk by Mark Overmeer

author of POSIX::1003
• POSIX 1003.1: attempt to
standardize the operating
systems since 1984:

libraries: libc, libc, …

OS: I/O, events, permissions,
memory,…
• over 1200 functions
POSIX is difficult
> perldoc -f print
POSIX.pm is old
> perldoc POSIX
POSIX is weak
Sample with select
> perldoc -f select
select FILEHANDLE
select RBITS, WBITS, EBITS, TIMEOUT
> perldoc POSIX::1003::Events
POSIX: other issues
• getpid => $$  # 12 simple rewrites
• POSIX::open != open| # 57 name clashes
• 20 croak “use method xxx instead"
• 59 croak “xxx is C-specific use yyy"
POSIX::1003
POSIX::1003
Exporter trick: +1
Sample
…what’s the trick ?
POSIX::1003
Compiler status
perl compiler B::C - 5.14.4 in production since 2014 

@cPanel [ CentOS 5,6,7 ]
Advantages:
• 10 to 20 % less memory usage
• faster startup
• no need to ship your modules / code

( dynamic modules are loaded on demand )
Japanese
“Why does it need to be so fast ? because we are…”
Junichi Ishida aka uzulla

slides: http://bit.ly/uzulla_yapceu2015
WebService::Simple
Server::Starter
• extra protection layer on top of your plack server
• "a superdaemon for hot-deploying server programs"
• Gracefull restart (hot-deploying)
• Only exit old process if new process is successfully booted.(safe!)
• No resource leak (known)
Starlet
• "a simple, high-performance PSGI/Plack HTTP server"
• Very heavily used in japan.
Cookie::Baker
Gazelle
a very fast{/jp} PSGI server
x2 faster than starman
Furl
simple & fast http client [made in Japan]
Furl - post sample
Riji - git based blog tool
publish [static] files
Perl::Lint by Kawakami
Why ?
• "Yet Another Perl Source Code Linter"
• faster than other lint tools
• fast and flexible static analyzer for Perl5
• compatibility with Perl::Critic
• easy to extend/add policies
Perl::Lint by Kawakami
Carmel (or Carton 2)
Talk from Tatsuhiko Miyazawa (>200 CPAN modules):
• cpanminus
• carton
• Corona
• PSGI
• Plack
• Starman
• Twiggy
• …
Carmel (or Carton 2)
Carton with cache to speedup
cache blib in a common directory

$HOME/.carmel/{version}-{archname}/builds
Carmel (or Carton 2)
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
YAPC::EU 2015 - Perl Conferences
…and also
• Benchmark::Perl::Formance
• Eixo::Zone: interact with (OS) namespaces
• JWT tokens - http://jwt.io
• JSON::WebToken
• Crypt::JWT
• Monitoring graphs
• GrowthForecast (needs rrdtool)
• HRForecast (no rrdtool required
• Test::mysqld
• Test::Valgrind 

valgrind frontend: memory errors & leaks
• mRuby is mruby binding for perl5
• Measure::Everything

provides a standard measuring API for modules
• Menlo: cpanminus 2
• WebService::Mackerel - client for mackerel.io (performance monitor tool on cloud)
Thank you !

More Related Content

PPTX
Automating JavaScript testing with Jasmine and Perl
nohuhu
 
PDF
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
PPTX
Saving Time By Testing With Jest
Ben McCormick
 
PDF
MEAN Stack Workshop at Node Philly, 4/9/14
Valeri Karpov
 
PPTX
Building rest services using aspnetwebapi
Brij Mishra
 
KEY
Celery
Yipit
 
PDF
Engage 2020: Hello are you listening, There is stream for everything
Frank van der Linden
 
PDF
Orchestrator for QlikView: add-on product description
Marco Zampieri
 
Automating JavaScript testing with Jasmine and Perl
nohuhu
 
NCUG 2019: Spring forward: an introduction to Spring boot and Thymeleaf for (...
Frank van der Linden
 
Saving Time By Testing With Jest
Ben McCormick
 
MEAN Stack Workshop at Node Philly, 4/9/14
Valeri Karpov
 
Building rest services using aspnetwebapi
Brij Mishra
 
Celery
Yipit
 
Engage 2020: Hello are you listening, There is stream for everything
Frank van der Linden
 
Orchestrator for QlikView: add-on product description
Marco Zampieri
 

What's hot (20)

PPTX
Making Watir and Cucumber an efficient tool for Web UI Automation
Ruslan Strazhnyk
 
PDF
Hello world - intro to node js
Refresh Annapolis Valley
 
PDF
A Day of REST
Scott Taylor
 
PDF
Symfony vs. Message Brokers
Gaetano Giunta
 
PDF
eMusic: WordPress in the Enterprise
Scott Taylor
 
PDF
Queick: A Simple Job Queue System for Python
Ryota Suenaga
 
PDF
Infinum Android Talks #05 - Square tape
Infinum
 
PDF
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Frank van der Linden
 
PPTX
Migration from ASP.NET MVC to ASP.NET Core
Miroslav Popovic
 
PDF
Live Coverage at The New York Times
Scott Taylor
 
PDF
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
PPTX
Don't roll your own HTTP server
Nordic APIs
 
PDF
Developer-friendly taskqueues: What you should ask yourself before choosing one
Sylvain Zimmer
 
PPTX
Designing a Docker Stack for Symfony apps: lessons learned
Gaetano Giunta
 
PDF
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Michael Coates
 
PPTX
Actors Set the Stage for Project Orleans
cjmyers
 
PPTX
ASP.NET: Present and future
Hrvoje Hudoletnjak
 
PDF
Progressive Enhancement using WSGI
Matthew Wilkes
 
PPTX
Celery workshop
Eswar Vandanapu
 
PDF
Webinar: Queues with RabbitMQ - Lorna Mitchell
Codemotion
 
Making Watir and Cucumber an efficient tool for Web UI Automation
Ruslan Strazhnyk
 
Hello world - intro to node js
Refresh Annapolis Valley
 
A Day of REST
Scott Taylor
 
Symfony vs. Message Brokers
Gaetano Giunta
 
eMusic: WordPress in the Enterprise
Scott Taylor
 
Queick: A Simple Job Queue System for Python
Ryota Suenaga
 
Infinum Android Talks #05 - Square tape
Infinum
 
Icon UK 2018 - Spring forward: an introduction to Spring boot and Thymeleaf f...
Frank van der Linden
 
Migration from ASP.NET MVC to ASP.NET Core
Miroslav Popovic
 
Live Coverage at The New York Times
Scott Taylor
 
How to Build Single Page HTML5 Apps that Scale
Phil Leggetter
 
Don't roll your own HTTP server
Nordic APIs
 
Developer-friendly taskqueues: What you should ask yourself before choosing one
Sylvain Zimmer
 
Designing a Docker Stack for Symfony apps: lessons learned
Gaetano Giunta
 
Virtual Security Lab Setup - OWASP Broken Web Apps, Webgoat, & ZAP
Michael Coates
 
Actors Set the Stage for Project Orleans
cjmyers
 
ASP.NET: Present and future
Hrvoje Hudoletnjak
 
Progressive Enhancement using WSGI
Matthew Wilkes
 
Celery workshop
Eswar Vandanapu
 
Webinar: Queues with RabbitMQ - Lorna Mitchell
Codemotion
 
Ad

Viewers also liked (18)

PDF
fuzesik_p3ffpq_pick_szeged_zrt_versenydolgozat
Kriszti F
 
PPTX
Evaluation question 3
Georgecartwright97
 
PDF
practica blog
mimascotachiky
 
PPTX
Introducción a la multimedia
lucho moreta
 
PDF
Machado - REPORT GC-MS Biofuels
John-Hanson Machado
 
PDF
EDGE LATAM VILDAGLIPTIN FORMAL PAPER 2014
JORGE ALMADA-ALBA. M.D
 
PPTX
Case histories Luigi Nespoli - slogan sintesi creativa
Luigi Nespoli
 
DOCX
Resume F
Dylan Essi
 
PDF
23870F LACAN Expert Forum_Prog_23May
JORGE ALMADA-ALBA. M.D
 
PPT
Dr. Steve Shelley - Multiple Utopias when exploring the future of work and th...
University of Hertfordshire
 
PPTX
Communicable Diseas: Tuberculosis
Bea Marie Palaca
 
PPTX
APRESENTAÇÃO E-DINHEIRO
INSTITUTO VOZ POPULAR
 
PDF
IMG_20151212_0016
Sivaram Selvarajan
 
PPT
психолог+логопед
Еленка Григоренко
 
DOCX
Resume Arnolis
Arnolis Salgueiro
 
PPTX
Railway reservation system
Abhishek Yadav
 
PDF
Global watch newsletter _ December 2015
Confederation of Indian Industry
 
fuzesik_p3ffpq_pick_szeged_zrt_versenydolgozat
Kriszti F
 
Evaluation question 3
Georgecartwright97
 
practica blog
mimascotachiky
 
Introducción a la multimedia
lucho moreta
 
Machado - REPORT GC-MS Biofuels
John-Hanson Machado
 
EDGE LATAM VILDAGLIPTIN FORMAL PAPER 2014
JORGE ALMADA-ALBA. M.D
 
Case histories Luigi Nespoli - slogan sintesi creativa
Luigi Nespoli
 
Resume F
Dylan Essi
 
23870F LACAN Expert Forum_Prog_23May
JORGE ALMADA-ALBA. M.D
 
Dr. Steve Shelley - Multiple Utopias when exploring the future of work and th...
University of Hertfordshire
 
Communicable Diseas: Tuberculosis
Bea Marie Palaca
 
APRESENTAÇÃO E-DINHEIRO
INSTITUTO VOZ POPULAR
 
IMG_20151212_0016
Sivaram Selvarajan
 
психолог+логопед
Еленка Григоренко
 
Resume Arnolis
Arnolis Salgueiro
 
Railway reservation system
Abhishek Yadav
 
Global watch newsletter _ December 2015
Confederation of Indian Industry
 
Ad

Similar to YAPC::EU 2015 - Perl Conferences (20)

PDF
Great Tools Heavily Used In Japan, You Don't Know.
Junichi Ishida
 
PDF
Steamlining your puppet development workflow
Tomas Doran
 
PDF
Puppet Camp New York 2014: Streamlining Puppet Development Workflow
Puppet
 
PPTX
BTV PHP - Building Fast Websites
Jonathan Klein
 
PPTX
Scrapy
Francisco Sousa
 
KEY
Cooking a rabbit pie
Tomas Doran
 
PDF
Building Awesome APIs with Lumen
Kit Brennan
 
ZIP
How we use Twisted in Launchpad
Michael Hudson-Doyle
 
PDF
Modern Web Framework : Play framework
Suman Adak
 
PDF
Understanding XHProf: Pinpointing Why Your Site is Slow and How to Fix it - S...
Ezra Gildesgame
 
PPTX
Background processing with hangfire
Aleksandar Bozinovski
 
PPTX
Silverlight vs HTML5 - Lessons learned from the real world...
Peter Gfader
 
PPTX
External JavaScript Widget Development Best Practices
Volkan Özçelik
 
PPTX
Java scriptwidgetdevelopmentjstanbul2012
Volkan Özçelik
 
PDF
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 
PDF
Benchmarking at Parse
Travis Redman
 
PDF
Advanced Benchmarking at Parse
MongoDB
 
PDF
Chirp 2010: Scaling Twitter
John Adams
 
PDF
Let's Get Real (time): Server-Sent Events, WebSockets and WebRTC for the soul
Swanand Pagnis
 
PDF
ekb.py: KISS REST API
Yury Yurevich
 
Great Tools Heavily Used In Japan, You Don't Know.
Junichi Ishida
 
Steamlining your puppet development workflow
Tomas Doran
 
Puppet Camp New York 2014: Streamlining Puppet Development Workflow
Puppet
 
BTV PHP - Building Fast Websites
Jonathan Klein
 
Cooking a rabbit pie
Tomas Doran
 
Building Awesome APIs with Lumen
Kit Brennan
 
How we use Twisted in Launchpad
Michael Hudson-Doyle
 
Modern Web Framework : Play framework
Suman Adak
 
Understanding XHProf: Pinpointing Why Your Site is Slow and How to Fix it - S...
Ezra Gildesgame
 
Background processing with hangfire
Aleksandar Bozinovski
 
Silverlight vs HTML5 - Lessons learned from the real world...
Peter Gfader
 
External JavaScript Widget Development Best Practices
Volkan Özçelik
 
Java scriptwidgetdevelopmentjstanbul2012
Volkan Özçelik
 
MEAN Stack WeNode Barcelona Workshop
Valeri Karpov
 
Benchmarking at Parse
Travis Redman
 
Advanced Benchmarking at Parse
MongoDB
 
Chirp 2010: Scaling Twitter
John Adams
 
Let's Get Real (time): Server-Sent Events, WebSockets and WebRTC for the soul
Swanand Pagnis
 
ekb.py: KISS REST API
Yury Yurevich
 

More from ℕicolas ℝ. (8)

PDF
Overloading Perl OPs using XS
ℕicolas ℝ.
 
PDF
2018 Perl Retrospective at Houston.pm
ℕicolas ℝ.
 
PDF
Lightning Talk Perl Test mock module
ℕicolas ℝ.
 
PDF
Perl XS by example
ℕicolas ℝ.
 
PDF
Introduction to Perl Internals
ℕicolas ℝ.
 
PDF
grep.metacpan.org
ℕicolas ℝ.
 
PDF
Amazon::Dash::Button
ℕicolas ℝ.
 
PDF
Perl object ?
ℕicolas ℝ.
 
Overloading Perl OPs using XS
ℕicolas ℝ.
 
2018 Perl Retrospective at Houston.pm
ℕicolas ℝ.
 
Lightning Talk Perl Test mock module
ℕicolas ℝ.
 
Perl XS by example
ℕicolas ℝ.
 
Introduction to Perl Internals
ℕicolas ℝ.
 
grep.metacpan.org
ℕicolas ℝ.
 
Amazon::Dash::Button
ℕicolas ℝ.
 
Perl object ?
ℕicolas ℝ.
 

Recently uploaded (20)

PPTX
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PPTX
Presentation about Database and Database Administrator
abhishekchauhan86963
 
PPTX
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
PDF
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
PDF
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
PDF
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
PPTX
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PDF
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
PDF
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
PDF
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PDF
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
PDF
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
PPT
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PDF
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
PDF
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 
Maximizing Revenue with Marketo Measure: A Deep Dive into Multi-Touch Attribu...
bbedford2
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
Presentation about Database and Database Administrator
abhishekchauhan86963
 
slidesgo-unlocking-the-code-the-dynamic-dance-of-variables-and-constants-2024...
kr2589474
 
An Experience-Based Look at AI Lead Generation Pricing, Features & B2B Results
Thomas albart
 
Using licensed Data Loss Prevention (DLP) as a strategic proactive data secur...
Q-Advise
 
On Software Engineers' Productivity - Beyond Misleading Metrics
Romén Rodríguez-Gil
 
ConcordeApp: Engineering Global Impact & Unlocking Billions in Event ROI with AI
chastechaste14
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Applitools Platform Pulse: What's New and What's Coming - July 2025
Applitools
 
vAdobe Premiere Pro 2025 (v25.2.3.004) Crack Pre-Activated Latest
imang66g
 
MiniTool Power Data Recovery Crack New Pre Activated Version Latest 2025
imang66g
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
lesson-2-rules-of-netiquette.pdf.bshhsjdj
jasmenrojas249
 
49785682629390197565_LRN3014_Migrating_the_Beast.pdf
Abilash868456
 
Why Reliable Server Maintenance Service in New York is Crucial for Your Business
Sam Vohra
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
ChatPharo: an Open Architecture for Understanding How to Talk Live to LLMs
ESUG
 
Salesforce Implementation Services Provider.pdf
VALiNTRY360
 

YAPC::EU 2015 - Perl Conferences