Debugging & Monitoring
Monitoring REST API
Monitoring REST API
Flink has a monitoring API that can be used to query status and statistics of running jobs, as well as recent completed jobs.
This monitoring API is used by Flink’s own dashboard, but is designed to be used also by custom monitoring tools.
The monitoring API is a REST-ful API that accepts HTTP requests and responds with JSON data.
Overview
The monitoring API is backed by a web server that runs as part of the Dispatcher . By default, this server listens at post 8081
, which can be configured in flink-conf.yaml
via rest.port
. Note that the monitoring API web server and the web dashboard web server are currently the same and thus run together at the same port. They respond to different HTTP URLs, though.
In the case of multiple Dispatchers (for high availability), each Dispatcher will run its own instance of the monitoring API, which offers information about completed and running job while that Dispatcher was elected the cluster leader.
Developing
The REST API backend is in the flink-runtime
project. The core class is org.apache.flink.runtime.webmonitor.WebMonitorEndpoint
, which sets up the server and the request routing.
We use Netty and the Netty Router library to handle REST requests and translate URLs. This choice was made because this combination has lightweight dependencies, and the performance of Netty HTTP is very good.
To add new requests, one needs to
add a new MessageHeaders
class which serves as an interface for the new request,
add a new AbstractRestHandler
class which handles the request according to the added MessageHeaders
class,
add the handler to org.apache.flink.runtime.webmonitor.WebMonitorEndpoint#initializeHandlers()
.
A good example is the org.apache.flink.runtime.rest.handler.job.JobExceptionsHandler
that uses the org.apache.flink.runtime.rest.messages.JobExceptionsHeaders
.
API
The REST API is versioned, with specific versions being queryable by prefixing the url with the version prefix. Prefixes are always of the form v[version_number]
.
For example, to access version 1 of /foo/bar
one would query /v1/foo/bar
.
If no version is specified Flink will default to the oldest version supporting the request.
Querying unsupported/non-existing versions will return a 404 error.
Attention REST API versioning is not active if the cluster runs in legacy mode . For this case please refer to the legacy API below.
Dispatcher
/cluster
Verb: DELETE
Response code: 200 OK
Shuts down the cluster
Request
Response
/config
Verb: GET
Response code: 200 OK
Returns the configuration of the WebUI.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:DashboardConfiguration",
"properties" : {
"refresh-interval" : {
"type" : "integer"
},
"timezone-name" : {
"type" : "string"
},
"timezone-offset" : {
"type" : "integer"
},
"flink-version" : {
"type" : "string"
},
"flink-revision" : {
"type" : "string"
}
}
}
/jars
Verb: GET
Response code: 200 OK
Returns a list of all jars previously uploaded via '/jars/upload'.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarListInfo",
"properties" : {
"address" : {
"type" : "string"
},
"files" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarListInfo:JarFileInfo",
"properties" : {
"id" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"uploaded" : {
"type" : "integer"
},
"entry" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarListInfo:JarEntryInfo",
"properties" : {
"name" : {
"type" : "string"
},
"description" : {
"type" : "string"
}
}
}
}
}
}
}
}
}
/jars/upload
Verb: POST
Response code: 200 OK
Uploads a jar to the cluster. The jar must be sent as multi-part data. Make sure that the "Content-Type" header is set to "application/x-java-archive", as some http libraries do not add the header by default.
Using 'curl' you can upload a jar via 'curl -X POST -H "Expect:" -F<EMAIL_ADDRESS>http://hostname:port/jars/upload'.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarUploadResponseBody",
"properties" : {
"filename" : {
"type" : "string"
},
"status" : {
"type" : "string",
"enum" : [ "success" ]
}
}
}
/jars/:jarid
Verb: DELETE
Response code: 200 OK
Deletes a jar previously uploaded via '/jars/upload'.
Path parameters
jarid
- String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars (/jars).
Request
Response
/jars/:jarid/plan
Verb: GET
Response code: 200 OK
Returns the dataflow plan of a job contained in a jar previously uploaded via '/jars/upload'. Program arguments can be passed both via the JSON request (recommended) or query parameters.
Path parameters
jarid
- String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars (/jars).
Query parameters
program-args
(optional): Deprecated, please use 'programArg' instead. String value that specifies the arguments for the program or plan
programArg
(optional): Comma-separated list of program arguments.
entry-class
(optional): String value that specifies the fully qualified name of the entry point class. Overrides the class defined in the jar file manifest.
parallelism
(optional): Positive integer value that specifies the desired parallelism for the job.
Request
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarPlanRequestBody",
"properties" : {
"entryClass" : {
"type" : "string"
},
"programArgs" : {
"type" : "string"
},
"programArgsList" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"parallelism" : {
"type" : "integer"
}
}
}
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobPlanInfo",
"properties" : {
"plan" : {
"type" : "any"
}
}
}
/jars/:jarid/run
Verb: POST
Response code: 200 OK
Submits a job by running a jar previously uploaded via '/jars/upload'. Program arguments can be passed both via the JSON request (recommended) or query parameters.
Path parameters
jarid
- String value that identifies a jar. When uploading the jar a path is returned, where the filename is the ID. This value is equivalent to the `id` field in the list of uploaded jars (/jars).
Query parameters
allowNonRestoredState
(optional): Boolean value that specifies whether the job submission should be rejected if the savepoint contains state that cannot be mapped back to the job.
savepointPath
(optional): String value that specifies the path of the savepoint to restore the job from.
program-args
(optional): Deprecated, please use 'programArg' instead. String value that specifies the arguments for the program or plan
programArg
(optional): Comma-separated list of program arguments.
entry-class
(optional): String value that specifies the fully qualified name of the entry point class. Overrides the class defined in the jar file manifest.
parallelism
(optional): Positive integer value that specifies the desired parallelism for the job.
Request
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarRunRequestBody",
"properties" : {
"entryClass" : {
"type" : "string"
},
"programArgs" : {
"type" : "string"
},
"programArgsList" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"parallelism" : {
"type" : "integer"
},
"allowNonRestoredState" : {
"type" : "boolean"
},
"savepointPath" : {
"type" : "string"
}
}
}
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:webmonitor:handlers:JarRunResponseBody",
"properties" : {
"jobid" : {
"type" : "any"
}
}
}
/jobmanager/config
Verb: GET
Response code: 200 OK
Returns the cluster configuration.
Request
Response
{
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:ClusterConfigurationInfoEntry",
"properties" : {
"key" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
}
/jobmanager/metrics
Verb: GET
Response code: 200 OK
Provides access to job manager metrics.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
Request
Response
/jobs
Verb: GET
Response code: 200 OK
Returns an overview over all jobs and their current state.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:JobIdsWithStatusOverview",
"properties" : {
"jobs" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:JobIdsWithStatusOverview:JobIdWithStatus",
"properties" : {
"id" : {
"type" : "any"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "RUNNING", "FAILING", "FAILED", "CANCELLING", "CANCELED", "FINISHED", "RESTARTING", "SUSPENDING", "SUSPENDED", "RECONCILING" ]
}
}
}
}
}
}
/jobs
Verb: POST
Response code: 202 Accepted
Submits a job. This call is primarily intended to be used by the Flink client. This call expects a multipart/form-data request that consists of file uploads for the serialized JobGraph, jars and distributed cache artifacts and an attribute named "request" for the JSON payload.
Request
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobSubmitRequestBody",
"properties" : {
"jobGraphFileName" : {
"type" : "string"
},
"jobJarFileNames" : {
"type" : "array",
"items" : {
"type" : "string"
}
},
"jobArtifactFileNames" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobSubmitRequestBody:DistributedCacheFile",
"properties" : {
"entryName" : {
"type" : "string"
},
"fileName" : {
"type" : "string"
}
}
}
}
}
}
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobSubmitResponseBody",
"properties" : {
"jobUrl" : {
"type" : "string"
}
}
}
/jobs/metrics
Verb: GET
Response code: 200 OK
Provides access to aggregated job metrics.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
agg
(optional): Comma-separated list of aggregation modes which should be calculated. Available aggregations are: "min, max, sum, avg".
jobs
(optional): Comma-separated list of 32-character hexadecimal strings to select specific jobs.
Request
Response
/jobs/overview
Verb: GET
Response code: 200 OK
Returns an overview over all jobs.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:messages:webmonitor:MultipleJobsDetails",
"properties" : {
"jobs" : {
"type" : "array",
"items" : {
"type" : "any"
}
}
}
}
/jobs/:jobid
Verb: GET
Response code: 200 OK
Returns details of a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobDetailsInfo",
"properties" : {
"jid" : {
"type" : "any"
},
"name" : {
"type" : "string"
},
"isStoppable" : {
"type" : "boolean"
},
"state" : {
"type" : "string",
"enum" : [ "CREATED", "RUNNING", "FAILING", "FAILED", "CANCELLING", "CANCELED", "FINISHED", "RESTARTING", "SUSPENDING", "SUSPENDED", "RECONCILING" ]
},
"start-time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"now" : {
"type" : "integer"
},
"timestamps" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer"
}
},
"vertices" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobDetailsInfo:JobVertexDetailsInfo",
"properties" : {
"id" : {
"type" : "any"
},
"name" : {
"type" : "string"
},
"parallelism" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ]
},
"start-time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"tasks" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer"
}
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo",
"properties" : {
"read-bytes" : {
"type" : "integer"
},
"read-bytes-complete" : {
"type" : "boolean"
},
"write-bytes" : {
"type" : "integer"
},
"write-bytes-complete" : {
"type" : "boolean"
},
"read-records" : {
"type" : "integer"
},
"read-records-complete" : {
"type" : "boolean"
},
"write-records" : {
"type" : "integer"
},
"write-records-complete" : {
"type" : "boolean"
}
}
}
}
}
},
"status-counts" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer"
}
},
"plan" : {
"type" : "string"
}
}
}
/jobs/:jobid
Verb: PATCH
Response code: 202 Accepted
Terminates a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Query parameters
mode
(optional): String value that specifies the termination mode. Supported values are: "cancel, stop".
Request
Response
/jobs/:jobid/accumulators
Verb: GET
Response code: 200 OK
Returns the accumulators for all tasks of a job, aggregated across the respective subtasks.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Query parameters
includeSerializedValue
(optional): Boolean value that specifies whether serialized user task accumulators should be included in the response.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobAccumulatorsInfo",
"properties" : {
"job-accumulators" : {
"type" : "array",
"items" : {
"type" : "any"
}
},
"user-task-accumulators" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobAccumulatorsInfo:UserTaskAccumulator",
"properties" : {
"name" : {
"type" : "string"
},
"type" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
},
"serialized-user-task-accumulators" : {
"type" : "object",
"additionalProperties" : {
"type" : "any"
}
}
}
}
/jobs/:jobid/checkpoints
Verb: GET
Response code: 200 OK
Returns checkpointing statistics for a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.

Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointConfigInfo",
"properties" : {
"mode" : {
"type" : "any"
},
"interval" : {
"type" : "integer"
},
"timeout" : {
"type" : "integer"
},
"min_pause" : {
"type" : "integer"
},
"max_concurrent" : {
"type" : "integer"
},
"externalization" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointConfigInfo:ExternalizedCheckpointInfo",
"properties" : {
"enabled" : {
"type" : "boolean"
},
"delete_on_cancellation" : {
"type" : "boolean"
}
}
}
}
}
/jobs/:jobid/checkpoints/details/:checkpointid
Verb: GET
Response code: 200 OK
Returns details for a checkpoint.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
checkpointid
- Long value that identifies a checkpoint.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:CheckpointStatistics",
"properties" : {
"id" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
},
"is_savepoint" : {
"type" : "boolean"
},
"trigger_timestamp" : {
"type" : "integer"
},
"latest_ack_timestamp" : {
"type" : "integer"
},
"state_size" : {
"type" : "integer"
},
"end_to_end_duration" : {
"type" : "integer"
},
"alignment_buffered" : {
"type" : "integer"
},
"num_subtasks" : {
"type" : "integer"
},
"num_acknowledged_subtasks" : {
"type" : "integer"
},
"tasks" : {
"type" : "object",
"additionalProperties" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatistics",
"properties" : {
"id" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
},
"latest_ack_timestamp" : {
"type" : "integer"
},
"state_size" : {
"type" : "integer"
},
"end_to_end_duration" : {
"type" : "integer"
},
"alignment_buffered" : {
"type" : "integer"
},
"num_subtasks" : {
"type" : "integer"
},
"num_acknowledged_subtasks" : {
"type" : "integer"
}
}
}
}
}
}
/jobs/:jobid/checkpoints/details/:checkpointid/subtasks/:vertexid
Verb: GET
Response code: 200 OK
Returns checkpoint statistics for a task and its subtasks.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
checkpointid
- Long value that identifies a checkpoint.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails",
"properties" : {
"id" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "IN_PROGRESS", "COMPLETED", "FAILED" ]
},
"latest_ack_timestamp" : {
"type" : "integer"
},
"state_size" : {
"type" : "integer"
},
"end_to_end_duration" : {
"type" : "integer"
},
"alignment_buffered" : {
"type" : "integer"
},
"num_subtasks" : {
"type" : "integer"
},
"num_acknowledged_subtasks" : {
"type" : "integer"
},
"summary" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:Summary",
"properties" : {
"state_size" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics",
"properties" : {
"min" : {
"type" : "integer"
},
"max" : {
"type" : "integer"
},
"avg" : {
"type" : "integer"
}
}
},
"end_to_end_duration" : {
"type" : "object",
"$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
},
"checkpoint_duration" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:CheckpointDuration",
"properties" : {
"sync" : {
"type" : "object",
"$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
},
"async" : {
"type" : "object",
"$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
}
}
},
"alignment" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:TaskCheckpointStatisticsWithSubtaskDetails:CheckpointAlignment",
"properties" : {
"buffered" : {
"type" : "object",
"$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
},
"duration" : {
"type" : "object",
"$ref" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:MinMaxAvgStatistics"
}
}
}
}
},
"subtasks" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:checkpoints:SubtaskCheckpointStatistics",
"properties" : {
"index" : {
"type" : "integer"
},
"status" : {
"type" : "string"
}
}
}
}
}
}
/jobs/:jobid/config
Verb: GET
Response code: 200 OK
Returns the configuration of a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
/jobs/:jobid/exceptions
Verb: GET
Response code: 200 OK
Returns the non-recoverable exceptions that have been observed by the job. The truncated flag defines whether more exceptions occurred, but are not listed, because the response would otherwise get too big.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobExceptionsInfo",
"properties" : {
"root-exception" : {
"type" : "string"
},
"timestamp" : {
"type" : "integer"
},
"all-exceptions" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobExceptionsInfo:ExecutionExceptionInfo",
"properties" : {
"exception" : {
"type" : "string"
},
"task" : {
"type" : "string"
},
"location" : {
"type" : "string"
},
"timestamp" : {
"type" : "integer"
}
}
}
},
"truncated" : {
"type" : "boolean"
}
}
}
/jobs/:jobid/execution-result
Verb: GET
Response code: 200 OK
Returns the result of a job execution. Gives access to the execution time of the job and to all accumulators created by this job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:JobExecutionResultResponseBody",
"properties" : {
"status" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:queue:QueueStatus",
"required" : true,
"properties" : {
"id" : {
"type" : "string",
"required" : true,
"enum" : [ "IN_PROGRESS", "COMPLETED" ]
}
}
},
"job-execution-result" : {
"type" : "any"
}
}
}
/jobs/:jobid/metrics
Verb: GET
Response code: 200 OK
Provides access to job metrics.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
Request
Response
/jobs/:jobid/plan
Verb: GET
Response code: 200 OK
Returns the dataflow plan of a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobPlanInfo",
"properties" : {
"plan" : {
"type" : "any"
}
}
}
/jobs/:jobid/rescaling
Verb: PATCH
Response code: 200 OK
Triggers the rescaling of a job.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Query parameters
parallelism
(mandatory): Positive integer value that specifies the desired parallelism.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:TriggerResponse",
"properties" : {
"request-id" : {
"type" : "any"
}
}
}
/jobs/:jobid/rescaling/:triggerid
Verb: GET
Response code: 200 OK
Returns the status of a rescaling operation.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
triggerid
- 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:AsynchronousOperationResult",
"properties" : {
"status" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:queue:QueueStatus",
"properties" : {
"id" : {
"type" : "string",
"required" : true,
"enum" : [ "IN_PROGRESS", "COMPLETED" ]
}
}
},
"operation" : {
"type" : "any"
}
}
}
/jobs/:jobid/savepoints
Verb: POST
Response code: 202 Accepted
Triggers a savepoint, and optionally cancels the job afterwards.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
Request
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:savepoints:SavepointTriggerRequestBody",
"properties" : {
"target-directory" : {
"type" : "string"
},
"cancel-job" : {
"type" : "boolean"
}
}
}
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:TriggerResponse",
"properties" : {
"request-id" : {
"type" : "any"
}
}
}
/jobs/:jobid/savepoints/:triggerid
Verb: GET
Response code: 200 OK
Returns the status of a savepoint operation.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
triggerid
- 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:AsynchronousOperationResult",
"properties" : {
"status" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:queue:QueueStatus",
"properties" : {
"id" : {
"type" : "string",
"required" : true,
"enum" : [ "IN_PROGRESS", "COMPLETED" ]
}
}
},
"operation" : {
"type" : "any"
}
}
}
/jobs/:jobid/vertices/:vertexid
Verb: GET
Response code: 200 OK
Returns details for a task, with a summary for each of its subtasks.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexDetailsInfo",
"properties" : {
"id" : {
"type" : "any"
},
"name" : {
"type" : "string"
},
"parallelism" : {
"type" : "integer"
},
"now" : {
"type" : "integer"
},
"subtasks" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexDetailsInfo:VertexTaskDetail",
"properties" : {
"subtask" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ]
},
"attempt" : {
"type" : "integer"
},
"host" : {
"type" : "string"
},
"start_time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo",
"properties" : {
"read-bytes" : {
"type" : "integer"
},
"read-bytes-complete" : {
"type" : "boolean"
},
"write-bytes" : {
"type" : "integer"
},
"write-bytes-complete" : {
"type" : "boolean"
},
"read-records" : {
"type" : "integer"
},
"read-records-complete" : {
"type" : "boolean"
},
"write-records" : {
"type" : "integer"
},
"write-records-complete" : {
"type" : "boolean"
}
}
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/accumulators
Verb: GET
Response code: 200 OK
Returns user-defined accumulators of a task, aggregated across all subtasks.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexAccumulatorsInfo",
"properties" : {
"id" : {
"type" : "string"
},
"user-accumulators" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:UserAccumulator",
"properties" : {
"name" : {
"type" : "string"
},
"type" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/backpressure
Verb: GET
Response code: 200 OK
Returns back-pressure information for a job, and may initiate back-pressure sampling if necessary.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexBackPressureInfo",
"properties" : {
"status" : {
"type" : "string",
"enum" : [ "deprecated", "ok" ]
},
"backpressure-level" : {
"type" : "string",
"enum" : [ "ok", "low", "high" ]
},
"end-timestamp" : {
"type" : "integer"
},
"subtasks" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexBackPressureInfo:SubtaskBackPressureInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"backpressure-level" : {
"type" : "string",
"enum" : [ "ok", "low", "high" ]
},
"ratio" : {
"type" : "number"
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/metrics
Verb: GET
Response code: 200 OK
Provides access to task metrics.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
Request
Response
/jobs/:jobid/vertices/:vertexid/subtasks/accumulators
Verb: GET
Response code: 200 OK
Returns all user-defined accumulators for all subtasks of a task.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtasksAllAccumulatorsInfo",
"properties" : {
"id" : {
"type" : "any"
},
"parallelism" : {
"type" : "integer"
},
"subtasks" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtasksAllAccumulatorsInfo:SubtaskAccumulatorsInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"attempt" : {
"type" : "integer"
},
"host" : {
"type" : "string"
},
"user-accumulators" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:UserAccumulator",
"properties" : {
"name" : {
"type" : "string"
},
"type" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/subtasks/metrics
Verb: GET
Response code: 200 OK
Provides access to aggregated subtask metrics.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
agg
(optional): Comma-separated list of aggregation modes which should be calculated. Available aggregations are: "min, max, sum, avg".
subtasks
(optional): Comma-separated list of integer ranges (e.g. "1,3,5-9") to select specific subtasks.
Request
Response
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex
Verb: GET
Response code: 200 OK
Returns details of the current or latest execution attempt of a subtask.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
subtaskindex
- Positive integer value that identifies a subtask.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtaskExecutionAttemptDetailsInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ]
},
"attempt" : {
"type" : "integer"
},
"host" : {
"type" : "string"
},
"start-time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo",
"properties" : {
"read-bytes" : {
"type" : "integer"
},
"read-bytes-complete" : {
"type" : "boolean"
},
"write-bytes" : {
"type" : "integer"
},
"write-bytes-complete" : {
"type" : "boolean"
},
"read-records" : {
"type" : "integer"
},
"read-records-complete" : {
"type" : "boolean"
},
"write-records" : {
"type" : "integer"
},
"write-records-complete" : {
"type" : "boolean"
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/attempts/:attempt
Verb: GET
Response code: 200 OK
Returns details of an execution attempt of a subtask. Multiple execution attempts happen in case of failure/recovery.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
subtaskindex
- Positive integer value that identifies a subtask.
attempt
- Positive integer value that identifies an execution attempt.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtaskExecutionAttemptDetailsInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ]
},
"attempt" : {
"type" : "integer"
},
"host" : {
"type" : "string"
},
"start-time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo",
"properties" : {
"read-bytes" : {
"type" : "integer"
},
"read-bytes-complete" : {
"type" : "boolean"
},
"write-bytes" : {
"type" : "integer"
},
"write-bytes-complete" : {
"type" : "boolean"
},
"read-records" : {
"type" : "integer"
},
"read-records-complete" : {
"type" : "boolean"
},
"write-records" : {
"type" : "integer"
},
"write-records-complete" : {
"type" : "boolean"
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/attempts/:attempt/accumulators
Verb: GET
Response code: 200 OK
Returns the accumulators of an execution attempt of a subtask. Multiple execution attempts happen in case of failure/recovery.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
subtaskindex
- Positive integer value that identifies a subtask.
attempt
- Positive integer value that identifies an execution attempt.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:SubtaskExecutionAttemptAccumulatorsInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"attempt" : {
"type" : "integer"
},
"id" : {
"type" : "string"
},
"user-accumulators" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:UserAccumulator",
"properties" : {
"name" : {
"type" : "string"
},
"type" : {
"type" : "string"
},
"value" : {
"type" : "string"
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/subtasks/:subtaskindex/metrics
Verb: GET
Response code: 200 OK
Provides access to subtask metrics.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
subtaskindex
- Positive integer value that identifies a subtask.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
Request
Response
/jobs/:jobid/vertices/:vertexid/subtasktimes
Verb: GET
Response code: 200 OK
Returns time-related information for all subtasks of a task.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:SubtasksTimesInfo",
"properties" : {
"id" : {
"type" : "string"
},
"name" : {
"type" : "string"
},
"now" : {
"type" : "integer"
},
"subtasks" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:SubtasksTimesInfo:SubtaskTimeInfo",
"properties" : {
"subtask" : {
"type" : "integer"
},
"host" : {
"type" : "string"
},
"duration" : {
"type" : "integer"
},
"timestamps" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer"
}
}
}
}
}
}
}
/jobs/:jobid/vertices/:vertexid/taskmanagers
Verb: GET
Response code: 200 OK
Returns task information aggregated by task manager.
Path parameters
jobid
- 32-character hexadecimal string value that identifies a job.
vertexid
- 32-character hexadecimal string value that identifies a job vertex.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexTaskManagersInfo",
"properties" : {
"id" : {
"type" : "any"
},
"name" : {
"type" : "string"
},
"now" : {
"type" : "integer"
},
"taskmanagers" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:JobVertexTaskManagersInfo:TaskManagersInfo",
"properties" : {
"host" : {
"type" : "string"
},
"status" : {
"type" : "string",
"enum" : [ "CREATED", "SCHEDULED", "DEPLOYING", "RUNNING", "FINISHED", "CANCELING", "CANCELED", "FAILED", "RECONCILING" ]
},
"start-time" : {
"type" : "integer"
},
"end-time" : {
"type" : "integer"
},
"duration" : {
"type" : "integer"
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:metrics:IOMetricsInfo",
"properties" : {
"read-bytes" : {
"type" : "integer"
},
"read-bytes-complete" : {
"type" : "boolean"
},
"write-bytes" : {
"type" : "integer"
},
"write-bytes-complete" : {
"type" : "boolean"
},
"read-records" : {
"type" : "integer"
},
"read-records-complete" : {
"type" : "boolean"
},
"write-records" : {
"type" : "integer"
},
"write-records-complete" : {
"type" : "boolean"
}
}
},
"status-counts" : {
"type" : "object",
"additionalProperties" : {
"type" : "integer"
}
}
}
}
}
}
}
/overview
Verb: GET
Response code: 200 OK
Returns an overview over the Flink cluster.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:legacy:messages:ClusterOverviewWithVersion",
"properties" : {
"taskmanagers" : {
"type" : "integer"
},
"slots-total" : {
"type" : "integer"
},
"slots-available" : {
"type" : "integer"
},
"jobs-running" : {
"type" : "integer"
},
"jobs-finished" : {
"type" : "integer"
},
"jobs-cancelled" : {
"type" : "integer"
},
"jobs-failed" : {
"type" : "integer"
},
"flink-version" : {
"type" : "string"
},
"flink-commit" : {
"type" : "string"
}
}
}
/savepoint-disposal
Verb: POST
Response code: 200 OK
Triggers the desposal of a savepoint.
Request
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:job:savepoints:SavepointDisposalRequest",
"properties" : {
"savepoint-path" : {
"type" : "string"
}
}
}
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:TriggerResponse",
"properties" : {
"request-id" : {
"type" : "any"
}
}
}
/savepoint-disposal/:triggerid
Verb: GET
Response code: 200 OK
Returns the status of a savepoint disposal operation.
Path parameters
triggerid
- 32-character hexadecimal string that identifies an asynchronous operation trigger ID. The ID was returned then the operation was triggered.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:handler:async:AsynchronousOperationResult",
"properties" : {
"status" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:queue:QueueStatus",
"properties" : {
"id" : {
"type" : "string",
"required" : true,
"enum" : [ "IN_PROGRESS", "COMPLETED" ]
}
}
},
"operation" : {
"type" : "any"
}
}
}
/taskmanagers
Verb: GET
Response code: 200 OK
Returns an overview over all task managers.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagersInfo",
"properties" : {
"taskmanagers" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerInfo",
"properties" : {
"id" : {
"type" : "any"
},
"path" : {
"type" : "string"
},
"dataPort" : {
"type" : "integer"
},
"timeSinceLastHeartbeat" : {
"type" : "integer"
},
"slotsNumber" : {
"type" : "integer"
},
"freeSlots" : {
"type" : "integer"
},
"hardware" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:instance:HardwareDescription",
"properties" : {
"cpuCores" : {
"type" : "integer"
},
"physicalMemory" : {
"type" : "integer"
},
"freeMemory" : {
"type" : "integer"
},
"managedMemory" : {
"type" : "integer"
}
}
}
}
}
}
}
}
/taskmanagers/metrics
Verb: GET
Response code: 200 OK
Provides access to aggregated task manager metrics.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
agg
(optional): Comma-separated list of aggregation modes which should be calculated. Available aggregations are: "min, max, sum, avg".
taskmanagers
(optional): Comma-separated list of 32-character hexadecimal strings to select specific task managers.
Request
Response
/taskmanagers/:taskmanagerid
Verb: GET
Response code: 200 OK
Returns details for a task manager.
Path parameters
taskmanagerid
- 32-character hexadecimal string that identifies a task manager.
Request
Response
{
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerDetailsInfo",
"properties" : {
"id" : {
"type" : "any"
},
"path" : {
"type" : "string"
},
"dataPort" : {
"type" : "integer"
},
"timeSinceLastHeartbeat" : {
"type" : "integer"
},
"slotsNumber" : {
"type" : "integer"
},
"freeSlots" : {
"type" : "integer"
},
"hardware" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:instance:HardwareDescription",
"properties" : {
"cpuCores" : {
"type" : "integer"
},
"physicalMemory" : {
"type" : "integer"
},
"freeMemory" : {
"type" : "integer"
},
"managedMemory" : {
"type" : "integer"
}
}
},
"metrics" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerMetricsInfo",
"properties" : {
"heapUsed" : {
"type" : "integer"
},
"heapCommitted" : {
"type" : "integer"
},
"heapMax" : {
"type" : "integer"
},
"nonHeapUsed" : {
"type" : "integer"
},
"nonHeapCommitted" : {
"type" : "integer"
},
"nonHeapMax" : {
"type" : "integer"
},
"directCount" : {
"type" : "integer"
},
"directUsed" : {
"type" : "integer"
},
"directMax" : {
"type" : "integer"
},
"mappedCount" : {
"type" : "integer"
},
"mappedUsed" : {
"type" : "integer"
},
"mappedMax" : {
"type" : "integer"
},
"memorySegmentsAvailable" : {
"type" : "integer"
},
"memorySegmentsTotal" : {
"type" : "integer"
},
"garbageCollectors" : {
"type" : "array",
"items" : {
"type" : "object",
"id" : "urn:jsonschema:org:apache:flink:runtime:rest:messages:taskmanager:TaskManagerMetricsInfo:GarbageCollectorInfo",
"properties" : {
"name" : {
"type" : "string"
},
"count" : {
"type" : "integer"
},
"time" : {
"type" : "integer"
}
}
}
}
}
}
}
}
/taskmanagers/:taskmanagerid/metrics
Verb: GET
Response code: 200 OK
Provides access to task manager metrics.
Path parameters
taskmanagerid
- 32-character hexadecimal string that identifies a task manager.
Query parameters
get
(optional): Comma-separated list of string values to select specific metrics.
Request
Response
Back to top


