Stacks
Projected Time
About 1 hour
Prerequisites
Motivation
Stack is one of the most commonly used data structure along with its opposite relative, queue. Understanding how to
implement stack helps you better understand and describe insertion, removal, and organization of data in a
sequential order.
Applications of stack includes:
- An “undo” mechanism in text editors; this operation is accomplished by keeping all text changes in a stack.
- Undo/Redo stacks in Excel or Word.
- Language processing :
- space for parameters and local variables is created internally using a stack.
- compiler’s syntax check for matching braces is implemented by using stack.
- Back/Forward stacks on browsers. (by Siddhart
Mahapatra)
Objectives
Explain what a stack data structure is and show how it is implemented.
Specific Things to Learn
- Definition of stack
- Show an example of stack data structure
- JavaScript methods used to implement stack
Lesson
Lesson
slides
Lesson video
Make sure to mention these things:
- Explain what LIFO and FILO means.
- Differentiate stack and queue.
Common Mistakes / Misconceptions
- Array and stack seem similar at first glance. While stack can be implemented using array, the data in array can
be accessed randomly, whereas stack must be accessed according to order.
Guided Practice
Explain and discuss as a class the steps involved in writing a stack structure, including:
- Constructor
- Push/Enqueue
- Pop/Dequeue
- Size control
Independent Practice
Try to write a Stack class with the steps discussed as methods:
const Stack = function() {}
// Constructor
// Push
// Pop
// Size management of stack
// Output of stack
}
Challenge / Check for Understanding
Find a partner and show each other your own Stack class. Explain how the class you wrote works.
Next, ask each other the following questions:
- What is difference between a stack and a simple array?
- Which method uses LIFO?
- Which methods are used in the stack data structure?
- What is the runtime complexity of a stack?
- How to make simple class as a stack class?
- What is the meaning of ‘_’ (underscore) in the beginning of the variable name? Refer Playing with
data
structures in JavaScript — Stack
- Give some day-to-day examples where stack is used.
- What is difference between stack and queue?
Supplemental Resources


As most of you already know, our second steemSTEM Meetup is approaching, during which participants will have a chance to visit the Virgo lab located near Pisa in Italy, as well as to spend some quality time socializing with each other in the beautiful city of Florence. We decided to make a series of posts about prominent people who originated from this city, so that participants will be able to truly appreciate historical significance of Florence.
# Life and work of Niccolò Machiavelli
Very few names are at the same time so deeply connected to politics and political science while being frowned upon, when their ideas are actually implemented. Niccolò Machiavelli (3 May 1469 – 21 June 1527) was one of these people. His most notable work is called The Prince - which is, simply spoken, a regent’s guide to power and how to maintain it. In the aftermath of that book, the term Machiavellianism was used to refer to people and/or politicians who dared to use strategies recommended by Machiavelli in order to achieve their goals.
Source
But who was this guy anyway and why write now about him?
As most of you may know already, the @steemstem and @utopian-io meetup this year will take place in Florence, Italy. And, since you are all smart guys, you will likely have deducted that Niccolò Machiavelli was born there and later played a significant role in Florence’s society as well.
Although he had a successful career in politics for a few years – getting appointed at the office of second chancery, later he became the secretary of the Dieci di Libertà e Pace and finally he was put in charge of the Florentine militia – this success did not last.
After the Medici took control over the Florentine city-state, Machiavelli was dismissed from his office and later thrown into prison because it was thought he was conspiring against the Medici. Regardless of the torture he had to endure there, he did not confess to any conspiracy and eventually was released after three weeks.
Niccolò Machiavelli is considered as one of the first empirical (political) scientist, since he always drew conclusions based on experiences and facts as well as pointing out, how utterly pointless a mere theorizing without any empirical evidence would be. This can, of course, also be seen in his most famous work.
## The Prince
Machiavelli put much emphasis on how important it is to carefully monitor the current situation of the state and then decide how to make the most out of it – meaning, how to take and maintain control. He usually described ideologies like religions as man-made and considered them only as a means to an end. If they were helpful to seize and maintain power, then a regent should use them accordingly, but not succumb to them.
Instead of relying on meta-physical concepts like gods and wonders (and justifying their own power with it), he encouraged the rulers to take risks and have ambitions to change the very being of the state and its society in total – if deemed necessary. Innovation was therefore not something a regent should frown upon but welcome with open arms, if it can be used to strengthen his grip around the state.
In contrast to most former political writers, Machiavelli had not much love for the classical good and evil dualism. In The Prince he describes extensively the various tasks a regent must fulfil, if he wishes to claim and maintain his power. Sometimes this can lead to somewhat extreme outcomes. According to Machiavelli, it is an acceptable mean to kill political opponents or act out other vicious deeds to establish a new government system. It should be noted though, that he puts a lot of emphasis on how to exactly do that. A wise ruler establishes beforehand how much cruelty he needs – and then acts according to it only once, because people tend to forget one immense cruelty faster than many continuous ones.
In Machiavelli’s world it is by far better to be feared than to be loved, since love can be an obstacle, if it is necessary to use violence against opponents, but if the regent is feared anyway, this is just a logical reaction. Although it is important to find the subtle balance between mere fear and hatred – a regent whose citizens despise him, will eventually have to deal with revolutionary actions and betrayal. Fear, on the other hand, can be used as a handy tool to establish control but not pushing the limits of one’s citizens beyond of what they are willing to endure.
In conclusion, it can be noted that Machiavellianism can be used as a way to seize and maintain power, using opportunistic and sometimes immoral means. This is also the reason why in modern psychology the term Machiavellianism is considered as one of the dark traits of personality inside the so-called dark triad. People who score high at this trait tend to be more ego-centrical and focused on personal success – even if that means they have to exploit others to achieve that.
Even today, the work of Niccolò Machiavelli has still quite some impact on various scientific disciplines and every day life. The city of Florence was the birthplace of some truly great minds – making it only logical to be the very gathering spot for great minds from all over the world.
Niccolò Machiavelli | Machiavellianism | The Prince
This page is synchronized from the post: The World of Niccolò Machiavelli


This function replaces given missingness values with NA in a given dataframe or tibble. Numeric vectors that were originally loaded as character or factor vectors (because of missingness values in the column), are also converted to numeric vectors when values are replaced.
make_na(d, to_replace, drop_levels = TRUE)
| d | A dataframe or tibble |
|---|---|
| to_replace | A value or vector of values that will be replaced with NA |
| drop_levels | If TRUE (default) unused factor levels are dropped |
A tibble where the missing value/values is/are replaced with NA, columns that only have numbers left are coerced to numeric type
dat <- data.frame(gender = c("male", "male", "female", "male", "missing"), name = c("Paul", "Jim", "Sarah", "missing", "Alex"), weight = c(139, 0, 193, 158, 273)) # Replace "missing" in `dat` make_na(dat, "missing")#> # A tibble: 5 x 3 #> gender name weight #> <chr> <chr> <dbl> #> 1 male Paul 139 #> 2 male Jim 0 #> 3 female Sarah 193 #> 4 male NA 158 #> 5 NA Alex 273# If there are multiple missing values, pass them through a vector. dat <- data.frame(gender = c("male", "??", "female", "male", "NULL"), age = c(64, 52, 75, "NULL", 70), weight = c(139, 0, 193, "??", 273), stringsAsFactors = FALSE) make_na(dat, c("??", "NULL"))#> # A tibble: 5 x 3 #> gender age weight #> <chr> <dbl> <dbl> #> 1 male 64 139 #> 2 NA 52 0 #> 3 female 75 193 #> 4 male NA NA #> 5 NA 70 273# Run `missingness()` to find possible missingness values in `dat`. It will # suggest the default implementation of `make_na` to replace all found # missingness values (the suggested default implementation for this example # is `make_na(dat, c("??", "NULL"))`). missingness(dat)#> Warning: Found these strings that may represent missing values: "??" and "NULL". If they do represent missingness, replace them with NA with: `make_na(dat, c("??", "NULL"))`#> # A tibble: 3 x 2 #> variable percent_missing #> * <chr> <dbl> #> 1 gender 0 #> 2 age 0 #> 3 weight 0#> # A tibble: 5 x 3 #> gender age weight #> <chr> <dbl> <dbl> #> 1 male 64 139 #> 2 NA 52 0 #> 3 female 75 193 #> 4 male NA NA #> 5 NA 70 273# Note: In this last example, `age` should be loaded as a numeric vector, but # since "NULL" is present, it is stored as a character vector. When "NULL" is # replaced, `age` will be converted to a numeric vector.


|
Falaise
2.1.0
SuperNEMO Software Toolkit
|
As discussed in Using the FLReconstruct Application, the flreconstruct
application takes an input file from flsimulate
(and later raw data), and passes each event through a sequence of modules that perform reconstruction of the event and, optionally, then writes the results out to file. Falaise supplies a stock set of modules to perform common tasks and to construct the pipeline required for official reconstruction of events from simulated/raw data. Here we document these modules, describing their purpose and the data they work with and create.
As explained in the section on working with events, FLSimulate and FLReconstruct use the datatools::things class as the event data model for all experiments. This class provides a dictionary-like interface allowing pipeline modules to read and write data "banks" to/from the event using a string "key". Downstream modules in the pipeline may use data written to the event by upstream modules (e.g. a fitting module may need clustering data), and thus need to know the keys under which any data banks it requires are stored.
| Bank key | Bank type | Description | Creator |
|---|---|---|---|
| EH | snemo::datamodel::event_header | Data about event | FLSimulate (not implemented yet) |
| SD | mctools::simulated_data | Simulated primary event, verted and truth hits | FLSimulate |
| CD | snemo::datamodel::calibrated_data | Calorimeter and tracker calibrated hits | Calibration module |
| TCD | snemo::datamodel::tracker_clustering_data | Clusters of tracker hits | Tracker clustering algorithm |
| TTD | snemo::datamodel::tracker_trajectory_data | Trajectories fitted to clusters | Track fitting algorithm |
| PTD | snemo::datamodel::particle_track_data | Charged particle tracks | Charged particle measurement algorithm |
The SD bank is created by the FLSimulate application. The other banks are created by specific algorithms/modules embedded in the FLReconstruct pipeline.
| Module name | Library/Plugin | Required Input Bank | Output Bank | Description |
|---|---|---|---|---|
| snemo::processing::mock_tracker_s2c_module | Falaise | SD | CD | Digitizes and calibrates tracker simulated truth hits (mock) |
| snemo::processing::mock_calorimeter_s2c_module | Falaise | SD | CD | Digitization/calibration of the calorimeter simulated truth hits (mock) |
| snemo::reconstruction::mock_tracker_clustering_module | Falaise_MockTrackerClusterizer | CD | TCD | Basic clusterization of tracker hits (mock) |
| snemo::reconstruction::cat_tracker_clustering_module | Falaise_CAT | CD | TCD | Clusterization of tracker hits (CAT) |
| snemo::reconstruction::sultan_tracker_clustering_module | Falaise_CAT | CD | TCD | Clusterization of tracker hits (SULTAN) |
| snemo::reconstruction::trackfit_tracker_fitting_module | TrackFit, Falaise_TrackFit | TCD | TTD | Linear/helix fitting of tracks |
| snemo::reconstruction::charged_particle_tracking_module | Falaise_ChargedParticleTracking | CD, TTD | PTD | Measurements of charged particles' tracks |
| dpp::dump_module | Bayeux | SD, CD, TCD, TTD | none | Print the event record |
| snemo::visualization::visu_toy_module | Falaise_VisuToy | SD, CD, TCD, TTD | none | Basic event display |
Note that the mock digitization/calibration modules are a temporary feature. Digitization functionality will be moved into flsimulate
as the DAQ design evolves. Calibration will be refactored into a dedicated task.
As with other modules, the behaviour of the stock Falaise modules can be configured using datatools::properties
markup in text files. The current defaults are provided in the following locations:
| Module name | Path to the default configuration file |
|---|---|
| snemo::processing::mock_tracker_s2c_module | @falaise.resources:config/snemo/common/reconstruction/1.0/mock_tracker_s2c.conf |
| snemo::processing::mock_calorimeter_s2c_module | @falaise.resources:config/snemo/demonstrator/reconstruction/1.0/mock_calorimeter_s2c.conf |
| snemo::reconstruction::mock_tracker_clustering_module | @falaise.resources:modules/MockTrackerClusterizer/config/snemo/common/reconstruction/1.0/mock_tracker_clusterizer.conf |
| snemo::reconstruction::cat_tracker_clustering_module | @falaise.resources:modules/CAT/config/snemo/common/reconstruction/1.0/CAT.conf |
| snemo::reconstruction::sultan_tracker_clustering_module | @falaise.resources:modules/CAT/config/snemo/common/reconstruction/1.0/SULTAN.conf |
| snemo::reconstruction::trackfit_tracker_fitting_module | @falaise.resources:modules/TrackFit/snemo/common/reconstruction/1.0/trackfit.conf |
| snemo::reconstruction::charged_particle_tracking_module | @falaise.resources:modules/ChargedParticleTracking/snemo/common/reconstruction/1.0/charged_particle_tracking.conf |


