--- title: Field Reference linktitle: Field Reference description: This document describes the fields for building a Frisbee experiment. publishdate: 2022-06-28 lastmod: 2022-06-28 layout: single menu: main: parent: "section name" weight: 10 weight: 10 draft: false aliases: [/fields] toc: true ---
Packages:
Package v1alpha1 contains API Schema definitions for the Frisbee v1alpha1 API group
(Appears on:ScenarioSpec)
Action is a step in a workflow that defines a particular part of a testing process.
| Field | Description |
|---|---|
action ActionType |
ActionType refers to a category of actions that can be associated with a specific controller. |
name string |
Name is a unique identifier of the action |
depends WaitSpec |
(Optional)
DependsOn defines the conditions for the execution of this action |
assert ConditionalExpr |
(Optional)
Assert defines the conditions that must be maintained after the action has been started. If the evaluation of the condition is false, the Scenario will abort immediately. |
EmbedActions EmbedActions |
(Members of |
string
alias)(Appears on:Action)
| Value | Description |
|---|---|
"Call" |
ActionCall starts a remote process execution, from the controller to the targeted services. |
"Cascade" |
ActionCascade injects multiple failures into the running system. |
"Chaos" |
ActionChaos injects failures into the running system. |
"Cluster" |
ActionCluster creates multiple services running in a shared context. |
"Delete" |
ActionDelete deletes a created Frisbee resource (i.e services, clusters,). |
"Service" |
ActionService creates a new service. |
Call is the Schema for the Call API.
| Field | Description | ||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||||||
spec CallSpec |
|
||||||||||||||
status CallStatus |
(Appears on:Call, EmbedActions)
CallSpec defines the desired state of Call.
| Field | Description |
|---|---|
callable string |
Callable is the name of the endpoint that will be called |
services []string |
Services is a list of services that will be stopped. |
schedule TaskSchedulerSpec |
(Optional)
Schedule defines the interval between the invocations of the callable. |
expect []MatchOutputs |
(Optional)
Expect declares a list of expected outputs. The number of expected outputs must be the same as the number of defined services. |
suspend bool |
(Optional)
Suspend forces the Controller to stop scheduling any new jobs until it is resumed. Defaults to false. |
suspendWhen ConditionalExpr |
(Optional)
SuspendWhen automatically sets Suspend to True, when certain conditions are met. |
tolerate TolerateSpec |
(Optional)
Tolerate specifies the conditions under which the call will fail. If undefined, the call fails immediately when a call to service has failed. |
(Appears on:Call)
CallStatus defines the observed state of Call.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []Callable |
(Optional)
QueuedJobs is a list of services scheduled for stopping. |
expectedTimeline Timeline |
(Optional)
ExpectedTimeline is the result of evaluating a timeline distribution into specific points in time. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Service was successfully scheduled. |
(Appears on:CallStatus, ServiceSpec)
Callable is a script that is executed within the service container, and returns a value. For example, a callable can be a command for stopping the containers that run in the Pod.
| Field | Description |
|---|---|
container string |
Container specific the name of the container to which we will run the command |
command []string |
Container specifies a command and arguments to stop the targeted container in an application-specific manner. |
Cascade is the Schema for the clusters API.
| Field | Description | ||||||||
|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||
spec CascadeSpec |
|
||||||||
status CascadeStatus |
(Appears on:Cascade, EmbedActions)
CascadeSpec defines the desired state of Cascade.
| Field | Description |
|---|---|
GenerateObjectFromTemplate GenerateObjectFromTemplate |
(Members of |
schedule TaskSchedulerSpec |
(Optional)
Schedule defines the interval between the creation of services within the group. |
suspend bool |
(Optional)
Suspend forces the Controller to stop scheduling any new jobs until it is resumed. Defaults to false. |
suspendWhen ConditionalExpr |
(Optional)
SuspendWhen automatically sets Suspend to True, when certain conditions are met. |
(Appears on:Cascade)
CascadeStatus defines the observed state of Cascade.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []ChaosSpec |
(Optional)
QueuedJobs is a list of Chaos jobs scheduled for creation by the cascade. |
expectedTimeline Timeline |
(Optional)
ExpectedTimeline is the result of evaluating a timeline distribution into specific points in time. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Chaos job was successfully scheduled. |
Chaos is the Schema for the chaos API.
| Field | Description | ||
|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||
spec ChaosSpec |
|
||
status ChaosStatus |
(Appears on:CascadeStatus, Chaos, EmbedSpecs)
ChaosSpec defines the desired state of Chaos.
| Field | Description |
|---|---|
raw string |
(Appears on:Chaos)
ChaosStatus defines the observed state of Chaos.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Pod was scheduled. |
Cluster is the Schema for the clusters API.
| Field | Description | ||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||||||||||||||
spec ClusterSpec |
|
||||||||||||||||||
status ClusterStatus |
(Appears on:Cluster, EmbedActions)
ClusterSpec defines the desired state of Cluster.
| Field | Description |
|---|---|
GenerateObjectFromTemplate GenerateObjectFromTemplate |
(Members of |
testData TestdataVolume |
(Optional)
TestData defines a volume that will be mounted across the Scenario’s Services. |
defaultDistribution DistributionSpec |
(Optional)
DefaultDistributionSpec pre-calculates a scoped distribution that can be accessed by other entities using “distribution.name : default”. This default distribution allows us to describe complex relations across features managed by different entities (e.g, place the largest dataset on the largest node). |
resources ResourceDistributionSpec |
(Optional)
Resources defines how a set of resources will be distributed among the cluster’s services. |
schedule TaskSchedulerSpec |
(Optional)
Schedule defines the interval between the creation of services in the group. |
placement PlacementSpec |
(Optional)
Placement defines rules for placing the containers across the available nodes. |
suspend bool |
(Optional)
Suspend forces the Controller to stop scheduling any new jobs until it is resumed. Defaults to false. |
suspendWhen ConditionalExpr |
(Optional)
SuspendWhen automatically sets Suspend to True, when certain conditions are met. |
tolerate TolerateSpec |
(Optional)
Tolerate forces the Controller to continue in spite of failed jobs. |
(Appears on:Cluster)
ClusterStatus defines the observed state of Cluster.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
queuedJobs []ServiceSpec |
(Optional)
QueuedJobs is a list of jobs that the controller has to scheduled. |
defaultDistribution []float64 |
(Optional)
DefaultDistribution keeps the evaluated expression of GenerateObjectFromTemplate.DefaultDistributionSpec. |
expectedTimeline Timeline |
(Optional)
ExpectedTimeline is the result of evaluating a timeline distribution into specific points in time. |
scheduledJobs int |
ScheduledJobs points to the next QueuedJobs. |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Job was successfully scheduled. |
string
alias)| Value | Description |
|---|---|
"SUT" |
ComponentSUT is a component that belongs to the system under testing. |
"SYS" |
ComponentSys is a Frisbee component that is necessary for the execution of a test (e.g, Chaos, Grafana, …) |
string
alias)ConditionType is a valid value for WorkflowCondition.Type.
| Value | Description |
|---|---|
"AllJobsAreCompleted" |
ConditionAllJobsAreCompleted indicates that all jobs have been successfully completed. Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc. |
"AllJobsAreScheduled" |
ConditionAllJobsAreScheduled indicates that all jobs have been successfully scheduled. Jobs may refer to actions of a scenario, services of a cluster, chaos events of a cascade, etc. |
"AssertError" |
ConditionAssertionError indicate that an assertion condition is false. |
"Initialized" |
ConditionCRInitialized indicates whether the workflow has been initialized. |
"InvalidStateTransition" |
ConditionInvalidStateTransition indicates the transition of a resource into another state. This is used for debugging. |
"UnexpectedTermination" |
ConditionJobUnexpectedTermination is used for a job that has been unexpectedly terminated. The termination refers to both Success and Fail. |
(Appears on:Action, CallSpec, CascadeSpec, ClusterSpec, TaskSchedulerSpec)
ConditionalExpr is a source of information about whether the state of the workflow after a given time is correct or not. This is needed because some scenarios may run in infinite-horizons.
| Field | Description |
|---|---|
metrics ExprMetrics |
(Optional)
Metrics set a Grafana alert that will be triggered once the condition is met. Parsing: Grafana URL: http://grafana/d/A2EjFbsMk/ycsb-services?editPanel=86 metrics: A2EjFbsMk/86/Average (Panel/Dashboard/Metric) |
state ExprState |
(Optional)
State describe the runtime condition that should be met after the action has been executed Shall be defined using .Lifecycle() methods. The methods account only jobs that are managed by the object. |
(Appears on:ServiceSpec)
Decorators takes-in a PodSpec, add some functionality and returns it.
| Field | Description |
|---|---|
labels map[string]string |
(Optional) |
annotations map[string]string |
(Optional) |
setFields []SetField |
(Optional)
SetFields is used to populate fields. Used for dynamic assignment based templated inputs. |
telemetry []string |
(Optional)
Telemetry is a list of referenced agents responsible to monitor the Service. Agents are sidecar services will be deployed in the same Pod as the Service container. |
ingressPort Kubernetes networking/v1.ServiceBackendPort |
(Optional)
IngressPort builds an ingress for making the service’s port accessible outside the Kubernetes cluster. |
(Appears on:EmbedActions)
| Field | Description |
|---|---|
jobs []string |
Jobs is a list of jobs to be deleted. The format is {“kind”:“name”}, e.g, {“service”,“client”} |
(Appears on:DistributionSpec)
DistParamsPareto are parameters for the Pareto distribution.
| Field | Description |
|---|---|
scale float64 |
|
shape float64 |
string
alias)(Appears on:DistributionSpec)
| Value | Description |
|---|---|
"constant" |
DistributionConstant is a fixed distributed with all elements having a probability of 1. |
"default" |
DistributionDefault instructs the controller to use an already evaluated distribution. |
"normal" |
DistributionNormal draws samples from a normal (Gaussian) distribution |
"pareto" |
DistributionPareto draws samples from a Pareto distribution |
"uniform" |
DistributionUniform draws samples from a continuous uniform distribution |
(Appears on:ClusterSpec, ResourceDistributionSpec, TimelineDistributionSpec)
| Field | Description |
|---|---|
name DistributionName |
|
histogram DistParamsPareto |
(Optional) |
(Appears on:Action)
| Field | Description |
|---|---|
service GenerateObjectFromTemplate |
(Optional) |
cluster ClusterSpec |
(Optional) |
chaos GenerateObjectFromTemplate |
(Optional) |
cascade CascadeSpec |
(Optional) |
delete DeleteSpec |
(Optional) |
call CallSpec |
(Optional) |
(Appears on:TemplateSpec)
| Field | Description |
|---|---|
service ServiceSpec |
(Optional) |
chaos ChaosSpec |
(Optional) |
string
alias)(Appears on:ConditionalExpr)
string
alias)(Appears on:ConditionalExpr)
(Appears on:CascadeSpec, ClusterSpec, EmbedActions)
GenerateObjectFromTemplate generates a spec by parameterizing the templateRef with the given inputs.
| Field | Description |
|---|---|
templateRef string |
TemplateRef refers to a template (e.g, iperf-server). |
instances int |
(Optional)
MaxInstances dictate the number of objects to be created for the CR. If no inputs are defined, then all instances will be initiated using the default parameters of the template. Event used in conjunction with Until, MaxInstances as a max bound. |
inputs []UserInputs |
(Optional)
UserParameters is a map of parameters passed to the objects. Event used in conjunction with instances, if the number of instances is larger that the number of inputs, then inputs are recursively iteration. |
(Appears on:CallStatus, CascadeStatus, ChaosStatus, ClusterStatus, ScenarioStatus, ServiceStatus, TemplateStatus, VirtualObjectStatus)
| Field | Description |
|---|---|
phase Phase |
Phase is a simple, high-level summary of where the Object is in its lifecycle. The conditions array, the reason and message fields, and the individual container status arrays contain more detail about the pod’s status. |
reason string |
(Optional)
Reason is A brief CamelCase message indicating details about why the service is in this Phase. e.g. ‘Evicted’ |
message string |
Message provides more details for understanding the Reason. |
conditions []Kubernetes meta/v1.Condition |
(Optional)
Conditions describe sequences of events that warrant the present Phase. |
(Appears on:ServiceSelector)
MatchBy defines the selectors for services. If the all selectors are empty, all services will be selected.
| Field | Description |
|---|---|
byName map[string][]string |
(Optional)
ByName is a map of string keys and a set values that used to select services. The key defines the namespace which services belong, and the values is a set of service names. |
byCluster map[string]string |
(Optional)
ByCluster defines the service group where services belong. |
(Appears on:CallSpec)
MatchOutputs defined a set of remote command outputs that must be matched. The limit for both Stdout and Stderr is 1024 characters.
| Field | Description |
|---|---|
stdout string |
(Optional)
Stdout is a regex that describes the expected output from stdout. It cannot be longer than 1024 characters. |
stderr string |
(Optional)
Stderr is a regex that describes the expected output from stderr. It cannot be longer than 1024 characters. |
string
alias)(Appears on:ServiceSelector)
Mode represents the filter for selecting on of many.
| Value | Description |
|---|---|
"all" |
AllMode represents that the system will select all objects regardless of status (not ready or not running pods includes). Use this label carefully. |
"fixed" |
FixedMode represents that the system will select a specific number of running objects. |
"fixed-percent" |
FixedPercentMode to specify a fixed % of a cluster. |
"one" |
OneMode represents that the system will select one object randomly. |
"random-max-percent" |
RandomMaxPercentMode to specify a maximum % of a cluster. |
map[string]*k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
alias)(Appears on:TemplateInputs)
string
alias)(Appears on:Lifecycle)
Phase is a simple, high-level summary of where the Object is in its lifecycle.
| Value | Description |
|---|---|
"Failed" |
PhaseFailed means that at least one job of the CR has terminated in a failure (exited with a non-zero exit code or was stopped by the system). |
"Pending" |
PhasePending means that the CR has been accepted by the Kubernetes cluster, but one of the child jobs has not been created. This includes the time waiting for logical dependencies, Ports discovery, data rewiring, and placement of Pods. |
"Running" |
PhaseRunning means that all the child jobs of a CR have been created, and at least one job is still running. |
"Success" |
PhaseSuccess means that all jobs in a CR have voluntarily exited, and the system is not going to restart any of these Jobs. |
"" |
PhaseUninitialized means that request is not yet accepted by the controller. |
(Appears on:ClusterSpec)
PlacementSpec defines rules for placing the containers across the available nodes.
| Field | Description |
|---|---|
collocate bool |
(Optional)
Collocate will place all the Services of this Cluster within the same node. |
conflictsWith []string |
ConflictsWith points to another Cluster whose Services cannot be located with this one. For example, this is needed for placing the master nodes on a different failure domain than the slave nodes. |
nodes []string |
(Optional)
Nodes will place all the Services of this Cluster within the specific set of nodes. |
[]k8s.io/api/core/v1.ResourceList
alias)(Appears on:ClusterSpec)
| Field | Description |
|---|---|
total Kubernetes core/v1.ResourceList |
TotalResources defines the total resources that will be distributed among the cluster’s services. |
distribution DistributionSpec |
DistributionSpec defines how the TotalResources will be assigned to resources. |
Scenario is the Schema for the Scenarios API.
| Field | Description | ||||||
|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||
spec ScenarioSpec |
|
||||||
status ScenarioStatus |
(Appears on:Scenario)
ScenarioSpec defines the desired state of Scenario.
| Field | Description |
|---|---|
testData TestdataVolume |
TestData defines a volume that will be mounted across the Scenario’s Services. |
actions []Action |
Actions are the tasks that will be taken. |
suspend bool |
(Optional)
Suspend flag tells the controller to suspend subsequent executions, it does not apply to already started executions. Defaults to false. |
(Appears on:Scenario)
ScenarioStatus defines the observed state of Scenario.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
scheduledJobs []string |
(Optional)
ScheduledJobs is a list of references to the names of executed actions. |
grafanaEndpoint string |
GrafanaEndpoint points to the local Grafana instance |
prometheusEndpoint string |
PrometheusEndpoint points to the local Prometheus instance |
dataviewerEndpoint string |
Dataviewer points to the local Dataviewer instance |
Service is the Schema for the services API.
| Field | Description | ||||||
|---|---|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||||
spec ServiceSpec |
|
||||||
status ServiceStatus |
| Field | Description |
|---|---|
match MatchBy |
(Optional)
Match contains the rules to select target |
mode Mode |
(Optional)
Mode defines which of the selected services to use. If undefined, all() is used Supported mode: one / all / fixed / fixed-percent / random-max-percent |
value string |
(Optional)
Value is required when the mode is set to |
macro string |
(Optional)
Macro abstract selector parameters into a structured string (e.g, .cluster.master.all). Every parsed field is represents an inner structure of the selector. In case of invalid macro, the selector will return empty results. Macro conflicts with any other parameter. |
(Appears on:ClusterStatus, EmbedSpecs, Service)
ServiceSpec defines the desired state of Service.
| Field | Description |
|---|---|
decorators Decorators |
(Optional) |
callables map[string]./api/v1alpha1.Callable |
(Optional) |
PodSpec Kubernetes core/v1.PodSpec |
(Members of |
(Appears on:Service)
ServiceStatus defines the observed state of Service.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
lastScheduleTime Kubernetes meta/v1.Time |
LastScheduleTime provide information about the last time a Pod was scheduled. |
(Appears on:Decorators)
| Field | Description |
|---|---|
field string |
Field is the path to the field whose value will be replaced. Examples: Containers.0.Ports.0 |
value string |
StateAggregationFunctions is a set of aggregation functions for managing the lifecycle of different resources.
(Appears on:CallSpec, CascadeSpec, ClusterSpec)
TaskSchedulerSpec determines the conditions for creating new tasks of a Job. The scheduler will schedule up to spec.GenerateObjectFromTemplate.Instances or spec.GenerateObjectFromTemplate.Until.
| Field | Description |
|---|---|
sequential bool |
Sequential schedules a new task once the previous task is complete. |
startingDeadlineSeconds int64 |
(Optional)
StartingDeadlineSeconds is an optional deadline in seconds for starting the job if it misses scheduled time for any reason. if we miss this deadline, we’ll just wait till the next scheduled time |
cron string |
(Optional)
Cron defines a cron job rule. Some rule examples: “0 30 * * * *” means to “Every hour on the half hour” “@hourly” means to “Every hour” “@every 1h30m” means to “Every hour thirty” More rule info: https://godoc.org/github.com/robfig/cron |
timeline TimelineDistributionSpec |
(Optional)
Timeline schedules new tasks deterministically, based on predefined times that honors the underlying distribution. Multiple tasks may run concurrently. |
event ConditionalExpr |
(Optional)
Event schedules new tasks in a non-deterministic manner, based on system-driven events. Multiple tasks may run concurrently. |
Template is the Schema for the templates API
| Field | Description | ||||
|---|---|---|---|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
||||
spec TemplateSpec |
|
||||
status TemplateStatus |
(Appears on:TemplateSpec)
| Field | Description |
|---|---|
parameters Parameters |
(Optional)
Parameters are user-set values that are dynamically evaluated |
namespace string |
(Optional)
Namespace returns the namespace from which the template is called from. |
scenario string |
(Optional)
Scenario returns the scenario from which the template is called from. |
(Appears on:Template)
TemplateSpec defines the desired state of Template.
| Field | Description |
|---|---|
inputs TemplateInputs |
(Optional)
Inputs are dynamic fields that populate the spec. |
EmbedSpecs EmbedSpecs |
(Members of EmbedSpecs point to the Frisbee specs that can be templated. |
(Appears on:Template)
TemplateStatus defines the observed state of Template.
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
(Appears on:ClusterSpec, ScenarioSpec)
| Field | Description |
|---|---|
volume Kubernetes core/v1.PersistentVolumeClaimVolumeSource |
|
globalNamespace bool |
(Optional)
GlobalNamespace if disabled, all containers see the name root directory. If enabled, each container sees its own namespace. |
[]k8s.io/apimachinery/pkg/apis/meta/v1.Time
alias)(Appears on:CallStatus, CascadeStatus, ClusterStatus)
(Appears on:TaskSchedulerSpec)
| Field | Description |
|---|---|
total Kubernetes meta/v1.Duration |
TotalDuration defines the total duration within which events will happen. |
distribution DistributionSpec |
DistributionSpec defines how the TotalDuration will be divided into time-based events. |
(Appears on:CallSpec, ClusterSpec)
TolerateSpec specifies the system’s ability to continue operating despite failures or malfunctions. If tolerate is enable, the cluster will remain “alive” even if some services have failed. Such failures are likely to happen as part of a Chaos experiment.
| Field | Description |
|---|---|
failedJobs int |
(Optional)
FailedJobs indicate the number of services that may fail before the cluster fails itself. |
map[string]*k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1.JSON
alias)(Appears on:GenerateObjectFromTemplate)
VirtualObject is a CRD without a dedicated controller. Practically, it is just an entry in the Kubernetes API that is used as placeholder for action like Delete and Call.
| Field | Description |
|---|---|
metadata Kubernetes meta/v1.ObjectMeta |
Refer to the Kubernetes API documentation for the fields of the
metadata field.
|
spec VirtualObjectSpec |
|
status VirtualObjectStatus |
(Appears on:VirtualObject)
(Appears on:VirtualObject)
| Field | Description |
|---|---|
Lifecycle Lifecycle |
(Members of |
data map[string]string |
(Optional)
Data contains the configuration data. Each key must consist of alphanumeric characters, ‘-’, ‘_’ or ‘.’. Values with non-UTF-8 byte sequences must use the BinaryData field. The keys stored in Data must not overlap with the keys in the BinaryData field, this is enforced during validation process. |
(Appears on:Action)
| Field | Description |
|---|---|
running []string |
(Optional)
Running waits for the given groups to be running |
success []string |
(Optional)
Success waits for the given groups to be succeeded |
after Kubernetes meta/v1.Duration |
(Optional)
After is the time offset since the beginning of this action. |
Generated with gen-crd-api-reference-docs
on git commit 9bc87ba7
.


The Prover interface allows users to:
Types. New types are given a name and are constructed from existing types. The set of available type constructors is fixed at compile time and comprises:
The fresh constructor takes no parameters. If the type name is int or bv followed by a number and the prover has support for integers, respectively bit-vectors, then the prover interface should translate these names into whatever names the prover uses for these types.
The tuple constructor takes an arbitrary number of parameters. It is used to construct a product type. Some provers support tuples. If a prover does not support them then the prover interface may choose to support them by axiomatizing the functions tuple0, tuple1, tuple2, tuple3, and so on.
The map constructor takes two parameters: the element type and the value type. It is used to construct a function type. Note that n-dimensional maps can be built either by currying or by using a tuple. Some provers support maps, perhaps under the name array. If a prover does not support them, then the prover interface may choose to simulate them by axiomatizing the select and update functions.
Symbols. New symbols are given a name and a type.
Terms and formulas. Once symbols are introduced they can be used to build (well-typed) terms. Terms of the fresh type bool are also called formulas. Only formulas can be given as a parameter to assumes and asserts.
Frames. A signpost can be planted by saying push. All subsequent definitions (types and symbols) and assumptions will be discarded by the corresponding pop.
Prover answers. The prover interface is usually silent. Only when a formula is asserted it returns a boolean, saying whether it agrees. If it doesn't then a set of labels can be requested as a counterexample. (TODO: Make this more precise.)
This package is responsible for building prover queries and for querying the prover(s). As a small bonus, there is runtime check that the queries are well-sorted (or typed, whatever you prefer, but I shall use `sorted' to not confuse it with Java types).
The clients of this package should get a Prover instance, build queries using the Builder provided by the Prover, and use the Prover to ask if queries are theorems or not.
(NOTE: A formula is a term whose sort is PRED.)
There are three types of terms. The most general is term_id(a1, ..., an), that is, it has an identifier, gets applied to a number (possibly 0) of arguments and returns a value. Its sort is t1 x ... x tn -> t. A constant is just the case n=0. Before using a term it has to be registered, that is, you have to tell the builder that term_id: t1 x ... x tn -> t is going to be used. Surely, having to register the constants "1", "2", "41" individually would be unpleasant. That's why the second type of term is a facility that makes it easy to use such constants. Informally, you register const_int : JavaInteger -> ProverInt. Finally, for associative-commutative operators it is convenient to allow a variable number of arguments. That is the third type of term.


Confirmed cases
{{conf_number}}
↑{{up_text_conf}}
Active
cases
{{active_number}}
↑{{up_text_active}}
Recovery cases
{{recover_number}}
↑{{up_text_recover}}
Deceased cases
{{death_number}}
↑{{up_text_death}}
{{conf_number}}
↑{{up_text_conf}}
{{active_number}}
↑{{up_text_active}}
{{recover_number}}
↑{{up_text_recover}}
{{death_number}}
↑{{up_text_death}}


Gets the annotation data.
Gets the annotation data for a volume and layer.
list_next(previous_request, previous_response)
Retrieves the next page of results.
get(volumeId, layerId, annotationDataId, contentVersion, scale=None, source=None, locale=None, h=None, w=None)
Gets the annotation data. Args: volumeId: string, The volume to retrieve annotations for. (required) layerId: string, The ID for the layer to get the annotations. (required) annotationDataId: string, The ID of the annotation data to retrieve. (required) contentVersion: string, The content version for the volume you are trying to retrieve. (required) scale: integer, The requested scale for the image. source: string, String to identify the originator of this request. locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. h: integer, The requested pixel height for any images. If height is provided width must also be provided. w: integer, The requested pixel width for any images. If width is provided height must also be provided. Returns: An object of the form: { "annotationType": "A String", # The type of annotation this data is for. "kind": "books#annotationdata", # Resource Type "updated": "A String", # Timestamp for the last time this data was updated. (RFC 3339 UTC date-time format). "volumeId": "A String", # The volume id for this data. * "encoded_data": "A String", # Base64 encoded data for this annotation data. "layerId": "A String", # The Layer id for this data. * "data": { # JSON encoded data for this annotation data. "geo": { "countryCode": "A String", # The country code of the location. "zoom": 42, # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom level, in which the entire world can be seen on one map) to 21+ (down to individual buildings). See: https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels "longitude": 3.14, # The longitude of the location. "mapType": "A String", # The type of map that should be used for this location. EX: HYBRID, ROADMAP, SATELLITE, TERRAIN "latitude": 3.14, # The latitude of the location. "boundary": [ # The boundary of the location as a set of loops containing pairs of latitude, longitude coordinates. [ { "latitude": 42, "longitude": 42, }, ], ], "resolution": "A String", # The resolution of the location. Ex: POI_LEVEL "viewport": { # The viewport for showing this location. This is a latitude, longitude rectangle. "lo": { "latitude": 3.14, "longitude": 3.14, }, "hi": { "latitude": 3.14, "longitude": 3.14, }, }, "cachePolicy": "A String", # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER }, "common": { "lang": "A String", # The language of the information url and description. "previewImageUrl": "A String", # The URL for the preview image information. "snippet": "A String", # The description for this location. "snippetUrl": "A String", # The URL for information for this location. Ex: wikipedia link. }, }, "id": "A String", # Unique id for this annotation data. "selfLink": "A String", # URL for this resource. * }
list(volumeId, layerId, contentVersion, locale=None, scale=None, pageToken=None, updatedMin=None, source=None, updatedMax=None, maxResults=None, annotationDataId=None, w=None, h=None)
Gets the annotation data for a volume and layer. Args: volumeId: string, The volume to retrieve annotation data for. (required) layerId: string, The ID for the layer to get the annotation data. (required) contentVersion: string, The content version for the requested volume. (required) locale: string, The locale information for the data. ISO-639-1 language and ISO-3166-1 country code. Ex: 'en_US'. scale: integer, The requested scale for the image. pageToken: string, The value of the nextToken from the previous page. updatedMin: string, RFC 3339 timestamp to restrict to items updated since this timestamp (inclusive). source: string, String to identify the originator of this request. updatedMax: string, RFC 3339 timestamp to restrict to items updated prior to this timestamp (exclusive). maxResults: integer, Maximum number of results to return annotationDataId: string, The list of Annotation Data Ids to retrieve. Pagination is ignored if this is set. (repeated) w: integer, The requested pixel width for any images. If width is provided height must also be provided. h: integer, The requested pixel height for any images. If height is provided width must also be provided. Returns: An object of the form: { "nextPageToken": "A String", # Token to pass in for pagination for the next page. This will not be present if this request does not have more results. "items": [ # A list of Annotation Data. { "annotationType": "A String", # The type of annotation this data is for. "kind": "books#annotationdata", # Resource Type "updated": "A String", # Timestamp for the last time this data was updated. (RFC 3339 UTC date-time format). "volumeId": "A String", # The volume id for this data. * "encoded_data": "A String", # Base64 encoded data for this annotation data. "layerId": "A String", # The Layer id for this data. * "data": { # JSON encoded data for this annotation data. "geo": { "countryCode": "A String", # The country code of the location. "zoom": 42, # The Zoom level to use for the map. Zoom levels between 0 (the lowest zoom level, in which the entire world can be seen on one map) to 21+ (down to individual buildings). See: https://developers.google.com/maps/documentation/staticmaps/#Zoomlevels "longitude": 3.14, # The longitude of the location. "mapType": "A String", # The type of map that should be used for this location. EX: HYBRID, ROADMAP, SATELLITE, TERRAIN "latitude": 3.14, # The latitude of the location. "boundary": [ # The boundary of the location as a set of loops containing pairs of latitude, longitude coordinates. [ { "latitude": 42, "longitude": 42, }, ], ], "resolution": "A String", # The resolution of the location. Ex: POI_LEVEL "viewport": { # The viewport for showing this location. This is a latitude, longitude rectangle. "lo": { "latitude": 3.14, "longitude": 3.14, }, "hi": { "latitude": 3.14, "longitude": 3.14, }, }, "cachePolicy": "A String", # The cache policy active for this data. EX: UNRESTRICTED, RESTRICTED, NEVER }, "common": { "lang": "A String", # The language of the information url and description. "previewImageUrl": "A String", # The URL for the preview image information. "snippet": "A String", # The description for this location. "snippetUrl": "A String", # The URL for information for this location. Ex: wikipedia link. }, }, "id": "A String", # Unique id for this annotation data. "selfLink": "A String", # URL for this resource. * }, ], "kind": "books#annotationsdata", # Resource type "totalItems": 42, # The total number of volume annotations found. }
list_next(previous_request, previous_response)
Retrieves the next page of results. Args: previous_request: The request for the previous page. (required) previous_response: The response from the request for the previous page. (required) Returns: A request object that you can call 'execute()' on to request the next page. Returns None if there are no more items in the collection.


EBD - Easton Bible DIctionary
Shemuel
SHEMUEL
"SHEMUEL "heard of God. (1.) The son of Ammihud. He represented Simeon in the division of the land (
Numbers 34:20
).
(2.) Used for “Samuel” (
1 Chronicles 6:33
, R.V.).
(3.) A prince of the tribe of Issachar (
1 Chronicles 7:2
).
"SHEMUEL "heard of God. (1.) The son of Ammihud. He represented Simeon in the division of the land (Numbers 34:20).
(2.) Used for “Samuel” (1 Chronicles 6:33, R.V.).
(3.) A prince of the tribe of Issachar (1 Chronicles 7:2).


air exhaled mask concentration NPPV respiratory smoke {border-style IPAP exhalation patients dispersion pressure px;} #ffffff;} increased light HPS influenza leakage room sagittal isolation normalized ComfortFull Image acute jet lung median patient positive study ventilation Chest Hui higher human intensity laser plane Fig airway background distance oxygen particles plume (arrow Hong avian face mask, px; {font-family Health Swivel Whisper air, application failure font-size high maximum risk scattered sheet Figure HPS. Med Organization World applied contamination contours data device double; infection nosocomial perpendicular set transmission (HN) Kong SARS border-color border-width distances droplet droplets end estimated exposure low major mild particles. severe shown simulator solid; spread syndrome tidal use video virus volume {font-style {font-weight A/HN COVID- Chan EPAP Elsevier Hall Infect Noninvasive air. airflow attached bed blue bold care centre connected courier; different diffuser em; expiratory hospital infectious maintained mask. outbreak particle pneumonia positioned pt;} rate receiving region represent research resource revealed treatment using wider zone


Output Devices Once the CPU has executed the program instruction, the program may request that the information be communicated to an output device, such as a video display monitor or a flat liquid crystal display. Other output devices are printers, overhead projectors, videocassette recorders (VCRs), and speakers. See also Input/Output Devices. |


Reports the uses of
java.lang.ProcessBuilder
. Uses of
ProcessBuilder
are inherently unportable between operating systems.
Powered by InspectionGadgets


Class: Alias
- Inherits:
-
Object
- Object
- Alias
- Includes:
- Mongoid::Document
- Defined in:
- /home/fedora/origin-server/controller/app/models/alias.rb
Overview
Represents a DNS CName alias associated with the application
Instance Attribute Summary (collapse)
-
- (Date) certificate_added_at
readonly
Timestamp of when the custom SSL certificate was added.
-
- (String) fqdn
readonly
Fully qualified domain name of the alias.
-
- (Boolean) has_private_ssl_certificate
readonly
True if there is a custom SSL certificate associated with this alias.
Instance Method Summary (collapse)
-
- (Hash) to_hash
Returns the alias object as a hash.
Instance Attribute Details
- (Date) certificate_added_at (readonly)
Timestamp of when the custom SSL certificate was added
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File '/home/fedora/origin-server/controller/app/models/alias.rb', line 11 class Alias include Mongoid::Document :application self.field :fqdn, type: String self.field :has_private_ssl_certificate, type: Boolean, default: false self.field :certificate_added_at,type: Date, default: nil ## # Returns the alias object as a hash # @return [Hash] def to_hash {"fqdn" => fqdn, "has_private_ssl_certificate" => has_private_ssl_certificate, "certificate_added_at" => certificate_added_at} end end |
- (String) fqdn (readonly)
Fully qualified domain name of the alias
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File '/home/fedora/origin-server/controller/app/models/alias.rb', line 11 class Alias include Mongoid::Document :application self.field :fqdn, type: String self.field :has_private_ssl_certificate, type: Boolean, default: false self.field :certificate_added_at,type: Date, default: nil ## # Returns the alias object as a hash # @return [Hash] def to_hash {"fqdn" => fqdn, "has_private_ssl_certificate" => has_private_ssl_certificate, "certificate_added_at" => certificate_added_at} end end |
- (Boolean) has_private_ssl_certificate (readonly)
True if there is a custom SSL certificate associated with this alias
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File '/home/fedora/origin-server/controller/app/models/alias.rb', line 11 class Alias include Mongoid::Document :application self.field :fqdn, type: String self.field :has_private_ssl_certificate, type: Boolean, default: false self.field :certificate_added_at,type: Date, default: nil ## # Returns the alias object as a hash # @return [Hash] def to_hash {"fqdn" => fqdn, "has_private_ssl_certificate" => has_private_ssl_certificate, "certificate_added_at" => certificate_added_at} end end |
Instance Method Details
- (Hash) to_hash
Returns the alias object as a hash
22 23 24 |
# File '/home/fedora/origin-server/controller/app/models/alias.rb', line 22 def to_hash {"fqdn" => fqdn, "has_private_ssl_certificate" => has_private_ssl_certificate, "certificate_added_at" => certificate_added_at} end |


Using Subsystems in FW/1
This is the latest (3.1 – develop) documentation – for the current stable release, read the 3.0 master documentation.
Subsystems give you a way of dropping one or more small FW/1 applications into an existing one. Subsystems can be used to create modules that have no dependencies on the parent application or you can use subsystems to group common functionality together.
Enabling Subsystems
If you set either defaultSubsystem
, siteWideLayoutSubsystem
, subsystemDelimiter
, or subsystems
in the framework configuration, then subsystems will be automatically enabled.
Otherwise, if you omit all of those to pick up their default values (of "home"
, "common"
, ":"
, and { }
respectively), you will need to explicitly set usingSubsystems
to true
in the framework configuration.
Once you enable subsystems, you’ll need to follow a couple of additional conventions:
- Your site’s default application must also be implemented as a subsystem. By default, the framework will look in the sub-directory
home
. SettingdefaultSubsystem
overrides this default, letting you specify another folder as the default application module. - A sitewide layout can be specified at
common/layouts/default.cfm
(by default). If this file exists, it will be applied. SettingsiteWideLayoutSubsystem
overrides this default, letting you specify another folder to look in forlayouts/default.cfm
.
Accessing Subsystems
To access a subsystem in the browser, you’ll have to specify it in the action:
index.cfm?action=subsystem:section.item
If you leave off the subsystem in the url, the section and item will reference the default subsystem (by default home:section.item
).
When creating links in your views and layouts, it’s recommended that you use buildUrl()
. You do not have to specify the current subsystem inside buildUrl()
, it will automatically be prepended. This method is preferred. If you change the name of a subsystem, all of your links inside the subsystem will correctly reflect the change.
buildUrl('section.item') - action=currentSubsystem:section.item
You can also link to other subsystems:
buildUrl('otherSubsystem:section.item') - action=otherSubsystem:section.item
Configuring Subsystems
There is an optional method that can be declared in Application.cfc
for configuring subsystems:
function setupSubsystem(subsystem) {}
setupSubsystem()
is called once for each subsystem, when a subsystem is initialized. When an application is reloaded, the initialized subsystems are cleared and setupSubsystem()
will be called on the next request to a subsystem.
Framework Configuration
The following options relate to subsystems:
usingSubsystems
– This will betrue
if you are using subsystems. You only need to set this explicitly if you don’t specify any of the other subsystem configuration options below.defaultSubsystem
– This is the default subsystem when none is specified in the URL or form post.subsystemDelimiter
– This specifies the delimiter between the subsystem name and the action in a URL or form post. It cannot be"."
since section and item would no longer be parsed correctly. It must be a legal URL character.siteWideLayoutSubsystem
– This specifies the subsystem that is used for the (optional) site-wide default layout.
Controllers
Subsystem controllers are located in subsystem/controllers
(e.g., admin/controllers/login.cfc
, home/controllers/main.cfc
).
Model (Services and Domain Objects)
Subsystem services are located in subsystem/model/services
and domain objects in subsystem/model/beans
(e.g., admin/model/services/security.cfc
and home/model/beans/user.cfc
).
Views
Subsystem views are located in subsystem/views
(e.g., admin/views/login/default.cfm
and home/views/main/error.cfm
).
Layouts
Subsystem layouts are looked up in the same order as before, but with the additional inclusion of a sitewide layout, if it exists. The default sitewide layout folder is common
. Subsystem specific layouts are located in subsystem/layouts
(e.g., admin/layouts/login.cfm
).
subsystem/layouts/section/item.cfm
subsystem/layouts/section.cfm
subsystem/layouts/default.cfm
common/layouts/default.cfm
The location of the latter is determined by the siteWideLayoutSubsystem
configuration variable.
Using Bean Factories
The introduction of subsystems introduces the ability to have subsystem specific bean factories. If you let FW/1 use DI/1 to manage your beans, it will also do so automatically for subsystems, creating a bean factory for each subsystem (inspecting the same folders you configured for your main application, i.e., model
and controllers
by default), and setting the main bean factory as the parent of each subsystem bean factory. This is the recommended approach (naturally!).
The following bean factory methods are available for subsystems:
setSubsystemBeanFactory( subsystem, beanFactory )
– sets up a subsystem specific bean factoryhasSubsystemBeanFactory( subsystem )
– returnstrue
if a subsystem specific bean factory exists for the named subsystemgetBeanFactory()
– returns the bean factory for the current subsystem. Alternately, it can be used to retrieve the bean factory for another subsystem by passing the name of the subsystem (e.g.,getBeanFactory( subsystem )
).getDefaultBeanFactory()
– returns the default bean factory that was passed tosetBeanFactory()
(at the top-level)
If you provide diConfig
in the subsystem-specific configuration structure (framework.subsystems[subsystemname]
) that will be passed to DI/1 as its configuration, otherwise the same configuration used for the default bean factory (framework.diConfig
) will be passed. New in 3.1.
Auto Wiring
If you did not declare a subsystem specific bean factory, the framework will attempt to auto wire beans from the default bean factory into subsystem specific controllers and model components.
If you have declared a subsystem specific bean factory, the framework will attempt to auto wire only the beans in the subsystem specific bean factory into your subsystem controllers and model components. If a subsystem specific bean factory does not contain those beans, beans from the default bean factory will only be autowired into your subsystem controllers and model components if the default bean factory has been set as the parent of the subsystem specific bean factory.
If you declare a dependency of property beanFactory;
, the bean factory that is autowired will be the bean factory in which that managed bean exists.
Setting Bean Factories With setupSubsystem()
With setupSubsystem()
, it’s possible to use your own convention to load subsystem specific bean factories, instead of either relying on FW/1’s conventions or explicitly declaring each one in setupApplication()
for the main application. The following example uses ColdSpring and makes the assumption that each subsystem has a bean factory config file in a common subsystem specific folder. If the config file is found, it then loads the subsystem bean factory.
function setupSubsystem( subsystem ) {
var bfConfigFilePath = subsystem & '/config/coldspring.xml.cfm';
// conditionally load bean factory for this subsystem by convention:
try {
if ( fileExists(expandPath('./') & bfConfigFilePath) ) {
var bf = new coldspring.beans.DefaultXmlBeanFactory();
bf.loadBeans( bfConfigFilePath );
bf.setParent( getDefaultBeanFactory() );
setSubsystemBeanFactory( subsystem, bf );
}
} catch ( any e ) {
// ignore exceptions caused by bad paths etc
}
}
Accessing Other Bean Factories From A Subsystem
If you have a default bean factory, you can access it in your controllers and views from any subsystem with getDefaultBeanFactory()
.
While it’s not considered a best practice, there may be a chance when you will need to access a bean factory from another subsystem. You can do this by calling getBeanFactory(subsystem)
(e.g., getBeanFactory('user')
).


--- layout: post title: The bird on the cover of "Learning CFEngine 3" permalink: /the-bird-on-the-cover-of-learning-cfengine-3 date: 2012-03-26 22:17:06.000000000 -06:00 comments: true categories: - booknews - newzealand - tui published: true --- A lot of people have asked me about the bird on the cover of the book, and I had to admit I didn't know. Unfortunately, the book (even in the print version) does not include a description of the cover in the Colophon, like most other O'Reilly books. But today I got the information directly from Karen Montgomery at O'Reilly, who designed the cover:


The code was originally written to make a downsampled mosaic from a group of .tif texture files for the Woson North Korea map. This map is huge and reading a full-scale texture file for each low-res tile -- reading it, cropping it, then downsampling it -- was taking an unacceptibly long time.
The resulting texture image will be just large enough to encompass all the input files and will be black in any areas where there is no input data.
The code is currently implemented for MrSID and GeoTiff input files and a GeoTiff output file. It cannot write MrSID files since we do not have a license to write MrSID (only to read these files). Since the Fusion3D viewer reads the resulting output file only once at full resolution, there is not a significant advantage of MrSID over GeoTiff anyway.
A limitation of the current implementation is that it doesn't do well with making a mosaic from grayscale images. These cant be matched nicely with color MrSID imagery. Adding false color to the images could be done as it is in the Fusion3D viewer but this would require associated elevation images, greatly complicating the implementation and the user interface. The Fusion3D viewer is also not yet capable of adding false color to a grayscale mosaic.
The other inputs are the filename for the output file and the desired output resolution.
The motivation for adding this feature was that some maps that I downloaded for Mars did not work in Fusion3D or in Mosaicr. The issue is that Fusion3D expects rectangular tiles whose data and boundaries are aligned with fixed latitudes and longitudes. The Mars tiles has boundaries are aligned with fixed latitudes and longitudes but they overlap. The actual data do not overlap and the data boundary between tiles is irregular. The surrounding area in each tile is filled with no-data values. So Fusion3d was using only 1 of the several files in the overlap areas and using no-data values from this file rather than the proper data from the adjacent file.
Merging these files provides a much more regular file and solves the visualization problem with Fusion3D (as long as the merged files do not get too large).


--- layout: default title: About ---
Oral histories.
So far there's just one post: [First Post](http://braneof.github.io/therestishistory.com/2014/04/24/first-post.html).


Extensions for XSLTC
Introduction
XSLTC supports the use of extension functions implemented in external Java classes. It also supports the nodeset, output/redirect and EXSLT extension functions. Extension support in XSLTC is still under development. It is currently not as complete as the extension support in the Xalan-Java Interpretive processor. There are constraints in some areas.
Constraints
In addition to the constraints listed below for each particular extension, extension support in XSLTC also has the following limitations:
- Extension element is not supported. The extension element mechanism is closely related to the internal implementation of the XSLT processor. The current extension element mechansim is designed for the Xalan-Java Interpretive processor. It does not work with XSLTC.
- The xalan:component and xalan:script extension elements are not supported at the moment. This has the implication that you cannot use scripting languages (e.g. javascript) with XSLTC.
- The SQL extension is not supported in XSLTC at the moment.
Java extension
Java extension is supported in XSLTC. Constructors, static and instance methods are all supported. You can use any of the three namespace formats (Java, package and class) in your stylesheet.
The official namespace for the Java extension is http://xml.apache.org/xalan/java
. The old XSLTC Java namespace
http://xml.apache.org/xalan/xsltc/java
and the old Xalan-Java namespace http://xml.apache.org/xslt/java
are also supported for backward compatibility.
All usage syntax for the Xalan-Java Interpretive processor also applies to XSLTC with only one exception: XSLTC does not support the notion of default object in class format namespace. When using instance methods, you should always specify the class instance as the first argument to the extension function.
The following example shows you how to call constructors, static, and nonstatic functions, using different namespace formats:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:date="http://xml.apache.org/xalan/java/java.util.Date" xmlns:java_lang="http://xml.apache.org/xalan/java/java.lang" exclude-result-prefixes="date java_lang"> <!-- * test: construction of Date object using a parameter calculated * by a static call to the java.lang.Math object. Then call * a non-static method (getTime()) on the newly created Date * object. Demonstrates calling constructors, static functions * (Math.max) and non-static functions (getTime()). * * Output: * <?xml version="1.0" encoding="UTF-8"?> * Date of object: Sat Nov 30 17:32:41 EST 2002 * Time of object:<PHONE_NUMBER>000 * --> <xsl:template match="/"> <!-- create Date object with calculated parameter --> <xsl:variable name="dateObject" select="date:new( java_lang:Math.max(1027695561000,1038695561000) )"/> Date of object: <xsl:value-of select="$dateObject"/> Time of object: <xsl:value-of select="date:getTime($dateObject)"/> </xsl:template> </xsl:stylesheet>
| Always use the abbreviated syntax for Java extension, because the xalan:component/xalan:script constructs are not supported in XSLTC. |
EXSLT extensions
The following EXSLT extension modules are supported in XSLTC:
- EXSLT common functions
- EXSLT math functions
- EXSLT set functions
- EXSLT date-and-time functions
- EXSLT string functions
The functions in the dynamic module (e.g. evaluate) are not supported because of the XSLTC design limitation. Work is currently underway on user defined EXSLT functions (with the function and result elements).
The nodeset
and objectType
extension functions in the common
module are implemented natively in XSLTC. For all other EXSLT extension functions,
XSLTC uses the same implementation as the Xalan-Java Interpretive processor. The implementation classes
are under org.apache.xalan.lib
.
Depending on the packaging, these classes can be in a separate jar file (e.g. xalan.jar) from
the XSLTC classes. In this case you need to add the jar file containing the EXSLT classes to your
classpath in order to use EXSLT extensions in XSLTC.
nodeset
XSLTC also supports the nodeset() extension function for transforming an RTF (result tree fragment) into a node set.
The nodeset extension can be used as an XSLTC extension function in the namespace
http://xml.apache.org/xalan/xsltc
, a Xalan-Java extension function in the namespace
http://xml.apache.org/xalan
, an EXSLT extension function in the namespace
http://exslt.org/common
or as a standard XPATH function. When it is used as
an EXSLT extension function, you need to refer to the nodeset extension function as
node-set
.
The following exmaple shows you how to use the nodeset extension function in different namespaces:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsltc-extension="http://xml.apache.org/xalan/xsltc" xmlns:xalan="http://xml.apache.org/xalan" xmlns:exslt="http://exslt.org/common" version="1.0"> <xsl:template match="/"> <xsl:variable name="rtf"> <docelem> <elem1>elem1</elem1> <elem2>elem2</elem2> </docelem> </xsl:variable> <!-- Use nodeset as an XSLTC extension function --> <xsl:value-of select="xsltc-extension:nodeset($rtf)/docelem/elem1"/> <!-- Use nodeset as a Xalan-Java extension function --> <xsl:value-of select="xalan:nodeset($rtf)/docelem/elem1"/> <!-- Use nodeset as an EXSLT extension function --> <xsl:value-of select="exslt:node-set($rtf)/docelem/elem1"/> <!-- Use nodeset as standard function --> <xsl:value-of select="nodeset($rtf)/docelem/elem1"/> </xsl:template> </xsl:stylesheet>
| The preferred solution is to use the EXSLT node-set function so that it can work with multiple XSLT processors. |
output/redirect
XSLTC supports the output extension element for redirecting the output to one
or more files. The output extension element is also aliased to the write extension element
in the namespace http://xml.apache.org/xalan/redirect
. Therefore you can use
it in the same way as the redirect
extension in Xalan-Java.
You can use the file and append attributes with the output/redirect extension. The value of the file attribute is an attribute value template. If the value of the append attribute is true or yes, the output is appended to the file rather than overwriting the file.
The following example shows you how to use the output/redirect extension:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsltc="http://xml.apache.org/xalan/xsltc" xmlns:redirect="http://xml.apache.org/xalan/redirect" extension-element-prefixes="xsltc redirect" version="1.0"> <xsl:template match="/"> <xsl:text>This goes to standard output</xsl:text> <xsltc:output file="blob.xml"> <xsl:text>This ends up in the file 'blob.xml'</xsl:text> </xsltc:output> <redirect:write file="blob2.xml"> <xsl:text>This ends up in the file 'blob2.xml'</xsl:text> </redirect:write> </xsl:template> </xsl:stylesheet>


|
Graphitti
A toolkit/software architecture to ease creating high-performance neural network simulators
|
Public Member Functions | |
| virtual void | setupConnections (Layout *layout, IAllVertices *vertices, AllEdges *edges) override |
| virtual void | loadParameters () override |
| virtual void | printParameters () const override |
| BGFLOAT | getConnsRadiusThresh () const |
| Get connection radius threshold. | |
| BGFLOAT * | getWCurrentEpoch () const |
| Get array of vertex weights. | |
| int * | getSourceVertexIndexCurrentEpoch () const |
| Get all edge source vertex indices. | |
| int * | getDestVertexIndexCurrentEpoch () const |
| Get all edge destination vertex indices. | |
| template<class Archive > | |
| void | save (Archive &archive) const |
| template<class Archive > | |
| void | load (Archive &archive) |
| Public Member Functions inherited from Connections | |
| virtual | ~Connections () |
| Destructor. | |
| shared_ptr< AllEdges > | getEdges () const |
| Returns shared pointer to Synapses/Edges. | |
| shared_ptr< EdgeIndexMap > | getEdgeIndexMap () const |
| Returns a shared pointer to the EdgeIndexMap. | |
| void | createEdgeIndexMap () |
| Calls Synapses to create EdgeIndexMap and stores it as a member variable. | |
| virtual bool | updateConnections (IAllVertices &vertices, Layout *layout) |
| void | createSynapsesFromWeights (const int numVertices, Layout *layout, IAllVertices &ivertices, AllEdges &isynapses) |
| virtual void | updateSynapsesWeights (const int numVertices, IAllVertices &vertices, AllEdges &synapses, Layout *layout) |
Static Public Member Functions | |
| static Connections * | Create () |
Additional Inherited Members | |
| Protected Attributes inherited from Connections | |
| shared_ptr< AllEdges > | edges_ |
| shared_ptr< EdgeIndexMap > | synapseIndexMap_ |
| log4cplus::Logger | fileLogger_ |
| log4cplus::Logger | edgeLogger_ |
Definition at line 38 of file ConnStatic.h.
| void ConnStatic::load | ( | Archive & | archive | ) |
Cereal deserialization method (Deserializes radii)
|
overridevirtual |
Load member variables from configuration file. Registered to OperationManager as Operations::op::loadParameters
Implements Connections.
Definition at line 131 of file ConnStatic.cpp.
|
overridevirtual |
Prints out all parameters to logging file. Registered to OperationManager as Operation::printParameters
Implements Connections.
Definition at line 143 of file ConnStatic.cpp.
| void ConnStatic::save | ( | Archive & | archive | ) | const |
Cereal serialization method (Serializes radii)
|
overridevirtual |
Setup the internal structure of the class (allocate memories and initialize them). Initialize the small world network characterized by parameters: number of maximum connections per vertex, connection radius threshold, and small-world rewiring probability.
| layout | Layout information of the neural network. |
| vertices | The Neuron list to search from. |
| edges | The Synapse list to search from. |
Setup the internal structure of the class (allocate memories and initialize them). Initialize the small world network characterized by parameters: number of maximum connections per vertex, connection radius threshold, and small-world rewiring probability.
| layout | Layout information of the neural network. |
| vertices | The Vertex list to search from. |
| edges | The Synapse list to search from. |
Implements Connections.
Definition at line 52 of file ConnStatic.cpp.


Google Cloud Inter-Region Latency
The data is collected 10 times every 24 hours and then averaged.
Latency:
<100ms
100-180ms
>180ms
All times are in milliseconds.
# About
A huge thank you to
matt
for the inspiration with his
AWS Inter-Region Latency
site.
github:
https://github.com/noqcks/gcp_latency
contact me:
twitter
|
github
|
linkedin


2020 Fudan Protocols
Click here to download the protocols used by 2020 Fudan team, as a single PDF file.
Cell Cryopreservation
Cryopreservation is a technique that store cells at a very low temperatures (-80℃) to reduce cell metabolic damage and enable long-term storage.
- Add cryoprotectant: Add 80% glycerin 500 μL and bacterial fluid 1 000 μL into Cryopreservation vials. Mix upside down gently.
- Seal the vials: Stick sellotape around the label.
- Store the vials: Store prepared vials in refrigerator at -80℃.
Cell Recovery
Bacteria preserved at -80℃ need to be recovery to restores cell growth.
- Prepare plate: Take out the plate with relevant resistance from 4 degrees and wait for the temperature to the room temperature. Mark at the bottom of the plate.
- Recover the cell: The -80℃ frozen strain was removed and placed on the ice quickly. Take a ring of the upper layer of melt bacteria liquid by the sterilized inoculation ring. Coated the plate and draw a line.
- Culture the recovered cell: Incubate at 37℃ overnight.
PCR
PCR is performed for amplify DNA fragments in our project.
- Set up PCR system (25 μL):
Reagent Volume ddH2O To 25 μL 2 x Phanta Max Buffer 12.5 μL dNTP 0.5 μL Phanta 0.5 μL Template
Plasmid: 0.5 μL
PCR product: 1 μL
Forward Primer 1 μL Reverse Primer 1 μL - Place the PCR tubes in a PCR amplifier.
- Set up reaction program:
Procedure Temperature Time Cycle Initialization 95℃ 30s 1 Denaturation 95℃ 15s 40 Annealing 72℃ 15s Extension 72℃ 30s/kb Final elongation 72℃ 5min 1 - Incubate: Incubate at 16℃ until the PCR product is picked up.
Colony PCR
Colony PCR is performed to determine whether we insert DNA into plasmid successfully.
- Set up colony PCR system (10 µl):
Reagent Volume ddH2O To 10 μL 10 x Taq Buffer 1 μL dNTP 0.2 μL Taq DNA Polymerase 0.2 μL Colony Template 1 μL Forward Primer 0.4 μL Reverse Primer 0.4 μL - Place the PCR tubes in a PCR amplifier.
- Set up reaction program:
Procedure Temperature Time Cycle Initialization 94℃ 5min 1 Denaturation 94℃ 30s 25 Annealing 72℃ 30s Extension 72℃ 1min/kb Final elongation 72℃ 7min 1 - Incubate: Incubate at 8℃ until the PCR product is picked up.
Overlap Extension PCR (OE PCR)
OE PCR is used to fuse fragments together.
- First round PCR: Use primer a/b to amplify fragment AB by PCR, and c/d to amplify fragment CD. Set up PCR system:
Set up reaction program:Reagent Volume ddH2O To 25 μL 2 x Phanta Max Buffer 12.5 μL dNTP 0.5 μL Phanta 0.5 μL Template Plasmid: 0.5 μL
PCR product: 1 μLForward Primer 1 μL Reverse Primer 1 μL Procedure Temperature Time Cycle Initialization 95℃ 30s 1 Denaturation 95℃ 15s 40 Annealing 72℃ 15s Extension 72℃ 30s/kb Final elongation 72℃ 5min 1 - Annealing of homologous regions in Second round PCR: Separate and purify fragment AB and CD by agarose gel electrophoresis and DNA gel extraction. Measure the concentration of the two fragments. Dilute them into 1:1 as template. Set up PCR system:
Set up reaction program:Reagent Volume ddH2O To 50 μL 2 x Phanta Max Buffer 25 μL dNTP 1 μL Phanta 1 μL Template 0.08 pmol + 0.08 pmol Procedure Temperature Time Cycle Initialization 94℃ 5min 1 Denaturation 94℃ 30s 12 Annealing 60/64/68/72℃ 30s Extension 72℃ 1min/kb Final elongation 72℃ 7min 1 - Store the vials: Store prepared vials in refrigerator at -80℃.
Vector PCR
Vector PCR is used for generating a linear product.
- Set up PCR system (25 μL):
Reagent Volume ddH2O To 25 μL 2 x Phanta Max Buffer 12.5 μL dNTP 0.5 μL Phanta 0.5 μL Template Plasmid: 0.5 μL Forward Primer 1 μL Reverse Primer 1 μL - Place the PCR tubes in a PCR amplifier.
- Set up reaction program:
Procedure Temperature Time Cycle Initialization 95℃ 30s 1 Denaturation 95℃ 15s 40 Annealing 72℃ 15s Extension 72℃ 30s/kb Final elongation 72℃ 5min 1 - Incubate: Incubate at 16℃ until the PCR product is picked up.
Agarose Gel Electrophoresis
Agarose gel electrophoresis is performed to separate and confirm whether our plasmids were constructed properly.
- Make gel solution: Add 0.7g agarose, 70ml TAE buffer into a glass bottle and heat in a micro-oven for 2 min. Cool the liquid agarose gel to lower than 60℃ and decant the liquid agarose gel into an agarose gel tank. Add 8 μL EB into the liquid agarose gel and place the electrophoresis comb.
- Load the gel: Place the solid agarose gel in an electrophoresis device. Add 10xDNA Loading Buffer in the DNA sample, mix them up gently and carefully pipette the sample into the sample loading chambers.
- Electrophoresis: Cover the lid of the electrophoresis device, set the electrophoresis time and start electrophoresis.
DNA Gel Extraction
DNA Gel Extraction is to extract desired DNA from an agarose gel after agarose gel electrophoresis.
- Cut the DNA gel: place the gel under UV light and find the DNA band of the desired nucleotide length. b) Cut the gel containing desired DNA and put it into an Eppendorf tube.
- Melt the DNA gel: Use Vazyme® DNA Gel Extraction Kit. Add 300 μL buffer GDP to the Eppendorf tube and incubate at 55℃. Spin briefly.
- Pure the DNA gel: Insert a Fast Mini Columns-G into a 2 ml Collection Tube, transfer the solution maximally of 700 μL once a time to a filtration column, centrifuge at 12,000 x g for 30 - 60s. Discard the filtrate and reuse the Collection Tube, add 600 μL of Buffer GW (with ethanol added) to the filtration column, centrifuge at 12,000 x g for 60s. Pure the left solution in the same way.
- Filtrate DNA: Discard the filtrate and reuse the Collection Tube, centrifuge the empty column at 12,000 x g for 2 min. Insert the column into a clean 1.5 mL Eppendorf tube and incubate at 55℃ for 5 min. Add 7 μL - 30 μL of ddH2O (incubated at 55℃ in advance) to the center of the column membrane, incubate at room temperature for 2 min, and then centrifuge at 12,000 x g for 1min. Discard the filtration column. Measure the DNA concentration by Nanodrop 2000.
- Store DNA at -20℃.
Restriction Enzyme Double Digestion
Double digestion reaction is performed to create mismatch ends for directional insertion.
- Add DNA fragment and vector at a mole ratio of 2:1 - 4:1 (total 1μg), 5 μL NEB CutSmart buffer, 1 μL of both restriction enzymes and ddH2O up to 50 μL to set up the reaction.
- Incubate at 37℃ overnight.
ClonExpress ligation reaction
ClonExpress ligation reaction is performed to insert our DNA fragments into vector.
- Set up ClonExpress ligation system:
Reagent Volume ddH2O To 5 μL DNA fragment 0.02*bp ng vector 0.01*bp ng 2 x ClonExpress Mix 2.5 μL - Incubate at 50℃ for 30 minutes. Transform the DNA into bacteria.
Plasmid transformation
Plasmid transformation is performed to transfer plasmids into the host bacteria. We transform our plasmids into DH5α E. coli to amplify them and BL21 to testify function of our plasmids.
- Thaw all reagents on ice. And add 20 μL competent E. coli cells into the ligation product.
- Heat shock at 42℃ for 45s and then cool the mixture on ice for 2min.
- Add 900 μL liquid SOC or LB medium (without antibiotic) into the mixture and shaking culture at 37℃ for 1h.
- Evenly spread the liquid culture on a solid culture medium and incubate at 37℃ overnight for colonies forming on the plate.
Plasmid Miniprep (Vazyme® FastPure Plasmid Mini Kit)
Plasmid Miniprep is performed to is extract plasmid DNA from bacteria.
- Harvest 1 - 5 mL overnight cultured (12 - 16h) bacterial cells into a centrifuge tube, centrifuge at 10,000 x g for 1min, discard the supernatant and invert the tube on the absorbent paper to dry.
- Add 250 μL of Buffer P1 (add RNase A before use), mix thoroughly by vortex or pipetting up and down.
- Add 250 μL of Buffer P2, mix thoroughly by softly inverting the tube 8 - 10 times to assure complete lysis.
- Add 350 μL of Buffer P3, mix gently and thoroughly by inverting the tube 8 - 10 times to neutralize Buffer P2 until a flocculent white precipitate forms and centrifuge at 13,000 x g for 10min.
- Insert a FastPure DNA Mini Column into a 2 mL Collection Tube, transfer the supernatant from step 4 to the Filtration Column, centrifuge at 13,000 x g for 30 - 60s, discard the filtrate and reuse the Collection Tube.
- Add 600 μL of Buffer PW2 (with ethanol added in) to the Filtration Column, centrifuge at 13,000 x g for 30 - 60s, discard the filtrate and reuse the Collection Tube. Centrifuge the empty Filtration Column for l min at 13,000 x g.
- Insert the Column into a clean 1.5 mL microcentrifuge tube, add 30 - 100 μL of Elution Buffer to the center of the Column membrane, incubate at room temperature for 2min, centrifuge at 13,000 x g for 1min. Discard the Filtration Columns, store DNA at -20℃.
SDS-PAGE
SDS-PAGE is performed for the separation of polypeptides and confirm whether our circuits expressed properly.
- Prepare 10ml 10% Running Gel solution: Add4.1 mL ddH2O, 3.3 mL 30% Acrylamide/Bis (29:1 or 37.5:1), 2.5 mL 1.5 M Tris-HCl pH8.8, 100 μL 10% SDS, 50 μL 10% APS, 5 μL TEMED. Mix them thoroughly.
- Prepare 2ml 4% Stacking Gel solution: Add 1.22 ml ddH2O, 0.26ml 30% Acrylamide/Bis (29:1 or 37.5:1), 0.5 mL 0.5 M Tris-HCl pH6.8, 20 μL 10% SDS, 20 μL 10% APS, 2 μL TEMED. Mix them thoroughly.
- Prepare the protein sample: Add 1 ml bacterial cells per time into a centrifuge tube, centrifuge at 12,000 x g for 1min, discard the supernatant. Dilute SDS sample buffer to 1x. Add 1 x SDS Loading to 3000 cells per 1 μL, mix thoroughly by vortex or pipetting up and down until there is no visible precipitation. Incubate at 99℃ for 5min.
- Make the gel: Assemble the gel cassette and make sure it not to leak. Fill the gel cassette with the Running Gel softly and fill up the cassette with ddH2O. Keep it still for 10 - 20min until the water layer can be observed. Pour out the ddH2O completely and fill up the cassette with Stacking Gel. Insert the comb and take care not to catch bubbles under the teeth. Keep it still.
- Load the gel: Take off the cassette and assemble the gel running stand. Fill the stand with 1 x SDS running buffer and remove the combs from the gel. Mix up Marker with 1 x SDS Loading. Load 15 μL marker mixture into the wells.
- Electrophoresis: Cover the lid of the electrophoresis device, and start electrophoresis at 200 V until the dye front is nearly at the bottom of the gel.
- Stain the gel: Submerge the whole piece of the disassembled gel with 0.1% Coomassie Blue dye for 30min.
- Destain the gel: Pour out the 0.1% Coomassie Blue dye and wash it using ddH2O. Destain with destaining solution for 30min. Change the destaining solution to destain until it clear.
- Scan the gel.
SDS-PAGE Gradient Gel
SDS-PAGE is performed for the separation of caap and confirm whether our circuits functioned properly.
- Start the device: Put the container on the electromagnetic heating device. Increase the speed of the rotor gradually to 260 RPM.
- Prepare Gel solution: 4% and 20% Gel solution, can be prepared directly according to SDS-PAGE protocol. And 1.5 times of APS concentration should be added.
- Gradient formation: Add 4% glue slowly into the valve, and then add 20% glue. Mix them by the rotor. Wait about 2 hours for the glue to concrete.
- Store the gel: Remove the solidified glue one by one. Soak them in 1×SDS, and put them into a refrigerator at 4℃ under the counter for preservation.
IPTG induction experiment
- Reconnection: Take 10 mL and 5 mL LB liquid medium in two test tubes, 10 mL one is used as control group and 5 mL one is for experiment group. Add 500× ampicillin 20 μL and 10 μL, respectively. Culture 6h. Add 1 mL bacteria solution to experiment group and divided evenly into two tubes (3 mL each) for ipTG-induced and non-induced groups. Another 1 mL bacteria was used to measure initial OD.
- Measure OD: Measured OD value once per 30min and once per 15min after OD reached 0.2.
- Induce: When OD value reached about 0.6, add 500mM IPTG reach final concentration of 1 mM. Incubate for 3 hours.
Anhydrotetracycline induction experiment
- Dilute aTc: Dilute 2 mg/ mL aTc solution into 100 ng/ mL, 200 ng/ mL and 400 ng/ mL.
- Induce: Add 3 mL LB medium (with kan), 200 μL ON culture and 32 μL corresponding inducer (in one of the test tubes add 32 μL LB medium as control) into 3 mL bacteria solution.
- Measure: Add 300 μL of each test tube to the microplate reader in triplet, and measure the t0 at the correct wavelength and OD600. Put the test tubes in the shaker at 37℃ and 250 rpm. After 4 hours measure the t4, after 8 hours measure the t8 and after 12h measure the t12.
Growth Curve Measurement
Growth Curve Measurement is used to characterize our Kill Switches.
- Plasmids construction and transformation: Insert DNA fragments of BBa_K3036004, BBa_K3606027 and BBa_K3606028 into pSB1C3. Transform the two kinds of constructed plasmids into DH5α strain as experimental groups and empty pSB1C plasmids as control group. Culture three groups in 60mL LB medium (with 50 ng/ μL ampicillin) at 37℃ overnight.
- Cold treatment: Divide each group into two test tubes for 30℃-culture groups and 37℃-culture groups. (3 for each temperature).
- Measure growth situation: Extract 5 μL bacteria solution from each test tube every 1h. Diluted each bacteria solution to 10^7 times and culture them on three LB plate (with 50 ng/ μL ampicillin) at 37℃ for 24h. Count the number of colonies in 5 cm^2 per plate after cultured for 24h at 37℃.
- Draw the growth curve.
Methylthymol Blue Method for Blood Calcium Measurement
Methylthymol Blue Method is used to determine the concentration of calcium chromogenic reaction.
- Prepare solution 1
Reagent Volume H2O To 45 mL MTB 0.009 g 8-Hydroxyquinoline 6.096 g HCl 0.55785 mL Urea 8.109g - Prepare solution 2
- Set up chromogenic reaction: Take 1ml solution 1 and 1ml solution 2 to make the application solution. Add 34 μL standard calcium ion sample into the system in proportion of 60:1 and mix it.
- Measure the absorbance: Wait for about 3 to 5 min and measure the absorbance of the solution with a spectrophotometer.
- Change the standard calcium ion concentration from 0 to 20 mM and make multiple measurements to obtain the linearity curve.
| Reagent | Volume |
|---|---|
| H2O | To 45 mL |
| Ethanolamine | 9 mL |
| Urea | 8.109g |
Click here to download the protocols used by 2020 Fudan team, as a single PDF file.
Signature: Jingqi


It's common to use the soft-delete pattern which is used to not delete an entity from database but only mark it as 'deleted'. So, if an entity is soft-deleted, it should not be accidently retrieved into the application. To provide that, we would add a SQL where condition like 'IsDeleted = false' in every query we select entities. This is a tedious but more importantly a forgettable task. So, there should be an automatic way of it.
ASP.NET Boilerplate provides data filters those can be used to automatically filter queries based on some rules. There are some pre-defined filters, but also you can create your own filters.
Soft-delete filter is used to automatically filter (extract from results) deleted entities while querying database. If an entity should be soft-deleted, it must implement ISoftDelete interface which defines only IsDeleted property. Example:
public class Person : Entity, ISoftDelete
{
public virtual string Name { get; set; }
public virtual bool IsDeleted { get; set; }
}
A Person entity is not actually deleted from database, instead IsDeleted property is set to true when need to delete it. This is done automatically by ASP.NET Boilerplate when you use IRepository.Delete method (you can manually set IsDeleted to true, but Delete method is more natural and preffered way).
After implementing ISoftDelete, when you get list of People from database, deleted people are not retrieved. Here, an example class that uses a person repository to get all people:
public class MyService
{
private readonly IRepository<Person> _personRepository;
public MyService(IRepository<Person> personRepository)
{
_personRepository = personRepository;
}
public List<Person> GetPeople()
{
return _personRepository.GetAllList();
}
}
GetPeople method only gets Person entities which has IsDeleted = false (not deleted). All repository methods and also navigation properties properly works. We could add some other Where conditions, joins.. etc. It will automatically add IsDeleted = false condition properly.
ISoftDelete filter is always enabled unless you explicitly disable it.
A side note: If you implement IDeletionAudited (which extends ISoftDelete) then deletion time and deleter user id are also automatically set by ASP.NET Boilerplate.
If you are building multi-tenant applications (store all tenant datas in single database), you definitely do not want a tenant accidently see others data. You can implement IMustHaveTenant in that case. Example:
public class Product : IMustHaveTenant
{
public virtual int TenantId { get; set; }
public virtual string Name { get; set; }
}
IMustHaveTenant defines TenantId to distinguish different tenant entities. ASP.NET Boilerplate uses IAbpSession to get current TenantId and automatically filter query for the current tenant.
IMustHaveTenant is enabled by default.
If current user is not logged in to the system or current user is a host user (Host user is an upper level user that can manage tenants and tenant datas), ASP.NET Boilerplate automatically disables IMustHaveTenant filter. Thus, all data of all tenant's can be retrieved to the application. Notice that this is not about security, you should always authorize sensitive data.
If an entity class shared by tenants and the host (that means an entity may be owned by a tenant or the host), you can use IMayHaveTenant filter. IMayHaveTenant interface also defines TenantId but it's nullable.
public class Product : IMayHaveTenant
{
public virtual int? TenantId { get; set; }
public virtual string Name { get; set; }
}
A null value means this is a host entity, a non-null value means this entity owned by a tenant which's Id is the TenantId. ASP.NET Boilerplate uses IAbpSession to get current TenantId. IMayHaveTenant filter is not common as much as IMustHaveTenant. But you may need it for common structures used by host and tenants.
IMayHaveTenant is enabled by default.
If current user is not logged in to the system, ASP.NET Boilerplate automatically disables IMayHaveTenant filter. Thus, all data of host's and all tenant's can be retrieved to the application. Notice that this is not about security, you should always authorize sensitive data.
...
...
...
TODO-NOTE: Data filters are not implemented in NHibernate!


Releases the resources taken by the widget.
Returns the position of active (selected) seat or null if no seat is active.
Returns maximum seat count in row.
Returns number of rows.
Returns number of seats in the row.
Row number starting from 1.
Returns the list of the states of the seat.
Row number starting from 1.
Seat number starting from 1.
Returns total number of seats in the hall.
Number of seats in the hall.
Determines whether the seat has the specified state.
Row number starting from 1.
Seat number starting from 1.
New state name.
Checks whether the seat at the specified position is active.
Renders the hall scheme as DOM.
Root DOM element of the widget.
Sets the seat active / inactive (i.e. selected or not).
Sets the state to the seat.
Row number starting from 1.
Seat number starting from 1.
New state name.
Sets the list of the states of the seat.
Row number starting from 1.
Seat number starting from 1.
New state list.
Toggles the state to the seat.
Row number starting from 1.
Seat number starting from 1.
State name.
Unsets the state to the seat.
Row number starting from 1.
Seat number starting from 1.
New state name.
Generated using TypeDoc
Hall plan widget.


Example 1: Field with 257 elements
Denote operations on the field with 257
elements by a
257 subscript, and let
a = 23
and
b = 54.
Then
-
a +257 b = (23 + 54) mod 257 = 77;
-
−257b = (257 − 54) mod 257 = 203;
-
a −257 b = a +257 −257b = (23 + 203) mod 257 = 226;
-
a ×257 b = (23 × 54) mod 257 = 214;
-
54 ×257 119 = 1,
so
b-1257 = 119;
-
a ÷257 b = a ×257 b-1257 = (23 × 119) mod 257 = 167,
and indeed
b ×257 (a ÷257 b) = (54 × 167) mod 257 = 23 = a.


Are you sure you wish to delete the Google user {{model.user.name || model.user.email}} from Umbraco?
Sites already configured in Umbraco with this user will no longer be able to pull data from Google Analytics.


{% extends "base.html" %} {% block title %}Talent-Match - Find Talent. Be Talent.{% endblock %} {% block content %}
Find individuals with the talents you are looking for, or create a profile to broadcast your talents to the world.
Contact, or be contacted by, individuals to see if they are interested in teamming up.
Work together to make great things.
Jordan has years of cybersecurity and development experience. He has a passion for creating technology to help people connect to one another.
Steve has worked professionally in several industries for over 10 years in several languages. He enjoys tackling difficult problems and middleware development.
Nicholas Rodriguez has experience in numerous functional languages and enjoys programming.
Landing page template created by BlackTie.co - Attribution License 3.0 - 2013


About
Process
Skills
Articles
April 10th, 2014
Establishing User Experience Design
July 17th, 2013
Don’t use data attributes to find HTML elements with JS
November 23rd, 2012
An improved Sass rem mixin for unitless numbers
June 12th, 2012
Create an awesome metallic navigation bar with CSS only


A channel to discuss trading. For useful links and more info click the pinned messages to the right.
100 messages
Before 05-Dec-19 12:00 AM
Alright04-Mar-19 05:33 PM
and yes, you can lose 1% if you gain 1.5% from the comp
FishyGuts04-Mar-19 05:34 PM
And hedge against a 10-20% price increase after trading ends.
LocoMB04-Mar-19 06:38 PM
waaaah! what a clown! GREAT!
... long time frames... booga-booga!
I am really scared now! ... what if ... CS Wright .. is a member of 'Die Bruderschaft der Glocke'?!?
Moment mal - das wäre ja prima für mich, ich kann ja schon Deutsch!!!
Go Craig!
got a msg from a mate at work today saying, buy btc it will never be this cheap ever again....i thought to myself how in the earth does he know that, is he from the future?
thats what i thought, if those whales want to push price down they will and they wont warn u about it
1
Thats basically their way to test ppl with weak hands, they dump price and see if weak hands gonna react and sell.  And thats why majority of ppl lose when it comes to trading cause they fall into those traps constantly
1
richardt04-Mar-19 07:35 PM
Pretty much. A lot of us here have been watching the crypto market long enough to know that the price of anything could be whatever the whales want it to be. It's just nice when it works in our favor
For sure never if you're a noob. For the traders who have been in the market a long time, it's easier to take advantage of the manipulation
Alecandro04-Mar-19 07:43 PM
Anyone having issues with Blockfolio not updating KMD price from binance?
KMd/btc
yorklab04-Mar-19 09:53 PM
Using Tab Trader I can see KMD/BTC trading on the Huobi exchange. When I go to the Huobi exchange using my desktop KMD is not there?
 That’s the question
bishop05-Mar-19 02:06 AM
People bitching about the price at 23k after it was just in the mid-to-upper teens is just sad.
Perhaps have a longer timeframe than 3 minutes
Buddz199305-Mar-19 02:08 AM
Yep you know people
They will always complain
Sdunbar05-Mar-19 02:10 AM
right in the butt!!
seriously though i bought recently
im on board dont worry
Sdunbar05-Mar-19 02:18 AM
i like this HUOBI volume
probably going to go away after the contest though
Buddz199305-Mar-19 02:21 AM
Yea most likely
Me too
Vertigo05-Mar-19 02:27 AM
So if we all donate 10kmd we can collect about 500kmd to keep the contest and the volume forever until we reach position #1 . There that is my plan.
Gordon Komodo05-Mar-19 02:49 AM
at the rate BNB is going, it's going to be 10X in 3 months
ComputerGenie 👴👴👴05-Mar-19 03:29 AM
buy the dip, don't cry the dip
1
yorklab05-Mar-19 03:46 AM
at the rate BNB is going, it's going to be 10X in 3 months
Yea, a friend told me Komodo is a great project by KMD is not a good investment. He recommended BNB and he said all his money is gong there.....it's gone well over 2x since then. I still think KMD's time is coming though; it just hasn't arrived yet.
Gordon Komodo05-Mar-19 03:47 AM
a big green candle right after I made that comment (edited)
also It doesn't hurt to diversify as well(edited)
REX05-Mar-19 04:26 AM
Bought fat bags of KMD and BNB during Feb-Jan
2
KMD FA AND TA. BNB horde. Ez buys.
Markus05-Mar-19 05:33 AM
BNB look like 2017 bullrun, extremely overbought on even weekly chart
Probably just Binance themselves making artificial pump and ppl ride along
It have gone up every week since begin of december, just one week with a red candle being a ”doji”
$KMD 1D TF-
One of my favourite projects FA wise, also one of my favourite charts TA wise. Nice S&R flip on the daily, volume is increasing nicely, I charted KMD a few weeks back, as long BTC doesn't ruin the party this looks nice.
Caglio05-Mar-19 01:28 PM
Anyone interested in selling me a bag of KMD for lets say 20k satoshies ( :


is HP ProLiant DL360e Gen8 2x Eight 8-Core Xeon E5-2450L 64 gb ram 500gb ssd good enough for a notarynote for testnet?
I use similar configuration with double old xeons for testnet, just have 196gb RAM (but it's overkill for sure)
hastrup15-Apr-19 05:49 AM
so the speed if the cou is not that significant
blackjok3r15-Apr-19 05:50 AM
load average is usually around 0.1
unless syncing chains
r reindex
hastrup15-Apr-19 05:50 AM
ok thx for the input
TonyL15-Apr-19 05:51 AM
network bandwith/latency and SSD I/O are the key factors imo (especially when there are only 3 chains) + scripts for cleaning stuff(edited)
ComputerGenie 👴👴👴15-Apr-19 05:52 AM
just say no to 10M down and 0.5M up
1
hastrup15-Apr-19 06:13 AM
@TonyL where i live i have a ping of 1-5 and 650 to 1000 megabitinternet
1
it cost arounf 30usd each month
@ComputerGenie 👴👴👴 have you ever had a power outage for your servers?
ComputerGenie 👴👴👴15-Apr-19 06:17 AM
@hastrup sadly, yes
hastrup15-Apr-19 06:17 AM
@ComputerGenie 👴👴👴 is that a commen "problem" in the US?
and do ou have a ups for theres times?
ComputerGenie 👴👴👴15-Apr-19 06:18 AM
more so where I live -- in the middle of nowhere and prone to thunderstorms
hastrup15-Apr-19 06:18 AM
wow
them damn thunderstorms lol
ComputerGenie 👴👴👴15-Apr-19 06:19 AM
It's cheaper to replace my entire server than get a 220v ups for it
hastrup15-Apr-19 06:20 AM
XD
newvulcan15-Apr-19 08:36 AM
Morning. I see I'm last (Well someone has to be). Anyway quick question. I've noticed my UTXO count for KMD just keeps increasing - its at 766 at the moment. Is that normal behaviour, or should those UTXO's be going somewhere ?
blackjok3r15-Apr-19 08:38 AM
you should disable taht if you wantyour testnet node to work.
its important to manage utxos perfectly to maintain a top node.(edited)
gt15-Apr-19 09:02 AM
@newvulcan if you search through this channel, you’ll find posts about utxo management
Alright15-Apr-19 09:24 AM
@blackjok3r once I spent all the 1 sat utxos from another node, my node stopped having listunspent errors
doesn't really matter, just thought it was interesting
blackjok3r15-Apr-19 09:24 AM
I spoke to genie about it earlier, it seems it had msotly to do with using 2 wallets on 2 nodes...

CHMEX15-Apr-19 11:32 AM
vote2019.explorer.dexstats.info/tx/aac588eee1a7cc8de2facc0338f836bc61e9cf230c7a9432a8e6a6809074424e
For those of you who are interessted looks like Agama stores some Election related Data on the Blockchain when you Vote ( Check the last output ). Maybe at some point in our lifes we see Blockchain Voting for General Elections.
4
jorian15-Apr-19 11:36 AM
cool!
Dr.Terminus15-Apr-19 12:19 PM
@phm87 chain download completed
jorian15-Apr-19 12:28 PM
can i remind all voters to take a look at how current NN's that are also candidates for next season are doing: #notary-node-alarms
smk762 - dracocanis ominator15-Apr-19 12:34 PM
do any have excuses (valid or otherwise) for not notarising since so long?
jorian15-Apr-19 12:36 PM
cost?
ComputerGenie 👴👴👴15-Apr-19 12:37 PM
is jealous because his converter doesn't look that pretty
Statistics for the Komodo Platform's dPOW notarization of KMD and supported blockchains.
ComputerGenie 👴👴👴15-Apr-19 12:39 PM
takes @jorian advice, looks, and decides not to vote for james
1
2
jorian15-Apr-19 12:39 PM
yes, they're still mining
you can check for yourself
smk762 - dracocanis ominator15-Apr-19 12:40 PM
jorian15-Apr-19 12:40 PM
they probably gave up on being notary and since they wouldn't be re-elected anyways they just cancelled their expensive server
CrisF15-Apr-19 12:40 PM
And ther're running again?
jorian15-Apr-19 12:40 PM
but that's not for the candidates for next season though
no, i don't think so
the ones that gave up, gave up
smk762 - dracocanis ominator15-Apr-19 12:41 PM
so nn mining can be done from anywhere?
ComputerGenie 👴👴👴15-Apr-19 12:41 PM
@smk762 - dracocanis ominator I asked one of them directly last night and got obscenities hurled at me, maybe you'll have better luck
jorian15-Apr-19 12:41 PM
nn mining is cpu
so yes, even your phone can mine it
and even more since a notary is only eligible to mine again 65 blocks after mining the previous block
smk762 - dracocanis ominator15-Apr-19 12:41 PM
need to use daemon with nn pubkey? or just address?
ComputerGenie 👴👴👴15-Apr-19 12:42 PM
they probably gave up on being notary and since they wouldn't be re-elected anyways they just cancelled their expensive server
not all of the, at least one is running for 3 nodes this year
CHMEX15-Apr-19 12:43 PM
You also need the priv key as each blocked mined send a small fee to the crypto address. I guess to avoid somebody elses mines with your pubkey ( to you address )
jorian15-Apr-19 12:43 PM
yep
but that's not too much of a problem
you can send the new rewards to cold storage to not have an open wallet somewhere, and maybe it's better to send new rewards away to profit from the 5.1%
ComputerGenie 👴👴👴15-Apr-19 12:45 PM
even your phone can mine it
so, other than courtesy, what's to stop a NN form mining with stronger equipment?
jorian15-Apr-19 12:45 PM
nothing, but it won't get you more KMD
ComputerGenie 👴👴👴15-Apr-19 12:46 PM
round-robin selection for eligibility?
jorian15-Apr-19 12:46 PM
something like that yes
you get eligible 65 blocks after mining your last block
so in the mean time, you can save the energy because you won't mine one anwyays
ComputerGenie 👴👴👴15-Apr-19 12:47 PM
ahhh k
jorian15-Apr-19 12:55 PM
i'm a Notary Node operator, ask me anything!
i should do that to attract voters
ComputerGenie 👴👴👴15-Apr-19 12:58 PM
starts making a list of silly questions he doubts you know the answers to
jorian15-Apr-19 12:58 PM
fire away
ComputerGenie 👴👴👴15-Apr-19 12:59 PM
>why are chloroplasts green and not purple?
1
Decker15-Apr-19 01:00 PM
chloroplasts contain the green pigment chlorophyll
1
))
ComputerGenie 👴👴👴15-Apr-19 01:00 PM
>but why not purple?

ComputerGenie 👴👴👴15-Apr-19 01:09 PM
do you doubt your capabilities?
errrr....
Seems we haven't met before.
Hi!
I'm ComputerGenie; nice to meet you.
If I doubted my ability, I wouldn't run at all
jorian15-Apr-19 01:09 PM
the imposter syndrome been bugging you lately?
ok then
newvulcan15-Apr-19 01:12 PM
Ive been cleaning up all my duff accounts, i think ive caught them all, so only this one should appear now
jorian15-Apr-19 01:13 PM
@newvulcan
hello
newvulcan15-Apr-19 01:16 PM
@jorian - Chainmakers Hi :-)
blackjok3r15-Apr-19 01:17 PM
Does anyone else on testnet see -26 errors?
or is it a bug with my iguana from my changes today? Not seeing them on mainnet at all, so I assume its someone with a corrupted wallet. I have ways to find out who is doing it.
ComputerGenie 👴👴👴15-Apr-19 01:19 PM
it's not new
CrisF15-Apr-19 01:19 PM
I've seen a few this evening.
newvulcan15-Apr-19 01:19 PM
Sorry, no, ive not been in all day - fraid Easter break means Im trampolining with the kids !
ComputerGenie 👴👴👴15-Apr-19 01:20 PM
I started seeing it about 12 hrs ago
CrisF15-Apr-19 01:20 PM
Any data around there useful for you?
newvulcan15-Apr-19 01:20 PM
Going to set something up on my phone so i can check my server from time to time


Bill Darnall Jr
""
My Life
I am a 28 year old SoCal native who loves competitiveness, family, my significant other, animals, and anything to do with computers and space exploration.
My appreciation of computers, science, and pushing the envelope has grealy increased since starting the LearningFuze bootcamp. The hours necessary to really understand and execute programs is insane.
Go Back To Game


haar2tjs
Haar classifiers converter to tracking.js classifiers for object tracking.
Installation
npm install haar2tjs --save-dev
Usage & Example
./example/eye.classifier.xml
<?xml version="1.0"?>
<opencv_storage>
<cascade type_id="opencv-cascade-classifier">
<stageType>BOOST</stageType>
<featureType>HAAR</featureType>
<height>20</height>
<width>20</width>
<stageParams>
<maxWeakCount>1</maxWeakCount>
</stageParams>
<featureParams>
<maxCatCount>0</maxCatCount>
</featureParams>
<stageNum>1</stageNum>
<stages>
<_>
<maxWeakCount>1</maxWeakCount>
<stageThreshold>-1.4562760591506958e+00</stageThreshold>
<weakClassifiers>
<_>
<internalNodes>0 -1 0 1.2963959574699402e-01</internalNodes>
<leafValues>-7.7304208278656006e-01 6.8350148200988770e-01</leafValues>
</_>
</weakClassifiers>
</_>
</stages>
<features>
<_>
<rects>
<_>0 8 20 12 -1.</_>
<_>0 14 20 6 2.</_>
</rects>
<tilted>1</tilted>
</_>
</features>
</cascade>
</opencv_storage>
Convert Script Example:
const Haar2tjs = require(`haar2tjs`);
const input = `./examples/eye.classifier.xml`;
const output = `./examples/eye.classifier.js`;
const eyeToTjs = new Haar2tjs(input);
eyeToTjs
// Optional definition for Docblock-Comments
.setDescription(`Example VJ Classifier for eyes`)
.setAuthor(`Eduardo Lundgren`<EMAIL_ADDRESS>.setVersion(`v1.0.0`)
.setLink(`https://trackingjs.com`)
.setLicense(`BSD`)
// Save as Viola Jones classifier
.saveAsVJ(`eye`, output)
.then((result) => {
console.log(result);
})
.catch((err) => {
console.log(`Ooops, an error happens...`);
console.log(err);
});
Output:
*./example/eye.classifier.js
/**
* Example VJ Classifier for eyes
* @author Eduardo Lundgren<EMAIL_ADDRESS>* @version v1.0.0
* @link https://trackingjs.com
* @license BSD
*/
tracking.ViolaJones.classifiers.eye = new Float64Array([20,20,-1.4562760591506958,1,1,2,0,8,20,12,-1,0,14,20,6,2,0.12963959574699402,-0.7730420827865601,0.6835014820098877]);
Credits
Large parts used from Ciro S. Costa's gulp-converter-tjs (License).
License
MIT License
Copyright (c) 2017 Raphael Wildhaber
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.