I came across nocode [1] from kelseyhightower [2], and it’s packed with great features and ideas.
The best way to write secure and reliable applications. Write nothing; deploy nowhere.
References:
[1]: https://github.com/kelseyhightower/nocode
[2]: https://github.com/kelseyhightower
Publishing rhythm
🐍 Practice Python Online
When learning a new skill it’s important to practice along the way. In order
for me to show up to practice I need to make it easy to show up. An easy way to
show up to practice with python is to use an online repl. With these you can
try out something quick. Sometimes I see snippets from blogs or tweets and I
need to try the out for myself to really understand.
When learning a new skill it’s important to practice along the way. In order
for me to show up to practice I need to make it easy to show up. An easy way to
show up to practice with python is to use an online repl. With these, you can
try out something quick. Sometimes I see snippets from blogs or tweets and I
need to try them out for myself to really understand.
Three online REPLS # [1]
Here are three different options that I have used in the past to try out
something at some various levels. I am sure there are plenty more, but these
are three that I have tried. I am not covering all of them, because It’s been a
while sin...
I’m really excited about Thaiane [1], an amazing project by Thaiane [2]. It’s worth exploring!
No description available.
References:
[1]: https://github.com/Thaiane/Thaiane
[2]: https://github.com/Thaiane
Check out sindresorhus [1] and their project css-in-readme-like-wat [2].
Style your readme using CSS with this simple trick
References:
[1]: https://github.com/sindresorhus
[2]: https://github.com/sindresorhus/css-in-readme-like-wat
I’m impressed by blog-post-workflow [1] from gautamkrishnar [2].
Show your latest blog posts from any sources or StackOverflow activity or Youtube Videos on your GitHub profile/project readme automatically using the RSS feed
References:
[1]: https://github.com/gautamkrishnar/blog-post-workflow
[2]: https://github.com/gautamkrishnar
The work on commitizen [1] by commitizen-tools [2].
Create committing rules for projects 🚀 auto bump versions ⬆️ and auto changelog generation 📂
References:
[1]: https://github.com/commitizen-tools/commitizen
[2]: https://github.com/commitizen-tools
How python tools configure
mypy # [1]
Mypy’s config parser seems to be one of the most complex. This is likely in part to it having the largest backwards compatability of all projects that I looked at.
mypy/config_parser [2]
flake8 # [3]
options/config.py [4]
black # [5]
black [6]
portray # [7]
- only uses pyproject.toml
portray/config.py [8]
interrogate # [9]
- only uses pyproject.toml
References:
[1]: #mypy
[2]: https://github.com/python/mypy/blob/master/mypy/config_parser.py
[3]: #flake8
[4]: https://github.com/PyCQA/flake8/blob/master/src/flake8/options/config.py
[5]: #black
[6]: https://github.com/psf/black/blob/master/src/black/__init__.py#L277-L331
[7]: #portray
[8]: https://github.com/timothycrosley/portray/blob/main/portray/config.py
[9]: #interrogate
Edit On GitHub
I recently added a button to my blog, and subsequently my posts on
DEV.to [1]. It’s the best thing that I have done
for it in a while. It makes it so easy to do quick edits.
finding errors # [2]
I refer back to my old posts quite a bit, sometimes I find errors in them.
Honestly most of the time its too much effort to load up my editor make the
change and git add and git commit. It’s not much, but when I am referring
to my own post generally I am just trying to get something done and don’t have
time for that.
The slug # [3]
The slug that I am getting from gatsby is formatted as /blog/this-post/.
Note the trailing slash and missing file extension, thats where the
${slug.slice(0, -1)}.md comes in.
The Full Link # [4]
GitHub makes it super easy to form a URL that puts you right into edit mode on
the exact post you are looking for. This is format for the URL… you can
always figure it out easily by clicking edit on one.
https://github.com/<user>/<repo>/edit/<branch>/<filepath>
The...
Check out ChristopherBiscardi [1] and their project toast [2].
Moved! now at https://github.com/toastdotdev/toast
References:
[1]: https://github.com/ChristopherBiscardi
[2]: https://github.com/ChristopherBiscardi/toast
Why use a cms
When first learning to code its very common to hard code everything right into
the code. This happens with most folks in just about any language. Whether its
HTML [1] or markdown for front end content, or even hardcoding parameters in our
backend languages like python, or node.js.
🤷♀️ What’s wrong with hard coding everything? # [2]
Hard coding everything right into your code makes it really hard for
non-technical collaborators to join. It makes it nearly impossible to hand
websites off to clients without needing to come back for routine updates.
The cms generally come with a rich content editor that feels more like
something most folks are used to. There are buttons for changing the font,
font-size, adding images, bold, italics, etc.
Sometimes I don’t feel technical # [3]
Even when you are developing for a technical audience there is a layer of
polish that comes from giving them a nice interface to edit their content in.
YouTube doesn’t have you manually inserting records into...
I like rikschennink’s [1] project fitty [2].
✨ Makes text fit perfectly
References:
[1]: https://github.com/rikschennink
[2]: https://github.com/rikschennink/fitty
🐍 Parsing RSS feeds with Python
I am looking into a way to replace my google reader experience that I had back
in 2013 before google took it from us. I am starting by learning how to parse
feeds with python, and without much previous knowledge, it proved to be much
easier than anticipated thanks to the feedparser library.
This is how I used python to parse rss and setup my own custom feed.
Install # [1]
Install the feedparser library.
conda create -n reader python=3.8 -y
source activate reader
pip install feedparser
Get the content # [2]
import feedparser
feed = feedparser.parse('https://waylonwalker.com/rss.xml')
The feed object # [3]
The feed is a feedparser.FeedParserDict. For all intents and purposes this
seems to just behave like a dict with the following keys().
feed.keys()
['feed', 'entries', 'bozo', 'headers', 'etag', 'href', 'status', 'encoding', 'version', 'namespaces', 'content'])
feed has some general information about the rss feed, but the meat of the
feed is in entries. The rest of the keys we...
Check out awesome-github-profile-readme [1] by saturn-abhishek [2]. It’s a well-crafted project with great potential.
😎 A curated list of awesome GitHub Profile which updates in real time
References:
[1]: https://github.com/saturn-abhishek/awesome-github-profile-readme
[2]: https://github.com/saturn-abhishek
I recently discovered awesome-github-profile-readme [1] by abhisheknaiidu [2], and it’s truly impressive.
😎 A curated list of awesome GitHub Profile which updates in real time
References:
[1]: https://github.com/abhisheknaiidu/awesome-github-profile-readme
[2]: https://github.com/abhisheknaiidu
zoxide [1] by ajeetdsouza [2] is a game-changer in its space. Excited to see how it evolves.
A smarter cd command. Supports all major shells.
References:
[1]: https://github.com/ajeetdsouza/zoxide
[2]: https://github.com/ajeetdsouza
I recently discovered mscoutermarsh [1] by mscoutermarsh [2], and it’s truly impressive.
SECRETS!
References:
[1]: https://github.com/mscoutermarsh/mscoutermarsh
[2]: https://github.com/mscoutermarsh
Looking for inspiration? timburgan [1] by timburgan [2].
No description available.
References:
[1]: https://github.com/timburgan/timburgan
[2]: https://github.com/timburgan
🤓 What’s on your GitHub Profile
I ran this post on dev.to and got a great response of great examples, check it out [1].
!
!🤓 What's on your GitHub Profile [2]
The GitHub profile feature just went live for a subset of users. Simply creating a repo named after your username, and clicking share to Profile on the sidebar will create a custom profile that shows up just above your pinned projects.
I am still trying to figure out what to put on mine, but this is what I have so far. I feel like mine is a bit big at the moment, I don’t like that my pinned repos end up blow the fold.
[3]
updated # [4]
I tightened mine up and took inspiration from a few others.
[5]
Share a screenshot and link of yours on dev [1].
updated again # [6]
Updated with a list of latest Twitter followers, using GitHub actions.
[7]
References:
[1]: https://dev.to/waylonwalker/what-s-on-your-github-profile-40p3
[2]: /whats-on-your-github-profile/
[3]: https://github.com/waylonwalker
[4]: #updated
[5]: https://dropper.wayl.one/file/c1d24...
🙋♂️ Can Anyone Explain Twitter Cards to me?
Can someone explain how or why twitter cards render differently from device to device? I do understand that twitter cards a built from meta tags, the full list can be found in their docs [1]
Rendered on Mobile # [2]
Mobile Looks fine.
[3]
Not Rendered on Desktop # [4]
On Desktop it is not picking up the image.
[3]
Twitter Card Validator # [5]
The Validator renders the card correctly. I tried the official twitter card
validator [6], as well as
heymeta.com [7], and
metatags.io [8]. All look good.
[3]
Can Cards be updated? # [9]
even with a redirect?
I tried seting up a pinned tweet that uses a netlify redirect to always keep my latest post up to date. Again this one looks good in the validator, doesnt render the image on desktop, does render the image on mobile, but does not update. I have heard that you need to hit the card validator to update cards? I am not sure if this is true, but for me this is not even upating the card.
👋 Hello,
―――――― I'm Waylon Walker ――――――
...
How I Built My GitHub Profile
I ran a discussion on dev that collected quite a list of examples in the comment section. So many great calls to action, animations, memes, and weird tricks.
[1]
My current profile # [2]
[3]
social icons # [4]
Upload all of your icons to the repo in a directory such as icons or assets, then link them with a height attribute like below. I used html [5] for mine, not sure if you can set the height in markdown.
<a href="https://dev.to/waylonwalker"><img height="30" src="https://raw.githubusercontent.com/WaylonWalker/WaylonWalker/main/icon/dev.png"></a>
note I did add a bit of (non-breaking-whitespace) between my icons. Without adding css this seemed like the simplest way to do it.
Center # [6]
Aligning things in the center of the readme is super simple. I used this trick to align my social icons in the middle.
<p align='center'>
...html
</p>
right # [7]
For my latest post [8] I floated it to the right with a little bit of align='right' action.
<p>
<a ...
I recently discovered mzjp2 [1] by mzjp2 [2], and it’s truly impressive.
My personal readme
References:
[1]: https://github.com/mzjp2/mzjp2
[2]: https://github.com/mzjp2
staged-recipes [1] by conda-forge [2] is a game-changer in its space. Excited to see how it evolves.
A place to submit conda recipes before they become fully fledged conda-forge feedstocks
References:
[1]: https://github.com/conda-forge/staged-recipes
[2]: https://github.com/conda-forge
Looking for inspiration? grayskull [1] by conda [2].
Grayskull 💀 - Recipe generator for Conda
References:
[1]: https://github.com/conda/grayskull
[2]: https://github.com/conda
I’m really excited about log_to_json [1], an amazing project by rwhitt2049 [2]. It’s worth exploring!
Yet another Python library to log to JSON
References:
[1]: https://github.com/rwhitt2049/log_to_json
[2]: https://github.com/rwhitt2049
I’m really excited about foam-template [1], an amazing project by foambubble [2]. It’s worth exploring!
Foam workpace template
References:
[1]: https://github.com/foambubble/foam-template
[2]: https://github.com/foambubble
The work on digital-gardeners [1] by MaggieAppleton [2].
Resources, links, projects, and ideas for gardeners tending their digital notes on the public interwebs
References:
[1]: https://github.com/MaggieAppleton/digital-gardeners
[2]: https://github.com/MaggieAppleton
Check out react-adaptive-hooks [1] by GoogleChromeLabs [2]. It’s a well-crafted project with great potential.
Deliver experiences best suited to a user’s device and network constraints
References:
[1]: https://github.com/GoogleChromeLabs/react-adaptive-hooks
[2]: https://github.com/GoogleChromeLabs
SLIDES - understanding python \*args and \*\*kwargs
Python *args and **kwargs are super useful tools, that when used properly
can make you code much simpler and easier to maintain. Large manual
conversions from a dataset to function arguments can be packed and unpacked
into lists or dictionaries. Beware though, this power can lead to some
really unreadable/unusable code if done wrong.
I generally post these as a carousel on LinkedIn based on a full article. Let mw know what you think of it shown inside of a blog @_waylonwalker [1].
[2]
See the full article here [2]
Slides # [3]
---
[4]
---
[5]
---
[6]
---
[7]
---
[8]
---
[9]
---
[10]
---
[11]
---
[12]
---
[13]
References:
[1]: https://twitter.com/_WaylonWalker
[2]: https://waylonwalker.com/python-args-kwargs
[3]: #slides
[4]: https://dropper.waylonwalker.com/file/bf003440-5ddb-4b31-a52b-affe9989aa55.webp
[5]: https://dropper.waylonwalker.com/file/22de97ef-3b0b-4b39-b5f9-11060d07e452.webp
[6]: https://dropper.waylonwalker.com/file/b3000590-5046-4d97-...
Gracefully adopt kedro, the catalog
Why use kedro catalog? # [1]
While using the catalog alone will not reap all of the benefits of the framework, it does get you and your project ready for the full framework eventually. For me the full benefit of the catalog comes when you combine it with the pipeline and dont even touch read/write steps at all.
Taking a step into kedro by adopting the catalog first will give you a way to organize all of your data loads in one place, and stop manually writing read/write code, which can be different for each data and storage type. You just don’t need to think about it.
---
- iperitive loading style
- organizes your data
- all file locations can be quickly identified
- can be dropped into kedro later
---
“can be dropped into kedro later”
Let’s talk a bit more about that
2 Ways to Gracefully adopt the catalog # [2]
How do I get started with the kedro catalog
- add with the code api
- load from yaml (recommended)
1. Adding to the catalog with the code api # [3]
how to use ...
The work on streamlit [1] by streamlit [2].
Streamlit — A faster way to build and share data apps.
References:
[1]: https://github.com/streamlit/streamlit
[2]: https://github.com/streamlit
Just starred python-interrogate-check [1] by JackMcKew [2]. It’s an exciting project with a lot to offer.
GitHub Action for use with python package interrogate
References:
[1]: https://github.com/JackMcKew/python-interrogate-check
[2]: https://github.com/JackMcKew
How to find things in your kedro catalog
kedro 0.16.2 just dropped last week with a long-awaited feature… catalog search! I went as far as monkey patching this into each of my projects. I work jump between a few really big projects that have tons of datasets. Being able to quickly search for what I need is so useful.
The Catalog # [1]
The kedro data catalog is a key component to the kedro framework. It handles all data loading and saving for you. It is configurable and hackable. Having all your data connections listed in one place make it so easy to pick your project up and move it to a completely new environment. That sweet imperative loading style saves so much read/write overhead. I can load all my data with a single command whether it’s in amazon s3, google cloud platform, or a local file.
Kick start a toy project # [2]
Just like with most of these articles, I am going to create a conda environment so that I don’t break any existing projects and scaffold up a toy project to learn from.
conda create -n kedro0162 py...
Check out davidesantangelo [1] and their project datoji [2].
A tiny JSON storage service. Create, Read, Update, Delete and Search JSON data.
References:
[1]: https://github.com/davidesantangelo
[2]: https://github.com/davidesantangelo/datoji
My first eight years as a working professional.
This day 8 years ago I started my first day as a Mechanical Engineer. I am so
grateful for this journey that I have been able to have. There is no way that I
could have planned this journey from the beginning.
Keep Learning # [1]
My initial career plans were down a completely different path. I have been very flexible in taking on a new career path. I have been eager to learn new things and respond to life changes that I never would have imagined.
Life Changes # [2]
Very severe chronic health issues from my family restricted my ability to travel to the facilities I served as a Mechanical Engineer. I was able to stay strong and make it work. But in the meantime, I was learning new skills that enabled me to be more effective remotely.
I was scared. # [3]
It was in these times that I found a love for data, and taking action from insights I found with data. I learned how to use python to enable me to be more effective. I did this primarily from hospital waiting rooms and many overn...
How Kedro handles your inputs
Passing inputs into kedro is a key concept. Understanding how it accepts a
single catalog key as input is quite trivial that easily makes sense, but
passing a list or dictionary of catalog entries can be a bit confusing.
*args/**args review # [1]
Check out this post for a review of how *args **kwargs work in python.
understanding python *args and **kwargs [2]
python args and kwargs [3] article by @_waylonwalker [4]
All Kedro inputs are catalog Entries # [5]
When kedro runs your pipeline it uses the catalog to imperatively load your data, meaning that you don’t tell kedro how to load your data, you tell it where your data is and what type it is. These catalog entries are like a key-value store. You just need to give the key when setting up a node.
Single Inputs # [6]
These are fairly straightforward to understand. In the example below when kedro runs the pipeline it will load the input from the catalog, then pass that input to the func, then save the returned value to the out...
visit1985 [1] has done a fantastic job with mdp [2]. Highly recommend taking a look.
A command-line based markdown presentation tool.
References:
[1]: https://github.com/visit1985
[2]: https://github.com/visit1985/mdp
Check out hotreload [1] by say4n [2]. It’s a well-crafted project with great potential.
hot reload your python code!
References:
[1]: https://github.com/say4n/hotreload
[2]: https://github.com/say4n
I came across kedro-great [1] from tamsanh [2], and it’s packed with great features and ideas.
The easiest way to integrate Kedro and Great Expectations
References:
[1]: https://github.com/tamsanh/kedro-great
[2]: https://github.com/tamsanh
I came across awesome-public-datasets [1] from awesomedata [2], and it’s packed with great features and ideas.
A topic-centric list of HQ open datasets.
References:
[1]: https://github.com/awesomedata/awesome-public-datasets
[2]: https://github.com/awesomedata
Master No More
It’s been a long time coming. We use some very harsh language within tech so
much sometimes that we become numb to it. It’s time to do my very small part
in this movement and purge this language from my active repos starting with
this blog right here.
Large Refactor At The Command Line [1]
this post follows my method of refactoring code bases from the command line,
read more about that in this article.
c-s-f # [2]
First off browsing through the content of my blog I found many references to master. I cannot completely whole-sale find and replace each one of them, because some of them are links that I do not own. Any set of instructions got upgraded from master to main
- git checkout master
+ git checkout main
There were countless cases of examples like this to comb through, but it feels good to have them purged of old language.
rename routes # [3]
Following yesterdays post, I am going to rename my markdown files
/static/_redirects
shorteners # [4]
- /gdfm /blog/today-i-lear...
Refactoring your blog urls
I just did a quick refactoring of my JAMStack blog urls. Some didn’t fit with
my style, some had _ that I wanted to switch to -, and others were
ridiculously long. I’ve been using forestry as my CMS, I write many of my
posts there, and sometimes it picks some crazy file names (based on my titles).
It was time to refactor.
Large Refactor At The Command Line [1]
When refactorings similar to this get really big I often need to do some
project wide find an replace, I usually do this right from the command line.
🖊 Rename posts change the filename # [2]
My post urls are based on the file name of my markdown file, so I can simply go
through my filesystem and rename anything I want. From here its probably best
to only commit the addition of the new file name, until the redirects clear,
but these are all low traffic posts for me so I just commited both at once.
Safely redirect without breaking links
_redirects ⤴ /redirects # [3]
I am hosted on netlify, which automatically puts very ⚡ ...
understanding python \*args and \*\*kwargs
Python *args and **kwargs are super useful tools, that when used properly
can make you code much simpler and easier to maintain. Large manual
conversions from a dataset to function arguments can be packed and unpacked
into lists or dictionaries. Beware though, this power can lead to some
really unreadable/unusable code if done wrong.
/* h2 {display: block;} */
h2>img { margin: auto; width: 100%;}
Python *args and **kwargs are super useful tools, that when used properly can make you code much simpler and easier to maintain. Large manual conversions from a dataset to function arguments can be packed and unpacked into lists or dictionaries. Beware though, this power can lead to some really unreadable/unusable code if done wrong.
*args are for lists # [1]
*args are some magical syntax that will collect function arguments into a list, or unpack a list into individual arguments.
recieving *args # [2]
When recieving variables as a *<varname>, commonly *args, the arguments get packed ...
I recently discovered pytest-sugar [1] by Teemu [2], and it’s truly impressive.
a plugin for py.test that changes the default look and feel of py.test (e.g. progressbar, show tests that fail instantly)
References:
[1]: https://github.com/Teemu/pytest-sugar
[2]: https://github.com/Teemu
the-hub [1] by ari-hacks [2] is a game-changer in its space. Excited to see how it evolves.
📈📊 A hub where users can experiment with graphing and Python in the browser (https://pyodide-experiment.herokuapp.com/)
References:
[1]: https://github.com/ari-hacks/the-hub
[2]: https://github.com/ari-hacks
pre-commit is awesome
I recently discovered the ✨ awesomeness that is pre-commit. I steered away
from it for so long because it seemed like a big daunting thing to set up, but
really it’s easy. It will automatically run checks for you. In some cases, it
will even automatically fix them for you. Out of the box, it will do things
like automatically trim extra whitespace, fix file endings, and ensure file
sizes are not too large for git [1].
I recently discovered the ✨ awesomeness that is pre-commit. I steered away from it for so long because it seemed like a big daunting thing to set up, but really it’s easy. It will automatically run checks for you. In some cases, it will even automatically fix them for you. Out of the box, it will do things like automatically trim extra whitespace, fix file endings, and ensure file sizes are not too large for git.
Quickstart # [2]
It comes with a sample-config that is pretty general purpose and use for just about any project in git.
pip instal pre-commit
pre-commit s...
Building kedro.dev
Follow along the Journey as I build out kedro.dev [1].
Building a Community # [2]
I have really enjoyed my own personal journey as I have started to build all of my data pipeline projects with the kedro framework. I want to start building a place to share resources with the community. I want to see this community grow and flourish. They say in front end web development if you are not using a framework you end up building one. That’s exactly what I was doing before I started using kedro. I want to build out a set of resources that this community can learn from and start to use the framework at their own pace without needing to develop their own from scratch.
research # [3]
Looking into the front end frameworks to see how they welcome their community. Much of my inspiration is from them, bringing lessons learned to data.
pages # [4]
- banner
- nav
- docs -> readthedocs
- tutorial -> kedro-examples
- blog -> medium
- community
- support
- team
- courses
- examples
- mee...
The work on desert [1] by python-desert [2].
Deserialize to objects while staying DRY
References:
[1]: https://github.com/python-desert/desert
[2]: https://github.com/python-desert
I recently discovered kedro-wings [1] by tamsanh [2], and it’s truly impressive.
Kedro Wings automatically creates catalog entries to simplify Kedro pipeline writing. See the video here: https://www.youtube.com/watch?v=p4ELo1tqbYY
References:
[1]: https://github.com/tamsanh/kedro-wings
[2]: https://github.com/tamsanh
Check out kedro-streaming-twitter-pipeline [1] by dataengineerone [2]. It’s a well-crafted project with great potential.
No description available.
References:
[1]: https://github.com/dataengineerone/kedro-streaming-twitter-pipeline
[2]: https://github.com/dataengineerone
junegunn [1] has done a fantastic job with fzf.vim [2]. Highly recommend taking a look.
fzf ❤️ vim
References:
[1]: https://github.com/junegunn
[2]: https://github.com/junegunn/fzf.vim