Install and run #python applications in isolated environments with pipx.
It's roughly similar to npx from #js ecosystem.
https://github.com/pipxproject/pipx
It's roughly similar to npx from #js ecosystem.
https://github.com/pipxproject/pipx
Summoner is a tool for scaffolding fully configured batteries-included production-level #haskell projects.
Do you want to create a library that is to be uploaded to Hackage/Stackage, that builds with both Cabal and Stack and supports the latest three major GHC versions? Or are you building a production application which uses a custom prelude and has CI with GitHub Actions or Travis Linux and AppVeyors Windows checks? Maybe do you want to play with your idea in a single module without introducing the whole complexity of the Haskell projects? Summoner can help you do all that with minimal effort from you - it can even upload the project to GitHub if you wish!
By the way, Summoner operates as either CLI or TUI application, so you can choose what you are more comfortable with and install only the required one.
https://github.com/kowainik/summoner
Do you want to create a library that is to be uploaded to Hackage/Stackage, that builds with both Cabal and Stack and supports the latest three major GHC versions? Or are you building a production application which uses a custom prelude and has CI with GitHub Actions or Travis Linux and AppVeyors Windows checks? Maybe do you want to play with your idea in a single module without introducing the whole complexity of the Haskell projects? Summoner can help you do all that with minimal effort from you - it can even upload the project to GitHub if you wish!
By the way, Summoner operates as either CLI or TUI application, so you can choose what you are more comfortable with and install only the required one.
https://github.com/kowainik/summoner
NimbleParsec is a simple and fast library for text-based parser #elixir combinators.
Combinators are built during runtime and compiled into multiple clauses with binary matching. This provides the following benefits:
- Performance: since it compiles to binary matching, it leverages many Erlang VM optimizations to generate extremely fast parser code with low memory usage
- Composable: this library does not rely on macros for building and composing parsers, therefore they are fully composable. The only macros are defparsec/3 and defparsecp/3 which emit the compiled clauses with binary matching
- No runtime dependency: after compilation, the generated parser clauses have no runtime dependency on NimbleParsec. This opens up the possibility to compile parsers and do not impose a dependency on users of your library
- No footprints: NimbleParsec only needs to be imported in your modules. There is no need for use NimbleParsec, leaving no footprints on your modules
The goal of this library is to focus on a set of primitives for writing efficient parser combinators. The composition aspect means you should be able to use those primitives to implement higher level combinators.
https://github.com/dashbitco/nimble_parsec
Combinators are built during runtime and compiled into multiple clauses with binary matching. This provides the following benefits:
- Performance: since it compiles to binary matching, it leverages many Erlang VM optimizations to generate extremely fast parser code with low memory usage
- Composable: this library does not rely on macros for building and composing parsers, therefore they are fully composable. The only macros are defparsec/3 and defparsecp/3 which emit the compiled clauses with binary matching
- No runtime dependency: after compilation, the generated parser clauses have no runtime dependency on NimbleParsec. This opens up the possibility to compile parsers and do not impose a dependency on users of your library
- No footprints: NimbleParsec only needs to be imported in your modules. There is no need for use NimbleParsec, leaving no footprints on your modules
The goal of this library is to focus on a set of primitives for writing efficient parser combinators. The composition aspect means you should be able to use those primitives to implement higher level combinators.
https://github.com/dashbitco/nimble_parsec
Browsh is a fully-modern text-based browser. It renders anything that a modern browser can; HTML5, CSS3, JS, video and even WebGL. Its main purpose is to be run on a remote server and accessed via SSH/Mosh or the in-browser HTML service in order to significantly reduce bandwidth and thus both increase browsing speeds and decrease bandwidth costs.
https://www.brow.sh/
#shell #js #go
https://www.brow.sh/
#shell #js #go
Save disk space by cleaning unneeded files from software projects.
It will identify the disk space savings you would get from deleting temporary/unnecessary files from project directories, such as
https://github.com/tbillington/kondo
#rust
It will identify the disk space savings you would get from deleting temporary/unnecessary files from project directories, such as
target from Cargo projects and node_modules from Node projects.https://github.com/tbillington/kondo
#rust
Not all duplicated code should be removed. This is one of the most important parts of the DRY principle to understand.
This article shares some great examples!
> “Don’t Repeat Yourself” was never about code. It’s about knowledge. It’s about cohesion. If two pieces of code represent the exact same knowledge, they will always change together. Having to change them both is risky: you might forget one of them. On the other hand, if two identical pieces of code represent different knowledge, they will change independently. De-duplicating them introduces risk, because changing the knowledge for one object, might accidentally change it for the other object.
> Looking at the reasons for change, is a very powerful modelling heuristic.
This article shares some great examples!
> “Don’t Repeat Yourself” was never about code. It’s about knowledge. It’s about cohesion. If two pieces of code represent the exact same knowledge, they will always change together. Having to change them both is risky: you might forget one of them. On the other hand, if two identical pieces of code represent different knowledge, they will change independently. De-duplicating them introduces risk, because changing the knowledge for one object, might accidentally change it for the other object.
> Looking at the reasons for change, is a very powerful modelling heuristic.
Very emotial post about the current state of software communities and their reactions to new things. This particular post is focused on monads as this new concept people are confused about.
I personally feel this too. Awesome read!
P.S. It also features dry-python/returns as a good example of how things should be done to sell new concepts to users: https://github.com/dry-python/returns
I personally feel this too. Awesome read!
P.S. It also features dry-python/returns as a good example of how things should be done to sell new concepts to users: https://github.com/dry-python/returns
GitHub
GitHub - dry-python/returns: Make your functions return something meaningful, typed, and safe!
Make your functions return something meaningful, typed, and safe! - dry-python/returns
kubectx is a utility to manage and switch between kubectl(1) contexts.
kubens is a utility to switch between Kubernetes namespaces.
https://github.com/ahmetb/kubectx
#devops #go
kubens is a utility to switch between Kubernetes namespaces.
https://github.com/ahmetb/kubectx
#devops #go
Almost everyone is on lockdown or quarantine. That's why a lot of people spend their time on education and online courses right now.
Due to high demand, I have created a set of 6 #python webinars on typing, dependencies, business logic, and testing.
It all starts on 6 April and ends on 17 April. Three webinars a week: on Mondays, Wednesdays, and Fridays.
This course is targeted on juniors and middle engineers.
This time it is going to be in Russian 🇷🇺 Sorry, other folks! It is a good sign to start learning our beautiful language :)
Full information with prices: https://drylabs.io/py-quarantine?utm_source=tg&utm_medium=post&utm_campaign=opensource_findings
#promo
Due to high demand, I have created a set of 6 #python webinars on typing, dependencies, business logic, and testing.
It all starts on 6 April and ends on 17 April. Three webinars a week: on Mondays, Wednesdays, and Fridays.
This course is targeted on juniors and middle engineers.
This time it is going to be in Russian 🇷🇺 Sorry, other folks! It is a good sign to start learning our beautiful language :)
Full information with prices: https://drylabs.io/py-quarantine?utm_source=tg&utm_medium=post&utm_campaign=opensource_findings
#promo
Linux kernel manager and activity monitor written in #rust
kmon provides a text-based user interface for managing the Linux kernel modules and monitoring the kernel activities. By managing, it means loading, unloading, blacklisting and showing the information of a module. These updates in the kernel modules, logs about the hardware and other kernel messages can be tracked with the real-time activity monitor in kmon. Since the usage of different tools like dmesg and kmod are required for these tasks in Linux, kmon aims to gather them in a single terminal window and facilitate the usage as much as possible while keeping the functionality.
#devops
kmon provides a text-based user interface for managing the Linux kernel modules and monitoring the kernel activities. By managing, it means loading, unloading, blacklisting and showing the information of a module. These updates in the kernel modules, logs about the hardware and other kernel messages can be tracked with the real-time activity monitor in kmon. Since the usage of different tools like dmesg and kmod are required for these tasks in Linux, kmon aims to gather them in a single terminal window and facilitate the usage as much as possible while keeping the functionality.
#devops
A #python tool that generates and runs test cases for Open API / Swagger based apps. Based on wonderful hypothesis project.
It reads the application schema and generates test cases which will ensure that your application is compliant with its schema.
The application under test could be written in any language, the only thing you need is a valid API schema in a supported format.
https://github.com/kiwicom/schemathesis
It reads the application schema and generates test cases which will ensure that your application is compliant with its schema.
The application under test could be written in any language, the only thing you need is a valid API schema in a supported format.
https://github.com/kiwicom/schemathesis
Prefect is a new workflow management system, designed for modern infrastructure and powered by the open-source Prefect Core workflow engine. Users organize Tasks into Flows, and Prefect takes care of the rest.
https://github.com/PrefectHQ/prefect
#python
prefect import task, Flow, Parameter
@task(log_stdout=True)
def say_hello(name):
print("Hello, {}!".format(name))
with Flow("My First Flow") as flow:
name = Parameter('name')
say_hello(name)
flow.run(name='world') # "Hello, world!"
flow.run(name='Marvin') # "Hello, Marvin!"
https://github.com/PrefectHQ/prefect
#python
Lens is the most powerful IDE for people who need to deal with #k8s clusters on a daily basis. It is a standalone application for MacOS, Windows and Linux operating systems. Ensure your clusters are properly setup and configured. Enjoy increased visibility, real time statistics, log streams and hands-on troubleshooting capabilities. With Lens, you can work with your clusters more easily and fast, radically improving productivity and the speed of business.
https://k8slens.dev/
#ts #devops
https://k8slens.dev/
#ts #devops
> Most people use vim in two stupid dimensions. But not me. I use it in three:
https://github.com/oakes/vim_cubed
#nim
https://github.com/oakes/vim_cubed
#nim
Zero-dependency #python package for simple throttling with asyncio support.
https://github.com/uburuntu/throttler
https://github.com/uburuntu/throttler
This is a GitHub Action to generate TOC (Table of Contents), which executes DocToc and commits if changed.
https://github.com/technote-space/toc-generator
#docops
https://github.com/technote-space/toc-generator
#docops
macos-like TimeMachine but for Linux!
It uses rsync to incrementally back up your data to a different directory, hard disk or remote server via SSH. All operations are incremental, atomic and automatically resumable.
The goal of this project is to have a cross-operating system and minimal as possible backup script that can be easily reviewed by anyone without great effort. Additionally it should provide one task only and do it well without the need of external requirements and only rely on default installed tools.
https://github.com/cytopia/linux-timemachine
#shell #devops
It uses rsync to incrementally back up your data to a different directory, hard disk or remote server via SSH. All operations are incremental, atomic and automatically resumable.
The goal of this project is to have a cross-operating system and minimal as possible backup script that can be easily reviewed by anyone without great effort. Additionally it should provide one task only and do it well without the need of external requirements and only rely on default installed tools.
https://github.com/cytopia/linux-timemachine
#shell #devops
Kroki provides a unified API with support for BlockDiag (BlockDiag, SeqDiag, ActDiag, NwDiag, PacketDiag, RackDiag), C4 (with PlantUML), Ditaa, Erd, GraphViz, Mermaid, Nomnoml, PlantUML, SvgBob, UMLet, Vega, Vega-Lite, WaveDrom... and more to come!
So, you can represent any diagram as a HTTP request.
https://kroki.io/
Example: https://kroki.io/plantuml/svg/eNplj0FvwjAMhe_5FVZP40CgaNMuUGkcdttp3Kc0NSVq4lRxGNKm_fe1HULuuD37-bOfuXPUm2QChEjRnlIMCDmdUfHNSYY6xh42a9Fsegflk-yYlOLlcHK2I2SGtX4WZm9sZ1o8uOzxxbuWAlIGj8cshs6M1jDuY2owyU2P8jAezdnn10j53X0hlBsZFW021Pq7HaVSNw-KN-OogG8F8BAGqT8dXhZjxW4cyJEW6kcC-yHWFagHqW0MfaThhYmaVyE26P_x27qaDmXeruqqAMMw1h-ZlRI4aF3dX7hOwm5XzfIKDctlNcshPT1tFa8JPYAj-Zf5F065sqM=
#docops #java #python
So, you can represent any diagram as a HTTP request.
https://kroki.io/
Example: https://kroki.io/plantuml/svg/eNplj0FvwjAMhe_5FVZP40CgaNMuUGkcdttp3Kc0NSVq4lRxGNKm_fe1HULuuD37-bOfuXPUm2QChEjRnlIMCDmdUfHNSYY6xh42a9Fsegflk-yYlOLlcHK2I2SGtX4WZm9sZ1o8uOzxxbuWAlIGj8cshs6M1jDuY2owyU2P8jAezdnn10j53X0hlBsZFW021Pq7HaVSNw-KN-OogG8F8BAGqT8dXhZjxW4cyJEW6kcC-yHWFagHqW0MfaThhYmaVyE26P_x27qaDmXeruqqAMMw1h-ZlRI4aF3dX7hOwm5XzfIKDctlNcshPT1tFa8JPYAj-Zf5F065sqM=
#docops #java #python