PyCharm 1 week Update
I’ve been using PyCharm for about a week now across a couple projects. I’d like to note a few things I’m really enjoying:
- PyCharm is aware of your venv config and you can use it to pip install new packages. Ok, so pip is easy to use for installing. But it also provides a quick at-a-glance view of the packages you’ve installed and their versions - and I find it easier to view than a pip freeze.
- I know KDevelop has this for C++, but it doesn’t really have the same support for Python - being able to run my Python files from within PyCharm as well as being able to run the debugger from within PyCharm is like how new cars unlock for you when you get close. It’s not necessary. It’s not even that huge of an improvement. But it’s a quality of life thing that you miss when it’s not there.
- PyCharm is very smart about git. With KDevelop, I could add files withink the GUI (which is nice for making sure the project is aware of the file and provides a quick visual cue). But then I had to remember to git add it (either in the GUI or on the commandline). With PyCharm, every time I add a file through the GUI, it asks me if I want to add it to version control.
PyCharm asking if I want to add the new file to source control
Reviving and Revamping my btrfs backup program Snap-In-Time
If you’ve been following my blog for a long time, you know that back in 2014 I was working on a Python program to create hourly btrfs snapshots and cull them according to a certain algorithm. (See all the related posts here: 1, 2, 3, 4, 5, 6, 7, 8, 9) The furthest I ever got was weekly culling. Frankly, life and school contributed a good excuse not to keep going because I had created a huge headache for myself by attempting to figure out the date and cover all the possible corner cases with unit tests. This is what my code looked like in 2014.
Programming Tools Q12020
I decided to document the tools I’m using for development since the various programming subreddits I frequent always have someone asking what tools they should be using.
IDEs/Editors
Linux
As I wrote in September, I’ve moved to using KDevelop for my larger projects.
KDevelop
Its built-in Python parser (working with flake8) has helped me find a lot of issues before getting to the stage of running flake8. The GUI for pushing commits to git has been very helpful in helping remind me what has changed and even (sometimes) noticing something I forgot to add to git. Its project-wide search has been invaluable when refactoring or renaming functions/classes. When it comes to large, complex programs, it’s hard to beat KDevelop when using KDE. That said, it’s only recently that the developers have started focusing away from being only a C++ editor and as you’ll see at the end of this blog post, for my Python workflow, I might be switching away.
New Dishes I cooked in Feb 2020
1 Hour Pizza
Quesadilla
Very low number of new dishes. Mostly because I was obsessed with programming and Gwent.
Both recipes were from America’s Test Kitchen. The pizza recipe was a challenge to be able to make a pizza that would be ready in an hour and not suffer too much from not having the pizza ferment for a few days. I thought it was alright. Despite liberally dusting the pizza peel, had a hard time getting the pizza off.
Hey, Pycharm, hey.
Back in September I wrote about moving to KDevelop for my larger Python projects and also staying with Kate for my smaller projects. I’ve REALLY been enjoying all the features as I work on more and more complex packages involving lots of files. But for a few episodes of Python Bytes now (and/or maybe Talk Python to Me - they share a host) they’ve been talking about how awesome it is to use an IDE that has a Python debugger built in. It may be that KDevelop has that ability (I’m pretty sure it does for C++), but I’m not sure. I am nearly certain that Pycharm does have a debugger built-in. A while ago I’d set up the Pycharm COPR repo on my laptop. I tried playing with it a little at the time, but I was coding on a very small project without a venv, so things didn’t work out well. (Pycharm is pretty opinionated about the way a Python project should work)
Scarlett Portraits
It was time to take some portrait shots of Scarlett. As I was getting set up, I decided that I wanted to try something new; something I’d struggled with before, but never been able to succeed at - a flash highlight of a black background. I’d seen Gavin Hooey use the technique to great success on his Adorama TV show on Youtube. But somehow I’d just never been able to get it to work well. So I decided to try and mess around with the setup before the photo shoot. Eventually, I found something that worked well for me. I think, reviewing the photos for the fifth time now, that as I have it set up, it works best for the closeup shots. For the 3/4 shots, it probably should have been either dropped a little lower or maybe pulled away from the background a bit more to spread it out a bit more. The setup looked like this:
EL Donation Tracker (v4.1.1)
It’s been 5 months since I last wrote about ELDonation Tracker, my software for tracking Extra Life donations for use during a livestream or VOD. I’ve been quite busy since then! First, I used Github pages to make a site for the software to make it a little easier for those who are just users and don’t intend to do any development. They don’t have to navigate Github to try and figure out how to get the program and use it. Then, by reading Serious Python I learned about Sphinx, which can automatically create documentation out of your docstrings. I also learned that all these “readthedocs” pages I’d seen springing up with all the projects I care about were leveraging the fact that readthedocs.io will use your Sphinx documentation to create hosted documentation. So now I have some great documentation for my software. Finally, it’s my SECOND bit of software to go up on PyPi:
Podcasts I'm Listening to In 2020
I’ve both added and dropped some podcasts since last time around. Where I’m listing the same podcast as last year I may use the same description as in the past with slight (or no) variation.
Public Radio
Radiolab – Heard about them because sometimes their stories are used on This American Life. Radiolab is a lot like TAL except with a much bigger focus on sound effects. It is, in a way, the descendant of the old radio shows of the 30s and 40s. (Approx 30-45 min)
Review: Soleil (The Illumination Paradox, #3)
My rating: 1 of 5 stars
It is a real bummer for me to give this book 1 star. I really enjoyed the first book in the trilogy. The second book was fun. But this book… kind of just felt like perhaps this series should have been a duology instead of a trilogy. While the first third or so was a good bit of fan service, it could have maybe just been a post-script novella? The rest of the book was just full of the introduction of all sorts of new rules and technology to the way the world worked that I didn’t think made sense in the third book of a trilogy. On top of that, the last chunk - from when our main characters end up in a canyon until the end just didn’t make any god forsaken sense. (view spoiler)[Who rebuilt the dead people? I kept thinking it was all going to end up being a dream or parallel universe or something (hide spoiler)]
Review: Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More
Serious Python: Black-Belt Advice on Deployment, Scalability, Testing, and More by Julien Danjou
My rating: 5 of 5 stars
This is an AWESOME book that has completely transformed the way I code in Python. That might sound like the opening to a parody review, but I’m being sincere. One of the best things about Python is that it has a low barrier to entry and it’s easy to get started programming. One of the worst things about Python is that it has a low barrier to entry and it’s easy to get started programming. I’ve been going through the past 15ish years with just a surface-level understanding of my favorite programming language.