There are currently two API endpoints available, one for all reports in JSON and one for reports by date in JSON or CSV. To retrieve all reports in JSON, use /reports.json Reports by date are at /YYYY-MM-DD/YYYY-MM-DD/reports.csv, .json, or .transit, where YYYY-MM-DD are the start and end dates requested.


Welcome to the AppSec Service Catalog
It's your one-stop location to find all Application Security related services.
Cloud Software Requests
Submit Software Requests for Cloud based platforms
Client Software Requests
Submit Software Requests for labtops and servers


Scanning the surface of potential energy when changing the C
1
-N
1
distance for diazonium salts:
DFT B3LYP 6-31G(d,p)
DFT B3LYP aug-cc-pVDZ


Graph estimation in Gaussian Graphical Models. The main functions return the adjacency matrix of an undirected graph estimated from a data matrix.
| Version: | 0.1-12.1 |
| Depends: | mvtnorm |
| Imports: | lars, gtools, stats |
| Suggests: | network, glasso |
| Published: | 2018-02-01 |
| Author: | Annie Bouvier, Christophe Giraud, Sylvie Huet, Verzelen N. |
| Maintainer: | ORPHANED |
| License: | GPL (≥ 3) |
| URL: | http://genome.jouy.inra.fr/logiciels/GGMselect/ |
| NeedsCompilation: | yes |
| Citation: | GGMselect citation info |
| Materials: | NEWS |
| CRAN checks: | GGMselect results |
| Reference manual: | GGMselect.pdf |
| Vignettes: |
GGMselect: Introduction and User Guide |
| Package source: | GGMselect_0.1-12.1.tar.gz |
| Windows binaries: | r-devel: GGMselect_0.1-12.1.zip, r-release: GGMselect_0.1-12.1.zip, r-oldrel: GGMselect_0.1-12.1.zip |
| OS X binaries: | r-release: GGMselect_0.1-12.1.tgz, r-oldrel: GGMselect_0.1-12.1.tgz |
| Old sources: | GGMselect archive |
| Reverse imports: | shock |
Please use the canonical form https://CRAN.R-project.org/package=GGMselect to link to this page.


| Class and Description |
|---|
| GrammarAST |
| GrammarRootAST |
| Class and Description |
|---|
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| GrammarAST |
| GrammarRootAST |
| RuleAST |
| Class and Description |
|---|
| ActionAST |
| BlockAST |
| GrammarAST |
| PredAST |
| TerminalAST |
| Class and Description |
|---|
| ActionAST |
| BlockAST |
| GrammarAST |
| Class and Description |
|---|
| ActionAST |
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| GrammarAST |
| TerminalAST |
| Class and Description |
|---|
| GrammarAST |
| Class and Description |
|---|
| GrammarAST |
| Class and Description |
|---|
| ActionAST |
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| GrammarAST |
| GrammarASTWithOptions |
| GrammarRootAST |
| PredAST |
| RuleAST |
| TerminalAST |
| Class and Description |
|---|
| ActionAST |
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| GrammarAST |
| GrammarASTWithOptions |
| GrammarRootAST |
| PredAST |
| RuleAST |
| TerminalAST |
| Class and Description |
|---|
| ActionAST |
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| GrammarAST |
| GrammarRootAST |
| PredAST |
| RuleAST |
| TerminalAST |
| Class and Description |
|---|
| ActionAST |
| AltAST
Any ALT (which can be child of ALT_REWRITE node)
|
| BlockAST |
| GrammarAST |
| GrammarASTVisitor
A simple visitor, based upon the classic double dispatch method,
for walking GrammarAST trees resulting from parsing ANTLR grammars.
|
| GrammarASTWithOptions |
| GrammarRootAST |
| NotAST |
| OptionalBlockAST |
| PlusBlockAST |
| PredAST |
| QuantifierAST |
| RangeAST |
| RuleAST |
| RuleElementAST
Tag indicated AST node is a rule element like token or rule ref.
|
| RuleRefAST |
| SetAST |
| StarBlockAST |
| TerminalAST |
Copyright © 1992–2021 ANTLR. All rights reserved.


Clears a single variable. It removes it from the list of variables as well (accessible from the main menu by pressing TAB).
Useful command to keep your variable list clean and organized.
| Box Name | Type | Description |
|---|---|---|
| Variable | String | Name of the variable to clear. |


Seabook Chen, main instructor of the course EdBlock and Scratch Programming.
2 years teaching experiences. 10 years coding exp. Strong advocate of happying coding learing methodology. Worked for multile fortunate 500 companies in the past.
S – Science (Science behind Nerua Network, maching learning etc.)
T – Technology (Essential coding skills)
E – Engineering (Robots build, Lego Build)
M – Math (Calculate Robots turning circles, path searching algorithm.)
The Australian Government regards high-quality science, technology, engineering and mathematics (STEM) education as critically important for our current and future productivity, as well as for informed personal decision making and effective community, national and global citizenship.
The Government is committed to improving the STEM skills of young Australians to ensure that they have the skills they need to live and work in a globalised world. As part of the $1.1 billion National Innovation and Science Agenda, the Australian Government has allocated over $64 million to fund early learning and school STEM initiatives under the Inspiring all Australians in Digital Literacy and STEM measure. This includes two measures: Embracing the Digital Age (school initiatives – $51 million) and Inspiring STEM Literacy (early learning initiatives – $14 million).
浙江：2017年，国务院发布《新一代人工智能发展规划》，明确指出在中小学阶段设置人工智能相关课程，逐步推广编程教育。浙江省作为试点单位，率先出台了高考课程改革方案，将编程纳入浙江省高考。从今年开始，高考不再是普通的“6选3”，而是改成了“6+1选3”，这里的“+1”就是信息技术（含编程）。
山东：山东作为教育大省，对于少儿编程的重视程度自然也不输。山东省最新出版的小学信息技术六年级教材加入了 Python 内容，小学生都开始接触Python语言了。据悉，山东也确定要把 Python 编程基础纳入信息技术课程和高考的内容体系。
江苏：今年，江苏省教育厅下发《关于印发 江苏省义务教育劳动与技术课纲要 的通知》，要求在中小学普及编程教育。目前，南京市已有部分学校尝试在一、二年级开设信息技术课，学编程、做动画，培养孩子计算思维。同时，南京今年还将科技特长生列入中考招生项目。
天津、北京：无独有偶，今年天津市教委下达的《2018年天津市普通高中本市生源特长生招生计划》中也明确规定，招生学校可面向全市招收特长生。符合2018年天津市普通高中招生报考条件，初中阶段在下列市级以上科技活动或竞赛中获奖的考生，即具有报名科技特长生的资格。而北京也和山东一样，即将把Python编程基础纳入信息技术课程和高考的内容体系。
TEN year old Melbourne schoolboy Yuma Soerianto has just done what most app makers dream about: he’s impressed Apple CEO Tim Cook with what he can do. Yuma, who is a Year 5 student at Middle Park Primary School in Melbourne, is the youngest attendee this week at the Worldwide Developers Conference, Apple’s biggest event of the year that kicks off tomorrow in San Jose.
Now I understand How important STEM is, but as an elegant and beautiful Mum (虎妈), what shall I let my kids do?
Live Demo on the class, I need to have two kids to come to the stage and help me out. :-)
What do we teach?
NXT Explore (8-10 years old)
NXT Scratch (9-12 years old)
Live Demo on the class, I need to have two kids to come to the stage and help me out. :-)
- STEM Professionals in Schools
- Digital Technologies Massive Open Online Courses
- Australian Digital Technologies Challenges and Dive into Code
- digIT (ICT Summer Schools)
- Science by Doing
- reSolve: Maths by Inquiry
- Curious Minds (Summer Schools for STEM Students)
- Nxtedu STEM Education


/dev/blog
Bez Hermoso, Software Engineer @ Square
Unlike in Ag.vim
, fzf.vim
’s :Ag
command does not provide the ability to specify additional options to use with The Silver Searcher a.k.a. ag
. Unfortunately, fzf
does not use --exclude-vcs-ignores
by default despite it being useful for programmers i.e. search file contents under a vendor directory or a mount, for example.
The way to do it in fzf.vim
is to create a custom command that will pass the -U|--exclude-vcs-ingores
to the underlying ag
call:
command! -bang -nargs=* Agu call fzf#vim#ag(<q-args>, '--skip-vcs-ignores', {'down': '~40%'})
With this in ~/.vimrc
, it is now possible to search the contents of a project by using :Agu
instead of :Ag
. The search will no longer ignore files that are in .gitignore
or any other VCS ignore lists.
See The Silver Searcher and
fzf.vim
.


Preparation time
less than 30 mins
Cooking time
10 to 30 mins
Serves
Serves 2
A joyful plate of British summertime flavours.
Equipment: for this recipe you will need a smoker and wood chips
To make the potato salad, put the new potatoes in a saucepan, cover with cold water and season with salt and pepper. Bring to the boil and cook for 15 –20 minutes, or until tender. Drain and allow to cool.
Meanwhile, set up a smoker with the tea leaves and wood chips placed in the bottom. (CAUTION: Tea-smoking generates a lot of smoke. Cook in a well-ventilated area, and open the wok outside if possible.). Put the mackerel fillets on top, cover with the lid and smoke for 2–3 minutes.
In a large bowl, mix together the dill, watercress, spring onions and the cooled potatoes.
To make the dressing, whisk together ingredients in a small bowl.
Pour the dressing over the potato salad and mix well. Break up the fish fillets and stir through the salad. Serve.


Dropdown Image
Move the mouse over the image below to open the dropdown content.
Beautiful Cinque Terre


