<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Blind Not Dumb (Posts about tools)</title><link>https://www.feoh.org/</link><description></description><atom:link href="https://www.feoh.org/categories/tools.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2026 &lt;a href="mailto:feoh@feoh.org"&gt;Chris Patti&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-nc-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-NC-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Mon, 02 Mar 2026 00:41:15 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>2021 - The Year Windows Became a First Class Python Development Environment</title><link>https://www.feoh.org/posts/2021-the-year-python-became-a-first-class-python-development-environment.html</link><dc:creator>Chris Patti</dc:creator><description>&lt;p&gt;&lt;em&gt;[06/08/2021 Update: Added a bit about Windows Terminal. Dunno how I forgot that the first time around!]&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;As I've written about previously and elsewhere, I felt so badly burned by Apple's laptop
hardware design decisions of a few years ago that I've rather fallen out of love with that platform for my personal work. The latest hardware is much better, but I feel like the message has been sent and received, so I'm not rushing back any time soon.&lt;/p&gt;
&lt;p&gt;My first choice was the Linux desktop, and after months of struggling, instability and accessibility issues I'll admit I've been looking for stable, solid alternatives that are also powerful enough to get the job done and maybe even have something new to offer. As an old dog, sometimes it's really nice to be taught some new tricks!&lt;/p&gt;
&lt;p&gt;If you've tangoed with Windows in the past, and found yourself struggling against its rather byzantine UI, I'd urge you to read on and see if maybe it's not time for another careful look.&lt;/p&gt;
&lt;p&gt;Since choosing the right tools is all about your unique set of needs, I'll use those as categories to drive the discussion and showcase how Windows is doing a great job of satisfying them.&lt;/p&gt;
&lt;h3&gt;In The Beginning, There Was The Command Line!&lt;/h3&gt;
&lt;p&gt;One of the things that first drew me to UNIX decades ago was the shell. The ability to get pretty much ANYTHING I needed done by typing a few commands, and to create &lt;strong&gt;incredibly&lt;/strong&gt; powerful mechanisms by stringing them together is downright intoxicating.&lt;/p&gt;
&lt;p&gt;I still love me some Bourne shell, it's just as powerful today as it was decades ago. However &lt;a href="https://docs.microsoft.com/en-us/powershell/scripting/overview?view=powershell-7.1"&gt;Windows Powershell&lt;/a&gt; has some incredibly powerful paradigms of its own that are worth looking into.&lt;/p&gt;
&lt;p&gt;In addition to things like object pipelines and desired state configuration that
the UNIX shell simply can't do, modern Powershell has creature comforts like &lt;a href="https://ohmyposh.dev/"&gt;Oh My Posh&lt;/a&gt; that make for a very comfortable work environment. Here's a screenshot of mine:&lt;/p&gt;
&lt;p&gt;&lt;img alt="My Oh My Posh Prompt" src="https://www.feoh.org/images/OhMyPoshScreenshotSmol.png"&gt;&lt;/p&gt;
&lt;p&gt;You can see that I get all kinds of nice status like exit code of last command, current git branch, current Python version and virtual environment, etc.&lt;/p&gt;
&lt;p&gt;While Powershell is indeed a totally different beast from the UNIX shell I'm used to, its built in help for &lt;strong&gt;every&lt;/strong&gt; command and understandable syntax make the learning curve feel rather shallow indeed.&lt;/p&gt;
&lt;p&gt;Another gripe most UNIX users have when coming to Windows is that everything requires mousing around and futzing with a GUI, and it can feel like you're trapped in an endless series of installer screens to get even your basic working tools installed. Modern Windows obviates all that with &lt;a href="https://www.slashgear.com/microsofts-winget-1-0-released-for-real-heres-why-you-want-it-01675425/"&gt;winget&lt;/a&gt; a full fat package manager with tons of common applications already in there. Just &lt;code&gt;winget install git&lt;/code&gt; and you're off to the races :)&lt;/p&gt;
&lt;h3&gt;Before The Command Line, There Was The Terminal&lt;/h3&gt;
&lt;p&gt;As anyone who's worked with Windows for a long time could tell you, in the old days, the Windows Console was pretty primitive. You were basically dealing with MS-DOS CMD.EXE with the barest modicum of window dressing. Needless to say, this is 2021 and that's just not cutting it.&lt;/p&gt;
&lt;p&gt;Thankfully, there is a superlative alternative that's really come into its own in 2021 - &lt;a href="https://github.com/microsoft/terminal"&gt;Windows Terminal&lt;/a&gt;. Finally all the features anyone who's been working in the UNIX world have come to expect over the last 30 years are available on Windows as well. Multiple tabs, excellent terminal emulation, great theming and color support, and the ability to seamlessly handle different shells per tab. I regularly keep a Powershell and a WSL tab open for my work.&lt;/p&gt;
&lt;p&gt;If you've ever struggled along with the old CMD.EXE, fighting for every cut, paste or insert, this really is a game changer.&lt;/p&gt;
&lt;h3&gt;I Hate Meeces To Pieces! (Really, Don't Make Me Use the Mouse!)&lt;/h3&gt;
&lt;p&gt;As someone who's partially blind and has fine and gross motor impairment, using the standard Windows Icons Mice and Pointers user interface is downright agonizing. I need to be able to launch apps with just a few keystrokes. On the Mac, &lt;a href="https://www.alfredapp.com/"&gt;Alfred&lt;/a&gt; fulfills this role admirably and adds a whole host of next level productivity power ups in addition to keyboard app launching.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;very&lt;/strong&gt; recent addition on the Windows side that seems equally powerful and easy is Microsoft Powertoys &lt;a href="https://docs.microsoft.com/en-us/windows/powertoys/run"&gt;Powertoys Run&lt;/a&gt; feature. I can launch apps, bind keys to actions, and access system functions like sleep, restart and the like all 100% from the keyboard. Nice!&lt;/p&gt;
&lt;p&gt;Another Powertoys addition that's frosting my Pop-tarts is &lt;a href="https://docs.microsoft.com/en-us/windows/powertoys/keyboard-manager"&gt;Powertoys Keyboard Manager&lt;/a&gt; which allows me to remaps the dread CAPS LOCK key to Ctrl so it's right next to my pinky as God Intended :)&lt;/p&gt;
&lt;p&gt;This simple enhanment has been impossible with Windows forever without resorting to more drastic measures, so having it work pretty much out of box now is super sweet.&lt;/p&gt;
&lt;h3&gt;Python - It Takes a Cast of Thousands to Raise a Platform&lt;/h3&gt;
&lt;p&gt;If you'd uttered the words "Python" and "Windows" in the same sentence a few years back, the average Pythonista would have rolled their eyes or groaned and then proceeded to tell you a war story about how they had to spend weeks trying to get some critical module or other working.&lt;/p&gt;
&lt;p&gt;Those days are just straight up gone. Microsoft and the Python community at large have poured countless engineer hours into making the Python ecosystem a truly first class experience under Windows. Virtual environments, poetry, and even tools for installing and managing command line scripts that integrate with the shell like &lt;a href="https://pypi.org/project/pipx/"&gt;pipx&lt;/a&gt; work just great under Powershell on Windows.&lt;/p&gt;
&lt;p&gt;And if by chance you're coding something up that's native UNIX to its very core, Windows *&lt;em&gt;still&lt;/em&gt; has you covered. Cue the Windows Subsystem for Linux!&lt;/p&gt;
&lt;h3&gt;WSL - I See Penguins!&lt;/h3&gt;
&lt;p&gt;With the avent of WSL2 and most recently &lt;a href="https://github.com/microsoft/wslg"&gt;WSL-g&lt;/a&gt; you really do have everything you need to seamlessly build, debug and run Linux programs on Windows, including those that require X/Wayland GUI support or sound.&lt;/p&gt;
&lt;p&gt;It's not just some kind of compatibility shim, it's an &lt;strong&gt;actual&lt;/strong&gt; Linux kernel running in Windows. The integration is so complete these days that you can run things like Docker within WSL successfully. That's a really big deal!&lt;/p&gt;
&lt;p&gt;Also, most of the popular mainstream development tools like &lt;a href="https://www.jetbrains.com/pycharm/"&gt;Pycharm&lt;/a&gt; and &lt;a href="https://code.visualstudio.com/"&gt;Visual Studio Code&lt;/a&gt; have superlative support for deploying to and debugging in WSL built in.&lt;/p&gt;
&lt;p&gt;The amount and quality of work Microsoft has put into this is truly impressive. And unlike the Mac, you're not actually using some oddball FreeBSD user space running atop the Mach microkernel, you're running 100% Linux. It's turtles all the way down.&lt;/p&gt;
&lt;h3&gt;I Go Where The Innovation Is &amp;amp; Use What Works&lt;/h3&gt;
&lt;p&gt;As a technologist, I'm proud of the success I've had in sniffing out pockets of high velocity, high value innovation in the technology landscape.&lt;/p&gt;
&lt;p&gt;Years ago, I was running Linux when many people were either using DOS, pre OSX MacOS or super expensive prorietary vendor workstations like Sun's Sparc. Being able to have an honest to god UNIX environment on commodity hardware was like Prometheus's gift of fire to the mortals. It really was that big a deal.&lt;/p&gt;
&lt;p&gt;I still think the Linux desktop has incredible potential, but for me the obstacles imposed by my disabilities and the lack of accessibility features can be a real buzz and productivity killer.&lt;/p&gt;
&lt;p&gt;So here I am embracing a desktop that works, with an ecosystem that works and a rather large well heeled company pouring resources into bar raising and innovation.&lt;/p&gt;
&lt;p&gt;I look forward to exploring and leveraging the incredible potential this platform represents. Stay tuned for more posts as I go!&lt;/p&gt;</description><category>desktop</category><category>development</category><category>programming</category><category>python</category><category>tools</category><guid>https://www.feoh.org/posts/2021-the-year-python-became-a-first-class-python-development-environment.html</guid><pubDate>Wed, 02 Jun 2021 21:54:00 GMT</pubDate></item><item><title>I don't WANT to let go! The Media Rip Saga - Part 1: Formats and Tools.</title><link>https://www.feoh.org/posts/i-dont-want-to-let-go-the-media-rip-saga-part-1-formats-and-tools.html</link><dc:creator>cpatti</dc:creator><description>&lt;p&gt;[caption id="attachment_498" align="aligncenter" width="300"]&lt;img alt="image1" class="size-medium wp-image-498" src="https://feohorg.files.wordpress.com/2018/03/14119218-music-brain-as-a-musical-mind-as-a-creative-genius-with-musical-notes-representing-the-craft-of-comp.jpg?w=300" style="width: 300px; height: 300px;"&gt; A Musical Mind[/caption]&lt;/p&gt;
&lt;p&gt;A coworker at my previous job once said in response to my whining a bit about having just lost 700 songs from my digital music library "Let go of your music collection!".  That got me thinking, long and hard.&lt;/p&gt;
&lt;p&gt;Why?&lt;/p&gt;
&lt;p&gt;Why &lt;strong&gt;am&lt;/strong&gt; I lugging around this corpus of several thousand compact discs? Why &lt;strong&gt;do&lt;/strong&gt; I have several shelves worth of DVDs? Why don't I simply let go of the whole idea of media ownership and just drink from the infinite fire-hose that is the internet?&lt;/p&gt;
&lt;p&gt;Because, when push comes to shove, my media is &lt;strong&gt;part of me.&lt;/strong&gt;  My CD collection represents innumerable fond memories of places, people and moments I've moved on from but that inhabit special places in my heart and mind.&lt;/p&gt;
&lt;p&gt;You may have heard the theory that when one sense is diminished, the brain compensates by heightening another. I'm partially blind, so many if not most of my fond memories have a soundtrack. Being able to listen to that particular album and feel some semblance of that moment wash over me is like having a personal time machine.&lt;/p&gt;
&lt;p&gt;Oh hey, there's that Autechre album, not available anymore anywhere as far as I can tell. That was one of the first times ever that I was &lt;strong&gt;really&lt;/strong&gt; turned on by electronica. Music plays in my mind's eye - one of my best friends and I walking into a record shop on Newbury Street. And there's that Boiled In Lead CD I got the day after I was invited to an incredibly cool private concert at a farm in NH by a friend who's since passed away. Neither of these things is on Spotify near as I can tell. If I let go, I lose them, and an aspect of those fond memories along with them.&lt;/p&gt;
&lt;p&gt;But I'm getting older - in fact I turn 50 in a few months. Having moved countless times I have begun to feel the weight of my possessions. I recognize that I am privileged in that I &lt;strong&gt;can&lt;/strong&gt; make this choice. Not everyone is lucky enough to be able to buy a NAS (Network Attached Storage) and spend their leisure time converting their media collection into a giant bag of bits. I count myself lucky.&lt;/p&gt;
&lt;p&gt;So, now that you've heard way more than you ever wanted to know about &lt;strong&gt;why&lt;/strong&gt; I chose to embark upon this epic project, let's talk turkey in case you're thinking about doing this for yourself.&lt;/p&gt;
&lt;p&gt;Preserving all your media in virtual form can create a veritable labyrinth of choices. As with all things, I suggest keeping it simple. I'll tell you what my choices were and maybe even offer another option or two along the way, but mostly I'll be guiding you through my process as it has evolved for my purposes.&lt;/p&gt;
&lt;p&gt;First let's answer a basic question: What kind of media do you want to preserve? In my case the answer is simple. My collection consists entirely of CDs and DVDs, as well as a handful of Blu-ray discs.&lt;/p&gt;
&lt;p&gt;The first big choice - to compress or not to compress? Compressing your media will save you disk space, but cost you in terms of fidelity. The movies you rip won't look exactly as they did on disc, and the music you rip won't be exactly as it was in its original form either.&lt;/p&gt;
&lt;p&gt;I will not go down the rabbit hole of trying to convince you of any particular absolute truth, but my ultimate destination ended up being "I &lt;strong&gt;never&lt;/strong&gt; want to have to do this again and I want no loss in quality".&lt;/p&gt;
&lt;p&gt;So, on the video side, I don't use any compression at all. I rip my movies straight to &lt;a class="reference external" href="https://www.matroska.org/"&gt;Matroska&lt;/a&gt; video or ".mkv" files. This format is incredibly rich and versatile, and also has the advantage of being open source. Why do I care one might ask? See above - I &lt;strong&gt;NEVER&lt;/strong&gt; want to do this again :) So I don't want to be beholden to some company or other deciding that the format I chose is changing, going away, or under license dispute. These are &lt;strong&gt;my&lt;/strong&gt; bits embodying &lt;strong&gt;my&lt;/strong&gt; legally purchased media. Full stop.&lt;/p&gt;
&lt;p&gt;On the audio side, I was able to take advantage of an excellent format called &lt;a class="reference external" href="https://xiph.org/flac/"&gt;FLAC. &lt;/a&gt;It provides some compression so as to save space, but most important for me is the fact that it's lossless, so I lose no fidelity at all in my ripped copy. This format is also open source, and the author is a fellow Somervillian :)&lt;/p&gt;
&lt;p&gt;Having made the important decisions about format, let's choose appropriate tools.&lt;/p&gt;
&lt;p&gt;For the video side, I chose &lt;a class="reference external" href="https://www.makemkv.com/"&gt;MakeMKV&lt;/a&gt;. It's cross-platform (Mac, Linux, Windows), has a very straight forward user interface, and is dirt cheap. You can download it for free, but to rip Blu-ray discs, you have to pay them $5 or $10 to unlock the decoder. Trust me, for the power this tool offers, give them their money. They've earned it. This was one of the only tools I could find that made ripping both Blu-ray and DVD discs easy while also giving me the flexibility I needed. A number of lesser tools I tried had nice user interfaces, but were rife with bugs. making it nearly impossible to extract the raw bits with no compression.&lt;/p&gt;
&lt;p&gt;Another critical tool if you want to rip TV series from DVD is a little thing called &lt;a class="reference external" href="https://www.filebot.net/"&gt;FileBot&lt;/a&gt;. It will rename the files to conform to what Plex requires.&lt;/p&gt;
&lt;p&gt;For the rare case where multiple episodes in a TV show are glommed into one big file, I chose &lt;a class="reference external" href="https://mkvtoolnix.download/"&gt;MKVToolNix&lt;/a&gt; to split .mkv files into usable chunks  I'm unsure whether it's worth the effort, especially for series with lots of episodes.&lt;/p&gt;
&lt;p&gt;On the audio side, I used &lt;a class="reference external" href="https://tmkk.undo.jp/xld/index_e.html"&gt;XLD&lt;/a&gt; for the Mac. It's on par with Xact Audio Copy for Windows, the most highly regarded audio ripper out there near as I can tell. It rips to FLAC effortlessly and the developer maintains a very high quality checksum database of every CD that's been ripped with the tool so you can be sure that your results are crystal clear and bit perfect. I've had Linux folks ask about something similar for them, and I haven't been able to find anything yet. Sorry about that. If someone finds something that does similar things and has a nice UI, do let me know.&lt;/p&gt;
&lt;p&gt;You'll also need a place to put the resulting bits. A really safe place. This is a labor intensive effort, and you really don't want to lose all your countless hours of work due to a hard drive failure.&lt;/p&gt;
&lt;p&gt;I chose a &lt;a class="reference external" href="https://www.synology.com/en-us"&gt;Synology&lt;/a&gt; DS216+ii for the task. It's a nice little box that holds two big hard drives that you can run as a RAID set. In addition to having hardware that meets my needs, I chose these folks because the software the NAS runs is easy to administer, incredibly flexible, and has a rich ecosystem. One great feature I've not seen elsewhere is with just a few clicks, you can back up your data to cloud services like &lt;a class="reference external" href="https://aws.amazon.com/glacier/?sc_channel=PS&amp;amp;sc_campaign=acquisition_US&amp;amp;sc_publisher=google&amp;amp;sc_medium=glacier_b&amp;amp;sc_content=glacier_e&amp;amp;sc_detail=aws%20glacier&amp;amp;sc_category=glacier&amp;amp;sc_segment=86341125282&amp;amp;sc_matchtype=e&amp;amp;sc_country=US&amp;amp;s_kwcid=AL!4422!3!86341125282!e!!g!!aws%20glacier&amp;amp;ef_id=WrarjAAABQgBo0QZ:20180324194828:s"&gt;Glacier&lt;/a&gt;. Synology has a proprietary suite of software you can use to manage your media. I chose &lt;a class="reference external" href="https://aws.amazon.com/glacier/?sc_channel=PS&amp;amp;sc_campaign=acquisition_US&amp;amp;sc_publisher=google&amp;amp;sc_medium=glacier_b&amp;amp;sc_content=glacier_e&amp;amp;sc_detail=aws%20glacier&amp;amp;sc_category=glacier&amp;amp;sc_segment=86341125282&amp;amp;sc_matchtype=e&amp;amp;sc_country=US&amp;amp;s_kwcid=AL!4422!3!86341125282!e!!g!!aws%20glacier&amp;amp;ef_id=WrarjAAABQgBo0QZ:20180324194828:s"&gt;Plex&lt;/a&gt; because it's feature rich and for a lifetime fee will automatically transcode movies and music to work with any viewing or listening device.&lt;/p&gt;
&lt;p&gt;In the next installment we'll start getting into the nitty-gritty of how to get the job done. The good, the bad, and the &lt;strong&gt;ugly!&lt;/strong&gt;&lt;/p&gt;</description><category>FLAC</category><category>formats</category><category>Matroska</category><category>music</category><category>NAS</category><category>reference</category><category>rip</category><category>tools</category><category>video</category><guid>https://www.feoh.org/posts/i-dont-want-to-let-go-the-media-rip-saga-part-1-formats-and-tools.html</guid><pubDate>Thu, 22 Mar 2018 13:59:00 GMT</pubDate></item></channel></rss>