Thursday, August 30, 2018

noms database: Git of Shared Data

The Noms Database Aims to Become the Git of Shared Data - The New Stack

"A new open source database called Noms aims to do for published data what Git does for source code. It’s from former Google engineers  and Rafael Weinstein, who formed the company Attic Labs. They set out to build a database with versioning, deduplication, and synchronization built into its core."

splore

GitHub - attic-labs/noms: The versioned, forkable, syncable database

noms/about.md at master · attic-labs/noms · GitHub

noms/intro.md at master · attic-labs/noms · GitHub

`noms init` – Medium

Salesforce acquires Attic Labs, the startup behind decentralized database Noms | TechCrunch

After the acquisition is completed, Attic Labs’ team will join Quip, the document collaboration platform Salesforce bought in August 2016 for $750 million. Attic Labs said Noms’ tech “will extend Quip’s ability to connect live data sources, making it easier for people to collaborate faster and more effectively.”

Intro to Noms · Decentralized Data Workshops

noms/go-tour.md at master · attic-labs/noms · GitHub



Wednesday, August 29, 2018

DVC: Data science Version Control system

Data Science Version Control System

DVC is an open-source framework and distributed version control system for machine learning projects. DVC is designed to handle large files, models, and metrics as well as code.


Data Version Control Tutorial – dataversioncontrol


Tuesday, August 28, 2018

GoLang Data Science

Go Data Science with Daniel Whitenack - Software Engineering Daily



GitHub - pachyderm/pachyderm: Reproducible Data Science at Scale!
"Pachyderm is a tool for production data pipelines. If you need to chain together data scraping, ingestion, cleaning, munging, wrangling, processing, modeling, and analysis in a sane way, then Pachyderm is for you. If you have an existing set of scripts which do this in an ad-hoc fashion and you're looking for a way to "productionize" them, Pachyderm can make this easy for you."

Monday, August 27, 2018

GoLang 1.11 += WebAssembly

Go 1.11 Adds WebAssembly, Experimental Module Support, and More @ InfoQ

Go 1.11 is released - The Go Blog

Go 1.11 Release Notes - The Go Programming Language

"Go 1.11 adds an experimental port to WebAssembly (js/wasm).
... new GOOS value "js" and GOARCH value "wasm"

Go 1.11 adds preliminary support for a new concept called “modules,” an alternative to GOPATH with integrated support for versioning and package distribution. Using modules, developers are no longer confined to working inside GOPATH, version dependency information is explicit yet lightweight, and builds are more reliable and reproducible."

Friday, August 24, 2018

Qwiklabs: cloud hands-on training

pay per use or monthly subscription

Qwiklabs

"Become a cloud expert with hands-on training.
...temporary credentials to Google Cloud Platform and Amazon Web Services, so you can learn the cloud using the real thing – no simulations."

Thursday, August 23, 2018

Tuesday, August 21, 2018

SQL vs NoSQL vs NewSQL: VoltDB

A subset of SQL language is supported with many data systems, including those called NoSQL.
Now there is marketing of calling some of that "NewSQL"

NewSQL - Wikipedia

"NewSQL is a class of modern relational database management systems that seek to provide the same scalable performance of NoSQL systems for online transaction processing (OLTP) read-write workloads while still maintaining the ACID guarantees of a traditional database system."

NoSQL vs. NewSQL: Choosing the Right Tool - VoltDB

Whitepaper: SQL vs NoSQL vs NewSQL - VoltDB

In-Memory Database | VoltDB

Founder: Dr. Michael Stonebraker - VoltDB

The experience of this founder is a huge plus when considering the database!
Among many other things, he is also creator of Postgres database.

Michael Stonebraker - Wikipedia


SQL vs. NoSQL vs. NewSQL: Finding the Right Solution - Dataconomy

Monday, August 20, 2018

Android iPhone X

Motorola phone 'brazen copy' of iPhone X - BBC News

Motorola P30 and iPhone X

"Lenovo plans to sell the Motorola P30 in China, but has not announced its availability in other countries. The device is expected to cost about $350"

AssemblyScript: TypeScript to WebAssembly compiler


@AssemblyScript
TypeScript is making JavaScript better.
But there is not a way to even produce faster code from (subset of) TypeScript
compiled to WebAssembly.

AssemblyScript · GitHub

GitHub - AssemblyScript/assemblyscript: A TypeScript to WebAssembly compiler πŸš€


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

on my measurement, wasm was about 2x faster than plain JavaScript on this simple test in Chrome






Sunday, August 19, 2018

Microsoft AI for Earth

AI for Earth with Jennifer Marsman @ .NET Rocks! vNext

VR/AR Art  MediSwarm  AI for Earth  FarmBeats  AI for Accessibility  Project Premonition Land Cover Mapping  Project Premonition  FarmBeats  WildMe  iNaturalist