Data from: Litter removal in a tropical rain forest reduces fine root biomass and production but litter addition has few effects
Sources
Rodtassana C, Tanner EVJ (2018) Litter removal in a tropical rain forest reduces fine root biomass and production but litter addition has few effects. Ecology 99(3): 735-742. https://doi.org/10.1002/ecy.2143
Rodtassana C, Tanner EVJ (2018) Data from: Litter removal in a tropical rain forest reduces fine root biomass and production but litter addition has few effects. Dryad Digital Repository. https://doi.org/10.5061/dryad.f1948
Summary
- within the data file are two sets of columns with duplicate labesls: FRB5cmJul13 and FRB10cmJul13. The second set are within the FRL columns and I assumed these were FRL and not FRB
- ANOVA tables reproduce at the level of the p value less than or greater than 0.05. The F ratios do not reproduce, to an extent that reflects different model specifications. The denominator DF do not reproduce and some reported DDF should not be possible.
- The computation of the SE of the means for the figures was not given and there are several alternatives. The reported SEMS for figure one look similar to mine. The reported SEMs for figure 3 are far off and seem inconsistent with the post-hoc tests.
- One difference in post-hoc test “classification” into significance clusters.
Caveats
Failure to reproduce or partial reproducibility might be an error in my coding, or my misunderstanding of the author’s methods, or my lack of knowledge of statistics generally or the R functions that I use more specifically.
Set up
library(readxl)
library(ggplot2)
library(ggpubr)
library(cowplot)
library(lmerTest)
library(emmeans)
library(data.table)
library(multcompView) # grouping post hoc (not recommended!)
data_folder <- "../data"
folder <- "Data from Litter removal in a tropical rain forest reduces fine root biomass and production but litter addition has few effects"
# images need to be moved to /static/images/data from.../image.png
knitr_path <- FALSE
Functions
Some code used for model selection with a mixed model following Chapter 5.7 of Zuur for model selection of mixed effect models.
select_model <- function(y, x, r, dt, reml=FALSE){
# the data are in dt
# y is the response column name
# x is the list of fixed effect column names
# r is the list of random effect column names
# it would seem weird to have both month and plot in model
# see 5.7 of Zuur for model selection of mixed effect models
fixed <- paste(y,"~", paste(x, collapse='*'))
random <- list()
random[[1]] <- paste(paste("(1|", r, ")", sep=""), collapse=" + ")
min_aic <- 1
# fit random part first, if there are > 1 random variables
if(length(r) > 1){
aic <- numeric(3)
form <- formula(paste(fixed, random[[1]], sep=' + '))
fit1 <- lmer(form, data=dt, REML=TRUE)
aic[1] <- AIC(fit1)
r1 <- r[1] # just the first random element
random[[2]] <- paste(paste("(1|", r1, ")", sep=""), collapse=" + ")
form <- formula(paste(fixed, random[[2]], sep=' + '))
fit2 <- lmer(form, data=dt, REML=TRUE)
aic[2] <- AIC(fit2)
r2 <- r[2] # just the second random element
random[[3]] <- paste(paste("(1|", r2, ")", sep=""), collapse=" + ")
form <- formula(paste(fixed, random[[3]], sep=' + '))
fit3 <- lmer(form, data=dt, REML=TRUE)
aic[3] <- AIC(fit3)
min_aic <- which(aic == min(aic))
}
random <- random[[min_aic]]
# fit fixed part
form <- list()
# fit with ML, choose model, then refit with REML
aic <- numeric(4)
form[[1]] <- formula(paste(fixed, random, sep=' + '))
# default is REML
fit1 <- lmer(form[[1]], data=dt, REML=reml)
aic[1] <- AIC(fit1)
fixed <- paste(y,"~", paste(x, collapse=' + '))
form[[2]] <- formula(paste(fixed, random, sep=' + '))
fit2 <- lmer(form[[2]], data=dt, REML=reml)
aic[2] <- AIC(fit2)
fixed <- paste(y,"~", x[1])
form[[3]] <- formula(paste(fixed, random, sep=' + '))
fit3 <- lmer(form[[3]], data=dt, REML=reml)
aic[3] <- AIC(fit3)
fixed <- paste(y,"~", x[2])
form[[4]] <- formula(paste(fixed, random, sep=' + '))
fit4 <- lmer(form[[4]], data=dt, REML=reml)
aic[4] <- AIC(fit4)
min_aic <- which(aic == min(aic))
return(form[[min_aic]])
}
import
fn <- 'Root_Ecology_supplementary_materials.xlsx'
file_path <- paste(data_folder, folder, fn, sep='/')
root <- data.table(read_excel(file_path, range = cell_rows(1:16)))
Note in file
Note in Excel data sheet > FRB = Fine root biomass (g/m2) at 0-5 cm and 0-10 cm FRL = Fine root length (m/m2 of root window) at 0-5 cm and 0-10 cm Sur = Fine root length survivorship (m/m2 of root window) at 0-10 cm Pro =Fine root length production (m/m2 of root window) at 0-10 cm IC = Fine root production from ingrowth cores (g/m2/3-months)
Data inconsistencies
Within the FRL columns are a column labeled FRB5cmJul13 (Excel column “AB”) and a column labeled FRB10cmJul13 (Excel column “AN”). I am treating these ase FRL and not FRB
Data pre-processing
data are in wide format – reshape to long. Also need to create “season” factor with levels (“wet”, “dry”)
- “There were three separate sets of ingrowth cores set up in different seasons and collected three months after installation: wet season (May to August 2013), transition period (October 2013 to January 2014), and dry season (January to April 2014).”
- “Composite samples were made for each of six months – four in the wet season in June, September, October and December in 2013 and two in the dry season in March 2013 and February 2014.”
- “We generated several models composed of different fixed factors as litter treatments (litter removal, litter addition, control), seasons (wet and dry; transition period only for ingrowth cores) and their interactions (treatment x season);”
- Fig S1 explicitly defines May-Dec as “wet”
# root is in wide format - reshape to long
FRB_cols <- c("FRB5cmMar13", "FRB5cmApr13", "FRB5cmMay13", "FRB5cmJun13", "FRB5cmJul13", "FRB5cmAug13", "FRB5cmSep13", "FRB5cmOct13", "FRB5cmNov13", "FRB5cmDec13", "FRB5cmJan14", "FRB5cmFeb14", "FRB10cmMar13", "FRB10cmApr13", "FRB10cmMay13", "FRB10cmJun13", "FRB10cmJul13", "FRB10cmAug13", "FRB10cmSep13", "FRB10cmOct13", "FRB10cmNov13", "FRB10cmDec13")
# what are these "FRB5cmJul13__1", "FRB10cmJul13__1" they have values more like FRL than FRB and physically they are within the FRL set of columns (in the exact place of FRL5cmJul and FRL10cmJul)
frb <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=FRB_cols, variable.name='label', value.name='FRB')
frb[, treatment:=factor(treatment, c("LR", "CT", "LA"))] #LR-litter removal; CT-control; LA-litter addition
frb[, label:=as.character(label)]
frb[, depth:=factor(ifelse(substr(label, 4, 4)=='5', 5, 10))] # depth is 4th character in label
frb[, month:=substr(label, nchar(label)-4, nchar(label)-2)] # month is in label
dry <- c('Jan', 'Feb', 'Mar', 'Apr') # wet is everything else
# May-Dec is "wet" per fig S1
frb[, season:=factor(ifelse(month %in% dry, 'dry', 'wet'), c("wet", "dry"))]
ic_cols <- c("ICAug13-Oct13", "ICOct13-Jan14", "ICJan14-Apr14")
frb_prod <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=ic_cols, variable.name='label', value.name='frb_prod')
frb_prod[, season:=factor(ifelse(label=="ICAug13-Oct13", "wet",
ifelse(label=="ICOct13-Jan14", "transitional", "dry")),
c("wet", "transitional", "dry"))]
For FRL the “FRB5cmJul13” and “FRB10cmJul13” are (probably) FRL and not FRB and imported as “FRB5cmJul13__1" and “FRB10cmJul13__1"
root[, FRL5cmJul13:=FRB5cmJul13__1]
root[, FRL10cmJul13:=FRB10cmJul13__1]
FRL_cols <- c("FRL5cmJun13", "FRL5cmJul13", "FRL5cmAug13", "FRL5cmSep13", "FRL5cmOct13", "FRL5cmNov13", "FRL5cmDec13", "FRL5cmJan14", "FRL5cmFeb14", "FRL5cmMar14", "FRL5cmApr14", "FRL5cmMay14", "FRL10cmJun13", "FRL10cmJul13", "FRL10cmAug13", "FRL10cmSep13", "FRL10cmOct13", "FRL10cmNov13", "FRL10cmDec13", "FRL10cmJan14", "FRL10cmFeb14", "FRL10cmMar14", "FRL10cmApr14", "FRL10cmMay14")
frl <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=FRL_cols, variable.name='label', value.name='FRL')
frl[, treatment:=factor(treatment, c("LR", "CT", "LA"))] #LR-litter removal; CT-control; LA-litter addition
frl[, label:=as.character(label)]
frl[, depth:=factor(ifelse(substr(label, 4, 4)=='5', 5, 10))] # depth is 4th character in label
frl[, month:=substr(label, nchar(label)-4, nchar(label)-2)] # month is in label
dry <- c('Jan', 'Feb', 'Mar', 'Apr') # wet is everything else
# May-Dec is "wet" per fig S1
frl[, season:=factor(ifelse(month %in% dry, 'dry', 'wet'), c("wet", "dry"))]
Sur_cols <- c("SurJul13", "SurAug13", "SurSep13", "SurOct13", "SurNov13", "SurDec13", "SurJan14", "SurFeb14", "SurMar14", "SurApr14", "SurMay14")
frl_surv <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=Sur_cols, variable.name='label', value.name='FRL_surv')
frl_surv[, treatment:=factor(treatment, c("LR", "CT", "LA"))] #LR-litter removal; CT-control; LA-litter addition
frl_surv[, label:=as.character(label)]
frl_surv[, month:=substr(label, nchar(label)-4, nchar(label)-2)] # month is in label
dry <- c('Jan', 'Feb', 'Mar', 'Apr') # wet is everything else
# May-Dec is "wet" per fig S1
frl_surv[, season:=factor(ifelse(month %in% dry, 'dry', 'wet'), c("wet", "dry"))]
pro_cols <- c("ProJul13", "ProAug13", "ProSep13", "ProOct13", "ProNov13", "ProDec13", "ProJan14", "ProFeb14", "ProMar14", "ProApr14", "ProMay14")
frl_prod <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=pro_cols, variable.name='label', value.name='FRL_prod')
frl_prod[, treatment:=factor(treatment, c("LR", "CT", "LA"))] #LR-litter removal; CT-control; LA-litter addition
frl_prod[, label:=as.character(label)]
frl_prod[, month:=substr(label, nchar(label)-4, nchar(label)-2)] # month is in label
dry <- c('Jan', 'Feb', 'Mar', 'Apr') # wet is everything else
# May-Dec is "wet" per fig S1
frl_prod[, season:=factor(ifelse(month %in% dry, 'dry', 'wet'), c("wet", "dry"))]
Reproducibility
Section: Fine root mass and production
“Fine root mass in the soil was higher in the wet season than in the dry season, both at 0-5 cm soil depth (F1, 178 = 10.2, P<0.01, Fig. 1) and at 0-10 cm soil depth (F1, 178 = 14.9, P<0.001, Fig. 1), but there were no inter-seasonal differences in the fine root mass in the litter standing crop. Fine root mass production, over 0-10 cm soil depth, was higher in the wet season than in the transition (wet to dry) and dry seasons (F2, 87 = 52.6, P<0.001, Fig. 2).”
form <- select_model(y="FRB", x=c('treatment', 'season'), r=c('plot', 'month'), frb[depth=="5"], reml=FALSE)
# FRB ~ treatment + season + (1 | plot) + (1 | month)
frb5.fit <- lmer(form, REML=TRUE, data=frb[depth=="5"])
frb5.anova <- anova(frb5.fit, type=3)
form <- select_model(y="FRB", x=c('treatment', 'season'), r=c('plot', 'month'), frb[depth=="10"], reml=FALSE)
# FRB ~ season + (1 | plot) + (1 | month)
frb10.anova <- anova(lmer(form, REML=TRUE, data=frb[depth=="10"]), type=3)
my.anova.table <- data.table(response="FRB",
depth=5,
NDF=frb5.anova["season", "NumDF"],
DDF=frb5.anova["season", "DenDF"],
F=frb5.anova["season", "F value"],
p=frb5.anova["season", "Pr(>F)"])
my.anova.table <- rbind(my.anova.table,
data.table(response="FRB",
depth=10,
NDF=frb10.anova["season", "NumDF"],
DDF=frb10.anova["season", "DenDF"],
F=frb10.anova["season", "F value"],
p=frb10.anova["season", "Pr(>F)"]))
My ANOVA results
my.anova.table
## response depth NDF DDF F p
## 1: FRB 5 1 10 8.761856 0.01428706
## 2: FRB 10 1 8 2.854446 0.12959289
reported ANOVA results
## response depth NDF DDF F p
## 1: FRB 5 1 178 10.2 P<0.01
## 2: FRB 10 1 178 14.9 P<0.001
My F for 5 cm depth is the same (to rounding) as that reported but the DDF for the reported are 178, which would be the case with a simple one-way ANOVA with no treatment effect and no random effects. The authors do not report the fit model and so it is hard to compare.
MY F for 10 cm depth is not close to the reported F. Again, the authors do not report the fit model. The DDF for the simple one way model is only 148 but the authors report 178 for ddf.
Figure 1
frb5.emm <- summary(emmeans(frb5.fit, specs=c("treatment", "season")))
Hard to know what SEM is reported in Figure 1. These could be 1. SEM of the raw data, ignoring clustering effect of plot. This isn’t too useful unless its corrected for correlated errors 2. SEM of the plot means averaged over months. This is not right because it could just as well be the SEM of the month means averaged over plots. 3. modeled SEM from the linear mixed model, which could be computed using the emmeans package. I prefer this.
Given the variation in SEM bars in the reported fig. 1, I am assuming that the reported SEM is not #3. So, I compute both #1 and #2 here. It looks like the reported SEM are something like #2.
#1
frb5_se1 <- frb[depth==5,.(N=.N,
FRB=mean(FRB),
SE=sd(FRB)/sqrt(.N)),
by=.(treatment, season)]
frb5.p1 <- frb[depth==5, .(FRB=mean(FRB)),
by=.(treatment, season, plot)]
frb5_se2 <- frb5.p1[,.(N=.N,
FRB=mean(FRB),
SE=sd(FRB)/sqrt(.N)),
by=.(treatment, season)]
frb5_se3 <- summary(emmeans(frb5.fit, specs=c("treatment", "season")))
frb5 <- frb5_se2
frb10_se1 <- frb[depth==10, .(N=.N,
FRB=mean(FRB),
SE=sd(FRB)/sqrt(.N)),
by=.(treatment, season)]
frb10.p1 <- frb[depth==10, .(FRB=mean(FRB)),
by=.(treatment, season, plot)]
frb10_se2 <- frb10.p1[,.(N=.N,
FRB=mean(FRB),
SE=sd(FRB)/sqrt(.N)),
by=.(treatment, season)]
#frb10_se3 <- summary(emmeans(frb10.fit, specs=c("treatment", "season")))
frb10 <- frb10_se2
frb_sum <- rbind(data.table(depth=5, frb5), data.table(depth=10, frb10))
frb_sum[, Lower:=FRB-SE]
frb_sum[, Upper:=FRB+SE]
pd <- position_dodge(.6)
gg <- ggplot(data=frb_sum, aes(x=season, y=FRB, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=Lower, ymax=Upper), width=.2, position=pd) +
scale_fill_manual(values=c("white", "gray", "black")) +
facet_grid(.~depth, labeller = label_both) +
theme_minimal(base_size=14)
gg
These look about right but I’m not sure where the “litter standing crop” biomass data are.
post-hoc tests for fig 1
Treatment is not in the model for 10cm subset so this is only for the 5 cm data. This reproduces the reported result (cannot compare quantitatively)
fit5.emm <- emmeans(frb5.fit, specs=c("treatment"))
contrast(fit5.emm, method="revpairwise")
## contrast estimate SE df t.ratio p.value
## CT - LR 49.03833 18.25 12 2.687 0.0483
## LA - LR 21.18167 18.25 12 1.161 0.4974
## LA - CT -27.85667 18.25 12 -1.526 0.3138
##
## Results are averaged over the levels of: season
## P value adjustment: tukey method for comparing a family of 3 estimates
CLD(fit5.emm) # not recommended as this is classification based on arbitrary boundaries
## treatment emmean SE df lower.CL upper.CL .group
## LR 178.8721 14.73832 17.44 147.8360 209.9081 1
## LA 200.0537 14.73832 17.44 169.0177 231.0898 12
## CT 227.9104 14.73832 17.44 196.8744 258.9465 2
##
## Results are averaged over the levels of: season
## Degrees-of-freedom method: kenward-roger
## Confidence level used: 0.95
## P value adjustment: tukey method for comparing a family of 3 estimates
## significance level used: alpha = 0.05
Fine root mass production
form <- select_model(y="frb_prod", x=c('treatment', 'season'), r=c('plot'), frb_prod, reml=FALSE)
# frb_prod ~ season + (1 | plot)
frb_prod.fit <- lmer(form, REML=FALSE, data=frb_prod)
frb_prod.emm <- emmeans(frb_prod.fit, specs="season")
frb_prod.anova <- anova(frb_prod.fit, type=3)
frb_prod.anova
## Type III Analysis of Variance Table with Satterthwaite's method
## Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
## season 48064 24032 2 30 36.534 9.119e-09 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
reported: “F2, 87 = 52.6, P<0.001”
Again my DDF and F are not close to the reported values. There are only 3 “IC” columns. If these are the correct columns then there are 3*15=45 total points so there cannot be 87 ddf.
effects of treatment on FRB and FRB production
- “Fine root mass was lower in litter removal soils at 0-5 cm (significant, Fig. 1), and 0-10 cm soils (not significant, Fig. 1 and Appendix S1: Fig. S1)” – reproduces qualitatively, see my table of contrasts and my figure 1.
- “Litter addition did not significantly lower fine root mass in either 0-5 cm or 0-10 cm soils” - reproduces qualitatively - see figure 1
- “The sum of the fine root mass in the litter standing crop and 0-5 cm soils was significantly lower in litter removal than controls (F2, 177 = 7.0, P<0.01)” – cannot check because there is no apparent litter standing crop mass
- “Fine root mass production (in 0-10 cm soil) was not significantly affected by litter removal or litter addition (Fig. 2).” – treatment was removed from my model using the model selection algorithm. But here are the effects of treatment on FRB-prod (rows “treatmentLA” and “treatmentLR”)
coef(summary(lmer(frb_prod ~ treatment + season + (1 | plot), REML=TRUE, data=frb_prod)))
## Estimate Std. Error df t value Pr(>|t|)
## (Intercept) 128.323293 9.998447 23.36519 12.8343220 4.544617e-12
## treatmentLA -8.301576 11.717089 12.00000 -0.7085015 4.921682e-01
## treatmentLR -5.609758 11.717089 12.00000 -0.4787672 6.407096e-01
## seasontransitional -63.105212 9.693894 28.00000 -6.5097897 4.695325e-07
## seasondry -74.211030 9.693894 28.00000 -7.6554406 2.438746e-08
figure 2
# no repeated measures within treatment x season
frb_prod.se <- frb_prod[, .(N=.N,
frb_prod=mean(frb_prod),
SE=sd(frb_prod)/sqrt(.N)),
by=.(treatment, season)]
pd <- position_dodge(.6)
gg <- ggplot(data=frb_prod.se, aes(x=season, y=frb_prod, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=frb_prod-SE, ymax=frb_prod+SE), width=.2, position=pd) +
scale_fill_manual(values=c("white", "gray", "black")) +
theme_minimal(base_size=14)
gg
Section: Fine root length: standing crop, production and survivorship
table 1
form <- select_model(y="FRL", x=c('treatment', 'season'), r=c('plot', 'month'), frl[depth=="5"], reml=FALSE)
# FRL ~ treatment * season + (1 | plot) + (1 | month)
frl5.fit <- lmer(form, REML=TRUE, data=frl[depth=="5"])
frl5.anova <- anova(frl5.fit, type=3)
form <- select_model(y="FRL", x=c('treatment', 'season'), r=c('plot', 'month'), frl[depth=="10"], reml=FALSE)
# FRL ~ treatment * season + (1 | plot) + (1 | month)
frl10.fit <- lmer(form, REML=TRUE, data=frl[depth=="10"])
frl10.anova <- anova(frl10.fit, type=3)
form <- select_model(y="FRL_prod", x=c('treatment', 'season'), r=c('plot', 'month'), frl_prod, reml=FALSE)
# FRL_prod ~ treatment * season + (1 | plot) + (1 | month)
frl_prod.fit <- lmer(form, REML=TRUE, data=frl_prod)
frl_prod.anova <- anova(frl_prod.fit, type=3)
form <- select_model(y="FRL_surv", x=c('treatment', 'season'), r=c('plot', 'month'), frl_surv, reml=FALSE)
# treatment * season + (1 | plot) + (1 | month)
frl_surv.fit <- lmer(form, REML=TRUE, data=frl_surv)
frl_surv.anova <- anova(frl_surv.fit, type=3)
my table
fine root length 5 cm depth
knitr::kable(frl5.anova[, c("NumDF", "F value", "Pr(>F)")], digits=c(1, 2, 4))
| NumDF | F value | Pr(>F) | |
|---|---|---|---|
| treatment | 2 | 6.98 | 0.0094 |
| season | 1 | 14.75 | 0.0033 |
| treatment:season | 2 | 35.19 | 0.0000 |
fine root length 10 cm depth
knitr::kable(frl10.anova[, c("NumDF", "F value", "Pr(>F)")], digits=c(1, 2, 4))
| NumDF | F value | Pr(>F) | |
|---|---|---|---|
| treatment | 2 | 8.52 | 0.0046 |
| season | 1 | 2.71 | 0.1309 |
| treatment:season | 2 | 33.35 | 0.0000 |
Fine root length production
knitr::kable(frl_prod.anova[, c("NumDF", "F value", "Pr(>F)")], digits=c(1, 2, 4))
| NumDF | F value | Pr(>F) | |
|---|---|---|---|
| treatment | 2 | 7.74 | 0.0063 |
| season | 1 | 1.66 | 0.2300 |
| treatment:season | 2 | 30.42 | 0.0000 |
Fine root length survival
knitr::kable(frl_surv.anova[, c("NumDF", "F value", "Pr(>F)")], digits=c(1, 2, 4))
| NumDF | F value | Pr(>F) | |
|---|---|---|---|
| treatment | 2 | 3.78 | 0.0530 |
| season | 1 | 3.97 | 0.0775 |
| treatment:season | 2 | 13.42 | 0.0000 |
reported table
The F ratios have the same basic pattern but do not reproduce
were the duplicate frlJul columns not analyzed?
No.
# remove the two July columns that I created above
FRL_cols_2 <- c("FRL5cmJun13", "FRL5cmAug13", "FRL5cmSep13", "FRL5cmOct13", "FRL5cmNov13", "FRL5cmDec13", "FRL5cmJan14", "FRL5cmFeb14", "FRL5cmMar14", "FRL5cmApr14", "FRL5cmMay14", "FRL10cmJun13", "FRL10cmAug13", "FRL10cmSep13", "FRL10cmOct13", "FRL10cmNov13", "FRL10cmDec13", "FRL10cmJan14", "FRL10cmFeb14", "FRL10cmMar14", "FRL10cmApr14", "FRL10cmMay14")
frl2 <- melt(root, id.vars=c('treatment', 'plot'), measure.vars=FRL_cols_2, variable.name='label', value.name='FRL')
frl2[, treatment:=factor(treatment)] #CT-control; LA-litter addition; LR-litter removal
frl2[, label:=as.character(label)]
frl2[, depth:=factor(ifelse(substr(label, 4, 4)=='5', 5, 10))] # depth is 4th character in label
frl2[, month:=substr(label, nchar(label)-4, nchar(label)-2)] # month is in label
dry <- c('Jan', 'Feb', 'Mar', 'Apr') # wet is everything else
# May-Dec is "wet" per fig S1
frl2[, season:=factor(ifelse(month %in% dry, 'dry', 'wet'))]
anova(lmer(FRL ~ treatment * season + (1 | plot) + (1 | month), data=frl2[depth=="5"]))
## Type III Analysis of Variance Table with Satterthwaite's method
## Sum Sq Mean Sq NumDF DenDF F value Pr(>F)
## treatment 3456.1 1728.0 2 12.196 6.5513 0.011686 *
## season 3502.7 3502.7 1 9.000 13.2795 0.005367 **
## treatment:season 18247.5 9123.8 2 138.000 34.5900 6.663e-13 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
is my dry season coded correctly?
yes
unique(frl[season=="dry", month])
## [1] "Jan" "Feb" "Mar" "Apr"
Figure 3
# fine root length 5 cm
frl5_se1 <- frl[depth==5,.(N=.N,
FRL=mean(FRL),
SE=sd(FRL)/sqrt(.N)),
by=.(treatment, season)]
frl5.p1 <- frl[depth==5, .(FRL=mean(FRL)),
by=.(treatment, season, plot)]
frl5_se2 <- frl5.p1[,.(N=.N,
FRL=mean(FRL),
SE=sd(FRL)/sqrt(.N)),
by=.(treatment, season)]
pd <- position_dodge(.6)
gg1 <- ggplot(data=frl5_se2, aes(x=season, y=FRL, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=FRL-SE, ymax=FRL+SE), width=.2, position=pd) +
ylab("FRL (0-5cm)") +
scale_fill_manual(values=c("white", "gray", "black")) +
theme_minimal(base_size=14)
# fine root length 10 cm
frl10.p1 <- frl[depth==10, .(FRL=mean(FRL)),
by=.(treatment, season, plot)]
frl10_se2 <- frl10.p1[,.(N=.N,
FRL=mean(FRL),
SE=sd(FRL)/sqrt(.N)),
by=.(treatment, season)]
pd <- position_dodge(.6)
gg2 <- ggplot(data=frl10_se2, aes(x=season, y=FRL, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=FRL-SE, ymax=FRL+SE), width=.2, position=pd) +
ylab("FRL (0-10cm)") +
scale_fill_manual(values=c("white", "gray", "black")) +
theme_minimal(base_size=14)
# fine root length production
frl_prod.p1 <- frl_prod[, .(FRL_prod=mean(FRL_prod)),
by=.(treatment, season, plot)]
frl_prod_se2 <- frl_prod.p1[,.(N=.N,
FRL_prod=mean(FRL_prod),
SE=sd(FRL_prod)/sqrt(.N)),
by=.(treatment, season)]
pd <- position_dodge(.6)
gg3 <- ggplot(data=frl_prod_se2, aes(x=season, y=FRL_prod, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=FRL_prod-SE, ymax=FRL_prod+SE), width=.2, position=pd) +
ylab("FRL production") +
scale_fill_manual(values=c("white", "gray", "black")) +
theme_minimal(base_size=14)
# fine root length production
frl_surv.p1 <- frl_surv[, .(FRL_surv=mean(FRL_surv)),
by=.(treatment, season, plot)]
frl_surv_se2 <- frl_surv.p1[,.(N=.N,
FRL_surv=mean(FRL_surv),
SE=sd(FRL_surv)/sqrt(.N)),
by=.(treatment, season)]
pd <- position_dodge(.6)
gg4 <- ggplot(data=frl_surv_se2, aes(x=season, y=FRL_surv, fill=treatment)) +
geom_col(position=pd, width=0.6, color='black') +
geom_errorbar(aes(ymin=FRL_surv-SE, ymax=FRL_surv+SE), width=.2, position=pd) +
ylab("FRL survival") +
scale_fill_manual(values=c("white", "gray", "black")) +
theme_minimal(base_size=14)
gg1
gg2
gg3
gg4
The means look the same but my SE of the means are quite different than the reported SEMs. I used #2 (SEs computed from plot means averaged over months) although I would prefer using the modeled SEs from the fit model.
Could the SEs be #2 but among months averaged over plots?
frl5.p1 <- frl[depth==5, .(FRL=mean(FRL)),
by=.(treatment, season, month)]
frl5_se2.2 <- frl5.p1[,.(N=.N,
FRL=mean(FRL),
SE=sd(FRL)/sqrt(.N)),
by=.(treatment, season)]
frl5_se2
## treatment season N FRL SE
## 1: CT wet 5 123.325 9.035399
## 2: LA wet 5 148.925 10.221806
## 3: LR wet 5 103.875 2.029855
## 4: CT dry 5 136.750 7.040508
## 5: LA dry 5 108.100 9.385028
## 6: LR dry 5 89.750 4.617900
frl5_se2.2
## treatment season N FRL SE
## 1: CT wet 8 123.325 3.1638443
## 2: LA wet 8 148.925 3.2861044
## 3: LR wet 8 103.875 5.8272681
## 4: CT dry 4 136.750 3.6980851
## 5: LA dry 4 108.100 0.9814955
## 6: LR dry 4 89.750 3.6754818
post hoc tests for fig. 3
fine root length 0-5cm
frl5.emm <- emmeans(frl5.fit, specs=c("season", "treatment"))
contrast(frl5.emm, method="revpairwise", simple = "each", combine=FALSE)$"simple contrasts for treatment"
## season = wet:
## contrast estimate SE df t.ratio p.value
## CT - LR 19.45 10.21100 13.14 1.905 0.1762
## LA - LR 45.05 10.21100 13.14 4.412 0.0018
## LA - CT 25.60 10.21100 13.14 2.507 0.0632
##
## season = dry:
## contrast estimate SE df t.ratio p.value
## CT - LR 47.00 10.87222 16.85 4.323 0.0013
## LA - LR 18.35 10.87222 16.85 1.688 0.2386
## LA - CT -28.65 10.87222 16.85 -2.635 0.0438
##
## P value adjustment: tukey method for comparing a family of 3 estimates
# CLD(frl5.emm) # not recommended as this is classification based on arbitrary boundaries
wet: LR: a, CT: ab, LA: b (reported a, a, b). CT does not reproduce dry: LR: a, CT: b, LA: a (reported a, b, a). reproduces
fine root length 0-10 cm
frl10.emm <- emmeans(frl10.fit, specs=c("treatment", "season"))
contrast(frl10.emm, method="revpairwise", simple = "each", combine=FALSE)$"simple contrasts for treatment"
## season = wet:
## contrast estimate SE df t.ratio p.value
## CT - LR 22.675 13.23068 14.03 1.714 0.2347
## LA - LR 50.225 13.23068 14.03 3.796 0.0052
## LA - CT 27.550 13.23068 14.03 2.082 0.1295
##
## season = dry:
## contrast estimate SE df t.ratio p.value
## CT - LR 81.000 14.64839 20.91 5.530 0.0001
## LA - LR 21.250 14.64839 20.91 1.451 0.3343
## LA - CT -59.750 14.64839 20.91 -4.079 0.0015
##
## P value adjustment: tukey method for comparing a family of 3 estimates
wet: LR: a, CT: ab, LA: b (reported a, ab, b). reproduces dry: LR: a, CT: b, LA: a (reported a, b, a). reproduces
fine root length production
frl_prod.emm <- emmeans(frl_prod.fit, specs=c("treatment", "season"))
contrast(frl_prod.emm, method="revpairwise", simple = "each", combine=FALSE)$"simple contrasts for treatment"
## season = wet:
## contrast estimate SE df t.ratio p.value
## CT - LR 0.5428571 7.066365 17.72 0.077 0.9968
## LA - LR 15.4857143 7.066365 17.72 2.191 0.1003
## LA - CT 14.9428571 7.066365 17.72 2.115 0.1153
##
## season = dry:
## contrast estimate SE df t.ratio p.value
## CT - LR 50.3500000 8.267297 32.10 6.090 <.0001
## LA - LR 5.4500000 8.267297 32.10 0.659 0.7885
## LA - CT -44.9000000 8.267297 32.10 -5.431 <.0001
##
## P value adjustment: tukey method for comparing a family of 3 estimates
wet: LR: a, CT: a, LA: a (reported -, -, -). reproduces dry: LR: a, CT: b, LA: a (reported a, b, a). reproduces
fine root length survival
frl_surv.emm <- emmeans(frl_surv.fit, specs=c("treatment", "season"))
contrast(frl_surv.emm, method="revpairwise", simple = "each", combine=FALSE)$"simple contrasts for treatment"
## season = wet:
## contrast estimate SE df t.ratio p.value
## CT - LR 15.77143 10.81538 13.20 1.458 0.3413
## LA - LR 33.57143 10.81538 13.20 3.104 0.0210
## LA - CT 17.80000 10.81538 13.20 1.646 0.2619
##
## season = dry:
## contrast estimate SE df t.ratio p.value
## CT - LR 33.45000 11.32344 15.83 2.954 0.0242
## LA - LR 18.00000 11.32344 15.83 1.590 0.2788
## LA - CT -15.45000 11.32344 15.83 -1.364 0.3823
##
## P value adjustment: tukey method for comparing a family of 3 estimates
wet: LR: a, CT: ab, LA: b (reported a, ab, b). reproduces dry: LR: a, CT: b, LA: ab (reported a, b, ab). reproduces


