At the surface, counting sounds pretty simple, right? You just want to know how many occurrences of something there are. Well - unfortunately, it’s not that easy. And in clinical reports, there’s quite a bit of nuance that goes into the different types of frequency tables that need to be created. Fortunately, we’ve added a good bit of flexibility into both group_count()
and group_shift()
to help you get what you need when creating these reports, whether you’re creating a demographics table, adverse events, of shift in lab results.
Let’s start with a basic example. This table demonstrates the distribution of subject disposition across treatment groups. Additionally, we’re sorting by descending total occurrences using the “Total” group.
t <- tplyr_table(adsl, TRT01P, where = SAFFL == "Y") %>% add_total_group() %>% add_treat_grps(Treated = c("Xanomeline Low Dose", "Xanomeline High Dose")) %>% add_layer( group_count(DCDECOD) %>% set_order_count_method("bycount") %>% set_ordering_cols(Total) ) %>% build() %>% arrange(desc(ord_layer_1)) %>% select(starts_with("row"), var1_Placebo, `var1_Xanomeline Low Dose`, `var1_Xanomeline High Dose`, var1_Treated, var1_Total) kable(t)
| row_label1 | var1_Placebo | var1_Xanomeline Low Dose | var1_Xanomeline High Dose | var1_Treated | var1_Total |
|---|---|---|---|---|---|
| COMPLETED | 58 ( 67.4%) | 25 ( 29.8%) | 27 ( 32.1%) | 52 ( 31.0%) | 110 ( 43.3%) |
| ADVERSE EVENT | 8 ( 9.3%) | 44 ( 52.4%) | 40 ( 47.6%) | 84 ( 50.0%) | 92 ( 36.2%) |
| WITHDRAWAL BY SUBJECT | 9 ( 10.5%) | 10 ( 11.9%) | 8 ( 9.5%) | 18 ( 10.7%) | 27 ( 10.6%) |
| STUDY TERMINATED BY SPONSOR | 2 ( 2.3%) | 2 ( 2.4%) | 3 ( 3.6%) | 5 ( 3.0%) | 7 ( 2.8%) |
| PROTOCOL VIOLATION | 2 ( 2.3%) | 1 ( 1.2%) | 3 ( 3.6%) | 4 ( 2.4%) | 6 ( 2.4%) |
| LACK OF EFFICACY | 3 ( 3.5%) | 0 ( 0.0%) | 1 ( 1.2%) | 1 ( 0.6%) | 4 ( 1.6%) |
| DEATH | 2 ( 2.3%) | 1 ( 1.2%) | 0 ( 0.0%) | 1 ( 0.6%) | 3 ( 1.2%) |
| PHYSICIAN DECISION | 1 ( 1.2%) | 0 ( 0.0%) | 2 ( 2.4%) | 2 ( 1.2%) | 3 ( 1.2%) |
| LOST TO FOLLOW-UP | 1 ( 1.2%) | 1 ( 1.2%) | 0 ( 0.0%) | 1 ( 0.6%) | 2 ( 0.8%) |
Counting is one thing - but a count by itself doesn’t give much context. Often frequencies in clinical reports are paired with a percentage, which allows you to understand the proportion of events/subjects to some total - but that total can prove to be complicated, which is why we’ve included a few functions to aid in giving you the necessary denominator.
set_denoms_by()
function allows users calculate denominators using any variable within the by
, cols
, treatment
, or target_var
. This defaults to all variables passed as treatment groups and column variables which causes the column percentages to sum to 100%. This is particularly useful for shift tables, which use a combination of row and column variables.
set_denom_ignore()
defines values of the target variable to be ignored in the calculation of the denominator. In many tables percentages are based on non-missing counts. You can pass values to this function to have them be excluded from the calculation of the denominator. For example, if your data include NAs, you can use “NA” in set_denom_ignore()
and those will be excluded from the denominator.Examples with percentages can be seen below.
Just as important as denominator flexibility is the determination of whether you should be using distinct or non-distinct counts - or some combination of both. Adverse event tables are a perfect example. Often, you’re concerned about how many subjects had an adverse event in particular instead of just the number of occurrences of that adverse event. Similarly, the number occurrences of an event isn’t necessarily relevant when compared to the total number of adverse events that occurred. For this reason, what you likely want to look at is instead the number of subjects who experienced an event compared to the total number of subjects in that treatment group.
‘Tplyr’ allows you to focus on these distinct counts and distinct percents within some grouping variable, like subject. Additionally, you can mix and match with the distinct counts with non-distinct counts in the same row too. The set_distinct_by()
function sets the variables used to calculate the distinct occurrences of some value using the specified by
variables.
t <- tplyr_table(adae, TRTA) %>% add_layer( group_count(AEDECOD) %>% set_distinct_by(USUBJID) %>% set_format_strings(f_str("xxx (xx.xx%) [xxx]", distinct, distinct_pct, n)) ) %>% build() %>% head() kable(t)
| row_label1 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 |
|---|---|---|---|---|---|
| ACTINIC KERATOSIS | 0 ( 0.00%) [ 0] | 1 ( 2.38%) [ 1] | 0 ( 0.00%) [ 0] | 1 | 1 |
| ALOPECIA | 1 ( 4.76%) [ 1] | 0 ( 0.00%) [ 0] | 0 ( 0.00%) [ 0] | 1 | 2 |
| BLISTER | 0 ( 0.00%) [ 0] | 1 ( 2.38%) [ 2] | 5 (11.90%) [ 8] | 1 | 3 |
| COLD SWEAT | 1 ( 4.76%) [ 3] | 0 ( 0.00%) [ 0] | 0 ( 0.00%) [ 0] | 1 | 4 |
| DERMATITIS ATOPIC | 1 ( 4.76%) [ 1] | 0 ( 0.00%) [ 0] | 0 ( 0.00%) [ 0] | 1 | 5 |
| DERMATITIS CONTACT | 0 ( 0.00%) [ 0] | 0 ( 0.00%) [ 0] | 1 ( 2.38%) [ 2] | 1 | 6 |
You may have seen tables before like the one about. This display shows the number of subjects who experienced an adverse event, the percentage of subjects within the given treatment group who experienced that event, and then the total number of occurrences of that event. Using set_distinct_by()
triggered the derivation of distinct
and distinct_pct
in addition to the n
and pct
created created within group_count
. The display of the values is then controlled by the f_str()
call in set_format_strings()
.
Missing counts are another tricky area for frequency tables. These values raise a number of questions. For example, do you want to format the missing counts the same way as the event counts? Do you want to present missing counts with percentages? Do missing counts belong in the denominator?
The set_missing_count()
function can take a new f_str()
object to set the display of missing values. If not specified, the associated count layer’s format will be used. Using the ...
parameter, you are able to specify the row label desired for missing values and values that you determine to be considered ‘missing’. For example, you may have NAs in the target variable, and the values like “Not Collected” that you also wish to consider “missing”. set_missing_count()
allows you to group those together. Actually - you’re able to establish as many different “missing” groups as you want - even though that scenario is fairly unlikely.
In the example below 50 random values are removed and NA is specified as the missing string. This also introduces another function - set_denom_ignore()
. When you have missing counts, you may wish to exclude them from the totals being summarized. You can exclude them from the denominator by using set_denom_ignore()
. Simply pass the missing group label established from set_missing_count()
into set_denom_ignore()
, and all of the missing values you grouped will be excluded from the denominator. set_denom_ignore()
can also consume any other value you wish to ignore from the target variable as well, if desired.
adae2 <- adae adae2[sample(nrow(adae2), 50), "AESEV"] <- NA t <- tplyr_table(adae2, TRTA) %>% add_layer( group_count(AESEV) %>% set_format_strings(f_str("xxx (xx.xx%)", n, pct)) %>% set_missing_count(f_str("xxx", n), Missing = NA, sort_value=Inf) %>% set_denom_ignore("Missing") ) %>% build() %>% arrange(ord_layer_1) t %>% kable()
| row_label1 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 |
|---|---|---|---|---|---|
| MILD | 18 (50.00%) | 70 (76.09%) | 43 (43.88%) | 1 | 1 |
| MODERATE | 18 (50.00%) | 21 (22.83%) | 51 (52.04%) | 1 | 2 |
| SEVERE | 0 ( 0.00%) | 1 ( 1.09%) | 4 ( 4.08%) | 1 | 3 |
| Missing | 11 | 19 | 20 | 1 | Inf |
We did one more other thing worth explaining in the example above - gave the missing count its own sort value. If you leave this field null, it will simply be the maximum value in the order layer plus 1, to put the Missing counts at the bottom during an ascending sort. But tables can be sorted a lot of different ways, as you’ll see in the sort vignette. So instead of trying to come up with novel ways for you to control where the missing row goes - we decided to just let you specify your own value.
While set_denom_ignore()
can be useful for ignoring certain values, ‘Tplyr’ also offers you the ability to specifically control the filter used within the denominator. This is provided through the function set_denom_where()
. The default for set_denom_where()
is the layer level where
parameter, if one was supplied. set_denom_where()
allows you to replace this layer level filter with a custom filter of your choosing. This is done on top of any filtering specified in the tplyr_table()
where parameter - which means that the set_denom_where()
filter is applied in addition to any table level filtering.
Take the example shown below. The first layer has no layer level filtering applied, so the table level where
is the only filter applied. The second layer has a layer level filter applied, so the denominators will be based on that layer level filter. Notice how in this case, the percentages in the second layer add up to 100%. This is because the denominator only includes values used in that layer.
The third layer has a layer level filter applied, but additionally uses set_denom_where()
. The set_denom_where()
in this example is actually removing the layer level filter for the denominators. This is because in R, when you filter using TRUE
, the filter returns all records. So by using TRUE
in set_denom_where()
, the layer level filter is removed. This causes the denominator to include all values and not just those selected for that layer - so for this layer, the percentages will not add up to 100%. In this example, this allows the percentages from Layer 3 to sum to the total percentage of “DISCONTINUED” from Layer 1.
adsl2 <- adsl %>% mutate(DISCONTEXT = if_else(DISCONFL == 'Y', 'DISCONTINUED', 'COMPLETED')) t <- tplyr_table(adsl2, TRT01P, where = SAFFL == 'Y') %>% add_layer( group_count(DISCONTEXT) ) %>% add_layer( group_count(DCSREAS, where = DISCONFL == 'Y') ) %>% add_layer( group_count(DCSREAS, where = DISCONFL == 'Y') %>% set_denom_where(TRUE) ) %>% build() %>% arrange(ord_layer_index, ord_layer_1) t %>% kable()
| row_label1 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 |
|---|---|---|---|---|---|
| COMPLETED | 58 ( 67.4%) | 27 ( 32.1%) | 25 ( 29.8%) | 1 | 1 |
| DISCONTINUED | 28 ( 32.6%) | 57 ( 67.9%) | 59 ( 70.2%) | 1 | 2 |
| Adverse Event | 8 ( 28.6%) | 40 ( 70.2%) | 44 ( 74.6%) | 2 | 2 |
| Death | 2 ( 7.1%) | 0 ( 0.0%) | 1 ( 1.7%) | 2 | 3 |
| I/E Not Met | 1 ( 3.6%) | 2 ( 3.5%) | 0 ( 0.0%) | 2 | 4 |
| Lack of Efficacy | 3 ( 10.7%) | 1 ( 1.8%) | 0 ( 0.0%) | 2 | 5 |
| Lost to Follow-up | 1 ( 3.6%) | 0 ( 0.0%) | 1 ( 1.7%) | 2 | 6 |
| Physician Decision | 1 ( 3.6%) | 2 ( 3.5%) | 0 ( 0.0%) | 2 | 7 |
| Protocol Violation | 1 ( 3.6%) | 1 ( 1.8%) | 1 ( 1.7%) | 2 | 8 |
| Sponsor Decision | 2 ( 7.1%) | 3 ( 5.3%) | 2 ( 3.4%) | 2 | 9 |
| Withdrew Consent | 9 ( 32.1%) | 8 ( 14.0%) | 10 ( 16.9%) | 2 | 10 |
| Adverse Event | 8 ( 9.3%) | 40 ( 47.6%) | 44 ( 52.4%) | 3 | 2 |
| Death | 2 ( 2.3%) | 0 ( 0.0%) | 1 ( 1.2%) | 3 | 3 |
| I/E Not Met | 1 ( 1.2%) | 2 ( 2.4%) | 0 ( 0.0%) | 3 | 4 |
| Lack of Efficacy | 3 ( 3.5%) | 1 ( 1.2%) | 0 ( 0.0%) | 3 | 5 |
| Lost to Follow-up | 1 ( 1.2%) | 0 ( 0.0%) | 1 ( 1.2%) | 3 | 6 |
| Physician Decision | 1 ( 1.2%) | 2 ( 2.4%) | 0 ( 0.0%) | 3 | 7 |
| Protocol Violation | 1 ( 1.2%) | 1 ( 1.2%) | 1 ( 1.2%) | 3 | 8 |
| Sponsor Decision | 2 ( 2.3%) | 3 ( 3.6%) | 2 ( 2.4%) | 3 | 9 |
| Withdrew Consent | 9 ( 10.5%) | 8 ( 9.5%) | 10 ( 11.9%) | 3 | 10 |
In addition to missing counts, some summaries require the addition of a ‘Total’ row. ‘Tplyr’ has the helper function add_total_row()
to ease this process for you. Like everything else that goes into ‘Tplyr’, this too has a significant bit of nuance to it.
Much of this functionality is similar to set_missing_count()
. You’re able to specify a different format for the total, but if not specified, the associated count layer’s format will be used. You’re able to set your own sort value to specify where you want the total row to sit.
More nuance comes in two places:
add_total_row()
will ignore missing values, but you can have it count missing values using the count_missings
parameter. ‘Tplyr’ will warn you when using add_total_row()
with set_denom_ignore()
if you’re requesting to count missing values and including a percentage, because the percentage will exceed 100%.add_total_row()
will throw a warning when a by
variable is used, because it becomes ambiguous what total should be calculated. You can rectify this by using set_denoms_by()
, which allows the user to control exactly how denominators are calculated. Typically in a count layer, the column variables (i.e. treat_var
and any cols
) are used, and this is the default. The totals presented by add_total_row()
will always align with denominators specified in set_denom_by()
.In the example below, we summarize age groups by sex. The denominators are determined by treatment group and sex, and the total row shows us what denominator is used. The ‘Missing’ row tells us the number of missing values, but because count_missings
is set to TRUE
, the missing counts are included in the denominator. This probably isn’t how you would choose to display things, but here we’re trying to show the flexibility built into ‘Tplyr’.
adsl2 <- adsl adsl2[sample(nrow(adsl2), 50), "AGEGR1"] <- NA tplyr_table(adsl2, TRT01P) %>% add_layer( group_count(AGEGR1, by=SEX) %>% set_denoms_by(TRT01P, SEX) %>% # This gives me a Total row each group add_total_row(f_str("xxx", n), count_missings=TRUE, sort_value=-Inf) %>% set_total_row_label("All Age Groups") %>% set_missing_count(f_str("xxx", n), Missing = NA, sort_value=Inf) ) %>% build() %>% arrange(ord_layer_1, ord_layer_2) %>% kable()
| row_label1 | row_label2 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 | ord_layer_2 |
|---|---|---|---|---|---|---|---|
| F | All Age Groups | 53 | 40 | 50 | 1 | 1 | -Inf |
| F | <65 | 8 ( 15.1%) | 5 ( 12.5%) | 5 ( 10.0%) | 1 | 1 | 1 |
| F | >80 | 15 ( 28.3%) | 7 ( 17.5%) | 15 ( 30.0%) | 1 | 1 | 2 |
| F | 65-80 | 17 ( 32.1%) | 24 ( 60.0%) | 25 ( 50.0%) | 1 | 1 | 3 |
| F | Missing | 13 | 4 | 5 | 1 | 1 | Inf |
| M | All Age Groups | 33 | 44 | 34 | 1 | 2 | -Inf |
| M | <65 | 4 ( 12.1%) | 3 ( 6.8%) | 3 ( 8.8%) | 1 | 2 | 1 |
| M | >80 | 5 ( 15.2%) | 10 ( 22.7%) | 10 ( 29.4%) | 1 | 2 | 2 |
| M | 65-80 | 15 ( 45.5%) | 18 ( 40.9%) | 15 ( 44.1%) | 1 | 2 | 3 |
| M | Missing | 9 | 13 | 6 | 1 | 2 | Inf |
The default text for the Total row is “Total”, but we provide set_total_row_label()
to allow you to customize the text used in your display.
Certain summary tables present counts within groups. One example could be in a disposition table where a disposition reason of “Other” summarizes what those other reasons were. A very common example is an Adverse Event table that displays counts for body systems, and then the events within those body systems. This is again a nuanced situation - there are two variables being summarized: The body system counts, and the advert event counts.
One way to approach this would be creating two summaries. One summarizing the body system, and another summarizing the preferred terms by body system, and then merging the two together. But we don’t want you to have to do that. Instead, we handle this complexity for you. This is done in group_count()
by submitting two target variables with dplyr::vars()
. The first variable should be your grouping variable that you want summarized, which we refer to as the “Outside” variable, and the second should have the narrower scope, which we call the “Inside” variable.
The example below demonstrates how to do a nested summary. Look at the first row - here row_label1
and row_label2
are both “CARDIAC DISORDERS”. This line is the summary for AEBODSYS.
In the rows below that, row_label1
continues on with the value “CARDIAC DISORDERS”, but row_label2
changes. These are the summaries for AEDECOD
.
tplyr_table(adae, TRTA) %>% add_layer( group_count(vars(AEBODSYS, AEDECOD)) ) %>% build() %>% head() %>% kable()
| row_label1 | row_label2 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 | ord_layer_2 |
|---|---|---|---|---|---|---|---|
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | SKIN AND SUBCUTANEOUS TISSUE DISORDERS | 47 (100.0%) | 111 (100.0%) | 118 (100.0%) | 1 | 1 | Inf |
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | ACTINIC KERATOSIS | 0 ( 0.0%) | 1 ( 0.9%) | 0 ( 0.0%) | 1 | 1 | 1 |
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | ALOPECIA | 1 ( 2.1%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 2 |
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | BLISTER | 0 ( 0.0%) | 2 ( 1.8%) | 8 ( 6.8%) | 1 | 1 | 3 |
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | COLD SWEAT | 3 ( 6.4%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 4 |
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | DERMATITIS ATOPIC | 1 ( 2.1%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 5 |
This accomplishes what we needed, but it’s not exactly the presentation you might hope for. We have a solution for this as well.
tplyr_table(adae, TRTA) %>% add_layer( group_count(vars(AEBODSYS, AEDECOD)) %>% set_nest_count(TRUE) %>% set_indentation("--->") ) %>% build() %>% head() %>% kable()
| row_label1 | var1_Placebo | var1_Xanomeline High Dose | var1_Xanomeline Low Dose | ord_layer_index | ord_layer_1 | ord_layer_2 |
|---|---|---|---|---|---|---|
| SKIN AND SUBCUTANEOUS TISSUE DISORDERS | 47 (100.0%) | 111 (100.0%) | 118 (100.0%) | 1 | 1 | Inf |
| —>ACTINIC KERATOSIS | 0 ( 0.0%) | 1 ( 0.9%) | 0 ( 0.0%) | 1 | 1 | 1 |
| —>ALOPECIA | 1 ( 2.1%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 2 |
| —>BLISTER | 0 ( 0.0%) | 2 ( 1.8%) | 8 ( 6.8%) | 1 | 1 | 3 |
| —>COLD SWEAT | 3 ( 6.4%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 4 |
| —>DERMATITIS ATOPIC | 1 ( 2.1%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 1 | 5 |
By using set_nest_count()
, this triggers ‘Tplyr’ to drop row_label1, and indent all of the AEDECOD values within row_label2. The columns are renamed appropriately as well. The default indentation used will be 3 spaces, but as you can see here - you can set the indentation however you like. This let’s you use tab strings for different language-specific output types, stick with spaces, indent wider or smaller - whatever you wish. All of the existing order variables remain, so this has no impact on your ability to sort the table.
Shift tables are a special kind of frequency table - but what they count are changes in state. This is most common when looking at laboratory ranges, where you may be interested in a subject’s status at baseline versus their status at some designated evaluation point. Shift tables allow you to see the distribution of how subjects move between normal ranges, and if the population is improving or worsening as the study progresses.
While shift tables are very similar to a normal frequency table, there’s more nuance here, and thus we decided to create group_shift()
. This function is largely an abstraction of a count layer, and in fact re-uses a good deal of the same underlying code. But we handle some of the complexity for you to make the interface easy to use and the behavior similar to that of the group_count()
and group_desc()
APIs.
One thing to note - the group_shift()
API is intended to be used on shift tables where one group is presented in rows and the other group in columns. Occasionally, shift tables will have a row based approach that shows “Low to High”, “Normal to High”, etc. For those situations, group_count()
will do just fine.
Let’s look at an example.
tplyr_table(adlb, TRTA, where=PARAMCD == "CK") %>% add_layer( group_shift(vars(row = BNRIND, column = ANRIND), by = vars(PARAM, VISIT)) ) %>% build() %>% head(20) %>% kable()
| row_label1 | row_label2 | row_label3 | var1_Placebo_H | var1_Placebo_N | var1_Xanomeline High Dose_H | var1_Xanomeline High Dose_N | var1_Xanomeline Low Dose_H | var1_Xanomeline Low Dose_N | ord_layer_index | ord_layer_1 | ord_layer_2 | ord_layer_3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Creatine Kinase (U/L) | WEEK 12 | H | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 35 | 1 | 1 |
| Creatine Kinase (U/L) | WEEK 12 | N | 1 | 11 | 1 | 6 | 1 | 6 | 1 | 35 | 1 | 3 |
| Creatine Kinase (U/L) | WEEK 24 | H | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 2 | 1 |
| Creatine Kinase (U/L) | WEEK 24 | N | 2 | 10 | 0 | 2 | 0 | 2 | 1 | 35 | 2 | 3 |
| Creatine Kinase (U/L) | WEEK 8 | H | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 3 | 1 |
| Creatine Kinase (U/L) | WEEK 8 | N | 1 | 6 | 1 | 9 | 0 | 6 | 1 | 35 | 3 | 3 |
For the most part, this is getting us where we want to go - but there’s still some that’s left to be desired. It doesn’t look like there are any ‘L’ values for BNRIND in the dataset so we are not getting and rows containing ‘L’. Let’s see if we can fix that by dummying in the possible values.
adlb$ANRIND <- factor(adlb$ANRIND, levels=c("L", "N", "H")) adlb$BNRIND <- factor(adlb$BNRIND, levels=c("L", "N", "H")) tplyr_table(adlb, TRTA, where=PARAMCD == "CK") %>% add_layer( group_shift(vars(row = BNRIND, column = ANRIND), by = vars(PARAM, VISIT)) ) %>% build() %>% head(20) %>% kable()
| row_label1 | row_label2 | row_label3 | var1_Placebo_L | var1_Placebo_N | var1_Placebo_H | var1_Xanomeline High Dose_L | var1_Xanomeline High Dose_N | var1_Xanomeline High Dose_H | var1_Xanomeline Low Dose_L | var1_Xanomeline Low Dose_N | var1_Xanomeline Low Dose_H | ord_layer_index | ord_layer_1 | ord_layer_2 | ord_layer_3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Creatine Kinase (U/L) | WEEK 12 | L | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 1 | 1 |
| Creatine Kinase (U/L) | WEEK 12 | N | 0 | 11 | 1 | 0 | 6 | 1 | 0 | 6 | 1 | 1 | 35 | 1 | 2 |
| Creatine Kinase (U/L) | WEEK 12 | H | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 35 | 1 | 3 |
| Creatine Kinase (U/L) | WEEK 24 | L | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 2 | 1 |
| Creatine Kinase (U/L) | WEEK 24 | N | 0 | 10 | 2 | 0 | 2 | 0 | 0 | 2 | 0 | 1 | 35 | 2 | 2 |
| Creatine Kinase (U/L) | WEEK 24 | H | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 2 | 3 |
| Creatine Kinase (U/L) | WEEK 8 | L | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 3 | 1 |
| Creatine Kinase (U/L) | WEEK 8 | N | 0 | 6 | 1 | 0 | 9 | 1 | 0 | 6 | 0 | 1 | 35 | 3 | 2 |
| Creatine Kinase (U/L) | WEEK 8 | H | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 35 | 3 | 3 |
There we go. This is another situation where using factors in R let’s us dummy values within the dataset. Furthermore, since factors are ordered, it automatically corrected the sort order of the row labels too. Check out the vignettes("sort")
for more information on sorting.
A major part of the shift API is the control of the denominators used in the calculation of the percentages. In frequency tables, a lot of the time you want the columns within a by group to sum to 100%. In shift tables, most percentages are relative to the “box” that is formed from the “from” and “to” groups of the shift for each treatment group. To support this, ‘Tplyr’ let’s you specify the grouping used to calculate the denominators.
Just like the count layers, the set_denoms_by()
functions any variable name from the treatment variable, cols
argument, by
variables, and the target variables.
tplyr_table(adlb, TRTA, where=PARAMCD == "CK") %>% add_layer( group_shift(vars(row = BNRIND, column = ANRIND), by = vars(PARAM, AVISIT)) %>% set_format_strings(f_str("xx (xxx.x%)", n, pct)) %>% # This is the default, the 3x3 box formed by the target variables set_denoms_by(TRTA, PARAM, AVISIT) ) %>% build() %>% kable()
| row_label1 | row_label2 | row_label3 | var1_Placebo_L | var1_Placebo_N | var1_Placebo_H | var1_Xanomeline High Dose_L | var1_Xanomeline High Dose_N | var1_Xanomeline High Dose_H | var1_Xanomeline Low Dose_L | var1_Xanomeline Low Dose_N | var1_Xanomeline Low Dose_H | ord_layer_index | ord_layer_1 | ord_layer_2 | ord_layer_3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Creatine Kinase (U/L) | Week 12 | L | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 12 | 1 |
| Creatine Kinase (U/L) | Week 12 | N | 0 ( 0.0%) | 11 ( 91.7%) | 1 ( 8.3%) | 0 ( 0.0%) | 6 ( 75.0%) | 1 ( 12.5%) | 0 ( 0.0%) | 6 ( 85.7%) | 1 ( 14.3%) | 1 | 35 | 12 | 2 |
| Creatine Kinase (U/L) | Week 12 | H | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 ( 12.5%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 12 | 3 |
| Creatine Kinase (U/L) | Week 24 | L | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 24 | 1 |
| Creatine Kinase (U/L) | Week 24 | N | 0 ( 0.0%) | 10 ( 83.3%) | 2 ( 16.7%) | 0 ( 0.0%) | 2 (100.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 2 (100.0%) | 0 ( 0.0%) | 1 | 35 | 24 | 2 |
| Creatine Kinase (U/L) | Week 24 | H | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 24 | 3 |
| Creatine Kinase (U/L) | Week 8 | L | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 8 | 1 |
| Creatine Kinase (U/L) | Week 8 | N | 0 ( 0.0%) | 6 ( 85.7%) | 1 ( 14.3%) | 0 ( 0.0%) | 9 ( 90.0%) | 1 ( 10.0%) | 0 ( 0.0%) | 6 (100.0%) | 0 ( 0.0%) | 1 | 35 | 8 | 2 |
| Creatine Kinase (U/L) | Week 8 | H | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 8 | 3 |
In the example above, the denominators were based on the by and treatment variables, TRTA
, PARAM
and VISIT
. This creates a 3 X 3 box, where the denominator is the total of all record within the FROM and TO shift variables, within each parameter, visit, and treatment. This is the default, and this is how ‘Tplyr’ will create the denominators if set_denom_by()
isn’t specified.
In the next example, the percentage denominators are calculated row-wise, each row percentage sums to 100%.
tplyr_table(adlb, TRTA, where=PARAMCD == "CK") %>% add_layer( group_shift(vars(row = BNRIND, column = ANRIND), by = vars(PARAM, AVISIT)) %>% set_format_strings(f_str("xx (xxx.x%)", n, pct)) %>% set_denoms_by(BNRIND, PARAM, AVISIT) # Each row made by LBNRIND, TRTA ) %>% build() %>% arrange(ord_layer_1, ord_layer_2, ord_layer_3) %>% head() %>% kable()
| row_label1 | row_label2 | row_label3 | var1_Placebo_L | var1_Placebo_N | var1_Placebo_H | var1_Xanomeline High Dose_L | var1_Xanomeline High Dose_N | var1_Xanomeline High Dose_H | var1_Xanomeline Low Dose_L | var1_Xanomeline Low Dose_N | var1_Xanomeline Low Dose_H | ord_layer_index | ord_layer_1 | ord_layer_2 | ord_layer_3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Creatine Kinase (U/L) | Week 8 | L | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 8 | 1 |
| Creatine Kinase (U/L) | Week 8 | N | 0 ( 0.0%) | 6 ( 26.1%) | 1 ( 4.3%) | 0 ( 0.0%) | 9 ( 39.1%) | 1 ( 4.3%) | 0 ( 0.0%) | 6 ( 26.1%) | 0 ( 0.0%) | 1 | 35 | 8 | 2 |
| Creatine Kinase (U/L) | Week 8 | H | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 8 | 3 |
| Creatine Kinase (U/L) | Week 12 | L | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 12 | 1 |
| Creatine Kinase (U/L) | Week 12 | N | 0 ( 0.0%) | 11 ( 42.3%) | 1 ( 3.8%) | 0 ( 0.0%) | 6 ( 23.1%) | 1 ( 3.8%) | 0 ( 0.0%) | 6 ( 23.1%) | 1 ( 3.8%) | 1 | 35 | 12 | 2 |
| Creatine Kinase (U/L) | Week 12 | H | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 (100.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 0 ( 0.0%) | 1 | 35 | 12 | 3 |
While not practical, in this last example the denominators are changed to be based on the entire column instead of the 3 x 3 box. By passing the column variables, TRTA
and ANRIND
the layer will use those denominators when determining the percentages.
tplyr_table(adlb, TRTA, where = PARAMCD == "CK") %>% add_layer( group_shift(vars(row = BNRIND, column = ANRIND), by = vars(PARAM, AVISIT)) %>% set_format_strings(f_str("xx (xx.xx%)", n, pct)) %>% set_denoms_by(TRTA, ANRIND) # Use the column total as the denominator ) %>% build() %>% arrange(ord_layer_1, ord_layer_2, ord_layer_3) %>% head() %>% kable()
| row_label1 | row_label2 | row_label3 | var1_Placebo_L | var1_Placebo_N | var1_Placebo_H | var1_Xanomeline High Dose_L | var1_Xanomeline High Dose_N | var1_Xanomeline High Dose_H | var1_Xanomeline Low Dose_L | var1_Xanomeline Low Dose_N | var1_Xanomeline Low Dose_H | ord_layer_index | ord_layer_1 | ord_layer_2 | ord_layer_3 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Creatine Kinase (U/L) | Week 8 | L | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 1 | 35 | 8 | 1 |
| Creatine Kinase (U/L) | Week 8 | N | 0 ( 0.00%) | 6 (22.22%) | 1 (25.00%) | 0 ( 0.00%) | 9 (52.94%) | 1 (33.33%) | 0 ( 0.00%) | 6 (42.86%) | 0 ( 0.00%) | 1 | 35 | 8 | 2 |
| Creatine Kinase (U/L) | Week 8 | H | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 1 | 35 | 8 | 3 |
| Creatine Kinase (U/L) | Week 12 | L | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 1 | 35 | 12 | 1 |
| Creatine Kinase (U/L) | Week 12 | N | 0 ( 0.00%) | 11 (40.74%) | 1 (25.00%) | 0 ( 0.00%) | 6 (35.29%) | 1 (33.33%) | 0 ( 0.00%) | 6 (42.86%) | 1 (100.00%) | 1 | 35 | 12 | 2 |
| Creatine Kinase (U/L) | Week 12 | H | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 1 (33.33%) | 0 ( 0.00%) | 0 ( 0.00%) | 0 ( 0.00%) | 1 | 35 | 12 | 3 |
Our hope is that this gives you the flexibility you need to structure your denominator however required.


Home
Source
Demo: Using ${} or {{html}} to render data values or expressions
${} is equivalent to {{= }}. It HTML encodes. (Better security, but slight perf cost)
{{html}} does not encode. Used to render values that include html markup
Title
Synopsis


Coding
Portfolio
I have used Qbasic and VisualBasic before.
Skills
HTML5
CSS3
javaScript
- • Learnt javascript through codecademy,freecodecamp,w3schools and reading mdn documentation (ES5 and ES6)
- • Example: Simon Memory Game
jQuery
- • Learnt jquery through codecademy,freecodecamp,w3schools and by reading jquery documentation
- • Example: Twitch Streamers
Styling
- • I learnt twitter-bootstrap through freecodecamp and learnt materializecss by reading the documentation
- • I have also used animate.css,weather-icons,material-icons,font-awesome and other external stylesheets
- • Example: Tic Tac Toe game , Weather App ,Recipe Box
jade/Pug
SASS
React
Chrome Devtools
- • I have repeatedly used chrome developer tools across all my projects/challenges for various purposes
- • I have also done the video courses on freecodecamp
- • I have used google developer(OAuth,API,etc) and search consoles.
Koa.js
React Native (Web,Mob,VR)
Unix command line
Apache Cordova
npm
git
node.js
Markdown
MongoDB
D3
Projects
Some of my projects:


Space Warz
Report:
The goal was to build a 3rd person hack and slash based on a Udemy class. This is a prototype project with no story or level design.
Features:
- Built for PC/Console
- Basic melee combat
- Floor Switch
- Moving/Floating Platforms
- Pause Menu
- Main Menu (not part of the original project)
Screenshots:
Video:


Here is the "Home" section
Welcome to my webpage, you can find links to my projects, an about-me section, and contact info with social media and github links.
About me
Some of my abouts
- Coding
- Soccer
- Home - renovating
Welcome to my webpage, you can find links to my projects, an about-me section, and contact info with social media and github links.


data plant biodiversity growth species Data functional global ecological form Ecol aggregated e.g., information traits {border-style (e.g., Biodiversity Fig Global diversity seed px;} #ffffff;} research imputation integration mass resolution study Evol. Sciences data. geographical types disaggregated provide Ecological Life case latitudinal models statistical trait Biology data, distribution primary Ecology Floras New variation Earth GIFT Kattge Moles Plant based logical macroecological open potential set trees Information Network additional colleagues ecology knowledge patterns px; representativeness results studies taxonomic used vegetation {font-family ./j.-...x ./j.tree... Inventory approach available biogeography coverage environmental existing font-size forms improve individual integrated species-by-region specific synergies tropical use BIEN Enquist Functional However, Phylogeography Research Trends World domain double; dynamic ecology. gaps help higher highly plot projects range regional regression relationships scientific specimens systematic underlying understanding units utilization Biogeogr. Biol. Biology. Click Díaz Glob LINK Methods University according analyses border-color border-width central change climate combinations, combinations. community composition database databases degrees distributional domains file. gradient key large large-scale leaf new occurrence opportunities precision quality records sharing solid; standardized strong {font-style {font-weight American Available Biogeography Bot. Botanical Consequently, Data. Ecol. Environmental GBIF GIFT, Germany Goettingen, International Jones Kreft Lavorel Michener Open Population Science. Selected Smith Species Statistical Supporting Traits. Vegetation [], [cited analysis area biases black bold certain challenges checklists collab: collected complete courier; databases. decrease demonstrate derived digital distributions drop effective em; end extraction focus framework from: fundamental future hand, helps high http://orcid.org/--- improved imputation, infrastructure landscape latitude life linear local methods missing mobilization model multiple network observed offers organisms panel, performance point predict prediction predictions proportion pt;} remain resources robust sPlot scales. simple spatial species, tree versus way


Athena OAuth 2.0 Is a free web based token authorization and authentication service based on OAuth 2.0.
At the time of registration, the system will generate a Service ID and a Secret, that uniquely identifies your service into the system. Be sure to save this information. With this information you can give the users, access to your site.
As a part of OAuth process, the user generates the Authorization Code from the given Service ID and Secret. (The authorization code expires in 6 mins.)
In the next step, once the Athena OAuth 2.0 system verifies this authorization code and generates Acccess token
Once the access token is generated, the identity of the user is established for 1 hour. The user can use this Access token to access the providers website.


Loading...
captureSamples
ALCaptureDevice
channels
ALBuffer
coneInnerAngle
ALSoundSource-p
coneOuterAngle
ALSoundSource-p
coneOuterGain
ALSoundSource-p
context
ALChannelSource::context()
ALContext::context()
ALListener::context()
ALSource::context()
contexts
ALDevice
currentContext
OpenALManager
currentlyLoadedUrl
OALAudioTrack
currentTime
OALAudioTrack
Searching...
No Matches


Located in Manhattan Art and Antique Center YM excels in all manner of eclectic antiques from the 19th-20th centuries. Decorators know to come here when they're looking for something different.


Says whether the targets are in the top K
predictions.
tf.compat.v1.nn.in_top_k
tf.compat.v1.math.in_top_k( predictions, targets, k, name=None )
This outputs a batch_size
bool array, an entry out[i]
is true
if the
prediction for the target class is finite (not inf, -inf, or nan) and among
the top k
predictions among all predictions for example i
. Note that the
behavior of InTopK
differs from the TopK
op in its handling of ties; if
multiple classes have the same prediction value and straddle the top-k
boundary, all of those classes are considered to be in the top k
.
More formally, let
\(predictions_i\) be the predictions for all classes for example i
,
\(targets_i\) be the target class for example i
,
\(out_i\) be the output for example i
,
$$out_i = predictions_{i, targets_i} \in TopKIncludingTies(predictions_i)$$
predictions
: A Tensor
of type float32
.
A batch_size
x classes
tensor.targets
: A Tensor
. Must be one of the following types: int32
, int64
.
A batch_size
vector of class ids.k
: An int
. Number of top elements to look at for computing precision.name
: A name for the operation (optional).A Tensor
of type bool
. Computed Precision at k
as a bool Tensor
.


{% extends "base.html" %} {% block content %}
No! We encourage all students from all backgrounds to join TASA! We have many diverse students in our organization, and each one of them helps make TASA the incredible community it is. TASA provides a welcoming environment for members from diverse backgrounds to come together and celebrate their unique experiences while connecting over their shared passion for Taiwanese American heritage and culture. We welcome everyone to come and enjoy the incredible things that TASA offers as long as you have an interest in anything Taiwanese!
Although membership is not required to attend any of our general events, we do have membership fees of $10 per semester, $15 per year, or a $25 lifetime membership fee that comes with a free t-shirt, all of which contribute to funding for our events and membership discounts! Refer to our donation page for more information! Feel free to reach out for any questions too!
We typically hold our general events in the Social Sciences Building! We always specify the room numbers or the location in our Instagram posts and announcements! Make sure to stay updated with our socials!
Each semester we always have a 0.5/1st/2nd General Event! Our 0.5 GEN event allows people interested in TASA to meet the officers and mingle with the TASA community! Our 1st GEN event formally introduces the incredible semester-specific activities, events, and families in a themed-event for general members. And, our 2nd GEN event is organized by our interns to wrap up the semester! We also have bi-weekly events that promote Taiwanese culture and heritage ranging from mid-autumn festivals to Taiwanese night market-themed events! These general events are super fun and also provide more information about Taiwanese culture. It is also a great way to meet new people and connect with other Taiwanese-American students on campus!
We primarily announce our events on Instagram and Facebook! We also have a general event calendar at the bottom of the TASA website home page that includes general, family, and collaborative event information! All of our socials can always be found on our website's about page or at our table at Upper Sproul from 11 AM to 2PM every week day! Here's our Instagram and Facebook, and Mailing List for a quick reference!
TASA is an incredible community that creates unforgettable memories for those who want to have fun and enjoy Taiwanese culture/heritage! Our general events and family events are great ways to become involved in the community and get to know our wonderful members! We also offer intern positions each semester where people can get a behind-the-scenes look at how we organize events and get closer to our cabinet members!
TASA generally caters to Taiwanese-American students or students with an interest in Taiwanese heritage and focuses on spreading awareness about Taiwanese-American culture at Berkeley. The Taiwanese Student Association (TSA) is an organization that focuses more on providing a community for Taiwanese students here at Berkeley and hosts several amazing events throughout the semester! Both of our organizations celebrate Taiwanese heritage and culture and collaborate often with each other to bring you the best of Taiwan! Feel free to come to any of our events!
Families are smaller communities in TASA that are set up by our wonderful family heads! Families are typically themed and participate in different activities/events together throughout the semester. Joining a TASA family is an amazing way to get closer to people in TASA! You can sign up anytime during the semester using the preference form linked on the website, and we will pair you up with one of the families!
There is no consistent commitment for TASA (feel free to come to whichever events you are able to attend!), but we would love to see people come to events, so we can get to know more of you! Especially for the events our incredible families work to put together for family members, we encourage everyone to come out and join the community throughout the semester!
Interns are cabinet members who have the opportunity to shadow a specific TASA officer for a semester to learn behind-the-scenes responsibilities, see how TASA operates, and get closer with our cabinet family. As a part of an intern class each semester, you'll have the chance to get closer to other interns, enjoy cabinet events, and help contribute to TASA. We encourage anyone who wants to get closer with TASA to apply! Take a look at our testimonials page for some experiences from some of our past interns and apply to be an intern if interested! We will release the application at the beginning of each semester, so stay tuned!


Selected Presentations by the RKF Group at UT-Austin
- Technologies to Enable Biologists to Build Large Knowledge Bases on Human Anatomy and Physiology at Digital Human workshop, 7/25/02 at National Institute of Health, Bethesda, MD
- Knowledge-Based Information Retrieval at AAAI Spring Symposium, 3/25/02 at Stanford University
- A Library of Generic Concepts for Composing Knowledge Bases at KCAP-01, 10/23/01 in Victoria
- Knowledge Entry as the Graphical Assembly of Components at KCAP-01, 10/23/01 in Victoria
- Representing Roles and Purpose at KCAP-01, 10/23/01 in Victoria
- All presentations at the RKF PI meeting, 10/01 in McLean
- Introductory material for training SMEs
- A User Interface Storyboard and a script for running through it
- Status of the Component Library, presented 1/24/01 at Darpa PI's meeting in Tucson
- KB Content, presented 1/25/01 at Darpa PI's meeting in Tucson
- Status of the Component Library, presented 12/13/00 at Core Knowledge Workshop in Austin
- Proposal for Research, presented 6/7/00 at RKF Kick-off meeting in New Orleans
- Proposal for Evaluating our Work, presented 6/7/00 at RKF Kick-off meeting in New Orleans
- A Simple User Interface, presented 6/8/00 at RKF Kick-off meeting in New Orleans
- Motivations for Work on Composition, presented 1/99 at HPKB PI meeting in Austin
Back to RKF Group Home Page
Created and maintained by Dan Tecuci
Last modified January 31, 2001


?Haenianthus
salicifolius
Grisebach
var.
obovatus
(Krug
&
Urban)
Knoblauch
det.
Scott
Zona
(RSA)
March
1990
<$>
NY>IKAGED
NEW
YORK
BOTANICAL
GARDEN
0107
733
THE
NEW
YORK
BOTANICAL
GARDEN
EXPLORATION
OF
PORTO
RICO
SIERRA
DE
NAGUABO
Rio
PRIETO
AND
ADJACENT
HILLS
Ñ
ALT.
690
TO
1035
M.
NoMVO
............lo^tj*W
Odxa,
Collected
by
j.
a.
Shafer
August
10-15,1914
01071733
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Teen indicted in May slaying of Biloxi police officer
BILOXI, Miss. (AP) - A teenager has been indicted on a capital murder charge in the May shooting of a Biloxi police officer.
Darian (DEHR-uhn) Tawan Atkinson has been jailed without bail since his arrest after Robert McKeithen was shot to death in the parking lot of the Biloxi police station.
News outlets report no date has been set for Atkinson’s arraignment. Atkinson could face a death sentence if convicted.
A detective said earlier the suspect walked 8 miles (13 kilometers) from his mother’s home to the Biloxi police station with the goal of killing a police officer.
Atkinson was arrested later when an off-duty Biloxi officer spotted him walking along a road in Wiggins. Police say Atkinson’s brother drove him there.
The brother and others face charges for allegedly aiding him.
Sign up for Daily Newsletters
Copyright © 2019 The Washington Times, LLC.
Please read our comment policy before commenting.


Class rex_var_dumper
Abstract
Package:
redaxo
\
core
Located at
redaxo/src/core/lib/var_dumper.php
Methods summary
public static
#
register
( )
public static
#
dump
(
mixed
$var
)


like business analytics, graphic design, Python, and more
in high-demand fields like IT, AI and cloud engineering.
from a leading university in business, computer science, and more
with on-demand training and development programs
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This card has supporting text below as a natural lead-in to additional content.
This is a longer card with supporting text below as a natural lead-in to additional content. This content is a little bit longer.
This card has supporting text below as a natural lead-in to additional content.
Some Interesting Features Which Make Us Hero Of Market
Architect & Engineer
We love that guy
Architect & Engineer
We love that guy
Architect & Engineer
We love that guy
Architect & Engineer
We love that guy


Two yachts were just destroyed in a fire
They were worth over $20 million
by Elizabeth Wolfe and Brandon Griggs, CNN(CNN) - Over $20 million worth of property went up in flames early Saturday in Florida, where two multimillion-dollar yachts were destroyed in a fire.

Fort Lauderdale Fire Rescue reported that nobody was injured.
Officials believe the blaze began on a 160-foot yacht named Lohengrin and spread to a neighboring 100-foot yacht named Reflections.
The estimated loss from the fire is more than $20 million, said Fort Lauderdale Fire Rescue.
Crews were still on the scene of the fire Sunday, working to remove scaffolding surrounding the boats and extinguish hot spots, according to a Twitter post by Fort Lauderdale Fire Rescue.
The yachts appear to have been under construction prior to the fire, indicated by scaffolding and tarps surrounding the boats.
After the hot spots have been snuffed out, Fort Lauderdale Fire Rescue said they will begin salvage efforts and an investigation into what caused the blaze.


--- layout: post title: Rails Recipes release candidate now available categories: - documentation - releases author: marcel published: true date: 2006-04-19 19:15:00.000000000 +01:00 ---
Dave Thomas has just announced that the first release-candidate of Rails Recipes is now available. What that means is that the book is essentially in its finished form. It’s had a great beta run, with a lot of praise and good feedback. Now that it’s been put through its passes, it’s pretty much ready for primetime, sporting 70 solutions to your real world programming challenges. If you’ve been holding off, now is a great time to get in on what is shaping up to be the de facto companion to Agile Web Development with Rails.
If you already bought the PDF, you can get the latest copy for free.
If you haven’t, what are you waiting for? Order it here.


Enter the courses you have taken using commas to seperate them
This tool uses the courses you have already taken to find new possible courses that you could take.
Please double-check all prerequisites, corequisites and exclusions with the course calander.
Courses shown are only suggestions.
This tool only works with courses at the St. George campus of the University of Toronto.


|
Support Class Library
A set of tools providing classes and utility
|
Unique by operation. More...
#include "uniqueBy.h"
Public Types | |
| using | iterator_type = scl::stream::details::iterator::OpStreamIterator< T > |
| using | value_type = typename iterator_type::value_type |
| using | payload_type = typename iterator_type::payload_type |
| using | parent_iterator_type = typename iterator_type::parent_iterator_type |
| using | parent_value_type = typename parent_iterator_type::value_type |
| using | parent_payload_type = typename parent_iterator_type::payload_type |
| using | parent_type = typename iterator_type::parent_type |
| using | key_type = U |
| The type of keys (unique by key) More... | |
| using | mapper_type = std::function< key_type(const value_type &)> |
| The function type that computes a key from a value. More... | |
| Public Types inherited from scl::stream::details::iterator::OpStreamIterator< T > | |
| using | parent_iterator_type = BaseStreamIterator< T > |
| Type alias for the "parent" iterator. More... | |
| using | parent_type = std::shared_ptr< parent_iterator_type > |
| Public Types inherited from scl::stream::details::iterator::BaseStreamIterator< T > | |
| using | iterator_type = StreamIterator< T > |
| Type alias for the iterator type. More... | |
| Public Types inherited from scl::stream::details::iterator::StreamIterator< T > | |
| using | payload_type = StreamIteratorPayload< T > |
| Type alias for the payload used. More... | |
| using | value_type = typename payload_type::value_type |
| Type alias for the data type manipulated. More... | |
Public Member Functions | |
| UniqueByOperator (parent_type p, mapper_type key) | |
| Construct an operator from its parent iterator and the mapper function. More... | |
| payload_type | next () override |
| Retrieve the next iterator payload. More... | |
| Public Member Functions inherited from scl::stream::details::iterator::OpStreamIterator< T > | |
| parent_type | parent () const |
| Getter for the parent iterator. More... | |
| OpStreamIterator (parent_type parent) | |
| Construct from a parent iterator. More... | |
| bool | hasNext () const override |
| Public Member Functions inherited from scl::stream::details::iterator::StreamIterator< T > | |
| virtual StlAdapter< T > | begin () |
| Retrieve a stl-like iterator for this stream iterator. More... | |
| virtual StlAdapter< T > | end () |
| Retrieve a stl-like iterator for the end of this stream iterator. More... | |
Protected Attributes | |
| mapper_type | key |
| the function that computes a key from a value More... | |
| std::unordered_set< key_type > | tagged |
| the state that keeps track of all encountered keys More... | |
| Protected Attributes inherited from scl::stream::details::iterator::OpStreamIterator< T > | |
| parent_type | parent_ |
| This iterator's parent. More... | |
Unique by operation.
| T | being the value type |
| U | being the type to use as key |
Definition at line 21 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::iterator_type = scl::stream::details::iterator::OpStreamIterator<T> |
Definition at line 23 of file uniqueBy.h.
| scl::stream::operators::details::UniqueByOperator< T, U >::key_type |
The type of keys (unique by key)
Definition at line 36 of file uniqueBy.h.
| scl::stream::operators::details::UniqueByOperator< T, U >::mapper_type |
The function type that computes a key from a value.
Definition at line 42 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::parent_iterator_type = typename iterator_type::parent_iterator_type |
Definition at line 27 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::parent_payload_type = typename parent_iterator_type::payload_type |
Definition at line 29 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::parent_type = typename iterator_type::parent_type |
Definition at line 30 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::parent_value_type = typename parent_iterator_type::value_type |
Definition at line 28 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::payload_type = typename iterator_type::payload_type |
Definition at line 25 of file uniqueBy.h.
| using scl::stream::operators::details::UniqueByOperator< T, U >::value_type = typename iterator_type::value_type |
Definition at line 24 of file uniqueBy.h.
|
inline |
Construct an operator from its parent iterator and the mapper function.
| p | being the parent iterator |
| key | being the key computation function |
Definition at line 49 of file uniqueBy.h.
|
inlineoverridevirtual |
Retrieve the next iterator payload.
count(id) => true if doesn't has value
Implements scl::stream::details::iterator::StreamIterator< T >.
Definition at line 52 of file uniqueBy.h.
|
protected |
the function that computes a key from a value
Definition at line 79 of file uniqueBy.h.
|
protected |
the state that keeps track of all encountered keys
Definition at line 85 of file uniqueBy.h.


It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.
It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout. The point of using Lorem Ipsum is that it has a more-or-less normal distribution of letters, as opposed to using 'Content here, content here', making it look like readable English.
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old
Contrary to popular belief, Lorem Ipsum is not simply random text. It has roots in a piece of classical Latin literature from 45 BC, making it over 2000 years old
Contrary to popular belief, Lorem Ipsum is not simply random text.


Awwation is an app for creating Prezi-like presentations in HTML5, so they can run in modern web browsers without Flash.
It is currently in alpha. Presentations can be viewed in the latest versions of Chrome, Firefox, Safari, and IE, the iOS browser, and Firefox Mobile.
See it in Fullscreen mode.


Weathermaster:
Piece of Life
Producing nuclear energy of Golems or administrators by using the energy of the Research Laboratory.
Warning!
Materials Administrator Wendy cannot be located.
Energy is currently influxing.
The system recommends terminating manual mode and changing to auto mode.
The energy currently connected to the Piece of Life is controlled in manual mode by Super Admin Chaos.
Check out the current energy status


Brian Keegan & Abram Handler
Week 14: April 12 - 16 2021
| Week | Topic | WA deadline |
| 14 | Customizing Vega plots | Apr 16 |
| 15 | Integrating data into Vega | Apr 23 |
| 16 | Advanced Vega visualizations | Apr 30 |
There is no final exam and no final project
Vega has a number of benefits!
pandas
for data transformationShow off in your capstone, final projects, portfolio, and jobs!
Monday
Inspect datasets on vega_datasets
GitHub page
Option 1: From the vega
GitHub page:
"data": {
"url": "https://vega.github.io/vega-datasets/data/cars.json"
},
Option 2: From a CDN:
"data": {
"url"<EMAIL_ADDRESS>},
Week 15 will cover loading your own data into Vega, but check the docs if you can't wait
Marks provide the basic shapes whose position, size, color, etc. can be encoded from data
Currently-supported marks include: area
, bar
, circle
, line
, point
, rect
, and text
This is not all mark types, but let's cover each of these with short examples
Area charts are useful for showing changes over time
This is the sp500.csv
dataset:
Vega spec doc:
{
"width": 300,
"height": 200,
"data": {
"url": "https://vega.github.io/vega-datasets/data/sp500.csv"
},
"mark": "area",
"encoding": {
"x": {
"timeUnit": "yearmonth",
"field": "date",
"axis": {
"format": "%Y"
}
},
"y": {
"field": "price",
"type": "quantitative"
}
}
};
We'll see more examples of working with timeUnit
There are more advanced capabilities like:
Bar charts are useful for histograms, changes over time, and comparing values
This is population_engineers_hurricanes.csv
dataset:
Vega spec doc:
{
"width": 600,
"height": 200,
"data": {
"url": "https://vega.github.io/vega-datasets/data/population_engineers_hurricanes.csv"
},
"mark": "bar",
"encoding": {
"x": {
"field": "state",
"type":"nominal",
"sort":"-y"
},
"y": {
"field": "population",
"type":"quantitative"
}
}
};
We'll see more examples of sorting data
There are more advanced capabilities like:
Points can be used for scatter, bubble, spatial plots
This is sp500-2000.csv
dataset:
Vega spec doc:
{
"width": 400,
"height": 300,
"data": {
"url": "https://vega.github.io/vega-datasets/data/sp500-2000.csv"
},
"mark": {
"type": "circle",
"size": 10,
},
"encoding": {
"x": {
"field": "volume",
"type": "quantitative"
},
"y": {
"field": "close",
"type": "quantitative"
},
"color": {
"field": "date",
"timeUnit": "year",
"type": "ordinal",
"scale": {
"scheme": "spectral"
}
}
}
};
We'll see more examples working with scale
Rects can be used to make any kind of rectangle but are best known for heatmaps and 2D histograms
This is population.json
dataset:
Vega spec doc:
{
"width": 400,
"height": 300,
"data": {
"url": "https://vega.github.io/vega-datasets/data/population.json"
},
"transform": [
{"filter": {
"field": "year",
"equal": 2000
}
},
{"calculate": "datum.sex == 2 ? 'Female' : 'Male'",
"as": "gender"
}
],
"mark": "rect",
"encoding": {
"x": {
"field": "age",
"type": "ordinal"
},
"y": {
"field": "gender",
"type": "nominal",
},
"color": {
"field": "people",
"type": "quantitative",
"scale": {
"scheme": "turbo",
}
}
}
};
We'll see more examples working with transform
Encoding map data fields to "channels" that correspond to position and mark properties
The most common position channels will be x
, y
, and color
encoding
field defines the x
, y
, and color
values for a mark
type that accepts those inputs
{
"mark": "line",
"encoding": {
"x": {
"field": "date",
"type": "temporal",
},
"y": {
"field": "close",
"type": "quantitative"
}
}
};
Other marks use different channels:
What kind of data is this?
There's 5 basic types
"quantitative"
for continuous numerical values
"ordinal"
for categorical values in some order
"nominal"
for categorical values in no order
"temporal"
for values of dates and times
"geojson"
for geographic shapes
The first three will be the most frequent you use
Wednesday
Due Monday, April 19 via URL submission to Canvas
The color of the mark can be customized
{
...
"mark": {
"type": "area",
"color": "red"
},
...
};
The background of an image defaults to white, but can be changed to another color
{
...
"background": "red",
"mark": "area",
...
};
The "view" is the background of a mark and can be customized
{
...
"view": {
"fill":"red"
},
"mark": "area",
...
};
The grid and the tick colors can also be customized
{
...
"encoding": {
"y": {
...
"axis": {
"tickColor": "red",
"gridColor": "red"
}
...
};
The size of an image is defined in pixels
{
...
"width": 300,
"height": 200,
"mark": "area",
...
};
Changing the size should re-scale the elements
{
...
"width": 800,
"height": 200,
"mark": "area",
...
};
The visualization can also be automatically scaled to the width of the div
element using "container"
{
...
"width": "container",
"height": 200,
"mark": "area",
...
};
It turns out Reveal.js breaks this but a style="mid-width:100px"
in the div
is a work-around
There are a number of web safe CSS fonts
{
...
"width": "container",
"height": 200,
"config": {
"font":"cursive"
},
...
};
Font color can also be customized by changing the axis
object within the encoding
...
"encoding": {
"y": {
"aggregate": "count",
"title": "Number of Cars"
"axis":{
"labelColor": "red",
}
...
Font size, alignment, padding, etc. can also be changed for axis
labels: see more in docs
...
"encoding": {
"y": {
"aggregate": "count",
"title": "Number of Cars",
"axis":{
"labelColor": "red",
"labelFontSize": 25
...
Font size, alignment, padding, etc. can also be changed for axis
titles: see more in docs
...
"encoding": {
"y": {
"aggregate": "count",
"title": "Number of Cars",
"axis":{
"titleColor": "red",
"titleFontSize": 25
...
Get as far as you can and submit whatever you have completed on Canvas
Solutions will be posted on the class GitHub
Monday
Use the "co2-concentration.csv" data to make a line or area plot:
Wednesday
Use the "crimea.json" data to make a bar plot:
Make the color of the bars "orange" and the font size for the x and y labels 15
Wednesday
Use the "penguins.json" data to make a scatterplot:
Make a wide plot and use "Times New Roman" as font
See this example for guidance.
Friday
Due Monday, April 19 via URL submission to Canvas
The visualizations we've done to date have involved a single "view"
Vega can also "compose" multiple views together for comparing and overlaying data
These are known as "trellis", "lattice", "grid", "panel", or "facet" charts
Facets allows us to break up a visualization with multiple categories into separate visualizations
Here's an example of a histogram of the cars dataset's horsepower by country of origin
Code for the previous visualization
"encoding": {
"x": {
"field": "Horsepower",
"type": "quantitative",
"bin": {
"maxbins": 15
}
},
"y": {
"aggregate": "count",
"title": "Number of Cars",
"type": "quantitative"
},
"color": {
"field": "Origin",
"type": "nominal"
}
}
We could make this a bit clearer by having the histogram bars side-by-side
This is our first example of faceting, each origin gets its own view
Code for the previous visualization
"encoding": {
"x": {
"field": "Horsepower",
"type": "quantitative",
"bin": {
"maxbins": 15
},
"spacing": 10
},
"y": {
"aggregate": "count",
"title": "Number of Cars",
"type": "quantitative"
},
"column": {
"field": "Origin",
"type": "nominal"
}
We could make this a bit clearer by having the histogram bars side-by-side
This is the same data, but each histogram bin gets its own view to create a grouped bar plot
Code for the previous visualization
"encoding": {
"x": {
"field": "Origin",
"type": "nominal"
},
"y": {
"aggregate": "count",
"title": "Number of Cars",
"type": "quantitative"
},
"column": {
"field": "Horsepower",
"type": "quantitative",
"bin": {
"maxbins": 15
},
"spacing": 10
},
"color": {
"field": "Origin",
"type": "nominal"
}
}
Layering allow us to stack multiple views together
This is helpful for annotating marks with text
mark
objects go within a layer
object
Code for the previous visualization
"encoding": {
"y": {
"field": "Origin",
"type": "nominal"
},
"x": {
"aggregate": "count",
"title": "Number of Cars",
"type": "quantitative"
}
},
"layer":[{
"mark": "bar"
},{
"mark": {
"type": "text",
"align": "left",
"baseline": "middle",
"dx": 3
},
"encoding": {
"text": {
"aggregate": "count",
"type": "quantitative"
}
}
}],
We can layer the same marks for different data together
Code for the previous visualization
"layer":[{
"mark": "line",
"encoding":{
"x":{
"field":"date",
"type":"temporal"
},
"y":{
"field":"wounds",
"type":"quantitative"
},
"color": {"value":"red"}
}
},{
"mark": "line",
"encoding":{
"x":{
"field":"date",
"type":"temporal"
},
"y":{
"field":"disease",
"type":"quantitative"
},
"color": {"value":"green"}
}
},{
"mark": "line",
"encoding":{
"x":{
"field":"date",
"type":"temporal"
},
"y":{
"field":"other",
"type":"quantitative"
},
"color": {"value":"grey"}
}
}]
Concats let us combine different views together
Use a hconcat
or vconcat
to package different marks+encodings
"hconcat":[{
"data": {
"url": "https://vega.github.io/vega-datasets/data/crimea.json"
},
"mark": "bar",
"encoding":{
"x":{
"field":"date",
"type":"temporal"
},
"y":{
"field":"wounds",
"type":"quantitative"
},
"color": {"value":"red"}
}
},{
"data": {
"url": "https://vega.github.io/vega-datasets/data/sp500.csv"
},
"mark": "area",
"encoding":{
"x":{
"field":"date",
"type":"temporal"
},
"y":{
"field":"price",
"type":"quantitative"
},
"color": {"value":"green"}
}
}]
Finally, the biggest pay-off for using a web-based visualization framework!
Interactivity is always going to be more complex than static representations, but Vega has some powerful capabilities
Definitely pay close attention to the examples
Tooltips provide data about the marks on mouseovers
Taken from this example
There is a lot going on, so it's helpful to use our data science mindset (growth+practices+hacking) to experiment and see how we can break, fix, and extend this
Let's break down what this is doing chunk-by-chunk: This encoding
object defines the channels to be used by the line mark and implements the basic hover interactivity
Experiment by changing values and commenting
"encoding": {
"x": {
"field": "date",
"type": "temporal",
"title": "date"
},
"y": {
"field": "price",
"type": "quantitative",
"title": "price"
},
"color": {
"condition": {
"param": "hover",
"field":"symbol",
"type":"nominal",
"legend": null
},
"value": "grey"
},
"opacity": {
"condition": {
"param": "hover",
"value": 1
},
"value": 0.2
}
},
The layer
object has three entries
The first defines the default highlighted line
"layer": [{
"description": "transparent layer to make it easier to trigger selection",
"params": [{
"name": "hover",
"value": [{"symbol": "GOOG"}],
"select": {
"type": "point",
"fields": ["symbol"],
"on": "mouseover"
}
}],
"mark": {
"type": "line",
"strokeWidth": 10,
"stroke": "transparent"
}
}, {
The layer
object has three entries
The second defines the line marks and the third defines the text marks for the ticker labels
"layer": [{
[...]
}, {
"mark": "line"
}, {
"encoding": {
"x": {
"aggregate": "max",
"field": "date"
},
"y": {
"aggregate": {
"argmax": "date"
},
"field": "price"
}
},
"layer": [{
"mark": {
"type": "circle"
}
}, {
"mark": {
"type": "text",
"align": "left",
"dx": 4
},
"encoding": {
"text": {
"field":"symbol",
"type": "nominal"
}
}
}]
}],
Hack into the stocks.csv interactive visualization to try to make some of these changes:
Experiment with making changes to this visualization


closed
by Eliot Jordan at 2021-03-01 18:39:50.referenced
by Eliot Jordan at 2021-03-01 18:39:50.merged
by Eliot Jordan at 2021-03-01 18:39:50.closed
by Eliot Jordan at 2021-03-01 18:39:50.head_ref_deleted
by Eliot Jordan at 2021-03-01 18:39:51.referenced
by Eliot Jordan at 2021-03-01 21:00:17.merged
by Eliot Jordan at 2021-03-01 21:00:17.closed
by Eliot Jordan at 2021-03-01 21:00:17.head_ref_deleted
by Eliot Jordan at 2021-03-01 21:00:18.assigned
by Eliot Jordan at 2021-03-01 19:25:33.closed
by Trey Pendragon at 2021-03-01 21:31:22.deployed
by Trey Pendragon at 2021-03-01 21:02:11.head_ref_force_pushed
by Eliot Jordan at 2021-03-01 21:05:36.referenced
by Trey Pendragon at 2021-03-01 21:31:22.merged
by Trey Pendragon at 2021-03-01 21:31:22.closed
by Trey Pendragon at 2021-03-01 21:31:22.head_ref_deleted
by Trey Pendragon at 2021-03-01 21:31:23.labeled
by Kim Leaman at 2021-03-02 02:22:13.labeled
by Kim Leaman at 2021-03-02 02:22:13.mentioned
by Roel Munoz at 2021-03-02 02:22:13.subscribed
by Roel Munoz at 2021-03-02 02:22:13.renamed
by Kevin Reiss at 2021-03-01 15:24:21.renamed
by Kevin Reiss at 2021-03-01 15:23:49.referenced
by Kevin Reiss at 2021-03-01 16:09:50.merged
by Kevin Reiss at 2021-03-01 16:09:50.closed
by Kevin Reiss at 2021-03-01 16:09:50.head_ref_deleted
by Kevin Reiss at 2021-03-01 16:09:53.Some notes regarding the caching of Figgy data during the indexing: https://docs.google.com/document/d/1Y_L13hcVnabcUHtiIpEkISFvHJ8zRzeOxBAlI2ErmBE/edit#
assigned
by Hector Correa at 2021-03-01 21:56:23.moved_columns_in_project
by Trey Pendragon at 2021-03-01 19:06:44.unassigned
by Trey Pendragon at 2021-03-01 19:06:50.referenced
by James R. Griffin III at 2021-03-01 14:59:59.merged
by James R. Griffin III at 2021-03-01 14:59:59.closed
by James R. Griffin III at 2021-03-01 14:59:59.head_ref_deleted
by James R. Griffin III at 2021-03-01 15:00:00.review_request_removed
by Kate Lynch at 2021-03-01 18:40:11.review_requested
by Kate Lynch at 2021-03-01 18:40:17.head_ref_force_pushed
by Francis Kayiwa at 2021-03-01 12:58:55.head_ref_force_pushed
by Francis Kayiwa at 2021-03-01 21:08:28.referenced
by None at 2021-03-01 22:23:01.merged
by None at 2021-03-01 22:23:01.closed
by None at 2021-03-01 22:23:01.head_ref_deleted
by None at 2021-03-01 22:23:02.referenced
by Trey Pendragon at 2021-03-01 21:32:01.merged
by Trey Pendragon at 2021-03-01 21:32:01.closed
by Trey Pendragon at 2021-03-01 21:32:01.closed
by Trey Pendragon at 2021-03-01 21:32:01.head_ref_force_pushed
by Bess Sadler at 2021-03-01 18:55:55.ready_for_review
by Bess Sadler at 2021-03-01 18:56:16.referenced
by Trey Pendragon at 2021-03-01 19:02:25.merged
by Trey Pendragon at 2021-03-01 19:02:25.closed
by Trey Pendragon at 2021-03-01 19:02:25.head_ref_deleted
by Trey Pendragon at 2021-03-01 19:02:25.closed
by Bess Sadler at 2021-03-01 19:02:45.assigned
by Bess Sadler at 2021-03-01 19:03:33.@sdellis @bess Just need rubocop run, I think.
deployed
by Trey Pendragon at 2021-03-01 14:55:35.mentioned
by Bess Sadler at 2021-03-01 20:58:16.subscribed
by Bess Sadler at 2021-03-01 20:58:16.mentioned
by Shaun Ellis at 2021-03-01 20:58:16.subscribed
by Shaun Ellis at 2021-03-01 20:58:16.referenced
by Bess Sadler at 2021-03-01 21:38:15.merged
by Bess Sadler at 2021-03-01 21:38:15.closed
by Bess Sadler at 2021-03-01 21:38:15.head_ref_deleted
by Bess Sadler at 2021-03-01 21:38:16.@ccleeton Please take a look at https://pulfalight-staging.princeton.edu/ when you get a chance. I'm also pasting a screenshot. What is the process for getting sign off on this? Thanks!
Looks good to me. Let me see if I can get approval on this quickly.
@bess Approved from Sara and Alexis. This can be pushed to the beta site whenever you can.
Great, thank you, @ccleeton !
Merged and deployed to beta site!
mentioned
by Christa Cleeton at 2021-03-01 15:00:11.subscribed
by Christa Cleeton at 2021-03-01 15:00:11.assigned
by Bess Sadler at 2021-03-01 15:33:34.mentioned
by Bess Sadler at 2021-03-01 16:13:07.subscribed
by Bess Sadler at 2021-03-01 16:13:07.mentioned
by Christa Cleeton at 2021-03-01 19:05:11.subscribed
by Christa Cleeton at 2021-03-01 19:05:11.referenced
by Bess Sadler at 2021-03-01 21:38:16.closed
by Bess Sadler at 2021-03-01 21:54:11.labeled
by Shaun Ellis at 2021-03-01 22:10:59.labeled
by Shaun Ellis at 2021-03-01 22:10:59.assigned
by Shaun Ellis at 2021-03-01 22:10:59.@faithc @ccleeton This is a pretty big thing, a new feature, and I'm not sure we have it fully scoped out what this looks like. Can we push this out of blocking release?
Just so you're aware, I had actually initially requested this as an l-support ticket, per a suggestion from Systems staff, in August. It fell by the wayside there so it was recommended that I include it here. This generation currently happens now with EADs in SVN as a way to increase discoverability for researchers using the catalog. I think we can remove it as blocking release, though it's definitely a high priority issue.
@faithc I've removed it from blocking release, moved it to the backlog, and marked it as a priority for when we look at MVP tickets.
mentioned
by None at 2021-03-01 22:16:35.subscribed
by None at 2021-03-01 22:16:35.mentioned
by Christa Cleeton at 2021-03-01 22:16:35.subscribed
by Christa Cleeton at 2021-03-01 22:16:35.unlabeled
by Trey Pendragon at 2021-03-01 22:35:36.mentioned
by None at 2021-03-01 22:35:59.subscribed
by None at 2021-03-01 22:35:59.Did some quick research into this before heading off to another ticket: Looks like the physloc_code is hsvm
, which we don't have mapped to a physical location in our indexing. According to PULFA, that should map to the RBSC site.
I can't figure out how this works in the old site. Maybe you can help @sdellis ?
https://findingaids.princeton.edu/collections/C0187/c00003 definitely requests a Site of RBSC, but the only physloc code is hsvm. That's populated from here:
However, that function it calls pulls from
via
There's no RBSC there for hsvm. I don't see any logic that like...sets a default value or anything.
I can make everything that's not mapped fall back to the RBSC site, I'd just like evidence that's the right behavior.
labeled
by Christa Cleeton at 2021-03-01 16:18:18.milestoned
by Christa Cleeton at 2021-03-01 16:18:18.mentioned
by Shaun Ellis at 2021-03-01 22:59:50.subscribed
by Shaun Ellis at 2021-03-01 22:59:50.closed
by Trey Pendragon at 2021-03-01 21:32:12.Coverage remained the same at 100.0% when pulling 64fb8d5910ac43ea6d514ee7b98f9149e7272888 on 913-all-subjects into 9f521df92172c0ddb4c9e7fad237488347351bbb on main.
head_ref_force_pushed
by Eliot Jordan at 2021-03-01 20:02:35.head_ref_force_pushed
by Eliot Jordan at 2021-03-01 20:04:23.referenced
by Trey Pendragon at 2021-03-01 21:32:12.merged
by Trey Pendragon at 2021-03-01 21:32:12.closed
by Trey Pendragon at 2021-03-01 21:32:12.head_ref_deleted
by Trey Pendragon at 2021-03-01 21:32:13.head_ref_force_pushed
by Axa Mei Liauw at 2021-03-01 17:29:04.Closed by #75
closed
by Axa Mei Liauw at 2021-03-01 17:32:34.


Want to encrypt your NC homework? Here's how!
Enter the last four digit of your RIN
Upload a image you want to encrypt
Encrypted Image


What's New at Bean's Beans
Wings Over AmericaTry our famous baked beans alongside of a stack of spicy Buffalo Wings $14.95
Baby Back BeansSucculent baby back ribs teamed up with a bowl of our spiciest flavored beans $12.95
Bean BombsA tasty, flaky, buttery croissant stuffed with seasoned beef and our famous beans $11.95
Rice 'n Bean's BeansA local favorite. Spanish style rice with a heaping portion of Bean's beans on top $10.95
Bean Curd Ice CreamA double scoop of our new, creamy Bean Curd Ice Cream. Special –
Free with any entree!


RT @1337807: We have a base class, for the only reason we should really have a base class: to model a military base with lasers. @erniemill…
11/10/2013, 7:50:44 AM
Favs: 0
Retweets: 0
link--- layout: tweet ---
RT @1337807: We have a base class, for the only reason we should really have a base class: to model a military base with lasers. @erniemill…
11/10/2013, 7:50:44 AM
Favs: 0
Retweets: 0
link


New pluggable console commands.
When you start up the microservice, you'll now see the following:
Running class 'RestMicroservice' using config file 'examples.cfg'.
Server started on port 10000
List of available commands:
exit -- Shut down service
restart -- Restarts service
help -- Commands help
echo -- Echo command
> help help
NAME
help -- Commands help
SYNOPSIS
help [command]
DESCRIPTION
When called without arguments, prints the descriptions of all available commands.
Can also be called with one or more arguments to get detailed information on a command.
EXAMPLES
List all commands:
> help
List help on the help command:
> help help
>
Commands are pluggable and extensible through the config file.
#=======================================================================================================================
# Console settings
#=======================================================================================================================
[Console]
enabled = true
# List of available console commands.
# These are classes that implements ConsoleCommand that allow you to submit commands to the microservice via
# the console.
# When listed here, the implementations must provide a no-arg constructor.
# They can also be provided dynamically by overriding the Microservice.createConsoleCommands() method.
commands =
org.apache.juneau.microservice.console.ExitCommand,
org.apache.juneau.microservice.console.RestartCommand,
org.apache.juneau.microservice.console.HelpCommand
- New classes:
- {@link oaj.microservice.console.ConsoleCommand}
- {@link oaj.microservice.console.ExitCommand}
- {@link oaj.microservice.console.RestartCommand}
- {@link oaj.microservice.console.HelpCommand}
- New methods on {@link oaj.microservice.Microservice}
- {@link oaj.microservice.Microservice#startConsole() startConsole()}
createConsoleCommands()
- {@link oaj.microservice.Microservice#getConsoleReader() getConsoleReader()}
- {@link oaj.microservice.Microservice#getConsoleWriter() getConsoleWriter()}


I'm a front end ninja and a freelancer! I love programming, football and science.
Featured Work
Dalviroo
A real time app for chefs
Pixel Art Grid
A canvas for creating
pixel art
U3D converter
An app for converting u3d files to
3dpdf files


You can’t throw an iPhone in 2018 without hitting an anxious person. And that person would probably be on her iPhone, tweeting about how Twitter is giving her anxiety. The irony of our inability to disconnect from the very connections causing us mental anguish is undeniable, but I believe there exists, amid the online cacophony of data snoops and catfish and capitalistic ploys, an antidote to the dumpster fire, and it doesn’t even involve putting our phones down. You may have heard of it: It’s a little thing I like to call authenticity. Below, five ways to get started today.
You can’t throw an iPhone in 2018 without hitting an anxious person. And that person would probably be on her iPhone, tweeting about how Twitter is giving her anxiety. The irony of our inability to disconnect from the very connections causing us mental anguish is undeniable, but I believe there exists, amid the online cacophony of data snoops and catfish and capitalistic ploys, an antidote to the dumpster fire, and it doesn’t even involve putting our phones down. You may have heard of it: It’s a little thing I like to call authenticity. Below, five ways to get started today.
You can’t throw an iPhone in 2018 without hitting an anxious person. And that person would probably be on her iPhone, tweeting about how Twitter is giving her anxiety. The irony of our inability to disconnect from the very connections causing us mental anguish is undeniable, but I believe there exists, amid the online cacophony of data snoops and catfish and capitalistic ploys, an antidote to the dumpster fire, and it doesn’t even involve putting our phones down. You may have heard of it: It’s a little thing I like to call authenticity. Below, five ways to get started today.


Temperature current: 78.78, Average: 80, Target: {{target_temp}} Heat source is on
Settings Auto Refresh History


Some of the most commonly searched for 3d models. Made just for you
We have that super cool kid vibe you are looking for.
Every object is uniquely made just for this pack.
75+ Low poly common items
Some models just for you
Yes! Contact us and we'll see what we can do.
You can use them as a part of any commercial project. Please don't sell them as is, that's not very nice.
Yes, we are planning on making this pack have 100 models total.
We'll send you a random low poly object from our pack that we think is cool. We won't sell your email.
| Included | Included | Included |
|---|---|---|
| apple | nunchucks | toilet paper |
| orange | ice cream scoop | hammer |
| tooth brush | pasta pot | wrench (new one coming soon) |
| tooth paste | pan | recycle bin |
| trophy | banana | bowl |
| saw | banana bunch | plate |
| baseball bat | plunger | candles (4 types) |
| wall painting | gaming console | fork |
| TV | video game controller | spray bottle (2) |
| cabbage | lamp | coffee pot |
| salt shaker | light bulb | book shelf |
| pepper shaker | broom | book |
| wine glass | screwdrivers (2 types) | hosta indoor plant |
| desk fan | wood spoon | remote control |
| AA baterries | bubble level | backpack |
| ants | mug | pot planter |
| baseball cap | 6 pack | bottle of beer |
| soda can | spatula | smart phone |
| Lava lamp | golf club | Oculus Sensor |
| walkie talkie | thumb drive | golf T (with & without ball) |
| monitor | key | coins (2 types) |
| phone | paint brush | little brushes |
| binoculars | hour glass | shoes |
| wine opener | head phones | hatchet |
| grapes | champagne glass | cane |
| shovel | walker | random others thrown in |


Start Your File Sharing Adventure
With poke hub, you can upload your files, download your files, and share your files. All features that Google Drive has, we have it. All things you can find in the Drop Box, we have it!
If you are crazy about file sharing, join us!
If you are crazy about Pokemon Go, join us!


Make sure the error is thrown even if caught. Inform on the user that the error was caught and rethrown from somewhere else.


It offers functions for splitting, parsing, tokenizing and creating a vocabulary for big text data files. Moreover, it includes functions for building a document-term matrix and extracting information from those (term-associations, most frequent terms). It also embodies functions for calculating token statistics (collocations, look-up tables, string dissimilarities) and functions to work with sparse matrices. Lastly, it includes functions for Word Vector Representations (i.e. 'GloVe', 'fasttext') and incorporates functions for the calculation of (pairwise) text document dissimilarities. The source code is based on 'C++11' and exported in R through the 'Rcpp', 'RcppArmadillo' and 'BH' packages.
| Version: | 1.1.2 |
| Depends: | R (≥ 3.2.3), Matrix |
| Imports: | Rcpp (≥ 0.12.10), R6, data.table, utils |
| LinkingTo: | Rcpp, RcppArmadillo (≥ 0.7.8), BH |
| Suggests: | testthat, covr, knitr, rmarkdown |
| Published: | 2018-07-25 |
| Author: | Lampros Mouselimis |
| Maintainer: | Lampros Mouselimis <mouselimislampros at gmail.com> |
| BugReports: | https://github.com/mlampros/textTinyR/issues |
| License: | GPL-3 |
| Copyright: | inst/COPYRIGHTS textTinyR copyright details |
| URL: | https://github.com/mlampros/textTinyR |
| NeedsCompilation: | yes |
| SystemRequirements: | The package requires a C++11 compiler |
| Materials: | README NEWS |
| CRAN checks: | textTinyR results |
| Reference manual: | textTinyR.pdf |
| Vignettes: |
Functionality of the textTinyR package Word vectors - doc2vec - text clustering |
| Package source: | textTinyR_1.1.2.tar.gz |
| Windows binaries: | r-devel: textTinyR_1.1.2.zip, r-release: textTinyR_1.1.2.zip, r-oldrel: textTinyR_1.1.2.zip |
| OS X binaries: | r-release: textTinyR_1.1.2.tgz, r-oldrel: textTinyR_1.1.2.tgz |
| Old sources: | textTinyR archive |
Please use the canonical form https://CRAN.R-project.org/package=textTinyR to link to this page.


[gecode-users] Custom branching and Custom Propagator
Christian Schulte
cschulte at kth.se
Sun Apr 6 21:57:56 CEST 2008
Did you execute status()? Propagation in Gecode is lazy, only if you execute
status() the propagators will actually run.
Christian
--
Christian Schulte, www.ict.kth.se/~cschulte/
From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
Of Debdeep Banerjee
Sent: Saturday, April 05, 2008 3:19 PM
To: Guido Tack
Cc: users at gecode.org
Subject: Re: [gecode-users] Custom branching and Custom Propagator
Guido Tack wrote:
Debdeep Banerjee wrote:
Hi,
I am using my own propagator and branching. But when I am using my
branching ( via post() method) the propagator is not working. But if I
use the gecode branching method ( branch() ) then the propagator works.
I have checked the custom branching.....the methods ( status,
description , commit ) are called from the DFS Search engine, but the
propagator did not propagate.
What would be the reason ?
Perhaps your propagator does not respond to the modification events
generated by your custom branching, but to those from the standard
branchings. E.g., the standard INT_VAL_MIN branching always assigns a
variable on the left branch, and that triggers propagators registered for
the PC_INT_VAL propagation condition. If you registered for PC_INT_VAL, but
your branching does not assign variables (it might only partition the
domain, for instance), then your propagator won't be. That's just a guess,
of course.
Guido
Hi,
I still couldn't able to find out the problem. So I will give some details
of my code.
My propagator looks like the following
CSPPropagator::CSPPropagator(Gecode::Space* home, ViewIntArray& arr)
: Gecode::NaryPropagator< Gecode::Int::IntView,
Gecode::Int::PC_INT_VAL>(home, arr)
Where ==> typedef Gecode::ViewArray<Gecode::Int::IntView> ViewIntArray;
My Branching looks like
CSPBranch::CSPBranch(Gecode::Space* home, ViewIntArray& xv)
: Gecode::Branching(home)
, x(xv)
, pos(-1)
, val(-1)
{ }
The commit method looks like
Gecode::ExecStatus CSPBranch::commit(Gecode::Space* home, const
Gecode::BranchingDesc* b, unsigned int a)
{
const Gecode::PosValDesc<int,2>* desc = static_cast <const
Gecode::PosValDesc<int,2>* > (b);
if (a)
return Gecode::me_failed(x[desc->pos()].nq(home, desc->val())) ?
Gecode::ES_FAILED : Gecode::ES_OK;
else
return Gecode::me_failed(x[desc->pos()].eq(home, desc->val())) ?
Gecode::ES_FAILED : Gecode::ES_OK;
}
I have a class called " CSPInstance" which extends the Gecode::Space class.
The code inside the constructor has the following line in the respective
order
Gecode::IntVarArgs arg_array(transitions); [ transitions == >
Gecode::IntVarArray ]
Gecode::ViewArray<Gecode::Int::IntView> trans_array(this, arg_array);
CSPPropagator::post(this, trans_array);
CSPBranch::post(this, trans_array);
After commit, the propagators are not propagating.
I have attached the three main files with this email. Any help will be
greatly appreciated.
--
Debdeep Banerjee
PhD Candidate
CSL/RSISE/NICTA
Australian National University
Email: debdeep.banerjee at rsise.anu.edu.au
Web:http://rsise.anu.edu.au/~banerjed
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20080406/a713d3af/attachment.htm>
More information about the gecode-users
mailing list


TMDB
public class TMDB
TMDb API wrapper
Comprised of the following sub-components:
- Movies
- TV
- People
- Common
- Utility
-
TMDb API Key, to retrieve a key follow instructions https://developers.themoviedb.org/3/getting-started/authentication Override this value or add TMDB_API_KEY to Info.plist
Declaration
Swift
public static var apiKey: String
-
ISO 639-1 value to display translated data for the fields that support it https://developers.themoviedb.org/3/getting-started/languages
Declaration
Swift
public static var lang: TMDB.Common.ISO6391
-
Represents data structures and methods for TV related API’s
Refer for details:
- https://developers.themoviedb.org/3/tv
- https://developers.themoviedb.org/3/tv-seasons
- https://developers.themoviedb.org/3/tv-episodes
Declaration
Swift
public enum TV
-
Represents data structures and methods for Movie related API’s
Refer https://developers.themoviedb.org/3/movies for details
See moreDeclaration
Swift
public enum Movies
-
Represents data structures and methods for People related API’s
Refer https://developers.themoviedb.org/3/people for details
See moreDeclaration
Swift
public enum People
-
Undocumented
Declaration
Swift
public typealias ResultCallback<Value> = (TMDB.Utility.Result<Value>) -> Void


Documentation
Everything you need to create a website with Bulma
To build a grid, just:
columns
column
Each column will have an equal width, no matter the number of columns.
First column
Second column
Third column
Fourth column


RHMAP Platform proxy
RHMAP Platform proxy main page.
You should not see this page. Follow documentation to configure proper app redirects.


Hi,
I stumbled onto you guys for I want to monitor those two things, temperature and humidity of my Humidor. I want to see a graph (locally is fine) and it would be perfect if I could get an email for example if humidity is too low.
Now I have put two things in my Basket, if you guys could tell me if with that Hardware I can archieve what i want. preferably without too much hassle :-)
emonTH - Temperature & Humidity Node
Case: emonTH Case
Sensor: DTH22 - Temperature & Humdity
Radio: 868Mhz RFM12B (Europe Only)
AND
emonBase - Raspberry Pi web-connected base-station
RaspberryPi RF add-on: RFM12Pi - 868MHz
Raspberry Pi: Raspberry Pi Model B+
Pre-build SD Card: Pre-Loaded microSD Card
Enclosure: Raspberry Pi Model B+ Case
http://shop.openenergymonitor.com/emonth-temperature-humidity-node/
http://shop.openenergymonitor.com/emonbase-raspberry-pi-web-connected-ba...
Is that what I need ? I work with linux since 1993 and have another raspberry for XBMC, but im totally new to this monitoring/sensors stuff.
Thanks alot for helping !
Chris
Re: Monitoring Temp and Humidty of my Humidor - those the right parts ?
If all you want to measure is the temperature and humidity then that should work.
The monitor is just a daemon process that records the data from the module(s) - temp/humidity. You can have more than one monitor - theres a limit of 32 i think.
Majority of people here are tracking their electricity use - with http://shop.openenergymonitor.com/emontx-v3-electricity-monitoring-transmitter-unit/
All the data gets dumped into various databases (in memory / file / mysql) depending on the data type(s)
give it 10 mins and you'll know it all ;-)


{% extends "pulse_search/base.html" %} {% load static %} {% block content %}
please sign in to begin a search or learn more about our service on our about pulse page.


§560:3-310 Informal appointment proceedings; notice requirements. The moving party must give notice as described by section 560:1-401 of the moving party's intention to seek an appointment informally:
(1) To any person demanding it pursuant to section 560:3-204; and
(2) To any person having a prior or equal right to appointment not waived in writing and filed with the court.
No other notice of an informal appointment proceeding is required. [L 1996, c 288, pt of §1]


Position 14° 40'48"N, 060° 52'37"W (Bay entrance)
This is a very sheltered harbour. The entrance is well marked.
Beware of the coral in the inner part of the harbour.
There is a small marina in the south west corner for fishing boats where it is possible to get jerry jugs of fuel.
There is a market and some provisioning is possible.
Last updated March 2016.


According To Investopedia
The back office is the portion of a company made up of administration and support personnel who are not client-facing. People who hold jobs in back office positions carry out functions such as settlements, clearances, record maintenance, regulatory compliance, accounting and IT services. A financial services company, for example, is logically broken up into three parts: the front office makes up sales, marketing and customer support personnel; the middle office manages risk; and the back office provides administrative and support services.
Import Both CSV Files
I'd love your feedback!
Swing by for a cup of , or leave me a note:


E-commerce lead to intensified price competition, as it increases consumers' ability to gather information about products and prices.
Responsive Web Design makes your web page look good on all devices (desktops, tablets, and phones) with optimal viewing and interaction experience.
It deals specifically with security of websites, web applications and web services. At a high level, Web application security draws on the principles of application security but applies them specifically to Internet and Web systems.
Started out in 2011 ending, we were a group of three, trying to make something big. In the cacophony of discussions, arguments, fights, we ended up with an out of the box idea!
Starting out with the guidance of our faculty and seniors, we were able to receive a seed funding of 1000$ we could set up the base-infrastructure independently.
We branched out to more than 100 cities, bringing the clientele count to 500. Our dedication and effort was well recognised by out clients!
We are starting the phase 2 of our journey now. Come join us to make build a better Web.
Lead Designer
Lead Marketer
Lead Developer
As soon as you step outside that door, you'll start feeling better.   Remember?


A story of friendship. A story of youth. A story of growth and whatnot. A story without a storyline. Is it necessary for a story to have a message to be considered a good one? Maybe. Perhaps. Most likely. At least a concept. Or an idea. In the search for the answer to this question four young students found answer to some other unrelated but related question: no, thirty minutes is not enough. Enjoy this film, a result of thirty minute of group anxiety, awkward zoom discussions, and 'should I drop this class right now?' type of contemplations. Hope you like it! (if not, then oh well, we didn't have the time).


{#- Hi there! You might be interested in https://pradyunsg.me/furo/customisation/sidebar/ Although if you're reading this, chances are that you're either familiar enough with Sphinx that you know what you're doing, or landed here from that documentation page. Hope your day's going well. :) -#} {% block brand_content %} {%- if logo_url %} {%- endif %} {%- if theme_light_logo and theme_dark_logo %} {%- endif %} {#- {% if not theme_sidebar_hide_name %} {%- endif %} -#} {% endblock brand_content %}


Free images were downloaded from Unsplash.com
This web page shows pictures of wild african fauna.
On this page we practise even more!
Collection of recipes to cook outstandingly delicious meals. Should be enjoyable to anyone with taste buds.
other text


The btOverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the btBroadphaseInterface broadphases.
More...
#include <btOverlappingPairCache.h>
|
| virtual | ~btOverlappingPairCache () |
| |
| virtual btBroadphasePair * | getOverlappingPairArrayPtr ()=0 |
| |
| virtual const btBroadphasePair * | getOverlappingPairArrayPtr () const =0 |
| |
| virtual btBroadphasePairArray & | getOverlappingPairArray ()=0 |
| |
| virtual void | cleanOverlappingPair (btBroadphasePair &pair, btDispatcher *dispatcher)=0 |
| |
| virtual int | getNumOverlappingPairs () const =0 |
| |
| virtual void | cleanProxyFromPairs (btBroadphaseProxy *proxy, btDispatcher *dispatcher)=0 |
| |
| virtual void | setOverlapFilterCallback (btOverlapFilterCallback *callback)=0 |
| |
| virtual void | processAllOverlappingPairs (btOverlapCallback *, btDispatcher *dispatcher)=0 |
| |
| virtual void | processAllOverlappingPairs (btOverlapCallback *callback, btDispatcher *dispatcher, const struct btDispatcherInfo &dispatchInfo) |
| |
| virtual btBroadphasePair * | findPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)=0 |
| |
| virtual bool | hasDeferredRemoval ()=0 |
| |
| virtual void | setInternalGhostPairCallback (btOverlappingPairCallback *ghostPairCallback)=0 |
| |
| virtual void | sortOverlappingPairs (btDispatcher *dispatcher)=0 |
| |
| virtual | ~btOverlappingPairCallback () |
| |
| virtual btBroadphasePair * | addOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1)=0 |
| |
| virtual void * | removeOverlappingPair (btBroadphaseProxy *proxy0, btBroadphaseProxy *proxy1, btDispatcher *dispatcher)=0 |
| |
| virtual void | removeOverlappingPairsContainingProxy (btBroadphaseProxy *proxy0, btDispatcher *dispatcher)=0 |
| |
The btOverlappingPairCache provides an interface for overlapping pair management (add, remove, storage), used by the btBroadphaseInterface broadphases.
The btHashedOverlappingPairCache and btSortedOverlappingPairCache classes are two implementations.
Definition at line 50 of file btOverlappingPairCache.h.
◆ ~btOverlappingPairCache()
| virtual btOverlappingPairCache::~btOverlappingPairCache |
( |
| ) |
|
|
inlinevirtual |
◆ cleanOverlappingPair()
◆ cleanProxyFromPairs()
◆ findPair()
◆ getNumOverlappingPairs()
| virtual int btOverlappingPairCache::getNumOverlappingPairs |
( |
| ) |
const |
|
pure virtual |
◆ getOverlappingPairArray()
◆ getOverlappingPairArrayPtr() [1/2]
| virtual btBroadphasePair* btOverlappingPairCache::getOverlappingPairArrayPtr |
( |
| ) |
|
|
pure virtual |
◆ getOverlappingPairArrayPtr() [2/2]
| virtual const btBroadphasePair* btOverlappingPairCache::getOverlappingPairArrayPtr |
( |
| ) |
const |
|
pure virtual |
◆ hasDeferredRemoval()
| virtual bool btOverlappingPairCache::hasDeferredRemoval |
( |
| ) |
|
|
pure virtual |
◆ processAllOverlappingPairs() [1/2]
◆ processAllOverlappingPairs() [2/2]
◆ setInternalGhostPairCallback()
◆ setOverlapFilterCallback()
◆ sortOverlappingPairs()
| virtual void btOverlappingPairCache::sortOverlappingPairs |
( |
btDispatcher * |
dispatcher | ) |
|
|
pure virtual |
The documentation for this class was generated from the following file:


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
Pork chops cooked with apple wedges and flaked almond croquettes make for a stunning weekend supper.
Preheat the grill to high. Place the pork chops and apple wedges in an ovenproof frying pan. Season the pork fat with salt and place under the grill for and grill for 5 minutes on each side, or until the pork cooked through.
Meanwhile, make the dressing. Put the egg yolk, mustard and honey into a bowl. Add the cider vinegar and whisk, gradually adding the vegetable oil, whisking constantly, until thick and creamy. Add the shallot, garlic, parsley, mint, basil and thyme and whisk once more. Check the seasoning and set aside.
Heat the oil in a deep-fat fryer or large saucepan to 180C/350F. (CAUTION: hot oil can be dangerous. Never leave the pan unattended.)
To make the croquettes, check the seasoning of the mashed potatoes, add the remaining flatleaf parsley and mix well.
Prepare a plate of flour, a bowl of eggs and a plate of flaked almonds. Roll the potato sausages in the flour, then the eggs and then the flaked almonds.
Carefully lower the croquettes into the fat fryer for 2–3 minutes, or until golden brown, crisp and heated through. Remove using a slotted spoon and drain on kitchen paper.
Put the salad leaves into a bowl with enough dressing to just coat the leaves and toss well.
Serve the pork chops with the croquettes, apple wedges and salad.


anonymous
allow adding new entities during session
allow multiple instances of an entity
allow anti-groups
labeling of groups
generate access keys
allow multiple submissions per key
allow post-editing of submission(s)
all entities must be in groupings (= start list empty)
default layout:


Insert pathway name followed by optional revision number (divide by space)
Presets
Mitochondrial Unfolded-Protein Response
Human Complement System (Homo sapiens)
Metastatic brain tumor
Sphingolipid Metabolism
Programmed Cell Death and Cell Engulfment
Cell Cycle and Cell Division
Alzheimers Disease
ESC Pluripotency Pathways
zoom bug


This island lies NW of St Mary's and is the next largest island in the group. Well known for its sub-tropical gardens, this island is a must visit
.
There are 7 visitors' buoys in Old Grimsby Harbour, which is well sheltered from the SW, but open to the swell if the wind veers N of W.
There is garbage disposal here and a water tap to the right of the quay.
New Grimsby Sound Anchor between Hangman Island and the quay. Good shelter except in NW winds. There are also visitors' buoys here.
Landing places - On the beaches at New Grimsby and Old Grimsby, avoiding quays, steps and, at Old Grimsby, the long causeway which is the private property of the Island Hotel. On Bryher anywhere in Green Bay or on the beach below The Town but keep clear on the quay and jetty.