95
Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution L A T E X Solution Lessons learned Real Life Perl Glueing the Pieces Together Karl “CountZero” Moens FOSDEM 2013 2 nd of February 2013

Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Real Life PerlGlueing the Pieces Together

Karl “CountZero” Moens

FOSDEM 2013

2nd of February 2013

Page 2: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

I am a lawyer, working in an insurance broker’s office.

So my life would be very dull and boring if it was not for:

My Thai girlfriend and Perl

Page 3: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

I am a lawyer, working in an insurance broker’s office.

So my life would be very dull and boring if it was not for:

My Thai girlfriend and Perl

Page 4: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

I am a lawyer, working in an insurance broker’s office.

So my life would be very dull and boring if it was not for:

My Thai girlfriend and Perl

Page 5: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

I am a lawyer, working in an insurance broker’s office.

So my life would be very dull and boring if it was not for:

My Thai girlfriend and Perl

Page 6: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

Today we will speak about Perl.

Those who are only interested in Thai girlfriends may nowquietly leave the room.

Page 7: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

Who am I?

Today we will speak about Perl.

Those who are only interested in Thai girlfriends may nowquietly leave the room.

Page 8: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 9: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 10: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 11: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 12: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 13: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 14: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 15: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 16: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

Our insurance broker’s office manages the insurance ofmany different fleets of ships.This involves a lot of administration:

Issuing insurance policiesProviding “Certificates of Cover” (1 page summary ofthe policy)Making “Extracts of Cover” (more detailed summary)Updating and forwarding of fleet-lists. . .

Strange as it may seem, all this work was done manually. Aproject which included automating part of this work wasdiscontinued after three years and several 100 000e .

Page 17: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

I am always looking for ways to improve my karma.So I decided to write an application to automate theproduction of certificates, extracts, fleetlists, . . .And write it in 7 days or less.With no budget! And while still doing my normal job!!

Page 18: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

I am always looking for ways to improve my karma.So I decided to write an application to automate theproduction of certificates, extracts, fleetlists, . . .And write it in 7 days or less.With no budget! And while still doing my normal job!!

Page 19: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

I am always looking for ways to improve my karma.So I decided to write an application to automate theproduction of certificates, extracts, fleetlists, . . .And write it in 7 days or less.With no budget! And while still doing my normal job!!

Page 20: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

I am always looking for ways to improve my karma.So I decided to write an application to automate theproduction of certificates, extracts, fleetlists, . . .And write it in 7 days or less.With no budget! And while still doing my normal job!!

Page 21: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The Problem

I am always looking for ways to improve my karma.So I decided to write an application to automate theproduction of certificates, extracts, fleetlists, . . .And write it in 7 days or less.With no budget! And while still doing my normal job!!

Page 22: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 23: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 24: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 25: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 26: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 27: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 28: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 29: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 30: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The Solution

Constraint Solution

Only 7 days to provide aworking solution

RAD language (Perl, ofcourse)

No budget Free and Open Sourcebased

To be used by adminpeople who are Win-dows trained and haveno clue about CLI

???

Minimal install on user’sPC

Install Perl, . . . onshared network drive

Page 31: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 32: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 33: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 34: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 35: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 36: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — Analysis

Let’s find out how this business is done now.1 Finding and analyzing the various documents to be

produced; 3 types of documents found: fleetlist, extractof cover, certificate of insurance

2 These documents are all based upon a standard format(same per fleet; but different per insurance policy),however some ships may have additional clauses

3 Per fleet there is one spreadsheet with technical dataand one MSWord-file with “names” and “capacities”;these files are maintained by different admin people

4 Sometimes the client requires documents for the wholefleet, sometimes only for one or more vessels in thefleet

5 Vessels are regularly added and deleted from thefleets; technical data will be updated regularly: thismust be easy to do

Page 37: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — I have a plan!

1 The core of the application will be a templating engine.Perl has an abundance of these. I will chooseTemplate::Toolkit, it is easy to use, very flexibleand can contain some business logic in the templateitself. And I already have the “Badger book”.

2 The data for each fleet will be maintained in twospreadsheets. The MSWord file will be transformed intoa spreadsheet.Spreadsheet::ParseExcel::Simple makesreading Excel spreadsheets very easy.

3 The template will produce a LATEX-file and will have tobe “compiled” into a final PDF file. There are a numberof Perl modules to run the TEX-engine.

