Nbb’s main goal is to make it easy to get started with ad hoc CLJS scripting on Node.js.
Additional goals and features are:
• Fast startup without relying on a custom version of Node.js.
• Small artifact (current size is around 1.2MB).
• First class macros.
• Support building small TUI apps using Reagent.
• Complement babashka with libraries from the Node.js ecosystem.
#nodejs #clojure #clojurescript
Additional goals and features are:
• Fast startup without relying on a custom version of Node.js.
• Small artifact (current size is around 1.2MB).
• First class macros.
• Support building small TUI apps using Reagent.
• Complement babashka with libraries from the Node.js ecosystem.
#nodejs #clojure #clojurescript
🔥2❤1😁1
Jepsen is a Clojure library. A test is a Clojure program which uses the Jepsen library to set up a distributed system, run a bunch of operations against that system, and verify that the history of those operations makes sense. Jepsen has been used to verify everything from eventually-consistent commutative databases to linearizable coordination systems to distributed task schedulers. It can also generate graphs of performance and availability, helping you characterize how a system responds to different faults.
#clojure #distributed #systems
#clojure #distributed #systems
👍2❤1🔥1
Beginner's TypeScript Tutorial is an interactive #TypeScript tutorial for beginners.
#typescript #ts #tutorial
#typescript #ts #tutorial
😁2❤1🔥1
Hex Fiend — is a fast and clever open source hex editor for macOS.
- Insert, delete, rearrange. Hex Fiend does not limit you to in-place changes like some hex editors.
- Work with huge files. Hex Fiend can handle as big a file as you’re able to create. It’s been tested on files as large as 118 GB.
- Small footprint. Hex Fiend does not keep your files in memory. You won’t dread launching or working with Hex Fiend even on low-RAM machines.
- Fast. Open a huge file, scroll around, copy and paste, all instantly. Find what you’re looking for with fast searching.
- Binary diff. Hex Fiend can show the differences between files, taking into account insertions or deletions. Simply open two files in Hex Fiend and then use the File > Compare menus.
- Smart saving. Hex Fiend knows not to waste time overwriting the parts of your files that haven’t changed, and never needs temporary disk space.
#objectivec #macos #hex #editor
- Insert, delete, rearrange. Hex Fiend does not limit you to in-place changes like some hex editors.
- Work with huge files. Hex Fiend can handle as big a file as you’re able to create. It’s been tested on files as large as 118 GB.
- Small footprint. Hex Fiend does not keep your files in memory. You won’t dread launching or working with Hex Fiend even on low-RAM machines.
- Fast. Open a huge file, scroll around, copy and paste, all instantly. Find what you’re looking for with fast searching.
- Binary diff. Hex Fiend can show the differences between files, taking into account insertions or deletions. Simply open two files in Hex Fiend and then use the File > Compare menus.
- Smart saving. Hex Fiend knows not to waste time overwriting the parts of your files that haven’t changed, and never needs temporary disk space.
#objectivec #macos #hex #editor
🔥2❤1👍1
httpie is all the user-friendliness of our Terminal version, now wrapped up in a sleek graphical interface.
- Interact painlessly with APIs
- Organize your work in spaces, collections, and tabs
- Parametrize requests with variables and environments
- Work across devices with auto-save and realtime sync
- Build and preview requests without sending them
- Use the app offline and without an account
#http #client #python #desktop #cli #web #macos #windows #linux #rest #api
- Interact painlessly with APIs
- Organize your work in spaces, collections, and tabs
- Parametrize requests with variables and environments
- Work across devices with auto-save and realtime sync
- Build and preview requests without sending them
- Use the app offline and without an account
#http #client #python #desktop #cli #web #macos #windows #linux #rest #api
👍3❤1🔥1👏1
Stable Diffusion is a latent text-to-image diffusion model. Thanks to a generous compute donation from Stability AI and support from LAION, we were able to train a Latent Diffusion Model on 512x512 images from a subset of the LAION-5B database. Similar to Google's Imagen, this model uses a frozen CLIP ViT-L/14 text encoder to condition the model on text prompts. With its 860M UNet and 123M text encoder, the model is relatively lightweight and runs on a GPU with at least 10GB VRAM. See this section below and the model card.
#python #ml #dl #text2image #diffusion #model #torch #torchvision
#python #ml #dl #text2image #diffusion #model #torch #torchvision
🔥7❤1👏1
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
#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
#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
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
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
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
#js #javascript #pdf #document
🔥5👍3❤2
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
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
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
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
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
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
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.
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
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
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