Monday, May 31, 2021

Web3 Foundation

 About | Web3 Foundation

"Our mission is to nurture cutting-edge applications for decentralized web software protocols.
Our passion is delivering Web 3.0, a decentralized and fair internet where users control their own data, identity and destiny."


What Exactly is Web3? by Juan Benet at Web3 Summit 2018 - YouTube


Web3 Foundation Grants — Wave 3 Recipients | by Web3 Foundation Team | Web3 Foundation | Medium


Subsocial

AWS App Runner & Copilot CLI for cloud containers

 449-introducing-aws-app-runner - AWS Podcasts

"AWS App Runner is a fully managed container application service that makes it easier and faster for customers to build, deploy, and run containerized web applications and APIs with just a few clicks, no infrastructure or containers experience required."


It is AWS Beanstalk with ECS/Faregate under the hood

448-aws-copilot-modern-applications-cli - AWS Podcasts

"Want to eliminate the heavy lifting of setting up infrastructure and deploying containerized applications to multiple environments? AWS Copilot CLI lets you build, deploy, and manage your containerized applications with a simple, well-organized set of commands. Then you can focus on application development while the CLI handles nuances of how AWS services integrate and manages all the steps required to deploy a container to the cloud!"

AWS Copilot CLI - AWS Copilot CLI

It is CloudFormation under the hood, with open source script CLI generating templates

interesting: it is written in GoLang, not in Python as AWS CLI is. 

GitHub - aws/copilot-cli: The AWS Copilot CLI is a tool for developers to build, release and operate production ready containerized applications on AWS App Runner, Amazon ECS, and AWS Fargate.



Sunday, May 30, 2021

GitHub Actions

GitHub Actions: Hello World | GitHub Learning 

GitHub Actions Documentation - GitHub Docs

LabGuides - GitHub Docs

GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker - YouTube

V8 "Sparkplug": fast JavaScript compiler

Chrome's JS V8 engine is getting faster, again... 

Sparkplug — a non-optimizing JavaScript compiler · V8

"Writing a high-performance JavaScript engine takes more than just having a highly optimising compiler like TurboFan. Particularly for short-lived sessions, like loading websites or command line tools, there’s a lot of work that happens before the optimising compiler even has a chance to start optimising, let alone having time to generate the optimised code."



"Sparkplug is designed to compile fast. Very fast. So fast, that we can pretty much compile whenever we want, allowing us to tier up to Sparkplug code much more aggressively than we can to TurboFan code.

There are a couple of tricks that make the Sparkplug compiler fast. First of all, it cheats; the functions it compiles have already been compiled to bytecode, and the bytecode compiler has already done most of the hard work like variable resolution, figuring out if parentheses are actually arrow functions, desugaring destructuring statements, and so on. Sparkplug compiles from bytecode rather than from JavaScript source, and so doesn’t have to worry about any of that.

The second trick is that Sparkplug doesn’t generate any intermediate representation (IR) like most compilers do. Instead, Sparkplug compiles directly to machine code in a single linear pass over the bytecode, emitting code that matches the execution of that bytecode. In fact, the entire compiler is a switch statement inside a for loop, dispatching to fixed per-bytecode machine code generation functions."


Saturday, May 29, 2021

Rust => WASM @ Deno Server

Using Web Assembly Written in Rust on the Server-Side – The New Stack

this could be useful for "cloud functions @ edge"



WebContainers: Run Node.js as WebAssembly in web browser

Introducing WebContainers: Run Node.js natively in your browser


The advent of WebAssembly and new capabilities APIs made it seem possible to write a WebAssembly-based operating system powerful enough to run Node.js, entirely inside your browser.

WebContainers allow you to create fullstack Node.js environments that boot in milliseconds and are immediately online & link shareable—in just one click. The environment loads with VS Code's powerful editing experience, a full terminal, npm and more. It also runs entirely inside your browser


example: 

Friday, May 28, 2021

Grain: Your WebAssembly-First Programming Language vs AssemblyScript

Grain: Your WebAssembly-First Programming Language - WebAssembly Summit 2021

Grain is strongly typed (with a typechecker from OCaml), and its type inference significantly reduces the need for type annotations. Besides the WebAssembly core data types (e.g., i32 becomes Int32), Grain also provides composite types that are commonly used in high-level typed languages.


