Welcome to the weekly series “Meet The Champion”.
Last week we spoke to Andrezgz, the winner of Perl Weekly Challenge - 028.
Today we are talking to the Perl Weekly Challenge - 029 winner Dave Jacoby. I hope you are going to enjoy the interview.
Mohammad: Tell us about your technical background?
Dave: My first degree was in Journalism, but while I was told there was a language requirement for college, the school I attended had a computers requirement, which I did not meet, so I took a remedial course in
BASIC. There are two things I remember from that:
GOTOs are not good (but probably not for the reasons Dijkstra believed) and that computers are deterministic and don’t do random at all, which I learned when my page of random numbers was repeated when I ran it again.
My job search in writing was utterly unsuccessful, so I went back and received a Computer Science degree, which was primarily taught in C++.
Mohammad: How/When did you start using Perl/Raku?
Dave: I worked during my CS with the a campus computer department. I was at first a static web guy, with a second responsibility of being the librarian for the documentation library. I would guess this was about Perl 5.004 or so. During one summer, I took a directed study and wrote a CGI web system for maintaining the library, with links from the ISBN to Amazon (and I think O’Reilly?), back-ending to a flat-file database, where I used pipes as separators, because text about books commonly has commas.
Being basically a Web guy, and thus a gobs-of-text guy, the thought of doing this sort of work with stdio.h and strings.h seemed nightmarish. I’m sure I wrote a “Hello World” C++ CGI thing, but beyond that, no.
Mohammad: How did you come to know about “Perl Weekly Challenge”?
Dave: Pretty sure I saw it on Perl Weekly.
Mohammad: What do you like the most about “Perl Weekly Challenge”?
Dave: The domain of problems I regularly solve with Perl is narrow, relating to webby things and task-automation on research Linux systems. A lot of
SELECT * FROM table and
MODIFY table SET field=1 things, and these challenges bring in things that aren’t normally in my wheelhouse.
I used to use Sudoku puzzles to get my brain into the problem-solver mindset on Monday mornings, but I find myself using the Challenge for that purpose. (I did write a fairly naive Sudoku solver once, as well.)
And as an add-on, previous things like Perl Golf encouraged the most clever and unreadable code, and this format very much encourages a well-documented explanation of how you thought through the problem, which is better for you and for people learning from you.
Mohammad: Is there any thing you would like to change?
Dave: I’m not the most into the number theory kind questions, where you find the palindromic primes and the like. But those weeks, where I’m just not feeling the problem, I know that many others are loving it.
Mohammad: How much time you dedicate every week to “Perl Weekly Challenge”?
Dave: A couple hours, maybe.
Mohammad: Do you checkout others solutions and who is your favourite?
Dave: Not as often as I probably should. My friend Mark Senn writes up his Perl 6 solutions, which I skim on occasion. They are valuable ways to find the other ways to do it.
Mohammad: What do you suggest someone just started the weekly challenge?
Dave: When I was starting with Perl in the first place, I knew there were things I understood pretty well (layout, HTML), things I understood some (HTTP, programming) and things I just did not, like data storage. My friend Kyler Laird, one of the go-to Perl Hackers in the group, told me “Don’t be afraid to use flat-file databases”.
Programming can be an endless deep-dive into mind-flaying complexity if you let it. Now that I know and love SQL and MongoDB and kinda like Redis, I would have many choices to build that library tool around, but then I didn’t understand them, getting access to the database systems would be administratively complex, and the problem was hard enough for me without even starting to worry about the concurrency issues you can run into with such a simple solution. Like I’d be having that many users writing at the same time.
So, write it at the level you can understand it, and don’t worry about getting to that next level of coolness. Don’t be afraid to use flat-file databases.
Mohammad: Do you find the website user friendly? What do you like most?
Dave: On the whole, yeah. If it was my project, there are some things I would move around, but it’s like you want the bikeshed to be red and I want it to be blue, y’know?
I like that there’s now that curation step, and if I was more of a beginner, that would be a valuable resource for comparative code. Such a great idea.
Mohammad: Anything else you would to like share with us?
Dave: I love my language community for so many reasons — YAPC/TPC, the great collection of pre-invented wheels that is CPAN, resources like Perl Weekly, Perl.com, many good people watching the
perl tag on Stack Overflow — and this is another great addition.
That brings the end of the conversation with Dave Jacoby. Please do let us know your view. We will come back next week with another champion.