Находки в опенсорсе – 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
​​Convert JSON into gorgeous, typesafe code in any language. Generate models and serializers from JSON, schema, and GraphQL for working with data quickly & safely in any programming language.

https://quicktype.io/
​​This is not a regular post. This is a serious stuff!

> Open source hardware and software platform to build a small scale self driving car.

You can literally create your own small self-driving car with little effort. My cat will be furious!

https://github.com/autorope/donkeycar
Two news from me:

1. New version of dry-python/returns is released. We have focused on improving user APIs and providing new monads, like: Reader, IOResult, ReaderIOResult, etc

https://github.com/dry-python/returns
Go give this library a star if you think that it is awesome.

2. I wrote an article about "Functional dependency injection in Python". It features how to use simple tools (like Reader monad) to solve complex problem: injecting dependencies into deeply nested code.

https://sobolevn.me/2020/02/typed-functional-dependency-injection

It is a good start for people who is not familiar with this concept yet. If you are not familiar with Python, that's ok. Many other languages share the same pattern.

#python
Introducing the new Thinc, a refreshing functional take on deep learning!

🔮 Static type checking
🔥 Mix PyTorch, TensorFlow, ApacheMXNet
⛓️ Integrated config system
🧮 Extensible backends incl. JAX (experimental)
🧬 Variable-length sequences & more

https://github.com/explosion/thinc

I love how functional paradigm and static types conquer the #python land!
​​React Nice Dates, a responsive, touch-friendly, and modular date picker library for #react

React Nice Dates is composed of a set of components and utilities with different levels of abstraction that you can use to build your own date pickers.

https://reactnicedates.hernansartorio.com/

#js
co-log is a composable and configurable logging framework. It combines all the benefits of #haskell idioms to provide a reasonable and convenient interface. Though it uses some advanced concepts in its core, we are striving to provide beginner-friendly API. The library also contains complete documentation with a lot of beginner-friendly examples, explanations and tutorials to guide users. The combination of pragmatic approach to logging and fundamental Haskell abstractions allows us to create highly composable and configurable logging framework.

If you're interested in how different Haskel typeclasses are used to implement core functions of co-log, you can read the following blog post which goes in detail about internal implementation specifics:

co-log: Composable Contravariant Combinatorial Comonadic Configurable Convenient Logging

https://github.com/kowainik/co-log
​​JSON casting and validation library based on #elixir type specifications.

https://github.com/savonarola/edantic
> With the EoL of Python 2 being in line with development of #python 3.9 there were changes made to Python 3.9 that broke a lot of packages since many deprecation warnings became errors.

Well, Python is going to be broken again!
​​Introducing Mu for #haskell! This release comes w/ full support for building gRPC microservices, shifts a lot of checks to compile-time schemas & readily integrates with well-known Haskell libraries for many tasks. More here: https://www.47deg.com/blog/introducing-mu-haskell-0-1/

Docs: https://higherkindness.io/mu-haskell/
> Hi everyone! After exactly 365 days of very intensive development, I'm extremely happy to unveil the first stable release of Yarn 2. In this post I will explain what this release will mean for our community. Buckle up!

#js
​​ScalaPy: use #python libraries from the comfort of #scala

Notable features:

- Complete Ecosystem: Use any Python library you can dream of. Want to train neural networks on GPUs with TensorFlow? ScalaPy supports it.
- Strong Typing: Add type definitions for Python libraries as you go to catch bugs before they happen in production.
- Performant Interop: Compile to native binaries with Scala Native to unlock maximum performance with direct bindings to CPython.

https://scalapy.dev/
​​Learn languages with fun 🎉

Browser extension for learning languages with watching movies and TV shows. Has integrations with multiple video services.

https://easysubs.co/

#ts
> One of the strengths of Clojure is the ability to interoperate with and harness the power of the JVM. But this interoperability comes with its baggage. For one, we can never really ignore the JVM — things like class loading, garbage collection, byte code interpreter, JIT compiler— for another, we simply have to respect the semantics of the JVM. In this post, we talk about one such semantic — the shutdown sequence of the JVM, how it translates to Clojure programs and how best to productionise it, while keeping business requirements unhampered during the shutdown process.

#closure
Internet debates about typing disciplines continue to be plagued by a pervasive myth that dynamic type systems are inherently better at modeling “open world” domains. The argument usually goes like this: the goal of static typing is to pin everything down as much as possible, but in the real world, that just isn’t practical. Real systems should be loosely coupled and worry about data representation as little as possible, so dynamic types lead to a more robust system in the large.

This story sounds compelling, but it isn’t true.
​​Haskell, the pure and lazy functional programming language, has now been around for more than 25 years. It had a profound influence on many other programming languages on the JVM: Java, Clojure and Scala and elsewhere: Purenoscript, Swift, Go (just kidding, not Go :-)). In this talk you will discover which #haskell constructs have made it to mainstream programming languages and change the way you program today. You will also get a glimpse of the features which are yet to be transferred for our greatest benefit. Warning: after this talk you might be tempted to try the real thing!
​​A local development and DevOps tool for all your projects that is fast, easy, powerful and liberating.

Lando is for developers who want to:

- Quickly specify and painlessly spin up the services and tooling needed to develop their projects.
- Ship these local development dependencies in a per-project, lives-in-git config file
- Automate complex build steps, testing setups, deployments or other repeated-more-than-once workflows
- Avoid the built-in-masochism of directly using docker or docker-compose

https://github.com/lando/lando

Personal opinion: I don't like adding even more abstraction layers on top of docker-compose and docker, but I am interested to see where it goes.

#js #devops
Kotlin source code documentation management tool.

This is a tool that produces #kotlin source example files and tests from markdown documents with embedded snippets of Kotlin code. It also helps to add links to the API documentation website into the documents and has a few other helpful markdown-management features.

https://github.com/Kotlin/kotlinx-knit

Similar to doctests in Python. My ❤️ type of tests!
Understanding best-practice #python tooling by comparing popular project templates.

> I always find it difficult to have a balanced opinion about Python best-practices. The hype-driven tech world makes it difficult to filter signal from noise. A newly advertized tool often sounds great on paper, but is it actually making me a more effective engineer? Or is it just one more thing I need to look after, by adding more complexity than value?

Article itself: https://medium.com/@jonas.r.kemper/understanding-best-practice-python-tooling-by-comparing-popular-project-templates-6eba49229106

Spreadsheet with results: https://docs.google.com/spreadsheets/d/1W2I9Di-_PEPicMUR2_Kj9WRoeYCaOJLVBPSR8AsfZy8
​​Verchew is an embeddable #python noscript to check the versions of your project's system dependencies. Its only external dependency is any Python interpreter, which should already be installed on macOS and most Linux-based operating systems.

https://verchew.readthedocs.io/en/v1.0/
​​Diagrams as code!

Turn #python based DSL into beatiful graphics. Diagrams currently supports four major providers: AWS, Azure, GCP and Kubernetes.

https://github.com/mingrammer/diagrams