Friday, May 31, 2019

Wednesday, May 29, 2019

Material Design: Theming

Overview - Material Design

"Material Theming is the ability to systematically customize Material Design to better reflect your product’s brand.

When you begin changing aspects of your UI, such as color and typography, Material Theming tools apply your design vision throughout your user experience. These tools allow easy switching between design and code workflows by providing specific values for all customizable attributes. Customizing these values creates a Material Theme for your product."



Git branching

A successful Git branching model » nvie.com

Monday, May 27, 2019

IoT: Wyze Bulb $8 (WiFi + color temp.)

Wyze Bulb is an $8 bomb in the smart lighting market - SlashGear

"A single bulb is $7.99, while a four pack of bulbs is $29.99. That gets you a 9.5W LED bulb – which is 60W equivalent – delivering up to 800 lumens of brightness.

There’s no color changing, though you can tweak the color temperature. Wyze supports everything from a warm white light of 2,700k, through to daylight white, at 6,500k. Dimming is possible through the app, too, along with scheduling and a vacation mode that will automatically turn lights on and off to simulate someone being home.

Unlike Philips Hue and some other smart bulb platforms, there’s no hub to install. Instead, the Wyze Bulbs each connect directly to your WiFi network. You’ll need to have a 2.4GHz network operating, mind, since they don’t work with 5GHz WiFi."

IoT: Lutron Aurora "smart bulb dimmer"

WiFi based

Lutron Aurora Always Ready smart bulb dimmer

"The Aurora smart bulb dimmer locks an existing toggle light switch in the “on/up” position. That way, no one can accidentally turn the switch—and your Hue smart bulb functionality—off. Ships with mounting base and rotary dimmer."

React Material-UI v4

Google's "Material Design" is becoming quite popular for styling web and mobile apps, almost like new (Twitter) Bootstrap library. Even Microsoft's Xamarin provides "Material" Templates.
There is also "Material Design Bootstrap" for jQuery, Angular, React, View.

For React there is also very popular:

Material-UI v4 is out 🎉 – Material-UI – Medium

Release v4.0.0 · mui-org/material-ui @ GitHub

"Some statistics with v4 compared to the release of v1 one year ago:
From 300k downloads/month to 2M downloads/month on npm
From 90k users/month to 350k users/month on the documentation"

Sunday, May 26, 2019

Alan Kay: It’s not BIG DATA, but BIG MEANING

Toward the next generation of programming tools - O'Reilly Media

"In a Quora post, Alan Kay lamented the state of tooling for programmers. Every other engineering discipline has built modern computational tools: for computer aided design, simulation and testing, and for manufacturing. But programming hasn’t progressed significantly since the 1970s. We’ve built great tools for others, but not ourselves..."
What was the last breakthrough in computer programming? - Quora

"As for programming itself... “It’s not BIG DATA, but BIG MEANING”. In other words, the next significant threshold that programming must achieve is for programs and programming systems to have a much deeper understanding of both what they are trying to do, and what they are actually doing. That this hasn’t happened in the last 35 years is a really unfortunate commentary on the lack of a maturation process for computing."


Saturday, May 25, 2019

Mozilla WebThings for Web of Things

Mozilla Revamps WebThings, its Open Source IoT Platform

"Mozilla recently released its open source IoT platform, formerly called Project Things, as WebThings. Mozilla WebThings brings a series of logging, alarm, and networking features.

Mozilla WebThings is an open source implementation of emerging Web of Things standards at the W3C. W3C Web of Things is an initiative that aims to reduce the IoT fragmentation, through the recently launched Web of Things Working Group. W3C started to develop the initial standards for the Web of Things, aiming to reduce the costs of development, lessen the risks to both investors and customers, and encourage exponential growth in the market for IoT devices and services."



"Mozilla WebThings is an open platform for monitoring and controlling devices over the web, including:
  • WebThings Gateway – a software distribution for smart home gateways focused on privacy, security and interoperability
  • WebThings Framework – a collection of reusable software components to help developers build their own web things"

Thursday, May 23, 2019

GitLab: Azure to GCP

After Microsoft purchased GitHub, Google invested big in GitLab.
GitLab's business is not direct competition to GitHub: instead of mostly selling hosted service,
GitLab's customers are mostly hosting on premise. So GitLab's moving cloud hosting
is likely driven by collaboration with its major investor, and moving away from owner of its major competitor. Makes a good headline...

How GitLab Managed to Migrate from Azure to Google Cloud Platform

GitLab’s journey from Azure to GCP | GitLab

