This week we welcome Tim Arnold (@jtimarnold) as our PyDev of the Week! Tim co-authored Black Hat Python, 2nd Edition: Python Programming for Hackers and Pentesters. If you’re interested in hacking or pentesting, you might want to check out that book!
Let’s spend some time getting to know Tim better!
Can you tell us a little about yourself (hobbies, education, etc): for No Starch.
I really, really, like to read just about anything. Besides that, I like hacking, lock picking, and to get into the woods which has been especially important during the pandemic.
Also, I’m interested in photography, finding new work by others and practicing it myself.
Why did you start using Python?
A long time ago, I took over a project at my job that was all Python, so I had no choice.
But it didn’t take long for me to fall in love with its simplicity and expressiveness.
What other programming languages do you know and which is your favorite?
What projects are you working on now?
My day job is building and maintaining a publishing system from end-to-end. It starts with technical source content marked up in LaTeX and ends with documentation in PDF, XML, and HTML. I created the system completely from open source software, and the core is written in Python.
Which Python libraries are your favorite (core or 3rd party)?
I think we all take the standard library for granted. It has some devilishly useful libs. The os package? indispensable!
For 3rd party, my workhorse lib is plasTeX, which converts LaTeX source documents into a document object model. And of course I really love lxml the xml/html parsing lib. It makes dealing with either xml or HTML very easy.
How did your book, Black Hat Python, come about?
It was a twisty path. Justin Seitz wrote the Black Hat Python, First Edition in 2015. I was teaching some cybersecurity classes for our local ISSA in 2018 and I did a web-based course using his book as the text.
I loved the book and got in touch with Justin and NoStarch Press and in 2019 we decided to work on a new Edition. So with the Second Edition, I refactored the code and updated it to Python 3.x. Also I included a little more code explanation, based on what I experienced in teaching with the book.
It keeps the great scenarios from Justin and I recoded the examples using some of the enhancements in Python like context managers, f-strings, the ipaddress module, and so on.
What have you learned about writing or being an author since writing the 2nd edition?
Writing the second edition was a roller coaster. Sometimes I felt in over my head and that I’d hit a wall. And sometimes it was just plain fun: knowing where I wanted to go and that I knew how to do it.
Building stuff (and writing about it) is exciting. Sometimes I think of programming as interacting with a user but separated in space and time. After writing this edition, now I think of writing as teaching but separated in space and time.
Is there anything else you’d like to say?
I’ve seen a few language-specific cultures and I am impressed with the Python community and glad to be part of it. I remember a while back on UseNet that I’d see a beginner ask a poorly formed question and think ‘uh oh, this is going to be bad…’, but the responses would be so helpful and patient. I think the community is so respectful, helpful, and inclusive. Impressive people make for an impressive culture.
Thanks for doing the interview, Tim!