Находки в опенсорсе
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
​​Popeye is a utility that scans live Kubernetes cluster and reports potential issues with deployed resources and configurations. It sanitizes your cluster based on what's deployed and not what's sitting on disk. By scanning your cluster, it detects misconfigurations and ensure best practices are in place thus preventing potential future headaches. It aims at reducing the cognitive overload one faces when operating a Kubernetes cluster in the wild. Furthermore, if your cluster employs a metric-server, it reports potential resources over/under allocations and attempts to warn you should your cluster run out of capacity.

Popeye is a readonly tool, it does not alter any of your Kubernetes resources in any way!

https://github.com/derailed/popeye

#go #devops #yaml
A #vim plugin that simplifies the transition between multiline and single-line #rust code.

Update: turns out other languages are also supported.

https://github.com/AndrewRadev/splitjoin.vim
I’ve spent a good deal of my professional life arguing against using protobuffers. They’re clearly written by amateurs, unbelievably ad-hoc, mired in gotchas, tricky to compile, and solve a problem that nobody but Google really has. If these problems of protobuffers remained quarantined in serialization abstractions, my complaints would end there. But unfortunately, the bad design of protobuffers is so persuasive that these problems manage to leak their way into your code as well.

#protobuf
​​A modern Python test framework designed to help you find and fix flaws faster.

Features:
- Descriptive test names: describe what your tests do using strings, not function names.
- Modular test dependencies: manage test setup/teardown code using fixtures that rely on Python's import system, not name matching.
- Powerful test selection: limit your test run not only by matching test names/descriptions, but also on the code contained in the body of the test.
- Colourful, human readable output: quickly pinpoint and fix issues with detailed output for failing tests.
- Parameterised testing: easily parameterise your tests using each.
- Expect API: A simple but powerful assertion API inspired by Jest.
- Cross platform: Tested on Mac OS, Linux, and Windows.
- Zero config: Sensible defaults mean running ward with no arguments is enough to get started.

https://github.com/darrenburns/ward

#python
#riir

Rustysd is a service manager that tries to replicate systemd behaviour for a subset of the configuration possibilities. It focuses on the core functionality of a service manager.

For now this project is just out of interest how far I could come with this and what would be needed to get a somewhat working system. It is very much a proof of concept / work in progress. For the love of god do not use this in anything that is important. It does look somewhat promising, the core parts are "working" (not thoroughly tested) but there is a lot of cleanup to be done. There is a whole lot of unwrap() calling where error handling should be done properly. It would be a bit unhelpful if your service-manager starts panicing.

https://github.com/KillingSpark/rustysd

#rust
​​Scout is a URL fuzzer for discovering undisclosed files and directories on a web server.

https://github.com/liamg/scout

#go #secops
This was the final post this year. We are taking a holiday break. See you in two weeks!

(yes, we do love long holidays in Russia)
​​bandwhich sniffs a given network interface and records IP packet size, cross referencing it with the /proc filesystem on linux or lsof on macOS. It is responsive to the terminal window size, displaying less info if there is no room for it. It will also attempt to resolve ips to their host name in the background using reverse DNS on a best effort basis.

https://github.com/imsnif/bandwhich

#rust
Great article about best practices of writing #e2e tests, it focuses on #cypress, but is applicable to any other tool as well.
​​Capture screenshots of websites in various resolutions. A good way to make sure your websites are responsive. It's speedy and generates 100 screenshots from 10 different websites in just over a minute. It can also be used to render SVG images.

https://github.com/sindresorhus/pageres-cli

#js
> Malicious code can be inserted into any #github action, even those which are tagged.

I have raised this question multiple times with different projects, but it seems that best practices are not yet stabilized enough for this new platform.

There are other security considerations as well, we will cover them pretty soon in other materials.
​​Chaos Mesh is a cloud-native Chaos Engineering platform that orchestrates chaos on #k8s environments. At the current stage, it has the following components:

- Chaos Operator: the core component for chaos orchestration. Fully open sourced.
- Chaos Dashboard: a visualized panel that shows the impacts of chaos experiments on the online services of the system; under development; curently only supports chaos experiments on TiDB(https://github.com/pingcap/tidb).

https://github.com/pingcap/chaos-mesh

#go
​​> Async is all the rage. Async #python, async Rust, go, node, .NET, pick your favorite ecosystem and it will have some async going. How good this async business works depends quite a lot on the ecosystem and the runtime of the language but overall it has some nice benefits. It makes one thing really simple: to await an operation that can take some time to finish. It makes it so simple, that it creates innumerable new ways to blow ones foot off. The one that I want to discuss is the one where you don't realize you're blowing your foot off until the system starts overloading and that's the topic of back pressure management. A related term in protocol design is flow control.
​​A kotlinx.html library provides DSL to build HTML to Writer/Appendable or DOM at JVM and browser (or other JavaScript engine) for better Kotlin programming for Web.

https://github.com/Kotlin/kotlinx.html

#kotlin
> I have a very long diatribe on the state of document editors that I am working on, and almost anyone that knows me has heard parts of it, as I frequently rail against all of them: MS Word, Google Docs, Dropbox Paper, etc. In the process of writing up my screed I started thinking what a proper document format would look like and realized the awfulness of all the current document formats is a much more pressing problem than the lack of good editors. In fact, it may be that failing to have a standard, robust, and extensible file format for documents might be the single biggest impediment to having good document editing tools. Seriously, even if you designed the world’s best document editor but all it can output is PNGs then how useful if your world’s best document editor?

#rant
​​SQLx is a modern SQL client built from the ground up for #rust, in Rust.

- Truly Asynchronous. Built from the ground-up using async-std using async streams for maximum concurrency.
- Type-safe SQL (if you want it) without DSLs. Use the query!() macro to check your SQL and bind parameters at compile time. (You can still use dynamic SQL queries if you like.)
- Pure Rust. The Postgres and MySQL/MariaDB drivers are written in pure Rust using zero unsafe code.

https://github.com/launchbadge/sqlx
​​npx snowpack is the easiest way to build your #js project!

It promises to be just a single config-less command to do everything you need. And even faster than webpack.

Interesting thing to try!

https://www.snowpack.dev/