GitLab Geo diagram

Wednesday, May 22, 2019

Amazon Auto ?

Jeff Bezos to employees: 'very excited' about auto industry

"At an all-hands staff meeting in March, Amazon CEO Jeff Bezos told employees that he’s fascinated by the recent developments in the auto industry, adding that it was one of the main reasons why Amazon led a $700 million investment in electric vehicle start-up Rivian in February.

“If you think about the auto industry right now, there’s so many things going on with Uber-ization, electrification, the connected car — so it’s a fascinating industry,” Bezos said according to a recording of the meeting CNBC has heard. “It’s going to be something very interesting to watch and participate in, and I’m very excited about that whole industry.


Bezos’ comments give a rare glimpse into his interest in the auto industry, which Amazon entered in February through its investments in Rivian and another self-driving tech start-up, Aurora. Investing in autonomous technology could eventually help Amazon offer faster and cheaper delivery, as well as automation in other areas, like its cashier-free grocery stores.”


Tuesday, May 21, 2019

AutoML: Azure, GCP

Introduction to Automated Machine Learning (AutoML) - Software Engineering Daily





"Automated machine learning, or AutoML, is an umbrella term for a particular approach to machine learning that aims to automate any part of the process of building a machine learning model from raw data.

AutoML caught the spotlight after Google announced its AutoML suite, Google Cloud AutoML, and Microsoft announced AutoML in Azure Machine Learning."

Monday, May 20, 2019

.NET Core 3 += gRPC / ProtoBuf

