Wednesday, November 30, 2016

Azure Portal Performance

To speed up Azure Portal GUI, just disable animations

SQUONS: Speed up Azure Portal Performance
"In new portal, go to setting under Animations section select Disable and click Apply button."

Tuesday, November 29, 2016

AWS re:Invent

AWS re:Invent 2016 | New Products & Services

AWS Monthly Webinar Series - Cloud Computing Education

AWS re:Invent 2016 | Amazon Web Services

"the largest gathering of the global Amazon Web Services community"
AWS re:Invent 2016 Live Stream

Andy Jassy: Amazon's $6 Billion Man - Page: 1 | CRN

AWS announced optional GPU and FPGA for all VMs!

AWS Athena
A new "data analytics" service announced by Amazon AWS re:Invent conference

Amazon Machine Learning

Amazon "Recognition": image recognition service

Amazon "Polly": text to speech service

Amazon "Lex": natural language understanding (from Alexa)

AWS "Step Function": visual state machine workflows on top of Lambda Functions

Amazon launches Amazon AI to bring its machine learning smarts to developers | TechCrunch

In the Works – VMware Cloud on AWS | AWS Blog

AWS "Snowball Edge" 100 TB appliance with

AWS "Snowmobile" container & truck, 100 PB of data

Here’s everything AWS will announce today | TechCrunch

AWS cheat sheet: Here are the key re:Invent announcements to know about today - GeekWire

AWS announces FPGA instances for its EC2 cloud computing service | TechCrunch

AWS goes after Oracle with new PostgresSQL support in Aurora | TechCrunch

AWS Snowmobile – Move Exabytes of Data to the Cloud in Weeks | AWS Blog

Amazon reveals AWS Snowmobile, a 45-foot semi-trailer that moves exabytes of data to the cloud - GeekWire

comparing cloud providers: AWS, Azure, GCP

How to Compare AWS vs Azure vs Google vs SoftLayer

Cloud Comparison | RightScale

"FREE USAGE TIER: New Customers get free usage tier for first 12 months"
Try, experiment, and learn—for free. Plus, get $25 in Azure credit every month for one year.

So technically can run a VM for free for a year, both on AWS and Azure!

Git-it Guide

Git-it Guide

"Step-by-step instructions for each of the challenges in the Git-it workshop.

This guide comes with Git-it when you install it so it works offline and you can use it as a resource at anytime (see the instructions when you select a challenge in terminal)"

some solutions for problems with Git

Monday, November 28, 2016

Azure SDKs for .NET, Java, Node.js

All Azure services have REST APIs. Most of management can be done from web Portal,
PowerShell and Azure CLI. For efficient automation there are also SDKs.

Getting Started with Azure Management Libraries for Java | Blog | Microsoft Azure

Azure Podcast: Episode 154 - Simpler Management Libraries

Saturday, November 26, 2016

AI: Google Translate "interlingua" language

Scary AI: the translation machine is becoming a blackbox by self-learning.

Google Research Blog: Zero-Shot Translation with Google’s Multilingual Neural Machine Translation System
"... the network must be encoding something about the semantics of the sentence rather than simply memorizing phrase-to-phrase translations. We interpret this as a sign of existence of an interlingua in the network..."

Google Research Blog: A Neural Network for Machine Translation, at Production Scale

Google Translate's AI has created its own 'artificial language' known as interlingua | WIREDUK

An Infusion of AI Makes Google Translate More Powerful Than Ever | WIRED

Google's AI can translate language pairs it has never seen

Next HAL 9000 ?

Google’s AI can now lip read better than humans after watching thousands of hours of TV - The Verge

Google DeepMind could invent the next generation of AI by playing Starcraft 2 | Ars Technica

cloud business: AWS += Motorola Solutions

How Amazon stole Motorola from Microsoft - Business Insider
"Motorola Solutions ... employs around 14,000 and generated $5.8 billion in revenue over the last four quarters... As part of its move and cost cutting, Motorola is unplugging its data centers and going all-in in the cloud.
Within 6 to 7 months ... moved more than 200,000 (!?) servers, and 150 applications, and had more than $2 million in computer yearly spend moved over to AWS.
Azure had a crucial government security certification known as Criminal Justice Information Services (CJIS) and Amazon didn't... In a few months AWS were certified... so Motorola opted for AWS. 
There is one big downside to choosing Amazon: it's harder to keep track of costs.... AWS pricing model is very complicated, that is a drawback... Motorola hired a cloud consultant, 2nd Watch, to help it move to AWS, size everything properly, train the IT staff and set up its own internal systems for watching usage
Disclosure: Jeff Bezos is an investor in Business Insider through his personal investment company Bezos Expeditions."

Apparently AWS has very efficient core business (VM hosting), and many other services are added by ecosystem of third party partners, in similar way Microsoft does in enterprise. Even some other cloud providers are moving to focus on services. Is it "winner(s) take all" market?