SCEE
Home
Gallery
Upcoming
Projects
Alumni
History
Papers
StayInTouch
Our Blogs
Contact
Us
Drop Us a Mail
Your message here...


|
IoT Drivers
v3.3.0 (S2022)
Engineering in Software Technology
|
Driver to Honeywell HIH8120 Temperature and Humidity sensor found on the VIA ARDUINO MEGA2560 Shield rev. 2.0 More...
#include <stdbool.h>
Go to the source code of this file.
Typedefs | |
| typedef enum hih8120_driverReturnCodes | hih8120_driverReturnCode_t |
| HIH8120 Driver return codes. More... | |
Enumerations | |
| enum | hih8120_driverReturnCodes { HIH8120_OK, HIH8120_OUT_OF_HEAP, HIH8120_DRIVER_NOT_INITIALISED, HIH8120_TWI_BUSY } |
| HIH8120 Driver return codes. More... | |
Functions | |
| hih8120_driverReturnCode_t | hih8120_initialise (void) |
| Initialise the HIH8120 driver. More... | |
| hih8120_driverReturnCode_t | hih8120_destroy (void) |
| Destroy the HIH8120 driver. More... | |
| bool | hih8120_isReady (void) |
| Test if result is ready. More... | |
| hih8120_driverReturnCode_t | hih8120_wakeup (void) |
| Wakes up the HIH8180 sensor. More... | |
| hih8120_driverReturnCode_t | hih8120_measure (void) |
| Fetch the latest results from the HIH8180 sensor. More... | |
| uint16_t | hih8120_getHumidityPercent_x10 (void) |
| Get latest measured relative humidity percent in tenths of %. More... | |
| int16_t | hih8120_getTemperature_x10 (void) |
| Get latest measured temperature in tenths of C. More... | |
| float | hih8120_getHumidity (void) |
| Get latest measured relative humidity percent. More... | |
| float | hih8120_getTemperature (void) |
| Get latest measured temperature in C. More... | |
Driver to Honeywell HIH8120 Temperature and Humidity sensor found on the VIA ARDUINO MEGA2560 Shield rev. 2.0


