#>
#> ************
#> Welcome to scienceverse For support and examples visit:
#> http://scienceverse.github.io/
#> - Get and set global package options with: scienceverse_options()
#> ************
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
The demo below extends the example from:
Lakens, D., & DeBruine, L. M. (2020, January 27). Improving Transparency, Falsifiability, and Rigour by Making Hypothesis Tests Machine Readable. https://doi.org/10.31234/osf.io/5xcda
Set up the study with a name and any additional info you want to add.
study <- study(name = "Kinship and Prosocial Behaviour", abstract = "A reanalysis of data from DeBruine (2002) Facial Resemblance Enhances Trust, PRSLB.")
Now add a hypothesis with a verbal description. You can add more than one hypothesis, but this demo study only has one.
study <- add_hypothesis(study, id = "self_pref", description = "Cues of kinship will increase prosocial behaviour. Cues of kinship will be manipulated by morphed facial self-resemblance. Prosocial behaviour will be measured by responses in the trust game. The prediction is that the number of trusting AND/OR reciprocating moves will be greater to self morphs than to other morphs.")
Add all relevant analyses for testing this hypothesis in the order that they should be run. Do any data prep first. Each analysis needs an id
for reference in the criteria later. The code
can be R code (wrap it in {} if you need more than one line) or the file path for a .R file. You can also add other information about your analysis, such as the software it’s running on.
study <- add_analysis(study, id = "trust", code = t.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.975), software = R.version.string) %>% add_analysis(id = "recip", code = t.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.975), software = R.version.string)
You can also test auxillary assumptions and set up more complicated decision rules for evaluation. Here, we’ll test whether the resulting data are normally distributed and use an alternative statistical test if they are not. Therefore, we need to add analyses to do the normality tests and analyses to do the non-parametric versions.
# test normality of the 4 dvs study <- add_analysis(study, id = "norm", code = { ts <- shapiro.test(kin$trust_self)$p.value to <- shapiro.test(kin$trust_other)$p.value rs <- shapiro.test(kin$recip_self)$p.value ro <- shapiro.test(kin$recip_other)$p.value }, return = c("ts", "to", "rs", "ro"), software = R.version.string) study <- add_analysis(study, id = "trust_wilcox", code = wilcox.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.975, conf.int = TRUE), software = R.version.string) %>% add_analysis(id = "recip_wilcox", code = wilcox.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.975, conf.int = TRUE), software = R.version.string)
N.B. It is up to you how much you want to break your analysis into separate analyses in scienceverse. At one extreme, you could include all of your analyses in a single .R file that returns a list of all relevant values, instead of separating them into different analyses. However, smaller logical groupings of analyses make it easier for readers to find and understand the code relevant to a result.
Next, add the criteria you will need to check to corroborate or falsify each hypothesis. Each criterion needs a unique id
so you can reference it next in the evaluation. Then, optionally specify the hypothesis_id
and analysis_id
where you’ll look for the result. If you omit these it will default to the last one added. For example, the analysis trust
returns a list from the function t.test
, which includes a value for conf.int
. To see if the first number in this vector is larger than 0, set result
to “conf.int[1]”, operator
to “>” , and comparator
to \(0\). The options for operator
are “>”, “<”, “=”, and “!=”.
study <- study %>% add_criterion(id = "t_lo", result = "conf.int[1]", operator = ">", comparator = 0, hypothesis_id = "self_pref", analysis_id = "trust") %>% add_criterion("t_hi", "conf.int[2]", ">", 0.2, "trust") %>% add_criterion("r_lo", "conf.int[1]", ">", 0.0, "recip") %>% add_criterion("r_hi", "conf.int[2]", ">", 0.2, "recip") %>% add_criterion("ts_norm", "ts", ">", 0.05, "norm") %>% add_criterion("to_norm", "to", ">", 0.05, "norm") %>% add_criterion("rs_norm", "rs", ">", 0.05, "norm") %>% add_criterion("ro_norm", "ro", ">", 0.05, "norm")%>% add_criterion("t_lo_w", "conf.int[1]", ">", 0.0, "trust_wilcox") %>% add_criterion("t_hi_w", "conf.int[2]", ">", 0.2, "trust_wilcox") %>% add_criterion("r_lo_w", "conf.int[1]", ">", 0.0, "recip_wilcox") %>% add_criterion("r_hi_w", "conf.int[2]", ">", 0.2, "recip_wilcox")
Add evaluation criteria for corroboration and falsification. The logical evaluation
should reference the criterion id
s above and can consist of those ids and the symbols (
, )
, &
, and |
. You can optionally include a verbal description
of the criterion to clarify the logical evaluation.
study <- add_eval(study, "corroboration", "(ts_norm & to_norm & t_lo & t_hi) | (!(ts_norm & to_norm) & t_lo_w & t_hi_w) | (rs_norm & ro_norm & r_lo & r_hi) | (!(rs_norm & ro_norm) & r_lo_w & r_hi_w)", description = "The hypothesis is corroborated if the 97.5% CI lower bound is greater than 0 and the 97.5% CI upper bound is greater than 0.2 (the SESOI) for either the trust or reciprocation moves. Use t.test if the data are normally distributed, or Wilcox test otherwise.") study <- add_eval(study, "falsification", "( (ts_norm & to_norm & !t_hi) | (!(ts_norm & to_norm) & !t_hi_w) ) & ( (rs_norm & ro_norm & !r_hi) | (!(rs_norm & ro_norm) & !r_hi_w) )", description = "The hypothesis is falsified if the 97.5% CI upper bound is smaller than 0.2 (the SESOI) for both trust and reciprocation. Use t.test if the data are normally distributed, or Wilcox test otherwise.")
At this point, you can save your study to a machine-readable JSON-formatted file.
study_save(study, "ext_prereg.json", format = "json")
#> Saving to /Users/lisad/rproj/scienceverse/scienceverse/vignettes/ext_prereg.json
You can also export a human-readable pre-registration using the built-in “prereg” template.
study_save(study, "ext_prereg.html", format = "prereg")
#> Saving to /Users/lisad/rproj/scienceverse/scienceverse/vignettes/ext_prereg.html
If your data have a factorial design, you can add simulated data by describing the design parameters as for the faux::sim_design
function.
study <- add_sim_data(study, data_id = "kin", within = list(game = c("trust", "recip"), person = c("self", "other")), n = 24, mu = list(trust_self = 1.2, trust_other = 0.8, recip_self = 1.8, recip_other = 1.8), sd = 0.8, r = 0.5)
#> Registered S3 method overwritten by 'faux':
#> method from
#> print.nested_list scienceverse
#> Warning in faux::codebook(data = data, name = name, vardesc = vardesc,
#> schemaVersion = schemaVersion, : Couldn't set levels for id
#> id set to dataType string
#> Warning in faux::codebook(data = data, name = name, vardesc = vardesc,
#> schemaVersion = schemaVersion, : Couldn't set levels for trust_self
#> trust_self set to dataType float
#> Warning in faux::codebook(data = data, name = name, vardesc = vardesc,
#> schemaVersion = schemaVersion, : Couldn't set levels for trust_other
#> trust_other set to dataType float
#> Warning in faux::codebook(data = data, name = name, vardesc = vardesc,
#> schemaVersion = schemaVersion, : Couldn't set levels for recip_self
#> recip_self set to dataType float
#> Warning in faux::codebook(data = data, name = name, vardesc = vardesc,
#> schemaVersion = schemaVersion, : Couldn't set levels for recip_other
#> recip_other set to dataType float
The study_power
function runs the specified number of replications: simulating your data, running the analyses, and evaluating the criteria to produce a summary of the proportion of simulation where each hypothesis was corroborated, falsified, or inconclusive.
study <- study_power(study, rep = 100)
#> Hypothesis self_pref
#> corroboration: 49.0%
#> falsification: 0.0%
#> inconclusive: 51.0%
You can access the values for each criterion for each simulation with the function get_power
(set values = TRUE
). This returns a list of hypotheses and their associated criteria that you can then plot or further assess.
power <- get_power(study, values = TRUE) as_tibble(power$self_pref$criteria) %>% pivot_longer(t_lo:r_hi, names_to = "criteria", values_to = "value") %>% ggplot(aes(value, color = criteria)) + geom_density()
The id
you give the data can be used in the analysis code to refer to this dataset. The data
argument can be a data frame or a file path to a data file or a PsychDS-formatted codebook. You can optionally add column parameters such as descriptions with the argument vardesc
and other dataset parameters as additional arguments.
kin_data <- data.frame( trust_self = c(1,2,2,1,1,1,1,1,2,0,2,0,1,2,2,3,2,2,1,1,2,0,0,1), trust_other = c(1,2,2,0,1,0,0,0,1,0,1,0,1,1,1,0,1,2,2,0,0,0,2,1), recip_self = c(0,1,3,2,1,1,1,3,3,2,3,1,1,2,3,3,3,1,1,1,3,0,3,1), recip_other = c(1,1,2,2,3,2,1,3,3,1,3,0,1,3,3,3,3,0,3,0,1,0,3,2) ) desc <- list( description = list( trust_self = "Number of trusting moves towards self-morphs", trust_other = "Number of trusting moves towards self-morphs", recip_self = "Number of reciprocating moves towards other-morphs", recip_other = "Number of reciprocating moves towards other-morphs" ), dataType = rep("int", 4) # all variables are integer types ) study <- add_data(study, id = "kin", data = kin_data, vardesc = desc, url = "https://osf.io/ewfhs/")
When you run study_analyse
, the data are loaded as their id
names and the analyses are run in order. For example, the data from the section above will be available to your analyses as a dataframe called kin
. The analysis is run in a separate environment, so you won’t see any new objects in the global environment. Therefore, changes you make to, e.g., a dataframe called kin
in your global environment won’t affect the analysis. The evaluation of each criterion and hypothesis is printed as a message.
study <- study_analyse(study)
#> Hypothesis self_pref: Cues of kinship will increase prosocial behaviour. Cues of kinship will be manipulated by morphed facial self-resemblance. Prosocial behaviour will be measured by responses in the trust game. The prediction is that the number of trusting AND/OR reciprocating moves will be greater to self morphs than to other morphs.
#>
#> Criterion t_lo:
#> * conf.int[1] > 0 is TRUE
#> * conf.int[1] = 0.021
#>
#> Criterion t_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.979
#>
#> Criterion r_lo:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -0.509
#>
#> Criterion r_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.426
#>
#> Criterion ts_norm:
#> * ts > 0.05 is FALSE
#> * ts = 0.004
#>
#> Criterion to_norm:
#> * to > 0.05 is FALSE
#> * to = 0.000
#>
#> Criterion rs_norm:
#> * rs > 0.05 is FALSE
#> * rs = 0.000
#>
#> Criterion ro_norm:
#> * ro > 0.05 is FALSE
#> * ro = 0.001
#>
#> Criterion t_lo_w:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -0.000
#>
#> Criterion t_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.500
#>
#> Criterion r_lo_w:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -1.500
#>
#> Criterion r_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.000
#>
#> Conclusion: inconclusive
#> * Corroborate ((ts_norm & to_norm & t_lo & t_hi) |
#> (!(ts_norm & to_norm) & t_lo_w & t_hi_w) |
#> (rs_norm & ro_norm & r_lo & r_hi) |
#> (!(rs_norm & ro_norm) & r_lo_w & r_hi_w)): FALSE
#> * Falsify (( (ts_norm & to_norm & !t_hi) |
#> (!(ts_norm & to_norm) & !t_hi_w) ) &
#> ( (rs_norm & ro_norm & !r_hi) |
#> (!(rs_norm & ro_norm) & !r_hi_w) )): FALSE
At this point, you can save the post-registration version of your study to a JSON-formatted file and also export a human-readable post-registration report.
study_save(study, "ext_postreg.json", "json")
#> Saving to /Users/lisad/rproj/scienceverse/scienceverse/vignettes/ext_postreg.json
study_save(study, "ext_postreg.html", "postreg")
#> Saving to /Users/lisad/rproj/scienceverse/scienceverse/vignettes/ext_postreg.html
You can reload and edit your study by loading the .json file with the study() function.
study2 <- study("ext_postreg.json") study2 # displays a summary
#> Kinship and Prosocial Behaviour
#> -------------------------------
#>
#> * Hypotheses: self_pref
#> * Data: kin
#> * Analyses: trust, recip, norm, trust_wilcox, recip_wilcox
#>
#> Hypothesis self_pref: Cues of kinship will increase prosocial behaviour. Cues of kinship will be manipulated by morphed facial self-resemblance. Prosocial behaviour will be measured by responses in the trust game. The prediction is that the number of trusting AND/OR reciprocating moves will be greater to self morphs than to other morphs.
#>
#> Criterion t_lo:
#> * conf.int[1] > 0 is TRUE
#> * conf.int[1] = 0.021
#>
#> Criterion t_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.979
#>
#> Criterion r_lo:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -0.509
#>
#> Criterion r_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.426
#>
#> Criterion ts_norm:
#> * ts > 0.05 is FALSE
#> * ts = 0.004
#>
#> Criterion to_norm:
#> * to > 0.05 is FALSE
#> * to = 0.000
#>
#> Criterion rs_norm:
#> * rs > 0.05 is FALSE
#> * rs = 0.000
#>
#> Criterion ro_norm:
#> * ro > 0.05 is FALSE
#> * ro = 0.001
#>
#> Criterion t_lo_w:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = 0.000
#>
#> Criterion t_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.500
#>
#> Criterion r_lo_w:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -1.500
#>
#> Criterion r_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.000
#>
#> Conclusion: inconclusive
#> * Corroborate ((ts_norm & to_norm & t_lo & t_hi) |
#> (!(ts_norm & to_norm) & t_lo_w & t_hi_w) |
#> (rs_norm & ro_norm & r_lo & r_hi) |
#> (!(rs_norm & ro_norm) & r_lo_w & r_hi_w)): FALSE
#> * Falsify (( (ts_norm & to_norm & !t_hi) |
#> (!(ts_norm & to_norm) & !t_hi_w) ) &
#> ( (rs_norm & ro_norm & !r_hi) |
#> (!(rs_norm & ro_norm) & !r_hi_w) )): FALSE
If you want to explore how the results change if you change criteria or analyses, you can use the functions update_analysis
or update_criteria
.
For example, we can change the analyses to use 95% CIs instead of 97.5% CIs. Make sure to re-analyse after changing data, analyses or criteria (this doesn’t happen automatically because some analyses can take a very long time).
study2 <- study2 %>% update_analysis(id = "trust", code = t.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.95)) %>% update_analysis(id = "recip", code = t.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.95)) %>% update_analysis(id = "trust_wilcox", code = wilcox.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.95, conf.int = TRUE)) %>% update_analysis(id = "recip_wilcox", code = wilcox.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.95, conf.int = TRUE)) %>% study_analyse()
#> Hypothesis self_pref: Cues of kinship will increase prosocial behaviour. Cues of kinship will be manipulated by morphed facial self-resemblance. Prosocial behaviour will be measured by responses in the trust game. The prediction is that the number of trusting AND/OR reciprocating moves will be greater to self morphs than to other morphs.
#>
#> Criterion t_lo:
#> * conf.int[1] > 0 is TRUE
#> * conf.int[1] = 0.087
#>
#> Criterion t_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.913
#>
#> Criterion r_lo:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -0.445
#>
#> Criterion r_hi:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 0.361
#>
#> Criterion ts_norm:
#> * ts > 0.05 is FALSE
#> * ts = 0.004
#>
#> Criterion to_norm:
#> * to > 0.05 is FALSE
#> * to = 0.000
#>
#> Criterion rs_norm:
#> * rs > 0.05 is FALSE
#> * rs = 0.000
#>
#> Criterion ro_norm:
#> * ro > 0.05 is FALSE
#> * ro = 0.001
#>
#> Criterion t_lo_w:
#> * conf.int[1] > 0 is TRUE
#> * conf.int[1] = 0.000
#>
#> Criterion t_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.500
#>
#> Criterion r_lo_w:
#> * conf.int[1] > 0 is FALSE
#> * conf.int[1] = -1.000
#>
#> Criterion r_hi_w:
#> * conf.int[2] > 0.2 is TRUE
#> * conf.int[2] = 1.000
#>
#> Conclusion: corroborate
#> * Corroborate ((ts_norm & to_norm & t_lo & t_hi) |
#> (!(ts_norm & to_norm) & t_lo_w & t_hi_w) |
#> (rs_norm & ro_norm & r_lo & r_hi) |
#> (!(rs_norm & ro_norm) & r_lo_w & r_hi_w)): TRUE
#> * Falsify (( (ts_norm & to_norm & !t_hi) |
#> (!(ts_norm & to_norm) & !t_hi_w) ) &
#> ( (rs_norm & ro_norm & !r_hi) |
#> (!(rs_norm & ro_norm) & !r_hi_w) )): FALSE
You can get all the results with the get_result()
function. If you don’t specify the result name or the analysis ID, it defaults to all of the results of the first analysis. It returns a list that you can use, but will display an RMarkdown-formatted list if you print it (and set the chunk options to results='asis'
).
get_result(study, analysis_id = "trust_wilcox")
You can also get a specific result from a specific analysis. Set return
to “value” to get the result as a number and “char” if you want to keep trailing zeros (this returns the number as a character string).
get_result(study = study, result = "p.value", analysis_id = "trust", digits = 3, return = "char")
#> [1] "0.020"
You can display the value as a link if you set return
to “html”. You can use the shorthand function get_html
if you only have one study object loaded. The digits default to the global option, so you can set that as shown.
#> [1] "0.020"
You’ll probably want to use get_html()
inline most of the time like below. The links go to a section at the end of this document that is created with make_script()
.
For trusting judgements, people trusted self-resembling faces more than other-resembling faces (t = 2.50, df = 23.0, p = 0.020, 95% CI = [0.02, 0.98]).
For reciprocation judgments judgements, people did not reciprocate to self-resembling faces more than other-resembling faces (t = -0.21, df = 23.0, p = 0.833, 95% CI = [-0.51, 0.43]).
Add the script inline at the end with the function make_script()
. Set header
to FALSE
to omit the YAML header. Set header_lvl
to change the default starting header level of 2. This function will save the data and codebooks in a folder called “data”. Set the argument data_path
to NULL to include the actual data in the text of the script. For large datasets, you’ll want to leave it as the default “data” folder (or set a custom folder name).
make_script(study, data_path = NULL, header_lvl = 3, header = FALSE) %>% cat()
kin <- read.csv(text='"trust_self","trust_other","recip_self","recip_other"
1,1,0,1
2,2,1,1
2,2,3,2
1,0,2,2
1,1,1,3
1,0,1,2
1,0,1,1
1,0,3,3
2,1,3,3
0,0,2,1
2,1,3,3
0,0,1,0
1,1,1,1
2,1,2,3
2,1,3,3
3,0,3,3
2,1,3,3
2,2,1,0
1,2,1,3
1,0,1,0
2,0,3,1
0,0,0,0
0,2,3,3
1,1,1,2')
t.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.975)
2.50454132981017
23
0.0197947772076059
0.0212945707630106
0.97870542923699
0.5
0
0.199637352376173
two.sided
Paired t-test
kin$trust_self and kin$trust_other
t.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.975)
-0.213835558603476
23
0.832559599965427
-0.508901684452692
0.425568351119359
-0.0416666666666667
0
0.194853778944834
two.sided
Paired t-test
kin$recip_self and kin$recip_other
{
ts <- shapiro.test(kin$trust_self)$p.value
to <- shapiro.test(kin$trust_other)$p.value
rs <- shapiro.test(kin$recip_self)$p.value
ro <- shapiro.test(kin$recip_other)$p.value
}
# return values
list(
`ts` = ts,
`to` = to,
`rs` = rs,
`ro` = ro
)
wilcox.test(kin$trust_self, kin$trust_other, paired = TRUE, conf.level = 0.975,
conf.int = TRUE)
86.5
0.0258957996037173
0
two.sided
Wilcoxon signed rank test with continuity correction
kin$trust_self and kin$trust_other
-2.46667120907145e-05
1.5000642148746
0.999956902706118
wilcox.test(kin$recip_self, kin$recip_other, paired = TRUE, conf.level = 0.975,
conf.int = TRUE)
36
0.836637402400589
0
two.sided
Wilcoxon signed rank test with continuity correction
kin$recip_self and kin$recip_other
-1.49997115604671
1.00004707946561
-3.77600367583061e-05