Rackspace Launches Enhanced Version of Compass for Fanatical Support for AWS Customers
"Compass delivers valuable insights into AWS spending trends over time, opportunities to rightsize underutilized resources, comprehensive Reserved Instance (RI) purchase recommendations"
"Rackspace filed the final bits of paperwork and closed our transaction to become a private company,"

"Amazon Web Services (AWS) pricing on basic services declined 10% to 20% annually since 2014
So price cuts are stabilizing while the big three cloud vendors keep reducing costs from their infrastructure. That means that profit margins for the cloud providers should improve, which is good news for investors. And, the report’s authors conclude that the total market for public cloud is so huge and that cloud adoption rates are still so low, that there is room for all of the big cloud providers to grow—and profit—going forward."

Friday, November 25, 2016

book: The Myths of Happiness by Sonja Lyubomirsky

The Myths of Happiness by Sonja Lyubomirsky | PhilosophersNotes - OPTIMIZE with Brian Johnson
"Sonja Lyubomirsky is one of the world’s leading positive psychology researchers. Her award-winning and very well-funded research is on “the possibility of permanently increasing happiness."

“Nearly all of us buy into what I call the myths of happiness—beliefs that certain adult achievements (marriage, kids, jobs, wealth) will make us forever happy and that certain adult failures or adversities (health problems, not having a life partner, having little money) will make us forever unhappy. This reductive understanding of happiness is culturally reinforced and continues to endure, despite overwhelming evidence that our well-being does not operate according to such black-and-white principles ...

Hedonic adaptation:
We get used to good (and bad) in our lives very quickly.
"human beings have the remarkable capacity to grow habituated or inured to most life changes
we are prone to take for granted pretty much everything positive that happens to us"

  • Appreciationsee the best in others 
  • Active-Constructiverespond "with interest and delight"Don’t point out all the things that could go wrong (active-destructive)
"The most robust strategy to boost optimism is keeping a journal regularly for ten to twenty minutes per day, in which we write down our hopes and dreams for the future"
  • circadian rhythms: daily cycles  
  • ultradian rhythm: 90 to 120 minute cycles: 
    • first hour and half: high energy vigorous and focused
    • then a 20 minute "dip": fatigue, lethargy, and difficulty concentrating  
our energy oscillates: we’re focused and on. Then we need to relax and turn off (for 15-20 minutes)  

Money does not make you happy:
A mountain of research has shown that materialism
depletes happiness, threatens satisfaction with our relationships...
As philosophers, religious figures, and humanistic psychologists have long contended,
the pursuit of money and reputation redirects our energies and passions away
from deeper and more meaningful social connections and growth experiences
and prevent us from achieving our full potentials

  • First, don’t spend money on “stuff”—you’ll hedonically adapt to that.
    Rather, spend money on experiences, developing ourselves, connections.
  • Spend money on others not yourself. (that will make you more happy, research shows)
  • Spend money to give you time.  
  • Spend money now but wait to enjoy it ("anticipation" makes you happy)
The key to happiness and health is not how intensely happy we feel,
but how
often we feel positive or happy. 

One of the surest ways to focus on the future without dwelling on a seemingly idyllic past is
by working toward significant life goals
 ‘There is no happiness without action’; there is no
happiness without goal pursuit...  choose goals wisely
  • Goals must be intrinsically (internally) rather than extrinsically (externally) motivated. 
  • Goals  must satisfy innate human needs (such as the need to be an expert at something, to connect with others, and to contribute to our communities, rather than simply desiring to be rich, powerful, beautiful, or famous) 
  • Goals must be aligned with our own authentic values;
    they must be reachable and flexible; and, ideally, they should
    focus on attaining something rather than evading or running away from something. 
  • The pursuit of all of these types of goals has been found to be associated
    with greater happiness, fulfillment, and perseverance.

  • Although we can (and should) reach for our loftiest dreams,
    we need only to begin by breaking the goals down into sub-goals and daily aims.
“the entire ‘follow your dreams’ oeuvre places a heavy emphasis on goals achievement rather than goal pursuit... is wrong, since we hedonically adapt to new state quickly.

Pursuit of worthy goals makes you happy!

“There are many ways to find meaning and purpose. 
One is to establish a metric by which our life will be judged and, from today,
to resolve to live each day in such a way that our life will be graded a success.”
- Sonja Lyubomirsky  

Another book from the same author: 

“He who is not contented with what he has,
would not be co
ntented with what he would like to have.”
- Socrates

Sonja Lyubomirsky Professor, University of California, Riverside
Ph.D. Stanford University, 1994

  • 50%: genes
  • 10%: life circumstances
  • 40%: our activity (that we CAN control!)
