Sunday, April 05, 2020

O’Reilly events: from in-person to virtual

O’Reilly closes the live conference business | ZDNet

O'Reilly Media, which runs events like Strata Data and OSCON, has decided to shut down its live conference business for good.
From Laura Baldwin - O’Reilly Media

Now, we look forward to the future and helping the technology community find new ways to connect and learn from each other even when face-to-face gatherings are impossible.

GitHub Actions and the DevOps Lifecycle

The Cloudcast: GitHub Actions and the DevOps Lifecycle

GitHub Homepage

GitHub Satellite (virtual conference, May 2020)


Saturday, April 04, 2020

Tone.js Interactive Music Web Framework


https://tonejs.github.io/demos







Tone.js leverages the Web Audio API to provide a framework for creating interactive music in the browser.
The Web Audio API is a promising W3C recommendation for creating music on the web, but is not without its challenges and limitations. Tone.js strives to provide a framework that is familiar to both musicians and audio programmers for creating web-based audio applications.
Tone.js offers a wide range of digital audio workstation (DAW) features, including scheduling events, prebuilt synths and effects, and more. Tone.js provides an abstraction on top of Web Audio's AudioContext time, replacing seconds with music notes or measures.

"no code" & clouds

Salesforce logo.svgNew Microsoft, Google, Amazon cloud battle over world without code

“There is a 1 million developer shortfall in the U.S. alone, and all these companies are struggling to create content and applications to go truly digitally native"
Salesforce created a (cloud) empire based on "no-software".


That was 20 years ago.
The meaning was: no download & install, just run on web/cloud.

Now again, major cloud provides are attempting to enable
faster creating of "apps" (software), without need for
programming "low level" instructions: code.

Salesforce.com: “Behind the cloud”, shines the sun – Kasper Spiro

Behind the Cloud PDF Summary - Marc Benioff | 12min Blog

Behind the Cloud.vp


Unqork


Apple FileMaker

Tools:



TypeScript: Typed JavaScript at Any Scale.





Quotes:

Grady Booch, author of Object-Oriented Analysis and Design with Applications:

"Clean code is simple and direct. Clean code reads like well-written prose. Clean code never obscures the designers’ intent but rather is full of crisp abstractions and straightforward lines of control."



“code that you cannot trust is code that you do not understand.
The reverse is true also: code that you don’t understand is code you can’t trust.”

YAGNI Martin Fowler

Yagni originally is an acronym that stands for "You Aren't Gonna Need It".
It is a mantra from ExtremeProgramming that's often used generally in agile software teams.
It's a statement that some capability we presume our software needs in the future
should not be built now because "you aren't gonna need it".

Be Kind, Rewind






Thursday, April 02, 2020

2020 React Tutorial for Beginners with Kent C. Dodds

free on 1.0x speed

React Tutorial for Beginners with Kent C. Dodds on egghead.io

"React got that name for a reason. It’s a component-based JavaScript library that renders smartly and can seriously simplify your work.

This course is for React newbies and anyone looking to build a solid foundation. It’s designed to teach you everything you need to start building web applications in React right away.

Each lesson in this 28-part course is a single index.html file. This keeps your focus on learning React, no distractions. We’ll start with a blank file and add more complexity as we go along, wrapping the course with a lesson on how to move into a more production-ready development environment—and even deploy your app to a great service like Netlify."


eggheadio-projects/the-beginners-guide-to-react @GitHub


ML: AWS’ $99 DeepComposer keyboard

You can now buy AWS’ $99 DeepComposer keyboard | TechCrunch



DeepComposer keyboard is available for purchase. It is a small MIDI keyboard for working with the AWS DeepComposer service that uses AI to create songs based on your input.

Monday, March 30, 2020

TCP/IP vs ISO/OSI

good story!

OSI: The Internet That Wasn’t - IEEE Spectrum


OSI vs TCP/IP

AWS Secrets Manager vs Parameter Store

An Inside Look At AWS Secrets Manager vs Parameter Store – Linux Academy

AWS (Secrets Manager vs. Parameter Store) - Sherif Abdalla - Medium

In Amazon Web Services (AWS), you can find a variety of services covering almost all infrastructure requirement. Among the most popular services is the AWS Secret Manager, Parameter Store, and the KMS. These three infrastructures have differences and slight similarities
AWS Secrets Manager vs. Hashicorp Vault vs. AWS Parameter Store - By Ewere Diagboya

Sunday, March 29, 2020

grpc-gateway: gRPC to JSON proxy generator

