SlideShare a Scribd company logo
1 of 23
Download to read offline
Things we love and hate about
           Perl @
Tevreden.nl - Facts & Figures


Vision: Improving the general
satisfaction for the Netherlands
  4th gen. satisfaction research

Divided into approx. 25 markets
  Generic market platforms
  Specific customer platforms
Tevreden.nl – e.g. Platform
Facts & Figures – Evaluation RMS


25 markets, 80 specific platforms
5M invitations sent
1M responses and counting
200k responses in 2012 alone
268,793 lines of Perl 5 code
5 full time developers
Steady 30% growth
Love (about Perl)




Paolo Margari (flickr)
Love Perl

Flexible
Timtowtdi
Expressive
Atmosphere
Straightforward
Non pretentious
Exclusivity
Syntax
TAP
Love Perl




Great
Community
(perlmonks, perlmongers, CPAN);
Challenges - Ugly code




                         paul bica (flickr)
Challenges - Ugly code




                         ralphrepo
Challenges - CPAN vs Apt

CPAN
 API Changes
 Dependencies
 Consistent deployment of
 packages
    Autobundle
 Developer love
Apt
 No emotion
Challenges - CPAN vs Apt




                           nebojsa mladjenovic
Challenges - mod_perl on Apache




                                  digitalART2(flickr)
Challenges - mod_perl on Apache

Performance per http request
  Apache::SizeLimit
     Band-aid
     Counterproductive
     Works
  Apache::Registry
     Soap::Lite
       PerlRun
Challenges - Character Encodings




                               sacks08 (flickr)
Challenges - Character Encodings

   Multiple choice                  (UTF8 vs the rest)
use Encode;
Encode::_utf8_off($val);
utf8::downgrade($val);     # remove utf8-flag, convert to 8bit if necessary
utf8::decode($val);        # convert UTF-X to the right characters
utf8::upgrade($val);       # convert the string to utf8, set the utf8 bit
$val =~ s/x(.{2})/decode("iso-8859-1",sprintf("%c",hex($1)))/eg;




   Input (Web, Templates, SOAP, Excel)
   Transformation
   Output (PDF, browser, e-mail)
Challenges – Like a Chained Giant




                                    VinothChandar(flickr)
Challenges - timtowtdi

Performance
Use taint, use strict
5.6 vs 5.10 vs 5.18
Make research data available
  Comprehensible
     Summarize, interpret
  Even historic data
Love (using Perl)




Paolo Margari (flickr)
LAMP

Linux
  Ubuntu Server, Hardy .. Quantal
Apache
  Recent 2.4 version
MySQL
  Recent 5.5 version
  OLTP and OLAP
Perl
  Code runs on 5.10-5.18
How We Scale, Simplified
Our Current Challenge

Choosing the right test framework
 Test::Simple
 Test::More
 Testing race conditions

Single point of failure
  Testing
  Building
  Releasing
Bio

Pascal Vree Bsc
  Open source tinkering since 1996
  Twitter: @pascalvree
  nl.linkedin.com/in/pascalvree

Bas Bloemsaat LL.M.
 Open source tinkering since 1993
 Twitter: @bbloemsaat
 nl.linkedin.com/in/basbloemsaat
Questions?

More Related Content

Similar to Things we love and hate about Perl @ Tevreden.nl

Scaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraScaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraJim Dowling
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6Wim Godden
 
What we can learn from Rebol?
What we can learn from Rebol?What we can learn from Rebol?
What we can learn from Rebol?lichtkind
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldModern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldSATOSHI TAGOMORI
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14ActiveState
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4Open Networking Summits
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)goccy
 
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...Hirofumi Iwasaki
 
Apache Flink Training: System Overview
Apache Flink Training: System OverviewApache Flink Training: System Overview
Apache Flink Training: System OverviewFlink Forward
 
Design for Scalability in ADAM
Design for Scalability in ADAMDesign for Scalability in ADAM
Design for Scalability in ADAMfnothaft
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersRaphaël PINSON
 
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Face
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging FaceINTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Face
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Faceapidays
 
Specialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingSpecialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingPositive Hack Days
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleacme
 
Infrastructure and Tooling - Full Stack Deep Learning
Infrastructure and Tooling - Full Stack Deep LearningInfrastructure and Tooling - Full Stack Deep Learning
Infrastructure and Tooling - Full Stack Deep LearningSergey Karayev
 
The why and how of moving to php 7
The why and how of moving to php 7The why and how of moving to php 7
The why and how of moving to php 7Wim Godden
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationAudrey Tang
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsStijn Decubber
 

Similar to Things we love and hate about Perl @ Tevreden.nl (20)

Scaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa ClaraScaling TensorFlow with Hops, Global AI Conference Santa Clara
Scaling TensorFlow with Hops, Global AI Conference Santa Clara
 
The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6The why and how of moving to PHP 5.5/5.6
The why and how of moving to PHP 5.5/5.6
 
What we can learn from Rebol?
What we can learn from Rebol?What we can learn from Rebol?
What we can learn from Rebol?
 
Modern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real WorldModern Black Mages Fighting in the Real World
Modern Black Mages Fighting in the Real World
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
 
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)これからのPerlプロダクトのかたち(YAPC::Asia 2013)
これからのPerlプロダクトのかたち(YAPC::Asia 2013)
 
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...
Java EE 7 with Apache Spark for the World’s Largest Credit Card Core Systems ...
 
Apache Flink Training: System Overview
Apache Flink Training: System OverviewApache Flink Training: System Overview
Apache Flink Training: System Overview
 
Design for Scalability in ADAM
Design for Scalability in ADAMDesign for Scalability in ADAM
Design for Scalability in ADAM
 
Cfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF SuperpowersCfgmgmtcamp 2023 — eBPF Superpowers
Cfgmgmtcamp 2023 — eBPF Superpowers
 
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Face
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging FaceINTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Face
INTERFACE by apidays 2023 - Open Source ML, Omar Sanseviero, Hugging Face
 
Specialized Compiler for Hash Cracking
Specialized Compiler for Hash CrackingSpecialized Compiler for Hash Cracking
Specialized Compiler for Hash Cracking
 
How CPAN Testers helped me improve my module
How CPAN Testers helped me improve my moduleHow CPAN Testers helped me improve my module
How CPAN Testers helped me improve my module
 
CMSC 330 QUIZ 4
CMSC 330 QUIZ 4CMSC 330 QUIZ 4
CMSC 330 QUIZ 4
 
Infrastructure and Tooling - Full Stack Deep Learning
Infrastructure and Tooling - Full Stack Deep LearningInfrastructure and Tooling - Full Stack Deep Learning
Infrastructure and Tooling - Full Stack Deep Learning
 
The why and how of moving to php 7
The why and how of moving to php 7The why and how of moving to php 7
The why and how of moving to php 7
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 Implementation
 
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.jsTensorFlow meetup: Keras - Pytorch - TensorFlow.js
TensorFlow meetup: Keras - Pytorch - TensorFlow.js
 

Things we love and hate about Perl @ Tevreden.nl