Hey {firstname},
Unfortunately we need to ask that you pause the following campaigns, effective {{date}}
{{Campaign name}}
Campaigns
{{fill in the bitches}}
{{month}}
{{day}}
Please contact your affiliate manager if you have any questions
Thanks,
The Blind Ferret Team
If you have any questions, please contact your affiliate manager
Blind Ferret Media
If you prefer to not receive these emails, please visit the following link:
{unsub_email_url}


{% extends "skeleton/_body_md.html" %} {%hyde title: "About" navname: "About" created: 2011-03-24 modified: 2011-04-06 %} {% block content_md %} Cast is an open-source, [Apache 2.0][]-licensed framework for deploying, upgrading, and managing applications and services. Think of it as your very own, flexible "platform as a service" that you can run wherever and however you want. The framework is API-driven, which means that every functionality is exposed though a well-designed, JSON-based REST API. ### What Does Cast Do? By running the Cast agent on your server, you can: 1. Upload tarballs of your application 2. Deploy (and upgrade) instances of your application 3. Run and manage your application's services You can perform any of these activities using the Cast client, or perform them direcly through the Cast Agent's HTTP API. ### Goals Our goal is to build a "smart" API-driven framework that allows users to easily deploy, manage, upgrade, and automatically scale their applications and services. We plan for Cast to: * Allow applications to scale and configure themselves * Provide a language and techology agnostic service platform * Be as easy to use for huge applications on hundreds of servers as it is for tiny ones on one server * Be adapted for a wide range of applications through an open and community-oriented development process