Happy people are good in:
  • relationships
  • grateful
  • optimistic about future
  • live in present
  • physical activity habits
  • spiritual or religious
  • deeply committed to life goals

"Lyubomirsky" means "love and peace" in Russian. 

IPython Notebooks, Protocol & Language Kernels

A gallery of interesting IPython Notebooks · ipython/ipython Wiki · GitHub

Jupyter and the future of IPython — IPython

Jupyter Notebook Viewer

How IPython works — IPython 3.2.1 documentation

Messaging in IPython — IPython 3.2.1 documentation

"ZeroMQ defines a number of socket types in order to support very distributed and fault tolerant applications, the ones we are interested in are as follows:

  • REP: The only thing this socket does is receive requests and then reply to them.
  • REQ: This socket is the opposite of REP - it sends requests and reads replies to them.
  • PUB: This socket broadcasts (publishes) information to anyone who is listening.
  • SUB: This socket subscribes to a PUB socket and listens to all its broadcasts.
  • ROUTER: This socket can be used as a multi-user REP socket. It can receive requests from many other sockets and reply to all of them. ROUTER sockets store the identity of the source of the message before sending the message to the application, and the application receives messages from all origins. When replying to a message, the ROUTER socket will send the reply to the origin of the request.
  • DEALER: This socket allows round-robin communication between sets of sockets. If a message is sent to a DEALER, the DEALER will send to all connected peers. This allows sets of sockets to communicate without explicit knowledge of all the sockets in the set."

Wednesday, November 23, 2016

"Interactive computing": nteract, notebooks (iPython / Jupyther)

Interactive Computing Experiences with nteract and Safia Abdalla on the Hanselminutes Technology Podcast: Fresh Air for Developers
"Scott talks to Data Scientist Safia Abdalla about the rise of python notebooks and new ways to think about interactive computing, both online and off. What is "interactive literate coding" and how does it change computing for both the technical and not-quite-technical user? All this and Safia teaches Scott about the "nteract" project.

"nteract is a desktop application that allows you to develop rich documents that contain prose, executable code (in almost any language!), and images. Whether you're a developer, data scientist, researcher, or journalist, nteract helps you write your next code-driven story.

"Hydrogen is an open source package for GitHub’s Atom text editor that allows users to run their code with an interactive REPL session with your language of choice."

Orchard CMS + .NET Core = 10x

.NET Core is oprimized for speed, and it runs on Windows, Linux and Mac (& containers)

.NET based Orchards CMS, originally created by Microsoft engineers
when ported to .NET Core apparently runs 10x faster!

Connect Debrief with Scott Hunter @ .NET Rocks! vNext

GitHub - OrchardCMS/Orchard2: Orchard vNext


.NET Core & Xamarin on Samsung Tizen

New partnership with Microsoft aims to expand app availability on Tizen

"The company recently announced that they would be investing a grand total of $9 million to get more developers to create apps for their Tizen operation system, and in a recent announcement that Samsung would be partnering up with Microsoft
With Samsung now officially joining the Microsoft .NET community, developers will now be able to use Microsoft's Visual Studio to create apps for Tizen in the C# language."

Azure App Service on Linux + Containers

Azure App Service (used to be called Azure Web Sites) is a "PaaS" (Platform as a Service)
that is based on Windows VMs, at least it was until recently.
Now, there is also a Linux based option, and that is based on containers!
So not only the web apps can run on Linux platform, the users can deploy a (Linux based) containers in a very simple way! Since .NET core can run on Linux (containers) also the whole deployment can be done directly from Visual Studio (maybe even from a Mac).

Azure App Service is the most convenient way to deploy web applications on Azure
and since even a single instance comes with 99.95 SLA it is also most const effective for small to medium loads.

With so much news from Connect 2016 this useful info didn't get much attention.
It is clearer now thanks to this interview with "person in charge" of .NET and ASP.NET.
podcast: Connect Debrief with Scott Hunter @ .NET Rocks! vNext

App Service on Linux now supports Containers and ASP.NET Core | Blog | Microsoft Azure

"App Service provides default Linux containers for versions of Node.js, PHP and ASP.NET Core that make it easy to quickly get up and running on the service. With our new container support, developers can now create customized containers based on the defaults."
Azure App Service improves Node.js and PHP developer experience | Blog | Microsoft Azure

App Service on Linux | Microsoft Docs

How to create a web app with App Service on Linux | Microsoft Docs

Start creating a web app on the Azure portal

Monday, November 21, 2016

performance: SQL Server 2016 SP1 @ Connect 2016

Now high-performance features are included in all editions, including free Express edition!

SQL Server 2016 Service Pack 1 generally available | SQL Server Blog

SQL Server 2016 SP1 brings new innovation opportunities to software partners | SQL Server Blog

