Находки в опенсорсе
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
​​New Gleam website!

For ones who don't know about Gleam yet:

> Gleam is a fast, friendly, and functional language for building safe, scalable systems!

Features:

- Safe: Gleam's powerful static type system helps find and prevent bugs at compile time, long before it reaches your users. It also serves as a productive refactoring tool, enabling programmers to confidently make large changes to unfamiliar code, quickly and with low risk. For problems the type system can't solve (such as your server being hit by a bolt of lightning) the Erlang virtual machine provides well tested mechanisms for gracefully handling failure.

- Friendly: Hunting down bugs can be stressful so Gleam's compiler provides clear and helpful feedback about any problems. We want to spend more time developing features and less time looking for bugs or deciphering cryptic error messages. As a community we want to be friendly too. People of all backgrounds, genders, and experience levels are welcome and must receive equal respect. See our community code of conduct for more.

- Performant: Gleam builds on top of the Erlang virtual machine, a best-in-class runtime that has enabled companies such as WhatsApp, Ericsson, Heroku, and Klarna to provide low-latency services at a global scale. Gleam takes full advantage of the Erlang runtime and adds no overhead of its own, so all Gleam programs are as blazingly fast as their #erlang counterpart.

- Erlang compatible: Gleam makes it easy to use code written in other BEAM languages such as Erlang, #elixir and LFE, so there's a rich ecosystem of thousands of open source libraries for Gleam users to make use of. In return Gleam code can be easily used by programmers of other BEAM languages, either by transparently making use of libraries written in Gleam, or by adding Gleam modules to their existing project with minimal fuss.

https://gleam.run

#gleam
​​Awesome EventStorming!

EventStorming is a workshop-based method to quickly find out what is happening in the domain of a software program. Comparing to other methods it is extremely lightweight and requires intentionally no support by a computer. The result is expressed in sticky notes on a wide wall. The business process is "stormed out" as a series of domain events which are denoted as orange stickies.

You can find here some links to interesting materials, articles or presentations about EventStorming.

https://github.com/mariuszgil/awesome-eventstorming
​​Playwright CLI is utility tool for Playwright.

With the CLI, you can:
- Generate code: Record user interactions and generate Playwright scripts.
- Open pages: Open pages in Chromium, Firefox and WebKit (Safari) on all platforms.
- Emulate devices, color schemes and geolocation.
- Inspect selectors: Use the Playwright DevTools API to inspect selectors.
- Generate page screenshots and PDFs

https://github.com/microsoft/playwright-cli

#ts
​​A C-like language to Brainfuck compiler, written in #python

Why? Because we can.

https://github.com/elikaski/BF-it
​​Gifcurry is the open-source video editor for GIF makers. It's built with #haskell and works on Linux, Mac, and most likely Windows. There is both a graphical and command line interface.

Gifcurry edits your GIFs or videos and turns them into videos or GIFs. You can crop, trim, seek, add text, pick a font, alter the duration, change the size, set the FPS, tweak the color count, enable dithering, import subtitles, and save your creation as either a GIF or video.

https://lettier.github.io/gifcurry/
​​A checklist of tactics for marketing your side projects.

The Side Project Marketing Checklist is a comprehensive, chronologically ordered list of marketing tactics and ideas that you can try with your next side project.

I've been building little software side projects for years, but I've always been terrible at marketing them. I come up with some ideas, forget those ideas, do some random stuff, then lose interest. The goal of this repository is to fix that.

https://github.com/portable-cto/side-project-marketing/blob/master/marketing-checklist.md
​​A temporary email right from your terminal.

tmpmail tmpmail is a command line utility that allows you to create a temporary email address and receive emails to the temporary email address. It uses 1secmail's API to receive the emails.

By default w3m is used to render the HTML emails on the terminal. But if you prefer another text based web browser or would rather view the email in a GUI web browser such as Firefox, simply use the --browser argument followed by the command needed to launch the web browser of your choice.

https://github.com/sdushantha/tmpmail

#shell #devops
​​This Intellij plugin allows you to save your code as an image. By simply selecting your code.

This plugin allows you to save your code as an image. By simply selecting your code, you can save you code with proper syntax highlighting. The image adapts to the current setting of your intellij editor like background color.

https://github.com/mohak1712/CodeSnapshot

#java
Breaking news!

GitHub CLI 1.0 is now available!

GitHub CLI brings GitHub to your terminal. It reduces context switching, helps you focus, and enables you to more easily script and create your own workflows.

