Binary Tree
729 subscribers
722 photos
2 videos
1 file
916 links
This is a channel about Open Source, software development, and IT in general.
Download Telegram
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
Backend Master Class for building simple bank service.

In this course, you will learn step-by-step how to design, develop and deploy a backend web service from scratch. I believe the best way to learn programming is to build a real application. Therefore, throughout the course, you will learn how to build a backend web service for a simple bank. It will provide APIs for the frontend to do the following things:

- Create and manage bank accounts.
- Record all balance changes to each of the accounts.
- Perform a money transfer between 2 accounts.

The programming language we will use to develop the service is Golang, but the course is not just about coding in Go.

GitHub: techschool/simplebank

#golang #go #video #masterclass #backend #bank #postgres
❀9
OpenAI Cookbook.

This repository shares example code and example prompts for accomplishing common tasks with the OpenAI API.

To try these examples yourself, you’ll need an OpenAI account. Create a free account to get started.

Most code examples are written in Python, though the concepts can be applied in any language.

In the same way that a cookbook's recipes don't span all possible meals or techniques, these examples don't span all possible use cases or methods. Use them as starting points upon which to elaborate, discover, and invent.

#python #openai #ai
πŸ‘5πŸ†3πŸ”₯1
Tide is an ultimate Fish prompt.

Out of the box: With three compelling styles and lots of options, you can have your ready-to-run cake and customize it too.

Flexible:
Move content around or remove it, all without ever touching a line of code.

Extensible: Create custom content with simple Fish functions that integrate seamlessly.

Fast: Asynchronous rendering makes Tide the fastest full-featured Fish prompt.

#fish #shell #theme #prompt #plugin
πŸ”₯7πŸ‘Ž1πŸ‘1
Remotion is a framework for creating videos programmatically using React.

Why create videos in React?

β€” Leverage web technologies: Use all of CSS, Canvas, SVG, WebGL, etc.
β€” Leverage programming: Use variables, functions, APIs, math and algorithms to create new effects
β€” Leverage React: Reusable components, Powerful composition, Fast Refresh, Package ecosystem

#typescript #ts #js #react #video
πŸ‘5πŸ”₯1
MonitorControl

Control your display's brightness & volume on your Mac as if it was a native Apple Display. Use Apple Keyboard keys or custom shortcuts. Shows the native macOS OSDs.

#swift #macos #display #monitor #native #menubar #apple #control #volume #shade #gamma #brightness #m1 #m2
πŸ”₯4πŸ‘1πŸ†1
Flet is a framework that enables you to easily build realtime web, mobile and desktop apps in your favorite language and securely share them with your team. No frontend experience required.

#python #dart #go #android #ios #flutter #web #ui
πŸ”₯10πŸ‘2