This document is also available in this non-normative format: Diff from previous Editors Draft .
This
Copyright
©
2010-2011
W3C
®
(
MIT
,
ERCIM
,
Keio
),
All
Rights
Reserved.
W3C
liability
,
trademark
and
document
is
licensed
under
a
Creative
Commons
Attribution
3.0
License
.
use
rules
apply.
Social networking, identity and privacy have been at the center of how we interact with the Web in the last decade. The explosion of social networking sites has brought the world closer together as well as created new points of pain regarding ease of use and the Web. Remembering login details, passwords, and sharing private information across the many websites and social groups that we are a part of has become more difficult and complicated than necessary. The Social Web is designed to ensure that control of identity and privacy settings is always simple and under one's control. WebID is a key enabler of the Social Web. This specification outlines a simple universal identification mechanism that is distributed, openly extensible, improves privacy, security and control over how one can identify themselves and control access to their information on the Web.
There are a number of concepts that are covered in this document that the reader may want to be aware of before continuing. General knowledge of public key cryptography and RDF [ RDF-PRIMER ] and RDFa [ RDFA-CORE ] is necessary to understand how to implement this specification. WebID uses a number of specific technologies like HTTP over TLS [ HTTP-TLS ], X.509 certificates [ X509V3 ], RDF/XML [ RDF-SYNTAX-GRAMMAR ] and XHTML+RDFa [ XHTML-RDFA ].
A general Introduction is provided for all that would like to understand why this specification is necessary to simplify usage of the Web.
The terms used throughout this specification are listed in the section titled Terminology .
Developers that are interested in implementing this specification will be most interested in the sections titled Authentication Sequence and Authentication Sequence Details .
This
section
describes
the
status
of
this
document
is
merely
a
public
working
draft
at
the
time
of
a
potential
specification.
It
has
no
official
standing
its
publication.
Other
documents
may
supersede
this
document.
A
list
of
any
kind
current
W3C
publications
and
does
not
represent
the
support
or
consensus
latest
revision
of
any
standards
organisation.
this
technical
report
can
be
found
in
the
W3C
technical
reports
index
at
http://www.w3.org/TR/.
This document was published by the WebID XG as an Editor's Draft. If you wish to make comments regarding this document, please send them to<EMAIL_ADDRESS>( subscribe , archives ). All feedback is welcome.
Publication as a Editor's Draft does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.
This document was produced by a group operating under the 5 February 2004 W3C Patent Policy . W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy .
This section is non-normative.
The WebID specification is designed to help alleviate the difficultly that remembering different logins, passwords and settings for websites has created. It is also designed to provide a universal and extensible mechanism to express public and private information about yourself. This section outlines the motivation behind the specification and the relationship to other similar specifications that are in active use today.
This section is non-normative.
It is a fundamental design criteria of the Web to enable individuals and organizations to control how they interact with the rest of society. This includes how one expresses their identity, public information and personal details to social networks, Web sites and services.
Semantic Web vocabularies such as Friend-of-a-Friend (FOAF) permit distributed hyperlinked social networks to exist. This vocabulary, along with other vocabularies, allow one to add information and services protection to distributed social networks.
One major criticism of open networks is that they seem to have no way of protecting the personal information distributed on the web or limiting access to resources. Few people are willing to make all their personal information public, many would like large pieces to be protected, making it available only to a selected group of agents. Giving access to information is very similar to giving access to services. There are many occasions when people would like services to only be accessible to members of a group, such as allowing only friends, family members, colleagues to post an article, photo or comment on a blog. How does one do this in a flexible way, without requiring a central point of access control?
Using
a
process
made
popular
by
OpenID,
we
show
how
one
can
tie
a
User
Agent
to
a
URI
by
proving
that
one
has
write
access
to
the
URI.
WebID
is
an
authentication
protocol
which
uses
X.509
certificates
to
associate
a
User
Agent
(Browser)
to
a
Person
identified
via
a
URI.
A
WebID
is
compatible
with
OpenID
and
profile
can
also
be
used
for
OpenID,
WebId
provides
a
few
additional
features
such
as
trust
management
via
digital
signatures,
and
free-form
extensibility
via
RDF.
By
using
the
existing
SSL
certificate
exchange
mechanism,
WebID
integrates
smoothly
with
existing
Web
browsers,
including
browsers
on
mobile
devices.
WebID
also
permits
automated
session
login
in
addition
to
interactive
session
login.
Additionally,
all
data
is
encrypted
and
guaranteed
to
only
be
received
by
the
person
or
organization
that
was
intended
to
receive
it.
Subject
Alternative
Name
extension
with
Subject
Alternative
Name
:
X509v3 extensions:
...
X509v3 Subject Alternative Name:
URI:http://example.org/webid#public
http://example.org/webid#public
would
contain
the
following:
X509v3 extensions: ... X509v3 Subject Alternative Name: URI:http://example.org/webid#public
TODO: cover the case where there are more than one URI entry
Subject
Alternative
Name
extension
of
the
Identification
Certificate
that
identifies
an
Identification
Agent
.
Whether or not RDF/XML, XHTML+RDFa 1.1, both or neither serialization of RDF should be required serialization formats in the specification is currently under heavy debate.
The
user
agent
will
create
a
Identification
Certificate
with
a
Subject
Alternative
Name
URI
entry.
This
URI
must
be
one
that
dereferences
to
a
document
the
user
controls
so
that
he
can
publish
the
public
key
of
the
Identification
Certificate
at
this
URI.
For
example,
if
a
user
Joe
controls
http://joe.example/profile
,
then
his
WebID
can
be
http://joe.example/profile#me
explain why the WebID URI is different from the URI of the WebID profile document.
As an example to use throughout this specification here is the following certificate as an output of the openssl program.
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
5f:df:d6:be:2c:73:c1:fb:aa:2a:2d:23:a6:91:3b:5c
Signature Algorithm: sha1WithRSAEncryption
O=FOAF+SSL, OU=The Community of Self Signers, CN=Not a Certification Authority
Validity
Not Before: Jun 8 14:16:14 2010 GMT
Not After : Jun 8 16:16:14 2010 GMT
O=FOAF+SSL, OU=The Community Of Self Signers/UID=https://example.org/profile#me, CN=Joe (Personal)
Subject Public Key Info:
rsaEncryption
(2048 bit)
00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac:
c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e:
07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03:
98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca:
2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7:
ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4:
94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78:
dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43:
e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26:
2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80:
f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97:
5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b:
75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0:
14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc:
72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6:
71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49:
3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13:
91:a1
65537 (0x10001)
X509v3 extensions:
X509v3 Basic Constraints: critical
CA:FALSE
X509v3 Key Usage: critical
Digital Signature, Non Repudiation, Key Encipherment, Key Agreement, Certificate Sign
Netscape Cert Type:
SSL Client, S/MIME
X509v3 Subject Key Identifier:
08:8E:A5:5B:AE:5D:C3:8B:00:B7:30:62:65:2A:5A:F5:D2:E9:00:FA
critical
https://joe.example/profile#me
Signature Algorithm: sha1WithRSAEncryption
cf:8c:f8:7b:b2:af:63:f0:0e:dc:64:22:e5:8a:ba:03:1e:f1:
ee:6f:2c:f5:f5:10:ad:4c:54:fc:49:2b:e1:0d:cd:be:3d:7c:
78:66:c8:ae:42:9d:75:9f:2c:29:71:91:5c:29:5b:96:ea:e1:
e4:ef:0e:5c:f7:07:a0:1e:9c:bf:50:ca:21:e6:6c:c3:df:64:
29:6b:d3:8a:bd:49:e8:72:39:dd:07:07:94:ac:d5:ec:85:b1:
a0:5c:c0:08:d3:28:2a:e6:be:ad:88:5e:2a:40:64:59:e7:f2:
45:0c:b9:48:c0:fd:ac:bc:fb:1b:c9:e0:1c:01:18:5e:44:bb:
d8:b8
Certificate: Data: Version: 3 (0x2) Serial Number: 5f:df:d6:be:2c:73:c1:fb:aa:2a:2d:23:a6:91:3b:5c Signature Algorithm: sha1WithRSAEncryption Issuer: O=FOAF+SSL, OU=The Community of Self Signers, CN=Not a Certification Authority Validity Not Before: Jun 8 14:16:14 2010 GMT Not After : Jun 8 16:16:14 2010 GMT Subject: O=FOAF+SSL, OU=The Community Of Self Signers/UID=https://example.org/profile#me, CN=Joe (Personal) Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac: c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e: 07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03: 98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca: 2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7: ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4: 94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78: dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43: e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26: 2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80: f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97: 5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b: 75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0: 14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc: 72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6: 71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49: 3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13: 91:a1 Exponent: 65537 (0x10001) X509v3 extensions: X509v3 Basic Constraints: critical CA:FALSE X509v3 Key Usage: critical Digital Signature, Non Repudiation, Key Encipherment, Key Agreement, Certificate Sign Netscape Cert Type: SSL Client, S/MIME X509v3 Subject Key Identifier: 08:8E:A5:5B:AE:5D:C3:8B:00:B7:30:62:65:2A:5A:F5:D2:E9:00:FA X509v3 Subject Alternative Name: critical URI:https://joe.example/profile#me Signature Algorithm: sha1WithRSAEncryption cf:8c:f8:7b:b2:af:63:f0:0e:dc:64:22:e5:8a:ba:03:1e:f1: ee:6f:2c:f5:f5:10:ad:4c:54:fc:49:2b:e1:0d:cd:be:3d:7c: 78:66:c8:ae:42:9d:75:9f:2c:29:71:91:5c:29:5b:96:ea:e1: e4:ef:0e:5c:f7:07:a0:1e:9c:bf:50:ca:21:e6:6c:c3:df:64: 29:6b:d3:8a:bd:49:e8:72:39:dd:07:07:94:ac:d5:ec:85:b1: a0:5c:c0:08:d3:28:2a:e6:be:ad:88:5e:2a:40:64:59:e7:f2: 45:0c:b9:48:c0:fd:ac:bc:fb:1b:c9:e0:1c:01:18:5e:44:bb: d8:b8
Should we formally require the Issuer to be O=FOAF+SSL, OU=The Community of Self Signers, CN=Not a Certification Authority. This was discussed on the list as allowing servers to distinguish certificates that are foaf+Ssl enabled from others. Will probably need some very deep TLS thinking to get this right.
discuss the importance for UIs of the CN
The above certificate is no longer valid, as I took an valid certificate and change the time and WebID. As a result the Signatiure is now false. A completely valid certificate should be generated to avoid nit-pickers picking nits
The
WebID
Profile
document
must
expose
the
relation
between
the
WebID
URI
and
the
Identification
Agent
's
public
key
s
using
the
cert
and
rsa
ontologies,
as
well
as
the
cert
or
xsd
datatypes.
The
set
of
relations
to
be
published
at
the
WebID
Profile
document
can
be
presented
in
a
graphical
notation
as
follows.
The document can publish many more relations than are of interest to the WebID protocol, as shown in the above graph by the grayed out relations.
The encoding of this graph is immaterial to the protocol, so long as a well known mapping to the format of the representation to such a graph can be found. Below we discuss the most well known formats, and a method for dealing with new unknown formats as they come along.
The WebID provider must publish the graph of relations in one of the well known formats, though he may publish it in a number of formats to increase the useabulity of his site using Content Negotations.
Add content negoatiation pointers
It is particularly useful to have one of the representations be in HTML or XHTML even if it is not marked up in RDFa as this allows people using a web browser to understand what the information at that URI represents.
A widely used format for writing RDF graphs is the Turtle notation.
@prefix cert: <http://www.w3.org/ns/auth/cert#> .
@prefix rsa: <http://www.w3.org/ns/auth/rsa#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix : <https://joe.example/profile#> .
:me a foaf:Person;
foaf:name "Joe" .
[] a rsa:RSAPublicKey;
rsa:modulus """
00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac:
c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e:
07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03:
98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca:
2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7:
ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4:
94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78:
dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43:
e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26:
2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80:
f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97:
5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b:
75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0:
14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc:
72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6:
71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49:
3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13:
91:a1
"""^^cert:hex;
rsa:public_exponent "65537"^^cert:int;
cert:identity :me .
@prefix cert: <http://www.w3.org/ns/auth/cert#> . @prefix rsa: <http://www.w3.org/ns/auth/rsa#> . @prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix : <https://joe.example/profile#> . :me a foaf:Person; foaf:name "Joe" . [] a rsa:RSAPublicKey; rsa:modulus """ 00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac: c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e: 07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03: 98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca: 2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7: ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4: 94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78: dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43: e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26: 2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80: f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97: 5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b: 75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0: 14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc: 72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6: 71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49: 3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13: 91:a1 """^^cert:hex; rsa:public_exponent "65537"^^cert:int; cert:identity :me .
There are many ways of writing out the above graph using RDFa in html. Here is just one example.

