Check out Textualize [1] and their project rich [2].
Rich is a Python library for rich text and beautiful formatting in the terminal.
References:
[1]: https://github.com/Textualize
[2]: https://github.com/Textualize/rich
Publishing rhythm
Variables names don't need their type
So often I see a variables type() inside of its name and it hurts me a little
inside. Tell me I’m right or prove me wrong below.
Examples # [1]
Pandas DataFrames are probably the worst offender that I see
# bad
sales_df = get_sales()
# good
sales = get_sales()
Sometimes vanilla structures too!
# bad
items_list = ['sneakers', 'pencils', 'paper', ]
# good
items = ['sneakers', 'pencils', 'paper', ]
Edge Cases? # [2]
It’s so common when you need to get inside a data structure in a special way that itsn’t provided by the library…. I am not exactly sure of a good way around it.
# bad ??
sales = get_sales()
sales_dict = sales.to_dict()
# good
🤷♀️
Containers are plural # [3]
Always name your containers plural, so that naming while iterating is simple.
prices = {}
items = ['sneakers', 'pencils', 'paper', ]
for item in items:
prices[item] = get_price(item)
Before I start fights 🥊 in code review, am I inline here or just being pedantic?
References:
[1]: #examples
[2]: #edge-cases...
I’m really excited about cpython [1], an amazing project by python [2]. It’s worth exploring!
The Python programming language
References:
[1]: https://github.com/python/cpython
[2]: https://github.com/python
I recently discovered scully [1] by scullyio [2], and it’s truly impressive.
The Static Site Generator for Angular apps
References:
[1]: https://github.com/scullyio/scully
[2]: https://github.com/scullyio
I came across pydevto [1] from lpellis [2], and it’s packed with great features and ideas.
Unofficial dev.to api
References:
[1]: https://github.com/lpellis/pydevto
[2]: https://github.com/lpellis
I’m really excited about kedro-pandas-profiling [1], an amazing project by brickfrog [2]. It’s worth exploring!
A simple wrapper to use Pandas Profiling easily in Kedro
References:
[1]: https://github.com/brickfrog/kedro-pandas-profiling
[2]: https://github.com/brickfrog
The work on gregives.co.uk [1] by gregives [2].
Personal site and portfolio of software engineer Greg Ives
References:
[1]: https://github.com/gregives/gregives.co.uk
[2]: https://github.com/gregives
I’m impressed by act [1] from nektos [2].
Run your GitHub Actions locally 🚀
References:
[1]: https://github.com/nektos/act
[2]: https://github.com/nektos
Send Emails with GitHub Actions
Here is one useful thing that you can do with GitHub actions no matter what language you use, send email. You might want to know right away when your ci passes. You might want to give your team a nice pat on the back when a new release is deployed. There might be subscribers wanting to see the latest release notes in their inbox as soon as the latest version is deployed. Whatever it is, its pretty easy to do with an action right out of the actions marketplace.
Mail on Star # [1]
Here is a silly example that sends an email to yourself anytime someone stars your repo.
name: Mail on Star
on:
watch:
types: [ started ]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "email"
email:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: ✨ Send email, you star
uses: dawidd6/acti...
I’m really excited about awesome-python-bytes [1], an amazing project by JackMcKew [2]. It’s worth exploring!
😎 🐍 Awesome lists about Python Bytes https://pythonbytes.fm/
References:
[1]: https://github.com/JackMcKew/awesome-python-bytes
[2]: https://github.com/JackMcKew
Check out get-diff-action [1] by technote-space [2]. It’s a well-crafted project with great potential.
GitHub Actions to get git [3] diff
References:
[1]: https://github.com/technote-space/get-diff-action
[2]: https://github.com/technote-space
[3]: /glossary/git/
If you’re into interesting projects, don’t miss out on react-toastify [1], created by fkhadra [2].
React notification made easy 🚀 !
References:
[1]: https://github.com/fkhadra/react-toastify
[2]: https://github.com/fkhadra
What Are GitHub Actions
GitHub actions are an amazing tool that allows us to run code based on triggers
inside of our repo. Their is a large and growing community of actions inside
the marketplace to use with very little effort. Best of all they are free for
public repositories, and private repos have a very generous free tier.
h2 img { width: 100%; box-shadow: .5rem .5rem 3rem #141F2D, -.5rem -.5rem 3rem rgba(255,255,255,.1);}
img{ max-width: 100% !important;}
I have been diving deep into Github actions for about a month now and they are wicked good! They allow you to run any sort of arbitrary code based on events in your repo, webhooks, or schedules. They are very reasonably priced. The interface that GitHub hs developed for them is top-notch! It’s so good I have done 90% of my editing of them right from github.com.
TLDR # [1]
some interaction to your repository triggers code to run.
[2] # [3]
The online editor for actions is pretty amazing. When creating a new workflow it automatically sets up a ...
Getting Started with GitHub Actions
Github actions are written in configuration files using the YAML syntax. YAML
is a superset of JSON. Most YAML can be expressed inline with JSON syntax.
Similar to python YAML is whitespace driven by whitespace rather than brackets
tags. The argument for using YAML for configuration files such as actions is
that it is more human-readable and editable. It’s much easier to see the
whitespace layout than it is to get closing brackets correct. For actions, I
believe this is mostly true. I don’t see any use case to get past 3-5 indents,
which is completely manageable.
Can I just say that I learned more than I realized about YAML by writing this
article
Arrays and Objects # [1]
In YAML or JSON, the most basic containers for data are arrays, a 1D list
of things, and objects, for key-value pairs.
Arrays # [2]
The start of an array container is signified with a leading -. This is
probably one of the big things I didn’t understand about YAML before writing
this post, but hats off to the ...
Check out poke95 [1] by wobsoriano [2]. It’s a well-crafted project with great potential.
🚀 A Windows 95 style Pokédex built with React.
References:
[1]: https://github.com/wobsoriano/poke95
[2]: https://github.com/wobsoriano
Looking for inspiration? img-resizer [1] by sharadcodes [2].
An action for resizing images
References:
[1]: https://github.com/sharadcodes/img-resizer
[2]: https://github.com/sharadcodes
Check out generate-changelog-action [1] by ScottBrenner [2]. It’s a well-crafted project with great potential.
GitHub Actions Hackathon 2020 winner - lob/generate-changelog Action
References:
[1]: https://github.com/ScottBrenner/generate-changelog-action
[2]: https://github.com/ScottBrenner
Today I learned `git diff feature..main`
Today I learned how to diff between two branches.
git diff feature..main
Sometimes we get a little git add . && git commit -m "WIP" happy and mistakenly commit something that we just can’t figure out. This is a good way to figure out what the heck has changed on the current branch compared to any other branch.
Example # [1]
Let’s create a new directory, initialize git [2] and toss some content into a readme.
mkdir git-diff
git init
echo "hello there" > readme.md
git add . && git commit -m "hello there"
cat readme.md
After all of that, we have a git repository on our local machine with a single file readme.md that contains the following.
hello there
Create a branch and ✍ edit # [3]
Let’s checkout a new branch called Waylon and change the word there to Waylon in our readme.md file, then diff it.
git checkout -b Waylon
echo "hello Waylon" > readme.md
git add . && git commit -m "hello Waylon"
git diff
- hello there
+ hello waylon
At this point we have one commit. Things are real...
Create New Kedro Project
This is a quickstart to getting a new kedro [1]
pipeline up and running. After this article you should be able to understand
how to get started with kedro [1]. You can learn
more about this Hello World
Example [2]
in the
docs [2]
🧹 Install Kedro [1]
🛢 Create the Example Pipeline
💨 Run the example
📉 Show the pipeline visualization
Create a Virtual Environment [3] # [4]
I use conda to control my virtual environments and will create a new environment called kedro_iris with the following command. note the latest compatible version of python is 3.7.
EDIT: as of kedro 0.16.0 kedro supports up to 3.8
conda create -n kedro_iris python=3.8 -y
Your browser does not support the video tag. [5]
Options
Activate your conda environment # [6]
I try to keep my base environment as clean as possible. I have ran into too many issues installing things in the base environment. Almost always its some dependency that starts causing issues making it even harder to realize where its coming from a...
DesktopECHO [1] has done a fantastic job with xWSL [2]. Highly recommend taking a look.
Installer script for Ubuntu 22.04 / 24.04 with XFCE 4.18 on WSL. Does not require hypervisor, container, or X11 server.
References:
[1]: https://github.com/DesktopECHO
[2]: https://github.com/DesktopECHO/xWSL