Data from: Density triggers maternal hormones that increase adaptive offspring growth in a wild mammal
Sources
Dantzer, B., Newman, A.E., Boonstra, R., Palme, R., Boutin, S., Humphries, M.M. and McAdam, A.G., 2013. Density triggers maternal hormones that increase adaptive offspring growth in a wild mammal. Science, p.1235765. Google Scholar
Dantzer B, Newman AEM, Boonstra R, Palme R, Boutin S, Humphries MM, McAdam AG (2013) Data from: Density triggers maternal hormones that increase adaptive offspring growth in a wild mammal. Dryad Digital Repository. https://doi.org/10.5061/dryad.b3h4q
Background
The study showed that North American red squirrel (Tamiasciurus hudsonicus) mothers from Yukon, Alaska produce faster growing pups in years with increased squirrel density. The researchers showed this mechanism is through increased plasma levels of the stress hormone cortisol, as measured by fecal cortisol metabolites (\(FCM\)) Remarkably, the researchers even showed that perceived (but not actual) density results in increased \(FCM\) and faster growing pups.
Reproducibility key
- Reproducibility: 1 (fails to reproduce). Not really close
- Reproducibility: 2 (reproduces to a similar value). Differences may be due to slightly different specification of model or to slight differences in data (case may be excluded or missing)
- Reproducibility: 3 (reproduces to decimal or random error). Differences due to rounding or stochastic part of estimation.
- Reproducibility: 3- (reproduces to something close to random error). Differences very small and due to either different specification or stochastic or maybe algorithmic differences between packages.
A “+” means that the precise method wasn’t specified and reproducibility required exploration.
Caveats
Failure to reproduce (level 1) or partial reproducibility (level 2 or 3-) very well 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. Similarly, my Red Flags may also represent my own lack of knowledge or best practices in statistics.
Reproducibility
Effect of spruce cone availability on local density (Fig. 1B)
# https://datadryad.org/resource/doi:10.5061/dryad.b3h4q
# data for Fig 1B/Table Sxxx
#
fn <- 'Spruce cone and density data.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
dt.fig_1B <- data.table(read.table(file_path, sep=',', header=TRUE))
# linear model
fit1B <- lm(Raw.Spring.Squirrel.Density ~ Previous.Year.Cones + Study.Area, data=dt.fig_1B[Treatment=='Control'])
coefficients(summary(fit1B))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.9374918 0.18445191 5.082581 7.720402e-06
## Previous.Year.Cones 0.2439928 0.05835227 4.181377 1.397226e-04
## Study.AreaSU 0.3960932 0.17957009 2.205786 3.279269e-02
fit1B <- lmer(Raw.Spring.Squirrel.Density ~ Previous.Year.Cones + (1|Study.Area), data=dt.fig_1B[Treatment=='Control'])
coefficients(summary(fit1B))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 1.1461764 0.2297727 1.796554 4.988307 0.0469107905
## Previous.Year.Cones 0.2387471 0.0581160 43.582876 4.108113 0.0001727167
fit1B <- lmer(Raw.Spring.Squirrel.Density ~ Treatment*Previous.Year.Cones + (1|Study.Area), data=dt.fig_1B)
coefficients(summary(fit1B))
## Estimate Std. Error df
## (Intercept) 1.14576783 0.22855800 1.765020
## TreatmentFood-add 0.82669396 0.45103679 2.959274
## Previous.Year.Cones 0.23894862 0.05697636 49.624582
## TreatmentFood-add:Previous.Year.Cones -0.03111909 0.19330192 49.065145
## t value Pr(>|t|)
## (Intercept) 5.013029 0.0481399455
## TreatmentFood-add 1.832875 0.1654632621
## Previous.Year.Cones 4.193821 0.0001128937
## TreatmentFood-add:Previous.Year.Cones -0.160987 0.8727646877
Effect of Density on growth rate (Fig. 2/Table S2)
Estimate, t, SE, and t reproduce but reported p-values are < 1/2 reproduced p-value. Is difference due to something other than lmerTest? Or are one-tailed p-values being used?
fn <- 'Table S2 - neonate mass and growth rate.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
dt.table_S2 <- data.table(read.table(file_path, sep=',', header=TRUE))
fit <- lmer(Offspring.Growth.Rate ~ Scaled.Litter.Size*Treatment + (1|Mom.Squirrel.ID), data=dt.table_S2, na.action="na.exclude")
coefficients(summary(fit))
## Estimate Std. Error df
## (Intercept) 1.51298116 0.08831902 46.52660
## Scaled.Litter.Size -0.36391553 0.07377151 48.37589
## TreatmentFood 0.20965110 0.13232061 46.35284
## TreatmentRattle -0.04179809 0.12792471 46.28037
## Scaled.Litter.Size:TreatmentFood 0.27905264 0.10977653 49.61728
## Scaled.Litter.Size:TreatmentRattle 0.23963092 0.12097980 47.62852
## t value Pr(>|t|)
## (Intercept) 17.1308647 1.005055e-21
## Scaled.Litter.Size -4.9330091 9.972827e-06
## TreatmentFood 1.5844176 1.198984e-01
## TreatmentRattle -0.3267398 7.453379e-01
## Scaled.Litter.Size:TreatmentFood 2.5420063 1.419241e-02
## Scaled.Litter.Size:TreatmentRattle 1.9807515 5.341028e-02
Effect of Density on fecal cortisol metabolites (Fig. 3/Table S4)
To begin to investigate how squirrel density during pregnancy could control the future growth rate of pups, Dantzer et al measured the relationship between local squirrel density (the variable \(Density\)) and the amount of fecal cortisol metabolites from pregnant mothers (the variable \(FCM\)). Cortisol is a hormone that is secreted as part of stress response. Dantzer et al were interested in cortisol because it is known that, in mammals, blood cortisol levels in pregnant mothers have numerous effects on offspring long past birth. If increased squirrel density causes increased blood cortisol levels, then we would expect to find a positive relationship between \(Density\) and \(FCM\).
Dantzer et al analyzed effect of \(Density\) on \(FCM\) with three different analyses.
\(Density\) as continuous \(X\). Modeled with a linear mixed model. The data are from individual, tagged squirrels from different populations and different years. About 1/2 the data is from experimental populations with supplemented food (peanut butter) to increase density. The model includes days post conception as a covariate and squirrel \(ID\) and \(Year\) are modeled with random intercepts.
Density as levels of \(Treatment\). The two levels are N (control) and Y (supplemental peanut butter). The data are the same as in part 1 so this is not a replication or alternative probing.
Density as perceived density \(Treatment\) with two levels: control (including both no manipulation and chickadee call manipulation) and rattle (rattle sound mimicking neighbor squirrels)
# Dantzer, B., Newman, A.E., Boonstra, R., Palme, R., Boutin, S., Humphries, M.M. and McAdam, A.G., 2013. Density triggers maternal hormones that increase adaptive offspring growth in a wild mammal. Science, p.1235765.
# https://datadryad.org/resource/doi:10.5061/dryad.b3h4q
# data for Fig 3A/Table S4
# fn <- 'Spruce cone and density data.csv'
fn <- 'FCM data dryad.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
fcmA <- data.table(read.table(file_path, sep=',', header=TRUE))
# replace labels with more codeable names. Separate to insure match
setnames(fcmA, old=c('Squirrel.ID'), new=c('ID'))
setnames(fcmA, old=c('Year.Sample.Collected'), new=c('Year'))
setnames(fcmA, old=c('FCM.ng.g.dry'), new=c('FCM'))
setnames(fcmA, old=c('Food.Add.Grid'), new=c('Treatment'))
setnames(fcmA, old=c('Raw.Squirrel.Density'), new=c('Density'))
setnames(fcmA, old=c('scaled.days.postconception'), new=c('Days_pc'))
fcmA[,Treatment:=factor(Treatment)]
#lmm - replicates! but weird as uses experimental data in this without Treatment as a variable
fit_A <- lmer(log(FCM) ~ Days_pc + Density + (1|Year) + (1|ID), data=fcmA, na.action="na.exclude")
table_part1 <- coefficients(summary(fit_A))
Part II
# categorical model as in Table S4 and Figure 3B - replicates!
# data same as in part 1 but re-analyzed as categorical
fit_B <- lmer(log(FCM) ~ Days_pc + Treatment + (1|Year) + (1|ID), data=fcmA)
table_part2 <- coefficients(summary(fit_B))
Part III
#Table S4, figure 3C - replicates
fn <- 'Table S4 - playback FCM data.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
fcmC <- data.table(read.table(file_path, sep=',', header=TRUE))
fcmC[,Treatment:=factor(Treatment)]
setnames(fcmC, old=c('Squirrel.Taglft'), new=c('ID'))
setnames(fcmC, old=c('FCM.ng.g.dry'), new=c('FCM'))
setnames(fcmC, old=c('scaled.days.postconception'), new=c('Days_pc'))
fit_C <- lmer(log(FCM) ~ Days_pc + Treatment + (1|ID), data=fcmC)
table_part3 <- coefficients(summary(fit_C))
Figure S3, which is the FCM as a function of treatment level (chickadee vs. rattle) prior to playback
#Supplement page 7 - methods in text, page 11 - Figure S3
fn <- 'before.playback.fcm.data.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
fcmC_pre <- data.table(read.table(file_path, sep=',', header=TRUE))
setnames(fcmC_pre, old=c('Raw.FCM.ng.g.dry'), new=c('FCM'))
setnames(fcmC_pre, old=c('Squirrel.Taglft'), new=c('ID'))
setnames(fcmC_pre, old=c('Days.Post.Conception'), new=c('Days_pc'))
fcmC_pre[,Treatment:=factor(Treatment)]
# model - why interaction here but not elsewhere? Note treatment effect bigger in additive model
fit3 <- lmer(log(FCM) ~ Days_pc*Treatment + (1|ID), data=fcmC_pre)
tableS3_rep <- coefficients(summary(fit3))
# compare to (t97 = -0.93, P = 0.17) from p. 11 of supplement
qplot(x=Treatment, y=log(FCM), data=fcmC_pre) + geom_boxplot() + geom_point()
Replicated results
The effects, SE, and t replicate but the my \(p\)-values are twice those of the authors, who must be reporting 1-tailed (directional) tests (I think). I don’t see that they have reported that they are using 1-tailed tests. My opinion is that one-tail tests are p-hacking.
table_part1
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.4524941 0.28002939 7.542026 23.042204 2.890592e-08
## Days_pc -0.1824745 0.05137771 100.999833 -3.551627 5.833920e-04
## Density 0.3498813 0.09603603 99.282303 3.643229 4.302866e-04
table_part2
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.8382198 0.19668958 3.994088 34.766558 4.144298e-06
## Days_pc -0.1853858 0.05039281 109.581887 -3.678814 3.649856e-04
## TreatmentY 0.5245187 0.13719083 88.318075 3.823278 2.448437e-04
table_part3
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.9032211 0.13132469 25.83827 52.566055 8.441762e-28
## Days_pc -0.2569544 0.09055173 42.04317 -2.837653 6.966651e-03
## TreatmentRattle 0.4148583 0.18485323 28.14264 2.244258 3.286125e-02
Effect of FCM on offspring growth rate (Table S5)
Estimate, SE, and t reproduce but p-values are 1/2 the published p-values or slightly smaller for FCM. The exception for reproducing is the SE for FCM, the published is 0.005, here is 0.006
fn <- 'Table S5 Results.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
dt.table_S5 <- data.table(read.table(file_path, sep=',', header=TRUE))
fit <- lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")
coefficients(summary(fit)) # what is "corrected about FCM?"
## Estimate Std. Error df t value
## (Intercept) 1.77491252 0.053608564 74.92607 33.108750
## Previous.Year.Cones -0.01054262 0.006939105 29.35603 -1.519306
## Current.Year.Cones -0.13259087 0.005189815 28.78765 -25.548284
## scaled.parturition.date -0.22654127 0.010555374 28.97003 -21.462175
## scaled.litter.size -0.35744641 0.010167806 29.26501 -35.154724
## Corrected.FCM.ng.g.dry 0.01187675 0.006134902 28.26211 1.935931
## Pr(>|t|)
## (Intercept) 1.768197e-46
## Previous.Year.Cones 1.393835e-01
## Current.Year.Cones 2.491383e-21
## scaled.parturition.date 2.475196e-19
## scaled.litter.size 1.714778e-25
## Corrected.FCM.ng.g.dry 6.293626e-02
Effect of experiment Cortisol on growth rate (Table S6)
fn <- 'Table S6 Results - neonate mass and growth rate.csv'
file_path <- paste(base_path, "data/", folder, "/",fn, sep="")
dt.table_S6 <- data.table(read.table(file_path, sep=',', header=TRUE))
# omitting rows with NA in growth rate
inc <- which(!is.na(dt.table_S6[, Offspring.Growth.Rate]))
dt.table_S6 <- dt.table_S6[inc, ]
fit <- lmer(Offspring.Growth.Rate ~ Scaled.Litter.Size + Treatment + (1|Litter.ID), data=dt.table_S6, na.action="na.exclude")
coefficients(summary(fit)) # what is "corrected about FCM?"
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 1.5268119 0.1207671 4.835752 12.642611 6.877259e-05
## Scaled.Litter.Size -0.2887911 0.1722111 5.056881 -1.676960 1.537366e-01
## TreatmentFed GCs 0.8623885 0.1730368 5.093247 4.983845 3.954668e-03
Red flags
Effect of Density on growth rate (Fig. 2/Table S2)
Growth rate is a change score and is confounded by the basline
The confounding makes no difference for these data.
refit <- lmer(Offspring.Growth.Rate ~ Offspring.Weight.1 + Scaled.Litter.Size*Treatment + (1|Mom.Squirrel.ID), data=dt.table_S2, na.action="na.exclude")
coefficients(summary(refit))
## Estimate Std. Error df
## (Intercept) 1.471438629 0.12787420 56.39640
## Offspring.Weight.1 0.002771434 0.00606961 71.94817
## Scaled.Litter.Size -0.358120930 0.07606083 46.60418
## TreatmentFood 0.198316039 0.13666141 44.82589
## TreatmentRattle -0.041872853 0.12996149 44.10187
## Scaled.Litter.Size:TreatmentFood 0.289923702 0.11391142 48.14306
## Scaled.Litter.Size:TreatmentRattle 0.235421757 0.12324987 45.50553
## t value Pr(>|t|)
## (Intercept) 11.5069231 1.999550e-16
## Offspring.Weight.1 0.4566082 6.493282e-01
## Scaled.Litter.Size -4.7083487 2.271096e-05
## TreatmentFood 1.4511488 1.537012e-01
## TreatmentRattle -0.3221943 7.488279e-01
## Scaled.Litter.Size:TreatmentFood 2.5451680 1.418100e-02
## Scaled.Litter.Size:TreatmentRattle 1.9101176 6.243249e-02
Figure 2 doesn’t make sense
Fig. 2 doesn’t make sense. If these are residuals from the model, there should be no Litter size or treatment (or any other) effect. I have plotted the raw growth rate against Scaled.Litter. Note the regression lines will be slightly different because they do not account for random effect of squirrel ID. Regardless, the lines are extremely close to the linear mixed modeled growth rates for each treatment at small litter size (n=2) and large litter size (n=5). This picture suggests a very different story. At best, one might say that treated growth rates are depressed, relative to control, at small litter size, and a bit elevated at large litter size. But the data are noisy, as indicated by p-values and there is a potential outlier in the control data at litter size = 2 (scaled.litter.size = -2.302608)
# plot raw litter size
qplot(x=Raw.Litter.Size, y=Offspring.Growth.Rate, color=Treatment, data=dt.table_S2) + geom_point() + geom_smooth(method='lm')
# scaled litter size
qplot(x=Scaled.Litter.Size, y=Offspring.Growth.Rate, color=Treatment, data=dt.table_S2) + geom_point() + geom_smooth(method='lm')
# compare modeled values from model at small and large end of scaled.litter.size
# mapping litter size to scaled litter size
# 1 = -3.369161 (n=1)
# 2 = -2.302608
# 3 = -1.2360545
# 4 = -0.1695011
# 5 = 0.8970522
# 6 = 1.9636056
b <- coefficients(summary(fit))[,'Estimate']
# at litter size = 2
modeled_GR <- data.table(Treatment=c('Control','Food','Rattle'),
Litter.eq.2=c(
b['(Intercept)'] + b['Scaled.Litter.Size']*-2.302608,
b['(Intercept)'] + b['TreatmentFood'] +
(b['Scaled.Litter.Size']+b['Scaled.Litter.Size:TreatmentFood'])*-2.302608,
b['(Intercept)'] + b['TreatmentRattle'] +
(b['Scaled.Litter.Size']+b['Scaled.Litter.Size:TreatmentRattle'])*-2.302608
),
Litter.eq.5=c(
b['(Intercept)'] + b['Scaled.Litter.Size']*0.8970522,
b['(Intercept)'] + b['TreatmentFood'] +
(b['Scaled.Litter.Size']+b['Scaled.Litter.Size:TreatmentFood'])*0.8970522,
b['(Intercept)'] + b['TreatmentRattle'] +
(b['Scaled.Litter.Size']+b['Scaled.Litter.Size:TreatmentRattle'])*0.8970522
))
modeled_GR # compare to plot
## Treatment Litter.eq.2 Litter.eq.5
## 1: Control 2.191785 1.267751
## 2: Food NA NA
## 3: Rattle NA NA
# compare to linear model
# fit_lm <- lm(Offspring.Growth.Rate ~ Scaled.Litter.Size*Treatment, data=dt.table_S2, na.action="na.exclude")
# coefficients(summary(fit_lm))
# so outling point is okay
Effect of Density on fecal cortisol metabolites (Fig. 3/Table S4)
one-tailed tests
The authors seem to be reporting p-values from one-tailed tests, but I cannot cofirm this because some of the p-values are < 1/2 two-tailed p. As stated above, I think one-tailed tests are p-hacking. Regardless, conclusions or a decision to publish a paper in Science shouldn’t rest on a p-value of 0.03 or 0.06. It also assumes that effects in the opposite direction cannot exist. If one has prior information on the direction of an effect then use this in a Bayesian model.
Forking paths
There is variation among the analyses. Sometimes \(Days_{pc}\) includes a quadratic component sometimes not. Some analysis are factorial \(Treatment \times Days_{pc}\) while others are additive. The analysis below shows no real consequences of obvious forking paths.
Effect of \(Density\) in Table S4 part 1 is robust to forking. Effect of \(Treatment\) is robust to forking.
# part 1
coefficients(summary(lmer(log(FCM) ~ Days_pc + Density + (1|Year) + (1|ID), data=fcmA)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.4524941 0.28002939 7.542026 23.042204 2.890592e-08
## Days_pc -0.1824745 0.05137771 100.999833 -3.551627 5.833920e-04
## Density 0.3498813 0.09603603 99.282303 3.643229 4.302866e-04
coefficients(summary(lmer(log(FCM) ~ Days_pc*Density + (1|Year) + (1|ID), data=fcmA)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.4691926 0.28212838 7.430512 22.929960 3.623945e-08
## Days_pc -0.3660636 0.12851697 101.140313 -2.848368 5.323964e-03
## Density 0.3387496 0.09568353 99.861099 3.540312 6.087485e-04
## Days_pc:Density 0.1143800 0.07340514 106.782157 1.558201 1.221445e-01
coefficients(summary(lmer(log(FCM) ~ Days_pc + I(Days_pc^2) + Density + (1|Year) + (1|ID), data=fcmA)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.5806186 0.29692007 7.621942 22.162929 3.381406e-08
## Days_pc -0.1631244 0.05182673 101.913805 -3.147495 2.159932e-03
## I(Days_pc^2) -0.1222862 0.05780901 103.176346 -2.115349 3.680775e-02
## Density 0.3410315 0.09440683 99.669783 3.612360 4.773518e-04
# part 2
coefficients(summary(lmer(log(FCM) ~ Days_pc + Treatment + (1|Year) + (1|ID), data=fcmA)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.8382198 0.19668958 3.994088 34.766558 4.144298e-06
## Days_pc -0.1853858 0.05039281 109.581887 -3.678814 3.649856e-04
## TreatmentY 0.5245187 0.13719083 88.318075 3.823278 2.448437e-04
coefficients(summary(lmer(log(FCM) ~ Days_pc*Treatment + (1|Year) + (1|ID), data=fcmA)))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00243083
## (tol = 0.002, component 1)
## Estimate Std. Error df t value
## (Intercept) 6.83813030 0.19851803 3.993849 34.445891
## Days_pc -0.20061691 0.06245203 95.958768 -3.212336
## TreatmentY 0.52245915 0.13727619 88.085352 3.805898
## Days_pc:TreatmentY 0.04538141 0.10849865 125.409245 0.418267
## Pr(>|t|)
## (Intercept) 4.302648e-06
## Days_pc 1.792659e-03
## TreatmentY 2.604578e-04
## Days_pc:TreatmentY 6.764673e-01
coefficients(summary(lmer(log(FCM) ~ Days_pc + I(Days_pc^2) + Treatment + (1|Year) + (1|ID), data=fcmA)))
## Warning in checkConv(attr(opt, "derivs"), opt$par, ctrl =
## control$checkConv, : Model failed to converge with max|grad| = 0.00278353
## (tol = 0.002, component 1)
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.9486337 0.21740513 4.54056 31.961682 1.606622e-06
## Days_pc -0.1673617 0.05103055 110.07199 -3.279638 1.392082e-03
## I(Days_pc^2) -0.1111941 0.05669668 113.46687 -1.961211 5.230438e-02
## TreatmentY 0.5000180 0.13495708 88.13342 3.705015 3.683492e-04
Confounding Density and Treatment in Fig 3A,B/Table S4
# residuals from Days_pc
fcmA[, FCM_residuals:=residuals(lm(log(FCM) ~ Days_pc, data=fcmA))]
qplot(x=Density, y=FCM_residuals, color=Treatment, data=fcmA) + geom_point() + geom_smooth(method='lm')
# residuals from lmm
fcmA[, FCM_p1_residuals:=residuals(fit_A)]
# qplot(x=Density, y=FCM_p1_residuals, color=Treatment, data=fcmA) + geom_point() + geom_smooth(method='lm')
Parts 1 and 2 are not independent tests of the hypothesis that density causes increased plasma cortisol, as these are the same data. Worse, \(Treatment\) confounds part 1 and \(Density\) confounds part 2. The effects of this confounding are seen with a simple scatterplot of the \(FCM\) against \(Density\) with points colored by \(Treatment\) and separate regressions fit to each level (Figure 1). If it were simply a density effect, the treated fit should not be elevated relative to the control data.
To unconfound these, instead of two models (parts 1 and 2), both \(Density\) and \(Treatment\) could be combined into the same model. (note: Does this raise colinearity issues? No the correlation is only moderate)
cor(fcmA$Density, as.integer(fcmA$Treatment), use='complete.obs')
## [1] 0.5727619
fit2 <- lmer(log(FCM) ~ Days_pc + Density + Treatment + (1|Year) + (1|ID), data=fcmA)
tableS4_part1 <- coefficients(summary(fit2))
tableS4_part1
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.5597001 0.26168633 8.799791 25.067034 1.726002e-09
## Days_pc -0.1805913 0.05107651 102.012639 -3.535701 6.132112e-04
## Density 0.2110846 0.11846792 113.302367 1.781787 7.746287e-02
## TreatmentY 0.3489604 0.17858017 96.717375 1.954082 5.357986e-02
Conclusion from the red-flag analysis.
\(Density\) has effect of .21 log(fcm)/squirrel-per-ha, which is 40% smaller effect than in model confounded by Treatment. Can this effect account for growth rate variation? \(Treatment\) has a 50% bigger effect than \(Density\) but this includes aspects of \(Treatment\) that are independent of \(Density\). The p-values for both are not strong evidence against a trivially small effect. This should be rigorously probed in follow-up experiments.
What is effect of ignoring Chickadee manipulation in Fig 3C/Table S4
The data for Figure 3C/Table S4 part 3 has Treatment levels “Control” and “Rattle” but the Control level includes squirrels that were given a Chickadee playback. In fact, very little of the data is control. The coding of which were truly Control and which were Chickadee is in the File for Figure S3, which is the data for FCM for pre-playback squirrels in Chickadee and Rattle treatment levels. I used the tag data to identify the “Controls” in the Table S4 data that were actually “Chickadee”.
# combine into single file with three treatment levels (control + chickadee + rattle) and two time levels (before, after)
# note that days_pc is scaled in fcmC but raw in fcmC_pre
fcmC_post <- copy(fcmC)
fcmC_pre[, Days_pc:=scale(Days_pc)]
temp <- match(fcmC_post$ID, fcmC_pre$ID)
fcmC_post[, Treatment_chick:=fcmC_pre[temp, Treatment]]
fcmC_post[, Treatment_chick:=factor(ifelse(is.na(Treatment_chick), as.character(Treatment), as.character(Treatment_chick)), c('Control', 'Chickadee', 'Rattle'))]
red flag: ID F3007/F3008 is coded as “Control” in the playback (Table S4) data but as “Rattle” in the pre-playback data (Figure S3)
I don’t know the correct code but if re-coded as in the pre-playback file, there is a 10% reduction in the estimated effect and the p-value is even less evidence against a trivially small effect.
# RED FLAG - ID F3007/F3008 is coded as "Control" in the playback data but as "Rattle" in the pre-playback data
fcmC_post[ID=='F3007']
## Treatment ID Squirrel.Tagrt FCM Days_pc Treatment_chick
## 1: Control F3007 F3008 1418.4352 -0.6100946 Rattle
## 2: Control F3007 F3008 234.8218 0.7643714 Rattle
fcmC_pre[ID=='F3007']
## Treatment Days_pc ID Squirrel.Tagrt FCM
## 1: Rattle -0.3607039 F3007 F3008 502.3092
## 2: Rattle 0.1341818 F3007 F3008 266.5438
## 3: Rattle 0.6290676 F3007 F3008 238.2549
## 4: Rattle 0.8411615 F3007 F3008 269.1402
## 5: Rattle 1.4067452 F3007 F3008 594.1501
# original coefficient table that replicates
coefficients(summary(lmer(log(FCM) ~ Days_pc + Treatment + (1|ID), data=fcmC_post)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.9032211 0.13132469 25.83827 52.566055 8.441762e-28
## Days_pc -0.2569544 0.09055173 42.04317 -2.837653 6.966651e-03
## TreatmentRattle 0.4148583 0.18485323 28.14264 2.244258 3.286125e-02
# recoded coefficient table with smaller effect
fcmC_post[, Treatment_F3007:=Treatment]
fcmC_post[ID=='F3007', Treatment_F3007:='Rattle']
coefficients(summary(lmer(log(FCM) ~ Days_pc + Treatment_F3007 + (1|ID), data=fcmC_post)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.948365 0.14200319 24.89544 48.931047 2.892276e-26
## Days_pc -0.248192 0.09286464 41.16290 -2.672621 1.073779e-02
## Treatment_F3007Rattle 0.301708 0.19236365 26.49396 1.568425 1.286494e-01
Red Flag: The plot and table show that the effect of playback on \(FCM\) seems to be a manipulation factor that is not specific to Rattle
fcmC_post[, logFCM_residuals:=residuals(lm(log(FCM)~Days_pc, data=fcmC_post), na.action="na.exclude")]
qplot(x=Treatment_chick, y=logFCM_residuals, data=fcmC_post) + geom_point()
qplot(x=Treatment_chick, y=logFCM_residuals, data=fcmC_post) + geom_point() + geom_point(data=fcmC_post[ID=="F3007"], color='red')
fit3 <- lmer(log(FCM) ~ Days_pc + Treatment_chick + (1|ID), data=fcmC_post)
## boundary (singular) fit: see ?isSingular
tableS4_part3_rf <- coefficients(summary(fit3))
tableS4_part3_rf
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 6.3428114 0.26941426 45 23.542969 6.164202e-27
## Days_pc -0.2395402 0.08845359 45 -2.708088 9.534125e-03
## Treatment_chickChickadee 0.8079943 0.30632885 45 2.637670 1.142121e-02
## Treatment_chickRattle 0.8974583 0.29419927 45 3.050512 3.822111e-03
Justification for using chickadee playback as “Control”
From the supplement “We combined females exposed to chickadee playbacks and those exposed to no playbacks from two control study areas because the chickadee playbacks did not affect FCM concentrations (LMM containing treatment, days post-conception, and days post- conception2 as fixed effect terms: t144 = -1.03, P = 0.15).”
Is this the chickadees that are “control” from the playback vs. control from TableS4 part1/2? No. I cannot recover this at all.
dt1 <- data.table(fcmA[Treatment=='N', .SD, .SDcols=c('ID', 'FCM', 'Days_pc')])
dt2 <- data.table(fcmC_post[Treatment_chick=='Chickadee', .SD, .SDcols=c('ID', 'FCM', 'Days_pc')])
dt <- rbind(data.table(dt1, Treatment='Control'), data.table(dt2, Treatment='Chickadee'))
dt[, FCM_residual:=residuals(lm(FCM~Days_pc, data=dt))]
qplot(x=Treatment, y=FCM_residual, data=dt) + geom_point()
coefficients(summary(lm(FCM ~ Days_pc + Treatment, data=dt)))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1521.49883 386.4230 3.9373915 0.000144143
## Days_pc -257.39515 146.3155 -1.7591792 0.081302537
## TreatmentControl 41.98725 419.4528 0.1001001 0.920445463
Summary of Red Flags for Figure 3/Table S4
- The results for Figure 3A,B/Table S4 parts 1 and 2 are confounded and a re-analysis adjusting for confounding finds that much of the “difference” is due to Treatment effects that are independent of Density.
- The results for Figure 3C/Table S4 part 3 have a coding error. I don’t know the correct code. If re-coded using pre-playback codes, then effect of Rattle playback is smaller.
- The result in Figure 3C/Table S4 part 3 masks a chickadee treatment level. A re-analysis with this coded as a distinct level indicates that the effect is common for both treatment manipulations and increased FCM is probably due to manipulation rather than “perception of density.”
Effect of FCM on offspring growth rate (Table S5)
# simple plot
qplot(x=Corrected.FCM.ng.g.dry, y=Offspring.Growth.Rate, data=dt.table_S5) +
geom_point() + geom_smooth(method='lm')
# refit without FCM to replot with FCM as only affect
refit <- lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.parturition.date + scaled.litter.size + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")
dt.table_S5[, GR_residual:=residuals(refit)]
qplot(x=Corrected.FCM.ng.g.dry, y=GR_residual, data=dt.table_S5) +
geom_point() + geom_smooth(method='lm')
# plot shows lots of noise but also interesting distribution of residuals. I would think resampling would not generate a p near 0.05. Look at CI of FCM in Table S5 - this suggests nothing is going on and p-value is biased
Simple Bootstrap of the fit
n <- nrow(dt.table_S5)
inc <- 1:n # first sample is the original
niter <- 100
xcols <- c('Previous.Year.Cones', 'Current.Year.Cones', 'scaled.parturition.date', 'scaled.litter.size', 'Corrected.FCM.ng.g.dry')
b_mat <- matrix(NA, nrow=niter, ncol=length(xcols))
colnames(b_mat) <- xcols
for(iter in 1:niter){
refit <- lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5[inc,], na.action="na.exclude")
b_mat[iter,] <- coefficients(summary(refit))[xcols,'Estimate']
inc <- sample(1:n, replace=TRUE)
}
apply(b_mat, 2, quantile, c(0.025, 0.975))
I don’t need a big bootstrap to see that my bootstrap CIs are consistent with the p-values but not consistent with published CIs. But the published CIs do not even cover the estimates for Current.Year.Cones, scaled.parturition.date, and scaled.litter.size.
From the lme4 documentation - “the new version of lme4 does not provide an mcmcsamp (post-hoc MCMC sampling) method, because this was deemed to be unreliable”
The effect size relative to noise looks very small…here are absolute effect sizes
fit <- lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")
b <- coefficients(summary(fit))[,'Estimate']
# b*3 is the difference in growth rate between low FCM and high FCM. Rate is per days. Rate is measured as difference 25 days apart, so the added growth to difference in rate is:
added_Growth <- b['Corrected.FCM.ng.g.dry']*3*25
# growth is in dt.table_S2
# Growth in the control group over 25 days is
growth <- dt.table_S2[Treatment=='Control', .(growth=mean(Offspring.Weight.2 - Offspring.Weight.1, na.rm=TRUE)), by=.(Raw.Litter.Size)]
growth[, augmented:=growth+added_Growth]
growth[, percent_augmented:=added_Growth/growth*100]
final_weight <- dt.table_S2[Treatment=='Control', .(weight=mean(Offspring.Weight.2, na.rm=TRUE)), by=.(Raw.Litter.Size)]
final_weight[, augmented:=weight+added_Growth]
final_weight[, percent_augmented:=added_Growth/weight*100]
Forking paths. Why all the covariates? This would be easier with an all subsets style alorithm but I’m just exploring.
coefficients(summary(lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## 0.011876747 0.006134902 28.262109264 1.935931152 0.062936265
coefficients(summary(lmer(Offspring.Growth.Rate ~ scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## -0.02675299 0.02668387 45.66990484 -1.00259032 0.32134129
coefficients(summary(lmer(Offspring.Growth.Rate ~ scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## -0.02841816 0.02585080 41.77158455 -1.09931472 0.27792646
coefficients(summary(lmer(Offspring.Growth.Rate ~ Current.Year.Cones + scaled.parturition.date + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## 0.013211543 0.006175567 29.036284827 2.139324861 0.040945014
coefficients(summary(lmer(Offspring.Growth.Rate ~ Current.Year.Cones + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## -0.02230390 0.02139864 43.25719276 -1.04230442 0.30306103
coefficients(summary(lmer(Offspring.Growth.Rate ~ Previous.Year.Cones + Current.Year.Cones + scaled.litter.size + Corrected.FCM.ng.g.dry + (1|Mom.Squirrel.ID), data=dt.table_S5, na.action="na.exclude")))["Corrected.FCM.ng.g.dry",]
## Estimate Std. Error df t value Pr(>|t|)
## -0.02114604 0.02154577 44.09884383 -0.98144711 0.33172633
Summary of Red flags
small effect in obersvational design
A p-value for an observational design with multiple, somewhat arbitrary covariates, that is near 0.05 just isn’t very strong evidence of anything causal. The Estimate is strongly dependent on which other covariates are in the model. Certainly there are missing confounders. See Walker 2014.
Table S5 CIs
- The published CIs of Currrent_cones, Parturtion_date, Litter_size do not even cover the estimate. This is a good example of how easy it is to get large errors through review - either because reviewers are overwhelmed or don’t pay enough attention to tables or enough attention to supplements.
- The published CIs are not at all consistent with the p-value (e.g. compare for FCM)
- Were I to simply look at the table, I would tend to have more confidence in bootstrap CI than the p-value but then my bootstrap CIs are much more consistent with the p-values. Given #1 and #2, something must be wrong with published CI.
- From the lme4 documentation: “the new version of lme4 does not provide an mcmcsamp (post-hoc MCMC sampling) method, because this was deemed to be unreliable”
- conclusion - this doesn’t effect the paper but … I am shocked, shocked, that the reviewers didn’t catch the very glaring differences in inference between the CIs and p-values.
How is FCM “corrected?”
These seem to be residuals, maybe from \(Days_pc\)?
Evidence of FCM effect is pretty small
The effect size is very small at least relative to the noise (figure @ref(fig:TableS5_Explore)). The absolute magnitude of added growth (from low to high end of FCM) is 0.89 grams, which adds about 1.9-3.3% to growth over 25 days (conditional on litter size and assuming the effect is independent of litter size). Or, .89 grams adds about 1.3-2.3% to final weight (again conditional on litter size). What are the ecological consequences these estimated gains?
Effect of experiment Cortisol on growth rate (Table S6)
Growth rate is a change score and the treatment effect is confounded by baseline
# baseline covariate
refit <- lmer(Offspring.Growth.Rate ~ Offspring.Weight.1 + Scaled.Litter.Size + Treatment + (1|Litter.ID), data=dt.table_S6, na.action="na.exclude")
coefficients(summary(refit)) # what is "corrected about FCM?"
## Estimate Std. Error df t value
## (Intercept) 1.508641661 0.23389957 3.021133 6.44995488
## Offspring.Weight.1 0.001391705 0.01470196 4.219810 0.09466122
## Scaled.Litter.Size -0.299844663 0.21798117 2.146699 -1.37555306
## TreatmentFed GCs 0.866356584 0.19263693 1.817887 4.49735467
## Pr(>|t|)
## (Intercept) 0.007398633
## Offspring.Weight.1 0.928910052
## Scaled.Litter.Size 0.294890657
## TreatmentFed GCs 0.054770785
# use averaged values within litters in a linear model with no random effects
dt <- dt.table_S6[, .(Offspring.Growth.Rate=mean(Offspring.Growth.Rate), Offspring.Weight.1=mean(Offspring.Weight.1), Scaled.Litter.Size=mean(Scaled.Litter.Size)), by=.(Treatment, Litter.ID)]
coefficients(summary(lm(Offspring.Growth.Rate ~ Scaled.Litter.Size + Offspring.Weight.1 + Treatment, data=dt)))
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1.82547930 0.21340091 8.554225 0.001025327
## Scaled.Litter.Size -0.12816234 0.18118507 -0.707356 0.518379316
## Offspring.Weight.1 -0.02283849 0.01418064 -1.610539 0.182568916
## TreatmentFed GCs 0.82592281 0.15195881 5.435175 0.005560769
The above is interesting because adding the baseline covariate does almost nothing to the estimate but radically changes the df. How does this compare to the observational estimate (numerically they are almost equal but I don’t what the denominator is in the experiment). On supplement P6, the authors state “females treated with cortisol had significantly higher maternal FCM concentrations during pregnancy (t29 = 1.99, P = 0.028, Fig. S1)” but a p-value isn’t what we want but the effect size!
qplot(x=Treatment, y=Offspring.Weight.1, color=Litter.ID, data=dt.table_S6) +
geom_point()
coefficients(summary(lmer(Offspring.Weight.1 ~ Scaled.Litter.Size + Treatment + (1|Litter.ID), data=dt.table_S6, na.action="na.exclude")))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 13.071800 3.337156 4.995890 3.9170476 0.01123333
## Scaled.Litter.Size 7.271697 4.709326 5.021647 1.5441054 0.18296741
## TreatmentFed GCs -1.935274 4.723992 5.025848 -0.4096691 0.69892536
qplot(x=Treatment, y=Offspring.Weight.2, color=Litter.ID, data=dt.table_S6) +
geom_point()
coefficients(summary(lmer(Offspring.Weight.2 ~ Scaled.Litter.Size + Treatment + (1|Litter.ID), data=dt.table_S6, na.action="na.exclude")))
## Estimate Std. Error df t value
## (Intercept) 48.56823036 3.331113 4.813254 14.58018272
## Scaled.Litter.Size -0.06693904 4.756061 5.056322 -0.01407447
## TreatmentFed GCs 20.86875974 4.779816 5.096354 4.36601701
## Pr(>|t|)
## (Intercept) 3.624375e-05
## Scaled.Litter.Size 9.893091e-01
## TreatmentFed GCs 6.936882e-03


Created by Jonathan Gold for the Wheels of Love 2012 Charity Ride for the children of the Alyn hospital.
For more information, regarding the hospital and the ride, please click here.
If you would like to sponsor my participation in the ride, you can send a donation via my profile page.


i.Fest, is the largest technical fest of Gujarat.
Over 20 events are organised, where established personalities are invited from every industry to interact and provide endeavouring insights to young minds. The focus is on bridging the gap between industries and budding engineers and the aim has been successfully accomplished for over a decade now.
IEEE WIE is the largest international professional group dedicated to provide the young women with a platform and inspire them to come up with excellence in the field of Engineering.
Through Tic Tech Toe, WIE DA-IICT aims to promote women participation and encourage them to hone their technical skills.
| 10 AM | Introduction to TicTechToe‘20 and Problem Statement Presentation |
| 10:30 AM | Finalize the Problem Statements, Team Formation & Brainstorm |
| 12 Noon | Eat. Code. Repeat 😋 |
| 1 PM | #HackTheXO Phase-1 |
| 5 PM | Submission of Phase-1 (Basic idea of what you are planning to do) |
| 6 PM | Speakers Session |
| 7:30 PM | Mentor’s Introduction to each team for #HackTheXO phases |
| 8 PM | Dinner Break |
| 9 PM | #HackTheXO Phase-2 |
| 7 AM | Submission of Phase-2 (Part Implemented till the end of Phase-2) |
| 8 AM |
Breakfast Break |
| 9 AM | #HackTheXO Phase-3 |
| 12 Noon | Lunch Break |
| 1 PM | #HackTheXO Final Phase |
| 4 PM | #HackTheXO Final Submission |
| 5 PM | Sell your Product - #HackTheXO |
| 8 PM | Dinner Break |
| 9 PM | Result Declaration & Closing Ceremony |
| 10 PM | #HackTheXO concludes, see you next year! |
We have partnered with Devfolio to provide you with the best experience all throughout Tic Tech Toe ‘20. Click on “Apply with Devfolio” to register yourself.
Team size should be 3-5.
This hackathon would require great team work so we expect you to come up with your friends/colleagues to bring out the best in you. You can not apply individually.
Tic Tech Toe is a 36 hour hackathon which will stretch from 7th November to 8th November 2020.
Go ahead and register, it’s free.
Registered participants will be shortlisted based on GitHub and LinkedIn profiles.
We offer winners the following prizes:
1st Prize: ₹15k, 2nd Prize: ₹10k, 3rd Prize: ₹5k.
Also complementary goodies and a great networking opportunity!
You must be a University/College student.


Publications
-
Doing More by Doing Less: How Structured Partial Backpropagation Improves Deep Learning Clusters-Adarsh Kumar, Kausik Subramanian, Shivaram Venkataraman, Aditya Akella, under submission
-
Accelerating Deep Learning Inference via Learned Cache-Adarsh Kumar, Arjun Balasubramanian, Yuhan Liu, Han Cao, Shivaram Venkataraman, Aditya Akella, under submission
-
Can Adversarial Weight Perturbations Inject Neural Backdoors?-Adarsh Kumar, Siddhant Garg, Vibhor Goel*, Yingyu Liang, CIKM-2020
-
MADST- Multi Attention Based Scalable Dialog State Tracking-Adarsh Kumar, Peter Ku, Anuj Goyal, Angeliki Metallinou, Dilek H. Tur, AAAI 2020
-
MultiWOZ 2.1: A Consolidated Multi-Domain Dialogue Dataset with State Corrections and State Tracking Baselines-Mihail Eric, Rahul Goel, Shachi Paul, Adarsh Kumar, Abhishek Sethi, Peter Ku, Anuj Goyal, Shuyang Gao, Dilek H. Tur, LREC 2020
-
Accelerating deep learning inference via freezing- Adarsh Kumar, Arjun Balasubramanian, Shivaram Venkataraman, Aditya Akella, HotCloud 2019
-
Translating Web Search Queries into Natural Language Questions- Adarsh Kumar, Sandipan Dandapat, Sushil Chordia, LREC 2020
Patents
- Predicting brand personality using textual content- Anandhavelu Natarajan, Niyati Himanshu Chhaya, R Sundararajan, Pradyot Prakash, Adarsh Kumar, Niloy Ganguly USPTO


org.apache.cocoon.generation
Class VelocityGenerator
java.lang.Object
|
+--org.apache.avalon.framework.logger.AbstractLoggable
|
+--org.apache.cocoon.xml.AbstractXMLProducer
|
+--org.apache.cocoon.generation.AbstractGenerator
|
+--org.apache.cocoon.generation.ComposerGenerator
|
+--org.apache.cocoon.generation.VelocityGenerator
- All Implemented Interfaces:
- org.apache.avalon.framework.component.Component, org.apache.avalon.framework.component.Composable, org.apache.avalon.framework.configuration.Configurable, Generator, org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.logger.Loggable, org.apache.velocity.runtime.log.LogSystem, org.apache.avalon.excalibur.pool.Poolable, org.apache.avalon.excalibur.pool.Recyclable, SitemapModelComponent, XMLProducer
- public class VelocityGenerator
- extends ComposerGenerator
- implements org.apache.avalon.framework.activity.Initializable, org.apache.avalon.framework.configuration.Configurable, org.apache.avalon.excalibur.pool.Recyclable, org.apache.velocity.runtime.log.LogSystem
Cocoon Generator
that produces dynamic XML SAX events
from a Velocity template file.
Sitemap Configuration
Attributes:
- usecache (optional; default: 'false')
- set to 'true' to enable template caching on the 'cocoon'
resource loader
- checkInterval (optional; default: '0')
- This is the number of seconds between modification checks when
caching is turned on. When this is an integer > 0, this represents
the number of seconds between checks to see if the template was
modified. If the template has been modified since last check, then
it is reloaded and reparsed. Otherwise nothing is done. When <= 0,
no modification checks will take place, and assuming that the
property cache (above) is true, once a template is loaded and
parsed the first time it is used, it will not be checked or
reloaded after that until the application or servlet engine is
restarted.
Child Elements:
- <property key="propertyKey" value="propertyValue"/> (optional; 0..n)
- An additional property to pass along to the Velocity template
engine during initialization
- <resource-loader name="loaderName" class="javaClassName" > (optional; 0..n; children: property*)
- The default configuration uses the 'cocoon' resource loader
which resolves resources via the Cocoon SourceResolver. Additional
resource loaders can be added with this configuration
element. Configuration properties for the resource loader can be
specified by adding a child property element of the resource-loader
element. The prefix '<name>.resource.loader.' is
automatically added to the property name.
- <export-object key="objectMapKey" name="velocityContextName"/> (optional; 0..n)
- Export the object specified by key from the Cocoon
object map to the Velocity context of the template. The object can
be accessed from the template as name. Be careful to use a
valid VTL variable name.
Default Java objects exported to the Velocity context:
- request (org.apache.cocoon.environment.Request)
- The Cocoon current request
- template (java.lang.String)
- The path of the template file currently being evaluated
- response (org.apache.cocoon.environment.Response)
- The Cocoon response associated with the current request
- context (org.apache.cocoon.environment.Context)
- The Cocoon context associated with the current request
- parameters (org.apache.avalon.framework.parameters.Parameters)
- Any parameters passed to the generator in the pipeline
Additional Java objects can be exported from the Cocoon object
map to the Velocity context by adding one or more <export-object
key="objectMapKey" name="velocityContextName"/> child elements
to the generator configuration in the sitemap.
- Version:
- CVS $Revision: 1.2 $ $Date: 2002/01/25 03:48:30 $
- Author:
- Davanum Srinivas, Michael McKibben
| Fields inherited from interface org.apache.velocity.runtime.log.LogSystem |
DEBUG_ID, DEBUG_ON, ERROR_ID, INFO_ID, WARN_ID |
| Fields inherited from interface org.apache.cocoon.generation.Generator |
ROLE |
|
Method Summary |
void |
configure(org.apache.avalon.framework.configuration.Configuration configuration)
Read any additional objects to export to the Velocity context
from the configuration. |
void |
generate()
Generate XML data using Velocity template. |
void |
init(org.apache.velocity.runtime.RuntimeServices rs)
This implementation does nothing. |
void |
initialize()
|
void |
logVelocityMessage(int level,
java.lang.String message)
Pass along Velocity log messages to our configured logger. |
void |
recycle()
Free up the VelocityContext associated with the pipeline, and
release any Source objects resolved by the resource loader. |
void |
setup(SourceResolver resolver,
java.util.Map objectModel,
java.lang.String src,
org.apache.avalon.framework.parameters.Parameters params)
Set the SourceResolver , object model Map ,
the source and sitemap Parameters used to process the request. |
| Methods inherited from class org.apache.avalon.framework.logger.AbstractLoggable |
getLogger, setLogger, setupLogger, setupLogger, setupLogger |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
VelocityGenerator
public VelocityGenerator()
configure
public void configure(org.apache.avalon.framework.configuration.Configuration configuration)
throws org.apache.avalon.framework.configuration.ConfigurationException
- Read any additional objects to export to the Velocity context
from the configuration.
- Specified by:
configure
in interface org.apache.avalon.framework.configuration.Configurable
- Parameters:
configuration
- the class configurations.- See Also:
Configurable.configure(org.apache.avalon.framework.configuration.Configuration)
initialize
public void initialize()
throws java.lang.Exception
- Specified by:
initialize
in interface org.apache.avalon.framework.activity.Initializable
- See Also:
Initializable.initialize()
setup
public void setup(SourceResolver resolver,
java.util.Map objectModel,
java.lang.String src,
org.apache.avalon.framework.parameters.Parameters params)
throws ProcessingException,
org.xml.sax.SAXException,
java.io.IOException
- Description copied from class:
AbstractGenerator
- Set the
SourceResolver
, object model Map
,
the source and sitemap Parameters
used to process the request.
- Overrides:
setup
in class AbstractGenerator
- See Also:
SitemapModelComponent.setup(org.apache.cocoon.environment.SourceResolver, java.util.Map, java.lang.String, org.apache.avalon.framework.parameters.Parameters)
recycle
public void recycle()
- Free up the VelocityContext associated with the pipeline, and
release any Source objects resolved by the resource loader.
- Specified by:
recycle
in interface org.apache.avalon.excalibur.pool.Recyclable
- Overrides:
recycle
in class AbstractGenerator
- See Also:
Recyclable.recycle()
generate
public void generate()
throws java.io.IOException,
org.xml.sax.SAXException,
ProcessingException
- Generate XML data using Velocity template.
- See Also:
Generator.generate()
init
public void init(org.apache.velocity.runtime.RuntimeServices rs)
throws java.lang.Exception
- This implementation does nothing.
- Specified by:
init
in interface org.apache.velocity.runtime.log.LogSystem
- See Also:
LogSystem.init(org.apache.velocity.runtime.RuntimeServices)
logVelocityMessage
public void logVelocityMessage(int level,
java.lang.String message)
- Pass along Velocity log messages to our configured logger.
- Specified by:
logVelocityMessage
in interface org.apache.velocity.runtime.log.LogSystem
- See Also:
LogSystem.logVelocityMessage(int, java.lang.String)
Copyright © 1999-2002 Apache Software Foundation. All Rights Reserved.


| opt_all_caps {gt} | R Documentation |
Sometimes an all-capitalized look is suitable for a table. With the
opt_all_caps()
function, we can transform characters in the column labels,
the stub, and in all row groups in this way (and there's control over which
of these locations are transformed).
opt_all_caps( data, all_caps = TRUE, locations = c("column_labels", "stub", "row_group") )
data |
A table object that is created using the |
all_caps |
A logical value to indicate whether the text transformation
to all caps should be performed ( |
locations |
Which locations should undergo this text transformation? By
default it includes all of the |
This function serves as a convenient shortcut for <gt_tbl> %>% tab_options(<location>.text_transform = "uppercase", <location>.font.size = pct(80), <location>.font.weight = "bolder")
(for all locations
selected).
An object of class gt_tbl
.
9-4
Other Table Option Functions:
opt_align_table_header()
,
opt_css()
,
opt_footnote_marks()
,
opt_row_striping()
,
opt_table_font()
,
opt_table_lines()
,
opt_table_outline()
# Use `exibble` to create a gt table with # a number of table parts added; all text # in the column labels, the stub, and in # all row groups is to be transformed to # all caps using `opt_all_caps()` tab_1 <- exibble %>% gt(rowname_col = "row", groupname_col = "group") %>% summary_rows( groups = "grp_a", columns = c(num, currency), fns = list( min = ~min(., na.rm = TRUE), max = ~max(., na.rm = TRUE) )) %>% grand_summary_rows( columns = currency, fns = list( total = ~sum(., na.rm = TRUE) )) %>% tab_source_note(source_note = "This is a source note.") %>% tab_footnote( footnote = "This is a footnote.", locations = cells_body(columns = 1, rows = 1) ) %>% tab_header( title = "The title of the table", subtitle = "The table's subtitle" ) %>% opt_all_caps()


| Package | Description |
|---|---|
| org.red5.server.net.rtmp | |
| org.red5.server.net.rtmp.codec | |
| org.red5.server.net.rtmpt | |
| org.red5.server.stream.consumer |
| Modifier and Type | Class and Description |
|---|---|
class |
RTMPMinaConnection
Represents an RTMP connection using Mina.
|
| Modifier and Type | Method and Description |
|---|---|
RTMPConnection |
IRTMPConnManager.createConnection(Class<?> connCls)
Creates a connection based on the given RTMPConnection class.
|
RTMPConnection |
RTMPConnManager.createConnection(Class<?> connCls) |
RTMPConnection |
RTMPConnManager.createConnectionInstance(Class<?> cls) |
protected RTMPConnection |
Channel.getConnection()
Getter for RTMP connection.
|
RTMPConnection |
IRTMPConnManager.getConnection(int clientId)
Returns a connection matching the given client id.
|
RTMPConnection |
RTMPConnManager.getConnection(int clientId) |
RTMPConnection |
IRTMPConnManager.getConnectionBySessionId(String sessionId)
Returns a connection matching the given session id.
|
RTMPConnection |
RTMPConnManager.getConnectionBySessionId(String sessionId) |
RTMPConnection |
IRTMPConnManager.removeConnection(int clientId)
Removes a connection matching the client id specified.
|
RTMPConnection |
RTMPConnManager.removeConnection(int clientId) |
| Modifier and Type | Method and Description |
|---|---|
Collection<RTMPConnection> |
IRTMPConnManager.removeConnections()
Removes all the connections from the set.
|
Collection<RTMPConnection> |
RTMPConnManager.removeConnections() |
| Modifier and Type | Method and Description |
|---|---|
void |
BaseRTMPHandler.connectionClosed(RTMPConnection conn,
RTMP state)
Connection closed
|
void |
IRTMPHandler.connectionClosed(RTMPConnection conn,
RTMP state)
Connection closed
|
void |
BaseRTMPHandler.connectionOpened(RTMPConnection conn,
RTMP state)
Connection open event
|
void |
IRTMPHandler.connectionOpened(RTMPConnection conn,
RTMP state)
Connection open event
|
protected void |
BaseRTMPHandler.handlePendingCallResult(RTMPConnection conn,
Notify invoke)
Handler for pending call result.
|
protected void |
RTMPHandler.invokeCall(RTMPConnection conn,
IServiceCall call)
Remoting call invocation handler.
|
void |
BaseRTMPHandler.messageSent(RTMPConnection conn,
Object message)
Message sent
|
void |
IRTMPHandler.messageSent(RTMPConnection conn,
Object message)
Message sent
|
protected abstract void |
BaseRTMPHandler.onChunkSize(RTMPConnection conn,
Channel channel,
Header source,
ChunkSize chunkSize)
Chunk size change event handler.
|
protected void |
RTMPHandler.onChunkSize(RTMPConnection conn,
Channel channel,
Header source,
ChunkSize chunkSize)
Chunk size change event handler.
|
protected void |
BaseRTMPHandler.onClientBandwidth(RTMPConnection conn,
Channel channel,
ClientBW message)
Client bandwidth / Peer bandwidth set event handler.
|
protected abstract void |
BaseRTMPHandler.onInvoke(RTMPConnection conn,
Channel channel,
Header source,
Notify invoke,
RTMP rtmp)
Invocation event handler.
|
protected void |
RTMPHandler.onInvoke(RTMPConnection conn,
Channel channel,
Header source,
Notify invoke,
RTMP rtmp)
Invocation event handler.
|
protected abstract void |
BaseRTMPHandler.onPing(RTMPConnection conn,
Channel channel,
Header source,
Ping ping)
Ping event handler.
|
protected void |
RTMPHandler.onPing(RTMPConnection conn,
Channel channel,
Header source,
Ping ping)
Ping event handler.
|
protected void |
BaseRTMPHandler.onServerBandwidth(RTMPConnection conn,
Channel channel,
ServerBW message)
Server bandwidth / Window ACK size event handler.
|
protected abstract void |
BaseRTMPHandler.onSharedObject(RTMPConnection conn,
Channel channel,
Header source,
SharedObjectMessage object)
Shared object event handler.
|
protected void |
RTMPHandler.onSharedObject(RTMPConnection conn,
Channel channel,
Header source,
SharedObjectMessage object)
Shared object event handler.
|
protected void |
BaseRTMPHandler.onStreamBytesRead(RTMPConnection conn,
Channel channel,
Header source,
BytesRead streamBytesRead)
Stream bytes read event handler.
|
| Constructor and Description |
|---|
Channel(RTMPConnection conn,
int channelId)
Creates channel from connection and channel id
|
| Modifier and Type | Method and Description |
|---|---|
void |
RTMPProtocolEncoder.setConnection(RTMPConnection conn)
Set the connection being used with this encoder
|
| Modifier and Type | Class and Description |
|---|---|
class |
BaseRTMPTConnection
Base RTMPT client / session.
|
class |
RTMPTConnection
A RTMPT client / session.
|
| Constructor and Description |
|---|
ConnectionConsumer(RTMPConnection conn,
int videoChannel,
int audioChannel,
int dataChannel)
Create rtmp connection consumer for given connection and channels
|
Copyright © 2005-2013. All Rights Reserved.


{% extends "base.html" %} {% load i18n %} {% block content %}
{% trans "Thanks for signing up! Please activate your account via the email link you have received" %}


| Package | sandy.core.data |
| Class | public final class Polygon |
| Implements | IDisplayable |
See also
| Property | Defined by | ||
|---|---|---|---|
| a : Vertex | Polygon | ||
| aEdges : Array
An array of the polygon's edges.
| Polygon | ||
| aNeighboors : Array
An array of polygons that share an edge with this polygon.
| Polygon | ||
| appearance : Appearance
The appearance of this polygon.
| Polygon | ||
| area : Number [read-only]
| Polygon | ||
| aUVCoord : Array | Polygon | ||
| broadcaster : BubbleEventBroadcaster
[read-only]
The broadcaster of the polygon that sends events to listeners.
| Polygon | ||
| caUVCoord : Array | Polygon | ||
| changed : Boolean [read-only]
| Polygon | ||
| container : Sprite [read-only]
The polygon's container.
| Polygon | ||
| cvertices : Array
An array of clipped vertices.
| Polygon | ||
| depth : Number
The depth of the polygon.
| Polygon | ||
| enableEvents : Boolean
Specifies whether mouse events are enabled for this polygon.
| Polygon | ||
| enableInteractivity : Boolean
Specifies whether
MouseEvent.ROLL_* events are enabled for this polygon. | Polygon | ||
| isClipped : Boolean = false
Specifies if the polygon has been clipped.
| Polygon | ||
| material : Material
[read-only]
Returns the material currently used by the renderer
| Polygon | ||
| minZ : Number
Minimum depth value of that polygon in the camera space
| Polygon | ||
| normal : Vertex | Polygon | ||
| POLYGON_MAP : Dictionary [static]
This property lists all the polygons.
| Polygon | ||
| scene : Scene3D | Polygon | ||
| shape : Shape3D
A reference to the Shape3D object this polygon belongs to.
| Polygon | ||
| uvBounds : Rectangle
The texture bounds.
| Polygon | ||
| vertexNormals : Array
An array of the polygon's vertex normals.
| Polygon | ||
| vertices : Array
An array of the polygon's original vertices.
| Polygon | ||
| visible : Boolean
Specifies whether the face of the polygon is visible.
| Polygon |
| Method | Defined by | ||
|---|---|---|---|
|
Polygon(p_oOwner:Shape3D, p_geometry:Geometry3D, p_aVertexID:Array, p_aUVCoordsID:Array = null, p_nFaceNormalID:Number = 0, p_nEdgesID:uint = 0)
Creates a new polygon.
| Polygon | ||
|
addEventListener(p_sEvent:String, oL:*):void
Adds an event listener to the polygon.
| Polygon | ||
|
clear():void
Clears the polygon's container.
| Polygon | ||
|
Clips the polygon.
| Polygon | ||
|
clipFrontPlane(p_oFrustum:Frustum):Array
Perform a clipping against the camera frustum's front plane.
| Polygon | ||
|
Returns the normal Point3D of the polygon.
| Polygon | ||
|
Returns the transformed normal Point3D of the polygon.
| Polygon | ||
|
destroy():void
Removes the polygon's container from the stage.
| Polygon | ||
|
display(p_oContainer:Sprite = null):void
Draws the polygon on its container if visible.
| Polygon | ||
|
get3DFrom2D(p_oScreenPoint:Point):Point3D
Returns a Point3D (3D position) on the polygon relative to the specified point on the 2D screen.
| Polygon | ||
|
getUVFrom2D(p_oScreenPoint:Point):UVCoord
Returns a UV coordinate elative to the specified point on the 2D screen.
| Polygon | ||
|
precompute():void
Computes several properties of the polygon.
| Polygon | ||
|
removeEventListener(p_sEvent:String, oL:*):void
Removes an event listener to the polygon.
| Polygon | ||
|
swapCulling():void
Changes which side is the "normal" culling side.
| Polygon | ||
|
toString():String
Returns a string representation of this object.
| Polygon | ||
|
updateNormal():void
| Polygon |
| Constant | Defined by | ||
|---|---|---|---|
| id : uint
The unique identifier for this polygon.
| Polygon |
| a | property |
public var a:Vertex
| aEdges | property |
public var aEdges:Array
An array of the polygon's edges.
| aNeighboors | property |
public var aNeighboors:Array
An array of polygons that share an edge with this polygon.
| appearance | property |
appearance:Appearance
[read-write]The appearance of this polygon.
Implementation public function get appearance():Appearance
public function set appearance(value:Appearance):void
| area | property |
area:Number
[read-only]Implementation
public function get area():Number
| aUVCoord | property |
public var aUVCoord:Array
| broadcaster | property |
broadcaster:BubbleEventBroadcaster
[read-only]The broadcaster of the polygon that sends events to listeners.
Implementation public function get broadcaster():BubbleEventBroadcaster
| caUVCoord | property |
public var caUVCoord:Array
| changed | property |
changed:Boolean
[read-only]Implementation
public function get changed():Boolean
| container | property |
container:Sprite
[read-only]The polygon's container.
Implementation public function get container():Sprite
| cvertices | property |
public var cvertices:Array
An array of clipped vertices. Check the isClipped
property first to see if this array will contain the useful data.
| depth | property |
depth:Number
[read-write]The depth of the polygon.
Implementation public function get depth():Number
public function set depth(value:Number):void
| enableEvents | property |
enableEvents:Boolean
[read-write]Specifies whether mouse events are enabled for this polygon.
To apply events to a polygon, listeners must be added with the addEventListener()
method.
public function get enableEvents():Boolean
public function set enableEvents(value:Boolean):void
See also
| enableInteractivity | property |
enableInteractivity:Boolean
[read-write]
Specifies whether MouseEvent.ROLL_*
events are enabled for this polygon.
To apply events to a polygon, listeners must be added with the addEventListener()
method.
public function get enableInteractivity():Boolean
public function set enableInteractivity(value:Boolean):void
See also
| isClipped | property |
public var isClipped:Boolean = false
Specifies if the polygon has been clipped.
| material | property |
material:Material
[read-only]Returns the material currently used by the renderer
Implementation public function get material():Material
| minZ | property |
public var minZ:Number
Minimum depth value of that polygon in the camera space
| normal | property |
normal:Vertex
[read-write]Implementation
public function get normal():Vertex
public function set normal(value:Vertex):void
| POLYGON_MAP | property |
public static var POLYGON_MAP:Dictionary
This property lists all the polygons.
This is a helper property since it allows all polygons of a scene to be retrieved from a single list by its unique identifier.
A polygon's unique identifier can be retrieved useing myPolygon.id
.
var p:Polygon = Polygon.POLYGON_MAP[myPolygon.id];
| scene | property |
scene:Scene3D
[read-write]Implementation
public function get scene():Scene3D
public function set scene(value:Scene3D):void
| shape | property |
public var shape:Shape3D
A reference to the Shape3D object this polygon belongs to.
| uvBounds | property |
public var uvBounds:Rectangle
The texture bounds.
| vertexNormals | property |
public var vertexNormals:Array
An array of the polygon's vertex normals.
| vertices | property |
public var vertices:Array
An array of the polygon's original vertices.
| visible | property |
public var visible:Boolean
Specifies whether the face of the polygon is visible.
| Polygon | () | constructor |
public function Polygon(p_oOwner:Shape3D, p_geometry:Geometry3D, p_aVertexID:Array, p_aUVCoordsID:Array = null, p_nFaceNormalID:Number = 0, p_nEdgesID:uint = 0)
Creates a new polygon.
Parametersp_oOwner:Shape3D — The shape the polygon belongs to.
|
|
p_geometry:Geometry3D — The geometry the polygon belongs to.
|
|
p_aVertexID:Array — An array of verticies of the polygon.
|
|
p_aUVCoordsID:Array (default = null ) — An array of UV coordinates of this polygon.
|
|
p_nFaceNormalID:Number (default = 0 ) — The faceNormalID of this polygon.
|
|
p_nEdgesID:uint (default = 0 ) — The edgesID of this polygon.
|
| addEventListener | () | method |
public function addEventListener(p_sEvent:String, oL:*):void
Adds an event listener to the polygon.
Parametersp_sEvent:String — The name of the event to add.
|
|
oL:* — The listener object.
|
| clear | () | method |
public function clear():void
Clears the polygon's container.
| clip | () | method |
public function clip(p_oFrustum:Frustum):Array
Clips the polygon.
Parametersp_oFrustum:Frustum |
Array — An array of vertices clipped by the camera frustum.
|
| clipFrontPlane | () | method |
public function clipFrontPlane(p_oFrustum:Frustum):Array
Perform a clipping against the camera frustum's front plane.
Parametersp_oFrustum:Frustum |
Array — An array of vertices clipped by the camera frustum's front plane.
|
| createNormal | () | method |
public function createNormal():Point3D
Returns the normal Point3D of the polygon.
ReturnsPoint3D —
The normal Point3D of the polygon.
|
| createTransformedNormal | () | method |
public function createTransformedNormal():Point3D
Returns the transformed normal Point3D of the polygon.
ReturnsPoint3D —
The transformed normal Point3D of the polygon.
|
| destroy | () | method |
public function destroy():void
Removes the polygon's container from the stage.
| display | () | method |
public function display(p_oContainer:Sprite = null):void
Draws the polygon on its container if visible.
Parametersp_oContainer:Sprite (default = null ) — The scene this polygon is rendered in.
|
| get3DFrom2D | () | method |
public function get3DFrom2D(p_oScreenPoint:Point):Point3D
Returns a Point3D (3D position) on the polygon relative to the specified point on the 2D screen.
Parametersp_oScreenPoint:Point |
Point3D —
A Point3D that corresponds to the specified point.
|
var screenPoint:Point = new Point(myPolygon.container.mouseX, myPolygon.container.mouseY); var scenePosition:Point3D = myPolygon.get3DFrom2D(screenPoint);
| getUVFrom2D | () | method |
public function getUVFrom2D(p_oScreenPoint:Point):UVCoord
Returns a UV coordinate elative to the specified point on the 2D screen.
Parametersp_oScreenPoint:Point |
UVCoord —
A the UV coordinate that corresponds to the specified point.
|
var screenPoint:Point = new Point(myPolygon.container.mouseX, myPolygon.container.mouseY); var scenePosition:Point3D = myPolygon.getUVFrom2D(screenPoint);
| precompute | () | method |
public function precompute():void
Computes several properties of the polygon.
The computed properties are listed below:
visible
minZ
depth
| removeEventListener | () | method |
public function removeEventListener(p_sEvent:String, oL:*):void
Removes an event listener to the polygon.
Parametersp_sEvent:String — The name of the event to remove.
|
|
oL:* — The listener object.
|
| swapCulling | () | method |
public function swapCulling():void
Changes which side is the "normal" culling side.
This method also swaps the front and back skins.
| toString | () | method |
public function toString():String
Returns a string representation of this object.
ReturnsString — The fully qualified name of this object.
|
| updateNormal | () | method |
public function updateNormal():void
| id | constant |
public const id:uint
The unique identifier for this polygon.


It looks like it's an e-book. Download it directly from Calibre by clicking on the cover or borrow a company
Kindle from the reception if it's in a Kindle format.
{% else %}
Current location: {{ book.current_location }}
NOTE: location information in Calibre might take a while to be updated.
{% endif %}


| cb.gblinear.history {xgboost} | R Documentation |
Callback closure for collecting the model coefficients history of a gblinear booster during its training.
cb.gblinear.history(sparse = FALSE)
sparse |
when set to FALSE/TURE, a dense/sparse matrix is used to store the result. Sparse format is useful when one expects only a subset of coefficients to be non-zero, when using the "thrifty" feature selector with fairly small number of top features selected per iteration. |
To keep things fast and simple, gblinear booster does not internally store the history of linear model coefficients at each boosting iteration. This callback provides a workaround for storing the coefficients' path, by extracting them after each training iteration.
Callback function expects the following values to be set in its calling frame:
bst
(or bst_folds
).
Results are stored in the coefs
element of the closure.
The xgb.gblinear.history
convenience function provides an easy way to access it.
With xgb.train
, it is either a dense of a sparse matrix.
While with xgb.cv
, it is a list (an element per each fold) of such matrices.
callbacks
, xgb.gblinear.history
.
#### Binary classification: # # In the iris dataset, it is hard to linearly separate Versicolor class from the rest # without considering the 2nd order interactions: require(magrittr) x <- model.matrix(Species ~ .^2, iris)[,-1] colnames(x) dtrain <- xgb.DMatrix(scale(x), label = 1*(iris$Species == "versicolor")) param <- list(booster = "gblinear", objective = "reg:logistic", eval_metric = "auc", lambda = 0.0003, alpha = 0.0003, nthread = 2) # For 'shotgun', which is a default linear updater, using high eta values may result in # unstable behaviour in some datasets. With this simple dataset, however, the high learning # rate does not break the convergence, but allows us to illustrate the typical pattern of # "stochastic explosion" behaviour of this lock-free algorithm at early boosting iterations. bst <- xgb.train(param, dtrain, list(tr=dtrain), nrounds = 200, eta = 1., callbacks = list(cb.gblinear.history())) # Extract the coefficients' path and plot them vs boosting iteration number: coef_path <- xgb.gblinear.history(bst) matplot(coef_path, type = 'l') # With the deterministic coordinate descent updater, it is safer to use higher learning rates. # Will try the classical componentwise boosting which selects a single best feature per round: bst <- xgb.train(param, dtrain, list(tr=dtrain), nrounds = 200, eta = 0.8, updater = 'coord_descent', feature_selector = 'thrifty', top_k = 1, callbacks = list(cb.gblinear.history())) xgb.gblinear.history(bst) %>% matplot(type = 'l') # Componentwise boosting is known to have similar effect to Lasso regularization. # Try experimenting with various values of top_k, eta, nrounds, # as well as different feature_selectors. # For xgb.cv: bst <- xgb.cv(param, dtrain, nfold = 5, nrounds = 100, eta = 0.8, callbacks = list(cb.gblinear.history())) # coefficients in the CV fold #3 xgb.gblinear.history(bst)[[3]] %>% matplot(type = 'l') #### Multiclass classification: # dtrain <- xgb.DMatrix(scale(x), label = as.numeric(iris$Species) - 1) param <- list(booster = "gblinear", objective = "multi:softprob", num_class = 3, lambda = 0.0003, alpha = 0.0003, nthread = 2) # For the default linear updater 'shotgun' it sometimes is helpful # to use smaller eta to reduce instability bst <- xgb.train(param, dtrain, list(tr=dtrain), nrounds = 70, eta = 0.5, callbacks = list(cb.gblinear.history())) # Will plot the coefficient paths separately for each class: xgb.gblinear.history(bst, class_index = 0) %>% matplot(type = 'l') xgb.gblinear.history(bst, class_index = 1) %>% matplot(type = 'l') xgb.gblinear.history(bst, class_index = 2) %>% matplot(type = 'l') # CV: bst <- xgb.cv(param, dtrain, nfold = 5, nrounds = 70, eta = 0.5, callbacks = list(cb.gblinear.history(FALSE))) # 1st forld of 1st class xgb.gblinear.history(bst, class_index = 0)[[1]] %>% matplot(type = 'l')


This is a documentation page demo for an API, you can use it for your own purposes if you want to showcase your API or some other kind of documentation for your app. The info shown here is merely for the demo so it is not real.
You can edit the code with anything you like and use only the languages that you want, the code syntax highlighting is made using highlightjs.org and supports a good variety of languages. Comes with some color schemes by default but you can easily customize the scheme of each language directly from the CSS.
# All this code is just for demonstration purposes React.api_key = "In here goes your api key!"
# All this code is just for demonstration purposes react.api_key = "In here goes your api key!"
# All this code is just for demonstration purposes React::setApiKey("In here goes your api key!");
It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
class A < B def self.create(object = User) return object end def full_name return "#{self.first_name} #{self.last_name}" end end
class Mapping: def __init__(self, iterable): self.items_list = [] self.__update(iterable) def update(self, iterable): for item in iterable: self.items_list.append(item)
class myClass { var $input; var $output; function myClass($input) { $output = 'You entered: ' . $input; return $output; } }
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
React::Game.create( :name => "Super Mario Bros", :company => "Nintendo", :some_key => "yey_JA390094AWPIWWN435", :rating => 100 )
react.Game.create( name="Super Mario Bros", company="Nintendo", some_key="yey_JA390094AWPIWWN435" rating=100 )
React_Charge::create(array( "name" => "Super Mario Bros", "company" => "Nintendo", "some_key" => "yey_JA390094AWPIWWN435" "rating" => 100 ));
# Object Response { "object": "Game", "name": "Super Mario Bros", "company": "Nintendo", "some_key": "yey_JA390094AWPIWWN435", "rating": 100 "description": { "some_desc1": null, "some_desc2": null, "some_desc3": null, "some_desc4": null, } "valid": true, "other_field": null }
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
React::User.create( :name => "John McClane", :email =><EMAIL_ADDRESS>:country => "US", :some_key => "yey_JA390094AWPIWWN435", :age => 53 )
react.User.create( name="John McClane"<EMAIL_ADDRESS>country="US", some_key="yey_JA390094AWPIWWN435", age=53 )
React_User::create(array( "name" => "John McClane", "email" =><EMAIL_ADDRESS>"country" => "US", "some_key" => "yey_JA390094AWPIWWN435", "age" => 53 ));
# Object Response { "object": "User", "name": "John McClane", "email"<EMAIL_ADDRESS>"country": "US", "some_key": "yey_JA390094AWPIWWN435", "age": 53 "address": { "address_line1": null, "address_line2": null, "address_city": null, "address_state": null, "address_zip": null, "address_country": null } "valid": true, "description": null }
It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
React::Order.create( :item => "React Bootstrap Theme", :price => 1500, :name => "John McClane", :email =><EMAIL_ADDRESS>:country => "US", :some_key => "yey_JA390094AWPIWWN435", :age => 53 )
react.User.create( item="React Bootstrap Theme", price=1500, name="John McClane"<EMAIL_ADDRESS>country="US", some_key="yey_JA390094AWPIWWN435", age=53 )
React_User::create(array( "item" => "React Bootstrap Theme", "price" => 1500, "name" => "John McClane", "email" =><EMAIL_ADDRESS>"country" => "US", "some_key" => "yey_JA390094AWPIWWN435", "age" => 53 ));
# Object Response { "object": "Order", "item": "React Bootstrap Theme", "price": 1500, "name": "John McClane", "email"<EMAIL_ADDRESS>"country": "US", "some_key": "yey_JA390094AWPIWWN435", "age": 53 "address": { "address_line1": null, "address_line2": null, "address_city": null, "address_state": null, "address_zip": null, "address_country": null } "valid": true, "description": null }
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
200 OK - Everything worked.
400 Bad Request - The request was badly built
401 Unauthorized - Some other message
402 Request Failed - The request failed
404 Not Found - Doesn't exist
500, 502, 503, 504 Server errors


Sly Cooper Recreation (February 2016)
This was the first website I did to test my basic knowledge of HTML and CSS.
Below is work that I've done as a Front End Web Designer, each site is able to be viewed by clicking on the link. After learning HTML, CSS, and Javascript in school, I began applying my skills for community projects.
This was the first website I did to test my basic knowledge of HTML and CSS.
This fully functional website was a recreation of the 1998 Starfox64 website that had degraded over the years.
This website was created for the Animal Humane Society. Using HTML and CSS.
This was a design and code case study of the tablet version of Gaming Illuminaughty.com
This fully functional website was done as part of my internship as a Front End Web Developer for Roosevelt's Youth Basketball program.
This was fully function site was done for Anthony San to advertise his services as a Breakdance Instructor


The
time datetime
Date element
this is the date created or date update of this current page,
with a full date inside code for internet search engine
YYYY-MM-DD
31 march
special date
31/03/2022 01:00
.
The
time datetime
Time element
HH:MM
20:00
total hours total miniatures
2h 30m
Working Hours from
10:00
to
19:00
every day.


Disclosure of contracts over $10,000
Information identified as archived is provided for reference, research or recordkeeping purposes. It is not subject to the Government of Canada Web Standards and has not been altered or updated since it was archived. Please contact us to request a format other than those available.
| Vendor Name: | PRECISIONIT INC. |
|---|---|
| Reference Number: |<PHONE_NUMBER> |
| Contract Date: | 2014-01-29 |
| Description of Work: | 473 - Information Technology and Telecommunications Consultants |
| Contract Period: | 2014-01-29 to 2015-07-31 |
| Contract Value: | (a) $922,336.45 |
| Comments: | This contract includes one or more amendments. / This contract was competitively sourced. |
| Additional description: | TBIPS Tester |
Note: A "Contract Value" marked with (a) represents an amendment to the contract value.
Definition of the comments field.


Anthony's Gourmet Pizzas
Please enter your selections below
Size (Small-$10 Medium-$12 Large-$14 X-Large-$16)
Small
Medium
Large
X-Large
Toppings ($1 each)
Cheese
Sausage
Pepperoni
Artichoke
Bell Peppers
Tomatoes
Olives
Onions
Total cost (+tax): $
Submit


This application is meant to help users keep in check with their Taxes.
This timer works to help clients know there deadline day set at the end of the month
TaxApp
Nairobi | Kenya
00100, Nairobi
<EMAIL_ADDRESS>bkiplimo@princeton
<EMAIL_ADDRESS>Joannsaj@gmail.com


The stack is now setup and ready to use. Create a new City
entity and insert it into the context. This is done by calling insertNewObjectForEntityForName
on NSEntityDescription
and including the name of the entity and the context that should create it. This will return an NSManagedObject
instance for our entity. We can then set attribute values on the entity using key paths. A typical app, with a more complex data model, may create subclasses of NSManagedObject
for specific entities and set attributes using instance variables instead of key paths.


---
title: Computational Biology
ref: comp-bio
image: bio.png
description: "In this project we develop accurate computational approaches to biological problems."
---
Tools
{% include card.html
title="AStarix: Fast and Optimal Sequence-to-Graph Alignment"
output="vertical"
url="https://github.com/eth-sri/astarix"
image="/assets/systems/astarix.png"
description="AStarix is a sequence-to-graph semi-global aligner based on A* shortest path algorithm. It supports general graphs and finds alignments that are optimal according to edit-distance with non-negative weights."
%}
Publications
{% include get-publications.html filter="project" key="computational-biology" %}


{% load static %}
MyLibrary
Authors
Types of books
Books
Done To Read Book
To Read Book
Wishlist
Current Reading Book
Books Lister
{% for book in some_books %}
{{ book.title }}
{{ book.author }}
{% endfor %}
Some Read Books
{% for book in some_read_books %}
{{ book.title }}
{{ book.author }}
{% endfor %}
Unread books
{% for book in some_unread_books %}
{{ book.title }}
{{ book.author }}
{% endfor %}
Wishlist
{% for book in some_books_wishlist %}
{{ book.title }}
{{ book.author }}
{% endfor %}


{% extends "main_app/common.html" %} {% load static %} {% block content %}
We’ve emailed you instructions for setting your password, if an account exists with the email you entered. You should receive them shortly.
If you don’t receive an email, please make sure you’ve entered the address you registered with, and check your spam folder.


Steve is a web developer.
He's a graduate of @devbootcamp.
Steve is currently looking for challenging full-time opportunities in Chicago.


learning stage
Welcome to my first website! Here are some things I enjoy.
Here is a favourite quote of mine. Which influences my life.
...and another which makes life simple.


--- title: 'Fun Data' author: Susan Vanderplas date: '2019-11-11' slug: [] draft: true categories: - R - Graphics tags: - data - fun image: caption: '' focal_point: '' ---
This is mostly an exploration of the different data sets available in the data-is-plural archive, to play around and see what they might be used for.
nukes <- read_csv("https://raw.githubusercontent.com/data-is-plural/nuclear-explosions/master/data/oklahoma-catalog-explosions.csv")
nukes <- nukes %>%
mutate(date = parse_date_time2(as.character(date), "%y%m%d", cutoff_2000 = 44)) %>%
mutate(yield = parse_number(explosive_yield))
nukes %>%
# filter(testing_party == "US") %>%
ggplot(aes(x = date, y = as.numeric(yield))) +
geom_point() +
coord_cartesian(ylim = c(0, 1000)) +
facet_wrap(~testing_party)
library(readxl)
library(historydata) # devtools::install_github("ropensci/historydata")
data("us_state_populations")
beer <- tempfile(fileext = ".xls")
download.file("https://www.ttb.gov/images/pdfs/foia_count-by-state/q3_brewery_count_by_state_1984_september2019.xls", destfile = beer)
brewery <- read_xls(beer, skip = 7, n_max = 53) %>%
rename(State = ...1) %>%
filter(State != "STATE") %>%
mutate_at(vars(matches("\\d{4}")), ~str_replace(., "\\*", "0")) %>%
mutate_at(vars(matches("\\d{4}")), as.numeric) %>%
select(State, matches("^\\d{4}")) %>%
pivot_longer(-1, names_to = "year", names_ptypes = list(year = integer()), values_to = "breweries") %>%
filter(!is.na(breweries))
wine <- tempfile(fileext = ".xlsx")
download.file("https://www.ttb.gov/images/pdfs/foia_count-by-state/q3-bonded-wine-producers-by-state-1999-june-2019.xlsx", destfile = wine)
winery <- read_xlsx(wine, skip = 8, n_max = 53) %>%
rename(State = ...1) %>%
filter(State != "STATE") %>%
mutate_at(vars(matches("\\d{4}")), ~str_replace(., "\\*", "0")) %>%
mutate_at(vars(matches("\\d{4}")), as.numeric) %>%
select(State, matches("^\\d{4}")) %>%
pivot_longer(-1, names_to = "year", names_ptypes = list(year = integer()), values_to = "wineries") %>%
filter(!is.na(wineries))
ggplot(brewery, aes(x = year, y = breweries, group = State)) + geom_line()
ggplot(winery, aes(x = year, y = wineries, group = State)) + geom_line()
alc_prod <- full_join(brewery, winery)
alc_prod <- us_state_populations %>%
left_join(tibble(state = c(state.name, "District Of Columbia"),
State = c(state.abb, "DC"))) %>%
rename(census_year = year) %>%
right_join(
alc_prod %>%
mutate(census_year = floor(year/10)*10)
) %>%
mutate(beer_per_100k = breweries/(population/100000),
wine_per_100k = wineries/(population/100000))
alc_prod %>%
ggplot(aes(x = year, y = beer_per_100k, group = State)) + geom_line()
alc_prod %>%
ggplot(aes(x = year, y = wine_per_100k, group = State)) + geom_line()


The following tables provide a overview of the regular expressions syntax. See also Python regular expressions description in the Python re module.
| Special Characters | Description |
|---|---|
| . | Matches any character (dot). |
| ^ | “^...”, matches start-of-string (caret). |
| $ | ”...$”, matches end-of-string (dollar sign). |
| | | “A|B”, matches “A” or “B”. |
| \ | Escape character. |
| \. | EXAMPLE: Matches character ‘.’ (dot). |
| \\ | EXAMPLE: Matches character ‘\‘ (backslash). |
To select or match characters from a special set of characters, a character set must be defined.
| Character sets | Description |
|---|---|
| [...] | Define a character set, like [A-Za-z]. |
| \d | Matches digit character: [0-9] |
| \D | Matches non-digit character. |
| \s | Matches whitespace character: [ \t\n\r\f\v] |
| \S | Matches non-whitespace character |
| \w | Matches alphanumeric character: [a-zA-Z0-9_] |
| \W | Matches non-alphanumeric character. |
A text part must be group to extract it as part (parameter).
| Grouping | Description |
|---|---|
| (...) | Group a regular expression pattern (anonymous group). |
| \number | Matches text of earlier group by index, like: “\1”. |
| (?P<name>...) | Matches pattern and stores it in parameter “name”. |
| (?P=name) | Match whatever text was matched by earlier group “name”. |
| (?:...) | Matches pattern, but does non capture any text. |
| (?#...) | Comment (is ignored), describes pattern details. |
If a group, character or character set should be repeated several times, it is necessary to specify the cardinality of the regular expression pattern.
| Cardinality | Description |
|---|---|
| ? | Pattern with cardinality 0..1: optional part (question mark). |
| * | Pattern with cardinality zero or more, 0.. (asterisk). |
| + | Pattern with cardinality one or more, 1.. (plus sign). |
| {m} | Matches m repetitions of a pattern. |
| {m,n} | Matches from m to n repetitions of a pattern. |
| [A-Za-z]+ | EXAMPLE: Matches one or more alphabetical characters. |


?£3
Ludwigia
repens
Forst,
P.
H.
Raven
&
C.
L.
Schmidt
1966-67
*t>j\
THE
NEW
YORK
BOTANICAL
GARDEN
EXPLORATION
OF
THE
BAHAMAS
/>
/**¥/]
Great
Bahama
mo.
-'¥yyf:
\c£j
o
stf
YWL.
YORK
BOTANICAL
GARDEN
N.
L
Britton
i
C.
F.
Millspaugh
f
01447553
WMM
6
7
8
9
10
T
XT
v
The
New
York
copyright
reserved
botanical
Garden
01447553
Legend -
Level of confidence that token is an accurately-transcribed word
extremely low
very low
low
undetermined
medium
high
very high


Lorem Ipsum is a dummy text that is mainly used by the printing and design industry. It is intended to show how the type will look before the end product is available.
Lorem Ipsum has been the industry's standard dummy text ever since the 1500:s, when an unknown printer took a galley of type and scrambled it to make a type specimen book.
Ready to start your next project with us? That's great! Give us a call or send us an email and we will get back to you as soon as possible!
123-456-6789


Add a Rails Env to your Vagrant Server
Vagrant
A great server to contain all of your ruby+rails projects for better workflow development:
#!/usr/bin/env bash
# upgrade and update the system
echo upgrading and updating the system
sudo apt-get update
sudo apt-get -y upgrade
# install node.js for js runtime when using Rails
echo installing nodejs for ExecJS runtime and git
sudo apt-get install -y nodejs
sudo apt-get install -y git
# install RVM
echo installing RVM
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
\curl -sSL https://get.rvm.io | bash -s stable
source /home/vagrant/.rvm/scripts/rvm
rvm requirements
# install Ruby and make 2.3.1 the default
echo installing ruby
rvm install 2.3.1
rvm use 2.3.1 --default
# install Bundler and Rails
echo installing bundler and rails
gem install bundler --no-ri --no-rdoc
gem install rails -v 4.2.7 --no-ri --no-rdoc
# install postgres and its dependencies
echo installing psql and its dependencies
sudo apt-get install -y postgresql postgresql-contrib libpq-dev
Make sure your Vagrantfile has some of this options so we can port forward (open traffic in specific ports)
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.network "forwarded_port", guest: 3000, host: 3000, host_ip: "<IP_ADDRESS>"
config.vm.provision :shell, path: "bootstrap.sh", privileged: false
config.vm.provider "virtualbox" do |vb|
vb.customize ["modifyvm", :id, "--memory", "2048"]
vb.customize ["modifyvm", :id, "--cpus", "2"]
end
end
Finally, run these commands so your vagrant server can run the script and configure your development server:
$ vagrant halt
==> default: Attempting graceful shutdown of VM...
$ vagrant up --provision


Mark Jackson among candidates in potential Knicks' coaching search
by Marcelo VillaWith news coming out on Monday of the Knicks laying the groundwork to fire coach David Fizdale after a poor start to the season, we’re learning of the potential candidates that could soon take over in New York, and one of them is a familiar face to Knicks fans.
Mark Jackson, the former point guard and coach, who had multiple stints in New York during his playing days, is apparently a name to watch if the Knicks move on from Fizdale, according to Sports Illustrated’s Chris Mannix.
On top of a long playing career, Jackson also coached the Golden State Warriors for three seasons in which he went 121-109 before getting replaced by Steve Kerr. Jackson’s name has come up frequently in recent coaching searches, and the Knicks do seem like a fit for him.
We’ll see if he leaves the splendors of being a TV analyst to get back into coaching.


Millom Computers: Service and Support
Providing a technical call-out based service for personal computers in the Millom area.
Comprehensive Support Services
Hardware & Software
Diagnostics, servicing, and repair - see below for an overview of our services.
Local Area Coverage
Millom & Surroundings
Our main service area is Millom and South Copeland, please enquire for further afield.
Multi-platform Support
Windows & MacOS
Proficiency in Windows XP onwards, and knowledge of MacOS.
After Hours Service
Evenings & Weekends
We undertake most jobs during the evenings or weekends to fit around work commitments.


This is the top panel safe zone. All critical artwork should be kept in the frosted white safe zone. Color can be printed edge-to-edge.
Do not place any artwork or text in the ink free area. Address and postage will be automatically printed here by Lob.
This is the bottom panel safe zone. All critical artwork should be kept in the blue safe zone. Color can be printed edge-to-edge.


Back
Product Management Links
A Product Manager’s Job
Becoming a Product Manager
User Research
Personas
Product Strategy
Roadmapping
Agile Methodologies
Product Launch
Data and Analytics
Design Sprint
Prototyping
Usability Tests
Working with Engineers
Team Organization
Leadership
Becoming Great
Agile Methodologies
Agile is a time boxed, iterative approach to software delivery that builds software incrementally from the start of the project, instead of trying to deliver it all at once near the end.
Articles
What is Scrum?
Multiple Authors
How We Build Products at Asana
Jackie Bavaro
Dual-Track Agile
Jacob De Lichtenberg
How We Structure Our Teams At Basecamp
Jason Fried
Replacing The User Story With The Job Story
Alan Klement
When, Which … Design Thinking, Lean, Design Sprint, Agile?
Geert Claes
Why Agile Isn’t Working and What We Do Differently
Ryan Singer
The Typeform Product Playbook
Sebastien Phlix
The Most Important Thing Dropbox Did to Scale Product Management
Sean Lynch
The Power of the Elastic Product Team — Airbnb’s First PM on How to Build Your Own
Jonathan Golden
The Double Diamond: Strategy + Execution of the Right Solution
Jonny Schneider
The One Cost Engineers and Product Managers Don't Consider
Kris Gale
Articles on Building Great Products
How to Build Great Products
Slava Akhmechet
Make Things as Simple as Possible But Not Simpler
Adam Nash
10 Essential Steps to Create Products that Customers Love
Laurence McCahill
The Power of the Perfect Slice
Alastair Lee
Ten Principles on the Journey to Building Great Products
Avid Larizadeh
Quality is Not a Tradeoff
Julie Zhuo
How to Build Products Users Love
Kevin Hale
How to Build a Minimum Loveable Product
Laurence McCahill
Podcasts
Matt Bilotti on The Burndown Framework
Product to Product
Ash Maurya of Lean Canvas on Scaling Lean
Rocketship.fm
Slides
How Spotify Builds Products
Spotify
How Zenly Nailed It - Product Methods!
Zenly
Books
Agile Product Management with Scrum
Roman Pichler
The Lean Startup
Eric Ries
Burndown by Drift
Multiple
Lean UX: Designing Great Products with Agile Teams
Jeff Gothelf
UX for Lean Startups
Laura Klein
The Startup Way
Eric Ries
Sprint
Jake Knapp


Introduction
In this project, I look at how the City of Medellín is using public space to promote peace and the preservation of memory. While other approaches to preserving memory exist in Medellín, I was particularly interested in how the Mayor’s Office has created infrastructure around memory. In Medellín, spaces of memory and memorialization have been used to “restore a sense of place to the experiences of displacement, discontinuity, and fragmentation that violence inflict on people’s lives.” Museo Casa de la Memoria (House of Memory Museum) is one example of how the city is providing such spaces.”
1
My analysis includes two parts: First, an overview of the how the museum’s design and exhibits contribute to its role in the community and second, an assessment of visitor satisfaction, both locally and abroad based on data from Tripadvisor.com. The goal of this analysis is to measure the sucess of this project in serving the community in Medellín.
Museo Casa de la Memoria
In 2006, Museo Casa de la Memoria was constructed under the Victim Assistance Program of Medellin City Hall. The museum’s provides information about the history and current state of the conflict. Free admission and central location make the museum more accessible to the public. As part of “Parque Bicentenario,” the museum also has an environmental focus with access to green space along the Santa Elena Creek. Parque Bicentenario was created along the Santa Elena Creek to honor Colombia’s 200 year anniversary of independence. The museum’s location within the park - a cultural symbol of equity and independence - also contributes to its mission of encouraging reflection on equality and peace.
2
The museum stands out in the neighborhood as a modern, newly built project.
The photo below shows the contrast between the modern park and museum building and surrounding Boston neighborhood of Medellín.
Memory
The design for the museum, by architects Juan David Botero and Alejandro Naranjo, is described as a series of “spaces that enable the reconstruction and dissemination of historical memory with museographic designs for exhibitions, with the aim of transforming violent events into social learning.”
3
As part of “Parque Bicentenario,” the museum also has an environmental focus with access to green space along the Santa Elena Creek.
Parque Bicentenario was created along the Santa Elena Creek to honor Colombia’s 200 year anniversary of independence. The
museum’s location within the park - a cultural symbol of equity and independence - also contributes to its mission of encouraging reflection
on equality and peace.
The museum’s exhibitions include art, archives, activities and other ways to prompt discussions surrounding the conflict. An example includes an exhibit on Grammar for peace and conflict. The exhibit description: "Grammar of peace and conflict is an invitation to reconstruct collective stories from the power of the human, interlacing narratives, lives and memories".
4
More current and upcoming exhibits here:
Trip Advisor Data
I used data from Tripadvisor.com to gage community satisfaction with the museum as well as reviews from international tourists. Collecting Tripadvisor data, I intended to use all 135 entries for the museum. For comparison of local (within Colombia) versus international visitors, the data includes reivews that reported the origin country/city of the visitor. The reviews were used to gage the overall satisfaction that local, Colombian, and international travelers had with the museum. Many of the reviewers provide emotional responses that were overwhelmingly positive. To summarize, from the 50 reviews I collected, many tourists found the exhibits informative and powerful, while Colombians found a sense of memory and remembrance. The level of detail included in these reviews helps to show the extent to which the museum serves its purpose. The average Tripadvisor star rating (out of five) was a 4.5. The reviews included in this analysis span over the past two years.There are limitations to using Tripadvisor data. The 135 reviews - or even smaller pool that I have selected - do not represent the views of all visitors to the museum. All of the information on the site is self-reported, with certain fields being optional, such as the origin country/city. The map I have created also places more weight on local reviews and other Colombian cities because of an assumed familiarity with the specific community and national issues addressed at the museum.
Community and International Responses
See map in full screen.
A complete list of visitor reviews for the museum.
Conclusion
Based on local, national and international Tripadvisor reviews, as well as an assessment of city plans, Museo Casa de la Memoria appears to be fulfilling its vision for providing a space for memory. On the topic of memory, the museum states that "Memory is a window to Community. It contributes to recognize the place of each one of us and to understand the reality of the city and the country. Memory unites realities, allows to build collectively and is expressed by multiple languages while we recognize each other and identify us."5
The program can serve as a model for other city governments in Colombia to use in conflict mediation. Please note: footnotes not visible on mobile.
Return to Student Projects


---
layout: post
title: a tool to deceive and slaughter a sculpture that
date: '2010-02-06T11:54:40+00:00'
tags: []
tumblr_url: http://backlog.robbevan.com/post/374007372/a-tool-to-deceive-and-slaughter-a-sculpture-that
---
“A Tool to Deceive and Slaughter” A Sculpture That Perpetually Sells Itself On eBay


Your manifest file's name contains invalid characters (). Please remove them before exporting.
Your manifest file's name must be no more than 255 characters long.
 Please use our BigQuery export option. (This requires a Google Account login.)
Your cohort exceeds the maximum size allowed for download, but your account doesn't appear to be a linked Google account.
A Google linked account is required for BigQuery table export.