Uses of Class
com.mypurecloud.sdk.v2.model.ParticipantMetrics
-
Uses of ParticipantMetrics in com.mypurecloud.sdk.v2.model
Modifier and TypeMethodDescriptionParticipantMetrics.acdDurationPercentage
(Double acdDurationPercentage) Percentage of ACD duration in the conversationParticipantMetrics.agentDurationPercentage
(Double agentDurationPercentage) Percentage of Agent duration in the conversationParticipantMetrics.customerDurationPercentage
(Double customerDurationPercentage) Percentage of Customer duration in the conversationConversationMetrics.getParticipantMetrics()
ParticipantMetrics.ivrDurationPercentage
(Double ivrDurationPercentage) Percentage of IVR duration in the conversationParticipantMetrics.otherDurationPercentage
(Double otherDurationPercentage) Percentage of Other events duration in the conversationParticipantMetrics.overtalkCount
(Integer overtalkCount) Number of Overtalks in the conversationParticipantMetrics.overtalkDurationPercentage
(Double overtalkDurationPercentage) Percentage of Overtalk duration in the conversationParticipantMetrics.silenceDurationPercentage
(Double silenceDurationPercentage) Percentage of Silence duration in the conversationModifier and TypeMethodDescriptionConversationMetrics.participantMetrics
(ParticipantMetrics participantMetrics) The Participant Metricsvoid
ConversationMetrics.setParticipantMetrics
(ParticipantMetrics participantMetrics)


Wireless access to photos on your iOS device
With PhotoAccess you can easily transfer photos directly from your iPhone, iPad or iPod touch to any computer using a web browser over WiFi. Select an existing photo or take a new picture, and PhotoAccess will display a download URL below the photo. Enter that URL in a web browser on any computer on the same network and you can download the full resolution photo, rotated to the correct orientation. The perfect solution to transfer just that one photo which you need right now.
Features
- Easy to use - just pick a photo from your camera roll, photo library, or take a new picture, and you are ready to go
- Secure - does not expose your photo library to everyone on the same network
- Download full resolution photo
- Auto-rotates photo to correct orientation
- Wireless photo access - no cables required
- No additional software required besides a web browser (Google Chrome, Safari, Firefox, Opera, Internet Explorer)
- Works with any operating system (Mac, Windows, Linux)
- PhotoAccess is open source!


The domain name for auto-generate TLS certificates
Type: string Default: localhost
Java Code:
ConfigurationProperties.sslCertificateDomainName(String domainName)
System Property:
-Dmockserver.sslCertificateDomainName=...
Environment Variable:
MOCKSERVER_SSL_CERTIFICATE_DOMAIN_NAME=...
Property File:
mockserver.sslCertificateDomainName=...
Example:
-Dmockserver.sslCertificateDomainName="localhost"
The Subject Alternative Name (SAN) domain names for auto-generate TLS certificates as a comma separated list
Type: string Default: localhost
Java Code:
ConfigurationProperties.addSslSubjectAlternativeNameDomains(String... additionalSubjectAlternativeNameDomains)
or
ConfigurationProperties.clearSslSubjectAlternativeNameDomains()
System Property:
-Dmockserver.sslSubjectAlternativeNameDomains=...
Environment Variable:
MOCKSERVER_SSL_SUBJECT_ALTERNATIVE_NAME_DOMAINS=...
Property File:
mockserver.sslSubjectAlternativeNameDomains=...
Example:
-Dmockserver.sslSubjectAlternativeNameDomains="localhost,www.foo.bar"
The Subject Alternative Name (SAN) IP addresses for auto-generate TLS certificates as a comma separated list
Type: string Default: <IP_ADDRESS>,<IP_ADDRESS>
Java Code:
ConfigurationProperties.addSslSubjectAlternativeNameIps(String... additionalSubjectAlternativeNameIps)
or
ConfigurationProperties.clearSslSubjectAlternativeNameIps()
System Property:
-Dmockserver.sslSubjectAlternativeNameIps=...
Environment Variable:
MOCKSERVER_SSL_SUBJECT_ALTERNATIVE_NAME_IPS=...
Property File:
mockserver.sslSubjectAlternativeNameIps=...
Example:
-Dmockserver.sslSubjectAlternativeNameIps="<IP_ADDRESS>,<IP_ADDRESS>"
MockServer dynamically updates the Subject Alternative Name (SAN) values for its TLS certificate to add domain names and IP addresses from request Host headers and Host headers in expectations, this configuration setting disables this automatic update and only uses SAN value provided in TLS Subject Alternative Name Domains and TLS Subject Alternative Name IPs configuration properties.
When this property is enabled the generated X509 Certificate and Private Key pair are saved to the directoryToSaveDynamicSSLCertificate as Certificate.pem and PKCS8PrivateKey.pem
Type: boolean Default: false
Java Code:
ConfigurationProperties.preventCertificateDynamicUpdate(boolean prevent)
System Property:
-Dmockserver.preventCertificateDynamicUpdate=...
Environment Variable:
MOCKSERVER_PREVENT_CERTIFICATE_DYNAMIC_UPDATE=...
Property File:
mockserver.preventCertificateDynamicUpdate=...
Example:
-Dmockserver.preventCertificateDynamicUpdate="true"
Location of custom file for Certificate Authority for TLS, the private key must be a PKCS#8 PEM file and must match the TLS Certificate Authority X509 Certificate.
To convert a PKCS#1 PEM file (i.e. default for Bouncy Castle) to a PKCS#8 PEM file the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
Type: string Default: null
Java Code:
ConfigurationProperties.certificateAuthorityPrivateKey(String certificateAuthorityPrivateKey)
System Property:
-Dmockserver.certificateAuthorityPrivateKey=...
Environment Variable:
MOCKSERVER_CERTIFICATE_AUTHORITY_PRIVATE_KEY=...
Property File:
mockserver.certificateAuthorityPrivateKey=...
Example:
-Dmockserver.certificateAuthorityPrivateKey="true"
Location of custom file for Certificate Authority for TLS, the certificate must be a X509 PEM file and must match the TLS Certificate Authority Private Key.
Type: string Default: null
Java Code:
ConfigurationProperties.certificateAuthorityCertificate(String certificateAuthorityCertificate)
System Property:
-Dmockserver.certificateAuthorityCertificate=...
Environment Variable:
MOCKSERVER_CERTIFICATE_AUTHORITY_X509_CERTIFICATE=...
Property File:
mockserver.certificateAuthorityCertificate=...
Example:
-Dmockserver.certificateAuthorityCertificate="true"
Enable dynamic creation of Certificate Authority X509 Certificate and Private Key
Enable this property to increase the security of trusting the MockServer Certificate Authority X509 by ensuring a local dynamic value is used instead of the public value in the MockServer git repo.
These PEM files will be created and saved in the directory specified with configuration property directoryToSaveDynamicSSLCertificate.
A Certificate Authority X509 Certificate and Private Key will only be created if the files used to save them are not already present. Therefore, if MockServer is re-started multiple times with the same value for directoryToSaveDynamicSSLCertificate. the Certificate Authority X509 Certificate and Private Key will only be created once.
Type: boolean Default: false
Java Code:
ConfigurationProperties.dynamicallyCreateCertificateAuthorityCertificate(boolean enable)
System Property:
-Dmockserver.dynamicallyCreateCertificateAuthorityCertificate=...
Environment Variable:
MOCKSERVER_DYNAMICALLY_CREATE_CERTIFICATE_AUTHORITY_CERTIFICATE=...
Property File:
mockserver.dynamicallyCreateCertificateAuthorityCertificate=...
Example:
-Dmockserver.dynamicallyCreateCertificateAuthorityCertificate="true"
Directory used to save the dynamically generated Certificate Authority X.509 Certificate and Private Key.
This directory will only be used if MockServer is configured to create a dynamic Certificate Authority X509 certificate and private key using dynamicallyCreateCertificateAuthorityCertificate.
Type: string Default: null
Java Code:
ConfigurationProperties.directoryToSaveDynamicSSLCertificate(String directoryToSaveDynamicSSLCertificate)
System Property:
-Dmockserver.directoryToSaveDynamicSSLCertificate=...
Environment Variable:
MOCKSERVER_CERTIFICATE_DIRECTORY_TO_SAVE_DYNAMIC_SSL_CERTIFICATE=...
Property File:
mockserver.directoryToSaveDynamicSSLCertificate=...
Example:
-Dmockserver.directoryToSaveDynamicSSLCertificate="/some/existing/path"
File location of a fixed custom private key for TLS connections into MockServer.
The private key must be a PKCS#8 PEM file and must be the private key corresponding to the x509CertificatePath X509 (public key) configuration.
The certificateAuthorityCertificate configuration must be the Certificate Authority for the corresponding X509 certificate (i.e. able to valid its signature), see: x509CertificatePath.
To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
This configuration will be ignored unless x509CertificatePath is also set.
Type: string Default: null
Java Code:
ConfigurationProperties.privateKeyPath(String privateKeyPath)
System Property:
-Dmockserver.privateKeyPath=...
Environment Variable:
MOCKSERVER_TLS_PRIVATE_KEY_PATH=...
Property File:
mockserver.privateKeyPath=...
Example:
-Dmockserver.privateKeyPath="/some/existing/path"
File location of a fixed custom X.509 Certificate for TLS connections into MockServer
The certificate must be a X509 PEM file and must be the public key corresponding to the privateKeyPath private key configuration.
The certificateAuthorityCertificate configuration must be the Certificate Authority for this certificate (i.e. able to valid its signature).
This configuration will be ignored unless privateKeyPath is also set.
Type: string Default: null
Java Code:
ConfigurationProperties.x509CertificatePath(String x509CertificatePath)
System Property:
-Dmockserver.x509CertificatePath=...
Environment Variable:
MOCKSERVER_TLS_X509_CERTIFICATE_PATH=...
Property File:
mockserver.x509CertificatePath=...
Example:
-Dmockserver.x509CertificatePath="/some/existing/path"
Require mTLS (also called client authentication and two-way TLS) for all TLS connections / HTTPS requests to MockServer
Type: boolean Default: false
Java Code:
ConfigurationProperties.tlsMutualAuthenticationRequired(boolean enable)
System Property:
-Dmockserver.tlsMutualAuthenticationRequired=...
Environment Variable:
MOCKSERVER_TLS_MUTUAL_AUTHENTICATION_REQUIRED=...
Property File:
mockserver.tlsMutualAuthenticationRequired=...
Example:
-Dmockserver.tlsMutualAuthenticationRequired="true"
File location of custom mTLS (TLS client authentication) X.509 Certificate Chain for Trusting (i.e. signature verification of) Client X.509 Certificates, the certificate chain must be a X509 PEM file.
This certificate chain will be used if MockServer performs mTLS (client authentication) for inbound TLS connections because tlsMutualAuthenticationRequired is enabled
Type: string Default: null
Java Code:
ConfigurationProperties.tlsMutualAuthenticationCertificateChain(String certificateChain)
System Property:
-Dmockserver.tlsMutualAuthenticationCertificateChain=...
Environment Variable:
MOCKSERVER_TLS_MUTUAL_AUTHENTICATION_CERTIFICATE_CHAIN=...
Property File:
mockserver.tlsMutualAuthenticationCertificateChain=...
Example:
-Dmockserver.tlsMutualAuthenticationCertificateChain="/some/existing/path"
Configure trusted set of certificates for forwarded or proxied requests (i.e. TLS connections out of MockServer).
MockServer will only be able to establish a TLS connection to endpoints that have a trusted X509 certificate according to the trust manager type, as follows:
Type: string Default: ALL
Java Code:
ConfigurationProperties.forwardProxyTLSX509CertificatesTrustManagerType(String trustManagerType)
System Property:
-Dmockserver.forwardProxyTLSX509CertificatesTrustManagerType=...
Environment Variable:
MOCKSERVER_FORWARD_PROXY_TLS_X509_CERTIFICATES_TRUST_MANAGER_TYPE=...
Property File:
mockserver.forwardProxyTLSX509CertificatesTrustManagerType=...
Example:
-Dmockserver.forwardProxyTLSX509CertificatesTrustManagerType="CUSTOM"
File location of custom file for trusted X509 Certificate Authority roots for forwarded or proxied requests (i.e. TLS connections out of MockServer), the certificate chain must be a X509 PEM file.
MockServer will only be able to establish a TLS connection to endpoints that have an X509 certificate chain that is signed by one of the provided custom certificates, i.e. where a path can be established from the endpoints X509 certificate to one or more of the custom X509 certificates provided.
This configuration only take effect if forwardProxyTLSX509CertificatesTrustManagerType is configured as CUSTOM otherwise this value is ignored.
Type: string Default: null
Java Code:
ConfigurationProperties.forwardProxyTLSCustomTrustX509Certificates(String customX509Certificates)
System Property:
-Dmockserver.forwardProxyTLSCustomTrustX509Certificates=...
Environment Variable:
MOCKSERVER_FORWARD_PROXY_TLS_CUSTOM_TRUST_X509_CERTIFICATES=...
Property File:
mockserver.forwardProxyTLSCustomTrustX509Certificates=...
Example:
-Dmockserver.forwardProxyTLSCustomTrustX509Certificates="/some/existing/path"
File location of custom Private Key for forwarded or proxied requests (i.e. TLS connections out of MockServer), the private key must be a PKCS#8 PEM file
To convert a PKCS#1 (i.e. default for Bouncy Castle) to a PKCS#8 the following command can be used: openssl pkcs8 -topk8 -inform PEM -in private_key_PKCS_1.pem -out private_key_PKCS_8.pem -nocrypt
This private key will be used if MockServer needs to perform mTLS (client authentication) for outbound TLS connections.
Type: string Default: null
Java Code:
ConfigurationProperties.forwardProxyPrivateKey(String privateKey)
System Property:
-Dmockserver.forwardProxyPrivateKey=...
Environment Variable:
MOCKSERVER_FORWARD_PROXY_TLS_PRIVATE_KEY=...
Property File:
mockserver.forwardProxyPrivateKey=...
Example:
-Dmockserver.forwardProxyPrivateKey="/some/existing/path"
File location of custom X.509 Certificate Chain for forwarded or proxied requests (i.e. TLS connections out of MockServer), the certificates must be a X509 PEM file
This certificate chain will be used if MockServer needs to perform mTLS (client authentication) for outbound TLS connections.
Type: string Default: null
Java Code:
ConfigurationProperties.forwardProxyCertificateChain(String certificateChain)
System Property:
-Dmockserver.forwardProxyCertificateChain=...
Environment Variable:
MOCKSERVER_FORWARD_PROXY_TLS_X509_CERTIFICATE_CHAIN=...
Property File:
mockserver.forwardProxyCertificateChain=...
Example:
-Dmockserver.forwardProxyCertificateChain="/some/existing/path"


