Saturday, February 29, 2020

Deeplearning.ai vs Fast.ai

Deeplearning.ai
by Andrew Ng

fast.ai · Making neural nets uncool again
by Jeremy Howard
Learning Deep Learning — fast.ai vs. deeplearning.ai

Two Sides of the Same Coin: Jeremy Howard’s fast.ai vs Andrew Ng’s deeplearning.ai

fast.ai vs deeplearning.ai

The Problem of Local Optima (C2W2L10)

Programming Languages Trends

Programming Languages InfoQ Trends Report - October 2019

CockroachDB

@cockroachdbCockroach Labs - Wikipedia



Cockroach Labs, the company building CockroachDB


informative podcast interviews:

The Cloudcast: Scalable Databases on Kubernetes
Peter Mattis (@PeterMattis, Co-founder/CTO of @CockroachDB) talks about the evolution of scalable SQL databases, the challenges of globally scalable data management, how Kubernetes has evolved to manage stateful applications, and lessons learned running Kubernetes and CockroachDB. 

Kubernetes Podcast from Google
CockroachDB, with Peter Mattis





CockroachDB @GitHub
GoLang

licensed under the Business Source License 1.1 (BSL),
the CockroachDB Community License (CCL), the MIT license,
and BSD-style licenses.


Thursday, February 27, 2020

Learning Rust

An Introduction to Rust @ Heroku podcast "Codeish"

LINKS FROM THIS EPISODE

For books, you can get started by reading The Rust Programming Language Book or Programming Rust

For hands-on coding examples, the Rust Playground allows you to run snippets of Rust code; Rust by Example shows common programming problems solved through Rust implementations; the Rust Cookbook offers slightly longer code samples; and both Rustlings and Excercism.io have interactive tutorials
Rust in Motion is a video series Carol and Jake are producing to introduce developers to Rust
The Rust Belt Rust conference is where Rust developers and enthusiasts from around the world will gather to discuss production Rust usage, best practices, and what’s next for Rust.
crates.io is where Rust packages reside
Rust is in production at Mozilla, Amazon, and Google

Wednesday, February 26, 2020

hybrid cloud: AWS Outposts

Amazon Releases AWS Outposts, Enabling Hybrid Data Center Architectures @InfoQ

"Amazon have announced general available of AWS Outposts, a fully managed service that extends AWS infrastructure, AWS services, APIs, and tools to "virtually any datacenter, co-location space, or on-premises facility". This solution allows customers to take advantage of AWS technology, but addresses local processing and low latency requirements. Customers place infrastructure orders online, and Amazon will ship the modular compute rack, and a trained AWS technician will connect, set up and validate the installation."

alpine.js

alpinejs/alpine: A rugged, minimal framework for composing JavaScript behavior in your markup.

132: Caleb Porzio - Just Enough JavaScript with Alpine.js | Full Stack Radio


Friday, February 21, 2020

Top 10 Real Python Articles of 2019


#1: How to Run Your Python Scripts
#2: 13 Project Ideas for Intermediate Python Developers
#3: 3 Ways of Storing and Accessing Lots of Images
#4: Speed Up Your Python Program With Concurrency
#5: Build a Recommendation Engine
#6: Your Guide to the Python Print Function
#7: How to Write Beautiful Python Code With PEP 8
#8: How to Use Python Lambda Functions
#9: How to Stand Out in a Python Interview
#10: Inheritance and Composition: A Python OOP Guide

WebAssembly Summit & Bytecode Alliance


WebAssembly Summit 2020 @ YouTube

WebAssembly Summit

Ben Smith — WebAssembly: Expanding the PIE - YouTube
Original developer of WAT, from Google V8 team; very informative

Lin Clark — WebAssembly: Building a new kind of ecosystem - YouTube
Vision for broad usage of WASM

standardizing on WASM:
Bytecode Alliance

"The Bytecode Alliance is an open source community dedicated to creating secure new software foundations, building on standards such as WebAssembly and WebAssembly System Interface (WASI).

The Bytecode Alliance is committed to establishing a capable, secure platform that allows application developers and service providers to confidently run untrusted code, on any infrastructure, for any operating system or device, leveraging decades of experience doing so inside web browsers.

We have a vision for a secure-by-default WebAssembly ecosystem for all platforms."



