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

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

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

Связь: @sobolev_nikita
Download Telegram
Lightweight, modular, and extensible library for functional #scala programming: https://typelevel.org/cats/
​​#scala 3.0 might have indentation-based syntax like in #python.

Discussion: https://github.com/lampepfl/dotty/pull/7083
​​Open-sourcing Polynote: an IDE-inspired polyglot notebook:

> We are pleased to announce the open-source launch of Polynote: a new, polyglot notebook with first-class Scala support, Apache Spark integration, multi-language interoperability including #scala, #python, and #sql, as-you-type autocomplete, and more.

https://polynote.org/
Hedgehog automatically generates a comprehensive array of test cases, exercising your software in ways human testers would never imagine.

Generate hundreds of test cases automatically, exposing even the most insidious of corner cases. Failures are automatically simplified, giving developers coherent, intelligible error messages.

Features:

- Integrated shrinking, shrinks obey invariants by construction.
- Abstract state machine testing.
- Generators allow monadic effects.
- Range combinators for full control over the scope of generated numbers and collections.
- Equality and roundtrip assertions show a diff instead of the two inequal values.
- Template Haskell test runner which executes properties concurrently.

https://github.com/hedgehogqa/haskell-hedgehog

#haskell

Also available for #scala, #fsharp, #csharp, and #r
​​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/
> You will aquire knowledge on how to build software in a purely functional manner, you will leverage a particular kind of algebraic effects called environmental effects in order to structure your code in a better way enabling you to test each individual component in an isolated way and making your modules reusable and composable.

> We are not cheating, neither using magic tricks! By leveraging functional programming principles we have developed a set of libraries that enrich the fp-ts ecosystem with the functionalities that you may find in a library like ZIO in the Scala ecosystem.

> The latest development in the core TypeScript language allow us to take environment usage even further compared to what ZIO can achieve, namely TypeScript has a very good support for intersection types and this makes environment usage wonderful.

https://arnaldimichael.gitbook.io/matechs-effect/

#ts #scala
Great read about #scala's ZLayer from ZIO.

Nice and very useful concept that can be ported to many other languages.

https://zio.dev/docs/howto/howto_use_layers
​​Quill provides a Quoted Domain Specific Language (QDSL) to express queries in #scala and execute them in a target language. The library's core is designed to support multiple target languages, currently featuring specializations for Structured Query Language (SQL) and Cassandra Query Language (CQL).

Features:

- Boilerplate-free mapping: The database schema is mapped using simple case classes.
- Quoted DSL: Queries are defined inside a quote block. Quill parses each quoted block of code (quotation) at compile time and translates them to an internal Abstract Syntax Tree (AST)
- Compile-time query generation: The ctx.run call reads the quotation's AST and translates it to the target language at compile time, emitting the query string as a compilation message. As the query string is known at compile time, the runtime overhead is very low and similar to using the database driver directly.
- Compile-time query validation: If configured, the query is verified against the database at compile time and the compilation fails if it is not valid. The query validation does not alter the database state.

https://github.com/getquill/quill