Download - 20130202 fosdem love n hateperl latest

Transcript
Page 1: 20130202 fosdem love n hateperl latest

Things we love and hate aboutPerl @

Page 2: 20130202 fosdem love n hateperl latest

Tevreden.nl - Facts & Figures

Vision: Improving the general satisfaction for the Netherlands

4th gen. satisfaction research

Divided into approx. 25 marketsGeneric market platforms Specific customer platforms

Page 3: 20130202 fosdem love n hateperl latest

Tevreden.nl – e.g. Platform

Page 4: 20130202 fosdem love n hateperl latest

Facts & Figures – Evaluation RMS

25 markets, 80 specific platforms5M invitations sent1M responses and counting200k responses in 2012 alone268,793 lines of Perl 5 code5 full time developersSteady 30% growth

Page 5: 20130202 fosdem love n hateperl latest

Pao

lo M

arga

ri (f

lickr

)

Love (about Perl)

Page 6: 20130202 fosdem love n hateperl latest

Love Perl

FlexibleTimtowtdiExpressiveAtmosphereStraightforwardNon pretentiousExclusivitySyntaxTAP

Page 7: 20130202 fosdem love n hateperl latest

GreatCommunity(perlmonks, perlmongers, CPAN);

Love Perl

Page 8: 20130202 fosdem love n hateperl latest

paul

bic

a (f

lickr

)

Challenges - Ugly code

Page 9: 20130202 fosdem love n hateperl latest

Challenges - Ugly code

ralp

hrep

o

Page 10: 20130202 fosdem love n hateperl latest

Challenges - CPAN vs Apt

CPANAPI ChangesDependenciesConsistent deployment of packages

AutobundleDeveloper love

AptNo emotion

Page 11: 20130202 fosdem love n hateperl latest

Challenges - CPAN vs Aptnebojsa m

ladjenovic

Page 12: 20130202 fosdem love n hateperl latest

digi

talA

RT

2(fli

ckr)

Challenges - mod_perl on Apache

Page 13: 20130202 fosdem love n hateperl latest

Challenges - mod_perl on Apache

Performance per http requestApache::SizeLimit

Band-aidCounterproductiveWorks

Apache::RegistrySoap::Lite

PerlRun

Page 14: 20130202 fosdem love n hateperl latest

Challenges - Character Encodings

sack

s08

(flic

kr)

Page 15: 20130202 fosdem love n hateperl latest

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)

TransformationOutput (PDF, browser, e-mail)

Page 16: 20130202 fosdem love n hateperl latest

Vin

othC

hand

ar(f

lickr

)

Challenges – Like a Chained Giant

Page 17: 20130202 fosdem love n hateperl latest

Challenges - timtowtdi

PerformanceUse taint, use strict5.6 vs 5.10 vs 5.18Make research data available

ComprehensibleSummarize, interpret

Even historic data

Page 18: 20130202 fosdem love n hateperl latest

Pao

lo M

arga

ri (f

lickr

)

Love (using Perl)

Page 19: 20130202 fosdem love n hateperl latest

LAMP

LinuxUbuntu Server, Hardy .. Quantal

ApacheRecent 2.4 version

MySQLRecent 5.5 versionOLTP and OLAP

PerlCode runs on 5.10-5.18

Page 20: 20130202 fosdem love n hateperl latest

How We Scale, Simplified

Page 21: 20130202 fosdem love n hateperl latest

Our Current Challenge

Choosing the right test frameworkTest::SimpleTest::MoreTesting race conditions

Single point of failureTestingBuildingReleasing

Page 22: 20130202 fosdem love n hateperl latest

Bio

Pascal Vree BscOpen source tinkering since 1996Twitter: @pascalvreenl.linkedin.com/in/pascalvree

Bas Bloemsaat LL.M.Open source tinkering since 1993Twitter: @bbloemsaatnl.linkedin.com/in/basbloemsaat

Page 23: 20130202 fosdem love n hateperl latest

Questions?