Main title
Home
About us
Page
Shop
Blog
Contact us
Affordable paris tours
City tours / Tour tickets / Tour guides
New collection
Add to card
Blue Tshirt
$26
Add to card
Woman shirt
$31
Add to card
Yellow Shirt
$21
Add to card
Cool Lingerie
$56


home
Creative 01
View more
Corporate 01
View more
Burger Restaurant
View more
Wedding
View more
Corporate 02
View more
Barber Shop
View more
Logistics Cargo
View more
Restaurant 01
View more
Wedding Planner
View more
Logistics Cargo 02
View more
active
Creative 02
Bridal Dresses
View more
Creative 03
View more
Coming Soon
View more
about
blog
contact
Minimal
best design works
Caminando
Creative
View more
Calligraphy
Branding
View more
Abstract
Vector
View more
lifestyle
healthy
View more
Caminando
Creative
View more
Calligraphy
Branding
View more
Caminando
Creative
View more
Calligraphy
Branding
View more
Abstract
Vector
View more
Let’s make something
great together
let's do it!
Niche Templates
Creative 01
View more
Corporate 01
View more
Burger Restaurant
View more
Wedding
View more
Corporate 02
View more
Barber Shop
View more
Logistics Cargo
View more
Restaurant 01
View more
Wedding Planner
View more
Logistics Cargo 02
View more
active
Creative 02
Bridal Dresses
View more
Coming Soon
View more
Creative 03
View more


Logout
Aditya
<EMAIL_ADDRESS>Health Monitor
Diagnose
Social Help
Health Blog
Chat Rooms
Diagnose Covid Using Chest X-Ray
our X-Ray Prediction model Uses deep learning to classfy the Covid pacients precisely


ol-mapbox-style Examples
Mapbox
(requires a
Mapbox API token
) – Vector tile map from Mapbox's Bright style
Maptiler w/ hillshading
(requires a
Maptiler API token
) – Hillshading map with Maptiler style sources
Terrarium hillshading
– Hillshading map using a Terrarium source
OpenMapTiles
(requires a
Maptiler Cloud API token
) – Vector tile map from OpenMapTiles's basic style
GeoJSON
– Map with a vector layer from GeoJSON
GeoJSON with Hover Effect
– Use
feature-state
for a hover effect
Inline GeoJSON
– Map with a vector layer from GeoJSON embedded in the style object
GeoJSON WFS
– Map with a vector layer from WFS
OSM with WMS overlay
– Map with two raster layers (OSM base map and WMS overlay)
TileJSON
– Map with a raster layer from a TileJSON definition
TileJSON vector tiles
– Vector tile map with a source from a TileJSON definition
Esri vector tiles 4326
– MapTiler with custom
projection
Esri vector tiles with bad tile URLs
– Esri vector tile map using the
transformRequest
option to fix tile urls.
OpenMapTiles Layer
(requires a
Maptiler Cloud API token
) – Vector tile layer from OpenMapTiles's basic style
GeoJSON Layer
– Vector layer from GeoJSON
Style function
– Low-level API for creating a style function from a Mapbox Style source
Apply to a Layer Group
– Apply style to a layer group instead of an entire map
SDF Sprites
– Handle SDF sprites instead of regular image


This HTML page lets you translate a given XML file into pretty printed XSLT code.
The resulting XSLT, when applied to any well formed XML source, yields the original XML.
The mechanism is intended to produce XSLT templates based on their expected output: for example, Office Open XML files.
It is presumed that the generated (initial) XSLT code is to be altered by replacing variative fragments with data binding elements like xsl:value-of
, xsl:for-each
and so on.
The xsl:
prefix for the http://www.w3.org/1999/XSL/Transform
namespace is always available. Others are to be added manually when needed.
All processing is done in browser using File and XSLTProcessor APIs. No server interaction of any kind is in effect. No javaScript libraries nor other assets are injected.
You can save this page locally and use it by opening from your hard drive.
Copyright (c) 2020, Dmitry Ovsyanko All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.