You can now upvote content directly from the browser. You don't need an account on Honest to upvote content.
This wallet is saved locally in your browser. The keys never leave your browser. When you log out, all the wallet data is permanently erased.
Your recovery phrase never leaves the browser. All transactions are signed within the browser and keys are not exposed over the internet. Do not connect wallets with bigger amounts! We recommend to generate a new wallet and transfer a small amount for the upvotes.
Beware of scams! Ensure that the domain is https://honest.cash with a secure connection.A private key is simply a number, picked at random. Ownership and control over the private key is the root of user control over all funds associated with the corresponding Bitcoin Cash address. The private key is used to create signatures that are required to spend bitcoins by proving ownership of funds used in a transaction. The private key must remain secret at all times, because revealing it to third parties is equivalent to giving them control over the bitcoins secured by that key. The private key must also be backed up and protected from accidental loss, because if it’s lost it cannot be recovered and the funds secured by it are forever lost, too.
Upvote content and receive tips using the passphrase / mnemonic of your existing Bitcoin Cash account.
Your private key never leaves the browser. All transactions are signed within your browser and keys are not exposed over the internet. Do not connect wallets with bigger amounts! We recommend to generate a new wallet and transfer a small amount for the upvotes. In the future we plan to reward you for finding and upvoting good content early.
Beware of scams! Ensure that the domain is https://honest.cash with a secure connection.Upvote content and receive tips using the private key of your existing Bitcoin Cash account.
Your private key never leaves the browser. All transactions are signed within your browser and keys are not exposed over the internet. Do not connect wallets with bigger amounts! We recommend to generate a new wallet and transfer a small amount for the upvotes. In the future we plan to reward you for finding and upvoting good content early.
Beware of scams! Ensure that the domain is https://honest.cash with a secure connection.


