Thursday, June 30, 2022

Go => TinyGo => WASM, WASI



First steps with Golang and WebAssembly - DEV Community

What is the difference between WASM and WASI? In really short WASM is for the web and it doesn't support function calls,

Lots of languages are able to produce WASI
+ WASI modules don't need extra dependencies

have to use TinyGo to compile WASI module


"WASI is an extension of WASM to run not only on the web, but on any platform. WebAssembly provides a build target for a conceptual machine, meaning that a single binary can be run on different processors and computers (rather than having to build multiple different binaries). WASI provides a conceptual operating system which means that a program can use a common set of commands and subroutines to interact with the operating system without needing to be rewritten to handle the differences between operating systems.

If your code only needs to run in the browser you should use WebAssembly. If you are interacting with an operating system in a program you might want to consider using WAS
I."

A description by Mozilla



WASI 

The WebAssembly System Interface

WASI is a modular system interface for WebAssembly. As described in the initial announcement, it’s focused on security and portability.

WASI is being standardized in a subgroup of the WebAssembly CG. Discussions happen in GitHub issues, pull requests, and bi-weekly Zoom meetings.

For a quick intro to WASI, including getting started using it, see the intro document.

The Wasmtime runtime’s tutorial contains examples for how to target WASI from C and Rust. The resulting .wasm modules can be run in any WASI-compliant runtime.

For more documentation, see the documents guide.

Wednesday, June 29, 2022

Google Web3?

 Google seeks fresh talent to lead global Web3 team

Google Cloud is forming a Web3 product and engineering organization that will build services for developers.

Google wants to offer backend services to developers interested in making their own Web3 software.

Tuesday, June 28, 2022

Visual Terraform: InfraMap...

 Tools to Visualize your Terraform plan | by Vidyasagar Machupalli | vmacwrites | Medium

Visualise Terraform State : Terraform @Reddit


InfraMap: Terraform infrastructure diagram showing only the resources that are relevant : devops

cycloidio/inframap: Read your tfstate or HCL to generate a graph specific for each provider, showing only the resources that are most important/relevant. @GitHub GoLang, MIT lincense

cycloid/inframap - Docker Image | Docker Hub



Pluralith @GitHub : GoLang, Ruby, TypeScript MPL license

Pluralith is currently in Private Alpha

Pluralith - Visualize Terraform Infrastructure


im2nguyen/rover: Interactive Terraform visualization. State and configuration explorer. @GitHub, GoLang, Vue, MIT

Rover - Terraform Visualizer
  1. generates a plan file and parses the configuration in the root directory or uses a provided plan.
  2. parses the plan and configuration files to generate three items: the resource overview (rso), the resource map (map), and the resource graph (graph).
  3. consumes the rsomap, and graph to generate an interactive configuration and state visualization hosts on 0.0.0.0:9000.

WebGL (three.js) Chess: chessboard3js

jtiscione/chessboard3js: WebGL chessboard library @GitHub

chessboard3.js is a standalone JavaScript chess board based on WebGL that mirrors the API of the widely used chessboard.js 2D board library by Chris Oakman. It is designed to be a drop-in replacement for chessboard.js and should run with any existing client code that currently uses chessboard.js to display a 2D board.

demo: chessboard3.js


schowdhuri/chess: Two-player chess: WebGL 3D @GitHub (MIT)

demo: Chess

nathanfriend Projects: WebGL Chess

WebGL Chess

nfriend/webgl-chess: Final project for HCI 557: Computer Graphics and Geometric Modeling at Iowa State University @GitHub (GPLv3)


This project is built with the following technologies:




Monday, June 27, 2022

JavaScript: the First 20 Years

JavaScript: the First 20 Years by Allen Wirfs-Brock and Brendan Eich


JavaScript: The First 20 Years | Zenodo

Allen Wirfs-Brock (editor of ES6) and Brendan Eich (you know what he did) have published the definitive 20 year history of JavaScript. It is a 190 page treatment for The History of Programming Languages Conference, which only occur once every 13-15 years (1978, 1993, 2007, 2020). It took them 3 years to write the final manuscript.

Read it: https://zenodo.org/record/3707008

If you have any interest in programming languages at all, you should read it. Modern JavaScript, warts and all, is one of the biggest achievements of humanity, especially in the Information Age and the democratization of computing.

