Monday, April 30, 2018

SafeGraph "DaaS": Data as a Service


podcast interview:
SafeGraph with Auren Hoffman | Software Engineering Daily

"ML.... all of the tooling and education in the world doesn’t change the fact that you still need data to build models. This illustrates why we need data-as-a-service."


"SafeGraph is unlocking the world's most powerful data
so that machines and humans can answer society's toughest questions."


SafeGraph Movement Panel

Sunday, April 29, 2018

Azure Service Bus + .NET Standard SDK

Excellent summary of Azure messaging options,
and a new integration library based on .NET standard, for both .NET 4 and .NET Core

Azure Service Bus and the .NET Standard SDK | On .NET | Channel 9



AMQP: supported by Service Bus and Event Hub

Azure Service Bus Messaging Overview | Subscribe! | Channel 9

Azure/azure-service-bus: ☁️ Azure Service Bus service issue tracking and samples @ GitHub

Microsoft Azure Service Bus

Azure messaging services comparison | Microsoft Docs

ServicePurposeTypeWhen to use
Event GridReactive programmingEvent distribution (discrete)React to status changes
Event HubsBig data pipelineEvent streaming (series)Telemetry and distributed data streaming
Service BusHigh-value enterprise messagingMessageOrder processing and financial transactions

Stream data overview

Azure Event Grid and Event Hubs integration | Microsoft Docs

"Azure Event Grid is an intelligent event routing service that enables you to react to notifications from apps and services. The Event Hubs Capture and Event Grid sample shows how to use Azure Event Hubs Capture with Azure Event Grid to seamlessly migrate data from an event hub to a SQL Data Warehouse."

Lottie Animations

Useful for mobile and web apps...

LottieFiles - Free Lottie animation files for your apps

"All the files available in LottieFiles are distributed under Creative Commons (CC) Attribution (BY) unless stated otherwise."

airbnb/lottie-web: Render After Effects animations natively on Web, Android and iOS, and React Native. http://airbnb.io/lottie/  @ GitHub

"Lottie is a mobile library for Web, and iOS that parses Adobe After Effects animations exported as json with Bodymovin and renders them natively on mobile!"

Lottie by AirBnb design

"Lottie is an iOS, Android, and React Native library that renders After Effects animations in real time, allowing apps to use animations as easily as they use static images."

Introduction · Lottie


Lottie – Airbnb Design

Three animated icons, a location pin, an arrow, and a heart.

Three mobile screenshots with animations playing.


Saturday, April 28, 2018

Ooui.Wasm: Xamarin .NET in web browser

Another experiment of running .NET code in web browser,
by leveraging Mono runtime cross-compiled for Web Assembly (Wasm).
It is a generic tool with a clever architecture, example of open web innovation.
Just because it could be done.

Building UI on the Web using Ooui with Frank Krueger @ .NET Rocks! vNext

"Write interactive web apps in C# and F#"

Xamarin.Forms XAML Editor - Ooui Samples
ooui.mecha.parts/ooui.js

XAML Editor in the Browser 

Xamarin Forms on the Web 


WebAssembly 
Progressive Web Apps


WebAssembly support lands in Go language: golang wasm/js
"Support for Golang on the Wasm platform will be added in a series of commits to the golang base. The first in the series landed on March 31st 2018, and aims to add WebAssembly as an architecture target to the Go programming language."


NATS: cloud-native messaging system


Nats.io

NATS - Open Source Messaging System | Secure, Native Cloud Application Development

"NATS Server is a simple, high performance open source messaging system for cloud native applications, IoT messaging, and microservices architectures.

We are a Cloud Native Computing Foundation member project. Members of the Synadia team created the NATS Server (written in Go), NATS Streaming, and clients written in Python, Ruby, Node.js, Elixir, Java, NGINX, C, and C#."



podcast interview:

"A message broker is an architectural component that sends messages between different nodes in a distributed system...
Derek Collison has worked on messaging infrastructure for 25 years. He started at TIBCO, then spent time at Google and VMWare. When he was at VMWare, he architected the open source platform Cloud Foundry. While working on Cloud Foundry, Derek developed NATS, a messaging control plane."



"A High Performance NATS Server written in Go and hosted by the Cloud Native Computing Foundation (CNCF)."

Friday, April 27, 2018

rook.io: Cloud-Native Object Storage



Public cloud storage solutions are custom / proprietary. Similar, but each one is different. 
AWS S3, Azure Storage Blobs, Google Cloud Storage, OpenStack Swift ...

A new tools that attempts to add storage to Kubernetes:
"File, Block, and Object Storage Services for your Cloud-Native Environments"
logo
In GoLang, as it to be expected :)