SQL Server 2016 posts world record TPC-H 10 TB benchmark | SQL Server Blog
"Customers can also gain tremendous performance improvement by simply upgrading to SQL Server 2016 without application changes (e.g. queries will run up to 34x faster)"

SQL Server TPC benchmark results | Microsoft
"Average CPU utilization on Enterprise servers: 8%"

.NET Core 1.1 RTM

Announcing .NET Core 1.1 | .NET Blog
  • ".NET Core: Add distros and improve performance.
  • ASP.NET Core: Improve Kestrel, Azure support and productivity.
  • EF Core: Azure and SQL 2016 support."
News flash: ASP.NET Core 1.1 with Kestrel was ranked as the fastest mainstream fullstack web framework in the TechEmpower plaintext benchmark.

"The degree of improvement is absolutely astonishing, going from 2,120 requests per second on Mono in Round 11 to 1,822,366 requests per second on ASP.NET Core in Round 13."

.NET Core downloads

Azure Key Vault

Security "bootstrapping" requires a reliable starting point.
When we "hide" one key by another key, the security is shifted to that second key.
Question is how to make the "base" key very secure?

In case of Azure Key Vault this is based on hardware encryption,
and then is leveraging PKI and Azure AD to propagate "secrets" to authorized Apps.

Key Vault Documentation | Microsoft Docs

What is Azure Key Vault? | Microsoft Docs
"Azure Key Vault helps safeguard cryptographic keys and secrets used by cloud applications and services. By using Key Vault, you can encrypt keys and secrets (such as authentication keys, storage account keys, data encryption keys, .PFX files, and passwords) by using keys that are protected by hardware security modules (HSMs). For added assurance, you can import or generate keys in HSMs. If you choose to do this, Microsoft processes your keys in FIPS 140-2 Level 2 validated HSMs (hardware and firmware)."

Azure Podcast: Episode 153 - Key Vault

The Official Azure Key Vault Team Blog – Your official source for all the latest news and tech tips for Microsoft Azure Key Vault and enlightened workloads.

Msdn forums - Azure Key Vault

Sunday, November 20, 2016

Azure Container Registry

Container Registry on Microsoft Azure Marketplace

"Azure Container Registry (ACR) is a private registry for hosting container images. Using the Azure Container Registry, customers can store Docker-formatted images for all types of container deployments. Azure Container Registry integrates well with orchestrators hosted in Azure Container Service, including Docker Swarm, DC/OS and Kubernetes. Users can benefit from using familiar tooling capable of working with the open source Docker Registry v2."

Friday, November 18, 2016

SQL Server Columnstore Index

Column-oriented DBMS - Wikipedia

Columnstore Indexes Guide
(Available since SQL Server 2012)

"The columnstore index is the standard for storing and querying large data warehousing fact tables. It uses column-based data storage and query processing to achieve up to 10x query performance gains in your data warehouse over traditional row-oriented storage, and up to 10x data compression over the uncompressed data size. Beginning with SQL Server 2016, columnstore indexes enable operational analytics, the ability to run performant real-time analytics on a transactional workload."
A columnstore is data that is logically organized as a table with rows and columns, and physically stored in a column-wise data format.

A rowstore is data that is logically organized as a table with rows and columns, and then physically stored in a row-wise data format. This has been the traditional way to store relational table data. In SQL Server, rowstore refers to table where the underlying data storage format is a heap, a clustered index, or a memory-optimized table.
For high performance and high compression rates, the columnstore index slices the table into groups of rows, called rowgroups, and then compresses each rowgroup in a column-wise manner. The number of rows in the rowgroup must be large enough to improve compression rates, and small enough to benefit from in-memory operations.

Column segmentClustered Columnstore Index

"ID Last First Bonus
1 Doe John 8000
2 Smith Jane 4000
3 Beck Sam 1000

row-oriented database: 1,Doe,John,8000; 2,Smith,Jane,4000; 3,Beck,Sam,1000;
column-oriented database: 1,2,3; Doe,Smith,Beck; John,Jane,Sam; 8000,4000,1000;"

OpenStax: free textbooks online

Subjects - OpenStax
"Open source. Peer-reviewed. 100% free.
And backed by additional learning resources. Review our OpenStax textbooks and decide if they are right for your course. Simple to adopt, free to use. We make it easy to improve student access to higher education."

OpenStax logo

Thursday, November 17, 2016

Tesla: 0-60 mps in 2.4 sec

Tesla ‘Easter Egg’ Makes the World’s Fastest Car Even Faster - Bloomberg


Windows Containers & Docker Tools

Docker is a tool for managing OS containers.
Those containers used to be based on Linux only,
and now containers are available on Windows 10 and Windows Server 2016 also.

Containers for Linux and for Windows are not the same, since OS is different. Still, Linux containers can run on Windows by ruining a Linux VM in Hyper-V.
So one can use both Linux and Windows containers on Windows host, including older versions of Windows (7, 2012 etc).
Complicated? Wait, this is just a start. But in fact it is not too complicated, and it is useful.