Transaction Processor & Families
ConsenSource is a certificate registry, as data pertaining to the process of factory certification is captured in the ledger state. This Certificate Registry (henceforth referred to as CR) Transaction family displays the interactions currently implemented for any participant that affects state data. Furthermore, this lays out the logic behind all interactions to verify the data submitted to the ledger.
Relevant Links
Addressing
CR data is stored in state using addresses generated from the CR Transaction family name and the object type being stored. In particular, a CR address consists of 4 parts creating a 70 hex character string.
The first 6 characters of the SHA-256 hash of the UTF-8 encoding of the string “certificate_registry” (
439a56
).The next 2 characters reserve a namespace and we will start with the namespace
00
.The next 2 characters are determined by the object type.
00
will signify an agent object.01
will signify a certificate object.02
will signify an organization object.03
will signify a standard object.04
will signify a request object.
The final 60 characters is a truncated value of the SHA-256 hash of the UTF-8 encoding of:
- The public key string of the agent creating the object (first 60 chars of the hash) for an agent object.
- The certificate id for a certificate object.
- The organization id for an organization object.
- The standard id for a standard object.
- The request id for a request object.
For example, the CR address for the creation of an agent object would look like the following:
439a560000DFB4D55EE01720E8F098CA4F5063C67BDEA82732113C9D41B3F345B1EAFA
State
Agent State
A CR Agent state entry is required to consist of the following protobuf message:
message Agent {
// Public key associated with the agent.
string public_key = 1;
// A human-readable name identifying the agent.
string name = 2;
// A human-readable organization ID identifying the associated org.
string organization_id = 3;
// Approximately when the agent was registered.
// Format: UTC timestamp
uint64 timestamp = 4;
}
message AgentContainer {
repeated Agent entries = 1;
}
In the event of a hash collision (i.e. two or more state entries sharing the same address), the colliding state entries will be stored in the agent container defined in the proto file above.
Organization State
A CR Organization state entry is required to consist of the following protobuf message:
message Organization {
enum Type {
UNSET_TYPE = 0;
CERTIFYING_BODY = 1;
STANDARDS_BODY = 2;
FACTORY = 3;
}
message Authorization {
enum Role {
UNSET_ROLE = 0;
ADMIN = 1;
TRANSACTOR = 2;
}
// Public key of the authorized agent.
string public_key = 1;
// Agent's role within the organization.
Role role = 2;
}
message Contact {
// Name of the person.
string name = 1;
// Contact's phone number.
string phone_number = 2;
// ISO 639‑1 language code of the contact.
string language_code = 3;
}
// UUID of the organization.
string id = 1;
// Name of the organization.
string name = 2;
// List of authorized agents and their roles within the organization.
repeated Authorization authorizations = 3;
// List contacts within the organization.
repeated Contact contacts = 4;
// What type of organization this data represents.
Type organization_type = 5;
// Only one of these fields will be filled based on the organization type.
CertifyingBody certifying_body_details = 6;
StandardsBody standards_body_details = 7;
Factory factory_details = 8;
}
message CertifyingBody {
message Accreditation {
// Standard for which the accreditation has been issued.
string standard_id = 1;
// Standard version for which the accreditation has been issued.
string standard_version = 2;
// Standards body that issued the accreditation.
string accreditor_id = 3;
// Time range that the accreditation is valid (UTC Timestamps)
uint64 valid_from = 4;
uint64 valid_to = 5;
}
// List of accreditations that the certifying body holds.
repeated Accreditation accreditations = 1;
}
message StandardsBody {
// This is message could be used to capture information that is only
// pertinent to a StandardsBody
}
message Factory {
message Address {
// Street address, Line 1
string street_line_1 = 1;
// Street address, Line 2 (optional)
string street_line_2 = 2;
// City
string city = 3;
// State or province, (optional)
string state_province = 4;
// Country
string country = 5;
// Postal Code, (optional)
string postal_code = 6;
}
// Location of the factory
Address address = 1;
}
message OrganizationContainer {
repeated Organization entries = 1;
}
In the event of a hash collision (i.e. two or more state entries sharing the same address), the colliding state entries will be stored in the organization container defined in the proto file above.
Certificate State
A CR Certificate state entry is required to consist of the following protobuf message:
message Certificate {
message CertificateData {
// Name of data field associated with certificate data.
string field = 1;
// Data stored within the data field.
string data = 2;
}
// This certificate's ID.
string id = 1;
// Certifying body that issued the certificate.
string certifying_body_id = 2;
// Factory the certificate was issued to.
string factory_id = 3;
// Standard that this certificate is for.
string standard_id = 4;
// Standard version that the certificate is for.
string standard_version = 5;
// Additional certificate data.
repeated CertificateData certificate_data = 6;
// Time certificate was issued.
// Format: UTC timestamp
uint64 valid_from = 7;
// Approximately when the certificate will become invalid.
// Format: UTC timestamp
uint64 valid_to = 8;
}
message CertificateContainer {
repeated Certificate entries = 1;
}
In the event of a hash collision (i.e. two or more state entries sharing the same address), the colliding state entries will be stored in the certificate container defined in the proto file above.
Request State
A CR Request state entry is required to consist of the following protobuf message:
message Request {
enum Status {
UNSET_STATUS = 0;
OPEN = 1;
IN_PROGRESS = 2;
CLOSED = 3;
CERTIFIED = 4;
}
// UUID of this request.
string id = 1;
// Status of the request.
Status status = 2;
// The standard the factory is requesting certification against.
string standard_id = 3;
// UUID of the factory that created this request.
string factory_id = 4;
// Time request was made
// Format: UTC timestamp
uint64 request_date = 5;
}
message RequestContainer {
repeated Request entries = 1;
}
Standard State
A CR Standard state entry is required to consist of the following protobuf message:
message Standard {
message StandardVersion {
// Standard version
string version = 1;
// Short description of the standard.
string description = 2;
// Link to the standard's documentation.
string link = 3;
// Date the standard is officially issued.
uint64 approval_date = 4;
}
// Sha256 of the standard name
string id = 1;
// Id of the organization that created this Standard.
string organization_id = 2;
// Name of the standard.
string name = 3;
// List of different versions of the standard.
repeated StandardVersion versions = 4;
}
message StandardContainer {
repeated Standard entries = 1;
}
In the event of a hash collision (i.e. two or more state entries sharing the same address), the colliding state entries will be stored in the request container defined in the proto file above.
Transaction Payload
CR transaction request payloads are defined by the following protobuf structure:
message CertificateRegistryPayload{
enum Action {
UNSET_ACTION = 0;
CREATE_AGENT = 1;
CREATE_ORGANIZATION = 2;
UPDATE_ORGANIZATION = 3;
AUTHORIZE_AGENT = 4;
ISSUE_CERTIFICATE = 5;
CREATE_STANDARD = 6;
UPDATE_STANDARD = 7;
OPEN_REQUEST_ACTION = 8;
CHANGE_REQUEST_STATUS_ACTION = 9;
ACCREDIT_CERTIFYING_BODY_ACTION = 10;
}
// Whether the payload contains a create agent, create organization,
// create certificate, or authorize agent.
Action action = 1;
// The transaction handler will read from just one of these fields
// according to the action.
CreateAgentAction create_agent = 2;
CreateOrganizationAction create_organization = 3;
UpdateOrganizationAction update_organization = 4;
AuthorizeAgentAction authorize_agent = 5;
IssueCertificateAction issue_certificate = 6;
CreateStandardAction create_standard = 7 ;
UpdateStandardAction update_standard = 8;
OpenRequestAction open_request_action = 9;
ChangeRequestStatusAction change_request_status_action = 10;
AccreditCertifyingBodyAction accredit_certifying_body_action = 11;
}
Based on the selected type, the data field will contain the appropriate transaction data (these messages would be defined within the CertificateRegistryPayload):
CreateAgentAction transaction
The CreateAgentAction transaction creates an agent object that is able to sign transactions and perform actions on the behalf of their associated organization. This agent object will be initialized with no associated organization ID.
message CreateAgentAction {
// A name identifying the agent.
string name = 1;
// Approximately when the agent was registered.
// Format: UTC timestamp
uint64 timestamp = 2;
}
This transaction is considered invalid if one of the following occurs: - Name is not provided - Signing public key already associated with an agent
CreateOrganizationAction transaction
The CreateOrganizationAction transaction creates an organization object. An organization may either be an STANDARDS_BODY, CERTIFYING_BODY or a FACTORY depending on the actions the organization will perform, such as creating standards, issuing or requesting certificates. These actions are performed by authorized agents associated with the organization. The organization object created will be initialized with the agent that signed the transaction as an ADMIN within the organization’s authorizations list.
CreateOrganizationAction protobuf
message CreateOrganizationAction {
// UUID of the organization.
string id = 1;
// Type of the organization.
Organization.Type organization_type = 2;
// Name of the organization.
string name = 3;
// Initial contact info for the organization.
repeated Organization.Contact contacts = 4;
// Address of the organization (if the organization is a Factory).
Factory.Address address = 5;
}
This transaction will be considered invalid if one of the following occurs: - Organization ID, name, and/or organization type are not provided - Organization ID already exists - Signing public key is not associated with a valid Agent object - Agent submitting the transaction already has an associated organization - Address is provided if the type is Standards Body or Certifying Body - Address is not provided if the type is Factory
UpdateOrganizationAction transaction
The UpdateOrganizationAction transaction modifies the value of an Organization in state. Both the address (for factories) and the contact information may be updated. The values provided will be applied exactly as submitted with the transaction. If one or the other should stay the same, the original values should be supplied.
UpdateOrganizationAction protobuf
message UpdateOrganizationAction {
// Updated contact info.
repeated Organization.Contact contacts = 1;
// Updated address (if Factory).
Factory.Address address = 2;
}
This transaction is considered invalid if one of the following occurs: - The signer of the transaction is not listed as an admin of their organization - Provided contacts or address objects are not fully filled out - Address is provided if the organization is not a factory
AuthorizeAgentAction transaction
The AuthorizeAgentAction transaction creates an entry within an organization’s authorizations list for the specified public key with the specified role. This action may only be performed by an agent authorized as an ADMIN by their associated organization.
message AuthorizeAgentAction {
// Public key associated with the agent.
string public_key = 1;
// Role to update the specified agent entry.
// Roles grant permissions for an agent to act on behalf of the
// organization.
// Whether the agent is an ADMIN or ISSUER.
Organization.Authorization.Role role = 2;
}
This transaction is considered invalid if one of the following occurs: - Public key is not provided - Role is not provided - Signing public key is not associated an Agent - Public key provided is not associated an Agent - Agent submitting the transaction is not authorized as an ADMIN within their associated organization - Public key provided specifies an Agent already associated with an organization - Invalid authorization role is provided
IssueCertificateAction transaction
The IssueCertificateAction transaction creates a certificate object that contains information pertaining to the specified factory and their adherence to certain policies. A Certificate object is created by an agent associated with a certifying body.
IssueCertificateAction protobuf
message IssueCertificateAction {
enum Source {
UNSET_SOURCE = 0;
FROM_REQUEST = 1;
INDEPENDENT= 2;
}
// UUID of the certificate.
string id = 1;
// ID of the factory that the certificate is being issued to.
string factory_id = 2;
// The source that triggered the IssueCertificate Trasaction.
// If set to FROM_REQUEST, it means the IssueCertificateAction is associated
// to a request made by a factory. The field request_id must be set.
// If set to INDEPENDENT, it means the IssueCertificateAction is not associated
// with a request made by a factory. The field factory_id and standard_id must be set.
Source source = 3;
// ID of the request (if source is FROM_REQUEST)
string request_id = 4;
// Standard that this certificate is for.
string standard_id = 5;
// Additional certificate data.
repeated Certificate.CertificateData certificate_data = 6;
// Time certificate was issued.
// Format: UTC timestamp
uint64 valid_from = 7;
// Approximately when the certificate will become invalid.
// Format: UTC timestamp
uint64 valid_to = 8;
}
This transaction is considered invalid if one of the following occurs: - ID, factory ID, standard name, valid from timestamp and/or valid to timestamp are not provided - Certificate ID is already associated with a Certificate object - Factory ID does not reference a valid factory - Signing public key is not associated with an agent - Agent submitting the transaction is not associated with a certifying body - Certifying Body associated with the issuing agent is not accredited to issue the standard - Agent submitting the transaction is not an authorized TRANSACTOR within their associated organization - Standard name is not associated with an existing standard - Invalid dates are provided, pertaining to current date as well as format
CreateStandardAction transaction
The CreateStandardAction transaction creates a new certification standard in state. It will also create a StandardVersion sub-object, which contains details specific to the version of the standard which was supplied. A CreateStandardAction transaction is submitted by an agent associated with a standards body.
message CreateStandardAction {
// Sha256 of the standard name
string standard_id = 1;
// Name of the standard.
string name = 2;
// Current version of the standard.
string version = 3;
// Short description of the standard.
string description = 4;
// Link to the standard's documentation.
string link = 5;
// Date the standard is officially issued.
uint64 approval_date = 6;
}
This transaction is considered invalid if one of the following occurs: - The standard_id, name, version, description, link, or approval date are not provided - The standard_id is already associated with an existing standard - The signer is not associated with a standards body - The signer is not authorized as a transactor within their organization
UpdateStandardAction transaction
The UpdateStandardAction transaction creates a new standard version in state, under the associated standard object. An UpdateStandardAction transaction is submitted by an agent associated with a standards body.
message UpdateStandardAction {
// Standard that is being updated.
string standard_id = 1;
// New version of the standard.
string version = 2;
// Short description of the standard.
string description = 3;
// Link to the standard's documentation.
string link = 4;
// Date the standard is officially issued.
uint64 approval_date = 5;
}
This transaction is considered invalid if one of the following occurs: - The standard_id, version, description, link, or approval date are not provided - The standard_id is not associated with an existing standard - The version is already associated with an existing standard version - The signer is not associated with a standards body - The signer is not authorized as a transactor within their organization - The standard is not associated with the signer’s organization
AccreditCertifyingBodyAction transaction
The AccreditCertifyingBodyAction transaction adds an accreditation to a certifying body. An UpdateStandardAction transaction is submitted by an agent associated with a standards body.
AccreditCertifyingBodyAction protobuf
message AccreditCertifyingBodyAction {
// UUID of the certifying body that is being accredited.
string certifying_body_id = 1;
// Standard that the certifying body is being accredited for.
string standard_id = 2;
// Time the accreditation was issued.
// Format: UTC timestamp
uint64 valid_from = 3;
// When the accreditation will become invalid.
// Format: UTC timestamp
uint64 valid_to = 4;
}
This transaction is considered invalid if one of the following occurs: - The signer is not associated with a standards body - The signer is not authorized as a transactor within their organization - The certifying body ID is not associated with a certifying body - The name is not associated with an existing standard - Invalid dates are provided, pertaining to current date as well as format
OpenRequestAction transaction
The OpenRequestAction transaction opens a request for certification for a factory. This transaction is submitted by an agent associated with a factory and authorized as a TRANSACTOR for their associated factory.
message OpenRequestAction {
// UUID of the request
string request_id = 1;
// Certification standard of which the factory is requesting from an certification body
Request.Certification_Standard certification_standard = 2;
// Name of the factory that is opening the request
string factory_name = 3;
// Time request was made
// Format: UTC timestamp
uint64 request_date = 4;
}
This transaction is considered invalid if one of the following occurs: - The signer is not associated with a factory - The signer is not authorized as a transactor within their organization - The id is not unique - The standards name is not associated with a valid standard - If any of these fields are empty
ChangeRequestStatusAction transaction
The ChangeRequestStatusAction transaction is performed when a factory’s certification request status is changed, such as to CLOSED, IN_PROGRESS, or CERTIFIED. This transaction results from either a factory changing the status to CLOSED or IN_PROGRESS, which would be submitted by an agent associated with the factory and authorized as a TRANSACTOR.
ChangeRequestStatusAction protobuf
message ChangeRequestStatusAction {
// Request for which the status is being changed.
string request_id = 1;
// New status of the request.
Request.Status status = 2;
}
This transaction is considered invalid if one of the following occurs: - The signer is not associated with a factory - The signer is not authorized as a transactor within their organization - A request with the provided id does not exist - The status is not a valid status enum: IN_PROGRESS or CLOSED - The status is already CLOSED or CERTIFIED
Transaction Header
Family
- family_name: “certificate_registry”
- family_version: “0.1”
Inputs and Outputs
The inputs and outputs for Certification Registry transactions will differ depending on the transaction type. Inputs are the address(es) of all the state objects required to validate a transaction. Outputs are the address(es) of all the state objects modified by the transaction.
CreateAgentAction Transaction
Inputs:
- Address of the Agent to be created
Outputs:
- Address of the Agent created
CreateOrganizationAction Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Organization to be created
Outputs:
Address of the Agent that submitted the transaction
Address of the Organization created
AuthorizeAgent Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Organization with the authorization list being modified
Address of the Agent to be added to the Organization’s authorization list
Outputs:
Address of the Organization with a modified authorization list
Address of the Agent added to the authorization list
IssueCertificateAction Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Organization the certificate is being submitted on behalf of
Address of the Certificate to be created
Address of the Standard the certificate is being created against
Outputs:
- Address of the Certificate created
CreateStandardAction Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Standard that is being created
Address of the Organization the Standard is being created on behalf of
Outputs:
Address of the Standard that is being created
Address of the Organization the Standard is being created on behalf of
UpdateStandardAction Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Standard that is being created
Address of the Organization the Standard is being created on behalf of
Outputs:
- Address of the Standard that is being created
AccreditCertifyingBodyAction Transaction
Inputs:
Address of the Agent submitting the transaction
Address of the Standard that is being accredited for
Address of the Organization that the transaction is being submitted on behalf of
Address of the Organization that is being accredited
Outputs:
- Address of the Organization that is being accredited
OpenRequestAction Transaction
Inputs:
Address of the Request to be created
Address of the Organization the Request is being made for
Address of the Standard the Request is being made for
Outputs:
- Address of the Request to be created
ChangeRequestStatusAction Transaction
Inputs:
Address of the Request to be updated
Address of the Organization the Request is being made for
Outputs:
- Address of the Request to be updated
Execution
The result of a Certificate Registry transaction will differ depending on the type of transaction being executed.
A successful CreateAgentAction transaction will result in a new Agent object created in state.
A successful CreateOrganizationAction transaction will result in a new Organization object created in state. This Organization object will be initialized with a single authorization entry corresponding to the Agent that submitted the successful CreateOrganizationAction transaction with a role of ADMIN.
A successful UpdateOrganizationAction transaction will result in an updated Organization object in state.
A successful AuthorizeAgentAction transaction will result in a new entry to the specified Organization’s authorizations list. The Agent being added to the Authorizations list will also be updated with an associated Organization ID.
A successful IssueCertificateAction transaction will result in a new Certificate object created in state.
A successful CreateStandardAction transaction will result in a new Standard object in state, with one StandardVersion sub-object. The Standard will be added to the Standards Body’s standards list.
A successful CreateStandardAction transaction will result in a new Standard object in state, with a new StandardVersion sub-object.
A successful AccreditCertifyingBodyAction will result in a new Accreditation being added to an Organization object.
A successful OpenRequestAction transaction will result in a new Request object in state.
A successful ChangeRequestStatusAction transaction will result in an updated Request object in state with the status of provided. This Request will be submitted on behalf of a Factory.
.. Licensed under Creative Commons Attribution 4.0 International License .. https://creativecommons.org/licenses/by/4.0/
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.