grpc-ecosystem/grpc-gateway: gRPC to JSON proxy generator following the gRPC HTTP spec @GitHub

"The grpc-gateway is a plugin of the Google protocol buffers compiler protoc. It reads protobuf service definitions and generates a reverse-proxy server which 'translates a RESTful HTTP API into gRPC. This server is generated according to the google.api.http annotations in your service definitions.
This helps you provide your APIs in both gRPC and RESTful style at the same time."
architecture introduction diagram

gRPC [Node.js] MasterClass: Build Modern API & Microservices | Udemy

Tesla Virtual Power Plant

Tesla Virtual Power Plant

VPP is a network of distributed energy-resources (often solar, wind, batteries) that are aggregated to provide smarter and more flexible power generation, distribution, and availability. Tesla's VPP consists of vertically integrated hardware and software, including both cloud and edge computing.




"Tesla is working on a giant virtual power plant made of 50,000 Powerwalls and solar systems in Australia and the local government says that the first phases have shown a reduction in electricity rates by “more than 20%.”

gRPC reflection, Evans CLI

ktr0731/evans: Evans: more expressive universal gRPC client @GitHub
Evans

gRPC Golang Reflection and CLI - YouTube
by Stephane Maarek

gRPC Reflection & Evans CLI - gRPC [Golang] Master Class: Build Modern API and Microservices


gRPC Java Reflection and CLI - YouTube


gRPC [Node.js] MasterClass: Build Modern API & Microservices | Udemy


grpc-ecosystem/awesome-grpc: A curated list of useful resources for gRPC



Protocol Buffers in gRPC - YouTube

4 Types of API in gRPC - YouTube

gRPC and gRPC Reflection - Ruangguru Engineering - Medium


GRPC Core: gRPC Server Reflection Tutorial


Go Gets New Reflection-Based Protocol Buffers API

"Go's new bindings for protocol buffers, Google's language-neutral data interchange format that aims to replace JSON for high-performance applications, aim to merge the protocol buffer type system within Go's type system and enable its manipulation at runtime."

Saturday, March 28, 2020

gRPC Node.js & gRPC Web

@grpc
Deep Dive: gRPC Node - Michael Lumish, Google - YouTube
presentation by main maintainer of gRPC Node, 2018

There are two implementations,

1) one common core binary/native created by Google in C/C++ and wrapped for usage by JavaScript in Node.js, and used in many other languages (Python, Ruby, C# etc) as well.

2) second written in TypeScript, that re-implements (essential part) of gRPC.
The features are performance are less, but deployment is simpler.

they currently have very similar number of NPM downloads

grpc.io
gRPC – A high-performance, open source universal RPC framework

1) grpc - npm @NPM

github.com/grpc/grpc-node

2) @grpc/grpc-js - npm @NPM

github.com/grpc/grpc-node/tree/master/packages/grpc-js


grpc/grpc-web: gRPC for Web Clients

"gRPC-Web clients connect to gRPC services via a special gateway proxy: the current version of the library uses Envoy by default, in which gRPC-Web support is built-in."

using "proxy" on server side, translating REST requests from browser to gRPC

Getting Started with gRPC and JavaScript - Colin Ihrig, Joyent - YouTube

Colin Ihrig - Getting Started with gRPC and Node.js - nodejsday 2019 - YouTube

gRPC - Wikipedia

gRPC Packages

gRPC – Tutorials

Python Blockchain


dvf/blockchain: A simple Blockchain in Python @GitHub
Learn Blockchains by Building One


Wednesday, March 25, 2020

Tesla touch-less delivery options

Tesla introduces several new car delivery options - Electrek

Tesla Direct Drop: Designed as a completely touchless delivery experience, we will drop your new vehicle at a location of your choosing — typically a home or workplace — without any required interaction. Just complete all required paperwork, let us know where you’d like the car, and we’ll drop it off and leave the vehicle for you to unlock via the Tesla app. Please note that payment, paperwork, and e-sign agreements must be completed in full prior to delivery, and you are required to send back any remaining physical paperwork in the vehicle via a pre-paid shipping envelope within 24 hours.

Friday, March 20, 2020

IoT telematics based insurance

Nationwide Teams up with Toyota, Ford, Lincoln to Offer Insurance Featuring Telematics Solution

"Nationwide, along with Toyota, Ford and Lincoln, recently announced partnerships to offer customers insurance options at a potential large discount, based on data collected by their connected vehicles about their driving habits."

Toyota customers who purchase an auto insurance policy and opt-in to share their driving data will automatically receive an initial 10% SmartRide participation discount.