Jared Kusher, Trump’s son-in-law, Senior White House Adviser, and head of Kushner Companies, meets with executives of Russian state-run development bank Vnesheconombank (VEB) in late 2016.
U.S. officials allege that Kushner first met with former National Security Adviser Michael Flynn and Russian Ambassador Sergey Kislyak, and then met with VEB chairman Sergei Gorkov in December 2016 during a bank roadshow. Gorkov was appointed head of the VEB by Russian president Vladimir Putin in early 2016 and is a decorated member of the Russian Federal Security Service. VEB, along with other Russian banks, has been under Western economic sanctions since 2014 concerning Russia’s annexation of part of Ukraine.
Kushner has agreed to testify before the U.S. Senate over suspected Russian interference in the presidential election.
Source: CNBC


Getting started
Add games to your library
Using the library tab at the top add a few games you liked and disliked to your library. You can include thoughts to allow others to get a better idea of what games to get or avoid
Matching you
Review Kai will magically match you with Pro reviewers and your peers and will create a library of personal recomendations. As you add more games to your library the better the pros and peers can understand you and the better recomendations they will give.
Confidants
You can also find and add confidants. Gamers who opinons your trust over everything else their opinions will be weighted more highly in our calculations. You can even search their libraries to see what they think before you add them.


In addition to properties on the grid proper, properties on individual columns can also be set declaratively (that is, through grid state), keyed by column name.
To set properties on a column using a state object, for example theprevclose
column:
{ columns: { prevclose: { propName: 'value' } } }
columns
is a dynamic property (a setter) and actually sets individual column’s properties
objects.
That is, columns
is not an object of grid properties;
there is no such thing as grid.properties.columns
.
Similarly, we can also set properties on rows and cells through grid state.
In these cases, you also need to specify the subgrid (usually data
), as row numbers are local to subgrids.
{ rows: { data: { 3: { propName: 'value' } } } }
To set properties on a data cell using a state object, for example the cell at the intersection of the fourth data row and the prevclose
column:
{ cells: { data: { 3: { prevclose: { propName: 'value' } } } } }
grid.setState
, this method is not appropriate when your app’s columns (or rows, or cells) are not static. When you don’t know about the columns in advance, you can set column properties by other means, such as programmatically, or by loading and setting column properties objects, etc.
currency
localizer except cells in column prevclose
which use the pct
localizer:
grid.setState({ format: 'currency', // grid property that affects all cells columns: { prevclose: { format: 'pct' // affects specific column, overriding above } } });See the Grid Properties wiki for details.
propClassLayers
property,
whose default setting includes row properties, normally not part of the prototype chain.


You must be on a playlist to use SpotifyParty.
You have joined a Spotify Party!
Start a Spotify Party!


Toggle navigation
Impedance Analyzer
Home
Demo
Docs
×
Input options for model fits
×
Download Parameter Table
Explore P2D fit
Welcome to the Impedance Analyzer:
an open-source tool for analyzing EIS data.
Upload a file
or choose an example
Select a file to upload
Select an example dataset
Select a dataset
CALCE (Ctr. for Adv. Life Cycle Eng.)
Samsung NMC
Select analysis to perform
Analysis
Equivalent circuits
Randles' circuit
Randles' circuit w/CPE
Two time constant w/ Warburg
Physics-based models
P2D battery model
Your model?
Validation
Kramer-Kronig
Measurement Model
Parameter Estimates
Download Results
type="text/javascript"


Simple Modal Link
|
When hint
|
<span> Hoverbox
link here
Paste this text to link back to this map!
Paste this text to embed this map into a web page!
Time Ranges
Examples of valid time ranges are:
1992
430 BC
2000-2006
Feb 1884 - Jan 1886
June 22, 1992 12am - June 30, 1992
October 1992
Oct 12, 1992, 12:23:05 am
CLOSE X
Flag an Event
Before flagging a item, please review the
deletion policy
Reason
It belongs in personal history
It belongs in fictional literature
It is totally fake, just remove it
Comment


If you're shocked by the mayhem Mel Gibson perpetrates in "Payback," keep in mind that Gibson first rose to international stardom in director George Miller's "Mad Max" movies, deliriously violent spectaculars in which the only rule seemed to be "kill or be killed." In the two decades since, Gibson has mellowed out considerably. True, plenty of blood has been spilled in the "Lethal Weapon" movies, but director Richard Donner has upped the levity quotient so much over the years that last summer's "Lethal Weapon 4" was practically a sitcom with occasional kung-fu interludes.
The extraordinarily brutal "Payback" could also be seen as a comedy, albeit an extremely sick and twisted one that offers Gibson the rare opportunity to play against type. Some of his fans will applaud the stretch, many will be appalled, and no one should expect a film this unrelentingly nasty to become a major hit at the box office.
But don't be surprised if, 10 years down the line, "Payback" is hailed as a minor cult classic. It may be bloody, sleazy and populated entirely by trashy people, but this picture is also subtly stylish, sensationally acted and - if you appreciate extremely bitter humor - pretty funny as well. Somehow, someday, somewhere, "Payback" will get its due.
Fittingly, at the center of the movie is a guy who's just trying to get what he thinks he deserves. Porter (Gibson) was swindled out of $70,000 and left for dead by backstabbing former partners, one of whom used the money to pay off a debt to "the outfit."
In terms of plot, that's about all "Payback" has to offer. What makes the movie crackle is a cast of powerhouse actors and the vivid colors in the script by Terry Hayes and director Brian Helgeland.
Porter's wife (Deborah Kara Unger) is a junkie who hides her works in music boxes and in the hollowed-out heels of platform shoes. The only thing Porter's ex-friend Val (Gregg Henry) enjoys more than roughing up others is getting pulverized by dominatrix Pearl (Lucy Liu of "Ally McBeal").
"Payback" also manages to accommodate a nod to Neil Jordan's memorable "Mona Lisa," as Porter finds himself drawn to the pricey call girl Rosie (Maria Bello) he's been driving around town. But the dialogue is anything but lovey-dovey. "I think all those stories about your being dead are true," Rosie tells Porter. "You're just too thick-headed to admit it."
It's juicy stuff, and Helgeland demonstrates a terrific feel for the material. "Payback" has been shot in a cool blue tint that makes it seem like a snapshot from the past, an effect enhanced by disorienting backgrounds that include New Jersey commuter trains alongside Chicago street signs.
It's already been widely reported that the primary reason the release of "Payback" has been held up for the past six months has been differences between Gibson and Helgeland over exactly how dark the movie should be. Not being able to see the original cut, we'll probably never know for certain what it was like, but it's doubtful it was any better than this vicious, jolting little amorality play. James Sanford
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


-
Setting up a VM for Machine Learning
A step-by-step guide to setup a Virtual Machine for running Machine Learning SampleRNN with CUDA support.
Setting up a VM for Machine LearningA step-by-step guide to setup a Virtual Machine for running Machine Learning SampleRNN with CUDA support. |


Mouse-tracking, the analysis of mouse movements in computerized experiments, is a method that is becoming increasingly popular in the cognitive sciences. The mousetrap package offers functions for importing, preprocessing, analyzing, aggregating, and visualizing mouse-tracking data.
| Version: | 3.1.1 |
| Depends: | R (≥ 3.1.0) |
| Imports: | utils, stats, pracma, dplyr (≥ 0.5.0), tidyr, magrittr, graphics, grDevices, ggplot2, scales, psych (≥ 1.2.4), Rcpp (≥ 0.11.4), diptest, RColorBrewer, cstab, fastcluster, parallel, fields |
| LinkingTo: | Rcpp |
| Suggests: | readbulk, testthat |
| Published: | 2018-07-06 |
| Author: | Pascal J. Kieslich [aut, cre], Dirk U. Wulff [aut], Felix Henninger [aut], Jonas M. B. Haslbeck [aut], Sarah Brockhaus [ctb] |
| Maintainer: | Pascal J. Kieslich <kieslich at psychologie.uni-mannheim.de> |
| BugReports: | https://github.com/pascalkieslich/mousetrap/issues |
| License: | GPL-3 |
| URL: | https://github.com/pascalkieslich/mousetrap |
| NeedsCompilation: | yes |
| Materials: | README NEWS |
| CRAN checks: | mousetrap results |
| Reference manual: | mousetrap.pdf |
| Package source: | mousetrap_3.1.1.tar.gz |
| Windows binaries: | r-devel: mousetrap_3.1.1.zip, r-release: mousetrap_3.1.1.zip, r-oldrel: mousetrap_3.1.1.zip |
| OS X binaries: | r-release: mousetrap_3.1.1.tgz, r-oldrel: mousetrap_3.1.1.tgz |
| Old sources: | mousetrap archive |
Please use the canonical form https://CRAN.R-project.org/package=mousetrap to link to this page.


{% extends "base.html" %} {% block content %}
Your name: {{ user.get_full_name }}
You have signed the pledge!
I changed my mind, I want to unsign the pledge. Unsign
{% else %}You have not signed the pledge Sign the pledge
{% endif %}Associated social networks:
Connect your Let’s Get Louder account with your:


ChEcKoUt PaGe!
Home
Page
!
Products
on
SALE!
See your cart
Contact us
Forums
Search For:
Search for it
Step 1 of 3: Confirm order!
S.No
Item Name
Quantity
Total Price
1
ichair
3
$1797.00
2
Pig
10
$100.00
3
Cat
8
$400.00
Proceed to
step 2 of 3
Edit this order
Cancel this order
©2010-2011
X
YZ
.com
some rights reserved.


--- layout: default title: Mobile apps development using React Native description: Mobile apps development using React Native,it is a very powerful technology to develop any type of application. keywords: Mobile development, React Native, android development,startups,ios development,mobile api development ---
We have been building products in Ruby on Rails for 7+ years. Rails is a flexible framework that allows rapid prototyping and has a large community of developers commited to contributing to the Ruby on Rails open source community.
Our team loves Ruby on Rails development because of the speed of development and ecosystem of products around it including Heroku for hosting, New Relic for monitoring and many more.
We think big. We'll help you find and refine the big ideas to deliver short and long term value to your organiztion.
We design engaging mobile experiences. Visual journeys that delight users with every page view, touch and swipe.
Our mobile app development team consists of only the smartest - like Einsten, Newton.
Our design and development teams will work with you to thoroughly understand your business objectives. Once they understand your vision for the app, they will merge their deep knowledge of all things android and your vision to develop an initial concept for the app.
Next the team will determine the features that need to be added and build an app architecture that efficiently integrates all the features. In short, our awesome developers will figure out the kinks to create a smooth framework.
Our designers believe “Design is King”. Our design and development teams will create a stunning, captivating design for your app without compromising the integrity and performance of the architecture.
The Android app development is done in bits (thus, CodeCrux!) according to the features added in the app. Our Agile-based work environment will give you the control to review our development process and demand any changes you may want.
Our Quality Assurance team will test each bit after development and then, again when all the features and functionalities have been integrated into the app as a Beta Version. Once assured, we can deploy/launch the app in the App Store or arm you with everything you will need to do it yourself.
Since the date of the launch, we will cover all your support and maintenance needs for a period of 3 months, free of cost. After that you will have the option to buy one of our maintenance packages which cover everything from bug fixes to updates to completely newer versions.


Geon Kim
Vanier College Student
My personal interests are listening to music, investing, and workout.
Contact Me


While most other examples define a fixed grid height, this is purely optional. If you omit a height specification, the grid will be as high as necessary to fit all data without scrolling.


This is an example of using rework-npm.
Compile the stylesheet by running node
example/build.js
in the repository folder.
If you are using a browser that supports CSS source maps, you should be able to see the source files that each rule was imported from.


Autor: Sophie Mackintosh
The Water Cure is a feminist dystopian revenge fantasy by Sophie Mackintosh. First published in 2018, and longlisted for the 2018 Booker Prize, the novel follows what happens when three sisters fight back against their father’s oppressive regime. Critics praise the book for its comments on toxic masculinity and the capacity for violence against women. Mackintosh is best known for her short stories which have featured in prominent publications such as Granta and TANK magazine. She has won numerous awards for her writing, including the 2016 White Review Short Story Prize. The Water Cure is her debut novel.
In The Water Cure, a family has sequestered itself on an island to protect themselves against this spreading poison.  They are just close enough to the mainland to see the in the distance "the round glow of the horizon, the air peach-ripe with toxicity." They fence their borders, kill animals who might be carrying the toxins, and submit to elaborate purifying rituals. "There is no hiding the damage the outside world can do, if a woman hasn't been taking the right precautions to guard her body."


{% load static %}
Departments dashboard
Objetives on track
{{objectives_on_track.on_track}}/{{objectives_on_track.total}} objectives
since {{objectives_on_track.date_since}}
Objetives Recently Updated
+{{objectives_updated_recently.change}}(%{{objectives_updated_recently.percentage_change}}) updates {% if objectives_updated_recently.direction == "up" %}
{% else %}
{% endif %}
over past {{objectives_updated_recently.date_since}}
Objetives on track
All Departments


--- layout: post title: corn muffins date: 2010-06-28 10:49:22.000000000 -04:00 type: post published: true status: publish categories: - breakfast & brunch - muffins - savory - vegan - vegetarian tags: - corn muffins - vegan meta: jabber_published: '1277736563' author: login: sophie email<EMAIL_ADDRESS>display_name: Pika first_name: '' last_name: '' ---


In this step you need to choose witch type of data stream you attempt to use.
Choice is made by clicking on one of the radio buttons.
Each of the radio buttons when clicked displays description as you can see on pictures below.
Next >>


© 2004-2011 The Apache Software Foundation.
Apache ActiveMQ, ActiveMQ, Apache, the Apache feather logo, and the Apache
ActiveMQ project logo are trademarks of The Apache Software Foundation. All
other marks mentioned may be trademarks or registered trademarks of their
respective owners.
Graphic Design By
Hiram


Connector is a a free application that connects dine in restauraunt to soup kitchens or homeless shelters. Our application serves as the middle-man, finding homless shelters for restauraunt to deliver extra food.
With our application, we can get more food to the less forturnate and be one step closer to solving world hunger.


Models in brickr default to rendering rectangular LEGO bricks. Other LEGO shapes are possible in both bricks_from_coords()
and bricks_from_table()
or bricks_from_excel()
.
Piece shapes in models are driven the piece_type
ID.
Currently there are 5 unique piece shapes in brickr. Some shapes can have different orientations, which is also determined by the piece_type
column.
| Piece | piece_type | Area | Height | Orientation |
|---|---|---|---|---|
| Brick (classic) | ‘b’ | any | 1 | – |
| Plate (flat brick) | ‘p’ | any | 1/3 | – |
| Round 1x1 (cylinder) | ‘c1’ | 1 | 1 | – |
| Round 1x1 (cone) | ‘c2’ | 1 | 1 | – |
| Cheese slope | ‘w1’ | 1 | 2/3 | north |
| Cheese slope | ‘w2’ | 1 | 2/3 | east |
| Cheese slope | ‘w3’ | 1 | 2/3 | south |
| Cheese slope | ‘w4’ | 1 | 2/3 | west |
expand.grid( x = 1:4 * 2, y = 1:2 * 2, z = 1) %>% dplyr::mutate(Color = head(lego_colors$Color, 8), piece_type = c("b", "p", "c1", "c2", "w1", "w2", "w3", "w4")) %>% bricks_from_coords() %>% build_bricks(rgl_lit = FALSE, outline_bricks = TRUE) rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi, 0, 0 ,1))
Changing the piece type in bricks_from_coords()
is the most straight-forward, so let’s begin there.
Start with a simple programmed model to create a classic 2x4 red brick.
expand.grid( x = 1:4, y = 1:2, z = 1, Color = "Bright red", stringsAsFactors = FALSE ) %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
Add a new column, piece_type
, you can change this default shape. Set piece_type = "p"
to create a 2x4 plate instead. A LEGO plate is 1/3 the height of a brick.
expand.grid( x = 1:4, y = 1:2, z = 1, Color = "Bright red", stringsAsFactors = FALSE ) %>% dplyr::mutate(piece_type = "p") %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
Including piece options in bricks_from_table()
or bricks_from_excel()
is slightly more involved because the input tables are two-dimensional for easier drawing.
In these functions, use the input piece_table
to supply an identically shaped table with optional piece_type
ids instead of numbers.
Start with this data frame called tree_or_mushroom.
tree_or_mushroom <- tibble::tribble( ~Level, ~X1, ~X2, ~X3, ~X4, ~X5, ~X6, "A", 1, 1, 1, 1, 1, 1, "A", 1, 1, 1, 1, 1, 1, "A", 1, 1, 1, 1, 1, 1, "A", 1, 1, 1, 1, 1, 1, "B", 0, 0, 0, 0, 0, 0, "B", 0, 0, 2, 2, 0, 0, "B", 0, 0, 2, 2, 0, 0, "B", 0, 0, 0, 0, 0, 0, "C", 0, 0, 0, 0, 0, 0, "C", 0, 0, 2, 2, 0, 0, "C", 0, 0, 2, 2, 0, 0, "C", 0, 0, 0, 0, 0, 0, "D", 0, 3, 3, 3, 3, 0, "D", 0, 3, 3, 3, 3, 0, "D", 0, 3, 3, 3, 3, 0, "D", 0, 3, 3, 3, 3, 0, "E", 0, 0, 3, 3, 0, 0, "E", 0, 3, 3, 3, 3, 0, "E", 0, 3, 3, 3, 3, 0, "E", 0, 0, 3, 3, 0, 0, "F", 0, 0, 0, 0, 0, 0, "F", 0, 0, 3, 3, 0, 0, "F", 0, 0, 3, 3, 0, 0, "F", 0, 0, 0, 0, 0, 0, "G", 0, 0, 0, 0, 0, 0, "G", 0, 0, 3, 0, 0, 0, "G", 0, 0, 0, 3, 0, 0, "G", 0, 0, 0, 0, 0, 0 ) brick_colors <- tibble::tribble( ~`.value`, ~Color, 1, "Bright green", 2, "Dark orange", 3, "Dark green" ) tree_or_mushroom %>% bricks_from_table(brick_colors) %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
If you want more a tree with more texture, you can change all the “leaves” from rectangular bricks into cylinder bricks.
tree_or_mushroom_pieces <- tree_or_mushroom %>% dplyr::mutate_at(dplyr::vars(dplyr::starts_with("X")), ~ifelse(.==3, "c2", "b")) #If the color is the dark green, make a cone, else brick tree_or_mushroom %>% bricks_from_table(brick_colors, piece_matrix = tree_or_mushroom_pieces) %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
For bricks_from_excel()
, you only have to supply piece_type
ids when you do NOT want the classic brick. The best option here is to create your model in the Excel template in the brickr toybox GitHub repo. Once complete, duplicate the sheet and change any color values to piece_type IDs.
Because different piece types have different heights, your models might have unintentional gaps when using pieces that are less than 1-unit tall.
Start with this LEGO cube.
expand.grid( x = 1:3, y = 1:3, z = 1:3, color = "Bright blue" ) %>% dplyr::mutate(color = ifelse(z==2, "Bright red", as.character(color))) %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
A problem arises when we change these bricks to plates. Each z (Level) continues to be drawn at the same height and the plates are no longer stacked together.
expand.grid( x = 1:3, y = 1:3, z = 1:3, color = "Bright blue" ) %>% dplyr::mutate(color = ifelse(z==2, "Bright red", as.character(color)), piece_type = "p") %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
Each z (Level) is the height of a brick, but plates and cheese slopes have height less than a brick. To stack consecutive bricks that are now all full height, you’ll need to use a new column, mid_level
. The mid_level
column can be added anywhere in a bricks_from_coords()
input or as the 2nd column after Level
in the matrix_table
input in bricks_from_table()
or bricks_from_excel()
.
By default, all bricks and pieces are located at mid_level = 0
, which is the base of the z (Level). All z (Level) values have 3 possible mid_level values: 0, 1, 2.
Using integer division and mods, you can convert all levels uniformly to Level + mid_levels. In future versions of brickr, there will be helper functions.
expand.grid( x = 1:3, y = 1:3, z = 1:3, color = "Bright blue" ) %>% dplyr::mutate(color = ifelse(z==2, "Bright red", as.character(color)), piece_type = "p") %>% dplyr::mutate(mid_level = (z-1) %% 3, z = (z-1) %/% 3 +1) %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))
It’s also possible to mix and match different z (Level) and mid_level combinations to stack plates with bricks. There are various ways to do this, depending on the complexity and your comfort with tidyverse data manipulation.
expand.grid( x = 1:3, y = 1:3, z = 1:3, color = "Bright blue" ) %>% dplyr::mutate(color = ifelse(z==2, "Bright red", as.character(color)), piece_type = ifelse(z==2, "p", "b")) %>% dplyr::mutate( mid_level = dplyr::case_when( z %in% 1:2 ~ 0, z == 3 ~ 1 ), z = dplyr::case_when( z %in% 2:3 ~ 2, TRUE ~ 1 )) %>% bricks_from_coords() %>% build_bricks() rgl::par3d(userMatrix = rgl::rotate3d(rgl::par3d("userMatrix"), 1.1*pi/4, 0, 0 ,1))