AssemblyScript, which compiles a strict variant of TypeScript to WebAssembly, also self-describes as made for WebAssembly and includes a standard library with common composite types (e.g., arrays, dates). Like Grain, AssemblyScript compiles to WebAssembly using Binaryen. AssemblyScript strives to give 

Thursday, May 27, 2021

Mockttp: HTTPS JavaScript proxy

Build an HTTPS-intercepting JavaScript proxy in 30 seconds flat | HTTP Toolkit

Mockttp is the open-source HTTP library that powers all the internals of HTTP Toolkit, built in TypeScript. It can act as an HTTP(S) server or proxy, to intercept and mock traffic, transform responses, inject errors, or fire events for all the traffic it receives.

Tuesday, May 25, 2021

Fuchsia OS

 Google finally starts pushing the new Fuchsia OS for the first-gen Nest Hub - Gizmochina

Google first commenced development of the Fuchsia OS in 2016, an open-source operating system that is distinctively not based on the Linux kernel, one major distinguishing feature from the Android OS. Instead of the Linux kernel, the OS is based on a microkernel called Zircon.







Fuchsia is an open-source capability-based operating system developed by Google. It first became known to the public when the project appeared on a self hosted form of git in August 2016 without any official announcement. The name means "Pink + Purple = Fuchsia (a new Operating System)",[2] which is a reference to Pink (Apple's first effort at an object-oriented, microkernel-based operating system) and Purple (the original iPhone's codename).[3] In contrast to prior Google-developed operating systems such as Chrome OS and Android, which are based on the Linux kernel, Fuchsia is based on a new kernel called Zircon. After years of development, Fuchsia was officially released to the public on the first-generation Google Nest Hub, replacing its original Cast OS.



Unicode: Chess

chess is supported in many popular fonts

Chess symbols in Unicode - Wikipedia


NameSymbolCode pointHTML (decimal)HTML (hex)
white chess kingU+2654♔♔
white chess queenU+2655♕♕
white chess rookU+2656♖♖
white chess bishopU+2657♗♗
white chess knightU+2658♘♘
white chess pawnU+2659♙♙
black chess kingU+265A♚♚
black chess queenU+265B♛♛
black chess rookU+265C♜♜
black chess bishopU+265D♝♝
black chess knightU+265E♞♞
black chess pawn♟︎U+265F♟♟


 GitHub - hauva69/chess-unicode: Unicode characters for chess.



Saturday, May 22, 2021

DataOps

a "new buzzword"

DataOps - Wikipedia

"DataOps is an automated, process-oriented methodology, used by analytic and data teams, to improve the quality and reduce the cycle time of data analytics. While DataOps began as a set of best practices, it has now matured to become a new and independent approach to data analytics.[1] DataOps applies to the entire data lifecycle[2] from data preparation to reporting, and recognizes the interconnected nature of the data analytics team and information technology operations.[3]

DataOps incorporates the Agile methodology to shorten the cycle time of analytics development in alignment with business goals."

Thursday, May 20, 2021

Cloud Native: Dapr - Distributed Application Runtime

Dapr - Distributed Application Runtime

Dapr helps developers build event-driven, resilient distributed applications. Whether on-premises, in the cloud, or on an edge device, Dapr helps you tackle the challenges that come with building microservices 
and keeps your code platform agnostic.

(open source from Microsoft)


Get started now at https://dapr.io Dapr, the distributed application runtime, helps developers solve common challenges when building distributed applications on cloud or edge. Docs: https://docs.dapr.io GitHub: https://github.com/dapr Blog: https://blog.dapr.io/posts Twitter: https://twitter.com/daprdev Discord: https://aka.ms/dapr-discord

Tuesday, May 18, 2021

book: Network Programming with Go (TCP & UDP)

podcast interview with book author