Next version of .NET includes support for (Google's standard) gRPC data protocol with efficient ProtoBuf serialization.

After "tech trend waves" of XML/SOAP and current JSON/REST, ProtoBuf/gRPC (or similar binary serialization) may become more broadly used since it is supported by tools for most of popular client and server platforms.

An Early Look at gRPC and ASP.NET Core 3.0 - Steve Gordon

"gRPC is a schema-first framework initially created by Google. It supports service to service communication over HTTP/2 connections. It uses the Protobuf wire transfer serialisation for lightweight, fast messaging between the services."
gRPC services with C# | Microsoft Docs
C# Quick Start – gRPC


Protocol Buffers, Avro, Thrift & MessagePack - igvita.com

"Protocol Buffers (PB) is the "language of data" at Google. Put simply, Protocol Buffers are used for serialization, RPC, and about everything in between."











JSON is Not Cool Anymore: Implementing Protocol Buffers in Node.js

Sunday, May 19, 2019

web tools: Rollup vs Webpack vs Parcel

Modern "SPA" (Single Page web Apps) have too many files/modules
and need to be "packaged" for deployment.
There are multiple tools for that

Webpack and Rollup: the same but different – webpack – Medium
by Rich Harris (creator of Svelte)



Rollup vs Webpack (JavaScript bundling in 2018) – jsdownunder – Medium



Rollup v. Webpack v. Parcel

AI/ML: “As We May Program” by Peter Norvig


A great presentation by Peter Norvig, lead of Google AI research, Stanford and Udacity professor.
A possible future of programming as combination of Voice UI and ML for continuous improvements based on feedback, difference of expected and achieved results. Very interesting.
He concludes with concept of "marketplace for what we need and want.

As We May Program - Microsoft Research

As We May Program


"In this hour-long talk as part of Microsoft Research's AI Distinguished Lecture series, Peter Norvig investigates how machine learning will change the way we program, the tools we use, and the mix of tasks done by expert programmers, novice programmers, and nonprogrammers. Watch the video here, and get the slides of the talk here.

+ Get more of Norvig's insights exclusively on the O'Reilly online learning platform, including his recent keynote address at last year's AI Conference in San Francisco, "The Breadth of AI Applications: The Ongoing Expansion."


As We May Program - YouTube



The Tragedy of the Commons: How Elinor Ostrom Solved One of Life's Greatest Dilemmas - Evonomics

"...avoiding the "tragedy of the commons" without requiring top-down regulation, at least if certain conditions are met (Ostrom 1990, 2010). She summarized the conditions in the form of eight core design principles: 1) Clearly defined boundaries; 2) Proportional equivalence between benefits and costs; 3) Collective choice arrangements; 4) Monitoring; 5) Graduated sanctions; 6) Fast and fair conflict resolution; 7) Local autonomy; 8) Appropriate relations with other tiers of rule-making authority (polycentric governance). This work was so groundbreaking that Ostrom was awarded the Nobel Prize in economics in 2009."

Friday, May 17, 2019

TinyGo: Go => LLVM => {microcontrollers, WebAssembly }


Home :: TinyGo - Go on Microcontrollers and WASM

"TinyGo is a project to bring the Go programming language to microcontrollers and modern web browsers by creating a new compiler based on LLVM.

You can compile and run TinyGo programs on several different microcontroller boards such as the BBC micro:bit and the Arduino Uno.

TinyGo can also be used to produce WebAssembly (WASM) code which is very compact in size.


Just want to see the code? Go to the Github repository at https://github.com/tinygo-org/tinygo."





Gopherbot
Gopherbot is a robotic gopher plushie that can be programmed using Go, and other programming languages too. 

Back to Moon

Blue Origin and SpaceX get million-dollar NASA nod to test Moon lander tech | TechCrunch

"Eleven aerospace companies will share more than $45 million in funds from NASA to design and test prototypes for the Artemis Moon missions, the agency has announced."

Thursday, May 16, 2019

Microsoft Azure + Sony for gaming

Microsoft And Sony Make Nice, Forge Partnership For Gaming And Cloud Services - GameSpot

"Microsoft and Sony--the company's behind Xbox One and PS4 respectively--have decided on a strategic partnership. The two companies plan on sharing technology and information going forward and build upon shared infrastuctures for some of their future initiatives."

Sony and Microsoft to explore strategic partnership - Stories

Microsoft announces cloud gaming partnership with Sony

"The two companies are clearly reading the writing on the wall — namely that several other companies like Google (Google Stadia)_and Amazon are going to be getting into game streaming (allegedly, in Amazon’s case), and are going to do their level best to convince the world it’s the “next big thing.”"



Satya Nadella Remade Microsoft as World’s Most Valuable Company - Bloomberg

"Under Satya Nadella, Microsoft has more subscribers than Netflix, more cloud computing revenue than Google, and a near-trillion-dollar market cap."

Slack IPO

Slack files for IPO, reveals $400M in revenue, $139M in losses
  • Daily Active Users (DAUs): Over 10 million
  • Paid customers: 88,000, up 49% year over year compared with fiscal 2018
  • Paid customers paying over $100,000 based on annual recurring revenue (ARR): 575, up 93% year over year compared with fiscal 2018
How Slack impacts workplace productivity - Vox

Microsoft Cloud Show - Periodic Table of Office 365 with Matt Wade

.NET 5 = .NET Core 3.0 + Mono + .NET

Introducing .NET 5 | .NET Blog



Web Browser API: Channel Messaging for iFrames

communication with iframe

The Web Platform Course by Flavio Copes

Channel Messaging API - Web APIs | MDN

dom-examples/channel-messaging-basic at master · mdn/dom-examples @GitHub

Wednesday, May 15, 2019

Svelte.js (vs React vs Angular vs Vue)

Svelte.js is a web compiler, not a framework;
apparently 35 times faster than React on some tests

Svelte vs React vs Angular vs Vue

Svelte - Quickstart & Thorough Introduction Tutorial - YouTube

Svelte.js - The Complete Guide | Udemy
by Max.S.


Svelte • Cybernetically enhanced web apps

REPL • Svelte (Documents and examples)


sveltejs/svelte: Cybernetically enhanced web apps @GitHub

svelte - npm

The easiest way to get started with Svelte

Svelte - Visual Studio Marketplace (plugin for VS Code)


Rich Harris - Rethinking reactivity - YouTube
creator of Svelte



Computer, build me an app - Rich Harris - JSConf EU 2018 - YouTube

Rich Harris – Medium

Rich-Harris (Rich Harris) @ GitHub


mentioned in the presentation above:

What is Reactive Programming? - Paul Stovell
with modern "destiny operator" variables are bound and change together

ObservableHQ
by Mike Bostock, creator of D3.js

Dan Abramov: Beyond React 16 | JSConf Iceland 2018 - YouTube
by Co-author of Redux and Create React App



Svelte 3 Reaction & QuickStart Tutorial - YouTube

code from video:
fireship-io/182-svelte-firebase: Episode 182 - Svelte 3 + RxFire @GitHub

create demo app:

> npx degit sveltejs/template svelte-demo
> cd svelte-demo
> npm install
> npm run dev
> chrome.exe http://localhost:5000/



Svelte Native • The Svelte Mobile Development Experience
Learn Svelte Native
NativeScript + Svelte = Svelte Native

Svelte REPL

Azure SQL Database Edge

Microsoft Brings SQL to the Edge, Announces Azure SQL Database Edge



New intelligent cloud and intelligent edge advancements ushering in the next era of computing - The Official Microsoft Blog

Simplify Edge Architecture with Azure SQL Database Edge - BRK2014 - YouTube

Tuesday, May 14, 2019

GitHub Package Registry

GitHub Package Registry Integrates Source Code and Packages @InfoQ

GitHub Package Registry provides fast, reliable downloads backed by GitHub’s global CDN. And it supports familiar package management tools: JavaScript (npm), Java (Maven), Ruby (RubyGems), .NET (NuGet), and Docker images, with more to come.
Introducing GitHub Package Registry - The GitHub Blog

Memory Management in GoLang


Garbage Collection In Go : Part I - Semantics

Garbage Collection In Go : Part II - GC Traces

Saturday, May 11, 2019

Android: Kotlin first

Kotlin is now Google’s preferred language for Android app development | TechCrunch

"Google today announced that the Kotlin programming language is now its preferred language for Android app developers.

“Android development will become increasingly Kotlin-first,” Google writes in today’s announcement. “Many new Jetpack APIs and features will be offered first in Kotlin. If you’re starting a new project, you should write it in Kotlin; code written in Kotlin often mean much less code for you–less code to type, test, and maintain.”

data: UBER vs JSON => MessagePack

Putting the Squeeze on Trip Data

pareto frontParetoFront
Key conclusions:
  • Simply compressing JSON with zlib would yield a reasonable tradeoff in size and speed. The result would be just a little bigger, but execution was much faster than using BZ2 on JSON.
  • Going with IDL-based protocols, Thrift and Protocol Buffers compressed with zlib or Snappy would give us the best gain in size and/or speed.

...settled on MessagePack with zlib (instead of plain JSON)

A 1 TB disk will now last almost a year (347 days),
compared to a month (30 days) without compression
.

MessagePack: It's like JSON. but fast and small.

"MessagePack is an efficient binary serialization format.
It lets you exchange data among multiple languages like JSON.
But it's faster and smaller.
Small integers are encoded into a single byte,
and typical short strings require only one extra byte in addition to the strings themselves."

Designing Schemaless, Uber Engineering's Scalable Datastore Using MySQL | Uber Engineering Blog




Prettier with VS Code


Prettier · Opinionated Code Formatter

An opinionated code formatter
Supports many languages
Integrates with most editors
Has few options

prettier/prettier-vscode: Visual Studio Code extension for Prettier
@GitHub

1. CMD + Shift + P -> Format Document
OR
1. Select the text you want to Prettify
2. CMD + Shift + P -> Format Selection
Format On Save


// Set the default
"editor.formatOnSave": false,
// Enable per-language
"[javascript]": {
    "editor.formatOnSave": true
}

Automated code formatting with Prettier

Use Prettier in Visual Studio Code - YouTube




Tuesday, May 07, 2019

React Native for Windows & MacOS

Microsoft launches React Native for Windows | TechCrunch

With React Native for Windows, Microsoft is reimplementing React Native and rewriting many components in C++ to get maximum performance. It allows developers to target any Windows 10 device, including PCs, tablets, Xbox, mixed reality devices and more.

hero2

microsoft/react-native-windows: A framework for building native Windows apps with React.

The "current" subdirectory holds the earlier C# implementation for react-native-windows.

Flutter: mobile, web, windows, mac, linux

Google’s Flutter framework spreads its wings and goes multi-platform | TechCrunch
Google also today announced that Flutter developers will soon be able to target macOS, Windows and Linux and that the company itself is already using the framework to power some experiences on the Google Home Hub as it looks to bring Flutter to more embedded devices, too.

Google’s Flutter toolkit goes beyond mobile with Project Hummingbird | TechCrunch
Hummingbird takes the Dart code that all Flutter applications are written in and then compiles it to JavaScript, which in turn allows the code to run in any modern browser.

Flutter - Beautiful native apps in record time

Desktop shells · flutter/flutter Wiki

Bringing Flutter to the Web – Flutter – Medium



Flutter 1.5 Goes Multi-Platform, Includes Web Support @InfoQ

Windows 10 += Linux kernel !

Microsoft will ship a full Linux kernel in Windows 10 - The Verge

“Beginning with Windows Insiders builds this Summer, we will include an in-house custom-built Linux kernel to underpin the newest version of the Windows Subsystem for Linux (WSL)"

Tesla += $2B for emission credits

Tesla (TSLA) is going to get up to $2 billion from Fiat-Chrysler to meet emission standards - Electrek

“Fiat Chrysler Automobiles has said it will pay electric carmaker Tesla close to €2bn to help it meet tough new emissions targets and has reported a 29 per cent drop in first-quarter profits.”

Monday, May 06, 2019

Google I/O 2019

Google I/O 2019
May 7-9 at the Shoreline Amphitheatre in Mountain View, CA

Microsoft Build 2019

May 6-8, 2019, Seattle, WA

MyBuild - Your home for Microsoft Build

Welcome - Dev Collective

MyBuild - Your home for Microsoft Build

Microsoft Build 2019 - YouTube (playlist)

Microsoft Build 2019 - LIVE Stream - Day 1 (May 6) - YouTube


Microsoft Build 2019 Keynote in under 14 minutes - YouTube

press coverage:

Top 5 announcements from Microsoft Build 2019 | Windows Central

Watch the Microsoft Build 2019 Keynote Here | WIRED

Microsoft Build 2019 Day 1: Everything announced and how to replay - CNET

Microsoft Build 2019: the biggest news from the developer conference - The Verge

Microsoft is going to ship a full Linux kernel in Windows 10 - The Verge

Inside Microsoft’s surprise decision to work with Google on its Edge browser - The Verge

Microsoft wants to make the web more productive with its new Fluid Framework - The Verge

Microsoft unveils Windows Terminal, a new command line app for Windows - The Verge


Internet Robustness Principle (Postel's law)

Robustness principle - Wikipedia

In computing, the robustness principle is a design guideline for software:

"Be conservative in what you send, be liberal in what you accept" 

or
"Be conservative in what you do, be liberal in what you accept from others" 

The principle is also known as Postel's law, after Jon Postel,
who wrote in an early specification of TCP:[1]


Federation Lab and OpenID Connect


Sunday, May 05, 2019

21 compilers: Swift, Rust, LLVM...


21 compilers and 3 orders of magnitude in 60 minutes (PDF)
by  Graydon Hoare (creator of Rust, core developer of Swift, LLVM)

graydon (Graydon Hoare) @ GitHub

GoLang vs Java, Python

Why Go? – Key advantages you may have overlooked · YourBasic Go

Go makes it easier (than Java or Python) to write correct, clear and efficient code.

Unicorn racing towards the Rainbow





Saturday, May 04, 2019

Chromebooks: $200

Amazon.com: ASUS Chromebook C202SA-YS02 11.6" Ruggedized and Water Resistant Design with 180 Degree (Intel Celeron 4 GB, 16GB eMMC, Dark Blue, Silver): Computers & Accessories


The best-selling Chromebook on Amazon is rugged, spill-proof, and only $219 – BGR

book: The Effective Executive by Peter F. Drucker

The Effective Executive: The Definitive Guide to Getting the Right Things Done (Harperbusiness Essentials): Peter F. Drucker: 8601420130388: Amazon.com: Books

The book has seven chapters:
  1. Effectiveness Can Be Learnt
  2. Know Thy Time
  3. What Can I Contribute?
  4. Making Strength Productive
  5. First Things First
  6. The Elements of Decision Making
  7. Effective Decisions
How to be effective: THE EFFECTIVE EXECUTIVE by Peter Drucker | Core Message - YouTube
1 page PDF summary @Lozeron Academy



  • To be effective is to be selective with your time. 
  • Ask yourself: What contribution can I make? ->
    "To focus on contribution is to focus on effectiveness." 
  • Know Thy Strengths:
    Maximizing your strengths maximizes your contribution. 
  • Don't know your strengths?
    Volunteer for new roles and get feedback on your performance. 
  • Know Thy Time:
    Maximizing your time maximizes your contribution. 
  • Don't know your time? Keep a time log
    and after a month review your time statement to determine 
    • what you need to stop doing and 
    • what you need offload. 
  • Ultimate Goal:
    Do what you do best, and stop doing or give away the rest.

by Peter F. Drucker 

"What made (an executive) effective is that they followed the same eight practices:
  • They asked, “What needs to be done?”
  • They asked, “What is right for the enterprise?”
  • They developed action plans.
  • They took responsibility for decisions.
  • They took responsibility for communicating.
  • They were focused on opportunities rather than problems.
  • They ran productive meetings.
  • They thought and said “we” rather than “I.”


Steps to effectiveness:
  1. Recording where the time goes
  2. Focus your vision on contribution
  3. Make your strengths productive and focus on using them
  4. Prioritize the most important things first, not necessarily the most urgent
  5. Take rational action