- Meat Double Sushi Roll
- Healthy Whole Wheat Waffles
- Deep Fried Prawns
Meat Double Sushi Roll
Ingredients
- Rice
- Plastic wrap
- Vegetables
- Egg
- Ground beef
- Roasted seaweed
- Pork sung
Instructions
- First of all, make sure your rice at least an hour or two in advance so that it has time to cool to room temperature before assembling your rolls.
- Then, add the seasonings, eggs to the beef ground and mix well. spread a thin layer of beef ground over the nori . Put in the oven and bake for 20-30 mins.
- Spread a thin layer of rice over the nori and add the fillings, add your ingredients toward the center of the rice-covered nori. Don’t forget roll your beef sushi in and don't overpack it.
- Roll up the sushi.
Healthy Whole Wheat Waffles
Ingredients
- Whole wheat flour
- Coconut flour
- Low fat milk
- Rice cake
- Yeast/Sweetener
- Waffle maker
Instructions
- In a large mixing bowl whisk together the whole wheat flour, coconut flour, low-fat milk, sweetener, yeast and pour some water until well combined.
- Then, start to roll it into a ball.
- Cover the dough with plastic warp and waiting for 50mins.
- Tuck the rice cake into the dough
- Preheat your waffle maker. Cook the waffles until golden brown and crisp, wait for 1-2mins.
Deep Fried Prawns
Ingredients
- Shrimp
- Ginger
- Garlic
- Green onion
- Soy source / sugar / oyster sauce /
- Oil / Salt
- Frozen Green bean
Instructions
- Soak the shrimp in warm, lightly salted water for 5 minutes.
- Prepare all the ingredients. Mix all the seasoning well.
- Rinse in cold water, drain and pat dry with paper towels.
- Heat the oil in a wok over medium-high heat. Put the garlic and ginger into the pot. Then place the prawns in the hot oil and turning as needed, until golden brown.
- Put all the seasonings in and sprinkle the green beans and chopped green onion on top.