TCP & UDP with Adam Woodbeck (Go Time #176) |> Changelog


Network Programming with Go - Adam’s book that goes into even more details about TCP, UDP, coding examples in Go, and more on network programming.



net package - Go’s net package is a great place to start if you want to write code using TCP or UDP directly.

net.Conn interface - The net.Conn interface is mentioned on the episode and is worth checking out inside the net package.

Wireshark - A great tool for examining internet traffic on your computer and learning more about TCP and UDP.

google/gopacket - A package by Google for packet decoding.



Monday, May 17, 2021

libvlcsharp: video/media libVLC + C#

Episode 74 - libvlcsharp and .NET with Martin Finkel · The .NET Core Podcast

libVLC - VideoLAN Wiki

libvlcsharp on GitHub

LibVLCSharp is a cross-platform audio and video API for .NET platforms based on VideoLAN's LibVLC Library. It provides a comprehensive multimedia API that can be used across mobile, server and desktop to render video and output audio as well as encode and stream.

The official repository URL for this repo is https://code.videolan.org/videolan/LibVLCSharp.


Saturday, May 15, 2021

ReScript lang => JavaScript, with React

ReScript’s website


"The JavaScript-like language you have been waiting for.
Previously known as BuckleScript and Reason (Learn more)"

The ReScript Association

This is ReScript with Patrick Ecker (JS Party #175) |> Changelog

Wormhole


The nitty gritty on BitMidi


Installation | ReScript Language Manual



ReScript – the language after TypeScript? - codecentric AG Blog


"ReScript (formerly ReasonML) is the brainchild of React framework creator Jordan Walke. Although the language has only existed since 2016, an entire team is now working on its further development. Besides Facebook and financial giant Bloomberg, volunteer enthusiasts from all over the world are involved. It is therefore hardly surprising that the project has over 5,000 stars and almost 300 participants on GitHub and scores very well in surveys on developer satisfaction, as State Of JS shows. In the State of JS 2018 study, ReScript (at that time still called ReasonML) even won the prediction award – the award for emerging technologies.

Surprisingly, however, ReScript is not a completely new language. The underlying OCaml has been around since 1996, and Walke noticed that OCaml was a good fit for React, but the unfamiliar syntax put off many front-end developers. So he came up with the idea: How about giving the OCaml language a syntax that allows JavaScript developers to quickly find their way around? Thus, ReScript allows the concepts of a mature functional programming language with the popular Hindley-Milner type system to be transferred to the frontend in a very short time. This works surprisingly well: ReScript is relatively easy to learn for JavaScript and TypeScript developers. The language comes with an excellent type system, high performance and concepts from functional programming. For such a young language, there is also already relatively sophisticated tooling available.

Sidenote: OCaml and ReScript share the same roots as F# – another member of the ML-family which is great alternative in Microsofts .Net-ecosystem."




jimp: JavaScript Image Manipulation Program

 jimp - npm

JavaScript Image Manipulation Program

The "JavaScript Image Manipulation Program" :-)

An image processing library for Node written entirely in JavaScript, with zero native dependencies.

Thursday, May 13, 2021

NFTs with IPFS & Etherium

"everybody" is talking about NFTs :)

Let's mint some NFTs with Mikeal Rogers (The Changelog #438) |> Changelog

Non-fungible token - Wikipedia


NFTs on SNL



Filecoin - A decentralized storage network for humanity’s most important information




"Vitalik Buterin, who spearheaded the launch of the Ethereum blockchain in 2015, has become the world’s youngest crypto billionaire at age 27. Ethereum’s cryptocurrency, ether, surged past $3,000 for the first time early Monday morning, marking a 325% rise since the beginning of this year."












SpaceX Starlink with Google Cloud

Elon Musk’s SpaceX inks satellite connectivity deal with Google Cloud - The Verge

Under a new agreement, SpaceX will plant Starlink terminals at Google Cloud’s data centers


Tuesday, May 11, 2021

Nix: DevOps tool

