Class: Aws::DatabaseMigrationService::Types::GcpMySQLSettings
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb |
Overview
Settings in JSON format for the source GCP MySQL endpoint.
Constant Summary
Instance Attribute Summary
-
#after_connect_script ⇒ String
rw
Specifies a script to run immediately after DMS connects to the endpoint.
-
#clean_source_metadata_on_mismatch ⇒ Boolean
rw
Cleans and recreates table metadata information on the replication instance when a mismatch occurs.
-
#database_name ⇒ String
rw
Database name for the endpoint.
-
#events_poll_interval ⇒ Integer
rw
Specifies how often to check the binary log for new changes/events when the database is idle.
-
#max_file_size ⇒ Integer
rw
Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
-
#parallel_load_threads ⇒ Integer
rw
Improves performance when loading data into the MySQL-compatible target database.
-
#password ⇒ String
rw
Endpoint
connection password. -
#port ⇒ Integer
rw
Endpoint
TCP port. -
#secrets_manager_access_role_arn ⇒ String
rw
The full Amazon Resource Name (ARN) of the
::Aws::IAM
role that specifies DMS as the trusted entity and grants the required permissions to access the value inSecretsManagerSecret.
The role must allow theiam:PassRole
action. -
#secrets_manager_secret_id ⇒ String
rw
The full
::Aws::ARN
, partial::Aws::ARN
, or friendly name of theSecretsManagerSecret
that contains the MySQL endpoint connection details. -
#server_name ⇒ String
rw
The MySQL host name.
-
#server_timezone ⇒ String
rw
Specifies the time zone for the source MySQL database.
-
#target_db_type ⇒ String
rw
Specifies where to migrate source tables on the target, either to a single database or multiple databases.
-
#username ⇒ String
rw
Endpoint
connection user name.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#after_connect_script ⇒ String
(rw)
Specifies a script to run immediately after DMS connects to the endpoint. The migration task continues running regardless if the SQL statement succeeds or fails.
For this parameter, provide the code of the script itself, not the name of a file containing the script.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#clean_source_metadata_on_mismatch ⇒ Boolean
(rw)
Cleans and recreates table metadata information on the replication instance when a mismatch occurs. For example, in a situation where running an alter DDL on the table could result in different information about the table cached in the replication instance.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#database_name ⇒ String
(rw)
Database name for the endpoint. For a MySQL source or target
endpoint, don't explicitly specify the database using the
DatabaseName
request parameter on either the CreateEndpoint
or
ModifyEndpoint
API call. Specifying DatabaseName
when you create
or modify a MySQL endpoint replicates all the task tables to this
single database. For MySQL endpoints, you specify the database only
when you specify the schema in the table-mapping rules of the DMS
task.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#events_poll_interval ⇒ Integer
(rw)
Specifies how often to check the binary log for new changes/events when the database is idle. The default is five seconds.
Example: eventsPollInterval=5;
In the example, DMS checks for changes in the binary logs every five seconds.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#max_file_size ⇒ Integer
(rw)
Specifies the maximum size (in KB) of any .csv file used to transfer data to a MySQL-compatible database.
Example: maxFileSize=512
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#parallel_load_threads ⇒ Integer
(rw)
Improves performance when loading data into the MySQL-compatible target database. Specifies how many threads to use to load the data into the MySQL-compatible target database. Setting a large number of threads can have an adverse effect on database performance, because a separate connection is required for each thread. The default is one.
Example: parallelLoadThreads=1
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#password ⇒ String
(rw)
Endpoint
connection password.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#port ⇒ Integer
(rw)
Endpoint
TCP port.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#secrets_manager_access_role_arn ⇒ String
(rw)
The full Amazon Resource Name (ARN) of the ::Aws::IAM
role that specifies
DMS as the trusted entity and grants the required permissions to
access the value in SecretsManagerSecret.
The role must allow the
iam:PassRole
action. SecretsManagerSecret
has the value of the
Amazon Web Services Secrets Manager secret that allows access to the
MySQL endpoint.
SecretsManagerSecretId
. Or you can specify clear-text values for
UserName
, Password
, ServerName
, and Port
. You can't specify
both. For more information on creating this SecretsManagerSecret
and the SecretsManagerAccessRoleArn
and SecretsManagerSecretId
required to access it, see Using secrets to access Database
Migration Service resources in the Database Migration Service
User Guide.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#secrets_manager_secret_id ⇒ String
(rw)
The full ::Aws::ARN
, partial ::Aws::ARN
, or friendly name of the
SecretsManagerSecret
that contains the MySQL endpoint connection
details.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#server_name ⇒ String
(rw)
The MySQL host name.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#server_timezone ⇒ String
(rw)
Specifies the time zone for the source MySQL database.
Example: serverTimezone=US/Pacific;
Note: Do not enclose time zones in single quotes.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#target_db_type ⇒ String
(rw)
Specifies where to migrate source tables on the target, either to a single database or multiple databases.
Example: targetDbType=MULTIPLE_DATABASES
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end
#username ⇒ String
(rw)
Endpoint
connection user name.
# File 'gems/aws-sdk-databasemigrationservice/lib/aws-sdk-databasemigrationservice/types.rb', line 5768
class GcpMySQLSettings < Struct.new( :after_connect_script, :, :database_name, :events_poll_interval, :target_db_type, :max_file_size, :parallel_load_threads, :password, :port, :server_name, :server_timezone, :username, :secrets_manager_access_role_arn, :secrets_manager_secret_id) SENSITIVE = [:password] include Aws::Structure end