home
properties
contacts
news
absolute ESTATE
get a house at a reasonable price
our properties
all
rent
buy


HOLY SMOKE! (Miramax) Starring: Kate Winslet, Harvey Keitel, Julie Hamilton, Sophie Lee. Screenplay: Anna Campion and Jane Campion. Producer: Jan Chapman. Director: Jane Campion.  Reviewed by Scott Renshaw.
Late in HOLY SMOKE!, Jane Campion's latest attempt at gender provocateurship, the principal male character refers to the principal female character as a "man-hater." The principal female character then responds that he calls her a man-hater "just because I criticize you." I would never be so crude as to suggest that Campion is a man-hater, but it's hard to not to wonder what testosterone-soaked demons haunt her. It's one thing to ask pointed questions about gender-based power dynamics; it's quite another to ask those questions using such weighty symbolism that it's hard not to laugh out loud at the raving significance-mongering of it all.
Campion's painfully strident stylings get a workout in HOLY SMOKE!, a film that gets sillier and less insightful the longer I think about it. Kate Winslet stars as Ruth, a young woman from Sydney who begins following a charismatic guru while travelling in India with a friend. Concerned that Ruth has been taken in by a "cult," Ruth's family hires one of the world's most successful "exit counselors," P. J. Walters (Harvey Keitel) to bring her around again. After luring Ruth back to Australia under false pretenses, the family leaves her in an isolated cabin with Walters for three days, where he expects to break her down and build her up again. But things don't work out quite so simply, leaving both parties searching for their roles in their strange relationship.
For a little while, it almost seems that Campion is on to something. The opening montage, in which Campion sets up Ruth's introduction to "Baba's" teachings, is an energetic sequence set to Neil Diamond's "Holly Holy." Better still are the scenes of Ruth's mother (Julie Hamilton) visiting Ruth in India, her anxieties betraying the fact that she may be most concerned about her daughter falling in with dark-skinned people. By mixing in the racist element with the sexist elements of her story, Campion promises a film that could have been a fairly complex examination of exerting power and manifesting fear of "otherness."
Don't expect anything quite so measured. From that provocative beginning, HOLY SMOKE! quickly disintegrates into a sluggish, rib-kicking polemic. Walters is introduced, with little room for misinterpretation, as a preening and self-important sort who slicks back his dyed hair, receives oral gratification from Ruth's ditzy sister-in-law (Sophie Lee) and prepares for his meetings with Ruth with breath spray. Ruth, meanwhile, is a free spirit whose earth mother dance to "You Oughtta Know" provides all the ur-femme credentials you could want. Campion seems little concerned with exploring the side of Ruth that quickly transfers her devotion from Baba to Walters. She's far more fascinated with the sociological implications of a woman trying to escape into the wilderness by strapping books to her feet, or of Ruth and Walters playing a role-reversal game in which Walters is dressed up in lipstick and a skimpy red dress. For those of you who think one of cinema's most unnecessary images was Keitel's free willy in Campion's THE PIANO, please consider Keitel in lipstick and a skimpy red dress.
I suppose some viewers could find themselves intrigued enough by the shifting nature of Ruth and Walters' relationship to give its freakish elements a pass. I found it far too hard to take HOLY SMOKE! seriously as anything other than an opportunity for Campion to rattle our collective cage, whether the image is a nude Ruth urinating in front of Walters or Walters hallucinating Ruth as a many-armed Indian goddess. It's not so much shallow as it is garish and over-wrought, an Important Message Movie without a solid base of characterization to ground it. It has begun to appear that Campion is more concerned with filming themes than with filming stories, struggling against oppression without making that oppression recognizable in human terms. There's no need to use terms like "man-hating" for that kind of film-making. "Clumsy" just about says it all.
On the Renshaw scale of 0 to 10 smoke symbols: 4.
Visit Scott Renshaw's Screening Room http://www.inconnect.com/~renshaw/ *** Subscribe to receive new reviews directly by email! See the Screening Room for details, or reply to this message with subject "Subscribe".
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable.
Start Learn Now30 days free trial
choose plan
per month when paid annually
choose plan
per month when paid annually
choose plan
latest news
There are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn nowThere are many variations of passages of Lorem Ipsum available, but the majority have suffered alteration in some form, by injected humour, or randomised words which don't look even slightly believable
learn now