erl_eterm
C Library
Library Summary
Description
This module provides functions for creating and manipulating Erlang terms.
An Erlang term is represented by a C structure of type ETERM. Applications should not reference any fields in this structure directly, as it can be changed in future releases to provide faster and more compact term storage. Instead, applications should use the macros and functions provided.
Each of the following macros takes a single ETERM pointer as an argument. The macros return a non-zero value if the test is true, otherwise 0.
- ERL_IS_INTEGER(t)
- True if t is an integer.
- ERL_IS_UNSIGNED_INTEGER(t)
- True if t is an integer.
- ERL_IS_FLOAT(t)
- True if t is a floating point number.
- ERL_IS_ATOM(t)
- True if t is an atom.
- ERL_IS_PID(t)
- True if t is a pid (process identifier).
- ERL_IS_PORT(t)
- True if t is a port.
- ERL_IS_REF(t)
- True if t is a reference.
- ERL_IS_TUPLE(t)
- True if t is a tuple.
- ERL_IS_BINARY(t)
- True if t is a binary.
- ERL_IS_LIST(t)
- True if t is a list with zero or more elements.
- ERL_IS_EMPTY_LIST(t)
- True if t is an empty list.
- ERL_IS_CONS(t)
- True if t is a list with at least one element.
The following macros can be used for retrieving parts of Erlang terms. None of these do any type checking. Results are undefined if you pass an ETERM* containing the wrong type. For example, passing a tuple to ERL_ATOM_PTR() likely results in garbage.
- char *ERL_ATOM_PTR(t)
- char *ERL_ATOM_PTR_UTF8(t)
- A string representing atom t.
- int ERL_ATOM_SIZE(t)
- int ERL_ATOM_SIZE_UTF8(t)
- The length (in bytes) of atom t.
- void *ERL_BIN_PTR(t)
- A pointer to the contents of t.
- int ERL_BIN_SIZE(t)
- The length (in bytes) of binary object t.
- int ERL_INT_VALUE(t)
- The integer of t.
- unsigned int ERL_INT_UVALUE(t)
- The unsigned integer value of t.
- double ERL_FLOAT_VALUE(t)
- The floating point value of t.
- ETERM *ERL_PID_NODE(t)
- ETERM *ERL_PID_NODE_UTF8(t)
- The node in pid t.
- int ERL_PID_NUMBER(t)
- The sequence number in pid t.
- int ERL_PID_SERIAL(t)
- The serial number in pid t.
- int ERL_PID_CREATION(t)
- The creation number in pid t.
- int ERL_PORT_NUMBER(t)
- The sequence number in port t.
- int ERL_PORT_CREATION(t)
- The creation number in port t.
- ETERM *ERL_PORT_NODE(t)
- ETERM *ERL_PORT_NODE_UTF8(t)
- The node in port t.
- int ERL_REF_NUMBER(t)
- The first part of the reference number in ref t. Use only for compatibility.
- int ERL_REF_NUMBERS(t)
- Pointer to the array of reference numbers in ref t.
- int ERL_REF_LEN(t)
- The number of used reference numbers in ref t.
- int ERL_REF_CREATION(t)
- The creation number in ref t.
- int ERL_TUPLE_SIZE(t)
- The number of elements in tuple t.
- ETERM *ERL_CONS_HEAD(t)
- The head element of list t.
- ETERM *ERL_CONS_TAIL(t)
- A list representing the tail elements of list t.
Exports
Types
Concatenates two Erlang terms, prepending head onto tail and thereby creating a cons cell. To make a proper list, tail is always to be a list or an empty list. Notice that NULL is not a valid list.
- head is the new term to be added.
- tail is the existing list to which head is concatenated.
The function returns a new list.
ERL_CONS_HEAD(list) and ERL_CONS_TAIL(list) can be used to retrieve the head and tail components from the list. erl_hd(list) and erl_tl(list) do the same thing, but check that the argument really is a list.
Example:
ETERM *list,*anAtom,*anInt; anAtom = erl_mk_atom("madonna"); anInt = erl_mk_int(21); list = erl_mk_empty_list(); list = erl_cons(anAtom, list); list = erl_cons(anInt, list); ... /* do some work */ erl_free_compound(list);
Types
Creates and returns a copy of the Erlang term term.
ETERM *erl_element(position, tuple)
Types
Extracts a specified element from an Erlang tuple.
- position specifies which element to retrieve from tuple. The elements are numbered starting from 1.
- tuple is an Erlang term containing at least position elements.
Returns a new Erlang term corresponding to the requested element, or NULL if position was greater than the arity of tuple.
Types
Extracts the first element from a list.
list is an Erlang term containing a list.
Returns an Erlang term corresponding to the head head element in the list, or a NULL pointer if list was not a list.
Types
This function must be called before any of the others in the Erl_Interface library to initialize the library functions. The arguments must be specified as erl_init(NULL,0).
Types
Returns the length of an I/O list.
list is an Erlang term containing an I/O list.
Returns the length of list, or -1 if list is not an I/O list.
For the definition of an I/O list, see erl_iolist_to_binary.
ETERM *erl_iolist_to_binary(term)
Types
Converts an I/O list to a binary term.
list is an Erlang term containing a list.
Returns an Erlang binary term, or NULL if list was not an I/O list.
Informally, an I/O list is a deep list of characters and binaries that can be sent to an Erlang port. In BNF, an I/O list is formally defined as follows:
iolist ::= [] | Binary | [iohead | iolist] ; iohead ::= Binary | Byte (integer in the range [0..255]) | iolist ;
char *erl_iolist_to_string(list)
Types
Converts an I/O list to a NULL-terminated C string.
list is an Erlang term containing an I/O list. The I/O list must not contain the integer 0, as C strings may not contain this value except as a terminating marker.
Returns a pointer to a dynamically allocated buffer containing a string. If list is not an I/O list, or if list contains the integer 0, NULL is returned. It is the caller's responsibility to free the allocated buffer with erl_free().
For the definition of an I/O list, see erl_iolist_to_binary.
Types
Determines the length of a proper list.
list is an Erlang term containing a proper list. In a proper list, all tails except the last point to another list cell, and the last tail points to an empty list.
Returns -1 if list is not a proper list.
Types
Creates an atom.
string is the sequence of characters that will be used to create the atom.
Returns an Erlang term containing an atom. Notice that it is the caller's responsibility to ensure that string contains a valid name for an atom.
ERL_ATOM_PTR(atom) and ERL_ATOM_PTR_UTF8(atom) can be used to retrieve the atom name (as a NULL-terminated string). ERL_ATOM_SIZE(atom) and ERL_ATOM_SIZE_UTF8(atom) return the length of the atom name.
The UTF-8 variants were introduced in Erlang/OTP R16 and the string returned by ERL_ATOM_PTR(atom) was not NULL-terminated on older releases.
ETERM *erl_mk_binary(bptr, size)
Types
Produces an Erlang binary object from a buffer containing a sequence of bytes.
- bptr is a pointer to a buffer containing data to be converted.
- size indicates the length of bptr.
Returns an Erlang binary object.
ERL_BIN_PTR(bin) retrieves a pointer to the binary data. ERL_BIN_SIZE(bin) retrieves the size.
Creates and returns an empty Erlang list. Notice that NULL is not used to represent an empty list; Use this function instead.
ETERM *erl_mk_estring(string, len)
Types
Creates a list from a sequence of bytes.
- string is a buffer containing a sequence of bytes. The buffer does not need to be NULL-terminated.
- len is the length of string.
Returns an Erlang list object corresponding to the character sequence in string.
Types
Creates an Erlang float.
f is a value to be converted to an Erlang float.
Returns an Erlang float object with the value specified in f or NULL if f is not finite.
ERL_FLOAT_VALUE(t) can be used to retrieve the value from an Erlang float.
Types
Creates an Erlang integer.
n is a value to be converted to an Erlang integer.
Returns an Erlang integer object with the value specified in n.
ERL_INT_VALUE(t) can be used to retrieve the value from an Erlang integer.
ETERM *erl_mk_list(array, arrsize)
Types
Creates an Erlang list from an array of Erlang terms, such that each element in the list corresponds to one element in the array.
- array is an array of Erlang terms.
- arrsize is the number of elements in array.
The function creates an Erlang list object, whose length arrsize and whose elements are taken from the terms in array.
ETERM *erl_mk_long_ref(node, n1, n2, n3, creation)
Types
Creates an Erlang reference, with 82 bits.
- node is the name of the C-node.
- n1, n2, and n3 can be seen as one big number n1*2^64+n2*2^32+n3, which is to be chosen uniquely for each reference created for a given C-node.
- creation is an arbitrary number.
Notice that n3 and creation are limited in precision, so only the low 18 and 2 bits of these numbers are used.
Returns an Erlang reference object.
ERL_REF_NODE(ref), ERL_REF_NUMBERS(ref), ERL_REF_LEN(ref), and ERL_REF_CREATION(ref) can be used to retrieve the values used to create the reference.
ETERM *erl_mk_pid(node, number, serial, creation)
Types
Creates an Erlang process identifier (pid). The resulting pid can be used by Erlang processes wishing to communicate with the C-node.
- node is the name of the C-node.
- number, serial, and creation are arbitrary numbers. Notice that these are limited in precision, so only the low 15, 3, and 2 bits of these numbers are used.
Returns an Erlang pid object.
ERL_PID_NODE(pid), ERL_PID_NUMBER(pid), ERL_PID_SERIAL(pid), and ERL_PID_CREATION(pid) can be used to retrieve the four values used to create the pid.
ETERM *erl_mk_port(node, number, creation)
Types
Creates an Erlang port identifier.
- node is the name of the C-node.
- number and creation are arbitrary numbers. Notice that these are limited in precision, so only the low 18 and 2 bits of these numbers are used.
Returns an Erlang port object.
ERL_PORT_NODE(port), ERL_PORT_NUMBER(port), and ERL_PORT_CREATION can be used to retrieve the three values used to create the port.
ETERM *erl_mk_ref(node, number, creation)
Types
Creates an old Erlang reference, with only 18 bits - use erl_mk_long_ref instead.
- node is the name of the C-node.
- number is to be chosen uniquely for each reference created for a given C-node.
- creation is an arbitrary number.
Notice that number and creation are limited in precision, so only the low 18 and 2 bits of these numbers are used.
Returns an Erlang reference object.
ERL_REF_NODE(ref), ERL_REF_NUMBER(ref), and ERL_REF_CREATION(ref) can be used to retrieve the three values used to create the reference.
Types
Creates a list from a NULL-terminated string.
string is a NULL-terminated sequence of characters (that is, a C string) from which the list will be created.
Returns an Erlang list.
ETERM *erl_mk_tuple(array, arrsize)
Types
Creates an Erlang tuple from an array of Erlang terms.
- array is an array of Erlang terms.
- arrsize is the number of elements in array.
The function creates an Erlang tuple, whose arity is size and whose elements are taken from the terms in array.
To retrieve the size of a tuple, either use function erl_size (which checks the type of the checked term and works for a binary as well as for a tuple) or ERL_TUPLE_SIZE(tuple) returns the arity of a tuple. erl_size() does the same thing, but it checks that the argument is a tuple. erl_element(index,tuple) returns the element corresponding to a given position in the tuple.
Types
Creates an Erlang unsigned integer.
n is a value to be converted to an Erlang unsigned integer.
Returns an Erlang unsigned integer object with the value specified in n.
ERL_INT_UVALUE(t) can be used to retrieve the value from an Erlang unsigned integer.
Types
Creates an unbound Erlang variable. The variable can later be bound through pattern matching or assignment.
name specifies a name for the variable.
Returns an Erlang variable object with the name name.
int erl_print_term(stream, term)
Types
Prints the specified Erlang term to the specified output stream.
- stream indicates where the function is to send its output.
- term is the Erlang term to print.
Returns the number of characters written on success, otherwise a negative value.
void erl_set_compat_rel(release_number)
Types
By default, the Erl_Interface library is only guaranteed to be compatible with other Erlang/OTP components from the same release as the Erl_Interface library itself. For example, Erl_Interface from Erlang/OTP R10 is not compatible with an Erlang emulator from Erlang/OTP R9 by default.
A call to erl_set_compat_rel(release_number) sets the Erl_Interface library in compatibility mode of release release_number. Valid range of release_number is [7, current release]. This makes it possible to communicate with Erlang/OTP components from earlier releases.
If this function is called, it may only be called once directly after the call to function erl_init().
You may run into trouble if this feature is used carelessly. Always ensure that all communicating components are either from the same Erlang/OTP release, or from release X and release Y where all components from release Y are in compatibility mode of release X.
Types
Returns either the arity of an Erlang tuple or the number of bytes in an Erlang binary object.
term is an Erlang tuple or an Erlang binary object.
Returns the size of term as described above, or -1 if term is not one of the two supported types.
Types
Extracts the tail from a list.
list is an Erlang term containing a list.
Returns an Erlang list corresponding to the original list minus the first element, or NULL pointer if list was not a list.
ETERM *erl_var_content(term, name)
Types
Returns the contents of the specified variable in an Erlang term.
- term is an Erlang term. In order for this function to succeed, term must either be an Erlang variable with the specified name, or it must be an Erlang list or tuple containing a variable with the specified name. Other Erlang types cannot contain variables.
- name is the name of an Erlang variable.
Returns the Erlang object corresponding to the value of name in term. If no variable with the name name is found in term, or if term is not a valid Erlang term, NULL is returned.


