Находки в опенсорсе
10.6K subscribers
11 photos
1 video
3 files
816 links
Привет!

Меня зовут Никита Соболев. Я занимаюсь опенсорс разработкой полный рабочий день.

Тут я рассказываю про #python, #c, опенсорс и тд.
Поддержать: https://boosty.to/sobolevn
РКН: https://vk.cc/cOzn36

Связь: @sobolev_nikita
Download Telegram
​​hypothesis-auto is an extension for the Hypothesis project that enables fully automatic #python tests for type annotated functions. Key Features:

- Type Annotation Powered: Utilize your function's existing type annotations to build dozens of test cases automatically.
- Low Barrier: Start utilizing property-based testing in the lowest barrier way possible. Just run auto_test(FUNCTION) to run dozens of test.
- py.test Compatible: Built-in compatibility with the popular py.test testing framework. This means that you can turn your automatically generated tests into individual py.test test cases with one line.
- Scales Up: As you find your self needing to customize your auto_test cases, you can easily utilize all the features of Hypothesis, including custom strategies per a parameter.

https://timothycrosley.github.io/hypothesis-auto/
​​Gearbox is a functional state machine for #elixir with an easy-to-use API, inspired by both Fsm and Machinery.

Gearbox does not run in a process, so there's no potential for a GenServer bottleneck. This way there's also less overhead as you won't need to setup a supervision tree/manage your state machine processes.

https://github.com/edisonywh/gearbox
​​List of awesome #git hooks!

Git hooks are custom scripts you can use to automate tasks which are triggered before or after a git command is executed. There are two groups of these hooks: client-side and server-side. Client-side hooks are triggered by operations such as committing and merging, while server-side hooks run on network operations such as receiving pushed commits. This repo contains helpful resources as well as a variety of git hook scripts that can be easily customized to serve different purposes.

https://github.com/CompSciLauren/awesome-git-hooks
​​Der Fehler is a small but very opinionated #rust error handling library.

In many ways, der Fehler is a successor to failure. However, unlike failure, der Fehler is built around the standard library's Error trait, which has adopted the necessary improvements that the Fail trait had provided thanks to RFC 2504.

Der Fehler provocatively and unapologetically uses the terminology of exceptions.

https://github.com/withoutboats/fehler
#nim has always been focused on providing a compiled statically typed language focusing on efficiency, readability and flexibility.

Version 1.0 marks the beginning of a stable base which can be used in the coming years, knowing that the future versions of Nim won’t break the code you have written with the current version.

https://nim-lang.org/blog/2019/09/23/version-100-released.html
​​Support open source and earn a limited edition T-shirt!

To qualify for the official limited edition Hacktoberfest shirt, you must register and make four pull requests (PRs) between October 1-31 (in any time zone). PRs can be made to any public repo on GitHub, not only the ones with issues labeled Hacktoberfest. If a maintainer reports your pull request as spam or behavior not in line with the project’s code of conduct, you will be ineligible to participate. This year, the first 50,000 participants who successfully complete the challenge will earn a T-shirt.
​​Decades-old Computer Science conjecture solved in two pages.

A paper posted online this month has settled a nearly 30-year-old conjecture about the structure of the fundamental building blocks of computer circuits. This “sensitivity” conjecture has stumped many of the most prominent computer scientists over the years, yet the new proof is so simple that one researcher summed it up in a single tweet.
​​PIRE is an interactive #python command-line interface allowing you to edit regexes live and see how your changes match against the input you specify.

https://github.com/johannestaas/pire
​​Accelerating #python's numpy, scikit and pandas as much as 100x with #rust and LLVM.

Meet Weld. Weld is a runtime for improving the performance of data-intensive applications. It optimizes across libraries and functions by expressing the core computations in libraries using a small common intermediate representation, similar to CUDA and OpenCL.

https://www.weld.rs/
​​Funny article about memory management in #c and #rust. That's a rare combo. Don't miss it!
​​dry-effects is a practical, production-oriented implementation of algebraic effects in #ruby.

https://dry-rb.org/gems/dry-effects/0.1/
5G is here. Its little icon is starting to appear in the top corners of phone screens throughout the world. If you’ve connected to it already, you may have observed that it doesn’t feel a whole lot faster than 4G.

So network performance stands to get much faster very soon. That should alleviate the web’s performance problems right?

Well, it should, but I don’t expect it will. At least not soon. If recent trends continue, 5G just might make web performance worse, not better, for the average person.
​​Lifecycle hooks for #django that are inspired by #rails. That's very pretty on the one side and very ugly on the other.


Check it out and create your own opinion!
https://github.com/rsinger86/django-lifecycle
José Valim: If you look at the features listed by Kubernetes (#k8s) and compare it to languages that run on the Erlang VM, such as Erlang and Elixir, the impression is that they share many k eywords, such as “self-healing”, “horizontal scaling”, “distribution”, etc.

This sharing often leads to confusion. Do they provide distinct behaviors? Do they overlap? For instance, is there any purpose to #elixir’s fault tolerance if Kubernetes also provides self-healing?

In this article, I will go over many of these topics and show how they are mostly complementary and discuss the rare case where they do overlap.
​​The strictest and most opinionated #python linter ever! Actually wemake-python-styleguide is just a flake8 plugin with lots of other plugins as dependencies.

https://github.com/wemake-services/wemake-python-styleguide

It focuses on enforcing consistent, easy (not complex), readable python code. And it goes with some extreme and hardcore checks inside.

We also made this linter to be legacy first with the help of flakehell. It means that you are allowed to have existing bad code, but you won't be allowed to write more bad code. Ever.

Also available as a Github Action: https://github.com/marketplace/actions/wemake-python-styleguide

By the way, we have a lot of #Hacktoberfest issues that need help: https://github.com/wemake-services/wemake-python-styleguide/issues?q=is%3Aissue+is%3Aopen+label%3AHacktoberfest
DYC is a CLI tool that helps with documenting your #python source code. It will help keep you alert for new methods that were added and not documented. Also supports to build a reusable docstring template. Just answer the prompt questions in your terminal to see the effect on your files.

https://github.com/Zarad1993/dyc
​​A #rust crate for safe and ergonomic pin-projection.

https://crates.io/crates/pin-project

Honest question: do you understand what does Pin do?
Excelent article about layers in your application.

> When designing any application, the question is inevitably raised: “where should this code go?” Many times this answer isn’t readily available, resulting in code that ends up in a project’s junk drawer (like utils or models). If this happens enough, the codebase becomes tangled and the team’s ability to maintain the software over time is significantly decreased. This is not a sign of developer inexperience or “naming is hard” — instead it’s most likely a symptom of an application’s lack of structure.