A robust sigma estimator for situations where fliers may pose a concern, efficiency is important, and computer is available to do the calculations.
Relative efficiency compared to BAC on standard bivariate normal distribution is approximately 96%.
BAC relies on finding the center, which is not easy to do in presence of outliers. Median and trimmed mean along x and y axes separately don’t work well for finding the center (efficiency drops considerably), possibly because of lack of central symmetry.
Pairwise distances allow to estimate sigma directly, without finding the center, but raise the question of how to aggregate them. Two common approaches to get robust estimates are trimmed mean and winsorized mean. Distances have natural floor of zero, so it is enough to trim or winsorize from the right. One shot in a 10 shot group can affect at most 9 pairwise distances, at least that many distances need to be trimmed for an estimator to be robust. Outliers are rare, so there is no reason to cut more.
Not all ranks are equally important. The following Monte-Carlo simuilation allows to get a sense of how the weights should look like:
The coefficients grow more or less linearly with rank, except for the top remaining rank that has a higher coefficent. Right winsorization approximates this structure reasonably well. This allows for an efficient, yet still relatively simple L-estimator.
rwmrwd <- function(h)
{
n <- nrow(h) # Number of shots in group
distances <- n * (n - 1) / 2 # Number of pairwise distances
d <- numeric(); # Vector of distances
p <- 1; # Current index within vector d
for (i in 1:(n - 1)) {
for (j in (i + 1):n) {
d[p] <- sqrt((h$x[i] - h$x[j]) ^ 2 + (h$y[i] - h$y[j]) ^ 2)
p <- p + 1
}
}
d <- sort(d)
d[(distances - n + 2):distances] <- d[distances - n + 1] # Winsorization
w <- seq(from = 1, to = distances) # Weight is rank
sum(d * w) / sum(w) / 2.0358 # Weighted average
}
The following graphs show Monte-Carlo simulation results on contaminated normal distribution with various proportion and severity of fliers.