"Rook is an open source orchestrator for distributed storage systems running in cloud native environments. Rook is currently in alpha state and has focused initially on orchestrating Ceph on-top of Kubernetes. Ceph is a distributed storage system that provides file, block and object storage and is deployed in large scale production clusters."






1.1.1.1: fastest, privacy-first DNS by CloudFlare

CloudFlare is most often associated with CDN and DDoS protection services it provides. 
Now they provide public DNS also, that could be configured in computers and mobile devices 
instead of default DNS provided by internet providers. 

Announcing 1.1.1.1: the fastest, privacy-first consumer DNS service

"DNS's Privacy Problem
...What many Internet users don't realize is that even if you're visiting a website that is encrypted — has the little green lock in your browser — that doesn't keep your DNS resolver from knowing the identity of all the sites you visit. That means, by default, your ISP, every wifi network you've connected to, and your mobile network provider have a list of every site you've visited while using them."

CloudFlare's 1.1.1.1 outperformed any of the other consumer DNS services available (including Google's 8.8.8.8). 

14.8ms : 1.1.1.1
20.6ms : Cisco OpenDNS
34.7ms: Google Public DNS (8.8.8.8)
68.23ms: Average ISP



Thursday, April 26, 2018

Wednesday, April 25, 2018

Tuesday, April 24, 2018

CockroachDB: cloud-native SQL database, open source


CockroachDB


Cockroach Labs - Wikipedia

"CockroachDB, has been compared to Google's Spanner database.[2] CockroachDB is an open-sourced software project that is designed to store copies of data in multiple locations in order to deliver requested data when needed.[3][4] It is described as a scalable, consistently-replicated, transactional datastore.[5]


"CockroachDB, an open-source database built using a Google whitepaper on Spanner"



CockroachDB @ GitHub


vs PostgreSQL vs MongoDB



Monday, April 23, 2018

Sunday, April 22, 2018

10 years of GitHub & Stack Overflow

"Open Source" and "Open Knowledge Sharing" era

Even Microsoft has many products and most of documentation hosted on GitHub...

Thank you for 10 years | The GitHub Blog

Thank you for 10 years of code


The Stack Overflow Age – Joel on Software
"Stack Overflow will be ten years old soon"



Friday, April 20, 2018

Microsoft IoT: 7 Properties of Highly Secure Devices



Introducing Microsoft Azure Sphere: Secure and power the intelligent edge | Blog | Microsoft Azure

The Seven Properties of Highly Secure Devices - Microsoft Research

Seven Properties of Highly Secure Devices (PDF)
  • Hardware-based Root of Trust
  • Small Trusted Computing Base
  • Defense in Depth
  • Compartmentalization
  • Certificate-based Authentication
  • Renewable Security
  • Failure Reporting
link from:


eBook: Cloud Application Architecture Guide


""
free ebook, 333 pages

Cloud Application Architecture Guide E-Book | Microsoft Azure

"Take a structured approach to designing your cloud applications. This cloud computing architecture e-book focuses on architecture, design, and implementation—considerations that apply no matter which cloud platform you choose."



Thursday, April 19, 2018

Metaparticle: cloud-native container apps on Kubernetes



A new research project from co-creator of K8S
to simplify deployment with containers.

Metaparticle - A standard library for cloud-native applications on Kubernetes | Azure Friday | Channel 9

Azure Friday | Metaparticle - A standard library for cloud-native applications on Kubernetes - YouTube


Metaparticle
"Metaparticle is a standard library for cloud native applications on Kubernetes. The goals of the Metaparticle project are to democratize the development of distributed systems. Metaparticle achieves this by providing simple, but powerful building blocks, built on top of containers and Kubernetes."


Rather than being external, container features become available as a program library (i.e. .NET attributes) to be referenced from the code and used at runtime.
[Metaparticle.Runtime.Config]
[Metaparticle.Package.Config(Repository = "docker.io/docker-user-goes-here/simple-web", Publish = false)]
public static void Main(string[] args) => Containerize(args, () => {
    WebHost.CreateDefaultBuilder(args)
   .UseStartup()
   .UseKestrel(options => { options.Listen(IPAddress.Any, port); })
   .Build()
   .Run();
});

Metaparticle.io @ GitHub


Wednesday, April 18, 2018

Multistreaming with restream.io; aspnet/Blazor

The service for multistreaming | Restream.io

How Restream.io is freeing live video content from YouTube and Twitch | VentureBeat


phillydotnet - Mixer

PhillyDotNet Live Stream - YouTube

phillydotnet - Twitch

Future of C# + First Look at Blazor | Philly.NET (Malvern, PA) | Meetup

Chris Gomez | First Look at Blazor - Philly Dot Net


Introduction :: Learn Blazor

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

GDPR & Clouds

GDPR rules apply to sites used by residents of  EU,  essentially the whole world.