4 The Windows users will like to see a GUI for choosingwhich vessels to “run”. Wx, Tk/Tcl ??? I never usedthese before.

Page 38: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — I have a plan!

1 The core of the application will be a templating engine.Perl has an abundance of these. I will chooseTemplate::Toolkit, it is easy to use, very flexibleand can contain some business logic in the templateitself. And I already have the “Badger book”.

2 The data for each fleet will be maintained in twospreadsheets. The MSWord file will be transformed intoa spreadsheet.Spreadsheet::ParseExcel::Simple makesreading Excel spreadsheets very easy.

3 The template will produce a LATEX-file and will have tobe “compiled” into a final PDF file. There are a numberof Perl modules to run the TEX-engine.

4 The Windows users will like to see a GUI for choosingwhich vessels to “run”. Wx, Tk/Tcl ??? I never usedthese before.

Page 39: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — I have a plan!

1 The core of the application will be a templating engine.Perl has an abundance of these. I will chooseTemplate::Toolkit, it is easy to use, very flexibleand can contain some business logic in the templateitself. And I already have the “Badger book”.

2 The data for each fleet will be maintained in twospreadsheets. The MSWord file will be transformed intoa spreadsheet.Spreadsheet::ParseExcel::Simple makesreading Excel spreadsheets very easy.

3 The template will produce a LATEX-file and will have tobe “compiled” into a final PDF file. There are a numberof Perl modules to run the TEX-engine.

4 The Windows users will like to see a GUI for choosingwhich vessels to “run”. Wx, Tk/Tcl ??? I never usedthese before.

Page 40: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFirst Day — I have a plan!

1 The core of the application will be a templating engine.Perl has an abundance of these. I will chooseTemplate::Toolkit, it is easy to use, very flexibleand can contain some business logic in the templateitself. And I already have the “Badger book”.

2 The data for each fleet will be maintained in twospreadsheets. The MSWord file will be transformed intoa spreadsheet.Spreadsheet::ParseExcel::Simple makesreading Excel spreadsheets very easy.

3 The template will produce a LATEX-file and will have tobe “compiled” into a final PDF file. There are a numberof Perl modules to run the TEX-engine.

4 The Windows users will like to see a GUI for choosingwhich vessels to “run”. Wx, Tk/Tcl ??? I never usedthese before.

Page 41: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionSecond Day — Let’s get really started

Starting the day with cleaning up the “technical”spreadsheet and transforming the MSWord file into aspreadsheet. Note to self: make sure that the ship’snames are the same in both files.Writing the code to read in both spreadsheets and“objectifying” the data. Moose is a great module: justdescribe the data-structure and Moose practicallybuilds the objects for you. With some after magic thedata gets imported as soon as the name of thespreadsheet is added to the object.I realize it is not a good idea to hard-code the paths andnames of the spreadsheets: add a configuration file inYAML-format to contain this info. Use some BUILDmagic to parse the config-file and stuff the object withthe file-paths, triggering the loading of the data in theobject.

Page 42: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionSecond Day — Let’s get really started

Starting the day with cleaning up the “technical”spreadsheet and transforming the MSWord file into aspreadsheet. Note to self: make sure that the ship’snames are the same in both files.Writing the code to read in both spreadsheets and“objectifying” the data. Moose is a great module: justdescribe the data-structure and Moose practicallybuilds the objects for you. With some after magic thedata gets imported as soon as the name of thespreadsheet is added to the object.I realize it is not a good idea to hard-code the paths andnames of the spreadsheets: add a configuration file inYAML-format to contain this info. Use some BUILDmagic to parse the config-file and stuff the object withthe file-paths, triggering the loading of the data in theobject.

Page 43: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionSecond Day — Let’s get really started

Starting the day with cleaning up the “technical”spreadsheet and transforming the MSWord file into aspreadsheet. Note to self: make sure that the ship’snames are the same in both files.Writing the code to read in both spreadsheets and“objectifying” the data. Moose is a great module: justdescribe the data-structure and Moose practicallybuilds the objects for you. With some after magic thedata gets imported as soon as the name of thespreadsheet is added to the object.I realize it is not a good idea to hard-code the paths andnames of the spreadsheets: add a configuration file inYAML-format to contain this info. Use some BUILDmagic to parse the config-file and stuff the object withthe file-paths, triggering the loading of the data in theobject.

Page 44: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionThird Day — Weekend, but we keep’on working

