About
Welcome to my small private homepage, on which I upload various tips related to software development. Usually these deal with problems I encountered and where no solution was available somewhere else online, so hopefully this material is useful to you.
License
Any of the material published here by Philipp Ludwig is licensed under a Creative Commons Attribution 4.0 International License .
Contact
If you would like to contact me, just write an e-mail to: bloginput (ât) philippludwig.net
Use my PGP key:
-----BEGIN PGP PUBLIC KEY BLOCK----- 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 x81XIcO5sQotJvc= =7Rnp -----END PGP PUBLIC KEY BLOCK-----