Binary Tree
731 subscribers
722 photos
2 videos
1 file
916 links
This is a channel about Open Source, software development, and IT in general.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Etherpad is a real-time collaborative editor scalable to thousands of simultaneous real time users. It provides full data export capabilities, and runs on your server, under your control.

#javascript #js #document #editor #collaborative #realtime #web #pdf #word
πŸ‘4❀2πŸ€”2
This media is not supported in your browser
VIEW IN TELEGRAM
Coroot is a monitoring and troubleshooting tool for microservice architectures.

#go #golang #javascript #js #monitoring #microservice
❀3πŸ‘2πŸ”₯1πŸ‘Œ1
Generating secrets in Clojure.

Generating secrets is a very important part of any data-sensitive application. In this article, I’m going to tell you about a low-level library that helps to generate secrets in Clojure.

If you’re familiar with Python, you might have heard of secrets module from Python’s standard library. Well, the secrets.clj is just like Python’s secrets, but for Clojure.

Read it: https://isaak.dev/2022/10/generating-secrets-in-clojure

#clojure #jvm #secrets #password #tokens #rng #csprng
πŸ‘3❀1πŸ”₯1πŸ‘1
Calva: A Clojure & ClojureScript IDE in Visual Studio Code.

Calva is an integrated, REPL powered, development environment for enjoyable and productive Clojure and ClojureScript programming in Visual Studio Code.

It includes:

- inline code evaluation
- structural editing
- code formatting
- code navigation
- a debugger
- linting
- syntax highlighting
- Clojure aware rainbow brackets
- a test runner
- refactoring support
- and much more.

#clojure #clojurescript #vscode #vsc #calva #ide #repl
πŸ‘3❀1πŸ‘1πŸ”₯1
This media is not supported in your browser
VIEW IN TELEGRAM
xh is a friendly and fast tool for sending HTTP requests. It reimplements as much as possible of HTTPie's excellent design, with a focus on improved performance.

#rust #cli #terminal #http #client #web #api #testing
πŸ‘4❀1πŸ”₯1πŸ‘1
Parsr is a minimal-footprint document (image, pdf, docx, eml) cleaning, parsing and extraction toolchain which generates readily available, organized and usable data in JSON, Markdown (MD), CSV/Pandas DF or TXT formats.

#js #javascript #pdf #document
πŸ”₯5πŸ‘3❀2
Carbon is an open-source design system built by IBM. With the IBM Design Language as its foundation, the system consists of working code, design tools and resources, human interface guidelines, and a vibrant community of contributors.

#js #javascript #design #system #ibm
πŸ‘5πŸ‘3❀2πŸ”₯1
How async/await works in Python.

Code written in the async/await style looks like regular synchronous code but works very differently. To understand how it works, one should be familiar with many non-trivial concepts including concurrency, parallelism, event loops, I/O multiplexing, asynchrony, cooperative multitasking and coroutines. Python's implementation of async/await adds even more concepts to this list: generators, generator-based coroutines, native coroutines, yield and yield from. Because of this complexity, many Python programmers that use async/await do not realize how it actually works. I believe that it should not be the case. The async/await pattern can be explained in a simple manner if you start from the ground up. And that's what we're going to do today.

Author: Victor Skvortsov.

#article #python #async #await #concurrency #parallelism #event #io #multiplexing #multitasking
❀6πŸ†4πŸ”₯2πŸ‘1
Beej's Guide to Network Programming.

Hey! Socket programming got you down? Is this stuff just a little too difficult to figure out from the man pages? You want to do cool Internet programming, but you don’t have time to wade through a gob of structs trying to figure out if you have to call bind() before you connect(), etc., etc.

Well, guess what! I’ve already done this nasty business, and I’m dying to share the information with everyone! You’ve come to the right place. This document should give the average competent C programmer the edge s/he needs to get a grip on this networking noise.

Author: Brian β€œBeej Jorgensen” Hall

#book #network #sockets #tcp #ip #udp #ipv4 #ipv6
❀4πŸ”₯2πŸ‘1🍾1
Elliptic curves and ECDSA: everything to know to sign a transaction in Bitcoin from scratch.

The elliptic curve is a pretty simple concept. The Elliptic Curves Digital Signature Algorithm (ECDSA), which works on top of its properties, is used in most blockchains like Bitcoin, Ethereum, etc., and is even simpler. But it’s difficult to find a good explanation on the internet and build all the pieces together. But here it is! In this article, we will.

We will go through all the concepts needed to understand and implement this algorithm β€” one by one. By the end of this article, we will have a fully functioning demo from scratch, which can extract the public key from the private key, sign a message, and verify that the signature is correct. This implementation will only use the concepts described in this article. Moreover, it will take less than 100 lines of code.