Microsoft AI for Earth | Using AI to advance sustainability

Microsoft AI for Earth - Projects


System Design Primer

GitHub - donnemartin/system-design-primer: Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

Wasm: GoLang vs. .Net

Could "Wasm" become a universal VM for many programming languages,
the promise of Java and .NET that was never quite realized?
This very informative podcast interview suggest that it could,
both in web browsers, as well as on web servers running on NodeJS.

WebAssembly Future with Steve Klabnik - Software Engineering Daily

WebAssembly Engineering with Ben Smith and Thomas Nattestad - Software Engineering Daily


WebAssembly (wasm) is getting ready for its prime time
since all major browsers now have support for it.

Essentially, wasm provides universal "virtual machine"
with small subset of JavaScript commands, that can be provided either as a binary "bytecode" or as a script.
The performance is close to code compiled directly to machine language (i.e. factor of 2).

The security model is same as for JavaScript, meaning as good as it gets for web.
For web browsers that don't natively support wasm, there are "shims" that interpret commands in standard JavaScript, obviously with performance penalty, (i.e. factor of 5).
Wasm is already fast enough even for many action games, that used to be possible only with native apps. And since wasm apps are pure web apps, the distribution is quite optimal.

Except for C and C++ programs (usually games), it is in theory possible to convert programs in any strongly typed  language to wasm, and there are already good examples.

A typical use-case for using languages as Go and C# in web browser
is re-using server based business logic in client side web apps and even SPAs (single page web apps)

Google is actively working on making GoLang run with wasm, and
Microsoft is working on making .NET work on wasm also.
But those two approaches are quite different, and it is interesting to compare.

Latest GoLang compiler (SDK) has option to produce wasm as an "target CPU architecture" with JavaScript as an "OS", all in one step. The resulting code has not dependencies,
but it is relatively large, since not all optimizations are implemented yet.

.NET Blazor project has quite different approach. It takes Mono (.NET) VM compiled in native output (C/C++ like) and converts that to wasm using typical C/C++ toolset (LLVM).
That is obviously relatively large, but it does not change over type. Then, any standard .NET DLL that does not try to directly access OS or HW can run on top of that VM (.NET) on VM (wasm) or VM (JavaScript) setup. The effort now is to enhance integration with web browser (DOM, JS).

Both solutions are "work in progress" and it is too early for conclusions.
Here are a few more details...

For running GoLang in web browsers, there was  already a tool GopherJS for converting Go source code to JavaScript. That does not require or use wasm, and runs Go based code in web browser.
GitHub - gopherjs/gopherjs: A compiler from Go to JavaScript for running Go code in a browser
GopherJS Playground


GopherJS vs WebAssembly for Go - DEV Community 

"The latest Go version 1.11 supports WebAssembly port by Richard Musiol, the same author of GopherJS. Now Go 1.11 is on the way releasing, but you can test WebAssembly APIs with the latest Go by compiling yourself. Your compiled program for WebAssembly is available both on browsers and Node.js. You can use full features of Go including goroutines. You can call any JavaScript functions from Go, and you can pass Go function as a JavaScript callback. The API is defined at syscall/js package. The environment variables for WebAssembly are GOOS=js and GOARCH=wasm"
WebAssembly excursion with Go – Boris Djurdjevic – Medium

BxJS - Compiling Golang to WebAssembly - YouTube


Welcome to the Blazor preview docs website!

GitHub - aspnet/Blazor: Blazor is an experimental .NET web framework using C#/Razor and HTML that runs in the browser with WebAssembly

Online Demo:
https://blazor-demo.github.io


AWS IOT Device Defender Service

IoT Security | IoT Device Security Management | AWS IoT Device Defender

"AWS IoT Device Defender is a fully managed service that helps you secure your fleet of IoT devices. AWS IoT Device Defender continuously audits your IoT configurations to make sure that they aren’t deviating from security best practices. A configuration is a set of technical controls you set to help keep information secure when devices are communicating with each other and the cloud. AWS IoT Device Defender makes it easy to maintain and enforce IoT configurations, such as ensuring device identity, authenticating and authorizing devices, and encrypting device data. AWS IoT Device Defender continuously audits the IoT configurations on your devices against a set of predefined security best practices. AWS IoT Device Defender sends an alert if there are any gaps in your IoT configuration that might create a security risk, such as identity certificates being shared across multiple devices or a device with a revoked identity certificate trying to connect to AWS IoT Core."
Keeping Connected Device Secure - YouTube

vs.

Azure Internet of Things (IoT) Security | Microsoft

Secure your Internet of Things deployment | Microsoft Docs

Saturday, August 18, 2018

A Cloud Guru: cloud training

A Cloud Guru - Cloud computing certification training for the Amazon Cloud

$249/year or $ 29/month