Now that we have the object structure done, we canwrite the template files.Start by writing a LATEX-file on basis of theMSWord-“Extract of Cover”-file. All it really needs isadding LATEX structure commands and wrapping itinside an already existing style file importing ourhouse-style. Looks good! ©Doesn’t look good. § All accented characters arewrong. Changing all those by hand into their LATEXequivalents is bo-o-o-o-oring. Ah, Thai girlfriend is onYahoo Messenger. Spend the afternoon chatting. © ©

I realize the spreadsheets also contain accentedcharacters. I cannot ask the maintainers of these filesto input accents in LATEX-style (ö => \"{o}). Let’ssleep over it.

Page 45: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionThird Day — Weekend, but we keep’on working

Now that we have the object structure done, we canwrite the template files.Start by writing a LATEX-file on basis of theMSWord-“Extract of Cover”-file. All it really needs isadding LATEX structure commands and wrapping itinside an already existing style file importing ourhouse-style. Looks good! ©Doesn’t look good. § All accented characters arewrong. Changing all those by hand into their LATEXequivalents is bo-o-o-o-oring. Ah, Thai girlfriend is onYahoo Messenger. Spend the afternoon chatting. © ©

I realize the spreadsheets also contain accentedcharacters. I cannot ask the maintainers of these filesto input accents in LATEX-style (ö => \"{o}). Let’ssleep over it.

Page 46: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionThird Day — Weekend, but we keep’on working

Now that we have the object structure done, we canwrite the template files.Start by writing a LATEX-file on basis of theMSWord-“Extract of Cover”-file. All it really needs isadding LATEX structure commands and wrapping itinside an already existing style file importing ourhouse-style. Looks good! ©Doesn’t look good. § All accented characters arewrong. Changing all those by hand into their LATEXequivalents is bo-o-o-o-oring. Ah, Thai girlfriend is onYahoo Messenger. Spend the afternoon chatting. © ©

I realize the spreadsheets also contain accentedcharacters. I cannot ask the maintainers of these filesto input accents in LATEX-style (ö => \"{o}). Let’ssleep over it.

Page 47: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionThird Day — Weekend, but we keep’on working

Now that we have the object structure done, we canwrite the template files.Start by writing a LATEX-file on basis of theMSWord-“Extract of Cover”-file. All it really needs isadding LATEX structure commands and wrapping itinside an already existing style file importing ourhouse-style. Looks good! ©Doesn’t look good. § All accented characters arewrong. Changing all those by hand into their LATEXequivalents is bo-o-o-o-oring. Ah, Thai girlfriend is onYahoo Messenger. Spend the afternoon chatting. © ©

I realize the spreadsheets also contain accentedcharacters. I cannot ask the maintainers of these filesto input accents in LATEX-style (ö => \"{o}). Let’ssleep over it.

Page 48: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFourth Day — Weekend

CPAN CPAN CPAN! If everything else fails (andeven well before that), check CPAN. LaTeX::Encodeescapes and encodes utf-8 text into LATEX entities.In a few minutes all MSWord files are saved as text filesand LATEX-encoded. Turning these into a LATEX-file takesonly a few hours.All the variable information in the LATEX-file is replacedby Template::Toolkit tags and variables.Adding two lines to the script to run the templatethrough Template::Toolkit and it produces afinished LATEX-source fileAdd a back-quotes command to compile theLATEX-source file into a PDF-file.

Page 49: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFourth Day — Weekend

CPAN CPAN CPAN! If everything else fails (andeven well before that), check CPAN. LaTeX::Encodeescapes and encodes utf-8 text into LATEX entities.In a few minutes all MSWord files are saved as text filesand LATEX-encoded. Turning these into a LATEX-file takesonly a few hours.All the variable information in the LATEX-file is replacedby Template::Toolkit tags and variables.Adding two lines to the script to run the templatethrough Template::Toolkit and it produces afinished LATEX-source fileAdd a back-quotes command to compile theLATEX-source file into a PDF-file.

Page 50: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFourth Day — Weekend

CPAN CPAN CPAN! If everything else fails (andeven well before that), check CPAN. LaTeX::Encodeescapes and encodes utf-8 text into LATEX entities.In a few minutes all MSWord files are saved as text filesand LATEX-encoded. Turning these into a LATEX-file takesonly a few hours.All the variable information in the LATEX-file is replacedby Template::Toolkit tags and variables.Adding two lines to the script to run the templatethrough Template::Toolkit and it produces afinished LATEX-source fileAdd a back-quotes command to compile theLATEX-source file into a PDF-file.

Page 51: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFourth Day — Weekend

CPAN CPAN CPAN! If everything else fails (andeven well before that), check CPAN. LaTeX::Encodeescapes and encodes utf-8 text into LATEX entities.In a few minutes all MSWord files are saved as text filesand LATEX-encoded. Turning these into a LATEX-file takesonly a few hours.All the variable information in the LATEX-file is replacedby Template::Toolkit tags and variables.Adding two lines to the script to run the templatethrough Template::Toolkit and it produces afinished LATEX-source fileAdd a back-quotes command to compile theLATEX-source file into a PDF-file.

Page 52: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The SolutionFirst Day

Second Day

Third Day

Fourth Day

LATEX

Solution

Lessonslearned

The SolutionFourth Day — Weekend

CPAN CPAN CPAN! If everything else fails (andeven well before that), check CPAN. LaTeX::Encodeescapes and encodes utf-8 text into LATEX entities.In a few minutes all MSWord files are saved as text filesand LATEX-encoded. Turning these into a LATEX-file takesonly a few hours.All the variable information in the LATEX-file is replacedby Template::Toolkit tags and variables.Adding two lines to the script to run the templatethrough Template::Toolkit and it produces afinished LATEX-source fileAdd a back-quotes command to compile theLATEX-source file into a PDF-file.

Page 53: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX may have to run multiple times before the output file(PDF or DVI) stabilizes:

At least twice if there is a TOC at the front, or internalreferences, or (hyper)linksThree times if the document includes a bibliography oran indexFour or five times if there are complicated tablesspanning multiple pages

Page 54: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX may have to run multiple times before the output file(PDF or DVI) stabilizes:

At least twice if there is a TOC at the front, or internalreferences, or (hyper)linksThree times if the document includes a bibliography oran indexFour or five times if there are complicated tablesspanning multiple pages

Page 55: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX may have to run multiple times before the output file(PDF or DVI) stabilizes:

At least twice if there is a TOC at the front, or internalreferences, or (hyper)linksThree times if the document includes a bibliography oran indexFour or five times if there are complicated tablesspanning multiple pages

Page 56: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX may have to run multiple times before the output file(PDF or DVI) stabilizes:

At least twice if there is a TOC at the front, or internalreferences, or (hyper)linksThree times if the document includes a bibliography oran indexFour or five times if there are complicated tablesspanning multiple pages

Page 57: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX may have to run multiple times before the output file(PDF or DVI) stabilizes:

At least twice if there is a TOC at the front, or internalreferences, or (hyper)linksThree times if the document includes a bibliography oran indexFour or five times if there are complicated tablesspanning multiple pages

Page 58: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX produces many auxiliary files which litter yourhard-disk.In between runs you may need to run indexing programs orbibliographic databasesAfter having (re-)compiled a LATEX-file you must manuallystart a viewer to see the result.

Page 59: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX produces many auxiliary files which litter yourhard-disk.In between runs you may need to run indexing programs orbibliographic databasesAfter having (re-)compiled a LATEX-file you must manuallystart a viewer to see the result.

Page 60: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEX

LATEX produces many auxiliary files which litter yourhard-disk.In between runs you may need to run indexing programs orbibliographic databasesAfter having (re-)compiled a LATEX-file you must manuallystart a viewer to see the result.

Page 61: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 62: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 63: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 64: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 65: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 66: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 67: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 68: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 69: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 70: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

LATEXA make utility for LATEX

As TEX and LATEX compile your text input into an output file,why not use a make-like utility to help you?latexmk is a Perl script for running LATEX the correctnumber of times to resolve cross references, etc;It also runs auxiliary programs (bibtex, makeindex) ifnecessary, and dvips and/or a previewer as requested.It has a number of other useful capabilities:

start a previewer and then run LATEX whenever thesource files are updatedclean your workspace of unnecessary auxiliary files

Its current released version is 4.35 of 11th of November2012.http://www.phys.psu.edu/~collins/software/latexmk-jcc/or on CTAN (Comprehensive TEX Archive Network):http://www.ctan.org

Page 71: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 72: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 73: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 74: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 75: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 76: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionFifth Day

No work done on this project. I had to attend to someclaimfiles.

Business as usual.

Page 77: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and GUI

I produced some documents and they seemed OK.Time to write the GUI shell around the script.I discover I am too “old school” to write GUI shells. I willnever be able to learn how to do it in a few hours time.

Page 78: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and GUI

I produced some documents and they seemed OK.Time to write the GUI shell around the script.I discover I am too “old school” to write GUI shells. I willnever be able to learn how to do it in a few hours time.

Page 79: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and GUI

I produced some documents and they seemed OK.Time to write the GUI shell around the script.I discover I am too “old school” to write GUI shells. I willnever be able to learn how to do it in a few hours time.

Page 80: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and non-GUI

Instead of a GUI, I will show a numbered list of the vesselsin the CLI and allow input of a list of these numbers whichwill produce the documents for these vessels.Parse::Range will allow input such as 1,3,5-20 whichparses as 1, 3, 5 to 20. Cool! That will impress the admingirls for sure.I run a whole fleet and show this to the admin girls forchecking.

Page 81: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and non-GUI

Instead of a GUI, I will show a numbered list of the vesselsin the CLI and allow input of a list of these numbers whichwill produce the documents for these vessels.Parse::Range will allow input such as 1,3,5-20 whichparses as 1, 3, 5 to 20. Cool! That will impress the admingirls for sure.I run a whole fleet and show this to the admin girls forchecking.

Page 82: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSixth Day — Testing and non-GUI

Instead of a GUI, I will show a numbered list of the vesselsin the CLI and allow input of a list of these numbers whichwill produce the documents for these vessels.Parse::Range will allow input such as 1,3,5-20 whichparses as 1, 3, 5 to 20. Cool! That will impress the admingirls for sure.I run a whole fleet and show this to the admin girls forchecking.

Page 83: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 84: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 85: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 86: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 87: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 88: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

SolutionFifth Day

Sixth Day

Seventh Day

Lessonslearned

The SolutionSeventh and Final Day

The admin girls found about 20 errors in the documents.

Some typos: easily correctedThey like the dates in “human” format rather than’2012-10-25’. Nothing that can’t be easily solved withthe DateTime module.Some vessels have additional special clauses or adifferent insurance arrangement. This logic was putinside the template: no need to change the applicationitself. Template::Toolkit allows even raw Perl tobe included if necessary.

All I have to do is to install some shell scripts on the admingirls PCs so they can run the application themselves.

Page 89: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

What did we learn?

Perl makes difficult things possible, fast.The Power of CPAN is awesome!Perl glues many different open and closed sourcetechnologies together.Perl is very much alive and kicking, but hides itself well.Perl Progammers always get the nicest girls.

Page 90: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

What did we learn?

Perl makes difficult things possible, fast.The Power of CPAN is awesome!Perl glues many different open and closed sourcetechnologies together.Perl is very much alive and kicking, but hides itself well.Perl Progammers always get the nicest girls.

Page 91: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

What did we learn?

Perl makes difficult things possible, fast.The Power of CPAN is awesome!Perl glues many different open and closed sourcetechnologies together.Perl is very much alive and kicking, but hides itself well.Perl Progammers always get the nicest girls.

Page 92: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

What did we learn?

Perl makes difficult things possible, fast.The Power of CPAN is awesome!Perl glues many different open and closed sourcetechnologies together.Perl is very much alive and kicking, but hides itself well.Perl Progammers always get the nicest girls.

Page 93: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

What did we learn?

Perl makes difficult things possible, fast.The Power of CPAN is awesome!Perl glues many different open and closed sourcetechnologies together.Perl is very much alive and kicking, but hides itself well.Perl Progammers always get the nicest girls.

Page 94: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The End

A job well done!

The boss and the office girls are grateful. Thank you Perl!Now if only I could write a script to answer the 500+ emailsthat arrived while I was writing Perl scripts.

Page 95: Real Life Perl - archive.fosdem.org · Real Life Perl Karl “CountZero” Moens Who am I? The Problem The Solution LATEX Solution Lessons learned Who am I? I am a lawyer, working

Real Life Perl

Karl“CountZero”

Moens

Who am I?

The Problem

The Solution

LATEX

Solution

Lessonslearned

The End

A job well done!

The boss and the office girls are grateful. Thank you Perl!Now if only I could write a script to answer the 500+ emailsthat arrived while I was writing Perl scripts.