Support for containers is based on virtualization technology included in OS:
Linux or Windows or even Solaris that was the first one to have them.
Essentially this is a set o system level APIs.

Docker (container engine) logo.svgDocker is "just" a convenient tool that helps with managing OS containers. Apparently this was very important innovation, since APIs ware present in Linux kernel for years and not used much before Docker. In fact a variant of "containers" technology was included in Windows 8 also for Windows store apps, and enhanced in Windows 10 and Sever 2016.
Sun "invented" containers that made Solaris very efficient in hosting many web sites.

Containers  are created as "images" (zip files) that include a "difference" between "clean base OS"
and desired content of OS instance with additional files, and in case of Windows also Registry configurations etc. Those "instance" packages are usually much smaller that VM images since they only include files that are not present in the base OS.
A container image can be also "built" on top of another container image, almost like object oriented class inheritance or snapshots of virtual machines. This way it is easy to create updates and variations of containers. Very powerful and compact.

The key benefit of using containers is efficiency: running instances of an OS in a container is leveraging storage and memory of host OS, this way not duplicating resource usage, and can start in milliseconds, compared with seconds or even minutes required for full OS to start. A container instance is actually running as a standard process in a host OS, nothing too complicated.
Thanks to those special virtualization APIs in OS kernel such process can internally extend what resources are visible to applications running inside of container. That is the key "magic".

DevOps and Docker
Docker versus Virtual Machine

Docker and Azure: Design, Deploy, and Scale @SlideShare

So containers are efficient and convenient way to package application with required resources
and Docker is a very popular tool for managing them. But this is not all, it is just beginning!
Since containers are lightweight and convenient, they are perfect match for "cloud" applications,
i.e. utilizing "micro-services architectures" that can have a very large number of instances.

Docker is good for manual and interactive managing of a few containers in one host OS.

For managing hundreds or thousands of containers some more powerful and more complex tools are needed and available. After all, Docker is a startup business and they also need "exit strategy" for making some money.  There comes Docker Swarm, a commercial platform for managing containers in many VM hosts. There are some alternative solutions for same of similar purpose, like Mesos DCOS, Kubernetes by Google etc. Microsoft Azure has its own Fabric platform, but it conveniently supports all major containers management tools, making it easy to deploy and configure required clusters of resources for creating and managing containers of various kinds.

Containers are efficient, but due to implementation security is relatively limited to process insulation available in host OS. So when implementing containers in Windows Server 2016, Microsoft decided to create not one, but two variants of containers: "Windows Containers" and "Hyper-V Containers". As name suggests, the first kind is standard OS based, and second one is based on Hyper-V virtual machines technology, with same security insulation of running container instance as VM, but slightly more overhead compared to Windows Containers.

Get started with Docker for Windows - Docker

PowerShell For Docker | MSDN

Windows Containers Quick Start

Getting Started with Windows Containers – Julien Corioland – Technical Evangelist @ Microsoft

Windows Containers FAQ

Azure Container Service | Microsoft Azure

Pricing - Container Service | Microsoft Azure

Azure Container Registry preview | Blog | Microsoft Azure

Wednesday, November 16, 2016

Linux + Microsoft, .NET + Google, AWS + Salesforce

Microsoft Goes Linux Platinum, Welcomes Google To .NET Foundation

4 no-bull takeaways from Microsoft joining the Linux Foundation | InfoWorld
About 40% VMs on Azure are running on Linux now...
4 no-bull takeaways from Microsoft joining the Linux Foundation

Microsoft's SQL Server Next for Linux, Windows hit public preview | ZDNet


Linux at 25: How Linux changed the world | InfoWorld

.NET Foundation - Welcome Google and Congratulations Samsung!

.NET Foundation Technical Steerinh Group

Google Cloud Platform Blog: Making ASP.NET apps first-class citizens on Google Cloud Platform

Salesforce Selects Amazon Web Services as Preferred Public Cloud Infrastructure Provider - Salesforce Blog

Salesforce Selects Amazon Web Services as Preferred Public Cloud Infrastructure Provider
"Many Salesforce services—including Heroku, Marketing Cloud Social Studio, SalesforceIQ, and the recently announced Salesforce IoT Cloud—run on AWS infrastructure. And Salesforce is Amazon’s company-wide customer platform."

Google Earth VR

Google Earth brings its breathtaking views into VR | TechCrunch

Azure Container Service

Azure Container Service | Microsoft Azure

Azure Container Service Introduction | Microsoft Docs

Azure Container Service provides a means to manage containerized applications on multiple hosts on Azure.

Azure Container Service configured for Swarm showing agents and masters.

Microsoft Connect 2016: Visual Studio 2017 & for Mac