{{Infobox prepared food | name = Torta Tre Monti | image = | caption = | alternate_name = | country = San Marino | region = | creator = | course = | type = Cake | served = | main_ingredient = Wafers, chocolate or hazelnut creme, chocolate fondant | variations = | calories = | other = }}
Torta Tre Monti (from {{lang-it|three Mountain cake}}) is a traditional Sammarinese cake made of layers of thin waffled wafers cemented together by chocolate or hazelnut creme. The final product is covered in chocolate fondant. It is similar to other layered desserts common to San Marino, this one being representative of the Three Towers of San Marino.<ref name=ALG3>{{cite web|url=http://adribarrcrocetti.com/main/2011/04/12/torta-tre-monti/|title=Cake Review|accessdate=17 April 2014}}</ref>
In San Marino, the torta has been commercially produced by La Serenissima since 1942. The bakery markets both a full-size cake and snack-size version, in addition to a variation that includes coffee.<ref name=PLG3>{{cite web|url=http://www.laserenissima.sm/eng/index.asp|title=Producer's website|accessdate=17 April 2014}}</ref>
{{Reflist}}
{{Cakes}} {{Chocolate desserts}}
{{cuisine-stub}} {{SanMarino-stub}}


Background Color : #fffff
Try clicking on one of the colors above to change the background color of this page!


Definition at line 13 of file Event.php.
Create a new event instance.
- Parameters
-
- Returns
- void
Definition at line 105 of file Event.php.
Schedule the command at a given time.
- Parameters
-
- Returns
- $this
Definition at line 311 of file Event.php.
Build the comand string.
- Returns
- string
Definition at line 174 of file Event.php.
Call all of the "after" callbacks for the event.
- Parameters
-
| \Illuminate\Contracts\Container\Container | $container | |
- Returns
- void
Definition at line 161 of file Event.php.
The Cron expression representing the event's frequency.
- Parameters
-
- Returns
- $this
Definition at line 278 of file Event.php.
Schedule the event to run daily at a given time (10:00, 19:30, etc).
- Parameters
-
- Returns
- $this
Definition at line 322 of file Event.php.
Set the days of the week the command should run on.
- Parameters
-
- Returns
- $this
Definition at line 500 of file Event.php.
| description |
( |
|
$description | ) |
|
Set the human-friendly description of the event.
- Parameters
-
- Returns
- $this
Definition at line 711 of file Event.php.
| emailOutput |
( |
Mailer |
$mailer, |
|
|
|
$addresses |
|
) |
| |
|
protected |
E-mail the output of the event to the recipients.
- Parameters
-
| \Illuminate\Contracts\Mail\Mailer | $mailer | |
| array | $addresses | |
- Returns
- void
Definition at line 642 of file Event.php.
| emailOutputTo |
( |
|
$addresses | ) |
|
E-mail the results of the scheduled operation.
- Parameters
-
| array | dynamic | $addresses | |
- Returns
- $this
- Exceptions
-
Definition at line 620 of file Event.php.
| environments |
( |
|
$environments | ) |
|
Limit the environments the command should run in.
- Parameters
-
| array | dynamic | $environments | |
- Returns
- $this
Definition at line 539 of file Event.php.
| evenInMaintenanceMode |
( |
| ) |
|
State that the command should run even in maintenance mode.
- Returns
- $this
Definition at line 551 of file Event.php.
Schedule the event to run every five minutes.
- Returns
- $this
Definition at line 469 of file Event.php.
Schedule the event to run every thirty minutes.
- Returns
- $this
Definition at line 489 of file Event.php.
Determine if the Cron expression passes.
- Returns
- bool
Definition at line 222 of file Event.php.
Determine if the filters pass for the event.
- Parameters
-
| \Illuminate\Contracts\Foundation\Application | $app | |
- Returns
- bool
Definition at line 240 of file Event.php.
Get the e-mail subject line for output results.
- Returns
- string
Definition at line 660 of file Event.php.
Get the Cron expression for the event.
- Returns
- string
Definition at line 751 of file Event.php.
Get the summary of the event for display.
- Returns
- string
Definition at line 739 of file Event.php.
Determine if the given event should run based on the Cron expression.
- Parameters
-
| \Illuminate\Contracts\Foundation\Application | $app | |
- Returns
- bool
Definition at line 205 of file Event.php.
Get the mutex path for the scheduled command.
- Returns
- string
Definition at line 194 of file Event.php.
Set the human-friendly description of the event.
- Parameters
-
- Returns
- $this
Definition at line 700 of file Event.php.
Run the given event.
- Parameters
-
| \Illuminate\Contracts\Container\Container | $container | |
- Returns
- void
Definition at line 116 of file Event.php.
| runCommandInBackground |
( |
| ) |
|
|
protected |
Run the command in the background using exec.
- Returns
- void
Definition at line 133 of file Event.php.
| runCommandInForeground |
( |
Container |
$container | ) |
|
|
protected |
Run the command in the foreground.
- Parameters
-
| \Illuminate\Contracts\Container\Container | $container | |
- Returns
- void
Definition at line 146 of file Event.php.
| runsInEnvironment |
( |
|
$environment | ) |
|
Determine if the event runs in the given environment.
- Parameters
-
- Returns
- bool
Definition at line 257 of file Event.php.
| runsInMaintenanceMode |
( |
| ) |
|
Determine if the event runs in maintenance mode.
- Returns
- bool
Definition at line 267 of file Event.php.
| sendOutputTo |
( |
|
$location | ) |
|
Send the output of the command to a given location.
- Parameters
-
- Returns
- $this
Definition at line 605 of file Event.php.
| skip |
( |
Closure |
$callback | ) |
|
Register a callback to further filter the schedule.
- Parameters
-
- Returns
- $this
Definition at line 592 of file Event.php.
| spliceIntoPosition |
( |
|
$position, |
|
|
|
$value |
|
) |
| |
|
protected |
Splice the given value into the given position of the expression.
- Parameters
-
| int | $position | |
| string | $value | |
- Returns
- void
Definition at line 725 of file Event.php.
| then |
( |
Closure |
$callback | ) |
|
Register a callback to be called after the operation.
- Parameters
-
- Returns
- $this
Definition at line 687 of file Event.php.
Register a callback to ping a given URL after the job runs.
- Parameters
-
- Returns
- $this
Definition at line 676 of file Event.php.
Set the timezone the date should be evaluated on.
- Parameters
-
| \DateTimeZone | string | $timezone | |
- Returns
- $this
Definition at line 513 of file Event.php.
Set which user the command should run as.
- Parameters
-
- Returns
- $this
Definition at line 526 of file Event.php.
Schedule the event to run only on Wednesdays.
- Returns
- $this
Definition at line 375 of file Event.php.
| weeklyOn |
( |
|
$day, |
|
|
|
$time = '0:0' |
|
) |
| |
Schedule the event to run weekly on a given day and time.
- Parameters
-
- Returns
- $this
Definition at line 437 of file Event.php.
| when |
( |
Closure |
$callback | ) |
|
Register a callback to further filter the schedule.
- Parameters
-
- Returns
- $this
Definition at line 579 of file Event.php.
Do not allow the event to overlap each other.
- Returns
- $this
Definition at line 563 of file Event.php.
| $expression = '* * * * * *' |
The documentation for this class was generated from the following file:
- vendor/laravel/framework/src/Illuminate/Console/Scheduling/Event.php


{{ "homepage.eco-news.comment.view" | translate }} {{ repliesCounter }}
{{ "homepage.eco-news.comment.replies.zero-reply" | translate }}
{{ "homepage.eco-news.comment.replies.one-reply" | translate }}
{{ "homepage.eco-news.comment.replies.more-then-two-replies" | translate }}
{{ "homepage.eco-news.comment.replies.more-then-four-replies" | translate }}


Goals
Aren’t there plenty of existing option-parsing libraries already? Yes, there are, but none of the ones that I had seen had the ease of use I wanted. The primary design goal for dropt is to have minimal barriers to entry. Specifically, this includes:
-
High portability. dropt is written in standard C99 with
compatibility code for most non-pathological C89 compilers. (
wchar_t
support for the help facility is supported only on Windows platforms, however.) dropt is written in C to make it easily consumable. C++ wrappers also are provided as a convenience for C++ clients. - (Hopefully) straightforward usage.
- No global variables.
- Minimal dependencies. dropt has no dependencies other than the standard C library. dropt also lets clients opt-in to use only the specific features they want.
- An unrestrictive license. dropt uses the zlib/libpng license and may be statically linked with existing code freely. This avoids some of the hassles that sometimes come with dynamically-linked libraries (such as ensuring that the compiler options used to build the library match those used for the main binary).
- (Approximate) POSIX compatibility. Existing applications that use POSIX-style options hopefully should be able to use dropt without breaking their command-line interface. (The notable difference is that dropt by default does not allow options to be concatenated with their arguments (e.g. -oARGUMENT). POSIX also discourages this but makes exceptions for backwards compatibility reasons. dropt requires that applications opt-in to this behavior.)
- Flexibility. dropt is designed to be callback-based. This allows it to handle arbitrary arguments to command-line options. All types are considered equal. Even basic types such as integers or strings are handled by callbacks; dropt provides standard handlers for them. Exposing the handlers for basic types also allows custom handlers to leverage them.
Secondary goals include being secure, performant, maintainable, and extensible; minimizing memory usage; and gracefully failing if memory is exhausted.
Features
dropt provides basic option-parsing features:
- GNU-style long options (e.g. --option).
- Grouping for short options (e.g. “-abc” is equivalent to “-a -b -c”).
-
Automatically stops parsing when encountering a “--” token. This allows
programs to take arguments that start with “-” and not have them be
treated as options. Examples:
- rm -- -rf
- some_numeric_program -- -123
- Unambiguous syntax for arguments to options. Arguments may always be specified with “=” (e.g. --option=1, -x=1).
- Overridable option values. For example, “--option=1 --option=2” will use the value 2. Boolean flags can be disabled by using --flag=0 (--flag by itself is syntactic sugar for --flag=1). This is useful to override options specified by shell aliases. Note that clients that specify custom handlers can implement different behaviors if desired.
The implementation is intended to be minimalistic. What dropt does not do:
- Localization. dropt doesn’t provide localization facilities, but it does try not to stand in the way of programs that want to localize their help text however they choose.
-
Tokenizing a single command-line string into an
argv
array. This is the shell’s responsibility. (On Windows, whereWinMain()
does not receive a tokenized argv array, developers should useCommandLineToArgvW
or should use the__argv
global from Microsoft’s C runtime library.) - Command-line argument permutation. dropt always expects options to come before non-options.
- Handling of different option styles (e.g. /option, -option). dropt is meant to encourage consistent command-line option interfaces.
Usage
There’s no formal documentation yet, but for now, see dropt_example.c or droptxx_example.cpp.
Download
Version History
-
1.1.1 (2013-03-17)
- Fixed a build issue with gcc with optimizations enabled.
- Changed
dropt_error
to be anunsigned int
type instead of anenum
type to avoid potential comparison warnings with custom error values. - Fixed
dropt_misuse
to terminate in debug builds. (I accidentally disabled termination in dropt 1.1.0.) - Added a Makefile for clang.
- Added an INSTALL file with build instructions.
- Added a droptxx_example.cpp file as a C++ sample program.
- Changed the directory layout a bit.
-
1.1.0 (2012-05-06)
- For scalability, option lookup now uses binary search instead of a linear search.
- Added some explicit safeguards against integer overflow attacks. (Previously overflow was safely handled implicitly, but now favor defensive paranoia.)
- Fixed a null pointer dereference if no handler data was specified for
dropt_handle_verbose_bool
. - In test_dropt.c, fixed a sign-extension bug and a
printf
format specifier mismatch. - Made some other minor style adjustments.
-
1.0.4 (2010-09-12)
-
The
DROPT_HANDLER_DECL
macro has been replaced with adropt_option_handler_decl
functiontypedef
. I apologize for breaking compatibility in a minor version update, but in this case the breakage should be minor, and it should be trivial to fix sites that used the old macro:- Replace
DROPT_HANDLER_DECL(func);
withdropt_option_handler_decl func;
- Alternatively, re-create the macro:
#define DROPT_HANDLER_DECL(func) dropt_option_handler_decl func
- Replace
-
The
-
1.0.3 (2010-08-08)
dropt_handle_bool
anddropt_handle_verbose_bool
now returndropt_error_mismatch
instead ofdropt_error_insufficient_arguments
if given empty string arguments.- The error messages from
dropt_default_error_handler
now consistently do not end with periods.
-
1.0.2 (2010-07-28)
dropt_handle_bool
anddropt_handle_verbose_bool
now returndropt_error_mismatch
instead ofdropt_error_overflow
if given very large numbers.- Fixed the compilation of test_dropt.c when building with
_UNICODE=1
.
-
1.0.1 (2010-07-03)
- Calling
dropt_ssgetstring
on a newly-openeddropt_stringstream
returned garbage. Fixed. This would have affected only clients that useddropt_stringstream
directly. - The
MIN
andMAX
macros in dropt_string.c are now conditionally defined. dropt_safe_malloc
anddropt_safe_realloc
are now publicly declared in dropt_string.h.- Renamed
DROPT_MISUSE_PANIC
toDROPT_MISUSE
since it’s non-fatal in non-debug builds. DEFAULT_STRINGSTREAM_BUFFER_SIZE
is now anenum
constant instead of a preprocessor macro.- Modified test_dropt.c. Now tries harder to report line numbers on failure, and more tests continue executing upon failure. Added
a few more tests for
dropt_stringstream
functions. Rewrote one of the sample option handler callbacks to be more general.
- Calling
-
1.0 (2010-06-19)
- Initial release.


--- layout: post title: Traveling With Kids date: 2011-04-30 07:01:49.000000000 -07:00 type: post parent_id: '0' published: true pd: '' status: publish categories: - Classroom Talk - Early Childhood Issues - Infants and Toddlers tags: - children traveling - play - recreation - School's Out - summer fun - travel - traveling with kids author: login: k email: k@k display_name: mcary first_name: '' last_name: '' ---
It’s that time of year when many of us are starting to plan our summer vacations. Families with children need to make special preparations to be sure everyone has a stress-free fun-filled time. Here are a few tips for a successful journey.
1. If your child has a favorite comfort toy (stuffed animal, blanket, etc.), pack it. Even if it takes up precious room when packing, the entire family will get a better night’s sleep if your little one feels more secure in a new environment.
2. Let your kids take their own mini-suitcase or backpack with essentials (toys, games, books) which will occupy them when you have down time.
3. If you’re flying or traveling by train be considerate of other passengers. Most people aren’t able to block out the sound of video games being played, so bring headphones so that your child can play quietly.
4. Expect your child to behave appropriately when using public transportation. When possible, try to schedule flights during a baby or toddler’s nap time. Your fellow passengers will silently thank you.
5. Check out public parks and playgrounds in the area you are traveling to before you go. Allow for plenty of down time for the kids where they can play and explore.


Sean Bae was born in Korea in 1996. He started coding in his freshman year of high school, and his dedication to mathematics, science, and technology led him to attend several tech events even while in high school. Sean Bae is currently a freshman studying Computer Science and Physics at the University of Maryland
Colin was born in May 1996. He took AP Computer Science in high school, and started taking software development seriously in his junior year. Colin specializes in iOS development and Java. He is currently in his freshman year studying Computer Science at the University of Maryland.
Ivan was born in 1993 in Europe. He first started web development while in 5th grade, creating a site that hosted flash games for friends.  He loves anything to do with computers, and loves to work on side projects in his free time. In the spare moments when he doesn't have vim open, however, he loves to read and bike. Ivan currently studies Computer Science at UC Berkeley.
Anatol was born in July, 1996. Anatol had his first experience coding in sophomore year, but unlike his teammates, never again wrote a line of code until college. He started taking coding seriously last year, and is still fairly new to software development. When he is not coding, Anatol enjoys playing piano and drawing. Anatol currently studies Computer Science at Carnegie Mellon.


Remember to place your vertices in counter-clockwise order for physics to work!
Click to create a vertex.
Click and drag with the middle mouse button to pan.
Use the scroll wheel to zoom in and out.
Vertices Object Name:
Underlay Image:
Undo Last Point
Clear All Points
Reset View
SoulEngine Polygon
Export as an array


filmcritic.com presents a review from staff member Robert Strohmeyer. You can find the review with full credits at http://filmcritic.com/misc/emporium.nsf/2a460f93626cd4678625624c007f2b46/a798b7c8e97eb65c8825695900042829?OpenDocument
THE FANTASTICKS A film review by Robert Strohmeyer Copyright 2000 filmcritic.com filmcritic.com
After 40 continuous years of off-Broadway performances, the musical sensation of Tom Jones and Harvey Schmidt comes inexplicably to the big screen. That's right, folks.
Set deep in rural America, this is the story of two neighboring fathers who fake a feud in order to trick their children into courtship. Of course, the young man and woman (played by Joe McIntyre and Jean Louisa Kelly, respectively) are easily duped and everything is going as planned. That is, until the circus comes to town. And that's when the moronic singing starts.
Perhaps the most baffling thing about this incomprehensible production is that it languished for about five years on MGM shelves, nearly (but not nearly enough) not making it to the screen, until Francis Ford Coppola offered to have a look at it at much risk to his own sanity. Sadly, even FFC's magical touch could not spare us the horror The Fantasticks has in store. The unique combination of cheesy choreography, inept dialog, and insanely ridiculous music, so brilliantly captured under Michael Ritchie's direction, is surely enough to have audiences howling all the way to their cars within the first twenty minutes.
This is the sort of film our grandmothers might have loved. Well, probably not my grandmother but maybe yours, if she was an invalid. One credit I can pay this flick is that, against all probability, its makers managed to cram more moments of ungodly torture into an 86-minute musical than I could ever have thought possible.
The saddest thing about The Fantasticks is the inclusion in its cast of Cabaret's memorable emcee, Joel Grey. A longtime fan of Grey's performances, I will be forever scarred by this experience. To be sure, Jean Louisa Kelly and Joe McIntyre will live long enough to regret their roles in this picture. Teller (of Penn & Teller), on the other hand, might very well consider this the crowning achievement of a career spent frolicking silently about in the shadow of a lowbrow windbag.
The Fantasticks might well serve as a worthwhile sacrifice in American filmmaking, demonstrating for all time the God-awful stupidity of silver screen musicals. Use it as you would a roadside accident; gawk thoroughly as you cruise slowly by, praying for all your life is worth that this sort of atrocity never happens to anyone, ever again.

The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


FARABEUF Story of Farabeuf and the nurse Story of the lovers Story of a sacrifice Farabeuf without plot


Hotels
menu
home
Home
people
Profile
play_arrow
Login
Username
<EMAIL_ADDRESS>Navigate
Login
Favorites
Roomlist
About Us
First
Second
Third
Username:
account_circle
Password:
vpn_key


Part I. Abstraction
My abstract. I used (Gelfand 2020; Wickham et al. 2019), both codes and their descriptions.
Introduction
The global pandemic of COVID-19 has caused endless problems to our lives, since the beginning of 2020. In the mean time of fighting against the disease, Toronto Public Health has collected detailed information about every reported or probable case. Analysis of these data might give us an idea of questions such as whether the virus attacks every person indifferently or it might target a certain group of people.
Data Introduction
This dataset include all reported or probable cases of COVID-19 recorded by Toronto Public Health, since January 2020. It displays demographic, geographic, and severity information of every case. Firstly, let us give a glimpse at the dataset:
## function (..., list = character(), package = NULL, lib.loc = NULL, verbose = getOption("verbose"),
## envir = .GlobalEnv, overwrite = TRUE)
There are 18 variables in total, despite "_id" and “Assigned_ID”, they represent:
*Outbreak Associated: Outbreak associated cases are associated with outbreaks of COVID-19 in Toronto congregate settings(such as health institutions or homeless shelter etc.).
*Age Group: Age groups (in years) the client is in: ≤19, 20-29, 30-39, 40-49, 50-59, 60-69, 70-79, 80-89, 90+, unknown (blank)
*Neighborhood Name: The neighbourhood the client lives in.
*FSA: Forward Sortation Area, first three letters of the postal code of the client.
*Source of Infection: The most probable way that a sporadic case might acquire the infection.
*Classification: Whether this case is confirmed or probable, according to standards.
*Episode Date: the estimated date of acquisition.
*Reported Date: the date the case is reported.
*Client Gender: gender of the client.
*Outcome: whether the case is resolved or in progress or fatal.
*Currently Hospitalized: whether the client is in hospital.
*Currently In ICU: whether the client is in ICU.
*Currently Intubated: whether the client is intubated.
*Ever Hospitalized: Has the client ever hospitalized.
*Ever in ICU: Has the client ever been in ICU.
*Ever Intubated: Has the client ever intubated.
Data Analysis
1.Age group
## Warning: Ignoring unknown parameters: binwidth, bins, pad
According to the barplot we drawn according to data, which displays how many cases in each age group, the number of cases actually peaks at the 20-29 group, which seems to contradicts to the general opinion that more of elderly people are infected with COVID-19.
2.Source of Infection
## Warning: Ignoring unknown parameters: binwidth, bins, pad
In the barplot we draw according to the source of infection, it is obvious that most clients acquired infection through close contact and outbreak association, which happens to prove the importance of social distancing.
3.Outcome
Reference
Gelfand, Sharla. 2020. Opendatatoronto: Access the City of Toronto Open Data Portal.
Wickham, Hadley, Mara Averick, Jennifer Bryan, Winston Chang, Lucy D’Agostino McGowan, Romain François, Garrett Grolemund, et al. 2019. “Welcome to the tidyverse.” Journal of Open Source Software 4 (43): 1686. https://doi.org/10.21105/joss.01686.


Hello, Code School!
- HTML5
- CSS3
- JavaScript
- HTML5 Divs: Header, nav, article, footer..
- Horizontal Menus
- Full Landing Background Images
- Media Queries
- Forms
- When to use Text Replacement instead of Image Links| Text>Image
- How to work with min-width/max-width
- Converting PSD into HTML | Brackets
- Class | IDs
- SASS Imports (Other CSS files inside of one document)
- GitHub Guide


Performs Diallel Analysis with R using Griffing's and Hayman's approaches. Four different methods (1: Method-I (Parents + F1's + reciprocals); 2: Method-II (Parents and one set of F1's); 3: Method-III (One set of F1's and reciprocals); 4: Method-IV (One set of F1's only)) and two methods (1: Fixed Effects Model; 2: Random Effects Model) can be applied using Griffing's approach.
| Version: | 0.1.1 |
| Depends: | R (≥ 3.1) |
| Imports: | ggplot2, stats |
| Published: | 2016-04-09 |
| Author: | Muhammad Yaseen [aut, cre], Kent M. Eskridge [ctb] |
| Maintainer: | Muhammad Yaseen <myaseen208 at gmail.com> |
| License: | GPL-2 |
| NeedsCompilation: | no |
| CRAN checks: | DiallelAnalysisR results |
| Reference manual: | DiallelAnalysisR.pdf |
| Package source: | DiallelAnalysisR_0.1.1.tar.gz |
| Windows binaries: | r-devel: DiallelAnalysisR_0.1.1.zip, r-release: DiallelAnalysisR_0.1.1.zip, r-oldrel: DiallelAnalysisR_0.1.1.zip |
| OS X binaries: | r-release: DiallelAnalysisR_0.1.1.tgz, r-oldrel: DiallelAnalysisR_0.1.1.tgz |
Please use the canonical form https://CRAN.R-project.org/package=DiallelAnalysisR to link to this page.


Beta This is a test version of the layout of this page. Take the survey to help us improve it
Guidance
Relates to the agreement between the Secretary of State for Education acting through the Skills Funding Agency (the SFA) on behalf of the Crown and providers who receive funding.
PDF , 199KB , 27 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 486KB , 26 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 194KB , 23 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 275KB , 53 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 224KB , 29 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 201KB , 26 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 477KB , 31 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 489KB , 28 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 474KB , 58 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 576KB , 32 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 618KB , 29 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 514KB , 59 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 547KB , 32 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 447KB , 29 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 568KB , 32 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
PDF , 557KB , 30 pages
If you use assistive technology (such as a screen reader) and need a version of this document in a more accessible format, please email<EMAIL_ADDRESS>. Please tell us what format you need. It will help us if you say what assistive technology you use.
Funding Agreements for providers, local authorities, colleges and employers who receive funding from the Skills Funding Agency for education and skills training.
Published: 15 September 2014
Updated: 20 July 2016
From: Skills Funding Agency


Password Reset Request
Please type the e-mail that is associated with this account.
email
Request Password Reset


Persona
/
Codex
/
GitHub
On Longform Writing, in the Age of Networks
01 - 01 - 2019
A Manifesto for Post-Veganism
08 - 10 - 2018
XXVIII
06 - 06 - 2018
The Haunted Web
03 - 06 - 2018
Radical Sobriety For Moderates
02 - 06 - 2018
The First Fifteen Minutes
29 - 05 - 2018
Installation and Configuration of Arch Linux
27 - 05 - 2018
Eudaimonia and the Path to Happiness
25 - 05 - 2018
Project: Banxre, a Simple NodeJS API
24 - 05 - 2018
Designing in Shifting Sands
04 - 09 - 2017
Future Storefronts and Digital Interfaces
29 - 08 - 2017
Aggregating JSON Feeds From Multiple Systems
15 - 06 - 2017
The Web is an Impossible Place
20 - 12 - 2016
Project: World Bicycle Relief’s Year End Appeal Landing Page Build
09 - 12 - 2016


Komodo
equaliser
100 messages
Before 05-Dec-19 12:00 AM
Gateway
BOT
21-Aug-18 06:12 AM
[dscrdeql] <
Jellysmash
> How's it going
[dscrdeql] <
Jellysmash
> Make sure you type in the begin to get the free rains
[dscrdeql] <AndronicusBass-Founder> Be sure to type ?begin in the #tipsy-begin channel
[dscrdeql] <
dimple018
> cool
[dscrdeql] <Podmaster> Yup that's right
[dscrdeql] <AndronicusBass-Founder> Trying to reference #channel names on mobile devices is a pain, Im back at my desk now
Gateway
BOT
21-Aug-18 06:40 AM
[tlgrm] <AndronicusBass>
Attachment: file_9.webp (35.51 KB)
Gateway
BOT
21-Aug-18 06:49 AM
[dscrdeql] <Cryptoon> Mornin’
[dscrdeql] <nille> thank you
Gateway
BOT
21-Aug-18 06:59 AM
[dscrdeql] <AndronicusBass-Founder> @nille lol for what?
But hey, any time
Gateway
BOT
21-Aug-18 07:22 AM
[dscrdeql] <
edsky
> How’s it going everybody?
Gateway
BOT
21-Aug-18 07:32 AM
[dscrdeql] <Podmaster> It's going fine
[dscrdeql] <Podmaster> You?
[dscrdeql] <codezero> Hi
Gateway
BOT
21-Aug-18 07:46 AM
[dscrdeql] <AndronicusBass-Founder> @codezero How do you do?
Gateway
BOT
21-Aug-18 08:33 AM
[dscrdeql] <
Jellysmash
> hey there @codezero
[dscrdeql] <
Jellysmash
> hey there @
edsky
got some time whilst at work
[dscrdeql] <
Jellysmash
> noice
[dscrdeql] <
Jellysmash
> I always try to drop in a bit and see what's going on
[dscrdeql] <
Jellysmash
> just got home
[dscrdeql] <
Jellysmash
> wow....on a keyboard now instead of mobile
[dscrdeql] <
Jellysmash
> soo nice
Gateway
BOT
21-Aug-18 08:42 AM
[dscrdeql] <Thuerlich[ Swiss
]> he
Gateway
BOT
21-Aug-18 09:05 AM
[dscrdeql] <
> hello
[dscrdeql] <sorin90> Hello. I'm back. How's everyone?
[dscrdeql] <
Jellysmash
> hey there @sorin90
[dscrdeql] <
Jellysmash
> going ok
[dscrdeql] <
Jellysmash
> how are you going?
[dscrdeql] <
Jellysmash
> hello @
[dscrdeql] <sorin90> I'm white agai
[dscrdeql] <
Jellysmash
> and you to @Thuerlich[ Swiss
]
[dscrdeql] <
Jellysmash
> nice avatar
[dscrdeql] <sorin90> Not that good @jellysmash
[dscrdeql] <
Jellysmash
> I liked Suicide squad
[dscrdeql] <
Jellysmash
> really why @sorin90
[dscrdeql] <sorin90> @jellysmash vacation is over
[dscrdeql] <Thuerlich[ Swiss
]> @
Jellysmash
thanks. i like to suicide squad. hehe
[dscrdeql] <
Jellysmash
> oh no...I hate that feeling
[dscrdeql] <
Jellysmash
> you know when work is the next day after having time off.
[dscrdeql] <
Jellysmash
> it's soooo hard
[dscrdeql] <
Jellysmash
> I feel your pain
[dscrdeql] <sorin90> Yeah and it's my first day at work.
[dscrdeql] <
Jellysmash
> what's her name in suicide squad...she is sooo hot
[dscrdeql] <
Jellysmash
> @sorin90 i feel liek that every monday
[dscrdeql] <
Jellysmash
> hard yakka
[dscrdeql] <x2maano> good morning
[dscrdeql] <x2maano> all budies
[dscrdeql] <
Jellysmash
> hi there @x2maano
[dscrdeql] <
Jellysmash
> nice of everyone to pop in
[dscrdeql] <
Jellysmash
> I've gott the mother in -law over for dinner
[dscrdeql] <x2maano>
[dscrdeql] <
Jellysmash
> just drinking
[dscrdeql] <x2maano> hmm
[dscrdeql] <
Jellysmash
>
[dscrdeql] <x2maano> whats in menue???
[dscrdeql] <
Jellysmash
> my favourite
[dscrdeql] <
Jellysmash
> or one of my favourites
[dscrdeql] <sorin90> @jellysmash mondays are different. Only 2 free days.
(edited)
[dscrdeql] <
Jellysmash
> it's a caseroul of some sort
[dscrdeql] <sorin90> So what's new?
[dscrdeql] <
Jellysmash
> beef with potato curry style
[dscrdeql] <
Jellysmash
> slow cooked for hours
[dscrdeql] <
Jellysmash
> it's nice
[dscrdeql] <sorin90> I see that my role was reseted.
[dscrdeql] <
Jellysmash
> in coconumt milk
[dscrdeql] <
Jellysmash
> what happend to your role @sorin90 ?
[dscrdeql] <
Jellysmash
> do you mean everyone got levelled down to 1 again
[dscrdeql] <sorin90> @jellysmash don't know. I have none now
[dscrdeql] <
Jellysmash
> and had to start from scratch
[dscrdeql] <
Jellysmash
> we all had to start from level 1
[dscrdeql] <
Jellysmash
> I think it was to make everyone equal
[dscrdeql] <sorin90> Really? When was that?
[dscrdeql] <
Jellysmash
> so we're all on the same page
[dscrdeql] <
Jellysmash
> it was about 1.5 weeks ago
[dscrdeql] <
Jellysmash
> I was on level 15
[dscrdeql] <
Jellysmash
> just got there
[dscrdeql] <
Jellysmash
> and next morning back to level 1
[dscrdeql] <sorin90> Is this done frequently?
[dscrdeql] <
Jellysmash
> but that's ok
[dscrdeql] <
Jellysmash
> no...first time ever
[dscrdeql] <
Jellysmash
> I think they did it as part of the new bounty program
[dscrdeql] <
Jellysmash
> so that all the new people were the same as everyone else
[dscrdeql] <
Jellysmash
> which I think is good
[dscrdeql] <
Jellysmash
> and good for new people
[dscrdeql] <sorin90> Aaa. Nice. I have some chatting uo to do then.
[dscrdeql] <
Jellysmash
> haha..yea
[dscrdeql] <
Jellysmash
> i've done so much in the last 1.5 weeks its crazy
[dscrdeql] <sorin90> Let me see if I need to verify myself again
[dscrdeql] <
Jellysmash
> maybe
[dscrdeql] <
Jellysmash
> just try the 'begin' again
[dscrdeql] <
Jellysmash
> make sure you're active to get the rains
[dscrdeql] <sorin90> Ooo. They changed the levels as well.
[dscrdeql] <sorin90> 21k for lev1
Gateway
BOT
21-Aug-18 09:57 AM
[dscrdeql] <Steve10> Good morning everyone
[dscrdeql] <Steve10> @sorin90 there are huge gaps between the levels but you'll move up pretty fast
[dscrdeql] <
edsky
> Hi steve10
[dscrdeql] <
edsky
> It's quick @sorin90
Gateway
BOT
21-Aug-18 10:21 AM
[dscrdeql] <SwimedDragon> See ya later everyone
Gateway
BOT
21-Aug-18 10:29 AM
[dscrdeql] <Steve10> Bye @SwimedDragon
[dscrdeql] <
Jellysmash
> bye @SwimedDragon


Registration:
Role:
Manager
Deliverer
Name:
Lastname:
Gender:
Male
Female
Birthday:
Username:
Password:
Password repeat:


Trace the substitution algorithm to perform the following substitution and write down your final answer on the right, using ^ to denote λ. For each α-conversion that the algorithm requires when computing, say, subst(e, p, λx.B), you must choose for the new variable the letter that comes first alphabetically (i.e., "a", then "b", etc.) among those occur neither in e nor B.
For each step in the algorithm, make sure to pick the only case that applies based on the type of the outermost expression which you are substituting into.
Make sure to perform an α-conversion only when the algorithm requires it, that is, in case 2c.
For each α-conversion, if any, you must choose the correct variable name (reread the instructions above) to get credit for your answer: there is only one correct answer for each substitution.


BAF
xxxx-xxxxx-xxxx
FEEDBACK
CLIENTS
WORKSPACE
SUGGESTION
HELP
LOG OUT >>>
Dear mechanic, Find your location...


FlatApp
Introduction
This project is an example of creating a new brand called FlatApp by using some basic UI Design principles.
Username:
Password:
Application:
---- Please select ----
Sign in


I am a computer science graduate from the University of Toronto
Welcome to my personal website!
Hello! My name is Emilio Kartono and I am a recent computer science graduate from the University of Toronto (St. George Campus).
I am currently a software engineer at Salesforce.
I grew up in Mississauga and discovered my passion in software development when I was in high school. I love problem solving and programming.
In my free time, I enjoy learning new things, meeting new people, and building side projects.


About
I am a talented coder with an interest in building the most effective, user-friendly, and beautiful software possible. I come from a background in higher-education, eco-tourism, and corporate finance which has given me the opportunity to collaborate with a large variety of people. I have experience with marketing, management, corporate culture, and human resources. I am currently sharpening my development and coding skills through a Trilogy Bootcamp hosted at the University of Denver, which will wrap up in April 2020.
Outside of work I love volunteering at organic farms, learning new programming languages, working my way through every recipe in the family cookbook, and indulging my love for seeing new places.
If you’d like to learn more about me, and what I can offer your company, please reach out via email (lineberry.kelly@gmail.com).


Speed and accuracy are crucial to Travelocity - delays of even a few
seconds can mean lost customers and lost revenue. As XML has become an
increasingly important element of modern e-commerce, JiBX plays a key
role for parsing and handling critical flight, hotel and rental car
details each day.
Barry Vandevier, Chief Technology Officer, Travelocity
We have been using JiBX for several years in our production systems
for transfering critical data to our backend servers. JiBX allowed us
to embrace XML transparently: JiBX is very fast, low overhead, and its
binding definitions make it flexible. We liked so much its flexibility
that we have been using XML files and JiBX in a recent project instead
of a database for some specific data. And that choice saved us lots of
time for evolving the data through the development of the project.
Henri Dupre, Actualis Center
JiBX provides lightening quick mapping of data from xml to java classes and
vice versa. Using JiBX-soap allowed us to reduce the communications overhead of
calling our web services down to a handful of milliseconds.
Tim Sawyer, pancredit systems limited
The scenario I was confronted with was that persistence functionality based
on XML data output should be added to code already in heavy use. It only took a
quick glance on some tutorials of XML data binding frameworks to figure out that
JiBX was the choice for me. The decisive point clearly was flexibility and with
the JiBX binding framework I managed to add the required functionality with
minimum effort and only unsignificant changes to the existing code. The result
is a highly performant solution meeting the demands made on software used in a
scientific environment.
Tilman Linden, Fraunhofer-Gesellschaft
I am impressed by the flexibility and responsiveness of a product in such
beginning stages. I have successfully incorporated JiBX with our Java based
object model and have been able to offer my users a more generic and efficient
xml binding framework and generation tool.
Simone Swieca, JPMorgan
When I was tasked with adding XML support to our project, I dreaded the
re-work required to get the two technologies to integrate. JiBX solved the
problem fast; not only was there no code changes required but JiBX reads and
writes XML faster than our normal save routines. Highly recommended for any
project using Java and XML.
Thomas Jones-Low, Softstart Services Inc.
Sync4j, the open mobile application server, uses JiBX since it
combines production grade quality and performance with an easy
development integration process. It allows Sync4j to focus on
SyncML and I recommend projects with similar requirement to
use JiBX also.
Harrie Hazewinkel, Sync4j
We use JiBX for converting Java Objects into XML Documents that are
then sent to a variety of web services in the telecommunications
industry. We wanted a technology that allowed us to make XML Code that
is correct to a schema and can be loaded to our objects; JiBX was the
best that we found. It's fast and surprisingly easy to use. We will
definitely be using JiBX technology in the future.
Daniel Lewis, Lifecycle Software Ltd.


Landing Page
Special Projects
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.
Marcus Pavilonis
10/4/2018
The LGBT Center hosts dozens of events throughout the year. Here’s what’s planned for the rest of 2018.
10 a.m. on Oct. 11. The celebration of being out and proud will be held on the fourth floor of the Baker University Center. The event will include selfie opportunities to form a collage that will be featured in the center.
Admission: Free
Amelia Green | FOR THE POST
A collage located in the lobby of the LGBT Center.
7 p.m. on Oct. 11. The event is a coming-out take on The Vagina Monologues. People are to share monologues and original pieces of music, poetry and art.
Admission: Free
10 a.m. on Oct. 19 on the fourth floor of the Baker University Center. Similar to National Coming Out Day, International Pronoun Day will be a celebration and exercise in pride with photo-sharing opportunities.
Admission: Free
Noon on Oct. 19. The Dine-n-Discuss is in honor of the 20th anniversary of the LGBT center and includes a free lunch. The event also has a discussion of the history of Ohio University’s LGBT center, including past coordinators of the center.
Admission: Free
8 p.m. on Oct. 19 in Baker University Center. The drag show coincides with Homecoming week and celebrates drag in Athens. Alumni are set to return and perform. Donations are encouraged fundraiser for LGBT emergency fund.
Admission: Free
Oct. 31. Stephanie Skora is a trans woman, lesbian and Jewish activist whose work focuses on Palestinian solidarity and fighting for human rights. When and where to be determined.
Admission: Free
Amelia Green | FOR THE POST
Lobby of the LGBT center on Sept. 25, 2018.
7 p.m. on Nov. 1 at The Athena Cinema, 20 S. Court St., The Voiceless is a film featuring the stories of five male sexual assault survivors. Following the film, there will be a discussion.
Admission: Free
Noon on Nov. 8 in the LGBT Center. A panel discussion about transgender identity and its relationship with religion.
Admission: Free
9:30 p.m on Nov. 10 at Casa Nueva, 6 W State St., The LGBT-themed dance will feature DJ Logan Savage. Proceeds will go to Southeastern Ohio Rainbow Alliance.
Admission: $5
8 p.m. on Nov. 15 at Galbreath Chapel. The vigil will be in honor of trans lives lost and the strength of the trans community looking forward.
Admission: Free
7 p.m. on Nov. 30. The annual event started three years ago with a goal of raising awareness about AIDS and ball culture. Location to be determined.
Admission: Free
To stay updated and find even more events, visit the center in Baker 354 or like it on Facebook.
Landing Page
This story is part of a series of specially designed stories that represents some of the best journalism The Post has to offer. Check out the rest of the special projects here.


Server response
Users connected:
Create project
Create
Upload track (under construction)
File
Upload
Create
dont touch that cactus