The InfoQ eMag: Perspectives on GDPR

"...EU’s General Data Protection Regulation (GDPR) not only comes into effect, but actually produces a body of precedents on what exactly constitutes a violation subject to a fine (which, remember, can be as high as €20 million or 4% of annual global turnover, whichever is greater)..."



"The European Union’s General Data Protection Regulation (GDPR) protects European Union data subjects' fundamental right to privacy and the protection of personal data. It introduces robust requirements that will raise and harmonize standards for data protection, security, and compliance."








"On 25 May 2018, the most significant piece of European data protection legislation to be introduced in 20 years will come into force. The EU General Data Protection Regulation (GDPR)..."

Tuesday, April 17, 2018

IoT edge: Microsoft Azure Sphere: micro-controller + Linux + Cloud


Introducing Microsoft Azure Sphere: Secure and power the intelligent edge | Blog | Microsoft Azure
  • "Azure Sphere certified microcontrollers (MCUs):
  • Azure Sphere OS: This OS is purpose-built to offer unequalled security and agility. Unlike the RTOSes common to MCUs today, our defense-in-depth IoT OS offers multiple layers of security. It combines security innovations pioneered in Windows, a security monitor, and a custom Linux kernel to create a highly-secured software environment and a trustworthy platform for new IoT experiences.
  • Azure Sphere Security Service: (Cloud)"

Linux Is Microsoft's OS of Choice for Internet of Things Devices | Digital Trends

"Microsoft introduced Azure Sphere during the RSA security conference in San Francisco. It’s essentially a platform connecting microcontroller units (MCU) within Internet of Thing devices to the cloud. What’s notable about this announcement is that the operating system installed on the MCUs aren’t based on Windows 10 as you would expect, but rather a custom build of the open-source Linux operating system. That’s a first for Microsoft."

"It’s a “crossover” chip that combines the benefits of ARM-based Cortex-A and Cortex-M processor cores."


"...there’s a key reason why Microsoft likely went with Linux instead of its in-house baked Windows 10: Open source. According to Microsoft, Azure Sphere is “open to additional software innovation” by the open source community. It’s also open to work with any cloud, not just Microsoft’s Azure-branded platform. Even more, the chip design can be used by any manufacturer absolutely free."

d3.js v5.0

D3 Announces 5.0 Release of SVG, Canvas, and HTML Library for Manipulating Data @ InfoQ

"With the adoption of promises, D3 now uses the Fetch API instead of XMLHttpRequest: the d3-request module has been replaced by d3-fetch. Fetch supports many powerful new features, such as streaming responses."

Monday, April 16, 2018

Jupyter Hub + Kubernetes



interesting discussion about combining ML/DS tools with containers orchestration tools + many useful links

Project Jupyter with Jessica Forde, Yuvi Panda and Chris Holdgraf | Google Cloud Platform Podcast

AWS S3 Select: cloud storage with SQL filtering

S3 Select and Glacier Select – Retrieving Subsets of Objects | AWS News Blog

"With S3... individual objects can be as large as 5 terabytes. Data in object storage have traditionally been accessed as a whole entities, meaning when you ask for a 5 gigabyte object you get all 5 gigabytes. It’s the nature of object storage. Today we’re challenging that paradigm by announcing two new capabilities for S3 and Glacier that allow you to use simple SQL expressions to pull out only the bytes you need from those objects. This fundamentally enhances virtually every application that accesses objects in S3 or Glacier."
...
"As an (Python) example, let’s imagine you’re a developer at a large retailer and you need to analyze the weekly sales data from a single store, but the data for all 200 stores is saved in a new GZIP-ed CSV every day. Without S3 Select, you would need to download, decompress and process the entire CSV to get the data you needed. With S3 Select, you can use a simple SQL expression to return only the data from the store you’re interested in, instead of retrieving the entire object."

import boto3 s3 = boto3.client('s3') r = s3.select_object_content( Bucket='jbarr-us-west-2', Key='sample-data/airportCodes.csv', ExpressionType='SQL', Expression="select * from s3object s where s.\"Country (Name)\" like '%United States%'", InputSerialization = {'CSV': {"FileHeaderInfo": "Use"}}, OutputSerialization = {'CSV': {}}, )
...

Sunday, April 15, 2018

Azure IoT Edge vs AWS Greengrass


"Azure IoT Edge is designed to run on multiple platforms (Windows and many versions of Linux), and hardware architectures (x64 and ARM). To deploy workloads, Azure IoT Edge can use Linux Containers for Docker or Windows Containers for Docker, with an open design to incorporate number of popular container management systems."

Azure IoT Hub Documentation - Tutorials, API Reference | Microsoft Docs


Azure IoT Edge - Tutorials, API Reference | Microsoft Docs