Connect(); // 2016

Visual Studio 2017 Release Notes

Visual Studio for Mac (based on Xamarin Studio)

New Release Preview: Visual Studio for Mac | Visual Studio

"Build native mobile and Mac apps in C#

With complete access to Xamarin for Visual Studio, share up to 90% of code while building native apps for iOS, Android, and macOS, and test your apps with one-click access to Xamarin Test Cloud."

Tuesday, November 15, 2016

Azure Bot Service

Azure Bot Service - chatbot | Microsoft Azure
"Intelligent, serverless bot service that scales on demand"
Microsoft Touts Azure Cloud Service for Running Bots

"Microsoft’s Azure Bot Service, now in preview, builds on the company’s much touted Bot Framework, which aims to support all the popular chat and texting applications in the universe.

“This is a full application, a managed platform that does all you need to host a bot,” Microsoft executive vice president Scott Guthrie told Fortune."

The service relies on Azure Functions, which like the Lambda service from Microsoft rival Amazon Web Services, lets developers quickly build in capabilities that are triggered by a user action or some sort of software trigger or event. "

OpenAI + Microsoft Azure

Microsoft is partnering with Elon Musk’s OpenAI to protect humanity’s best interests - The Verge

"Microsoft’s artificial intelligence research division has announced a partnership with the Elon Musk-backed nonprofit OpenAI. As part of the deal, OpenAI will get access to Microsoft’s latest virtual machine technology for running large-scale AI training and simulation exercises, while Microsoft will have cutting-edge research conducted on its Azure cloud platform. OpenAI, founded last December by Musk and Y Combinator president Sam Altman, is focused on developing AI that has long-term positive impacts on society, instead of software that could potentially be used for harm or is solely profit-motivated in its creation."

Monday, November 14, 2016

C programming “Good Taste” by Linus Torvalds

System level programming: optimizing for performance, not for readability.
Could compilers optimize to same performance?

Applying the Linus Torvalds “Good Taste” Coding Requirement – Medium

not so good (10 lines and if statement)

good for Linus (4 lines, no if)

Sunday, November 13, 2016

"Cognitive Transistors" for AI, DL, ML

Interesting podcast interview, a broad view on "big data" and AI field.

Why businesses should pay attention to deep learning - O'Reilly Media

"In this episode of the O’Reilly Data ShowBen Lorica spoke with Christopher Nguyen, CEO and co-founder of Arimo. Nguyen and Arimo were among the first adopters and proponents of Apache Spark, Alluxio, and other open source technologies. Most recently, Arimo’s suite of analytic products has relied on deep learning to address a range of business problems."

Near the end of the interview, Nguyen suggested that general purpose processors are less efficient / spending more energy for simulating neural networks, and hardware improvement lead to more specialized hardware for ML and AI, leading to eventual specialized alternative to classic transistor that would be more similar to neurons, and could represent not only states 0 and 1 but also values in between. He didn't mention quantum computing where value is not deterministic, just more efficient basic hardware unit.

CPU (Central Processing Units) are general, but slow in emulating specialized processing like those used for AI
xPU (like  GPU, Graphical PU) are much more efficient in parallel operations, so they are now used for AI processing.
FPGA (Field Programmable Gate Arrays) are customize-able for tasks, and Microsoft is using them on Azure to speed up specialized operations like database and web.
ASIC are custom designed for maximum performance of specialized tasks, not programmable
IA = "Intelligence Augmentation"
AI = "Artificial Intelligence"

"Scientists at IBM Research have created by far the most advanced neuromorphic (brain-like) computer chip to date. The chip, called TrueNorth, consists of 1 million programmable neurons and 256 million programmable synapses across 4096 individual neurosynaptic cores. Built on Samsung’s 28nm process and with a monstrous transistor count of 5.4 billion, this is one of the largest and most advanced computer chips ever made. Perhaps most importantly, though, TrueNorth is incredibly efficient: The chip consumes just 72 milliwatts at max load, which equates to around 400 billion synaptic operations per second per watt — or about 176,000 times more efficient than a modern CPU running the same brain-like workload, or 769 times more efficient than other state-of-the-art neuromorphic approaches. Yes, IBM is 
now a big step closer to building a brain on a chip."

Diagram explaining the various aspects of IBM's TrueNorth chip

"The animal brain (which includes the human brain, of course), as you may have heard before, is by far the most efficient computer in the known universe. As you can see in the graph below, the human brain has a “clock speed” (neuron firing speed) measured in tens of hertz, and a total power consumption of around 20 watts. A modern silicon chip, despite having features that are almost on the same tiny scale as biological neurons and synapses, can consume thousands or millions times more energy to perform the same task as a human brain."

Saturday, November 12, 2016

Azure Container Service & Windows 10 Docker Lab

