Data from: Herbivory and eutrophication mediate grassland plant nutrient responses across a global climatic gradient
Sources
Anderson TM, Griffith DM, Grace JB, Lind EM, Adler PB, Biederman LA, Blumenthal DM, Daleo P, Firn J, Hagenah N, Harpole WS, MacDougall AS, McCulley RL, Prober SM, Risch AC, Sankaran M, Schütz M, Seabloom EW, Stevens CJ, Sullivan LL, Wragg PD, Borer ET (2018) Herbivory and eutrophication mediate grassland plant nutrient responses across a global climatic gradient. Ecology 99(4): 822-831. https://doi.org/10.1002/ecy.2175
Anderson TM, Griffith DM, Grace JB, Lind EM, Adler PB, Biederman LA, Blumenthal DM, Daleo P, Firn J, Hagenah N, Harpole WS, MacDougall AS, McCulley RL, Prober SM, Risch AC, Sankaran M, Schütz M, Seabloom EW, Stevens CJ, Sullivan LL, Wragg PD, Borer ET (2018) Data from: Herbivory and eutrophication mediate grassland plant nutrient responses across a global climatic gradient. Dryad Digital Repository. https://doi.org/10.5061/dryad.mq56q
Summary
- The description of the files at the Dryad source is very helpful
- The authors supply a script at Dryad, which is very helpful for checking ambiguities or lack of reproducibility. My script was written prior to seeing any of the author’s script (and is quite different from the author’s).
- The description of the method for the model selection was ambiguous; I assumed the wrong method before seeing what the authors did in the reported Table S3 of model results.
- The first column of Table S3 does not reproduce (these are Delta AICc values). The other three columns do reproduce. I used the author’s script on the Dryad data and reproduced my results but not the author’s.
- I have not attempted to reproduce the structural model.
Caveats
Failure to reproduce or partial reproducibility might be an error in my coding, or my misunderstanding of the author’s methods, or my lack of knowledge of statistics generally or the R functions that I use more specifically.
Setup
library(ggplot2)
library(nlme)
library(lme4)
library(lmerTest)
library(emmeans)
library(MuMIn)
library(data.table)
data_folder <- "../data"
folder <- "data from Herbivory and eutrophication mediate grassland plant nutrient responses across a global climatic gradient"
# images need to be moved to /static/images/data from.../image.png
knitr_path <- FALSE # run = TRUE to debug
source("../R/clean_label.R") # bookdown
Import
fn <- "Model1.LRR.data.csv"
file_path <- paste(data_folder, folder, fn, sep="/")
exp1 <- fread(file_path)
exp1[, TREATMENT:=factor(TREATMENT, c("UNFENCED", "FENCED"))]
Reproducibility
Candidate models included all main effects plus environment by treatment interactions.
I interpreted this as a model including all covariates but from Table S3 it seems that the authors compared only models with one covariate at a time.
Script for my initial interpretation
# My initial interpretation
exp1.c <- exp1[!is.na(LRR.C),] # dredge can't seem to do this.
fit.c <- lm(LRR.C ~ MAP + MAT + SOLAR.INS + SOIL.PCT.N + TREATMENT + MAP:TREATMENT + MAT:TREATMENT + SOLAR.INS:TREATMENT + SOIL.PCT.N:TREATMENT, data=exp1.c, na.action = "na.fail")
all.c <- dredge(fit.c)
## Fixed term is "(Intercept)"
subset(all.c, delta <= 1.0)
## Global model call: lm(formula = LRR.C ~ MAP + MAT + SOLAR.INS + SOIL.PCT.N + TREATMENT +
## MAP:TREATMENT + MAT:TREATMENT + SOLAR.INS:TREATMENT + SOIL.PCT.N:TREATMENT,
## data = exp1.c, na.action = "na.fail")
## ---
## Model selection table
## (Int) MAP MAT TRE MAP:TRE df logLik AICc delta weight
## 52 0.1418 0.0002610 -0.02129 + + 6 -18.630 52.0 0.0 0.586
## 50 -0.1195 0.0003004 + + 5 -20.396 52.7 0.7 0.414
## Models ranked by AICc(x)
summary(get.models(all.c, subset= delta <= 1.0)[[2]])
##
## Call:
## lm(formula = LRR.C ~ MAP + TREATMENT + MAP:TREATMENT + 1, data = exp1.c,
## na.action = "na.fail")
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.90236 -0.23560 -0.07726 0.15983 1.13394
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.1195465 0.2263057 -0.528 0.600756
## MAP 0.0003004 0.0002300 1.306 0.200400
## TREATMENTFENCED 1.1749493 0.3213892 3.656 0.000858 ***
## MAP:TREATMENTFENCED -0.0009919 0.0003254 -3.048 0.004435 **
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.4375 on 34 degrees of freedom
## Multiple R-squared: 0.3074, Adjusted R-squared: 0.2463
## F-statistic: 5.031 on 3 and 34 DF, p-value: 0.005417
New script to reproduce Table S3
y_cols <- c("LRR.C", "LRR.N", "LRR.P", "LRR.K" )
covx_cols <- c("MAP", "MAT", "SOLAR.INS", "SOIL.PCT.N")
for(y in y_cols){
res_part <- data.table(NULL)
subdata <- exp1[!is.na(get(y)),] # dredge can't seem to do this.
for(covx in covx_cols){
fit <- lm(get(y) ~ get(covx)*TREATMENT, data=subdata, na.action="na.fail")
fit.all <- dredge(fit)
fit.order <- fit.all[ order(as.numeric(row.names(fit.all))),]
terms_i <- c("~ 1",
paste("~ ", covx, sep=""),
paste("~ ", "FENCE", sep=""),
paste("~ ", covx," + ", "FENCE", sep=""),
paste("~ ", covx," + ", "FENCE"," + ", covx, ":FENCE", sep="")
)
res_part <- rbind(res_part, data.table(terms=terms_i, AICc=fit.order[,"AICc"]))
}
res_part <- res_part[, .(AICc=mean(AICc)), by=terms]
setnames(res_part, "AICc", y)
ifelse(y==y_cols[1], res <- res_part, res <- merge(res, res_part, by="terms"))
}
dAICc <- data.table(Terms = res[,terms], round(t(t(res[, .SD, .SDcols=y_cols]) - apply(res[, .SD, .SDcols=y_cols], 2, min)), 1))
dAICc # reported below the published table
## Terms LRR.C LRR.N LRR.P LRR.K
## 1: ~ 1 6.4 7.3 3.5 5.9
## 2: ~ FENCE 5.3 7.0 3.6 7.3
## 3: ~ MAP 7.6 6.8 4.9 7.8
## 4: ~ MAP + FENCE 6.5 6.4 5.1 9.3
## 5: ~ MAP + FENCE + MAP:FENCE 0.0 0.0 0.0 0.0
## 6: ~ MAT 6.5 8.7 3.7 6.6
## 7: ~ MAT + FENCE 5.7 8.7 4.0 8.3
## 8: ~ MAT + FENCE + MAT:FENCE 8.4 11.3 6.5 10.7
## 9: ~ SOIL.PCT.N 8.8 9.4 5.9 8.1
## 10: ~ SOIL.PCT.N + FENCE 7.8 9.2 6.0 9.6
## 11: ~ SOIL.PCT.N + FENCE + SOIL.PCT.N:FENCE 6.4 7.8 4.1 6.1
## 12: ~ SOLAR.INS 7.8 9.2 4.9 7.3
## 13: ~ SOLAR.INS + FENCE 6.9 9.1 5.1 8.9
## 14: ~ SOLAR.INS + FENCE + SOLAR.INS:FENCE 8.5 11.4 6.8 11.4
knitr::kable(dAICc)
| Terms | LRR.C | LRR.N | LRR.P | LRR.K |
|---|---|---|---|---|
| ~ 1 | 6.4 | 7.3 | 3.5 | 5.9 |
| ~ FENCE | 5.3 | 7.0 | 3.6 | 7.3 |
| ~ MAP | 7.6 | 6.8 | 4.9 | 7.8 |
| ~ MAP + FENCE | 6.5 | 6.4 | 5.1 | 9.3 |
| ~ MAP + FENCE + MAP:FENCE | 0.0 | 0.0 | 0.0 | 0.0 |
| ~ MAT | 6.5 | 8.7 | 3.7 | 6.6 |
| ~ MAT + FENCE | 5.7 | 8.7 | 4.0 | 8.3 |
| ~ MAT + FENCE + MAT:FENCE | 8.4 | 11.3 | 6.5 | 10.7 |
| ~ SOIL.PCT.N | 8.8 | 9.4 | 5.9 | 8.1 |
| ~ SOIL.PCT.N + FENCE | 7.8 | 9.2 | 6.0 | 9.6 |
| ~ SOIL.PCT.N + FENCE + SOIL.PCT.N:FENCE | 6.4 | 7.8 | 4.1 | 6.1 |
| ~ SOLAR.INS | 7.8 | 9.2 | 4.9 | 7.3 |
| ~ SOLAR.INS + FENCE | 6.9 | 9.1 | 5.1 | 8.9 |
| ~ SOLAR.INS + FENCE + SOLAR.INS:FENCE | 8.5 | 11.4 | 6.8 | 11.4 |
LRR.C does not reproduce, the other three columns do.
Double check
m1 <- lm(LRR.C ~ MAP*TREATMENT, data=exp1)
m2 <- lm(LRR.C ~ 1, data=exp1)
AICc(m1)
## [1] 52.66644
AICc(m2)
## [1] 59.09391
AICc(m2)-AICc(m1)
## [1] 6.427463
This reproduces my result but not the published result in Table S3.
The authors supplied a script. Running their script with the data in Dryad reproduces my resuls for column 1 of Table S3 but not the author’s.
Statistical red flags
- Choosing a best model from mulitple fits can result in inflated coefficients and optimistic SEs and p-values due to capitalizing on noise.


