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

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

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

Связь: @sobolev_nikita
Download Telegram
​​Luckysheet is an online spreadsheet like excel that is powerful, simple to configure, and completely open source.

It has lots of features!

https://github.com/mengshukeji/Luckysheet

#js
> This text is about my adventure writing a small CLI application (twice) using two languages I had little experience with.

There is a large set of languages you can use to write CLI tools.

In this case, I wanted a language I had little or no prior experience with, I also wanted one that could easily compile to a native executable, which is a nice perk to have on a CLI tool.

My first obvious choice was Go, maybe because a lot of CLI tools I use are implemented using it. But I also had little experience with Rust, and I saw it could also be a good fit for this project.

So... why not both? Since my main objective here is to learn, could be a great opportunity to implement this project twice and find what are the pros and cons of each one from my point of view.

#go #rust

Personal opinion: Rust!
​​Errbot is a chatbot, a #python daemon that connects to your favorite chat service and bring your tools and some fun into the conversation.

It can connect to Hipchat, IRC, Slack, Telegram, Discord, Gitter, Zulip, Skype, or XMPP.
And it can do a lot of things with lots of plugins! From sending meme images to controlling your k8s cluster or trolling your co-worker.

https://github.com/errbotio/errbot
​​Pyre has applications beyond type checking python code; it can also run static analysis to identify potential security issues. These security issues are identified with what is called a Taint Analysis. The #python Static Analyzer feature of Pyre is usually abbreviated to Pysa (pronounced like the Leaning tower of Pisa).

Pysa works by tracking flows of data from where they originate (sources) to where they terminate in a dangerous location (sinks). For example, we might use it to track flows where user-controllable request data flows into an eval call, leading to a remote code execution vulnerability. This analysis is made possible by user-created stubs which provide annotations on source code, as well as Rules that define which sources are dangerous for which sinks. Pysa comes with many pre-written stubs and rules for builtin and common python libraries.

https://pyre-check.org/docs/pysa-basics.html
Vector is a lightweight, ultra-fast, open-source tool for building observability pipelines. Compared to Logstash and friends, Vector improves throughput by 10X while significantly reducing CPU and memory usage.

Features:
- Reliability First. - Built in #rust, Vector's primary design goal is reliability.
- One Tool. All Data. - One simple tool gets your logs, metrics, and traces (coming soon) from A to B.
- Single Responsibility. - Vector is a data router, it does not plan to become a distributed processing framework.

https://github.com/timberio/vector
​​2fa is a two-factor authentication agent inside your command line.

You can use this tool instead of custom mobile applications.

https://github.com/rsc/2fa

#go
​​The adaptive interface system for modern web experiences by Microsoft.

Features:
- Create reusable UI components based on web component standards.
- Use our standard library of pre-built web components in your apps.
- Choose between two adaptive design systems: Fluent Design and FAST Frame.
- Build your own design system without re-implementing component logic.
- Integrate with any front-end framework or build system.

FAST is a collection of JavaScript packages centered around web standards, designed to help you efficiently tackle some of the most common challenges in website and application design and development.

Have you ever needed a reusable set of UI components that you could drop into your app and have an amazing experience? That's FAST.

Have you ever needed to create your own components, and share them across your company, including across groups that use different, incompatible front-end frameworks? That's FAST.

Have you ever needed to implement a branded experience or a design language like Microsoft's Fluent UI or Google's Material Design? That's FAST.

Have you ever wanted to improve your app's startup time, render speed, or memory consumption? That's FAST.

Have you ever wanted to adopt more web standards and build your site or app on a native web foundation that's immune to the shifting sands of the modern JavaScript front-end landscape? That's FAST.

https://github.com/microsoft/fast

#ts #html #css
​​Unobtrusive Dependency Injector for #elixir

definject is a useful macros for transpaling normal functions into dependency-aware ones. It does not require you to modify function arguments or body. Instead, you just need to replace def with definject. It also allows injecting different mocks to each function. It also does not limit using :async option as mocks are contained in each test function.

https://github.com/definject/definject

Example:
​​A web framework for building virtual reality experiences written in #js.