Azure Container Service: the cloud’s most open option for containers | Blog | Microsoft Azure

Hosting and scaling your apps with Azure Container Service - YouTube

Microsoft Lab Portal
"Build your first container using Docker on Hyper‑V
Free, hands‑on virtual lab
In this 30‑minute, hands‑on virtual lab, you will be guided through the basics of installing, deploying, and managing a Docker container as well as, fundamentals for incorporating Docker on Hyper‑V into your current development plans."

# open PowerShell as an admin
PS> Get-WindowsOptionalFeature -Online -FeatureName containers
PS> Get-WindowsOptionalFeature -Online -FeatureName *hyper*
PS> Restart-Computer -Force # maybe not needed?

PS> New-Item -Type Directory -Path $env:ProgramFiles\docker\
PS> [Environment]::SetEnvironmentVariable("Path", $env:Path + ";$env:ProgramFiles\docker", [EnvironmentVariableTarget]::Machine)
# close and re-open PowerShell as admin, to reload paths
PS> ipconfig # only one network adapter is present
PS> dockerd --register-service
PS> Start-Service Docker
PS> ipconfig # see multiple network adapters
PS> docker network ls

PS> docker network inspect nat

# installing Windows Nano Server
PS> Install-ContainerImage
PS> docker load -i C:\ContainerSource\nanoserver.tar.gz # 684 MB
PS> docker images
PS> docker tag microsoft/nanoserver:10.0.14393 nanoserver:latest
PS> docker images

PS> docker run -it --isolation=hyperv --name dockerdemo nanoserver cmd

> dir
> ipconfig
> ping,

PS> docker ps

> exit  # this stops container

PS> docker ps  # nothing 
PS> docker ps -a  # includes nanoserver
PS> docker start dockerdemo
PS> docker attach dockerdemo # resume session

> ipconfig
> ipconfig > c:\ipconfig.txt,
> exit

PS> docker commit dockerdemo newcontainerimage
PS> docker images
PS> docker run -it --name newcontainer newcontainerimage cmd

> type c:\ipconfig.txt
> ipconfig # comes different IP address
> exit

PS> docker rm newcontainer
PS> docker rmi newcontainerimage
PS> docker images

PS> cd \build\iis
PS> type dockerfile
PS> docker build –t nanoserver_iis1 c:\build\iis
PS> docker images
PS> docker run -it --name iis1 nanoserver_iis1 cmd

> cd packages
> dism /online /apply-unattend:.\unattend.xml

> net start w3svc
> exit

PS> docker commit iis1 nanoserver_iis2
PS> if (!(Get-NetFirewallRule | where {$_.Name –eq “TCP80”})) { New-NetFirewallRule –Name “TCP80” –DisplayName “HTTP on TCP/80” –Protocol tcp –LocalPort 80 –Action Allow -Enabled True}
PS> docker run –it --name iiscontainer –p 80:80 nanoserver_iis2 cmd


PowerApps, Flow, Power BI for "power users"

Microsoft PowerApps and Flow are generally available starting tomorrow - The Official Microsoft Blog
"Both PowerApps and Flow will be included with Dynamics 365 and in the subscriptions of millions of Office 365 Enterprise and Business Premium and Essentials users.

PowerApps and Flow join Microsoft Power BI to create what we on the team refer to as the power trio. Collectively they allow “power users” (read: non-developers) to get done what would have in the past required programming skills, with each playing a specific role:
Photo of various different devices, including a tablet and three phones

Wednesday, November 09, 2016

Azure Open Source HW "Project Olympus"

Microsoft reimagines open source cloud hardware | Blog | Microsoft Azure
"The building blocks that Project Olympus will contribute consist of a new universal motherboard, high-availability power supply with included batteries, 1U/2U server chassis, high-density storage expansion, a new universal rack power distribution unit (PDU) for global datacenter interoperability, and a standards compliant rack management card. To enable customer choice and flexibility, these modular building blocks can be used independently to meet specific customer datacenter configurations. We believe Project Olympus is the most modular and flexible cloud hardware design in the datacenter industry. We intend for it to become the foundation for a broad ecosystem of compliant hardware products developed by the OCP community."

free online: C# Yellow Book


also available as regular paper book (not free)

Nothing Cheesy in the "Cheese Edition" of the C# Yellow Book | Coding4Fun Blog | Channel 9

C# Yellow Book —

"The C# Yellow Book is used by the Department of Computer Science in the University of Hull as the basis of their First Year programming course. You can download your own PDF copy from here."

Monday, November 07, 2016

Data Serialization Performance in .NET

c# - Fastest way to serialize and deserialize .NET objects - Stack Overflow

GitHub - mgravell/protobuf-net: Protocol Buffers library for idiomatic .NET

Comparing the Performance of .NET Serializers – Youssef M's Blog