Upon completing the collection of driving data for 90 days, customers can earn up to a 40% final discount.

Thursday, March 19, 2020

web: Svelte Javascript Framework

excellent podcast interview with creator of Svelte

Episode 402: Rich Harris on the Svelte Javascript Framework : Software Engineering Radio

"Rich Harris, author of the Javascript module bundler Rollup, discusses with SE Radio’s Adam Conrad his Javascript framework Svelte as a high-performance alternative to mainstay frameworks such as React, Angular, and Vue"
Svelte’s Twitter – https://twitter.com/sveltejs

Tuesday, March 17, 2020

Performance: JavaScript vs Python vs Rust vs WASM

NodeJS vs. Python 3 Performance - DEV Community 

Problem 7 - Project Euler
What is the 10 001st prime number?

nodejs vs python 3

LanguageVersionTime
JS10.7.31.64s
Python3.7.126.24s
Rust1.35.00.78s
On another machine
JS: getPrime(10001)=104743 elelapsedTime=5633 ms
RS WASM: get_prime(10001)=104743 elelapsedTime=5176 ms

Monday, March 16, 2020

HTTP testing: Postman Echo

Postman Echo

Postman Echo is service you can use to test your REST clients and make sample API calls. It provides endpoints for GETPOSTPUT, various auth mechanisms and other utility endpoints.
The documentation for the endpoints as well as example responses can be found at https://postman-echo.com

Introduction to WebAssembly (WASM)

Introduction to WebAssembly — Rasmus Andersson

GitHub += npm

npm is joining GitHub - The GitHub Blog
GitHub has signed an agreement to acquire npm.
npm is joining GitHub

Sunday, March 15, 2020

data meaning: "status" vs. "state"


In program code and database it is very often needed to name variable or field
that describes current "state" or "status" of an object or a record. What is the correct name, though?
That depends on context, and the meaning is NOT exactly same, and it is not arbitrary. 
  • "state" is specific, where value can be one of pre-defined known distinct values, with conditions, like in context of "state machine", i.e. state of shopping cart: empty, open, closed etc.
  • "status" is broader and is a result of an action or activity, where it could indicate an error or also include resulting state, i.e. status of adding item to shopping cart error for insufficient funds. 
So simple rule for programming: when all possible values for an fields are known and defined better name  "state", and when all values are not known or defined that this is a "status". 


"systems engineering definition:
  • A system is in a certain "state" at a point in time when the system meets a pre-defined set of criterion, i.e. on shopping website, a user's shopping cart enters a different state when the customer adds an item to it.
  • A "status", in the context of states of a system, describes the transition into a state. For example, the user of our online shop may attempt to add an item to their cart. The transition into the state that describes the item being in the cart may be blocked if the status of the transition signals an error (i.e. the item is out of stock).
... state exists (or does not exist) irrespective of time. A status, however, describes the outcome of an action at a particular point in time."




React: Facebook Messenger: Project LightSpeed

Project LightSpeed: Rewriting Messenger to be faster, smaller, and simpler



Dan Abramov on Twitter: "What’s going on with React Native and Messenger? There’s many hot takes, but I’ll stick to my understanding of the facts. A thread so that I don’t have to copy and paste this in replies:" / Twitter

Saturday, March 14, 2020

Variable-length encoding

LEB128 - Wikipedia


LEB128 or Little Endian Base 128 is a form of variable-length code compression used to store an arbitrarily large integer in a small number of bytes. LEB128 is used in the DWARF debug file format[1][2] and the WebAssembly binary encoding for all integer literals.[3]
MSB ------------------ LSB
      10011000011101100101  In raw binary
     010011000011101100101  Padded to a multiple of 7 bits
 0100110  0001110  1100101  Split into 7-bit groups
00100110 10001110 11100101  Add high 1 bits on all but last (most significant) group to form bytes
    0x26     0x8E     0xE5  In hexadecimal

→ 0xE5 0x8E 0x26            Output stream (LSB to MSB)

What is most significant bit or byte? - Definition from WhatIs.com

The most significant bit (MSB) is the bit in a multiple-bit binary number with the largest value. This is usually the bit farthest to the left, or the bit transmitted first in a sequence. For example, in the binary number 1000, the MSB is 1, and in the binary number 0111, the MSB is 0.

leb128 · GitHub Topics

wasm-LEB128/unsigned.js at master · shmishtopher/wasm-LEB128
(JavaScript)


UTF-8 - Wikipedia