Features:
- Virtual Reality Made Simple: A-Frame handles the 3D and WebVR boilerplate required to get running across platforms including mobile, desktop, Vive, and Rift just by dropping in <a-scene>.
- Declarative HTML: HTML is easy to read and copy-and-paste. Since A-Frame can be used from HTML, A-Frame is accessible to everyone: web developers, VR enthusiasts, educators, artists, makers, kids.
- Entity-Component Architecture: A-Frame is a powerful framework on top of three.js, providing a declarative, composable, reusable entity-component structure for three.js. While A-Frame can be used from HTML, developers have unlimited access to JavaScript, DOM APIs, three.js, WebVR, and WebGL.
- Performance: A-Frame is a thin framework on top of three.js. Although A-Frame uses the DOM, A-Frame does not touch the browser layout engine. Performance is a top priority, being battle-tested on highly interactive WebVR experiences.
- Cross-Platform: Build VR applications for Vive, Rift, Daydream, GearVR, and Cardboard. Don't have a headset or controllers? No problem! A-Frame still works on standard desktop and smartphones.
- Visual Inspector: A-Frame provides a built-in visual 3D inspector with a workflow similar to a browser's developer tools and interface similar to Unity. Open up any A-Frame scene and hit <ctrl> + <alt> + i.
- Features: Hit the ground running with A-Frame's built-in components such as geometries, materials, lights, animations, models, raycasters, shadows, positional audio, tracked controllers. Get even further with community components such as particle systems, physics, multiuser, oceans, mountains, speech recognition, or teleportation!

https://github.com/aframevr/aframe
​​A bulk renaming #rust tool for files.

Features:
- Rename one or several patterns in your files using the powerful Rust regex engine.
- Add an increment as a prefix or suffix to files.

https://github.com/adriangoransson/renamer
​​A utility tool powered by fzf for using git interactively.

This tool is designed to help you use git more efficiently. It's lightweight and easy to use.

Also integrates with: diff-so-fancy, delta, bat, emoji-cli.

https://github.com/wfxr/forgit

#shell #git
​​#python daemon to notify you when you should plug and unplug your computer.

The need for this project was born out from my carelessness of letting my previous Macbook charge for hours, until my battery stopped holding charge, and I had to move to a new machine.

https://github.com/parthraghav/Battery-Safe
​​Writing #python tests with Hypothesis frees you from the tedium of deciding on and writing out specific inputs to test. Now, the hypothesis.extra.ghostwriter module can write your test functions for you too!

The idea is to provide an easy way to start property-based testing, and a seamless transition to more complex test code - because ghostwritten tests are source code that you could have written for yourself.

So just pick a function you’d like tested, and feed it to one of the functions below or our command-line interface hypothesis write -h! They follow imports, use but do not require type annotations, and generally do their best to write you a useful test.

https://hypothesis.readthedocs.io/en/latest/ghostwriter.html
​​Klipse is a #js plugin for embedding interactive code snippets in tech blogs.

Technically, Klipse is a small piece of javascript code that evaluates code snippets in the browser and it is pluggable on any web page.

Supports lots of languages like Python, Ruby, Lua, SQL, PHP, etc

https://github.com/viebel/klipse
​​Convert poetry projects to #nix automagically.

poetry2nix turns Poetry projects into Nix derivations without the need to actually write Nix expressions. It does so by parsing pyproject.toml and poetry.lock and converting them to Nix derivations on the fly.

https://github.com/nix-community/poetry2nix

#python
​​Github action that uses machine learning to detect potential toxic comments added to PRs and issues so authors can have a chance to edit them and keep repos a safe space.

It uses the Tensorflow.js toxicity classification model.

It currently works when comments are posted on issues and PRs, as well as when pull request reviews are submitted.

https://github.com/charliegerard/safe-space

#ds #js #github
👍1
​​Echelon - hierarchical logs in terminal on steroids.
Cross-platform #go library to organize logs in a hierarchical structure.

Features:
- Customizable and works with any VT100 compatible terminal
- Supports simplified output for dump terminals
- Implements incremental drawing algorithm to optimize drawing performance
- Can be used from multiple goroutines
- Pluggable and customizable renderers
- Works on Windows!

https://github.com/cirruslabs/echelon
​​Django Ninja is a web framework for building APIs with Django and #python 3.6+ based type hints.

Key features:
- Easy: Designed to be easy to use and intuitive.
- Fast: Very high performance thanks to Pydantic and async support.
- Fast to code: Type hints and automatic docs let's you focus only on business logic.
- Standards-based: Based on the open standards for APIs: OpenAPI (previously known as Swagger) and JSON Schema.

https://github.com/vitalik/django-ninja

This code:

from ninja import NinjaAPI

api = NinjaAPI()


@api.get("/add")
def add(request, a: int, b: int):
return {"result": a + b}


Turns into: