head_ref_deleted
by Christina Chortaria at 2022-03-08 22:00:36.closed
by Jane Sandberg at 2022-03-09 17:45:21.closed
by Jane Sandberg at 2022-03-09 17:45:21.head_ref_force_pushed
by Christina Chortaria at 2022-03-09 12:50:22.head_ref_force_pushed
by Christina Chortaria at 2022-03-09 14:38:39.ready_for_review
by Christina Chortaria at 2022-03-09 14:38:52.head_ref_force_pushed
by Christina Chortaria at 2022-03-09 14:47:32.deployed
by None at 2022-03-09 14:47:59.referenced
by Jane Sandberg at 2022-03-09 17:45:20.merged
by Jane Sandberg at 2022-03-09 17:45:20.closed
by Jane Sandberg at 2022-03-09 17:45:21.head_ref_deleted
by Jane Sandberg at 2022-03-09 17:45:23.review_requested
by Kevin Reiss at 2022-03-08 22:30:35.referenced
by Jane Sandberg at 2022-03-08 22:36:06.merged
by Jane Sandberg at 2022-03-08 22:36:06.closed
by Jane Sandberg at 2022-03-08 22:36:06.head_ref_deleted
by Jane Sandberg at 2022-03-08 22:36:07.renamed
by Jane Sandberg at 2022-03-09 14:15:19.closed
by Christina Chortaria at 2022-03-09 19:15:06.head_ref_force_pushed
by Jane Sandberg at 2022-03-09 16:23:15.deployed
by None at 2022-03-09 18:59:31.referenced
by Christina Chortaria at 2022-03-09 19:15:06.merged
by Christina Chortaria at 2022-03-09 19:15:06.closed
by Christina Chortaria at 2022-03-09 19:15:06.head_ref_deleted
by Christina Chortaria at 2022-03-09 19:15:07.closed
by None at 2022-03-09 13:17:32.referenced
by None at 2022-03-09 21:41:28.merged
by None at 2022-03-09 21:41:28.closed
by None at 2022-03-09 21:41:28.head_ref_deleted
by None at 2022-03-09 21:41:29.assigned
by None at 2022-03-09 20:37:27.closed
by None at 2022-03-09 22:26:38.referenced
by None at 2022-03-09 22:27:10.review_requested
by None at 2022-03-09 22:27:51.review_requested
by Jane Sandberg at 2022-03-09 00:01:10.head_ref_force_pushed
by Trey Pendragon at 2022-03-09 19:31:58.head_ref_force_pushed
by Trey Pendragon at 2022-03-09 19:36:11.head_ref_force_pushed
by Trey Pendragon at 2022-03-09 19:43:20.referenced
by Trey Pendragon at 2022-03-09 21:40:31.merged
by Trey Pendragon at 2022-03-09 21:40:31.closed
by Trey Pendragon at 2022-03-09 21:40:31.head_ref_deleted
by Trey Pendragon at 2022-03-09 21:40:31.labeled
by Trey Pendragon at 2022-03-09 18:58:40.labeled
by Trey Pendragon at 2022-03-09 18:58:40.closed
by Trey Pendragon at 2022-03-09 21:40:31.closed
by Hector Correa at 2022-03-08 22:00:44.referenced
by Hector Correa at 2022-03-08 22:00:44.merged
by Hector Correa at 2022-03-08 22:00:44.closed
by Hector Correa at 2022-03-08 22:00:44.head_ref_deleted
by Hector Correa at 2022-03-08 22:00:45.labeled
by None at 2022-03-09 15:24:47.I think this one can be closed.
closed
by Kevin Reiss at 2022-03-09 14:46:28.The staging URL is now: https://pdc-discovery-staging.princeton.edu/discovery/
assigned
by Kate Lynch at 2022-03-09 15:04:54.closed
by Bess Sadler at 2022-03-09 15:11:48.deployed
by None at 2022-03-09 14:47:31.referenced
by Bess Sadler at 2022-03-09 15:11:48.merged
by Bess Sadler at 2022-03-09 15:11:48.closed
by Bess Sadler at 2022-03-09 15:11:48.head_ref_deleted
by Bess Sadler at 2022-03-09 15:11:49.referenced
by Trey Pendragon at 2022-03-08 22:18:45.merged
by Trey Pendragon at 2022-03-08 22:18:45.closed
by Trey Pendragon at 2022-03-08 22:18:45.head_ref_deleted
by Trey Pendragon at 2022-03-08 22:18:46.@eliotjordan is this still a concern? Most if not all of our roles are idempotent now - certainly the deploy_user
role can be run multiple times without any destructive behavior. If you're concerned about the geoserver app directory, I'd be happy to pair up and run the playbook with appropriate precautions, and fix anything in the playbook that turns out to be destructive on a second run.
mentioned
by Eliot Jordan at 2022-03-08 22:20:52.subscribed
by Eliot Jordan at 2022-03-08 22:20:52.referenced
by Kevin Reiss at 2022-03-09 00:17:22.merged
by Kevin Reiss at 2022-03-09 00:17:22.closed
by Kevin Reiss at 2022-03-09 00:17:22.head_ref_deleted
by Kevin Reiss at 2022-03-09 00:17:22.closed by https://github.com/pulibrary/princeton_ansible/pull/2827
renamed
by Christina Chortaria at 2022-03-08 22:24:40.renamed
by Christina Chortaria at 2022-03-09 12:41:22.closed
by Christina Chortaria at 2022-03-09 12:41:50.closed
by Kevin Reiss at 2022-03-09 14:53:32.I tan this on dss-staging1. The version was v12.22.8 with this PR I set it to v12.22.7 what is in dss-prod1. It also sets ruby to ruby 2.7.5
head_ref_force_pushed
by Christina Chortaria at 2022-03-09 14:37:17.renamed
by Christina Chortaria at 2022-03-09 14:40:16.ready_for_review
by Christina Chortaria at 2022-03-09 14:40:26.referenced
by Kevin Reiss at 2022-03-09 14:53:32.merged
by Kevin Reiss at 2022-03-09 14:53:32.closed
by Kevin Reiss at 2022-03-09 14:53:32.head_ref_deleted
by Kevin Reiss at 2022-03-09 14:53:33.this will close #2828
head_ref_force_pushed
by Francis Kayiwa at 2022-03-09 15:34:04.review_dismissed
by Christina Chortaria at 2022-03-09 15:47:10.referenced
by Francis Kayiwa at 2022-03-09 16:33:07.merged
by Francis Kayiwa at 2022-03-09 16:33:07.closed
by Francis Kayiwa at 2022-03-09 16:33:07.head_ref_deleted
by Francis Kayiwa at 2022-03-09 16:33:08.closed
by Francis Kayiwa at 2022-03-09 16:33:37.renamed
by Christina Chortaria at 2022-03-09 17:47:51.referenced
by Christina Chortaria at 2022-03-09 17:49:58.merged
by Christina Chortaria at 2022-03-09 17:49:59.closed
by Christina Chortaria at 2022-03-09 17:49:59.head_ref_deleted
by Christina Chortaria at 2022-03-09 17:49:59.Is there the ability to switch the item number and box number so that it views "Box 182 Item Number: 5795"
The other way is causing some confusion when paging.
reopened
by Christa Cleeton at 2022-03-09 14:35:41.labeled
by None at 2022-03-09 21:19:22.Current pulfalight prod boxes have 2 CPUs, 16 GB of memory, and a 40 GB hard drive each. Both are on hosts in b
datacenter, so new VMs should go on hosts in a
datacenter.
There's a good chance that CPU caps out well before RAM and we can lower the RAM there. Let me slam the servers real quick and see.
Sieging it as hard as I could I couldn't get memory to rise above like 4GB:
labeled
by Trey Pendragon at 2022-03-09 18:05:21.labeled
by Trey Pendragon at 2022-03-09 18:05:25.assigned
by Alicia Cozine at 2022-03-09 18:28:15.They're now all 11-12G. No one did anything as far as we know.
closed
by None at 2022-03-09 21:23:08.deployed
by None at 2022-03-09 17:49:48.referenced
by Jane Sandberg at 2022-03-09 17:51:21.merged
by Jane Sandberg at 2022-03-09 17:51:21.closed
by Jane Sandberg at 2022-03-09 17:51:22.head_ref_deleted
by Jane Sandberg at 2022-03-09 17:51:22.It is currently on rails 5.2, so I am closing this ticket.
closed
by Jane Sandberg at 2022-03-09 22:59:52.closed
by Kevin Reiss at 2022-03-10 02:30:45.assigned
by Jane Sandberg at 2022-03-09 17:04:34.closed
by Kevin Reiss at 2022-03-10 02:30:45.closed
by Kevin Reiss at 2022-03-10 02:30:45.referenced
by Kevin Reiss at 2022-03-10 02:30:45.merged
by Kevin Reiss at 2022-03-10 02:30:45.closed
by Kevin Reiss at 2022-03-10 02:30:46.head_ref_deleted
by Kevin Reiss at 2022-03-10 02:30:46.merged
by Kevin Reiss at 2022-03-10 02:30:47.closed
by Kevin Reiss at 2022-03-10 02:30:47.head_ref_deleted
by Kevin Reiss at 2022-03-10 02:30:48.We have a .tool-versions file now. I think this covers the spirit here.
closed
by Kevin Reiss at 2022-03-10 02:32:02.closed
by Kevin Reiss at 2022-03-10 02:32:24.


All Classes
CDanceMaster
CDanceStage
CMMGAMain
CResources
CStateInitialize
CStateLoad
CStaticPreference
MMGA


4
1 When Saul's son Ishbosheth heard that Abner had been killed at Hebron, he became very discouraged, and all the Israelite people with him.
2 Ishbosheth had two officers who were leaders of groups of soldiers. They were brothers with the names of Baanah and Rechab; they were sons of Rimmon from the town of Beeroth in the tribe of Benjamin. Now Beeroth is in the area that had been assigned to the tribe of Benjamin.
3 But the original inhabitants of Beeroth had fled to the town of Gittaim, where they still live.
4 Saul's son Jonathan had a son named Mephibosheth. Mephibosheth was five years old when Saul and Jonathan died in the battle. When people brought that news from Jezreel, Mephibosheth's nursemaid picked him up and ran away, but she ran very fast and she dropped him, and he became crippled in his legs.
5 One day, Rechab and Baanah left their home to go to Ishbosheth's house. They arrived there about noontime, when Ishbosheth was taking his midday nap.
6 The woman who was serving as the doorkeeper was sifting wheat; but she became sleepy and then fell asleep. So Rechab and his brother Baanah were able to creep in quietly.
7 They entered Ishbosheth's bedroom, where he was sleeping.  They carried his head and walked all night through the plain along the Jordan.
8 They took the head of Ishbosheth to David at Hebron.  Your Majesty, today Yahweh has allowed you to get revenge on Saul and his descendants!"
9 But David replied to them, "Just as surely as Yahweh lives—and he is the one who has rescued me from all trouble, I will tell you this:
10 When a messenger came to Ziklag and told me 'Saul is dead!' (and he thought that the news that he was bringing to me was good news), I told one of my soldiers to kill him. That was the reward I gave to him for his news!
11 So because you two evil men have murdered a man who did nothing wrong—and you killed him when he was sleeping on his bed in his own house, I will do something worse to you.
12 Then David gave a command to his soldiers, and they killed the two men, and cut off their hands and their feet, and hung their bodies on a pole near the pool at Hebron. But they took the head of Ishbosheth and buried it respectfully in the tomb of Abner, there at Hebron.


The ColorService
can be used to get the Hex, RGB or RGBA value for a color in the Color Palette.
ThemeColor
object.
The ThemeColor
object is used to provide the selected color from the Color Palette.
The following functions can be used on the ThemeColor
object:
ThemeColor
. The valid range is 0-255.
ThemeColor
. The valid range is 0-255.
ThemeColor
. The valid range is 0-255.
ThemeColor
. The valid range is 0.0-1.0.
ThemeColor
in the following arrangement: rgb(0, 167, 162)
.
ThemeColor
in the following arrangement: rgb(0, 167, 162, 0.5)
.
ThemeColor
in the following arrangement: #00a7a2
.
Below is a list of color names which the getColor
function accepts:
|
primary accent secondary |
|---|
|
alternate1 alternate2 alternate3 |
|
vibrant1 vibrant2 |
|
grey1 grey2 grey3 grey4 grey5 grey6 grey7 grey8 |
|
chart1 chart2 chart3 chart4 chart5 chart6 |
|
ok warning critical |
Note: Refer to the Color Palette page for details about available colors.
Below is an example of how the ColorService
can be used:


DRUD Technology websites and applications have common typographic needs: clear and consistent headings, highly legible body paragraphs, clear labels, and easy-to-use input fields. We recommend a font system that uses three open-source font families: Montserrat, Source Code Pro, and Merriweather, all of which are designed for legibility and can beautifully adapt to a variety of visual styles.
Aa
The old posters and signs in the traditional Montserrat neighborhood of Buenos Aires inspired Julieta to design this typeface and rescue the beauty of urban typography that emerged in the first half of the twentieth century. As urban development changes that place, it will never return to its original form and loses forever the designs that are so special and unique. The old typographies and canopies are irretrievable when they are replaced. The letters that inspired this project have work, dedication, care, color, contrast, light and life, day and night! These are the types that make the city look so beautiful. The goal is to rescue what is in Montserrat and set it free under a libre license, the SIL Open Font License.
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat" />
Aa
Merriweather was designed to be a text face that is pleasant to read on screens. It features a very large x height, slightly condensed letterforms, a mild diagonal stress, sturdy serifs and open forms.
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Merriweather" />
Aa
Source Code was designed by Paul D. Hunt as a companion to Source Sans. This complementary family was adapted from the Source design due to a request to create a monospaced version for coding applications. Source Code preserves the design features and vertical proportions of Source Sans, but alters the glyph widths so that they are uniform across all glyphs and weights. Although this family was designed specifically for coding environments, for which a regular weight will typically suffice, Source Code has been made available in the same weight range as the corresponding Source Sans design. Source Code Pro currently supports a wide range of languages using the Latin script, and includes all the characters in the Adobe Latin 4 glyph set.
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Code+Pro" />
A simple serif and sans serif combination designed to communicate warmth and credibility. Strong Merriweather heading weights offer clear information hierarchy and when paired with Montserrat’s easy-to-read body text, create a clean and professional feel.
Font weights included in this package:
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:400,500%7CMerriweather:300,700" />
h1 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 2.5rem;
line-height: 1.3;
}
h2 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 2.0rem;
line-height: 1.3;
}
h3 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.75rem;
line-height: 1.3;
}
h4 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.5rem;
line-height: 1.3;
}
h5 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.25rem;
line-height: 1.3;
}
h6 {
font-family: 'Montserrat';
font-weight: 500;
font-size: 1rem;
line-height: 1.3;
text-transform: uppercase;
}
Lead Paragraph
.lead {
font-family: 'Merriweather';
font-weight: 300;
font-size: 1.25rem;
line-height: 1.7;
}
Body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Montserrat';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
}
Italic body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Montserrat';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
font-style: italic;
}
A variation on the serif and sans serif pairing, this combination uses multiple weights of Montserrat for clear headings combined with the formal feeling of Merriweather for body text. This pair similarly communicates professionalism, with extra emphasis on sleek and legible headings.
Font weights included in this package:
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:300,700%7CMerriweather:400" />
h1 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 2.5rem;
line-height: 1.3;
}
h2 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 2.0rem;
line-height: 1.3;
}
h3 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.75rem;
line-height: 1.3;
}
h4 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.5rem;
line-height: 1.3;
}
h5 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.25rem;
line-height: 1.3;
}
h6 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1rem;
line-height: 1.3;
text-transform: uppercase;
}
Lead Paragraph
.lead {
font-family: 'Montserrat';
font-weight: 300;
font-size: 1.25rem;
line-height: 1.7;
}
Body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Merriweather';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
}
Italic body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Merriweather';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
font-style: italic;
}
The most formal of the options, this pairing uses Merriweather for both headings and body text. The full suite of serif styles communicates trustworthiness, while Merriweather’s contemporary shapes convey freshness and a modern relevance. The weights are designed to pair together for easy reading and clean page design.
Font weights included in this package:
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Merriweather:300,400,700" />
h1 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 2.5rem;
line-height: 1.3;
}
h2 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 2.0rem;
line-height: 1.3;
}
h3 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.75rem;
line-height: 1.3;
}
h4 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.5rem;
line-height: 1.3;
}
h5 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1.25rem;
line-height: 1.3;
}
h6 {
font-family: 'Merriweather';
font-weight: 700;
font-size: 1rem;
line-height: 1.3;
text-transform: uppercase;
}
Lead Paragraph
.lead {
font-family: 'Merriweather';
font-weight: 300;
font-size: 1.25rem;
line-height: 1.7;
}
Body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Merriweather';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
}
Italic body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Merriweather';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
font-style: italic;
}
Inspired by the growth of simple and welcoming type in modern web UI design, this suite uses Source Sans Pro exclusively. With a range of weights designed to fit into heading styles to clearly communicate hierarchy of information, this pairing can support both extremely simple designs and more polished, promotional sites.
Font weights included in this package:
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Montserrat:300,400,700" />
h1 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 2.5rem;
line-height: 1.3;
}
h2 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 2.0rem;
line-height: 1.3;
}
h3 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.75rem;
line-height: 1.3;
}
h4 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.5rem;
line-height: 1.3;
}
h5 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1.25rem;
line-height: 1.3;
}
h6 {
font-family: 'Montserrat';
font-weight: 700;
font-size: 1rem;
line-height: 1.3;
}
Lead Paragraph
.lead {
font-family: 'Montserrat';
font-weight: 300;
font-size: 1.25rem;
line-height: 1.7;
}
Body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Montserrat';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
}
Italic body copy. A series of sentences together which make a paragraph.
p {
font-family: 'Montserrat';
font-weight: 400;
font-size: 1rem;
line-height: 1.5;
font-style: italic;
}
Readable text allows users to efficiently read and take in textual information, whereas text that is not readable turns off readers or makes it challenging for them to stay focused. The following guidelines promote good readability.
Morbi commodo turpis vel sem dictum, eget mollis elit dignissim. Curabitur accumsan a ante non euismod. Ut semper augue commodo orci auctor, ultrices sollicitudin neque dapibus. Sed porttitor vel metus eget lacinia. Cras bibendum tempus sodales. In non lobortis eros.
Aliquam a massa efficitur sapien egestas imperdiet sed ac diam. Nullam vitae convallis leo, nec posuere ipsum. Donec iaculis porta tellus, vitae eleifend nisi tempus in. Donec id ante ac odio venenatis aliquam ac id ante. Aliquam sodales ac nisi eget sollicitudin. Phasellus placerat cursus neque at laoreet. Fusce scelerisque tortor ipsum, ac ultrices sapien volutpat quis. Nullam luctus aliquet tellus, vel cursus nisi vestibulum ut. Integer vitae semper nisi, eget vestibulum felis. Donec eu neque accumsan, lacinia turpis vitae, imperdiet ante.
Type set flush left provides the eye a constant starting point for each line, making text easier to read.

Lorem ipsum dolor sit amet

Morbi commodo turpis vel sem dictum, eget mollis elit dignissim. Curabitur accumsan a ante non euismod. Ut semper augue commodo orci auctor, ultrices sollicitudin neque dapibus. Sed porttitor vel metus eget lacinia. Cras bibendum tempus sodales. In non lobortis eros.

Aliquam a massa efficitur sapien egestas imperdiet sed ac diam. Nullam vitae convallis leo, nec posuere ipsum. Donec iaculis porta tellus, vitae eleifend nisi tempus in. Donec id ante ac odio venenatis aliquam ac id ante. Aliquam sodales ac nisi eget sollicitudin. Phasellus placerat cursus neque at laoreet. Fusce scelerisque tortor ipsum, ac ultrices sapien volutpat quis. Nullam luctus aliquet tellus, vel cursus nisi vestibulum ut. Integer vitae semper nisi, eget vestibulum felis. Donec eu neque accumsan, lacinia turpis vitae, imperdiet ante.

Nulla accumsan pharetra tellus, eu aliquam nisl ullamcorper a. Nullam efficitur risus eu maximus facilisis. Sed fermentum feugiat ante ac elementum. Donec consectetur eget neque at viverra. Nullam faucibus pretium euismod. Donec ac vehicula enim. Sed arcu tellus, mollis a sollicitudin ac, bibendum ac odio. In malesuada arcu sit amet tortor ornare, sed tristique lacus elementum. Nam diam odio, gravida sed turpis vel, placerat vehicula eros. Nam congue sem eu nulla pharetra pellentesque. Cras efficitur consectetur ullamcorper.
Controlling the length of lines of text in extended copy makes reading more comfortable by helping readers’ eyes flow easily from one line to the next. Somewhere between 50 and 75 characters per line is broadly considered to be a readable line length, while 66 characters is considered the ideal. Other factors beyond line length also affect reading comfort. Text with more space between lines can have somewhat longer line length. Also, contexts in which users will not be reading long passages of text (such as footnotes or alerts) can safely be set with somewhat longer lines as well.

Nulla accumsan pharetra tellus, eu aliquam nisl ullamcorper a. Nullam efficitur risus eu maximus facilisis. Sed fermentum feugiat ante ac elementum. Donec consectetur eget neque at viverra. Nullam faucibus pretium euismod. Donec ac vehicula enim. Sed arcu tellus, mollis a sollicitudin ac, bibendum ac odio. In malesuada arcu sit amet tortor ornare, sed tristique lacus elementum. Nam diam odio, gravida sed turpis vel, placerat vehicula eros. Nam congue sem eu nulla pharetra pellentesque. Cras efficitur consectetur ullamcorper.

This is a text link on a light background.
This is a visited link.
This is a link that goes to an external website.
This is a text link on a dark background.

This is a text link on a light background.

This is a visited link.

This  is a link that goes to an external website.

This is a text link on a dark background.

Unordered List

Unordered list item

Unordered list item

Unordered list item

Ordered List

Ordered list item

Ordered list item

Ordered list item


Space travel can still be dramatic in 2016, but it's a cakewalk compared to half a century ago. Today marks 50 years since the unmanned Surveyor I probe lifted off from Cape Canaveral, and when it landed in the Oceanus Procellarum on June 2, 1966, it was more than the first US soft landing on the Moon, it was a leap into the unknown. Launched at the height of the Space Race and the depth of the Cold War, the stakes for the first of seven Surveyor missions were incredibly high, as NASA wrestled with untried technologies and questions about the basic nature of the Moon that could make or break any hope of a manned landing. The first "soft" landing on the Moon was made by the Soviet Luna 9 four months previous to Surveyor I. On February 3, 1966, Luna 9 used retrorockets to slow itself down over Oceanus Procellarum. Though the main spacecraft crashed into the lunar surface, it released an instrument package that used balloons to cushion itself on impact. The ball-like craft then opened and sent back images of the lunar surface.


WELCOME
to
O-WORk
Where we make ends meet.
O-Work is a multidisciplinary creative platform for showcasing people's skills.
We are based in Kenya At Moringa School.
We work together to showcase people's skills, market them and create a connection
between skill owners and customers that we are proud of for and we believe you.
We are available for a wide range of creative disciplines, a variety of jobs, projects and gigs.


Inline chart library with angularjs binding. Use with sparkline
directive along with same sparkline options. Here's one of the example and the most common examples are given below. All code directly in html.
<span sparkline type="pie">1,2,1</span>
1,2,1
| Chart | Type |
|---|---|
| 8,4,0,0,0,0,1,4,4,10,10,10,10,0,0,0,4,6,5,9,10 | Inline line graphs |
| 10,8,9,3,5,8,5 -3,1,2,0,3,-1 [0, 2], [2, 4], [4, 2], [4, 1] | Bar graphs with negative and stacked |
| 5, 4, 2 5, 3 | Pie graphs |
| 4,6,7,7,4,3,2,1,4,4,5,7,3,1,5 | Discrete graph |
| 10,12,12,9,7 | Bullet graph |


{% extends "site_base.html" %} {% load i18n %} {% block head_title %}{% trans 'Contact us' %}{% endblock %} {% block body %}
It's a great place to post a tough question, make an announcement, or leaf through the archives going back to 2005. Get connected with a wealth of resources today!


Quick
Name contains Name exact Category
Calories Carbs Protein Fat
Searching, please wait ...
0 items found.
No results found


{% extends "base.html" %} {% block title %}Reset Service{% endblock %} {% block content %}
This service will reset your password for account {{ acc.service_uid }} on {{ acc.service }}. If you wish to continue please click the link below.
{% endblock %}


Range queries¶
Table of contents
I’m only interested in the 1980s¶
In the museums dataset we used in our earlier examples, there is a field DATE_MADE that tells us when the object in question was made, so one of the natural things people might want to do is to only search for objects made in a particular time period. Suppose we want to extend our original system to allow that, we’re going to have to do a number of things.
- Parse the field from the data set to turn it into something consistent; at the moment it includes years, year ranges (“1671-1700”), approximate years (“c. 1936”) and commentary (“patented 1885”, or “1642-1649 (original); 1883 (model)”). Additionally, some records have no information about when the object was made.
- Store that information in the Xapian database.
- Provide a way during search of specifying a date range to constrain to.
If we look through the other fields in the data set, there are more that could be useful for range queries: we could extract the longest dimension from MEASUREMENTS to enable people to restrict to only very large or very small objects, for instance.
We’ll see how to perform range searches across both those dimensions, and then we’ll look at how to cope with full dates rather than just years.
How Xapian supports range queries¶
If you think back to when we introduced the query concepts behind
Xapian, you’ll remember that one group of query operators is
responsible for handling value ranges: OP_VALUE_LE
,
OP_VALUE_GE
and OP_VALUE_RANGE
.
So we’ll be tackling range queries by using document values, and constructing
queries using these operators to restrict matches suitably.
Since we want to expose this functionality generally to users, we want
them to be able to type in a query that will include one or more range
restrictions; the QueryParser contains support for doing this, using
range processors, subclasses of Xapian::RangeProcessor
.
Xapian comes with some standard ones itself, or you can write your own.
Since document values are stored as strings in Xapian, and the operators provided perform string comparisons, we need a way of converting numbers to strings to store them. For this, Xapian provides a pair of utility functions: sortable_serialise and sortable_unserialise, which convert between floating point numbers (strictly, each works with a double) and a string that will sort in the same way and so can be compared easily.
Creating the document values¶
We need a new version of our indexer. This one is index_ranges.cc, and creates document values from both MEASUREMENTS and DATE_MADE. We’ll put the largest dimension in value slot 0 (fortunately the data is stored in millimetres and kilograms, so we can cheat a little and assume that dimensions will always be larger than weights), and a year taken from DATE_MADE into value slot 1 (we choose the first year we can parse, since it can contain such a variety of date formats).
// parse the two values we need
double n;
if (max_number_in_string(measurements, &n)) {
doc.add_value(0, Xapian::sortable_serialise(n));
}
if (first_number_in_string(date_made, &n)) {
doc.add_value(1, Xapian::sortable_serialise(n));
}
We run this like so:
$ g++ `xapian-config --cxxflags` code/c++/index_ranges.cc code/c++/support.cc -o index_ranges `xapian-config --libs`
$ ./index_ranges data/100-objects-v1.csv db
We can check this has created document values using xapian-delve:
$ xapian-delve -V0 db | cat -v
Value 0 for each document: 5:M-@M-@ 8:M-HV 9:M-EM-p 10:M-MF 11:M-AM-0 12:M-AP 15:M-8^P 19:M-Dt 20:M-GM-P 21:M-E 24:M-O: 25:M-BM-@ 26:M-AM- 27:M-BX 29:M-DD 30:M-BM-^P 31:M-6@ 33:M-;` 34:M-A0 35:M-LM-l 36:M-C^P 37:M-9M-p 38:M-A( 39:M-FT 42:M-H2 45:M-N@ 46:M-AP 50:M-:M-^P 51:M-9P 52:M-LM-! 54:M-CM-( 55:M-9M-P 56:M-@P 59:M-D` 61:M-A( 62:M-;@ 64:M-:M-^P 66:M-AM-H 67:M-8` 68:M-@D33333@ 69:M-D^P 70:M-@M-H 71:M-KM-( 72:M-8^P 73:M-5M-^NfffffM-^@ 74:M-5M-^NfffffM-^@ 75:M-C$M-LM-LM-LM-LM-LM-@ 76:M-BM-?33333@ 77:M-C>33333@ 78:M-;M-^@ 79:M-E^T 80:M-9P 81:M-A@ 84:M-9M-t 86:M-L~ 87:M-BM-@ 88:M-9(M-LM-LM-LM-LM-LM-@ 89:M-:M-?33333@ 90:M-8M-C33333@ 91:M-E| 93:M-A( 94:M-@` 97:M-EM-\ 98:M-Bh 100:M-9^P
All the odd characters are because xapian-delve doesn’t know to run sortable_unserialise to turn the strings back into numbers.
Searching with ranges¶
All we need to do once we’ve got the document values in place is to
tell the QueryParser about them. The simplest range processor is
Xapian::RangeProcessor
itself, but here we need two
Xapian::NumberRangeProcessor
instances.
To distinguish between the two different ranges, we’ll require that dimensions must be specified with the suffix ‘mm’, but years are just numbers. For this to work, we have to tell QueryParser about the value range with a suffix first:
Xapian::NumberRangeProcessor size_vrp(0, "mm", Xapian::RP_SUFFIX);
queryparser.add_rangeprocessor(&size_vrp);
Xapian::NumberRangeProcessor date_vrp(1);
queryparser.add_rangeprocessor(&date_vrp);
The first call has a final parameter of False to say that ‘mm’ is a suffix (the default is for it to be a prefix). When using the empty string, as in the second call, it doesn’t matter whether you say it’s a suffix or prefix, so it’s convenient to skip that parameter.
This is implemented in search_ranges.cc, which also modifies the output to show the measurements and date made fields as well as the title.
We can now restrict across dimensions using queries like ‘..50mm’ (everything at most 50mm in its longest dimension), and across years using ‘1980..1989’:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges.cc code/c++/support.cc -o search_ranges `xapian-config --libs`
$ ./search_ranges db ..50mm
1: #031 (1588) overall diameter: 50 mm
Portable universal equinoctial sundial, in brass, signed "A
2: #073 (1701-1721) overall: 15 mm x 44.45 mm, weight: 0.055kg
Universal pocket sundial
3: #074 (1596) overall: 13 mm x 44.45 mm x 44.45 mm, weight: 0.095kg
Sundial, made as a locket, gilt metal, part silver
'..50mm'[0:10] = 31 73 74
$ g++ `xapian-config --cxxflags` code/c++/search_ranges.cc code/c++/support.cc -o search_ranges `xapian-config --libs`
$ ./search_ranges db 1980..1989
1: #050 (1984) overall: 105 mm x 75 mm x 57 mm,
Quartz Analogue "no battery" wristwatch by Pulsar Quartz (CA
2: #051 (1984) overall: 85 mm x 65 mm x 38 mm,
Analogue quartz clock with voice controlled alarm by Braun,
'1980..1989'[0:10] = 50 51
You can of course combine this with ‘normal’ search terms, such as all clocks made from 1960 onwards:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges.cc code/c++/support.cc -o search_ranges `xapian-config --libs`
$ ./search_ranges db clock 1960..
1: #052 (1974) clock: 1185 x 780 mm, 122 kg; rewind unit: 460 x 640 x 350 mm
Reconstruction of Dondi's Astronomical Clock, 1974
2: #051 (1984) overall: 85 mm x 65 mm x 38 mm,
Analogue quartz clock with voice controlled alarm by Braun,
3: #009 (1973) overall: 380 mm x 300 mm x 192 mm, weight: 6.45kg
Copy of a Dwerrihouse skeleton clock with coup-perdu escape
'clock 1960..'[0:10] = 52 51 9
and even combining both ranges at once, such as all large objects from the 19th century:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges.cc code/c++/support.cc -o search_ranges `xapian-config --libs`
$ ./search_ranges db 1000..mm 1800..1899
1: #024 (1845-1855) overall: 1850 mm x 350 mm x 250 mm
Regulator Clock with Gravity Escapement
'1000..mm 1800..1899'[0:10] = 24
Note the slightly awkward syntax 1000..mm. The suffix must always go on the end of the entire range; it may also go on the beginning (so you can do 1000mm..mm). Similarly, you can have 100mm..200mm or 100..200mm but not 100mm..200. These rules are reversed for prefixes.
If you get the rules wrong, the QueryParser will raise a QueryParserError, which in production code you could catch and either signal to the user or perhaps try the query again without the RangeProcessor that tripped up.
Handling dates¶
To restrict to a date range, we need to decide how to both store the
date in a document value, and how we want users to input the date
range in their query. Xapian::DateRangeProcessor
, which is part of
Xapian, works by storing the date as a string in the form ‘YYYYMMDD’,
and can take dates in either US style (month/day/year) or European
style (day/month/year).
To show how this works, we’re going to need to use a different dataset, because the museums data only gives years the objects were made in; we’ve built one using data on the fifty US states, taken from Wikipedia infoboxes on 5th November 2011 and then tidied up a small amount. The CSV file is states.csv, and the code that did most of the work is from_wikipedia.cc, using a list of Wikipedia page titles in us_states_on_wikipedia. The CSV is licensed as Creative Commons Attribution-Share Alike 3.0, as per Wikipedia.
We need a new indexer for this as well, which is index_ranges2.cc. It stores two numbers using sortable_serialise: year of admission in value slot 1 and population in slot 3. It also stores the date of admission as ‘YYYYMMDD’ in slot 2. Here’s the code which does this:
// Index each field with a suitable prefix.
termgenerator.index_text(name, 1, "S");
termgenerator.index_text(description, 1, "XD");
termgenerator.index_text(motto, 1, "XM");
// Index fields without prefixes for general search.
termgenerator.index_text(name);
termgenerator.increase_termpos();
termgenerator.index_text(description);
termgenerator.increase_termpos();
termgenerator.index_text(motto);
// Add document values.
if (!admitted.empty()) {
doc.add_value(1, Xapian::sortable_serialise(atoi(admitted.substr(0, 4).c_str())));
doc.add_value(2, admitted); // YYYYMMDD
}
if (!population.empty()) {
doc.add_value(3, Xapian::sortable_serialise(atoi(population.c_str())));
}
We’ll look at just the date ones for now, and come back to the others in a minute.
We use the indexer in the same way as previous ones:
$ g++ `xapian-config --cxxflags` code/c++/index_ranges2.cc code/c++/support.cc -o index_ranges2 `xapian-config --libs`
$ ./index_ranges2 data/states.csv statesdb
With this done, we can change the set of value range processors we give to the QueryParser.
Xapian::DateRangeProcessor date_vrp(2, Xapian::RP_DATE_PREFER_MDY, 1860);
queryparser.add_rangeprocessor(&date_vrp);
Xapian::NumberRangeProcessor number_vrp(1);
queryparser.add_rangeprocessor(&number_vrp);
The Xapian::DateRangeProcessor
is working on value slot 2, with an
“epoch” of 1860 (so two digit years will be considered as starting at
1860 and going forward as far 1959). The second parameter is whether
it should prefer US style dates or not; since we’re looking at US
states, we’ve gone for US dates. The Xapian::NumberRangeProcessor
is as we saw before, which means that it can’t cope with two digit years.
This enables us to search for any state that talks about the Spanish in its description:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges2.cc code/c++/support.cc -o search_ranges2 `xapian-config --libs`
$ ./search_ranges2 statesdb spanish
1: #004 State of Montana November 8, 1889
Population 989,415
2: #019 State of Texas December 29, 1845
Population 25,145,561
'spanish'[0:10] = 4 19
or for all states admitted in the 19th century:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges2.cc code/c++/support.cc -o search_ranges2 `xapian-config --libs`
$ ./search_ranges2 statesdb 1800..1899
1: #001 State of Washington November 11, 1889
Population 6,744,496
2: #002 State of Arkansas June 15, 1836
Population 2,915,918
3: #003 State of Oregon February 14, 1859
Population 3,831,074
4: #004 State of Montana November 8, 1889
Population 989,415
5: #005 Idaho July 3, 1890
Population 1,567,582
6: #006 State of Nevada October 31, 1864
Population 2,700,551
7: #007 State of California September 9, 1850
Population 37,253,956
8: #009 State of Utah January 4, 1896
Population 2,763,885
9: #010 State of Wyoming July 10, 1890
Population 563,626
10: #011 State of Colorado August 1, 1876
Population 5,029,196
'1800..1899'[0:10] = 1 2 3 4 5 6 7 9 10 11
That uses the Xapian::NumberRangeProcessor
on value slot 1, as in
our previous example. Let’s be more specific and ask for only those
between November 8th 1889, when Montana became part of the Union, and
July 10th 1890, when Wyoming joined:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges2.cc code/c++/support.cc -o search_ranges2 `xapian-config --libs`
$ ./search_ranges2 statesdb 11/08/1889..07/10/1890
1: #001 State of Washington November 11, 1889
Population 6,744,496
2: #004 State of Montana November 8, 1889
Population 989,415
3: #005 Idaho July 3, 1890
Population 1,567,582
4: #010 State of Wyoming July 10, 1890
Population 563,626
'11/08/1889..07/10/1890'[0:10] = 1 4 5 10
That uses the Xapian::DateRangeProcessor
on value slot 2; it can’t
cope with year ranges, which is why we indexed to both slots 1 and 2.
Writing your own RangeProcessor¶
We haven’t yet done anything with population. What we want is
something that behaves like Xapian::NumberRangeProcessor
, but knows
what reason possible values are. If we insert it before the
Xapian::NumberRangeProcessor
on slot 1 (year), it can pick up
anything that should be treated as a population, and let everything else be
treated as a year range.
To do this, we need to know how a Xapian::RangeProcessor
gets
called by the QueryParser. What happens is that each processor in turn is
passed the start and end of the range. If it doesn’t understand the range, it
should return Xapian::BAD_VALUENO
. If it does understand
the range, it should return the value number to use with
Xapian::Query::OP_VALUE_RANGE
and if it wants to, it can
modify the start and end values (to convert them to the correct format for
the string comparison which Xapian::OP_VALUE_RANGE
uses).
What we’re going to do is to write a custom Xapian::RangeProcessor
that accepts numbers in the range 500,000 to 50,000,000; these can’t
possibly be years in our data set, and encompass the full range of
populations. If either number is outside that range, we will return
Xapian::BAD_VALUENO
and the QueryParser will move on.
class PopulationRangeProcessor : public Xapian::NumberRangeProcessor {
bool check_range_end(const string& v) {
if (v.empty()) return true;
if (!isdigit(v[0])) return false;
errno = 0;
const char * p = v.c_str();
char * q;
unsigned long u = strtoul(p, &q, 10);
return !errno && q - p == v.size() && u >= low && u <= high;
}
int low, high;
public:
PopulationRangeProcessor(Xapian::valueno slot, int low_, int high_)
: Xapian::NumberRangeProcessor(slot), low(low_), high(high_) { }
Xapian::Query operator()(const string& begin, const string& end) {
if (!check_range_end(begin))
return Xapian::Query(Xapian::Query::OP_INVALID);
if (!check_range_end(end))
return Xapian::Query(Xapian::Query::OP_INVALID);
return Xapian::NumberRangeProcessor::operator()(begin, end);
}
};
queryparser.add_rangeprocessor(
(new PopulationRangeProcessor(3, 500000, 50000000))->release());
Most of the work is in __call__ (python’s equivalent of operator()
in C++), which gets called with the two strings at either end of the
range in the query string; either but not both can be the empty
string, which indicates an open-ended range. This method returns a
Xapian::Query
object - if the object doesn’t want to handle
the range, then this should use operator OP_INVALID
.
it doesn’t want to handle it; otherwise this query is the range that
is matched - typically using OP_VALUE_RANGE
, but
arbitrary Xapian::Query
objects are supported.
Rather than re-implement Xapian::NumberRangeProcessor
, we wrap it to do
the serialisation (due to the way python interacts with the API it’s currently
not possible to subclass it successfully here).
Range processors are called in the order they’re added, so our custom one gets a chance to look at all ranges, but will only ‘claim’ ranges which use integer numbers within the 500 thousand to 50 million range.
We can then search for states by population, such as all over 10 million:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges2.cc code/c++/support.cc -o search_ranges2 `xapian-config --libs`
$ ./search_ranges2 statesdb 10000000..
1: #007 State of California September 9, 1850
Population 37,253,956
2: #019 State of Texas December 29, 1845
Population 25,145,561
3: #027 State of Illinois December 3, 1818
Population 12,830,632
4: #030 State of Ohio March 1, 1803
Population 11,536,504
5: #035 State of Florida March 3, 1845
Population 18,801,310
6: #040 Commonwealth of Pennsylvania December 12, 1787
Population 12,702,379
7: #041 State of New York July 26, 1788
Population 19,378,102
'10000000..'[0:10] = 7 19 27 30 35 40 41
Or all that joined the union in the 1780s and have a population now over 10 million:
$ g++ `xapian-config --cxxflags` code/c++/search_ranges2.cc code/c++/support.cc -o search_ranges2 `xapian-config --libs`
$ ./search_ranges2 statesdb 1780..1789 10000000..
1: #040 Commonwealth of Pennsylvania December 12, 1787
Population 12,702,379
2: #041 State of New York July 26, 1788
Population 19,378,102
'1780..1789 10000000..'[0:10] = 40 41
With a little more work, we could support ranges such as ‘..5m’ to mean up to 5 million, or ‘..750k’ for up to 750 thousand.
Similarly, it would be possible to use the same approach to create a custom
Xapian::RangeProcessor
that could restrict to a range of years, and
cope with two digit years, as our Xapian::DateRangeProcessor
did for
full dates.
Performance limitations¶
Without other terms in a query, a Xapian::RangeProcessor
can cause
a value operation to be performed across the whole database, which means
loading all the values in a given slot. On a small database, this
isn’t a problem, but for a large one it can have performance
implications: you may end up with very slow queries.


\n
, if any, will be taken as a row delimiter.
|
, tab or multiple spaces will be taken as column delimiter.
Tabs usually occur as a result of copying cells from Excel.
|
at the beginning and end of lines will be removed,
as well as horizontal dividers, if any.

to an ASCII table - just paste the HTML code in
the input and tick "Input text is HTML

".
date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status cs(Referer) cs(User-Agent) cs-uri-query cs(Cookie) x-edge-result-type x-edge-request-id x-host-header cs-protocol cs-bytes time-taken x-forwarded-for ssl-protocol ssl-cipher x-edge-response-result-type cs-protocol-version fle-status fle-encrypted-fields c-port time-to-first-byte x-edge-detailed-result-type sc-content-type sc-content-len sc-range-start sc-range-end
version account-id interface-id srcaddr dstaddr srcport dstport protocol packets bytes start end action log-status vpc-id subnet-id instance-id tcp-flags type pkt-srcaddr pkt-dstaddr region az-id sublocation-type sublocation-id pkt-src-aws-service pkt-dst-aws-service flow-direction traffic-path

timestamp-local
column will be added)RESULT IN CSV FORMAT (click here to download CSV file):


{% extends "layout.html" %} {% from "macros.html" import render_field, form_tag %} {% block content %}
The logo image dimentions should be close to 100px, upto 200px at most.


A GTK+ graphical user interface for editing and
interacting with R plots.
| Version: |
0.9-54 |
| Depends: |
R (≥ 2.7.0), lattice (≥ 0.16-3), cairoDevice, gWidgetsRGtk2 (≥ 0.0-45), grid |
| Imports: |
RGtk2 (≥ 2.20.1), gWidgets (≥ 0.0-30), gridBase, grDevices, graphics, stats, utils |
| Suggests: |
latticist, zoo, MASS, ggplot2, sp |
| Published: |
2012-08-28 |
| Author: |
Felix Andrews |
| Maintainer: |
Felix Andrews <felix at nfrac.org> |
| License: |
GPL-2 | GPL-3 [expanded from: GPL (≥ 2)] |
| URL: |
http://playwith.googlecode.com/ |
| NeedsCompilation: |
yes |
| Materials: |
NEWS |
| In views: |
Graphics |
| CRAN checks: |
playwith results |


7. Writing Function¶
7.1. Function Definition¶
How to write a function?
A function is defined using the def
keyword:
The following is a simple function that prints “Hello, World!”.
# Function definition
def say_hello():
print('Hello, World!')
# Function invocation
say_hello()
Hello, World!
To make a function more powerful and solve different problems,
we can
use a return statement to return a value that
depends on some input arguments.
def increment(x):
return x + 1
increment(3)
4
We can also have multiple input arguments.
def length_of_hypotenuse(a, b):
if a >= 0 and b >= 0:
return (a**2 + b**2)**0.5
else:
print('Input arguments must be non-negative.')
length_of_hypotenuse(3, 4)
5.0
length_of_hypotenuse(-3, 4)
Input arguments must be non-negative.
7.2. Documentation¶
How to document a function?
# Author: John Doe
# Last modified: 2020-09-14
def increment(x):
'''The function takes in a value x and returns the increment x + 1.
It is a simple example that demonstrates the idea of
- parameter passing,
- return statement, and
- function documentation.'''
return x + 1 # + operation is used and may fail for 'str'
The help
command shows the docstring we write
at beginning of the function body
delimited using triple single/double quotes.
help(increment)
Help on function increment in module __main__:
increment(x)
The function takes in a value x and returns the increment x + 1.
It is a simple example that demonstrates the idea of
- parameter passing,
- return statement, and
- function documentation.
The docstring should contain the usage guide, i.e., information for new users to call the function properly.
There is a Python style guide (PEP 257) for
Why doesn’t help
show the comments that start with #
?
# Author: John Doe
# Last modified: 2020-09-14
def increment(x):
...
return x + 1 # + operation is used and may fail for 'str'
Those comments are not usage guide. They are intended for programmers who need to maintain/extend the function definition.
Information about the author and modification date facilitate communications among programmers.
Comments within the code help explain important and not-so-obvious implementation details.
How to let user know the data types of input arguments and return value?
We can annotate the function with hints of the types of the arguments and return value.
# Author: John Doe
# Last modified: 2020-09-14
def increment(x: float) -> float:
'''The function takes in a value x and returns the increment x + 1.
It is a simple example that demonstrates the idea of
- parameter passing,
- return statement, and
- function documentation.'''
return x + 1 # + operation is used and may fail for 'str'
help(increment)
Help on function increment in module __main__:
increment(x: float) -> float
The function takes in a value x and returns the increment x + 1.
It is a simple example that demonstrates the idea of
- parameter passing,
- return statement, and
- function documentation.
The above annotations is not enforced by the Python interpreter.
Nevertheless, such annotations make the code easier to understand and can be used by editor with type-checking tools.
def increment_user_input():
return increment(input()) # does not raise error even though input returns str
increment_user_input() # still lead to runtime error
7.3. Parameter Passing¶
Can we increment a variable instead of returning its increment?
def increment(x):
x += 1
x = 3
increment(x)
print(x) # 4?
3
Does the above code increment x
?
%%mytutor -h 350
def increment(x):
x += 1
x = 3
increment(x)
print(x)
Step 3: The function
increment
is invoked with the argument evaluated to the value ofx
.Step 3-4: A local frame is created for variables local to
increment
during its execution.The formal parameter
x
indef increment(x):
becomes a local variable andit is assigned the value
3
of the actual parameter given by the global variablex
.
Step 5-6: The local (but not the global) variable
x
is incremented.Step 6-7: The function call completes and the local frame is removed.


Eye care
Home
Dashboard
Signup
Signout
Sign up
Email
Username
Password
Already have an account sign in?


Hypertext document (HTML) (The Washington Post) (Source)
Portable document (PDF) (The Anarchist Library) (Source)
Portable document (PDF) (Hache) (Source)


Food Court
Home
Log In
Partner
Cart
About Us
Fill the form and we will get in touch with you ;)
Name
Mobile Number
E-mail Address
*We never share your details with anyone
Submit