msgpack/ at master · msgpack/msgpack · GitHub
"MessagePack is an object serialization specification like JSON.
MessagePack has two concepts: type system and formats.
Serialization is conversion from application objects into MessagePack formats via MessagePack type system. Deserialization is conversion from MessagePack formats into application objects via MessagePack type system."

smaller is better: 

Docker tools, docs & Azure

Image2Docker - MS Dev Show Podcast

Trevor Sullivan (@pcgeek86) | Twitter

Trevor Sullivan's Tech Room - Minding the gap between administration and development

Docker Documentation from Trevor Sullivan

Microsoft Azure Resource Manager - Trevor Sullivan

GitHub - docker/communitytools-image2docker-win
"...a framework to simplify the creation of Dockerfiles for Microsoft Windows Server Hyper-V Container images, based upon analysis of existing WIM or VHDX image files."

The Microsoft Windows Server 2016 platform introduces new capabilities for containerizing applications. There are two types of container formats supported on the Microsoft Windows platform:
  • Hyper-V Containers - Containers with a dedicated kernel and stronger isolation from other containers
  • Windows Containers - application isolation using process and namespace isolation, and a shared kernel with the container host"


Cloud Chaos Engineering, "monkeys" & "apes"


Netflix "Chaos Monkey" and related tools are invaluable for ensuring that cloud based applications still continue working in cases of failed services. Microsoft is also using similar techniques, both for Windows and Azure.

"Chaos Apes" are not only random but a bit "intelligent" chaos tools that learn over time.

Chaos Engineering - MS Dev Show Podcast

GitHub - Netflix/chaosmonkey: Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

"Chaos Monkey randomly terminates virtual machine instances and containers that run inside of your production environment. Exposing engineers to failures more frequently incentivizes them to build resilient services.

Chaos Monkey is an example of a tool that follows the Principles of Chaos Engineering."
GitHub - Netflix/SimianArmy: Tools for keeping your cloud operating in top form. Chaos Monkey is a resiliency tool that helps applications tolerate random instance failures.

Chaos Test Service | Microsoft Azure
"Learn how to write a service that uses Microsoft Azure Service Fabric's built-in Chaos Test to exercise your code's fault tolerance by putting a little chaos in your cluster.

Service Fabric includes a suite of tools specifically designed to test running services. You can easily induce meaningful faults and run test scenarios to exercise and validate the numerous different states and transitions a service will experience throughout its lifetime, all in a controlled and safe manner. The chaos test induces random faults - everything from moving replicas to restarting entire nodes."

Standalone Network Emulator Tool – Knock, knock! Who's there?
"NEWT (Network Emulator for Windows Toolkit) is a software-based emulator which can emulate the behavior of both wired and wireless networks using a reliable physical link, such as an Ethernet. A variety of network attributes are incorporated into the NEWT emulation model, including round-trip time across the network (latency), the amount of available bandwidth, queuing behavior, packet loss, reordering of packets, and error propagations. NEWT also provides flexibility in filtering network packets based on IP addresses or protocols such as TCP, UDP, and ICMP."

Sunday, November 06, 2016

electric cars: Chevrolet Bolt EV

2017 Chevrolet Bolt EV vs. 2016 Tesla Model S 60 Comparison
The Chevrolet Bolt and Tesla Model S 60: Range, Charging - and Travel - Motor Trend
Styling Size-Up: 2017 Chevrolet Bolt EV vs. Nissan Leaf, BMW i3

"This Bolt versus Model S 60 comparison is the exhibition before a more appropriate title fight—Bolt versus Elon Musk’s $35,000 Tesla Model 3. Set to arrive in late 2017 with a price much closer to the Bolt’s"
Bolt: 238 miles of EPA-rated range, $41,780 before rebates, 0 to 60 mph in 6.3 seconds

Interactive Visual USA Elections 2016 Map

State votes are not proportional to state surface area on the map.
A better data visualization is with bars proportional to votes.
Here is my "data science experiment",
with interactive changing color and counts when click on state bars.

Initial states are based on CNN 2016 Electoral Map (Interactive)

VT: 6 NV 6 UT 6 NM 5 ID 4 WA 12 OR 7 CA 55 MT 3 WY 3 CO 9 AZ 11 AK 3 HI 4 TX 38 OK 7 KS 6 NE 5 SD 3 ND 3 MN 10 WI 10 IL 20 IA 6 MO 10 AR 6 LA 8 MS 6 AL 9 GA 16 FL 29 SC 9 NC 15 TN 11 KY 8 IN 11 OH 18 WV 5 VA 13 PA 20 NY 29 ME 4 MI 16 DC 3 MD 10 DE 3 NJ 14 MA 11 RI 4 CT 7 NH 4 VT 3 Republicans D.Trump 205 Democrats H.Clinton 268 Undecided Undecided 65