Quick Post via Twitter: Key to learning #React & #JSX is that it’s all just #JavaScript. Best way to learn is to convert some jsx code to straight #JS by doing the same functionality with react.createElement #qp #ReactJS Delete Your #Components with @KentCDodds — #React Podcast https://t.co/4CIx3ayquI https://t.co/bAwpf7Yk9K

Key to learning #React & #JSX is that it’s all just #JavaScript. Best way to learn is to convert some jsx code to straight #JS by doing the same functionality with react.createElement

#qp
#ReactJS
Delete Your #Components with @KentCDodds — #React Podcast https://t.co/4CIx3ayquI https://t.co/bAwpf7Yk9K

Quick Post via Twitter: Interesting – Kent built Downshift fully in #CodeSandbox (https://t.co/FHSylcaywr aka @codesandboxapp) #qp #ReactJS 21: Delete Your #Components with @KentCDodds — #React Podcast https://t.co/16jynPGYNn https://t.co/A3h56eekhx

Interesting – Kent built Downshift fully in #CodeSandbox (https://t.co/FHSylcaywr aka @codesandboxapp)

#qp
#ReactJS
21: Delete Your #Components with @KentCDodds — #React Podcast https://t.co/16jynPGYNn https://t.co/A3h56eekhx

Quick Post via Twitter: I’ve published issue 060 of my #newsletter covering @LinkedIn’s #SRE’s team usage of #PEX and #Shiv for CLI utility creation: https://t.co/yj3BxWgKoX #qp #utilities #CommandLine #Linux

I’ve published issue 060 of my #newsletter covering @LinkedIn’s #SRE’s team usage of #PEX and #Shiv for CLI utility creation: https://t.co/yj3BxWgKoX

#qp
#utilities
#CommandLine
#Linux

The eli4d Gazette – Issue 060: LinkedIn’s Site Reliability Engineering Group’s approach to Python CLI based Utilities through PEX and Shiv

I recently came across a neat article in LinkedIn’s blog. It was written by their Site Reliability Engineering group (SRE) which covered some interesting Command Line Interface (i.e., CLI) utility libraries related to Python.

I can see how the power of Python would be fantastic for CLI utilities. The problem is Python’s dependency management. The dependency issue is even more compounded for CLI utilities since a devops engineer would need to be able to bring over a utility to any server (assuming a consistent version of the operating system) without worrying about the utility’s dependencies. Such an issue would prevent a system admin from doing the needed work (whether emergency or planned). In SRE’s article they explain this eloquently:

At LinkedIn, we ship hundreds of command-line utilities to every machine in our data centers and to all of our employees’ workstations. The vast majority of these utilities are written in Python.

In addition to developing these command-line utilities, we have hundreds of supporting libraries that are constantly being iterated on, with new versions published daily. Because of the inherent problems present when dealing with such a huge and ever-changing dependency graph, we need to package the executables individually to avoid dependency conflicts. Initially, we took advantage of the great open source tool PEX. PEX elegantly solved the isolated packaging requirement we had by including all of a tool’s dependencies inside a single binary file that we could then distribute.

PEX was not sufficient for SRE’s usage, so they created their own dependency packager called shiv. It’s an interesting name choice. I initially thought it was a prison-made knife, but apparently the name was based on the word “shiver” although the documentation has a knife emoji. In their words:

Why shiv?

>The tool freezes a Python environment, so you can think of shiv as a shorter way of saying “shiver.”

PEX and Shiv are interesting utilities that bring the power of Python to the command line through one executable utility.


Thoughts? Feedback? Let me know: @eli4d on Twitter


Quick Post via Twitter: A really great episode about figuring your personal #philosophy (with concrete actionable steps) #qp #stoicism #GTD (50k level) 145 – Choosing Who You Will Be (Important Rebroadcast) — The #PracticalStoicPodcast with @Simonjedrew https://t.co/knSUPz71GL https://t.co/0wynphsdBQ

A really great episode about figuring your personal #philosophy (with concrete actionable steps)

#qp
#stoicism
#GTD (50k level)
145 – Choosing Who You Will Be (Important Rebroadcast) — The #PracticalStoicPodcast with @Simonjedrew https://t.co/knSUPz71GL https://t.co/0wynphsdBQ

Quick Post via Twitter: 😹 On learning #vim – “…it’s like learning to ride a bike in clogs…” – @chantastic #qp #javascript #reactjs #React Podcast: 21: Delete Your Components with @KentCDodds https://t.co/CGPMnQ8sgV

😹 On learning #vim – “…it’s like learning to ride a bike in clogs…” – @chantastic

#qp
#javascript
#reactjs
#React Podcast: 21: Delete Your Components with @KentCDodds https://t.co/CGPMnQ8sgV

Quick Post via Twitter: Neat #dev focused episode about @marcoarment’s implementation of #search on @OvercastFM #qp #iosdev #UndertheRadar 141: Implementing Search — Under the Radar https://t.co/eKV2LdkDFZ https://t.co/euIMfhdJBL

Neat #dev focused episode about @marcoarment’s implementation of #search on @OvercastFM

#qp
#iosdev
#UndertheRadar 141: Implementing Search — Under the Radar https://t.co/eKV2LdkDFZ https://t.co/euIMfhdJBL

Quick Post via Twitter: 😲 What…there’s a #StarWars radio drama (https://t.co/85YtIch9jo) from the 70s…no way #qp Theater for the #Mind — @emolinsky’s #ImaginaryWorlds podcast https://t.co/SP60vkitsU https://t.co/yX4qmarUbs

😲 What…there’s a #StarWars radio drama (https://t.co/85YtIch9jo) from the 70s…no way

#qp
Theater for the #Mind — @emolinsky’s #ImaginaryWorlds podcast https://t.co/SP60vkitsU https://t.co/yX4qmarUbs

Quick Post via Twitter: 🥇Neat – The “hang up & try again” #philosophy #qp Episode 626 – Salesman’s Spicy #SideHustle Serves Up Serious Sales — #SideHustleschool https://t.co/Fl73NgcB1o https://t.co/uzZph7dQJR

🥇Neat – The “hang up & try again” #philosophy

#qp
Episode 626 – Salesman’s Spicy #SideHustle Serves Up Serious Sales — #SideHustleschool https://t.co/Fl73NgcB1o https://t.co/uzZph7dQJR