This article is targeted mainly at developers, who want to finally understand ECDSA, but it will also be very useful for everyone else. It requires knowing no more than middle school math.

#article #cryptography #ecdsa #elliptic #curve #bitcoin #signing
πŸ”₯4πŸ‘Œ1πŸ†1
Python Type Checking.

In this guide, you will get a look into Python type checking. Traditionally, types have been handled by the Python interpreter in a flexible but implicit way. Recent versions of Python allow you to specify explicit type hints that can be used by different tools to help you develop your code more efficiently.

#python #typing #mypy #realpython #guide #tutorial
πŸ‘6πŸŽ‰2❀1
The Little Book of Rust Macros.

This book is an attempt to distil the Rust community's collective knowledge of Rust macros.

#rust #docs #macro
πŸ”₯4πŸ€”2πŸ‘Œ1
The Definitive Guide to Clojure on the JVM.

Clojure runs on the JVM and that is a huge asset to the Clojure language. In addition, Clojure was designed to be hosted. That means its semantics often defer to the underlying semantics of the host platform. All of that boils down to us needing to understand the Java ecosystem in order to get the most out of Clojure.

The Java ecosystem is big and it can be daunting. But fear not! You don't need to learn everything, and once you learn enough, it will be worth it. You will realize that it is not so intimidating.

This guide will be your . . . guide.

#clojure #jvm #guide
❀5🍾2πŸ‘1πŸ‘1πŸ†1
Understanding Clojure's Persistent Vectors: Part 1
Understanding Clojure's Persistent Vectors: Part 2

You may or may not heard about Clojure’s persistent vectors. It is a data structure invented by Rich Hickey (influenced by Phil Bagwell’s paper on Ideal Hash Trees) for Clojure, which gives practically O(1) runtime for appends, updates, lookups and subvec. As they are persistent, every modification creates a new vector instead of changing the old one.

So, how do they work? I’ll try to explain them through a series of blogposts, in which we look at manageable parts each time. It will be a detailed explanation, with all the different oddities around the implementation as well.

For today, we’ll have a look at the basics and will cover updates, appends, and popping. The PersistentVector implementation in Clojure uses this as its core but also implements several speed optimisations, such transients and tails. We will have a look at those in later blog posts.

#clojure #persistent #vector #imutable #article
πŸ”₯8❀2πŸ†2
xsv is a command line program for indexing, slicing, analyzing, splitting and joining CSV files.

#rust #csv #toolkit #fast #cli
πŸ‘6πŸ”₯2πŸ‘2❀1
Shall I suspend this channel?
Anonymous Poll
77%
No
8%
Yes
15%
Whatever
❀8🀯4πŸ†3
RustDesk is a open source virtual / remote desktop infrastructure for everyone! The open source TeamViewer alternative. Display and control your PC and Android devices from anywhere at anytime.

#rust #desk #rat #pc #android #teamviewer #p2p #vnc #flutter
πŸ‘13πŸ”₯3πŸ€”3πŸŽ‰1
django-template β€” a highly opinionated starter project which I use as a scaffold for all my Django projects.

I'm still working on this one, so work is in progress, but feel free to send PRs.

Features

- Python 3.10, Django 4.1 and DRF 3.14.0
- poetry for managing dependencies
- postgres as a database
- redis as cache and message queue
- docker for development, testing, and production
- celery for asynchronous tasks
- black and isort for neat code formatting
- pytest and mimesis for testing
- django-debug-toolbar for debugging
- django-filter for easy filtering

#django #python #scaffold #template #bestpractices
πŸ”₯8πŸ‘3πŸ’©1πŸ†1
explainshell.com is an online tool built that visually explains each part of a Unix command by matching command-line arguments to their help text.

#bash #tool #explains
❀7πŸ”₯2🀯1πŸ†1
Practicalli Clojure.

Clojure - an elegant language for a more civilised development experience

A simple syntax means Clojure is quick to learn and a wide range of open source libraries provides a rapid way to build any kind of software. Designed as a hosted language, Clojure runs on many platforms including the Java Virtual Machine, GraalVM, Microsoft.Net, JavaScript engines. Simple host language interoperability provides access to libraries from a wide range of programming languages, further extending the reach of Clojure.

#clojure #jvm #fp #learning #tutorial #book
❀5πŸ”₯1
Hiccup is a library for representing HTML in Clojure. It uses vectors to represent elements, and maps to represent an element's attributes.

Code example:

[:div {:id "email" :class "selected starred"} "..."]

#clojure #jvm #htmll #rendering
πŸ”₯4❀2πŸ‘1