|
cds
1.2.0
|
Split-ordered list set. More...
#include <cds/container/split_list_set.h>
Data Structures | |
| class | iterator_type |
| Forward iterator. More... |
Public Types | |
| typedef options::gc | gc |
| Garbage collector. | |
| typedef options::value_type | value_type |
| type of value stored in the list | |
| typedef options::ordered_list | ordered_list |
| Underlying ordered list class. | |
| typedef base_class::key_comparator | key_comparator |
| key comparision functor | |
| typedef base_class::hash | hash |
| Hash functor for value_type and all its derivatives that you use. | |
| typedef base_class::item_counter | item_counter |
| Item counter type. | |
| typedef iterator_type< false > | iterator |
| Forward iterator. | |
| typedef iterator_type< true > | const_iterator |
| Const forward iterator. |
Public Member Functions | |
| SplitListSet () | |
| Initialize split-ordered list of default capacity. | |
| SplitListSet (size_t nItemCount, size_t nLoadFactor=1) | |
| Initialize split-ordered list. | |
| iterator | begin () |
| Returns a forward iterator addressing the first element in a set. | |
| iterator | end () |
| Returns an iterator that addresses the location succeeding the last element in a set. | |
| const_iterator | begin () const |
| Returns a forward const iterator addressing the first element in a set. | |
| const_iterator | end () const |
| Returns an const iterator that addresses the location succeeding the last element in a set. | |
| template<typename Q > | |
| bool | insert (Q const &val) |
| Inserts new node. | |
| template<typename Q , typename Func > | |
| bool | insert (Q const &val, Func f) |
| Inserts new node. | |
| template<typename Q , typename Func > | |
| std::pair< bool, bool > | ensure (const Q &val, Func func) |
Ensures that the item exists in the set. | |
| template<typename Q > | |
| bool | erase (const Q &key) |
Delete key from the set. | |
| template<typename Q , typename Func > | |
| bool | erase (const Q &key, Func f) |
Get value of item with key by a functor and delete it. | |
| template<typename Q , typename Func > | |
| bool | find (Q &val, Func f) |
Find the key val . | |
| template<typename Q > | |
| bool | find (Q const &val) |
Find the key val . | |
| void | clear () |
| Clear the set (non-atomic) | |
| bool | empty () const |
| Checks if the set is empty. | |
| size_t | size () const |
| Returns item count in the set. |
Additional Inherited Members | |
| Protected Types inherited from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits > | |
| typedef Traits | options |
| Traits template parameters. | |
| typedef GC | gc |
| Garbage collector. | |
|
typedef cds::opt::v::hash_selector < typename options::hash > ::type | hash |
| Hash functor for value_type and all its derivatives that you use. | |
| typedef Traits::ordered_list | ordered_list |
| type of ordered list used as base for split-list | |
| typedef ordered_list::value_type | value_type |
| type of value stored in the split-list | |
|
typedef ordered_list::key_comparator | key_comparator |
| key comparision functor | |
| typedef ordered_list::disposer | disposer |
| Node disposer functor. | |
| typedef options::item_counter | item_counter |
| Item counter type. | |
| typedef options::back_off | back_off |
| back-off strategy for spinning | |
| typedef options::memory_model | memory_model |
| Memory ordering. See cds::opt::memory_model option. | |
| typedef iterator_type< false > | iterator |
| Forward iterator. | |
| typedef iterator_type< true > | const_iterator |
| Const forward iterator. | |
| typedef ordered_list::node_type | list_node_type |
| Node type as declared in ordered list. | |
|
typedef split_list::node < list_node_type > | node_type |
| split-list node type | |
| typedef node_type | dummy_node_type |
| dummy node type | |
| typedef split_list::node_traits < typename ordered_list::node_traits > | node_traits |
| Split-list node traits. | |
| Protected Member Functions inherited from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits > | |
| bool | insert (value_type &val) |
| Inserts new node. | |
| bool | insert (value_type &val, Func f) |
| Inserts new node. | |
| std::pair< bool, bool > | ensure (value_type &val, Func func) |
Ensures that the val exists in the set. | |
| bool | unlink (value_type &val) |
Unlink the item val from the set. |
Split-ordered list set.
Hash table implementation based on split-ordered list algorithm discovered by Ori Shalev and Nir Shavit, see
See intrusive::SplitListSet for a brief description of the split-list algorithm.
Template parameters:
GC
- Garbage collector usedT
- type stored in the split-list. The type must be default- and copy-constructible.Traits
- type traits, default is split_list::type_traits. Instead of declaring split_list::type_traits -based struct you may apply option-based notation with split_list::make_traits metafunction.There is a specialization for cds::gc::nogc declared in cds/container/split_list_set_nogc.h
, see SplitListSet<gc::nogc>.
 Split-ordered list is original data structure based on an ordered list. Suppose, you want construct split-list set based on gc::PTB GC and LazyList as ordered list implementation. So, you beginning your program with following include:
The inclusion order is important: first, include file for ordered-list implementation (for this example, cds/container/lazy_list_ptb.h
), then the header for split-list set cds/container/split_list_set.h
.
Now, you should declare traits for split-list set. The main parts of traits are a hash functor for the set and a comparing functor for ordered list. Note that we define several function in foo_hash
and foo_less
functors for different argument types since we want call our SplitListSet object by the key of type int
and by the value of type foo
.
The second attention: instead of using LazyList in SplitListSet traits we use a tag cds::contaner::lazy_list_tag
for the lazy list. The split-list requires significant support from underlying ordered list class and it is not good idea to dive you into deep implementation details of split-list and ordered list interrelations. The tag paradigm simplifies split-list interface.
Now you are ready to declare our set class based on SplitListSet:
You may use the modern option-based declaration instead of classic type-traits-based one:
In case of option-based declaration using split_list::make_traits metafunction the struct foo_set_traits
is not required.
Now, the set of type foo_set
is ready to use in your program.
Note that in this example we show only mandatory type_traits parts, optional ones is the default and they are inherited from cds::container::split_list::type_traits. The cds library contains many other options for deep tuning of behavior of the split-list and ordered-list containers.
|
inline |
Initialize split-ordered list of default capacity.
The default capacity is defined in bucket table constructor. See intrusive::split_list::expandable_bucket_table, intrusive::split_list::static_ducket_table which selects by intrusive::split_list::dynamic_bucket_table option.
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Initialize split-ordered list.
| nItemCount | estimate average of item count |
| nLoadFactor | load factor - average item count per bucket. Small integer up to 10, default is 1. |
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Returns a forward iterator addressing the first element in a set.
For empty set
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
Reimplemented in cds::container::SplitListMap< GC, Key, Value, Traits >, and cds::container::SplitListMap< cds::gc::nogc, Key, Value, Traits >.
|
inline |
Clear the set (non-atomic)
The function unlink all items from the set. The function is not atomic and not lock-free and should be used for debugging only.
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
Reimplemented in cds::container::SplitListMap< GC, Key, Value, Traits >.
|
inline |
Checks if the set is empty.
Emptiness is checked by item counting: if item count is zero then assume that the set is empty. Thus, the correct item counting feature is an important part of split-list set implementation.
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
Reimplemented in cds::container::SplitListMap< GC, Key, Value, Traits >, and cds::container::SplitListMap< cds::gc::nogc, Key, Value, Traits >.
|
inline |
Returns an iterator that addresses the location succeeding the last element in a set.
Do not use the value returned by end
function to access any item. The returned value can be used only to control reaching the end of the set. For empty set
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
Reimplemented in cds::container::SplitListMap< GC, Key, Value, Traits >, and cds::container::SplitListMap< cds::gc::nogc, Key, Value, Traits >.
|
inline |
Ensures that the item
exists in the set.
The operation performs inserting or changing data with lock-free manner.
If the val
key not found in the set, then the new item created from val
is inserted into the set. Otherwise, the functor func
is called with the item found. The functor Func
should be a function with signature:
or a functor:
with arguments:
bNew
- true
if the item has been inserted, false
otherwiseitem
- item of the setval
- argument val
passed into the ensure
functionThe functor may change non-key fields of the item
; however, func
must guarantee that during changing no any other modifications could be made on this item by concurrent threads.
You may pass func
argument by reference using boost::ref
.
Returns std::pair<bool, bool>
where first
is true if operation is successfull, second
is true if new item has been added or false
if the item with key
already is in the set.
|
inline |
Delete key
from the set.
Since the key of SplitListSet's item type value_type is not explicitly specified, template parameter Q
defines the key type searching in the list. The set item comparator should be able to compare the values of type value_type
and the type Q
.
Return true
if key is found and deleted, false
otherwise
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Get value of item with key
by a functor and delete it.
The function searches an item with key key
, calls f
functor and deletes the item. If key
is not found, the functor is not called.
The functor Func
interface:
The functor may be passed by reference using boost:ref
Since the key of SplitListSet's value_type
is not explicitly specified, template parameter Q
defines the key type searching in the list. The list item comparator should be able to compare the values of the type value_type
and the type Q
.
Return true
if key is found and deleted, false
otherwise
See also: erase
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Find the key val
.
The function searches the item with key equal to val
and calls the functor f
for item found. The interface of Func
functor is:
where item
is the item found, val
is the find
function argument.
You may pass f
argument by reference using boost::ref
or cds::ref.
The functor may change non-key fields of item
. Note that the functor is only guarantee that item
cannot be disposed during functor is executing. The functor does not serialize simultaneous access to the set's item
. If such access is possible you must provide your own synchronization schema on item level to exclude unsafe item modifications.
The val
argument is non-const since it can be used as f
functor destination i.e., the functor may modify both arguments.
Note the hash functor specified for class Traits
template parameter should accept a parameter of type Q
that can be not the same as value_type
.
The function returns true
if val
is found, false
otherwise.
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Find the key val
.
The function searches the item with key equal to val
and returns true
if it is found, and false
otherwise.
Note the hash functor specified for class Traits
template parameter should accept a parameter of type Q
that can be not the same as value_type.
Reimplemented from cds::intrusive::SplitListSet< GC, Traits::ordered_list, Traits >.
|
inline |
Inserts new node.
The function creates a node with copy of val
value and then inserts the node created into the set.
The type Q
should contain as minimum the complete key for the node. The object of value_type should be constructible from a value of type Q
. In trivial case, Q
is equal to value_type.
Returns true
if val
is inserted into the set, false
otherwise.
|
inline |
Inserts new node.
The function allows to split creating of new item into two part:
f
functor to initialize value-field of val
.The functor signature is:
where val
is the item inserted. User-defined functor f
should guarantee that during changing val
no any other changes could be made on this set's item by concurrent threads. The user-defined functor is called only if the inserting is success. It may be passed by reference using boost::ref


--- title: Facebook MDT Simulation layout: project logo: facebook.svg slug: facebook-mdt image: facebook.svg order: 4 tagline: A client project while working at Forio. category: design tags: [UX/UI, Video Game/Simulation] ---
How do we prepare managers for the new world of hybrid work teams?This was my
first project while working at Forio for Facebook (now Meta) when I was brought
in mid 2021.
How do we prepare managers for the new world of hybrid work teams?This was my
first project while working at Forio for Facebook (now Meta) when I was brought
in mid 2021.
Made a quick mock up of a potential simulation design for Facebook Management Team. Since we were still figuring out the right approach to what learning points we are trying to hit. Hybrid work is a new world and there’s no one set of answers to teach Managers to run they teams when they’re split across buildings, homes, and timezones.
Started off building out screens that are useful for possible management scenarios like a Dashboard to view your team, Calendar for planning meetings, and a Video Chat screen for meetings.
A detailed view of the player NPC team members. Providing a current emotional state and some KPI details.
An issue with the early prototype was a lack of gameplay direction. The notification bar provides a clear list of things that the player has to do as well as a historical list of actions taken throughout the simulation.
In addition the dashboard has been changed to provide a map of where the players team members are located across the global, a list displaying all the NPC’s Pulse Results (a metric used internally at Meta), and an org chart.
The character bio became a popup model making it easier to access and leave across the simulation on different pages.
The chat system has been pulled from Prior Facebook simulations. By clicking on message segments players can form a message which they can send. Based on the segments chosen the model will give a positive or negative response.
1 on 1 video calls displays the NPC’s Pulse Results and changes in real time based on the users response using the same chat system in the group chat. While group video calls requires the player to mark flags of instances negative traits and interactions during the meeting.


Alina Mcloughlin
A short profile description
Logout
Delete Account
Alina Mclourd
VP People Manager
Dashboard
Company Profile
Post A Jobs
Recruiting Services
Active Recruitments
Active Jobs
Inactive Jobs
Subscriptions & Payments
Change Password
Inactive Jobs
Culpa sed omnis rep
Expired: 2 months ago
New York, NY, USA
Non-Profit & NGO
Full-Time
View Details
Delete
Republish
Culpa sed omnis rep
Expired: 2 months ago
New York, NY, USA
Non-Profit & NGO
Full-Time
View Details
Delete
Republish
Select Apply Before Date:
×
Date:


PRELIMINARY
This document describes the serial protocol used by the XeThru sensor modules.
Version:
The following notation is used in this document:
The binary protocol supports two packaging modes, Normal and NoEscape. Normal packaging mode is most common, and uses flag bytes and escaping. NoEscape packaging mode does not use escaping, but rather a binary start sequence and packet length.
All messages are supported by both packaging modes, and they can be used side by side.
Normal packaging mode is most common, and uses flag bytes and escaping. This ensures immediate resync of the protocol parsing in the event of discontinuity between the module and host. Should be considered most robust, in particular when using UART as transport layer. Requires more processing to use, and is best suited with medium to low data throughput requirement. All high-level module output messages are supported in Normal packaging mode.
Example: <Start> + [Data] + <CRC> + <End>
| Flag | bytes |
|---|---|
<Start> | 0x7D |
<End> | 0x7E |
<Esc> | 0x7F |
Escaping means that if the escape byte occurs in the message, the next byte is not <Start>
, <End>
or <Esc>
, but intended byte with same value as one of the flags.
Example: 0x7D + 0x10 + 0x7F + 0x7E + 0x04 + 0xFF + 0x7E
Here the byte 0x7E in the middle is intended, and should not be read as a <Start> flag. The 0x7E byte is prepended with the escape byte 0x7F. After parsing for escape bytes, the data becomes:
0x7D + 0x10 + 0x7E + 0x04 + 0xFF + 0x7E
Calculated by XOR’ing all bytes from <Start> + [Data]
. Note that the CRC is done after escape bytes is removed. This means that CRC is also calculated before adding escape bytes.
NoEscape packaging mode does not use escaping, but rather a binary start sequence and packet length. This is a great advantage when high data throughput is required, because the added complexity of adding and removing excape bytes is removed. However, in situations where the module and host get out of sync, this method may take longer to resynchronize compared to Normal packaging mode. When using USB this is less likely a problem, but when using UART, this should be taken into consideration.
When using some of the high throughput module output messages, this packaging mode may be required.
Example: [XTS_FLAGSEQUENCE_START_NOESCAPE(i)] + [PacketLength] + <RESERVED> + [Data]
PacketLength is the number of bytes sent after the start sequence, i.e. 4 + 1 + number of bytes in [Data]
.
| Name | Value |
|---|---|
XTS_FLAGSEQUENCE_START_NOESCAPE | 0x7C7C7C7C |
Example: 0x7C + 0x7C + 0x7C + 0x7C + 0x03 + 0x00 + 0x00 + 0x00 + 0x00 + 0x01 + 0x02 + 0x03
The XeThru serial protocol assumes litle-endian byte order.
When powering up the sensor module for the first time, it enters an idle mode. In this mode, the user can choose module behaviour by loading the desired profile. After loading the profile, it can be configured by sending profile level commands. Finally, after configuring the profile, the user can send a command to start it.
Next time the module is powered, it will automatically load previous configuration and resume operation.
If you want to change sensor module behaviour, reset the module and start again. Once the profile is running, it is not possible to change parameters or profile without performing a reset first.
Typical configuration workflow:
Reset module --> Idle mode --> Load profile --> Load parameters --> Run profile
When connecting to the module directly using USB, use the following procedure to ensure proper behaviour:
See sections on Reset module
and Ping
for more information.
Spec of module commands, from host to module.
Use this command to completely reset the sensor module. After the module has responded with ACK, it will wait for 0.5 seconds before it actually starts the reset procedure. This gives the host time to disconnect from the serial connection prior to the module reset, which is necessary when the USB interface is used.
Example: <Start> + <XTS_SPC_MOD_RESET> + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_MOD_RESET | 0x22 |
| XTS_SPR_ACK | 0x10 |
After the module resets, it sends a set of system messages to inform the host about the bootup status. At first startup, the XTS_SPRS_BOOTING message is sent. Then, after the module booting sequence is completed and the module is ready to accept further commands, the XTS_SPRS_READY command is issued.
Message: <Start> + <XTS_SPR_SYSTEM> + [Responsecode(i)] + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPR_SYSTEM | 0x30 |
| Responsecode | Value |
|---|---|
| XTS_SPRS_BOOTING | 0x10 |
| XTS_SPRS_READY | 0x11 |
The ping command can be used to check connection to the module, and verify module readyness.
During the module boot procedure, when connecting using USB, it can be difficult to make sure you are able to receive the system status messages saying that the module is ready. In that case, the PING command comes in handy, where you can ask the module if it is ready to receive commands.
Example: <Start> + <XTS_SPC_PING> + [XTS_DEF_PINGVAL(i)] + <CRC> + <End>
Response: <Start> + <XTS_SPR_PONG> + [Pongval(i)] + <CRC> + <End>
Protocol codes:
| Name | Value | Description |
|---|---|---|
| XTS_SPC_PING | 0x01 | Ping command code |
| XTS_DEF_PINGVAL | 0xeeaaeaae | Ping seed value |
| XTS_SPR_PONG | 0x01 | Pong responce code |
| XTS_DEF_PONGVAL_READY | 0xaaeeaeea | Module is ready |
| XTS_DEF_PONGVAL_NOTREADY | 0xaeeaeeaa | Module is not ready |
Loads the desired sensor module profile.
Example: <Start> + <XTS_SPC_MOD_LOADAPP> + [AppID(i)] + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_MOD_LOADAPP | 0x21 |
| XTS_SPR_ACK | 0x10 |
AppID values can be found in the Profile section (XTS_ID_APP_x).
After the profile is loaded, it can be configured using 'Profile level' commands (see below). Then the profile is executed by setting the module mode.
| Name | Value | Description |
|---|---|---|
| XTS_SM_RUN | 0x01 | Sensor module in running mode. |
| XTS_SM_IDLE | 0x11 | Idle mode. Sensor module ready but not active. |
Example: <Start> + <XTS_SPC_MOD_SETMODE> + <XTS_SM_RUN> + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_MOD_SETMODE | 0x20 |
| XTS_SPR_ACK | 0x10 |
Use this command to choose the behaviour of the sensor LED. There are three levels of LED operations, Off, Simple and Full. Different profiles may use the LED differently, but in general the three levels will behave like this:
Example: <Start> + <XTS_SPC_MOD_SETLEDCONTROL> + <Mode> + <Reserved> + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_MOD_SETLEDCONTROL | 0x24 |
| XTS_SPR_ACK | 0x10 |
| Mode | Value |
|---|---|
| XT_UI_LED_MODE_OFF | 0 |
| XT_UI_LED_MODE_SIMPLE | 1 |
| XT_UI_LED_MODE_FULL | 2 |
Set the desired detection zone.
Example: <Start> + <XTS_SPC_APPCOMMAND> + <XTS_SPCA_SET> + [XTS_ID_DETECTION_ZONE(i)] + [Start(f)] + [End(f)] + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_APPCOMMAND | 0x10 |
| XTS_SPCA_SET | 0x10 |
| XTS_ID_DETECTION_ZONE | 0x96a10a1c |
| XTS_SPR_ACK | 0x10 |
Set the desired sensitivity.
Example: <Start> + <XTS_SPC_APPCOMMAND> + <XTS_SPCA_SET> + [XTS_ID_SENSITIVITY(i)] + [Sensitivity(i)] + <CRC> + <End>
Response: <Start> + <XTS_SPR_ACK> + <CRC> + <End>
Sensitivity value must be between 0 (low sensitivity) and 9 (high sensitivity).
Protocol codes:
| Name | Value |
|---|---|
| XTS_SPC_APPCOMMAND | 0x10 |
| XTS_SPCA_SET | 0x10 |
| XTS_ID_SENSITIVITY | 0x10a5112b |
| XTS_SPR_ACK | 0x10 |
Outputs the status of the Sleep profile, with data when available. Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_SLEEP_STATUS(i)] + [Counter(i)] + [StateCode(i)] + [StateData(f)] + [Distance(f)] [SignalQuality(i)] + [MovementSlow(f)] + [MovementFast(f)] <CRC> + <End>
StateCode values:
| StateCode | Value | Description | StateData |
|---|---|---|---|
| XTS_VAL_RESP_STATE_BREATHING | 0 | Valid RPM detected | Current RPM value |
| XTS_VAL_RESP_STATE_MOVEMENT | 1 | Detects motion, but can not identify breath | 0 |
| XTS_VAL_RESP_STATE_MOVEMENT_TRACKING | 2 | Detects motion, possible breathing | 0 |
| XTS_VAL_RESP_STATE_NO_MOVEMENT | 3 | No movement detected | 0 |
| XTS_VAL_RESP_STATE_INITIALIZING | 4 | No movement detected | 0 |
| Reserved | 5 | 0 | |
| XTS_VAL_RESP_STATE_UNKNOWN | 6 | Undefined state. | 0 |
Output:
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_SLEEP | 0x00f17b17 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_SLEEP_STATUS | 0x2375a16c |
Outputs the status of the RESP profile, with data when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_RESP_STATUS(i)] + [Counter(i)] + [StateCode(i)] + [StateData(i)] + [Distance(f)] + [Movement(f)] + [SignalQuality(i)] + <CRC> + <End>
StateCode values:
| StateCode | Value | Description | StateData |
|---|---|---|---|
| XTS_VAL_RESP_STATE_BREATHING | 0 | Valid RPM detected | Current RPM value |
| XTS_VAL_RESP_STATE_MOVEMENT | 1 | Detects motion, but can not identify breath | 0 |
| XTS_VAL_RESP_STATE_MOVEMENT_TRACKING | 2 | Detects motion, possible breathing | 0 |
| XTS_VAL_RESP_STATE_NO_MOVEMENT | 3 | No movement detected | 0 |
| XTS_VAL_RESP_STATE_INITIALIZING | 4 | No movement detected | 0 |
| Reserved | 5 | 0 | |
| XTS_VAL_RESP_STATE_UNKNOWN | 6 | Undefined state. | 0 |
Output:
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_RESP | 0x1423a2d6 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_RESP_STATUS | 0x2375fe26 |
Presence profile.
Outputs the Presence Single message of the Presence profile, with data when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_PRESENCE_SINGLE(i)] + [Counter(i)] + [PresenceState(i)] + [Distance(f)] + <Direction> + [SignalQuality(i)] + <CRC> + <End>
Output:
| Parameter | Type | Description |
|---|---|---|
| Counter | uint32_t | Frame counter as basis for sensor. |
| PresenceState | uint32_t | Sensor state output. See table above |
| Distance | float | Distance to where presence is detected. |
| Direction | uint8_t | Direction of detected object. 0=stationary, 1=towards sensor, 2=away from sensor. |
| SignalQuality | uint32_t | A measure of the signal quality giving presence detection. Typically used to identify if the sensor is positioned correctly. Value from 0 to 10 where 0=low and 10=high. (Presence state only). |
PresenceState values:
| PresenceState | Value | Description |
|---|---|---|
| XTS_VAL_PRESENCE_PRESENCESTATE_NO_PRESENCE | 0 | No presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_PRESENCE | 1 | Presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_INITIALIZING | 2 | The sensor initializes after the True Presence Profile is executed |
| XTS_VAL_PRESENCE_PRESENCESTATE_UNKNOWN | 3 | The sensor is in an unknown state and requires a Profile and User Settings to be loaded |
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_PRESENCE_2 | 0x014d4ab8 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_PRESENCE_SINGLE | 0x723bfa1e |
Outputs the Presence MovingList message of the Presence profile, with data regarding moving targets when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_PRESENCE_MOVINGLIST(i)] + [Counter(i)] + [PresenceState(i)] + [MovementIntervalCount(i)] + [DetectionCount(i)] + [MovementSlowItems(f)] + ... + [MovementFastItems(f)] + ... + [DetectionDistanceItems(f)] + ... + [DetectionRadarCrossSectionItems(f)] + ... + [DetectionVelocityItems(f)] + ... + <CRC> + <End>
Output:
| Parameter | Type | Description |
|---|---|---|
| Counter | uint32_t | Frame counter as basis for sensor. |
| PresenceState | uint32_t | Sensor state output. See table above. |
| MovementIntervalCount | uint32_t | MovementIntervalCount is the number of items in the MovementSlowItems and MovementFastItems list. Deterministic, depending on DetectionZone. |
| DetectionCount | uint32_t | Number of detections observed, listed in DetectionDistanceItems, DetectionRadarCrossSectionItems and DetectionVelocityItems lists. |
| MovementSlowItems | float array [0, MovementIntervalCount> | List of movement slow values. |
| MovementFastItems | float array [0, MovementIntervalCount> | List of movement fast values. |
| DetectionDistanceItems | float array [0, DetectionCount> | List of distance to detections in meters. |
| DetectionRadarCrossSectionItems | float array [0, DetectionCount> | List of radar cross sections of detections in cm2. |
| DetectionVelocityItems | float array [0, DetectionCount> | List of radial velocity of detected objects in meters/second. |
PresenceState values:
| PresenceState | Value | Description |
|---|---|---|
| XTS_VAL_PRESENCE_PRESENCESTATE_NO_PRESENCE | 0 | No presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_PRESENCE | 1 | Presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_INITIALIZING | 2 | The sensor initializes after the True Presence Profile is executed |
| XTS_VAL_PRESENCE_PRESENCESTATE_UNKNOWN | 3 | The sensor is in an unknown state and requires a Profile and User Settings to be loaded |
NOTE: The first item in the MovementSlowItems and MovementFastItems lists are the global movement strength for the whole detectionzone.
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_PRESENCE_2 | 0x014d4ab8 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_PRESENCE_MOVINGLIST | 0x723bfa1f |
Outputs the Presence Static message of the Presence profile, with data regarding static targets when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_PRESENCE_STATICLIST(i)] + [Counter(i)] + [PresenceState(i)] + [StaticCount(i)] + [StaticDistanceItems(f)] + ... + [StaticRadarCrossSectionItems(f)] + ... + <CRC> + <End>
PresenceState values:
| PresenceState | Value | Description |
|---|---|---|
| XTS_VAL_PRESENCE_PRESENCESTATE_NO_PRESENCE | 0 | No presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_PRESENCE | 1 | Presence detected |
| XTS_VAL_PRESENCE_PRESENCESTATE_INITIALIZING | 2 | The sensor initializes after the True Presence Profile is executed |
| XTS_VAL_PRESENCE_PRESENCESTATE_UNKNOWN | 3 | The sensor is in an unknown state and requires a Profile and User Settings to be loaded |
Output:
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_PRESENCE_2 | 0x014d4ab8 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_PRESENCE_STATICLIST | TBD |
Legacy message, compatible with X2M200 RESP message.
Outputs the legacy RESP message of the respiration profile, with data when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_RESP_STATUS(i)] + [Counter(i)] + [StateCode(i)] + [StateData(i)] + [Distance(f)] + [Movement(f)] + [SignalQuality(i)] + <CRC> + <End>
Output:
StateCode values:
| StateCode | Value | Description | StateData |
|---|---|---|---|
| XTS_VAL_RESP_STATE_BREATHING | 0 | Valid RPM detected | Current RPM value |
| XTS_VAL_RESP_STATE_MOVEMENT | 1 | Detects motion, but can not identify breath | 0 |
| XTS_VAL_RESP_STATE_MOVEMENT_TRACKING | 2 | Detects motion, possible breathing | 0 |
| XTS_VAL_RESP_STATE_NO_MOVEMENT | 3 | No movement detected | 0 |
| XTS_VAL_RESP_STATE_INITIALIZING | 4 | No movement detected | 0 |
| Reserved | 5 | 0 | |
| XTS_VAL_RESP_STATE_UNKNOWN | 6 | Undefined state. | 0 |
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_RESP | 0x1423a2d6 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_RESP_STATUS | 0x2375fe26 |
Compatible with X2M200 SLEEP message.
Outputs the Sleep message of the respiration profile, with data when available. Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_SLEEP_STATUS(i)] + [Counter(i)] + [StateCode(i)] + [RespirationsPerMinute(f)] + [Distance(f)] [SignalQuality(i)] + [MovementSlow(f)] + [MovementFast(f)] <CRC> + <End>
Output:
StateCode values:
| StateCode | Value | Description | StateData |
|---|---|---|---|
| XTS_VAL_RESP_STATE_BREATHING | 0 | Valid RPM detected | Current RPM value |
| XTS_VAL_RESP_STATE_MOVEMENT | 1 | Detects motion, but can not identify breath | 0 |
| XTS_VAL_RESP_STATE_MOVEMENT_TRACKING | 2 | Detects motion, possible breathing | 0 |
| XTS_VAL_RESP_STATE_NO_MOVEMENT | 3 | No movement detected | 0 |
| XTS_VAL_RESP_STATE_INITIALIZING | 4 | No movement detected | 0 |
| Reserved | 5 | 0 | |
| XTS_VAL_RESP_STATE_UNKNOWN | 6 | Undefined state. | 0 |
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_SLEEP | 0x00f17b17 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_SLEEP_STATUS | 0x2375a16c |
_**Remark**: RespirationsPerMinute was named StateData in X2M200, but is backward compatible._
Outputs the Respiration MovingList message of the Respiration profile, with data regarding moving targets when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_RESPIRATION_MOVINGLIST(i)] + [Counter(i)] + [MovementIntervalCount(i)] + [MovementSlowItems(f)] + ... + [MovementFastItems(f)] + <CRC> + <End>
Output:
| Parameter | Type | Description |
|---|---|---|
| Counter | uint32_t | Frame counter as basis for sensor. |
| MovementIntervalCount | uint32_t | MovementIntervalCount is the number of items in the MovementSlowItems and MovementFastItems list. Deterministic, depending on DetectionZone. |
| MovementSlowItems | float array [0, MovementIntervalCount> | List of movement slow values. |
| MovementFastItems | float array [0, MovementIntervalCount> | List of movement fast values. |
** NOTE ** The first item in the MovementSlowItems and MovementFastItems lists are the global movement strength for the whole detectionzone.
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_PRESENCE_2 | 0x014d4ab8 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_RESPIRATION_MOVINGLIST | 0x610a3b00 |
Outputs the Presence Detectionlist message of the Presence profile, with data regarding moving targets when available.
Example: <Start> + <XTS_SPR_APPDATA> + [XTS_ID_RESPIRATION_DETECTIONLIST(i)] + [Counter(i)] + [DetectionCount(i)] + [DetectionDistanceItems(f)] + ... + [DetectionRadarCrossSectionItems(f)] + ... + [DetectionVelocityItems(f)] + ... + <CRC> + <End>
Output:
| Parameter | Type | Description |
|---|---|---|
| Counter | uint32_t | Frame counter as basis for sensor. |
| DetectionCount | uint32_t | Number of detections observed, listed in DetectionDistanceItems, DetectionRadarCrossSectionItems and DetectionVelocityItems lists. |
| DetectionDistanceItems | float array [0, DetectionCount> | List of distance to detections in meters. |
| DetectionRadarCrossSectionItems | float array [0, DetectionCount> | List of radar cross sections of detections in cm2. |
| DetectionVelocityItems | float array [0, DetectionCount> | List of radial velocity of detected objects in meters/second. |
Protocol codes:
| Name | Value |
|---|---|
| XTS_ID_APP_PRESENCE_2 | 0x014d4ab8 |
| XTS_SPR_APPDATA | 0x50 |
| XTS_ID_RESPIRATION_DETECTIONLIST | 0x610a3b02 |


JavaScript Survey.
Made Easy
Create a fully-customizable survey and take advantage of formJS superpowers.
Need only the survey? Try Lite version.
Version
Only 4.9KB ( Lite version 3.7KB ) minified & gzipped
Download Latest Version | All Releases
surveyJS is compatible with ( desktop & mobile versions ):
* for compatibility with IE, old versions of Edge and/or other old browsers you may need to load some JS polyfills ( from polyfill.io or else ):
Array.from
Element.prototype.closest
Element.prototype.matches
Promise
Promise.prototype.finally
AbortController
fetch
CustomEvent
<script src="https://cdn.polyfill.io/v3/polyfill.min.js?features=Array.from,Element.prototype.closest,Element.prototype.matches,Promise,Promise.prototype.finally,AbortController,fetch,CustomEvent"></script>
If you find a bug, please report it here


The whole contents of this page is stored as a constant HTML string in the Rust source code. The code queries the DOM, creates a new element, and applies this snippet of HTML to the element's innerHTML.
If you look at your browser's console you can see the DOM element (logged to the console).


[Teleport to Hunting Grounds]
You may teleport to any of the following hunting locations. Each teleport requires a sum of AA.
The Saint's Necropolis (70-80) - 76000 AA
Disciples Necropolis (70-80) - 11000 AA
Catacomb of Dark Omens (70-80) - 51000 AA
Catacomb of the Forbidden Path (70-80) - 40000 AA


| Package | Description |
|---|---|
| org.apache.olingo.commons.api.edm.provider |
Contains representations for objects created during CSDL document parsing
|
| org.apache.olingo.commons.api.edm.provider.annotation |
Contains representations for objects created during
CSDL document parsing related to the CSDL annotations.
|
| Class and Description |
|---|
| CsdlExpression |
| Class and Description |
|---|
| CsdlAnnotationPath
Represents an annotation path
|
| CsdlApply |
| CsdlCast
Represents an edm:Cast expression.
|
| CsdlCollection
The edm:Collection expression enables a value to be obtained from zero or more child expressions.
|
| CsdlConstantExpression |
| CsdlConstantExpression.ConstantExpressionType
Type of the constant expression
|
| CsdlDynamicExpression |
| CsdlExpression |
| CsdlIf
Represents a edm:If expression
|
| CsdlIsOf
The edm:IsOf expression evaluates a child expression and returns a Boolean value indicating whether
the child expression returns the specified type
|
| CsdlLabeledElement
The edm:LabeledElement expression assigns a name to a child expression.
|
| CsdlLabeledElementReference
The edm:LabeledElementReference expression returns the value of an
edm:LabeledElement (see
CsdlLabeledElement ) expression. |
| CsdlLogicalOrComparisonExpression |
| CsdlLogicalOrComparisonExpression.LogicalOrComparisonExpressionType
Type of the constant expression
|
| CsdlNavigationPropertyPath
The edm:NavigationPropertyPath expression provides a value for terms or term properties that specify the
built-in abstract type Edm.NavigationPropertyPath
|
| CsdlNull
The edm:Null expression returns an untyped null value.
|
| CsdlPath
The edm:Path expression enables a value to be obtained by traversing an object graph.
|
| CsdlPropertyPath
The edm:PropertyPath expression provides a value for terms or term properties that specify the built-in
abstract type Edm.PropertyPath.
|
| CsdlPropertyValue
The edm:PropertyValue element supplies a value to a property on the type instantiated by an
edm:Record expression (See
EdmRecord ). |
| CsdlRecord
The edm:Record expression enables a new entity type or complex type instance to be constructed.
|
| CsdlUrlRef
The edm:UrlRef expression enables a value to be obtained by sending a GET request to the value of
the UrlRef expression.
|
Copyright © 2013–2018 The Apache Software Foundation. All rights reserved.


--- layout: article category: projects title: Building an Intel Edison powered car image: https://farm8.staticflickr.com/7551/15935563720_928fe134a7.jpg description: How I built a WiFi controlled car built with the Intel Edison ---
This Christmas I got a really neat Arduino Car Kit off Amazon which I jumped on straight away to start building. I’ve tried building a car exactly like this in the past however it was simply a card board box with two motors which didn’t even have enough power to push itself with an Arduino Uno in it, so this kit was exactly what I needed. In particular were the motor driver and battery box which when used together could power motors to carry a surprising amount of weight!
To start off with I used an Arduino Uno to test that everything was working with the L298N Motor Driver which is quite self-explanatory and makes life very easy for programming the motors. You can find instructions on how to use it here.
My next step was to swap out the Arduino for an Intel Edison which would allow me to use its on-board WiFi to host a webserver which I could talk to, to control the car. I loaded up the SimpleWebServerWiFi sample code and made it appropriate for controlling my car as well as writing up a the HTML and Javascript needed to make a live website which you could use your keyboard to send commands to the car with. I also added an LED which lights up once the webserver is live and ready for instructions as well as a horn which was made using a buzzer.
An interesting problem which occurred was that the Lumia 1020 phone I was using as the camera was incredibly heavy and was toppling the car whenever it reversed, after hours of re-engineering and shifting around the centre of gravity I finally fixed it by moving the power charger (the cylinder) to the very back of the car and building a bumper out of Meccano and adding it to the front which would stop it tilting. I also managed to strap the phone very tightly to the car which worked out very well and works by having a skype call running with my laptop via WiFi.
I also made use of a breadboard to avoid wasting power by having the motor controller continuously connected, the Edison can also be turned off by disconnecting it from the power charger. All-in-all this was a great project which lasted a good three days over the Christmas break. View the code below.


CloseHelp()
Syntax
Close the help window previously opened with OpenHelp().
Parameters
None.
Return value
See Also
OpenHelp()
Supported OS
All


AIRHEADS A film review by Lons Ponschock Copyright 1995 Lons Ponschock
Directed by Michael Lehman Stars Brendan Frazer, Steve Buscemi, Adam Sandler, Joe Montegna
I really enjoyed this. I kind of suspected I would enjoy it since it is about radio and rock and roll but the real treat was the *language*.
AIRHEADS has more in the writing of it than the usual round of expletives: it's a compendium of slang of the eighties and nineties. Where else are you going to hear a words like 'queve' or 'dufuss'? And all woven into a story that is ideal to display this usage: a metal trio invades a radio station to get their demo played.
Michael Lehman is a new name to me, can't tell you much about him, but Brendan Frazer (SCHOOL TIES, ENCINO MAN) Steve Buscemi (RESERVOIR DOGS, IN THE SOUP) and Adam Sandler (Sat. Night Live and SHAKES THE CLOWN) plus Joe Montegna (HOUSE OF GAMES, BODY OF EVIDENCE, and many more) are all well known and talented performers.
This film has a solid soundtrack, and interesting idea which succeeds in execution more often than it fails and a passable but unintrusive directing style which lets the story sort of tell itself without being too arty.
This film is about rock and roll and radio. This idea has been done before on television and in films, always or nearly always to good effect. It wasn't really until I did radio myself that I appreciated the interaction of the two so much. Radio, more than any other, is people's media: something everyone can enjoy and potentially *do* as well. And there are enough "holes in the system" to still be able to get out and do THE WORK if you really want to. My time for doing that is pretty much over but I still appreciate it when someone is out there with that DIY spirit keeping the independence and the joy of radio alive. It's not easy but it can be done.
AIRHEADS is a feast of language--street language--and has enough hooks and turns to provide you with some major laughs. Well, it did for *me* anyway.
-- lon
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


THE PEACEMAKER (1997)
A film review by Steve Kong Copyright 1997 Steve Kong
The Peacemaker is going to be scrutinized because of it being the first release out of the much-touted DreamWorks SKG production company. Can director Mimi Leder ("ER") and acting dual George Clooney and Nicole Kidman make this be a great debut film for DreamWorks SKG?
It's interesting to note that four big players from the hit TV show "ER" are part of The Peacemaker production: Award winning director Mimi Leder, executive producer John Wells, actor George Clooney, and executive producer Steven Spielberg. With these big names attached to the film, it has to be good, right?
A group of terrorists steal ten nuclear warheads and create an incident with one of the warheads. Dr. Julia Kelly (Nicole Kidman) is the head of the group that is looking into this incident. She requests the assistance of someone with a specialty in this field, and that someone is Tom Devoe (George Clooney). He's a specialist in dealing with terrorism of this type and at also dealing with illegal arms dealers. Together, Kelly and Devoe go hunting for the rest of the nuclear warheads. Added to this is the political plot of a "Serbian, Bosnian, and Muslim" man, who in the script is attempted to be humanized with a sub-plot about his family being killed off by terrorist.
What is strange is that the opening incident is dropped quickly after its purpose is found out. I would have really liked to see what could or would have been done to correct that incident, but it is dropped quickly to let the action start. Which, in the case of The Peacemaker looks like a good thing to have done, but it would have been interesting to see what could have happened.
The best way to describe The Peacemaker is a two-hour chase scene. Peacemaker has locations in Italy, Bosnia, Russia and the US. The world travel is handled well. Each site has one action scene attached to it. I especially love the car chase in Venice that plays like grown men in bumper cars. Most of the action, though well done, is hardly imaginative and very uninspired. The car chase is about as creative as the action scenes get. The opening action sequence seems to take too long for what it is meant to show. There is also the unnecessary gore that is used throughout the film.
Mimi Leder shows that she knows how to use the camera effectively. Sometimes too effective and making some of the camera work unneeded and distracting. Some of her shots that use the camera in motion are just for the hell of it, and it is more distracting that anything. About halfway through the film, you get the sense, even if you didn't know that Leder was a director on ER, from her camera work that she is an ER director. The constant fluid motion of the camera is a constant reminder of the camera work in ER. Whereas in ER the camera fluidly follows a gurney or fluidly does a 360 around a gurney, here in The Peacemaker the camera fluidly follows another object or fluidly does a 360 around a character.
The performances in The Peacemaker are nothing special. Kidman does OK as Kelly. In one scene where she cries over the loss of nine soldiers, she sheds a tear, gets up, and makes a call about a different matter. So quick, so fast, and so brief was her cry that we don't really get the sense that she really cared about those soldiers. Clooney does his usual character role. Lost are his nervous ticks from ER which makes him look more confident, but, he's not doing anything new here. His character is likeable, but we don't really get to know his character enough to care for him.
Hans Zimmer does the score for this film, and this is the best thing about the film. The score is pulse pounding and follows the action well.
The Peacemaker is an average action film that has its thrilling moments. Though the film is a bit on the long side, it does keep a good pace. I recommend seeing The Peacemaker, but only during a matinee showing. I hope that Dreamworks SKG has better films lined up to release after this mildly entertaining and easily forgettable debut.
!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=! steve kong<EMAIL_ADDRESS>come visit the hard boiled movie page http://boiled.sbay.org/boiled/ !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!
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


Smartphone, desktop or tablet?
No problem! LibreWorkingTimes works on all of them.
---
layout: default
permalink: /
title: LibreWorkingTimes
description: "LibreWorkingTimes a free and open source working time tracking software."
---
Record your working hours, overtime, sick days and holidays for free.
LibreWorkingTimes a working time tracking software that works on all of your devices
No problem! LibreWorkingTimes works on all of them.
LibreWorkingTimes has a light and a dark mode depending on the settings of your device.
Nothing! LibreWorkingTimes is completely free and open source. We don't advertise and never sell your data.


{% endblock page_heading %}
{% block main_content %}
{% filter markdown %}
{% endfilter %}
{% filter markdown %}
## Future roles
Democracy Club is made up of lots of people doing things to make democracy work better. Most give their time voluntarily, because they love democracy. Hurray!
We also have a small staff team. We're not currently hiring, but in the past we've been known to look for:
* Python or frontend developers
* Designers
* User researchers
* Community organisers
* Fundraisers
* Evaluation people
* General mucker-inners (events, admin, finance, comms)
If you'd like to hear about future roles, do join the mailing list (below) — or hop in [our Slack](https://slack.democracyclub.org.uk/).
{% endfilter %}
{% endblock main_content %}


RegulonDB Identifiers¶
Identifiers are used on RegulonDB to identify an object.
Entry identifier¶
This section provides information about the identifiers in RegulonDB. The main objects in RegulonDB such as Gene, Operon, Regulon, Growth Conditions and more have assigned a unique and persistent identifier that allows their long-lasting reference. Each entry in RegulonDB is assigned a unique identifier.
RegulonDB entry identifier structure¶
The RegulonDB entry identifier consists of 15 alphanumeric characters.
The first 3 characters are the reference to the database like RegulonDB.
For instance, RDBThe next 5 characteres correspond to the organism, that is taken from the UniProt classification: https://www.uniprot.org/docs/speclist.txt
For example: ECOLIThe following 2 characteres correspond to the reference object. There is a list of the abbreviations RegulonDB objects name:
OP = Operon
GN = Gene
GU = Gensor Unit
GC = Growth Condition
RG = Regulon
SG = Sigmulon
SR = sRNAInternal objetcs
PM = Promoter RI = Regulatory Interaction TU = Transcription Unit CF = Conformation BS = Binding Site TM = Terminator ? = Datasets
The last 5 characters represent the consecutive numeric identifier of the resource.
For example: 00001
Examples:
| Identifier |Description | | ———- | ———- | | RDBECOLIGR00001 | This is a RegulonDB identifier of the 00001 gene | | RDBECOLIOP00001 | Campo B1 |


Bloc Chat
New Chatroom
{{ "Room " + (key+1) + ": " + value.$value }}
Signed in as: {{chatrooms.currentUser}}
Sign In
Sign Out
Send


Mage Notingale:
The following enemies have attacked us from the skies nearby:
Valdstone the Master Rider
Rok the King of Birds
Enira the Banshee Queen
Dius the Messenger of Destruction


Manual: re
name = "re"
not documented volatile
next_state(states, node, char)
not documented | states | not documented |
| node | not documented |
| char | not documented |
| returns | not documented |
volatile
recognize(s0, string, eol = null)
not documented | s0 | not documented |
| string | not documented |
| eol | not documented |
| returns | not documented |
volatile


Bell Apps sets forth this Privacy Policy (this "Policy") with regard to the treatment of user's information, including but not limited to personal information, during the performance of services (the "Services") provided by Bell Apps, as follows;
For purposes of this Policy, "User's Information" means information that identifies users, history of actions on communication services and other information created or accumulated in relation to user's devices, which shall be collected by Bell Apps pursuant to this Policy. Depending on the method of collection, the User's Information that we may collect for a user to use the Services includes:
(i) information provided by the user, including:
- Team Name; - Team Id; - Channel Name; - Incoming Webhook URL; - Access Token
(ii) information provided from services outside the Services to the extent that the user permits for use with the Services;
Bell Apps may collect the following information from services outside the Services, including but not limited to social network services, to the extent the user permits for use with the Services at that time:
- ID used by the user for such outside services; and - other information that the user has authorized the other service provider to disclose through its privacy settings in such outside services;
(iii) information collected by Bell Apps for the use by the user of the Services
Bell Apps may collect information upon access to or use of the Services, including:
- terminal information; - log information; - cookie and anonymous ID; and - location information.
2.1 The User's Information may be used not only for provision of the Services as provided in Section 2-2, but for other purposes as provided in Section 2-3.
2.2 Specific purposes of the User's Information for the provision of the Services shall include the following:
(i) provision, maintenance, protection, and improvement of the Services, including but not limited to acceptance of registration for the Services, identification of individuals and computation of use fees;
(ii) guidance of response to inquiries relating to the Services;
(iii) addressing a violation of rules, regulations or policies relating to the Services(the "Rules");
(iv) notice of any modification to the Rules; and
(v) other purposes incidental to the foregoing.
2.3 Purpose other than those specified in Section 2.2 above shall be as indicated below:
| Purpose of Use | Corresponding User's Information |
|---|---|
| (1) creating statistical data relating to the Services, in a form that cannot identify an individual; |
- device information - log information - Cookies and anonymous ID - location information |
| (2) delivering or displaying advertisements of Bell Apps or third parties;And |
- device information - log information - Cookies and anonymous ID - location information |
| (3) other marketing |
- e-mail address - other information input by users in the form specified by Bell Apps |
3.1 The user's permission must be obtained before collecting the following User's Information;
(i) terminal information; and
(ii) location information
3.2 If the user specifies a certain setting, the user is entitled to require Bell Apps to, and Bell Apps shall immediately, discontinue the use of any or all of the User's Information, in accordance with such rules as may be from time to time prescribed by Bell Apps. Depending on the item of the User's Information, if such collection or use is required for the Services, Bell Apps may not be able to discontinue such collection unless the user withdraws from the Services pursuant to the procedures as determined by Bell Apps.
In order to distribute targeted advertisements using the User's Information, the following information collection module is incorporated into the Services. Thus, Bell Apps provides the User's Information to the provider of such information collection module in accordance with the following:
(i) Name of Information Collection Module:
Google Analytics
(ii) Provider of Information Collection Module:
(iii) Items of User's Information to be Provided:
access time user agent referrer and so on
(iv) Means and the Methods of Provision
loading JavaScript library
Unless required by the Personal Information Protection Act or other applicable laws and regulations, Bell Apps shall not provide to any third party personal information contained in the User's Information without the prior consent of the user, unless:
(i) Bell Apps authorizes such third party to handle the personal information in whole or in part to the extent necessary to accomplish the purpose of the use;
(ii) The personal information is provided through a business transfer by way of merger or other similar transactions;
(iii) The personal information is provided to a provider of an information collection module persuant to Section 4 hereof;
(iv) Bell Apps is required to cooperate with state or local governmental orgranizations or their agents to perform their duties or obligations pursuant to applicable laws and regulations, and such performance is likely to be precluded if the consent of the user must be obtained; and
(v) In addition to the foregoing, Bell Apps is entitled to disclose information pursuant to the Personal Information Protection Act or other applicable laws and regulations.
Upon request from the user to disclose its personal information under the Personal Information Protection Act, Bell Apps shall, without delay,disclose to the user such information after confirming its identity (or notify it of the non-existence of such personal information), to the extent required to do so pursuant to the Personal Information Protection Act and other applicable laws and regulations. Please note that you must pay commission (1,000 yen per application) for disclose of personal information.
7.1 If Bell Apps is required by the user to (1) correct the content of personal information under the provision of the Personal Information Protection Act because such information is false, or (2) suspend use of personal information because such information is being handled beyond the scope of the pursuant of the use previously made public, or has been collected in a fraudulent or otherwise illicit manner, then Bell Apps shall, without delay, conduct an appropriate investigation after confirming the requesting party's identity, and based upon the results, correct the content or suspend the use of such personal information, and notify the party to that effect. The user shall also be notified of any determination, if applicable, not to correct or suspend the use of such information, together with the justification for such determination.
7.2 In the event that Bell Apps is required by the user to delete its personal information and has determined that it is necessary to accept such request, Bell Apps shall delete such personal information confirming the requesting party's identity and shall notify the party to that effect.
7.3 Should Bell Apps not be obligated to correct, or suspend use of, information pursuant to the Personal Information Protection Act and other applicable laws and regulations, the preceding paragraphs shall not apply.
Bell Apps shall from time to time review how the User's Information is being handled, and use its best efforts to continuously improve the operation, and make such modification to this Privacy Policy as may be necessary. Any modification to this Privacy Policy shall be notified to you by email; provided that for any modification requiring consent from the user pursuant to applicable laws and regulations, such consent from the user must be obtained subject to the procedures as separately established by Bell Apps.


| OLD line(s): 416
| NEW line(s): 417,429
<!-- ===== Type for Repeating Element "Direct Owner" ===== --> <!-- Direct Owner --> <xsd:element name="DirectOwner" minOccurs="0" maxOccurs="100"> <xsd:annotation> <xsd:documentation> <Description>Direct owner</Description> </xsd:documentation> </xsd:annotation> <xsd:complexType> <xsd:sequence> |
| OLD line(s): 481
| NEW line(s): 495,498
</xsd:sequence> </xsd:complexType> </xsd:element> |


From event: {{ action_detail.start_evid }} to event {{ action_detail.end_evid }}
From year: {{ action_detail.start_year|floatformat:3 }} to year {{ action_detail.end_year|floatformat:3 }}
{% if action_detail.section_filter != None %}
Sections: {% for sid, sname in action_detail.section_filter.items %}{{ sid }} {{ sname }}{% if not forloop.last %}, {% endif %}{% endfor %}
{% endif %}


In this project, the dataset used is the flower data , I'll use Pytorch to load and preprocess the data, and train the image classifier to achieve more than 80% accuracy. Finally, make it a command line app.
Check it outIn this project, the dataset used is the census data, I'll predict whether an individual makes more than $50,000 by preprocessing data and choosing the best candidate algorithm and train it.
Check it out


Eager to learn about statistical and spatial analysis with R, I decided to learn some of its applications by analyzing NYC's Citibike bikeshare program. I gathered data for all rides taken from January through June of 2015. The general pattern of use throughout the course of the day is plotted below.
As shown, more people commute with Citibike in the evening than in the morning. This pattern interested me and I began to think about what factors would cause this imbalance. Becoming sweaty before arriving at work is a major deterrent to cycling in the morning, and this factor wouldn't have as much impact on a commuter's willingness to cycle home from work. I also though about temperature, which is higher in the evening. To determine if temperature had an impact on ridership, I calculated the mean hourly temperature for each day in the study period and plotted that value against ridership. The results are shown in the two figures below.
The first figure shows results that aren't particularly surprising; cycling in cold weather is generally not pleasant. However,
the second figure reveals something interesting: in warm months, ridership is more sensitive to temperature changes than it is in cold
months. January and February both show flatlined ridership, suggesting that even on warm days, riders on the system are likely to be
part of a dedicated core of members who cycle regardless of the cold.
Interested in how other weather conditions may impact ridership, I downloaded a csv file that described weather conditions qualitatively in
NYC for each hour. I grouped the conditions into five broad categories and then determined the average hourly ridership for each category.
These results were a bit puzzling. Fog/haze/smoke likely has the highest value because these conditions are less likely to occur at
night when baseline ridership is quite low. I can't think of factors that would cause riderhip when light rain is present to appear
higher than ridership during normal conditions, however.
As a geospatial professional, I had to explore some of R's spatial packages. Using the packages sp and geojsonio, I decided to map the stations
in Citibike's network circa 2015 based on ridership. One of the biggest challenges for docked bikeshare providers comes when stations are either
overcrowded, which prevents users from locking their bikes up, or completely empty. Given this challenge, I chose to map the number of arrivals and
departures at each station, as well as the difference between these two figures, which I termed "net ridership". The results are shown below.
The net ridership map shows patterns that match up with the daily pattern of ridership: there are generally
more depatures than arrivals in the central business district, which is midtown Manhattan in this case. This lines up
with the higher ridership that occurs during the evening commute when workers would leave the CBD.
Interestingly, the secondary CBD in lower Manhattan does not display this same pattern of low net arrival values.
Learning about data visualization in R was fun and you can check out
my code here.


( Tile source in this example is from Chronicling America at the Library of Congress )
Highlighted overlays are very useful for directing users attention to specific areas of interest, though the style is often decided based on the specific content being presented.
OpenSeadragon makes it easy to declare highlighted areas and control the presentation through simple css mechanisms. A tile source overlay is specific to the particular tile source. So if you have a sequence of tile sources and want to over lay unique content on each, use this mechanism.
The relevant configuration options are shown below. Note the className and id attributes will be passed to the overlay element so you can use bind css styles and events to it. Be sure to put your styles in the document head, inside the openseadragon viewer element, or apply them dynamically so they will persist when full screen mode is entered.
OpenSeadragon({ ... tileSources: [{ ... overlays: [{ id: 'example-overlay', x: 0.33, y: 0.75, width: 0.2, height: 0.25, className: 'highlight' }], ... }] ... });
OpenSeadragon also supports overlays that persist accross image sequences. In this case the overlay is simply configured outside of the tileSource.
This example also demonstrates the ability to configure the overlay position in terms of image pixel coordinates. The difference is infered by use of px, and py, instead of x and y.
OpenSeadragon({ ... overlays: [{ id: 'global-overlay-filter', px: 0, py: 0, width: 6425, height: 8535, className: 'filter' }], ... });
By default OpenSeadragon checks for an existing element in the DOM that matches the id of the overlay id (if one is specified). If that content is found, OpenSeadragon will use it for the overlay, otherwise it will create a link to ensure keyboard accesibilty to the target ( as in the examples above ).
In this example we display some additional metadata to the right of the image itself.
OpenSeadragon({ ... preserveViewport: true, showNavigator: false, minZoomLevel: 1, overlays: [{ px: 6425, py: 0, width: 6425, height: 8535, id: 'html-overlay' }], tileSources: [{ width: 6425, height: 8535, tileSize: 256, tileOverlap: 1, getTileUrl: chronicling_america_example(1) },{ ... }] ... });


Table of Contents |
License Wizard OptionsThis screen allows you to choose what you would like the license wizard to do. Choose one of the following by selecting the appropriate radio button and clicking Next. Activate a license using the internetSelect this option to request a license from the ITT Visual Information Solutions licensing web site. If you are a current customer, or have received a license number for your product, this web site will allow you to retrieve license information immediately. After you click Next, the license wizard will attempt to launch a web browser and connect to the ITT Visual Information Solutions licensing web site. If you generate or retrieve a license from the licensing web site, the license wizard will automatically display the license entry screen. If you are unable to generate or retrieve a license from the licensing web site, or if you are unable to connect to the licensing web site for any reason, click Exit to close the license wizard.
If are unable to generate or retrieve a license from the licensing web site from the machine on which you are installing the ITT Visual Information Solutions product, choose Request a license if you don't have internet access. Request a license if you don't have internet accessIf the machine on which you are installing your ITT Visual Information Solutions product does not have internet connectivity, you can create a text file containing your license request. After you click Next, the license wizard will display a text widget containing a partly completed license request. Follow the instructions in the text widget and select File → Save As to save the license request file on your computer. After saving your license request file, click Exit to close the license wizard. Install a license you have receivedIf you have received a license as a text file, you can enter the license using the license wizard. After you click Next, the license wizard will display the license entry screen. See Entering a License for additional details. Learn how to connect to an existing license serverIf a license server for your product is already running on your organization's local network, you can connect to that license server without generating or retrieving a new license file for your machine. After you click Next, the license wizard will display the Connecting to an Existing License Server help topic. After reading the instructions, click Exit to close the license wizard.
ITT Visual Information Solutions (February 17, 2009) |