Implementation of function.prototype.bind
I mainly do this for unit tests I run on phantomjs. PhantomJS does not have Function.prototype.bind :(
js Function.prototype.bind = require("function-bind")
npm install function-bind


---
layout: post
section-type: post
title: What are the key things with patterns?
date: '2005-09-27T13:38:00.000+02:00'
author: Jørn Ølmheim
category: tech
tags: [ 'patterns' ]
modified_time: '2005-09-27T13:55:29.260+02:00'
blogger_id: tag:blogger.com,1999:blog-16320608.post-112782212814425479
blogger_orig_url: http://joelmheim.blogspot.com/2005/09/what-are-key-things-with-patterns.html
---
A pattern is a description of a solution to a recurring problem in a given context. The format is not important, but it
should include the following sections:
- Name
- Context
- Problem description
- Forces and tradeoffs
- Solution
This gives us the possibility to name recurring solutions and communicate the different aspects of them, which I think
is a good thing that we should do more.
This is also a sensible (and perhaps the only usable) way of organizing any technical writing. If you don't cover at
least the three last bullets in that order in your writing it will be very difficult to understand what you are trying
to say. Providing a context helps and giving it a name adds to the communicativeity of the concept.
I think we should start looking into better ways of communicating across projects and organizational boundaries. Maybe
using a common repository of short presise descriptions of our learning. Adding to this repository should be part of the
project end life cycle.


|
VirtualSCADA
1.0
VirtualSCADA Senior Design Project
|
Variables | |
| if(!class_exists('Symfony\Component\VarDumper\Tests\Fixture\DumbFoo')) | $foo = new DumbFoo() |
| $foo | bar = 'bar' |
| $g = fopen(__FILE__, 'r') | |
| $h = fopen(__FILE__, 'r') | |
| $var | |
| $r = array() | |
| $r [] =& $r | |
| $var ['recurs'] =& $r | |
| $var [] =& $var[0] | |
| $var ['sobj'] = $var['obj'] | |
| $var ['snobj'] =& $var['nobj'][0] | |
| $var ['snobj2'] = $var['nobj'][0] | |
| $var ['file'] = __FILE__ | |
| $var ["bin-key-\xE9"] = "" | |
Definition at line 12 of file dumb-var.php.
| $g = fopen(__FILE__, 'r') |
Definition at line 15 of file dumb-var.php.
| $h = fopen(__FILE__, 'r') |
Definition at line 16 of file dumb-var.php.
| $r = array() |
Definition at line 32 of file dumb-var.php.
Definition at line 33 of file dumb-var.php.
| $var |
Definition at line 19 of file dumb-var.php.
| $var['recurs'] =& $r |
Definition at line 35 of file dumb-var.php.
| $var[] =& $var[0] |
Definition at line 36 of file dumb-var.php.
| $var['sobj'] = $var['obj'] |
Definition at line 37 of file dumb-var.php.
| $var['snobj'] =& $var['nobj'][0] |
Definition at line 38 of file dumb-var.php.
| $var['snobj2'] = $var['nobj'][0] |
Definition at line 39 of file dumb-var.php.
| $var['file'] = __FILE__ |
Definition at line 40 of file dumb-var.php.
| $var["bin-key-\xE9"] = "" |
Definition at line 41 of file dumb-var.php.
| $foo bar = 'bar' |
Definition at line 13 of file dumb-var.php.


--- title: "COVID-19 and R Part IX" author: "Drew Tyre" date: "2020-03-23" output: word_document: default html_document: code_folding: hide draft: no slug: COVID-19_and_R_IX tags_include: - R - OPD - COVID19 categories: Research og_image: /post/covid-19_in_r_ix_files/figure-html/featured_image-1.png ---
The first post in this series was a week and a half ago, in case you’re just joining and want to see the progression.
DISCLAIMER: These unofficial results are not peer reviewed, and should not be treated as such. My goal is to learn about forecasting in real time, how simple models compare with more complex models, and even how to compare different models.1
The figure below is complex, so I’ll highlight some features first. The y axis is now cases / 100,000 population to make it easier to compare Italy and the USA. The SOLID LINES are exponential growth models that assume the rate of increase is constant. The dashed lines are predictions from that model. To make comparison easier, the estimated model and predictions for both countries are on both panels. The lines and intervals for the other country are faded out. The horizontal DOTTED LINES are the number of ICU beds per 100,000 population in each country. Note that the y axis is logarithmic.
Below are the same calculations but focused in on 3 US states and 3 Canadian provinces2. Each panel has the same features as the graph above.
Looks to me like Washington and New York are showing signs of a slow down in the rate of growth. New york is still within the prediction interval, but the last 4 days the new cases are closer to linear.
Here are a few more states people have asked for, along with New York for comparison
The South Dakota, and Nebraska regressions are not statistically significant. In Nebraska that line is very encouraging. We have already put in place measures to reduce transmission rates, so maybe that will be early enough to blunt the epidemic here.
Tomas Pueyo had another good post on Medium where he articulated the “Hammer and Dance” strategy. It’s the best description yet of what South Korea, Singapore et al. are doing, and translated into US and western sensibility generally. Gave me a bit of hope that we might be able to ease back on the hammer in weeks rather than months, and minimize the economic damage. Key piece is to reduce transmission as much as possible (that’s on us), and a massive testing effort to identify where the virus is and get exposed people in quarantine (that’s on the government). All that buys time. Time for a vaccine to be developed, time for medical science to identify drugs that can help, time for manufacturing to spool up increased PPE production for frontline medical staff. Time is what we need.
The usual warning – thinking while coding, not necessarily well thought out. Even less helpful than the stuff up above.
First up, Jessica Burnett wanted a plot with all the lines starting from Day 0, which in my posts differs by state/province and is picked manually based on when I think cases started growing consistently.
us_by_state <- us_wide2long(jhu_confirmed, "US") # see, fancy!
canada_by_prov <- other_wide2long(jhu_confirmed, countries = "Canada")
state_province <- c("California", "Washington", "New York", "British Columbia", "Alberta", "Ontario")
all_by_province <- bind_rows(us_by_state, canada_by_prov) %>%
left_join(country_data) %>%
group_by(country_region, province) %>%
mutate(incident_cases = c(0, diff(cumulative_cases)),
max_cases = max(cumulative_cases)) %>%
ungroup() %>%
mutate(icpc = incident_cases / popn / 10,
group = as.numeric(factor(country_region)),
day = as.numeric(Date - start_date)) %>%
# remove early rows from each state/province
# remove 0 rows in the middle that are probably reporting errors
filter(incident_cases > 0, Date >= start_date,
province %in% state_province) %>%
mutate(province = factor(province, levels = state_province))
# fit the models
all_models <- all_by_province %>%
mutate(log10_ic = log10(incident_cases)) %>%
filter(day <= 12) %>%
group_by(province) %>%
nest() %>%
mutate(model = map(data, ~lm(log10_ic~day, data = .)))
all_fit <- all_models %>%
mutate(fit = map(model, augment, se_fit = TRUE),
fit = map(fit, select, -c("log10_ic","day"))) %>%
select(-model) %>%
unnest(cols = c("data","fit")) %>%
mutate(fit = 10^.fitted,
lcl = 10^(.fitted - .se.fit * qt(0.975, df = 10)),
ucl = 10^(.fitted + .se.fit * qt(0.975, df = 10)),
fitpc = fit / popn / 10,
lclpc = lcl / popn / 10,
uclpc = ucl / popn / 10)
#all_predicted <- all_by_province %>%
all_predicted <- cross_df(list(province = factor(state_province, levels = state_province),
day = 13:26)) %>%
# mutate(day = as.numeric(Date - start_date)) %>%
# filter(day > 12) %>% #these are the rows we want to predict with
group_by(province) %>%
nest() %>%
left_join(select(all_models, province, model), by="province") %>%
mutate(predicted = map2(model, data, ~augment(.x, newdata = .y, se_fit = TRUE)),
sigma = map_dbl(model, ~summary(.x)$sigma)) %>%
select(-c(model,data)) %>%
unnest(cols = predicted) %>%
ungroup() %>%
left_join(country_data, by = "province") %>%
mutate(
Date = start_date + day,
province = factor(province, levels = state_province), # use factor to modify plot order
fit = 10^.fitted,
pred_var = sigma^2 + .se.fit^2,
lpl = 10^(.fitted - sqrt(pred_var)*qt(0.975, df = 10)),
upl = 10^(.fitted + sqrt(pred_var)*qt(0.975, df = 10)),
fitpc = fit / popn / 10,
lplpc = lpl / popn / 10,
uplpc = upl / popn / 10)
ggplot(data = all_by_province,
mapping = aes(x = day)) +
# geom_point(mapping = aes(y = icpc, color = province)) +
# facet_wrap(~province, dir="v") +
scale_y_log10() +
theme(legend.position = "top",
legend.title = element_blank()) +
geom_line(data = all_fit,
mapping = aes(y = fitpc, color = province),
size = 1.25) +
# geom_ribbon(data = all_fit,
# mapping = aes(ymin = lclpc, ymax = uclpc),
# alpha = 0.2) +
geom_line(data = all_predicted,
mapping = aes(y = fitpc, color = province),
linetype = 2) +
# geom_ribbon(data = all_predicted,
# mapping = aes(ymin = lplpc, ymax = uplpc),
# alpha = 0.2) +
# geom_hline(mapping = aes(yintercept = icu_beds), color = "red", linetype = 3) +
labs(y = "Incident cases per 100,000 population", title = "New reported cases per day",
subtitle = "Solid line: exponential model; Dashed line: forecast cases with 95% prediction intervals.",
caption = paste("Source data: https://github.com/CSSEGISandData/COVID-19 downloaded ",
format(file.mtime(savefilename), usetz = TRUE),
"\n Unofficial, not peer reviewed results.",
"\n Copyright Andrew Tyre 2020. Distributed with MIT License."))
I removed the points as well to reduce clutter. The most remarkable thing about that figure is the consistency of the slopes for 4 locales. New York is the one growing faster than the others. British Columbia is the one growing slower.
David Harris, a FaceBook correspondent, asked why I was using incident cases instead of cumulative cases. I gave a half-baked answer at the time, but really the reason is because Tim Church used incident cases in his example modelling post. I was thinking that cumulative cases is misleading because it ignores recoveries and deaths. However … the JHU data set includes numbers for recoveries and deaths. So it is straightforward to subtract those off and get something like “active cases”. And that would be directly proportional to the load on the healthcare system.
us_by_state <- list(
Confirmed = us_wide2long(jhu_confirmed, "US"), # see, fancy!
Deaths = us_wide2long(jhu_deaths,"US"),
Recovered = us_wide2long(jhu_recovered,"US")
) %>%
bind_rows(.id = "variable") %>%
pivot_wider(names_from = variable, values_from = cumulative_cases)
canada_by_prov <- list(
Confirmed = other_wide2long(jhu_confirmed, countries = "Canada"),
Deaths = other_wide2long(jhu_deaths, countries = "Canada"),
Recovered = other_wide2long(jhu_recovered, countries = "Canada")
) %>%
bind_rows(.id = "variable") %>%
pivot_wider(names_from = variable, values_from = cumulative_cases)
state_province <- c("California", "Washington", "New York", "British Columbia", "Alberta", "Ontario")
all_by_province <- bind_rows(us_by_state, canada_by_prov) %>%
left_join(country_data) %>%
group_by(country_region, province) %>%
mutate(incident_cases = c(0, diff(Confirmed)),
active_cases = Confirmed - Deaths - Recovered,
max_cases = max(Confirmed)) %>%
ungroup() %>%
mutate(icpc = incident_cases / popn / 10,
acpc = active_cases / popn / 10,
group = as.numeric(factor(country_region)),
day = as.numeric(Date - start_date)) %>%
# remove early rows from each state/province
# remove 0 rows in the middle that are probably reporting errors
filter(active_cases > 0, Date >= start_date,
province %in% state_province) %>%
mutate(province = factor(province, levels = state_province))
# fit the models
all_models <- all_by_province %>%
mutate(log10_ac = log10(active_cases)) %>%
filter(day <= 12) %>%
group_by(province) %>%
nest() %>%
mutate(model = map(data, ~lm(log10_ac~day, data = .)))
all_fit <- all_models %>%
mutate(fit = map(model, augment, se_fit = TRUE),
fit = map(fit, select, -c("log10_ac","day"))) %>%
select(-model) %>%
unnest(cols = c("data","fit")) %>%
mutate(fit = 10^.fitted,
lcl = 10^(.fitted - .se.fit * qt(0.975, df = 10)),
ucl = 10^(.fitted + .se.fit * qt(0.975, df = 10)),
fitpc = fit / popn / 10,
lclpc = lcl / popn / 10,
uclpc = ucl / popn / 10)
#all_predicted <- all_by_province %>%
all_predicted <- cross_df(list(province = factor(state_province, levels = state_province),
day = 13:26)) %>%
# mutate(day = as.numeric(Date - start_date)) %>%
# filter(day > 12) %>% #these are the rows we want to predict with
group_by(province) %>%
nest() %>%
left_join(select(all_models, province, model), by="province") %>%
mutate(predicted = map2(model, data, ~augment(.x, newdata = .y, se_fit = TRUE)),
sigma = map_dbl(model, ~summary(.x)$sigma)) %>%
select(-c(model,data)) %>%
unnest(cols = predicted) %>%
ungroup() %>%
left_join(country_data, by = "province") %>%
mutate(
Date = start_date + day,
province = factor(province, levels = state_province), # use factor to modify plot order
fit = 10^.fitted,
pred_var = sigma^2 + .se.fit^2,
lpl = 10^(.fitted - sqrt(pred_var)*qt(0.975, df = 10)),
upl = 10^(.fitted + sqrt(pred_var)*qt(0.975, df = 10)),
fitpc = fit / popn / 10,
lplpc = lpl / popn / 10,
uplpc = upl / popn / 10)
ggplot(data = all_by_province,
mapping = aes(x = day)) +
geom_point(mapping = aes(y = acpc, color = province)) +
facet_wrap(~province, dir="v") +
scale_y_log10() +
theme(legend.position = "none",
legend.title = element_blank()) +
geom_line(data = all_fit,
mapping = aes(y = fitpc, color = province),
size = 1.25) +
geom_ribbon(data = all_fit,
mapping = aes(ymin = lclpc, ymax = uclpc),
alpha = 0.2) +
geom_line(data = all_predicted,
mapping = aes(y = fitpc, color = province),
linetype = 2) +
geom_ribbon(data = all_predicted,
mapping = aes(ymin = lplpc, ymax = uplpc),
alpha = 0.2) +
geom_hline(mapping = aes(yintercept = icu_beds), color = "red", linetype = 3) +
labs(y = "Active cases per 100,000 population", title = "Active cases by date",
x = "Days since start of exponential growth",
subtitle = "Solid line: exponential model; Dashed line: forecast cases with 95% prediction intervals.",
caption = paste("Source data: https://github.com/CSSEGISandData/COVID-19 downloaded ",
format(file.mtime(savefilename), usetz = TRUE),
"\n Unofficial, not peer reviewed results.",
"\n Copyright Andrew Tyre 2020. Distributed with MIT License.")) +
geom_text(data = filter(all_by_province, province == "California"),
mapping = aes(y = 1.4*icu_beds),
x = ymd("2020-03-01"),
label = "# ICU beds / 100K",
size = 2.5, hjust = "left")
“Flattening the curve” is clearer in this plot for California, Washington, and New York. The autocorrelation I’ve been ignoring is also clearer, especially in the New York plot. The points “wave” up and down around the expected value. The red line is per capita ICU beds by country, so could be different by state or province. The comparison between the points and the ICU line is affected by one question – what proportion of “active cases” need ICU support? If the “Confirmed” cases were ALL of the COVID-19 cases, then the red line is too low by a factor of 5-20. However, we know that not all cases are being tested and “confirmed”. Confirmed cases right now are overwhelmingly the ones that are really sick. So the dotted line is a “lower bound” that assumes all reported cases need ICU support. Maybe that should be a region of uncertainty between ICU beds and 20 x ICU beds.
ggplot(data = all_by_province,
mapping = aes(x = day)) +
geom_point(mapping = aes(y = acpc, color = province)) +
facet_wrap(~province, dir="v") +
scale_y_log10() +
theme(legend.position = "none",
legend.title = element_blank()) +
geom_line(data = all_fit,
mapping = aes(y = fitpc, color = province),
size = 1.25) +
geom_ribbon(data = all_fit,
mapping = aes(ymin = lclpc, ymax = uclpc),
alpha = 0.2) +
geom_line(data = all_predicted,
mapping = aes(y = fitpc, color = province),
linetype = 2) +
geom_ribbon(data = all_predicted,
mapping = aes(ymin = lplpc, ymax = uplpc),
alpha = 0.2) +
# replace this line
# geom_hline(mapping = aes(yintercept = icu_beds), color = "red", linetype = 3) +
# with this:
geom_ribbon(mapping = aes(ymin = icu_beds, ymax = icu_beds*20), fill = "red", alpha = 0.2) +
labs(y = "Active cases per 100,000 population", title = "Active cases by date",
x = "Days since start of exponential growth",
subtitle = "Solid line: exponential model; Dashed line: forecast cases with 95% prediction intervals.",
caption = paste("Source data: https://github.com/CSSEGISandData/COVID-19 downloaded ",
format(file.mtime(savefilename), usetz = TRUE),
"\n Unofficial, not peer reviewed results.",
"\n Copyright Andrew Tyre 2020. Distributed with MIT License.")) +
geom_text(data = filter(all_by_province, province == "California"),
mapping = aes(y = 1.4*icu_beds),
x = ymd("2020-03-01"),
label = "# ICU beds / 100K",
size = 2.5, hjust = "left")
Hmm, so that’s better than the line. New York is clearly into the red zone, while Washington so far seems to be avoiding it.
I promised myself to not spend more than 1/2 a day on these posts! Taking a break was good. Next new thing to try tomorrow is calculating the doubling time and adding that to each panel.


[gecode-users] counting/sequence constraints failing when IntVarArray too small
Kish Shen
kisshen at cisco.com
Tue Jun 30 20:05:43 CEST 2015
Hi,
My earlier post about min and argmin throwing an exception prompted me
to remember a discussion I had with Joachim Schimpf some time ago about
the semantics of the sequence constraint:
sequence(home, x, s, q, l, u)
if I remember correctly, he thought the constraint should not fail if
the number of variables in x is smaller than q, but larger than l, and
the number of values in x is between l and u. He actually was using the
constraint on some problem instances that had this property.
I did not initially remember that the discussion was about sequence, so
I first looked at the count constraint, and found a similar behaviour
with the IRT_LQ and IRT_LE in
count(home, x, y, IRT_LQ, z)
the constraint fails if the size of x is smaller than than z, even
though the relationship is actually true - the number of times the
variables in x is y is less than z.
I had expected the constraint to succeed in this case, and the atmost
constraint in ic does succeed in such cases (ic restrict z to be an
integer for atmost). I can see that the count fails here because z is
constrained to 0..|x|, for all relationships.
Does it make sense for these constraints to succeed in such cases when
the relationship (number of times the value(s) occur) is satisfied, even
though the number of variables is smaller than the limit/sequence
length? I am uncertain for the sequence case, but for count, succeeding
makes more sense to me.
If not succeeding, should an exception be raised instead of failing?
This will alert the user to the fact that there are too few variables
for the constraint, rather than the number of values not satisfying the
requirements.
Should the behaviour be documented in the MPL? I don't think it is
mentioned there at the moment.
Cheers,
Kish
More information about the users
mailing list


CSS only responsive navigation Apr 21, 2013
Whilst building a Jquery plugin for responsive navigation I started to play around with a CSS only version, just to see what's possible and what we actually need the javascript for. I would say that this is a perfectly feasible solution for a production website but...it's not plug and play, you have to learn how to use the code and adapt it to your site.
Is CSS only feasible?
The good
Responsive solutions are modern
solutions by default, check out browser support for media queries
and you will see that we don't need to worry about old browsers. This is really
important because the solution I propose relies on the :checked
pseudo-class which is supported in these
same browsers. The animation of the slide out panel that houses the links for
the responsive menu uses transform
and transition
which are more or less supported in the
same browsers. I say more or less because IE9 is the weak link here considering
that it does support media queries and it does support :checked
but it doesn't support transitions. The
majority of your mobile users are probably going to be on webkit but for those
on Windows Phone 7 (and therefore IE9) it might not look so smooth but should be
functional.
The bad
There are a few features that the Jquery plugin will have that just can't work in the CSS only solution, or at least I can't figure out a way to make them work! I won't list all the features of the Jquery plugin I am working on just yet but there are some issues with the CSS only solution that will be resolved with a bit of Javascript:
- There is a delay when you tap on the show/hide checkbox.
- You can't click outside the menu to hide it.
- You have to follow quite a strict HTML structure, placing the checkbox before everything else.
There a few more advantages of the Jquery solution but that will be explained in the next article.
How does it work?
First of all we have a show/hide menu toggle,
which in this case is a checkbox that has been hidden by a font icon placed over
the top using the label:after
pseudo element.
The toggle is hidden by default and only shown on smaller screens. By using the
:checked
pseudo class we can change the icon
that is displayed once the checkbox has been clicked, in this case we are going
to turn it into a "close" icon. For this to work the checkbox
must be placed before the
because we are relying on this
sibling selector to change the icon:
.slide-checkbox:checked ~ .slide-toggle:after {
content: '"';
}
.slide-checkbox
is the checkbox
, .slide-toggle
is the
The cool part is the slide out menu, in fact it's not really the menu that slides out but more the content that slides over to the right, dragging the menu along with it. In the media query the menu is hidden off-canvas using this CSS:
.nav {
width: 70%;
position: absolute;
left: 0;
top: 0;
transform: translateX(70%) scale(1);
}
(This has been shortened for readibility, in the demo you'll see the full code with browser prefixes.)
Now, the important part is sliding the content over. To do this I am relying
on the content to be inside a

and to follow the checkbox
in the HTML markup because of this
CSS:
.slide-checkbox:checked ~ .slide {
transform: translateX(70%) scale(1);
}
What this is saying is: "when the .slide-toggle is checked, then any div with a class of "slide" that is adjacent in the markup should be transformed". When we slide the div over we also bring the nav into view.
Another important aspect is that everything, including the checkbox, is
wrapped inside

which has overflow: hidden
set and this stops scrollbars
appearing once the content slides over.
Here's a breakdown of the necessary HTML structure:

<input type="checkbox" id="slide-checkbox" class="slide-checkbox" role="button">

Something that is pretty flexible is the .nav
, this can be a

instead of a

and you don't need to be limited to
just putting a menu in there. Also, the nav can be pretty much anywhere inside
the

,
even inside other divs.
The best way to see what's going on though is to download the demo and have a look at the CSS because all the important parts are heavily commented. And, if you're interested in the Jquery solution when it comes out, which will have a range of configurable options, then follow on twitter and/or watch the project on github. Please let me know what you think in the comments.
Acknowledgements
Thanks to Marnu
Lombard for creating a really useful pull request that made me change from translate3D to
translateX and put the toggle on the label:after
instead of the checkbox:after
. That really helped browser
compatibility.
Thanks to Ben and Dan "5 mins" Caragea for mobile testing.


Z's Blog
Home
About Me
Blogs
Contact
What are the Differences Between Relative, Absolute and Fixed Positioning?
- Sunday 4th July 2021
Identity, Values and Strengths
- Sunday 4th July 2021
My Learning Plan
- Sunday 4th July 2021
What is EQ & IQ?
- Tuesday 6th July 2021
Javascript and the DOM
- Sunday 11th July 2021
Neuroplasticity and Growth Mindset
- Monday 12th July 2021
Problem Solving
- Saturday 17th July 2021
Foundations Reflection
- Sunday 25th July 2021


BLAST Forum MINUTES
March 16-18, 1999
Ramada Inn and Suites, Oak Ridge, TN
- Fifteen people attended the BLAST Forum in Oak Ridge, TN, on March
16-18, 1999. The meeting was hosted by the University of Tennessee.
Tuesday, March 16, 1999
The meeting began at 9:00am. Everyone introduced themselves and a draft
agenda was presented.
- 9:00am-11:00am Chapter 3 (Sparse BLAS)
- 11:00am-2:00pm Chapter 5 (Interval BLAS)
- 2:00pm-3:00pm Chapter 1 (Introduction)
- 3:00pm-4:00pm Chapter 2 (Dense and Band BLAS)
- 4:00pm-5:00pm Chapter 4 (Extended and Mixed Precision BLAS)
A move was taken to also include the beginning discussion of the model
implementations in this first day of the meeting.
At the opening of the meeting 8 eligible voters were present -- Sandia,
UT, NAG, UC Berkeley, NIST, HP/Convex, Notre Dame, and Mississippi State.
Mike Heroux took the floor to discuss Sparse BLAS chapter. There were
mostly minor editorial comments. All references to Fortran 90/95 should
be standardized to Fortran95.
- Section 3.1 comments. Need comment that the Fortran77 interface would look
like Fortran95 example. It was asked that a note
be included to specify which packages use certain
storage schemes, etc. Finite element methods.
Vote 8/0/0.
- Section 3.2 comments. Need to add DOT, AXPBY, consistency in tables.
3rd column, GE, SY, etc.
Vote 8/0/0.
- Section 3.3 comments. Need to specify ordered sets or non-ordered sets.
Vote 8/0/0.
- Section 3.4 comments. 1-based for Fortran, 0-based for C.
Add integer for base in calling sequence.
Vote 8/0/0.
- Section 3.5 Vote 8/0/0.
- Section 3.5.1 Vote 8/0/0.
- Section 3.5.2 Vote 8/0/0.
- Section 3.5.3 Vote 8/0/0.
- Section 3.6 Vote 8/0/0.
Comments. Module definitions should be moved to an Appendix. Why
is it called Annex instead of Appendix?
Debate for F95 interface. How to make it work if data
structure passed is assumed shape or assumed size. Mandate
a copy. Do not support array subsections. If we do a
forced data copy, then subsection will work. To be fully
f95 compliant, must force a copy. ISTAT=0 in F95 is not
legal, failure to create. Maybe 3 values for ISTAT.
Explicit value of ISTAT to force a copy. ISTAT < 0.
Modify 3.6 as amended.
- Section 3.7 Vote 8/0/0.
- Section 3.7.3 Vote 8/0/0.
- Section 3.8 comments. Adding text on creation routines, debate on sparse
triangular solve, allow side parameter?
Vote 8/0/0.
A break was taken at 11am.
After the break, discussion began on model implementations. First, Andrew
Lumsdaine presented the MTL library, and how it could be used to produce
the model implementation.
A number of questions were raised:
- Should the reference implementation be generic and readable, or
performance oriented? We want a model implementation to
be portable. But since the model implementation of the BLAST document
wil be so large, will the vendors optimize it? Or should we provide a
reasonably optimal model implementation?
- Should we have one kernel implementation in C and then have wrappers
in Fortran77 and Fortran95 on top of this? Or three separate
implementations?
- Testing software must test the numerics of the operations as well
as the interfaces. Numerical testing of the extended and mixed
precision BLAS is particularly complex.
- Consistency of model implementations for separate chapters?
It was felt that C++ language is volatile for a model implementation. As
MTL could also generate C code, this would be preferable. And what about
test code? As it stands, most of the testing in MTL are software engineering
tests. Numerical testing would need to be added.
A break was taken at 12:20pm.
Discussion continued at 1:30pm. Chao Yang of NEC arrived, and this
increased the number of eligible voters to 9.
Jim Demmel then presented his proposed implementation scheme for the BLAS
standard using m4. Numerical testing is a complex issue, particularly for
the extended and mixed precision BLAS. Should the BLAST forum deliver
"readable" source code or not?
A break was taken at 2:30pm.
Chenyi Hu had arrived and this brought our list of eligible voters to 10.
Chenyi then presented the revisions that had been made to the Interval BLAS
chapter since the "virtual" meeting and voting. Numerous suggestions were
made on revisions. Questions were raised about the meaning of the CONVERT
routines, and what is specified. Rename to round-out. Have convert and
roundout! We need an FPINFO_I routine, and the number of digits specified
in its interface. Some of this is being discussed in the Interval arithmetic
group and Fortran 2000. The format of the C bindings was discussed,
particularly the use of struct, and its impact on performance. All other
chapters have chosen to not use struct's in the implementation due to issues
of non-contiguous storage and thus performance. Two groups have agreed to do
model implementations in C++ and Fortran95. They have the TOMS package for
Fortran77 implementation. Jim had various ideas for test software for the
interval BLAS. Chenyi will incorporate the modifications and present them at
the meeting on the following day.
A break was taken at 3:45pm.
At 4pm, we then began the discussion of Chapter 1.
- Section 1.1 comments. Wordsmithing. Vote 10/0/0.
All remaining sections vote 10/0/0.
Overall comments.
- In section 1.2 "Motivation", we need to add a
paragraph for each chapter. As it stands, it is too chapter 2--
centric. It was agreed that the authors of chapters 3, 4, and 5
would supply Susan with a paragraph motivating each chapter.
- In section 1.4.1, more notation should be added. And the table
of matrix types "GE, GB, etc" should be inserted here, as it
applies to several chapters.
- As a general rule it was decided that the intersection of information
pertaining to all chapters will be listed in Chapter 1, and the
union of this information will be moved to an Appendix. The Appendix
will be divided according to chapters.
- In section 1.4.2, the table of operator arguments specifying named
constants etc will be moved to the appendix, as well as the "Example"
text following it.
- Section 1.5 "Numerical Accuracy" will be rewritten for each chapter.
Jim will provide this rewrite to Susan.
- Section 1.6.1 "Scalar and Vector Operations", table 1.1, the absolute
value notation will be changed. Table 1.2 will be renamed to "Generate
Transformations". A forward reference will be inserted to specify that
the details of the data structures will be discussed in later sections.
- Section 1.6.2 "Matrix-Vector Operations" The storage of Q needs to be
specified, and horizontal lines must be added to table 1.5 for combine
operations.
- Section 1.6.4 "Environmental Enquiry" table removed. Only first
sentence remaining.
- Section 1.7 "Language Bindings". A note on the consideration of C++
and Java, and that these bindings will be considered in a later forum.
The meeting was adjourned at 5pm.
Wednesday, March 17, 1999
The meeting began at 9am with a summary of the previous day. A tentative
agenda for the day will be:
- Numerical Accuracy sections readings
- Reading of Chapter 2 (Dense and Band BLAS)
- Re-reading of Chapter 5 (with yesterday's revisions)
- Model Implementations
- JOD discussion
and then on Thursday, we will decide how to do the last re-working of the
document, and the announcement of the draft of the BLAST document.
Jim presented his proposed rewrites for the numerical accuracy sections for
chapters 1, 2, 3, 4, and 5. Vote 10/0/0. He also briefly mentioned the
issue that the IEEE 754 standard does not agree with the wording in SLAMCH,
and this must be consistency. Will be discussed later.
At 10am, we then began the discussion of Chapter 2.
- Section 2.1 comments. Move GE GB table to Chapter 1.
- Section 2.1.1 comments. See appendix for definitions of vector norms Move
table of vector norms to appendix. Clarify abs value notation in
Table 2.1. Add third column to tables for DOT, NORM, names, etc.
- Section 2.1.2 comments. Add third column to tables. We need to define how Q is stored, Householder transformation, SLASR and SLARTV combine.
- Section 2.1.3 comments. Remove GBMVT from table 2.5. Table of matrix norms
moved to appendix. Add 4th column to tables 2.6, 2.7, 2.8.
- Section 2.1.4 is now Jim's new section.
Vote Section 2.1 10/0/0.
A break was taken at 11am.
After the break, discussion continued on Chapter 2.
- Section 2.2 comments. Section 2.2.1 we softened the sentence about must
not have a name conflict to should not.
Moved GB table to Chapter 1. Add a section after 2.2.1 to talk
about Aliasing, and a section entitled Matrix Storage Schemes. This
storage section will be from the C interface version, and all will
reference to it. The Aliasing section will say something like
"Correctness only if output arguments are not aliased (association
of arguments". In the subsection "Indexing" we should substitute
the word "index" instead of "displacement". Section 2.2.2, first
sentence deleted. Under "Design of Fortran95 interface" and
"data type" we deleted sentence in parentheses. The table of
arguments under "different argument lists" is deleted and forward
references added to table in page 27. Question about "x(ix)"
notation in "Assumed-shape arrays", will be addresed with multiple
instances discussion offline. In "Derived Types", the first
sentence is deleted. The "Operator arguments and CMACH values"
is moved to the Appendix. In the "Format of the Fortran95
bindings", remove verbosity of KIND,WP discussion. Add "default"
column to table of optional arguments, and add a label to the
table. In "Error Handling", we will have a global statement about
error handling in Chapter 1 to address all chapters. An error-
handling routine will be supplied and it shall check the consistency
of input dimensions.
Vote 10/0/0.
- Section 2.2.3. Similar changes to Fortran 77 discussion as mentioned
for Fortran95 discussion. Under matrix storage schemes, we
will reference the main section, and specify that Fortran
interface only supports column-major.
Vote 10/0/0.
- Section 2.2.4. Similar changes as discussed for Fortran 95 and
Fortran 77 sections. Rework beginning sentence about "most
platforms". Insert reference for gcc. Should we explicitly
say "overlapping" in aliasing discussion. Stronger statement
for aliasing? In "array arguments", we should explicitly say
that this means no 2-D array arguments in C. Similar text
moved to appendix. In "Format of the C bindings", error in
table of SCALAR specification. There must be a separate
spec for SCALAR IN and SCALAR IN/OUT.
Vote 10/0/0.
- Section 2.3 comments. Add cross reference sections to "Overview".
Remove GBMVT. Corrections to bindings. Outstanding issues
for Jacobi routine, and multiple instances. PERMUTE routine
should permit negative INCP in Fortran77 interface.
Vote on Sections 2.3.1-2.3.6. 10/0/0.
A break was taken at 12:30pm.
We reconvened at 1:30pm and continued discussion of Chapter 2.
- Section 2.3.7 comments. Break GE,GB,SY,SB,SP,TR,TB,TP_ACC into
separate specifications. No TRANS allowed in GB,TR,TB,TP.
Remove HE,HB,HP_ACC specs.
Vote 8/0/0.
- Section 2.3.8 comments. GBMM should have a SIDE argument. Delay
ORM discussion until clarification.
Vote 8/0/0.
- Section 2.3.9 comments. GE_PERMUTE needs INCP in Fortran77 and C
interfaces.
Vote 8/0/0.
- Remove sections 2.4 and 2.5. Brief note that they are to appear.
Nuke sections 2.6 and 2.7. A footnote instead on appropriate
routines.
A break was taken at 3:00pm.
We resumed at 3:30pm, and Chenyi presented the revisions to Chapter 5.
All bindings must be examined for questions of "empty intervals"., and minor
typographical corrections to various sections.
- Section 5.1.1 Vote 9/0/0.
- Section 5.1.2 Vote 9/0/0.
- Section 5.1.3 Vote 9/0/0.
- Section 5.2 comments. Add 3rd column to tables.
Vote 9/0/0.
- Section 5.3 comments. Need to insert Numerical Accuracy section from
Jim. Section 5.3.4 is not ready for a vote.
Vote on section 5.3.1-5.3.3, 9/0/0.
- Section 5.4 comments. Add cross-references for overview sections.
Vote on 5.4.1, 9/0/0.
Vote on 5.4.2-5.4.9, 9/0/0.
- Section 5.4.10-11 comments. Discussion of empty intervals and how these
impact the bindings. All bindings should be examined for what
happens when an empty interval is encountered. Possibly return
a boolean LOGICAL to flag if empty was detected.
An empty interval propogates like a NaN.
No vote taken on sections 5.4.10-5.4.11.
- Section 5.4.13 comments. Need to add discussion of FPINFO_I. And add
reference the Interval BLAS webpage.
The meeting was adjourned at 5:15pm.
Thursday, March 18, 1999
The meeting began at 9:30am. The tentative agenda for the day will be:
- Error returns for language bindings, multiple instances summary, Jacobi
routine summary, and IEEE vs SLAMCH issue for Chapter 2.
- Reading of Chapter 4.
- Model Implementations
- Decide how to do last re-working
- JOD discussion
- Profiling
- Announcement of draft (May 31st to the world for comments?)
The tentative schedule for the BLAST document is as follows:
- April 14 -- Susan will have incorporated global changes to
Chapters 1-5, and then submit chapters to the authors
for specific revisions.
- May 15 -- Authors will return chapters to Susan
- May 31 -- Announcement of BLAST document on na.digest.
- August 1-31 -- last virtual meeting and commenting on chapters.
- Sept 1 -- publication of BLAST document (like MPI report, freely
available)
Jim discussed Chapter 4 modifications. All F95 bindings will be suffixed
by _X to avoid confusion with Chapter 2. The default value for OPTIONAL
argument PREC was discussed. Section 4.6 is removed.
Vote on Chapter 4, 7/0/0.
A sentence needs to be added to Chapter 1 to emphasize that the goals for
Chapters 4 and 5 are different.
At 10:30am, the format of the proposed routine for applying multiple
Givens rotations (ORM) was discussed, as well as the format for the
Jacobi routine. The proposals will be checked with Linda before
inclusion. A discussion of error returns began. The major point
of contention was whether or not to allow a var args interface for the
C error-handling routine. Should we have compatible error return for
Fortran and C. Leave it the way it is, or change it? Or have both possible
error returns in C?
- BLAS_ERROR ( name, -info, string )
- BLAS_ERROR ( name, -info, string, ... ) has a variable number of
arguments, you can call with null.
Vote for #1 for both languages. 6/0/0. Names not clear. F_BLASERROR
and C_BLASERROR?
Model implementations and test software were again discussed, as well as
the issue of profiling as done in MPI. It was proposed that a template for
GEMM in Fortran95, Fortran 77, and C be circulated to demonstrate how
leading comments should be done. And also, provide a template for how
the testing software should be organized. Portabililty and how the wrappers
should be done. Produce testing software incrementally? The testing
software is the major weight of the effort.
The consensus was that each chapter is responsible for its model
implementation. The quantity of routines and thus the time and resources
of producing a model implementation and test suite is formidable.
Jim Demmel and his m4 effort should continue to develop their model
implementation for Chapter 4, and Andrew Lumsdaine and his MTL library should
produce a model implementation. Using m4 and MTL to produce the model
implementations will be the quickest way. Readability will be sacrificed
as time and resources are the major constraints. Multiple efforts. Perhaps
use pretty printers to improve the format and readability of the generated
code. Macro processing must be used to produce the volume of routines.
http://www.cs.berkeley.edu/~demmel/BLAST/
and
http://www.lsc.nd.edu/research/mtl/
The kernel should be written in C because some routines will need malloc,
but it was pointed out that it most convenient to write the complex arithmetic
routines in Fortran. It is not easy to see how the mixing of languages
will be avoided. It was suggested to produce the
C interface first and then concern with other languages and interfaces.
The meeting was adjourned at 1pm.
Attendees list for the March 16-18, 1999 BLAST Forum Meeting
Susan Blackford UT, Knoxville<EMAIL_ADDRESS>Jim Demmel UC Berkeley<EMAIL_ADDRESS>Jack Dongarra UT / ORNL<EMAIL_ADDRESS>Sven Hammarling NAG, UK<EMAIL_ADDRESS>Mike Heroux Sandia Nat Lab<EMAIL_ADDRESS>Jeff Horner UT<EMAIL_ADDRESS>Chenyi Hu UH-DT<EMAIL_ADDRESS>John Liu HP (MSG<EMAIL_ADDRESS>Andrew Lumsdaine UND<EMAIL_ADDRESS>Antoine Petitet UT<EMAIL_ADDRESS>Roldan Pozo NIST<EMAIL_ADDRESS>Avi Purkayastha Miss State U<EMAIL_ADDRESS>Jeremy Siek UND<EMAIL_ADDRESS>Clint Whaley UT, Knoxville<EMAIL_ADDRESS>Chao Yang NEC<EMAIL_ADDRESS>Susan Blackford agreed to take minutes for the meeting.


Publix Chicken Tender Subs on sale for $6.99 starting Thursday
by WFTX Digital TeamBrace yourselves folks, because the popular Publix Chicken Tender Sub is on sale starting Thursday!
According to the store's weekly ad, a whole Chicken Tender Sub will cost $6.99, a savings of $2.
The deal starts on Thursday, Nov. 7 and runs through next Wednesday, Nov. 13.
RELATED: Publix debuts stylish new swag < /span>
In addition, Publix is offering a buy one, get one free deal on its Pulled Pork Sandwich.
Get the party started by placing an online order by clicking here.


PoleStar award for Express reporter for feature on Hima
Agarwala was given the award for her report ‘Hima Das, the girl who chases time’ at the 21st Annual PoleStar Awards, which were conducted in Chennai on Friday.
by Express News ServiceTora Agarwala, Assistant Editor with The Indian Express, has won the PoleStar Award for the ‘Best Good News Feature’.
Agarwala was given the award for her report ‘Hima Das, the girl who chases time’ at the 21st Annual PoleStar Awards, which were conducted in Chennai on Friday.
The chief guest of the event was S Ramadorai, former chairman, National Skill Development Corporation. Arun Jain, founder of PoleStar Foundation and Chairman and Managing Director, Intellect Design Arena Limited, was also present along with other dignitaries from industry, media and academia.
The PoleStar Foundation was set up in 1998 to recognise excellence in journalism in India.


--- Backend / Full Stack Developer --- For those who don't know me kindly have a look at My Resume
Currently Working in Rocketlane Private Ltd., as a Product Developer
Pursued Bachelor's in Computer Science from College of Engineering, Guindy (Anna University)
Just a normal guy by Overcoming complicated life in a easy manner.!!!
Rocketlane --|-- Citi --|-- CEGian --|-- DAVian
SYLAB, an Android app that will download, integrate and show the department syllabus
Davinci Code, an Image puzzle contest website which was developed using Node.js
-- Eagerly waiting to do projects --
Feel free to contact me to provide some feedback on my website, or to just say hello!


This visualization is an interactive slideshow which takes the user through the Dataset of the 9th Round of the Yelp Academic Dataset Challenge. The dataset itself contains the Yelp reviews and aggregated check-ins over time of 144 thousand businesses located throughout various metropolitans across the globe. This visualization focuses on the data from the United States which includes the following cities: Pittsburgh, Charlotte, Urbana-Champaign, Phoenix, Las Vegas, Madison, Cleveland.
As the visualizations use a preset static canvas of 1024x768 pixels, the viewing size of the interactive visualization is at least 1280x800 pixels to accommodate the surrounding text and scene elements.
With such a large dataset, creating a visualization with the raw data turned out to be very difficult. The first step for created this visualization was to process the dataset and focus on the data pertaining restaurants in the United States only.
The use of CSS and FullPage.js allows for a cohesive template look for the interactive visualization. Each page is transitioned using the same method and text elements are kept the same (font size and family). Additionally there is a page navigation bar on the right side which allows users to skip between different slides. The tooltips which are triggered when a user moves their mouse over the navigation alters the display parameters for each navigation menu item.
Annotations have been used in all three visualizations with a similar process of using triggers to change the hidden paramenter of the annotation. For example, the Line Chart Visualization has an initial state of the hidden parameter which controls the display of the annotations set to false. As a user uses the brush bar to trigger changes to the line chart visualization x-axis parameters, it also changes this hidden parameter to true. In turn the annotations disappear until the user resets the brush bar to zero - thus zooming out back to the default visualization parameters.
Both parameters and triggers are used in all of the three visualizations. For the Bubble Chart Visualization, parameters for the x,y co-ordinates of each bubble are set to an initial central position for the All Reviews Visualization. As a user selects menu items to chose between All Reviews, Reviews by State and Reviews by Stars, it triggers the change of bubble’s x,y co-ordinates parameter to their respective groupings.
In Zoomable Sunburst Visualization, each mouse click on a region is a trigger for the path and arc parameters. By clicking within a region, you can zoom into the data to take a look at the information underneath. Clicking the centre circle will trigger the parameters to return to its values one up in the hierarchy.
For Line Chart Visualization, parameters are set for each Restaurant Category. These parameters are triggered to be updated as the mouse moves over the visualization, providing the user with a snapshot of the amount of check-ins in a given time. A secondary parameter and trigger set is the brush bar below the line chart. This bar allows the user to zoom into the data to show a closer look of the data. By clicking a set space on the brush bar, it triggers the x-axis parameter of the line chart to be updated to a ratio of the same selected section of the brush bar.
The restaurant business is an enormous industry where understanding your clients and their behavioural patterns may give prospective new restaurant owners a much needed head start. This interactive slideshow dives into the publicly available Yelp Academic Dataset which includes a large set of reviews client interactions across multiple industries and regions. We will focus on restaurants within the United States in order to better understand client interactions.
Assumptions are made in the positive correlation between the number of reviews and the popularity of a business. This is then tied with the assumption of the positive correlation between number of check-ins and the popularity of a business. By focusing on restaurants which have large number of reviews, check-ins and high star rating, we will be able to understand the type of restaurant to invest into.
We are able to see that the bulk of the reviews are from NV with a star rating between 2-4.
When the categories are consolidated into the Top 24 + Others, we can see that American New is the most reviewed restaurant category. The spread between states do not seem to affect the ranking of restaurant categories either.
Aggregating the hourly check-ins per restaurant categories for NV reveals a consistent trend. Regardless of the day of the week, there is a cyclic relationship between the number of check-ins and the time of the day. The amount of check-ins peaks out near the end of the day with a general increase over the weekend.
The initial analysis based on the Yelp Academic Dataset shows that a prospective restaurant owner should choose to open an American New styled restaurant. The location should be in NV where there were the most amount of reviews logged. The restaurant should focus of the evening and weekend crowds with possibly reducing staffing during the day as the amount of people tapers off.


Saving the pairs will prevent duplicate pairing in the future. Pairs will duplicate after unique combinations are exhausted.


We don't just build software, we build solutions.
The best way to reduce complexity is simplicity. We solve complex problems with simplicity.
813.898.9539
hello@noomatech.com


History made at National Cross Country Championships as two sisters medal
Fionnuala McCormack landed the title in style, and she was joined by her sister on the podium.
by Emma DuffyTHERE WAS A nice piece of history written at the National Cross Country Championships today, as two sisters made the senior women’s podium for the first time ever.
Fionnuala McCormack stormed to the gold medal — her ninth national title — in style, leading the field from gun to tape, to record a time of 28.41 in the 8km.
Her sister, Una Britton, landed bronze in the same race, making the senior women’s event at the Irish Life Health National Senior, Junior and Juvenile Even Age Cross Country Championships a real family affair.
And afterwards, the Kilcoole AC duo shared their joy at the Sport Ireland Campus:
“Getting to be on the podium with her is definitely good,” Britton smiled afterwards, while her Olympian sister added: “It’s a great day for our family, for our club, and it’s always good when you stand on top of any podium.”
Now, they both head to Lisbon for the Europeans.
It tops a good few weeks for Wicklow star McCormack, who recently smashed her marathon PB to secure Tokyo 2020 qualification. But she shone at her beloved Cross Country today.
It was Portlaoise AC’s Mary Mulhare who finished second, while elsewhere, Tullamore Harriers’ Liam Brady produced a brave run from the front to take the senior men’s 10,000m crown.
Knocking on the door for years, today he was crowned Irish cross country champion for the first time — and it meant quite a lot.


Welcome to
Ed Loeb's Homepage
Bland isn't it.
It’s been a busy year. My Daughter was born in March and my research has taken a positive turn. I’ll be posting any new information concerning my thesis and quantum computing when I find the time. If you are interested in Quantum Computing try these websites:
Quantum Computing at Cal-Tech http://www.cs.caltech.edu/~westside/quantum-intro.html
Qubit.org http://www.qubit.org/library/intros/comp/comp.html
If you just want to drop me a line I love email.
Here are some pictures of my daughter Kira
Elizabeth Loeb. Take a look.


England's 10 Top Scorers After Kane Hat-Trick
by SL InternationalFollowing Harry Kane's sensational hat-trick on Thursday night, the England captain has now been backed to smash Wayne Rooney's all-time goalscoring record for the country. Here are the Three Lions' 10 top goalscorers!
Click through the gallery above to see England's 10 top scorers of all time
Kane netted his third international hat-trick in England's 7-0 2020 UEFA European Championship win over Montenegro this week.
The Tottenham Hotspur star has now scored 31 goals for England, which sees him climb to sixth place in the nation's all-time top goalscorers list, despite having only 44 international caps to his name.
Manchester United legend Wayne Rooney currently occupies the top spot with 53 goals, ahead of 1966 FIFA World Cup winner Sir Bobby Charlton, who netted 49 times for the Three Lions.
Earn Airtime & Data With Soccer Laduma's Social Media App - Download Now
Kane's goal return for England has come at an average of 0.70 goals per game, which is better than both Rooney and Charlton's and, according to Football London, if maintained, would see him break the former's all-time record within 33 matches (or in his 77th international appearance).
Comparatively, Rooney achieved his record in 120 appearances for England, while Charlton's haul came in 109 matches.
Read: The 10 Highest-Ranked Nations Heading Into AFCON Qualifiers
The 26-year-old's hat-trick against Montenegro saw him overtake five players in the standings, including Premier League legends Frank Lampard and Alan Shearer – you can see England's 10 top goalscorers of all time by scrolling through the gallery above!


Rare And Extreme Aston Martin One-77 Has Shockingly Few Miles
Place the winning bid and you'll be helping a good cause in the process.
by Noah JosephAston Martin has produced some seriously fast and lustworthy road cars over the course of its history – heck, in the past decade alone. But few can hold a candle to the One-77. Unfortunately, as its name suggests, only 77 examples were made. But there's one rather stunning example is coming up for auction. And if you place the winning bid, not only can it be yours, but you'll be helping a good cause in the process.
The latest addition to RM Sotheby's upcoming sale in Abu Dhabi next week, this 2011 Aston Martin One-77 is the 38th of those 77 examples made.
That puts it smack-dab in the middle of the model's strictly limited production run. And it's only been driven "sparingly," putting on just 552 miles from new.
For those unfamiliar, the One-77 was the first model that Aston Martin rolled out after its independence from Ford. Like so many of its stablemates – straight through to today's DBS Superleggera – it was a front-engined, twelve-cylinder, two-door coupe. But it took the format in an altogether more extreme direction to take on the likes of Bugatti, Koenigsegg, and Pagani. Its bodywork was signature Aston, but wider, lower, and stretched over a carbon monocoque chassis.
Up front sat an enormous 7.3-liter naturally aspirated V12, sending 750 horsepower and 553 lb-ft of torque to the rear wheels through a six-speed sequential gearbox. Weighing less than 3,600 pounds, it could hit 60 in 3.5 seconds and top out at over 220 mph. It was the perfect starting point for the track-bound Vulcan that followed, but this one you could drive on public roads.
That is, if you were lucky enough to get your hands on one. With production so strictly limited, Aston Martin sold each example for £1.15 million (about $1.8 million at the time). This one is estimated to fetch around $1.5-2 million when the gavel drops, with proceeds going towards the African Parks foundation.


{{ total }}
Total: ${{ total }}
This is some original content
This is some more original content
A paragraph for the main content.
And another one.
Here's some contact info


archer-callouts.js
This example shows how archer-callouts.js works together with an archer graphic
- choose a plane and change its direction, speed and hight
- toggle the callout on and off and enjoy the nice and smooth in- and out-transition
- watch what happens, if a callout reaches the edge of the visible area
- zoom in the map and watch how a callout is handled, if the anchor is not in the visible area
- use your mouse to drag the callout to another position - slow down or pause the plane before ;)
Map:
[↑]Accelerate
[↓]Break
[←]Rotate left
[→]Rotate right
[w]Rise
[s]Fall
[space]Pause


Safety
Boots and Ladders Safety Usage Guidelines
Ladders come in all shapes and sizes; and much like safety boots, the proper equipment for the job is vital. If you have worked any hands-on profession long enough you have been on a ladder and you have probably experienced or witnessed a not-so-safe, scary moment with a co-worker or employee - maybe even a fall.
Read More


GUKI - A simple PHP Docker development environment
A really simple docker setup with Nginx, PHP-FPM, MySQL and Redis
Features
- Multiple PHP FPM versions (5.6, 7.2)
- PHP Package Manager Composer Installed as a docker container
- Light Weight
- No complex configurations
Prerequisite
- Docker with Docker-Compose
- NodeJS - To generate SSL certificates we are using a Node package.
- A CLI Tool - preferably bash
Tip
If you are a Mac user, you may please download and install Homebrew, this will make your life lot easier!
Installation
- Clone the Repo from https://github.com/shineklbm/guki
- Using terminal navigate to the directory guki.
- Copy sample.env to .env and make any required changes.
- Type the following command docker-compose up.
- Done!
How to create a new project?
- Create a directory inside code with YOUR_PROJECT_NAME. Now, create a file inside that directory with the following content.
<?php
phpinfo();
?>
- Copy sample.conf from configs/vhosts directory and paste it .
- Replace all occurances of sample with the PROJECT_NAME you choose. (Not necessory, but for simplicity using the same folder name)
- Install Create SSL Certificate Plugin for NPM using npm i -g create-ssl-certificate
- Using terminal goto configs/certs directory, then type
npx create-ssl-certificate --hostname PROJECT_NAME --domain YOUR_DOMAIN_EXTENSTION
- Please rename the generated files to PROJECT_NAME(This also you can customize)
- Install generated .cert file to your machine (Mac and Linux uses different steps for the same, please google it)
- Add your newly created local domain to your etc/hosts file. Now run docker-compose up.
- Once everything done, goto https://PROJECT_NAME.YOUR_DOMAIN_EXTENSTION in Google Chrome.
- Done!
FAQ
-
What is the default credentials for PHPMyAdmin?
You may please use root as the username and password. Please don't forget to use mysql as the host name.
-
How can I login to a running docker container?
Please use the docker-compose exec YOUR_CONTAINER_NAME bash command like the one bellow.
docker-compose exec nginx bash
- How can I connect to mysql running in docker from host machine?
Please use the following details to connect docker mysql from host machine.
Host Name : <IP_ADDRESS>
Username : rkme
Password : Rkme#001
Port : 3307
Support
If you are facing any issues, please feel free to reach me out in Skype (shine.sudarsanan) or Email Me


fileutils¶
Simple tools to work with files, paths etc.
-
copy_files
(source_path, dest_path, verbose=False)[source]¶ ” Copy all files from one folder to another.
-
delete_files
(files_list)[source]¶ Delete the files at the file paths in the list. Also works with folders (ufo files).
-
get_names_from_path
(fontpath)[source]¶ Parse underscore(or hyphen)-separated font file names into
family
andstyle
names.
-
get_parameters_from_style
(style_name)[source]¶ Get individual parameters from the style name of a font.


Welcome
Project Breakpoint is a repository of web development and programming resources that I have found throughout the Internet. Here you can find references and tutorials to everything you'll need to be a successful web developer.
Starting web development can be a daunting task. It can clutter your browser's bookmarks. Things can get lost because there's so much out there. Here, I try to bring some of it together, in a more centralized location.
What can you find here?
Web development is a vast ecosystem. You think to yourself that you want to build a webpage, and it'll be simple right? Once you know the Holy Trinity (the HTML, the CSS and the Holy JavaScript), you're good to go. Right?
Except there's far more to it than that. There are the frameworks, like Vue, React and Angular. There's Babel and Webpack. There's version control with git and Github. There's server-side programming with Node.JS or Python. Do you
want to use flex box or grid, or to download Bootstrap? Keeping it all straight and knowing where to turn to can be a nightmare.
Here you'll find all the relevant resources for everything you need. There are references and tutorials and everything in between to help you learn and grow as a developer, and to try to keep the clutter to a minimum.
Please note, I am not paid for this. I am putting up things I found useful, or have come heavily recommended. I am also not endorsing any of the resources here, other than to say they're good to use. I am not here to promote Angular
over React or any other opinions like that, but to simply say hey, here are some useful things you might be interested in.
Oh, and there are games you can play, written on HTML Canvas


Welcome
Resume
View or download
Work samples
Check demo and code
Contact
Send an email
Work Samples
These applications are deployed using free-tier accounts. Everything should work. In case, if it did not work, please update me using the below form.


I'm excited to be a student again and absorb as much knowledge as possible. After gSchool, I hope to build my career and continue to pursue my interests of travel, exploration and organic farming. I hope to one day purchase land to grow/produce organic food.
The one word I hear most often when I talk to current and past gSchoolers is "Intense". I've been searching for a career change for a couple years and now that I've found it...


Providing Hope in the Dark
Speranza Cieca is Italian for 'Blind Hope'. We named it so as people with visual disabilities tend to feel lost, and we believe our device can act as light at the end of the tunnel.
As of 2020, the estimated Indian population is about 1.38 billion of which, nearly 40 million people are affected by visual impairment according to the National Library of Medicine. Despite the growing population of the visually challenged in India, medical and technological developments to aide them have been dormant. In addition, it is an established fact that the visually challenged are more prone to face mortal road accidents. Globally, the need for assistive technology continues to increase along with rise in the population of the visual disabled. India, with the highest blind population in the world, certainly needs to improve awareness and accelerate progress in production of assistive technology.
Following extensive research, our team identified an approach to curtail the number of road accidents encountered by the blind, using existing technical knowledge. We propose to provide individuals with blindness and visual impairment, a wearable device that will assist them in a wide range of daily activities, for instance, facilitating everyday living performance, increasing productivity, minimizing dependency, and improved inclusion in social events etc.
1. Python
2. C++
3. OpenCV
And other relevant libraries.
1. Hand Tracking Integration for GUI Optimization.
2. Text prompt at the rear of the device.
Have a look at the code that went into our product


Aman Dhattarwal is the founder of Apni Kaksha, which is a free online platform for learning Computer Sciences and Programming. He is the coordinator for Jaipur Foot USA and a Star Educator for IIT-JEE at Unacademy. He is a B.Tech. graduate from NSUT Delhi in Information Technology and alumni of Delhi Public School R.K. Puram. Aman Dhattarwal is an immensely popular educator, a youth icon and a career counselor. He is an excellent mentor for Off-campus placements.
He owns and runs two YouTube channels, having a large number of subscribers and viewership from last 4 years:
Aman Dhattarwal is an Influencer, Motivational Speaker and Career Counselor and has a large number of followers on India's largest online learning platform - Unacademy.
Interactive and comprehensive seminar on how to shape your B.Tech. into a very productive and result-oriented graduation program, discussion on Placement Scenario, preparation for Placements (especially Off-Campus Placements) and vital information and guidance about the Tech and IT world.
Note: College ID’s are compulsory.


spark_etl
index
/mnt/DATA_DISK/projects/spark_etl/src/spark_etl/__init__.py
Package Contents
application
build
deployers
(package)
exceptions
job_submitters
(package)
vendors
(package)


UK jobs market slows in third quarter
by Harry RobertsonThe number of people with a job in Britain fell by 58,000 in the third quarter, in the latest sign sign that the UK’s booming jobs market is slowing.
Wage growth came in below expectations, the Office for National Statistics (ONS) said, falling back to 3.6 per cent, down from 3.9 per cent in May to July.
The employment rate also fell by 0.1 percentage points, to stand at 76 per cent, the ONS said.
More to follow.