With GitHub CLI 1.0, you can:
- Run your entire GitHub workflow from the terminal, from issues through releases
- Call the GitHub API to script nearly any action, and set a custom alias for any command
- Connect to GitHub Enterprise Server in addition to GitHub.com

https://github.blog/2020-09-17-github-cli-1-0-is-now-available/
​​SQL powered operating system instrumentation, monitoring, and analytics.

osquery exposes an operating system as a high-performance relational database. This allows you to write SQL-based queries to explore operating system data. With osquery, SQL tables represent abstract concepts such as running processes, loaded kernel modules, open network connections, browser plugins, hardware events or file hashes.

SQL tables are implemented via a simple plugin and extensions API. A variety of tables already exist and more are being written: https://osquery.io/schema. To best understand the expressiveness that is afforded to you by osquery, consider the following SQL queries:

 DISTINCT processes.name, listening_ports.port, processes.pid
FROM listening_ports JOIN processes USING (pid)
WHERE listening_ports.address = '0.0.0.0';


https://osquery.io/

#cpp #devops
​​You can compile many things to WebAssembly.
Now, you can compile COBOL to WebAssembly as well.
In case you wanted it.

It is even wrapped in a docker for better developer experience.

https://github.com/cloudflare/cobaul
​​sqlbench measures and compares the execution time of one or more SQL queries.

The main use case is benchmarking simple CPU-bound query variants against each other during local development.

Only PostgreSQL is supported at this point, but pull requests for MySQL or other databases are welcome.

https://github.com/felixge/sqlbench

#go
​​A resource based framework for building #elixir applications.

Traditional MVC Frameworks (Rails, Django, .Net, Phoenix, etc) leave it up to the user to build the glue between requests for data (HTTP requests in various forms as well as server-side domain logic) and their respective ORMs. In that space, there is an incredible amount of boilerplate code that must get written from scratch for each application (authentication, authorization, sorting, filtering, sideloading relationships, serialization, etc).

Ash is an opinionated yet configurable framework designed to reduce boilerplate in an Elixir application. Ash does this by providing a layer of abstraction over your system's data layer(s) with Resources. It is designed to be used in conjunction with a phoenix application, or on its own.

To riff on a famous JRR Tolkien quote, a Resourceis "One Interface to rule them all, One Interface to find them" and will become an indispensable place to define contracts for interacting with data throughout your application.

To start using Ash, first declare your Resources using the Ash Resource DSL. You could technically stop there, and just leverage the Ash Elixir API to avoid writing boilerplate. More likely, you would use extensions like Ash.JsonApi or Ash.GraphQL with Phoenix to add external interfaces to those resources without having to write any extra code at all.

Ash is an open-source project and draws inspiration from similar ideas in other frameworks and concepts. The goal of Ash is to lower the barrier to adopting and using Elixir and Phoenix, and in doing so help these amazing communities attract new developers, projects, and companies.

https://github.com/ash-project/ash
​​A new GraphQL library for #python based on dataclasses.

Awesome features:
- Has async support
- Fully type-safe, even has its own mypy plugin for better inference
- Shipped with django Integration
- Has very good docs!

https://github.com/strawberry-graphql/strawberry
​​Learn #git by building one in #python!

> This tutorial is different from most Git internals tutorials because we're not going to talk about Git only with words but also with code! We're going to write in Python as we go.

> This is not a tutorial on using Git! To follow along I advise that you have working knowledge of Git. If you're a newcomer to Git, this tutorial is probably not the best place to start your Git journey. I suggest coming back here after you've used Git a bit and you're comfortable with making commits, branching, merging, pushing and pulling.

> Why learn Git internals?

> For most tools that we use daily, we don't really care about their internals. We can use Firefox or Vim without understanding their inner workings.

> At first you shouldn't care about Git internals either. You can use Git as a set of CLI commands that track code history. Run git add, git commit and git push all day long and you'll do fine, as long as you're a sole developer who just commits to one branch.

> But once you start collaborating with multiple people on multiple branches and things like rebase or force push are getting involved, it's easy to become lost if you don't have a good mental model of Git internals.

> From my experience with using Git myself and teaching others, a better way to improve your effectiveness with Git is by understanding how it works behind the scenes and not by learning more "advanced" Git commands. This understanding is what will allow you to solve the kind of problems that multi-user collaborative coding sometimes produce.

> Why not learn Git by reading the real Git code?

> The real Git code is too complicated to be useful for learning basic concepts with ease. It is production quality code that is optimized for speed. It is written in C. It implements so many advanced Git features. It deals with a lot of edge cases that we don't care about for learning. In this tutorial we will focus on the bare minimum to get the point across.

https://www.leshenko.net/p/ugit