Находки в опенсорсе
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
Real #python applications have real data, and real data nests. Objects inside of objects inside of lists of objects.

glom is a new and powerful way to handle real-world data, featuring:

- Path-based access for nested data structures
- Readable, meaningful error messages
- Declarative data transformation, using lightweight, Pythonic specifications
- Built-in data exploration and debugging features

https://github.com/mahmoud/glom
Some languages (like #erlang) have a real philosophy in their core. And philosophy is applied not only to programming, but to life as well.

Read about how #erlang changed person's attitude to life:
​​This is a plugin to facilitate image comparison for #matplotlib figures in #pytest: https://github.com/matplotlib/pytest-mpl

Looks awesome! #python
​​A neat #haskell little one liner to avoid duplicating logic across a -> b and b -> Maybe a

It is also implemented in relude library: https://github.com/kowainik/relude/blob/daf6868ac43f634d5f7c0003a3841ab70dbffbb3/src/Relude/Extra/Enum.hs#L38-L62
​​Keeping your system up to date mostly involves invoking more than a single package manager. Topgrade tries to solve this problem by detecting which tools you use and run their appropriate package managers: https://github.com/r-darwish/topgrade

#rust
Enforcing boundaries in #elixir projects without requiring the extra ceremony of umbrella apps: https://github.com/sasa1977/boundaries

Awesome tool to enforce better architecture and a very neat use-case of a custom mix compiler!
​​This ESLint plugin lets users write simple #eslint rules right in their config by leveraging the power of ESQuery, which is a #CSS-selector-like library for ASTs: https://www.npmjs.com/package/eslint-plugin-esquery

#js
​​Sorbet is 100% compatible with #ruby. It type checks normal method definitions, and introduces backwards-compatible syntax for method signatures: https://sorbet.org/
Surf is a friendly HTTP client built for #rust. It's completely modular, and built directly for async/await. Whether it's a quick script, or a cross-platform SDK, Surf will make it work.

Announcement: https://blog.yoshuawuyts.com/surf/
​​Manage #react state server-side with #elixir GenServer's. Hooks are generated for you: https://github.com/joshnuss/phx_hooks
The optics family of #haskell packages make it possible to define and use Lenses, Traversals, Prisms and other optics, using an abstract interface. They are roughly comparable in functionality with the lens package, but explore a different part of the design space: https://github.com/well-typed/optics
If you are a system administrator, or just a regular #linux user, there is a very high chance that you worked with #syslog, at least one time.

On your Linux system, pretty much everything related to system logging is linked to the Syslog protocol.

Designed in the early 80’s by Eric Allman (from Berkeley University), the syslog protocol is a specification that defines a standard for message logging on any system.

Syslog is not tied to Linux operating systems, it can also be used on Windows instances, or ony operating system that implements the syslog protocol.

If you want to know more about syslog and about Linux logging in general, this is probably the tutorial that you should read.
#ruby on rails 6.0 release: https://weblog.rubyonrails.org/2019/8/15/Rails-6-0-final-release/

Interesting. I thought that ruby is dead...
Presently, real-time communication tools such as Slack are very popular in business environments. However, use of these tools creates a culture that harms projects. It negatively impacts planning accuracy, implementation quality, product refinements, and design quality. I will tell you about the many issues created by real-time messaging in workplaces, and how to remedy your work culture.
​​returns (Make your functions return something meaningful, typed, and safe!) new 0.10 release! https://github.com/dry-python/returns/releases/tag/0.10.0

Now with monadic transformations and pipes!
Functional architecture tends to fall into a pit of success that looks a lot like Ports and Adapters.

In object-oriented architecture, we often struggle towards the ideal of the Ports and Adapters architecture, although we often call it something else: layered architecture, onion architecture, hexagonal architecture, and so on. The goal is to decouple the business logic from technical implementation details, so that we can vary each independently.

This creates value because it enables us to manoeuvre nimbly, responding to changes in business or technology.