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

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

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

Связь: @sobolev_nikita
Download Telegram
#sql Style Guide

You can use this set of guidelines, fork them or make your own - the key here is that you pick a style and stick to it. To suggest changes or fix bugs please open an issue or pull request on GitHub.

These guidelines are designed to be compatible with Joe Celko's SQL Programming Style book to make adoption for teams who have already read that book easier. This guide is a little more opinionated in some areas and in others a little more relaxed. It is certainly more succinct where Celko's book contains anecdotes and reasoning behind each rule as thoughtful prose.

https://www.sqlstyle.guide/
​​Effekt Language: a research language with effect handlers and lightweight effect polymorphism written in #scala

-Lightweight Effect Polymorphism, No need to understand effect polymorphic functions or annotate them. Explicit effect polymorphism simply does not exist.
-Effect Safety, A type- and effect system that does not get into your way. Rely on a simple, yet powerful effect system that guarantees all effects to be handled.
- Effect Handlers, (Algebraic) effect handlers let you define advanced control-flow structures like generators as user libraries. Those libraries can be seamlessly composed.

https://effekt-lang.github.io/effekt-website/
​​Run your GitHub Actions locally!

Why would you want to do this? Two reasons:
- Fast Feedback - Rather than having to commit/push every time you want to test out the changes you are making to your .github/workflows/ files (or for any changes to embedded GitHub actions), you can use act to run the actions locally. The environment variables and filesystem are all configured to match what GitHub provides.
- Local Task Runner - I love make. However, I also hate repeating myself. With act, you can use the GitHub Actions defined in your .github/workflows/ to replace your Makefile!

When you run act it reads in your GitHub Actions from .github/workflows/ and determines the set of actions that need to be run. It uses the Docker API to either pull or build the necessary images, as defined in your workflow files and finally determines the execution path based on the dependencies that were defined. Once it has the execution path, it then uses the Docker API to run containers for each action based on the images prepared earlier. The environment variables and filesystem are all configured to match what GitHub provides.

https://github.com/nektos/act

#go #devops
​​Rector - Upgrade Your Legacy #php App to a Modern Codebase

Rector is a reconstructor tool - it does instant upgrades and instant refactoring of your code. Why refactor manually if Rector can handle 80% of the task for you?

What Can Rector Do for You?
- Upgrade 30000 unit tests from PHPUnit 6 to 9 in 2 weeks
- Complete @var annotations or parameter/return type declarations
- Complete PHP 7.4 property type declarations
- Upgrade your code from PHP 5.3 to 8.0
- Migrate your project from Nette to Symfony
- Refactor Laravel facades to dependency injection
- And much more...

https://github.com/rectorphp/rector
​​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