Jessy's World
About
Here is the about section where I would normally tell you something mundane about myself but I prefer to leave much up to the imagination! Feel free to Google, or speculate all you like either way you're right...right?
More Reading For Your Eyes
Please look closely here...a bit closer...aaah perfect! Now if you can still see this or see it better than you did before...Congratulations!  You may now deliver the excellent news to your optomitrist!
If Reading That Wasn't Enough...
 Well okay then I guess i could oblige you with a few more words if that will make you happy.


{# Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. #} {% extends "solar/basic.html" %} {% import 'appbuilder/general/lib.html' as lib %} {% set languages = appbuilder.languages %} {% set WARNING_MSG = appbuilder.app.config.get('WARNING_MSG') %} {% set app_icon_width = appbuilder.app.config.get('APP_ICON_WIDTH', 126) %} {% block solar_content %}
| Role | |
|---|---|
| {{ email }} | {{ role }} |
| Status | Actions | ||
|---|---|---|---|
| {{ email }} | {% if valid %}Awaiting Response |
{% else %}
Invitation Expired |
{% endif %}


Pop-Up Window
The 25 Most Bizarre Galaxies in the Universe
Your browser does not support the video tag
Video provided by youtube.com


---
layout: example
permalink: /examples/collaborative-textarea/
exampleId: collaborative-textarea
stylesheets:
- /examples/collaborative-textarea/example.css
- /examples/collaborative-textarea/example.css
-<EMAIL_ADDRESS>overview: |-
This example demonstrates using the Convergence
HTML Text Collaborative Extensions to create a collaborative text editor from a normal HTML
<textarea>
Element. The example shows the selection and cursor of the remote user and allows for
real time editing of the text.
---
Local Username:


Project χ is a modular open-source visualization gallery toolkit. It offers a boilerplate for building self-hosted data-centric visualization websites. Geared towards sharing of supplemental materials associated with scientific publications; Project χ allows visitors to interact with visualizations, download associated data and images, and even try the visualization with their own datasets. For developers the framework comes preconfigured with the popular design frameworks (Twitter Bootstrap, Angular UI), cutting edge build tools (gulp, jspm, SystemJS), and tools necessary for quickly integrating interactive visualizations using d3.js and AngularJS.


“Yaṁ kiccaṁ daḷhavīriyena,
yaṁ kiccaṁ boddhumicchatā;
Karissaṁ nāvarajjhissaṁ,
passa vīriyaṁ parakkamaṁ.
The duty of one whose energy is strong;
the duty of one who longs to wake up:
that I’ll do, I won’t fail—
see my energy and vigor!
Tvañca me maggamakkhāhi,
añjasaṁ amatogadhaṁ;
Ahaṁ monena monissaṁ,
gaṅgāsotova sāgaran”ti.
… Valliyo thero ….
Teach me the path,
the direct route that culminates in the deathless.
I’ll know it with wisdom,
as the Ganges knows the ocean.


Calculate the mel-frequency cepstrum coefficients of a signal frame Simple use: vParametros=MFCCi(vFrame, iFs) % calculate mel cepstrum with 12 coefs vParametros=MFCCi(vFrame, iFs, 'e0') % include log energy, 0th cepstral coef Input parameters: vFrame speech signal iFs sample rate in Hz (default 11025) sTipo any sensible combination of the following: '0' include 0'th order cepstral coefficient 'e' include log energy 'E' parameters are normalized with respect to the energy. iNumCoef number of MFCC coefficients (default 12) iNumFilters number of filters in filterbank (default floor(3*log(iFs)) ) iLowFreq low end of the lowest filter as a fraction of iFs (default = 0) iHighFreq high end of highest filter as a fraction of iFs (default = 0.5) Output parameters: 'vParametros' mel cepstrum output


It is possible to add custom templates for column's heading or cell
by using #goTableHead
and
#goTableCell
respectively.
The content within these areas can be any HTML and is supported by Angular so you can make use of components, pipes, etc.


I am currently a Cloud Engineering student, working towards my AWS Cloud Practitioner certificate. I have just recently completed the AWS/restart programme in Birmingham, UK, run by Generation UK & Ireland. I have always held a strong interest in tech and enjoy programming. My strong points include problem-solving, persistence, communication skills, comfortable to work as an individual or as part of a team. I am currently looking to progress my career by taking on a Junior Cloud Engineer position.
A random number generator built using python. I built this app to gain a better understanding of building applications with a GUI in python using modules such as guizero and tkinter.
View ProjectA command line interface calculator built using python. I have plans to build on this by adding a graphical user interface as well as adding more functionality to the calculator project.
View Project


The Witcher Netflix Episode Names Revealed
by SillicurOn 31 October 2019, Netflix unleashed the full trailer for The Witcher and it blew us away. Henry Cavill portrays the role of Geralt of Rivia so extremely well and his voice will give fans nerd chills. The show has already been renewed for a second season, showing a lot of confidence from the creators and now, we know The Witcher Netflix episode names.
RELATED: Geralt will be Almost 100 Years Old in Netflix’s The Witcher
For those who haven’t read the books, these names might not mean much. However, for the sake of avoiding spoilers, The Witcher episode names and the little one-line teases for each episode can be found below the image of Henry Cavill as Geralt of Rivia in a bathtub…20 December can’t come soon enough.
You’ve been warned.
In a series of tweets, the show’s official Twitter account revealed The Witcher episode names and a little teaser for what to expect from each episode of The Witcher Netflix. View them all below.
Episode 1: The End’s Beginning
- Episode 2: Four Marks – We look at a sorceress’s earlier days
- Episode 3: Betrayer Moon – A picky eater, a family shamed
- Episode 4: Of Banquets, Bastards and Burials – The Law of Surprise is how one repays
- Episode 5: Bottled Appetites – A fateful meeting, a bard is maimed
- Episode 6: Rare Species – The hunt for a dragon is underway
- Episode 7: Before a Fall – A return to before a kingdom is flamed
- Episode 8: Much More – The Witcher Family, as you all like to say
RELATED: BT Games Black Friday 2019 Deals Revealed
What do you think about The Witcher Netflix Episode names for season 1? Let us know in the comment section below and check out the show’s full trailer in case you missed it.


Herm Edwards’ Postgame Interview Went Viral After Win vs. Oregon
by Andrew HolleranHerm Edwards was fired up following Arizona State’s big upset win over Oregon on Saturday night. He had a right to be, after all, as his Sun Devils had just secured one of the most-surprising wins of the 2019 college football season.
Arizona State dominated the game from the start and did not let up, beating Oregon, 31-28, to guarantee a bowl berth at 6-5 on the year. The Sun Devils shook up the College Football Playoff race, too, knocking the Ducks out.
Edwards was interviewed on the field by ESPN’s Maria Taylor following the game.
The interview has quickly gone viral.
“We made it good for television,” the former ESPN employee told Taylor. “So even though you came to cover a 5-5 team, we made it good for television.”
ESPN certainly won’t be arguing with that.
There were a lot of skeptics surrounding Edwards’ hiring at Arizona State, but he’s done a respectable job so far. The Sun Devils are going bowling for the second year in a row under the former NFL head coach.


Important:
- All indexed content from these sources will be visible to all logged in users of the hub (through the help search).
- Sources are not currently synced automatically - you need to trigger a sync using the options below whenever sources are added, or content is added/updated/deleted from the sources.
Source config:
{{s.config | json}}
Currently fetching? {{s.is_fetching}}
Last fetch status: {{s.last_fetch_status}} unknown | Last fetch started at: {{s.last_fetch_started_at | date:'EEE MMM d y HH:mm UTC':'UTC'}} not fetched yet
Last successful fetch started at: {{s.last_successful_fetch_started_at | date:'EEE MMM d y HH:mm UTC':'UTC'}} none


WITNESS LIST Education Committee April 9, 1997-9:00A SB 198 For: Haas, Jill (Children), Austin Horton, Colleen (Self), Austin King, Kelly (Unlisted), Austin Lambert, Kay (Advocacy, Inc.), Austin Owens, Pamela C. (Children with Autism), Lewisville Pemberton, Jeanie (Dallas Autism Society), Dallas Sauseda, Johnny Ray (Children with Autism), Victoria Against: Copeland, Virgina (Tx Cn Admin. of Spec Ed), Aleif Lindahl, Marsha (TCASE), San Angelo Salyards, Cheryl (TCASE), Houston Stone, Martha Dr. (TASA), Irving On: Cowan, Tom (TEA), Austin Lenz, Gene (TEA), Austin Registering, but not testifying: For: Bond, Marianna (Ft Worth Autism Society), Fort Worth Bradley, DeShaun (Self), Austin Chapman, Kathleen (Son), Austin Cool, Kathie (Children), Austin Deex, Amy (Children), Austin Galloway, Patsy Donahoo (Unlisted), Austin Johns, Ann Collins M.A. (Children with Autism), Austin McNiff, Debi (Child), Cedar Park Robertson, Janice C. (Daughter), Unlisted Against: Carpenter, Bill (Cypress-Fairbanks ISD), Unlisted Selby, Gwen (North East ISD), San Antonio Weaver, Shelley (TCASE), Clint Written materials submitted: For: Hussion, Mary Jo (Self), Austin Hussion, Robert (Self), Austin Jasuta, Stephanie (Self), Austin SB 433 For: Cochran, Larry (Six Flags Theme Parks), Horeshoe Bay Cyganiewicz, Edmund (South Padre Island), S. Padre Island Engleman, James (Hunt ISD), Hunt Hanson, Gene (AFL-CIO), Donna Pena, Martin (Point Isabel ISD), Port Isabel Against: Backus, Jane (Tx Assn School Boards), Austin Carpenter, Bill (Cypress-Fairbanks ISD), Cypress Stone, Martha Dr. (TASA), Irving On: Jennings, Steven (Northeast Fed. of Teach), San Antonio Registering, but not testifying: For: Adams, Terri (Schlitterbahn Waterpark), New Braunfels Ahadi, Abolhassan (Self), S. Padre Island Boyd, John R. (Self), S. Padre Island Chisholm, James V. (South Padre Island), S. Padre Island Force, David (Sea World of Texas), San Antonio Friedman, David (South Padre Island), S. Padre Island Hall, Maria C. (South Padre Island), S. Padre Island Hansen, Don (Tx Hotel & Motel Assn), Austin Hansen, Thomas J. (South Padre Island), S. Padre Island Hinojosa, Norma T. (Point Isabel ISD), Port Isabel Hinojosa, Walter (Tx AFL-CIO), Austin Kelly, Jack (TSTA), Austin Marchan, Patrick H. (Point Isabel ISD), Point Isabel Mathews, Jennifer (South Padre Island), S. Padre Island Neal, Bruce (Six Flags Theme Parks), Arlington Against: Glover, Bob (Abilene ISD), Abilene Lain, Jackie (TASB), Austin Patton, Janet (TASSP), Austin Ramos, Joe (TASB), Austin Selby, Gwen (North East ISD), San Antonio Written materials submitted: For: Brammall, Sherrie (Schlitterbahn Waterpark), New Braunfels Henry, Gary (Schlitterbahn Waterpark), New Braunfels Lampe, Charlotte L. (FOCUS), Cypress Serff, Paul (Tx Travel Industry Assn), Austin SB 522 For: Lara, Rene (Tx Federation of Teach), Austin On: Cloudt, Criss (TEA), Austin Gibson, B.J. (TEA), Austin Registering, but not testifying: For: Bechtol, Bill (Tx. Elementary Principl), Austin Gregg, Brock (ATPE), Austin Patton, Janet (TASSP), Austin Powell, Richard (TASA), Austin Ramos, Joe (TASB), Austin Taebel, Holly S. (TCTA), Austin SB 1178 For: Brock Gregg (ATPE), Austin John Guardia (Nat Board Teach Standar), San Antonio On: Mary Ryan Taras (National Teach Standard), Birmingham Registering, but not testifying: For: Jack Kelly (TSTA), Austin Rene Lara (Tx Federation of Teache), Austin On: Pamela Tackett (State Board Educ Certif), Austin SB 1189 For: McLamore, Mike (Assn Tx Professional Ed), Austin Against: Selby, Gwen (North East ISD), San Antonio Stone, Martha Dr. (TASA), Irving On: Wisnoski, Joe (TEA), Austin Registering, but not testifying: For: Bechtol, Bill (Tx Elem Princp Assn), Austin Brady, Denise (The Arc of Texas), Austin Jennings,Steven (North East Fed. Teacher), San Antonio Patton, Janet (TASSP), Austin Taebel, Holly S. (Tx Classroom Teach Assn), Austin Against: Ramos, Joe (TASB), Austin On: Lambert, Kay (Advocacy, Inc.), Austin SB 1287 For: Larry Yawn (Houston ISD), Houston Paula Arnold (Houston ISD), Houston On: William Baker (Teachers Retirement Sys), Austin Registering, but not testifying: For: Brock Gregg (ATPE), Austin Holly S. Taebel (Tx Classroom Teach Assc), Austin Jack Kelly (TSTA), Austin SB 1306 For: Davis, David M. (ITT Educ. Services), Indianapolis Friedheim, Jan V. (Career Colleges of Tx), Dallas Friedheim, Stephen B. (Executive Secretarial), Austin Julin, Eric (Self), Unlisted On: Brown, Don (Tx Higher Educ Coord Bd), Austin Registering, but not testifying: For: Obenhaus, Robert (MTI), Houston SB 1357 For: Collier, Keely R. (NAACP), Austin Ewell, Yvonne A. (Self), Dallas On: Lain, Jackie (TASB), Austin SB 1359 For: Eichelbaum, Dennis J. (Dallas ISD), Addison Registering, but not testifying: For: Collier, Keely R. (NAACP), Austin Lain, Jackie (TASB), Austin Yawn, Larry (Houston ISD), Houston Against: Patton, Janet (TASSP), Austin On: Moore, Katherine (TEA), Austin Smith, Susan Hunter (TEA), Austin SB 1361 For: Allen, Rosemarie Dr. (Dallas Public Schools), Dallas Patton, Janet (TASSP), Austin Registering, but not testifying: For: Collier, Keely R. (NAACP), Austin Gregg, Brock (ATPE), Austin On: Brooke, Linda (Tx Juvenile Prbtn Comm.), Austin Written materials submitted: Against: Collins, Randy (Child Dev of Tx Inc), Dallas Flowers, Diana (Child Dev Assn Tx), Dallas Wright, Joyce L. (Child Dev Assn Tx.), Austin SB 1368 For: McDonald, Carol L. (Indep Coll/Univ. of Tx), Austin Voswinkel, Mary M. (Rice University), Houston Registering, but not testifying: On: Lyons, Steve (Houston Police Dept), Houston SB 1553 Registering, but not testifying: For: Coindreau, Alan (Literacy Council), Round Rock On: Garcia, Rey Dr. (Tx Assn Commmunity Coll), Austin SB 1627 For: Powell, Richard (TASA), Austin Registering, but not testifying: For: Selby, Gwen (North East ISD), San Antonio Taebel, Holly S. (Tx. Classroom Teachers), Austin On: Cowan, Andrea (Comptroller's Office), Austin SB 1654 Registering, but not testifying: For: Gregg, Brock (ATPE), Austin Ramos, Joe (Tx Assn of School Brds), Austin Taebel, Holly S. (Tx Classroom Teach Assn), Austin On: Brooke, Linda (Tx Juvenile Probtn Comm), Austin SB 1703 Registering, but not testifying: Against: Gonzales, Alice (Tx A&M Student Senate), College Station SB 1811 On: Diebel, Phil (Univ. of North Texas), Denton Registering, but not testifying: On: Deviney, Lee (Tx Public finance Auth), Austin Lapham, Ulrike (Tx Public Finance Auth), Austin SB 1826 Registering, but not testifying: For: McDonald, Carol (Indep Colleges/Univ Tx), Austin Wood, Karen (Baylor University), Waco On: Flack, Teri (Tx Higher Educ Coord Bd), Austin SB 1907 Registering, but not testifying: Against: Hennessey, Josh (Tx A&M Student Govern), College Station On: Whitley, Marlen (UT Student President), Austin


home
brands
about me
services
News
HOME
BRANDS
Car Showroom
New Models
Honda
Hyundai
Toyota
Audi
Mazda
Porsche
Mercedes


You get free prescriptions
Because you have a medical exemption certificate you get free:
- NHS prescriptions
What you'll need as proof
You need a medical exemption certificate.
Because you have a medical exemption certificate you get free:
You need a medical exemption certificate.