Saturday, November 16, 2019

WASM: Web Assembly, AssemblyScript book

Web Assembly (WASM) comes in two formats:
  • portable binary format, with file extension .wasm
  • text format, with file extension .wat
For most cases .wat is still quite low level, and there is option to use an "AssemblyScript",
an extended strongly typed subset of TypeScript, and compile that to .wasm directly.
The file extension of AssemblyScript is still .ts, same as TypeScript, and that may confuse IDEs.


Converting WebAssembly text format to wasm - WebAssembly | MDN

Introduction - The AssemblyScript Book

assemblyscript/examples at master · AssemblyScript/assemblyscript @GitHub

The simplest way to get started with WebAssembly - Benedek Gagyi - Medium


.WASM is also a compile target for many languages now.



  • Rust is quite popular choice since it produces safe, compact and efficient .wasm code, and has good tools for WebAssembly toolchain.
  • GoLang compiler provides .wasm compilation target also, while files are larger singe it includes runtime with its own GC
  • C-based languages that are using LLVM (C, C++, Swift) have compilation target for .wasm
  • .NET Core (C#) can be compiled to .wasm, by leveraging Mono compiler that is C/LLVM based. The runtime is included and relatively large, while tools are quite good. "Blazor" is leveraging ASP.NET C# templates for web apps.

Useful code examples:

JeremyLikness (Jeremy Likness) / Repositories (WASM) @GitHub

JeremyLikness/wasm-trees: An example of memory management/passing buffers between WebAssembly and JavaScript

JeremyLikness/PlasmaWasmGo: Implementation of Plasma effect in WebAssembly using Go

JeremyLikness/PlasmaWasmRust: Implementation of plasma effect using WebAssembly compiled from Rust.

JeremyLikness/blazor-wasm: Blazor and WebAssembly examples (part of a Blazor presentation)


Presentations and tutorials:

WebAssembly: Your Browser is the new OS - Jeremy Likness - YouTube

THAT Conference '19: WebAssembly: The Swiss Army Knife of Browser Apps | Pluralsight

WebAssembly for Web Developers (Google I/O ’19) - YouTube

Lin Clark: A Cartoon Intro to WebAssembly | JSConf EU 2017 - YouTube

Tools:

WebAssembly/binaryen: Compiler infrastructure and toolchain library for WebAssembly
Compiler infrastructure and toolchain library for WebAssembly

Binaryen
has a simple 
C API in a single header, and can also be used from JavaScript. It accepts input in WebAssembly-like form but also accepts a general control flow graph for compilers that prefer that.



free ebook: Monolith to Microservices

Monolith to Microservices - NGINX

companion to Sam Newman’s book

Monday, November 11, 2019

SpaceX += 60 Starlink Satellites ( = $30B ?)

SpaceX Just Launched 60 Starlink Satellites (And Nailed a Milestone Rocket Landing) | Space



SpaceX’s Satellite Internet Service Could Warrant A $30 Billion Valuation


hybrid cloud: Azure Arc

Why Azure Arc Is A Game Changer For Microsoft

"With Azure Arc, Microsoft has expanded the support for ARM to resources running outside of Azure. This means, a physical server running in a data center looks like a compute resource in the eyes of the Fabric Controller. Even VMs running on top of VMware vSphere, Amazon EC2, and Google Compute Engine can be registered with the Azure Resource Manager. Any Windows or Linux server - even those running behind a firewall and proxy - can be registered with ARM. The external VMs run a similar software like the agent that runs inside Azure VMs."
Azure Arc | Microsoft Azure

Sunday, November 10, 2019

WebAssembly (WASM) Languages

appcypher/awesome-wasm-langs: 😎 A curated list of languages that compile directly to or have their VMs in WebAssembly @ GitHub

πŸ₯š - Work in progress.
🐣 - Unstable but usable.
πŸ₯ - Stable for production usage.

my selection:

πŸ₯ AssemblyScript
πŸ₯ TypeScript
πŸ₯ Rust
πŸ₯ C
πŸ₯ C++
πŸ₯ C#
πŸ₯ Go

🐣 Java
🐣 JavaScript
🐣 Kotlin/Native
🐣 Swift

🐣 Elixir
🐣 F#
πŸ₯ Forth
🐣 PHP
🐣 Python
🐣 Prolog
🐣 Ruby
🐣 Scheme

The State Of WebAssembly - With Lin Clark and Till Schneidereit @ Kent C. Dodds

Current state of compiling TypeScript to WebAssembly - wanago.io - Marcin Wanago Blog

AssemblyScript/assemblyscript: Definitely not a TypeScript to WebAssembly compiler πŸš€

Assembleash Playground

AI in the web browser with TensorFlow.js

very informative podcast interview!

Practical AI #61: AI in the browser with Victor Dibia, research engineer at Cloudera’s Fast Forward Labs |> News and podcasts for developers |> Changelog
Benefits of ML in web browser"

"The first would be privacy. Perhaps this is the most compelling and interesting benefit, that I really care about. If you could take a model and you could deploy that in the browser, you could create an environment where the user data actually doesn't get down to any back-end server. I could give some examples of that somewhere down the line, as we continue the conversation.

The second interesting benefit why machine learning might be interesting in the browser has to do with the ease of distribution. A few years ago I had a couple of friends who really wanted to get into machine learning, but they did give up because they spent a couple of days just trying to install TensorFlow. So while over the last two years the user experience has become a lot better, there are still a lot of challenges, especially if you want to get a machine learning model or an application that uses machine learning deployed on an end user system. However, if you go ahead and do that in the browser, this is a much more straightforward and much easier developer and end user experience.

Then finally, the last interesting feature has to do with interactivity and latency. Off the bat, the browsers, the web is designed to be interactive, and it's really valuable for crafting rich interactive experiences. So if there are situations where you have a model and you want to easily tailor that around user data, make changes and personalize that for a user, then the browser is a really excellent environment to interactively do all of that."

Monday, November 04, 2019

data tool: Tamr

TamrTamr Agile Data Unification and Management Systems - Tamr Inc.


"Tamr makes it fast and easy to replace labor and time-intensive, rules-based data cleaning and preparation with the limitless power of probabilistic, human-guided machine learning.

Agile MDM Solutions For Enterprise | Tamr

Founded in 2013, by a team led by Andy Palmer and Michael Stonebraker, and Ihab Ilyas




Microsoft Edge Chromium

Microsoft Edge Insider Channels

Microsoft's new Edge logo erases bad memories of Internet Explorer | Engadget

Friday, November 01, 2019

Python in web browser with Skulpt

Episode #235 Python in your Browser with Skulpt - [Talk Python To Me Podcast]

Skulpt: skulpt.org

Other browser-based Python impls
Brython: brython.info
Transcrypt: transcrypt.org
Pyodide: alpha.iodide.io

Package PyPostal: github.com

Google += Fitbit (big data)


Google buys Fitbit for $2.1 billion - The Verge

What everyone is forgetting about in Google's $2.1 billion deal for Fibit

"Google obtains sensitive data on how human beings live their lives and their overall health journey. With populations globally getting older and incomes for many classes of people going up, Google could use that data on Fitbit’s 28 million active users to build out new subscription health services....
Fitbit’s stock hit a record high of $48 or so in July 2015, not too far removed from its June 2015 IPO. Back then, optimism was running high on the wearable space and Fitbit was seen as the market leader as the Apple Watch had only just gotten off the ground.

Fitbit’s stock fell slightly below $3 in late August of this year. Its market cap has gone from $6.4 billion in December 2015, according to Yahoo Finance Premium data to Google’s offer price of $2.1 billion."

Ionide: F# + VS Code

Coding F# in Visual Studio Code with Ionide | On .NET | Channel 9