History won’t stop here - HOPL-V in ~2035 might be more about visual programming languages and ”no code” than it is traditional text editing. Every time programming gets easier, people get more infuriated, and yet the world keeps turning toward enabling more programmers. The Future of Programming is clear, even if we’re never quite there yet.

The Third Age of JavaScript


The third year of the third age of JS with swyx joining Jerod & Nick (JS Party #226) |> Changelog




how to: stop Windows Waking up From Sleep Mode?

 Why Does My Windows Computer Keep Waking up From Sleep Mode?

admin cdm

> powercfg /lastwake

> powercfg /waketimers

> powercfg -devicequery wake_armed

devmgmt.msc

Select the device that’s causing your computer to wake up and double-click it. This will open up the device’s properties.

Then click the Power Management

Finally, untick Allow this device to wake up the computer and click OK.



Sunday, June 26, 2022

design: Yellow Color challenge

 The “Dark Yellow Problem” in Design System Color Palettes | by Lodestar Design | Apr, 2022 | Medium

Yellow color must never be used against a white / light background. 
use a dark yellow shade (a.k.a. brown) as text.


Saturday, June 25, 2022

design: React Logo, inspired by FedEx

 How FedEx Influenced the React Logo — Maykel Loomans

"the FedEx logo is widely regarded as one of the most successful logos amongst designers. Whereas the logo looks pretty bland from the outset, the arrow elegantly hidden in the negative space between the E and the x is a crucial example of “once you see it, you can’t unsee it”. There’s something extraordinary in the way your brain stores that pattern recognition deep in its depths, which is another illustration that everything is a remix.

For the React logo, it meant that after drawing three ovals, of which two were rotated incrementally by sixty degrees, a cog appeared. Et voila: a technological framework — a tool, if you will — that has a name that correlates with chemistry, represented by a cog living in the negative space of a simplified atom.





Amazon re:MARS 2022 (AWS event)

Amazon re:MARS 2022 - Day 1 - Keynote - YouTube

Amazon re:MARS 2022 - Day 2 - Keynote - YouTube

Amazon re:MARS 2022 - Day 3 - Keynote - YouTube



AWS Events - YouTube


Friday, June 24, 2022

AWS Certification planned changes

 AWS Certified Global Community | Groups | LinkedIn

Starting November 15, 2022, the AWS Certified Solutions Architect – Professional exam is changing. Registration for the new exam begins October 18, 2022. The new version of this exam has been updated to align with the AWS Well-Architected Framework across all domains. This certification validates the latest AWS technical skills and cloud expertise to design, deploy, and evaluate applications on AWS within diverse, complex requirements, positioning certification holders as strategic advisors to their stakeholders and customers. If you are preparing for the current AWS Certified Solutions Architect – Professional exam, be sure to take it by November 14, 2022.

Wednesday, June 22, 2022

web3 metaverse as a "3D game engine?"

game engines like colyseus will be as big as cms, crm or commerce in the metaverse (decentraland) - YouTube

by Chris Hay

the claim is that "businesses" and people will want to use game engines to participate to "metaverse" environments... 

the "only" trouble with this claim is: what is the value of 3D virtual environment that is not already available in 2D? 

even web 1.0 had perfectly usable tools for 3D "worlds", good 25 years ago!

VRML - Wikipedia

needless to say, it didn't get much traction, not only for businesses... 

maybe it would be different this time? 

Moore's law - Wikipedia

even based on basic progress of computing technology, it "should" be more than 5000 times faster now (2^12.5), and in domain in GPU that acceleration is even much faster, so who knows, the tech may become usable enough for something more than demos...


Multiplayer server | Colyseus: Simple & Fast Multiplayer Game Creation

colyseus/colyseus: ⚔ Multiplayer Framework for Node.js @GitHub
TypeScript, MIT license





book: Computer Networking: A Top-Down Approach

 Computer Networking: A Top-Down Approach: Kurose, James, Ross, Keith: 9780133594140: Books - Amazon

Computer Networking: a Top Down Approach

JimKurose - YouTube

Computer Networking: A Top-Down Approach, 7th Edition

Tuesday, June 21, 2022

Sortable UUIDs (GUIDs) with NewId

 Generating sortable Guids using NewId

pros-and-cons of using database-generated integer vs client-generated Guids, and introduce NewId as a way of mitigating some of the downsides of Guids.

phatboyg/NewId: A sequential id generator that works across nodes with no collisions @GitHub

.NET Guid.NewGuid()

NewId is designed to solve a specific problem. It's for when you want a unique ID, but you want them to generally be sortable, and semi-predictable. 

example

be170000-f32d-18db-de59-08da26f2ad5a
be170000-f32d-18db-1816-08da26f2ad5b
be170000-f32d-18db-8694-08da26f2ad5b
be170000-f32d-18db-4dbd-08da26f2ad5b
be170000-f32d-18db-65b3-08da26f2ad5c
  • be170000-f32d-18db—this is apparently constant across all IDs.
  • de59—this changes with every ID.
  • 08da26f2ad5a—this sometimes changes, and changes gradually.

NewId uses 3 different sources to construct an ID

  • A "worker/process ID". This is constant for a given machine (and can be configured to also include the process ID).
  • A "timestamp". This provides the basic ordering of the ID
  • A "sequence". An incrementing ID.

By combining all 3 together, you can get an ID that is (roughly) orderable, thanks to the timestamp component. By including the worker ID you can have workers independently generate IDS while avoiding collisions. And the use of the "sequence" means you can generate 216-1 IDs per millisecond, per worker:

Guids have caused nearly 99% fragmentation in the (SQL server database) index, whereas the NewIds have caused only a 5% fragmentation. 


javascript - How to create a GUID / UUID - Stack Overflow


All UUID's generated by this library are built with 4 bytes of timestamp and 12 secure random bytes generated with crypto library.




Monday, June 20, 2022

JavaScript inside a .NET app

Running JavaScript inside a .NET app with JavaScriptEngineSwitcher

running JavaScript inside a .NET application .. is actually surprisingly easy!

bundle the JavaScript engine inside your library directly.

ClearScript (V8)

The V8 JavaScript engine is what powers Node.JS, Chromium, Chrome, and the latest Edge. The Microsoft.ClearScript package provides a wrapper around the library, providing a C# interface for calling into the V8 library. Just as with ChakraCore, the V8 engine itself is a native dependency. The ClearScript library takes care of the P/Invoke calls, providing a nice C# API, but you still have to make sure you're deploying the correct native libraries based on your target platform.


Jurassic

Jurassic is another .NET implementation of a JavaScript engine, similar to Jint. Also similar to Jint, it supports all of ES5, and it also appears to have partial support for ES6. In contrast to Jint, Jurassic is not an interpreter; it compiles JavaScript into IL, which makes it very fast, and it has no native dependencies!

Sunday, June 19, 2022

Boxabl: Prefab House, $50k, 1 hour

Full home unfolds in 1-hour, kitchen & bathroom included - YouTube



    

Boxabl Casita ADU - Tiny House Blog

Elon Musk's Boxabl Tiny Home Is Officially His Primary Residence

Ep. 2 Foldable Tiny House Factory Opens in Las Vegas! Boxabl (Outside the Boxabl) - YouTube

BOXABL CASITA – Accesory Dwelling Unit

Invest | Boxabl

FAQ | Boxabl

19.5ftx 19.5ft • 375 sq ft • 9'6" Ceilings • 8' Huge Doors & Windows • Wide Plank Composite Flooring • Washer/Dryer • Heating & Air Conditioning

The Boxabl Casita is fast and easy to setup. For $50,000 you get a house. Whats not included in that price is your land and site setup. This can include utility hookups, foundation, landscaping, permits, and more. Depending on your location and the complexity of your site, this cost can range anywhere from $5,000 to $50,000.

Boxabl is a building system that can build almost any style of home. Different modules stack and connect to build anything. New Box sizes will likely be 20x20, 20x30, 20x40,

Boxabl are made from steel, concrete and EPS foam. These are building materials that don't degrade and will last a lifetime. The walls, floor and roof are structurally laminated panels that are much stronger than the average building.

Boxabl doesn't use common lumber or sheetrock. The building materials are less likely be damaged by water, and less likely to grow mold.

Boxabl buildings are extremely energy efficient. This is because the high R value insulation, tight building envelope, and limited thermal bridging.

can ship these anywhere in the world. A rough budget might be $3-$8/mile from Las Vegas.











building a new $1B factory; 
partnering with D.R.Horton
partnering with other investors to build more factories


Git Commit graphic comic

How to Write a Git Commit Message

xkcd: Git Commit

Saturday, June 18, 2022

Web3 "UNIVERSITY"

Web3U Registration A

"...Web3, cryptocurrency and NFTS are the FUTURE and will extend far beyond the internet.
...Web3 University to help you learn this new world.

Impact Theory NFTU
Web3U Part 1: First Principles

Learn the first principles that the blockchain & cryptocurrencies are built on - as well as the philosophy of Web 3.0, why this movement matters, and how technology is reshaping our future.

Impact Theory NFTU
Web3U Part 2: Getting Started & Understand Rules Of The Game

Learn the first principles that the blockchain & cryptocurrencies are built on - as well as the philosophy of Web 3.0, why this movement matters, and how technology is reshaping our future.

...

podcast


.NET MAUI is GA

MAUI = Multiplatform Apps UI

complete rewrite of Xamarin forms

same code for iOS, Android, Windows, Mac apps

Episode 38: .NET MAUI, IoT, and Handy the bionic Arm - with Clifford Agius // The Unhandled Exception Podcast


Official MAUI website

Friday, June 17, 2022

ANTLR Mega Tutorial + C#, GoLang

ANTLR: The ANTLR Mega Tutorial · go-sqlparser/current Wiki @GitHub

https://tomassetti.me/antlr-mega-tutorial/

Written by Gabriele Tomassetti

gabriele-tomassetti/antlr-mega-tutorial: This is the companion repository of the ANTLR Mega Tutorial, that will explain everything you need to know to use ANTLR.



Getting Started With ANTLR in C# - Strumenta

ANTLR is a great tool to quickly create parsers and help you in working with a known language or creating your DSL. While the tool itself is written in Java, it can also be used to generate parsers in several other languages, for instance Python, C# or JavaScript


Parsing with ANTLR 4 and Go | Gopher Academy Blog


antlr4/go-target.md at master · antlr/antlr4

ANTLR4 Language Target, Runtime for Go


ANTLR.org

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees.


ANTLR - Wikipedia

Version 4 at present targets C#, C++, Dart,[2][3] Java, JavaScript, GoPHP, Python (2 and 3), and Swift.


book: The Definitive ANTLR 4 Reference, 2nd Edition




Thursday, June 16, 2022

GoLang generics

 A gentle introduction to generics in Go – dominikbraun.io

type Node[T] struct { 
   value T 
}

n := Node[int] { 
   value: 5, 
}



Azure Training


Collections - LannaTeh-3810 | Microsoft Docs

role-based guides map out your itinerary with a variety of resources to help build and deepen your knowledge of Azure. Each guide features carefully selected digital training, learning courses, videos, documents, certifications, and more. You can travel at your own pace, and then continue your Azure exploration with ongoing learning opportunities.

Azure AI Learning Journey









Wednesday, June 15, 2022

GoLang @ ACM

 The Go Programming Language and Environment | May 2022 | Communications of the ACM

By (creators/core team of GoLang) Russ Cox, Robert Griesemer, Rob Pike, Ian Lance Taylor, Ken Thompson

Go has become a popular language for building cloud infrastructure: Docker, a Linux container manager, and Kubernetes, a container deployment system, are core cloud technologies written in Go. Today, Go is the foundation for critical infrastructure at every major cloud provider and is the implementation language for most projects hosted at the Cloud Native Computing Foundation.



an extensive review / report 

IE EOL

Microsoft ends Internet Explorer support in Windows 10 | Engadget

Microsoft will no longer support the Internet Explorer 11 desktop app for Windows 10's usual Semi Annual Channel as of June 15th.

The Edge browser's IE Mode will still receive support through 2029 or later

IE had 95 percent of usage share by 2003


Tuesday, June 14, 2022

EV: Land Rover Defender, with Tesla inside

Tesla Inside: The Ultimate Vintage Land Rover Retrofit

Vanilla JS ToDo app

 1Marc/todomvc-vanillajs-2022: Vanilla JS TodoMVC App in 2022

  • 167 lines of code total (compared to the official vanilla JS TodoMVC from 6 years ago was 900+ LOC)
  • No build tools
  • JavaScript modules
  • Initial implementation done in an hour, then cleaned it up with ~30 min of refactoring

Monday, June 13, 2022

web3 UX

 UX fundamentals for web3 apps. Designing web3 experiences for the… | by Fabio Monzani | Apr, 2022 | UX Collective

dApps or Decentralised Applications are software applications that leverage the decentralised nature of web3. The core idea behind dApps is that users own their data and are not shared with the dApp creator or any third parties. This is achieved through a combination of wallets, for login and authentication, distributed databases and file storage systems like IPFS.








Sunday, June 12, 2022

PyScript: CPython @ WebAssembly

Episode #367 Say Hello to PyScript (WebAssembly Python) - [Talk Python To Me Podcast]

Fabio on Twitter: @b_smoke
PyScript: pyscript.net
Birth and Death of Javascript: destroyallsoftware.com
Power On: The Story of Xbox: xbox.com
PyScript source: github.com
JupyterLite: jupyterlite.readthedocs.io
Compiling CPython for WebAssembly: python.org
Space WebGL Demo: pyscript.net/examples
Antigravity Demo: pyscript.net/examples
D3 Demo: pyscript.net/examples
Most examples: pyscript.net/examples

Michael's pyscript PWA YouTube video: youtube.com
Watch this episode on YouTube: youtube.com




PyScript - Run Python in the Browser! THE END of JavaScript??? - YouTube

PyScript is a framework that allows users to create Python applications in the browser using HTML. In this video we have a look at it and I show you how it works:

- Website: https://pyscript.net/ - Blog: https://engineering.anaconda.com/2022... - GitHub: https://github.com/pyscript/pyscript - WASM in 100 seconds: https://youtu.be/cbB3QEwWMlA free NumPy Handbook: https://www.python-engineer.com/numpy...





Saturday, June 11, 2022

learning Rust, with optional stories

very clever! a checkbox to show/hide optional stories


Rust basics, from the perspective of a high level programmer - Daniel Bulant

"I seem to like storytelling a bit too much.
Enable story [x]"

Here’s a list of resources I found useful:

  • rust book - an online book with short chapters about common things people want to do with Rust
  • A gentle intro to Rust - A short “book” that can be read in an hour or two, with a day or two worth of examples if you try them locally. Much more in-depth than this post, but still easy to grasp.
  • r/rust - The well-moderated reddit community (quick to search. If you have a problem that will take longer than a single Discord message, post it here so that others are able to find it as well).
  • The discord community - A simple way to quickly ask other developers
  • rust by example - The sort of thing I’d be going about in here as well, but this is just a quick short intro, that should be your go-to book if you want to learn even more.
























Treant.js - javascript library for drawing tree diagrams

 Treant.js - javascript library for drawing tree diagrams
(fperucic.github.io/treant-js/)

fperucic/treant-js: Treant.js - javascript library for drawing tree diagrams @GitHub

Treant-js is an SVG based JS library for drawing tree diagrams. It relies on Raphael for handling SVG and animations.

Basic example





Friday, June 10, 2022

PyScript: Python in the Browser, with WASM

PyScript: Python in the Browser

What is the magic behind PyScript?

PyScript is currently built on Pyodide, which is a “port of CPython to WebAssembly/Emscripten.” PyScript supports writing and running Python code in a browser, and it will provide support for other languages in the future.






Thursday, June 09, 2022

JavaScript Builds: Metro vs WebPack

 Faster JavaScript Builds with Metro | by Rae Liu | The Airbnb Tech Blog | May, 2022 | Medium

"Thanks to the switch to Metro, AirBnB improved our build performance. In development, the time it takes for a simple UI change to be reflected and loaded (Time to Interactive TTI metric) is 80% faster. The slowest production build compiling ~49k modules (JavaScript files) is 55% faster (down from 30.5 minutes to 13.8 minutes).

Metro is the open source JavaScript bundler for React Native.

...the landscape has changed since we evaluated Parcel, Webpack 4, and Metro back in 2018. There are other tools, such as rollup.js and esbuild, that we haven’t explored much, and we know that Metro isn’t a general-purpose JavaScript bundler when compared to Webpack."


"JavaScript Containers"

JavaScript Containers

by Ryan Dahl, creator of node.js and deno

There is a new higher level container emerging for server software: the JavaScript sandbox itself.

Shell : Executables :: JavaScript : WebAssembly

The future of scripting languages is browser JavaScript

JavaScript is the universal scripting language. Due to JavaScript’s universality a new container-like abstraction is emerging that simplifies servers.

I am not claiming that Linux containers are going away. That level of abstraction will always be useful. It’s just rather low-level for much of the “business logic” that people write. When you’re building a website things like systemd configuration are boilerplate.

Wednesday, June 08, 2022

laptop extension monitors

 Xebec Tri-Screen 2

2x 10" (small), requires 2x USB-C ports, pricey at $499

it would be simpler to just tablets and use them as extension screens... 


How to Use an Android Tablet as a Second Screen in Windows 11