{% extends 'base.html' %} {% load static %} {% block title %}{{experiment.name}}{% endblock %} {% block body_block %}
Fold changes were computed by log2(mean({% for g in group1 %}{{g}} {% endfor %})) - log2(mean({% for g in group2 %}{{g}} {% endfor %}))
Topic scores are computed by using the hyper-geometric distribution to assess the probability of getting at least this many up (or down) fold changes associated to the topic
Total above: {{total_above}}, total below: {{total_below}}
| Motif | Annotation | N_spectra | N_up | Up score | N_down | Downscore |
|---|---|---|---|---|---|---|
| {{score_list.0}} | {{score_list.0.annotation}} | {% for s in score_list.1 %}{% if s < 0.05 %} {{s}} {% else %} {{s}} {% endif %} | {% endfor %}


rot.js was designed to provide help with traditional chores of roguelike programming. It does not use or depend on any other JS framework or library. It is an Open Source Software released under the BSD License.
Just download the rot.js file and include it in your page. You can then start using the functions and objects in the ROT
namespace.
There is also a minified version available, compressed using Google's Closure compiler. This file is much smaller and suitable for production/deployment.
This manual is interactive: click on any example to modify its source and re-run it by clicking elsewhere. Use the navigation menu to the left to access other chapters of this manual.
Note: Examples in this manual use the SHOW
function, which is not a part of rot.js. This helper function is available only to interactive examples.
rot.js works in all recent versions of reasonably modern browsers.  You can check if the browser is supported:


This specification refines the semantics and interaction patterns of [[LDP]] in order to better serve the specific needs of those interested in implementing repositories for durable access to digital data. Additionally, this specification contains:
A conforming Fedora server is a conforming [[!LDP]] 1.0 server except where described in this document that also follows the rules defined by Fedora in , , , , and .
Terminology is based on W3C's Linked Data Platform 1.0 [[LDP]] and Memento [[RFC7089]].
Accept-Datetime
-varied negotiation of versions of an URI-R.
If a Link: rel="type"
header specifies an LDP-NR interaction model
(ldp:NonRDFSource
), then the server SHOULD handle subsequent requests
to the newly created resource as if it is a LDP-NR.
([[!LDP]] <IP_ADDRESS> extension)
Implementations MUST support the creation and management of [[!LDP]] Containers.
LDP Direct Containers MUST NOT permit ldp:contains
as their membership-predicate
and requests that would do so MUST fail with 409 Conflict.
([[!LDP]] <IP_ADDRESS> expansion)
Any LDP-RS MUST support PATCH
([[!LDP]]
4.2.7 MAY becomes MUST).
[[!sparql11-update]] MUST be an accepted content-type for PATCH
. Other content-types (e.g. [[ldpatch]])
MAY be available. If an otherwise valid HTTP PATCH
request is received that attempts to add statements to a
resource that a server disallows (not ignores per [[!LDP]]
<IP_ADDRESS>), the server MUST fail
the request by responding with a 4xx range status code (e.g. 409 Conflict). The server MUST
provide a corresponding response body containing information about which statements could
not be persisted. ([[!LDP]] <IP_ADDRESS> SHOULD becomes
MUST). In that response the restrictions causing such a request to fail MUST be described in a resource
indicated by a Link: rel="http://www.w3.org/ns/ldp#constrainedBy"
response header per
[[!LDP]] <IP_ADDRESS>.
A successful PATCH
request MUST respond with a 2xx status code; the specific code in the 2xx
range MAY vary according to the response body or request state.
The server MUST disallow a PATCH
request that would change the LDP interaction model of a
resource to a type that is not a subtype of the current resource type. That request MUST be
rejected with a 409 Conflict response.
Any LDPC MUST support POST
([[!LDP]] 4.2.3 /
5.2.3). The default interaction model that
will be assigned when there is no explicit Link header in the request MUST be recorded
in the constraints document referenced in the Link: rel="http://www.w3.org/ns/ldp#constrainedBy"
header ([[!LDP]] <IP_ADDRESS> clarification).
Any LDPC MUST support creation of LDP-NRs on POST
([[!LDP]]
<IP_ADDRESS> MAY becomes MUST). On creation of an
LDP-NR an implementation MUST create an associated LDP-RS describing that LDP-NR
([[!LDP]] <IP_ADDRESS> MAY becomes MUST).
A HTTP POST
request that would create a LDP-NR and includes a Digest
header
(as described in [[!RFC3230]]) for which the instance-digest in that header does not
match that of the new LDP-NR MUST be rejected with a 409 Conflict response.
A HTTP POST
request that includes an unsupported Digest
type (as described
in [[!RFC3230]]), SHOULD be rejected with a 400 Bad Request response.
Implementations SHOULD support Content-Type: message/external-body
extensions for
request bodies for HTTP POST
that would create LDP-NRs. This content-type requires
a complete Content-Type
header that includes the location of the external body, e.g
Content-Type: message/external-body; access-type=URL; URL=\"http://www.example.com/file\"
,
as defined in [[!RFC2017]].
When accepting a PUT
request against an extant resource, an HTTP Link: rel="type"
header MAY be included. If that type is a value in the LDP namespace and is not either a
current type of the resource or a subtype of a current type of the resource, the request MUST be
rejected with a 409 Conflict response. If the type in the Link header is a subtype of a current type
of the resource, and has an interaction model assigned to it by [[!LDP]], then the resource MUST
be assigned the new type and the interaction model of the resource MUST be changed to the
interaction model assigned to the new type by [[!LDP]].
Any LDP-NR MUST support PUT
to replace the binary content of that resource.
A HTTP PUT
request that includes a Digest
header (as described
in [[!RFC3230]]) for which any instance-digest in that header does not match the instance
it describes, MUST be rejected with a 409 Conflict response.
A HTTP PUT
request that includes an unsupported Digest
type (as described
in [[!RFC3230]]), SHOULD be rejected with a 400 Bad Request response.
Implementations MUST support Content-Type: message/external-body
extensions
for request bodies for HTTP PUT
to LDP-NRs. This content-type requires a
complete Content-Type
header that includes the location of the external body, e.g
Content-Type: message/external-body; access-type=URL; URL=\"http://www.example.com/file\"
,
as defined in [[!RFC2017]].
Any LDP-RS MUST support PUT
to update statements that are not server-managed triples
(as defined in [[!LDP]] 2). [[!LDP]] <IP_ADDRESS>
and <IP_ADDRESS> remain in effect. If an
otherwise valid HTTP PUT
request is received that attempts to add statements to a resource that a
server disallows (not ignores per [[!LDP]] <IP_ADDRESS>),
the server MUST fail the request by responding with a 4xx range status code (e.g. 409 Conflict). The server
MUST provide a corresponding response body containing information about which statements could not be
persisted. ([[!LDP]] <IP_ADDRESS> SHOULD becomes MUST).
In that response the restrictions causing such a request to fail MUST be described in a resource indicated
by a Link: rel="http://www.w3.org/ns/ldp#constrainedBy"
response header per [[!LDP]]
<IP_ADDRESS>.
An implementation MUST accept HTTP PUT
to create resources.([[!LDP]]
<IP_ADDRESS> MAY becomes MUST). The default interaction model that will
be assigned when there is no explicit Link: rel="type"
header in the request MUST be recorded
in the constraints document referenced in the Link: rel="http://www.w3.org/ns/ldp#constrainedBy"
header ([[!LDP]] <IP_ADDRESS> clarification).
When the request is to the LDP-RS created to describe a LDP-NR, the response MUST include
a Link: rel="describes"
header referencing the LDP-NR in question, as defined
in [[!RFC6892]].
Prefer
header
In addition to the requirements of [[!LDP]], an implementation MAY support the value
http://www.w3.org/ns/oa#PreferContainedDescriptions
and SHOULD support the value
http://fedora.info/definitions/repository#PreferInboundReferences
for the
Prefer
header when making GET
requests on LDPC resources:
http://www.w3.org/ns/oa#PreferContainedDescriptions
:
Requires a server to include representations of any contained resources in the response,
as defined in [[!annotation-vocab]].
http://fedora.info/definitions/repository#PreferInboundReferences
:
Requires a server to include triples from any LDP-RS housed in that server that
feature the requested resource as RDF-object.
Responses to GET
requests that apply a Prefer
request header to any
LDP-RS MUST include the Preference-Applied
response header as defined in
[[!RFC7240]] section 3.
GET
requests to any LDP-NR MUST correctly respond to the Want-Digest
header
defined in [[!RFC3230]] unless the Content-Type
of the LDP-NR is a
message/external-body
extension.
GET
requests to a LDP-NR with Content-Type: message/external-body
, MUST result
in an HTTP 3xx redirect message redirecting to the external URL.
The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response, as specified in [[!RFC7231]] section 4.3.2.
A versioned resource for this document provides a TimeGate interaction model as
detailed in the Memento specification and indicated by an HTTP header
Link: rel="timegate"
referencing itself. It otherwise follows the relevant
[[!LDP]] specification with the additional behaviors below.
Accept-Datetime
, exactly as per Memento.
At least one Link: rel="timemap"
referencing an LDPCv. It is the
presence of this header that indicates that the resource is versioned.
Vary: Accept-Datetime
, exactly as per Memento.
An LDPRv MAY support PUT
. An implementation receiving a PUT
request for an
LDPRv MUST both correctly respond as per [[!LDP]] as well as create a new
LDPRm contained in an appropriate LDPCv. The newly-created LDPRm
SHOULD be the version of the LDPRv that was created by the PUT
request.
Accept-Datetime
, exactly as per Memento.
At least one Link: rel="timemap"
referencing a LDPCv. It is the
presence of this header that indicates that the resource is versioned.
Vary: Accept-Datetime
, exactly as per Memento.
When a LDPR is created with a Link
header indicating versioning,
it is created as both an LDP Resource and a Memento: a LDPRm. An LDPRm
MUST be invariant: While it MAY be deleted, it MUST NOT be modified once created.
An implementation MAY support DELETE
for LDPRms. If DELETE
is
supported, the server is responsible for all behaviors implied by the LDP-containment
of the LDPRm.
An implementation MUST support GET
, as is the case for any LDPR.
The headers for GET
requests and responses on this resource MUST conform
to [[!RFC7089]] (Memento). Particularly it should be noted that the relevant TimeGate for
an LDPRm is the original versioned LDPRv.
An implementation MUST support HEAD
.
An implementation MUST support OPTIONS
. A response to an OPTIONS
request MUST include Allow: GET, HEAD, OPTIONS
as per [[!LDP]]. An
implementation MAY include Allow: DELETE
if clients can remove a version
from the version history, as noted above.
An implementation MUST NOT support PATCH
for LDPRms.
An implementation MUST NOT support POST
for LDPRms.
An implementation MUST NOT support PUT
for LDPRms.
When a LDPR is created with a Link
header indicating versioning, a
version container (LDPCv) is created that contains Memento-identified resources
(LDPRm) capturing time-varying representations of the associated LDPR. An
LDPCv is both a TimeMap per [[!RFC7089]] (Memento) and an LDP Container.
As a TimeMap an LDPCv MUST conform to the specification for such resources
in [[!RFC7089]]. An implementation MUST indicate TimeMap in the same way it
indicates the Container interaction model of the resource via HTTP headers. An LDPCv
MUST respond to GET Accept: application/link-format
as indicated in [[!RFC7089]]
section 5 and specified in
[[!RFC6690]] section 7.3.
An implementation MUST NOT allow the creation of an LDPCv that is LDP-contained by its associated LDPRv.
Non-normative: The application/link-format
representation of a LDPCv
is not required to include all statements in the LDPCv graph, only those required
by TimeMap behaviors.
An implementation MAY support DELETE
. An implementation that does support
DELETE
SHOULD do so by both removing the LDPCv and removing the
versioning interaction model from the original LDPRv.
An implementation MUST Allow: GET, HEAD, OPTIONS
as per [[!LDP]]. An
implementation MAY Allow: DELETE
if the versioning behavior is removable
by deleting the LDPCv. See for requirements on
DELETE
if supported.
An implementation MAY Allow: PATCH
if the LDPCv has mutable properties.
See for requirements on PATCH
if supported.
An implementation MAY Allow: POST
if versions can be explicitly minted by a
client. See for requirements on POST
if supported.
An implementation MAY Allow: PATCH
, but if so, it MUST NOT permit clients
to modify containment triples.
If a LDPCv supports POST
, POST
SHOULD be understood to
create a new LDPRm contained by the LDPCv, reflecting the state of the
LDPRv at the time of the POST
. If supported, but the representation
at the time of version creation can only be that which is current for the LDPRv,
the Accept-Post
header of any response from the LDPCv SHOULD indicate
that no request body is accepted via the form Accept-Post: */*; p=0.0
, and
that implementation SHOULD respond to any body-containing POST
to that
LDPCv with a 415 response and a link to an appropriate constraints document
(see LDP <IP_ADDRESS>). As per
[[!LDP]], any resource created via POST
, in this case a LDPRm)
SHOULD be advertised in the response's Location
header.
If a LDPCv does accept POST
with a request body, it SHOULD respect
a Memento-Datetime
request header for the created LDPRm.
Absent this header, it MUST use the current time.
Non-normative note: If an LDPCv does not Allow: POST
, the constraints
document indicated in Link: rel="http://www.w3.org/ns/ldp#constrainedBy"
for
that LDPCv should describe the versioning mechanism (e.g. by PUT
or
PATCH
to the LDPRv described by that LDPCv). Disallowing
POST
suggests that the [[!LDP]] server will manage all LDPRm
creation; see here.
When a POST
to an LDPCv or PUT
or PATCH
to
an LDPRv creates a new LDPRm, the response indicates that using a
Vary
header as appropriate. When a LDPCv supports POST
,
and allows clients to specify a datetime for created URI-Ms,
Vary-Post/Vary-Put: Memento-Datetime.
This is a non-normative section describing the way the normative specification might be
applied to implement discoverable versioning patterns. If an implementation of a
LDPCv does not support POST
to mint versions, that must be advertised
via OPTIONS
as described above. The implementation may automatically mint
versions instead, but that is outside the requirements of this specification. This
document specifies normatively only how LDPCvs and LDPRms can be
discovered, and how they should act.
Upon PUT
or PATCH
to the LDPRv, a new LDPRm
is created in an appropriate LDPCv. This LDPRm is the version of the
original LDPRv that was just created.
An LDPRm for a particular LDPRv is created on POST
to any
LDPCv associated with that LDPRv. The new LDPRm is contained in
the LDPCv to which the POST
was made and features in that
LDPCv-as-aTimeMap . This pattern is more open to manipulation and could
be useful for migration from other systems into Fedora implementations. Responses from
requests to the LDPRv include a Link: rel="timemap"
to the same
LDPCv as per [[!RFC7089]] (Memento).
For the purposes of the following specification, a fixity result is an extract or summary of some LDP-NR made according to some explicit procedure. Fixity results are taken for the purpose of comparing different fixity results for the same resource over time, to ensure a continuity of that resource's identity according to the particular procedure used. Examples might include:
This specification describes two fixity verification mechanisms: firstly, as part of content transmission, to guard against faults in transmission, and secondly, by comparison to a known or proffered digest value, to monitor for faults in persistence.
Transmission fixity is verified by application of the Digest
header
defined in [[RFC3230]] to POST
and PUT
requests for LDP-NRs.
This section defines when notifications are made available by a Fedora implementation, the minimal set of data contained in these notifications and how the data are serialized. Notifications may be emitted synchronously or asynchronously with the API operations that cause them to be emitted. These notifications are typically used to support external integrations. The structure of these notifications draws upon the existing [[activitystreams-core]] and [[ldn]] specifications. An implementation is free to choose from any transport technology so long as the notifications conform to what is described in the following sections.
Implementers should be aware that some operations cause multiple resources to change.
In these cases, there will be a corresponding notification describing each of the changes.
This is especially true for changes to containment or membership triples. This is also true
if a DELETE
operation triggers changes in any contained resources.
Consumers of these notifications should not expect a strict ordering of the events reported therein: the fact that a notification for Event A is received before a notification for Event B should not imply that Event A occurred before Event B. Implementations may choose to make further guarantees about ordering.
According to the [[activitystreams-core]] specification, it is possible to collect multiple events into a single notification. This specification makes no restriction on the use of activity stream collections.
For every resource whose state is changed as a result of an HTTP operation, there MUST be a corresponding notification made available describing that change.
The notification serialization MUST conform to the [[!activitystreams-core]] specification.
Wherever possible, data SHOULD be expressed using the [[!activitystreams-vocabulary]].
Each event described by a notification MUST contain:
Each event described by a notification SHOULD contain:
ldp:inbox
for the resource that was changed, if such an inbox link existsNotifications SHOULD NOT contain the entire content of repository resources.
{ "@context": "https://www.w3.org/ns/activitystreams", "id": "urn:uuid:3c834a8f-5638-4412-aa4b-35ea80416a18", "type": "Create", "name": "Resource Creation", "actor": "http://example.org/agent/fedoraAdmin", "object": { "id": "http://example.org/fcrepo/rest/resource/path", "type": [ "ldp:Container", "ldp:RDFSource" ] } }
{ "@context": [ "https://www.w3.org/ns/activitystreams", { "isPartOf": { "@id": "http://purl.org/dc/terms/date", "@type": "@id" } } ], "id": "urn:uuid:be29ae69-2134-f1b0-34be-2f91b6d1f029", "type": "Update", "name": "Resource Modification", "published": "2016-07-04T13:46:39Z", "inbox": "http://example.org/ldn/inbox/path", "actor": [ { "id": "#actor0", "type": "Person", "name": "fedo raAdmin" }, { "id": "#actor1", "type": "Service", "name": "APIX-core/0.1" } ], "object": { "id": "http://example.org/fcrepo/rest/resource/path", "updated": "2016-07-04T13:44:39Z", "type": [ "ldp:Container", "ldp:RDFSource", "http://example.org/type/CustomType" ], "isPartOf": "http://example.org/fcrepo/rest/" } }
Fedora implementations are subject to the same privacy considerations that are found in the following specifications:
There are security considerations for any HTTP server exposed to the Internet. Implementations SHOULD make use of the many security-related features of HTTP, including use of the authentication framework defined in the Authentication chapter of the HTTP/1.1 specification [[!RFC7235]].
Fedora implementations are subject to the same security considerations that are found in the following specifications:


| Package | Description |
|---|---|
| com.ibm.team.workitem.client |
| Modifier and Type | Class and Description |
|---|---|
class |
DetailedStatus |
| Modifier and Type | Field and Description |
|---|---|
static IDetailedStatus |
DetailedStatus.OK_STATUS |
| Modifier and Type | Method and Description |
|---|---|
static IDetailedStatus |
DetailedStatus.createFromException(java.lang.String message,
java.lang.Throwable x) |
IDetailedStatus |
IWorkItemClient.deleteWorkItem(IWorkItemHandle workItem,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deletes given work item from the repository and tries to remove links, attachments, change events and
fulltext entries in asynchronously running post-deletion cleanup tasks.
|
IDetailedStatus |
WorkingCopyEvent.getStatus() |
IDetailedStatus |
WorkItemWorkingCopy.save(org.eclipse.core.runtime.IProgressMonitor monitor)
Saves local changes of this working copy in the repository.
|
IDetailedStatus |
IWorkItemWorkingCopyManager.save(WorkItemWorkingCopy[] copies,
org.eclipse.core.runtime.IProgressMonitor monitor)
Saves n working copies.
|
IDetailedStatus |
IWorkItemClient.saveWorkItem(IWorkItem workItem,
java.lang.String workflowAction,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deprecated.
|
| Modifier and Type | Method and Description |
|---|---|
java.util.List<IDetailedStatus> |
IWorkItemWorkingCopyManager.delete(java.util.List<IWorkItemHandle> handles,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deletes n work items from the repository.
|
java.util.List<IDetailedStatus> |
IWorkItemClient.deleteWorkItems(java.util.List<IWorkItemHandle> workItems,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deletes given work items from the repository and tries to remove links, attachments, change events and
fulltext entries associated with each work item in asynchronously running post-deletion tasks.
|
| Modifier and Type | Method and Description |
|---|---|
static WorkingCopyEvent |
WorkingCopyEvent.createWorkingCopyEvent(WorkItemWorkingCopy source,
java.lang.String type,
IDetailedStatus status) |


Dinosaurs are a diverse group of reptiles of the clade Dinosauria. They first appeared during the Triassic period, between 243 and 233.23 million years ago. They became the dominant terrestrial vertebrates after the Triassic-Jurassic extinction event 201 million years ago; their dominance continued through the Jurassic and Cretaceous periods.
Dinosaurs can therefore be divided into avian dinosaurs, or birds; and non-avian dinosaurs, which are all dinosaurs other than birds.
Since the first dinosaur fossils were recognized in the early 19th century, mounted fossil dinosaur skeletons have been major attractions at museums around the world, and dinosaurs have become an enduring part of world culture. The large sizes of some species has ensured their popularity in films and books.
Using some of the mentioned definitions, dinosaurs can be generally described as archosaurs with hind limbs held erect beneath the body.
Dinosaurs were the dominant terrestrial vertebrates of the Mesozoic, especially the Jurassic and Cretaceous periods. Dinosaurs have always been an extremely varied group of animals; according to a 2006 study, over 500 non-avian dinosaur genera have been identified with certainty so far, and the total number of genera preserved in the fossil record has been estimated at around 1850, nearly 75% of which remain to be discovered. In 2016, the estimated number of dinosaur species that existed in the Mesozoic era was estimated to be 1,543-2,468. Dinosaurs inhabited every continent, and fossils show that they had achieved global distribution by at least the early Jurassic period.
While recent discoveries have made it more difficult to present a universally agreed-upon list of dinosaurs' distinguishing features, nearly all dinosaurs discovered so far share certain modifications to the ancestral archosaurian skeleton, or are clear descendants of older dinosaurs showing these modifications. A detailed assessment of archosaur interrelations by Sterling Nesbitt confirmed or found some twelve unambiguous synapomorphies, some previously known.
In the skull, a supratemporal fossa(excavation) is present in front of the supratemporal fenestra, the main opening in the rear skull roof. Radius, a lower arm bone, shorter than 80% of humerus length. Exoccipitals(bones at the back of the skull) do not meet along the midline on the floor of the endocranial cavity, the inner space of the braincase.
Modern birds are known to communicate using visual and auditory signals, and the wide diversity of visual display structures among fossil dinosaur groups, such as horns, frills, crests, sails and feathers, suggests that visual communication has always been important in dinosaur biology.
Current evidence suggests that dinosaur average size varied through the Triassic, early Jurassic, late Jurassic and Cretaceous periods.
Predatory theropod dinosaurs, which occupied most terrestrial carnivore niches during the Mesozoic, most often fall into the 100 to 1000 kg (220 to 2200 lb) category when sorted by estimated weight into categories based on order of magnitude. This contrasts sharply with the size of Cenozoic mammals, as about 2 to 5 kg (4.4 to 11.0 lb).
The tallest and heaviest dinosaur known from good skeletons is Giraffatitan brancai. The smallest dinosaur known is the bee hummingbird, with a length of only 5 cm (2.0 in) and mass of around 1.8 g (0.063 oz).
There is general agreement that some behaviors that are common in birds, as well as in crocodiles(birds' closest living relatives), were also common among extinct dinosaur groups.
The first potential evidence for herding or flocking as a widespread behavior common to many dinosaur groups in addition to birds was the 1878 discovery of 31 Iguanodon bernissartensis, ornithischians that were then thought to have perished together in Bernissart, Belgium, after they fell into a deep, flooded sinkhole and drowned.
Evidence for attacking live prey is the partially healed tail of an Edmontosaurus, a hadrosaurid dinosaur; the tail is damaged in such a way that shows the animal was bitten by a tyrannosaur but survived.
After non-avian dinosaurs were discovered, paleontologists first posited that they were ectothermic. This supposed "cold-bloodedness" was used to imply that the ancient dinosaurs were relatively slow, sluggish organisms. Like other reptiles, dinosaurs are primarily uricotelic.
Feathers are one of the most recognizable characteristics of modern birds, and a trait that was shared by all other dinosaur groups. Direct fossil evidence of feathers or feather-like structures has been discovered in a diverse array of species in many non-avian dinosaur groups.
Archaeopteryx was the first fossil found that revealed a potential connection between dinosaurs and birds. Since the 1990s, a number of additional feathered dinosaurs have been found, providing even stronger evidence of the close relationship between dinosaurs and modern birds.
Large meat-eating dinosaurs had a complex system of air sacs similar to those found in modern birds, according to a 2005 investigation led by Patrick M. O'Connor.
The lungs of theropod dinosaurs (carnivores that walked on two legs and had bird-like feet) likely pumped air into hollow sacs in their skeletons, as is the case in birds. In 2008, scientists described Aerosteon riocoloradensis, the skeleton of which supplies the strongest evidence to date of a dinosaur with a bird-like breathing system.
Fossils of the troodonts Mei and Sinornithoides demonstrate that some dinosaurs slept with their heads tucked under their arms. This behavior, which may have helped to keep the head warm, is also characteristic of modern birds.
Some dinosaurs are known to have used gizzard stones like modern birds. These stones are swallowed by animals to aid digestion and break down food and hard fibers once they enter the stomach.
What is clear is that a massive die-off took place around 66 million years ago. It is visible in the layers of rock that mark the boundary between the Cretaceous and Paleogene periods. In 1980, a team of researchers including reported discovering lots of iridium in places worldwide.
Iridium is rare in Earth's crust, but abundant in asteroids and other space rocks. The finding marked the first hard evidence for a killer-asteroid impact. But without a crater, the hypothesis couldn't be confirmed.
It now appears that the blast itself wasn't the big killer in the impact scenario. It was the darkness that followed.
Debris rained from the sky. Soot and dust, spewed by the impact and resulting wildfires, filled the sky.  Some scientists had estimated that it was anywhere from a few months to years. For two years, no light reached Earth's surface, the simulation shows. Not any part of Earth's surface! Global temperatures plummeted 16 degrees Celsius (30 degrees Fahrenheit). Arctic ice spread southward.
Abrupt temperature drops plus darkened skies killed plants and other species that nourish the rest of the food web. The cold darkness was the impact's deadliest weapon.
An ancient graveyard covers swaths of Montana, Wyoming and the Dakotas. It's called the Hell Creek Formation. And it's hundreds of square kilometers (square miles) of a fossil hunter's paradise. Erosion has uncovered dinosaur bones. And there something surprising has been discovered: signs of a tsunami.
Evidence of the supersized tsunami generated by the Chicxulub impact had previously been found only around the Gulf of Mexico. The sediment contained iridium and glassy debris that formed from rock vaporized by the impact.
The Deccan volcanic eruptions ultimately belched out some 1.3 million cubic kilometers (300,000 cubic miles) of molten rock and debris.
Most mercury in the environment originated from volcanoes. Large eruptions cough up tons of the element. Deccan was no exception. The bulk of the Deccan eruptions released a total of between 99 million and 178 million metric tons(about 109 million and 196 million U.S. short tons) of mercury. All that mercury left a mark.
The Cretaceous-Paleogene (K-Pg) extinction event, also known as the Cretaceous-Tertiary (K-T) extinction, was a sudden mass extinction of some three-quarters of the plant and animal species on Earth. It marked the end of the Cretaceous period and with it, the entire Mesozoic Era, opening the Cenozoic Era that continues today.
A 10 to 15 kilometre (6.2 to 9.3 mi) asteroid hurtled into Earth at Chicxulub on Mexico's Yucatan Peninsula. The Chicxulub impact caused a global catastrophe. The reentry of ejecta into Earth's atmosphere would include a brief(hours long) but intense pulse of infrared radiation, cooking exposed organisms.
The entire terrestrial biosphere might have burned, implying a global soot-cloud blocking out the sun and creating a nuclear winter effect.
Dinosaur evolution after the Triassic follows changes in vegetation and the location of continents. In the late Triassic and early Jurassic, the continents were connected as the single landmass(Pangaea), and there was a worldwide dinosaur fauna mostly composed of coelophysoid carnivores and early sauropodomorph herbivores. Early sauropodomorphs did not have sophisticated mechanisms for processing food in the mouth, and so must have employed other means of breaking down food farther along the digestive tract.
By the early Cretaceous and the ongoing breakup of Pangaea, dinosaurs were becoming strongly differentiated by landmass. The earliest part of this time saw the spread of ankylosaurians, iguanodontians, and brachiosaurids through Europe, North America, and northern Africa. These were later supplemented or replaced in Africa by large spinosaurid and carcharodontosaurid theropods, and rebbachisaurid and titanosaurian sauropods, also found in South America.
Dinosaurs diverged from their archosaur ancestors during the middle to late Triassic period, roughly 20 million years after the Permian-Triassic extinction event wiped out an estimated 95% of all life on Earth. The discovery of primitive, dinosaur-like ornithodirans such as Marasuchus and Lagerpeton in Argentinian Middle Triassic strata supports the view(first dinosaurs were small, bipedal predators); analysis of recovered fossils suggests that these animals were indeed small, bipedal predators.


Jawaharlal Nehru University: Pay mess dues or you won't get food
This comes a day after students protested against the hike in hostel fee by 300 percent
by AgenciesNew Delhi: The Jawaharlal Nehru University (JNU) has issued a notice seeking the residents of hostels to pay their mess dues till November 14 failing which they will not be served food. The notice, which was issued by the university's office of the senior warden, came after the university proposed to raise hostel mess security deposit from Rs 5,500 to Rs 12,000. This had resulted in a massive backlash from the students.
"All residents are required to clear your outstanding mess dues till November 14 failing which food will be stopped on the same day," it read. This comes a day after students protested against the hike in hostel fee by 300 per cent. Amrit Raj, a councillor at the School of Arts and Aesthetics, students currently have to pay Rs 2,500 as mess bill. After the hike, they will have to pay Rs 4,200.
"We have also learnt that JNU will also effect a 10 per cent fee hike every year from now. My father is a farmer in Bihar and I have two younger siblings, who are studying. Since I don't take money from my father for studies, they are able to study well," he said.
This story has been sourced from a third party syndicated feed, agencies. Mid-day accepts no responsibility or liability for its dependability, trustworthiness, reliability and data of the text. Mid-day management/mid-day.com reserves the sole right to alter, delete or remove (without notice) the content in its absolute discretion for any reason whatsoever
Sign up for all the latest news, top galleries and trending videos from Mid-day.com
Subscribe
Loading...


April 15
But whoso keeps his word, in him verily is the love of God perfected: hereby know we that we are in Him. He that says he abides in him ought himself also so to walk, even as he walked.
1 John 2:5-6
There is nothing--absolutely nothing--that is more important than learning to love.  That's because every other spiritual force derives its action from love. For example, the Bible teaches us that faith works by love. And answered prayer is almost an impossibility when a believer steps outside of love and refuses to forgive or is in strife with his brother.
Without love, your giving will not work. Tongues and prophecy will not work. Faith fails and knowledge is unfruitful. All the truths that you have learned from God's Word work by love. They will profit you nothing unless you live the love of God. First Corinthians 13:4-8 paints a perfect picture of how love behaves. It's patient and kind. It's not jealous or proud. It doesn't behave rudely or selfishly and it isn't touchy. Love "bears all things, believes all things, hopes all things, endures all things."
Sounds like a tall order, doesn't it? But don't despair.  God has recreated your spirit in the image of love. And He has sent His love Spirit to live in you and teach you how to love as He loves. You can live the love life. Why not begin today?
Scripture Reading: 1 Corinthians 13:1-13


Light up rainbows. Software Defined Radio. Pico projectors. Touch screens. Motor control. They all require working knowledge of different architectures and experience with different communication protocals and languages. New year, new tech, faster devices, better comms - sign me up.
Creating a device that does something is just the beginning. Improving the widget so that it functions all the time in all cases, and looks like a gem takes a multidisciplinary team with solid communication. It is challenging, it is difficult, but the friendships forged are priceless.
In a connected world, collaboration is key. With open hardware and open software, I sharpen my skills and give back to the online community that taught me. Working with experienced hackers and aspiring hackers on mailing lists, internet relay channels, and git commits is fun, sometimes too much fun.
Hello my name is Alfredo Muniz. I am currently using the University of Pennsylvania as my sandbox to experiment with technologies, create new inventions, and experience varying team dynamics
Although I love to machine, explore wireless systems, create PCB's, and take on new ventures my main interest lies in embedded systems, specifically the interface of hardware and software
I revived the school's amateur radio club after over a decade of dormancy and use it to raise student interest in radio with a mashup of traditional amateur radio and software defined radio
I like to relax with a good quality anime, video game music, root beer, and party trays or perhaps with a bike ride in the outside world with fresh air. I work best with others and my favorite moments come from group discussions
Questions: Email Collaborate: Github Connect: Google Network: LinkedIn


{% extends "layout.html" %} {% set page = "feedbackPage" %} {% block content %}
What is your comment about?
So, what is your comment?


We're very sorry to inform you that the page you are looking for could not be found, please accept our apologies, and follow one of the following options


Clare et al paper https://sp.lyellcollection.org/content/477/1/455.abstract
2020 Slides meeting https://www.slidesdublin2020.com
S4Slide webpage https://sites.google.com/a/utexas.edu/s4slide/
This project sponsored by ESIP https://www.esipfed.org
{% include "head.html" with title="Links" %}
{% include "navbar.html" %}Clare et al paper https://sp.lyellcollection.org/content/477/1/455.abstract
2020 Slides meeting https://www.slidesdublin2020.com
S4Slide webpage https://sites.google.com/a/utexas.edu/s4slide/
This project sponsored by ESIP https://www.esipfed.org


|
QSense Sidecar Library
1.0.0
Developed for QSense
|
Namespaces | |
| hash | |
| net | |
Classes | |
| class | AutoPtr |
| AutoPtr is a "smart" pointer for classes implementing reference counting based garbage collection. More... | |
| class | ByteOrder |
| This class contains a number of static methods to convert between big-endian and little-endian integers of various sizes. More... | |
| class | Event |
| A simple class that encapsulates an event sent to Sidecar. Events are holders for readings. Events can be serialised to JSON using the toString method. More... | |
| class | Location |
| A simple representation of geographical location. More... | |
| class | Reading |
| A class that represents a single reading. Readings are added to an Event. More... | |
| class | RefCountedObject |
| A base class for objects that employ reference counting based garbage collection. More... | |
| class | UUID |
| A class that represents a UUID/GUID. More... | |
Typedefs | |
| typedef std::string | QString |
| typedef unsigned char | Byte |
Functions | |
| template<class C > | |
| void | swap (AutoPtr< C > &p1, AutoPtr< C > &p2) |
| std::ostream & | operator<< (std::ostream &os, const Event &event) |
| Serialise the specified event as JSON to the output stream. More... | |
| std::ostream & | operator<< (std::ostream &os, const qsense::Location &location) |
| Serialise the specified location to the output stream. More... | |
| std::ostream & | operator<< (std::ostream &os, const qsense::Reading &reading) |
| Serialise the reading as JSON to the output stream. More... | |
| std::ostream & | operator<< (std::ostream &os, const UUID &uuid) |
| Serialise the string representation of the UUID to the output stream. More... | |
The namespace for the QSense Sidecar Library.
| typedef unsigned char qsense::Byte |
8-bit unsigned char
| typedef std::string qsense::QString |
Not really necessary any more. Initially had it to use String class from Arduino library, but that never seems to work when used for hashing etc.
| std::ostream& qsense::operator<< | ( | std::ostream & | os, |
| const qsense::Location & | location | ||
| ) |
Serialise the specified location to the output stream.
| std::ostream& qsense::operator<< | ( | std::ostream & | os, |
| const qsense::Reading & | reading | ||
| ) |
Serialise the reading as JSON to the output stream.
| std::ostream& qsense::operator<< | ( | std::ostream & | os, |
| const Event & | event | ||
| ) |
Serialise the specified event as JSON to the output stream.
|
inline |
Serialise the string representation of the UUID to the output stream.


lib_netsockets
Pedro Vicente
lib_netsockets is a set of C++ classes that use POSIX/Winsock sockets with implementation of TCP client/server using JSON messages, and HTTP, FTP clients.
The following steps shown an example of a client/server exchange using JSON.
HTTP client
HTTP (Hypertext Transfer Protocol) is a request and response protocol, where a request is sent by a client to a server, and a response is sent from a server to a client.
One of the reasons for its widespread success is probably its simplicity.
HTTP request
An HTTP request consists English based sequences of characters, divided in:
- a method, to indicate the desired action to be performed. The HTTP/1.0 specification defined the GET, POST and HEAD methods
- the local path of the requested resource
- the version of HTTP being used
- several optional header lines with the format consisting of a colon separating the header and its value, the line is terminated by CRLF characters (i.e ASCII values 13 and 10)
Header: value
- a blank line (i.e. a CRLF by itself)
- an optional message body (e.g. a file)
An example of a GET request, that requests a retrieval of the file located at the server path /data/hello.txt, using the HTTP/1.1 protocol, to a host with domain at <IP_ADDRESS> (i.e localhost) is
GET /data/hello.txt HTTP/1.1
Host: <IP_ADDRESS>
Connection: close
HTTP response
Running the above request on a Microfost Windows IIS web server returns a response similar to
HTTP/1.1 200 OK
Content-Type: text/plain
Last-Modified: Thu, 25 Aug 2016 04:19:56 GMT
Accept-Ranges: bytes
ETag: "288e59ef87fed11:0"
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Thu, 25 Aug 2016 04:20:21 GMT
Connection: close
Content-Length: 5
hello
where the contents of the file /data/hello.txt can be seen on the response (the 5 byte sequence of characters 'hello').
HTTP client usage
A usage of the get() method implemented in lib_netsockets is
http_t client(host_name, 80);
client.get(path_name, verbose);
References
-
[RFC2616] Hypertext Transfer Protocol -- HTTP/1.1. https://tools.ietf.org/html/rfc2616


About Our Ducks
Chewducca
"Quack, quaaack quaack. Quaack!" (followed by explosions)
You don't follow the action, you initiate it! You frequently find yourself on dangerous adventures with your best friend. You may not always be the hero, but you enjoy taking the credit for it regardless. Life just isn't moving fast enough otherwise. Your friends and family mean the galaxy to you, and you'll fight for them for as long as you can.
Vibin' Duck
You enjoy living in leisure, meandering along the path of least resistance. Some may say you’re too passive, but you prefer to think of yourself as a chameleon, adapting to whatever situation you find yourself in.  Those closest to you love your down-for-whatever energy and appreciate your chill disposition. When people ask you what your hobbies are, you tell them you “like to have a good time.” You are really just vibin’.
Friduc Kahlo
“I was a duck that went about in a world of colors…”
The archtypical Creative, you wouldn’t necessarily consider yourself an extravert, but rather someone who is “wisely assertive”. You are willing to speak for the voiceless, to represent the under-represented, and to "put yourself out there"
regardless of the consequences.
“Nothing is absolute.
Sherduck Holmes
You have an insatiable curiosity, wide-ranging interests, and a keen analytical mind. However, you can be more focused on your own thoughts than on those around you, which means you sometimes come across as distant or aloof to the casual observer. Your closest associates know better, though, seeing behind the façade to the warm, engaging, and intensely loyal individual that the World never suspects is there.


Sale
Rent
Property Type
Select Property Type
Office Space
Shop
Showroom
Retail Space
Space in IT Park
Space in Business Center
Commerical Plot/Land
Property Type
Select Property Type
Office Space
Shop
Showroom
Retail Space
Space in IT Park
Space in Business Center
Commerical Plot/Land
Builtup Area
More/Less Area Option
Carpet Area
Plot Area
Total Floor
Select Property on Floor
Basement
Ground
Upper Ground
1
2
3
4
5
6
7
8
9
10
11
12
Property on Floor
Select Property on Floor
Basement
Ground
Upper Ground
1st Floor
2nd Floor
3rd Floor
4th Floor
5th Floor
6th Floor
7th Floor
8th Floor
9th Floor
10th Floor
11th Floor
12th Floor
Washroom
Select Washroom
None
Attached
Common
Attached and Common
No of Washroom
Attached
1
2
3
4
5
5+
Common
1
2
3
4
5
5+
Attach
1
2
3
4
5
5+
Common
1
2
3
4
5
5+
Power Backup
Select Power Backup
No Power Backup
Fully
Partially
Price
₹
Negotiable
More/Less Price Option
Facing
Select Facing
East
West
North
South
Price Per
Maintainance
₹
Brokerage
₹
Booking Amount
₹
Property Status
Transaction Type
Select Transaction Type
New
Resale
Ownership Type
Select Ownership Type
Freehold
Power of Attorney
Leasehold
Co-operative Society
Availability
Under Construction
Ready to Move
Age of Property
New Property
0 to 2 years
2 to 5 years
5 to 10 years
More than 10 years
Possession By
Additional Detail
Furnishing:
Unfurnished
Semifurnished
Furnished
Amenities
Security / Fire Alarm
Centrally Air Conditioned
Lift(s)
Security Personnel
Cafeteria / Food Court
Visitors Parking
Service / Goods Lift
Maintainance Staff
Wifi
Eatrhquake Resistant
Conferance Room
Intercom facility
Fitness centre / Gym
Water Sotrage
Furnishing
CCTV
Air Conditioner
Furniture
PC Desktop
Projector
LED Screen
Refrigrator
Water Dispenser
Car Parking
Car Parking Type
None
Open
Covered
Open and Covered Both
No of Car Parking
No. of Open
1
2
3
4
5
5+
No. of Covered
1
2
3
4
5
5+
No. of Open
1
2
3
4
5
5+
No. of Covered
1
2
3
4
5
5+
Plot Area
Open Side
Select Open Sides
1 Side Open
2 Side Open
3 Side Open
4 Side Open
Total Floor Allowed
Select Floor Allowed
Basement
Ground
Upper Ground
1st Floor
2nd Floor
3rd Floor
4th Floor
5th Floor
6th Floor
7th Floor
8th Floor
9th Floor
10th Floor
11th Floor
12th Floor
Facing
Select Facing
East
West
North
South
Facing Road Width
Price
₹
Negotiable
More/Less Price Option
Price Per
Maintainance
₹
Brokerage
₹
Booking Amount
₹
Property Status
Transaction Type
Select Transaction Type
New
Resale
Ownership Type
Select Ownership Type
Freehold
Power of Attorney
Leasehold
Co-operative Society
Additional Detail
Amenities
Security / Fire Alarm
Centrally Air Conditioned
Lift(s)
Security Personnel
Cafeteria / Food Court
Visitors Parking
Service / Goods Lift
Maintainance Staff
Wifi
Eatrhquake Resistant
Conferance Room
Intercom facility
Fitness centre / Gym
Water Sotrage


Which councils would you want at VITCMUN 2018?
UNGA DISEC
AIPPM
African Union
UNGA ECOFIN
European Union
UN HRC
IAEA
OSCE
UNGA SOCHUM
Trilateral Commission
joint War Cabinet
Security Council
Submit


Javascript T5 Problem Solving
.map, .reduce and filter explained by Jaive
array.prototype.map
The map method runs through an initial element, and calls a function on each element of that array and creates a new array with result of each call pushed in as new elements of that new array
array.prototype.filter
The filter method goes through elements of an array and return these elements only if they meet the condition as set in the function. Basically it runs a test on each element and only calkls back elements that pass this test.
array.prototype.reduce
Sometimes the videos are easier to understand then reading text. This one was the hardest to understand till i watched some videos. The. reduces method runs through each element of an array and runs a call back function on values in these array, however, the call back is the cumulative value of the previous call back etc and so on until the value it returns is the cumulative value of all the callbacks.
These methods reduce the amount of code, especially in reducing the dependence on for loops, and return results quicker.
Story to A Friend
I was stuck in solving a problem to do with a game as per the course. My code looked right, felt right, but it wasn't working. So i started to talk to these Japanese dolls I have on my desk, explaining the problem. Then I did some psuedocode while I talked to them, and then I looked back at my code…and realized I just had to clean it up and correct some typos. Sure enough, it worked.
The biggest lesson I learnt is that you need to talk the problem out a bit, even with inanimate objects, as it frees your mind from obsessively trying to solve the problem and being blind to the to the obvious. After just talking to these dolls, the answer seemed so obvious.
Pseudocode
This is a work in progress -- sometimes my pseudocode helps me solve a task, sometimes it leads me down a rabbit hole. I feel practice will make me better at it.
Trying Something
Many times trying something has been a saviour one way or another. Just seeing something work on the first go is awesome!! I try to understand a method/fucntion before I try it, so its often a good learning experience.
Rubber Ducky
My favorite method. I just talk to anything when I am stuck, sometimes its just for motivation or helps me relax. However 90 percent of the time its for the code work.
Reading Error Messages
Reading the error messages helps me a lot with cleaning up my javascript and code. I use this almost every time.
Console.log
The console.log is really my number one friend. I run small snippets of code with the javascript tester and the in the console.log as well. Its a tedious process sometimes. I wish there was a way to automatically record all the console.logs I run sometimes, or if I had a massive one set up somehow. My computer screen is too small.
Googling
I spend more time on google then on the actual tasks. I have become better at using google when searching for solutions. However, sometimes if I am not careful and my psuedocde is wrong, I can go off searching for wrong answers.
Asking peers for help
This is something I have constantly failed at. I want to. I don't know how to phrase my questions and sometimes I post and then I don't understand what I have done, so I google and realize another answer somehow. I am struggling with this. ("ill be honest).
Asking coaches for help.
From time to time, I reach out to the coaches for help. I don't know. Maybe not enough.


Issue 135
Welcome to another issue of Haskell Weekly!  This is a weekly summary of what’s going on in its community.
Featured
-
My favorite Haskell function is zipWith const. It’s tiny. It’s in Prelude. It’s awesome.
-
Internal convention is a mistake
In this post I’m gonna highlight the issues of the “Internal” modularization convention and provide a proper solution to the same set of problems.
-
The learning curve of both Haskell and Rust is worthwhile. They are both platforms that you can invest deeply into for robust infrastructure and applications that perform well.
-
Parsing type-level strings in Haskell
Any inductively defined data type can be used not only at the term level, but also at the type level. A notable exception are strings, which provide the main theme for today’s blog post.
-
Cursors, part 2: The text cursor
This is the second post in a series about cursors. It prepares the right data structure to write an editor for a single line of text.
-
I’ve put a lot of time into Tidal the last couple of months, starting with preparation for an advanced tidal workshop in Tokyo, but things got out of hand and ended with a rewrite of its innards, solving some long-standing issues.
-
Type Classes: The lessons continue
Happy Thanksgiving! We each have a new lesson of each of our respective courses for you.
-
Counting the cost of colons in Haskell
Haskell uses
::
as the type operator. That was a mistake that costs us over 1 million characters of source code.
Jobs
-
Haskell Developer at Cross Compass in Tokyo
We currently have a small team of Haskellers working on a deep learning framework implemented in Haskell. We are hiring Haskell programmers to help create this framework.
-
Language Engineer at Conduent in Raleigh
We are looking for a software engineer with experience in Haskell or OCaml located in Raleigh, North Carolina. We are looking to implement our strategy of enabling our internal and external applications with a distributed ledger (a blockchain) to help deliver value to our customers.
In brief
- Battleship game online written in Haskell
- Cloud Haskell: High level redesign proposal
- Exploring Languages with Interpreters and Functional Programming
- Formality is now able to fuse native datatypes
- Haskell Bazaar: Explore Haskell and functional programming concepts
- ozil: A help viewer for your terminal
- The usefulness of maybe monad
- Type-driven program synthesis
- Yo, Yoneda!
- Yoneda intuition from humble beginnings
Package of the week
This week’s package of the week is Envy, a library for environmentally friendly environment variables.
Call for participation
- alga: Implement custom
shrink
for non-algebraic graph data types - servant: client streaming + http redirect result into runtime exception
- shake: Make rest of the website discoverable
Events
North America
- 2018-11-29 in Durham, NC, USA by Durham Haskell Meetup: Morning Haskell (and Rust!) coding session
- 2018-11-29 in Raleigh, NC, USA by Raleigh Haskell Meetup: (hack . yack)
- 2018-11-29 in Las Vegas, NV, USA by Las Vegas Functional Programming User Group: Functional Programming Meetup
- 2018-11-29 in Calgary, AB, Canada by Functional Programmers YYC: Unconf (YYC.FP)
- 2018-12-01 in Chilliwack, BC, Canada by ChilliHask Haskell User Group: Weekly Haskell Coding Meetup
- 2018-12-01 in Boston, MA, USA by Weekly Functional Programming Meetup: Hang out, chat FP, work on some code
- 2018-12-03 in Irvine, CA by Orange Combinator - Functional Programming In OC: Combinating - Hack Night!
- 2018-12-03 in Portland, OR, USA by Portland Functional Programming Study Group: PDX Func Practice Track - Parallel and Concurrent Programming in Haskell
- 2018-12-04 in Vancouver, BC, Canada by Vancouver Functional Programmers: Haskell Lunch Study Group • Fall ’18 Cohort
- 2018-12-04 in Santa Monica, CA, USA by Santa Monica Haskell Users Group: Haskell Study Group: Quickcheck
- 2018-12-04 in Madison, WI, USA by Haskallywags: PureScript
- 2018-12-04 in Suite 1305, IL, USA by Chicago Haskell: Hack Night
- 2018-12-04 in Kraków, AL, USA by typed.space: Traveling from Java to Haskell
- 2018-12-05 in Seattle, WA, USA by Seattle Area Haskell Users’ Group: Haskell Learners’ Group
- 2018-12-05 in Bellevue, WA, USA by SeaLang: The Ballerina Programming Language
- 2018-12-06 in Austin, TX, USA by Austin Haskell Users Group: Haskell Beginner-Friendly Lab
Europe
- 2018-11-29 in Zürich, Switzerland by HaskellerZ: Beth Aitman - A practical guide to making good documentation
- 2018-12-01 in Berlin, Germany by Study Haskell: Weekly Haskell-studying session
- 2018-12-03 in Karlsruhe, Germany by Karlsruhe Haskell Meetup: Haskell Monday
- 2018-12-04 in Helsinki, Finland by Helsinki Haskell Users Group: Nix Night
- 2018-12-04 in London, United Kingdom by London Haskell: London Haskell Christmas Pub Quiz
- 2018-12-05 in Budapest, Hungary by Budapest Haskell User Group: Haskell Book reading group (25th Ed.)
- 2018-12-05 in London, United Kingdom by Skills Matter - X Matters Series - Free Developer Events: Data Matters with Jess Anderson
- 2018-12-05 in Berlin, Germany by Friendly Functional Programming Meetup Berlin: Friendly Functional Programming
- 2018-12-06 in Graz, Austria by Functional Programming Graz: Functional Programming Meetup
- 2018-12-06 in London, United Kingdom by Skills Matter - X Matters Series - Free Developer Events: Mobile Matters with Paul Hudson!
Asia
- 2018-11-29 in Melbourne, Australia by Melbourne Haskell Users Group: Melbourne Haskell Users Group Meetup
- 2018-11-30 in Gurugram, India by Reactive Application Programmers in Delhi NCR: Welcome Akka Typed
- 2018-12-01 in Delhi, India by DelhiNCR Haskell And Functional Programming Languages Group: FPNCR Unscripted Online meetup
- 2018-12-06 in Delhi, India by Reactive Application Programmers in Delhi NCR: A Hybrid Agile Approach using XP and Scrum for Software Development
- 2018-12-06 in Gurugram, India by DelhiNCR Haskell And Functional Programming Languages Group: FPNCR Monthly meetup
- 2018-12-06 in Singapore, Singapore by HASKELL.SG: December Singapore Haskell Meetup


Data Transfer Objects are used to transfer data between Application Layer and Presentation Layer.
Presentation Layer calls to an Application Service method with a Data Transfer Object (DTO), then application service uses domain objects to perform some specific business logic and returns a DTO back to the presentation layer. Thus, Presentation layer is completely isolated from Domain layer. In an ideally layered application, presentation layer does not directly work with domain objects (Repositories, Entities...).
To create a DTO for each Application Service method can be seen as a tedious and time-consuming work at first. But they can save your application if you correctly use it. Why?
DTOs provide an efficient way of abstracting domain objects from presentation layer. Thus, your layers are correctly seperated. Even if you want to change presentation layer completely, you can continue with existing application and domain layers. As opposite, you can re-write your domain layer, completely change database schema, entities and O/RM framework without any change in presentation layer as long as contracts (method signatures and DTOs) of your application services remain unchanged.
Think that you have a User entity with properties Id, Name, EmailAddress and Password fields. If GetAllUsers() method of UserAppService returns a List<User>, anyone can see passwords of all users, even you do not show it in the screen. It's not just about security, it's about data hiding. Application service should return to presentation layer what it needs. Not more, not less.
When you return a data (an object) to presentation layer, it's probably serialized in somewhere. For example, in an MVC method that returns JSON, your object can be serialized to JSON and sent to the client. Returning an Entity to the presentation layer can be problematic in that case. How?
In a real application, your entities will have references to each other. User entity can have a reference to its Roles. So, if you want to serialize User, its Roles are also serialized. And even Role class may have a List<Permission> and Permission class can have a reference to a PermissionGroup class and so on... Can you think that all of these objects are serialized? You can easily serialize your whole database accidently. Also, if your objects has circcular references, it can not be serialized.
What's the solution? Marking properties as NonSerialized? No, you can not know when it should be serialized and when it shouldn't be. It may be needed in one application service method, may not be needed in other. So, returning a safely serializable, specially designed DTOs are a good choice in this situation.
Almost all O/RM frameworks support lazy-loading. It's a feature to load entities from database when it's needed. Say User class has a reference to Role class. When you get a User from database, Role property is not filled. When you first read the Role property, it's loaded from database. So, if you return such an Entity to presentation layer, it will cause to retrieve additonal entities from database. If a serialization tool reads the entity, it reads all properties recursively and again your complete database can be retrieved (if there are suitable relations between entities).
We can say some more problems about using Entities in presentation layer. It's best to do not reference the assembly containing domain (business) layer to the presentation layer at all.
ASP.NET Boilerplate strongly supports DTOs. It provides some conventional classes & interfaces and advices some naming and usage conventions about DTOs. When you write your codes as described here, ASP.NET Boilerplate automates some tasks easily.
Let's see a complete example. Say that we want to develop an application service method that is used to search people with a name and returns list of people. In that case, we may have a Person entity as shown below:
public class Person : Entity
{
public virtual string Name { get; set; }
public virtual string EmailAddress { get; set; }
public virtual string Password { get; set; }
}
And we can define an interface for our application service:
public interface IPersonAppService : IApplicationService
{
SearchPeopleOutput SearchPeople(SearchPeopleInput input);
}
ASP.NET Boilerplate suggest naming input/output parameters as MethodNameInput and MethodNameOutput and defining a seperated input and output DTO for every application service method. Even if your method only take/return one parameter, it's better to create a DTO class. Thus, your code will be more extensible. You can add more properties later without changing signature of your method and without breaking existing client applications.
Surely, your method can return void if there is no return value. It will not break existing applications if you add a return value later. If your method does not get any argument, you do not have to define an input DTO. But it maybe better to write an input DTO class if it's probable to add parameter in the future. This is up to you.
Let's see input and output DTO classes defined for this example:
public class SearchPeopleInput
{
[StringLength(40, MinimumLength = 1)]
public string SearchedName { get; set; }
}
public class SearchPeopleOutput
{
public List<PersonDto> People { get; set; }
}
public class PersonDto : EntityDto
{
public string Name { get; set; }
public string EmailAddress { get; set; }
}
ASP.NET Boilerplate automatically validates input before execution of the method. It's similar to ASP.NET MVC's validation, but notice that application service is not a Controller, it's a plain C# class. ASP.NET Boilerplate makes interception and check input automatically. There are much more about validation. See DTO validation document.
EntityDto is a simple class that declares Id property since they are common for entities. Has a generic version if your entity's primary key is not int. You don't have to use it, but can be better to define an Id property.
PersonDto does not include Password property as you see, since it's not needed for presentation layer. Even it can be dangerous to send all people's password to presentation layer. Think that a Javascript client requested it, anyone can easily grab all passwords.
Let's implement IPersonAppService before go further.
public class PersonAppService : IPersonAppService
{
private readonly IPersonRepository _personRepository;
public PersonAppService(IPersonRepository personRepository)
{
_personRepository = personRepository;
}
public SearchPeopleOutput SearchPeople(SearchPeopleInput input)
{
//Get entities
var peopleEntityList = _personRepository.GetAllList(person => person.Name.Contains(input.SearchedName));
//Convert to DTOs
var peopleDtoList = peopleEntityList
.Select(person => new PersonDto
{
Id = person.Id,
Name = person.Name,
EmailAddress = person.EmailAddress
}).ToList();
return new SearchPeopleOutput { People = peopleDtoList };
}
}
We get entities from database, convert them to DTOs and return output. Notice that we did not validated input. ASP.NET Boilerplate validates it. It even checks if input parameter is null and throws exception if so. This saves us to write guard clauses in every method.
But, probably you did not like converting code from a Person entity to a PersonDto object. It's really a tedious work. Person entity could have much more properties.
Fortunately there are tools that makes this very easy. AutoMapper is one of them. See AutoMapper Integration document to know how to use it.
ASP.NET provides some helper interfaces that can be implemented to standardize common DTO property names.
ILimitedResultRequest defines MaxResultCount property. So, you can implement it in your input DTOs to standardize limiting result set.
IPagedResultRequest extends ILimitedResultRequest by adding SkipCount. So, we can implement this interface in SearchPeopleInput for paging:
public class SearchPeopleInput : IPagedResultRequest
{
[StringLength(40, MinimumLength = 1)]
public string SearchedName { get; set; }
public int MaxResultCount { get; set; }
public int SkipCount { get; set; }
}
As a result to a paged request, you can return an output DTO that implements IHasTotalCount. Naming standardization helps us to create re-usable codes and conventions. See other interfaces and classes under Abp.Application.Services.Dto namespace.


As a strategic innovator for eliminating plastic waste organized the Plog run in association with Go Native and BBMP and brought out a significant transformation across the city in reducing plastic waste. highlighted the importance of circular economy. s.
Engaged with senior management of MPL and Sports dept & United Karnataka Chess Association to raise 15 Lakhs Led to increased reputation for MPL, as well as expanded brand recognition.. .
Tour of Nilgiris - Worked initially to build the Brand of Tour of Nilgiris in media reach out and sponsorship. Highly succesful in the cycling community and is premiered as the leading bicycle tour in Asia.. .
Strategy to Brand Vodafone as Sustainable Brand to organize Cyclothon in Mysore and Bangalore. .


--- layout: post title: Etude House Missing U I can fly Lip Balms tags: - Cute - Etude House - Korean - Lip Balm - Lip Care status: publish type: post published: true meta: _yoast_wpseo_redirect: '' _yoast_wpseo_canonical: '' _yoast_wpseo_sitemap-prio: ! '-' _yoast_wpseo_sitemap-include: ! '-' _yoast_wpseo_meta-robots-adv: none _yoast_wpseo_meta-robots-nofollow: '0' _yoast_wpseo_meta-robots-noindex: '0' _yoast_wpseo_metadesc: Etude House Missing U I can fly Lip Balms _yoast_wpseo_metakeywords: '' _yoast_wpseo_linkdex: '88' _edit_last: '2' _yoast_wpseo_focuskw: Etude House Missing U _yoast_wpseo_title: '' _thumbnail_id: '8193' ---
Missing U is a campaign by Etude House to help protect the endangered species and it has been very successful so far. Part of the profits go to animal care organizations. Season 3 I can Fly! is about Eagle owl, Kakapo, Grass owl and Celurean Warbler.I have always loved EOS lip balms for their eccentric packaging and shape, but they aren't available in India. So when I saw the Etude House Missing U I can fly Lip Balms on the Etude House website, I just grabbed them. A friend of mine traveling from Korea brought these goodies for me . My Etude House Haul.... No doubt that these look like bird eggs and yet look so cute... Price: 5$ (Rs. 250 approximately) I have the Bluebird(Blue packaging) & Eastern Grass owl(Yellow one) This balm reminds me of a Korean drink "Peach Water", which is plain water with strong hints of peach. And both the balms remind me of sweet fragrance of peach. The packaging and shape are cute and effective, one swipe is enough to cover both the lips at the same time. Now the sad part, as lip balm its really not that effective and results are very short lived. I find myself applying it every 30-45 minutes.
Bluebird
The balm is cute, smells nice and fruity. But falls badly when it comes to moisturization. Since I fell for the packaging, I am defiantly picking up the EOS balm and skipping this one in future...
Since the balm is made for a cause, so picking up one piece won't hurt na ?