Free AWS Certification Exam Prep Guide
A Cloud Guru - A Cloud Guru link from: The Cloudcast


classes also available on Udemy
AWS Certified Solutions Architect - Associate 2018 | Udemy


Music Notation in Blazor (.NET + Web Assembly)

Interesting solution, a real hard challenge,
and CodeProject is still alive! Everything is not (yet) on GitHub :)

Music Notation in Blazor - Part I - CodeProject



Music Notation in Blazor - Part 2 - CodeProject

link from: .NET Rocks! vNext

official web site:
Manufaktura Controls - music engraving libraries for .NET

The code is Git, but not in GitHub
Ajcek / ManufakturaLibraries — Bitbucket





Chrome App: Video Speed Controller



Video Speed Controller - Chrome Web Store

"Speed up, slow down, advance and rewind any HTML5 video with quick shortcuts.HTML5 video provides native APIs to accelerate playback of any video, but most implemented players either hide or limit this functionality. This extension fixes that, plus more... "

hint from:
Take Training - Online Courses - AWS Certification Exam Prep Guide - A Cloud Guru


Friday, August 17, 2018

IoT languages: MicroPython, emGo

Standard programming languages, including complete C and C++ are often too large for micro-controllers. But programming in macro assembly language is slow.

free book:
Programming with MicroPython: Open Source Conference | O’Reilly OSCON
"MicroPython, the re-implementation of Python 3 for microcontrollers and embedded systems."

MicroPython on four typical devices: PyBoard, the micro:bit, Adafruit's Circuit Playground Express, and ESP8266/ESP32 boards
MicroPython - Python for microcontrollers

MicroPython on Unicorn

pyboard v1.1

ziutek/emgo: Emgo: Bare metal Go (language for programming embedded systems)

Wednesday, August 15, 2018

Chromebook + Linux Apps

How to install Linux apps on your Chromebook | Android Central
"Chromebooks are great because they're simple: there's a lot you can get done with web services without exposing yourself to the troubles and security issues that plague more complex platforms.
...
To be clear, you've been able to install Linux apps on Chromebooks for years because Chrome OS is Linux. But, it's about to get much easier."


"Walmart's selling the gold-colored Acer Chromebook 14 (CB3-431) with 4GB RAM, an Intel Celeron procressor, and 32GB of storage for $220."

goldchromebook14

Tesla mega-projector car


Tesla: Creating a Better Car | Racing Extinction - YouTube



LumiLor® Electroluminescent Paint - Light Emitting Coating (LEC)

illUmiNations: Protecting our Planet - YouTube

15000 luimen video projector - Google Search


movie: Racing Extinction



AWS SDKs, libs & samples

GitHub - donnemartin/awesome-aws: A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.

πŸ”₯πŸ”₯πŸ”₯πŸ”₯πŸ”₯

Sunday, August 12, 2018

Blockchain in 5 Levels of Difficulty

Blockchain Expert Explains One Concept in 5 Levels of Difficulty | WIRED - YouTube

WebAssembly podcasts, repos, .NET Blazor, GoLang wasm





Here are links to some very interesting and informative interviews and GitHub repos with WebAssembly

Besides running compiled games in web browser, WebAssembly can be useful for "classic" web apps for re-using business logic and data validation code between web client-side apps and server side, in particular with web SPA (Single Page Apps) and micro-services APIs. 

Some developers may want to avoid JavaScript all together even on client side by using same programming language used on web server.

By all major web browsers now supporting WebAssembly, and available fall-back polyfills to JavaScript. WebAssembly can now run in all web browsers with reasonable performance. 
 
WebAssembly with Brendan Eich - Software Engineering Daily
"Brendan Eich created the first version of JavaScript in 10 days. Since then JavaScript has evolved, and Brendan has watched the growth of the web give rise to new and unexpected use cases.

Today Brendan Eich is still pushing the web forward across the technology stack with his involvement in the WebAssembly specification and the Brave browser."


"Lin Clark is an engineer on the Mozilla Developer Relations team, and has been working closely on the WebAssembly project. She is the author of a detailed series of illustrated blog posts that explain how WebAssembly works."






C# => WebAssembly

Blazor is a tool that runs .NET in web browser by converting to WebAssembly


"The Blazor project aims to bring .NET to the open Web using Web Assembly. Scott talks to Steve Sanderson about this experiment and it's future plans. How are they compiling C# and .NET to Web Assembly in a way that works everywhere? How does Mono and .NET Standard fit in?
https://blazor.net/"












GoLang => WebAssembly









C => WebAssembly





Azure Regions Map

This map details the spread of Azure data centers across the world | Windows Central

OpenStreetMap

OpenStreetMap

"OpenStreetMap is a map of the world, created by people like you and free to use under an open license.