Into the Nix ecosystem with Domen Kozar (The Changelog #437) |> Changelog

nix is: functional language, build system, package manager, os, ... 

The Nix ecosystem is a DevOps toolkit that takes a unique approach to package management and system configuration. Nix helps you make reproducible, declarative, and reliable systems. Domen is writing the Nix ecosystem guide at nix.dev

NixOS.org
Nix shorts - A collection of short notes about Nix, down to what is immediately needed for users.

nix.dev - The Nix ecosystem guide




Saturday, May 08, 2021

Web Future: HTML-over-WebSocket + HTMX

 The future of the web is HTML over the wire with Matt E. Patterson (The Changelog #435) |> Changelog


The Future of Web Software Is HTML-over-WebSockets

The future of web-based software architectures is already taking form, and this time it’s server-rendered (again).

StimulusReflex



Hotwire is an alternative approach to building modern web applications without using much JavaScript by sending HTML instead of JSON over the wire.




htmx allows you to access AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext

htmx is small (~10k min.gz'd), dependency-free, extendable & IE11 compatible





Monday, May 03, 2021

Cloudflare Pages & Workers

Cloudflare Announces the General Availability of Cloudflare Pages @InfoQ


"Cloudflare Pages: a fast, secure, and free way for frontend developers to build, host, and collaborate on JAMstack sites.

In December last year, Cloudflare announced the beta of Cloudflare Pages, including benefits of hosting on Cloudflare Edge, integration with GitHub repositories, and the Cloudflare Workers Platform. With the GA release of Cloudflare Pages, the company added a few new features such as web analytics, built-in redirects, protected previews, live previews, and optimized images.

According to a Cloudflare blog post on the GA release, Web analytics is a free built-in feature allowing developers to observe traffic to a website from the go-live date. With a single click, developers can start tracking their site's progress and performance, including metrics about your traffic and web core vitals."


Cloudflare is in direct competition with two cloud hosting companies Netlify or Vercel, allowing developers to build and deploy sites using JAMstack frameworks.


Cloudflare Pages

With Pages, just install the GitHub app onto your repo. After that, it’s just git push — we’ll build and deploy for you.

common frameworks including React, Vue, Gatsby, and Hugo:


Deploy serverless code instantly across the globe to give it exceptional performance, reliability, and scale.


vs. 



NestJS

Learn Nest.js from Scratch by building an API - YouTube

by Max S. / Academind


NestJS - A progressive Node.js framework


nest.js - YouTube


NestJS Crash Course - YouTube


Why NestJS Is Awesome - YouTube


GitHub - nestjs/nest: A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications on top of TypeScript & JavaScript (ES6, ES7, ES8) 🚀


Choosing the right Node.js Framework: Next, Nuxt, Nest - NodeSource


OpenAPI (Swagger) | NestJS - A progressive Node.js framework


GitHub - SSCIsrael/nestjs-tsoa-integration: A demo repository of simple nest.js project integrated with modified version of tsoa in order to generate swagger json


Nest.js Step-by-Step @codemag


NestJS For Absolute Beginners - CodingTheSmartWay.com

NestJS For Absolute Beginners - YouTube


Sunday, May 02, 2021

Saturday, May 01, 2021

short UUID: 36 => 20 chars, or 22 chars with base58 encoding

http://codehardblog.azurewebsites.net/encoding-uuid-based-keys-to-save-memory/

Jeff Atwood's C# implementation of Ascii85 

Ascii85 - Wikipedia

ascii85 - npm

huandu/node-ascii85: Ascii85 (Base85) encoding/decoding module for node.js.

base85 - npm

nE0sIghT/ascii85.js: ASCII85 a.k.a. Base85 implementation in JavaScript


uuid - npm

short-uuid - npm

oculus42/short-uuid: Translate standard UUIDs into shorter formats and back.


'086d7702-9976-4abe-bde7-966333cbb13d'

'bxH8@ORBzte1kon$$@AK'



Ask HN: Who invented Base58 Encoding - Flickr or Bitcoin? | Hacker News


A commonly held view is that Satoshi Nakamoto invented Base58 encoding for Bitcoin: https://en.wikipedia.org/wiki/Base58

However, a Flickr discussion about Base58 encoded URLs exists from April 2009: https://www.flickr.com/groups/api/discuss/72157616713786392/

Did Flickr deploy their Base58 encoded URLs before the Bitcoin white paper was published on Oct 31, 2008?


recode uuid to shorter URL safe string, length: 36 => 22, i.e.
'1496c7cb-b4e4-4c84-954f-3da570e2e281' => '3xsFQ446662SRziHg4g3uZ'

import short from 'short-uuid';
const translator = short(); // defaults to flickrBase58 encoding (like bitcoin)
const shortId = translator.fromUUID(id);


import { v4 as uuidV4 } from 'uuid';
import bs58 from 'bs58';
const uuidBytes = () => uuidV4({}, Buffer.alloc(16)); // generates random uuid as byte array
const uuidHex = () => uuidBytes().toString('hex') // 32 chars; also 'base64', 24 chars
const uuidBase58 = () => bs58.encode(uuidBytes()); // 22 chars









architecture: (real) glass house

 1910 Corbridge Ln, Monkton, MD 21111 | MLS #MDBC524030 | Zillow

$1.7M

Maryland $1.7 million glass house divides internet, 'just don't throw stones' | Fox Business


The Sandbox Game - User-Generated Crypto & Blockchain Games