Transport goods
Do the following tasks if you want to transport goods:
{{formData | safe}}
| Check eligibility, cost and time | {% else %}Check eligibility, cost and time | {% endif %} {% if data.transport_manager %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Read the rules | {% else %}Read the rules | {% endif %} {% if data.read_rules=="yes" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Become a transport manager | {% else %}Become a transport manager | {% endif %} {% if data.now_transport_manager=="yes" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Tell the public about your application | {% else %}Tell the public about your application | {% endif %} {% if data.given_public_notice=="yes" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| List your vehicles | {% else %}List your vehicles | {% endif %} {% if data.has_vehicles_already %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Look after your vehicles | {% else %}Look after your vehicles | {% endif %} {% if data.has_mechanic=="yes" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Prove you have enough money | {% else %}Prove you have enough money | {% endif %} {% if data.uploaded_document %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| List convictions | {% else %}List convictions | {% endif %} {% if data.compensation_order %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Your contact details | {% else %}Your contact details | {% endif %} {% if data.contact_by %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Pay application fee | {% else %}Pay application fee | {% endif %} {% if data.pay_application_fee=="complete" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} | |
| Check and send your application | {% if data.apply_for_provisional=="complete" %}{% include "includes/task_status_complete.html" %} | edit | {% else %}{% endif %} |


from The American Heritage® Dictionary of the English Language, 4th Edition
master - noun
Used as a title for a man who serves as the head or presiding officer of certain societies, clubs, orders, or institutions.
from The American Heritage® Dictionary of the English Language, 4th Edition
Used as a title for a man who serves as the head or presiding officer of certain societies, clubs, orders, or institutions.


org.checkerframework.checker.tainting.qual.Untainted
.
Safe string is:
@Untainted
@Untainted
and does not have non-safe methods calls assignedExample:
void doSmth(boolean b) {
String s = safe();
String s1 = "other";
if (b) s1 = s;
sink(s);
}
String sink(@Untainted String s) {}
Here we do not have non-safe string assignments to s
so warning is not produced. On the other hand:
void doSmth(boolean b) {
String s = safe();
String s1 = "other";
s1 = foo();
if (b) s = s1;
sink(s); // warning here
}
String foo();
String sink(@Untainted String s) {}
Here we have a warning since s1
has an unknown state after foo
call result assignment.
New in 2021.2


6.1. Two-Dimensional Truss: Sampling, Reliability and Sensitivity¶
Consider the problem of uncertainty quantification in a two-dimensional truss structure shown in the following figure.
The structure has uncertain properties that all follow normal distribution:
Elastic modulus(E): mean \(\mu_E=205 kN/{mm^2}\) and standard deviation \(\sigma_E =15 kN/{mm^2}\) (COV = 7.3%)
Load (P): mean \(\mu_P =25 kN\) and a standard deviation of \(\sigma_P = 3 kN\), (COV = 12%).
Cross sectional area for the upper three bars (Au): mean \(\mu_{Au} = 500 mm^2\), and a standard deviation of \(\sigma_{Au} = 25mm^2\) (COV = 5%)
Cross sectional area for the other six bars (Ao): mean \(\mu_{Ao} = 250mm^2\), and \(\sigma_{Ao} = 10mm^2\) (COV = 4%)
The goal of the exercise is to estimate the mean and standard deviation of the vertical displacement at node 3. The exercise requires two files. The user is required to download these files and place them in a NEW folder. The two files are:
Note
The first lines containing
pset
will be read by the application when the file is selected and the application will autopopulate the Random Variables input panel with these same variable names. It is of course possible to explicitly use Random Variables without thepset
command as is demonstrated in the verification section.
The postprocess.tcl script shown below will accept as input any of the 6 nodes in the domain and for each of the two dof directions.
# create file handler to write results to output & list into which we will put results
set resultFile [open results.out w]
set results []
# get list of valid nodeTags
set nodeTags [getNodeTags]
# for each quanity in list of QoI passed
# - get nodeTag
# - get nodal displacement if valid node, output 0.0 if not
# - for valid node output displacement, note if dof not provided output 1'st dof
foreach edp $listQoI {
set splitEDP [split $edp "_"]
set nodeTag [lindex $splitEDP 1]
if {$nodeTag in $nodeTags} {
set nodeDisp [nodeDisp $nodeTag]
if {[llength $splitEDP] == 3} {
set result [expr abs([lindex $nodeDisp 0])]
} else {
set result [expr abs([lindex $nodeDisp [expr [lindex $splitEDP 3]-1]])]
}
} else {
set result 0.
}
lappend results $result
}
# send results to output file & close the file
puts $resultFile $results
close $resultFile
Note
The use has the option to provide no postprocess script (in which case the main script must create a results.out
file containing a single line with as many space separated numbers as QoI or the user may provide a Python script that also performs the postprocessing. An example of a postprocessing Python script is postprocess.py.
#!/usr/bin/python
# written: fmk, adamzs 01/18
# import functions for Python 2.X support
from __future__ import division, print_function
import sys
if sys.version.startswith('2'):
range=xrange
string_types = basestring
else:
string_types = str
import sys
def process_results(inputArgs):
#
# process output file "node.out" for nodal displacements
#
with open ('node.out', 'rt') as inFile:
line = inFile.readline()
displ = line.split()
numNode = len(displ)
inFile.close
# now process the input args and write the results file
outFile = open('results.out','w')
# note for now assuming no ERROR in user data
for i in inputArgs:
theList=i.split('_')
if (len(theList) == 4):
dof = int(theList[3])
else:
dof = 1
if (theList[0] == "Node"):
nodeTag = int(theList[1])
if (nodeTag > 0 and nodeTag <= numNode):
if (theList[2] == "Disp"):
nodeDisp = abs(float(displ[((nodeTag-1)*2)+dof-1]))
outFile.write(str(nodeDisp))
outFile.write(' ')
else:
outFile.write('0. ')
else:
outFile.write('0. ')
else:
outFile.write('0. ')
outFile.close
if __name__ == "__main__":
n = len(sys.argv)
responses = []
for i in range(1,n):
responses.append(sys.argv[i])
process_results(responses)
Warning
Do not place the files in your root, downloads, or desktop folder as when the application runs it will copy the contents on the directories and subdirectories containing these files multiple times. If you are like us, your root, Downloads or Documents folders contains and awful lot of files and when the backend workflow runs you will slowly find you will run out of disk space!
6.1.1. Sampling Analysis¶
Problem files |
To perform a Sampling or Forward propagation uncertainty analysis the user would perform the following steps:
The steps involved:
Start the application and the UQ Selection will be highlighted. In the panel for the UQ selection, keep the UQ engine as that selected, i.e. Dakota, and the UQ Method Category as Forward Propagation, and the Forward Propagation method as LHS (Latin Hypercube). Change the #samples to 1000 and the seed to 20 as shown in the figure.
Next select the FEM tab from the input panel. This will default in the OpenSees FEM engine. For the main script copy the path name to TrussSelection.tcl or select choose and navigate to the file. For the postprocess script, repeat the same procedure for the postprocess.tcl script.
Next select the RV tab from the input panel. This should be pre-populated with four random variables with same names as those having
pset
in the tcl script. For each variable, from the drop down menu change them from having a constant distribution to a normal one and then provide the means and standard deviations specified for the problem.
Next select the QoI tab. Here enter ‘Node_3_Disp_2’ for the one variable.
Note
The user can add additional QoI by selecting add and then providing additional names. As seen from the postprocess script any of the 6 nodes may be specified and for any node either the 1 or 2 dof direction.
Next click on the Run button. This will cause the backend application to launch dakota. When done the RES tab will be selected and the results will be displayed. The results show the values the mean and standard deviation.
If the user selects the Data tab in the results panel, they will be presented with both a graphical plot and a tabular listing of the data.
Various views of the graphical display can be obtained by left and right clicking in the columns of the tabular data. If a singular column of the tabular data is pressed with both right and left buttons a frequency and CDF will be displayed, as shown in figure below.
6.1.2. Reliability Analysis¶
Problem files |
If the user is interested in the probability that a particular response measure will be exceeded, an alternate strategy is to perform a reliability analysis. In order to perform a reliability analysis the steps above would be repeated with the exception that the user would select a reliability analysis method instead of a Forward Propagation method. To obtain reliability results using the Second-Order Reliability Method (SORM) for the truss problem the user would follow the same sequence of steps as previously. The difference would be in the UQ tab in which the user would select a Reliability as the Dakota Method Category and then choose Local reliability. In the figure the user is specifying that they are interested in the probability that the displacement will exceed certain response levels.
After the user fills in the rest of the tabs as per the previous section, the user would then press the RUN button. The application (after spinning for a while with the wheel of death) will present the user with the results.
6.1.3. Global Sensitivity¶
Problem files |
In a global sensitivity analysis the user is wishing to understand what is the influence of the individual random variables on the quantities of interest. This is typically done before the user launches large scale forward uncertainty problems in order to limit the number of random variables used so as to limit the number of simulations performed.
To perform a reliability analysis the steps above would be repeated with the exception that the user would select a reliability analysis method instead of a Forward Propagation method. To obtain reliability results using the Second-Order Reliability Method (SORM) for the truss problem the user would follow the same sequence of steps as previously. The difference would be in the UQ tab in which the user would select a Reliability as the Dakota Method Category and then choose Local reliability. In the figure the user is specifying that they are interested in the probability that the displacement will exceed certain response levels.
After the user fills in the rest of the tabs as per the previous section, the user would then press the RUN button. The application (after spinning for a while with the wheel of death) will present the user with the results.


| 1 | /* | |
| 2 | * Licensed to the Apache Software Foundation (ASF) under one | |
| 3 | * or more contributor license agreements. See the NOTICE file | |
| 4 | * distributed with this work for additional information | |
| 5 | * regarding copyright ownership. The ASF licenses this file | |
| 6 | * to you under the Apache License, Version 2.0 (the | |
| 7 | * "License"); you may not use this file except in compliance | |
| 8 | * with the License. You may obtain a copy of the License at | |
| 9 | * | |
| 10 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 11 | * | |
| 12 | * Unless required by applicable law or agreed to in writing, | |
| 13 | * software distributed under the License is distributed on an | |
| 14 | * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| 15 | * KIND, either express or implied. See the License for the | |
| 16 | * specific language governing permissions and limitations | |
| 17 | * under the License. | |
| 18 | */ | |
| 19 | package org.apache.myfaces.shared.renderkit.html; | |
| 20 | ||
| 21 | import java.util.HashMap; | |
| 22 | import java.util.Map; | |
| 23 | import jakarta.faces.component.UIComponent; | |
| 24 | ||
| 25 | public class CommonEventConstants | |
| 26 | { | |
| 27 | public static final String COMMON_EVENTS_MARKED = "oam.COMMON_EVENTS_MARKED"; | |
| 28 | | |
| 29 | public static final long ACTION_EVENT = 0x1L; | |
| 30 | public static final long CLICK_EVENT = 0x2L; | |
| 31 | public static final long DBLCLICK_EVENT = 0x4L; | |
| 32 | public static final long MOUSEDOWN_EVENT = 0x8L; | |
| 33 | public static final long MOUSEUP_EVENT = 0x10L; | |
| 34 | public static final long MOUSEOVER_EVENT = 0x20L; | |
| 35 | public static final long MOUSEMOVE_EVENT = 0x40L; | |
| 36 | public static final long MOUSEOUT_EVENT = 0x80L; | |
| 37 | public static final long KEYPRESS_EVENT = 0x100L; | |
| 38 | public static final long KEYDOWN_EVENT = 0x200L; | |
| 39 | public static final long KEYUP_EVENT = 0x400L; | |
| 40 | public static final long FOCUS_EVENT = 0x800L; | |
| 41 | public static final long BLUR_EVENT = 0x1000L; | |
| 42 | public static final long SELECT_EVENT = 0x2000L; | |
| 43 | public static final long CHANGE_EVENT = 0x4000L; | |
| 44 | public static final long VALUECHANGE_EVENT = 0x8000L; | |
| 45 | public static final long LOAD_EVENT = 0x10000L; | |
| 46 | public static final long UNLOAD_EVENT = 0x20000L; | |
| 47 | | |
| 48 | public static final Map<String, Long> COMMON_EVENTS_KEY_BY_NAME = new HashMap<String, Long>(24,1); | |
| 49 | | |
| 50 | static | |
| 51 | { | |
| 52 | //EVENTS | |
| 53 | COMMON_EVENTS_KEY_BY_NAME.put("change", CHANGE_EVENT); | |
| 54 | COMMON_EVENTS_KEY_BY_NAME.put("select", SELECT_EVENT); | |
| 55 | COMMON_EVENTS_KEY_BY_NAME.put("click", CLICK_EVENT); | |
| 56 | COMMON_EVENTS_KEY_BY_NAME.put("dblclick", DBLCLICK_EVENT); | |
| 57 | COMMON_EVENTS_KEY_BY_NAME.put("mousedown",MOUSEDOWN_EVENT); | |
| 58 | COMMON_EVENTS_KEY_BY_NAME.put("mouseup", MOUSEUP_EVENT); | |
| 59 | COMMON_EVENTS_KEY_BY_NAME.put("mouseover",MOUSEOVER_EVENT); | |
| 60 | COMMON_EVENTS_KEY_BY_NAME.put("mousemove",MOUSEMOVE_EVENT); | |
| 61 | COMMON_EVENTS_KEY_BY_NAME.put("mouseout", MOUSEOUT_EVENT); | |
| 62 | COMMON_EVENTS_KEY_BY_NAME.put("keypress", KEYPRESS_EVENT); | |
| 63 | COMMON_EVENTS_KEY_BY_NAME.put("keydown", KEYDOWN_EVENT); | |
| 64 | COMMON_EVENTS_KEY_BY_NAME.put("keyup", KEYUP_EVENT); | |
| 65 | COMMON_EVENTS_KEY_BY_NAME.put("focus", FOCUS_EVENT); | |
| 66 | COMMON_EVENTS_KEY_BY_NAME.put("blur", BLUR_EVENT); | |
| 67 | COMMON_EVENTS_KEY_BY_NAME.put("load", LOAD_EVENT); | |
| 68 | COMMON_EVENTS_KEY_BY_NAME.put("unload", UNLOAD_EVENT); | |
| 69 | //virtual | |
| 70 | COMMON_EVENTS_KEY_BY_NAME.put("valueChange", VALUECHANGE_EVENT); | |
| 71 | COMMON_EVENTS_KEY_BY_NAME.put("action", ACTION_EVENT); | |
| 72 | } | |
| 73 | | |
| 74 | public static void markEvent(UIComponent component, String name) | |
| 75 | { | |
| 76 | Long propertyConstant = COMMON_EVENTS_KEY_BY_NAME.get(name); | |
| 77 |
1
1. markEvent : negated conditional → NO_COVERAGE |
if (propertyConstant == null) |
| 78 | { | |
| 79 | return; | |
| 80 | } | |
| 81 | Long commonPropertiesSet = (Long) component.getAttributes().get(COMMON_EVENTS_MARKED); | |
| 82 |
1
1. markEvent : negated conditional → NO_COVERAGE |
if (commonPropertiesSet == null) |
| 83 | { | |
| 84 | commonPropertiesSet = 0L; | |
| 85 | } | |
| 86 |
1
1. markEvent : Replaced bitwise OR with AND → NO_COVERAGE |
component.getAttributes().put(COMMON_EVENTS_MARKED, commonPropertiesSet | propertyConstant); |
| 87 | } | |
| 88 | } | |
Mutations | ||
| 77 |
1.1 |
|
| 82 |
1.1 |
|
| 86 |
1.1 |


I am Mohammad Obaida, a Ph. D. Candidate studying Computer Science at Florida International University - FIU, Miami, Florida, US. Currently, I am a research assistant working on high-performance computing system and application performance prediction. I have experience with distributed systems, parallel systems, performance modeling, and simulation.
Conducted Ph.D. research to develop novel algorithms, systems and simulators for predicting parallel application and system performance which improves accuracy of existing works. ● Designed, implemented and deployed efficient distributed real-time simulator, improved performance by 5x. Experience in data center prototype from scratch using containers, linux network namespaces, Open vSwitch and SDN.
Introduced accuracy to supercomputing simulation for rapid prototyping by implementing CRAY's Gemini torus interconnect as packet based parallel simulation among compute nodes through high radix routers.
Instructed and graded threee courses. Programming III; Telecommunications Technology Applications; Spreadsheet Analysis.
Designed course outline, lectured, conducted exams and graded several advanced computer science courses. Classes taught includes Object Oriented Programming, Parallel and Distributed Systems, Compiler Design, Intro to Computing.
Dissertation: Performance Prediction of Parallel Applications and Systems Using Program Analysis and HPC Simulation
GPA: 3.49
GPA: 3.64
Apart from being a researcher, I like to code and prototype my ideas in Python. I like to read about disruptive ideas and an small-time investor in public companies in US. If you are building something amazing like how/where Amzon is encrypting the data for AWS/S3, I would like to know more and discuss the details.
I like to visit places and a big fan of Katana sword fights. I like to sprint above 10 miles/hour hike to the top of mountains. In the weekend I like getting closer to nature, mountains, and exploring outdoors. I enjoy playing computer games more specifically, League of Legends. My favorite role is jungler/fill who loves Nocturne to hunt with Nocturne.


This area features a large space of grass and bamboo, surrounding a series of reflection ponds. This section is the largest due to the expanse of green, but also contains the fewest buildings. A few isolated pavilions dot the landscape, making this the most secluded area of the garden.
This pavilion is extremely minimalistic, little more than four columns and a pagoda style roof. This area of the garden is covered in more greenery than any other, so this tiny pavilion does little to take attention away from it.
This tower is one of the few buildings on this side of the garden, and is placed at the intersection of a few of its paths. The layout of this building therefore encourages being approached from any direction. This makes sense, as it acts as a housing for a well, hence the name. Being a source of water, it naturally needs to be used often to maintain the plants within the garden. Having an open, octagonal shape allows one to carry water off towards any part of the site.


$(HEAD)
$(LOGGED_NAVIGATION)
Welcome, $(username)
Fluffy Duffy Muchkin Cats wishes you a cute and awesome experience.
$(FOOTER)


THE PICKLE A film review by James Berardinelli Copyright 1993 James Berardinelli
Rating: 9.0 (A, ***1/2)
Date Released: 5/93 Running Length: 1:47 Rated: R (Mature themes, sexual situations, nudity, language)
Starring: Danny Aiello, Dyan Cannon, Clothilde Courau, Shelly Winters, Chris Penn Director: Paul Masursky Producer: Paul Masursky Screenplay: Paul Masursky Music: Michel Legrand Released by Columbia Pictures
Harry Stone (Danny Aiello) is a well-known director who has built his reputation on doing films of depth and biting satire. When he finds himself in a financial bind, however, the lure of a big check seduces him into compromising his artistic values and directing a script that no self-respecting professional would associate his name with.  As the premier of this film approaches, Harry goes through twenty-four hours of intense anxiety. He's sure that it's a turkey; he tells everyone this. The people around him try to give him support, but little that anyone says or does seems able to comfort the poor director.
Paul Masursky's THE PICKLE is a film much in the tradition of such other recent productions as THE BIG PICTURE and THE PLAYER. Like those other two movies, some of this picture is perhaps not ideal for general consumption. THE PICKLE is a fine satirical farce. There are many scenes that will extract laughs from just about anyone in the audience, but some of the finer points are designed for those willing to invest a little effort in understanding what lies beneath the surface of this film. THE PICKLE is quirky and, unfortunately, that generally spells trouble at the box-office.
For those who like to laugh, there are plenty of such moments in THE PICKLE. The humor ranges from the sublime to the bawdy. Surrounding the lunacy is a fairly interesting story. The issues of a mid-life crisis and the battle between art and fame are not new ones, but Masursky manages to breathe life into them. He also provides a few surprises along the way--something refreshing in a medium where it has become routine to predict how a given film will end.
THE PICKLE is semi-autobiographical for Masursky. Not only did he write, produce, and direct the film, but he has a small part in it. He cares about the characters and was able to get his actors to care about them as well. This feeling is translated to the audience. Never for one moment are we apathetic about the people on screen.
There are a few cameos, although nowhere near as many as in Robert Altman's THE PLAYER. Donald Trump delivers a line and Spaulding Gray has a brief-but-humorous part as "Doctor Spaulding." In the movie-within-a-movie, such notables as Griffen Dunne, Little Richard, Dudley Moore, and Ally Sheedy make appearances.
Speaking of that movie-within-a-movie, also titled THE PICKLE, it is highly reminiscent of MANT, the so-bad-it's-enjoyable flick from the John Goodman movie MATINEE. Harry Stone's THE PICKLE is an awful example of film making, but the bits and pieces of it we see are enough to make us appreciate it--much in the same way that we can appreciate sitting through a PLAN 9 FROM OUTER SPACE. Stone's THE PICKLE is high camp--he knows it and so do we. Fortunately, the same cannot be said of the movie that frames it.
The principal actors in Masursky's THE PICKLE all do excellent jobs. Danny Aiello, who has perhaps never given a bad performance (that's not to say that he hasn't been in bad movies), has a good grasp on Harry Stone and gets the role just right. A significant range is demanded, and Aiello is equal to the job. Also turning in notable performances are veteran actresses Dyan Cannon and Shelly Winters, as well as the younger Clothilde Courau.
Masursky's THE PICKLE is an intriguing combination of drama, satire, and farce. It's a credit to the director that he is able to successfully blend such seemingly-disparate elements together. There are parts of the movie that don't work--several black-and-white flashback sequences do little more than fill up space--but overall THE PICKLE is certainly one of this year's better efforts. It's an unusual film with limited appeal, but for anyone who likes quirky films and doesn't demand a big-budget Hollywood production, this picture is well worth a look. You may be very pleasantly surprised.
- James Berardinelli<EMAIL_ADDRESS>.
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


| Interface | Description |
|---|---|
| ActiveRouteProvider |
Returns the active route based on the path returned by
Location.getPath() . |
| Location |
The current location/path used to determine the active route.
|
| Class | Description |
|---|---|
| ActiveRoute |
The currently active route based on
Location.getPath() . |
| DefaultActiveRouteProvider | |
| Route |
A route consist of a path and a component that will be rendered when the
route/path is the current one.
|
| RouteParams |
The resolved router parameters.
|
| Router |
The router determines the active route based on the current location and
configured routes.
|
| RouterConfig |
Configuration for the router.
|
| RouterConfig.Builder | |
| RouterLinkDirective |
Binds the
routerLink attribute (path) to the href
attribute. |
| RouterModule |


Reading 3
Holidays
| Traditional holiday | Activities | |
| 1. Valentine’s day |
|
|
| 2. St. Patrick’s day |
|
|
| 3. Independence day |
|
|
| 4. Mother’s day |
|
|
| 5. Father’s day |
|
|
| 6. New Year’s day |
|
|
| 7. Thanksgiving |
|
|
| 8. Halloween |
|
|
| 9. Easter |
|
|
| 10. Memorial day |
|


A knowledge engine for discovery of relationships across diverse sets of omics resources. Access knowledge about genes and proteins from 70 resources and 116 datasets.


mart
home
about us
page
shop
blog
contact us
AFFORDABLE PARIS TOURS
CITY TOURS / TOUR TICKETS / TOUR GUIDES
<
>
New collection
add to cart
Blue Tshirt
$26
add to cart
WOMAN shirt
$31
add to cart
YELLOW Tshirt
$21
add to cart
cool lingerie
$56


Dengue
Dengue (DENG-gey) fever is a mosquito-borne disease that occurs in tropical and subtropical areas of the world. Mild dengue fever causes high fever, rash, and muscle and joint pain. A severe form of dengue fever, also called dengue hemorrhagic fever, can cause severe bleeding, a sudden drop in blood pressure (shock) and death.
Symptoms
Signs and symptoms of dengue fever most commonly include:
- Fever, as high as 106 F (41 C)
- Headaches
- Muscle, bone and joint pain
- Pain behind your eyes
You might also experience:
- Widespread rash
- Nausea and vomiting
- Rarely, minor bleeding from your gums or nose


As of October 19 2019, I am in the GitHub Sponsors program!
This means you can support my work with a monthly donation via their platform.
There are six tiers: $1, $5, $10, $20, $50 and $100.
Sponsorships are (optionally) visible on your GitHub user card.
I will remain on Patreon as well, with the same tiers.
Thank you for checking it out :^)


Use this document as a way to quickly start any new project. Reuse your html components for quick development.


First off... what is Sass? The official documentation is linked on the first page but a breif overview of Sass is... a CSS framework that was initially designed by Hampton Catlin and developed by Natalie Weizenbaum. After its initial versions, Weizenbaum and Chris Eppstein continued to extend Sass with SassScript, a simple scripting language used in Sass files.
Originally it was an indented syntax for css, which it currently still uses and it has another syntax known as SCSS, which is more block formatting like the original css. Ironic I know.
Interesting enough though, the two main comparisons I am making in this guide are relatively similar. Considering Less, which I explain on another page, is based on Sass, but is not as heavy... hence less. Sass uses two files extensions: scss, and sass.Obviously it was influenced by CSS, but CSS wasn't doing enough, hence the creation of Sass. Much like Less, it was created using Ruby, it is open source, and it has other implementations. But instead of it being in javascript, it has implementations in php (blegh), C and surprisingly, Java (known as JSass).
Sass has a lot of the same implementations as less (rather less has a lot of the same implementations as Sass):
One thing that is different though, and in my opinion is the major standout among the two technologies is selector inheritance. It also has the ability for certain math equations which help with selector nesting.
In regards to sass and the variables, simple enough, it has the ability to use things like normal variables, numbers, strings and booleans. But it can also use colors, which is more or less a CSS thing. Nesting is again a large part of this and why I like both of these technologies so much, however, the blocks of code themeslves are not actually nested. The nested code can actually be inserted within each other.
Currently on Github, Sass has:
Overall, Sass is more advanced than Less, considering, Less is supposed to be a more stripped down version of Sass.


Class GrpcSpeechStub (2.0.0)
public class GrpcSpeechStub extends SpeechStub
gRPC stub implementation for the Speech service API.
This class is for advanced usage and reflects the underlying API directly.
Static Methods
create(ClientContext clientContext)
public static final GrpcSpeechStub create(ClientContext clientContext)
Parameter
Returns
Exceptions
create(ClientContext clientContext, GrpcStubCallableFactory callableFactory) (deprecated)
public static final GrpcSpeechStub create(ClientContext clientContext, GrpcStubCallableFactory callableFactory)
Deprecated. Example deprecated method for cloud-rad.
Parameters
Returns
Exceptions
create(SpeechStubSettings settings)
public static final GrpcSpeechStub create(SpeechStubSettings settings)
Parameter
Returns
Exceptions
Constructors
GrpcSpeechStub(SpeechStubSettings settings, ClientContext clientContext) (deprecated)
protected GrpcSpeechStub(SpeechStubSettings settings, ClientContext clientContext)
Deprecated. Example deprecated constructor for cloud-rad.
Constructs an instance of GrpcSpeechStub, using the given settings. This is protected so that
it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
Parameters
GrpcSpeechStub(SpeechStubSettings settings, ClientContext clientContext, GrpcStubCallableFactory callableFactory)
protected GrpcSpeechStub(SpeechStubSettings settings, ClientContext clientContext, GrpcStubCallableFactory callableFactory)
Constructs an instance of GrpcSpeechStub, using the given settings. This is protected so that
it is easy to make a subclass, but otherwise, the static factory methods should be preferred.
Parameters
Methods
awaitTermination(long duration, TimeUnit unit)
public boolean awaitTermination(long duration, TimeUnit unit)
Parameters
Returns
Exceptions
close()
public final void close()
Overrides
getOperationsStub()
public GrpcOperationsStub getOperationsStub()
Returns
Overrides
isShutdown()
public boolean isShutdown()
Returns
isTerminated()
public boolean isTerminated()
Returns
longRunningRecognizeCallable()
public UnaryCallable<LongRunningRecognizeRequest,Operation> longRunningRecognizeCallable()
Returns
Overrides
longRunningRecognizeOperationCallable()
public OperationCallable<LongRunningRecognizeRequest,LongRunningRecognizeResponse,LongRunningRecognizeMetadata> longRunningRecognizeOperationCallable()
Returns
Overrides
recognizeCallable()
public UnaryCallable<RecognizeRequest,RecognizeResponse> recognizeCallable()
Returns
Overrides
shutdown()
shutdownNow()
public void shutdownNow()
streamingRecognizeCallable()
public BidiStreamingCallable<StreamingRecognizeRequest,StreamingRecognizeResponse> streamingRecognizeCallable()
Returns
Overrides


Sign Up
First Name
Last Name
Email Address
Your email will never be shared.
Company
Plan
Standard Tier
Professional Tier
Advanced Tier
Sign In
Email address
Password
Home
(current)
Dashboard
Products
Orders
Sign In
Sign Up
Sign Out
SaaS Commerce
Your SaaS commerce solution
Get Started Now


Monkey Login
I am here for:
Bananas
Lady Monkeys
Fun
Forgot
Username / Password?
Create your Account


Real-ish API on Real Estate Data in Belgium - only for Testing and Prototyping
powered by JSON Server
and lowdb
This uses JSONPlaceholder - a free online REST service that you can use whenever you need some fake data.
It's great for tutorials, faking a server, sharing code examples, ...
| /estates | 500 items |
All HTTP verbs are supported.
View usage examples.
| GET | /estates |
| GET | /estates/1 |
| POST | /estates |
| PUT | /estates/1 |
| PATCH | /estates/1 |
| DELETE | /estates/1 |
Not all fields are available on all properties - be careful
| url | Original URL |
| location | Address (full or just municipality) |
| price | Price (integer, in Euros) |
| description | Free text description |
| properties | Array of various info |
| image | URL of image |
| Coordinates | GPS coordinates (lat, lng) |


Provides documentation in form of a common vignette to packages 'distr', 'distrEx', 'distrMod', 'distrSim', 'distrTEst', 'distrTeach', and 'distrEllipse'.
| Version: | 2.7.1 |
| Depends: | R (≥ 2.14.0) |
| Imports: | distr (≥ 2.2.0), distrEx (≥ 2.2.0), distrSim (≥ 2.2.0), distrTEst (≥ 2.2.0), distrTeach (≥ 2.2.0), RandVar (≥ 0.7), distrMod (≥ 2.2.0), MASS, methods, startupmsg |
| Suggests: | Biobase, knitr |
| Published: | 2018-07-23 |
| Author: | Florian Camphausen [ctb] (contributed as student to the documented packages in the initial phase --2005), Matthias Kohl [aut, cph], Peter Ruckdeschel [cre, cph], Thomas Stabla [ctb] (contributed as student to the documented packages in the initial phase --2005) |
| Maintainer: | Peter Ruckdeschel <peter.ruckdeschel at uni-oldenburg.de> |
| License: | LGPL-3 |
| URL: | http://distr.r-forge.r-project.org/ |
| NeedsCompilation: | no |
| Citation: | distrDoc citation info |
| Materials: | NEWS |
| In views: | Distributions |
| CRAN checks: | distrDoc results |
| Reference manual: | distrDoc.pdf |
| Vignettes: |
distr - manual |
| Package source: | distrDoc_2.7.1.tar.gz |
| Windows binaries: | r-devel: distrDoc_2.7.1.zip, r-release: distrDoc_2.7.1.zip, r-oldrel: distrDoc_2.7.1.zip |
| OS X binaries: | r-release: distrDoc_2.7.1.tgz, r-oldrel: distrDoc_2.7.1.tgz |
| Old sources: | distrDoc archive |
Please use the canonical form https://CRAN.R-project.org/package=distrDoc to link to this page.


Functions | |
| int | xtlock_lock (void *lock, uint32_t timeout) |
| Lock mutex. More... | |
| void | xtlock_unlock (void *lock) |
| Unlock mutex. More... | |
| void * | xtlock_create (void) |
| Create handle to mutex. More... | |
| int | xtsemaphore_take (void *semaphore, uint32_t timeout) |
| Take semaphore. More... | |
| void | xtsemaphore_release (void *semaphore) |
| Unlock mutex. More... | |
| void * | xtsemaphore_create (uint32_t max_count, uint32_t initial_count) |
| Create handle to mutex. More... | |
| void* xtlock_create | ( | void | ) |
Create handle to mutex.
| int xtlock_lock | ( | void * | lock, |
| uint32_t | timeout | ||
| ) |
Lock mutex.
Uses handle from xtlock_create to lock mutex, within time given by timeout.
| void xtlock_unlock | ( | void * | lock | ) |
Unlock mutex.
| void* xtsemaphore_create | ( | uint32_t | max_count, |
| uint32_t | initial_count | ||
| ) |
Create handle to mutex.
| void xtsemaphore_release | ( | void * | semaphore | ) |
Unlock mutex.
| int xtsemaphore_take | ( | void * | semaphore, |
| uint32_t | timeout | ||
| ) |
Take semaphore.
Uses handle from xtlock_create to lock mutex, within time given by timeout.


0
Order Summary
Total : 0 JD
| Please select your card: | Visa
✖
|
Payment Successful!
Subtotal (0 items): 0 JD
Candy & Gifts Store
Total : 0 JD
| Please select your card: | Visa
✖
|
Payment Successful!
Subtotal (0 items): 0 JD


HEARTS OF IRON IV - CADET VERSION
Game Contains:
- Base Game
- Poland: United and Ready
- Forum Avatar
- Wallpaper
Price: 39,99€
Expansions
Expansion: Death or Dishonor
New features:
- Experience the war from the difficult perspectives of Hungary, Romania, Czechoslovakia, and Yugoslavia.
- License military technology to bring other nations’ weapons to the field or sell your advances to the highest bidder.
- 3 new musical tracks, new art content for the four focus nations, and new troop voiceovers.
- Update your arsenal by converting older units -- or make use of captured enemy vehicles and gear.
- New subject relationships for Fascist states allow the dominant power to gather an underling's resources and share technology and unit designs.
Price: 9,99€
Expansion: Together for Victory
Game Contains:
- New national focus trees and events for Canada, Australia, New Zealand, The Raj (India) and South Africa
- New autonomy system giving subject states degrees of independence from a foreign master
- Technology sharing will allow Commonwealth nations to quickly catch up with British assistance
- Alternate historical path for each of the Dominions, with options to stay loyal to Great Britain, or forge a new, more independent destiny
- A Spearhead battleplan command allowing more control over grand encirclements and punching through enemy lines
Price: 14,99€
Expansion: Battle for the Bosporus
Game Contains:
- National Focus Tree for Bulgaria: Balance the factions in a divided land or reclaim territory lost in 1919.
- National Focus Tree for Turkey: Robbed of its empire in the last war, what future is there for Turkey in a new one?
- Voiceovers for Bulgaria, Greece and Turkey
- National Focus Tree for Greece: Riven by political division, Greek neutrality is maintained by the controversial Metaxas
- New 3D Unit Models for Balkan and Turkish Armies
- New music tracks
Price: 9,99€
Expansion: La Resistance
Game Contains:
- New French Focus Trees: Restore the Monarchy or guide Vichy France.
- Portuguese Focuses: Navigate the pressure of the World War, or involve yourself in the Spanish Conflict.
- Support Resistance: Use your agents to assist rebels in allied occupied territories.
- Code Cracking: Decrypt enemy codes to gain temporary advantages on the battlefield.
- New Spanish Focus Trees: Separate National Focuses for Republican and Nationalis Spain.
- Espionage: Recruit spies for Operations behind enemy lines, discovering their secrets and disrupting their plans.
- Collaboration Governments: Use your agents to set the stage for your invasion, preparing locals to manage conquered nations on your behalf.
Price: 19,99€
Expansion: Man the guns
Game Contains:
- More active democratic nations, with new alternate history paths and greater options in peacetime.
- Sign naval treaties to limit your rivals, or defy international order on your own.
- Welcome governments in exile.
- Design new warships to match the challenges of naval warfare in all conditions.
- Navigate minefields and build new landing craft in a reworking of amphibious war.
Price: 19,99€
Expansion: Waking the Tiger
Game Contains:
- Guide the Chinese Republic or Communist China through the war, guided by your own vision of the future.
- Put multiple armies under the direction of a field marshal to coordinate large movements of army groups, using the traits of your general.
- Two major Axis powers now have alternate history paths, including the chance to depose Hitler or restore democracy to Japan.
- Spend your political power on national decisions and missions to strengthen the war effort.
Price: 19,99€


Index | Apps | Games
The aim of the game is to Press the [It is ...] button, when the square is the same colour as the button, to score a point.

Status: Playing
It is ...Red


Puerto Montt lies on the top of Reloncaví Sound which is at the northern end of the Chilian Channels.
Position 41° 28'50"S, 72° 56'18"W
For full details on clearing into and out of Chile see Chile Formalities.
Entry and exit papers are cleared at the Armada office in Avenida Costanera. Contact must be made on arrival. Puerto Montt Radio monitors VHF channel 16.
An expensive health inspection may be required if clearing in to Chile at this port.
Last updated December 2014.
The best mooring and anchorages are in the narrow channel between the mainland and Isla Tenglo. There are three marinas with floating pontoons and buoys. This area offers good shelter and the holding, in mud, is good.
Marina Costa de Huelmo is a new marina (2015), 40km south west of Puerto Montt opposite the island of Huelmo. Whilst it is very small, cruisers report that it's very reasonably priced and friendly (see comments at bottom of page).
Last updated December 2015.


Tally up code costs automatically.
This privacy policy has been compiled to better serve those who are concerned with how their 'Personally Identifiable Information' (PII) is being used online. PII, as described in US privacy law and information security, is information that can be used on its own or with other information to identify, contact, or locate a single person, or to identify an individual in context. Please read our privacy policy carefully to get a clear understanding of how we collect, use, protect or otherwise handle your Personally Identifiable Information in accordance with our website.
What personal information do we collect from the people that visit our blog, website or app?
When ordering or registering on our site, as appropriate, you may be asked to enter your email address or other details to help you with your experience.
When do we collect information?

We may use the information we collect from you when you register, make a purchase, sign up for our newsletter, respond to a survey or marketing communication, surf the website, or use certain other site features in the following ways:
How do we protect your information?
Our website is scanned on a regular basis for security holes and known vulnerabilities in order to make your visit to our site as safe as possible.
We use regular Malware Scanning.
We do not use an SSL certificate:
Do we use 'cookies'?
Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow) that enables the site's or service provider's systems to recognize your browser and capture and remember certain information. For instance, we use cookies to help us remember and process the items in your shopping cart. They are also used to help us understand your preferences based on previous or current site activity, which enables us to provide you with improved services. We also use cookies to help us compile aggregate data about site traffic and site interaction so that we can offer better site experiences and tools in the future.
We use cookies to:
You can choose to have your computer warn you each time a cookie is being sent, or you can choose to turn off all cookies. You do this through your browser settings. Since browser is a little different, look at your browser's Help Menu to learn the correct way to modify your cookies.
If users disable cookies in their browser:
If you turn cookies off, Some of the features that make your site experience more efficient may not function properly.Some of the features that make your site experience more efficient and may not function properly.
Third-party disclosure
We do not sell, trade, or otherwise transfer to outside parties your Personally Identifiable Information unless we provide users with advance notice. This does not include website hosting partners and other parties who assist us in operating our website, conducting our business, or serving our users, so long as those parties agree to keep this information confidential. We may also release information when it's release is appropriate to comply with the law, enforce our site policies, or protect ours or others' rights, property or safety.
However, non-personally identifiable visitor information may be provided to other parties for marketing, advertising, or other uses.
Third-party links
We do not include or offer third-party products or services on our website.
Google's advertising requirements can be summed up by Google's Advertising Principles. They are put in place to provide a positive experience for users. https://support.google.com/adwordspolicy/answer/1316548?hl=en
We have not enabled Google AdSense on our site but we may do so in the future.
California Online Privacy Protection Act
CalOPPA is the first state law in the nation to require commercial websites and online services to post a privacy policy. The law's reach stretches well beyond California to require any person or company in the United States (and conceivably the world) that operates websites collecting Personally Identifiable Information from California consumers to post a conspicuous privacy policy on its website stating exactly the information being collected and those individuals or companies with whom it is being shared. - See more at: http://consumercal.org/california-online-privacy-protection-act-caloppa/#sthash.0FdRbT51.dpuf
According to CalOPPA, we agree to the following:
Users can visit our site anonymously.
Once this privacy policy is created, we will add a link to it on our home page or as a minimum, on the first significant page after entering our website.
Our Privacy Policy link includes the word 'Privacy' and can easily be found on the page specified above.
You will be notified of any Privacy Policy changes:
Can change your personal information:
How does our site handle Do Not Track signals?
We honor Do Not Track signals and Do Not Track, plant cookies, or use advertising when a Do Not Track (DNT) browser mechanism is in place.
Does our site allow third-party behavioral tracking?
It's also important to note that we do not allow third-party behavioral tracking
COPPA (Children Online Privacy Protection Act)
When it comes to the collection of personal information from children under the age of 13 years old, the Children's Online Privacy Protection Act (COPPA) puts parents in control. The Federal Trade Commission, United States' consumer protection agency, enforces the COPPA Rule, which spells out what operators of websites and online services must do to protect children's privacy and safety online.
Do we let third-parties, including ad networks or plug-ins collect PII from children under 13?
We do not specifically market to children under the age of 13 years old.
Fair Information Practices
The Fair Information Practices Principles form the backbone of privacy law in the United States and the concepts they include have played a significant role in the development of data protection laws around the globe. Understanding the Fair Information Practice Principles and how they should be implemented is critical to comply with the various privacy laws that protect personal information.
In order to be in line with Fair Information Practices we will take the following responsive action, should a data breach occur:
We will notify you via email
We will notify the users via in-site notification
We also agree to the Individual Redress Principle which requires that individuals have the right to legally pursue enforceable rights against data collectors and processors who fail to adhere to the law. This principle requires not only that individuals have enforceable rights against data users, but also that individuals have recourse to courts or government agencies to investigate and/or prosecute non-compliance by data processors.
CAN SPAM Act
The CAN-SPAM Act is a law that sets the rules for commercial email, establishes requirements for commercial messages, gives recipients the right to have emails stopped from being sent to them, and spells out tough penalties for violations.
We collect your email address in order to:
To be in accordance with CANSPAM, we agree to the following:
If at any time you would like to unsubscribe from receiving future emails, you can email us at
<EMAIL_ADDRESS>and we will promptly remove you from ALL correspondence.
If there are any questions regarding this privacy policy, you may contact us using the information below.
Codetally
221 October Cres.
London, ON N6K4W5
Canada
<EMAIL_ADDRESS>Last Edited on 2017-07-30


PBSImprover
This
ChainProcessor tries to
provide a Chain with a PBS
missed or rejected by the basic procedure. It is included in the normal
operation of
RetroVID.
There are three parameters, adjustable through
Configuration.txt:
- ProcessorPriority: Priority relative to other
ChainProcessors.
Default: -2.
- ScoreThreshold: The lowest raw score relative to max
acceptable in a PBS Motif hit. Setting it >1 will effectively close
down PBSImprover.
Default: .33.
- Debugging: If this is Yes, debugging info is output
to standard output.
Default: No
If there is a 5'LTR but no PBS in the Chain, the region +-40 positions
around the end of the 5'LTR is searched for the highest raw score by
the PBS motif. If it exceeds ScoreThreshold, a PBS hit is added to the
Chain. If its score by normal scoring would have been >0, the half
of that score is assigned to the hit, otherwise 0.