@joubin's kardz


Protocol, OData

Open Data Protocol (OData) is an open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs in a simple and standard way.

It's initiated by Microsoft in year 2007.

Versions 1.0, 2.0, and 3.0 are released under the Microsoft Open Specification Promise.

Version 4.0 was standardized at OASIS, with a release in March 2014.

In April 2015, OASIS has further Submitted OData v4 and OData JSON Format v4 to ISO/IEC JTC 1 for approval as an International Standard.

The protocol enables the creation and consumption of REST APIs, which allow resources, identified using URLs and defined in a data model, to be published and edited by Web clients using simple HTTP messages. It shares some similarity with JDBC and ODBC but OData is not limited to relational databases.

Shared by joubin on Thu Jun 18 2015

Blue-Green Deployment

The Blue-Green Deployment is a technique for releasing your application in a predictable manner with the goal of reducing any downtime associated with a release.

The point is that at any given time, only one version of the application is serving client.

Contrast this with rolling-updates type of deployment.

It’s a quick way to prime your app before releasing, and also quickly roll back if you find issues.

http://blog.christianposta.com/deploy/blue-green-deployments-a-b-testing-and-canary-releases/

Shared by joubin on Sat Feb 03 2018

Nginx

Nginx is a web server which can also be used as a reverse proxy, load balancer and HTTP cache. The software was created by Igor Sysoev and first publicly released in 2004. A company of the same name was founded in 2011 to provide support.

Shared by joubin on Thu Feb 01 2018

Windows Subsystem for Linux (WSL)

WSL is a compatibility layer for running Linux binary executables (in ELF format) natively on Windows 10.

WSL provides a Linux-compatible kernel interface developed by Microsoft (containing no Linux kernel code).

The Windows Subsystem for Linux (WSL) is a new Windows 10 feature that enables you to run native Linux command-line tools directly on Windows, alongside your traditional Windows desktop and modern store apps.

WSL provides an application called Bash.exe that, when started, opens a Windows console running the Bash shell.

WSL cannot run Linux apps. WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.

WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)

https://msdn.microsoft.com/en-us/commandline/wsl/faq

Shared by joubin on Tue Sep 19 2017

C# Operators

Used to perform miscellaneous actions such as creating objects, checking the run-time type of an object, obtaining the size of a type, and other actions.

Examples:

  • the . operator - used to access members
  • typeof: used to obtain a System.Type object for the type name




Shared by joubin on Mon Jan 29 2018

Docker Containers

Containers are simply a collection of "development code + depenencies". This is the same as saying that containers are a collection of "executable application + the dependencies".

A container runs on top of a container-runtime.

The container-runtime runs on top of the Kernel/OS/Hardware.

Contrast this with Hypervising setup.





Shared by joubin on Sat Jan 27 2018

GlusterFS

GlusterFS as a persistent data store for Kubernetes container applications.

It's an open-source software-based network-attached filesystem that deploys on commodity hardware.

After RedHat acquired the company, it was first marketed as Red Hat Storage Server, but in early 2015 renamed to be Red Hat Gluster Storage

https://en.wikipedia.org/wiki/Gluster

Shared by joubin on Sat Jan 13 2018

Coco Framework

The Coco Framework is an open-source system that enables high-scale, confidential blockchain networks.

Coco achieves this by designing specifically for confidential consortiums, where nodes and actors are explicitly declared and controlled. Based on these requirements, Coco presents an alternative approach to ledger construction, giving enterprises the scalability, distributed governance and enhanced confidentiality they need without sacrificing the inherent security and immutability they expect.

https://azure.microsoft.com/en-us/blog/announcing-microsoft-s-coco-framework-for-enterprise-blockchain-networks/

Shared by joubin on Thu Aug 10 2017

Blockchain

A blockchain is a distributed database that maintains a continuously growing list of records, called blocks, secured from tampering and revision. Each block contains a timestamp and a link to a previous block.

By design, blockchains are inherently resistant to modification of the data - once recorded, the data in a block cannot be altered retroactively.