Watch Courtney Barnett And Paul Kelly Absolutely Nail An Australian Classic For ‘MTV Unplugged’
by Jared RichardsCourtney Barnett recently stepped up for MTV Unplugged Melbourne, and she brought Paul Kelly along for the ride, with the pair covering a classic by Indigenous folk singer Archie Roach, ‘Charcoal Lane’.
Recorded at an intimate concert in the courtyard of Howler in Melbourne, Kelly and Barnett keep things simple in their cover with two guitars, drums and a harmonica. And then a pair of strings to add a little lushness, too.
Related
Kelly has a long history with the track, having produced Roach’s 1990 debut album of the same name, and later recording his own version with Barnett back in 2015 for Charcoal Lane‘s 25th anniversary. This live cover is well-worth your time: it’s clear they love the song a lot.
Barnett brought out a few friends for Unplugged, later enlisting Evelyn Ida Morris on piano for her own track ‘Nameless, Faceless’, and Marlon Williams for a duet of Seeker Lover Keeper’s ‘Not Only I’. Of course, Barnett also ran through her own classics across her two albums and split EP, including ‘Depreston’, ‘Avant Gardener’ and ‘Sunday Roast’ — the whole set will debut on Sunday November 17 at 6.30pm AEDT on MTV (and online), and will also be simulcast at Federation Square.
This year, Barnett has released two songs, ‘Keep On’ and ‘Everybody Here Hates You’, following on from 2018’s acclaimed album Tell Me How You Really Feel and Lotta Sea Lice, an album with Kurt Vile.
Gang of Youths, Amy Shark, DMA’s and The Rubens have also all done MTV Unplugged Melbourne, with more performances to come. Catch Barnett and Kelly’s duet below.
—
Feature image by Ben Jones photography for MTV Australia.


How to Get the Most out of the Cloud
A solid business case, and buy-in are crucial…
Where are you on your cloud journey? It’s a question that solicits a range of answers.
At a recent CBR Dining Club event – in association with New Signature – IT, business and data leaders were polled to see where they were on the implementation journey. To borrow the categories Microsoft applies to Azure cloud adoption, attendees were asked whether they were at the ‘enable’ stage (yet to start), the ‘migrate’ stage (a few early workloads in the cloud), or the ‘innovate’ stage (a more sophisticated implementation). The majority of attendees fell into the middle category.
Sean Morris, Strategic & Advisory Services Lead, New Signature picked up the conversation by offering advice on how to approach each stage.
Drawing on the Microsoft Cloud Adoption Framework for Azure, he said those at the enable stage should first spend time understanding business motivations: what problems is the organisation seeking to solve?
Two factors are key to subsequent success, Morris said. The first is buy-in. Whoever is leading the cloud project must get a senior decision maker on side in order to propel the project forward. The second is economics. If there is a solid business case, most of the technical challenges “fall away” or, at least, become manageable.
For those at the migrate stage, exploration is key. Most organisations are likely to start their cloud experience with a low-risk workload. Some potential issues may be forecast prior to implementation but, invariably, other issues only appear post-migration. Continuous learning is essential to long-term success. For those at the innovate stage, it is a question of working out how to embrace the wealth of features, functions methodologies cloud affords.
During the discussion that followed, attendees wanted to better understand the security and privacy implications of cloud adoption; how to manage identity registers across on-premise and cloud; how to manage downtime in mission critical scenarios; and how to approach the upskilling and reskilling of teams accustomed to managing physical infrastructure.
‘How to get the most out of the cloud’, a CBR Dining Club event in association with New Signature, took place on Thursday 14 November at the JW Marriott Grosvenor House, London


% include ../themes/themes.html %>
<% include ../views/common/header.html %>
非法操作
<% include ../views/common/footer.html %>


{% extends 'base/base.html' %} {% load static %} {% block content %}
Name : {{ lawyer.name }}
Date of Birth : {{ lawyer.date_of_birth }}
Place of Birth : {{ lawyer.place_of_birth }}
Nationality : {{ lawyer.nationality }}
Religion : {{ lawyer.religion }}
Gender : {{ lawyer.gender }}
Blood Group : {{ lawyer.blood_group }}
Driving License/Passport: {{ lawyer.driving_license_passport }}
Phone No : {{ lawyer.phone_no }}
Email : {{ lawyer.email }}
Father`s Name : {{ lawyer.father_name }}
Mother`s Name : {{ lawyer.mother_name }}
Marital Status : {{ lawyer.marital_status }}
Education : {{ lawyer.education }}
Job : {{ lawyer.job }}
Name of Exam: {{ lawyer.education.name_of_exam }}
Institute : {{ lawyer.education.institute }}
Group : {{ lawyer.education.group }}
Grade/GPA : {{ lawyer.education.grade }}
Board : {{ lawyer.education.board }}
Passing Year: {{ lawyer.education.passing_year }}
Training Name: {{ lawyer.training.training_name }}
Year : {{ lawyer.training.year }}
Duration : {{ lawyer.training.duration }}
Place : {{ lawyer.training.place }}
Category : {{ lawyer.job.category }}
Joining Date : {{ lawyer.job.joning_date }}
Institute Name : {{ lawyer.job.institute_name }}
Job Designation : {{ lawyer.job.job_designation }}
Department : {{ lawyer.job.department }}
Scale : {{ lawyer.job.scale }}
Grade of Post : {{ lawyer.job.grade_of_post }}
First Time Scale Due Year: {{ lawyer.job.first_time_scale_due_year }}
Promotion Due Year : {{ lawyer.job.promotion_due_year }}
Recreation Leave Due Year: {{ lawyer.job.recreation_leave_due_year }}
Expected Retirement Year : {{ lawyer.job.expected_retirement_year }}
Institute Name: {{ lawyer.experience.institute_name }}
Designation : {{ lawyer.experience.designation }}
Trainer : {{ lawyer.experience.trainer }}


The name of this city is probably well known to most people, and is famous for its beaches, night life and other holiday attractions.
Reports from cruisers state that the town is quite dangerous with drug related crime, however the marina is reported to be safe.
Yachts can either anchor outside or arrange a berth in the yacht club marina. The yacht club facilities can be used by visitors and the yacht club can arrange clearance facilities for a fee. For those who prefer to do the formalities themselves, these can be very time-consuming as the offices are spread out all over town, and the distances are great. Other marinas however may offer transport for clearance.
The bay, around which the city stretches, is sheltered, but very busy with all types of water craft. There is a small marina tucked into a corner of the northern arm of the bay and the yacht club and new marina to the west.
Be careful anchoring here as there are certain spots where anchoring is not permitted. Best to check with the Port Captain as to the best spot.
Last updated January 2015.


Me
I am Ryan McGreevy, a software developer and scientist. I currently work
at the University of Illinois Urbana-Champaign as a research programmer
for the
Theoretical and Computational Biophysics Group.
I write code and develop methods for the molecular dynamics and modeling programs NAMD
and VMD. In my spare time I am a student at U of I Chicago, obtaining my Master's
Degree in Bioinformatics. You can contact me on
Google+
or by email at<EMAIL_ADDRESS>Site
This site is powered by
Jekyll, a blog aware, static site generator. Additional files and a site mirror are stored
on Amazon S3, a scalable and redundant
cloud storage.


Don't let fear dictate what your life... whatever you decide to do in life... Just freaking do it! Don't wait for other people's approval or permission
You have something no one else has. You have your creativity, your passion, your desire to make things better.
It's about time you start using that something. Now... not later, not 10 minutes from now. Now


Tell us the drink quantities for your event:
The provincial sales tax (PST) on liquor products is 10%.  This tax is in addition to the licence fee. PST calculations are based on the number of servings rather than the amount of alcohol you will purchase.
PST Refund: If you pay too much PST or if you make less money than expected, you can apply for a refund to the Ministry of Finance, free of charge.
How is PST Calculated
Example:You purchase a Special Event Permit and $500 in liquor for your wedding. You expect to
sell the liquor for $800 at the wedding.
Total combined amount due = $80.00


Continental to slash 5,500 jobs globally by 2028 to save 500 million euros
The jobs cull would support Continental's "urgently needed technological transition and thus the strengthening of our competitiveness and future viability", CEO Elmar Degenhart said
by AFP | PTIContinental on Wednesday confirmed it would slash some 5,500 jobs worldwide by 2028 as the German car parts giant seeks savings of 500 million euros annually to confront a stuttering global car market and weaker demand for combustion engines.
The jobs cull would support Continental's "urgently needed technological transition and thus the strengthening of our competitiveness and future viability", CEO Elmar Degenhart said in a statement.


Interests of getting a dog or a cat? There is a matching survey in PAWS Chicago. Click here-------> =(^-^)=
Interests in adopting cats or kittens? Tree House Humane Society has the right for you. Click here--> ={^-^}=
How to adopt from Community Animal Rescue Effort. Click here. Survey for Cats Survey for Dogs Directions Near You.
Help to End Animal Abuse
World Animal Protection.us.org View this Website
Take Action on ASPCA View this Page
Animal Charity Evaluators View this page
With these links below, you may check out Chicago's best animal shelter and find the one near you for adoptions or trainings.


Extensions
The following extensions are available globally.
-
A
See moreString
extension trims whitespace from the beginning or end of the string.Declaration
Swift
struct String
-
A set of convenience initializers that create new
CALayer
instances from SVG data.If you choose to use these initializers, it is assumed that you would like to exercise a higher level of control. As such, you must provide a completion block and then add the passed
See moreSVGLayer
to the layer of your choosing. Use the UIView extensions if you prefer the easier to use one-liner initializers.Declaration
Swift
class CALayer : NSObject, NSSecureCoding, CAMediaTiming
-
Declaration
Swift
struct Float
-
Declaration
Swift
struct Double
-
Declaration
Swift
class CAShapeLayer : CALayer
-
An extension that add the elements of one dictionary to another
See moreDeclaration
Swift
struct Dictionary<Key, Value> : Collection, ExpressibleByDictionaryLiteral where Key : Hashable
-
Extension that takes a length string, e.g.
See more100px
,20mm
and parses it into aBinaryFloatingPoint
(e.g.Float
,Double
,CGFloat
)Declaration
Swift
protocol BinaryFloatingPoint : FloatingPoint, ExpressibleByFloatLiteral
-
Convenience initializer that can parse a single path string and returns a
See moreUIBezierPath
-
Extension that converts a
See moreFloatingPoint
to and from radians and degreesDeclaration
Swift
protocol FloatingPoint : SignedNumeric, Strideable, Hashable


