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


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

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
🐣 Python
🐣 Prolog
🐣 Ruby
🐣 Scheme

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

Current state of compiling TypeScript to WebAssembly - - 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]


Other browser-based Python impls

Package PyPostal:

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

Sunday, October 27, 2019

free AI book

O'Reilly - Achieving Real Business Outcomes from Artificial Intelligence

cover for: Achieving Real Business Outcomes from Artificial Intelligence

Interactive GraphQL Tutorial

Try GraphQL! Interactive GraphQL Tutorial | What is GraphQL?

GraphQL | A query language for your API

NodeJS - The Complete Guide (incl. MVC, REST APIs, GraphQL) | Udemy
by Academind by Maximilian Schwarzmüller

Building Scalable APIs with GraphQL | Pluralsight

GraphQL Hub = GraphQL + GitHub

graphql/graphiql: An in-browser IDE for exploring GraphQL.

Podcasts from Changelog


The ChangelogSubscribe

Conversations with the hackers, leaders, and innovators of software development.
Hosted by:

JS PartySubscribe

A community celebration of JavaScript and the web.
Hosted by:

Founders TalkSubscribe

In-depth, one-on-one conversations with founders, CEOs, and makers. The journey, lessons learned, and the struggles. Let’s do this!
Hosted by:
Adam Stacoviak

Go TimeSubscribe

A diverse panel and special guests discuss cloud infrastructure, distributed systems, microservices, Kubernetes, Docker…oh and also Go!

Brain ScienceSubscribe

For the curious! We’re exploring the inner-workings of the human brain to understand behavior change, habit formation, mental health, and being human.

Practical AI
Making artificial intelligence practical, productive, and accessible to everyone.


Behind the scenes of Changelog and surrounding communities.

Changelog Master FeedSubscribe

Master feed of all Changelog podcasts

some interesting episodes:

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

JS Party #96: Performant Node desktop apps with NodeGui featuring Atul R |> News and podcasts for developers |> Changelog

JS Party #95: Visual programming with hardware and Node-RED with special guest Nick O'Leary |> News and podcasts for developers |> Changelog

Go Time #100: Creating the Go programming language featuring Rob Pike & Robert Griesemer |> News and podcasts for developers |> Changelog

The Changelog #362: Machine powered refactoring with AST's featuring Amal Hussein |> News and podcasts for developers |> Changelog

Saturday, October 26, 2019

Friday, October 25, 2019

webUSB, webMIDI, webBluetooth

Oh my web! Connecting to devices with your browser | LibertyJS 2019 - Largest Javascript conference in Philadelphia

littleBits | Electronic Building Blocks for the 21st Century

Bluetooth 5: Go Faster, Go Further | Bluetooth Technology Website
800 ft

Micro:bit Educational Foundation | micro:bit BBC micro:bit micro-controller with motion detection, compass, LED display and Bluetooth: Computers & Accessories

WebUSB API @GitHub

Access USB Devices on the Web  |  Google Developers


navigator.usb.requestDevice({ filters: [{ vendorId: 0x2341 }] })
.then(device => {
  console.log(device.productName);      // "Arduino Micro"
  console.log(device.manufacturerName); // "Arduino LLC"
.catch(error => { console.log(error); });

Chirpers | IoT Robotics

Ron Dagdag's Projects -

chrome.usb - Google Chrome

Use the chrome.usb API to interact with connected USB devices. This API provides access to USB operations from within the context of an app. Using this API, apps can function as drivers for hardware devices. 

Apollo GraphQL

Apollo GraphQL | Apollo Data Graph Platform— unify APIs, microservices, and databases into a data graph that you can query with GraphQL

Apollo: One Giant leap for Full Stack | LibertyJS 2019 - Largest Javascript conference in Philadelphia

Welcome to Apollo: One giant leap for Full stack!

DomitriusAnthony/playlists-workshop: Apollo: One giant leap for Full-stack @GitHub

DomitriusAnthony/apollo-todo: Building a Todo App with apollo-link-state to demonstrate Graphql Queries and Mutations within React @GitHub

prisma - npm

Domitrius Clark – Medium

Domitrius Clark | LinkedIn

Reactadelphia (Philadelphia, PA) | Meetup


Serverless - The Serverless Application Framework powered by AWS Lambda, API Gateway, and more

Making a Serverless Development Portfolio - In Seven Days or Less | LibertyJS 2019 - Largest Javascript conference in Philadelphia

Serverless in 7 Days

Fernando Medina Corey
Serverless Application Patterns - Indexing Searchable User-Generated Content

Using the Serverless Framework with Node.js on AWS | Pluralsight

serverless - npm

JavaScript + MIDI + Microcontrollers

JavaScript + MIDI + Microcontrollers Workshop | LibertyJS 2019 - Largest Javascript conference in Philadelphia

George Mandis • Full stack web developer and creative technologist • George Mandis

More Than Music with MIDI, Tiny Computers & JavaScript

Overview | Introducing Circuit Playground | Adafruit Learning System

MIDI - Wikipedia

MIDI in JavaScript: array of 3 numbers; supported by native web browser API

Espruino - JavaScript for Microcontrollers

More Than Music with MIDI, Tiny Computers & JavaScript | Let's Build Things!

Array with morse-code as keys (in javascript). @GitHub

Web MIDI Starter
MIDI Color Mixer

JavaScript, MIDI, Tiny Computers

georgemandis/circuit-playground-midi-multi-tool: Turn your Adafruit Circuit Playground into a multi-faceted MIDI controller. Designed for my workshops experimenting with the WebMIDI API

Irving: React based, isomorphically rendered, headless CMS

alleyinteractive/irving: Irving is a ReactJS based, isomorphically rendered, headless CMS frontend application.

Home · alleyinteractive/irving Wiki

Components API · alleyinteractive/irving Wiki

Isomorphic Rendering · alleyinteractive/irving Wiki

Isomorphically-rendered apps run roughly the same code on both the servers side (node) and the client side (your web browser). This means they can render any given page in either environment (or both).

Brain.js vs TensorFlow.js: ML in web browser

Brain.js: Neural networks in JavaScript

vs TensorFlow.js

brain.js logo
Simple Machine Learning With JavaSNeural Networks In 

JavaScript - Brain.js Tutorial | Scrimbacript - Brain.js - YouTube

Neural Networks with JavaScript - Full Course using Brain.js - YouTube

11 Javascript Machine Learning Libraries for 2019 - Bits and Pieces

A Neural Network Playground

TensorFlow.js demos  |  TensorFlow

Milecia McGregor | LibertyJS 2019 - Largest Javascript conference in Philadelphia