Important Label Heading
100%
HSGOM: High school graduate or more
BDOM: Bachelor's degree or more
ADOM: Advanced degree or more
A time-series plot to show how the (overall US) educational attainment of the three categories change from 1990 to 2009
Overall US education attainment of the three categories which are “High school graduate or more”, “Bachelor’s degree or more”, and “Advance degree or more”.


5436854: Technology inspiredCOMP STATUS University of Cardiff (Partner)
The partner finance eligibility has been approved by Paul Davidson, 27 July 2016
Academic finances
These finances were originally submitted at the application stage in Je-S.
Download Je-S form:
jes-1601603.pdf (161.96kb)


Preparation time
less than 30 mins
Cooking time
no cooking required
Serves
Serves 4
Dietary
Salty feta combines brilliantly with bitter leaves and fresh, slighly sour, pomegranate. A salad to impress.
Put the feta in a shallow dish, squeeze over the lemon juice and scatter over the garlic. Leave to marinate while you prepare the rest of the salad.
Toast the almonds under a medium grill until lightly browned, then leave to cool. Cut the pomegranate in half and pop the seeds out into a bowl by bashing the skin with a spoon.
Toss together the rocket, spinach and watercress in a large salad bowl with the olive oil, and salt and freshly ground pepper. Crumble in the marinated feta, and scatter the pomegranate seeds and toasted almonds over. Serve immediately.


Recently, I was using sneakers for rails, which is a small framework for Ruby and RabbitMQ. One issue with sneakers is that, if you have faulty configuration for a queue or you do not provide a queue name, it leaves it upto rabbitmq to define it. So, for some reason (which I don’t want to focus on), we had more than 1600 queues created on that particular exchange, and unfortunately they were not Auto-delete and we didn’t want other exchanges and queues to get hurt because of this ;)
Anyway, Now the challenge was to delete them, because for that you have to manually click on each queue, select ‘Delete’ on the new page and finally, confirm it on pop-up.
I was like, :O
Anyways, Thanks to handy APIs of rabbitmq, these are the following few commands I used in order to delete them quickly. (rabbitmq generally creates default queues with names like amq.gen--*
)
First let’s list all the queues in the form of bash arrays:
Now copy the output of it, declare as an array and run a loop to delete them all.
That’s it. These small hacks makes me fall in love with programming everyday <3
Thanks!


{# Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. #} {% extends "airflow/dag.html" %} {% block head_css %} {{ super() }} {% endblock %} {% block body %} {{ super() }}
{% block model_list_table %}Start: {{ start_date}}, End: {{ end_date }}
| Date | Build name | Overall Build Status | Repositories [Repo ---> SHA] |
|---|---|---|---|
| {{ each_build.date }} | {{ each_build.build_name }} | {{ each_build.overall_task_status }} |
{% for each_sha_repo in each_build.sha_repo %}
{{ each_sha_repo }} {% endfor %} |


Pomeroy’s Windows Migration Utility (WMU) is built for migrating user and system data to a user defined location. Configuration of what is captured and restored uses USMT’s methodology of specifying configuration rules in XML files. Configuration information for gathering an enterprise’s requirements for user migration and how to build these XML files can be found here. WMU utilizes the latest USMT version 5.0, so there is no reason for worrying about mapped network drives and printers USMT 5.0 does it.
WMU is built with C# and uses .Net Framework 2.0. WMU out of the box should work with 95% of all Windows XP Pro machines. WMU also allows help desk personnel to capture and restore remote machines utilizing Microsoft’s PSExec command line utility. WMU has built in configuration options for running commands before a capture is ran and running commands after a restore has finished. It brings the Configuration Manager’s Task Sequence idea to a graphical user interface. WMU comes as installation program but also it includes an ZIP file for running the program in standalone mode.
WMU Supports these scenarios: Windows XP Pro to Windows 7 /or/ Windows 8 Windows 7 to Windows 7 /or/ Windows 8 Windows 8 to Windows 8
If the data is captured by WMU it has to be restored by WMU as the data is stored in a compressed and encrypted MIG file. WMU also supports restoring user data captured from other programs utilizing custom decryption keys or hard linking.
With this application being written in .Net Framework 2.0 it supports Windows ® XP Pro and above. This program comes with an installation, but with the installation it also a zip file. This application can be ran in a standalone mode.


Module stick/middleware/session
This module provides middleware for HTTP sessions.
It adds a session
property to the request object that allows to store
arbitrary data on on a per-visitor basis.
The default session implementation is based on Java Servlet sessions.
This can be overridden by setting the app.session.impl
property to an
alternative session constructor.
app.session.impl = MySession;
The session constructor will be called with the request object as only argument when the session is first accessed.
Functions
- middleware(next, app)
Class ServletSession
ServletSession (request)
An HTTP session object based on top of servlet sessions. Properties of the session's data object are persisted between requests of the same client.
Parameters
| request | a JSGI or servlet request object |
ServletSession.prototype.data
A container for things to store in this session between requests.
ServletSession.prototype.isNew
True if this session was created in the current request. This can be useful to find out if the client has cookies disabled for cookie-based sessions.
middleware (next, app)
This middleware provides support for anonymous user sessions.
Parameters
| Function | next | the wrapped middleware chain |
| Object | app | the Stick Application object |
Returns
| Function | a JSGI middleware function |
request.session
A session object for the current request. If no session exists a new one will be created.


class: inverse, center, middle background-image: url(pictures/jumper.jpg) background-size: cover ### Transposons in Neuropsychiatric Disease ##### [Brian Muchmore | UVM Psychiatry | 08/29/2019] --- class: center, middle # TE = Transposable Element # Transposable Element = TE --- background-image: url(pictures/barb.jpg) background-position: 50% 95% background-size: 25% # A Brief History of Transposons * In the late 1940s, Barbara McClintock discover a chromosome-breaking locus in maize that could change its position within a chromosome...jumping genes! * Although maize geneticists kept it real and were not too sexist, it took some time before others understood the funk was not fake. On the hostility and delayed recognition she faced: >"It didn’t bother me, I just knew I was right." * She won an *unshared* Nobel Prize in Physiology or Medicine in 1983. ---  Your browser doesn't support iframes  --- background-image: url(pictures/ten_things.jpg) background-position: 50% 95% background-size: 60% # TEs do a lot * Retrotransposons mobilize through a ‘copy-and-paste’ mechanism. * DNA transposons are mobilized via a ‘cut-and-paste’ mechanism. --- background-image: url(pictures/corn.jpg) background-position: 50% 95% background-size: 57% > The genome may be viewed as an ecosystem inhabited by diverse communities of TEs, which seek to propagate and multiply through sophisticated interactions with each other and with other components of the cell. These interactions encompass processes familiar to ecologists, such as parasitism, cooperation, and competition. Thus, it is perhaps not surprising that TEs are rarely, if ever, randomly distributed in the genome. TEs exhibit various levels of preference for insertion within certain features or compartments of the genome. These are often guided by opposite selective forces, a balancing act of facilitating future propagation while mitigating deleterious effects on host cell function. --- background-image: url(pictures/evolution.png) background-position: 50% 95% background-size: 57% # Evolution Transposition is a potent mechanism of genome expansion and mutagenicity: + Half of *D. melanogaster* phenotypic mutants are caused by TEs. + TEs account for 10–15% of all inherited mutant phenotypes in mice. --- # The Agouti Phenomenon .pull-left[  ] .pull-right[  ] * By the way, TEs not only to propagate vertically but also horizontally between individuals and species i.e. between host species, pathogens and parasites. --- # Structural Importance * TEs can promote genomic structural variation long after they have lost the capacity to mobilize: + Transposition causes genome rearrangement. + TE microhomology predispose to template switching during repair of replication errors. + Recombination events can occur between the highly homologous regions dispersed by related TEs at distant genomic positions. + TEs also play a role in V(D)J recombination (via *Rag1* and *Rag2*), telomere maintenance and centromere stability. # To reiterate, half our genome are TEs ---  Your browser doesn't support iframes  ---  Your browser doesn't support iframes  --- # In 2009... * It was shown that TEs are particularly abundant in human stem cells in the brain that become neurons. + Furthermore, the TEs were shown to play an important role in regulating neuronal development and proliferation. + At this time, it was recognized that TEs played an important role in Rett syndrome, a form of autism and Louis-Bar syndrome (a neurological motor disease). # In 2014... * The link between TEs and schizophrenia was established: + Extracted DNA from the neurons of deceased schizophrenics were compared to healthy people and there was a 1.1-fold increase in TEs in schizophrenics. + Injected pregnant mice with a chemical that simulates viral infection had Offspring higher levels of TEs in their brain tissue. + Exposed infant macaques to a hormone associated with increased schizophrenia risk and the grown macaques had higher levels of TEs. --- background-image: url(pictures/inheritance.jpg) background-position: 50% 95% background-size: 28% # The Specific Takeaways * Established environmental triggers for schizophrenia caused genetic changes in real-time via TEs. * TEs are more active in the brain of patients with neuropsychiatric diseases. * Correlation is not causation but the mechanism seems clear. * TEs likely provide vibrant cognitive diversity: + Helps humans respond to changing environmental conditions. + Contributes to extraordinary intellectual outliers. + Also contributes to schizophrenia. ---  Your browser doesn't support iframes  --- > The ability of a cell to sense these broken ends, to direct them towards each other, and then to unite them so that the union of the two DNA strands is correctly oriented, is a particularly revealing example of the sensitivity of cells to all that is going on within them. They make wise decisions and act on them. > -Barbara McClintock .pull-left[  ] .pull-right[  ] --- # References * Barbara McClintock. **Controlling elements and the gene.** *Cold Spring Harb Symp Quant Biol.* 1956 * Sandeep Ravindran. **Barbara McClintock and the discovery of jumping genes.** *PNAS.* 2012 * Guillaume Bourque et. al. **Ten things you should know about transposable elements.** *Genome Biology.* 2018 * Özgen Deniz et. al. **Regulation of transposable elements by DNA modifications.** *Nature Reviews Genetics.* 2019 * Nicole G. Coufal et. al. **L1 retrotransposition in human neural progenitor cells.** *Nature.* 2009 * Miki Bundo et. al. **Increased L1 Retrotransposition in the Neuronal Genome in Schizophrenia.** *Neuron* 2014 * Schizophrenia Working Group of the Psychiatric Genomics Consortium. **Biological insights from 108 schizophrenia-associated genetic loci.** *Nature.* 2014 --- # References Continued * Masaki Nishioka et. al. **Somatic mutations in the human brain: implications for psychiatric research.** *Molecular Psychiatry.* 2019 * Richard G. Hunter et. al. **Stress and the dynamic genome: Steroids, epigenetics, and the transposome.** *PNAS.* 2014 * Pastuzyn ED et. al. **The Neuronal Gene Arc Encodes a Repurposed Retrotransposon Gag Protein that Mediates Intercellular RNA Transfer.** *Cell.* 2018


ngSrcset
ng
Using Angular markup like {{hash}}
in a srcset
attribute doesn't
work right: The browser will fetch from the URL with the literal
text {{hash}}
until Angular replaces the expression inside
{{hash}}
. The ngSrcset
directive solves this problem.
The buggy way to write it:

The correct way to write it:

 ...
| Param | Type | Details |
|---|---|---|
| ngSrcset | template | any string which can contain |


Welcome to the AWS Certificates
AWS Cloud Practitioner
AWS Developer
AWS Solution Architect
AWS Data Analyst
AWS Machine Learning


Docker for Mac Stable release notes
読む時間の目安: 31 分This page contains information about the new features, improvements, known issues, and bug fixes in Docker Desktop Stable releases.
For information about Edge releases, see the Edge release notes. For Docker Desktop system requirements, see What to know before you install.
Docker Desktop Community <IP_ADDRESS>
2020-07-27
Upgrades
Bug fixes and minor changes
- Fixed a privilege escalation vulnerability in
com.docker.vmnetd
. See CVE-2020-15360 - Fixed an issue with startup when the Kubernetes certificates have expired. See docker/for-mac#4594
- Fix an incompatibility between
hyperkit
and osquery which resulted in excessivehyperkit
CPU usage. See docker/for-mac#3499 - Dashboard: Fixed containers logs which were sometimes truncated. Fixes docker/for-win#5954
Docker Desktop Community <IP_ADDRESS>
2020-05-27
Upgrades
Bug fixes and minor changes
- Re-added device-mapper to the embedded Linux kernel. Fixes docker/for-mac#4549.
- Fixed
hyperkit
on newer Macs and newer versions ofHypervisor.framework
. Fixes docker/for-mac#4562.
Docker Desktop Community <IP_ADDRESS>
2020-05-11
New
Docker Desktop introduces a new onboarding tutorial upon first startup. The Quick Start tutorial guides users to get started with Docker in a few easy steps. It includes a simple exercise to build an example Docker image, run it as a container, push and save the image to Docker Hub.
Upgrades
- Docker Compose 1.25.5
- Go 1.13.10
- Linux kernel 4.19.76
- LinuxKit init, runc and containerd
Bug fixes and minor changes
- Reduced the size of the Docker Desktop installer from 708 MB to 456 MB.
- Fixed bug where containers disappeared from the UI when Kubernetes context is invalid. Fixes docker/for-win#6037.
- Fixed a file descriptor leak in
vpnkit-bridge
. Fixes docker/for-win#5841. - Added a link to the Edge channel from the UI.
- Made the embedded terminal resizable.
- Fixed a bug where diagnostic upload would fail if the username contained spaces.
- Fixed a bug where the Docker UI could be started without the engine.
- Switched from
ahci-hd
tovirtio-blk
to avoid an AHCI deadlock, see moby/hyperkit#94 and docker/for-mac#1835. - Fixed an issue where a container port could not be exposed on a specific host IP. See docker/for-mac#4209.
- Removed port probing from dashboard, just unconditionally showing links to ports that should be available. Fixes docker/for-mac#4264.
- Docker Desktop now shares
/var/folders
by default as it stores per-user temporary files and caches. - Ceph support has been removed from Docker Desktop to save disk space.
- Fixed a performance regression when using shared volumes in <IP_ADDRESS>. Fixes [docker/for-mac#4423].
Docker Desktop Community <IP_ADDRESS>
2020-04-02
Bug fixes and minor changes
- Removed dangling
/usr/local/bin/docker-machine
symlinks which avoids custom installs of Docker Machine being accidentally deleted in future upgrades. Note that if you have installed Docker Machine manually, then the install might have followed the symlink and installed Docker Machine in/Applications/Docker.app
. In this case, you must manually reinstall Docker Machine after installing this version of Docker Desktop. Fixes docker/for-mac#4208.
Docker Desktop Community <IP_ADDRESS>
2020-03-13
Upgrades
Bug fixes and minor changes
- Kubernetes: Persistent volumes created by claims are now stored in the virtual machine. Fixes docker/for-win#5665.
- Fixed an issue which caused Docker Desktop Dashboard to attempt connecting to all exposed ports inside a container. Fixes docker/for-mac#4264.
Docker Desktop Community <IP_ADDRESS>
2020-02-11
Upgrades
Docker Desktop Community <IP_ADDRESS>
2020-01-21
Docker Desktop <IP_ADDRESS> contains a Kubernetes upgrade. Your local Kubernetes cluster will be reset after installing this version.
Upgrades
- Docker Compose 1.25.2
- Kubernetes 1.15.5
- Linux kernel 4.19.76
- QEMU 4.0.1
New
-
Docker Desktop Dashboard: The new Docker Desktop Dashboard provides a user-friendly interface which enables you to interact with containers and applications, and manage the lifecycle of your applications directly from the UI. In addition, it allows you to access the logs, view container details, and monitor resource utilization to explore the container behavior. For detailed information about the new Dashboard UI, see Docker Desktop Dashboard.
- Introduced a new user interface for the Docker Desktop Preferences menu.
- The Restart, Reset, and Uninstall options are now available on the Troubleshoot menu.
- Added the ability to start and stop existing Compose-based applications and view combined logs in the Docker Desktop Dashboard UI.
Bug fixes and minor changes
- Added missing completions for the
fish
shell for Docker Compose. Fixes docker/for-mac#3795. - Fixed a bug that did not allow users to copy and paste text in the Preferences > Daemon window. Fixes docker/for-mac#3798.
- Added support for
Expect: 100-continue
headers in the Docker API proxy. Some HTTP clients such ascurl
send this header when the payload is large, for example, when creating containers. Fixes moby/moby#39693. - Added a loading overlay to the Settings and Troubleshoot windows to prevent editing conflicts.
- Deactivated the Reset Kubernetes button when Kubernetes is not activated.
- Improved the navigation in Settings and Troubleshoot UI.
- Fixed a bug in the UEFI boot menu that sometimes caused Docker Desktop to hang during restart. Fixes docker/for-mac#2655 and docker/for-mac#3921.
- Docker Desktop now allows users to access the host’s SSH agent inside containers. Fixes docker/for-mac#410
- Docker Machine is no longer included in the Docker Desktop installer. You can download it separately from the Docker Machine releases page.
- Fixed an issue that caused VMs running on older hardware with macOS Catalina to fail on startup with the error
processor does not support desired secondary processor-based controls
. - Fixed port forwarding when containers are using
overlay
networks. - Fixed a container start error when a container has more than one port with an arbitrary or not-yet-configured external port number. For example,
docker run -p 80 -p 443 nginx
. Fixes docker/for-win#4935 and docker/compose#6998. - Fixed an issue that occurs when sharing overlapping directories.
- Fixed a bug that prevented users from changing the location of the VM disk image.
- Docker Desktop does not inject
inotify
events on directories anymore as these can cause mount points to disappear inside containers. Fixes docker/for-mac#3976. - Fixed an issue that caused Docker Desktop to fail on startup when there is an incomplete Kubernetes config file.
- Fixed an issue where attempts to log into Docker through Docker Desktop could sometimes fail with the
Incorrect authentication credentials
error. Fixes docker/for-mac#4010.
Known issues
-
When you start a Docker Compose application and then start a Docker App which has the same name as the Compose application, Docker Desktop displays only one application on the Dashboard. However, when you expand the application, containers that belong to both applications are displayed on the Dashboard.
-
When you deploy a Docker App with multiple containers on Kubernetes, Docker Desktop displays each Pod as an application on the Dashboard.
Docker Desktop Community <IP_ADDRESS>
2019-11-18
Docker Desktop <IP_ADDRESS> contains a Kubernetes upgrade. Note that your local Kubernetes cluster will be reset after installing this version.
Upgrades
Docker Desktop Community <IP_ADDRESS>
2019-10-21
Upgrades
New
Docker Desktop now enables you to sign into Docker Hub using two-factor authentication. For more information, see Two-factor authentication.
Docker Desktop Community <IP_ADDRESS>
2019-09-16
Upgrades
Bug fixes and minor changes
- All binaries included in Docker Desktop are now notarized so that they can run on macOS Catalina. For more information, see Notarization Requirement for Mac Software.
Docker Desktop Community <IP_ADDRESS>
2019-09-04
Docker Desktop <IP_ADDRESS> contains a Kubernetes upgrade. Note that your local Kubernetes cluster will be reset after installing this version.
Upgrades
Docker Desktop Community <IP_ADDRESS>
2019-08-08
Note that you must sign in and create a Docker ID in order to download Docker Desktop.
Upgrades
- Docker 19.03.1
- Docker Compose 1.24.1
- Kubernetes 1.14.3
- Compose on Kubernetes 0.4.23
- Docker Machine 0.16.1
- linuxkit v0.7
- Linux Kernel 4.9.184
- Kitematic 0.17.6
- Qemu 4.0.0 for cross compiling for ARM
- Alpine 3.10
- Docker Credential Helpers 0.6.3
- Hyperkit v0.20190802
New
- Selecting the ‘Experimental features’ checkbox in the Daemon Preferences menu turns on experimental features for Docker daemon and Docker CLI.
- Improved the reliability of
com.docker.osxfs trace
performance profiling command. Users can now run thecom.docker.osxfs trace --summary
option for a high-level summary of operations, instead of receiving a trace of all operations. - Docker Desktop now supports large lists of DNS resource records on Mac. Fixes docker/for-mac#2160.
Experimental
Experimental features provide early access to future product functionality. These features are intended for testing and feedback only as they may change between releases without warning or can be removed entirely from a future release. Experimental features must not be used in production environments. Docker does not offer support for experimental features.
Docker Desktop Community <IP_ADDRESS> contains the following experimental features.
- Docker App: Docker App is a CLI plugin that helps configure, share, and install applications. For more information, see Working with Docker App.
- Docker Buildx: Docker Buildx is a CLI plugin for extended build capabilities with BuildKit. For more information, see Working with Docker Buildx.
Bug fixes and minor changes
- Docker Desktop now allows users to expose privileged UDP ports. docker/for-mac#3775
- Fixed an issue where running some Docker commands can fail if you are not using Credential Helpers. docker/for-mac#3785
- Changed the host’s kubernetes context so that
docker run -v .kube:kube ... kubectl
works. - Restricted the
cluster-admin
role on local Kubernetes cluster tokube-system
namespace. - Reduced the VM startup time. swap is not created every time a virtual machine boots.
- Fixed Kubernetes installation with VPNkit subnet.
- Fixed a bug where the process output was not redirected to stdout when gathering diagnostics on Windows, which sometimes resulted in a crash.
- Added
/etc/machine-id
to the virtual machine. Fixes docker/for-mac#3554. - Docker Desktop does not send DNS queries for
docker-desktop.<domain>
every 10s. It now relies on the host’s DNS domain search order rather than trying to replicate it inside the VM. - Removed the ability to log in using email address as a username as the Docker command line does not support this.
- Docker Desktop now allows running a Docker registry inside a container. Fixes docker/for-mac#3611.
- Fixed a stability issue with the DNS resolver.
- Docker Desktop truncates UDP DNS responses which are over 512 bytes in sizes.
- Fixed port 8080 that was used on localhost when starting Kubernetes. Fixes docker/for-mac#3522.
- Improved error messaging: Docker Desktop does not prompt users to run diagnostics, or to reset to factory default when it is not appropriate.
- Kubernetes: Docker Desktop now uses the default maximum number of pods for kubelet. docker/for-mac#3453.
- Fixed DockerHelper crash. docker/for-mac#3470.
- Fixed binding of privileged ports with specified IP. docker/for-mac#3464
- Fixed service log collection in diagnostics.
- Docker Desktop now gathers
/etc/hosts
to help with diagnostics. - When two services have a common exposed port, Docker Desktop now exposes the available ports for the second service. docker/for-mac#3438.
- Docker Desktop ensures localhost resolves to <IP_ADDRESS>. This is related to docker/for-mac#2990, docker/for-mac#3383.
Docker Community Edition <IP_ADDRESS> 2019-02-15
- Upgrades
- Docker 18.09.2, fixes CVE-2019-5736
Docker Community Edition <IP_ADDRESS> 2019-01-16
- Upgrades
- Docker 18.09.1
- Docker Machine 0.16.1
- Kubernetes 1.10.11, fixes CVE-2018-1002105
- Kitematic 0.17.6
- Golang 1.10.6, fixes CVEs: CVE-2018-16875, CVE-2018-16873 and CVE-2018-16874
- Bug fixes and minor changes
- Add 18.09 missing daemon options
Stable Releases of 2018
Docker Community Edition <IP_ADDRESS>-mac81 2018-12-07
- Upgrades
Docker Community Edition <IP_ADDRESS>-mac78 2018-11-19
- Upgrades
- Docker 18.09.0
- Docker compose 1.23.1
- Docker Machine 0.16.0
- Kitematic 0.17.5
- Linux Kernel 4.9.125
- New
- New version scheme
- Deprecation
- Removed support of AUFS
- Removed support of OSX 10.11
- Bug fixes and minor changes
- Fix appearance in dark mode for OSX 10.14 (Mojave)
- VPNKit: Improved scalability of port forwarding. Related to docker/for-mac#2841
- VPNKit: Limit the size of the UDP NAT table. This ensures port forwarding and regular TCP traffic continue even when running very chatty UDP protocols.
- Ensure Kubernetes can be installed when using a non-default internal IP subnet.
- Fix panic in diagnose
Docker Community Edition 18.06.1-ce-mac73 2018-08-29
- Upgrades
- Bug fixes and minor changes
- Fix local DNS failing to resolve inside containers.
Docker Community Edition 18.06.0-ce-mac70 2018-07-25
- Upgrades
- Docker 18.06.0-ce
- Docker Machine 0.15.0
- Docker compose 1.22.0
- LinuxKit v0.5
- Linux Kernel 4.9.93 with CEPH, DRBD, RBD, MPLS_ROUTING and MPLS_IPTUNNEL enabled
- New
- Kubernetes Support. You can now run a single-node Kubernetes cluster from the “Kubernetes” Pane in Docker For Mac Preferences and use kubectl commands as well as docker commands. See https://docs.docker.com/docker-for-mac/kubernetes/
- Add an experimental SOCKS server to allow access to container networks, see docker/for-mac#2670. Also see docker/for-mac#2721
- Re-enable raw as the default disk format for users running macOS 10.13.4 and higher. Note this change only takes effect after a “reset to factory defaults” or “remove all data” (from the Whale menu -> Preferences -> Reset). Related to docker/for-mac#2625
- Bug fixes and minor changes
- AUFS storage driver is deprecated in Docker Desktop and AUFS support will be removed in the next major release. You can continue with AUFS in Docker Desktop 18.06.x, but you will need to reset disk image (in Preferences > Reset menu) before updating to the next major update. You can check documentation to save images and backup volumes
- OS X El Captain 10.11 is deprecated in Docker Desktop. You will not be able to install updates after Docker Desktop 18.06.x. We recommend upgrading to the latest version of macOS.
- Fix bug which would cause VM logs to be written to RAM rather than disk in some cases, and the VM to hang. See docker/for-mac#2984
- Fix network connection leak triggered by haproxy TCP health-checks docker/for-mac#1132
- Better message to reset vmnetd when it’s disabled. See docker/for-mac#3035
- Fix VPNKit memory leak. Fixes moby/vpnkit#371
- Virtual Machine default disk path is stored relative to $HOME. Fixes docker/for-mac#2928, docker/for-mac#1209
- Use Simple NTP to minimise clock drift between the VM and the host. Fixes docker/for-mac#2076
- Fix a race between calling stat on a file and calling close of a file descriptor referencing the file that could result in the stat failing with EBADF (often presented as “File not found”). Fixes docker/for-mac#2870
- Do not allow install of Docker for Mac on macOS Yosemite 10.10, this version is not supported since Docker for Mac 17.09.0.
- Fix button order in reset dialog windows. Fixes docker/for-mac#2827
- Fix upgrade straight from pre-17.12 versions where Docker for Mac cannot restart once the upgrade has been performed. Fixes docker/for-mac#2739
- Added log rotation for docker-ce logs inside the virtual machine.
Docker Community Edition 18.03.1-ce-mac65 2018-04-30
- Upgrades
- Bug fixes and minor changes
- Fix Docker for Mac not starting due to socket file paths being too long (typically HOME folder path being too long). Fixes docker/for-mac#2727, docker/for-mac#2731.
Docker Community Edition 18.03.1-ce-mac64 2018-04-26
- Upgrades
- Bug fixes and minor changes
- Fix Docker for Mac not starting due to socket file paths being too long (typically HOME folder path being too long). Fixes docker/for-mac#2727, docker/for-mac#2731.
Docker Community Edition 18.03.0-ce-mac60 2018-03-30
- Bug fixes and minor changes
- Fix Upgrade straight from 17.09 versions where Docker for Mac cannot restart once the upgrade has been performed. Fixes docker/for-mac#2739
Docker Community Edition 18.03.0-ce-mac59 2018-03-26
- Upgrades
- Docker 18.03.0-ce
- Docker Machine 0.14.0
- Docker compose 1.20.1
- Notary 0.6.0
- Linux Kernel 4.9.87
- AUFS 20180312
- New
- VM Swap size can be changed in settings. See docker/for-mac#2566, docker/for-mac#2389
- New menu item to restart Docker.
- Support NFS Volume sharing.
- The directory holding the disk images has been renamed (from
~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux
to ~/Library/Containers/com.docker.docker/Data/vms/0`).
- Bug fixes and minor changes
- Fix daemon not starting properly when setting TLS-related options. Fixes docker/for-mac#2663
- DNS name
host.docker.internal
should be used for host resolution from containers. Older aliases (still valid) are deprecated in favor of this one. (See https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06). - Fix for the HTTP/S transparent proxy when using “localhost” names (e.g.
host.docker.internal
). - Fix empty registry added by mistake in some cases in the Preference Daemon Pane. Fixes docker/for-mac#2537
- Clearer error message when incompatible hardware is detected.
- Fix some cases where selecting “Reset” after an error did not reset properly.
- Fix incorrect NTP config. Fixes docker/for-mac#2529
- Migration of Docker Toolbox images is not proposed anymore in Docker For Mac installer (still possible to migrate Toolbox images manually ).
Docker Community Edition 17.12.0-ce-mac55 2018-02-27
- Bug fixes and minor changes
- Revert the default disk format to qcow2 for users running macOS 10.13 (High Sierra). There are confirmed reports of file corruption using the raw format which uses sparse files on APFS. Note this change only takes effect after a reset to factory defaults (from the Whale menu -> Preferences -> Reset). Related to docker/for-mac#2625
- Fix VPNKit proxy for docker.for.mac.http.internal.
Docker Community Edition 17.12.0-ce-mac49 2018-01-19
- Bug fixes and minor changes
- Fix error during resize/create Docker.raw disk image in some cases. Fixes docker/for-mac#2383, docker/for-mac#2447, [docker/for-mac#2453], (https://github.com/docker/for-mac/issues/2453), docker/for-mac#2420
- Fix additional allocated disk space not available in containers. Fixes docker/for-mac#2449
- Vpnkit port max idle time default restored to 300s. Fixes docker/for-mac#2442
- Fix using an HTTP proxy with authentication. Fixes docker/for-mac#2386
- Allow HTTP proxy excludes to be written as .docker.com as well as *.docker.com
- Allow individual IP addresses to be added to HTTP proxy excludes.
- Avoid hitting DNS timeouts when querying docker.for.mac.* when the upstream DNS servers are slow or missing.
Docker Community Edition 17.12.0-ce-mac47 2018-01-12
- Bug fixes and minor changes
- Fix for
docker push
to an insecure registry. Fixes docker/for-mac#2392 - Separate internal ports used to proxy HTTP and HTTPS content.
- Fix for
Docker Community Edition 17.12.0-ce-mac46 2018-01-09
- Upgrades
- Docker 17.12.0-ce
- Docker compose 1.18.0
- Docker Machine 0.13.0
- Linux Kernel 4.9.60
- New
- VM entirely built with Linuxkit
- VM disk size can be changed in disk preferences. (See docker/for-mac#1037)
- For systems running APFS on SSD on High Sierra, use
raw
format VM disks by default. This improves disk throughput (from 320MiB/sec to 600MiB/sec indd
on a 2015 MacBook Pro) and disk space handling. Existing disks are kept in qcow format, if you want to switch to raw format you need to “Remove all data” or “Reset to factory defaults”. See https://docs.docker.com/docker-for-mac/faqs/#disk-usage - DNS name
docker.for.mac.host.internal
should be used instead ofdocker.for.mac.localhost
(still valid) for host resolution from containers, since since there is an RFC banning the use of subdomains of localhost. See https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06.
- Bug fixes and minor changes
- Display various component versions in About box.
- Avoid VM reboot when changing host proxy settings.
- Don’t break HTTP traffic between containers by forwarding them via the external proxy. (See docker/for-mac#981)
- Filesharing settings are now stored in settings.json.
- Daemon restart button has been moved to settings / Reset Tab.
- Better VM state handling & error messages in case of VM crashes.
- Fix login into private repository with certificate issue. (See docker/for-mac#2201)
Stable Releases of 2017
Docker Community Edition 17.09.1-ce-mac42 2017-12-11
- Upgrades
- Bug fixes and minor changes
- Fix bug not allowing to move qcow disk in some cases.
Docker Community Edition 17.09.0-ce-mac35 2017-10-06
- Bug fix
- Fix Docker For Mac unable to start in some cases : removed use of libgmp sometimes causing the vpnkit process to die.
Docker Community Edition 17.09.0-ce-mac33 2017-10-03
- Bug fix
- Do not show Toolbox migration assistant when there are existing Docker For Mac data.
Docker Community Edition 17.09.0-ce-mac32 2017-10-02
- Upgrades
- Docker 17.09.0-ce
- Docker Compose 1.16.1
- Docker Machine 0.12.2
- Docker Credential Helpers 0.6.0
- Linux Kernel 4.9.49
- AUFS 20170911
- DataKit update (fix instability on High Sierra)
- New
- Add daemon options validation
- VPNKit: add support for ping!
- VPNKit: add slirp/port-max-idle-timeout to allow the timeout to be adjusted or even disabled
- VPNKit: bridge mode is default everywhere now
- Transparent proxy using macOS system proxies (if defined) directly
- GUI settings are now stored in ~/Library/Group\ Containers/group.com.docker/settings.json. daemon.json in now a file in ~/.docker/
- You can now change the default IP address used by Hyperkit if it collides with your network
- Bug fixes and minor changes
- Fix instability on High Sierra (docker/for-mac#2069, docker/for-mac#2062, docker/for-mac#2052, docker/for-mac#2029, docker/for-mac#2024)
- Fix password encoding/decoding (docker/for-mac#2008, docker/for-mac#2016, docker/for-mac#1919, docker/for-mac#712, docker/for-mac#1220).
- Kernel: Enable TASK_XACCT and TASK_IO_ACCOUNTING (docker/for-mac#1608)
- Rotate logs in the VM more often
- VPNKit: change protocol to support error messages reported back from the server
- VPNKit: fix a bug which causes a socket to leak if the corresponding TCP connection is idle for more than 5 minutes (related to docker/for-mac#1374)
- VPNKit: improve the logging around the Unix domain socket connections
- VPNKit: automatically trim whitespace from int or bool database keys
- Diagnose can be cancelled & Improved help information. Fixes docker/for-mac#1134, docker/for-mac#1474
- Support paging of docker-cloud repositories & orgs. Fixes docker/for-mac#1538
Docker Community Edition 17.06.2-ce-mac27 2017-09-06
- Upgrades
Docker Community Edition 17.06.1-ce-mac24, 2017-08-21
Upgrades
- Docker 17.06.1-ce-rc1
- Linux Kernel 4.9.36
- AUFS 20170703
Bug fixes and minor changes
-
DNS Fixes. Fixes docker/for-mac#1763, docker/for-mac#1811, docker/for-mac#1803
-
Avoid unnecessary VM reboot (when changing proxy exclude, but no proxy set). Fixes docker/for-mac#1809, docker/for-mac#1801
Docker Community Edition 17.06.0-ce-mac18, 2017-06-28
Upgrades
- Docker 17.06.0-ce
- Docker Credential Helpers 0.5.2
- Docker Machine 0.12.0
- Docker compose 1.14.0
- qcow-tool v0.10.0 (improve the performance of
compact
: mirage/ocaml-qcow#94) - OSX Yosemite 10.10 is marked as deprecated
- Linux Kernel 4.9.31
New
- Integration with Docker Cloud: control remote Swarms from the local CLI and view your repositories.
- GUI Option to opt out of credential store
- GUI option to reset Docker data without losing all settings (fixes docker/for-mac#1309)
- Add an experimental DNS name for the host:
docker.for.mac.localhost
- Support for client (i.e. “login”) certificates for authenticating registry access (fixes docker/for-mac#1320)
- OSXFS: support for
cached
mount flag to improve performance of macOS mounts when strict consistency is not necessary
Bug fixes and minor changes
- Resync HTTP(S) proxy settings on application start
- Interpret system proxy setting of
localhost
correctly (see docker/for-mac#1511) - All Docker binaries bundled with Docker for Mac are now signed
- Display all Docker Cloud organizations and repositories in the whale menu (fixes docker/for-mac#1538 )
- OSXFS: improved latency for many common operations, such as read and write, by approximately 25%
- Fixed GUI crash when text table view was selected and windows re-opened (fixes docker/for-mac#1477)
- Reset to default / uninstall also remove
config.json
andosxkeychain
credentials - More detailed VirtualBox uninstall requirements ( docker/for-mac#1343)
- Request time sync after waking up to improve docker/for-mac#17
- VPNKit: Improved DNS timeout handling (fixes docker/for-mac#202)
- VPNKit: Use DNSServiceRef API by default (only enabled for new installs or after factory reset)
- Add a reset to factory defaults button when application crashes
- Toolbox import dialog now defaults to “Skip”
- Buffered data should be treated correctly when Docker client requests are upgraded to raw streams
- Removed an error message from the output related to experimental features handling
vmnetd
should not crash when user home directory is on an external drive- Improved settings database schema handling
- Disk trimming should work as expected
- Diagnostics now contains more settings data
Docker Community Edition 17.03.1-ce-mac12, 2017-05-12
Upgrades
- Security fix for CVE-2017-7308
Docker Community Edition 17.03.1-ce-mac5, 2017-03-29
Upgrades
Docker Community Edition 17.03.0-ce-mac1, 2017-03-02
New
- Renamed to Docker Community Edition
- Integration with Docker Cloud: control remote Swarms from the local CLI and view your repositories. This feature is going to be rolled out to all users progressively
- Docker will now securely store your IDs in the macOS keychain
Upgrades
- Docker 17.03.0-ce
- Docker Compose 1.11.2
- Docker Machine 0.10.0
- Linux kernel 4.9.12
Bug fixes and minor changes
- Allow to reset faulty daemon.json through a link in advanced subpanel
- More options when moving disk image
- Add link to experimental features
- Filesharing and daemon table empty fields are editable
- Hide restart button in settings window
- Fix bug where update window hides when app not focused
- Don’t use port 4222 inside the Linux VM
- Add page_poison=1 to boot args
- Add a new disk flushing option
- DNS forwarder ignores responses from malfunctioning servers (docker/for-mac#1025)
- DNS forwarder send all queries in parallel, process results in order
- DNS forwarder includes servers with zones in general searches (docker/for-mac#997)
- Parses aliases from /etc/hosts (docker/for-mac#983)
- Can resolve DNS requests via servers listed in the /etc/resolver directory on the host
- Limit vCPUs to 64
- Fixed for swap not being mounted
- Fixed aufs xattr delete issue (docker/docker#30245)
- osxfs: Catch EPERM when reading extended attributes of non-files
- VPNKit: Fixed unmarshalling of DNS packets containing pointers to pointers to labels
- VPNKit: Set the Recursion Available bit on DNS responses from the cache
- VPNKit: Avoid diagnostics to capture too much data
- VPNKit: Fixed a source of occasional packet loss (truncation) on the virtual ethernet link
- HyperKit: Dump guest physical and linear address from VMCS when dumping state
- HyperKit: Kernel boots with panic=1 arg
Docker for Mac 1.13.1, 2017-02-09
Upgrades
- Docker 1.13.1
- Docker Compose 1.11.1
- Linux kernel 4.9.8
Bug fixes and minor changes
- Add link to experimental features
- New 1.13 cancellable operations should now be properly handled by the Docker for desktop
daemon.json
should render nicely in the UI- Allow to reset faulty
daemon.json
through a link in advanced subpanel
Docker for Mac 1.13.0, 2017-01-19
Upgrades
- Docker 1.13.0
- Docker Compose 1.10
- Docker Machine 0.9.0
- Notary 0.4.3
- Linux kernel 4.9.4
- qcow-tool 0.7.2
New
- The storage location of the Linux volume can now be moved
- Reclaim disk size on reboot
- You can now edit filesharing paths
- Memory can be allocated with 256 MiB steps
- Proxy can now be completely disabled
- Support for arm, aarch64, ppc64le architectures using qemu
- Dedicated preference pane for advanced configuration of the
docker daemon (edit
daemon.json
) - Docker Experimental mode can be toggled
- Better support for Split DNS VPN configurations
- Use more DNS servers, respect order
Bug fixes and minor changes
- You cannot edit settings while docker is restarting
- Support Copy/Paste in About box
- Auto update polling every 24h
- Kernel boots with vsyscall=emulate arg and CONFIG_LEGACY_VSYSCALL is set to NONE in Moby
- Fixed vsock deadlock under heavy write load
- If you opt-out of analytics, you’re prompted for approval before a bug report is sent
- Fixed bug where search domain could be read as
DomainName
- Dedicated preference pane for HTTP proxy settings
- Dedicated preference pane for CPU & Memory computing resources
- Privacy settings moved to the general preference pane
- Fixed an issue where the preference pane disappeared when the welcome whale menu was closed
- HyperKit: code cleanup and minor fixes
- Improvements to Logging and Diagnostics
- osxfs: switch to libev/kqueue to improve latency
- VPNKit: improvements to DNS handling
- VPNKit: Improved diagnostics
- VPNKit: Forwarded UDP datagrams should have correct source port numbers
- VPNKit: add a local cache of DNS responses
- VPNKit: If one request fails, allow other concurrent requests to succeed. For example this allows IPv4 servers to work even if IPv6 is broken.
- VPNKit: Fix bug that could cause the connection tracking to underestimate the number of active connections
Stable Releases of 2016
Docker for Mac 1.12.5, 2016-12-20
Upgrades
- Docker 1.12.5
- Docker Compose 1.9.0
Skipped Docker for Mac 1.12.4
We did not distribute a 1.12.4 stable release
Docker for Mac 1.12.3, 2016-11-09
Upgrades
- Docker 1.12.3
- Linux Kernel 4.4.27
- Notary 0.4.2
- Docker Machine 0.8.2
- Docker Compose 1.8.1
- Kernel vsock driver v7
- aufs 20160912
Bug fixes and minor changes
General
-
Fixed an issue where the whale animation during setting change was inconsistent
-
Fixed an issue where some windows stayed hidden behind another app
-
Fixed an issue where the Docker status would continue to be yellow/animated after the VM had started correctly
-
Fixed an issue where Docker for Mac was incorrectly reported as updated
-
Channel is now displayed in About box
-
Crash reports are sent over Bugsnag rather than HockeyApp
-
Fixed an issue where some windows did not claim focus correctly
-
Added UI when switching channel to prevent user losing containers and settings
-
Check disk capacity before Toolbox import
-
Import certificates in
etc/ssl/certs/ca-certificates.crt
-
disk: make the “flush” behaviour configurable for database-like workloads. This works around a performance regression in 1.12.1.
Networking
-
Proxy: Fixed application of system or custom proxy settings over container restart
-
DNS: reduce the number of UDP sockets consumed on the host
-
VPNkit: improve the connection-limiting code to avoid running out of sockets on the host
-
UDP: handle diagrams bigger than 2035, up to the configured macOS kernel limit
-
UDP: make the forwarding more robust; drop packets and continue rather than stopping
File sharing
-
osxfs: Fixed the prohibition of chown on read-only or mode 0 files, (fixes docker/for-mac#117, docker/for-mac#263, docker/for-mac#633)
-
osxfs: Fixed race causing some reads to run forever
-
osxfs: Fixed a simultaneous volume mount race which can result in a crash
Moby
- Increase default ulimit for memlock (fixes docker/for-mac#801)
Docker for Mac 1.12.1, 2016-09-16
New
- Support for macOS 10.12 Sierra
Upgrades
- Docker 1.12.1
- Docker machine 0.8.1
- Linux kernel 4.4.20
- aufs 20160905
Bug fixes and minor changes
General
-
Fixed communications glitch when UI talks to com.docker.vmnetd Fixes docker/for-mac#90
-
docker-diagnose
: display and record the time the diagnosis was captured -
Don’t compute the container folder in
com.docker.vmnetd
Fixes docker/for-mac#47 -
Warn the user if BlueStacks is installed (potential kernel panic)
-
Automatic update interval changed from 1 hour to 24 hours
-
Include Zsh completions
-
UI Fixes
Networking
-
VPNKit supports search domains
-
slirp: support up to 8 external DNS servers
-
slirp: reduce the number of sockets used by UDP NAT, reduce the probability that NAT rules will time out earlier than expected
-
Entries from
/etc/hosts
should now resolve from within containers -
Allow ports to be bound on host addresses other than
<IP_ADDRESS>
and<IP_ADDRESS>
Fixes issue reported in docker/for-mac#68 -
Use Mac System Configuration database to detect DNS
File sharing (osxfs)
-
Fixed thread leak
-
Fixed a malfunction of new directories that have the same name as an old directory that is still open
-
Rename events now trigger DELETE and/or MODIFY
inotify
events (saving with TextEdit works now) -
Fixed an issue that caused
inotify
failure and crashes -
Fixed a directory file descriptor leak
-
Fixed socket
chowns
Moby
-
Use default
sysfs
settings, transparent huge pages disabled -
cgroup
mount to supportsystemd
in containers -
Increase Moby
fs.file-max
to 524288 -
Fixed Moby Diagnostics and Update Kernel
HyperKit
- HyperKit updated with
dtrace
support and lock fixes
Docker for Mac 2016-08-11 1.12.0-a
This bug fix release contains osxfs improvements. The fixed issues may have been seen as failures with apt-get and npm in containers, missed inotify events or unexpected unmounts.
Bug fixes
-
osxfs: fixed an issue causing access to children of renamed directories to fail (symptoms: npm failures, apt-get failures)
-
osxfs: fixed an issue causing some ATTRIB and CREATE inotify events to fail delivery and other inotify events to stop
-
osxfs: fixed an issue causing all inotify events to stop when an ancestor directory of a mounted directory was mounted
-
osxfs: fixed an issue causing volumes mounted under other mounts to spontaneously unmount
Docker for Mac 1.12.0, 2016-07-28
- First stable release
Components
- Docker 1.12.0
- Docker Machine 0.8.0
- Docker Compose 1.8.0


PublicApi
ui.grid.treeBase
Public Api for treeBase feature
collapse all tree rows
collapse the specified row. When you expand the row again, all grandchildren will retain their state
| Param | Type | Details |
|---|---|---|
| row | gridRow | the row you wish to collapse |
collapse all children of the specified row. When you expand the row again, all grandchildren will be collapsed
| Param | Type | Details |
|---|---|---|
| row | gridRow | the row you wish to collapse children for |
Get the tree state for this grid,
used by the saveState feature
Returned treeState as an object
{ expandedState: { uid: 'expanded', uid: 'collapsed' } }
where expandedState is a hash of row uid and the current expanded state
| object | tree state TODO - this needs work - we need an identifier that persists across instantiations, not uid. This really means we need a row identity defined, but that won't work for grouping. Perhaps this needs to be moved up to treeView and grouping, rather than being in base. |
Set the expanded states of the tree
| Param | Type | Details |
|---|---|---|
| config | object | the config you want to apply, in the format provided by getTreeState |
call expand if the row is collapsed, collapse if it is expanded
| Param | Type | Details |
|---|---|---|
| row | gridRow | the row you wish to toggle |
raised whenever a row is collapsed. Doesn't really have a purpose at the moment, included for symmetry
gridApi.treeBase.on.rowCollapsed(scope,function(row){})
| Param | Type | Details |
|---|---|---|
| row | gridRow | the row that was collapsed. You can also retrieve the grid from this row with row.grid |


import csv
import pickle
import torch
import threading
import math
import random
import pandas as pd
from tqdm import trange
#from package.definition import logger
from package.utils import save_pickle
[docs]class MultiLoader():
"""
Multi Data Loader using Threads.
Args:
dataset_list (list): list of BaseDataset
queue (Queue.queue): queue for threading
batch_size (int): size of batch
worker_num (int): the number of cpu cores used
"""
def __init__(self, dataset_list, queue, batch_size, worker_num):
self.dataset_list = dataset_list
self.queue = queue
self.batch_size = batch_size
self.worker_num = worker_num
self.loader = list()
for idx in range(self.worker_num):
self.loader.append(BaseDataLoader(self.dataset_list[idx], self.queue, self.batch_size, idx))
def start(self):
for idx in range(self.worker_num):
self.loader[idx].start()
def join(self):
for idx in range(self.worker_num):
self.loader[idx].join()
[docs]class BaseDataLoader(threading.Thread):
"""
Base Data Loader
Args:
dataset (package.dataset.BaseDataset): object of BaseDataset
queue (Queue.queue): queue for threading
batch_size (int): size of batch
thread_id (int): identification of thread
"""
def __init__(self, dataset, queue, batch_size, thread_id):
threading.Thread.__init__(self)
self.collate_fn = _collate_fn
self.dataset = dataset
self.queue = queue
self.idx = 0
self.batch_size = batch_size
self.dataset_count = dataset.count()
self.thread_id = thread_id
def count(self):
return math.ceil(self.dataset_count / self.batch_size)
def create_empty_batch(self):
seqs = torch.zeros(0, 0, 0)
targets = torch.zeros(0, 0).to(torch.long)
seq_lengths = list()
target_lengths = list()
return seqs, targets, seq_lengths, target_lengths
[docs] def run(self):
logger.debug('loader %d start' % (self.thread_id))
while True:
items = list()
for _ in range(self.batch_size):
if self.idx >= self.dataset_count:
break
feat, label = self.dataset.get_item(self.idx)
if feat is not None:
items.append((feat, label))
self.idx += 1
if len(items) == 0:
batch = self.create_empty_batch()
self.queue.put(batch)
break
random.shuffle(items)
batch = self.collate_fn(items)
self.queue.put(batch)
logger.debug('loader %d stop' % (self.thread_id))
def _collate_fn(batch):
""" functions that pad to the maximum sequence length """
def seq_length_(p):
return len(p[0])
def target_length_(p):
return len(p[1])
seq_lengths = [len(s[0]) for s in batch]
target_lengths = [len(s[1]) for s in batch]
max_seq_sample = max(batch, key=seq_length_)[0]
max_target_sample = max(batch, key=target_length_)[1]
max_seq_size = max_seq_sample.size(0)
max_target_size = len(max_target_sample)
feat_size = max_seq_sample.size(1)
batch_size = len(batch)
seqs = torch.zeros(batch_size, max_seq_size, feat_size)
targets = torch.zeros(batch_size, max_target_size).to(torch.long)
from package.definition import PAD_TOKEN
targets.fill_(PAD_TOKEN)
for x in range(batch_size):
sample = batch[x]
tensor = sample[0]
target = sample[1]
seq_length = tensor.size(0)
seqs[x].narrow(0, 0, seq_length).copy_(tensor)
targets[x].narrow(0, 0, len(target)).copy_(torch.LongTensor(target))
return seqs, targets, seq_lengths, target_lengths
[docs]def load_targets(label_paths):
"""
Provides dictionary of filename and labels
Args:
label_paths (list): set of label paths
Returns: target_dict
- **target_dict** (dict): dictionary of filename and labels
"""
target_dict = dict()
for idx in trange(len(label_paths)):
label_txt = label_paths[idx]
with open(file=label_txt, mode="r") as f:
label = f.readline()
file_num = label_txt.split('/')[-1].split('.')[0].split('_')[-1]
target_dict['KaiSpeech_label_%s' % file_num] = label
save_pickle(target_dict, "./data/pickle/target_dict.bin", message="target_dict save complete !!")
return target_dict
[docs]def load_data_list(data_list_path, dataset_path):
"""
Provides set of audio path & label path
Args:
data_list_path (str): csv file with training or test data list path.
dataset_path (str): dataset path.
Returns: audio_paths, label_paths
- **audio_paths** (list): set of audio path
- **label_paths** (list): set of label path
"""
data_list = pd.read_csv(data_list_path, "r", delimiter = ",", encoding="cp949")
audio_paths = list(dataset_path + data_list["audio"])
label_paths = list(dataset_path + data_list["label"])
return audio_paths, label_paths
[docs]def load_label(label_path, encoding='utf-8'):
"""
Provides char2id, id2char
Args:
label_path (list): csv file with character labels
encoding (str): encoding method
Returns: char2id, id2char
- **char2id** (dict): char2id[ch] = id
- **id2char** (dict): id2char[id] = ch
"""
char2id = dict()
id2char = dict()
with open(label_path, 'r', encoding=encoding) as f:
labels = csv.reader(f, delimiter=',')
next(labels)
for row in labels:
char2id[row[1]] = row[0]
id2char[int(row[0])] = row[1]
return char2id, id2char
[docs]def load_pickle(filepath, message=""):
"""
load pickle file
Args:
filepath (str): Path to pickle file to load
message (str): message to print
Returns: load_result
-**load_result** : load result of pickle
"""
with open(filepath, "rb") as f:
load_result = pickle.load(f)
logger.info(message)
return load_result


| EnableCameraOverlays
| true
| Set to false to disable the overlay displayed when you use your mechanical eye zoom.
|
| Difficulty_AIAudio_Mult_Easy
| 0.8
| Changes how well the AI can hear.
|
| Difficulty_AIAudio_Mult_Expert
| 1.13
|
| Difficulty_AIAudio_Mult_Hard
| 1.03
|
| Difficulty_AIAudio_Mult_Normal
| 1.0
|
| Difficulty_AICombatSpeed_Mult_Easy
| 1.0
| Changes how fast AI combat animations are.
|
| Difficulty_AICombatSpeed_Mult_Expert
| 1.2
|
| Difficulty_AICombatSpeed_Mult_Hard
| 1.1
|
| Difficulty_AICombatSpeed_Mult_Normal
| 1.0
|
| Difficulty_AIHitPoints_Mult_Easy
| 0.75
| Changes how much HP the AI starts with.
|
| Difficulty_AIHitPoints_Mult_Expert
| 1.3
|
| Difficulty_AIHitPoints_Mult_Hard
| 1.2
|
| Difficulty_AIHitPoints_Mult_Normal
| 1.0
|
| Difficulty_AITactile_Mult_Easy
| 1.0
| Changes how well the AI can feel.
|
| Difficulty_AITactile_Mult_Expert
| 1.0
|
| Difficulty_AITactile_Mult_Hard
| 1.0
|
| Difficulty_AITactile_Mult_Normal
| 1.0
|
| Difficulty_AIToPlayerDamage_Mult_Easy
| 0.5
| Changes how much damage AI does to you.
|
| Difficulty_AIToPlayerDamage_Mult_Expert
| 1.5
|
| Difficulty_AIToPlayerDamage_Mult_Hard
| 1.25
|
| Difficulty_AIToPlayerDamage_Mult_Normal
| 1.0
|
| Difficulty_AIVisual_Mult_Easy
| 0.9
| Changes how well the AI can see.
|
| Difficulty_AIVisual_Mult_Expert
| 1.2
|
| Difficulty_AIVisual_Mult_Hard
| 1.15
|
| Difficulty_AIVisual_Mult_Normal
| 1.0
|
| bAutoResurrect__t
| FALSE
| Set to TRUE to automatically resurrect when you die. May cause issues, such as falling thru the ground.
|
| ShowIntroMovies
| True
| Set to False to skip movies that play when you start the game.
|
| WorldGravityZ
| -514.96065
| Changes downards gravity.
|
| StartupFullscreen
| True
| Set to False to prevent forced fullscreen on every load.
|


Loc Nguyen
Download JSI.
The Jagged Strategy Investment (JSI) project provides lightweight software for investors to invest with stocks and forex products. The paper about JSI is available at https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3139248