My RSA Public Key

WebId

http://joe.example/profile#me

Modulus (hexadecimal)

00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac:
c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e:
07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03:
98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca:
2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7:
ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4:
94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78:
dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43:
e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26:
2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80:
f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97:
5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b:
75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0:
14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc:
72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6:
71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49:
3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13:
91:a1

Exponent (decimal)

65537

My RSA Public Key

WebId

http://joe.example/profile#me

Modulus (hexadecimal)

 00:cb:24:ed:85:d6:4d:79:4b:69:c7:01:c1:86:ac: c0:59:50:1e:85:60:00:f6:61:c9:32:04:d8:38:0e: 07:19:1c:5c:8b:36:8d:2a:c3:2a:42:8a:cb:97:03: 98:66:43:68:dc:2a:86:73:20:22:0f:75:5e:99:ca: 2e:ec:da:e6:2e:8d:15:fb:58:e1:b7:6a:e5:9c:b7: ac:e8:83:83:94:d5:9e:72:50:b4:49:17:6e:51:a4: 94:95:1a:1c:36:6c:62:17:d8:76:8d:68:2d:de:78: dd:4d:55:e6:13:f8:83:9c:f2:75:d4:c8:40:37:43: e7:86:26:01:f3:c4:9a:63:66:e1:2b:b8:f4:98:26: 2c:3c:77:de:19:bc:e4:0b:32:f8:9a:e6:2c:37:80: f5:b6:27:5b:e3:37:e2:b3:15:3a:e2:ba:72:a9:97: 5a:e7:1a:b7:24:64:94:97:06:6b:66:0f:cf:77:4b: 75:43:d9:80:95:2d:2e:85:86:20:0e:da:41:58:b0: 14:e7:54:65:d9:1e:cf:93:ef:c7:ac:17:0c:11:fc: 72:46:fc:6d:ed:79:c3:77:80:00:0a:c4:e0:79:f6: 71:fd:4f:20:7a:d7:70:80:9e:0e:2d:7b:0e:f5:49: 3b:ef:e7:35:44:d8:e1:be:3d:dd:b5:24:55:c6:13: 91:a1

Exponent (decimal)

65537

If
a
WebId
provider
would
rather
prefer
not
to
mark
up
his
data
in
RDFa,
but
just
provide
a
human
readable
format
for
users
and
have
the
RDF
graph
appear
in
a
machine
readable
format
such
as
RDF/XML
then
he
should
may
publish
the
link
from
the
HTML
to
the
a
machine
readable
format
(it
this
is
available
at
a
dedicated
URI)
as
follows:

<link type="rel" type="application/rdf+xml" href="profile.rdf"/>

 ...

  <link type="rel" type="application/rdf+xml" href="profile.rdf"/>   ...