link from:
JavaScript Weekly Issue 476: February 21, 2020


excellent, very informative presentation:
WebAssembly Demystified - YouTube
by Jay Phelps of Netflix
image resizing lib in WASM
https://github.com/nodeca/pica

Online WASM IDE
http://mbebenita.github.io/WasmExplorer/

Another online WASM IDE
https://webassembly.studio/


Thursday, February 20, 2020

Wednesday, February 19, 2020

Free resources for developers: AWS, Azure, GCP

Free for developers

This is a list of software (SaaS, PaaS, IaaS, etc.) and other offerings that have free tiers for developers.

AWS, Azure, GCP, ...

Serverless

Serverless: A simple overview - O'Reilly Media
  • Backends as a Service (BaaS) - BaaS provides serverless approaches to handle things like storage, authentication, and user management. AWS Aurora Serverless is an example of a BaaS offering.
  • Functions as a Service (FaaS) - FaaS platforms run code in discrete “function” units that are invoked as needed. AWS Lambda is the canonical example and can be invoked from applications directly or triggered by other AWS services.
What is Serverless?

Monday, February 17, 2020

Google += "no code" AppSheet

Google acquires AppSheet to bring no-code development to Google Cloud | TechCrunch
AppSheet app
Add caption
"Google announced that it is buying AppSheet, an eight-year-old no-code mobile-application-building platform. The company had raised more than $17 million on a $60 million valuation, according to PitchBook data...
With AppSheet, Google gets a simple way for companies to build mobile apps without having to write a line of code. It works by pulling data from a spreadsheet, database or form, and using the field or column names as the basis for building an app.

It is integrated with Google Cloud already integrating with Google Sheets and Google Forms, but also works with other tools, including AWS DynamoDB, Salesforce, Office 365, Box and others."

Sunday, February 16, 2020

free eBook: Effective Feature Management


book coverEffective Feature Management eBook | LaunchDarkly

A feature flag is like a powerful “if ” statement:


if(enableFeature(one.click.checkout, {...}))
then /*show the one-click checkout feature */
else /* show the old feature/


Deploy != Release

Test in Production

Percentage Deployments

A/B Testing

...

AWS 10-Minute Tutorials

10-Minute Tutorials with Amazon Web Services (AWS)

Get started with a simple “Hello, World!” tutorial to get hands-on with an AWS product


Deep Learning State of the Art (2020) | MIT

Deep Learning State of the Art (2020) | MIT Deep Learning Series - YouTube
by Lex Fridman

Lecture on most recent research and developments in deep learning, and hopes for 2020. This is not intended to be a list of SOTA benchmark results, but rather a set of highlights of machine learning and AI innovations and progress in academia, industry, and society in general. 

This lecture is part of the MIT Deep Learning Lecture Series. 

Saturday, February 15, 2020

AWS Toolkit for Visual Studio Code

AWS Toolkit for Visual Studio Code

The AWS Toolkit for Visual Studio Code is an open source plug-in for the Visual Studio Code that makes it easier to create, debug, and deploy applications on Amazon Web Services. With the AWS Toolkit for Visual Studio Code, you will be able to get started faster and be more productive when building applications with Visual Studio Code on AWS. The toolkit provides an integrated experience for developing serverless applications, including assistance for getting started, step-through debugging, and deploying from the IDE.


01-Toolkit-for-VS-Code-Create-SAM-App

event: Azure Power Platform Bootcamp

No PowerPoint :)

//www.powerplatformbootcamp.com/
Global Power Platform Bootcamp
SATURDAY FEBRUARY 15th 2020

Power Apps

Turn ideas into organizational solutions by enabling everyone to build custom apps that solve business challenges.

Power BI

Make informed, confident business decisions by putting data-driven insights into everyone’s hands.

Power Automate

Boost business productivity to get more done by giving everyone the ability to automate organizational processes

Power Virtual Agents

Create conversational experiences that offer support by easily building and maintaining virtual agents—no coding required.


IoT Connected Home: Apple, Google, Amazon, ...

Apple, Google, Amazon, And Others Team Up to Create New Smart Home Standard @ InfoQ

"Connected Home over IP is a recently announced, joint effort by Apple, Google, Amazon, and the Zigbee Alliance to define a connectivity standard for smart home products. To accelerate this initiative, Apple has open sourced parts of its core technology for smart home connectivity.

According to the official announcement, the new open-source and royalty-free standard will leverage smart home technologies from Amazon, Apple, Google, and Zigbee Alliance members. Specifically, the new protocol aims to make it easier to build devices that are compatible with smart home and voice services such as Amazon’s Alexa, Apple’s Siri, Google’s Assistant, and others. Consumers should benefit from increased compatibility, too."

Friday, February 14, 2020

Build WebAssembly Compiler

Build Your Own WebAssembly Compiler

Colin Eberhardt looks at some of the internals of WebAssembly, explores how it works “under the hood”, and looks at how to create a (simple) compiler that targets this runtime.



HTTP/3

The Status of HTTP/3 @InfoQ

"QUIC is a key element of HTTP/3, since it provides the foundations for its main features. Built on top of UDP, QUIC attempts to solve the major issues experienced when using the TCP protocol, i.e., connection-establishment latency and multi-stream handling in the presence of packet loss.
...
For several years, Google has been using QUIC for its own services, including search, YouTube, and others, and also supported it in Chrome. For a while, Chrome was the only way to use QUIC when communicating with Google services supporting it. Recently, Mozilla added support for HTTP/3 in Firefox 72, too, although still experimentally. The command-line tool curl also added support for HTTP/3 in version 7.66.0, along with many additional features. Server-side, HTTP/3 is supported by LightSpeed and Nginx."

Thursday, February 13, 2020

.NET Blazor & WebAssembly (WASM)

Focus on Blazor | Channel 9

Blazor WebAssembly Preview - Full-Stack C# Development for Web Applications @InfoQ

"Microsoft has released the 3.2.0 Preview 1 of Blazor WebAssembly, which adds support for a SignalR client, simplified startup and improved download size.

Blazor is a framework for building web applications using C#, HTML and CSS. The C# code is used for both client and server functionality meaning that duplicated business logic is no longer an issue. The C# code is compiling to run on WebAssembly."

AWS Cognito User Pools vs Identity Pools

Understanding AWS Cognito User and Identity Pools for Serverless Apps - The New Stack

An Identity Provider is a service that manages authentication, providing a user login and the ability to verify a user’s identity. AWS Cognito has its own Identity Provider (using User Pools, which are explained below), but it can also integrate with well-established third-party Identity Providers like Facebook and Google. Additionally, Cognito can integrate with any Identity Provider that implements the SAML or OAuth2 protocols. The process of integrating with a third-party for authentication is called Federation.

User Pools and Identity Pools (also called Federated Identities).
User Pools provide a user directory for your application, including all the bells and whistles that come with user management, like sign-up, sign-in, group management, etc. User Pools also provide your app with information like the user’s ID and group membership, so that your code can handle authorization.

Identity Pools
, in contrast, are used to assign IAM roles to users who authenticate through a separate Identity Provider. Because these users are assigned an IAM role, they each have their own set of IAM permissions, allowing them to access AWS resources directly.


Wednesday, February 12, 2020

Role-based access control (RBAC)

Role-based access control - Wikipedia

"In computer systems security, role-based access control (RBAC)[1][2] or role-based security[3] is an approach to restricting system access to authorized users. It is used by the majority of enterprises with more than 500 employees,[4] and can implement mandatory access control (MAC) or discretionary access control (DAC).

Role-based access control (RBAC) is a policy-neutral access-control mechanism defined around roles and privileges. The components of RBAC such as role-permissions, user-role and role-role relationships make it simple to perform user assignments. A study by NIST has demonstrated that RBAC addresses many needs of commercial and government organizations"


Role Based Access Control | CSRC @ NIST

Role-Based Access Controls (PDF, original paper describing the concept)


AWS X-Ray

AWS X-Ray Documentation

AWS X-Ray Concepts - AWS X-Ray

https://docs.aws.amazon.com/xray/latest/devguide/aws-xray.html


      How the X-Ray SDK works

Cruze Origin, a fully autonomous SUV

spectrum.ieee.org/view-from-the-valley/transportation/self-driving/uhoh-uber-look-out-lyft-here-comes-driverless-ride-sharing

Cruise unveils the Origin, a fully autonomous SUV designed for app-controlled urban transportation

Image of Cruise Origin in San Francisco, with passengers inside and another approaching

"Cruise Origin is a six-passenger, autonomous, electric, SUV-sized vehicle intended to disrupt not so much the car industry as urban transportation overall. Cruise does not plan to offer the Origin on the retail market. Instead, it will operate fleets of the vehicles as a ride-sharing service; screens inside are intended to give information about upcoming pick ups and drop offs."

Tuesday, February 11, 2020

AWS Lambda Destinations: Asynchronous Invocation

Asynchronous Invocation - AWS Lambda

"Several AWS services, such as Amazon Simple Storage Service and Amazon Simple Notification Service, invoke functions asynchronously to process events. When you invoke a function asynchronously, you don't wait for a response from the function code. You hand off the event to Lambda and Lambda handles the rest. You can configure how Lambda handles errors, and send invocation records to a downstream resource to chain together components of your application."




"AWS Lambda now supports Destinations for asynchronous invocations, a new feature that allows you to gain visibility to asynchronous invocation result and route the result to an AWS service without writing code"


Monday, February 10, 2020

In the Age of AI (full film)

In the Age of AI (full film) | FRONTLINE - YouTube

In the Age of AI [full film]

In the Age of AI is a documentary exploring how artificial intelligence is changing life as we know it — from jobs to privacy to a growing rivalry between the U.S. and China. FRONTLINE investigates the promise and perils of AI and automation, tracing a new industrial revolution that will reshape and disrupt our world, and allow the emergence of a surveillance society.

Sunday, February 09, 2020

Microsoft Vision AI DevKit

channel9.msdn.com/Shows/Internet-of-Things-Show/Unboxing-the-Vision-AI-DevKit

(aka.ms/iotshow/visionaidevkit), a smart camera for the intelligent edge. The developer kit uses the Qualcomm's Vision Intelligence 300 Platform which uniquely runs machine learning with hardware acceleration delivering results in milliseconds



It took a while to create competitor for


Tesla Autopilot & Moore's Law

Great podcast interview, that co-designed many of CPUs that we are using today!
First selected section of interview about autonomous driving:


"Jim Keller, Tesla’s former head of Autopilot hardware and the designer of Tesla’s Self-Driving Computer chip, says that he is confident about solving autonomous driving after working at Tesla."



Here is a whole interview:


"Jim Keller is a legendary microprocessor engineer, having worked at AMD, Apple, Tesla, and now Intel. He's known for his work on the AMD K7, K8, K12 and Zen microarchitectures, Apple A4, A5 processors, and co-author of the specifications for the x86-64 instruction set and HyperTransport interconnect."



" is a microprocessor engineer best known for his work at AMD and Apple. He was the lead architect of the AMD K8 microarchitecture (including the original Athlon 64 and was involved in designing the Athlon (K7) and Apple A4/A5 processors. ... Tesla HW 3.0"




Saturday, February 08, 2020

Go.dev

Go Gopher piloting a biplane.Grokking Go.dev @ GoTime podcast


go.dev - A new hub for Go devs created by the Go team

pkg.go.dev - The package discovery portion of Go.dev

“Imported By” example - An example of a package and its imports on Go.dev

go-discovery-feedback@google.com - Feedback email address

go-licenses - A tool to check go package licenses


GoLang => Rust

Why Discord is switching from Go to Rust

Go is purple, Rust is blue.

"In Go, on cache key eviction, memory is not immediately freed. Instead, the garbage collector runs every so often to find any memory that has no references and then frees it. In other words, instead of freeing immediately after the memory is out of use, memory hangs out for a bit until the garbage collector can determine if it’s truly out of use. During garbage collection, Go has to do a lot of work to determine what memory is free, which can slow the program down."

Wednesday, February 05, 2020

AWS Architecture Icons

AWS Architecture Icons

The official AWS icon set for building architecture diagrams

AWS Simple Icons


K8S: Sservice Meshes

softwareengineeringdaily.com/2020/01/07/service-meshes

The major players in the service mesh space are
Other Service Meshes
  • Gloo: “…a cloud-native API Gateway and Ingress Controller built on Envoy Proxy…”
  • AppMesh: AWS’s service mesh for your AWS compute infrastructure
  • AspenMesh: “…the Easy-To-Use, Enterprise-Ready Distribution of Istio…”





Monday, February 03, 2020

Protocol Buffers Encoding, VarInt

Encoding | Protocol Buffers | Google Developers

Base 128 Varints

"To understand your simple protocol buffer encoding, you first need to understand varints. Varints are a method of serializing integers using one or more bytes. Smaller numbers take a smaller number of bytes.

Each byte in a varint, except the last byte, has the most significant bit (msb) set – this indicates that there are further bytes to come. The lower 7 bits of each byte are used to store the two's complement representation of the number in groups of 7 bits, least significant group first.

So, for example, here is the number 1 – it's a single byte, so the msb is not set:0000 0001

And here is 300 – this is a bit more complicated:1010 1100 0000 0010

How do you figure out that this is 300? First you drop the msb from each byte, as this is just there to tell us whether we've reached the end of the number (as you can see, it's set in the first byte as there is more than one byte in the varint): 1010 1100 0000 0010 → 010 1100 000 0010

You reverse the two groups of 7 bits because, as you remember, varints store numbers with the least significant group first. Then you concatenate them to get your final value:000 0010 010 1100 → 000 0010 ++ 010 1100 → 100101100 → 256 + 32 + 8 + 4 = 300"


The available wire types are as follows:
TypeMeaningUsed For
0Varintint32, int64, uint32, uint64, sint32, sint64, bool, enum
164-bitfixed64, sfixed64, double
2Length-delimitedstring, bytes, embedded messages, packed repeated fields
3Start groupgroups (deprecated)
4End groupgroups (deprecated)
532-bitfixed32, sfixed32, float
Let's say you have the following very simple message definition:

message Test1 {
  optional int32 a = 1;
}

In an application, you create a Test1 message and set a to 150. You then serialize the message to an output stream. If you were able to examine the encoded message, you'd see three bytes:

08 96 01


Protocol Buffers | Google Developers

developers.google.com/protocol-buffers/docs/proto3



Sunday, February 02, 2020

Microservices => (Distributed) Monoliths ?

A controversial statement from Kelsey Hightower, prominent in K8S community,
co-author of book Kubernetes: Up and Running
Kubernetes: Up and Running, Second Edition(also available as free download from Microsoft)


Monoliths are the future |> News and podcasts for developers |> Changelog

"Monoliths are the future because the problem people are trying to solve with microservices doesn’t really line up with reality."
//changelog.com/gotime/114

//changelog.com/gotime/114#transcript-96



AWS FireCracker MicroVM, Crome OS, Lambda, Rust

Firecracker logo//firecracker-microvm.github.io

"Firecracker is an alternative to QEMU that is purpose-built for running serverless functions and containers safely and efficiently, and nothing more. Firecracker is written in Rust, provides a minimal required device model to the guest operating system while excluding non-essential functionality (only 5 emulated devices are available: virtio-net, virtio-block, virtio-vsock, serial console, and a minimal keyboard controller used only to stop the microVM). This, along with a streamlined kernel loading process enables a < 125 ms startup time and a < 5 MiB memory footprint."
//jaxenter.com/serverless-firecracker-aws-152371

  • Firecracker’s language of choice: Rust. Does this surprise you? It shouldn’t; Firecracker has roots in crosvm – the Chrome OS virtual machine monitor, which was written in Rust. Virtual machines written in Rust benefit from the language’s memory safety.
  • Windows support? Not here. Firecracker is a Kernel-based virtual machine. It can only support Linux kernel v4.14 and higher.



Firecracker – Lightweight Virtualization for Serverless Computing @ aws blog
  • "Secure – Firecracker uses multiple levels of isolation and protection, and exposes a minimal attack surface.
  • High Performance – You can launch a microVM in as little as 125 ms today (and even faster in 2019), 
  • Battle-Tested – Firecracker has been battled-tested and is already powering multiple high-volume AWS services including AWS Lambda and AWS Fargate.
  • Low Overhead – Firecracker consumes about 5 MiB of memory per microVM. You can run thousands of secure VMs with widely varying vCPU and memory configurations on the same instance.
  • Open Source – Firecracker is an active open source project."
Introducing Firecracker, a New Virtualization Technology and Open Source Project for Running Multi-Tenant Container Workloads @AWS


thenewstack.io/how-firecracker-is-going-to-set-modern-infrastructure-on-fire