Of course, that's just people who take it to excess amounts. As for myself, on a real mellow evening, there's nothing more enjoyable than taking a couple Xanax tabs and tipping back a few beers. But you've got to know your limit.
I have been in this state before, and it's not fun (of course it was fun at first!). Blacking out, vomiting, or experiencing extreme dizziness is usually one or two steps below slipping into a coma or worse. So here's the point of my story.... try this sometime, and you'll see why I like it so much. Be careful though, it becomes addicting, and habitual intake of alcohol and pills can really fry your liver.
Here's the suggested dosage:
In a very mellow, controlled setting (such as a campfire) take two or three Alprazolam (Xanax) 0.5mg tabs or up to one and a half 1mg tabs. 0.5mg tabs are usually an off-pink color, while the 1-mg tabs (the best) are usually a deep blue. Chase the pills with a LITE beer, sipping slowly. Don't drink to fast or too much... unless you wanna wake up the next morning covered in your own vomit, hearing stories from your friends about crazy things you did. Drink no more than two beers per hour. Even after drinking just one beer after taking Xanax, you will definitely feel the effects at the onset (20-30 min). (Note: Beer and Xanax are the perfect two substances for coming down from coke or crank)
Usual effects after 3-4 beers (although this depends on the person's body weight): Giddyness, warm rushes throughout the body, extreme euphoria, flushed skin, jelly-like feeling in the legs.
Comedown effects: same as above but with decreasing intensity. Deep sleep usually follows within 3-4 hours.
Negative effects (but only if you overdo it): vomiting, blackouts, delirium, hallucinations, coma, overdose, death.
be careful!!!!
Experience Reports are the writings and opinions of the individual authors who submit them.
Some of the activities described are dangerous and/or illegal and none are recommended by Erowid.


:: com :: sun :: star :: table ::
|
| struct TableSortField |
|
- Description
- describes how to sort a single field (row/column) in a tables
sort descriptor.
- Since
- OOo 1.1.2
- See also
- TableSortDescriptor2
|
| Elements' Summary |
| Field |
index of the row or column in the table to be sorted; 0-based.
|
| IsAscending |
true if data are sorted in ascending order,
false if in descending order.
|
| IsCaseSensitive |
specifies if the case of letters is important when comparing entries.
|
| FieldType |
type of contents in the field.
|
| CollatorLocale |
the locale used by the collator when comparing/sorting text.
|
| CollatorAlgorithm |
the algorithm used by the collator when comparing/sorting text.
|
| Elements' Details |
Field
long Field;
- Description
- index of the row or column in the table to be sorted; 0-based.
|
|
IsAscending
boolean IsAscending;
- Description
- true if data are sorted in ascending order,
false if in descending order.
|
|
IsCaseSensitive
boolean IsCaseSensitive;
- Description
- specifies if the case of letters is important when comparing entries.
|
|
FieldType
TableSortFieldType FieldType;
- Description
- type of contents in the field.
If the value is
AUTOMATIC
the algorithm used for sorting is application specific.
Especially it may or may not use the values given by
'CollatorLocale' and 'CollatorAlgorithm'.
|
|
CollatorLocale
::com::sun::star::lang::Locale CollatorLocale;
- Description
- the locale used by the collator when comparing/sorting text.
This property will not be used when the 'FieldType' is
NUMERIC
@ see com::sun::star::i18n::XCollator
|
|
CollatorAlgorithm
string CollatorAlgorithm;
- Description
- the algorithm used by the collator when comparing/sorting text.
This property will not be used when the 'FieldType' is
NUMERIC
@ see com::sun::star::i18n::XCollator
|
|
Top of Page
Copyright © 2013, The Apache Software Foundation, Licensed under the Apache License, Version 2.0. Apache, the Apache feather logo, Apache OpenOffice and OpenOffice.org are trademarks of The Apache Software Foundation. Other names may be trademarks of their respective owners.


Jekyll Shell Theme is a light-weight customizable one-column jekyll theme that gives off:
See an example of this theme in action on the theme’s official site.
Add this line to your Jekyll site’s Gemfile
:
gem "jekyll-shell-theme"
And add this line to your Jekyll site’s _config.yml
:
theme: jekyll-shell-theme
And then execute:
$ bundle
Or install it yourself as:
$ gem install jekyll-shell-theme
Make sure your Gemfile
contains the github-pages
gem and not the jekyll-shell-theme
gem.
Then add remote_theme: "tareqdandachi/jekyll-shell-theme"
to your _config.yml
file.
Remove any other theme:
or remote_theme:
entry.
For an example of what a config file could look like, look at example-config.yml
TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
Bug reports and pull requests are welcome on GitHub at https://github.com/tareqdandachi/jekyll-shell-theme. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
Everyone is welcome to fork this repo and modify the code. To set up your environment to develop this theme, run bundle install
.
To test the theme, run bundle exec jekyll serve
and open your browser at http://localhost:4000
. This starts a Jekyll server using the theme. Add pages, documents, data, etc. like normal to test the theme’s contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When your theme is released, only the files in _layouts
, _includes
, _sass
and assets
tracked with Git will be bundled.
To add a custom directory to your theme-gem, please edit the regexp in jekyll-shell-theme.gemspec
accordingly.
The theme is available as open source under the terms of the MIT License.


Class: Aws::VoiceID::Types::EvaluateSessionResponse
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb |
Overview
Constant Summary
Instance Attribute Summary
-
#authentication_result ⇒ Types::AuthenticationResult
rw
Details resulting from the authentication process, such as authentication decision and authentication score.
-
#domain_id ⇒ String
rw
The identifier of the domain that contains the session.
-
#fraud_detection_result ⇒ Types::FraudDetectionResult
rw
Details resulting from the fraud detection process, such as fraud detection decision and risk score.
-
#session_id ⇒ String
rw
The service-generated identifier of the session.
-
#session_name ⇒ String
rw
The client-provided name of the session.
-
#streaming_status ⇒ String
rw
The current status of audio streaming for this session.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#authentication_result ⇒ Types::AuthenticationResult (rw)
Details resulting from the authentication process, such as authentication decision and authentication score.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end
#domain_id ⇒ String
(rw)
The identifier of the domain that contains the session.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end
#fraud_detection_result ⇒ Types::FraudDetectionResult (rw)
Details resulting from the fraud detection process, such as fraud detection decision and risk score.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end
#session_id ⇒ String
(rw)
The service-generated identifier of the session.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end
#session_name ⇒ String
(rw)
The client-provided name of the session.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end
#streaming_status ⇒ String
(rw)
The current status of audio streaming for this session. This field
is useful to infer next steps when the Authentication or Fraud
Detection results are empty or the decision is NOT_ENOUGH_SPEECH
.
In this situation, if the StreamingStatus
is
ONGOING/PENDING_CONFIGURATION
, it can mean that the client should
call the API again later, after Voice ID has enough audio to produce
a result. If the decision remains NOT_ENOUGH_SPEECH
even after
StreamingStatus
is ENDED
, it means that the previously streamed
session did not have enough speech to perform evaluation, and a new
streaming session is needed to try again.
# File 'gems/aws-sdk-voiceid/lib/aws-sdk-voiceid/types.rb', line 802
class EvaluateSessionResponse < Struct.new( :authentication_result, :domain_id, :fraud_detection_result, :session_id, :session_name, :streaming_status) SENSITIVE = [] include Aws::Structure end


top 3 jobs
No single job suits all of us, but many of the best ones have a few attributes in common: They pay well, challenge us year after year, match our talents and skills, aren't too stressful, offer room to advance throughout our careers, and provide a satisfying work-life balance. Whether the position is in demand is also a consideration among job seekers. U.S. News uses these qualities to rank the 100 Best Jobs of 2021
Data scientists use technology to glean insights from large amounts of data they collect. It’s a field that requires statistics, quantitative reasoning and computer programming skills. On top of all that, you need to be a good communicator so you can report your research findings and explain how they address a larger question you’re trying to answer
While data science is still a new career field, employers are increasingly recognizing the value of professionals with this expertise. Today, you’ll find data scientists working at a range of organizations, including tech startups, government agencies, large companies and research institutions.


--- layout: post date: 2011-03-11 time: "10:00:00" authors: ["Greg Wilson"] title: Science Illustrated tags: ["Noticed"] ---
Videos of lectures from a two-day symposium on scientific visualization called Science Illustrated are now online. Many thanks to Mubdi Rahman for organizing it.


I have a great interest in sport. Sport has had a huge impact on my childhood and continues to impact my life now as a young adult. Although I enjoy watching and playing many different sports, Rugby and soccer have always been my two favourite sports. I have played rugby my whole life with my local club Old Christians RFC , recently moving from underage to adult rugby which has been a tough transition with the hits becoming harder and the pace of the game increasing but I enjoy the new competition. I got my love for rugby from my father who played from a very young age himself. Although I do not play soccer, I watch and support the premier league, I support Arsenal FC as my whole family are Arsenal supporters. I have been lucky enough to go attend a few Arsenal matches at the Emirates Stadium with my brother who lives in London.


{% extends 'layout-af.html' %} {% block pageTitle %} Armed forces Healthcare {% endblock %} {% block beforeContent %} {% endblock %} {% block content %}
Find information and support about mental health for the armed forces community, including serving personnel, veterans and their families.


JavaScript is disabled on your browser.
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
L
liveThreadCount
- Variable in class io.parallec.core.monitor.
MonitorProvider.ThreadUsage
The live thread count.
logAllResponseAfterPercent
- Static variable in class io.parallec.core.config.
ParallecGlobalConfig
The log all response after percent.
logAllResponseBeforeInitCount
- Static variable in class io.parallec.core.config.
ParallecGlobalConfig
The log all response before init count.
logAllResponseBeforePercent
- Static variable in class io.parallec.core.config.
ParallecGlobalConfig
The log all response before percent.
logAllResponseIfTotalLessThan
- Static variable in class io.parallec.core.config.
ParallecGlobalConfig
The log all response if total less than.
logger
- Static variable in class io.parallec.core.actor.
ActorConfig
The logger.
logger
- Static variable in class io.parallec.core.actor.
AssistantExecutionManager
The logger.
logger
- Static variable in class io.parallec.core.actor.
ExecutionManager
The logger.
logger
- Static variable in class io.parallec.core.actor.
HttpWorker
The logger.
logger
- Static variable in class io.parallec.core.actor.message.
NodeReqResponse
The logger.
logger
- Static variable in class io.parallec.core.actor.
OperationWorker
The logger.
logger
- Static variable in class io.parallec.core.actor.
PingWorker
The logger.
logger
- Static variable in class io.parallec.core.actor.poll.
HttpPollerProcessor
The logger.
logger
- Static variable in class io.parallec.core.actor.
SshWorker
The logger.
logger
- Static variable in class io.parallec.core.actor.
TcpWorker
The logger.
logger
- Static variable in class io.parallec.core.actor.
UdpWorker
The logger.
logger
- Static variable in class io.parallec.core.bean.
HttpMeta
The logger.
logger
- Static variable in class io.parallec.core.bean.ping.
PingMeta
The logger.
logger
- Static variable in class io.parallec.core.bean.
StrStrMap
The logger.
logger
- Static variable in class io.parallec.core.bean.
TaskRequest
The logger.
logger
- Static variable in class io.parallec.core.bean.tcp.
TcpMeta
The logger.
logger
- Static variable in class io.parallec.core.bean.udp.
UdpMeta
The logger.
logger
- Static variable in class io.parallec.core.commander.workflow.
InternalDataProvider
The logger.
logger
- Static variable in class io.parallec.core.commander.workflow.ping.
PingProvider
The logger.
logger
- Static variable in class io.parallec.core.commander.workflow.ssh.
SshProvider
The logger.
logger
- Static variable in class io.parallec.core.commander.workflow.
VarReplacementProvider
The logger.
logger
- Static variable in class io.parallec.core.
FilterRegex
The logger.
logger
- Static variable in class io.parallec.core.monitor.
MonitorProvider
The logger.
logger
- Static variable in class io.parallec.core.
ParallelClient
The logger.
logger
- Static variable in class io.parallec.core.
ParallelTask
The logger.
logger
- Static variable in class io.parallec.core.
ParallelTaskBuilder
The logger.
logger
- Static variable in class io.parallec.core.resources.
AsyncHttpClientFactoryEmbed
The logger.
logger
- Static variable in class io.parallec.core.task.
CapacityAwareTaskScheduler
The Constant logger.
logger
- Static variable in class io.parallec.core.task.
ParallelTaskManager
The logger.
logger
- Static variable in class io.parallec.core.taskbuilder.targethosts.
TargetHostsBuilder
The logger.
logger
- Static variable in class io.parallec.core.taskbuilder.targethosts.
TargetHostsBuilderHelperCms
The logger.
logger
- Static variable in class io.parallec.core.util.
PcDateUtils
The logger.
logger
- Static variable in class io.parallec.core.util.
PcFileNetworkIoUtils
The logger.
logger
- Static variable in class io.parallec.core.util.
PcHttpUtils
The logger.
logger
- Static variable in class io.parallec.core.util.
PcStringUtils
The logger.
logger
- Static variable in class io.parallec.core.util.
PcTargetHostsUtils
The logger.
logHealth()
- Method in class io.parallec.core.
ParallelClient
Log memory health.
logResponseInterval
- Static variable in class io.parallec.core.config.
ParallecGlobalConfig
The log response interval.
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
S
T
U
V
W
Skip navigation links
Overview
Package
Class
Use
Tree
Deprecated
Index
Help
Prev Letter
Next Letter
Frames
No Frames
All Classes


How to Fool a Blockchain - Verification of Off-Chain Computations
Dr. Christian Reitwiessner
@ethchris github.com/chriseth<EMAIL_ADDRESS>DevCon 2 - 2016-09-20
Tough Tasks for Smart Contracts
How does an Ethereum Smart Contract
- Verify Solidity source code?
- Read and write to data stored in swarm?
- Evaluate neural networks?
- Verify zkSNARKs?
- Verify state transition in private chain?
- Become conscious?
All these operations need access to the "external world" and/or are very
expensive.
TrueBit - Overview
- Task Giver publishes "question"
- Solvers provide solutions in commit/reveal manner
- Disputes are resolved using the Verification Game
Task Giver provides fee, Solvers provide deposit and get rewards. Deposit
is slashed if fraud is detected. Many parallels to
Casper proof of stake.
Due to incentives, verification game
will only be played in case of an attack. Attack is only successful
if all attackers join forces. A single honest (and uncensored) actor can prevent any attack
(51% attack → 100% attack).
Verification Game - Assumptions
- Actors agree on program for class of task:
- evaluate certain neural network on given inputs,
- verify Dogecoin proof of work,
- run given bytecode in a certain virtual machine,
- evaluate given Haskell program,
- ...
- Solvers first run natively implemented program (fast) to find and publish solution.
If there is disagreement, verification game starts for a pair of solvers
(run multiple games if more than two different solutions):
Verification Game in Detail
- Both solvers re-run input on special implementation which can generate Merkle-roots
for all memory at any step.
- provide root hash of first (match) and last (mismatch) step.
- binary search until single step from match to mismatch.
- provide Merkle-proofs for memory access inside this step.
- single step is evaluated on-chain:
- Merkle-proofs are identical before the step (same state root).
- Memory only changes locally, so Merkle-proof siblings have to be identical
Verification Game again in short
- For a program that runs 10 000 000 steps, we only need log(10 000 000) =
24 rounds
- Each round: only submit single hash to the blockchain
- Only a single step is run on chain (single addition, single comparison, ...),
plus Merkle-proof verification
- Even better: Due to economic incentives and certainty of getting caught,
verification game is never ever played.
Where can it be Applied?
- Anything that can be broken into steps ("ethereum computation market")
- Tasks have to be implemented in Solidity and off-chain
- We plan to implement a simple virtual machine in Solidity ("lanai"), so
mechanism can work with any C/C++/Rust code without changes
Swarm as actual filesystem for smart contracts
- interactive verification works as long as data is publicly available
- pseudo-opcodes:
- read(root_hash, offset) -> value
- write(root_hash, offset, value) -> updated_root_hash
- during verification, reads and writes to swarm are treated the
same as memory reads and writes.
Plans for Completion
- Successfully applied for Wanxiang Blockchain Labs grant (small)
- Looking for further funding and implementation help
- Milestones:
- Finish verification game for Dogecoin Scrypt
- Implement and test cryptoeconomics
- Implement generic verifier using lanai architecture


Class: Aws::CodeGuruReviewer::Types::RepositoryAssociation
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
Struct
|
|
|
Instance Chain:
self,
::Aws::Structure ,
Struct
|
|
| Inherits: |
Struct
|
| Defined in: | gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb |
Overview
Information about a repository association. The
DescribeRepositoryAssociation operation returns a
RepositoryAssociation
object.
Constant Summary
Instance Attribute Summary
-
#association_arn ⇒ String
rw
The Amazon
::Aws::CodeGuruReviewer::Resource
Name (ARN) identifying the repository association. -
#association_id ⇒ String
rw
The ID of the repository association.
-
#connection_arn ⇒ String
rw
The Amazon
::Aws::CodeGuruReviewer::Resource
Name (ARN) of an Amazon Web Services CodeStar Connections connection. -
#created_time_stamp ⇒ Time
rw
The time, in milliseconds since the epoch, when the repository association was created.
-
#kms_key_details ⇒ Types::KMSKeyDetails
rw
A
KMSKeyDetails
object that contains: -
#last_updated_time_stamp ⇒ Time
rw
The time, in milliseconds since the epoch, when the repository association was last updated.
-
#name ⇒ String
rw
The name of the repository.
-
#owner ⇒ String
rw
The owner of the repository.
-
#provider_type ⇒ String
rw
The provider type of the repository association.
- #s3_repository_details ⇒ Types::S3RepositoryDetails rw
-
#state ⇒ String
rw
The state of the repository association.
-
#state_reason ⇒ String
rw
A description of why the repository association is in the current state.
Instance Method Summary
::Aws::Structure
- Included
| #to_hash | Alias for Structure#to_h. |
Instance Attribute Details
#association_arn ⇒ String
(rw)
The Amazon ::Aws::CodeGuruReviewer::Resource
Name (ARN) identifying the repository
association.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#association_id ⇒ String
(rw)
The ID of the repository association.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#connection_arn ⇒ String
(rw)
The Amazon ::Aws::CodeGuruReviewer::Resource
Name (ARN) of an Amazon Web Services CodeStar
Connections connection. Its format is
arn:aws:codestar-connections:region-id:aws-account_id:connection/connection-id
.
For more information, see Connection in the Amazon Web
Services CodeStar Connections API Reference.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#created_time_stamp ⇒ Time
(rw)
The time, in milliseconds since the epoch, when the repository association was created.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#kms_key_details ⇒ Types::KMSKeyDetails (rw)
A KMSKeyDetails
object that contains:
The encryption option for this repository association. It is either owned by Amazon Web Services Key Management Service (KMS) (
AWS_OWNED_CMK
) or customer managed (CUSTOMER_MANAGED_CMK
).The ID of the Amazon Web Services KMS key that is associated with this repository association.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#last_updated_time_stamp ⇒ Time
(rw)
The time, in milliseconds since the epoch, when the repository association was last updated.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#name ⇒ String
(rw)
The name of the repository.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#owner ⇒ String
(rw)
The owner of the repository. For an Amazon Web Services CodeCommit
repository, this is the Amazon Web Services account ID of the
account that owns the repository. For a GitHub, GitHub Enterprise
Server, or Bitbucket repository, this is the username for the
account that owns the repository. For an ::Aws::S3
repository, it can be
the username or Amazon Web Services account ID.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#provider_type ⇒ String
(rw)
The provider type of the repository association.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#s3_repository_details ⇒ Types::S3RepositoryDetails (rw)
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#state ⇒ String
(rw)
The state of the repository association.
The valid repository association states are:
Associated: The repository association is complete.
Associating: CodeGuru Reviewer is:
- Setting up pull request notifications. This is required for pull requests to trigger a CodeGuru Reviewer review.
If your repository ProviderType
isGitHub
,GitHub Enterprise Server
, orBitbucket
, CodeGuru Reviewer creates webhooks in your repository to trigger CodeGuru Reviewer reviews. If you delete these webhooks, reviews of code in your repository cannot be triggered.- Setting up source code access. This is required for CodeGuru Reviewer to securely clone code in your repository.
Failed: The repository failed to associate or disassociate.
Disassociating: CodeGuru Reviewer is removing the repository's pull request notifications and source code access.
Disassociated: CodeGuru Reviewer successfully disassociated the repository. You can create a new association with this repository if you want to review source code in it later. You can control access to code reviews created in anassociated repository with tags after it has been disassociated. For more information, see Using tags to control access to associated repositories in the Amazon CodeGuru Reviewer User Guide.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end
#state_reason ⇒ String
(rw)
A description of why the repository association is in the current state.
# File 'gems/aws-sdk-codegurureviewer/lib/aws-sdk-codegurureviewer/types.rb', line 1581
class RepositoryAssociation < Struct.new( :association_id, :association_arn, :connection_arn, :name, :owner, :provider_type, :state, :state_reason, :last_updated_time_stamp, :created_time_stamp, :kms_key_details, :s3_repository_details) SENSITIVE = [] include Aws::Structure end


Current Time Service
Overview
The bluetooth peripheral sample has a cts server in place. By installing this sample on a bluetoothboard, one can simulate the CTS.
Another option is to use a smartphone or computer to connect and bond to your Pinetime. As soon as a device is bonded, Pinetime will look for a CTS server (Current Time Service) on the connected device.
Here is how to do it with an Android smartphone running NRFConnect: Build and program the firmware on the Pinetime Install NRFConnect (https://www.nordicsemi.com/Software-and-Tools/Development-Tools/nRF-Connect-for-desktop) Start NRFConnect and create a CTS server : Tap the hamburger button on the top left and select “Configure GATT server” Tap “Add service” on the bottom Select server configuration “Current Time Service” and tap OK Go back to the main screen and scan for BLE devices. A device called “PineTime” should appear Tap the button “Connect” next to the PineTime device. It should connect to the PineTime and switch to a new tab. On this tab, on the top right, there is a 3 dots button. Tap on it and select Bond. The bonding process begins, and if it is sucessful, the PineTime should update its time and display it on the screen.
Requirements
Building and Running
west build -p -b pinetime samples/bluetooth/peripheral-cts
Todo
make it work


A simple PowerShell BitLocker snippet, that was vital to get me started. So much simpler than C#.
Plus, yey! Check out Ryen Kia Zhi Tang's comments below, for even more awesomeness!
The Problem
For one whole terrible week recently, I forgot the new password for a BitLocker encrypted drive! After many combinations of what I thought it could be, I started a Notepad list of failed passwords. There were still many of my
popular combinations I had not tried, so I decided to automate the process...
The Solution
Well, part of the solution actually, as the true password came to me the next night, so I never needed to finish this.
The code below is all that is needed to get started, for anyone else who is stuck in this situation. At very least, you can just keep adding your ideas to the input file and running it again, to see if any work.
I am so very glad we have PowerShell to make this kind of thing so easy!
The Code
The script below opens a text file (called "..tried.txt", wherever you place that), then iterates through each line and tests it against the locked drive.It's not fast! But it gets the job done much faster than doing it manually!
$file =
"C:\.....\Desktop\tried.txt"
$Lines = [System.IO.File]::ReadAllLines($file)
$password =
"None :("
foreach ($line
in
$Lines)
{
if
($line -eq
""
)
{
continue
;
}
Try
{
$SecureString = ConvertTo-SecureString $line -AsPlainText -Force
$result = Unlock-BitLocker -MountPoint
"X:"
-Password $SecureString -ErrorVariable err -ErrorAction SilentlyContinue
if
($result -and $password -eq
""
)
{
$password = $line;
}
}
Catch
{
#write-host "Nope"
}
}
write-host $password;
So the key command here is Unlock-BitLocker. Make sure you change the script for the drive you want to
unlock, shown as X above.
Note how I'm swallowing the error info, which you can analyse too if need, and notice the silent continue on errors.
Hope this helps some poor soul who doesn't code but can open a PowerShell window and make the file and changes described above.
To run Windows PowerShell, just type it into your start box or Cortana. You will already have it installed. Then you can just adjust the code above and paste it in. Maybe press Enter again to get the last line. If the list is
long, it will pause until complete - just wait.
You can wrap it into a Script Block and monitor its progress if you are serious about this. Below is a simplified example of the code needed for that:
$ScriptBlock = {
#param($pipelinePassIn)
$file = "C:\Users\Piers\Desktop\tried.txt"
$Lines = [System.IO.File]::ReadAllLines($file)
$password = "None :("
foreach ($line in $Lines)
{
if ($line -eq "")
{
continue;
}
Try
{
$SecureString = ConvertTo-SecureString $line -AsPlainText -Force
$result = Unlock-BitLocker -MountPoint "k:" -Password $SecureString -ErrorVariable err -ErrorAction SilentlyContinue
if ($result -and $password -eq "")
{
$password = $line;
}
}
Catch
{
#Also ignore
}
}
return $password;
}
#Start-Job $ScriptBlock -ArgumentList $Lines
Start-Job $ScriptBlock
While (Get-Job -State "Running")
{
Start-Sleep 1
}
# Getting the information back from the jobs
Get-Job | Receive-Job
Get-Job | Stop-Job
Read more about Script Blocks and feedback here.
Good luck!


Source code for publicdata.census.groupby
import numpy as np
from pandas.core.groupby import SeriesGroupBy, DataFrameGroupBy
from publicdata.census.dataframe import CensusDataFrame
from publicdata.census.series import CensusSeries
[docs]def groupby(obj, by, **kwds):
if isinstance(obj, CensusSeries):
klass = CensusSeriesGroupBy
elif isinstance(obj, CensusDataFrame):
klass = CensusDataFrameGroupBy
else: # pragma: no cover
raise TypeError('invalid type: %s' % type(obj))
return klass(obj, by, **kwds)
[docs]class CensusSeriesGroupBy(SeriesGroupBy):
[docs] def sum_rs(self, x):
"""root of the sum of the squares"""
# See the ACS General Handbook, Appendix A, "Calculating Margins of Error for Derived Estimates".
# (https://www.census.gov/content/dam/Census/library/publications/2008/acs/ACSGeneralHandbook.pdf)
# for a guide to these calculations.
return np.sqrt(sum(self.m90 ** 2))
[docs]class CensusDataFrameGroupBy(DataFrameGroupBy):
[docs] def sum_m(self):
"""root of the sum of the squares"""
# See the ACS General Handbook, Appendix A, "Calculating Margins of Error for Derived Estimates".
# (https://www.census.gov/content/dam/Census/library/publications/2008/acs/ACSGeneralHandbook.pdf)
# for a guide to these calculations.
return np.sqrt(sum(self.m90 ** 2))
[docs] def aggregate(self, arg, *args, **kwargs):
return super().aggregate(arg, *args, **kwargs)
agg = aggregate
def _m_agg(self, f1, f2):
cf = {}
if not isinstance(self.keys, (list, tuple)):
keys = [self.keys]
else:
keys = self.keys
for c in list(self.obj.columns):
if c in keys:
continue
if self.obj[c].dtype == object:
continue # Skip strings?
if c.endswith('_m90'):
cf[c] = [f2]
else:
cf[c] = [f1]
return self.agg(cf)
[docs] def sum(self):
from publicdata.censusreporter.func import sum_rs
return self._m_agg('sum',sum_rs)
[docs] def mean(self):
from publicdata.censusreporter.func import mean_m
return self._m_agg('mean', mean_m)


Curated list of websites and resources to find work programming
Please read contribution guidelines before contributing.
HN: Who is hiring?


Use mesibo to add real-time communication to your app and website in just a few hours
Integrate mesibo’s one-on-one messaging APIs to enable your users to start communicating instantly
Make your app or web a global platform for interacting with like-minded or closely related people. Integrate mesibo’s group chat APIs and start texting and messaging, one to many.
Use mesibo’s voice and video APIs to enable users to make live audio and video conversations.
Branded communication apps for your small-to-large enterprises team using your own enterprise authentication
Create a communication app for all your employees in your enterprise environment - using your own enterprise authentication, servers, and firewalls ensure ultimate privacy whether it's chat, voice or video calls.
Allow teams to collaborate - to share their ideas, updates, status reports, work assignments and more.
Unlike other apps like Slack where you have to use their app, mesibo gives you your own app which you can even upload to various app stores like Apple, Google, Amazon for your employees to download in the most user-friendly manner.
Add WebRTC voice and video calling into your app
WebRTC is an amazing way to add voice and video to your app. However to setup a WebRTC session, it requires a signaling channel to exchange session control messages (SDPs). mesibo's low latency, reliable messaging provides an ideal signaling platform for WebRTC.
Mesibo offers turn server and also let you set up other WebRTC protocols like STUN, TURN to handle global media handling.
A reliable, low latency interface to your AI engines
Machine learning and artificial intelligence are transforming almost every field; customer support, predictions, search, etc.., and open solutions from Google, Amazon, Microsoft make it even easier for apps to integrate AI in their own system. Most AI services are meaningful when they process real-time input data and send processed output data in real-time. This is where mesibo helps, by delivering input data from your users to your AI backend and back with ultra-low latency and guaranteed delivery.
Increase team productivity and customer satisfaction
It was found that live chat has the highest satisfaction levels (73%) compared to any other customer service channel, 63% for email and 44% of the phone. Adding it to your website and app will certainly make your buyer feel more confident in pre-sales as well as post-sales support.
Help your online buyers in making informed decisions by live chat, voice or video interactions. It was also found effective to offer live chat proactively if customers linger on the page.
Specialized communication needs
Allowing communication only if both the parties agree to chat
Hide contact details by creating an alias which can be deleted anytime to remove the communication channel, to ensure only interested parties can stay connected.
Let a user find the other user based on location proximity.
Another specialized communication type
Create a platform for strangers to meet and communicate via chat, audio or video calls.
Create Anonymous chat rooms to get feedback, discussions on burning issues, or anything you like to keep anonymous.
Add interactivity to your games
Add more excitement by making your virtual game a live playground for players. Allow real-time chat between one-on-one or one-to-many players to feel the thrill.
Enable multiplayer capabilities in your games by sending and receiving player action in real-time, for example, shooting, chess moves, coordinates, etc.
Make distance learning, immersive
Use mesibo’s API to transmit multimedia class content in real-time to students having mobiles, tablets, computers, etc.
Make your sessions immersive by adding live chat, voice and video interactions. mesibo’s real-time chat API makes it quick and easy for you, and can scale to your needs.
Not all students learn at the same pace or are available at the same timeslot. Allow your students to access recorded sessions from whatever device they are using at their own pace.
Provide cost effective solutions to remote patients
Provide a platform for doctors and patients to interact face-to-face across the globe using mesibo's chat, voice, and video API.
Send the test reports, high resolution scans, ECG etc., to doctors and get diagnostic reports, allow them to discuss, everything in real-time, just like a patient and a doctor sitting across the table.
Follow-up with patients or let patients follow up with doctors for any queries - shows you care.
Provide a highly secured environment for financial transactions. With on-premise installation, you get full control of your user data and complete security of for every user interaction
Provide live customer support for the smooth operating of their accounts and increase the satisfaction level. Offer personalized one-to-one assistance for complex transactions.
Keep your customers safe. Update your customers with real-time transaction alerts, as and when they transact.
Keep your users stay tuned with the real-time stock market, fund updates. Provide real-time assistance to manage the investment portfolio profitably.
Provide personalised shopping experience
It was found that live chat has the highest satisfaction levels (73%) compared to any other customer service channel, 63% for email and 44% for the phone. Adding it to your website and app will certainly make your buyer feel more confident in pre-sales as well as post-sales support.
Help your online buyers in making informed decisions through live chat, voice or video interactions. It was also found effective to offer live chat proactively if customers linger on the page.

Broadcasting live events to a large audience by using mesibo’s platform.
Let celebrities engage with their fans across the globe by live events, or online Meetup sessions.
Let your users feel the thrill of real-time sports events
Broadcast live streaming of sport events to keep your users engaged.
Make your app or web a live scoreboard. Keep on updating with the game scores in real-time and let your app users enjoy the game without missing even a bit.
Let your app or web be the real-time platform for the sports lovers to discuss their favourite sports.


{% extends 'base.html' %} {% load bootstrap3 %} {% block content %}
{{ project.owner }}
Anything you feel is not right with life and seek reviews,put it on the table.


SpotifyGeneralError
public enum SpotifyGeneralError
extension SpotifyGeneralError: LocalizedError
extension SpotifyGeneralError: CustomStringConvertible
An error originating from this library that is not represented by any of the other error types.
See also:
-
You have tried to access an endpoint before authorizing your app or the access token needed to be refreshed but the refresh token was
nil
.See also
insufficientScope(requiredScopes:authorizedScopes:)
.Declaration
Swift
case unauthorized(String)
-
The value provided for the state parameter when you requested access and refresh tokens didn’t match the value returned from Spotify in the query string of the redirect URI.
- supplied: The value supplied when requesting the access and refresh tokens.
- received: The value received from Spotify in the query string of the redirect URI.
Declaration
Swift
case invalidState(supplied: String?, received: String?)
-
A Spotify identifier (URI, id, URL) of a specific type could not be parsed. The message will contain more information.
Declaration
Swift
case identifierParsingError(message: String)
-
You tried to access an endpoint that your app does not have the required scopes for.
- requiredScopes: The scopes that are required for this endpoint.
- authorizedScopes: The scopes that your app is authorized for.
-
The id category or categories didn’t match one of the expected categories.
- expected: The expected categories. Some endpoints allow for URIS from multiple categories. For example, the endpoint for adding items to a playlist allows for track or episode URIs.
- received: The id category that was received. In some cases, multiple
categories will be returned. It is not necessarily the case that all
of these categories are invalid. For example, if you provide a
collection of artist, track, and episode URIS to the endpoint for
adding items to a playlist, then
expected
will be[track, episode]
andreceived
will be[track, episode, artist]
, representing all of the provided categories, not just the invalid ones.
For example, if you pass a track URI to the endpoint for retrieving an artist, you will get this error.
See also
IDCategory
.Declaration
Swift
case invalidIdCategory( expected: [IDCategory], received: [IDCategory] )
-
Spotify sometimes returns data wrapped in an extraneous top-level dictionary that the client doesn’t need to care about. This error is thrown if the expected top level key associated with the data is not found.
For example, adding a tracks to a playlist returns the following response:
{ "snapshot_id" : "3245kj..." }
The value of the snapshot id is returned instead of the entire dictionary or this error is thrown if the key can’t be found.
Declaration
Swift
case topLevelKeyNotFound( key: String, dict: [AnyHashable: Any] )
-
The http request returned a response with a status code in the 4xx (client error) or 5xx (server error) range, and the response body could not be decoded into any of the other errors types (
SpotifyAuthenticationError
,SpotifyError
,SpotifyPlayerError
).Contains the body data and http response metadata from the server.
Declaration
Swift
case httpError(Data, HTTPURLResponse)
-
Some other error.
Declaration
Swift
case other( String, localizedDescription: String = "An unexpected error occurred." )


I'm currently an Engineer working at BukaLapak and am living in Jakarta, Indonesia.
I like to learn, read and buy books.


koi8rxterm(1) koi8rxterm(1) NAME koi8rxterm - X terminal emulator for KOI8-R environments SYNOPSIS koi8rxterm [ xterm-options ] DESCRIPTION koi8rxterm is a wrapper around the xterm(1) program that invokes the lat‐ ter program with the ‘KOI8RXTerm’ X resource class set. All arguments to koi8rxterm are passed to xterm without processing; the -class and -k8 options should not be specified because they are used by the wrapper. See the xterm manual page for more information on xterm-options. The environment's locale settings (see “ENVIRONMENT” below) are used to discern the locale's character set. If no current locale can be deter‐ mined, the locale ‘ru_RU.KOI8-R’ (the Russian language as used in the territory of Russia, with the KOI8-R character set) is assumed. The locale(1) utility is used to determine whether the system supports the selected locale. If it does not, koi8rxterm will exit with an error and report the output of locale. Note: koi8rxterm may produce unexpected results if the current locale is set to one in which the KOI8-R character encoding is not supported, or if fonts using that encoding are not available. In the Debian system, the ‘xfonts-cyrillic’ package provides the fonts that koi8rxterm uses by default. To change the fonts koi8rxterm uses, edit the /etc/X11/app- defaults/KOI8RXTerm file. A similar wrapper, uxterm(1), is available for Unicode UTF-8 environ‐ ments. ENVIRONMENT LC_ALL, LC_CTYPE, LANG The values of these variables are checked, in order, to determine the character set used by the current locale. AUTHOR koi8rxterm was written by Branden Robinson and is very heavily based on uxterm, by Thomas Dickey. The assistance of Jurij Smakov was invaluable in sanity-checking its operation. SEE ALSO locale(1), locale(7), uxterm(1), xterm(1) Debian Project 2004-12-19 koi8rxterm(1)


Cloud computing brings significant new challenges to network infrastructures. The promise of increased business speed and agility means the underlying networks must deliver greater performance than ever before, while also supporting related shifts to increased mobility and the bring-your-own device (BYOD) paradigm. Today’s networks must be high-performance, ultra-reliable, secure, scalable, agile and manageable.
The unfortunate reality is that traditional legacy networks are not up to the job when it comes to delivering the performance required for cloud computing. Traditional Ethernet networks use the spanning tree protocol (STP), which make them poorly suited for delay-sensitive applications: Cloud computing requires more efficient and resilient network designs that make full use of networking resources.
The key to delivering robust and scalable networks for the cloud is to deploy a fabric-based architecture, as epitomized by the HP FlexNetwork, which enables the construction of flat low-latency networks with fewer layers, less equipment and cabling, and greater port densities. A fabric architecture allows IT to modernize its network infrastructure at its own pace, preserving existing assets, while putting the foundation in place for networks that are more resilient, secure and scalable. A particular advantage of the HP approach is that it connects the data center, where applications are generated, to the campus and branch, where users consume them.
A modernized network infrastructure is a vital piece of the puzzle in delivering the business agility, flexibility and services-oriented approach promised by the cloud. To really drive your organization to next-generation cloud success, the network should be part of a converged infrastructure that provides a common management platform to manage and automate operations for all applications and infrastructure components. Read on to learn about what it takes to build a network to support the cloud, mobility, BYOD and all of the other challenges facing IT and network decision-makers today.
With this white paper, discover how HP solutions scale to meet the performance requirements of today's data centers.View now
Cloud computing is making an increasing impact on data center networks. This whitepaper discusses HP's approach to simpler and more secure automated networks in the Cloud.View now
The characteristics of a network infrastructure that’s optimized for cloud computing is the focus of this brochure. Read it and also learn the HP vision for cloud networks based on HP FlexNetwork architecture.
This case study profiles DreamWorks Animation, exloring how they use HP Converged Infrastructure technologies to boost creativity, streamline production, and save significant time as well as costs.
The demand for wireless continues to grow at a rapid rate and is quickly relegating wired networks to a second tier status. Read this white paper for advice on when and how and when to make the switch to wireless.


The congress.common.policy
Module¶
Policy Engine For Auth on API calls.
-
class
congress.common.policy.
IsAdminCheck
(kind, match)¶ Bases:
oslo_policy._checks.Check
An explicit check for is_admin.
-
congress.common.policy.
check_is_admin
(context)¶ Whether or not roles contains ‘admin’ role according to policy setting.
-
congress.common.policy.
enforce
(context, action, target, do_raise=True, exc=None)¶ Verifies that the action is valid on the target in this context.
Parameters: - context – congress context
- action – string representing the action to be checked
this should be colon separated for clarity.
i.e.
compute:create_instance
,compute:attach_volume
,volume:attach_volume
- target – dictionary representing the object of the action
for object creation this should be a dictionary representing the
location of the object e.g.
{'project_id': context.project_id}
- do_raise – if True (the default), raises PolicyNotAuthorized; if False, returns False
Raises: congress.exception.PolicyNotAuthorized – if verification fails and do_raise is True.
Returns: returns a non-False value (not necessarily “True”) if authorized, and the exact value False if not authorized and do_raise is False.
-
congress.common.policy.
get_rules
()¶
-
congress.common.policy.
init
(policy_file=None, rules=None, default_rule=None, use_conf=True)¶ Init an Enforcer class.
Parameters: - policy_file – Custom policy file to use, if none is specified, CONF.policy_file will be used.
- rules – Default dictionary / Rules to use. It will be considered just in the first instantiation.
- default_rule – Default rule to use, CONF.default_rule will be used if none is specified.
- use_conf – Whether to load rules from config file.
-
congress.common.policy.
reset
()¶
-
congress.common.policy.
set_rules
(rules, overwrite=True, use_conf=False)¶ Set rules based on the provided dict of rules.
Parameters: - rules – New rules to use. It should be an instance of dict.
- overwrite – Whether to overwrite current rules or update them with the new rules.
- use_conf – Whether to reload rules from config file.


Reads a struct decorated with swagger:response and uses that information to fill up the headers and the schema for a response. A swagger:route can specify a response name for a status code and then the matching response will be used for that operation in the swagger definition.
swagger:response [?response name]
| Annotation | Description |
|---|---|
| Collection Format | when a slice the formatter for the collection when serialized on the request |
| Maximum | specifies the maximum a number or integer value can have |
| Minimum | specifies the minimum a number or integer value can have |
| Multiple of | specifies a value a number or integer value must be a multiple of |
| Minimum length | the minimum length for a string value |
| Maximum length | the maximum length for a string value |
| Pattern | a regular expression a string value needs to match |
| Minimum items | the minimum number of items a slice needs to have |
| Maximum items | the maximum number of items a slice can have |
| Unique | when set to true the slice can only contain unique items |
For slice properties there are also items to be defined. This might be a nested collection, for indicating nesting level the value is a 0-based index, so items.minLength is the same as items.0.minLength
| Annotation | Format |
|---|---|
| Items.n.Maximum | specifies the maximum a number or integer value can have at the level n |
| Items.n.Minimum | specifies the minimum a number or integer value can have at the level n |
| Items.n.Multiple of | specifies a value a number or integer value must be a multiple of |
| Items.n.Minimum length | the minimum length for a string value at the level n |
| Items.n.Maximum length | the maximum length for a string value at the level n |
| Items.n.Pattern | a regular expression a string value needs to match at the level n |
| Items.n.Minimum items | the minimum number of items a slice needs to have at the level n |
| Items.n.Maximum items | the maximum number of items a slice can have at the level n |
| Items.n.Unique | when set to true the slice can only contain unique items at the level n |
// A ValidationError is an error that is used when the required input fails validation.
// swagger:response validationError
type ValidationError struct {
// The error message
// in: body
Body struct {
// The validation message
//
// Required: true
Message string
// An optional field name to which this validation applies
FieldName string
}
}
---
responses:
validationError:
description: A validation error is an errot that is used whn the required input fails validation.
schema:
type: object
required:
- Message
properties:
Message:
type: string
description: The validation message
FieldName:
type: string
description: an optional field name to which this validation applies
14 Nov 2015 #operations


| [Medium Leather]
| 100
| 4 [Light Leather]
|
|
| [Light Leather Bracers]
| 70
|
- 4 [Coarse Thread]
- 6 [Light Leather]
|
|
| [Light Scale Bracers]
| 70
|
- 4 [Coarse Thread]
- 6 [Light Leather]
|
|
| [Embossed Leather Gloves]
| 60
|
- 2 [Coarse Thread]
- 4 [Light Leather]
|
|
| [White Leather Jerkin]
| 60
|
- 1 [Bleach]
- 2 [Coarse Thread]
- 8 [Light Leather]
| Recipe is dropped by mobs.
|
| [Embossed Leather Boots]
| 55
|
- 5 [Coarse Thread]
- 8 [Light Leather]
|
|
| [Embossed Leather Gloves]
| 55
|
- 2 [Coarse Thread]
- 3 [Light Leather]
|
|
| [Light Scale Gloves]
| 55
|
- 2 [Coarse Thread]
- 3 [Light Leather]
|
|
| [Embossed Leather Vest]
| 40
|
- 4 [Coarse Thread]
- 8 [Light Leather]
|
|
| [Cured Light Hide]
| 35
|
|
|
| [Rugged Leather Pants]
| 35
|
- 5 [Coarse Thread]
- 5 [Light Leather]
| Recipe is dropped by mobs.
|
| [Handstitched Leather Belt]
| 25
|
- 1 [Coarse Thread]
- 6 [Light Leather]
|
|
| [Handstitched Leather Pants]
| 15
|
- 1 [Coarse Thread]
- 4 [Light Leather]
|
|
| [Handstitched Leather Boots]
| 1
|
- 1 [Coarse Thread]
- 2 [Light Leather]
|
|
| [Handstitched Leather Bracers]
| 1
|
- 3 [Coarse Thread]
- 2 [Light Leather]
|
|
| [Handstitched Leather Cloak]
| 1
|
- 1 [Coarse Thread]
- 2 [Light Leather]
|
|
| [Handstitched Leather Vest]
| 1
|
- 1 [Coarse Thread]
- 3 [Light Leather]
|
|
| [Light Armor Kit]
| 1
| 1 [Light Leather]
|
|
| [Light Leather]
| 1
| 3 [Ruined Leather Scraps]
|
|


Contents
Short Descriptions
|
is a tool to handle cx18 based devices. |
|
|
decodes multiplexed formats from TM5600/TM6000 USB devices. |
|
|
is a command line tool for digital TV services. |
|
|
is a tool meant to convert among different file formats. It is compliant with version 5 of the DVB API. |
|
|
is a command line frequency scanning tool for digital TV services that are compliant with version 5 of the DVB API. |
|
|
is a command line tuning tool for digital TV services that is compliant with version 5 of the DVB API. |
|
|
is a tool that lists the Remote Controller devices, allows one to get/set IR keycode/scancode tables, test events generated by IR, and to adjust other Remote Controller options. |
|
|
is a utility that can control many card settings, like changing the inputs from tuner to svideo or composite, setting video resolution or changing video mode (PAL, SECAM, NTSC). |
|
|
is a utility used to configure V4L2 devices. |
|
|
is used to test video4linux capture devices. |
|
|
is a utility for decoding raw RDS data from V4L2 Radio devices and offers simple ways to access the received RDS information. |
|
|
is a compliance test tool. |
|
|
is a tool to control v4l2 controls from the cmdline. |
|
|
is a tool to directly get and set registers of v4l2 devices. |
|
|
checks the media devices installed on a machine and the corresponding device nodes. |


Challenge 1:
Translate: When is the time to eat?
Dictionary:
- ut = when
- sonu = is
- tepa = time
- moku = to eat
Maj: Ut sonu el tepa sh moku?
Challenge 2:
Translate:
- If one is hungry, he must eat something.
- There are people who suffer from hunger.
Dictionary:
- si = if
- su = he
- ki = who
- una = one
- xaga = hunger
- dovu = must
- sh moku = to eat
- algo = something
- aka = there
- Xete = people
Maj:
- Si un sonu hago, su dovu sh moku algo.
- Aka sonu Xete ki sofu de xaga.
Challenge 3:
Translate:
- Which is your favorite food?
- My favorite food is omelette with cheese.
Dictionary:
- uk = which
- fevo = favorite
- mia = my
- fevo = favorite
- moka = food
- omla = omelette
- de = from
- kesa = cheese
Maj:
- Uk sonu toa moka fevo?
- Mia moka fevo sonu la omla de kesa.
Challenge 4:
Translate:
- Do you like toast with butter?
- I don-t like it. I prefer to eat without bread.
Dictionary
- tsie = to you
- te paju = you like
- pana = bread
- fejo = fried
- ku = with
- buta = butter
- og = without
Maj:
- tsie te paju la pana fejo ku buta?
- no lo paju; moa favu sh moku og pana.
Challenge 5:
Translate:
- Do you like boiled eggs?
- Yes, I like to eat two boiled eggs with mustard for breakfast;
Dictionary:
te = to you
la ueva = the egg (singular)
le ueve = eggs (plural)
geko = boiled
sefa = mustard
deja = breakfast
Maj:
- te paju le ueve geko?
- xa, ym paju sh moku bie weve geko ku sefa po deja;


Units of distribution
Estimated size of the transfer unit in the specified format, expressed in megabytes.


Simulation Menu
When in a non-Headless Simulation, a menu can be accessed by clicking on the "hamburger" menu icon in the bottom left.
In an Interactive Simulation, the "Play" and "Pause" buttons are found to the right of the menu icon.
Table of Contents
Info Menu top#
This menu is accessed from the i
button.
It lists the build info as well as any errors, logs, or warnings that are created in the current simulation.
To clear all of these messages, click the "Trash can" icon in the bottom right of the menu.
Controls Menu top#
This menu is accessed from the "controller" button. It lists all the keyboard commands in the simulation. See Keyboard Shortcuts for more details.
Interactive Menu top#
This menu is only available in an Interactive Simulation and is accessed from the "sliders" button. It contains tools to change the environment of the Simulation while the Simulation is playing.
Sensors Menu top#
This menu is accessed from the "eye" button. It lists all sensors on the selected vehicle and allows for the sensors to be visualized, as well as their coordinate transform relative to the parent transform sensor. See Sensor Visualization for more details.
Bridge Menu top#
This menu is accessed from the "plug" button. It lists information on the bridge status as well as all published and subscribed topics. See Bridge Topics for more details.
Camera Button top#
The camera icon in the bottom right indicates if the view is currently a follow camera or free-roam camera.
A follow camera remains centered on the selected vehicle. W
and S
zoom and Mouse RightClick
rotates the view around the center of the car.
If the view has not been manually rotated, the camera will stay behind the vehicle.
A free-roam camera can be moved freely around the map using all of the camera controls.
Clicking the camera button toggles between the 2 camera modes. When switching back to the follow camera, the camera will automatically be positioned behind the active vehicle.
Vehicle Selection top#
The vehicle listed in the bottom right is the current active vehicle. This vehicle is affected by keyboard input. Selecting a different vehicle will change the view to the follow camera of the selected vehicle. The number preceding each vehicle corresponds to the number key to select the vehicle.


Sorry, Microsoft Internet Explorer is no longer supported. Please switch to a modern browser like Edge, Firefox, Safari or Chrome.


+++
title = "Printed Robots"
linkTitle = "Printed Robots"
+++
{{< blocks/cover title="Printed Robots" image_anchor="top" height="full" color="orange" >}}
Proudly reinventing the wheel!
}}">
Learn More
GitHub
Building self balancing robots, which are open source
{{< blocks/link-down color="info" >}}
{{< /blocks/cover >}}
{{% blocks/lead color="primary" %}}
**Printed Robots** builds amazing robots for joy and science.
{{% /blocks/lead %}}
{{< blocks/section color="dark" >}}
{{% blocks/feature icon="fab fa-youtube" title="Watch our robots on YouTube" %}}
Find new videos on our YouTube channel
[YouTube Channel](https://www.youtube.com/channel/UCi0tz3WQQ31R4zIcqGUUCCw)
{{% /blocks/feature %}}
{{% blocks/feature icon="fab fa-twitter" title="Follow us on Twitter" %}}
Follow us to get incremental updates and insights
[Twitter](https://twitter.com/j2pow)
{{% /blocks/feature %}}
{{% blocks/feature icon="fa-lightbulb" title="Read our Blog" %}}
Find information regarding latest development and upcoming ideas
[Blog](/blog/news)
{{% /blocks/feature %}}
{{< /blocks/section >}}
{{< blocks/section color="dark" >}}
{{% blocks/feature icon="fab fa-github" title="Download CAD Models" %}}
Find stl and step files of our robots on github
[Balancing Robot CAD Files](https://github.com/Printed-Robots/balancing_robot/)
{{% /blocks/feature %}}
{{% blocks/feature icon="fab fa-github" title="Find our Software on Github" %}}
Find the matching software for our robots on github
[Github Organisation](https://github.com/Printed-Robots)
{{% /blocks/feature %}}
{{% blocks/feature icon="fa-book" title="Find Documentation" %}}
Read our documentation
Coming Soon!
{{% /blocks/feature %}}
{{< /blocks/section >}}


toolcall - call an external tool¶
This is a sample Django package that includes both the tool-user part (code that presents tools to users), the toolcall server part (code that authenticates and authorizes users, and redirects the tool-user to the tool), and the tool implementor part (this is a stub implementation of the client).
New clients should start by looking at the included client, http://<IP_ADDRESS>:8000/admin/toolcall/client/1/, and the toolcall/tooluser directory; and perhaps by running through the user flow (http://<IP_ADDRESS>:8000/) but please read the user flow section below for context.
About this package (quickstart..)¶
This package is self-contained in the sense that it includes the enire user flow and a (sqlite) database that can be used for testing.
This project is set up to demonstrate the toolcall api.
install¶
Create a new virtualenv and download the code:
> mkvirtualenv toolcall
toolcall> git clone https://github.com/thebjorn/toolcall.git
toolcall> cd toolcall
then install the requirements, and the toolcall package in dev mode:
toolcall> pip install -r requirements.txt
toolcall> pip install -e .
create the database¶
To create the sqlite database with syncdb, but answer no to the superuser question:
(toolcall) go|c:\github\toolcall> python manage.py syncdb
Operations to perform:
Synchronize unmigrated apps: toolcall
Apply all migrations: admin, contenttypes, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Creating table toolcall_client
Creating table toolcall_tool
Creating table toolcall_toolcall
Creating table toolcall_toolcalllog
Creating table toolcall_toolcallresult
Installing custom SQL...
Installing indexes...
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying sessions.0001_initial... OK
You have installed Django's auth system, and don't have any superusers defined.
Would you like to create one now? (yes/no): no
Load the included fixture¶
(toolcall) go|c:\github\toolcall> python manage.py loaddata dumpdata.json
Installed 50 object(s) from 1 fixture(s)
Note
The fixture contains a superuser with username/password == admin/admin, and a regular user with username/password == user/user.
Run the server¶
python manage.py runserver
User flow¶
There is one client defined which you can view at: http://<IP_ADDRESS>:8000/admin/toolcall/client/1/ (in production it is a requirement that the urls use a https transport with a valid certificate).
The endpoints are declared at http://<IP_ADDRESS>:8000/.api/toolcall/v2/ It is not necessary to discover these (i.e. they can be manually read and hard-coded into your client). We will update the api version if any of the urls change.
Open the start page at http://<IP_ADDRESS>:8000/ Since both the server and the client are running on the same host here, it is better if you use a separate web browser from the one you opened the admin site in.
Step 1: user clicks button to start tool/exam¶
view: toolcall.views.home
The button opens a new window for running the exam. The window is opened with noopener
.
Note
as a shortcut I’ve re-used the admin site’s login template for user logins in this example client. You should use your regular procedures for logging users in.
Step 2: user is redirected to client with access_token¶
view toolcall.tooluser.views.start_tool
This view will normally redirect directly to the client, but here it presents
a page with some debug information. Click the “start tool” link at the bottom to
proceed. In debug mode you have 200 seconds (toolcall.defaults.TOOLCALL_TOKEN_TIMEOUT_SECS
before the token is invalid).
Step 3: client¶
Clients need to implement the urls/views in toolcall/toolimplementor.
There are two urls that need to be implemented. Here they’re called:
url(r'^start-token/$', views.receive_start_token),
url(r'^result-token/$', views.send_result_data),
which correspond to the values in the Client model.
start-token
is called after step 2 when the user is redirected with an
access_token.
Check toolcall/toolimplementor/views.py:receive_start_token
for
a sample implementation.
I would suggest creating auth.Users and logging them in.
Note
You’ll need to save some of the start data values so you can return them to us with the result.
The client runs the exam¶
I’ve illustrated this by a redirect to toolcall.toolimplementor.views.run_my_tool
that only creates a token and a result structure, store them in redis, and sends the token
to the server’s result token url (the client name is also sent).
Step 4: the server sends result token¶
The server immediately sends the token back to the client to the
toolcall.toolimplementor.views.send_result_data
view (result-token/
url, as defined
in the Client model).
The client fetches the result data from redis and returns it.
Comments regarding the sample client implementation¶
- I’ve used redis for token storage because it’s part of our stack. The client is of course free to use any other solution.
- the persnr/unique ID algorithm here is not the one we use, but creates similar looking unique IDs that are unique and durable per user.
- I’ve kept the client code simple for pedagogical reasons.
toolcall.views
is more similar to what we use in production. - The ToolcallResult model is not used here (it normally stores the result data verbatim.
- The progress records (ToolCall, ToolCallLog) are functional but not safe (the transitions are neither correct nor checked - but they are logged..)
Toolcall protocol¶
The following actor names are used synonymously:
| user/candidate/browser: | |
|---|---|
| The person starting the tool/exam. | |
| client/tool: | The external (to NorskTest) entity that runs the tool. |
| server/NorskTest: | |
| That’s us. | |
| tool/exam: | The “thing” being run (most frequently an exam). |
The user/browser is indicated in blue, red is server-to-server communication over a secure channel (ie. https).
- We authenticate and authorize the Candidate so only candidates
that have been logged in with us are sent to
toolcall
. We generate a unique token and redirect the candidate to an url defined in thetoolcall.models.tool_models.Client
model. - The client sends a server-to-server GET request over a secure channel.
- NorskTest returns json-data containing tool start data. The data
can/is customized to the individual client. The start-data:
- must include a uniqe person reference (the client can e.g. use this to adapt the test when the candidate starts the second attempt). The person reference is sent back to NorskTest in step #6.
- can include the name of the candidate (for personalization).
- etc.
- The client runs the (external) tool and sends a (new) token back
to NorskTest
- This is shown as a redirect in the diagram, meaning that it is possible for the candidate to return to the portal (whence they started the tool call). This should be a server-to-server communication if the user shouldn’t be redirected back to NorskTest.
- NorskTest sends a server-to-server GET request over a secure channel.
- The client returns result-data in json format, containing the unique person reference (as received in #3), pass/fail, and a opaque id that can be used to track the call after the fact (to support complaint processing etc.)
The client ought to be able to validate its own tokens (e.g. by adding a checksum).
The token must only be valid for a short period of time, i.e. the period between 1 to 2, and 4 to 5, must be short. This will prevent a situation where an attacker has a large set of valid tokens that can be attacked.
It must only be possible to resolve a token once (to prevent replay attacks).
Tokens ought to be saved (or logged) so it is possible to debug the system across the server/client boundary.
Note
It is possible to implement a token transformation (decryption) between 1/2 and 4/5 so tokens transmitted over an open channel must be encrypted before sending on a secure channel. This is currently not seen as necessary.
result-data¶
The views in https://github.com/thebjorn/toolcall/blob/master/toolcall/toolimplementor/views.py are what you need to implement/integrate with your code, :fn:`toolcall.toolimplementor.views.run_my_tool` creates the result data structure (and stores it in redis); and :fn:`toolcall.toolimplementor.views.send_result_data` returns the result data structure to NorskTest.
The result data should contain the following fields
| persnr: | the value you received for this field in the start-data. |
|---|---|
| toolcall_participant_id: | |
| an opaque reference to the progress/result data in your system (so we can send this to you when resolving issues). | |
| exam: | the value you received in start-data [1] |
| score: | integer value reresenting the score the user obtained (optional) |
| passed: | true if the user passed the exam, otherwise false |
| tstamp: | an iso formatted timestamp rerpresnting when the user finished the exam |
| system: | the value you received in start-data |
| exam_kind: | the exam context (optional, e.g. self-test, proctored, etc.), should generally be the same as received in start-data. |
| [1] | extended with adaptive values if needed (e.g. if you’re sent “excel” and your exam adapts to user answers you could return e.g. “excel:expert”, “excel:basics” etc.) |
Todo
exam and exam_kind is in flux.
endpoints¶
Server¶
The server has two endpoints. The endpoints are defined in toolcall/toolcall-api.yaml and are also available from http://<IP_ADDRESS>:8000/.api/toolcall/v2/
Todo
the production server is not ready for v2 yet, but this sample package does.
start_data¶
In this sample app it is: http://localhost:8000/fetch-token/
It should be called with the start-data token as a GET parameter
named access_token
, e.g.:
http://localhost:8000/fetch-token/?access_token=1W6ofOChZt1AS4bdpkbOVKpdptVi0YDB48-UAZXz8PuB06cvNtwoiXBM20
result_token¶
In this sample app it is: http://localhost:8000/result/
It should be called with the result token as a GET parameter
named access_token
, and the client name in a GET parameter
named client
, e.g.:
http://localhost:8000/result/?access_token=3525841484&client=testclient
Client¶
The client has two endpoints. The endpoints are defined in the
toolcall.models.tool_models.Client
model.
receive_start_token_url¶
Url where we redirect the end user with a token. In the sample client this is: http://localhost:8000/client/start-token/
receive_result_token_url¶
Url where we return the result token and expect result data in return. In the sample client this is: http://localhost:8000/client/result-token/
ToDo list¶
Todo
the production server is not ready for v2 yet, but this sample package does.
(The original entry is located in c:\github\toolcall\docs\endpoints.rst, line 12.)
Todo
exam and exam_kind is in flux.
(The original entry is located in docs/result-data.rst, line 50.)
Todo
the production server is not ready for v2 yet, but this sample package does.
(The original entry is located in docs/endpoints.rst, line 12.)
Todo
exam and exam_kind is in flux.
(The original entry is located in c:\github\toolcall\docs\result-data.rst, line 50.)
api-docs (mostly for cross referencing)¶
- toolcall package
- Subpackages
- Submodules
- toolcall.admin module
- toolcall.api module
- toolcall.apiutils module
- toolcall.apps module
- toolcall.auth_backend module
- toolcall.defaults module
- toolcall.dkhttp module
- toolcall.dktoken module
- toolcall.jason module
- toolcall.jsondecoder module
- toolcall.message module
- toolcall.toolcall_exceptions module
- toolcall.toolresult module
- toolcall.urls module
- toolcall.views module
- Module contents


JavaScript Use Strict
"use strict"; Defines that JavaScript code should be executed in "strict mode".
The "use strict" Directive
The "use strict" directive is new in JavaScript 1.8.5 (ECMAScript version 5).
It is not a statement, but a literal expression, ignored by earlier versions of JavaScript.
The purpose of "use strict" is to indicate that the code should be executed in "strict mode".
With strict mode, you can not, for example, use undeclared variables.
Activate debugging in your browser (F12) to see the error report.
Not Allowed in Strict Mode
- Using a variable without declaring it, is not allowed.
- Using an object, without declaring it, is not allowed.
- Deleting a variable (or object) is not allowed.
- Deleting a function is not allowed.
- Duplicating a parameter name is not allowed.
- Octal numeric literals are not allowed.
- Octal escape characters are not allowed.
- Writing to a read-only property is not allowed.
- Writing to a get-only property is not allowed.
- Deleting an undeletable property is not allowed.
- The string "eval" cannot be used as a variable.
- The string "arguments" cannot be used as a variable:
- The with statement is not allowed.
- For security reasons, eval() is not allowed to create variables in the scope from which it was called.


ABAP Quick Fixes - Translate comments into English
If you'll find in your ABAP code, comments that are written in foreign language, you can always use this quick fix to preview or to translate it into English.
Translation is done via Google Translator in the background call, source language is detected automatically.
In case of communication error to the service, the quick fix is switched off in the future calls, until the restart of Eclipse takes place.
It can be also switched off manually in Preferences.


Mike Parkin
Novice developer, longtime breakfast advocate.
Cultural
Technical
Home
Technical tea time
Sprint 1 Technical Blog
Sprint 2 Technical Blog
Sprint 3 Technical Blog
Sprint 4 Technical Blog
Sprint 5 Technical Blog


| Hotel | Room | Adults | Children | Nights | Per Night | Total |
|---|---|---|---|---|---|---|
| Bali Dynasty | Delux | 2 | 1 | 4 | 45 | 180 |
| Services | Adults | Children | Grand Total | ||||
|---|---|---|---|---|---|---|---|
| Rate | Number | Total | Rate | Number | Total | ||
| Airport Transfer | 10 | 20 | 5 | 5 | 25 | ||
| Kintamani Tour | 30 | 60 | 20 | 20 | 80 | ||
| Tunah Lot Tour | 30 | 60 | 10 | 10 | 70 |
| Package Total (USD) | 355 | ||
| Markup | 100 | ||
| Package Total (USD) | 455 |


The POSIX AIO interface consists of the following functions:
The aiocb ("asynchronous I/O control block") structure defines parameters that control an I/O operation. An argument of this type is employed with all of the functions listed above. This structure has the following form:
#include <aiocb.h> struct aiocb { /* The order of these fields is implementation-dependent */ int aio_fildes; /* File descriptor */ off_t aio_offset; /* File offset */ volatile void *aio_buf; /* Location of buffer */ size_t aio_nbytes; /* Length of transfer */ int aio_reqprio; /* Request priority */ struct sigevent aio_sigevent; /* Notification method */ int aio_lio_opcode; /* Operation to be performed; lio_listio() only */ /* Various implementation-internal fields not shown */ }; /* Operation codes for 'aio_lio_opcode': */ enum { LIO_READ, LIO_WRITE, LIO_NOP };The fields of this structure are as follows:
In addition to the standard functions listed above, the GNU C library provides the following extension to the POSIX AIO API:
Simultaneous asynchronous read or write operations using the same aiocb structure yield undefined results.
The current Linux POSIX AIO implementation is provided in user space by glibc. This has a number of limitations, most notably that maintaining multiple threads to perform I/O operations is expensive and scales poorly. Work has been in progress for some time on a kernel state-machine-based implementation of asynchronous I/O (see io_submit(2), io_setup(2), io_cancel(2), io_destroy(2), io_getevents(2)), but this implementation hasn't yet matured to the point where the POSIX AIO implementation can be completely reimplemented using the kernel system calls.
The SIGQUIT signal (generated by typing control-\) causes the program to request cancellation of each of the outstanding requests using aio_cancel(3).
Here is an example of what we might see when running this program. In this example, the program queues two requests to standard input, and these are satisfied by two lines of input containing "abc" and "x".
$ ./a.out /dev/stdin /dev/stdin opened /dev/stdin on descriptor 3 opened /dev/stdin on descriptor 4 aio_error(): for request 0 (descriptor 3): In progress for request 1 (descriptor 4): In progress abc I/O completion signal received aio_error(): for request 0 (descriptor 3): I/O succeeded for request 1 (descriptor 4): In progress aio_error(): for request 1 (descriptor 4): In progress x I/O completion signal received aio_error(): for request 1 (descriptor 4): I/O succeeded All I/O requests completed aio_return(): for request 0 (descriptor 3): 4 for request 1 (descriptor 4): 2
#include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <errno.h> #include <aio.h> #include <signal.h> #define BUF_SIZE 20 /* Size of buffers for read operations */ #define errExit(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0) #define errMsg(msg) do { perror(msg); } while (0) struct ioRequest { /* Application-defined structure for tracking I/O requests */ int reqNum; int status; struct aiocb *aiocbp; }; static volatile sig_atomic_t gotSIGQUIT = 0; /* On delivery of SIGQUIT, we attempt to cancel all outstanding I/O requests */ static void /* Handler for SIGQUIT */ quitHandler(int sig) { gotSIGQUIT = 1; } #define IO_SIGNAL SIGUSR1 /* Signal used to notify I/O completion */ static void /* Handler for I/O completion signal */ aioSigHandler(int sig, siginfo_t *si, void *ucontext) { write(STDOUT_FILENO, "I/O completion signal received\n", 31); /* The corresponding ioRequest structure would be available as struct ioRequest *ioReq = si->si_value.sival_ptr; and the file descriptor would then be available via ioReq->aiocbp->aio_fildes */ } int main(int argc, char *argv[]) { struct ioRequest *ioList; struct aiocb *aiocbList; struct sigaction sa; int s, j; int numReqs; /* Total number of queued I/O requests */ int openReqs; /* Number of I/O requests still in progress */ if (argc < 2) { fprintf(stderr, "Usage: %s <pathname> <pathname>...\n", argv[0]); exit(EXIT_FAILURE); } numReqs = argc - 1; /* Allocate our arrays */ ioList = calloc(numReqs, sizeof(struct ioRequest)); if (ioList == NULL) errExit("calloc"); aiocbList = calloc(numReqs, sizeof(struct aiocb)); if (aiocbList == NULL) errExit("calloc"); /* Establish handlers for SIGQUIT and the I/O completion signal */ sa.sa_flags = SA_RESTART; sigemptyset(&sa.sa_mask); sa.sa_handler = quitHandler; if (sigaction(SIGQUIT, &sa, NULL) == -1) errExit("sigaction"); sa.sa_flags = SA_RESTART | SA_SIGINFO; sa.sa_sigaction = aioSigHandler; if (sigaction(IO_SIGNAL, &sa, NULL) == -1) errExit("sigaction"); /* Open each file specified on the command line, and queue a read request on the resulting file descriptor */ for (j = 0; j < numReqs; j++) { ioList[j].reqNum = j; ioList[j].status = EINPROGRESS; ioList[j].aiocbp = &aiocbList[j]; ioList[j].aiocbp->aio_fildes = open(argv[j + 1], O_RDONLY); if (ioList[j].aiocbp->aio_fildes == -1) errExit("open"); printf("opened %s on descriptor %d\n", argv[j + 1], ioList[j].aiocbp->aio_fildes); ioList[j].aiocbp->aio_buf = malloc(BUF_SIZE); if (ioList[j].aiocbp->aio_buf == NULL) errExit("malloc"); ioList[j].aiocbp->aio_nbytes = BUF_SIZE; ioList[j].aiocbp->aio_reqprio = 0; ioList[j].aiocbp->aio_offset = 0; ioList[j].aiocbp->aio_sigevent.sigev_notify = SIGEV_SIGNAL; ioList[j].aiocbp->aio_sigevent.sigev_signo = IO_SIGNAL; ioList[j].aiocbp->aio_sigevent.sigev_value.sival_ptr = &ioList[j]; s = aio_read(ioList[j].aiocbp); if (s == -1) errExit("aio_read"); } openReqs = numReqs; /* Loop, monitoring status of I/O requests */ while (openReqs > 0) { sleep(3); /* Delay between each monitoring step */ if (gotSIGQUIT) { /* On receipt of SIGQUIT, attempt to cancel each of the outstanding I/O requests, and display status returned from the cancellation requests */ printf("got SIGQUIT; canceling I/O requests: \n"); for (j = 0; j < numReqs; j++) { if (ioList[j].status == EINPROGRESS) { printf(" Request %d on descriptor %d:", j, ioList[j].aiocbp->aio_fildes); s = aio_cancel(ioList[j].aiocbp->aio_fildes, ioList[j].aiocbp); if (s == AIO_CANCELED) printf("I/O canceled\n"); else if (s == AIO_NOTCANCELED) printf("I/O not canceled\n"); else if (s == AIO_ALLDONE) printf("I/O all done\n"); else errMsg("aio_cancel"); } } gotSIGQUIT = 0; } /* Check the status of each I/O request that is still in progress */ printf("aio_error():\n"); for (j = 0; j < numReqs; j++) { if (ioList[j].status == EINPROGRESS) { printf(" for request %d (descriptor %d): ", j, ioList[j].aiocbp->aio_fildes); ioList[j].status = aio_error(ioList[j].aiocbp); switch (ioList[j].status) { case 0: printf("I/O succeeded\n"); break; case EINPROGRESS: printf("In progress\n"); break; case ECANCELED: printf("Canceled\n"); break; default: errMsg("aio_error"); break; } if (ioList[j].status != EINPROGRESS) openReqs--; } } } printf("All I/O requests completed\n"); /* Check status return of all I/O requests */ printf("aio_return():\n"); for (j = 0; j < numReqs; j++) { ssize_t s; s = aio_return(ioList[j].aiocbp); printf(" for request %d (descriptor %d): %zd\n", j, ioList[j].aiocbp->aio_fildes, s); } exit(EXIT_SUCCESS); }


Home
|
Current Cart (0)
|
Edit Profile
|
Logout
Listing products
Code
Name
Price
OR1
Orange
£0.29
BR1
Bread
£1.00
MK1
Milk
£0.90
SG1
Shower Gel
£1.19


NEWS.md
New CRAN submission with minor fix to fail gracefully with informative message if internet resources (github) is nos available
New CRAN submission:
get_grid()
, show_arg_codes()
, recode_grid()
, get_geo()
, map_results()
New computations: compute_concentration()
, compute_seats()
, compute_disproportion()
Agu 17, 2020: dev version
show_available_bills()
to explore data
plot_bill()
to quickly visualize voting totals
get_bill_votes()
to download invividual voting records
Jul 31, 2020: dev version
Add ‘level’ parameter to get_multiple_elections()
function
Add new computation function for electoral data workflow: compute_concentration()
Fixed map_results()
: need to ungroup when using sf::st_as_sf()
function.
Add get_geo()
function to get gis
Add {geofaceteAR}
functions as {polAr}
native functions:
Jul 26, 2020: dev version
Add new computation function compute_disproportion()
with 4 alternative formulas.
Fix minor bug:
Modify dims check in compute_seats()
to allow computing whether the names of parties have been added explicitly with get_names()
or not
Add party id variable in compute_seats()
output. This allows compute_disproportion()
computation workflow.
Jul 5, 2020: dev version
get_multiple_elections()
helps downloading multiple elections data with only one call.
compute_seats()
assigns the expected number of seats that a party should get bases on it´s votes.
exploring data with show_available_speech()
downloading data with get_speech()
visualize data with plot_speech()
May 26, 2020: dev version
Add first version of map_results()
function to visualize election data in geographical format with polygons as geometry.
Minor fix in geofacet
plots (aspect.ratio
inside ggplot2::theme()
).
Simplify visualization workflow adding get_names()
helper function explicitly inside plot_results()
, map_results()
and tabulate_results()
functions.
May 9, 2020: resubmitting whith reviewer changes requests
Add “cph” to Authors@R in DESCRIPTION
Fix tabulate_results()
output removing it´s printing to console step and keeping it as an object
Added minimal examples for functions and improved their documentation in Rd files