I recently discovered de1-python by dataengineerone, and it's truly impressive.
Archive
All published posts
I recently discovered markserv by markserv, and it's truly impressive.
facelessuser has done a fantastic job with pymdown-extensions. Highly recommend taking a look.
Check out dirsync by tkhyn. It's a well-crafted project with great potential.
Check out andrewlin12 and their project markdown2png.
Stand With Your Team
People who are quick to toss team members under a bus are not well trusted or highly thought of and it will lead to some toxic team dynamics.
While collaborating on any project there are going to be decisions made that aren’t necessarily your favorite, during a summer internship my mentor made some decisions that I was not on board with, but I accepted his wisdom and moved forward with little push back.
During a review, leadership showed interest in the option that I wanted to go towards. I was quick to jump up and say I told you so right then and there and pitch reasons why my idea was so much better.
...
Blogging For Me
I create this blog with one person in mind, me.
This is not completely selfish, as there are likely many others out there that think similarly to me. Everyone comes from different backgrounds and varying levels of experience. In no way do you need to be an expert to create content others will benefit from.
I am as accurate as possible. I don’t know everything, and If I waited for that to happen I would never post, or write at such a high level no one else (including me) would ever want to read.
...
I recently discovered twint by twintproject, and it's truly impressive.
I like pytest-dev's project pluggy.
to-mc has done a fantastic job with checksumdir. Highly recommend taking a look.
Minimal Kedro Pipeline
How small can a minimum kedro pipeline ready to package be? I made one within 4 files that you can pip install. It’s only a total of 35 lines of python, 8 in setup.py and 27 in mini_kedro_pipeline.py.
📝 Note this is only a composable pipeline, not a full project, it does not contain a catalog or runner.
I have everything for this post hosted in this gihub repo, you can fork it, clone it, or just follow along.
...
Markdown Cli
This is a post that may be a work in progress for awhile, Its a collections of thoughts on managing my blog, but could be translated into anythiung that is just a collection of markdown.
My Content Strategy For 2021
I am making another push in 2021 to get my content out in the world and meeting users where they are. See how I plan to execute.
My content is written in markdown, all markdown. I find that markdown does a really great job at getting out of the way and letting ideas flow onto the page. I am never fussing with fonts and formatting while physically writing posts. Not that I don’t spend way more time than I need to tweak these things on my own personal site where everything gets posted.
Much of what I create is inside of short articles that get posted to my personal site waylonwalker.com. These will get cross-posted to DEV, hashnode,
...
Quickly Edit Posts
Recently I automated starting new posts with a python script. Today I want to work on the next part that is editing those posts quickly.
Check out this post about setting up my posts with python 🐍
...
Gitui is a blazing fast terminal git interface
Gitui is a terminal-based git user interface (TUI) that will change the way that you work with git. I have been a long-time user of the git cli, and it’s been hard to beat, mostly because there is nothing that keeps my fingers on the keyboard quite like it, except gitui which comes with some great ways to very quickly walk through a git project.
Go to their [releases]https://github.com/extrawurst/gitui/releases) page, download the latest build, and pop it on your PATH. I have the following stuffed away in some install scripts to get the latest version.
install latest release
...
Kedro - My Data Is Not A Table
In python data science/engineering most of our data is in the form of some sort of table, typically a DataFrame from a library like pandas, spark, or dask.
These containers for data contain many convenient methods to manipulate table like data structures. Sometimes we leverage other data types, namely vanilla types like lists and dicts, or even numpy data types.
...
Check out asottile and their project babi.
Quickly Change Conda Env With Fzf
Changing conda environments is a bit verbose, I use a function with fzf that both lists environments and selects the one I want in one go.
I have used conda as a virtual environment tool for years now. I started using conda for its simplicity to install packages on windows, but now that has gotten so much better and it’s been years since I have run a conda install command. I’m sure that I could use a different environment manager, but it works for me and makes sense.
What environment manager do you use for python?
...
Vim Replace Visual Star
Replacing text based on whats in the current search register is a quite handy tool that I use often. I believe I picked this tip up from Nick Janetakis, check out his YouTube channel for some amazing vim tips.
https://www.youtube.com/watch?v=fP_ckZ30gbs
If there is one thing that I Like most about vim it’s the ability to hack on it and make it work well for you.
...
Minimal Python Package
What does it take to create an installable python package that can be hosted on pypi?
This post is somewhat inspired by the bottle framework, which is famously created as a single python module. Yes, a whole web framework is written in one file.
. ├── setup.py └── my_pipeline.py
setup.py ¶ #
from setuptools import setup setup( name="", version="0.1.0", py_modules=["my_pipeline", ], install_requires=["kedro"], ) name ¶ #
The name of the package can contain any letters, numbers, “_”, or “-”. Even if it’s for internal/personal consumption only I usually check for discrepancy with pypi so that you don’t run into conflicts.
...
Check out jameslittle230 and their project stork.
If Tmux
I do much of my work from tmux, I love it so much that I want to setup some functionality that puts me in tmux even if I didn’t ask for it.
Bash function to check if the shell is in a tmux session.
in_tmux () { if [ -n "$TMUX" ]; then return 0 else return 1 fi }
Using the bash function ¶ #
I often open up vim to do some quite edits, but before I know it I have several splits open and I need access to another shell utility, but I forgot to start in tmux. This function makes sure tht I start in tmux everytime.
...
If you're into interesting projects, don't miss out on vim-commentary, created by tpope.
I'm really excited about vim-fugitive, an amazing project by tpope. It's worth exploring!
The work on vim-surround by tpope.
If you're into interesting projects, don't miss out on kedro-starters, created by kedro-org.
Save Vim Macro
If you are like me, you have created a macro or two that is pure glory, and you forget how you made it after a day or so, or you immediately want to store it away as a custom keybinding. As with most things with vim, it’s easy to do once you understand it.
One of the earliest things we all learn to do in vim is to create macros, custom sets of functionality stored in a register that can be replayed later.
To create a macro, get into normal mode, then type q followed by a letter that you want to store the macro under.
...
Live Substitution In Neovim
Replacing text in vim can be quite frustrating especially since it doesn’t have live feedback to what is changing. Today I was watching Josh Branchaud’s Vim-Unalphabet series on Youtuve and realized that his vim was doing this and I had to have it.
https://twitter.com/_WaylonWalker/status/1346081617199198210
I had to do a bit of searching and found a great post from vimcasts that shows exactly how to get the live search and replace highlighting using inccomand
...
khzaw has done a fantastic job with vim-conceal. Highly recommend taking a look.
Newsboat
Web browsers are a black hole of productivity. I try to use them as little as possible when it is time to focus. I try to use help, ?, or ?? with ipython, or –help at the command line as much as possible. What about that time I am trying to see what my online friends are posting on their sites? I used to used google reader quite heavily before that was taken down.
I am going to give a terminal rss reader a try for a bit and see how that goes for me. I have really struggled to get into an rss reader since google reader died.
I installed with the reccomended snap for Ubuntu.
...
Large Refactor At The Command Line
As projects grow patterns that worked early on break and we need to change things to make the project easier to work with, and more welcoming to new developers.
Before you start mucking up a project with wild commands at the terminal check that you have a super clean git status. We may make some mistakes and need a way to undo 100’s files and git makes it really easy if you start with a clean history.
git status
If we are ready to begin work we should see a response like this.
...
Ipython-Config
I use my ipython terminal daily. It’s my go to way of running python most of the time. After you use it for a little bit you will probably want to setup a bit of your own configuration.
Activate your virtual environment of choice and pip install it. Any time you are running your project in a virtual environment, you will need to install ipython inside it to access those packages from ipython.
pip install ipython
You are using a virtual environment right? Virtual environments like venv or conda can save you a ton of pain down the road.
...
Custom Ipython Prompt
I’ve grown tired of the standard ipython prompt as it doesn’t do much to give me any useful information. The default one gives out a line number that only seems to add anxiety as I am working on a simple problem and see that number grow to several hundred. I start to question my ability 🤦♂️.
If you already have an ipython config you can move on otherwise check out this post on creating an ipython config.
...
I'm impressed by vim-tmux-runner from christoomey.
I like fkromer's project awesome-kedro.
Just starred machfiles by ChristianChiarulli. It's an exciting project with a lot to offer.
Check out LunarVim and their project LunarVim.
Looking for inspiration? joelhooks-com by joelhooks.
Automating my Post Starter
One thing we all dread is mundane work of getting started, and all the hoops it takes to get going. This year I want to post more often and I am taking some steps towards making it easier for myself to just get started.
When I start a new post I need to cd into my blog directory, start neovim in a markdown file with a clever name, copy some frontmatter boilerplate, update the post date, add tags, a description, and a cover.
hot and fast
...
Windowing Python Lists
In python data science we often will reach for pandas a bit more than necessary. While pandas can save us so much there are times where there are alternatives that are much simpler. The itertoolsandmore-itertools` are full of cases of this.
This post is a walkthrough of me solving a problem with more-itertools rather than reaching for a for loop, or pandas.
I am working on a one-line-link expander for my blog. I ended up doing it, just by modifying the markdown with python. I first split the post into lines with content.split('\n'), then look to see if the line appears to be just a link. One more safety net that I wanted to add was to check if there was whitespace around the line, this could not simply be done in a list comprehension by itself. I need just a bit of knowledge of the surrounding lines, enter more-itertools.
...
WaylonWalker has done a fantastic job with devtainer. Highly recommend taking a look.
WaylonWalker has done a fantastic job with WaylonWalker. Highly recommend taking a look.
Check out aoc by ThePrimeagen. It's a well-crafted project with great potential.
Check out ZaxR and their project bulwark.
mariokostelac has done a fantastic job with sagemaker-setup. Highly recommend taking a look.
I like pypeaday's project aoc-2020.
I'm really excited about auto-editor, an amazing project by WyattBlue. It's worth exploring!
Adding Audio to my blog posts
This is episode 1 of the Waylon Walker Audio experience, posts from waylonwalker.com in audio form.
So I have had this idea for awhile to add audio to my blog posts. The idea partly comes from the aws blog, if you have ever been on their blog you will have noticed that they have a voiced by amazon polly section.
Honestly I don’t know this is all new to me and I dont have much to go off of. For now its a test that may or may not work out.
...
Check out yetudada and their project yetudada.
I'm impressed by quickpython from timothycrosley.