This page demonstates that emissive() and directionalLight() for Processing JS work correctly on a sphere.
// Demo written by Andor Salga


Check the documentation at https://github.com/florentpoujol/superpowers-game-ftext-plugin for more informations on the various settings you can find below.


--- layout: doc title: Documentation ---
The node you are looking for is at Finding available tokens shortcuts and symbols.


Install it from npm
npm install importabular
Instanciate it on a dom node
import Importabular from 'importabular'
const sheet=new Importabular({
node:document.getElementById('editorNode'),
})
Get the current data as a 2D array
sheet.data.toArr()
Destroy it to remove event listeners
sheet.destroy()
I've created this lib because I was tired of having to remove 90% of the features offered by the very few open source libs for web spreadsheets.
Some common use cases have options, for the rest you should just read the source and subclass it of fix the code.
So for this reinventing the wheel to make sense, I should not add any extra features to this core.
The lib is fresh and not battle tested, probably has some bugs. Feel free to create an issue if you find a bug.
import Importabular from 'importabular'
const sheet=new Importabular({
node:document.getElementById('editorNode'),
// Prefill the table
data:[['This','is','the','first','row']],
// Called after each change to the table data
onChange:data=>console.log('new data : ',data),
// Called every time the user changes selection,
// useful for real time collaborative editing
onSelectionChange:sel=>console.log('new selection',sel),
// Each cell is rendered as a TD with inside either
// a div or an input. This will override the TD style
cellStyle:(x,y,{selected,editing})=>
({
backgroundColor:!selected && !editing && y%2?
'#fafafa':null
}),
// and this will override the style of the text
// input or div.
contentStyle:()=>({fontFamily:'sherif'}),
// Starting size of the grid on instanciation
minWidth:5,
minHeight:10,
// Limits to the growth of the grid
maxWidth:5,
maxHeight:10,
})


| Goal | - The predicate to invoke |
| N | - Number of invocations |
| P1 | - 1st parameter for the invocation |
| P2 | - 2nd parameter for the invocation |
| P3 | - 3rd parameter for the invocation |
| P4 | - 4th parameter for the invocation |
| P5 | - 5th parameter for the invocation |
| P6 | - 6th parameter for the invocation |
| Result | - List of results from the invocations |


Octave operators presented in order of increasing precedence; later entries bind more tightly than the earlier ones. The source for this page is: the language reference.
| Operator | Description | Associativity |
|---|---|---|
= += -= *= /= \= ^= .*= ./= .\= .^= |= &= |
Assignment | Right to Left |
|| |
Logical Or | Left to Right, Short Circuits |
&& |
Logical And | Left to Right, Short Circuits |
| |
Element-wise Or | Left to Right |
& |
Element-wise And | Left to Right |
< <= == >= > != ~= |
Logical Comparison | Left to Right |
: :: |
Slicing and Vector Generation | Left to Right |
+ - |
Addition and Subtraction | Left to Right |
* / \ .* ./ .\ |
Multiplication and Division | Left to Right |
+ - ◾ ++ -- ◾ ~ ! |
Uniary Plus and Minus ◾ Prefix Increment and Decrement ◾ Logical Negation | Left to Right, Uniary |
' .' ^ ** .^ .** |
Transposition and Exponentiation | Left to Right |
++ -- |
Postfix Increment and Decrement | Right to Left |
() ◾ {} ◾ . |
Function Call ◾ Array Indexing ◾ Structure Indexing | Left to Right |


IAEA
Contents:
IAEA
IAEA
Docs
»
Index
Index
A
|
B
|
C
|
D
|
E
|
F
|
G
|
H
|
I
|
J
|
M
|
N
|
P
|
R
|
S
|
T
|
V
A
AirConditioner (class in aircraft_component)
aircraft_component
module
aircraft_params
module
AircraftFuselageDesignVariable (class in design_variables_controller)
AircraftParams (class in aircraft_params)
AircraftPerformanceDesignVariable (class in design_variables_controller)
AircraftWingDesignVariable (class in design_variables_controller)
AntiIce (class in aircraft_component)
APU (class in aircraft_component)
Avionic (class in aircraft_component)
B
BLIDesignVariable (class in design_variables_controller)
C
construct_aircraft_data() (in module data_driven)
construct_engine_data() (in module data_driven)
create_dv_sets() (design_variables_controller.AircraftFuselageDesignVariable method)
(design_variables_controller.AircraftWingDesignVariable method)
D
data_driven
module
DataDriven (class in data_driven)
denormalize() (design_variables_controller.DesignVariable method)
density() (physics.Physics method)
design_variables_controller
module
DesignVariable (class in design_variables_controller)
DesignVariablesController (class in design_variables_controller)
dynamic_viscosity() (physics.Physics method)
E
Electric (class in aircraft_component)
Engine (class in aircraft_component)
engine_params
module
EngineControl (class in aircraft_component)
EngineDesignVariable (class in design_variables_controller)
EngineParams (class in engine_params)
F
fixed() (design_variables_controller.DesignVariable method)
FlightControl (class in aircraft_component)
FuelSystem (class in aircraft_component)
Furnishing (class in aircraft_component)
Fuselage (class in aircraft_component)
G
geo_potential() (physics.Physics method)
H
HandlingGear (class in aircraft_component)
HorizontalWing (class in aircraft_component)
Hydraulics (class in aircraft_component)
I
Instrument (class in aircraft_component)
J
JointAircraftDesignVariable (class in design_variables_controller)
JointEngineDesignVariable (class in design_variables_controller)
M
main() (in module design_variables_controller)
main_() (in module design_variables_controller)
MainLandingGear (class in aircraft_component)
MainWing (class in aircraft_component)
MissionDesignVariable (class in design_variables_controller)
module
aircraft_component
aircraft_params
data_driven
design_variables_controller
engine_params
physics
specification
N
Nacelle (class in aircraft_component)
normalize() (design_variables_controller.DesignVariable method)
NoseLandingGear (class in aircraft_component)
P
PassengerEquip (class in aircraft_component)
physics
module
Physics (class in physics)
R
replace_database() (in module data_driven)
S
set_bound() (design_variables_controller.DesignVariable method)
set_bounds() (design_variables_controller.AircraftFuselageDesignVariable method)
(design_variables_controller.AircraftWingDesignVariable method)
set_fix() (design_variables_controller.AircraftFuselageDesignVariable method)
(design_variables_controller.AircraftWingDesignVariable method)
set_norm_val() (design_variables_controller.DesignVariable method)
set_val() (design_variables_controller.DesignVariable method)
setting() (engine_params.EngineParams method)
setting_for_computation() (aircraft_params.AircraftParams method)
setting_for_view_by_database() (aircraft_params.AircraftParams method)
setting_for_view_by_optimization() (aircraft_params.AircraftParams method)
specification
module
Starter (class in aircraft_component)
T
temperature_and_pressure() (physics.Physics method)
V
velocity() (physics.Physics method)
VerticalWing (class in aircraft_component)
viscosity() (physics.Physics method)


About
Vi Snake is similar to the snake game on old Nokia phones. The h, j, k, l keys are used to change directions, like in Vi/Vim text editor.
The game is open source, and distributed under the MIT license. Source code is available on github.
Upon playing your score will be sent to the server. Your last score and maximum score is stored in a session cookie. It is automatically deleted when you close your browser, or after 31 days.
If you get a high enough score, you are prompted to enter your name to get on the highscore list. The highscores (score, username and date) are stored on a database on the server. Should you need to remove or export your data from the highscore list, please contact me by opening an issue on github, or message me on twitter or linked-in.


**Android User Guide** This chapter inlines all the usage information into a single long book, suitable for printing or reading on a tablet. (insert usage/changes.md.html here) (insert usage/flags.md.html here) (insert usage/agp-dsl.md.html here) (insert usage/newer-lint.md.html here) (insert usage/baselines.md.html here) (insert usage/performance-tuning.md.html here) (insert usage/suppressing.md.html here) (insert usage/lintxml.md.html here) # Appendix: Recent Changes (insert usage/changes.md.html here) (insert usage/variables.md.html here)


| 136 | (A) | That to the Cetes he sente his sawes to preche |
| 131 | (C) | That he to cytees sente . his sawes to prechen |
| 132 | (D) | þat he to citees sente his sawes to preche |
| 130 | (E) | that he to cytees sente . his sawes to preche . |
| (Ex) | ---- no text ---- | |
| 135 | (L) | hem to citees he sende his sawes to preche |
| 129 | (P) | þat to cites he sent his saghes to prechyn |
| 131 | (U) | That he to citees sent / his sawes to preche |
| (V) | ---- no text ---- |


Subjects Report
Sr.No.
Subject Code
Subject Name
Teacher Name
Total Lecture
Attend Lecture
Percentage
Lab Batch Report
Sr.No.
Lab Batch Name
Teacher Name
Total Practical
Attend Practical
Percentage
Graph Report
Print


Invalid log in attempt!
Not Registered? No worries!
Username is already taken
Email is already taken
If you regret your decision, you can cancel!


--- layout: archive title: "" image: teaser_home.jpg ---
My name is Matti Haukilintu, although my colleagues use more international name, Matson.
This page is about me.
Check out my skills and working history, and contact me if you have a job to offer!
Busy right now? Download my CV to read at the coffee table.
CV also available in Finnish.
Browse my projects to find inspiration. More content coming soon.
My contact information is here. Send me an email or try Telegram if you want to reach me right away.
Or not, doesn't matter. I would really appreciate feedback or comments about these webpages. Contact me. If you wish to know how these sites were build, check out my project post: GitHub Pages with Jekyll.