The author is a developer and trainer in perl and PHP with several years of professional experience in both areas. While leaning strongly towards solutions involving the horde framework he also solved problems with perl catalyst, moose, CakePHP, wordpress, facebook api, PHP Symfony and Zend Framework.
Get my GPG key for secure communication.
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v2.0.22 (GNU/Linux)
mQGiBEcMloQRBADafXIRRYJN8V0k3KNtWq/TFxyEAKC+PvBfBE4evBPsGzS21BV0
xagaa2X6v2IAXFGGnc4CUzgKC11JN+EknEHuEumYCshFnqYLcy+26GPm5YF1Md0c
Yf7cdfx7eT5bE745Bzj4XSn7SlE+KRNERO5d9L4aJ4mcU2cOaqId5B52lwCg+e6F
+Efh6lPrUKZdLKjsOw5Qg4MD/30D3P/s8MUOhGRintjLtYpPu7YtAr48cjo1oDdS
5zhjUUG8tNhQzdGC3bNrVbo6P9cEJj6kikiu5xA1Hah+vLYajSINthB0CHBJgqO3
90UkkDdwaOiAzlo8Yfjqm7ti1l67snE6q7jCxbFDO7dcXFIV0AiGZ9vSsRU7c2+l
IDLmA/47k3Q3lEc8otiic52vZzuaRUGd7wU/IRlNNK3Fz4C+vkXk6awtoezRuDjH
QrOCyFMowGeiCg5h62o0YxPs6Y89DWZl0JESGeRoRjR71j2oTas9kQGoALy0VsbN
PtxzOjRKN2oRATIxz2SIyDQJaEIFNhvc0xFVA9KbzkkeiO0jd7RBUmFsZiBMYW5n
IChSYWxmIExhbmcgLSBTb2xlU3lzdGVtcy5kZSkgPHJhbGYubGFuZ0Bzb2xlc3lz
dGVtcy5kZT6IYAQTEQIAIAUCRw1k/wIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheA
AAoJEArNXbByf1+wSZcAn1i21qGqhw4dX4XDEKHgL1SkzE3tAKDRso1p/uP/a2fG
EFYjaioHUdlpL4hGBBARAgAGBQJIDDxqAAoJEL4UXD5GA6Dj7woAoIbuJr8vqu02
23rhA/06fGlzNJSRAJ9kUBPKizMOt+zMaoqQw9JoykQGGIhGBBIRAgAGBQJIOqbJ
AAoJED5kfdaUHxiD09QAoL17UNS0Skewx6TleWtjXYnLGW2tAJ9+eQgmBeerQIGG
dZ8SyLa9pXV5TohGBBIRAgAGBQJIOqbXAAoJEJ+Gqx5e6DaavwMAnjNFwW+mLjJB
F/CeQEqAiFqc+msYAJ9q9yw5sPQpjKoXA+C0bSB6RvXWXokCHAQTAQIABgUCSafZ
aAAKCRBN5l9RTa+4ElYIEAC8JjLzQKmf5IigwJ1Er7PQc/WhJgLJ03u0PW8F7rbw
rCQMqWybUpLThZdnPtvq8eVX+1TR7uuAFe00x3bBWvEWtByZS2eqXjJlCe7Nls0V
WN5gEELDW3T28edkZ/ujX9wWZyEOG3F4ldVXKlj1ouyYQsKdnhqhH2UT66ZB3deW
tNI03i/ca1SJpfTDoh8Kv7Loh2ratuV6MAspTAOYCAtYS3Nkl3gavh+1lR3rR7mv
LUGUtbo5aLorJ8KCEARmG1PS4eIne/0JABs26tO/llXHHBbBrQ1BsSH64bjH+t1c
F1KOCsWnhcCL6RDyqJI1gypyI6jpK5SzHEsciaML7P0RF1PZXbvNkX6GajD41tY+
H7KUVnOXj5ul5useOwKUxfM6SMP59YO3B8M9DIM5uiICFTQd/CNegnqhVHf+e/8E
DTGKKPbPmFKHHcwIOZVg8DkC6GFJppLPpABlC4J8Wg8E0BaX9wPxF09BUrZX9ti+
Ek8lLlMowf/OeE3U8tpnWjAhvJXjxmbxVzske9nKdDoAx5tL2sQAqoajyX49XLGj
ynyJSNOF+eZ8yTd/vJ9Amfk5BPU8Ld+ewy7xU+zFuIFTRoGPX2Z4Y67ZjlbUFg9W
2TSLl9BhjmiTP4bUGV4+tGK4LLYCh8eRzFUAFpVpr1z35PcuyLU+x8k8d7pUmITt
ZohGBBARAgAGBQJKx4+SAAoJEFzv2/PISIkBuSgAn2M0/pOCp5MMS23izhTcam9+
kcFPAKDMFaX7c+SVGxbY765D6bR5+jUHKLRNUmFsZiBMYW5nIChCMSBTeXN0ZW1z
IElUIENvbnN1bHRhbnQgJiBUcmFpbmVyIFJhbGYgTGFuZykgPGxhbmdAYjEtc3lz
dGVtcy5kZT6IYwQTEQIAIwIbIwYLCQgHAwIEFQIIAwQWAgMBAh4BAheABQJKjldy
AhkBAAoJEArNXbByf1+wARkAoMauGRrwMblJ0B0vSc6hgnei19eTAKDQn2EfsjOC
BgOBBcrv8w0vH5/rMIhGBBARAgAGBQJIDDxuAAoJEL4UXD5GA6DjVmwAoI7Ntfjq
+6j4JQib7VGSowibeiA7AJwM1IA8kujzj1tNKaJHPF7DaOYuWYhGBBARAgAGBQJK
m6teAAoJEMLKWkTEN8qGHpkAoNjEyPvHs4i1p/GhwDLAn3568miBAKCCd2tp+hgn
dFv+MU0ovYQ9gOvOVIhGBBARAgAGBQJKm7P1AAoJEMLKWkTEN8qGmPoAoIy3bGNg
m/GxNtrujPA/jZgRGVQqAJ4jrQSfh1rVjpXNaRfl1QrqJ+xugYhGBBIRAgAGBQJI
OqbJAAoJED5kfdaUHxiDdPUAn14UQfBZ7gbFoEH1hMe/0VZ3sMQ/AKCTsmsZy9b8
zJjiAkjuyomMJzKGyIhGBBIRAgAGBQJIOqbXAAoJEJ+Gqx5e6DaaJBIAoK4HgZ81
KHmi3HMw+ZrEw/Z6ZaxUAKC2Cz2nahaK4Vo2LwiUpLvLzhSYTYhgBBMRAgAgBQJH
DJaEAhsjBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCs1dsHJ/X7DRIwCfZ1Tf
gmIZW8nB4WX4AnfgXO/mQMcAn0Bw+r/IBzdVVT6GkLj0Y6mugdEdiQIcBBMBAgAG
BQJJp9loAAoJEE3mX1FNr7gSt9AQAMWs2EoddT7s/iN9INiIfzC9Zk+g4GBWni2+
RKS26+H/CcbB1S9LdP1QkAP9YC/u5rbzgNWS1B6MA3PGnW8EEoGCaiYxL88DIqwX
bEQUHTTAwfLmmQb+i6B4OrN9L4RrBoMViDu89xEwVODxxoTxTv6VNEr+IsxmTU/w
3vfkDkaUTZx87AzeOnHKvMMcL+58eVjOgxYewyRF5PvyHEtKOXcXOWQnM2cdrG23
bCOelCvFbu70oUMCYkEphh15u4F3TnC/t9hYiKsaLw0xyWlJnfgv8aI9CSmuTjqf
GucOxiepVl97D3LdUfndqfUXutYu3ajRRwDzfpd8IQCVIXkgTMFB+hdlBu8EjoFY
BBD5iqTo1d+mLj9kVcMlWnUQNlCO8izNjGs5bw9RZ75rZ3GkCG+ImmJ1wscZA05J
7PUahOIEgHlotGZtTgI11aHL7mSAl1ZwBuVFYnhqf8jbYPIwOy2jssOcI/TsZpuM
bxRFHJT2rI2Yw1xemNtLfddnUvPdDIRiTZ8gqTVIUST17PQRSMkFYVD2hdAsTVVd
cp90gPv4HCnBTHoHdly5UvGl0fc33EV3vMR5/rEQxjlI4yEtmZ8ohHpby6KFLIBI
dzfvp5IupCZJCIG3KdDiiRR4dtmSSnPBSXpivYeU53051ULQaGThGGrUmRolSd3R
TJ2/gjl+iEYEEBECAAYFAkqO1B0ACgkQ7RS5XC+Mp42Z+QCdFS8pGyGkvtK3TLse
RonOZEmu7nEAniffLpri4Wf3BBE54aT0IAfVMa3kiEYEEBECAAYFAkrHj4sACgkQ
XO/b88hIiQEICQCfTRlK7hDSkUNuSLYgsJpH/UFHIKYAn1Spmzu2mWpWnHwwm1ST
XdXtHaCwtDFSYWxmIExhbmcgKHJhbGYtbGFuZy5kZSkgPHJhbGYubGFuZ0ByYWxm
LWxhbmcuZGU+iGAEExECACAFAkqOV8cCGyMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRAKzV2wcn9fsCvaAKC2kCmV3ot8GWth6renakM8wJFR7ACfT4i8Ta+YeNZu
KKtqt122NmlItXKIRgQQEQIABgUCSscoyAAKCRC+FFw+RgOg4108AJ9gPocn5qXV
9ScnORixblYuQ4BkgwCfVvfdgx6MHvA/D9PpdAHkTcITEA2IRgQQEQIABgUCSseP
kgAKCRBc79vzyEiJARn1AJ957LAEjMT9FL0R8vXcC745lLhQggCfXZ198e0f7HN6
yIOAxbeh8AXChLO5BA0ERwyWwBAQALAo88w91cwvI8jrpY8nfBK2iaSsG2smn2Yo
XHVDGRDzpBTn77C1lX9OszCgFPTP6qIOqgch+BPdEg04m0PHcktaG1eOaYKDU1Gg
5dEBjATeqGgYgDiD6NofR//GunVNiiZwKBXUXL9K3+Ht0+2PzQeqYnPwMV50t+1j
al4pD6b8ztbT7fdVcmInzsFnhlI+PWgy+bxb3xzYhSC/+huF1nbq4OOxffCT9E9X
/RrZUw6aGi6H+XW/Qnd5BMWLlXIGClZM70wf0eQDMPbcURSKycugZY/cKVO6/PYG
sbZzQ+ATKxjKqM6oBnDB7T9BDe3eUEJPmhs7ZfuTRfIt05ne4pQ6kMHdht1H4uKc
dCiQdfmpj0ELmLS222NlMA1ncHZhyBvrAZdzUo441IArpDvhatloe+LlyN9N5xzu
KyEtILKCtfapO59xOZO7tMS1OKYdSRNGyxQ5Wq9Jf4LL7itJSmt7fmYtfMdrtcuc
YnUkIonujg2qatp49EZkrYZXXqnV304/djd/vIuDsMJJsYK0sfGPQCfZD3Siw0zl
MD5FpD9scaYfW5psHQuQPTA9JFciP1T+sh8h7RS2LSxscUEYFa/Nj29p79stWjhL
rINYKPyxLPlwKgaKdtyKcA6VQa1GgipTyjpXzCbc4zLXRVpIM4Aa9Ots4/B8n3MA
zHxBwlY7AAMFD/9fOQXN+OMduUMZYLgCP8W52vSiQ3iHN27/HViLvB3mHAQFtGtZ
9auxP4V1A48QXxvG90Wox1ShDP9WDTgly+I+LjNmEFLYMXs7SiSj8FqeH4d+NzYW
ijT1fVGIXLjFlMPkH9ooiOiVaTWvnXMNL//OgSZhBNn1w299arUOdIBUoBe3AhTU
cW7PkMwi6VSrDT4clD7qQKo4Fa2daU6i9OAuJOwZWg068Qvzkyc8Dges+PKpCd3c
aLEmTtp1c/JdDQl/NsagiLl8pOrSQ9nlHl52fOo3hzKRJcehIp4itoFUZaEfLr25
R+LKwEzs1+XHUy/TtzL//4ElUrYuyki6z0K2bTNXMXp7eXy9WRNla/IRRnMZq6dH
zW0xZHc5MXNrS+4yrG9+dKL43tlc8G/5cejYoEGGG2jweBplmFShKSqGDvisKqcA
iKiDWUkDnobbYjZznNKkt/9M7UJjk0LDavDx5oE7NQkDX7l3YNX3acfmgnHOcmLS
HydjdeUR97Qgd3xZrs6Uo4o+QRQNSIn0lZgZq+Lj9VkHgvGMEgDuPIE4SKMjl5wR
smdW6r4DYeLs3uaUZvIOeos/qb41YFzoEVyDLC72ZrImNlRr4kWXERA48Zb5DJ1c
JrQ5YNXfvjSDoGtMFJhwtl91wmWLU7Pm+UCPwAsCKLr8uDswwQFWef4LHIhJBBgR
AgAJBQJHDJbAAhsMAAoJEArNXbByf1+wNBAAoJ4qzZ3o3FyAaIyblSDMv/8UfkPC
AKCWPaqy+g9ftbUTcEIPel9znV18E5kBogRHDIszEQQA3ItdRVy19Et9s4GAnnUv
oK/w2Ax30vUKp5oPP8uWf0aBCZFDq3ZGS18IYGqYy8wJN/WAzjl9ZWlrj29tlssj
zgUH7QE6QVoyPyE/DlLpviVu8rdpmLd6XlTzmYMB/RdpDkSvRP3pVNXyoFIXA2tJ
Uzpr8ZyK8slvN3f4e7zw+TcAoJQuT+0mGYNLRAMrdGDRwBNl1t87BAC6A+LlNbXC
CnWHk1Kxjg8dhcoTyKbEby3yDzv6C6qQgrEwVOtxNH6HZ0JsaAmzl9uajKX4uAuW
q6+gL8SpbqQ64evTwMVPVlm+naIiDCAPe1YbkSgFkFCgr0e0GKtUeH6OTsO04Lrw
/nUxHwJ5glVb4iK6Lg300uybCFtGgfk+SQQAqD3LBPIIU5CtIFCDMcFZ7weE7h1Q
dGoU0D+XqnrzlvArx10kvYY3q0su/KkFFgFWmdhpgkFXmfEW8WDa4xWu3r/vnzgW
waMTOONdbMzAJneU8VBusfNLB+fvRfvwVmsi+trpMdLe0+eVw/OrexCSdDGiGjL8
ya8faowTzkzGbrSIZQQgEQIAJQUCRwzSFx4dAXVzZSB0aGUgNzI3RjVGQjAga2V5
IGluc3RlYWQACgkQQRAwMvjc2UUjcgCeNdlZ7CCssch9Q6tPJTrgOb5qx/0AoJGH
m3EPKZVXjHUgTbEihgoKjBjGtE1SYWxmIExhbmcgKEIxIFN5c3RlbXMgSVQgQ29u
c3VsdGFudCAmIFRyYWluZXIgUmFsZiBMYW5nKSA8bGFuZ0BiMS1zeXN0ZW1zLmRl
PohgBBMRAgAgBQJHDIszAhsjBgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQQRAw
Mvjc2UVtMACfU3j5hlB+ZsZHkmvtM4D6Kw8jaDsAn0SXDGYhygZTvdRIuQYoGBg8
koqdiEYEEBECAAYFAkcM1oMACgkQCs1dsHJ/X7B7JgCfaEJ8QEuzvENxPzbF30gT
2dzqo1EAoKNHfYKU4EITmFfEicfWuKQAbDUmuQQNBEcMi5gQEAC8QSgJXJXa0Ac0
ElKRmrWNooABCFpWYBUd5hwpOcsSJXQwGUe1ASNpdc/hLTYGhrGt+xRzHzSxWPeU
IowHsXEe8NfhyZ2eUgpC1Vn41/IVTVtADb04j5NMR7AJULr/GIKpb+ayzOPBMLeJ
9YLJo5kkU4QFjeRHAPJ6QfyuY+RRtJZoqAdtZXl/fKOg6NUIruSJYLko4qdDlhqW
19QySiMQ/Jeq5NYPQsYJT+eofcQ4RrK1UqpN5Tbojpinb6uTQd2Dkz5gRhjAW/dq
2zfT0PxlhlnGA7tP60hlfQebgirhBjuHc94SXB07K5HCKruFmCK6e3w9TaFEZvAw
wNLZ1DwCwkmhWwPMwT82MAGRgF9Ar+5ASqXRNOEDsDlVYrWuMfZ/YoPICAptOc9h
U/Jko8RJdJxqafqQbY6kzZPXlg/jPK1Cjs3Gt5BKxtsfaloSZyJLOKAdz8hh8K7b
/YOTeyhNVsYl14VT/x/fpbqDPiuqN7SkzBhzg8F2Sp5WuQXUyDbHRovwnebrW4ml
FH7U6EBLBMFF2kYEUgsSkjNIWWw/fz9e5kMlh6CxCTx0DXRyqQmCr68bYZf3/Iqg
mXqOhPpbB7HqleltqeCeXJDQLOXlc2BVp2dC135X46UXS8DG0gH90DBYIdoumwvv
mARwci4bvYqplVlH/LhyIz1VxrLuGwADBQ/9G9SXviNHKLT8HhL/bE6Ap0C2op8B
x+Ew+3lWLzo2WB+R36OxugBLBdZbkGj1cfkrYDqZpBHVa+53KJuRPLauwxI/4Fuq
z0+FR9biKYAcnoLDtOaHNQN4kH70etKL0qe+xRrgHDqaNmIoO2fSu/iKiWOfy+AE
KmXKUnyjqcPsgQKibdVuelyxz+UyydsBgX+mfXdIWs9hYEaPANQd6pwweao95uoI
YM1eud+A/CObUaQ64d4KbE87dm6inmqZ2qzPAQFBVNBO1X1mgeltG5rMEALj4kHM
JeOcc1icDxjcMCmgXmdipJGd5MU4mr+xmNBZBSw1yFIuNgAX8w/Nf5ykcWWz/59/
koTXqKzE2dob6aJU9nZH+eP2XaOw+YJdvSe83q6jlsl07ecrIkxMbzqYedeOz2/L
FDgpeqfk8uGhrfpdwPGRLM2wzrVAkSSnqa12Ga1iC2Mv71pT9I86mulnb/0PAR9L
b1kZw0dSHmnrZ05hxmpRXmGfAuvbQsH/pXfrmJqzxDzEWDzMd0i0/Luv//IddkBQ
ozvxJB/ZsHE2FTpRHbN+2OXeWa0/Kq7jEJ4KFpFp/+/slbs1QSyCPiydNHkRy2fk
xBaOfvzqSvNAqyym8XUopgD+ArjVSD3L/TdmyvVIrWlc6kiRWJjr4UlGCHtzPn+C
aE6LSaSUy6rCNp6ISQQYEQIACQUCRwyLmAIbDAAKCRBBEDAy+NzZRWLQAJ470qQy
qm/FwkcLJGKef30Q5bvpkwCfa67x45Uz9JhVm5eDjhFaiQUQkM8=
=5AYj
—–END PGP PUBLIC KEY BLOCK—–