"Azure IoT Edge is an Internet of Things (IoT) service that builds on top of IoT Hub. This service is meant for customers who want to analyze data on devices, a.k.a. "at the edge", instead of in the cloud. By moving parts of your workload to the edge, your devices can spend less time sending messages to the cloud and react more quickly to changes in status."


"Azure IoT Edge lets you deploy and manage business logic on the edge in the form of modules. Azure IoT Edge modules are the smallest unit of computation managed by IoT Edge, and can contain Azure services (such as Azure Stream Analytics) or your own solution-specific code. To understand how modules are developed, deployed, and maintained, it helps to think of four conceptual pieces that make up a module:
  • A module image is a package containing the software that defines a module.
  • A module instance is the specific unit of computation running the module image on an IoT Edge device. The module instance is started by the IoT Edge runtime.
  • A module identity is a piece of information (including security credentials) stored in IoT Hub, that is associated to each module instance.
  • A module twin is a JSON document stored in IoT Hub, that contains state information for a module instance, including metadata, configurations, and conditions."
Understand the Azure IoT Edge runtime | Microsoft Docs
  • "Edge Hub facilitates module to module communication. Using Edge Hub as a message broker keeps modules independent from each other.
  • The IoT Edge agent is the other module that makes up the Azure IoT Edge runtime. It is responsible for instantiating modules, ensuring that they continue to run, and reporting the status of the modules back to IoT Hub."
IoT Edge runtime communicates insights and module health to IoT Hub


Amazon's equivalent IoT solution:


"Local compute, messaging, data caching, sync, and ML inference capabilities for connected devices.
Run IoT applications seamlessly across the AWS cloud and local devices using AWS Lambda and AWS IoT Core."

AWS Greengrass documentation





Azure Interactive Guides

Interactive Azure Platform Overview + PPTX
by Ricardo Niepel (@RicardoNiepel) | Twitter

Azure Interactives

Azure101 Azure101 Azure101

Saturday, April 14, 2018

Azure Resource Explorer: cloud API management tool


Azure Resource Explorer: a new tool to discover the Azure API | Blog | Microsoft Azure

Azure Resource Explorer is a new web site where you can easily:

  • Discover the Azure Resource Management APIs
  • Get API documentation
  • Make actual API calls directly in your own subscriptions
Azure Resource Explorer


Introducing Azure Resource Explorer for the Azure Resource Management APIs - Scott Hanselman
"To be clear, this is NOT a new Portal, and it IS very low level. This is a tool for folks who want to know what's really going on when an Azure API is called."
https://resources.azure.com/

GitHub - projectkudu/AzureResourceExplorer: Azure Resource Explorer - a site to explore and manage your ARM resources in style

1.1.1.1: privacy-first DNS service from CloudFlare

Announcing 1.1.1.1: the fastest, privacy-first consumer DNS service

"Cloudflare's mission is to help build a better Internet. We're excited today to take another step toward that mission with the launch of 1.1.1.1 — the Internet's fastest, privacy-first consumer DNS service. This post will talk a little about what that is and a lot about why we decided to do it. 
...
The problem is that these DNS services are often slow and not privacy respecting. What many Internet users don't realize is that even if you're visiting a website that is encrypted that doesn't keep your DNS resolver from knowing the identity of all the sites you visit. That means, by default, your ISP, every wifi network you've connected to, and your mobile network provider have a list of every site you've visited while using them."

Friday, April 13, 2018

WebSockets with ASP.NET Core

Example of using WebSockets with ASP.NET Core

WebSockets support in ASP.NET Core | Microsoft Docs
"This article explains how to get started with WebSockets in ASP.NET Core. WebSocket (RFC 6455) is a protocol that enables two-way persistent communication channels over TCP connections. It's used in apps that benefit from fast, real-time communication, such as chat, dashboard, and game apps."

Docs/aspnetcore/fundamentals/websockets/sample at master · aspnet/Docs · GitHub
Docs/Startup.cs at master · aspnet/Docs · GitHub

NuGet Gallery | Microsoft.AspNetCore.WebSockets 2.0.2

Initial state of web page


With Classic ASP.NET & IIS 8  (Win 2012 or Win 8 and newer OS required)

The simple WebSocket application in ASP.NET in C# for Visual Studio 2013

Hands On Lab: Real-Time Web Applications with SignalR | Microsoft Docs


Writing a WebSocket server in C# - Web APIs | MDN


WebSockets - Web APIs | MDN
"WebSockets are an advanced technology that makes it possible to open an interactive communication session between the user's browser and a server. With this API, you can send messages to a server and receive event-driven responses without having to poll the server for a reply."

Alternative to WebSockets are "SSE", Server-Sent events ("server push" only, not bi-directional)

Server-sent events - Web APIs | MDN

EventSource - Web APIs | MDN