Type Router: a flexible, type safe routing library.
First and foremost Type Route strives for excellent TypeScript support. An API designed for static analysis not only means the compiler has your back but also enables your editor to provide intelligent hints and warnings as you code.
https://www.type-route.org/
I had a blog post last year about problems in typing Vue and it includes router as one of the weakest points: https://sobolevn.me/2019/06/really-typing-vue
I am glad that people are working on it!
#vue #react #ts
First and foremost Type Route strives for excellent TypeScript support. An API designed for static analysis not only means the compiler has your back but also enables your editor to provide intelligent hints and warnings as you code.
https://www.type-route.org/
I had a blog post last year about problems in typing Vue and it includes router as one of the weakest points: https://sobolevn.me/2019/06/really-typing-vue
I am glad that people are working on it!
#vue #react #ts
Doorstop is a requirements management tool that facilitates the storage of textual requirements alongside source code in version control.
When a project leverages this tool, each linkable item (requirement, test case, etc.) is stored as a YAML file in a designated directory. The items in each directory form a document. The relationship between documents forms a tree hierarchy. Doorstop provides mechanisms for modifying this tree, validating item traceability, and publishing documents in several formats.
https://github.com/doorstop-dev/doorstop/
#python
When a project leverages this tool, each linkable item (requirement, test case, etc.) is stored as a YAML file in a designated directory. The items in each directory form a document. The relationship between documents forms a tree hierarchy. Doorstop provides mechanisms for modifying this tree, validating item traceability, and publishing documents in several formats.
https://github.com/doorstop-dev/doorstop/
#python
Dead simple testing framework for #bash with coverage.
Code sample:
https://github.com/Checksum/critic.sh
Code sample:
test-foobar.sh
# Include your source files
source foobar.sh
# Include the framework
source critic.sh
# Write tests
_describe foo
_test "output should equal foo"
_assert _output_equals "foo"
_test "return code should be 0"
_assert _return_true "Optional assertion message"
https://github.com/Checksum/critic.sh
Updog is a replacement for #python's SimpleHTTPServer. It allows uploading and downloading via HTTP/S, can set ad hoc SSL certificates and use HTTP basic auth.
https://github.com/sc0tfree/updog
https://github.com/sc0tfree/updog
Disappearing-People - Person removal from complex backgrounds over time.
Removing people from complex backgrounds in real time using TensorFlow.js in the web browser using #js
https://github.com/jasonmayes/Real-Time-Person-Removal
Looks awesome!
Removing people from complex backgrounds in real time using TensorFlow.js in the web browser using #js
https://github.com/jasonmayes/Real-Time-Person-Removal
Looks awesome!
Crocks: A collection of well known Algebraic Data Types for your utter enjoyment.
https://crocks.dev/
Personal opinion: the sad thing is that types are not included.
#js
https://crocks.dev/
Personal opinion: the sad thing is that types are not included.
#js
crocks.dev
Home - Crocks
A collection of well known Algebraic Data Types for your utter enjoyment.
Destiny: like prettier but for file structure.
What does this do?
1. Scans a folder for all the files in it
2. Creates a directed graph based on how the #js or #ts files import each other
https://github.com/benawad/destiny
What does this do?
1. Scans a folder for all the files in it
2. Creates a directed graph based on how the #js or #ts files import each other
https://github.com/benawad/destiny
mikro-orm: #ts ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns.
Features:
1. Implicit Transactions: MikroORM allows handling transactions automatically. When you call em.flush(), all computed changes are wrapped inside a database transaction.
2. DRY Entities: Uses source code analysis so you do not have to repeat yourself when defining entities. Simply define correct TypeScript types and you are good to go!
3. Supports both SQL and NoSQL: Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases, and more can be supported via custom drivers right now.
https://github.com/mikro-orm/mikro-orm
Features:
1. Implicit Transactions: MikroORM allows handling transactions automatically. When you call em.flush(), all computed changes are wrapped inside a database transaction.
2. DRY Entities: Uses source code analysis so you do not have to repeat yourself when defining entities. Simply define correct TypeScript types and you are good to go!
3. Supports both SQL and NoSQL: Supports MongoDB, MySQL, MariaDB, PostgreSQL and SQLite databases, and more can be supported via custom drivers right now.
https://github.com/mikro-orm/mikro-orm
PostHog is open source product analytics, built for developers. Automate the collection of every event on your website or app, with no need to send data to 3rd parties. It's a 1 click to deploy on your own infrastructure, with full API/SQL access to the underlying data.
https://github.com/PostHog/posthog
#python #js
https://github.com/PostHog/posthog
#python #js
One of the most common questions about #rust from newcomers is: "why do we have both
This article has a great answer!
&str and String"?This article has a great answer!
> Every time I want to write format a date in Ruby using strftime I have to look up the symbols for month, year, etc.
> This tool lets you just write your desired outcome (e.g. "March 3rd, 2019") and it generates the right #ruby code for you
Date strings are compatible with some other languages as well.
http://strftimer.com/
> This tool lets you just write your desired outcome (e.g. "March 3rd, 2019") and it generates the right #ruby code for you
Date strings are compatible with some other languages as well.
http://strftimer.com/
Playwright is a Node library to automate the Chromium, WebKit and Firefox browsers with a single API. It enables cross-browser web automation that is ever-green, capable, reliable and fast.
Our primary goal with Playwright is to improve automated UI testing by eliminating flakiness, improving the speed of execution and offering insights into the browser operation.
https://github.com/microsoft/playwright
#qa #ts
Our primary goal with Playwright is to improve automated UI testing by eliminating flakiness, improving the speed of execution and offering insights into the browser operation.
https://github.com/microsoft/playwright
#qa #ts
Conditional coverage based on any rules you define!
Some project have different parts that relies on different environments:
- #python version, some code is only executed on specific versions and ignored on others
- OS version, some code might be Windows, Mac, or Linux only
- External packages, some code is only executed when some 3rd party package is installed
Current best practice is to use
Read the announcing post: https://sobolevn.me/2020/02/conditional-coverage
Go star this repo: https://github.com/wemake-services/coverage-conditional-plugin
Some project have different parts that relies on different environments:
- #python version, some code is only executed on specific versions and ignored on others
- OS version, some code might be Windows, Mac, or Linux only
- External packages, some code is only executed when some 3rd party package is installed
Current best practice is to use
# pragma: no cover for this places in your project. coverage-conditional-plugin allows to use configurable pragmas that include code to the coverage if some condition evaluates to true, and fallback to ignoring this code when condition is false.Read the announcing post: https://sobolevn.me/2020/02/conditional-coverage
Go star this repo: https://github.com/wemake-services/coverage-conditional-plugin
Great talk about solving the same simple problem with three completely different languages: #csharp, #haskell, and #clojure
From one of my favourite speakers / authors out there:
> First, we'll do a brief overview of the FizzBuzz kata, and see one 'idiomatic' way to implement it in C# (the Java, Javascript, Visual Basic, etc. version would be similar, so all OO programmers are welcome). Next, most of the talk will be a live demo showing approaches to the kata in Haskell and Clojure. If you've never seen Haskell or Clojure before, but are curious about these languages, this is the talk for you! Finally, we take some of the ideas from the Haskell and Clojure implementations, and bring them back to C# for a second attempt at the kata.
From one of my favourite speakers / authors out there:
> First, we'll do a brief overview of the FizzBuzz kata, and see one 'idiomatic' way to implement it in C# (the Java, Javascript, Visual Basic, etc. version would be similar, so all OO programmers are welcome). Next, most of the talk will be a live demo showing approaches to the kata in Haskell and Clojure. If you've never seen Haskell or Clojure before, but are curious about these languages, this is the talk for you! Finally, we take some of the ideas from the Haskell and Clojure implementations, and bring them back to C# for a second attempt at the kata.
YouTube
One kata, three languages - Mark Seemann
First, we'll do a brief overview of the FizzBuzz kata, and see one 'idiomatic' way to implement it in C# (the Java, Javascript, Visual Basic, etc. version would be similar, so all OO programmers are welcome). Next, most of the talk will be a live demo showing…
❤1
> When you start learning a programming language, how much time do you spend stuck on syntax errors? Hours? Days? As someone who once spent a full day trying to debug a MapReduce build before learning that you need backslashes in multi-line bash expressions, I know it is a deeply discouraging amount of time. Lots of people have suffered through experiences like this with missing semi-colons and curly braces, but how many people do not make it past these syntax errors? How many people fall off the syntax cliff and give up on a language or just quit programming entirely?
> So with the release of Elm 0.19.1 today, I am excited to share the new and improved syntax error messages! My hope is that the new compiler feels more like a teacher, showing helpful and relevant examples when you get stuck. The remainder of this post highlights some of the messages that people are likely to see when learning Elm, so you can decide for yourself!
#elm
> So with the release of Elm 0.19.1 today, I am excited to share the new and improved syntax error messages! My hope is that the new compiler feels more like a teacher, showing helpful and relevant examples when you get stuck. The remainder of this post highlights some of the messages that people are likely to see when learning Elm, so you can decide for yourself!
#elm
Let your documentation be your testing suite! Now for #js
Doctests are my favourite tests.
https://github.com/supabase/doctest-js
Doctests are my favourite tests.
https://github.com/supabase/doctest-js
⚡Breaking news!
Introducing Hanami::API: It's a minimal, extremely fast, lightweight Ruby framework for HTTP APIs.
http://hanamirb.org/blog/2020/02/26/introducing-hanami-api.html
#ruby
Introducing Hanami::API: It's a minimal, extremely fast, lightweight Ruby framework for HTTP APIs.
http://hanamirb.org/blog/2020/02/26/introducing-hanami-api.html
#ruby
#ts has Turing-complete type system. It means that you can write any program with just types.
Here's an amazing example:
> This project attempts to push TypeScript's type system to its limits by actually implementing various functions and algorithms, purely on top of the type system.
> Every implementation includes comments describing in detail what's going on. Some functions and algorithms use creative (and sometimes not officially supported) solutions to overcome some limitations of the type system.
https://github.com/ronami/meta-typing
Here's an amazing example:
> This project attempts to push TypeScript's type system to its limits by actually implementing various functions and algorithms, purely on top of the type system.
> Every implementation includes comments describing in detail what's going on. Some functions and algorithms use creative (and sometimes not officially supported) solutions to overcome some limitations of the type system.
https://github.com/ronami/meta-typing
⚡Breaking news!
Rome is finally released!
https://github.com/facebookexperimental/rome
It is still highly experimental and stuff, but you can have a look at the source code and try it.
#ts #js
Rome is finally released!
https://github.com/facebookexperimental/rome
It is still highly experimental and stuff, but you can have a look at the source code and try it.
#ts #js
A commandline tool + #python library to glitchify images and even make GIFs out of them! Featuring 10 different levels of glitching intensity! The algorithm used to create glitched images is a slightly modifed version of the popular ImageGlitcher tool's algorithm, so you can expect the glitched images to look really cool!
https://github.com/TotallyNotChase/glitch-this
https://github.com/TotallyNotChase/glitch-this