Through the use of a peer-to-peer network and a distributed timestamping server, a blockchain database is managed autonomously.

Blockchains are "an open, distributed ledger that can record transactions between two parties efficiently and in a verifiable and permanent way.

https://en.wikipedia.org/wiki/Blockchain

Shared by joubin on Mon May 29 2017

Puppeteer

Puppeteer, an UI Automation Tool, is a Node library which provides a high-level API to control headless Chrome over the DevTools Protocol. It can also be configured to use full (non-headless) Chrome.

https://github.com/GoogleChrome/puppeteer

Shared by joubin on Wed Nov 01 2017

Paket

Paket is a dependency manager for .NET and mono projects, which is designed to work well with NuGet packages and also enables referencing files directly from Git repositories or any HTTP resource. It enables precise and predictable control over what packages the projects within your application reference.

https://fsprojects.github.io/Paket/index.html

Shared by joubin on Tue Jan 23 2018

CSRF vs. XSS

  • CSRF (Cross-site Request forgery) happens in authenticated sessions when the server trusts the user/browser
  • XSS (Cross-Site scripting) doesn't need an authenticated session
  • XSS is designed to exploit the trust the user has for a particular site
  • CSRF aims to exploit the trust that a website has in the visitor’s browser

Shared by joubin on Tue Jan 23 2018

.NET Standard Version Support for Platform Implementation

The .NET standard (netstandard) is a formal specification of .NET APIs.

The specficiations are intended to be available in .NET implementations.

Implementations of the .NET Standard specification:

  • .NET Core - It's a cross-platform implementation of netstandard.
  • .NET Framework

https://github.com/dotnet/standard/blob/master/docs/versions.md

https://docs.microsoft.com/en-us/dotnet/standard/net-standard

Shared by joubin on Wed Jan 10 2018

Postman, scripting

Read JSON response:

pm.response.json()

Read Text response:

pm.response.text()

Usually the "Tests" tab is where the response reading happens.

Output to Postman console:

console.log

Set environment var:

postman.setEnvironmentVariable('var-name', var-value);

https://www.getpostman.com/docs/postman/scripts/test_scripts

https://www.getpostman.com/docs/postman/scripts/pre_request_scripts

Shared by joubin on Tue Nov 21 2017

Kubernetes (K8s)

Kubernetes is an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure.

https://kubernetes.io/docs/whatisk8s/

Shared by joubin on Tue Feb 21 2017

VSTS, Multiple Repositories under a Project

From VSTS Dashbaord:

  1. Navigate to your project
  2. Hover over the "Code" top navigation (a dropdown appears)
  3. Click "Manage Repositories"

Here you can manage repositories in your project:

  • Add new
  • Delete
  • Rename

Shared by joubin on Sat Jan 13 2018

Kubernetes vs Docker Swarm

Kubernetes is a full-fledged container orchestration system that includes a scheduler, health checks, rolling upgrades, autoscaling, etc. whereas Docker Swarm is mainly about providing a cluster-wide view of a single Docker engine.

https://www.quora.com/What-are-the-pros-and-cons-of-Google-Kubernetes-vs-Docker-Swarm

Shared by joubin on Fri Jan 12 2018

Docker swarm mode

Swarm mode refers to cluster management and orchestration features embedded in Docker Engine. When you initialize a new swarm (cluster) or join nodes to a swarm, the Docker Engine runs in swarm mode.

https://docs.docker.com/glossary/?term=swarm%20mode

Shared by joubin on Fri Jan 12 2018

Docker Machine

You use Docker Machine to:

  • Install and run Docker on Mac or Windows
  • Provision and manage multiple remote Docker hosts
  • Provision Swarm clusters

https://docs.docker.com/machine/overview/

Using docker-machine commands, you can start, inspect, stop, and restart a managed host, upgrade the Docker client and daemon, and configure a Docker client to talk to your host.

Shared by joubin on Fri Jan 12 2018

Docker Node

A node is a physical or virtual machine running an instance of the Docker Engine in swarm mode.

https://docs.docker.com/glossary/?term=node

Shared by joubin on Fri Jan 12 2018