| Network Working Group | D. Fuelling |
| Internet-Draft | Ripple |
| Intended status: Standards Track | June 18, 2020 |
| Expires: December 20, 2020 |
The 'payid' URI Scheme
draft-fuelling-payid-uri-01
This specification defines the 'payid' Uniform Resource Identifier (URI) scheme as a way to identify a payment account at a service provider, irrespective of the particular protocols that can be used to interact with the account.
This specification is a part of the PayID Protocol work. Feedback related to this specification should be sent to<EMAIL_ADDRESS>This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on December 20, 2020.
Copyright (c) 2020 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
Various Uniform Resource Identifier (URI) schemes enable interaction with, or identify resources associated with, a user account at a service provider. However, no standard identifier exists to identify a user's payment account at a service provider.
While popular URIs could be re-used as payment account identifiers, these identifiers are insufficient because they are typically recognized as supporting functionality unique to those schemes. For example, the 'mailto' scheme [RFC6068] (which enables interaction with a user's email account) is broadly deployed for messaging. Re-using this identifier for payments would likely cause confusion because one desirable quality of a payment account identifier is that it expressly does not support messaging, in order to avoid spam and/or other security concerns such as phishing attacks.
Deploying payment protocols on top of identifiers that are commonly employed for other use-cases would likely be a mis-use of those identifiers, and could also cause confusion for end-users, among other problems.
Instead, the payid scheme uses a new type of identifier that is intended to identify accounts for payment use-cases only.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119].
The syntax of the 'payid' URI scheme is defined under Section 7 of this document. Although 'payid' URIs take the form "user$host", the scheme is designed for the purpose of identification instead of interaction (regarding this distinction, see Section 1.2.2 of [RFC3986]). The "Internet resource" identified by a 'payid' URI is a user's payment account hosted at a service provider, where the service provider is typically associated with a DNS domain name. Thus, a particular 'payid' URI is formed by setting the "user" portion to the user's payment account name at the service provider and by setting the "host" portion to the DNS domain name of the service provider.
Consider the case of a user with an account name of "apollo" on a wallet service "wallet.example.com". It is taken as convention that the string "apollo$wallet.example.com" designates that payment account. This is expressed as a URI using the 'payid' scheme as 'payid:apollo$wallet.example.com'.
A possible scenario is for a user to register with a payment service provider using an identifier (such as an email address) that is associated with some other service provider. For example, a user with the email address<EMAIL_ADDRESS>might register with a wallet website whose domain name is "wallet.example.com". In order to facilitate payments to/from alice, the wallet service provider might offer alice a PayID using alice's email address (though using an email address as a PayID is not recommended). In order to use her email address as the 'acctpart' of the 'payid' URI, no percent-encoding is necessary because the 'acctpart' portion of a PayID allows for at-signs. Thus, the resulting 'payid' URI would be<EMAIL_ADDRESS>Another possible scenario is a payment service provider (e.g., a digital wallet) that allows a user to use a PayID that is associated with some other payment service provider. For example, a user with the PayID "alice$bank.example.net" might register with a wallet website whose domain name is "wallet.example.net". In order to use her bank's PayID as the localpart of the wallet's 'payid' URI, no percent-encoding is necessary because the 'acctpart' portion of a PayID allows for dollar-signs. Thus, the resulting 'payid' URI would be payid:alice$bank.example$wallet.example.
It is not assumed that an entity will necessarily be able to interact with a user's PayID using any particular application protocol, such as a wallet or banking application. To enable interactions (payments or otherwise), an entity would need to use the appropriate URI scheme for such a protocol. While it might be true that the 'payid' URI minus the scheme name (e.g., "user$example.com" derived from "payid:user$example.com") could be used via some application protocol, that fact would be purely contingent and dependent upon the deployment practices of the payment account provider.
Because a 'payid' URI enables abstract identification only and not interaction, this specification provides no method for dereferencing a 'payid' URI on its own, e.g., as the value of the 'href' attribute of an HTML anchor element. For example, there is no behavior specified in this document for a 'payid' URI used as follows:
find out more
Any protocol that uses 'payid' URIs is responsible for specifying how a 'payid' URI is employed in the context of that protocol (in particular, how it is dereferenced or resolved; see [RFC3986]). As a concrete example, an "Account Information" application of the WebFinger protocol [RFC7033] might take a 'payid' URI, resolve the host portion to find a WebFinger server, and then pass the 'payid' URI as a parameter in a WebFinger HTTP request for metadata (i.e., web links [RFC5988]) about the resource. For example:
GET /.well-known/webfinger?resource=payid%3Abob%24example.com HTTP/1.1
In the above example, the service retrieves the metadata associated with the payment account identified by that URI and then provides that metadata to the requesting entity in an HTTP response.
If an application needs to compare two 'payid' URIs (e.g., for purposes of authentication and authorization), it MUST do so using case normalization and percent-encoding normalization as specified in Sections <IP_ADDRESS> and <IP_ADDRESS> of [RFC3986]. In addition, the 'acctpart' is case-insensitive and therefore should be normalized to lowercase. For example, the URI PAYID:aLICE$www.EXAMPLE.com is equivalent to payid:alice$www.example.com.
The following example URIs illustrate several variations of PayIDs and their common syntax components:
payid:alice$example.net payid:john.doe$example.net payid:jane-doe$example.net
Because the 'payid' URI scheme does not directly enable interaction with a user's payment account at a service provider, direct security concerns are minimized.
However, a 'payid' URI does provide proof of existence of the payment account; this implies that harvesting published 'payid' URIs could prove useful for certain attackers – for example, if an attacker can use a 'payid' URI to leverage more information about the account (e.g., via WebFinger) or if they can interact with protocol- specific URIs (such as 'mailto' URIs) whose user@host portion is the same as that of the 'payid' URI (e.g., replacing the $ character with an @ sign).
In addition, protocols that make use of 'payid' URIs are responsible for defining security considerations related to such usage, e.g., the risks involved in dereferencing a 'payid' URI, the authentication and authorization methods that could be used to control access to personal data associated with a user's payment account at a service, and methods for ensuring the confidentiality of such information.
The use of percent-encoding allows a wider range of characters in payment account names but introduces some additional risks. Implementers are advised to disallow percent-encoded characters or sequences that would (1) result in space, null, control, or other characters that are otherwise forbidden, (2) allow unauthorized access to private data, or (3) lead to other security vulnerabilities.
As specified in [RFC3986], the 'payid' URI scheme allows any character from the Unicode repertoire [UNICODE] encoded as UTF-8 [RFC3629] and then percent-encoded into valid ASCII [RFC0020]. Before applying any percent-encoding, an application MUST ensure the following about the string that is used as input to the URI-construction process:
In accordance with the guidelines and registration procedures for new URI schemes [RFC7595], this section provides the information needed to register the 'payid' URI scheme.
URI Scheme Name: payid
Status: permanent
URI Scheme Syntax: The 'payid' URI syntax is defined here in Augmented Backus-Naur Form (ABNF) [RFC5234], borrowing the 'host', 'path' rules from [RFC3986]:
payidURI = "payid" ":" acctpart "$" host acctpart = path
Note that additional rules regarding the strings that are used as input to construction of 'payid' URIs further limit the characters that can be percent-encoded; see the Encoding Considerations as well as Section 6 of this document.
URI Scheme Semantics: The 'payid' URI scheme identifies payment accounts hosted at payment service providers. It is used only for identification, not interaction. A protocol that employs the 'payid' URI scheme is responsible for specifying how a 'payid' URI is dereferenced in the context of that protocol. There is no media type associated with the 'payid' URI scheme.
Encoding Considerations: See Section 6 of this document.
Applications/Protocols That Use This URI Scheme Name: At the time of this writing, only the [PAYID-DISCOVERY] protocol uses the 'payid' URI scheme. However, use is not restricted to this protocol, and the scheme might be considered for use in other protocols.
Interoperability Considerations: There are no known interoperability concerns related to use of the 'payid' URI scheme.
Security Considerations: See Section 5 of this document.
Contact<EMAIL_ADDRESS>Author/Change Controller: This scheme is registered under the IETF tree. As such, the IETF maintains change control.
References: None.
This document was heavily influenced RFC-7565, adapted for a payments use -case. The author would like to acknowledge the contributions of everyone who worked on that and related specifications.
In addition, the author would like to acknowledge everyone who provided feedback and use-cases for this derivative specification.
| [RFC0020] | Cerf, V., "ASCII format for network interchange", STD 80, RFC 20, DOI 10.17487/RFC0020, October 1969. |
| [RFC5988] | Nottingham, M., "Web Linking", RFC 5988, DOI 10.17487/RFC5988, October 2010. |
| [RFC6068] | Duerst, M., Masinter, L. and J. Zawinski, "The 'mailto' URI Scheme", RFC 6068, DOI 10.17487/RFC6068, October 2010. |
| [RFC7033] | Jones, P., Salgueiro, G., Jones, M. and J. Smarr, "WebFinger", RFC 7033, DOI 10.17487/RFC7033, September 2013. |
| [RFC7595] | Thaler, D., Hansen, T. and T. Hardie, "Guidelines and Registration Procedures for URI Schemes", BCP 35, RFC 7595, DOI 10.17487/RFC7595, June 2015. |