OpenStreetMap is open data: you are free to use it for any purpose as long as you credit OpenStreetMap and its contributors. If you alter or build upon the data in certain ways, you may distribute the result only under the same licence."


used by Weather.com among others...


Saturday, August 11, 2018

GitHub Learning Lab


1973?s=140&v=4

free training classes

GitHub Learning Lab · GitHub Marketplace · GitHub

New courses on GitHub Learning Lab | The GitHub Blog

GitHub Learning Lab

GitHub Expands Its Learning Offerings @ InfoQ


Google Cloud Platform: IoT Edge + TPU

Google Cloud Platform Release Edge TPU and Cloud IoT Edge @ InfoQ

"Google announced it would bring two new products to their cloud platform to aid customers in developing and deploying devices close of end-users at the 'edge' of their networks. These products are the Edge TPU, a new hardware chip, and Cloud IoT Edge, an expansion of the Google Cloud AI capability for gateways as well as connected devices."

Quantum Computing in 5 Levels of Difficulty

Quantum Computing Expert Explains One Concept in 5 Levels of Difficulty | WIRED - YouTube

Friday, August 10, 2018

WebSockets & WebHooks: GoLang, ASP.NET Core, Node.js

WebSockets
Here are some useful links about WebSockets and WebHooks, for .NET, GoLang, JS

Moving Data over the Web: AJAX vs. WebSockets vs. Webhooks

"HTML5 WebSockets allow your client-side JavaScript to open and persist a connection to a server. With WebSockets, data is exchanged as messages, which can happen very quickly due to the persistent connection.
...
powerful aspect of WebSockets is a capability called full duplex, which is a fancy way of saying that both the Client and Server can send each other messages
...

A Webhook is really just a URL that accepts a HTTP POST (or GET, PUT, DELETE). One server/service will provide another with a callback URL that it should push data to when it has some data to send. Any old web server can be used really."


WebSockets - Web APIs | MDN

Writing WebSocket client applications - Web APIs | MDN




WebSocket - Wikipedia


"WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011, and the WebSocket API in Web IDL is being standardized by the W3C."
Webhook - Wikipedia

"A webhook in web development is a method of augmenting or altering the behaviour of a web page, or web application, with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application."



gorilla/websocket: A WebSocket implementation for Go.

"Mail polling involves about 50,000 HTTP queries per second, 60% of which return the 304 status, meaning there are no changes in the mailbox."


WebSockets support in ASP.NET Core | Microsoft Docs

aspnet/WebSockets: Implementation of the WebSocket protocol, along with client and server integration components. @ GitHub


aspnet/WebHooks: Libraries to create and consume web hooks on ASP.NET Core

"Note: This repo is solely for the ASP.NET Core WebHooks projects (libraries to consume WebHooks on ASP.NET Core 2.0 and .NET Standard 2.0). For ASP.NET WebHooks (targeting .NET Framework 4.5), see the aspnet/AspNetWebHooks repo."

Sending WebHooks with ASP.NET WebHooks Preview | ASP.NET Blog


socketio/socket.io: Realtime application framework (Node.JS server)


How many system resources will be held for keeping 1,000,000 websocket open? - Stack Overflow

How do push notifications work? What is the basic concept behind them? - Quora

Push technology - Wikipedia

Adding Push Notifications to a Web App  |  Web Fundamentals  |  Google Developers

How does push notification technology work on Android? - Stack Overflow

600k concurrent websocket connections on AWS using Node.js - Jayway


Messaging in Distributed Systems - What's the Deal? - The Static Void Podcast

About Chromebooks

About Chromebooks – Chromebooks, Chrome OS and Chrome tablet news, how tos, views and reviews

If you want a laptop you can count on. You Chromebook. [Extended] - YouTube



Reader question: Does the Pixelbook use eMMC or SSD storage? (Answer: It depends) – About Chromebooks

Wednesday, August 08, 2018

ASP.NET Blazor Hands-On Lab (.NET + WebAssembly)



"Blazor is an experimental project and is not ready for production. It is not even released as an alpha. Significant changes to APIs and design are likely to occur and there is no official word on any timeframes or if the project will be seen through to completion."

dotnet new -i Microsoft.AspNetCore.Blazor.Templates
Official ASP.NET Blazor Repository

Wednesday, August 01, 2018

Ansible: automation tool


Ansible logo.svg

Ansible is Simple IT Automation

"Red Hat® Ansible® Tower makes it easy to scale automation, manage complex deployments and speed productivity. Extend the power of Ansible with workflows to streamline jobs and simple tools to share solutions with your team."
How Ansible Works | Ansible.com

Getting Started with Ansible | Ansible.com


Ansible (software) - Wikipedia

"Ansible is an open source software that automates software provisioning, configuration management, and application deployment.[2]. Ansible connects via SSH, remote PowerShell or via other remote APIs."


Written in Python, PowerShell