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

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

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

Связь: @sobolev_nikita
Download Telegram
#python Object-Oriented Web Framework built on Flask.

https://mardix.github.io/assembly/

Looks like Django to me!
Breaking news!

#django 3.0 released.

With first-step asyncio support. I am still not sure about this: it might be a complete disaster, or it might resolve in first truly usabe async python web framework. (in case you really believe that there's something async in #python)

Let's see how it goes!

https://www.djangoproject.com/weblog/2019/dec/02/django-3-released/
This is insane! This utility strips everything you do not need from an image and creates a new image with just the bare necessities.

Look at the image size!

https://github.com/mvanholsteijn/strip-docker-image

But, it surely won't work for complex app images.

#devops #docker
​​#rust macros which provide useful shortcut combinators, combine sync/async chains, support single and multi thread (sync/async) step by step execution of branches, transform tuple of results to result of tuple.

Very powerful and pretty dark magic.

https://github.com/olegnn/join
Linting dotenv files like a charm!

Why?
1. This brings consistency for your .env files
2. Ensures that .env files have correct syntax and values

Read this post for more details: https://sobolevn.me/2019/01/announcing-dotenv-linter

Github repo: https://github.com/wemake-services/dotenv-linter

#python

Now with beautiful Github Action that can review and comment your pull requests:
​​Mail-in-a-Box helps individuals take back control of their email by defining a one-click, easy-to-deploy SMTP+everything else server: a mail server in a box.

https://github.com/mail-in-a-box/mailinabox

#python
​​A module used to arrange card elements including content infinitely according to layout type. With this module, you can implement various layouts composed of different card elements whose sizes vary. It guarantees performance by maintaining the number of DOMs the module is handling under any circumstance.

With built-in integrations for #vue, #react, #angular, and #svelte

https://github.com/naver/egjs-infinitegrid
​​Reverse engineer PostgreSQL database as a detailed #js Object.

https://www.pg-structure.com/
Plot: a domain-specific language (DSL) for writing type-safe HTML, XML and RSS in #swift. It can be used to build websites, documents and feeds, as a templating tool, or as a renderer for higher-level components and tools. It’s primary focus is on static site generation and Swift-based web development.

https://github.com/JohnSundell/Plot
​​Lighthouse CI is a set of commands that make continuously running, asserting, saving, and retrieving Lighthouse results as easy as possible.

https://github.com/GoogleChrome/lighthouse-ci

#js
​​Imagine an infinitely generated world that you could explore endlessly, continually finding entirely new content and adventures. What if you could also choose any action you can think of instead of being limited by the imagination of the developers who created the game?

Welcome to AI Dungeon 2!

Website: http://www.aidungeon.io/
Play: https://colab.research.google.com/github/nickwalton/AIDungeon/blob/master/AIDungeon_2.ipynb

#python
​​Do you still wait for #ts support for Svelte? There's this tool to help you in the meantime.

When run as a noscript and provided a file glob, will type check all svelte/js/ts files in that glob (and all their dependencies). Performs its magic using svelte2tsx and Typenoscript.

https://github.com/halfnelson/svelte-type-checker

#js #svelte
Simple zsh plugin that automatically sends out a notification when a long running task has completed.

Useful for those commands you don't predict will take long to run or just plain forgot to keep track of. Leave the task running and go do something else - auto-notify will let you know when the task is done!

https://github.com/MichaelAquilina/zsh-auto-notify
​​Traggo is a tag-based time tracking tool. In Traggo there are no tasks, only tagged time spans.

With tags, Traggo tries to be as customizable as possible, f.ex. if you work on different projects you could add a project-tag. If you like to see statistics from the different things you do, you could add a type-tag with values like email, programming, meeting. You can do it just as you like.

https://github.com/traggo/server

#go
​​Quay: Build, Store, and Distribute your Applications and Containers.

High-level features include:

- Docker Registry Protocol v2
- Docker Manifest Schema v2.1, v2.2
- AppC Image Discovery via on-demand transcoding
- Image Squashing via on-demand transcoding
- Authentication provided by LDAP, Keystone, OIDC, Google, and GitHub
- ACLs, team management, and auditability logs
- Geo-replicated storage provided by local filesystems, S3, GCS, Swift, and Ceph
- Continuous Integration integrated with GitHub, Bitbucket, GitLab, and git
- Security Vulnerability Analysis via Clair 🔥
- Swagger-compliant HTTP API

https://github.com/quay/quay

#devops #docker
One more tool to minify #docker images: https://github.com/docker-slim/docker-slim

Don't change anything in your Docker container image and minify it by up to 30x making it secure too!

Don't worry about manually creating Seccomp and AppArmor security profiles. You shouldn't have to become an expert in Linux syscalls, Seccomp and AppArmor to have secure containers. Even if you do know enough about it wasting time reverse engineering your application behavior can be time-consuming.

docker-slim will optimize and secure your containers by understanding your application and what it needs using various analysis techniques. It will throw away what you don't need, reducing the attack surface of your container. What if you need some of those extra things to debug your container? You can use dedicated debugging side-car containers for that (more details below).

Some results:
- from node:alpine - 66.7MB => 34.7MB (minified by 1.92X)
- from python:2.7-alpine - 84.3MB => 23.1MB (minified by 3.65X)

#devops