4DN Dekker Lab
H1 hESC combined
4DN Dekker
Lab H1 hESC rep1
4DN Dekker
Lab H1 hESC rep2
4DN Dekker
Lab 4DN Dekker Lab HFFc6 rep1
Di Pierro and Cheng et al. | Biorxiv 2017 MEGABASE+MiChroM In Silico GM12878
Dudchenko et
al. | Science 2017 Aedes aegypti AaegL4
Dudchenko et al. |
Science 2017 Homo sapiens Hs2-HiC
Dudchenko et al. |
Science 2017 Culex quinquefasciatus
Phanstiel and Van Bortle et al. | Biorxiv 2017 -PMA THP-1 Monocytes (3.9B)
Phanstiel and
Van Bortle et al. | Biorxiv 2017 +PMA THP-1 Macrophages (3.7B)
Rao et al. | Biorxiv 2017 Combined Untreated
Rao et al. | Biorxiv 2017 Combined Treated (6 hr)
Rao et al. | Biorxiv 2017 Combined Untreated Synchronized
Rao et al. | Biorxiv 2017 Combined Treated (6 hr) Synchronized
Rao et al. | Biorxiv 2017 Untreated HIC001
Rao et al. | Biorxiv 2017 Untreated HIC002
Rao et al. | Biorxiv 2017 Untreated HIC003
Rao et al. | Biorxiv 2017 Untreated HIC004
Rao et al. | Biorxiv 2017 Untreated HIC005
Rao et al. | Biorxiv 2017 Untreated HIC006
Rao et al. | Biorxiv 2017 Untreated HIC007
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC008
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC009
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC010
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC011
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC012
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC013
Rao et al. | Biorxiv 2017 Treated (6 hr) HIC014
Rao et al. | Biorxiv 2017 Untreated Synchronized HIC015
Rao et al. | Biorxiv 2017 Untreated Synchronized HIC016
Rao et al. | Biorxiv 2017 Untreated Synchronized HIC017
Rao et al. | Biorxiv 2017 Untreated Synchronized HIC018
Rao et al. | Biorxiv 2017 Treated (6 hr) Synchronized HIC019
Rao et al. | Biorxiv 2017 Treated (6 hr) Synchronized HIC020
Rao et al. | Biorxiv 2017 Treated (6 hr) Synchronized HIC021
Rao et al. | Biorxiv 2017 Treated (6 hr) Synchronized HIC022
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI primary+replicate (4.9B)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI primary (2.6B)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI replicate (2.3B)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI maternal
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI paternal
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC001 (148M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC002 (233M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC003 (394M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC004 (131M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC005 (248M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC006 (127M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC007 (149M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC008 (162M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC009 (95M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC010 (47M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC011 (46M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC012 (144M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC013 (61M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC014 (222M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC015 (100M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC016 (99M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC017 (126M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC018 (104M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC019 (226M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC020 (297M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC021 (142M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC022 (256M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC023 (245M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC024 (88M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC025 (280M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC026 (289M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC027 (262M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC028 (58M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ MboI HIC029 (130M)
Rao and Huntley
et al. | Cell 2014 GM12878 (human) agar HIC030 (88M)
Rao and Huntley
et al. | Cell 2014 GM12878 (human) agar HIC031 (81M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) pellet HIC032 (69M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) supernatant HIC033 (31M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) dilution HIC034 (1.4B)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) dilution HIC035 (531M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) dilution HIC036 (475M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) dilution HIC037 (855M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) dilution combined (3.3B)
Rao
and Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII combined (436M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII HIC038 (81M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII HIC039 (79M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII HIC040 (94M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII HIC041 (78M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ DpnII HIC042 (104M)
Rao
and Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking combined (193M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking HIC043 (83M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking HIC044 (38M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking HIC045 (9M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking HIC046 (46M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ no crosslinking HIC047 (16M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ ENCODE Batch 1 HIC048 (82M)
Rao and
Huntley et al. | Cell 2014 GM12878 (human) in situ ENCODE Batch 2 HIC049 (88M)
Rao and
Huntley et al. | Cell 2014 IMR90 (human) in situ combined (1.1B)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC050 (180M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC051 (200M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC052 (22M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC053 (94M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC054 (191M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC055 (213M)
Rao and Huntley
et al. | Cell 2014 IMR90 (human) in situ HIC056 (238M)
Rao and
Huntley et al. | Cell 2014 IMR90 (human) dilution HIC057 (116M)
Rao and
Huntley et al. | Cell 2014 HMEC (human) in situ combined (395M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC058 (330M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC059 (7M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC060 (13M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC061 (16M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC062 (16M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) in situ HIC063 (14M)
Rao and Huntley
et al. | Cell 2014 HMEC (human) dilution HIC064 (403M)
Rao and
Huntley et al. | Cell 2014 NHEK (human) in situ combined (665M)
Rao and Huntley
et al. | Cell 2014 NHEK (human) in situ HIC065 (172M)
Rao and Huntley
et al. | Cell 2014 NHEK (human) in situ HIC066 (197M)
Rao and Huntley
et al. | Cell 2014 NHEK (human) in situ HIC067 (297M)
Rao and Huntley
et al. | Cell 2014 NHEK (human) dilution HIC068 (205M)
Rao and
Huntley et al. | Cell 2014 K562 (human) in situ combined (932M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC069 (310M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC070 (389M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC071 (64M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC072 (53M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC073 (51M)
Rao and Huntley
et al. | Cell 2014 K562 (human) in situ HIC074 (65M)
Rao and
Huntley et al. | Cell 2014 KBM7 (human) in situ combined
Rao and Huntley
et al. | Cell 2014 KBM7 (human) in situ HIC075 (108M)
Rao and Huntley
et al. | Cell 2014 KBM7 (human) in situ HIC076 (240M)
Rao and Huntley
et al. | Cell 2014 KBM7 (human) in situ HIC077 (63M)
Rao and Huntley
et al. | Cell 2014 KBM7 (human) in situ HIC078 (203M)
Rao and Huntley
et al. | Cell 2014 KBM7 (human) in situ HIC079 (273M)
Rao and
Huntley et al. | Cell 2014 HUVEC (human) in situ combined
Rao and Huntley
et al. | Cell 2014 HUVEC (human) in situ HIC080 (178M)
Rao and Huntley
et al. | Cell 2014 HUVEC (human) in situ HIC081 (109M)
Rao and Huntley
et al. | Cell 2014 HUVEC (human) in situ HIC082 (173M)
Rao and
Huntley et al. | Cell 2014 HUVEC (human) dilution HIC083 (112M)
Rao and
Huntley et al. | Cell 2014 HeLa (human) in situ combined (486M)
Rao and Huntley
et al. | Cell 2014 HeLa (human) in situ HIC084 (15M)
Rao and Huntley
et al. | Cell 2014 HeLa (human) in situ HIC085 (162M)
Rao and Huntley
et al. | Cell 2014 HeLa (human) in situ HIC086 (270M)
Rao and Huntley
et al. | Cell 2014 HeLa (human) in situ HIC087 (39M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ combined (635M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC088 (51M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC089 (31M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC090 (28M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC091 (37M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC092 (38M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC093 (17M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC094 (57M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC095 (80M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC096 (73M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC097 (70M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC098 (80M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC099 (19M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC100 (12M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC101 (19M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) in situ HIC102 (24M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) dilution HIC103 (53M)
Rao and Huntley et al. | Cell 2014 CH12-LX B-lymphoblasts (mouse) dilution HIC104 (33M)
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC105
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC106
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC107
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC108
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC109
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC110
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC111
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC112
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC113
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC114
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC115
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC116
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC117
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC118
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC119
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC120
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC121
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC122
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC123
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC124
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC125
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC127
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC128
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC129
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC130
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC131
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC132
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC133
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC134
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC135
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC136
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC137
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC138
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC139
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC140
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC141
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC142
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC144
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC145
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC146
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC147
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC148
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC149
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC150
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC151
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC152
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC153
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC154
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC155
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC156
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC157
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC158
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC159
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC160
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC161
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC162
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC163
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC164
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC165
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC166
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC167
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC168
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC169
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC170
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC171
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC172
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC173
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC175
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC176
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC177
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC178
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC179
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC180
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC181
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC182
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC183
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC184
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC185
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC186
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC188
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC189
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC190
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC191
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC192
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC193
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC194
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC195
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC196
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC197
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC198
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC199
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC200
Rao and Huntley et al.
| Cell 2014 Other MiSeq Experiments HIC201
Sanborn and
Rao et al. | PNAS 2015 Hap1 in situ
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion active X HIC001
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion active X chrX diploid
Darrow and Huntley et al. | PNAS 2016 RPE1 control combined
Darrow and Huntley et al. | PNAS 2016 RPE1 control chrX diploid
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC002
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC003
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC004
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC005
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC006
Darrow and Huntley et al. | PNAS 2016 RPE1 control HIC007
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X combined
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X chrX diploid
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC008
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC009
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC010
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC011
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC012
Darrow and Huntley et al. | PNAS 2016 RPE1 DXZ4 deletion inactive X HIC013
Darrow and Huntley et al. | PNAS 2016 Patski combined
Darrow and Huntley et al. | PNAS 2016 Patski paternal
Darrow and Huntley et al. | PNAS 2016 Patski maternal
Darrow and Huntley et al. | PNAS 2016 Patski HIC014
Darrow and Huntley et al. | PNAS 2016 Patski HIC015
Darrow and Huntley et al. | PNAS 2016 Patski HIC016
Darrow and Huntley et al. | PNAS 2016 Patski HIC017
Darrow and Huntley et al. | PNAS 2016 Patski HIC018
Darrow and Huntley et al. | PNAS 2016 Patski HIC019
Darrow and Huntley et al. | PNAS 2016 Rhesus HIC020
Darrow and Huntley et al. | PNAS 2016 GM12878 COLA HIC021
Lieberman-Aiden and van Berkum et al. | Science 2009 GM06990 NcoI
Lieberman-Aiden and van Berkum et al. | Science 2009 K562 HindIII
Lieberman-Aiden and van Berkum et al. | Science 2009 GM06990 HindIII rep 1
Lieberman-Aiden and van Berkum et al. | Science 2009 GM06990 HindIII rep2
Lieberman-Aiden and van Berkum et al. | Science 2009 GM06990 302NH
Kalhor et al.
| Nature Biotechnology 2011 TCC HindIII
Kalhor et al. |
Nature Biotechnology 2011 TCC MboI
Kalhor et
al. | Nature Biotechnology 2011 non-TCC HindIII
Kalhor et al.
| Nature Biotechnology 2011 TCC combined
Sexton et al. |
Cell 2012 Drosophila
Dixon
et al. | Nature 2012 mES HindIII original (their alignment)
Dixon
et al. | Nature 2012 mES HindIII replicate (their alignment)
Dixon et al. | Nature 2012 mES HindIII combined (our alignment)
Dixon et al. |
Nature 2012 hESC HindIII
Dixon et al.
| Nature 2012 IMR90 HindIII
Dixon et al. |
Nature 2012 mES cortex HindIII
Hou et al. |
Molecular Cell 2012 Drosophila HindIII Kc167 biological replicate
Hou et al. |
Molecular Cell 2012 Drosophila HindIII Kc167 technical replicate 1
Hou et al. |
Molecular Cell 2012 Drosophila HindIII Kc167 technical replicate 2
Lin et al. |
Nature Immunology 2012 Mouse HindIII pre proB EGS
Lin et al. | Nature
Immunology 2012 Mouse HindIII proB EGS
Lin et al. | Nature
Immunology 2012 Mouse HindIII proB FA
Li et al.
| Cell 2012 HCT116 RNAPII pilot ChIA-PET
Li et al. |
Cell 2012 HeLa RNAPII pilot ChIA-PET
Li et al. |
Cell 2012 K562 RNAPII pilot ChIA-PET
Li et
al. | Cell 2012 K562 RNAPII saturated ChIA-PET
Li et al. |
Cell 2012 MCF7 RNAPII pilot ChIA-PET
Li et
al. | Cell 2012 MCF7 RNAPII saturated ChIA-PET
Li et al. |
Cell 2012 NB4 RNAPII pilot ChIA-PET
Moissiard
et al. | Science 2012 crh6 mutant
Moissiard et al. |
Science 2012 WT
Rickman et al.
| PNAS 2012 RWPE1-ERG library 1 HindIII
Rickman et al.
| PNAS 2012 RWPE1-ERG library 2 HindIII
Rickman et al.
| PNAS 2012 RWPE1-GFP library 1 HindIII
Rickman et al.
| PNAS 2012 RWPE1-GFP library 2 HindIII
Rickman et al. | PNAS 2012 short read RWPE1-ERG library 1 HindIII
Rickman et al. | PNAS 2012 short read RWPE1-ERG library 2 HindIII
Rickman et al. | PNAS 2012 short read RWPE1-GFP library 1 HindIII
Rickman et al. | PNAS 2012 short read RWPE1-GFP library 2 HindIII
Sanyal (5C)
et al. | Nature 2012 GM12878 raw
Sanyal
(5C) et al. | Nature 2012 GM12878 raw rep1
Sanyal
(5C) et al. | Nature 2012 GM12878 raw rep2
Sanyal
(5C) et al. | Nature 2012 GM12878 filtered
Sanyal (5C) et al. | Nature 2012 GM12878 filtered rep1
Sanyal (5C) et al. | Nature 2012 GM12878 filtered rep2
Sanyal (5C) et al. | Nature 2012 GM12878 filtered+corrected
Sanyal (5C) et al. | Nature 2012 GM12878 filtered+corrected rep1
Sanyal (5C) et al. | Nature 2012 GM12878 filtered+corrected rep2
Zhang et
al. | Cell 2012 ATM I SceI chr18 HindIII
Zhang et
al. | Cell 2012 ATM I SceI chr2 HindIII
Zhang et
al. | Cell 2012 ATM I SceI chr7 HindIII
Zhang et
al. | Cell 2012 WT I SceI chr15 HindIII
Zhang et al.
| Cell 2012 WT I SceI chr2 HindIII
Jin et al. |
Nature 2013 IMR90 Combined replicates
Jin et al. |
Nature 2013 IMR90 Rep 1
Jin et al. |
Nature 2013 IMR90 Rep 2
Jin et al. |
Nature 2013 IMR90 Rep 3
Jin et al. |
Nature 2013 IMR90 Rep 4
Jin et al. |
Nature 2013 IMR90 Rep 5
Jin et al. |
Nature 2013 IMR90 Rep 6
Jin
et al. | Nature 2013 IMR90 TNF alpha Combined replicates
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 1
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 2
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 3
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 4
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 5
Jin et
al. | Nature 2013 IMR90 TNF alpha Rep 6
Le et al. | Science
2013 BglII rep1
Le et al. | Science
2013 BglII rep2
Le et al. | Science
2013 NcoI rep1
McCord et al. | Genome
Research 2013 Progeria (HGPS) Fibroblasts p17 HindIII
McCord et al. | Genome
Research 2013 Normal Father Fibroblasts p18 HindIII
McCord et al. | Genome
Research 2013 Progeria (HGPS) Fibroblasts HindIII p19
McCord et al. | Genome
Research 2013 Normal Age-Control Fibroblasts HindIII p20
Nagano et al.
| Nature 2013 Th1 ensemble
Nagano et al. |
Nature 2013 cell 1
Nagano et al. |
Nature 2013 cell 2
Nagano et al. |
Nature 2013 cell 3
Nagano et al. |
Nature 2013 cell 4
Nagano et al. |
Nature 2013 cell 5
Nagano et al. |
Nature 2013 cell 6
Nagano et al. |
Nature 2013 cell 7
Nagano et al. |
Nature 2013 cell 8
Nagano et al. |
Nature 2013 cell 9
Nagano et al. |
Nature 2013 cell 10
Naumova
et al. | Science 2013 HeLaS3 G1mid R1
Naumova
et al. | Science 2013 HeLaS3 G1mid R2
Naumova et
al. | Science 2013 HeLaS3 M R1
Naumova et
al. | Science 2013 HeLaS3 M R2
Naumova et al. | Science 2013 HeLaS3CCL2p2 G1-0.25FA
Naumova et al. | Science 2013 HeLaS3CCL2p2 G1-1FA
Naumova et al. | Science 2013 HeLaS3CCL2p2 M-0.25FA
Naumova et al. | Science 2013 HeLaS3CCL2p2 M-98percent
Naumova et al. | Science 2013 HeLaS3CCL2p2 M-1FA
Naumova et al. | Science 2013 HFF1 NS
Naumova et al. | Science 2013 HFF1 M
Naumova et al.
| Science 2013 K562 M R1
Naumova et al.
| Science 2013 K562 M R2
Seitan et
al. | Genome Research 2013 Tcell Rad21KO R1
Seitan et
al. | Genome Research 2013 Tcell Rad21KO R3
Seitan et
al. | Genome Research 2013 Tcell Rad21WT R1
Seitan et
al. | Genome Research 2013 Tcell Rad21WT R3
Sofueva
et al. | EMBO Journal 2013 mAST WT adv cre rep1
Sofueva
et al. | EMBO Journal 2013 mAST floxed rep1
Sofueva
et al. | EMBO Journal 2013 mAST floxed rep2
Sofueva
et al. | EMBO Journal 2013 mAST deleted rep1
Sofueva
et al. | EMBO Journal 2013 mAST deleted rep2
Sofueva
et al. | EMBO Journal 2013 mNSC floxed rep1
Sofueva
et al. | EMBO Journal 2013 mNSC floxed rep2
Sofueva
et al. | EMBO Journal 2013 mNSC deleted rep1
Sofueva
et al. | EMBO Journal 2013 mNSC deleted rep2
Sofueva et al. |
EMBO Journal 2013 mNSC WT rep1
Sofueva et
al. | EMBO Journal 2013 mNSC WT OHT rep1
Sofueva et al. |
EMBO Journal 2013 mAST WT rep1
Wang
et al. | PLoS One 2013 MHH-CALL-4 B-cell acute lymphoblastic leukemia HindIII
Wang et al. |
PLoS One 2013 Primary tumor B-cells acute lymphoblastic leukemia HindIII
Wang et
al. | PLoS One 2013 Normal B-cells HindIII
Wang et al. |
PLoS One 2013 RL follicular lymphoma HindIII
Zuin et
al. | PNAS 2013 HEK293T RAD21cv HRV combined
Zuin et al. | PNAS 2013 HEK293T RAD21cv HRV Rep 1
Zuin et al. | PNAS 2013 HEK293T RAD21cv HRV Rep 2
Zuin et
al. | PNAS 2013 HEK293T RAD21cv TEV combined
Zuin et al. | PNAS 2013 HEK293T RAD21cv TEV Rep 1
Zuin et al. | PNAS 2013 HEK293T RAD21cv TEV Rep 2
Zuin et
al. | PNAS 2013 HEK293T siRNA CTCF combined
Zuin
et al. | PNAS 2013 HEK293T siRNA CTCF Rep 1
Zuin
et al. | PNAS 2013 HEK293T siRNA CTCF Rep 2
Zuin et
al. | PNAS 2013 HEK293T siRNA ctrl combined
Zuin
et al. | PNAS 2013 HEK293T siRNA ctrl Rep 1
Zuin
et al. | PNAS 2013 HEK293T siRNA ctrl Rep 2
Ay
et al. | Genome Research 2014 0h
Ay
et al. | Genome Research 2014 18h
Ay et al. | Genome Research 2014 18h non-crosslinked control
Ay
et al. | Genome Research 2014 36h
Feng et
al. | Molecular Cell 2014 6WT control 6WT 337
Feng et al.
| Molecular Cell 2014 6WT control 6WT 67
Feng et al. |
Molecular Cell 2014 6WT 337
Feng et al. |
Molecular Cell 2014 6WT 67
Feng et al. | Molecular
Cell 2014 Col0
Feng et al. |
Molecular Cell 2014 CLF28 SWN7
Feng et al. |
Molecular Cell 2014 CMT3 11
Feng et al. |
Molecular Cell 2014 DDM 1-2
Feng et al. |
Molecular Cell 2014 MET 1-3
Feng et
al. | Molecular Cell 2014 SUVH4 SUVH5 SUVH6
Grob et al. | Molecular
Cell 2014 Col
Grob et al. |
Molecular Cell 2014 crwn1
Grob et al. |
Molecular Cell 2014 crwn4
Barutcu et al. |
Genome Biology 2015 MCF-10A
Barutcu et al. |
Genome Biology 2015 MCF-7
Batullin et al. |
Genome Biology 2015 Sperm Hi-C HindIII
Deng and Ma et
al. | Genome Biology 2015 Patski rep1
Deng and Ma et
al. | Genome Biology 2015 Patski rep2
Deng and Ma et al. |
Genome Biology 2015 Patski rep1+rep2
Deng and Ma et
al. | Genome Biology 2015 Patski active
Deng and Ma
et al. | Genome Biology 2015 Patski inactive
Deng and Ma et
al. | Genome Biology 2015 Mouse brain DNAse
Deng and
Ma et al. | Genome Biology 2015 Mouse brain in-situ DNAse
Deng and Ma et al. |
Genome Biology 2015 Mouse brain combined replicates
Deng and Ma et
al. | Genome Biology 2015 Mouse brain active
Deng and Ma
et al. | Genome Biology 2015 Mouse brain inactive
Ma et al. |
Nature Methods 2015 DNase HiC WG K562
Ma et al. |
Nature Methods 2015 DNase HiC WG H1
Ma et al. | Nature Methods 2015 Targeted DNase HiC lincRNA K562 rep1
Ma et al. | Nature Methods 2015 Targeted DNase HiC lincRNA K562 rep2
Ma et al. | Nature Methods 2015 Targeted DNase HiC lincRNA H1 rep1
Ma et al. | Nature Methods 2015 Targeted DNase HiC lincRNA H1 rep2
Ma
et al. | Nature Methods 2015 Targeted DNase HiC pe H1
Ma et al. | Nature Methods 2015 Targeted DNase HiC pe K562
Minajigi and
Froberg et al. | Science 2015 WT hiC rep1
Minajigi and
Froberg et al. | Science 2015 WT hiC rep2
Minajigi and
Froberg et al. | Science 2015 rep1+rep2
Minajigi and
Froberg et al. | Science 2015 inactive
Minajigi and
Froberg et al. | Science 2015 active
Rudan et
al. | Cell Reports 2015 Canis lupus rep1
Rudan et
al. | Cell Reports 2015 Canis lupus rep2
Rudan et al. |
Cell Reports 2015 Mouse rep1
Rudan et al. |
Cell Reports 2015 Mouse rep2
Rudan et al. |
Cell Reports 2015 Macaque rep1
Rudan et al. |
Cell Reports 2015 Macaque rep2
Rudan et al. |
Cell Reports 2015 Rabbit rep1
Rudan et al. |
Cell Reports 2015 Rabbit rep2
Tang Luo Li et al. |
Cell 2015 GM12878 ChIA-PET
Xie et al. |
Molecular Plant 2015 Arabidopsis
Cubenas-Potts
and Rowley et al. | Nucleic Acids Research 2016 Kc167 DpnII
Cubenas-Potts
and Rowley et al. | Nucleic Acids Research 2016 Kc167 HinfI
Cubenas-Potts and Rowley et al. | Nucleic Acids Research 2016 Kc167 DpnII HinfI
Mumbach Rubin and Flynn et al. | Nature Methods 2016 GM12878 cohesin combined
Mumbach Rubin and Flynn et al. | Nature Methods 2016 mESC cohesin combined
Mumbach Rubin and Flynn et al. | Nature Methods 2016 mESC oct4 combined
Eagen et al. | bioRxiv 2017 Kc167 combined
Eagen et al. | bioRxiv 2017 Kc167 combined randomized
Haarhuis et
al. | Cell 2017 Hap1 knockout WAPL clone 1
Haarhuis et
al. | Cell 2017 Hap1 knockout WAPL clone 2
Haarhuis et al. |
Cell 2017 Hap1 knockout SCC4
Haarhuis et al. |
Cell 2017 Hap1 double knockout WAPL/SCC4
Haarhuis et al. |
Cell 2017 Hap1 control


Play with sounds, and them add them to one of last week's files
Add the class "hide" when you don't want to see the controls
wrong
Your browser does not support the audio tag.
Us the application Audacity to get a sound and save it both mp3 and ogg formats
correct
Your browser does not support the audio tag.


Before the sprint: Set up instructions¶
Make sure you bring your own laptop to the sprint.
You need the next software installed:
- Git
- An editor (vim, emacs, PyCharm,…). Make sure the editor is set up to use 4 spaces for tabs.
The pandas contributing guide contains detailed instructions on how to set up a pandas development environment. This document is a short summary with some additional information specific to the sprint.
Note
The steps below will download around 900Mb for the pandas repository, and around 600Mb for Anaconda from the Internet. If you don’t have access to a fast Internet connection, contact your local chapter organizer, who will try to get a copy of both on a usb key.
Note
Windows users: Video tutorial: Set up pandas development environment in Windows by Frank Akogun.
Instructions¶
1. Create a GitHub account¶
If you don’t have a GitHub account yet, simply go to https://github.com/join, and provide your personal information (name, email…). Select the free plan.
2. Get the pandas source code¶
All the changes during the sprints need to be made to the latest development version of pandas in a Git repository. Do not make them to a version downloaded from the Internet via pip, conda or a zip.
Follow these steps to get the latest development version:
Fork the pandas repository on GitHub by clicking the Fork button on the top-right
Note
Windows users: run the next commands in a Git Bash session in the directory where you want to download pandas source code (download Git for Windows if needed).
In the terminal of your computer, in the directory where you want the copy of pandas source code, run:
git clone https://github.com/<your-github-username>/pandas
or (if you have set up SSH keys for accessing GitHub):
git clone git@github.com:<your-github-username>/pandas
This will create a directory named pandas
, containing the latest version of
the source code. We will name this directory <pandas-dir>
in the rest of
this document.
Make sure you’re in the root of the <pandas-dir>
directory.
cd <pandas-dir>
Then, set the upstream remote, so you can fetch the updates from the pandas repository:
git remote add upstream https://github.com/pandas-dev/pandas
or (if you have set up SSH keys for accessing GitHub):
git remote add upstream git@github.com:pandas-dev/pandas
To fetch the latest updates from the pandas repository, follow the steps in Syncing a Fork:
git fetch upstream
git checkout master
git merge upstream/master
3. Set up a Python environment¶
Download and install Anaconda.
Note
Windows users: run the next commands in the Anaconda Prompt (found in the Anaconda folder of the Start menu).
Activate conda in one of the following ways (or equivalent, if you know what you’re doing):
- If you chose to prepend Anaconda to your PATH during install adding it to
your
~/.bashrc
, just restart your terminal. - Otherwise, run
export PATH="<path-to-anaconda>/bin:$PATH"
in your terminal. Keep in mind that it will be active exclusively in the terminal you run this command.
- If you chose to prepend Anaconda to your PATH during install adding it to
your
Create a conda environment:
conda env create -n pandas_dev -f <path-to-pandas-dir>/ci/environment-dev.yaml
Note
Windows users: If you’re copy-pasting the path, replace all pasted
\
characters with/
for the command to work.Activate the new conda environment:
source activate pandas_dev
Install pandas development dependencies:
conda install -c defaults -c conda-forge --file=<path-to-pandas-dir>/ci/requirements-optional-conda.txt
4. Compile C code in pandas¶
Besides the Python .py files, pandas source code includes C/Cython files which need to be compiled in order to run the development version of pandas.
Note
Windows users: to compile pandas, you need to install Visual Studio 2017. You need Visual Studio Community 2017 (2.5GB download during installation) as a minimum. Visual Studio Code does not support the required Build Tools and will not work.
Select the workload “Python development” and the option “Python native development tools” on the right side.
Users of legacy Python 2.7 should install Microsoft Visual C++ Compiler for Python 2.7 instead.
After the installation, run the following commands in Anaconda Prompt.
To compile these files simply run:
cd <pandas-dir>
python setup.py build_ext --inplace
The process will take several minutes.
5. Create a branch and start coding¶
On the day of the sprint, you will get assigned one pandas function or method to work on. Once you know which, you need to create a git branch for your changes. This will be useful when you have finished your changes, and you want to submit a pull request, so they are included in pandas.
Note
Windows users: run the next commands with Git Bash started in the cloned pandas folder.
Before creating a branch, make sure that you fetched the latest master version of the upstream pandas repository. You can do this with:
git checkout master
git pull upstream master --ff-only
Then, you can create a new git branch running:
git checkout -b <new_branch_name>
The branch name should be descriptive of the feature you will work on. For
example, if you will work on the docstring of the method head
, you can
name your branch docstring_head
.
If during the sprint you work in more than one docstring, you will need a branch for each.
To check in which branch are you:
git branch
To change to another branch:
git checkout <branch_name>


The page you requested cannot be found.It might have been removed, had its name changed, or is temporarily unavailable.
Click here to return to our home page.


Subject: Password Reset --- {{> header }}
Hi There
We have received a request to reset your password for {{settings.brandName}}
If you did not initiate this request, please ignore this email.
To reset your password please follow this link {{settings.resetPasswordURL}}?code={{code}}
Kind regards
The {{settings.brandName}} team
{{> footer }}


Set credentials
1.  Get a list of all contacts - GET /contact
3. Retrieve general details for all contact lists - GET /contactslist
4. Get all email templates - GET /template
5. Get a list of all click events - GET /clickstatistics
6. Get a list of all open events - GET /openinformation


--- layout: post date: 2009-08-03 time: "09:00:00" authors: ["Greg Wilson"] title: Guest Speakers' Slides Now Available tags: ["Content"] ---
Our guest speakers' slides are now on the web; video will follow soon.


{% load static %}
This website requires that Javascript be enabled on your browser.
Instructions for enabling Javascript in your browser can be found here


Shoveller, shoveller, what do you shovel?
I shovel the muck outside my hovel.

Not on your nelly, for shovel I must
The muck and the filth and the pebbles and dust,
I must shovel it all into Widdecombe Ditch
And cover it o'er with tar and pitch.
Shoveller, shoveller, come skip with me
Round about the linden tree
We'll skip in circles 'til we drop
Then go to the kiosk for a drink of pop.
Away with you, temptress! Siren! Witch!
I only drink water from Widdecombe Ditch.
It's black and brackish and tastes quite foul.
 [She turns into an owl.]


Lawsuit accuses Facebook ad targeting of abetting bias
by AFPSAN FRANSISCO: A lawsuit filed on Thursday accuses Facebook of letting ad targeting tools be used to exclude women and older people from offers regarding loans, investments, and other financial services.
Two law firms have filed a discrimination suit in San Francisco federal court on behalf of a 54-year-old woman living in Washington and will ask a judge to grant the case class-action status.
“Women and older persons are entitled to full and equal services of businesses such as Facebook, and the financial services companies that advertise on Facebook’s platform,” attorney Matthew Handley said in a statement.
“Purposeful targeting of advertisements away from these members of our community unlawfully denies them these guarantees.”
The suit contends that women and older people were denied the benefits of ads for financial services because Facebook tools allow messages to be targeted at specific age ranges or genders.
Facebook said it is reviewing the complaint.
“We’ve made significant changes to how housing, employment, and credit opportunities are run on Facebook and continue to work on ways to prevent potential misuse,” a spokeswoman for the leading social network told AFP.
“Our policies have long prohibited discrimination and we’re proud of the strides we’re making in this area.”
Facebook announced earlier this year that it was revamping how it uses targeted advertising in a settlement with activist groups alleging it discriminated in messages on jobs, housing, credit, and other services.
Under those changes, housing, employment or credit ads would no longer be allowed to target by age, gender or zip code — a practice critics argued had led to discrimination.
In the settlement, Facebook agreed to take “far-reaching measures to stop advertisers from using age, gender, and other protected traits to target job, housing, and credit ads,” according to the law firms involved in the new suit.
“Today’s lawsuit alleges that Facebook has not taken any action to stop advertisers from excluding older persons and women from getting financial services ads on Facebook, other than in the limited area of credit ads,” the law firms said.


SimpleTree Plugin is intended for displaying tree structures.
SimpleTree key features:
AJAX upload method:
If there is a need in AJAX upload, then place UL
with "ajax" class and tag
LI with URL for a loadable item.
example:

Tree Node 1-1

{url:tree_load.php?tree_id=1}

|
Example 1. This example demonstrates this script (all values set by default) $('#tree1').simpleTree(); |
Example 2. This example demonstrates animation. $('#tree2').simpleTree({animate: true}); |
|
|
| Example 3. This example shows animation and branches collapse. $('#tree3').simpleTree({animate: true,autoclose:true}); |
Example 4. Example of using expanded branches loaded prior to menu is generated. Just assign a class for tag LI, i.e.
 $('#tree3').simpleTree({animate: true,autoclose:true}); |
|
|


projects/dvk/src/lib/dynamic-animations/dynamic-animations.directive.ts
This directive is the main interface to dynamic animations. It should be attached to the element that is to be animated.
In a component define a string member to represent the state of the Animations. This is analogous to a trigger in normal Angular animations.
Then define the animations as an array of state and transition function calls from the Angular animations module.
Optionally specify a map of state names to css class names that will be added and removed from the element as the animations start and finish.
Then pass those values into this directives state and animations Inputs.
If a :leave animation, or *=>void, is speciied you must also both add the @dvkLeave directive to the element and add dvkLeave to the component as a static animation. This step is only necessary for a :leave animation. Otherwise it can be skipped.
The animations can then be played by changing the string bound to the state Input.
`
ts
\@Component({
template: `
<div *ngIf="newShow"
dvk-da
| selector | [dvk-da] |
Methods |
Inputs |
constructor(element: ElementRef, daService: DynamicAnimationsService, tranService: NgTransitionService, statesService: NgStateService, dvkLeave: LeaveDirective)
|
||||||||||||||||||
|
Parameters :
|
animations
|
The description of the animations to play as an array of state and transition Angular animation functions.
Type: |
cssMap
|
The map of state name to css class names to apply as the state changes.
Type: |
state
|
Changing the value of state will cause a transition and play an animation if one is defined for that state change.
Type: |
| ngOnDestroy |
ngOnDestroy()
|
|
Returns :
void
|
| ngOnInit |
ngOnInit()
|
|
Returns :
void
|
| state | ||||||
setstate(state: string)
|
||||||
|
Changing the value of state will cause a transition and play an animation if one is defined for that state change.
Parameters :
Returns :
void
|
| animations | ||||||
setanimations(animations: [])
|
||||||
|
The description of the animations to play as an array of state and transition Angular animation functions.
Parameters :
Returns :
void
|
import { Directive, Input, OnInit, OnDestroy, ElementRef, Optional } from '@angular/core';
import { AnimationTransitionMetadata, AnimationStateMetadata, AnimationMetadata } from '@angular/animations';
import { StateCSSMap } from './state-css-map/state-css-map.model';
import { DynamicAnimationsService } from './dynamic-animations.service';
import { NgTransitionService } from './ng-transition/ng-transition.service';
import { DynamicAnimationsHandler } from './dynamic-animations-handler/dynamic-animations-handler.model';
import { NgTransitionStates } from './ng-transition/ng-transition.states';
import { LeaveDirective } from './leave/leave.directive';
import { NgStateService } from './ng-state/ng-state.service';
/**
* This directive is the main interface to dynamic animations.
* It should be attached to the element that is to be animated.
*
* ## Directions
*
* In a component define a string member to represent the state
* of the Animations. This is analogous to a trigger in normal
* Angular animations.
*
* Then define the animations as an array of state and transition
* function calls from the Angular animations module.
*
* Optionally specify a map of state names to css class names that
* will be added and removed from the element as the animations
* start and finish.
*
* Then pass those values into this directives state and animations
* Inputs.
*
* If a :leave animation, or *=>void, is speciied you must also both
* add the @dvkLeave directive to the element and add dvkLeave to
* the component as a static animation. This step is only necessary
* for a :leave animation. Otherwise it can be skipped.
*
* The animations can then be played by changing the string bound to
* the state Input.
*
* ## Example
*
* ```ts
* \@Component({
* template: `
* <div *ngIf="newShow"
* dvk-da
* @dvkLeave
* [state]="myState"
* [animations]="myAniamtions"
* [cssMap]="myCssMap">
* `
* animations:[dvkLeave]
* })
* ```
* class MyComponent {
* myState: string = 'closed';
* myAniamtions = [
* state('open',style({
* 'transform': `scaleY(1.0)`,
* 'transform-origin': 'top'
* })),
* state('closed',style({
* 'transform': `scaleY(0.0)`,
* 'transform-origin': 'top'
* })),
* transition('open<=>closed',animate('200ms')),
* transition(':enter',animate('200ms',
* style({ 'background-color': 'green' })),
* transition(':leave',animate('200ms',
* style({ 'background-color': 'red' }))
* ]
* myCssMap = {
* 'open': 'is-open',
* 'closed': 'is-closed'
* }
*
* toggleState() {
* if(this.myState === 'closed') {
* this.myState = 'open';
* }
* else {
* this.myState = 'closed';
* }
* }
* }
* ```
*
* <example-url>../examples/index.html#/DynamicAnimations</example-url>
*/
@Directive({
selector: '[dvk-da]'
})
export class DynamicAnimationsDirective implements OnInit, OnDestroy {
/**
* @ignore
*/
private stateMode: 'string' | 'number' = 'string';
/**
* @ignore
*/
private animationsHandler: DynamicAnimationsHandler;
/**
* @ignore
*/
private strState: string;
/**
* Changing the value of state will cause a transition
* and play an animation if one is defined for that state
* change.
*/
@Input() set state(state:string) { // | number)
this.strState = state;
if(this.animationsHandler) {
this.animationsHandler.nextState(this.strState);
}
}
/**
* @ignore
*/
private transitions: AnimationTransitionMetadata[];
/**
* @ignore
*/
private states: AnimationStateMetadata[];
/**
* The description of the animations to play as an array
* of state and transition Angular animation functions.
*/
@Input() set animations(animations: (AnimationTransitionMetadata | AnimationStateMetadata)[]) {
this.transitions = [];
this.states = [];
animations.forEach(animation=>{
if(this.isTransition(animation)) {
this.transitions.push(animation);
} else if (this.isState) {
this.states.push(animation);
}
});
}
/**
* @ignore
*/
private isTransition(metaData: AnimationMetadata): metaData is AnimationTransitionMetadata {
return !!(metaData as AnimationTransitionMetadata).animation;
}
/**
* @ignore
*/
private isState(metaData: AnimationMetadata): metaData is AnimationStateMetadata {
return !!(metaData as AnimationStateMetadata).styles;
}
/**
* The map of state name to css class names to apply
* as the state changes.
*/
@Input() cssMap: StateCSSMap;
constructor(
private element: ElementRef,
private daService: DynamicAnimationsService,
private tranService: NgTransitionService,
private statesService: NgStateService,
@Optional()
private dvkLeave: LeaveDirective) {
if (this.dvkLeave) {
this.dvkLeave.setLeaveTiming("500ms");
}
}
ngOnInit() {
this.animationsHandler = this.daService.createAnimationsHandler(
this.element.nativeElement,
NgTransitionStates.Void,
this.tranService.buildAnimationTransitions(this.transitions),
this.statesService.parseStates(this.states),
this.cssMap);
// enter
this.animationsHandler.nextState(this.strState);
}
ngOnDestroy() {
// leave
this.animationsHandler.nextState(NgTransitionStates.Void)
}
}


Modulr is a Dependency Injection (DI) framework for R which allows to break down sequential programs into discrete, modular units that are loosely coupled, simple to develop, test, debug, maintain, reuse, and share.
modulr/vault
for an example.with_no_packages()
can be used to run code with temporarily no loaded or attached R packages.Please read the documentation and vignettes (browseVignettes(package = "modulr")
) to see extended examples in action.
library(modulr)
"foo" %provides% "Hello"
#> [2018-12-02T16:13:53 UTC] Defining 'foo' ... OK
"bar" %provides% "World"
#> [2018-12-02T16:13:53 UTC] Defining 'bar' ... OK
"foobar" %requires% list(
f = "foo",
b = "bar"
) %provides% {
paste0(f, ", ", tolower(b), "!")
}
#> [2018-12-02T16:13:53 UTC] Defining 'foobar' ... OK
make("foobar")
#> [2018-12-02T16:13:53 UTC] Making 'foobar' ...
#> [2018-12-02T16:13:53 UTC] * Visiting and defining dependencies ...
#> [2018-12-02T16:13:53 UTC] * Constructing dependency graph ... OK
#> [2018-12-02T16:13:53 UTC] * Sorting 2 dependencies with 2 relations ... on 1 layer, OK
#> [2018-12-02T16:13:53 UTC] * Evaluating new and outdated dependencies ...
#> [2018-12-02T16:13:53 UTC] ** Evaluating #1/2 (layer #1/1): 'bar' ...
#> [2018-12-02T16:13:53 UTC] ** Evaluating #2/2 (layer #1/1): 'foo' ...
#> [2018-12-02T16:13:53 UTC] DONE ('foobar' in 0.059 secs)
#> [1] "Hello, world!"
install.packages("devtools")
devtools::install_github("hadley/devtools")
devtools::install_github("aclemen1/modulr")
If you encounter a clear bug, please file a minimal reproducible example. For questions and other discussion, please use the modulr mailing list.
This is the dependency graph of a module (on the rightmost side) which exposes tidy, exhaustive, statistics-ready, and daily HR data for the University of Lausanne, Switzerland. Although not visible here, many of these modules are reused in other projects. The University of Lausanne has been running modulr in mission critical applications since March 2015.
In order to have a more open and welcoming community, modulr adheres to a Contributor Code of Conduct. Please adhere to this code of conduct in any interactions you have in the modulr community. It is strictly enforced on all official modulr repositories, websites, and resources. If you encounter someone violating these terms, please let the maintainer know and he will address it as soon as possible.


Preparation time
over 2 hours
Cooking time
30 mins to 1 hour
Serves
Serves 8-10
Dietary
This treacle-enhanced loaf of walnut bread is shaped into a flower for a dramatic presentation.
Combine the dry ingredients in the bowl of a free-standing electric mixer fitted with a dough hook.
Add all the remaining ingredients apart from the egg, with 250ml/9fl oz tepid water and begin kneading on a slow speed. Add up to 100ml/3½fl oz more water a little at a time to make a soft, but not wet dough.
Knead on a slow speed for approximately two minutes, then increase the speed and knead for four minutes on a medium speed.
Turn the dough out onto a lightly floured work surface and knead by hand, breaking any large walnut pieces that remain, until the dough is smooth and pliable. Set aside in a large, lightly oiled bowl, covered with a tea towel to prove for approximately one hour, or until the dough has doubled in volume.
Knock back the dough and separate 200g/7oz off from the rest. Set aside, covered while you shape the loaf.
Form the larger portion of the dough into a smooth cob flattened slightly into a circle approximately 30cm/12in in diameter and place onto the lined baking tray.
Place a 7.5cm/3in round cutter in the middle of the dough. Cut the dough around the periphery using a knife to create 16 segments (petals).
Twist each petal 90 degrees. Cut out the circle of dough from the centre and shape into a ball. Set aside, covered with a tea towel.
Divide the reserved 200g/7oz of bread dough into two balls. Roll these out thinly into circles. Divide each circle into eight triangles. Place the short ends of each triangle within the central hole and fold back the points into the centre to create inner petals of the flower.
Place the reserved ball of dough back in the centre of the flower. Cover with oiled cling film and prove again until the dough has doubled in size.
Preheat the oven to 210C/fan oven 190C/Gas 7 and line a baking tray with baking parchment
Brush the inner petals with the beaten egg and dust the outer petals with a little white flour
Using the tip of a sharp knife cut the central boule to mimic the appearance of the centre of a flower.
Bake for 30-35 minutes until the loaf sounds hollow when the base is tapped.


1. Make the most of Early Childhood
It is the most early years that the connections within the child’s brain are formed. These are the connections that build brain architecture - the foundation upon which all later learning, behaivour and health depend.
Because of this, what you do at home - nurturing your child, helping them develop those essential brain connections through play and interaction with you as parents is critical.
- Expose your child to a broad vocabulary and a love of reading.
Tips to expand your child’s vocabulary
- talk to them regularly
- drop the baby talk
- read books to them
- label household items
- share stories and ask questions
- encourage them to write and read on their own
- pay attention to their vocabulary and correct mistakes constructively
-
repeat words and meanings multiple times so they fully understand the
-
Be a positive role model about the importance of eductation
-
Expose your children to stimulating environments
-
Minimise your child’s exposure to stress
- Don’t forget to play
There is a deep need to set aside time for unstructured play. Playing is very important to their development!
2.  What you do and say has a big influence on them.
Be respectful and constructive when dealing with your child’s school and its teachers.
Model a positive attitude about education.
Emphasise that maths is important and talk about it positively.
Be a positive role model to your children about self-discipline, well-being and resilience.
3.
Not all children start school with the same skills and ability.
Don’t stress - all children progress through their learning differently.
Avoid the temptation to compare your children with other children.
Avoid repeating a year if possible.
4. Find the right school for your child
Start your school search closer to home.
How schools handle student behaviour and bullying is important.
Don’t be afraid to ask questions, especially of the principle and teaching staff.
Don’t use NAPLAN results as the only source of information about schools.
Find out about schools by talking to people who know the school and by visiting schools.
Don’t listen to gossip. Make your own informed decisions.
5. Partner closely with your child’s school
Develop a strong three-way partnership. There are two key roles parents play in this partnership. The first is to prepare, encourage and support your child so they are ready to learn from the moment they walk into school everyday. The second is to maintain an effective three-way communication with the school so you know how your child is progressing in the classroom and in their other school relationships. It’s also important that teachers know what’s happening in the home environment to maximise their efforts at being effective teachers.
Children who tend to have the best school experience turn up to school almost every day well rested, well fed and in a positive frame of mind about their education. They also have good social and emotional skills taught and modelled by their parents and loved ones at home. Knowing how to behave appropriately, demonstrating self-discipline, having the ability to delay gratification and showing resilience are all skills that help children get the most out of their school experience and life in general.
These fundamental ‘home curriculum’ skills need to be locked in to children so that they are ready to learn during the day at school. When children come home from school we need to reinforce what they have learnt at school, reinforce the value of education and make sure our children get a good night’s sleep so they’re ready for the next day.
6. Seek advice if your child has special needs
Seek assistance as soon as you think your child might need extra support.
Your child has a right to enrol at school.
Make sure you find out the schooling and care options available to your child.
Planning and coordinating educational decisions together with your child is important.
7. Set high expectations for your child
Set expectations for your child carefully and thoughtfully so they respond by stepping up, doing their best, working hard and ‘reaching’ for those expectations.
It’s important to explain that you are setting high expectations because you think your child is capable of achieving them and, in many cases, greater than your child probably thinks that they themselves can achieve. Explain that they’re stretch targets and will require hard work for your child to achieve. Natural talent will not be enough. Explain clearly that your expectation is that they work towards those goals and they you will be satisfied know your child worked as hard as they could to achieve them, even if they did’nt make it. Praise great progress and praise the journey of progress your child has been on. Praise the effort and praise the skill that they have been used even if they don’t quite hit the mark.
 We want to get away from the idea that performance an all-or-nothing concept.
You want your child to enjoy the experience of learning, not just be focused on exam or assignment marks. Maximise the effort to meet those expectations and the enjoyment of the learning journey; minimise the stress if your child does not get there.
-
Set high expectations with your child
-
Praise your child’s effort more than the outcome.
-
Motivate your child by helping them set ‘personal best’ goals.
-
Use disappointment as a teaching moment for your child.
-
Teach your child about keeping their school results in perspective.

8. Understand the role of homework
-
As children get older the more value there is in homework.
-
Homework should be practise, practise, practise.
-
There should be timely feedback, marking and discussion of homework.
-
The right type and the right amount of homework is important.
-
Oversee and support your child’s homework - don’t do it for them.
9. Stay informed about your child’s progress
Improvement in a child’s learning is the key academic outcome most parents expect from their child’s school. Improvement is important because, irrespective of where a child starts in any school year, what matters to the majority of parents is that their child keeps improving. How much improvement and how it’s measured is a subject of enormous debate.
We need to know how our children are doing at school so that we can play an effective role as partners in improving our children’s learning.
With regards to talking to your child about school… the tip is to ask them what conversations they had with their teachers, were there areas where they disagreed with their teacher or other students and what were they about? These are good questions to start a deep conversation.
Speak regulary with your child’s teacher.
School reports are a starting point.
5 questions to ask in parent-teacher interviews:
- How has my child’s education improved during the year?
- Where should my child be now?
- What does my child need to learn next?
- Is my child engaged in class and enjoying the subject?
- Is my child happy?
Use the ACARA website work samples and learning progressionsto compare the standard.
10. Understand NAPLAN
It’s the students gain/improvement over the years that matters.
Beware of coasting schools.
11.  Take advantage of all the opportunities the school offers. Enjoy sports carnivals, musical events, parent forums and school based programs like school development days. If you’re able to, help out on excursions, volunteer to work at the school canteen occasionally or regularly or maybe coach or offer to manage a sporting team.
Remember your child will have unique learning experiences and memories of high school.
Three key factors to help your child choose elective subjects:
- pursue subjects that reflect their strengths
- choose subjects that will keep them interested
- choose subjects that will keep them motivated
12. Manage your child’s use of technology
-
Reduce your own screen time to set an example
-
Set and enforce realistic, firm rules about screen time.
-
Don’t allow screens in your child’s bedroom.
-
Use parental controls to help manage your child’s screen time and their access to restricted content.
-
Being bored has its benefits for children and adults.
Final Thoughts
Don’t be pressured to get parenting right all the time.

Enjoy the experience of having a child at school.
Remember that ultimately, we want our children to leave school happy with what they have achieved, have had every opportunity to learn to their fullest potential and with their well-being and resilience supported and strengthened.


--- layout: post authors: ["Daniel Chen"] title: "Teaching Bimodal Workshops with a Large Range" date: 2015-11-05 time: "07:00:00" tags: ["Teaching"] ---
Teaching a technical class always has its challenges. Teaching a technical workshop covering 3 or more topics over the span of 2 days is what makes us Software Carpentry instructors.
A common observation instructors have is the class demographics are bimodal/multimodal. There are students who attend the workshop with little to no experience, some have been using the tools we teach but want a more formal course, and finally, a student may know some of the tools, but use the workshop to learn Git or Python, for example. How do we as instructors deal with workshops where the range of student skills is extremely high?
This post is a case study of my most recent workshop and a call for help and discussion about we should do to make our workshops enjoyable for everyone. In many ways it is a complement to Peter and Cam's post Pulling In Those Left Behind.
A few weeks ago I taught with Zhou Fu at Virginia Tech. We used the usual SWC low-tech-but-highly-effective dual-color sticky-note system, and at the end of each day or session we asked students to provide feedback: something good, something bad.
My co-instructor, Zhuo, taught Bash and Git while I lead a
Git capstone project
and the Python sessions.
It's great that our lessons are modular and self-contained:
if a student gets lost in either of the Bash, Git, or Python lessons,
it does not hinder their ability to learn the other topic
(although being able to cd
to a directory and knowing what a working directory does help).
This workshop was different for me in that I've never had to teach a group with this wide of a skill gap. On one end, we had novices completely new to everything we had to offer in the workshop. On the other, we had a sys admin looking to port Perl scripts into Python. From the workshop-pre questionaire, everyone reported some language to the question, "With which programming languages, if any, could you write a program from scratch which imports some data and calculates mean and standard deviation of that data?" The least frequent coding frequency was "once a month".
I went into the workshop almost afraid that I'll run out of things to talk about because
many of the basic programming concepts in our material would be easy to pick up for individuals who have programming experience.
My plan going into the workshop was to run though the inflammation material for Python, cover through loops and functions,
and show them a little about using asserts to unit test functions and ask them for topics they wanted to cover for day 2.
I had a few topics already planned out for Day 2:
reading in files,
string parsing,
and an intro to the os
and sys
modules,
and hoped to have a smorgasburg of topics that I got from the students the previous day when I asked them for feedback.
In hindsight (and from feedback), this is when range of skills became an issue.
Up until the end of the workshop, I imagined the pace I was moving was realatively okay. It could be a little fast at times but I figured the skills reported in the pre-workshop questionaire, and the feedback at the end of the first day suggested that more advanced topics can be covered. It wasn't until the end of the day when I collected feedback, that I realized that I had lost a few people from the class. Attrition from the second day was relatively the same as I expected (not many people will be able to completely block off 2 full days from his/her schedule), any by the end of the day I only got 3 bits of feedback on sticky notes, two of which commented that the Python session was too fast and was a "waste of time", and how the student was disappointed because they were looking forward to the section.
During my reflection of the workshop the past few weeks, I've realized my failure as an instructor to promote an environment where more novice students could feel they can ask questions and slow down the class on questions they had. My call to the rest of the community is how do we as instructors deal with extreme ranges in the classroom. Many of the solutions may be similar to a recent post by Peter Steinbach and Cam Macdonnell. Over the past few weeks I've contemplated what we should do if this happens to us and we are caught off guard.
I've only been able to come up with the following suggestions:
From Peter and Cam's blog post, they mentioned:
After reading Peter's and Cam's blog post, I will begin explicitely show the course website and lesson when moving between modules. This will not only re-prompt the students that the matrial is availiable online (a common question asked is where the material is and if there is a reference guide), but also pause the lession momentarily, and be able to see the overall purpose of the next part of the lesson. I do a lot of (almost exclusively) live-coding when I teach. I want to believe that I convey the goal of the lesson module as I go though the lessons, but it doesn't hurt to project it to the screen. When I teach Git, I always have the students go though a capstone example. What I should have done for the second day of Python was begin with a group project that covered all the topics of the previous day. I imagined that since I was teaching a more advanced group, I did not have to do this, I was wrong. I was more concerned if I could cover the additional topics from the feedback the previous day. In doing so, I went way to fast, and probably lost a chunk of the class, and may have even completely dissuaded some from programming again.
We give out pre-workshop surveys to assess the students before the workshop so we as instructors can prepare the type of instruction that fits the skill level. However, this system relies heavily on individuals responding to the survey. Since many workshops use Eventbrite as a means to register students for the workshop, perhaps students can pick a "beginner", "intermediate", or "advanced" ticket. We can give operational definitions for each ticket type, and link to the pre-survey questionaire. This way, we can at least get a count of self-profficiecny from every student attending.
The next few weeks the assessment committee is planning to revamp the pre/post questionaires for the students and instructors. Any additional comments and suggestions would be most appreciated.


We build some of the best websites this side of the Atlantic. Your requirements determine what technology and platforms we will be developing your website on. Ranging from Bootstrap, PHP, HTML5, and Wordpress to Application development with Vanilla PHP, Javascript and frameworks like Laravel and JQuery. Whatever you needs are, we are the people for the job!
One of the most compelling reasons why you would opt for Wordpress is if you regularly update content on your website, and want to have the freedom to do it yourself. Don't get tied to your website designer!
Get a professional Wordpress Website within 7 business days. We can help you build a beautiful website with professional and popular features
Do you currently have a Wordpress website and need help with regular maintenance of the website and updating of your content? Then you are on the right page.
Are you stuck with a Wordpress error or bad configuration or misconfiguration? Ranging from Plugin errors to .htaccess and SSL configuration errors.


Use this example application as an starting point for your Social application using IBM Bluemix and Connections Cloud.


Plug v1.4.3 Plug.Crypto.KeyGenerator View Source
KeyGenerator
implements PBKDF2 (Password-Based Key Derivation Function 2),
part of PKCS #5 v2.0 (Password-Based Cryptography Specification).
It can be used to derive a number of keys for various purposes from a given secret. This lets applications have a single secure secret, but avoid reusing that key in multiple incompatible contexts.
see http://tools.ietf.org/html/rfc2898#section-5.2
Link to this section Summary
Functions
Returns a derived key suitable for use
Link to this section Functions
Returns a derived key suitable for use.
Options
:iterations
- defaults to 1000 (increase to at least 2^16 if used for passwords);:length
- a length in octets for the derived key. Defaults to 32;:digest
- an hmac function to use as the pseudo-random function. Defaults to:sha256
;:cache
- an ETS table name to be used as cache. Only use an ETS table as cache if the secret and salt is a bound set of values. For example::ets.new(:your_name, [:named_table, :public, read_concurrency: true])


Production Readiness and Deployment
Adding EF Healthchecks to the BackEnd
- Add a reference to the NuGet package
Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore
version3.0.0
.This can be done from the command line using
dotnet add package Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore --version 3.0.0
- Add a DbContext health check in
Startup.cs
by adding the following code toConfigureServices
:services.AddHealthChecks() .AddDbContextCheck<ApplicationDbContext>();
- Wire up health checks by modifying the
UseEndpoints
to add a call toendpoints.MapHealthChecks("/health");
. This will configure the health checks on the/health
end point. - Test the end point by navigating to
/health
, it should return the textHealthy
.
Adding EF Healthchecks to the FrontEnd
- Add a reference to the NuGet package
Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore
version3.0.0
.This can be done from the command line using
dotnet add package Microsoft.Extensions.Diagnostics.HealthChecks.EntityFrameworkCore --version 3.0.0
Note: The
FrontEnd
andBackEnd
projects have different versions of this package because they reference different versions of EntityFrameworkCore. - Add a DbContext health check in
Startup.cs
by adding the following code toConfigureServices
:services.AddHealthChecks() .AddDbContextCheck<IdentityDbContext>();
- Wire up health checks by modifying the
UseEndpoints
to add a call toendpoints.MapHealthChecks("/health");
. This will configure the health checks on the/health
end point. - Test the end point by navigating to
/health
, it should return the textHealthy
.
Adding a custom health check to test for BackEnd availability
- Add a
CheckHealthAsync
method toIApiClient
.public interface IApiClient { ... Task<bool> CheckHealthAsync(); }
- Implement the
CheckHealthAsync
method inApiClient
by adding the following code:public async Task<bool> CheckHealthAsync() { try { var response = await _httpClient.GetStringAsync("/health"); return string.Equals(response, "Healthy", StringComparison.OrdinalIgnoreCase); } catch { return false; } }
- Create a
HealthChecks
folder under the root folder in the FrontEnd project. - Create a file called
BackendHealthCheck.cs
with the following implementation:using System; using System.Collections.Generic; using System.Linq; using System.Threading; using System.Threading.Tasks; using FrontEnd.Services; using Microsoft.Extensions.Diagnostics.HealthChecks; namespace FrontEnd.HealthChecks { public class BackendHealthCheck : IHealthCheck { private readonly IApiClient _client; public BackendHealthCheck(IApiClient client) { _client = client; } public async Task<HealthCheckResult> CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default(CancellationToken)) { if (await _client.CheckHealthAsync()) { return HealthCheckResult.Healthy(); } return HealthCheckResult.Unhealthy(); } } }
- Register the
BackendHealthCheck
inConfigureServices
:services.AddHealthChecks() .AddCheck<BackendHealthCheck>("backend") .AddDbContextCheck<IdentityDbContext>();
- Test the end point by navigating to
/health
, it should return the textHealthy
.
Publishing locally
https://docs.microsoft.com/en-us/aspnet/core/publishing/#publish-to-a-folder
Publishing to Production (Azure App Service)
-
Right Click Backend Publish - Select App Service, make sure the publish drop down is set to “Create Profile”, click “Create Profile”
- Fill in Name, Resource Group, Hosting Plan
- Click “Create SQL Database”, fill in name, press “New…” to create Database server, fill in fields click “OK”
- Click “Create”
- On the publish page click “Edit”. Click Settings. Open Databases and check the box for the default database. Click Migrations and check the box to apply migrations on publish. Click Save.
-
Click the “Publish” button. When the app launches, find the Sessions section, scroll to /api/sessions/upload. Click the post button to upload your session data
- In the FrontEnd application, open the AppSettings.json and replace the ServiceUrl with the URL from your backend in App Service.
-
Right Click Frontend Publish - Select App Service, make sure the publish drop down is set to “Create Profile”, click “Create Profile”
- Fill in name, same resource group as above and same hosting plan as above.
- Click “Create Database”, fill in name, select the same database server from above, fill in the same password as above and change the Connection string name to “IdentityDbContextConnection”. Press OK.
- Click “Create”.
- On the publish page click “Edit”. Click Settings. Open Databases and check the box for the default database. Click Migrations and check the box to apply migrations on publish. Click Save.
- Click the “Publish” button.
Publishing using Docker
Prerequisites
Enable Database Errors and switch to SQL since that is what runs in the container
For both the front end and backend make the following code chanages:
- Add the package “Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore”
-
Add the database error page in Startup.cs, after app.UseDeveloperExceptionPage() add app.UseDatabaseErrorPage():
app.UseDeveloperExceptionPage(); app.UseDatabaseErrorPage();
-
In the backend project, in Startup.cs, comment out the code to support SQLite:
//if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) //{ options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")); //} //else //{ // options.UseSqlite("Data Source=conferences.db"); //}
Using Visual Studio
Add Docker support to the BackEnd project by right clicking the project file and selecting Add > Docker Support
A Dockerfile is added to the BackEnd project.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["BackEnd/BackEnd.csproj", "BackEnd/"]
COPY ["ConferenceDTO/ConferenceDTO.csproj", "ConferenceDTO/"]
RUN dotnet restore "BackEnd/BackEnd.csproj"
COPY . .
WORKDIR "/src/BackEnd"
RUN dotnet build "BackEnd.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BackEnd.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "BackEnd.dll"]
Add Container Orchestration support to the project, right click the project file and selecting Add > Container Orchestration Support Select Docker Comppose and click OK. This creates a docker-compose project with a docker.compose.yml file.
Repeat the same step for the FrontEnd project. The Dockerfile is added to the project for it.
Add Docker support to the FrontEnd project by right clicking the project file and selecting Add > Docker Support
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["FrontEnd/FrontEnd.csproj", "FrontEnd/"]
COPY ["ConferenceDTO/ConferenceDTO.csproj", "ConferenceDTO/"]
RUN dotnet restore "FrontEnd/FrontEnd.csproj"
COPY . .
WORKDIR "/src/FrontEnd"
RUN dotnet build "FrontEnd.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "FrontEnd.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "FrontEnd.dll"]
Add Container Orchestration support to the project, right click the project file and selecting Add > Container Orchestration Support Select Docker Comppose and click OK.
The docker-compose.yml file is updated to reflect that there are two projects to build images.
version: '3.4'
services:
frontend:
image: ${DOCKER_REGISTRY-}frontend
build:
context: .
dockerfile: FrontEnd/Dockerfile
backend:
image: ${DOCKER_REGISTRY-}backend
build:
context: .
dockerfile: BackEnd/Dockerfile
Linking / Networking
In the previous architecture, there were some setting and manual orchestration to start up and wire the applications together.
- BackEnd tested for OS type and set the application to use SQL Server or SQLite
- FrontEnd application had the API url set in the appsetting.json file.
Using Docker, adding a container for SQL Server and linking the containers in the compose file simplifies this.
Adding SQL Server
Open the docker-compose.yml file and add the following entry. Note the $ is doubled for escaping
db:
image: "microsoft/mssql-server-linux"
environment:
SA_PASSWORD: "ConferencePlanner1234$$"
ACCEPT_EULA: "Y
Since the BackEnd application must have connectivity and cannot start until the database container is ready. Add the depends_on entry to the backend definition in the compose file.
backend:
image: backend
build:
context: .
dockerfile: BackEnd/Dockerfile
depends_on:
- db
Finally, change the connection string for the database in the BackEnd\appsettings.json file.
"ConnectionStrings": {
"DefaultConnection": "Server=db;Initial Catalog=ConferencePlanner;User=sa;Password=ConferencePlanner1234$;MultipleActiveResultSets=true"
}
Linking / Networking FrontEnd & BackEnd
In the docker-compose.yml file, add the links section to the frontend definition. This sets up the host name in the Docker networking allowing for the web application to call the API by name. http://backend
frontend:
image: frontend
build:
context: .
dockerfile: FrontEnd/Dockerfile
links:
- backend
Change the value for the ServiceUrl in FrontEnd/appsetting.json
{
"ServiceUrl": "http://backend/",
Remove or comment out the app.UseHttpsRedirection();
in BackEnd\Startuo.cs.
Starting and Debugging
Once the changes are complete, F5 to build start the application in Docker. Debugging is still available in all projects, but now the application is running in containers.
Changes can be made to Razor pages and seen immediately without rebuilds, however and *.cs file changes require rebuilds.
Using VS Code or other editors
Create and add the following Dockerfile for the BackEnd application.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["BackEnd/BackEnd.csproj", "BackEnd/"]
COPY ["ConferenceDTO/ConferenceDTO.csproj", "ConferenceDTO/"]
RUN dotnet restore "BackEnd/BackEnd.csproj"
COPY . .
WORKDIR "/src/BackEnd"
RUN dotnet build "BackEnd.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BackEnd.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
Create and add the following Dockerfile for the FrontEnd application.
FROM mcr.microsoft.com/dotnet/core/aspnet:3.0-buster-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:3.0-buster AS build
WORKDIR /src
COPY ["BackEnd/BackEnd.csproj", "BackEnd/"]
COPY ["ConferenceDTO/ConferenceDTO.csproj", "ConferenceDTO/"]
RUN dotnet restore "BackEnd/BackEnd.csproj"
COPY . .
WORKDIR "/src/BackEnd"
RUN dotnet build "BackEnd.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "BackEnd.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
At the root of the ConferencePlanner solution, add the following docker-compose.yml file.
version: '3.4'
services:
frontend:
image: ${DOCKER_REGISTRY-}frontend
build:
context: .
dockerfile: FrontEnd/Dockerfile
backend:
image: ${DOCKER_REGISTRY-}backend
build:
context: .
dockerfile: BackEnd/Dockerfile
depends_on:
- db
db:
image: "microsoft/mssql-server-linux"
environment:
SA_PASSWORD: "ConferencePlanner1234$$"
ACCEPT_EULA: "Y"
At the root of the ConferencePlanner solution, add the following docker-compose.override.yml file.
version: '3.4'
services:
backend:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44370
ports:
- "63145:80"
- "44370:443"
volumes:
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
frontend:
environment:
- ASPNETCORE_ENVIRONMENT=Development
- ASPNETCORE_URLS=https://+:443;http://+:80
- ASPNETCORE_HTTPS_PORT=44384
ports:
- "56004:80"
- "44384:443"
volumes:
- ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
- ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro
SQL Server Configuration
Change the connection string for the database in the BackEnd\appsettings.json file.
"ConnectionStrings": {
"DefaultConnection": "Server=db;Initial Catalog=ConferencePlanner;User=sa;Password=ConferencePlanner1234$;MultipleActiveResultSets=true"
}
Linking / Networking FrontEnd & Backend
Change the value for the ServiceUrl in FrontEnd/appsetting.json
{
"ServiceUrl": "http://backend/",
Remove or comment out the app.UseHttpsRedirection();
in BackEnd\Startuo.cs.
Building and Running
- Build the Docker images
docker-compose build
- Run
docker-compose up -d
to start the application - Run
docker-compose down
to stop the application - Open the application at http://localhost:5002
Sessions
This is series of articles on Building Conf planner app with Asp.net Core:
- 1 - Build the back-end API with basic EF model
- 2 - Finish the back-end API and EF model, refactor into view modelsl
- 3 - Add front-end, render agenda, set up front-end models
- 4 - Add authentication, add admin policy, allow editing sessions, users can sign-in with Identity, custom auth tag helper
- 5 - Add user association and personal agenda
- 6 - Deployment, Azure and other production environments, configuring environments, diagnostics
- 7 - Challenges
- 8 - SPA front-end


{{< layout}} {{$pageTitle}}Give details{{/pageTitle}} {{$header}}
We'll send you a copy of the email.
You need to copy and paste these details into your email:


Wildlife Safaris
Cultural+Experience
Experience the cultural insight with us, to take you to a journey among the Maasai and the Hadzabe whose presence here makes your journey a stirring and soulful destination. KiliMaster would carefully select the cultural tourism destinations, which bring benefits to the village and ensure that will not give any negative influences on these cultures.
Lake Eyasi:
the Hadzabe tribe visit
Lake Eyasi is the entrance to Ghorofani, in the area of Lake Eyasi, it lives the Hadzabe tribe. You can join the Hadzabe tribe or the Datoga communities on a hunting trip with traditional weapons, bow and arrows. Visiting these tribe can let you to see people who lives in a very traditional way which is far away from the modern life.
The Coffee Tour
The coffee tour is very popular in town. Through the coffee tour, it can not only shows you how beans are grown, picked and roasted. But offers insights into the lives of the Chagga coffee farmers who live on Kilimanjaro’s lower slopes. You can also have meals with local families and waterfall walks
Maasai village
The Maasai are most well known African tribes and can easily recognize them from their red Shuka. There are many Maasai villages, KiliMaster can give you a unique experiences on introducing to the Maasai life including a visit to some bomas and the Wednesday cattle market. The visit of these cultural tours can help to support the community and provide income to local families. And it is also a good way to get in touch with local cultures and traditions.
Safaris
Over the past two years a distinctive SafariBookings taskforce searched for those who have been on safari and invited them to write a review. For the result, over 1,000 people from 53 nationalities wrote more than 2,300 user reviews about safari. Reputable guidebook authors - working for Lonely Planet, Rough Guides, Frommer’s, Bradt and Footprint - teamed up in the SafariBookings Expert Panel and wrote 756 expert reviews. The overall average rating of Tanzania in both the user and expert reviews is 4.8 out of 5 stars: the highest score of all 8 major safari countries. Tanzania is one of the best safari destinations for hunting and photography.
Tanzania is the best country in Africa for buffalo, lion and leopard to live. The plains also are heaven for other animals such as gerenuk, lesser kudu, sable, roan and sitatunga.
With its abundant wildlife, excellent species diversity and evocative acacia and baobab-studded landscapes, you can be ensured an amazing holiday that you will remember for your entire life.
KILI Master is specialized in scheduling and customizing safaris according to your demands. Whether it is a photography safaris, honeymoon, group safaris, we will provide you a special trip.
We offer different safari camping and accommodations according to your budgets, whether it is a budget safaris, a midrange safaris or a top-end safaris, no matter it is a private lodge, a luxury tented camp or even fly camp, we will make sure all trips will be in standard and good quality. The one and only principle we insist is to make your experience fun and adventurous.
We customize your safari itineraries according to your requirements and specifications. For instance, if you want to see elephant, we can take you to the Tarangire National park since it is the best place to see elephant,; and if you come to visit in dry season, we will recommend you to visit Ruaha National Park or Selous Game Reserve according to your demands. With our abundant knowledge on safaris, we are sure of giving you the most useful guide and providing you a unique safari experience.


Add Entry
Author:
Title:
ISBN #:
ISBN13 #:
Publisher:
Note:
Hard Cover
Soft Cover
Digital
Recycled:
Location:
Pages:
Copyright:
yyyy only!


Tests Created
{{ reports_all.test_create_total }}
Tests Passing
{{ reports_all.tests_passing }}
Tests Failing
{{ reports_all.tests_failing }}
Sites with Coverage
{{ reports_all.sites_with_coverage }}
Sites without Coverage
{{ reports_all.sites_without_coverage }}


This website is under development. And always will be.
It is built using Yellow: https://datenstrom.se/yellow/


FPS:
Play Step Reset
Seed probability:
Pixel scale:
Pixel color:
Birth: 0 1 2 3 4 5 6 7 8
Survive: 0 1 2 3 4 5 6 7 8
Shorthand:


Warehouse Keeper Valkon:
I understand that you are trying to acquire the whole collection of scriptures? Well, I doubt that you can find them so easily? Keep trying, young one!


This workshop will explore how artificial intelligence can contribute to solving social problems. For example, what role can AI play in promoting health, access to opportunity, and sustainable development? How can AI initiatives be deployed in an ethical, inclusive, and accountable manner? To address such questions, this workshop will bring together researchers and practitioners across artificial intelligence and a range of application domains. The objective is to share the current state of research and practice, explore directions for future work, and create opportunities for collaboration. The workshop will feature a mix of invited talks, contributed talks, and posters. Submissions spanning the full range of theoretical and applied work are encouraged. Topics of interest include, but are not limited to:
Submissions are due April 12. The submission site will be posted closer to that date.