RDF/XML is easy to generate automatically from structured data, be it in object notiation or in relational databases. Parsers for it are also widely available.
TODO: the dsa ontology
TODO: discuss other formats and GRDDL, XSPARQL options for xml formats
summarize and point to content negotiation documents
The following steps are executed by Verification Agent s and Identification Agent s to determine the global identity of the requesting agent. Once this is known, the identity can be used to determine if access should be granted to the requested resource.
Subject
Alternative
Name
extension
of
the
Identification
Certificate
.
The Identification Agent may re-establish a different identity at any time by executing all of the steps in the Authentication Sequence again. Additional algorithms, detailed in the next section, may be performed to determine if the Verification Agent can access a particular resource after the last step of the Authentication Sequence has been completed.
This section covers details about each step in the authentication process.
This section will detail how the TLS connection process is started and used by WebID to create a secure channel between the Identification Agent and the Verification Agent.
This section will detail how the certificate is selected and sent to the Verification Agent.
A
Verification
Agent
must
be
able
to
process
documents
in
RDF/XML
[
RDF-SYNTAX-GRAMMAR
]
and
XHTML+RDFa
[
XHTML-RDFA
].
A
server
responding
to
a
WebID
Profile
request
should
be
able
to
deliver
at
least
RDF/XML
or
RDFa.
The
Verification
Agent
must
set
the
Accept-Header
to
request
application/rdf+xml
with
a
higher
priority
than
text/html
and
application/xhtml+xml
.
If
the
server
answers
such
a
request
with
an
HTML
representation
of
the
resource,
this
should
describe
the
WebId
Profile
with
RDFa.
This section will explain how a Verification Agent extracts semantic data describing the identification credentials from a WebID Profile.
The
Verification
Agent
must
There
are
number
of
different
ways
to
check
that
the
WebID
Profile
associates
the
WebID
with
the
public
key
given
in
the
X.509
Certificate.
There
are
number
of
ways
of
doing
this,
each
of
which
essentially
consists
in
certificate
against
the
one
provided
by
the
WebID
Profile
or
another
trusted
source,
the
essence
is
checking
that
the
graph
of
relations
in
the
Profile
contain
contains
a
pattern
of
relations.
Assuming
the
public
key
is
an
RSA
key,
and
that
its
modulus
is
"9D79BFE2498..."
and
exponent
"65537"
then
the
following
SPARQL
query
to
ask
the
graph
is
could
be
used:
PREFIX cert: <http://www.w3.org/ns/auth/cert#> PREFIX rsa: <http://www.w3.org/ns/auth/rsa#> ASK { [] cert:identity <http://example.org/webid#public>; rsa:modulus "9D79BFE2498..."^^cert:hex; rsa:public_exponent "65537"^^cert:int . }
If the query returns true, then the graph has validated the associated public key with the WebID.
The
above
requires
the
graph
sparql
endpoint
(or
the
underlying
triple
store
to
be
able
to
do
inferencing
on
dataytypes.
This
is
because
people
the
numerical
values
may
publish
their
modulus
string
in
a
number
of
syntactical
ways.
be
expressed
with
different
xsd
and
cert
datatypes
which
must
all
be
supported
by
VerificationAgent
s.
The
modulus
can
cert
datatypes
allow
the
numerical
expression
to
be
colon
seperated,
spread
over
a
number
of
lines,
or
contain
arbitrary
non
hex
characters
such
as
"9D
☮
79
☮
BF
☮
E2
☮
F4
☮
98
☮..."
.
The
datatype
itself
need
not
necessarily
be
expressed
in
cert:hex,
but
could
use
a
number
of
xsd
integer
datatype
notations,
cert:int
or
future
base64
notations.
Should we define the base64 notation?
If
a
Verifying
Agent
does
not
have
access
to
the
SPARQL
endpoint
doesn't
provide
a
literal
inferencing
engine,
then
the
modulus
should
be
extracted
from
the
graph,
normalised
into
a
big
integer
(integers
without
an
upper
bound),
and
compared
with
the
values
given
in
the
public
key
certificate.
After
replacing
the
?webid
variable
in
the
following
query
with
the
required
value
the
Verifying
Agent
can
query
the
Profile
Graph
with
PREFIX cert: <http://www.w3.org/ns/auth/cert#> PREFIX rsa: <http://www.w3.org/ns/auth/rsa#> SELECT ?m ?e WHERE { [] cert:identity ?webid ; rsa:modulus ?m ; rsa:public_exponent ?e . }
Here the verification agent must check that one of the answers for ?m and ?e matches the integer values of the modulus and exponent given in the public key in the certificate.
The public key could be a DSA key. We need to add an ontology for DSA too. What other cryptographic ontologies should we add?
This section will explain how an Identification Agent and a Verification Agent may communicate securely using a set of verified identification credentials.
If the Verification Agent has verified that the WebID Profile is owned by the Identification Agent , the Verification Agent should use the verified public key contained in the Identification Certificate for all TLS-based communication with the Identification Agent . This ensures that both the Verification Agent and the Identification Agent are communicating in a secure manner, ensuring cryptographically protected privacy for both sides.
The WebID Profile is a structured document that contains identification credentials for the Identification Agent expressed using the Resource Description Framework [ RDF-CONCEPTS ]. The following sections describe how to express certain common properties that could be used by Verification Agent s and other entities that consume a WebID Profile .
The following vocabularies are used in their shortened form in the subsequent sections:
Personal details are the most common requirement when registering an account with a website. Some of these pieces of information include an e-mail address, a name and perhaps an avatar image. This section includes properties that should be used when conveying key pieces of personal information but are not required to be present in a WebID Profile :
Cryptographic details are important when Verification Agent s and Identification Agent s interact. The following properties should be used when conveying cryptographic information in WebID Profile documents:
This section is non-normative.
2011-02-10 Move to W3C WebID XG . Updates from previous unofficial WebID group include changes on RDF/XML publishing in HTML, clarification on multiple SAN URIs and WebID verification steps.
2010-08-09 Updates from WebID community: moved OpenID/OAuth sections to separate document, switched to the URI terminology instead of URL, added "Creating the certificate" and "Publishing the WebID Profile document" sections with a WebID graph and serializations in Turtle and RDFa, improved SPARQL queries using literal notation with cert datatypes, updated list of contributors, and many other fixes.
2010-07-25 Added WebID Profile section.
2010-07-18 Updates from WebID community related to RDF/XML support, authentication sequence corrections, abstract and introduction updates.
2010-07-11 Initial version.
This section is non-normative.
The following people have been instrumental in providing thoughts, feedback, reviews, criticism and input in the creation of this specification:


Module Vectors
Functions for vector math.
Vector
is a LUA class, that provides essential functions for calculating
with vectors.
#include !/vectors/vector
Since vector is a class, all methods need to be called with a colon instead of a dot.
local v = Vector:new()
Vectors returned by Tabletop Simulator functions can be cast to Vector
objects.
local v = Vector:new(o.getPosition())
And Vector
objects can be used as input for Tabletop Simulator functions.
o.setPosition(v)
The class provides operators for equality (==), addition (+), and subtraction (-).
local v = v1 + v2
Functions
| Vector:add (v) | Adds a vector to this vector. |
| Vector:angle (v) | Returns the angle between this vector and another in radians. |
| Vector:cross (v) | Returns the cross product bewteen this vector and another. |
| Vector:distance (v) | Returns the distance between this vector and another. |
| Vector:dot (v) | Returns the dot product bewteen this vector and another. |
| Vector:length () | Returns the length of the vector. |
| Vector:multiply (val) | Multiplys this vector with a number. |
| Vector:new (o) | Constructor for Vector class. |
| Vector:normalize () | Normalizes the vector. |
| Vector:subtract (v) | Subtracts a vector from this vector. |
Functions
- Vector:add (v)
-
Adds a vector to this vector.
The value of this vector is changed.
Parameters:
- v Another vector.
- Vector:angle (v)
-
Returns the angle between this vector and another in radians.
Parameters:
- v Another vector.
Returns:
-
Angle in radians.
- Vector:cross (v)
-
Returns the cross product bewteen this vector and another.
Parameters:
- v Another vector.
Returns:
-
A new vector.
- Vector:distance (v)
-
Returns the distance between this vector and another.
Parameters:
- v Another vector.
Returns:
-
Distance as float.
- Vector:dot (v)
-
Returns the dot product bewteen this vector and another.
Parameters:
- v Another vector.
Returns:
-
Dot product as a float.
- Vector:length ()
-
Returns the length of the vector.
Returns:
-
Length as a float.
- Vector:multiply (val)
-
Multiplys this vector with a number.
This changes the length of the vector.
The value of this vector is changed.
Parameters:
- val A number.
- Vector:new (o)
-
Constructor for Vector class.
Creates an object of type Vector. You have to use this, before you can
call any other function.
Parameters:
- o Converts a table containng the keys x, y and z into a Vector. The result is still the same object.
- Vector:normalize ()
-
Normalizes the vector.
Returns a new vector with the same direction but length 1.
Returns:
-
A new Vector.
- Vector:subtract (v)
-
Subtracts a vector from this vector.
The value of this vector is changed.
Parameters:
- v Another vector.


Hello
bikebbq
Log Out
Home
Visits
Reports
Settings
Redlands BikeBBQ
Adrian Solis
:
Services
: New
Service type
Membership
Earn a Bike/Digging Rights
Class
Start date
End date
Paid
Volunteered
Note


EQ can be said that a person with high EQ is able to read the room. It is their ability to identify emotions from themselves and others and being able to use that information to improve a situation. Emotional intelligence is about being empathetic to other feelings and being able to communicate well with others.
IQ can be said that a person with high IQ usually the smartest person in the room. It is their ability to use logical reasoning and knowledge they have gained to solve their problems.
The importance of having EQ is that with high EQ you can build good relationships and create a positive environment for people to be around. This can be seen in most iteration of Sherlock Holmes in which Sherlock has very high IQ and Watson his dear friend has very high EQ. This is a great balance as Sherlock can come off as an intellectual snob which witnesses would have a hard time talking too. This means he might not be able to gain vital information to solve the case, but as he has Watson who is able to communicate well and empathise with the witnesses, that a safe environment will be created for the witness to give more information. This information would then help Sherlock solve the case.


--- title: "Hyperparameter Tuning" output: rmarkdown::html_vignette: default vignette: > %\VignetteIndexEntry{Hyperparameter Tuning} %\VignetteEngine{knitr::rmarkdown} %\VignetteEncoding{UTF-8} type: docs repo: https://github.com/rstudio/tfruns menu: main: name: "Hyperparameter Tuning" identifier: "tools-tfruns-tuning" parent: "tfruns-top" weight: 20 aliases: - /tools/tfruns/articles/tuning.html ---
Tuning a model often requires exploring the impact of changes to many hyperparameters. The best way to approach this is generally not by changing the source code of the training script as we did above, but instead by defining flags for key parameters then training over the combinations of those flags to determine which combination of flags yields the best model.
Here’s a declaration of 2 flags that control dropout rate within a model:
flag_numeric("dropout1", 0.4), flag_numeric("dropout2", 0.3)These flags are then used in the definition of the model here:
model %>% layer_dense(units = 128, activation = 'relu', input_shape = c(784)) %>% layer_dropout(rate = FLAGS$dropout1) %>% layer_dense(units = 128, activation = 'relu') %>% layer_dropout(rate = FLAGS$dropout2) %>%Once we’ve defined flags, we can pass alternate flag values to training_run()
as follows:
You aren’t required to specify all of the flags (any flags excluded will simply use their default value).
Flags make it very straightforward to systematically explore the impact of changes to hyperparameters on model performance, for example:
Flag values are automatically included in run data with a “flag_” prefix (e.g. flag_dropout1
, flag_dropout2
).
See the article on training flags for additional documentation on using flags.
Above we demonstrated writing a loop to call training_run()
with various different flag values. A better way to accomplish this is the tuning_run()
function, which allows you to specify multiple values for each flag, and executes training runs for all combinations of the specified flags. For example:
Data frame: 9 x 28
run_dir eval_loss eval_acc metric_loss metric_acc metric_val_loss metric_val_acc
9 runs/2018-01-26T13-21-03Z 0.1002 0.9817 0.0346 0.9900 0.1086 0.9794
6 runs/2018-01-26T13-23-26Z 0.1133 0.9799 0.0409 0.9880 0.1236 0.9778
5 runs/2018-01-26T13-24-11Z 0.1056 0.9796 0.0613 0.9826 0.1119 0.9777
4 runs/2018-01-26T13-24-57Z 0.1098 0.9788 0.0868 0.9770 0.1071 0.9771
2 runs/2018-01-26T13-26-28Z 0.1185 0.9783 0.0688 0.9819 0.1150 0.9783
3 runs/2018-01-26T13-25-43Z 0.1238 0.9782 0.0431 0.9883 0.1246 0.9779
8 runs/2018-01-26T13-21-53Z 0.1064 0.9781 0.0539 0.9843 0.1086 0.9795
7 runs/2018-01-26T13-22-40Z 0.1043 0.9778 0.0796 0.9772 0.1094 0.9777
1 runs/2018-01-26T13-27-14Z 0.1330 0.9769 0.0957 0.9744 0.1304 0.9751
# ... with 21 more columns:
# flag_batch_size, flag_dropout1, flag_dropout2, samples, validation_samples, batch_size,
# epochs, epochs_completed, metrics, model, loss_function, optimizer, learning_rate, script,
# start, end, completed, output, source_code, context, type
Note that the tuning_run()
function returns a data frame containing a summary of all of the executed training runs.
By default all runs go into the “runs” sub-directory of the current working directory. For various types of ad-hoc experimentation this works well, but in some cases for a tuning run you may want to create a separate directory scope.
You can do this by specifying the runs_dir
argument:
Data frame: 9 x 28
run_dir eval_acc eval_loss metric_loss metric_acc metric_val_loss metric_val_acc
9 dropout_tuning/2018-01-26T13-38-02Z 0.9803 0.0980 0.0324 0.9902 0.1096 0.9789
6 dropout_tuning/2018-01-26T13-40-40Z 0.9795 0.1243 0.0396 0.9885 0.1341 0.9784
2 dropout_tuning/2018-01-26T13-43-55Z 0.9791 0.1138 0.0725 0.9813 0.1205 0.9773
7 dropout_tuning/2018-01-26T13-39-49Z 0.9786 0.1027 0.0796 0.9778 0.1053 0.9761
3 dropout_tuning/2018-01-26T13-43-08Z 0.9784 0.1206 0.0479 0.9871 0.1246 0.9775
4 dropout_tuning/2018-01-26T13-42-21Z 0.9784 0.1026 0.0869 0.9766 0.1108 0.9769
5 dropout_tuning/2018-01-26T13-41-31Z 0.9783 0.1086 0.0589 0.9832 0.1216 0.9764
8 dropout_tuning/2018-01-26T13-38-57Z 0.9780 0.1007 0.0511 0.9855 0.1100 0.9771
1 dropout_tuning/2018-01-26T13-44-41Z 0.9770 0.1178 0.1017 0.9734 0.1244 0.9757
# ... with 21 more columns:
# flag_batch_size, flag_dropout1, flag_dropout2, samples, validation_samples, batch_size, epochs,
# epochs_completed, metrics, model, loss_function, optimizer, learning_rate, script, start, end,
# completed, output, source_code, context, type
If the number of flag combinations is very large, you can also specify that only a random sample of combinations should be tried using the sample
parmaeter. For example:


Next: cerror, Previous: assert, Up: Conditions Dictionary
error
datum &rest arguments
⇒ #<NoValue>
datum, arguments—designators for a condition of default type simple-error.
error effectively invokes signal on the denoted condition.
If the condition is not handled, (invoke-debugger condition) is done. As a consequence of calling invoke-debugger, error cannot directly return; the only exit from error can come by non-local transfer of control in a handler or by use of an interactive debugging command.
(defun factorial (x) (cond ((or (not (typep x 'integer)) (minusp x)) (error "~S is not a valid argument to FACTORIAL." x)) ((zerop x) 1) (t (* x (factorial (- x 1)))))) ⇒ FACTORIAL (factorial 20) ⇒<PHONE_NUMBER>176640000 (factorial -1) |> Error: -1 is not a valid argument to FACTORIAL. |> To continue, type :CONTINUE followed by an option number: |> 1: Return to Lisp Toplevel. |> Debug>
(setq a 'fred) ⇒ FRED (if (numberp a) (1+ a) (error "~S is not a number." A)) |> Error: FRED is not a number. |> To continue, type :CONTINUE followed by an option number: |> 1: Return to Lisp Toplevel. |> Debug> |>>:Continue 1<<| |> Return to Lisp Toplevel. (define-condition not-a-number (error) ((argument :reader not-a-number-argument :initarg :argument)) (:report (lambda (condition stream) (format stream "~S is not a number." (not-a-number-argument condition))))) ⇒ NOT-A-NUMBER (if (numberp a) (1+ a) (error 'not-a-number :argument a)) |> Error: FRED is not a number. |> To continue, type :CONTINUE followed by an option number: |> 1: Return to Lisp Toplevel. |> Debug> |>>:Continue 1<<| |> Return to Lisp Toplevel.
Handlers for the specified condition, if any, are invoked and might have side effects. Program execution might stop, and the debugger might be entered.
Existing handler bindings.
Signals an error of type type-error if datum and arguments are not designators for a condition.
cerror, signal, format, ignore-errors, *break-on-signals*, handler-bind, Condition System Concepts
Some implementations may provide debugger commands for interactively returning from individual stack frames. However, it should be possible for the programmer to feel confident about writing code like:
(defun wargames:no-win-scenario () (if (error "pushing the button would be stupid.")) (push-the-button))
In this scenario, there should be no chance that error will return and the button will get pushed.
While the meaning of this program is clear and it might be proven ‘safe’ by a formal theorem prover, such a proof is no guarantee that the program is safe to execute. Compilers have been known to have bugs, computers to have signal glitches, and human beings to manually intervene in ways that are not always possible to predict. Those kinds of errors, while beyond the scope of the condition system to formally model, are not beyond the scope of things that should seriously be considered when writing code that could have the kinds of sweeping effects hinted at by this example.
Next: cerror, Previous: assert, Up: Conditions Dictionary


Buy Now, Pay Later
Why do Canadians between 18-35 choose to defer online payments using BNPL?
Background
During my internship at RBC, I worked with 2 other design research interns on the Mobile and I Want a Home journey teams to investigate Buy Now, Pay Later - an emerging alternative form of credit.
Buy Now, Pay Later is an increasingly popular method for online and in-store purchases in instalments,
growing by 41.1% in 2021. The combination of an interest-free loan with no credit impact is especially popular with younger consumers who are more wary of conventional credit.
Methodology
To understand why people choose to defer payments, a multi-method approach aimed at diverging and then converging was chosen. Across all methods recruiting focused on our primary demography (Canadians ages 18-35) but included a mix of those who; currently use, had previously used, had not used and those who were open to BNPL.
My Role
Working alongside my fellow design researchers and with supervision and guidance from senior design researchers at RBC:
- Oversaw and co-ordinated participant recruitment
- Collaborated on creation of the discussion guide
- Lead moderator for interviews
- Co-analysis and synthesis of all insights
- Presentation of insights to relevant stakeholders
Research Process
- Literature review and stakeholder interviews with those working on BNPL initiatives at RBC. This helped to shape the research question and informed what methods would be best suited to understand the problem.
- Surveys (the what) uncovered what consumers were using BNPL for e.g. average spend, type of purchase.
- Unmoderated experiments were used to test stakeholders' assumptions that BNPL users had little credit literacy and did not understand what they were getting themselves into. Users were presented with a chart that progressively disclosed information about the potential credit impacts of different BNPL providers and asked which provider they preferred and why.
- Moderated interviews (the why) were required to better understand the context gained from the surveys and unmoderated experiments. Interview design was informed by the JTBD method where pull, push, inertia, and anxiety factors of users are investigated to understand why they made this decision. Since traditional credit is the default online payment option, using the JTBD method helped me investigate how early adopters of a new payment technology made this change. Interviews focused on:
- Financial and behavioural context behind purchases
- Why people use BNPL and the factors that influence this decision.
Key Findings
Our research found that people chose to use BNPL in order to:
- Take advantage of interest-free payments without relying on conventional credit,
- Flexibility in spreading out large transactions
- Have the instant gratification of purchasing items they may not be able to pay for in full immediately.
Use BNPL to take advantage of interest-free payments on big purchases like furniture which were planned in advance.
Use BNPL for impulse purchases and as an alternative to credit when credit availability was low.
Outcomes
The results of this research were presented at an RBC wide research jam and shared with internal stakeholders to influence future product directions especially around conventional credit, alternatives and how these influence consumer behaviour.
Thank you for reading!


--- layout: archive title: Zulip Chat Archive permalink: /stream/113488-general/topic/intros.20unfolding.html ---
Is this normal?
example (P Q : Prop) : P → Q := begin intros, -- context has a: P, goal is now Q sorry end def f (P Q : Prop) := P → Q example (P Q : Prop) : f P Q := begin intros, -- nothing happen :-( intros a, -- context is a : P, goal is now Q sorry end
It seems this prevents finish
to work successfully in some cases without a preliminary intros a b c d e f
that's kind of interesting. If you make f reducible, or unfold it explicitly, maybe intros
works.
Of course explicit unfolding works. But reducible is not enough.
you can also try intros _
Last updated: Apr 24 2020 at 19:02 UTC


Greetings {{customerDescription}},
Your purchase in the amount of ${{amount}} was successful. Thanks!
Receipt ID: {{id}}
Card: {{card_type}} #{{card_last4}}
Sincerely,
{{config.sincerely}}


‘Wrestling Pastor’, Chukwuemeka Odumeje Has A Word For His Critics
by Faderera FaladeControversial pastor, Chukwuemeka Odumeje, popularly known as the wrestling pastor has reacted to various criticisms against him in the media.

This he stated during one of his recent services, here is what he said:
“If I knack somebody on a chair; you don’t ask me, the man of God this is not the way we are doing miracles. Who born you, where do you come from, what do you know about spiritual. You talk when a dead man talking.”


Social networking sites (SNSs) have become a popular type of communication where groups of people virtually meet and interact with other people with similar interests. The use of SNS continues to dramatically increase when compare to the past. People spend so much time online. To understand how people interact with SNSs, collecting data is an important first step for analyzing usage behavior of SNSs.
We will ask for your help to cooperate in our research. Your information will be kept strictly confidential.
This website is under supervision of Information System Engineering laboratory (Ohkura Lab), Shibaura Institute of Technology (SIT). Ploypailin Intapong is an experimenter of this research. She is a doctoral student of Graduate School of Engineering and Science, SIT. The research is supervised by Professor Michiko Ohkura, College of Engineering, SIT.
Information System Engineering Laboratory (Ohkura Lab)
Shibaura Institute of Technology
3-7-5 Toyosu, Koto-ku, Tokyo, Japan 135-8548


A descriptor, also commonly called a file handle is
an object that a program uses to read or write an open file, or open
network socket, or a variety of other devices. It is represented
by an integer, and you may be familiar with stdin
,
stdout
, and stderr
which are descriptors 0,
1, and 2 respectively.
Apache needs a descriptor for each log file, plus one for each
network socket that it listens on, plus a handful of others. Libraries
that Apache uses may also require descriptors. Normal programs don't
open up many descriptors at all, and so there are some latent problems
that you may experience should you start running Apache with many
descriptors (i.e., with many virtual hosts).
The operating system enforces a limit on the number of descriptors that a program can have open at a time. There are typically three limits involved here. One is a kernel limitation, depending on your operating system you will either be able to tune the number of descriptors available to higher numbers (this is frequently called FD_SETSIZE). Or you may be stuck with a (relatively) low amount. The second limit is called the hard resource limit, and it is sometimes set by root in an obscure operating system file, but frequently is the same as the kernel limit. The third limit is called the soft resource limit. The soft limit is always less than or equal to the hard limit. For example, the hard limit may be 1024, but the soft limit only 64. Any user can raise their soft limit up to the hard limit. Root can raise the hard limit up to the system maximum limit. The soft limit is the actual limit that is used when enforcing the maximum number of files a process can have open.
To summarize:
#open files <= soft limit <= hard limit <= kernel limit
You control the hard and soft limits using the limit
(csh)
or ulimit
(sh) directives. See the respective man pages
for more information. For example you can probably use
ulimit -n unlimited
to raise your soft limit up to the
hard limit. You should include this command in a shell script which
starts your webserver.
Unfortunately, it's not always this simple. As mentioned above, you will probably run into some system limitations that will need to be worked around somehow. Work was done in version 1.2.1 to improve the situation somewhat. Here is a partial list of systems and workarounds (assuming you are using 1.2.1 or later):
-DFD_SETSIZE=nnn
to
EXTRA_CFLAGS
(where nnn is the number of descriptors
you wish to support, keep it less than the hard limit). But it
will run into trouble if more than approximately 240 Listen
directives are used. This may be cured by rebuilding your kernel
with a higher FD_SETSIZE.
FD_SETSIZE
and rebuild. But the extra
Listen limitation doesn't exist.
-DHIGH_SLACK_LINE=256
added to
EXTRA_CFLAGS
. You will be limited to approximately
240 error logs if you do this.
In addition to the problems described above there are problems with many libraries that Apache uses. The most common example is the bind DNS resolver library that is used by pretty much every unix, which fails if it ends up with a descriptor above 256. We suspect there are other libraries that similar limitations. So the code as of 1.2.1 takes a defensive stance and tries to save descriptors less than 16 for use while processing each request. This is called the low slack line.
Note that this shouldn't waste descriptors. If you really are pushing the limits and Apache can't get a descriptor above 16 when it wants it, it will settle for one below 16.
In extreme situations you may want to lower the low slack line,
but you shouldn't ever need to. For example, lowering it can
increase the limits 240 described above under Solaris and BSDI 2.0.
But you'll play a delicate balancing game with the descriptors needed
to serve a request. Should you want to play this game, the compile
time parameter is LOW_SLACK_LINE
and there's a tiny
bit of documentation in the header file httpd.h
.
Finally, if you suspect that all this slack stuff is causing you
problems, you can disable it. Add -DNO_SLACK
to
EXTRA_CFLAGS
and rebuild. But please report it to
our Bug
Report Page so that
we can investigate.


Was this article helpful?
Yes
No
{% if page.special-edit-url %}{{page.special-edit-url}}{% else %}https://github.com/MyHomeworkSpace/support/edit/master{{ page.url }}{% endif %}


{% extends "layout_multi_sections.html" %} {% block page_title %} Shoot {% endblock %} {% block css_register %} {% endblock %} {% block main_nav %} {% include "includes/leedsgirlscan/main_nav.html" %} {% endblock %} {% block sectionOneTop %}
Netball is a seven a side sport played with two teams and is similar to early versions of basketball.
Each team tries to score by passing the ball down the court, when a player receives the ball they must stand still until they have thrown the ball to another player. You can’t run or move with the ball. Goals are scored by throwing the ball through a netted hoop; there is a one at each end of the court.
Players are given specific positions to play in which then define their role and restricts where you can go in the court.
Here is a short video that highlights what we have to offer
Netball is a sport that is suitable for all ages and abilities. If you are looking for a fun team sport, netball could be for you. To win a game of netball you have to play as a team and interact and communicate with all the members of the team. These teamwork skills can be transferred to lots of other areas, for example work or your social life.
 The Back to Netball sessions are ideal if you haven’t played for a few years, or if you have never played netball before and want to try it out.
Netball clubs all have varying membership and training fees. The ‘Back to Netball’ sessions generally cost between £3 or more per session. Alternatively, you could hire a court at a sports centre and take a group of friends with you and make your own teams.
We want you to help us persuade more women and girls to get active, whatever their age, size, background or ability.
A Leeds Girls Can Ambassador: Goes through an appropriate recruitment process and signs up to Leeds City Council and Sport England’s policies and procedures. The main aim of an Ambassador is to get more women and girls in Leeds physically active. Ambassadors are required to attend monthly meetings which are vital for receiving guidance and insight around This Girl Can, this helps support their role. An Ambassador is not paid for their time, they are not required to lead a group and the roles can vary.
For further information on becoming an ambassador or any of our other roles contact Dani Penney
Apply nowDo you have an event, club or sport you would like to see here? Please get in touch.


Sprint
Status:
Start:
End:
Sprint Board
Sprint Burndown
Sprint Stories
Title
Story Points
Status
Available Stories
Title
Story Points
Status
Action
Add to Sprint


C-SPAN: President Obama at the 2011 White House Correspondents' Dinner President Obama at the 2011 White House Correspondents' Dinner. View the complete program here: http://www.c-spanvideo.org/program/WhiteHouseCorrespo
[live] Hong Kong Protests regarding Extradition law amendment proposed by the Government (various locations; ongoing) real-time updates on reddit: the front page of the internet
I’m Pwned. You’re Pwned. We’re All Pwned. - Troy Hunt Face it – it’s going to happen. It’s going to happen to you, it’s going to happen to your company and it’s definitely happened to me! Security incidents are now just a part of normal everyday online life and we need to adapt to the new reality. In this t...
Duckie.me: A tool for one person pairing. Duckie.me is a free rubber ducking tool that will help you solve your programming mental blocks.
Inside America’s Ridiculously Old-Fashioned Gun-Tracing Center The National Tracing Center in West Virginia is the only facility in the country that tracks firearms from a manufacturer to a purchaser. Go inside this small federal agency that traces nearly 400,000 guns to their owners every year to help solve violent ...


--- layout: base permalink: / body_id: home ---
Hello! I'm Julia Elman -- a Director of Design based in Durham, North Carolina. I lead design and development teams, and coach people to help them reach their full potential and create amazing things. My most recent work includes the U.S. Web Design Standards.
Apart from technology, I like spending time hiking and camping in the woods of North Carolina and spending time with my family.
Want to work together? I’d love to hear from you.


This document contains information about ZAMNHLMP, including questions you may have concerning the game or your PC. If you have a question, check to see if it is addressed here first; you may save yourself an E-Mail to The Phoenix Project.
I. Minimum Requirements II. General Game Issues III. Frequently Asked Questions IV. Contacting The Phoenix Project and/or the Shooter Tourneys Team
OS: Windows 7 SP1 Processor: One with 2.4+ GHz Storage: 474 MB required for Half-Life; 1.5+ GB required for ZAMNHLMP.
Half-Life: Zombies Ate My Neighbours and the Aura engine no longer support macOS.
OS: Any distro that Steam can run on Processor: One with 2+ GHz Storage: 474 MB required for Half-Life; 1.5+ GB required for ZAMNHLMP.
Game crashes with Metamod installed
Don't install the ordinary Metamod. Instead, install the one from here. (NOTE: This version of Metamod does not work with ordinary listen or dedicated servers. You will need ReHLDS for it to work.
By default, the Half-Life game engine now reports the current status of IP LAN (e.g., sv_lan 1 or unable to authenticate) games to the master servers. This reporting is for general statistical information to Valve only and these IP LAN servers will not be visible to Internet players. If you would like to opt out of having your IP lan server report to the master servers, you must run the engine or dedicated server with the "-nomaster" command line option.
The Joystick Functionality in the Half-Life engine is very outdated and only works with joysticks made in the late '90s and early '00s. If you wish to use a controller for playing ZAMNHLMP, you can use the following software solutions:
The answer here is ping latency. Try to improve your ping by moving closer to your router, using a wired connection etc., restarting your computer, restarting Steam, playing on a different server or using Ping Enhancement Software.
Quite a few. For example, there is a massive set of maps, easier accessible menus, more and modified gamemodes, reanimated playermodels, viewroll, viewmodel bob tilt, and a few extra goodies.
Simple answer: FOV. You can change the FOV of the firstperson view by opening the console (set the control in Keyboard settings), typing default_fov
in the command line and then the value of your choice. The minimum is 20 and the maximum is 150. The default value is 110. Though it is declared in the userconfig.cfg file, the value is also hard-coded into the game.
To respect the privacy of our developers, there is only one E-Mail address you can E-Mail to get in touch with The Phoenix Project and/or the ZAMNHLMP Team. To tell us who you're writing to, write "Dear" and then the developer's name. The E-Mail address is<EMAIL_ADDRESS>The Phoenix Project is Sabian Roberts - co-founder Rafael Soares - co-founder The Phoenix Project Audio is Andrew King - artist Sabian Roberts - founder, artist Rafael Soares - artist Harry Williams - artist The Phoenix Project Software is Jack of All Trades AngryRetroNerd - modelling Enzo Sousa - Tester GlitchGod - art director Ivan - level design MTB - modelling, animations Nick - tester Aran O'Day - level designer PlayMann - writer Rafael Soares - lead developer, co-founder Ry13y04 - test lead, community manager Sabian Roberts - lead developer, co-founder Syph0 - writer Techlin - video producer Unowninator - tester ZAMNHL Team Sabian Roberts - project lead Rafael Soares - level designer, music composer, writer, producer Ivan - level designer GlitchGod - art director Syph0 - writer AngryRetroNerd - modelling MTB Animations - modelling, animations Ry13y04 - test lead Nick - tester Unowninator - tester Enzo Sousa - tester BlueNightHawk - programmer ZAMNHLMP Team Sabian Roberts - project lead Rafael Soares - project lead BlueNightHawk - programmer The Remaster Team Project leads Sabian Roberts Ry13y04 Level Designers Sabian Roberts Ivan Aran Rafael Soares Artwork/Texture Design Sabian Roberts Harry Williams Music Sabian Roberts Rafael Soares Audio design Ry13y04 Sabian Roberts Rafael Soares Video production ^for trailers, intros etc. Sabian Roberts Ivan Techlin Test Ry13y04 - Test Lead Unowninator Nick Enzo Sousa


Whipped * 1/2 (out of * * * * )
Directed by Peter M. Cohen. Cast: Amanda Peet, Brian Van Holt, Jonathan Abrahams, Zorie Barber, Judah Domke. 2000 - 85 minutes Rated R (for profanity and sexuality). Reviewed by Dustin Putman, September 2, 2000.
A misogynistic and angry movie passing itself off as a raucous comedy, "Whipped," directed by Peter M. Cohen, features almost nothing worthy of recommending it. The five central characters are unlikable and despicable players who get off on using others for nothing more than sex, and whose whole lives revolve around this one fact. None of them are ever attempted to be developed as fully thought-out people, nor do they have any interests outside of what is strictly required by the, albeit slim, storyline. You wouldn't think that a writer or director would have the courage to film a romance with nary an ounce of heart or soul, but Cohen has done just that--and fails miserably at every turn.
The film centers on four Manhattan-based best friends in their 20's who apparently do not like each other at all, and meet every Sunday at a local diner to discuss their sexual conquests from that week's past. Brad (Brian Van Holt) is a hot-shot dimwit who believes he is God's gift to women; Zeke (Zorie Barber) is an arty club-goer who spends his time reading and having threesomes; Jonathan (Jonathan Abrahams) is less experienced with women, but more experienced than his friends when it comes to lube; and the tic-infested Eric (Judah Comke) used to be like his other three friends, but is now unhappily married.
Everything changes for each of the bachelors one week when they all meet a wonderful young woman whom they surprisingly start to like. What they don't expect is that they have all met the same woman--the strikingly beautiful and articulate Mia (Amanda Peet). Each of them care enough for her and their potential relationships that they mutually agree with Mia when she suggests that she be allowed to continue seeing all three of them at the same time, since she likes them all equally. What they fail to recognize is that Mia, an obvious player herself, has an ulterior motive for dating them all.
While there is nothing wrong, in essence, with making a film about a group of womanizers (and in this case, also a manizer), writer-director Cohen almost immediately derails the whole undertaking when it becomes clear that he has absolutely no insight to give, whether it be about the characters or the general plot, nor has he written one person who is the least bit intelligent or warm-hearted. It is difficult--okay, nearly impossible--to get involved in a movie if there is no one to identify with or care about. The superficial beings that populate "Whipped" apparently originated on another planet, as there are few signs of human emotions ever presented.
As for its comedic aspect, the amount of laughs that result from viewing this thankfully brief 85-minute trifle could probably be counted on one hand, and the majority of those come from something occurring that is so wacky and off-the-radar that you can't help but chuckle at their sheer stupidity.
As the four jackasses, Brian Van Holt, Jonathan Abrahams, Zorie Barber, and Judah Comke are adequate at best, although considering the one-note pricks that they were asked to play, 'adequate' is about as good as these actors could ever hope for. Who is absolutely bewitching, however, is the bright Amanda Peet (the scene-stealer in 2000's otherwise glum "The Whole Nine Yards"). Peet's Mia isn't really much more likable than the guys featured in the movie, particularly once her own dastardly plans are revealed, but she takes her thinly veiled character and runs with it. Once Peet moves away, once and for all, from such wastes of time as "Whipped," she has the charisma and ability to be a major star and a talented actress.
Peter M. Cohen should be thanking Amanda Peet this instant for being the sole reason "Whipped" is receiving a generous one-and-a-half star rating from me, because it certainly has nothing else of worthwhile quality. Having seen the movie, I wonder what Cohen was hoping to achieve with such a cold, lifeless directing debut. Has he been burned so many times by both men and women that he simply hates the human race, in general? Or does he merely delight in portraying people of no substance and little feeling, doing things that are cruel and hurtful to others, all at the expense of a cheap laugh? On second thought, "Whipped" is the perfect title for this movie, because everyone who is suckered into a theater showing this rubbish will feel just that--whipped.
- Copyright 2000 by Dustin Putman Http://www.young-hollywood.com Http://www.atnzone.com
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Health & Care
Health & Care
View Patient
Search Patient
Add Patient
Log Out
Edit Record
Nurse Name
Date
Time
Type
Value
CANCEL


ptar - a tar-like program written in perl
ptar is a small, tar look-alike program that uses the perl module Archive::Tar
to extract, create and list tar archives.
ptar -c [-v] [-z] [-C] [-f ARCHIVE_FILE | -] FILE FILE ...
ptar -c [-v] [-z] [-C] [-T index | -] [-f ARCHIVE_FILE | -]
ptar -x [-v] [-z] [-f ARCHIVE_FILE | -]
ptar -t [-z] [-f ARCHIVE_FILE | -]
ptar -h
c Create ARCHIVE_FILE or STDOUT (-) from FILE
x Extract from ARCHIVE_FILE or STDIN (-)
t List the contents of ARCHIVE_FILE or STDIN (-)
f Name of the ARCHIVE_FILE to use. Default is './default.tar'
z Read/Write zlib compressed ARCHIVE_FILE (not always available)
v Print filenames as they are added or extracted from ARCHIVE_FILE
h Prints this help message
C CPAN mode - drop 022 from permissions
T get names to create from file


Manipulating and changing text ranges can be tricky and tedious at times. The intent of this project was to offer interfaces and functions that would make text ranges and buffers easy to operate on. Allowing for easy text transformations, that may span over multiple lines.
This library is supported in both TypeScript and JavaScript.
Typescript declaration files are contained within the library module.
const textManipulation = require('text-manipulation');
// Create a text buffer
const buffer = textManipulation.createBuffer('Hello, World Again');
// Create a range
const range = textManipulation.createTextRange({column: 7, line: 0}, {column: 12, line: 0});
// Replace the range
buffer.replaceRange(range, 'Alex');
const text = buffer.getText();
console.log(text); // 'Hello, Alex Again'
The MutableTextRange class provides the abstraction to change a given range
const textManipulation = require('text-manipulation');
// Create a text buffer
const buffer = textManipulation.createBuffer('Hello, World Again');
// Create a range
const range = new MutableTextRange([{column: 7, line: 0}, {column: 12, line: 0}], buffer);
// Replace the range
range.setText('Alex');
console.log(range.getText()); // Alex
const text = buffer.getText();
console.log(text); // 'Hello, Alex Again'


--- layout: post title: Introducing the Capistrano Shell post_id: 153 categories: - spotlight date: 2006-09-20 21:12:00.000000000 -06:00 author: Jamis permalink: 2006/9/20/introducing-the-capistrano-shell.html summary: > A new Capistrano extension is introduced, allowing commands to be run interactively and in parallel on multiple servers at once ---
Our current cluster at 37signals consists of (at the moment) 12 machines. The first few weeks that we were running them live were rather bumpy, and I took to using Capistrano to do a bit of ad-hoc monitoring, using the uptime
task (from the capistrano-ext gem) to keep an eye on things:
cap -v uptime |
However, with 12 machines, the wait for that command to run each time was about 20 to 30 seconds, which is far too long for my impatient self.
Part of that seemingly-interminable wait was alleviated by changing Capistrano so that it connects to servers in parallel, rather than serially. Prior to 1.2, when you executed a task that needed to connect to multiple servers, each connection was established one at a time, in a single thread. Now, they are established in parallel, one per thread. The connection overhead, which used to be 18 seconds on my laptop, dropped to just over 6 seconds. Not a bad savings!
However, there was more that could be done. Why, when I am running this command every few minutes, should I need to reestablish the connection with every request? What if I could cache the connection somehow?
This line of thinking led to what I feel is the most exciting new feature in Capistrano 1.2: cap shell.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
jamis> cap -v shell ==================================================================== Welcome to the interactive Capistrano shell!  The result? It now takes less than two seconds to give me my answers.
But the shell is good for more than just executing tasks. You can execute arbitrary commands and have them run on your servers:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
cap> uname -srp [db2] FreeBSD 6.1-STABLE amd64 [web2] FreeBSD 6.1-STABLE amd64 [web3] FreeBSD 6.0-RELEASE amd64 [file1] Linux 2.6.9-34.0.2.ELsmp x86_64 [app1] FreeBSD 6.0-RELEASE amd64 [app2] FreeBSD 6.1-STABLE amd64 [app3] FreeBSD 6.1-STABLE amd64 [app4] FreeBSD 6.1-STABLE amd64 [app5] FreeBSD 6.1-STABLE amd64 [web1] FreeBSD 6.1-STABLE amd64 [db1] FreeBSD 6.1-STABLE amd64 [db3] FreeBSD 6.1-STABLE amd64 cap> |
(Note that prefixing the command with an exclamation point causes Capistrano to interpret it as the name of a task, and to execute it as such. Without the exclamation mark, it is considered a bare command, and is simply executed verbatim on each host.)
Also, you can focus the task or command so that it only executes on a specific role, or host:
1 2 3 4 5 6 7 8 9 10 |
cap> with app uname -srp [app1] FreeBSD 6.0-RELEASE amd64 [app2] FreeBSD 6.1-STABLE amd64 [app3] FreeBSD 6.1-STABLE amd64 [app4] FreeBSD 6.1-STABLE amd64 [app5] FreeBSD 6.1-STABLE amd64 cap> on web1,web2 uname -srp [web1] FreeBSD 6.1-STABLE amd64 [web2] FreeBSD 6.1-STABLE amd64 cap> |
You can use with role
to focus the command to all machines answering to the named role. Use a comma-delimited list to execute on machines in any of a list of roles.
If that is too general, you can get as specific as you wish using on host
. This lets you execute only on the named host, or hosts. In fact, you can name hosts this way that aren’t even defined in your deploy.rb—it’ll establish connections on the fly to any machines it doesn’t recognize.
Lastly, you can use both with
and on
to set the scope for subsequent commands. Just leave the command off:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
cap> with app scoping with app cap> uname -srp [app1] FreeBSD 6.0-RELEASE amd64 [app2] FreeBSD 6.1-STABLE amd64 [app4] FreeBSD 6.1-STABLE amd64 [app3] FreeBSD 6.1-STABLE amd64 [app5] FreeBSD 6.1-STABLE amd64 cap> hostname -s [app1] 82095-app1 [app4] 82098-app4 [app5] 82099-app5 [app2] 82096-app2 [app3] 82097-app3 cap> with all scoping with all cap> hostname -s [db2] 82101-db2 [web3] 82094-web3 [app1] 82095-app1 [app2] 82096-app2 [db1] 82100-db1 [file1] 82103-file1 [app3] 82097-app3 [app4] 82098-app4 [app5] 82099-app5 [web1] 82092-web1 [web2] 82093-web2 [db3] 82102-db3 cap> |
(Note the use of the special all
keyword, to return the scope to all roles and machines.)
So, armed with this new tool, I was able to keep an eye on the load of each machine in the cluster using the uptime
task. When I noticed something anomalous, I focused on the box in question and looked for rogue processes:
1 2 3 4 5 6 |
cap> on app3 ps waux | head -n 5 ... cap> on app3 sudo kill 12345 Password: ... cap> |
It worked great. It’s definitely not a substitute for a real SSH shell, but it’s perfect for quick-and-dirty tasks that require you to switch between hosts frequently.
Which begs the question: why isn’t it a substitute for a real SSH shell?
Well, firstly, cap shell is stateless. Each command is executed in a new shell on the remote host. This means that commands like cd
and export
are pretty useless, since they won’t stick.
Secondly, cap shell isn’t intended to deal with interactive commands. You can’t, for instance, run IRB on multiple hosts simultaneously using cap shell. It does manage to deal with commands like tail -f
, but that’s about the limit.
Thirdly, if you thought rm -rf /
was dangerous when connected to a single host, imagine the damage you could do with cap shell! This is probably one of the biggest reasons it is still experimental. Until I can find a way to make it less likely to accidentally wipe an entire cluster with a single command, you ought to go into using this with caution.
Still, even with all those caveats, cap shell has become an irreplaceable tool in my toolbox. I’d love to hear from you with ideas for how to make it better, and safer.


You have to add to your list of authorized redirect URLs.
Add here a list of aliases (comma separated).


Using Drake from Python¶
A limited subset of the Drake C++ functionality is available from Python. The
Drake Python bindings are generated using pybind11, which means that every function or
class which is exposed to C++ has been explicitly enumerated in one of the
source files inside the bindings/pydrake
folder. These bindings are
installed as a single package called pydrake
.
Python 2.7 is currently the only supported version for these bindings.
Binary Installation for Python¶
First, download and extract an available binary package.
As an example, here is how to download and extract one of the latest releases
to /opt
(where <platform>
could be xenial
or mac
):
curl -o drake.tar.gz https://drake-packages.csail.mit.edu/drake/nightly/drake-latest-<platform>.tar.gz
rm -rf /opt/drake
tar -xvzf drake.tar.gz -C /opt
Ensure that you have the system dependencies:
/opt/drake/share/drake/setup/install_prereqs
Next, ensure that your PYTHONPATH
is properly configured:
export PYTHONPATH=/opt/drake/lib/python2.7/site-packages:${PYTHONPATH}
See below for usage instructions. If using macOS, pay special attention to this note.
Building the Python Bindings¶
To use the Python bindings from Drake externally, we recommend using CMake. As an example:
git clone https://github.com/RobotLocomotion/drake.git
mkdir drake-build
cd drake-build
cmake ../drake
make -j
Please note the additional CMake options which affect the Python bindings:
-DWITH_GUROBI={ON, [OFF]}
- Build with Gurobi enabled.-DWITH_MOSEK={ON, [OFF]}
- Build with MOSEK enabled.-DWITH_SNOPT={ON, [OFF]}
- Build with SNOPT enabled.
{...}
means a list of options, and the option surrounded by [...]
is
the default option. An example of building pydrake
with both Gurobi and
MOSEK, without building tests:
cmake -DWITH_GUROBI=ON -DWITH_MOSEK=ON ../drake
You will also need to have your PYTHONPATH
configured correctly.
As an example, continuing from the code snippets from above:
cd drake-build
export PYTHONPATH=${PWD}/install/lib/python2.7/site-packages:${PYTHONPATH}
Using the Python Bindings¶
To use the Drake Python bindings, follow the steps above to install or build Drake. To check this:
python -c 'import pydrake; print(pydrake.__file__)'
Note
If you are using macOS, you must ensure that you are using the python2
executable to run these scripts. As an example for Homebrew:
export PATH=/usr/local/opt/python/libexec/bin:${PATH}
If you would like to use jupyter
, then be sure to install it via
pip2 install jupyter
(not brew install jupyter
) to ensure that it
uses the correct PYTHONPATH
.
Note
If you are using Gurobi, you must either have it installed in the suggested
location under /opt/...
mentioned in Gurobi 8.0.0, or you must ensure
that you define the ${GUROBI_PATH}
environment variable, or specify
${GUROBI_INCLUDE_DIR}
via CMake.
What’s Available from Python¶
The most up-to-date demonstrations of what can be done using pydrake
are
the pydrake
unit tests themselves. You can see all of them inside the
drake/bindings/python/pydrake/**/test
folders in the Drake source code.
Here’s an example snippet of code from pydrake
:
from pydrake.common import FindResourceOrThrow
from pydrake.multibody.rigid_body_plant import RigidBodyPlant
from pydrake.multibody.rigid_body_tree import RigidBodyTree
from pydrake.systems.analysis import Simulator
tree = RigidBodyTree(
FindResourceOrThrow("drake/examples/pendulum/Pendulum.urdf"))
simulator = Simulator(RigidBodyPlant(tree))
If you are prototyping code in a REPL environment (such as IPython / Jupyter)
and to reduce the number of import statements, consider using pydrake.all
to
import a subset of symbols from a flattened namespace or import all modules
automatically. If you are writing non-prototype code, avoid using
pydrake.all
; for more details, see help(pydrake.all)
.
In all cases, try to avoid using from pydrake.all import *
, as it may
introduce symbol collisions that are difficiult to debug.
An example of importing symbols directly from pydrake.all
:
from pydrake.all import (
FindResourceOrThrow, RigidBodyPlant, RigidBodyTree, Simulator)
tree = RigidBodyTree(
FindResourceOrThrow("drake/examples/pendulum/Pendulum.urdf"))
simulator = Simulator(RigidBodyPlant(tree))
An alternative is to use pydrake.all
to import all modules, but then
explicitly refer to each symbol:
import pydrake.all
tree = pydrake.multibody.rigid_body_tree.RigidBodyTree(
pydrake.common.FindResourceOrThrow(
"drake/examples/pendulum/Pendulum.urdf"))
simulator = pydrake.systems.analysis.Simulator(
pydrake.multibody.rigid_body_plant.RigidBodyPlant(tree))
Differences with C++ API¶
In general, the Python API should be close to the C++ API. There are some exceptions:
C++ Template Instantiations in Python¶
When you define a general class template, e.g.
template <typename T> class Value
, something like Value<std::string>
is
called the instantiation.
For certain C++ templated types, they are exposed in Pythons also as templates;
the parameter types (in this case, T
) are the Python-equivalent types to the
C++ type. Some examples:
| C++ | Python |
|---|---|
std::string |
str |
double |
float , np.double ,
np.float64 , ctypes.c_double |
drake::AutoDiffXd |
pydrake.autodiffutils.AutoDiffXd |
drake::symbolic::Expression |
pydrake.symbolic.Expression |
Thus, the instantiation Value<std::string>
will be bound in Python as
Value[str]
.
Scalar Types¶
Most classes in the Systems framework and in the multibody dynamics
computational framework are templated on a scalar type, T
.
For convenience (and backwards compatibility) in Python, a slightly different
binding convention is used.
For example, Adder<T>
is a Systems primitive which has a user-defined
number of inputs and outputs a single port which is the sum of all of the
inputs.
In C++, you would access the instantiations using Adder<double>
,
Adder<AutoDiffXd>
, and Adder<Expression>
for common scalar types.
In Python, Adder
actually refers to the “default” instantiation, the
Adder<double>
C++ class. To access other instantiations, you should add an
_
to the end of the C++ class name to get the Python template and then
provide the parameters in square braces, [...]
. In this example, you should
use Adder_[T]
.
To illustrate, you can print out the string representations of Adder
,
Adder_
, and some of its instantiations in Python:
>>> from pydrake.systems.primitives import Adder, Adder_
>>> print(Adder)
<class 'pydrake.systems.primitives.Adder_[float]'>
>>> print(Adder_)
<TemplateClass pydrake.systems.primitives.Adder_>
>>> from pydrake.autodiffutils import AutoDiffXd
>>> from pydrake.symbolic import Expression
>>> print(Adder_[float])
<class 'pydrake.systems.primitives.Adder_[float]'>
>>> print(Adder_[AutoDiffXd])
<class 'pydrake.systems.primitives.Adder_[AutoDiffXd]'>
>>> print(Adder_[Expression])
<class 'pydrake.systems.primitives.Adder_[Expression]'>
Additionally, you may convert an instance (if the conversion is available) using
System_[T].ToAutoDiffXd
and System_[T].ToSymbolic
:
>>> adder = Adder(num_inputs=1, size=1)
>>> print(adder)
<pydrake.systems.primitives.Adder_[float] object at 0x...>
>>> print(adder.ToAutoDiffXd())
<pydrake.systems.primitives.Adder_[AutoDiffXd] object at 0x...>
>>> print(adder.ToSymbolic())
<pydrake.systems.primitives.Adder_[Expression] object at 0x...>
Debugging with the Python Bindings¶
You may encounter issues with the Python Bindings that may arise from the underlying C++ code, and it may not always be obvious what the root cause is.
The first step to debugging is to consider running your code using the
trace
module. It is best practice to always have a main()
function, and
have a if __name__ == "__main__"
clause. If you do this, then it is easy to
trace. As an example:
def main():
insert_awesome_code_here()
if __name__ == "__main__":
# main() # This is what you would have, but the following is useful:
# These are temporary, for debugging, so meh for programming style.
import sys, trace
# If there are segfaults, it's a good idea to always use stderr as it
# always prints to the screen, so you should get as much output as
# possible.
sys.stdout = sys.stderr
# Now trace execution:
tracer = trace.Trace(trace=1, count=0, ignoredirs=["/usr", sys.prefix])
tracer.run('main()')
Note
If you are developing in Drake and are using the drake_py_unittest
macro, you can specify the argument --trace=user
to get the same
behavior.
This generally should help you trace where the code is dying. However, if you
still need to dig in, you can build the bindings in debug mode, without symbol
stripping, so you can debug with gdb
or lldb
:
cmake -DCMAKE_BUILD_TYPE=Debug ../drake
Warning
If you have SNOPT enabled (either -DWITH_SNOPT=ON
or
-DWITH_ROBOTLOCOMOTION_SNOPT=ON
), symbols will still be stripped.
For Developers¶
If you are developing Python bindings, please see the Doxygen page Python Bindings which provides information on programming conventions, documentation, tips for debugging, and other advice.


chatwidget - Provides a multi-paned view suitable for display of chat room or irc channel information
This is a composite widget designed to simplify the construction of chat applications. The widget contains display areas for chat messages, user names and topic and an entry area. It automatically handles colourization of messages per nick and manages nick completion. A system of hooks permit the application author to adjust display features. The main chat display area may be split for use displaying history or for searching.
The widget is made up of a number of text widget and panedwindow widgets so that the size of each part of the display may be adjusted by the user. All the text widgets may be accessed via widget passthrough commands if fine adjustment is required. The topic and names sections can also be hidden if desired.
Create a new chatwidget using the Tk window id path. Any options provided are currently passed directly to the main chat text widget.
The chat widget can display a topic string, for instance the topic or name given to a multi-user chatroom or irc channel.
Enable display of the topic.
Disable display of the topic
Set the topic text to topic.
Control the names and tags associated with names.
Returns a list of all the user names from the names view. If ?-full? is given then the list returned is a list of lists where each sublist is made up of the nick followed by any options that have been set on this nick entry. This may be used to examine any application specific options that may be applied to a nick when using the add command.
Add messages to the display. options are -nick, -time, -type, -mark -tags
Manage hooks. add (message, post names_group, names_nick, chatstate), remove, run
Passthrough to the name display text widget. See the text widget manual for all available commands. The chatwidget provides two additional commands show and hide which are used to control the display of this element in the widget.
Passthrough to the entry text widget. See the text widget manual for all available commands.
Passthrough to the chat text widget. See the text widget manual for all available commands.
chatwidget::chatwidget .chat proc speak {w msg} {$w message $msg -nick user} .chat hook add post [list speak .chat] pack .chat -side top -fill both -expand 1 .chat topic show .chat topic set "Chat widget demo" .chat name add "admin" -group admin .chat name add "user" -group users -color tomato .chat message "Chatwidget ready" -type system .chat message "Hello, user" -nick admin .chat message "Hello, admin" -nick user
A more extensive example is available by examining the code for the picoirc program in the tclapps repository which ties the tcllib picoirc package to this chatwidget package to create a simple irc client.
This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category chatwidget of the Tklib Trackers. Please also report any ideas for enhancements you may have for either package and/or documentation.
text(n)


Hawkesbury River 2020
As has been the custom for many years, I went for a camping/fishing trip with high-school friend Warren on the Hawkesbury River (here is a list of previous trips).
The forecast was for rain so packed all the normal stuff plus firewood. Although there is usually lots of boat traffic and people out fishing, this year was quiet because most people don’t want to go out in the rain.
Just after the entrance to the expressway, I noticed that the bimini was not right.
Turns out the rivets had failed.
A quick field repair and we were on our way.
Seems like every year we bring more stuff …
Due to bushfires, we could go last year. We came across an unexpected surprise. After years of camping here, we now need to book.
Fortunately, we could do it by mobile phone.
First cast, a school jew which was released.
Next, a yellowfin bream (acanthopagrus australis). They are a very slow growing fish. See the second last figure in this publication reproduced below, and the Ochwada paper cited within. Large ones should be released.
We kept them alive in the live bait tank. After the session we decided to eat one and release the remaining two. According to the table, since the bottom one is about 24cm to the fork of the tail, it is about 5 years old. A 27cm bream would be 10 years old.
Sunset at camp.
Fish done in foil as is the usual custom.
Used the bream gut as bait for eel fishing. We cast it out and put bells on the rod so we could fish while cooking. After two hours, it hadn’t been touched and I nearly gave up. Then, the bait was taken but no hookup. A few seconds after casting out with a new bait, caught a nice pike eel.
It looked like it was dead so I took my pliers and was going to unhook the eel. In a flash, it swung its head around and bit me on the thumb.
I was lucky to have a nice lip hook, it would have easily bit through my 6 kg monofilament trace. Anyway, I emerged as the victor!
Came across removalists for Bar Point.
Hearty breakfast.
Monitor lizards are becoming less and less wary of people.
Splitting firewood.
Warren with a personal best pufferfish.
To prepare steamed eel, you first cover it with salt and wash off the slime.
Black bean sauce.
Steamed.
Unfortunately, the eel tasted terrible! Will try barbecuing the next one.


Extracting sound and frames from videos and summarizing using libraries to make small clips
Great Energy Predictor III
Sentiment grading from restaurant reviews
A Movie Recommendation System
Using Python and Folium


[docs]class PyreException(Exception):
pass
[docs]class RuleSyntaxError(PyreException):
pass
[docs]class UnknownKeyword(RuleSyntaxError):
"""Raised when there's no known Control Directive / Rule Keyword handler available for a given line"""
pass
[docs]class InvalidPort(PyreException):
pass


About Us
Welcome to Pat's! We are a family-owned cookie company from Seattle. We make perfect cookies for cold-grey ferry rides or warm, spring walks around the market. Our unique recipe creates the most delicious and soft cookie you've ever tasted. Good luck eating just one! Stop in to any one of our 5 locations in the Seattle area and keep your eye out for more coming soon.
Social


{% extends "base.html" %} {% block title %}myTBA Dashboard - The Blue Alliance{% endblock %} {% block meta_description %}View how your favorite teams are doing.{% endblock %} {% block mytba_active %}active{% endblock %} {% block content %}
Keep up to date with where your favorite teams are competing and how they're doing!
myTBA lets you customize your experience when using The Blue Alliance.
Favorites are used for personalized content and quick access.
Subscriptions are used for push notifications.
No favorite teams are currently competing.
{% endif %}
{% if event.city_state_country %} in {{ event.city_state_country }}
{% endif %}
{% if event.start_date %} {{ event.start_date|strftime("%B %d") }}{% if event.start_date|strftime("%B %d") != event.end_date|strftime("%B %d") %} - {{ event.end_date|strftime("%B %d") }}{% endif %}, {{ event.end_date|strftime("%Y") }}{% endif %}
| Team Number | Team Name |
|---|---|
| {{ team.team_number }} | {{ team.nickname }} |
No favorite teams have upcoming competitions.
No favorite teams have competed yet.
{% endif %}


One of the minor annoyances of Java is that a package and its parent are as foreign to each other than any other pair of packages.
In practice this means that if I want to split a package (module) into subpackages (why wouldn't I?), all interfaces meant for "internal communication" inside the module must be visible to other packages as well.
A related problem is that there is no such thing as package private interfaces. Sure, the interface itself can be package private, but the method implementations must be public. So if I use a package private interface inside a package, a class unfortunate enough to be public and implement this internal interface must publish the supposedly internal interface methods.
Originally published on 2007-09-21 at http://www.jroller.com/wipu/entry/java_package_hierarchy_is_only under category Java


deamer provides deconvolution algorithms for the non-parametric estimation of the density f of an error-prone variable x with additive noise e. The model is y = x + e where the noisy variable y is observed, while x is unobserved. Estimation may be performed for i) a known density of the error ii) with an auxiliary sample of pure noise and iii) with an auxiliary sample of replicate (repeated) measurements. Estimation is performed using adaptive model selection and penalized contrasts.
| Version: | 1.0 |
| Published: | 2012-08-05 |
| Author: | Julien Stirnemann, Adeline Samson, Fabienne Comte. Contribution from Claire Lacour. |
| Maintainer: | j.stirnemann <j.stirnemann at gmail.com> |
| License: | GPL-2 | GPL-3 [expanded from: GPL] |
| NeedsCompilation: | no |
| CRAN checks: | deamer results |
| Reference manual: | deamer.pdf |
| Package source: | deamer_1.0.tar.gz |
| Windows binaries: | r-devel: deamer_1.0.zip, r-release: deamer_1.0.zip, r-oldrel: deamer_1.0.zip |
| OS X binaries: | r-release: deamer_1.0.tgz, r-oldrel: deamer_1.0.tgz |
Please use the canonical form https://CRAN.R-project.org/package=deamer to link to this page.


This panel shows the mean functional image for sub-placeholder ses-placeholder task-placeholder run-placeholder in gray, and the brainmask (red) that was used to compute DVARS and the temporal (green) and anatomical (blue) CompCor mask.
This panel shows the signal for (almost) every voxel (y-axis), over time in volumes (x-axis). The panel shows voxel in the gray matter (top part), white matter (between blue and red line) and CSF (bottom section). The data was standardized to the global signal, and ordered within a given region according to correlation coefficient to the average signal.
This panel shows the main confounds for sub-placeholder ses-placeholder task-placeholder run-placeholder. Shown are FD (Framewise Displacement) and DVARS, as well as the average signal in TV (total brain volume), GM (gray matter), WM (white matter) and CSF (cerebral spinal fluid). Vertical lines in black indicate outliers, as defined by threshold values.
This panel shows the motion parameters for sub-placeholder ses-placeholder task-placeholder run-placeholder.
This panel shows the anatomical CompCor components for sub-placeholder ses-placeholder task-placeholder run-placeholder.
This panel shows the temporal CompCor components for sub-placeholder ses-placeholder task-placeholder run-placeholder.
This panel shows the ICA components for sub-placeholder ses-placeholder task-placeholder run-placeholder. Left side of the figure shows the correlation between the component and the functional image, over time. The right panel shows the power spectrum density of this component, with values in Hz on the x-axis.
This panel shows the load of the ICA components within the brain volume.


winograd is one of the founders of the HCI lab at stanford and has worked on trying to make language understood to computers.
approach through design (the interaction between creating and understanding), and mostly about developing a theory of language
the computer is a device for creating, manipulating and transmitting symbolic (i.e. linguistic) objects.
“every questioning grows out of a tradition” -> what is the tradition of this thesis? (also, meaning is relative to what is understood through the tradition)
combination of hermeneutics with speech act theory (meaningful acts in situations of shared activity)
mathematical language is, by definition, context-free.
Meaning is created by an active reading, in which the linguistic form triggers interpretation, rather than conveying information.
That which is not obvious is made manifest through language
austin has *five fundamental illocutionary points**:
(each of these points can have different forms)
theoretical language (rational) vs. practical (situated)
Language and cognition are fundamentally social (p.61).
structural coupling (skills) with a consensual domain (piece of source code) is how an autopoeitic structure emerges (self-sustained attention? aesthetic experience?)
there are three basic kinds of grounding:
summarization of concerns
The essence of computation lies in the correspondence between the manipulation of formal tokens and the attributions of a meaning to those tokens as representing elements in worlds of some kind. (p.74)
pre-understanding and background are important for meaning-making (fluency). knowledge is always the result of interpretation, which in turn depends on the entire previous experience of the interpreter and on situadness in a tradition.
their approach to language is not that language is transmission of information, but rather that is a form of human social action, with mutual orientation (but i don’t see those as mutually exclusive)
focusing on the fundamental issues of language and rationality that are the background for designing and programming computers.
The first and most obvious point is that whenever someone writes a program, it is a program about something.
(called the subject domain; interesting how it switched to being called problem-domain in software engineering)
the programmer has a systematic correspondence between the symbols contained in storage cells and how they represent objects and relationships in the subject domain.
Success in programming depends on designing a representation and set of operations that are both veridical [produce results that are correct] and effective [they are usable].
most important parts of a formal system (e.g. a programming language):
the problem is that representation is in the mind of the beholder: in no way do programming languages depend on the fact that they represent something (at least, sth too concrete; because they do have pointers, registers, etc., which represent something tangible).
cf. Newell & Simon, 1976, “Computer Science as Empirical Enquiry” -> for the ability of computers to refer to themselves
computers have levels of abstraction
the subject domain is always the next higher level itself (p. 89)
some issues, though:


Pete Jones | SmartFactory
Missing something? Install it now! (I won't tell your boss.)
Download the .ZIP!
Or ask Pete for the USB stick...
Make pages which are accessible, regardless of the browser, platform or screen that your reader chooses or must use to access your pages.John Allsop, A Dao of Web Design
Make pages which are accessible and pleasant and intuitive, regardless of the browser, platform or screen that your reader chooses or must use to access your pages.Me, This Slide
“The reference pixel is the visual angle of one pixel on a device with a pixel density of 96dpi and a distance from the reader of an arm's length. For a nominal arm's length of 28 inches, the visual angle is therefore about 0.0213 degrees. For reading at arm's length, 1px thus corresponds to about 0.26 mm (1/96 inch).”
| Physical Width | Physical Height | Pixel Ratio | CSS Width | CSS Height | |
|---|---|---|---|---|---|
| iPhone 3GS | 480 | 320 | 1 | 480 | 320 |
| iPhone 4S | 960 | 640 | 2 | 480 | 320 |
| iPhone 5S | 1136 | 640 | 2 | 568 | 320 |
| iPhone 6 | 1334 | 750 | 2 | 667 | 375 |
| iPhone 6 Plus | 2208 | 1242 | 3 | 736 | 414 |
| iPad 1 | 1024 | 768 | 1 | 1024 | 768 |
| iPad Air | 2048 | 1536 | 2 | 1024 | 768 |
| iPad 4 | 2048 | 1536 | 2 | 1024 | 768 |
(Still not as bad as the corporate VPN, amirite?)
And slow...

Nerf Guns of the Late Victorian Salon Culture

The Victorian salon may be known best for incubating rapid
philosophical and scientific advancements, but no less important
are the many methods they contrived for hurling foam-tipped
projectiles at each other in between sophisticated conversations.

(If you haven't already, open up /exercises/index.html)
(Pete, just open this, you ninny)
@media screen and (max-width: 400px) { /* Style rules */ }
@media print { /* Print styles */ }
@media all and (orientation: landscape) { /* Landscape orientation styles */ }
@media tv and (min-device-aspect-ratio: 16/9) { /* Widescreen TV rules */ }
@media 3d-glasses
and (min-width: 800px)
not (color)
and (orientation: portrait) {
}
/* KISS */
@media screen and (max-width: 400px) {}
@media screen and (min-width: 401px) and (max-width: 700px){}
Wait, we aren't done!
(Mobile-first codealong!)
Pete, go back and discuss viewport
.
You just made this! Sweet!
Well, almost...
Hey Pete, why don't you use this thingy here to demo flex-box
?
CSS pre-compilers to the rescue!
Frameworks to the rescue!
Remember "pixel ratio"?
I mean, high-res stuff looks awesome on a retina screen... but
See the pun? That was a pun. Never mind.
Nobody, I mean NOBODY gets excited about forms. Except me.


ProductSEOExport
class ProductSEOExport extends AbstractExport
Class ProductSEOExport
Constants
| FILE_NAME |
|
| EXPORT_IMAGE |
|
| EXPORT_DOCUMENT |
|
| USE_RANGE_DATE |
|
Methods
getData()
No description
Details
in
AbstractExport at line 102
current()
in
AbstractExport at line 118
key()
in
AbstractExport at line 131
next()
in
AbstractExport at line 144
rewind()
in
AbstractExport at line 174
valid()
in
AbstractExport at line 189
Lang
getLang()
Get language
in
AbstractExport at line 201
$this
setLang(
Lang $language = null)
Set language
in
AbstractExport at line 229
boolean
hasImages()
Whether images has to be exported as data
in
AbstractExport at line 239
boolean
isExportImages()
Get export images
in
AbstractExport at line 251
$this
setExportImages(
boolean $exportImages)
Set export images
in
AbstractExport at line 263
null|array
getImagesPaths()
Get images paths
in
AbstractExport at line 275
$this
setImagesPaths(
array $imagesPaths)
Set images paths
in
AbstractExport at line 288
boolean
hasDocuments()
Whether documents has to be exported as data
in
AbstractExport at line 298
boolean
isExportDocuments()
Get export documents
in
AbstractExport at line 310
$this
setExportDocuments(
boolean $exportDocuments)
Set export documents
in
AbstractExport at line 322
null|array
getDocumentsPaths()
Get documents paths
in
AbstractExport at line 334
$this
setDocumentsPaths(
array $documentsPaths)
Set documents paths
in
AbstractExport at line 347
null|array
getRangeDate()
Get range date
in
AbstractExport at line 359
$this
setRangeDate(
array $rangeDate = null)
Set range date
in
AbstractExport at line 371
boolean
useRangeDate()
Whether export bounded with date
in
AbstractExport at line 382
string
getFileName()
Get file name
in
AbstractExport at line 394
array
applyOrderAndAliases(
array $data)
Apply order and aliases on data
in
AbstractExport at line 427
array
beforeSerialize(
array $data)
Process data before serialization
in
AbstractExport at line 445
string
afterSerialize(
string $data)
Process data after serialization


A self-taught developer, learning new technologies every day. A well-organized person, problem solver, and a guy with acute attention to detail and creativity. Fan of Anime, outdoor activities, painting are some of my hobbies. Interested in the entire front-end and back-end spectrum on ambitious projects with a great team.
I am skilled in both Frontend and Backend Spectrum
The KeeperApp is a simple Notes and Reminders taking app with great User experience.
OraganizeIt organizes your files in certain folders. This package organizes your files into certain folders. E.g You can use it with your 'Downloads' folder to organize you images, documents, .exe files , .etc.


Home
Books
Register
Contact us
About us
Login
Registration Form
Fill in the registration form to have access to our wide library of all genres of books!
First Name:
Last Name:
Username:
Password:
Confirm Password:
Email Address:
Confirm Email Address:
Date of Birth:
Gender:
Male
Female
Which age category do you belong to?
Child(upto 9 years of age)
Adolescent(10-19 years of age)
Adult(20-45 years of age)
Middle Age(46-60 years of age)
Senior Citizen(Above 60 years)
Telephone Number:
Mobile Number:
Country:
Afghanistan
Albania
Algeria
Andorra
Angola
Argentina
Armenia
Australia
Austria
The Bahamas
Bangladesh
Belarus
Belgium
Bhutan
Botswana
Brazil
Bulgaria
Burkina Faso
Cameroon
Canada
Chad
Chile
China
Colombia
Comoros
Congo
Costa Rica
Cote d'Ivoire
Croatia
Cuba
Czech Republic
Denmark
Djibouti
Dominica
Ecuador
Egypt
Estonia
Ethopia
Fiji
Finland
France
Gabon
Georgia
Germany
Ghana
Greece
Greenland
Grenada
Haiti
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran
Iraq
Ireland
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan
Kenya
North Korea
South Korea
Kuwait
Latvia
Lebanon
Liberia
Lesotho
Libya
Macau
Madagascar
Malawi
Malaysia
Maldives
Mali
Martinique
Mauritania
Mauritius
Mayotte
Mexico
Morocco
Mozambique
Myanmar
Namibia
Nepal
Netherlands
New Zealand
Nigeria
Norway
Oman
Pakistan
Palestine
Panama
Paraguay
Peru
Philippines
Poland
Portugal
Qatar
Romania
Russia
Rwanda
Saudi Arabia
Senegal
Serbia
Seychelles
Singapore
Slovakia
Somalia
South Africa
Spain
Sri Lanka
Sudan
Sweden
Switzerland
Syria
Taiwan
Tanzania
Thailand
Togo
Trinidad and Tobago
Tunisia
Turkey
Uganda
Ukraine
United Arab Emirates
United Kingdom
United States
Uruguay
Uzbekistan
Venezuela
Vietnam
Yemen
Zambia
Zimbabwe
City/Town:
Abu Dhabi
Amsterdam
Antananarivo
Athens
Baghdad
Bangkok
Beijing
Beirut
Berlin
Bern
Brasília
Brussels
Budapest
Cairo
Canberra
Copenhagen
Dakar
Damascus
Dhaka
Djibouti
Doha
Dublin
Hanoi
Harare
Havana
Helsinki
Hong Kong
Islamabad
Jakarta
Jerusalem
Kabul
Kathmandu
Kingston
Kinshasa
Kuala Lumpur
Kuwait City
Lisbon
London
Luxembourg
Madrid
Maputo
Mexico City
Monaco
Moscow
Muscat
Nairobi
New Delhi
Ottawa
Panama City
Paris
Port Louis
Port-au-Prince
Prague
Cape Town
Rome
Saint-Denis
San Marino
Singapore
Colombo
Stockholm
Tokyo
Victoria
Washington, D.C.
Wellington
What are your favorite genres of books?
Thriller
Romance
Science Fiction
Horror
Fantasy
Action and Adventure
Biographies
Drama


Future Work
1
CSS / Layout
- Search Bar: Is aligned right inconsistently in BS2 vs. BS3.
- Footnotes: Need much better styling. Maybe switch to tooltips.
- Optionally move the localtoc from the top navigation bar into it's own
navbar below the page title.
2
Infrastructure
3